From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shards.monkeyblade.net ([184.105.139.130]:58306 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756059AbdD1TlS (ORCPT ); Fri, 28 Apr 2017 15:41:18 -0400 Received: from localhost (unknown [38.140.131.194]) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id 9B20811FBEA67 for ; Fri, 28 Apr 2017 11:59:51 -0700 (PDT) Date: Fri, 28 Apr 2017 15:41:15 -0400 (EDT) Message-Id: <20170428.154115.655629046461285833.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(Fri_Apr_28_15_41_15_2017_206)--" Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: ----Next_Part(Fri_Apr_28_15_41_15_2017_206)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for v4.9 and v4.10 -stable, respectively. Thanks! ----Next_Part(Fri_Apr_28_15_41_15_2017_206)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_49.mbox" RnJvbSBmMTQ1MmMxZDZmNDc5NDBhYjMwZGQ2ZDYyOGQ4NzdkYTUxYTVmNjYwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRh dGU6IFRodSwgMjMgTWFyIDIwMTcgMTI6Mzk6MjEgLTA3MDAKU3ViamVjdDogW1BBVENIIDAxLzMz XSBuZXQ6IG5laWdoOiBndWFyZCBhZ2FpbnN0IE5VTEwgc29saWNpdCgpIG1ldGhvZAoKWyBVcHN0 cmVhbSBjb21taXQgNDg0ODFjOGZhMTY0MTBmZmE0NTkzOWIxM2I2YzUzYzJjYTYwOWU1ZiBdCgpE bWl0cnkgcG9zdGVkIGEgbmljZSByZXByb2R1Y2VyIG9mIGEgYnVnIHRyaWdnZXJpbmcgaW4gbmVp Z2hfcHJvYmUoKQp3aGVuIGRlcmVmZXJlbmNpbmcgYSBOVUxMIG5laWdoLT5vcHMtPnNvbGljaXQg bWV0aG9kLgoKVGhpcyBjYW4gaGFwcGVuIGZvciBhcnBfZGlyZWN0X29wcy9uZGlzY19kaXJlY3Rf b3BzIGFuZCBzaW1pbGFyLAp3aGljaCBjYW4gYmUgdXNlZCBmb3IgTlVEX05PQVJQIG5laWdoYm91 cnMgKGNyZWF0ZWQgd2hlbiBkZXYtPmhlYWRlcl9vcHMKaXMgTlVMTCkuIEFkbWluIGNhbiB0aGVu IGZvcmNlIGNoYW5naW5nIG51ZF9zdGF0ZSB0byBzb21lIG90aGVyIHN0YXRlCnRoYXQgd291bGQg ZmlyZSBuZWlnaCB0aW1lci4KClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRA Z29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6IERtaXRyeSBWeXVrb3YgPGR2eXVrb3ZAZ29vZ2xlLmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIG5ldC9jb3JlL25laWdoYm91ci5jIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2Vy dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9uZWlnaGJvdXIu YyBiL25ldC9jb3JlL25laWdoYm91ci5jCmluZGV4IDk5MDFlNWIuLmY0NWY2MTkgMTAwNjQ0Ci0t LSBhL25ldC9jb3JlL25laWdoYm91ci5jCisrKyBiL25ldC9jb3JlL25laWdoYm91ci5jCkBAIC04 NTksNyArODU5LDggQEAgc3RhdGljIHZvaWQgbmVpZ2hfcHJvYmUoc3RydWN0IG5laWdoYm91ciAq bmVpZ2gpCiAJaWYgKHNrYikKIAkJc2tiID0gc2tiX2Nsb25lKHNrYiwgR0ZQX0FUT01JQyk7CiAJ d3JpdGVfdW5sb2NrKCZuZWlnaC0+bG9jayk7Ci0JbmVpZ2gtPm9wcy0+c29saWNpdChuZWlnaCwg c2tiKTsKKwlpZiAobmVpZ2gtPm9wcy0+c29saWNpdCkKKwkJbmVpZ2gtPm9wcy0+c29saWNpdChu ZWlnaCwgc2tiKTsKIAlhdG9taWNfaW5jKCZuZWlnaC0+cHJvYmVzKTsKIAlrZnJlZV9za2Ioc2ti KTsKIH0KLS0gCjIuNC4xMQoKCkZyb20gN2Y5NzNkNmIwM2IxM2YyOGZhNDI4OTQ1NzRiYmI5YjRk YmJlZGQxYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTmF0aGFuIFN1bGxpdmFuIDxu YXRoYW4uc3VsbGl2YW5AbmkuY29tPgpEYXRlOiBXZWQsIDIyIE1hciAyMDE3IDE1OjI3OjAxIC0w NTAwClN1YmplY3Q6IFtQQVRDSCAwMi8zM10gbmV0OiBwaHk6IGhhbmRsZSBzdGF0ZSBjb3JyZWN0 bHkgaW4gcGh5X3N0b3BfbWFjaGluZQoKWyBVcHN0cmVhbSBjb21taXQgNDlkNTJlODEwOGEyMTc0 OWRjMjExNGI5MjRjOTA3ZGI0MzM1ODk4NCBdCgpJZiB0aGUgUEhZIGlzIGhhbHRlZCBvbiBzdG9w LCB0aGVuIGRvIG5vdCBzZXQgdGhlIHN0YXRlIHRvIFBIWV9VUC4gIFRoaXMKZW5zdXJlcyB0aGUg cGh5IHdpbGwgYmUgcmVzdGFydGVkIGxhdGVyIGluIHBoeV9zdGFydCB3aGVuIHRoZSBtYWNoaW5l IGlzCnN0YXJ0ZWQgYWdhaW4uCgpGaXhlczogMDBkYjgxODlkOTg0ICgiVGhpcyBwYXRjaCBhZGRz IGEgUEhZIEFic3RyYWN0aW9uIExheWVyIHRvIHRoZSBMaW51eCBLZXJuZWwsIGVuYWJsaW5nIGV0 aGVybmV0IGRyaXZlcnMgdG8gcmVtYWluIGFzIGlnbm9yYW50IGFzIGlzIHJlYXNvbmFibGUgb2Yg dGhlIGNvbm5lY3RlZCBQSFkncyBkZXNpZ24gYW5kIG9wZXJhdGlvbiBkZXRhaWxzLiIpClNpZ25l ZC1vZmYtYnk6IE5hdGhhbiBTdWxsaXZhbiA8bmF0aGFuLnN1bGxpdmFuQG5pLmNvbT4KU2lnbmVk LW9mZi1ieTogQnJhZCBNb3VyaW5nIDxicmFkLm1vdXJpbmdAbmkuY29tPgpBY2tlZC1ieTogWGFu ZGVyIEh1ZmYgPHhhbmRlci5odWZmQG5pLmNvbT4KQWNrZWQtYnk6IEt5bGUgUm9lc2NobGV5IDxr eWxlLnJvZXNjaGxleUBuaS5jb20+ClJldmlld2VkLWJ5OiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZh aW5lbGxpQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3BoeS9waHkuYyB8IDIgKy0KIDEgZmlsZSBj aGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L3BoeS9waHkuYyBiL2RyaXZlcnMvbmV0L3BoeS9waHkuYwppbmRleCAyMDFmZmE1Li41 NmZlMTY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9waHkvcGh5LmMKKysrIGIvZHJpdmVycy9u ZXQvcGh5L3BoeS5jCkBAIC02MzksNyArNjM5LDcgQEAgdm9pZCBwaHlfc3RvcF9tYWNoaW5lKHN0 cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpCiAJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZwaHlk ZXYtPnN0YXRlX3F1ZXVlKTsKIAogCW11dGV4X2xvY2soJnBoeWRldi0+bG9jayk7Ci0JaWYgKHBo eWRldi0+c3RhdGUgPiBQSFlfVVApCisJaWYgKHBoeWRldi0+c3RhdGUgPiBQSFlfVVAgJiYgcGh5 ZGV2LT5zdGF0ZSAhPSBQSFlfSEFMVEVEKQogCQlwaHlkZXYtPnN0YXRlID0gUEhZX1VQOwogCW11 dGV4X3VubG9jaygmcGh5ZGV2LT5sb2NrKTsKIH0KLS0gCjIuNC4xMQoKCkZyb20gMGMwN2RlYjAy OGEzMzZkMDlmNTA3MjMwMTZjYjU1ZDY0NDlmNjY3NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogV0FORyBDb25nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+CkRhdGU6IFRodSwgMjMg TWFyIDIwMTcgMTE6MDM6MzEgLTA3MDAKU3ViamVjdDogW1BBVENIIDAzLzMzXSBrY206IHJldHVy biBpbW1lZGlhdGVseSBhZnRlciBjb3B5X2Zyb21fdXNlcigpIGZhaWx1cmUKClsgVXBzdHJlYW0g Y29tbWl0IGE4MGRiNjllNDdkNzY0YmJjYWYyZmVjNTRiMWYzMDg5MjVlN2M0OTAgXQoKVGhlcmUg aXMgbm8gcmVhc29uIHRvIGNvbnRpbnVlIGFmdGVyIGEgY29weV9mcm9tX3VzZXIoKQpmYWlsdXJl LgoKRml4ZXM6IGFiN2FjNGViOTgzMiAoImtjbTogS2VybmVsIENvbm5lY3Rpb24gTXVsdGlwbGV4 b3IgbW9kdWxlIikKQ2M6IFRvbSBIZXJiZXJ0IDx0b21AaGVyYmVydGxhbmQuY29tPgpTaWduZWQt b2ZmLWJ5OiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9rY20va2Nt c29jay5jIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2tjbS9rY21zb2NrLmMgYi9uZXQva2NtL2tjbXNv Y2suYwppbmRleCBhNjQ2ZjM0Li5mZWNhZDEwIDEwMDY0NAotLS0gYS9uZXQva2NtL2tjbXNvY2su YworKysgYi9uZXQva2NtL2tjbXNvY2suYwpAQCAtMTY4NSw3ICsxNjg1LDcgQEAgc3RhdGljIGlu dCBrY21faW9jdGwoc3RydWN0IHNvY2tldCAqc29jaywgdW5zaWduZWQgaW50IGNtZCwgdW5zaWdu ZWQgbG9uZyBhcmcpCiAJCXN0cnVjdCBrY21fYXR0YWNoIGluZm87CiAKIAkJaWYgKGNvcHlfZnJv bV91c2VyKCZpbmZvLCAodm9pZCBfX3VzZXIgKilhcmcsIHNpemVvZihpbmZvKSkpCi0JCQllcnIg PSAtRUZBVUxUOworCQkJcmV0dXJuIC1FRkFVTFQ7CiAKIAkJZXJyID0ga2NtX2F0dGFjaF9pb2N0 bChzb2NrLCAmaW5mbyk7CiAKQEAgLTE2OTUsNyArMTY5NSw3IEBAIHN0YXRpYyBpbnQga2NtX2lv Y3RsKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcg YXJnKQogCQlzdHJ1Y3Qga2NtX3VuYXR0YWNoIGluZm87CiAKIAkJaWYgKGNvcHlfZnJvbV91c2Vy KCZpbmZvLCAodm9pZCBfX3VzZXIgKilhcmcsIHNpemVvZihpbmZvKSkpCi0JCQllcnIgPSAtRUZB VUxUOworCQkJcmV0dXJuIC1FRkFVTFQ7CiAKIAkJZXJyID0ga2NtX3VuYXR0YWNoX2lvY3RsKHNv Y2ssICZpbmZvKTsKIApAQCAtMTcwNiw3ICsxNzA2LDcgQEAgc3RhdGljIGludCBrY21faW9jdGwo c3RydWN0IHNvY2tldCAqc29jaywgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcp CiAJCXN0cnVjdCBzb2NrZXQgKm5ld3NvY2sgPSBOVUxMOwogCiAJCWlmIChjb3B5X2Zyb21fdXNl cigmaW5mbywgKHZvaWQgX191c2VyICopYXJnLCBzaXplb2YoaW5mbykpKQotCQkJZXJyID0gLUVG QVVMVDsKKwkJCXJldHVybiAtRUZBVUxUOwogCiAJCWVyciA9IGtjbV9jbG9uZShzb2NrLCAmaW5m bywgJm5ld3NvY2spOwogCi0tIAoyLjQuMTEKCgpGcm9tIDMxZTQzZmIzOTJlMzA5MDE5ZmM2Y2Vh YWRjMjJhYWFiNDE4OGIxOTUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVt YXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogRnJpLCAyNCBNYXIgMjAxNyAxOTozNjox MyAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDQvMzNdIHBpbmc6IGltcGxlbWVudCBwcm9wZXIgbG9j a2luZwoKWyBVcHN0cmVhbSBjb21taXQgNDNhNjY4NDUxOWFiMGE2YzUyMDI0YjVlMjUzMjI0NzZj YWJhZDg5MyBdCgpXZSBnb3QgYSByZXBvcnQgb2YgeWV0IGFub3RoZXIgYnVnIGluIHBpbmcKCmh0 dHA6Ly93d3cub3BlbndhbGwuY29tL2xpc3RzL29zcy1zZWN1cml0eS8yMDE3LzAzLzI0LzYKCi0+ ZGlzY29ubmVjdCgpIGlzIG5vdCBjYWxsZWQgd2l0aCBzb2NrZXQgbG9jayBoZWxkLgoKRml4IHRo aXMgYnkgYWNxdWlyaW5nIHBpbmcgcndsb2NrIGVhcmxpZXIuCgpUaGFua3MgdG8gRGFuaWVsLCBB bGV4YW5kZXIgYW5kIEFuZHJleSBmb3IgbGV0dGluZyB1cyBrbm93IHRoaXMgcHJvYmxlbS4KCkZp eGVzOiBjMzE5YjRkNzZiOWUgKCJuZXQ6IGlwdjQ6IGFkZCBJUFBST1RPX0lDTVAgc29ja2V0IGtp bmQiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJl cG9ydGVkLWJ5OiBEYW5pZWwgSmlhbmcgPGRhbmllbGppYW5nMDQxNUBnbWFpbC5jb20+ClJlcG9y dGVkLWJ5OiBTb2xhciBEZXNpZ25lciA8c29sYXJAb3BlbndhbGwuY29tPgpSZXBvcnRlZC1ieTog QW5kcmV5IEtvbm92YWxvdiA8YW5kcmV5a252bEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvcGluZy5j IHwgNSArKystLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9waW5nLmMgYi9uZXQvaXB2NC9waW5nLmMKaW5kZXgg MTA1YzA3NC4uZTYxMjk5MSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvcGluZy5jCisrKyBiL25ldC9p cHY0L3BpbmcuYwpAQCAtMTU2LDE3ICsxNTYsMTggQEAgaW50IHBpbmdfaGFzaChzdHJ1Y3Qgc29j ayAqc2spCiB2b2lkIHBpbmdfdW5oYXNoKHN0cnVjdCBzb2NrICpzaykKIHsKIAlzdHJ1Y3QgaW5l dF9zb2NrICppc2sgPSBpbmV0X3NrKHNrKTsKKwogCXByX2RlYnVnKCJwaW5nX3VuaGFzaChpc2s9 JXAsaXNrLT5udW09JXUpXG4iLCBpc2ssIGlzay0+aW5ldF9udW0pOworCXdyaXRlX2xvY2tfYmgo JnBpbmdfdGFibGUubG9jayk7CiAJaWYgKHNrX2hhc2hlZChzaykpIHsKLQkJd3JpdGVfbG9ja19i aCgmcGluZ190YWJsZS5sb2NrKTsKIAkJaGxpc3RfbnVsbHNfZGVsKCZzay0+c2tfbnVsbHNfbm9k ZSk7CiAJCXNrX251bGxzX25vZGVfaW5pdCgmc2stPnNrX251bGxzX25vZGUpOwogCQlzb2NrX3B1 dChzayk7CiAJCWlzay0+aW5ldF9udW0gPSAwOwogCQlpc2stPmluZXRfc3BvcnQgPSAwOwogCQlz b2NrX3Byb3RfaW51c2VfYWRkKHNvY2tfbmV0KHNrKSwgc2stPnNrX3Byb3QsIC0xKTsKLQkJd3Jp dGVfdW5sb2NrX2JoKCZwaW5nX3RhYmxlLmxvY2spOwogCX0KKwl3cml0ZV91bmxvY2tfYmgoJnBp bmdfdGFibGUubG9jayk7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChwaW5nX3VuaGFzaCk7CiAKLS0g CjIuNC4xMQoKCkZyb20gZTJhZjg4NTgwNGMwZDMwMmM3YTY4Y2E4NzU5YWUyMTFlZTQ3OGI2NyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQWxleGVpIFN0YXJvdm9pdG92IDxhc3RAZmIu Y29tPgpEYXRlOiBGcmksIDI0IE1hciAyMDE3IDE1OjU3OjMzIC0wNzAwClN1YmplY3Q6IFtQQVRD SCAwNS8zM10gYnBmOiBpbXByb3ZlIHZlcmlmaWVyIHBhY2tldCByYW5nZSBjaGVja3MKClsgVXBz dHJlYW0gY29tbWl0IGIxOTc3NjgyYTM4NThiNTU4NGZmZWE3Y2ZiN2JkODYzZjY4ZGIxOGQgXQoK bGx2bSBjYW4gb3B0aW1pemUgdGhlICdpZiAocHRyID4gZGF0YV9lbmQpJyBjaGVja3MgdG8gYmUg aW4gdGhlIG9yZGVyCnNsaWdodGx5IGRpZmZlcmVudCB0aGFuIHRoZSBvcmlnaW5hbCBDIGNvZGUg d2hpY2ggd2lsbCBjb25mdXNlIHZlcmlmaWVyLgpMaWtlOgppZiAocHRyICsgMTYgPiBkYXRhX2Vu ZCkKICByZXR1cm4gVENfQUNUX1NIT1Q7Ci8vIG1heSBiZSBmb2xsb3dlZCBieQppZiAocHRyICsg MTQgPiBkYXRhX2VuZCkKICByZXR1cm4gVENfQUNUX1NIT1Q7CndoaWxlIGxsdm0gY2FuIHNlZSB0 aGF0ICdwdHInIGlzIHZhbGlkIGZvciBhbGwgMTYgYnl0ZXMsCnRoZSB2ZXJpZmllciBjb3VsZCBu b3QuCkZpeCB2ZXJpZmllciBsb2dpYyB0byBhY2NvdW50IGZvciBzdWNoIGNhc2UgYW5kIGFkZCBh IHRlc3QuCgpSZXBvcnRlZC1ieTogSHVhcGVuZyBaaG91IDxoemhvdUBmYi5jb20+CkZpeGVzOiA5 NjliZjA1ZWIzY2UgKCJicGY6IGRpcmVjdCBwYWNrZXQgYWNjZXNzIikKU2lnbmVkLW9mZi1ieTog QWxleGVpIFN0YXJvdm9pdG92IDxhc3RAa2VybmVsLm9yZz4KQWNrZWQtYnk6IERhbmllbCBCb3Jr bWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+CkFja2VkLWJ5OiBNYXJ0aW4gS2FGYWkgTGF1IDxr YWZhaUBmYi5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBrZXJuZWwvYnBmL3ZlcmlmaWVyLmMgfCA1ICsrKy0tCiAxIGZpbGUgY2hh bmdlZCwgMyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2tlcm5l bC9icGYvdmVyaWZpZXIuYyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuYwppbmRleCA4NWQxYzk0Li43 YzlmOTRjIDEwMDY0NAotLS0gYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMKKysrIGIva2VybmVsL2Jw Zi92ZXJpZmllci5jCkBAIC0xODI5LDE0ICsxODI5LDE1IEBAIHN0YXRpYyB2b2lkIGZpbmRfZ29v ZF9wa3RfcG9pbnRlcnMoc3RydWN0IGJwZl92ZXJpZmllcl9zdGF0ZSAqc3RhdGUsCiAKIAlmb3Ig KGkgPSAwOyBpIDwgTUFYX0JQRl9SRUc7IGkrKykKIAkJaWYgKHJlZ3NbaV0udHlwZSA9PSBQVFJf VE9fUEFDS0VUICYmIHJlZ3NbaV0uaWQgPT0gZHN0X3JlZy0+aWQpCi0JCQlyZWdzW2ldLnJhbmdl ID0gZHN0X3JlZy0+b2ZmOworCQkJLyoga2VlcCB0aGUgbWF4aW11bSByYW5nZSBhbHJlYWR5IGNo ZWNrZWQgKi8KKwkJCXJlZ3NbaV0ucmFuZ2UgPSBtYXgocmVnc1tpXS5yYW5nZSwgZHN0X3JlZy0+ b2ZmKTsKIAogCWZvciAoaSA9IDA7IGkgPCBNQVhfQlBGX1NUQUNLOyBpICs9IEJQRl9SRUdfU0la RSkgewogCQlpZiAoc3RhdGUtPnN0YWNrX3Nsb3RfdHlwZVtpXSAhPSBTVEFDS19TUElMTCkKIAkJ CWNvbnRpbnVlOwogCQlyZWcgPSAmc3RhdGUtPnNwaWxsZWRfcmVnc1tpIC8gQlBGX1JFR19TSVpF XTsKIAkJaWYgKHJlZy0+dHlwZSA9PSBQVFJfVE9fUEFDS0VUICYmIHJlZy0+aWQgPT0gZHN0X3Jl Zy0+aWQpCi0JCQlyZWctPnJhbmdlID0gZHN0X3JlZy0+b2ZmOworCQkJcmVnLT5yYW5nZSA9IG1h eChyZWctPnJhbmdlLCBkc3RfcmVnLT5vZmYpOwogCX0KIH0KIAotLSAKMi40LjExCgoKRnJvbSA1 NGQyOWY0YTFkMGM0ZDNjYjU5ZTgxODg1NDM5NTQyYTUwMjMyZWU1IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBUYWxhdCBCYXRoZWVzaCA8dGFsYXRiQG1lbGxhbm94LmNvbT4KRGF0ZTog VHVlLCAyOCBNYXIgMjAxNyAxNjoxMzo0MSArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMDYvMzNdIG5l dC9tbHg1OiBBdm9pZCBkZXJlZmVyZW5jaW5nIHVuaW5pdGlhbGl6ZWQgcG9pbnRlcgoKWyBVcHN0 cmVhbSBjb21taXQgZTQ5N2VjNjgwYzRjZDUxZTc2YmZjZGQ0OTM2M2Q5YWI4ZDMyYTc1NyBdCgpJ biBORVRERVZfQ0hBTkdFVVBQRVIgZXZlbnQgdGhlIHVwcGVyX2luZm8gZmllbGQgaXMgdmFsaWQK b25seSB3aGVuIGxpbmtpbmcgaXMgdHJ1ZS4gT3RoZXJ3aXNlIGl0IHNob3VsZCBiZSBpZ25vcmVk LgoKRml4ZXM6IDc5MDdmMjNhZGMxOCAobmV0L21seDU6IEltcGxlbWVudCBSb0NFIExBRyBmZWF0 dXJlKQpTaWduZWQtb2ZmLWJ5OiBUYWxhdCBCYXRoZWVzaCA8dGFsYXRiQG1lbGxhbm94LmNvbT4K UmV2aWV3ZWQtYnk6IEF2aXYgSGVsbGVyIDxhdml2aEBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5 OiBNb25pIFNob3VhIDxtb25pc0BtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1h aGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4NS9jb3JlL2xhZy5jIHwgNSArKystLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvbGFnLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvbGFnLmMKaW5kZXggNTU5NTcyNC4uYjVkNTUxOSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy5jCisrKyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcuYwpAQCAtMjk0LDcgKzI5NCw3IEBAIHN0 YXRpYyBpbnQgbWx4NV9oYW5kbGVfY2hhbmdldXBwZXJfZXZlbnQoc3RydWN0IG1seDVfbGFnICps ZGV2LAogCQkJCQkgc3RydWN0IG5ldGRldl9ub3RpZmllcl9jaGFuZ2V1cHBlcl9pbmZvICppbmZv KQogewogCXN0cnVjdCBuZXRfZGV2aWNlICp1cHBlciA9IGluZm8tPnVwcGVyX2RldiwgKm5kZXZf dG1wOwotCXN0cnVjdCBuZXRkZXZfbGFnX3VwcGVyX2luZm8gKmxhZ191cHBlcl9pbmZvOworCXN0 cnVjdCBuZXRkZXZfbGFnX3VwcGVyX2luZm8gKmxhZ191cHBlcl9pbmZvID0gTlVMTDsKIAlib29s IGlzX2JvbmRlZDsKIAlpbnQgYm9uZF9zdGF0dXMgPSAwOwogCWludCBudW1fc2xhdmVzID0gMDsK QEAgLTMwMyw3ICszMDMsOCBAQCBzdGF0aWMgaW50IG1seDVfaGFuZGxlX2NoYW5nZXVwcGVyX2V2 ZW50KHN0cnVjdCBtbHg1X2xhZyAqbGRldiwKIAlpZiAoIW5ldGlmX2lzX2xhZ19tYXN0ZXIodXBw ZXIpKQogCQlyZXR1cm4gMDsKIAotCWxhZ191cHBlcl9pbmZvID0gaW5mby0+dXBwZXJfaW5mbzsK KwlpZiAoaW5mby0+bGlua2luZykKKwkJbGFnX3VwcGVyX2luZm8gPSBpbmZvLT51cHBlcl9pbmZv OwogCiAJLyogVGhlIGV2ZW50IG1heSBzdGlsbCBiZSBvZiBpbnRlcmVzdCBpZiB0aGUgc2xhdmUg ZG9lcyBub3QgYmVsb25nIHRvCiAJICogdXMsIGJ1dCBpcyBlbnNsYXZlZCB0byBhIG1hc3RlciB3 aGljaCBoYXMgb25lIG9yIG1vcmUgb2Ygb3VyIG5ldGRldnMKLS0gCjIuNC4xMQoKCkZyb20gZWJk M2ZiN2UwNzI3Yzk0YmRkMjMyYTI3YjhlYzBjOTc5YmM3MjE2MCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogR3VpbGxhdW1lIE5hdWx0IDxnLm5hdWx0QGFscGhhbGluay5mcj4KRGF0ZTog V2VkLCAyOSBNYXIgMjAxNyAwODo0NDo1OSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDcvMzNdIGwy dHA6IGhvbGQgdHVubmVsIHNvY2tldCB3aGVuIGhhbmRsaW5nIGNvbnRyb2wgZnJhbWVzCiBpbiBs MnRwX2lwIGFuZCBsMnRwX2lwNgoKWyBVcHN0cmVhbSBjb21taXQgOTRkN2VlMGJhYThiNzY0Y2Y2 NGFkOTFlZDY5NDY0YzFhNmEwMDY2YiBdCgpUaGUgY29kZSBmb2xsb3dpbmcgbDJ0cF90dW5uZWxf ZmluZCgpIGV4cGVjdHMgdGhhdCBhIG5ldyByZWZlcmVuY2UgaXMKaGVsZCBvbiBzay4gRWl0aGVy IHNrX3JlY2VpdmVfc2tiKCkgb3IgdGhlIGRpc2NhcmRfcHV0IGVycm9yIHBhdGggd2lsbApkcm9w IGEgcmVmZXJlbmNlIGZyb20gdGhlIHR1bm5lbCdzIHNvY2tldC4KClRoaXMgaXNzdWUgZXhpc3Rz IGluIGJvdGggbDJ0cF9pcCBhbmQgbDJ0cF9pcDYuCgpGaXhlczogYTNjMTg0MjJhNGI0ICgibDJ0 cDogaG9sZCBzb2NrZXQgYmVmb3JlIGRyb3BwaW5nIGxvY2sgaW4gbDJ0cF9pcHssIDZ9X3JlY3Yo KSIpClNpZ25lZC1vZmYtYnk6IEd1aWxsYXVtZSBOYXVsdCA8Zy5uYXVsdEBhbHBoYWxpbmsuZnI+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBuZXQvbDJ0cC9sMnRwX2lwLmMgIHwgNSArKystLQogbmV0L2wydHAvbDJ0cF9pcDYuYyB8IDUg KysrLS0KIDIgZmlsZXMgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL25ldC9sMnRwL2wydHBfaXAuYyBiL25ldC9sMnRwL2wydHBfaXAuYwppbmRl eCBmZjc1MGJiLi4yMDY2OTUzIDEwMDY0NAotLS0gYS9uZXQvbDJ0cC9sMnRwX2lwLmMKKysrIGIv bmV0L2wydHAvbDJ0cF9pcC5jCkBAIC0xNzgsOSArMTc4LDEwIEBAIHN0YXRpYyBpbnQgbDJ0cF9p cF9yZWN2KHN0cnVjdCBza19idWZmICpza2IpCiAKIAl0dW5uZWxfaWQgPSBudG9obCgqKF9fYmUz MiAqKSAmc2tiLT5kYXRhWzRdKTsKIAl0dW5uZWwgPSBsMnRwX3R1bm5lbF9maW5kKG5ldCwgdHVu bmVsX2lkKTsKLQlpZiAodHVubmVsICE9IE5VTEwpCisJaWYgKHR1bm5lbCkgewogCQlzayA9IHR1 bm5lbC0+c29jazsKLQllbHNlIHsKKwkJc29ja19ob2xkKHNrKTsKKwl9IGVsc2UgewogCQlzdHJ1 Y3QgaXBoZHIgKmlwaCA9IChzdHJ1Y3QgaXBoZHIgKikgc2tiX25ldHdvcmtfaGVhZGVyKHNrYik7 CiAKIAkJcmVhZF9sb2NrX2JoKCZsMnRwX2lwX2xvY2spOwpkaWZmIC0tZ2l0IGEvbmV0L2wydHAv bDJ0cF9pcDYuYyBiL25ldC9sMnRwL2wydHBfaXA2LmMKaW5kZXggMWE2NWM5YS4uYTRiMGM5MiAx MDA2NDQKLS0tIGEvbmV0L2wydHAvbDJ0cF9pcDYuYworKysgYi9uZXQvbDJ0cC9sMnRwX2lwNi5j CkBAIC0xOTEsOSArMTkxLDEwIEBAIHN0YXRpYyBpbnQgbDJ0cF9pcDZfcmVjdihzdHJ1Y3Qgc2tf YnVmZiAqc2tiKQogCiAJdHVubmVsX2lkID0gbnRvaGwoKihfX2JlMzIgKikgJnNrYi0+ZGF0YVs0 XSk7CiAJdHVubmVsID0gbDJ0cF90dW5uZWxfZmluZChuZXQsIHR1bm5lbF9pZCk7Ci0JaWYgKHR1 bm5lbCAhPSBOVUxMKQorCWlmICh0dW5uZWwpIHsKIAkJc2sgPSB0dW5uZWwtPnNvY2s7Ci0JZWxz ZSB7CisJCXNvY2tfaG9sZChzayk7CisJfSBlbHNlIHsKIAkJc3RydWN0IGlwdjZoZHIgKmlwaCA9 IGlwdjZfaGRyKHNrYik7CiAKIAkJcmVhZF9sb2NrX2JoKCZsMnRwX2lwNl9sb2NrKTsKLS0gCjIu NC4xMQoKCkZyb20gMGY5NzdkZjg3NzU1YzlhMWEwNzNkNzk4NTdjZmFlOWVhN2EyZGY3YSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogR3VpbGxhdW1lIE5hdWx0IDxnLm5hdWx0QGFscGhh bGluay5mcj4KRGF0ZTogV2VkLCAyOSBNYXIgMjAxNyAwODo0NToyOSArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMDgvMzNdIGwydHA6IHB1cmdlIHNvY2tldCBxdWV1ZXMgaW4gdGhlIC5kZXN0cnVjdCgp IGNhbGxiYWNrCgpbIFVwc3RyZWFtIGNvbW1pdCBlOTE3OTNiYjYxNWNmNmNkZDU5YzBiNjc0OWZl MTczNjg3YmIwOTQ3IF0KClRoZSBSeCBwYXRoIG1heSBncmFiIHRoZSBzb2NrZXQgcmlnaHQgYmVm b3JlIHBwcG9sMnRwX3JlbGVhc2UoKSwgYnV0Cm5vdGhpbmcgZ3VhcmFudGVlcyB0aGF0IGl0IHdp bGwgZW5xdWV1ZSBwYWNrZXRzIGJlZm9yZQpza2JfcXVldWVfcHVyZ2UoKS4gVGhlcmVmb3JlLCB0 aGUgc29ja2V0IGNhbiBiZSBkZXN0cm95ZWQgd2l0aG91dCBpdHMKcXVldWVzIGZ1bGx5IHB1cmdl ZC4KCkZpeCB0aGlzIGJ5IHB1cmdpbmcgcXVldWVzIGluIHBwcG9sMnRwX3Nlc3Npb25fZGVzdHJ1 Y3QoKSB3aGVyZSB3ZSdyZQpndWFyYW50ZWVkIG5vdGhpbmcgaXMgc3RpbGwgcmVmZXJlbmNpbmcg dGhlIHNvY2tldC4KCkZpeGVzOiA5ZTljYjYyMjFhYTcgKCJsMnRwOiBmaXggdXNlcnNwYWNlIHJl Y2VwdGlvbiBvbiBwbGFpbiBMMlRQIHNvY2tldHMiKQpTaWduZWQtb2ZmLWJ5OiBHdWlsbGF1bWUg TmF1bHQgPGcubmF1bHRAYWxwaGFsaW5rLmZyPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2wydHAvbDJ0cF9wcHAuYyB8IDcgKysr Ky0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9uZXQvbDJ0cC9sMnRwX3BwcC5jIGIvbmV0L2wydHAvbDJ0cF9wcHAuYwppbmRl eCA0MWQ0N2JmLi41MWMxOTBkIDEwMDY0NAotLS0gYS9uZXQvbDJ0cC9sMnRwX3BwcC5jCisrKyBi L25ldC9sMnRwL2wydHBfcHBwLmMKQEAgLTQ1MCw2ICs0NTAsMTAgQEAgc3RhdGljIHZvaWQgcHBw b2wydHBfc2Vzc2lvbl9jbG9zZShzdHJ1Y3QgbDJ0cF9zZXNzaW9uICpzZXNzaW9uKQogc3RhdGlj IHZvaWQgcHBwb2wydHBfc2Vzc2lvbl9kZXN0cnVjdChzdHJ1Y3Qgc29jayAqc2spCiB7CiAJc3Ry dWN0IGwydHBfc2Vzc2lvbiAqc2Vzc2lvbiA9IHNrLT5za191c2VyX2RhdGE7CisKKwlza2JfcXVl dWVfcHVyZ2UoJnNrLT5za19yZWNlaXZlX3F1ZXVlKTsKKwlza2JfcXVldWVfcHVyZ2UoJnNrLT5z a193cml0ZV9xdWV1ZSk7CisKIAlpZiAoc2Vzc2lvbikgewogCQlzay0+c2tfdXNlcl9kYXRhID0g TlVMTDsKIAkJQlVHX09OKHNlc3Npb24tPm1hZ2ljICE9IEwyVFBfU0VTU0lPTl9NQUdJQyk7CkBA IC00ODgsOSArNDkyLDYgQEAgc3RhdGljIGludCBwcHBvbDJ0cF9yZWxlYXNlKHN0cnVjdCBzb2Nr ZXQgKnNvY2spCiAJCWwydHBfc2Vzc2lvbl9xdWV1ZV9wdXJnZShzZXNzaW9uKTsKIAkJc29ja19w dXQoc2spOwogCX0KLQlza2JfcXVldWVfcHVyZ2UoJnNrLT5za19yZWNlaXZlX3F1ZXVlKTsKLQlz a2JfcXVldWVfcHVyZ2UoJnNrLT5za193cml0ZV9xdWV1ZSk7Ci0KIAlyZWxlYXNlX3NvY2soc2sp OwogCiAJLyogVGhpcyB3aWxsIGRlbGV0ZSB0aGUgc2Vzc2lvbiBjb250ZXh0IHZpYQotLSAKMi40 LjExCgoKRnJvbSAyYTg1M2MzZjYxNTkxY2MxNzYyODE5OGI0MzE2NDAyZTNhN2I3ZDYwIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXkgS29ub3ZhbG92IDxhbmRyZXlrbnZsQGdv b2dsZS5jb20+CkRhdGU6IFdlZCwgMjkgTWFyIDIwMTcgMTY6MTE6MjEgKzAyMDAKU3ViamVjdDog W1BBVENIIDA5LzMzXSBuZXQvcGFja2V0OiBmaXggb3ZlcmZsb3cgaW4gY2hlY2sgZm9yIHRwX2Zy YW1lX25yCgpbIFVwc3RyZWFtIGNvbW1pdCA4ZjhkMjhlNGQ2ZDgxNWEzOTEyODVlMTIxYzNhNTNh MGI2Y2I5ZTdiIF0KCldoZW4gY2FsY3VsYXRpbmcgcmItPmZyYW1lc19wZXJfYmxvY2sgKiByZXEt PnRwX2Jsb2NrX25yIHRoZSByZXN1bHQKY2FuIG92ZXJmbG93LgoKQWRkIGEgY2hlY2sgdGhhdCB0 cF9ibG9ja19zaXplICogdHBfYmxvY2tfbnIgPD0gVUlOVF9NQVguCgpTaW5jZSBmcmFtZXNfcGVy X2Jsb2NrIDw9IHRwX2Jsb2NrX3NpemUsIHRoZSBleHByZXNzaW9uIHdvdWxkCm5ldmVyIG92ZXJm bG93LgoKU2lnbmVkLW9mZi1ieTogQW5kcmV5IEtvbm92YWxvdiA8YW5kcmV5a252bEBnb29nbGUu Y29tPgpBY2tlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3Bh Y2tldC9hZl9wYWNrZXQuYyB8IDIgKysKIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykK CmRpZmYgLS1naXQgYS9uZXQvcGFja2V0L2FmX3BhY2tldC5jIGIvbmV0L3BhY2tldC9hZl9wYWNr ZXQuYwppbmRleCA4YWIwOTc0Li5lMDY0ZTMzIDEwMDY0NAotLS0gYS9uZXQvcGFja2V0L2FmX3Bh Y2tldC5jCisrKyBiL25ldC9wYWNrZXQvYWZfcGFja2V0LmMKQEAgLTQyNDcsNiArNDI0Nyw4IEBA IHN0YXRpYyBpbnQgcGFja2V0X3NldF9yaW5nKHN0cnVjdCBzb2NrICpzaywgdW5pb24gdHBhY2tl dF9yZXFfdSAqcmVxX3UsCiAJCXJiLT5mcmFtZXNfcGVyX2Jsb2NrID0gcmVxLT50cF9ibG9ja19z aXplIC8gcmVxLT50cF9mcmFtZV9zaXplOwogCQlpZiAodW5saWtlbHkocmItPmZyYW1lc19wZXJf YmxvY2sgPT0gMCkpCiAJCQlnb3RvIG91dDsKKwkJaWYgKHVubGlrZWx5KHJlcS0+dHBfYmxvY2tf c2l6ZSA+IFVJTlRfTUFYIC8gcmVxLT50cF9ibG9ja19ucikpCisJCQlnb3RvIG91dDsKIAkJaWYg KHVubGlrZWx5KChyYi0+ZnJhbWVzX3Blcl9ibG9jayAqIHJlcS0+dHBfYmxvY2tfbnIpICE9CiAJ CQkJCXJlcS0+dHBfZnJhbWVfbnIpKQogCQkJZ290byBvdXQ7Ci0tIAoyLjQuMTEKCgpGcm9tIGVm YWVjMWFkMzBiMjFjYmVhMjQ5NDZkYmU5MWU4ZjdkZjJkMTQ3M2QgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IEFuZHJleSBLb25vdmFsb3YgPGFuZHJleWtudmxAZ29vZ2xlLmNvbT4KRGF0 ZTogV2VkLCAyOSBNYXIgMjAxNyAxNjoxMToyMiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTAvMzNd IG5ldC9wYWNrZXQ6IGZpeCBvdmVyZmxvdyBpbiBjaGVjayBmb3IgdHBfcmVzZXJ2ZQoKWyBVcHN0 cmVhbSBjb21taXQgYmNjNTM2NGJkY2ZlMTMxZTYzNzkzNjNmMDg5ZTdiNDEwOGQzNWI3MCBdCgpX aGVuIGNhbGN1bGF0aW5nIHBvLT50cF9oZHJsZW4gKyBwby0+dHBfcmVzZXJ2ZSB0aGUgcmVzdWx0 IGNhbiBvdmVyZmxvdy4KCkZpeCBieSBjaGVja2luZyB0aGF0IHRwX3Jlc2VydmUgPD0gSU5UX01B WCBvbiBhc3NpZ24uCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXkgS29ub3ZhbG92IDxhbmRyZXlrbnZs QGdvb2dsZS5jb20+CkFja2VkLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBuZXQvcGFja2V0L2FmX3BhY2tldC5jIHwgMiArKwogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0 aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9wYWNrZXQvYWZfcGFja2V0LmMgYi9uZXQvcGFja2V0 L2FmX3BhY2tldC5jCmluZGV4IGUwNjRlMzMuLmNiNzZmZjMgMTAwNjQ0Ci0tLSBhL25ldC9wYWNr ZXQvYWZfcGFja2V0LmMKKysrIGIvbmV0L3BhY2tldC9hZl9wYWNrZXQuYwpAQCAtMzcwMiw2ICsz NzAyLDggQEAgcGFja2V0X3NldHNvY2tvcHQoc3RydWN0IHNvY2tldCAqc29jaywgaW50IGxldmVs LCBpbnQgb3B0bmFtZSwgY2hhciBfX3VzZXIgKm9wdHYKIAkJCXJldHVybiAtRUJVU1k7CiAJCWlm IChjb3B5X2Zyb21fdXNlcigmdmFsLCBvcHR2YWwsIHNpemVvZih2YWwpKSkKIAkJCXJldHVybiAt RUZBVUxUOworCQlpZiAodmFsID4gSU5UX01BWCkKKwkJCXJldHVybiAtRUlOVkFMOwogCQlwby0+ dHBfcmVzZXJ2ZSA9IHZhbDsKIAkJcmV0dXJuIDA7CiAJfQotLSAKMi40LjExCgoKRnJvbSBlZDhk NDNjZTMzZWUxOTljMWViYjgwZDVlOTI2MjlkYmEyZjkyMjZiIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBHdWlsbGF1bWUgTmF1bHQgPGcubmF1bHRAYWxwaGFsaW5rLmZyPgpEYXRlOiBN b24sIDMgQXByIDIwMTcgMTI6MDM6MTMgKzAyMDAKU3ViamVjdDogW1BBVENIIDExLzMzXSBsMnRw OiB0YWtlIHJlZmVyZW5jZSBvbiBzZXNzaW9ucyBiZWluZyBkdW1wZWQKClsgVXBzdHJlYW0gY29t bWl0IGUwODI5M2E0Y2NiY2M5OTNkZWQwZmRjNDZmMWU1NzkyNmI4MzNkNjMgXQoKVGFrZSBhIHJl ZmVyZW5jZSBvbiB0aGUgc2Vzc2lvbnMgcmV0dXJuZWQgYnkgbDJ0cF9zZXNzaW9uX2ZpbmRfbnRo KCkKKGFuZCByZW5hbWUgaXQgbDJ0cF9zZXNzaW9uX2dldF9udGgoKSB0byByZWZsZWN0IHRoaXMg Y2hhbmdlKSwgc28gdGhhdApjYWxsZXIgaXMgYXNzdXJlZCB0aGF0IHRoZSBzZXNzaW9uIGlzbid0 IGdvaW5nIHRvIGRpc2FwcGVhciB3aGlsZQpwcm9jZXNzaW5nIGl0LgoKRm9yIHByb2NmcyBhbmQg ZGVidWdmcyBoYW5kbGVycywgdGhlIHNlc3Npb24gaXMgaGVsZCBpbiB0aGUgLnN0YXJ0KCkKY2Fs bGJhY2sgYW5kIGRyb3BwZWQgaW4gLnNob3coKS4gR2l2ZW4gdGhhdCBwcHBvbDJ0cF9zZXFfc2Vz c2lvbl9zaG93KCkKZGVyZWZlcmVuY2VzIHRoZSBhc3NvY2lhdGVkIFBQUG9MMlRQIHNvY2tldCBh bmQgdGhhdApsMnRwX2Rmc19zZXFfc2Vzc2lvbl9zaG93KCkgbWlnaHQgY2FsbCBwcHBvbDJ0cF9z aG93KCksIHdlIGFsc28gbmVlZCB0bwpjYWxsIHRoZSBzZXNzaW9uJ3MgLnJlZigpIGNhbGxiYWNr IHRvIHByZXZlbnQgdGhlIHNvY2tldCBmcm9tIGdvaW5nCmF3YXkgZnJvbSB1bmRlciB1cy4KCkZp eGVzOiBmZDU1OGQxODZkZjIgKCJsMnRwOiBTcGxpdCBwcHBvbDJ0cCBwYXRjaCBpbnRvIHNlcGFy YXRlIGwydHAgYW5kIHBwcCBwYXJ0cyIpCkZpeGVzOiAwYWQ2NjE0MDQ4Y2YgKCJsMnRwOiBBZGQg ZGVidWdmcyBmaWxlcyBmb3IgZHVtcGluZyBsMnRwIGRlYnVnIGluZm8iKQpGaXhlczogMzA5Nzk1 ZjRiZWMyICgibDJ0cDogQWRkIG5ldGxpbmsgY29udHJvbCBBUEkgZm9yIEwyVFAiKQpTaWduZWQt b2ZmLWJ5OiBHdWlsbGF1bWUgTmF1bHQgPGcubmF1bHRAYWxwaGFsaW5rLmZyPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2wydHAv bDJ0cF9jb3JlLmMgICAgfCAgOCArKysrKystLQogbmV0L2wydHAvbDJ0cF9jb3JlLmggICAgfCAg MyArKy0KIG5ldC9sMnRwL2wydHBfZGVidWdmcy5jIHwgMTAgKysrKysrKy0tLQogbmV0L2wydHAv bDJ0cF9uZXRsaW5rLmMgfCAgNyArKysrKy0tCiBuZXQvbDJ0cC9sMnRwX3BwcC5jICAgICB8IDEw ICsrKysrKystLS0KIDUgZmlsZXMgY2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2wydHAvbDJ0cF9jb3JlLmMgYi9uZXQvbDJ0cC9sMnRw X2NvcmUuYwppbmRleCBhMmVkM2JkLi5lNzAyY2I5IDEwMDY0NAotLS0gYS9uZXQvbDJ0cC9sMnRw X2NvcmUuYworKysgYi9uZXQvbDJ0cC9sMnRwX2NvcmUuYwpAQCAtMjc4LDcgKzI3OCw4IEBAIHN0 cnVjdCBsMnRwX3Nlc3Npb24gKmwydHBfc2Vzc2lvbl9maW5kKHN0cnVjdCBuZXQgKm5ldCwgc3Ry dWN0IGwydHBfdHVubmVsICp0dW5uCiB9CiBFWFBPUlRfU1lNQk9MX0dQTChsMnRwX3Nlc3Npb25f ZmluZCk7CiAKLXN0cnVjdCBsMnRwX3Nlc3Npb24gKmwydHBfc2Vzc2lvbl9maW5kX250aChzdHJ1 Y3QgbDJ0cF90dW5uZWwgKnR1bm5lbCwgaW50IG50aCkKK3N0cnVjdCBsMnRwX3Nlc3Npb24gKmwy dHBfc2Vzc2lvbl9nZXRfbnRoKHN0cnVjdCBsMnRwX3R1bm5lbCAqdHVubmVsLCBpbnQgbnRoLAor CQkJCQkgIGJvb2wgZG9fcmVmKQogewogCWludCBoYXNoOwogCXN0cnVjdCBsMnRwX3Nlc3Npb24g KnNlc3Npb247CkBAIC0yODgsNiArMjg5LDkgQEAgc3RydWN0IGwydHBfc2Vzc2lvbiAqbDJ0cF9z ZXNzaW9uX2ZpbmRfbnRoKHN0cnVjdCBsMnRwX3R1bm5lbCAqdHVubmVsLCBpbnQgbnRoKQogCWZv ciAoaGFzaCA9IDA7IGhhc2ggPCBMMlRQX0hBU0hfU0laRTsgaGFzaCsrKSB7CiAJCWhsaXN0X2Zv cl9lYWNoX2VudHJ5KHNlc3Npb24sICZ0dW5uZWwtPnNlc3Npb25faGxpc3RbaGFzaF0sIGhsaXN0 KSB7CiAJCQlpZiAoKytjb3VudCA+IG50aCkgeworCQkJCWwydHBfc2Vzc2lvbl9pbmNfcmVmY291 bnQoc2Vzc2lvbik7CisJCQkJaWYgKGRvX3JlZiAmJiBzZXNzaW9uLT5yZWYpCisJCQkJCXNlc3Np b24tPnJlZihzZXNzaW9uKTsKIAkJCQlyZWFkX3VubG9ja19iaCgmdHVubmVsLT5obGlzdF9sb2Nr KTsKIAkJCQlyZXR1cm4gc2Vzc2lvbjsKIAkJCX0KQEAgLTI5OCw3ICszMDIsNyBAQCBzdHJ1Y3Qg bDJ0cF9zZXNzaW9uICpsMnRwX3Nlc3Npb25fZmluZF9udGgoc3RydWN0IGwydHBfdHVubmVsICp0 dW5uZWwsIGludCBudGgpCiAKIAlyZXR1cm4gTlVMTDsKIH0KLUVYUE9SVF9TWU1CT0xfR1BMKGwy dHBfc2Vzc2lvbl9maW5kX250aCk7CitFWFBPUlRfU1lNQk9MX0dQTChsMnRwX3Nlc3Npb25fZ2V0 X250aCk7CiAKIC8qIExvb2t1cCBhIHNlc3Npb24gYnkgaW50ZXJmYWNlIG5hbWUuCiAgKiBUaGlz IGlzIHZlcnkgaW5lZmZpY2llbnQgYnV0IGlzIG9ubHkgdXNlZCBieSBtYW5hZ2VtZW50IGludGVy ZmFjZXMuCmRpZmYgLS1naXQgYS9uZXQvbDJ0cC9sMnRwX2NvcmUuaCBiL25ldC9sMnRwL2wydHBf Y29yZS5oCmluZGV4IDE4MWU3NTVjLi5lNzIzM2JhIDEwMDY0NAotLS0gYS9uZXQvbDJ0cC9sMnRw X2NvcmUuaAorKysgYi9uZXQvbDJ0cC9sMnRwX2NvcmUuaApAQCAtMjQzLDcgKzI0Myw4IEBAIHN0 YXRpYyBpbmxpbmUgc3RydWN0IGwydHBfdHVubmVsICpsMnRwX3NvY2tfdG9fdHVubmVsKHN0cnVj dCBzb2NrICpzaykKIHN0cnVjdCBsMnRwX3Nlc3Npb24gKmwydHBfc2Vzc2lvbl9maW5kKHN0cnVj dCBuZXQgKm5ldCwKIAkJCQkgICAgICAgc3RydWN0IGwydHBfdHVubmVsICp0dW5uZWwsCiAJCQkJ ICAgICAgIHUzMiBzZXNzaW9uX2lkKTsKLXN0cnVjdCBsMnRwX3Nlc3Npb24gKmwydHBfc2Vzc2lv bl9maW5kX250aChzdHJ1Y3QgbDJ0cF90dW5uZWwgKnR1bm5lbCwgaW50IG50aCk7CitzdHJ1Y3Qg bDJ0cF9zZXNzaW9uICpsMnRwX3Nlc3Npb25fZ2V0X250aChzdHJ1Y3QgbDJ0cF90dW5uZWwgKnR1 bm5lbCwgaW50IG50aCwKKwkJCQkJICBib29sIGRvX3JlZik7CiBzdHJ1Y3QgbDJ0cF9zZXNzaW9u ICpsMnRwX3Nlc3Npb25fZmluZF9ieV9pZm5hbWUoc3RydWN0IG5ldCAqbmV0LCBjaGFyICppZm5h bWUpOwogc3RydWN0IGwydHBfdHVubmVsICpsMnRwX3R1bm5lbF9maW5kKHN0cnVjdCBuZXQgKm5l dCwgdTMyIHR1bm5lbF9pZCk7CiBzdHJ1Y3QgbDJ0cF90dW5uZWwgKmwydHBfdHVubmVsX2ZpbmRf bnRoKHN0cnVjdCBuZXQgKm5ldCwgaW50IG50aCk7CmRpZmYgLS1naXQgYS9uZXQvbDJ0cC9sMnRw X2RlYnVnZnMuYyBiL25ldC9sMnRwL2wydHBfZGVidWdmcy5jCmluZGV4IDJkNjc2MGEuLmQxMDBh ZWQgMTAwNjQ0Ci0tLSBhL25ldC9sMnRwL2wydHBfZGVidWdmcy5jCisrKyBiL25ldC9sMnRwL2wy dHBfZGVidWdmcy5jCkBAIC01Myw3ICs1Myw3IEBAIHN0YXRpYyB2b2lkIGwydHBfZGZzX25leHRf dHVubmVsKHN0cnVjdCBsMnRwX2Rmc19zZXFfZGF0YSAqcGQpCiAKIHN0YXRpYyB2b2lkIGwydHBf ZGZzX25leHRfc2Vzc2lvbihzdHJ1Y3QgbDJ0cF9kZnNfc2VxX2RhdGEgKnBkKQogewotCXBkLT5z ZXNzaW9uID0gbDJ0cF9zZXNzaW9uX2ZpbmRfbnRoKHBkLT50dW5uZWwsIHBkLT5zZXNzaW9uX2lk eCk7CisJcGQtPnNlc3Npb24gPSBsMnRwX3Nlc3Npb25fZ2V0X250aChwZC0+dHVubmVsLCBwZC0+ c2Vzc2lvbl9pZHgsIHRydWUpOwogCXBkLT5zZXNzaW9uX2lkeCsrOwogCiAJaWYgKHBkLT5zZXNz aW9uID09IE5VTEwpIHsKQEAgLTIzOCwxMCArMjM4LDE0IEBAIHN0YXRpYyBpbnQgbDJ0cF9kZnNf c2VxX3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp2KQogCX0KIAogCS8qIFNob3cgdGhl IHR1bm5lbCBvciBzZXNzaW9uIGNvbnRleHQgKi8KLQlpZiAocGQtPnNlc3Npb24gPT0gTlVMTCkK KwlpZiAoIXBkLT5zZXNzaW9uKSB7CiAJCWwydHBfZGZzX3NlcV90dW5uZWxfc2hvdyhtLCBwZC0+ dHVubmVsKTsKLQllbHNlCisJfSBlbHNlIHsKIAkJbDJ0cF9kZnNfc2VxX3Nlc3Npb25fc2hvdyht LCBwZC0+c2Vzc2lvbik7CisJCWlmIChwZC0+c2Vzc2lvbi0+ZGVyZWYpCisJCQlwZC0+c2Vzc2lv bi0+ZGVyZWYocGQtPnNlc3Npb24pOworCQlsMnRwX3Nlc3Npb25fZGVjX3JlZmNvdW50KHBkLT5z ZXNzaW9uKTsKKwl9CiAKIG91dDoKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL25ldC9sMnRwL2wy dHBfbmV0bGluay5jIGIvbmV0L2wydHAvbDJ0cF9uZXRsaW5rLmMKaW5kZXggYmYzMTE3Ny4uOWY2 NjI3MiAxMDA2NDQKLS0tIGEvbmV0L2wydHAvbDJ0cF9uZXRsaW5rLmMKKysrIGIvbmV0L2wydHAv bDJ0cF9uZXRsaW5rLmMKQEAgLTg0NCw3ICs4NDQsNyBAQCBzdGF0aWMgaW50IGwydHBfbmxfY21k X3Nlc3Npb25fZHVtcChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0bGlua19jYWxsYmFj awogCQkJCWdvdG8gb3V0OwogCQl9CiAKLQkJc2Vzc2lvbiA9IGwydHBfc2Vzc2lvbl9maW5kX250 aCh0dW5uZWwsIHNpKTsKKwkJc2Vzc2lvbiA9IGwydHBfc2Vzc2lvbl9nZXRfbnRoKHR1bm5lbCwg c2ksIGZhbHNlKTsKIAkJaWYgKHNlc3Npb24gPT0gTlVMTCkgewogCQkJdGkrKzsKIAkJCXR1bm5l bCA9IE5VTEw7CkBAIC04NTQsOCArODU0LDExIEBAIHN0YXRpYyBpbnQgbDJ0cF9ubF9jbWRfc2Vz c2lvbl9kdW1wKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrCiAK IAkJaWYgKGwydHBfbmxfc2Vzc2lvbl9zZW5kKHNrYiwgTkVUTElOS19DQihjYi0+c2tiKS5wb3J0 aWQsCiAJCQkJCSBjYi0+bmxoLT5ubG1zZ19zZXEsIE5MTV9GX01VTFRJLAotCQkJCQkgc2Vzc2lv biwgTDJUUF9DTURfU0VTU0lPTl9HRVQpIDwgMCkKKwkJCQkJIHNlc3Npb24sIEwyVFBfQ01EX1NF U1NJT05fR0VUKSA8IDApIHsKKwkJCWwydHBfc2Vzc2lvbl9kZWNfcmVmY291bnQoc2Vzc2lvbik7 CiAJCQlicmVhazsKKwkJfQorCQlsMnRwX3Nlc3Npb25fZGVjX3JlZmNvdW50KHNlc3Npb24pOwog CiAJCXNpKys7CiAJfQpkaWZmIC0tZ2l0IGEvbmV0L2wydHAvbDJ0cF9wcHAuYyBiL25ldC9sMnRw L2wydHBfcHBwLmMKaW5kZXggNTFjMTkwZC4uNGRiMzMxNyAxMDA2NDQKLS0tIGEvbmV0L2wydHAv bDJ0cF9wcHAuYworKysgYi9uZXQvbDJ0cC9sMnRwX3BwcC5jCkBAIC0xNTU1LDcgKzE1NTUsNyBA QCBzdGF0aWMgdm9pZCBwcHBvbDJ0cF9uZXh0X3R1bm5lbChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVj dCBwcHBvbDJ0cF9zZXFfZGF0YSAqcGQpCiAKIHN0YXRpYyB2b2lkIHBwcG9sMnRwX25leHRfc2Vz c2lvbihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBwcHBvbDJ0cF9zZXFfZGF0YSAqcGQpCiB7Ci0J cGQtPnNlc3Npb24gPSBsMnRwX3Nlc3Npb25fZmluZF9udGgocGQtPnR1bm5lbCwgcGQtPnNlc3Np b25faWR4KTsKKwlwZC0+c2Vzc2lvbiA9IGwydHBfc2Vzc2lvbl9nZXRfbnRoKHBkLT50dW5uZWws IHBkLT5zZXNzaW9uX2lkeCwgdHJ1ZSk7CiAJcGQtPnNlc3Npb25faWR4Kys7CiAKIAlpZiAocGQt PnNlc3Npb24gPT0gTlVMTCkgewpAQCAtMTY4MiwxMCArMTY4MiwxNCBAQCBzdGF0aWMgaW50IHBw cG9sMnRwX3NlcV9zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdikKIAogCS8qIFNob3cg dGhlIHR1bm5lbCBvciBzZXNzaW9uIGNvbnRleHQuCiAJICovCi0JaWYgKHBkLT5zZXNzaW9uID09 IE5VTEwpCisJaWYgKCFwZC0+c2Vzc2lvbikgewogCQlwcHBvbDJ0cF9zZXFfdHVubmVsX3Nob3co bSwgcGQtPnR1bm5lbCk7Ci0JZWxzZQorCX0gZWxzZSB7CiAJCXBwcG9sMnRwX3NlcV9zZXNzaW9u X3Nob3cobSwgcGQtPnNlc3Npb24pOworCQlpZiAocGQtPnNlc3Npb24tPmRlcmVmKQorCQkJcGQt PnNlc3Npb24tPmRlcmVmKHBkLT5zZXNzaW9uKTsKKwkJbDJ0cF9zZXNzaW9uX2RlY19yZWZjb3Vu dChwZC0+c2Vzc2lvbik7CisJfQogCiBvdXQ6CiAJcmV0dXJuIDA7Ci0tIAoyLjQuMTEKCgpGcm9t IDZiZmU5NTEzM2FmZWI0NzAwNzhkYjA2YTMxOTgzYTUwM2M0ZTZlZGUgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IEd1aWxsYXVtZSBOYXVsdCA8Zy5uYXVsdEBhbHBoYWxpbmsuZnI+CkRh dGU6IE1vbiwgMyBBcHIgMjAxNyAxMzoyMzoxNSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTIvMzNd IGwydHA6IGZpeCBQUFAgcHNldWRvLXdpcmUgYXV0by1sb2FkaW5nCgpbIFVwc3RyZWFtIGNvbW1p dCAyNDllZTgxOWUyNGMxODA5MDlmNDNjMTE3M2M4ZWY2NzI0ZDIxZmFmIF0KClBQUCBwc2V1ZG8t d2lyZSB0eXBlIGlzIDcgKDExIGlzIEwyVFBfUFdUWVBFX0lQKS4KCkZpeGVzOiBmMWYzOWY5MTEw MjcgKCJsMnRwOiBhdXRvIGxvYWQgdHlwZSBtb2R1bGVzIikKU2lnbmVkLW9mZi1ieTogR3VpbGxh dW1lIE5hdWx0IDxnLm5hdWx0QGFscGhhbGluay5mcj4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9sMnRwL2wydHBfcHBwLmMgfCAy ICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYg LS1naXQgYS9uZXQvbDJ0cC9sMnRwX3BwcC5jIGIvbmV0L2wydHAvbDJ0cF9wcHAuYwppbmRleCA0 ZGIzMzE3Li4xMzg3ZjU0IDEwMDY0NAotLS0gYS9uZXQvbDJ0cC9sMnRwX3BwcC5jCisrKyBiL25l dC9sMnRwL2wydHBfcHBwLmMKQEAgLTE4NDgsNCArMTg0OCw0IEBAIE1PRFVMRV9ERVNDUklQVElP TigiUFBQIG92ZXIgTDJUUCBvdmVyIFVEUCIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwogTU9E VUxFX1ZFUlNJT04oUFBQT0wyVFBfRFJWX1ZFUlNJT04pOwogTU9EVUxFX0FMSUFTX05FVF9QRl9Q Uk9UTyhQRl9QUFBPWCwgUFhfUFJPVE9fT0wyVFApOwotTU9EVUxFX0FMSUFTX0wyVFBfUFdUWVBF KDExKTsKK01PRFVMRV9BTElBU19MMlRQX1BXVFlQRSg3KTsKLS0gCjIuNC4xMQoKCkZyb20gMGZh NWQ4MDVkMTQ0YjE1MWQwNTY1Yjc4NGMyYWIyODMwMzk3NDY0NSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRmxvcmlhbiBMYXJ5c2NoIDxmbEBuNjIxLmRlPgpEYXRlOiBNb24sIDMgQXBy IDIwMTcgMTY6NDY6MDkgKzAyMDAKU3ViamVjdDogW1BBVENIIDEzLzMzXSBuZXQ6IGlwdjQ6IGZp eCBtdWx0aXBhdGggUlRNX0dFVFJPVVRFIGJlaGF2aW9yIHdoZW4gaWlmCiBpcyBnaXZlbgoKWyBV cHN0cmVhbSBjb21taXQgYTg4MDE3OTljNjk3NTYwMWZkNThhZTYyZjQ4OTY0Y2FlYzJlYjgzZiBd CgppbmV0X3J0bV9nZXRyb3V0ZSBzeW50aGVzaXplcyBhIHNrZWxldGFsIElDTVAgc2tiLCB3aGlj aCBpcyBwYXNzZWQgdG8KaXBfcm91dGVfaW5wdXQgd2hlbiBpaWYgaXMgZ2l2ZW4uIElmIGEgbXVs dGlwYXRoIHJvdXRlIGlzIHByZXNlbnQgZm9yCnRoZSBkZXNpZ25hdGVkIGRlc3RpbmF0aW9uLCBp cF9tdWx0aXBhdGhfaWNtcF9oYXNoIGVuZHMgdXAgYmVpbmcgY2FsbGVkLAp3aGljaCB1c2VzIHRo ZSBzb3VyY2UvZGVzdGluYXRpb24gYWRkcmVzc2VzIHdpdGhpbiB0aGUgc2tiIHRvIGNhbGN1bGF0 ZQphIGhhc2guIEhvd2V2ZXIsIHRob3NlIGFyZSBub3Qgc2V0IGluIHRoZSBzeW50aGV0aWMgc2ti LCBjYXVzaW5nIGl0IHRvCnJldHVybiBhbiBhcmJpdHJhcnkgYW5kIGluY29ycmVjdCByZXN1bHQu CgpJbnN0ZWFkLCB1c2UgVURQLCB3aGljaCBnZXRzIG5vIHN1Y2ggc3BlY2lhbCB0cmVhdG1lbnQu CgpTaWduZWQtb2ZmLWJ5OiBGbG9yaWFuIExhcnlzY2ggPGZsQG42MjEuZGU+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC9y b3V0ZS5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9u KC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvcm91dGUuYyBiL25ldC9pcHY0L3JvdXRlLmMKaW5k ZXggMTdlNmZiZi4uNmRiY2IzNyAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvcm91dGUuYworKysgYi9u ZXQvaXB2NC9yb3V0ZS5jCkBAIC0yNTY5LDcgKzI1NjksNyBAQCBzdGF0aWMgaW50IGluZXRfcnRt X2dldHJvdXRlKHN0cnVjdCBza19idWZmICppbl9za2IsIHN0cnVjdCBubG1zZ2hkciAqbmxoKQog CXNrYl9yZXNldF9uZXR3b3JrX2hlYWRlcihza2IpOwogCiAJLyogQnVnZml4OiBuZWVkIHRvIGdp dmUgaXBfcm91dGVfaW5wdXQgZW5vdWdoIG9mIGFuIElQIGhlYWRlciB0byBub3QgZ2FnLiAqLwot CWlwX2hkcihza2IpLT5wcm90b2NvbCA9IElQUFJPVE9fSUNNUDsKKwlpcF9oZHIoc2tiKS0+cHJv dG9jb2wgPSBJUFBST1RPX1VEUDsKIAlza2JfcmVzZXJ2ZShza2IsIE1BWF9IRUFERVIgKyBzaXpl b2Yoc3RydWN0IGlwaGRyKSk7CiAKIAlzcmMgPSB0YltSVEFfU1JDXSA/IG5sYV9nZXRfaW5fYWRk cih0YltSVEFfU1JDXSkgOiAwOwotLSAKMi40LjExCgoKRnJvbSA1ODMzZjdkN2ZjN2JiYmE0Yzhh NjY0ZTFlMjY2ZWUzMmQzMjA5NTAyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBYaW4g TG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkRhdGU6IFRodSwgNiBBcHIgMjAxNyAxMzoxMDo1 MiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTQvMzNdIHNjdHA6IGxpc3RlbiBvbiB0aGUgc29jayBv bmx5IHdoZW4gaXQncyBzdGF0ZSBpcwogbGlzdGVuaW5nIG9yIGNsb3NlZAoKWyBVcHN0cmVhbSBj b21taXQgMzRiMjc4OWYxZDliZjhkY2NhOWI1Y2I1NTNkMDc2Y2EyY2Q4OThlZSBdCgpOb3cgc2N0 cCBkb2Vzbid0IGNoZWNrIHNvY2sncyBzdGF0ZSBiZWZvcmUgbGlzdGVuaW5nIG9uIGl0LiBJdCBj b3VsZApldmVuIGNhdXNlIGNoYW5naW5nIGEgc29jayB3aXRoIGFueSBzdGF0ZSB0byBiZWNvbWUg YSBsaXN0ZW5pbmcgc29jawp3aGVuIGRvaW5nIHNjdHBfbGlzdGVuLgoKVGhpcyBwYXRjaCBpcyB0 byBmaXggaXQgYnkgY2hlY2tpbmcgc29jaydzIHN0YXRlIGluIHNjdHBfbGlzdGVuLCBzbwp0aGF0 IGl0IHdpbGwgbGlzdGVuIG9uIHRoZSBzb2NrIHdpdGggcmlnaHQgc3RhdGUuCgpSZXBvcnRlZC1i eTogQW5kcmV5IEtvbm92YWxvdiA8YW5kcmV5a252bEBnb29nbGUuY29tPgpUZXN0ZWQtYnk6IEFu ZHJleSBLb25vdmFsb3YgPGFuZHJleWtudmxAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogWGlu IExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpBY2tlZC1ieTogTWFyY2VsbyBSaWNhcmRvIExl aXRuZXIgPG1hcmNlbG8ubGVpdG5lckBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2N0cC9zb2NrZXQuYyB8IDMg KysrCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L3Nj dHAvc29ja2V0LmMgYi9uZXQvc2N0cC9zb2NrZXQuYwppbmRleCA2NzM0NDIwLi4xNDM0NmRjIDEw MDY0NAotLS0gYS9uZXQvc2N0cC9zb2NrZXQuYworKysgYi9uZXQvc2N0cC9zb2NrZXQuYwpAQCAt Njg2MSw2ICs2ODYxLDkgQEAgaW50IHNjdHBfaW5ldF9saXN0ZW4oc3RydWN0IHNvY2tldCAqc29j aywgaW50IGJhY2tsb2cpCiAJaWYgKHNvY2stPnN0YXRlICE9IFNTX1VOQ09OTkVDVEVEKQogCQln b3RvIG91dDsKIAorCWlmICghc2N0cF9zc3RhdGUoc2ssIExJU1RFTklORykgJiYgIXNjdHBfc3N0 YXRlKHNrLCBDTE9TRUQpKQorCQlnb3RvIG91dDsKKwogCS8qIElmIGJhY2tsb2cgaXMgemVybywg ZGlzYWJsZSBsaXN0ZW5pbmcuICovCiAJaWYgKCFiYWNrbG9nKSB7CiAJCWlmIChzY3RwX3NzdGF0 ZShzaywgQ0xPU0VEKSkKLS0gCjIuNC4xMQoKCkZyb20gYzhiZmJiMTdkMjc3OTM4MTFhYWZjZmVi YTU4MjVjN2RkYmE3NmIzZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1h emV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBTYXQsIDggQXByIDIwMTcgMDg6MDc6MzMg LTA3MDAKU3ViamVjdDogW1BBVENIIDE1LzMzXSB0Y3A6IGNsZWFyIHNhdmVkX3N5biBpbiB0Y3Bf ZGlzY29ubmVjdCgpCgpbIFVwc3RyZWFtIGNvbW1pdCAxN2MzMDYwYjE3MDFmYzY5ZGFlZGI0Yzkw YmU2MzI1ZDNkOWZjYThlIF0KCkluIHRoZSAodmVyeSB1bmxpa2VseSkgY2FzZSBhIHBhc3NpdmUg c29ja2V0IGJlY29tZXMgYSBsaXN0ZW5lciwKd2UgZG8gbm90IHdhbnQgdG8gZHVwbGljYXRlIGl0 cyBzYXZlZCBTWU4gaGVhZGVycy4KClRoaXMgd291bGQgbGVhZCB0byBkb3VibGUgZnJlZXMsIHVz ZSBhZnRlciBmcmVlLCBhbmQgcGxlYXNlIGhhY2tlcnMgYW5kCnZhcmlvdXMgZnV6emVycwoKVGVz dGVkOgogICAgMCBzb2NrZXQoLi4uLCBTT0NLX1NUUkVBTSwgSVBQUk9UT19UQ1ApID0gMwogICAr MCBzZXRzb2Nrb3B0KDMsIElQUFJPVE9fVENQLCBUQ1BfU0FWRV9TWU4sIFsxXSwgNCkgPSAwCiAg ICswIGZjbnRsKDMsIEZfU0VURkwsIE9fUkRXUnxPX05PTkJMT0NLKSA9IDAKCiAgICswIGJpbmQo MywgLi4uLCAuLi4pID0gMAogICArMCBsaXN0ZW4oMywgNSkgPSAwCgogICArMCA8IFMgMDowKDAp IHdpbiAzMjk3MiA8bXNzIDE0NjAsbm9wLHdzY2FsZSA3PgogICArMCA+IFMuIDA6MCgwKSBhY2sg MSA8Li4uPgogICsuMSA8IC4gMToxKDApIGFjayAxIHdpbiAyNTcKICAgKzAgYWNjZXB0KDMsIC4u LiwgLi4uKSA9IDQKCiAgICswIGNvbm5lY3QoNCwgQUZfVU5TUEVDLCAuLi4pID0gMAogICArMCBj bG9zZSgzKSA9IDAKICAgKzAgYmluZCg0LCAuLi4sIC4uLikgPSAwCiAgICswIGxpc3Rlbig0LCA1 KSA9IDAKCiAgICswIDwgUyAwOjAoMCkgd2luIDMyOTcyIDxtc3MgMTQ2MCxub3Asd3NjYWxlIDc+ CiAgICswID4gUy4gMDowKDApIGFjayAxIDwuLi4+CiAgKy4xIDwgLiAxOjEoMCkgYWNrIDEgd2lu IDI1NwoKRml4ZXM6IGNkOGFlODUyOTlkNSAoInRjcDogcHJvdmlkZSBTWU4gaGVhZGVycyBmb3Ig cGFzc2l2ZSBjb25uZWN0aW9ucyIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6 ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3RjcC5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBp bnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3AuYyBiL25ldC9pcHY0L3RjcC5j CmluZGV4IDZhOTBhMGUuLmViMTQyY2EgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcC5jCisrKyBi L25ldC9pcHY0L3RjcC5jCkBAIC0yMjk3LDYgKzIyOTcsNyBAQCBpbnQgdGNwX2Rpc2Nvbm5lY3Qo c3RydWN0IHNvY2sgKnNrLCBpbnQgZmxhZ3MpCiAJdGNwX2luaXRfc2VuZF9oZWFkKHNrKTsKIAlt ZW1zZXQoJnRwLT5yeF9vcHQsIDAsIHNpemVvZih0cC0+cnhfb3B0KSk7CiAJX19za19kc3RfcmVz ZXQoc2spOworCXRjcF9zYXZlZF9zeW5fZnJlZSh0cCk7CiAKIAlXQVJOX09OKGluZXQtPmluZXRf bnVtICYmICFpY3NrLT5pY3NrX2JpbmRfaGFzaCk7CiAKLS0gCjIuNC4xMQoKCkZyb20gMzMwNGQy YjIxY2Q1ZDY3Y2Q2MWRkZTQ0ODRjOTM2NjA1N2QyNjFiMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogUmFiaW4gVmluY2VudCA8cmFiaW52QGF4aXMuY29tPgpEYXRlOiBNb24sIDEwIEFw ciAyMDE3IDA4OjM2OjM5ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxNi8zM10gaXB2NjogRml4IGlk ZXYtPmFkZHJfbGlzdCBjb3JydXB0aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCBhMmQ2Y2JiMDY3MGQ1 NDgwNmYxODE5MmNiMGRiMjY2YjRhNmQyODVhIF0KCmFkZHJjb25mX2lmZG93bigpIHJlbW92ZXMg ZWxlbWVudHMgZnJvbSB0aGUgaWRldi0+YWRkcl9saXN0IHdpdGhvdXQKaG9sZGluZyB0aGUgaWRl di0+bG9jay4KCklmIHRoaXMgaGFwcGVucyB3aGlsZSB0aGUgbG9vcCBpbiBfX2lwdjZfZGV2X2dl dF9zYWRkcigpIGlzIGhhbmRsaW5nIHRoZQpzYW1lIGVsZW1lbnQsIHRoYXQgZnVuY3Rpb24gZW5k cyB1cCBpbiBhbiBpbmZpbml0ZSBsb29wOgoKICBOTUkgd2F0Y2hkb2c6IEJVRzogc29mdCBsb2Nr dXAgLSBDUFUjMSBzdHVjayBmb3IgMjNzISBbdGVzdDoxNzE5XQogIENhbGwgVHJhY2U6CiAgIGlw djZfZ2V0X3NhZGRyX2V2YWwrMHgxM2MvMHgzYTAKICAgX19pcHY2X2Rldl9nZXRfc2FkZHIrMHhl NC8weDFmMAogICBpcHY2X2Rldl9nZXRfc2FkZHIrMHgxYjQvMHgyMDQKICAgaXA2X2RzdF9sb29r dXBfdGFpbCsweGNjLzB4MjdjCiAgIGlwNl9kc3RfbG9va3VwX2Zsb3crMHgzOC8weDgwCiAgIHVk cHY2X3NlbmRtc2crMHg3MDgvMHhiYTgKICAgc29ja19zZW5kbXNnKzB4MTgvMHgzMAogICBTeVNf c2VuZHRvKzB4YjgvMHhmOAogICBzeXNjYWxsX2NvbW1vbisweDM0LzB4NTgKCkZpeGVzOiA2YTky MzkzNGMzMyAoUmV2ZXJ0ICJpcHY2OiBSZXZlcnQgb3B0aW9uYWwgYWRkcmVzcyBmbHVzaW5nIG9u IGlmZG93bi4iKQpTaWduZWQtb2ZmLWJ5OiBSYWJpbiBWaW5jZW50IDxyYWJpbnZAYXhpcy5jb20+ CkFja2VkLWJ5OiBEYXZpZCBBaGVybiA8ZHNhQGN1bXVsdXNuZXR3b3Jrcy5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2 Ni9hZGRyY29uZi5jIHwgMTEgKysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlv bnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvYWRkcmNvbmYuYyBi L25ldC9pcHY2L2FkZHJjb25mLmMKaW5kZXggOTVkZmNiYS4uY2JjYzk5MSAxMDA2NDQKLS0tIGEv bmV0L2lwdjYvYWRkcmNvbmYuYworKysgYi9uZXQvaXB2Ni9hZGRyY29uZi5jCkBAIC0zNjAyLDE0 ICszNjAyLDE5IEBAIHN0YXRpYyBpbnQgYWRkcmNvbmZfaWZkb3duKHN0cnVjdCBuZXRfZGV2aWNl ICpkZXYsIGludCBob3cpCiAJSU5JVF9MSVNUX0hFQUQoJmRlbF9saXN0KTsKIAlsaXN0X2Zvcl9l YWNoX2VudHJ5X3NhZmUoaWZhLCB0bXAsICZpZGV2LT5hZGRyX2xpc3QsIGlmX2xpc3QpIHsKIAkJ c3RydWN0IHJ0Nl9pbmZvICpydCA9IE5VTEw7CisJCWJvb2wga2VlcDsKIAogCQlhZGRyY29uZl9k ZWxfZGFkX3dvcmsoaWZhKTsKIAorCQlrZWVwID0ga2VlcF9hZGRyICYmIChpZmEtPmZsYWdzICYg SUZBX0ZfUEVSTUFORU5UKSAmJgorCQkJIWFkZHJfaXNfbG9jYWwoJmlmYS0+YWRkcik7CisJCWlm ICgha2VlcCkKKwkJCWxpc3RfbW92ZSgmaWZhLT5pZl9saXN0LCAmZGVsX2xpc3QpOworCiAJCXdy aXRlX3VubG9ja19iaCgmaWRldi0+bG9jayk7CiAJCXNwaW5fbG9ja19iaCgmaWZhLT5sb2NrKTsK IAotCQlpZiAoa2VlcF9hZGRyICYmIChpZmEtPmZsYWdzICYgSUZBX0ZfUEVSTUFORU5UKSAmJgot CQkgICAgIWFkZHJfaXNfbG9jYWwoJmlmYS0+YWRkcikpIHsKKwkJaWYgKGtlZXApIHsKIAkJCS8q IHNldCBzdGF0ZSB0byBza2lwIHRoZSBub3RpZmllciBiZWxvdyAqLwogCQkJc3RhdGUgPSBJTkVU Nl9JRkFERFJfU1RBVEVfREVBRDsKIAkJCWlmYS0+c3RhdGUgPSAwOwpAQCAtMzYyMSw4ICszNjI2 LDYgQEAgc3RhdGljIGludCBhZGRyY29uZl9pZmRvd24oc3RydWN0IG5ldF9kZXZpY2UgKmRldiwg aW50IGhvdykKIAkJfSBlbHNlIHsKIAkJCXN0YXRlID0gaWZhLT5zdGF0ZTsKIAkJCWlmYS0+c3Rh dGUgPSBJTkVUNl9JRkFERFJfU1RBVEVfREVBRDsKLQotCQkJbGlzdF9tb3ZlKCZpZmEtPmlmX2xp c3QsICZkZWxfbGlzdCk7CiAJCX0KIAogCQlzcGluX3VubG9ja19iaCgmaWZhLT5sb2NrKTsKLS0g CjIuNC4xMQoKCkZyb20gZjA1Y2E0YTM3NGUxNTdmNjZhOGE2MjUyNjg4YTJjNDQ5YThhMTlkNyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogV2lsbGVtIGRlIEJydWlqbiA8d2lsbGVtYkBn b29nbGUuY29tPgpEYXRlOiBXZWQsIDEyIEFwciAyMDE3IDE5OjI0OjM1IC0wNDAwClN1YmplY3Q6 IFtQQVRDSCAxNy8zM10gbmV0LXRpbWVzdGFtcDogYXZvaWQgdXNlLWFmdGVyLWZyZWUgaW4gaXBf cmVjdl9lcnJvcgoKWyBVcHN0cmVhbSBjb21taXQgMTg2MmQ2MjA4ZGIwYWVjYTljOGFjZTQ0OTE1 YjA4ZDVhYjJjZDY2NyBdCgpTeXprYWxsZXIgcmVwb3J0ZWQgYSB1c2UtYWZ0ZXItZnJlZSBpbiBp cF9yZWN2X2Vycm9yIGF0IGxpbmUKCiAgICBpbmZvLT5pcGlfaWZpbmRleCA9IHNrYi0+ZGV2LT5p ZmluZGV4OwoKVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgb24gZGVxdWV1ZSBmcm9tIHRoZSBlcnJv ciBxdWV1ZSwgYXQgd2hpY2gKcG9pbnQgdGhlIGRldmljZSBwb2ludGVyIG1heSBubyBsb25nZXIg YmUgdmFsaWQuCgpTYXZlIGlmaW5kZXggb24gZW5xdWV1ZSBpbiBfX3NrYl9jb21wbGV0ZV90eF90 aW1lc3RhbXAsIHdoZW4gdGhlCnBvaW50ZXIgaXMgdmFsaWQgb3IgTlVMTC4gU3RvcmUgaXQgaW4g dGVtcG9yYXJ5IHN0b3JhZ2Ugc2tiLT5jYi4KCkl0IGlzIHNhZmUgdG8gcmVmZXJlbmNlIHNrYi0+ ZGV2IGhlcmUsIGFzIGNhbGxlZCBmcm9tIGRldmljZSBkcml2ZXJzCm9yIGRldl9xdWV1ZV94bWl0 LiBUaGUgZXhjZXB0aW9uIGlzIHdoZW4gY2FsbGVkIGZyb20gdGNwX2Fja190c3RhbXA7CmluIHRo YXQgY2FzZSBpdCBpcyBOVUxMIGFuZCBpZmluZGV4IGlzIHNldCB0byAwIChpbnZhbGlkKS4KCkRv IG5vdCByZXR1cm4gYSBwa3RpbmZvIGNtc2cgaWYgaWZpbmRleCBpcyAwLiBUaGlzIG1haW50YWlu cyB0aGUKY3VycmVudCBiZWhhdmlvciBvZiBub3QgcmV0dXJuaW5nIGEgY21zZyBpZiBza2ItPmRl diB3YXMgTlVMTC4KCk9uIGRlcXVldWUsIHRoZSBpcHY0IHBhdGggd2lsbCBjYXN0IGZyb20gc29j a19leHRlcnJfc2tiIHRvCmluX3BrdGluZm8uIEJvdGggaGF2ZSBpZmluZGV4IGFzIHRoZWlyIGZp cnN0IGVsZW1lbnQsIHNvIG5vIGV4cGxpY2l0CmNvbnZlcnNpb24gaXMgbmVlZGVkLiBUaGlzIGlz IGJ5IGRlc2lnbiwgaW50cm9kdWNlZCBpbiBjb21taXQKMGI5MjJiN2E4MjljICgibmV0OiBvcmln aW5hbCBpbmdyZXNzIGRldmljZSBpbmRleCBpbiBQS1RJTkZPIikuIEZvcgppcHY2IGlwNl9kYXRh Z3JhbV9zdXBwb3J0X2Ntc2cgY29udmVydHMgdG8gaW42X3BrdGluZm8uCgpGaXhlczogODI5YWU5 ZDYxMTY1ICgibmV0LXRpbWVzdGFtcDogYWxsb3cgcmVhZGluZyByZWN2IGNtc2cgb24gZXJycXVl dWUgd2l0aCBvcmlnaW4gdHN0YW1wIikKUmVwb3J0ZWQtYnk6IEFuZHJleSBLb25vdmFsb3YgPGFu ZHJleWtudmxAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogV2lsbGVtIGRlIEJydWlqbiA8d2ls bGVtYkBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUvc2tidWZmLmMgICAgICB8ICAxICsKIG5ldC9pcHY0 L2lwX3NvY2tnbHVlLmMgfCAgOSArKysrLS0tLS0KIG5ldC9pcHY2L2RhdGFncmFtLmMgICAgfCAx MCArLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvc2tidWZmLmMgYi9uZXQvY29yZS9za2J1ZmYu YwppbmRleCBmMGY0NjJjLi41ZWMzNGVhIDEwMDY0NAotLS0gYS9uZXQvY29yZS9za2J1ZmYuYwor KysgYi9uZXQvY29yZS9za2J1ZmYuYwpAQCAtMzc3OSw2ICszNzc5LDcgQEAgc3RhdGljIHZvaWQg X19za2JfY29tcGxldGVfdHhfdGltZXN0YW1wKHN0cnVjdCBza19idWZmICpza2IsCiAJc2Vyci0+ ZWUuZWVfZXJybm8gPSBFTk9NU0c7CiAJc2Vyci0+ZWUuZWVfb3JpZ2luID0gU09fRUVfT1JJR0lO X1RJTUVTVEFNUElORzsKIAlzZXJyLT5lZS5lZV9pbmZvID0gdHN0eXBlOworCXNlcnItPmhlYWRl ci5oNC5paWYgPSBza2ItPmRldiA/IHNrYi0+ZGV2LT5pZmluZGV4IDogMDsKIAlpZiAoc2stPnNr X3RzZmxhZ3MgJiBTT0ZfVElNRVNUQU1QSU5HX09QVF9JRCkgewogCQlzZXJyLT5lZS5lZV9kYXRh ID0gc2tiX3NoaW5mbyhza2IpLT50c2tleTsKIAkJaWYgKHNrLT5za19wcm90b2NvbCA9PSBJUFBS T1RPX1RDUCAmJgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaXBfc29ja2dsdWUuYyBiL25ldC9pcHY0 L2lwX3NvY2tnbHVlLmMKaW5kZXggOTgyNjY5NS4uNGQzN2JkYyAxMDA2NDQKLS0tIGEvbmV0L2lw djQvaXBfc29ja2dsdWUuYworKysgYi9uZXQvaXB2NC9pcF9zb2NrZ2x1ZS5jCkBAIC00NzQsMTYg KzQ3NCwxNSBAQCBzdGF0aWMgYm9vbCBpcHY0X2RhdGFncmFtX3N1cHBvcnRfY21zZyhjb25zdCBz dHJ1Y3Qgc29jayAqc2ssCiAJCXJldHVybiBmYWxzZTsKIAogCS8qIFN1cHBvcnQgSVBfUEtUSU5G TyBvbiB0c3RhbXAgcGFja2V0cyBpZiByZXF1ZXN0ZWQsIHRvIGNvcnJlbGF0ZQotCSAqIHRpbWVz dGFtcCB3aXRoIGVncmVzcyBkZXYuIE5vdCBwb3NzaWJsZSBmb3IgcGFja2V0cyB3aXRob3V0IGRl dgorCSAqIHRpbWVzdGFtcCB3aXRoIGVncmVzcyBkZXYuIE5vdCBwb3NzaWJsZSBmb3IgcGFja2V0 cyB3aXRob3V0IGlpZgogCSAqIG9yIHdpdGhvdXQgcGF5bG9hZCAoU09GX1RJTUVTVEFNUElOR19P UFRfVFNPTkxZKS4KIAkgKi8KLQlpZiAoKCEoc2stPnNrX3RzZmxhZ3MgJiBTT0ZfVElNRVNUQU1Q SU5HX09QVF9DTVNHKSkgfHwKLQkgICAgKCFza2ItPmRldikpCisJaW5mbyA9IFBLVElORk9fU0tC X0NCKHNrYik7CisJaWYgKCEoc2stPnNrX3RzZmxhZ3MgJiBTT0ZfVElNRVNUQU1QSU5HX09QVF9D TVNHKSB8fAorCSAgICAhaW5mby0+aXBpX2lmaW5kZXgpCiAJCXJldHVybiBmYWxzZTsKIAotCWlu Zm8gPSBQS1RJTkZPX1NLQl9DQihza2IpOwogCWluZm8tPmlwaV9zcGVjX2RzdC5zX2FkZHIgPSBp cF9oZHIoc2tiKS0+c2FkZHI7Ci0JaW5mby0+aXBpX2lmaW5kZXggPSBza2ItPmRldi0+aWZpbmRl eDsKIAlyZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvZGF0YWdyYW0uYyBi L25ldC9pcHY2L2RhdGFncmFtLmMKaW5kZXggODYxNmQxNy4uNDQyZWMxZiAxMDA2NDQKLS0tIGEv bmV0L2lwdjYvZGF0YWdyYW0uYworKysgYi9uZXQvaXB2Ni9kYXRhZ3JhbS5jCkBAIC00MDAsOSAr NDAwLDYgQEAgc3RhdGljIGlubGluZSBib29sIGlwdjZfZGF0YWdyYW1fc3VwcG9ydF9hZGRyKHN0 cnVjdCBzb2NrX2V4dGVycl9za2IgKnNlcnIpCiAgKiBBdCBvbmUgcG9pbnQsIGV4Y2x1ZGluZyBs b2NhbCBlcnJvcnMgd2FzIGEgcXVpY2sgdGVzdCB0byBpZGVudGlmeSBpY21wL2ljbXA2CiAgKiBl cnJvcnMuIFRoaXMgaXMgbm8gbG9uZ2VyIHRydWUsIGJ1dCB0aGUgdGVzdCByZW1haW5lZCwgc28g dGhlIHY2IHN0YWNrLAogICogdW5saWtlIHY0LCBhbHNvIGhvbm9ycyBjbXNnIHJlcXVlc3RzIG9u IGFsbCB3aWZpIGFuZCB0aW1lc3RhbXAgZXJyb3JzLgotICoKLSAqIFRpbWVzdGFtcCBjb2RlIHBh dGhzIGRvIG5vdCBpbml0aWFsaXplIHRoZSBmaWVsZHMgZXhwZWN0ZWQgYnkgY21zZzoKLSAqIHRo ZSBQS1RJTkZPIGZpZWxkcyBpbiBza2ItPmNiW10uIEZpbGwgdGhvc2UgaW4gaGVyZS4KICAqLwog c3RhdGljIGJvb2wgaXA2X2RhdGFncmFtX3N1cHBvcnRfY21zZyhzdHJ1Y3Qgc2tfYnVmZiAqc2ti LAogCQkJCSAgICAgIHN0cnVjdCBzb2NrX2V4dGVycl9za2IgKnNlcnIpCkBAIC00MTQsMTQgKzQx MSw5IEBAIHN0YXRpYyBib29sIGlwNl9kYXRhZ3JhbV9zdXBwb3J0X2Ntc2coc3RydWN0IHNrX2J1 ZmYgKnNrYiwKIAlpZiAoc2Vyci0+ZWUuZWVfb3JpZ2luID09IFNPX0VFX09SSUdJTl9MT0NBTCkK IAkJcmV0dXJuIGZhbHNlOwogCi0JaWYgKCFza2ItPmRldikKKwlpZiAoIUlQNkNCKHNrYiktPmlp ZikKIAkJcmV0dXJuIGZhbHNlOwogCi0JaWYgKHNrYi0+cHJvdG9jb2wgPT0gaHRvbnMoRVRIX1Bf SVBWNikpCi0JCUlQNkNCKHNrYiktPmlpZiA9IHNrYi0+ZGV2LT5pZmluZGV4OwotCWVsc2UKLQkJ UEtUSU5GT19TS0JfQ0Ioc2tiKS0+aXBpX2lmaW5kZXggPSBza2ItPmRldi0+aWZpbmRleDsKLQog CXJldHVybiB0cnVlOwogfQogCi0tIAoyLjQuMTEKCgpGcm9tIDE4OTU4OGIzODhhZTIxZDAzODBh ODIyM2EzODI5OTQwM2Y1MWI1OTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhdmlk IEFoZXJuIDxkc2FAY3VtdWx1c25ldHdvcmtzLmNvbT4KRGF0ZTogVGh1LCAxMyBBcHIgMjAxNyAx MDo1NzoxNSAtMDYwMApTdWJqZWN0OiBbUEFUQ0ggMTgvMzNdIG5ldDogdnJmOiBGaXggc2V0dGlu ZyBOTE1fRl9FWENMIGZsYWcgd2hlbiBhZGRpbmcKIGwzbWRldiBydWxlCgpbIFVwc3RyZWFtIGNv bW1pdCA0MjZjODdjYWEyYjQ1NzhiNDNjZDNmNjg5ZjAyYzY1Yjc0M2IyNTU5IF0KCk9ubHkgbmVl ZCAxIGwzbWRldiBGSUIgcnVsZS4gRml4IHNldHRpbmcgTkxNX0ZfRVhDTCBpbiB0aGUgbmxtc2do ZHIuCgpGaXhlczogMWFhNmM0ZjZiOGNkOCAoIm5ldDogdnJmOiBBZGQgbDNtZGV2IHJ1bGVzIG9u IGZpcnN0IGRldmljZSBjcmVhdGUiKQpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBBaGVybiA8ZHNhQGN1 bXVsdXNuZXR3b3Jrcy5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC92cmYuYyB8IDIgKy0KIDEgZmlsZSBjaGFu Z2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L3ZyZi5jIGIvZHJpdmVycy9uZXQvdnJmLmMKaW5kZXggYTJhZmI4ZS4uODBlZjQ4NiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9uZXQvdnJmLmMKKysrIGIvZHJpdmVycy9uZXQvdnJmLmMKQEAgLTEx MjQsNyArMTEyNCw3IEBAIHN0YXRpYyBpbnQgdnJmX2ZpYl9ydWxlKGNvbnN0IHN0cnVjdCBuZXRf ZGV2aWNlICpkZXYsIF9fdTggZmFtaWx5LCBib29sIGFkZF9pdCkKIAkJZ290byBubGFfcHV0X2Zh aWx1cmU7CiAKIAkvKiBydWxlIG9ubHkgbmVlZHMgdG8gYXBwZWFyIG9uY2UgKi8KLQlubGgtPm5s bXNnX2ZsYWdzICY9IE5MTV9GX0VYQ0w7CisJbmxoLT5ubG1zZ19mbGFncyB8PSBOTE1fRl9FWENM OwogCiAJZnJoID0gbmxtc2dfZGF0YShubGgpOwogCW1lbXNldChmcmgsIDAsIHNpemVvZigqZnJo KSk7Ci0tIAoyLjQuMTEKCgpGcm9tIDc4YWI5OWE0MTMyN2VhNGM1YWQ3YzZiNWFkMjZjYzM2NDBm ODg5Y2QgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFNlcmdlaSBTaHR5bHlvdiA8c2Vy Z2VpLnNodHlseW92QGNvZ2VudGVtYmVkZGVkLmNvbT4KRGF0ZTogTW9uLCAxNyBBcHIgMjAxNyAx NTo1NToyMiArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMTkvMzNdIHNoX2V0aDogdW5tYXAgRE1BIGJ1 ZmZlcnMgd2hlbiBmcmVlaW5nIHJpbmdzCgpbIFVwc3RyZWFtIGNvbW1pdCAxZGViZGM4ZjllYmQw N2RhZjE0MGU0MTdiMzg0MTU5NjkxMWUwMDY2IF0KClRoZSBETUEgQVBJIGRlYnVnZ2luZyAod2hl biBlbmFibGVkKSBjYXVzZXM6CgpXQVJOSU5HOiBDUFU6IDAgUElEOiAxNDQ1IGF0IGxpYi9kbWEt ZGVidWcuYzo1MTkgYWRkX2RtYV9lbnRyeSsweGUwLzB4MTJjCkRNQS1BUEk6IGV4Y2VlZGVkIDcg b3ZlcmxhcHBpbmcgbWFwcGluZ3Mgb2YgY2FjaGVsaW5lIDB4MDFiMjk3NGQKCnRvIGJlICBwcmlu dGVkIGFmdGVyIHJlcGVhdGVkIGluaXRpYWxpemF0aW9uIG9mIHRoZSBFdGhlciBkZXZpY2UsIGUu Zy4Kc3VzcGVuZC9yZXN1bWUgb3IgJ2lmY29uZmlnJyB1cC9kb3duLiBUaGlzIGlzIGJlY2F1c2Ug RE1BIGJ1ZmZlcnMgbWFwcGVkCnVzaW5nIGRtYV9tYXBfc2luZ2xlKCkgaW4gc2hfZXRoX3Jpbmdf Zm9ybWF0KCkgYW5kIHNoX2V0aF9zdGFydF94bWl0KCkgYXJlCm5ldmVyIHVubWFwcGVkLiBSZXNv bHZlIHRoaXMgcHJvYmxlbSBieSB1bm1hcHBpbmcgdGhlIGJ1ZmZlcnMgd2hlbiBmcmVlaW5nCnRo ZSBkZXNjcmlwdG9yICByaW5nczsgIGluIG9yZGVyICB0byBkbyBpdCByaWdodCwgd2UnZCBoYXZl IHRvIGFkZCBhbiBleHRyYQpwYXJhbWV0ZXIgdG8gc2hfZXRoX3R4ZnJlZSgpICh3ZSByZW5hbWUg dGhpcyBmdW5jdGlvbiB0byBzaF9ldGhfdHhfZnJlZSgpLAp3aGlsZSBhdCBpdCkuCgpCYXNlZCBv biB0aGUgY29tbWl0IGE0N2I3MGVhODZiZCAoInJhdmI6IHVubWFwIGRlc2NyaXB0b3JzIHdoZW4g ZnJlZWluZwpyaW5ncyIpLgoKU2lnbmVkLW9mZi1ieTogU2VyZ2VpIFNodHlseW92IDxzZXJnZWku c2h0eWx5b3ZAY29nZW50ZW1iZWRkZWQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVuZXNh cy9zaF9ldGguYyB8IDEyMiArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiAxIGZp bGUgY2hhbmdlZCwgNjcgaW5zZXJ0aW9ucygrKSwgNTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVuZXNhcy9zaF9ldGguYyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L3JlbmVzYXMvc2hfZXRoLmMKaW5kZXggMWE5MmRlNy4uYTJkMjE4YiAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVuZXNhcy9zaF9ldGguYworKysgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9yZW5lc2FzL3NoX2V0aC5jCkBAIC0xMDU5LDEyICsxMDU5LDcwIEBAIHN0YXRp YyBzdHJ1Y3QgbWRpb2JiX29wcyBiYl9vcHMgPSB7CiAJLmdldF9tZGlvX2RhdGEgPSBzaF9nZXRf bWRpbywKIH07CiAKKy8qIGZyZWUgVHggc2tiIGZ1bmN0aW9uICovCitzdGF0aWMgaW50IHNoX2V0 aF90eF9mcmVlKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCBib29sIHNlbnRfb25seSkKK3sKKwlz dHJ1Y3Qgc2hfZXRoX3ByaXZhdGUgKm1kcCA9IG5ldGRldl9wcml2KG5kZXYpOworCXN0cnVjdCBz aF9ldGhfdHhkZXNjICp0eGRlc2M7CisJaW50IGZyZWVfbnVtID0gMDsKKwlpbnQgZW50cnk7CisJ Ym9vbCBzZW50OworCisJZm9yICg7IG1kcC0+Y3VyX3R4IC0gbWRwLT5kaXJ0eV90eCA+IDA7IG1k cC0+ZGlydHlfdHgrKykgeworCQllbnRyeSA9IG1kcC0+ZGlydHlfdHggJSBtZHAtPm51bV90eF9y aW5nOworCQl0eGRlc2MgPSAmbWRwLT50eF9yaW5nW2VudHJ5XTsKKwkJc2VudCA9ICEodHhkZXNj LT5zdGF0dXMgJiBjcHVfdG9fbGUzMihURF9UQUNUKSk7CisJCWlmIChzZW50X29ubHkgJiYgIXNl bnQpCisJCQlicmVhazsKKwkJLyogVEFDVCBiaXQgbXVzdCBiZSBjaGVja2VkIGJlZm9yZSBhbGwg dGhlIGZvbGxvd2luZyByZWFkcyAqLworCQlkbWFfcm1iKCk7CisJCW5ldGlmX2luZm8obWRwLCB0 eF9kb25lLCBuZGV2LAorCQkJICAgInR4IGVudHJ5ICVkIHN0YXR1cyAweCUwOHhcbiIsCisJCQkg ICBlbnRyeSwgbGUzMl90b19jcHUodHhkZXNjLT5zdGF0dXMpKTsKKwkJLyogRnJlZSB0aGUgb3Jp Z2luYWwgc2tiLiAqLworCQlpZiAobWRwLT50eF9za2J1ZmZbZW50cnldKSB7CisJCQlkbWFfdW5t YXBfc2luZ2xlKCZuZGV2LT5kZXYsIGxlMzJfdG9fY3B1KHR4ZGVzYy0+YWRkciksCisJCQkJCSBs ZTMyX3RvX2NwdSh0eGRlc2MtPmxlbikgPj4gMTYsCisJCQkJCSBETUFfVE9fREVWSUNFKTsKKwkJ CWRldl9rZnJlZV9za2JfaXJxKG1kcC0+dHhfc2tidWZmW2VudHJ5XSk7CisJCQltZHAtPnR4X3Nr YnVmZltlbnRyeV0gPSBOVUxMOworCQkJZnJlZV9udW0rKzsKKwkJfQorCQl0eGRlc2MtPnN0YXR1 cyA9IGNwdV90b19sZTMyKFREX1RGUCk7CisJCWlmIChlbnRyeSA+PSBtZHAtPm51bV90eF9yaW5n IC0gMSkKKwkJCXR4ZGVzYy0+c3RhdHVzIHw9IGNwdV90b19sZTMyKFREX1RETEUpOworCisJCWlm IChzZW50KSB7CisJCQluZGV2LT5zdGF0cy50eF9wYWNrZXRzKys7CisJCQluZGV2LT5zdGF0cy50 eF9ieXRlcyArPSBsZTMyX3RvX2NwdSh0eGRlc2MtPmxlbikgPj4gMTY7CisJCX0KKwl9CisJcmV0 dXJuIGZyZWVfbnVtOworfQorCiAvKiBmcmVlIHNrYiBhbmQgZGVzY3JpcHRvciBidWZmZXIgKi8K IHN0YXRpYyB2b2lkIHNoX2V0aF9yaW5nX2ZyZWUoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpCiB7 CiAJc3RydWN0IHNoX2V0aF9wcml2YXRlICptZHAgPSBuZXRkZXZfcHJpdihuZGV2KTsKIAlpbnQg cmluZ3NpemUsIGk7CiAKKwlpZiAobWRwLT5yeF9yaW5nKSB7CisJCWZvciAoaSA9IDA7IGkgPCBt ZHAtPm51bV9yeF9yaW5nOyBpKyspIHsKKwkJCWlmIChtZHAtPnJ4X3NrYnVmZltpXSkgeworCQkJ CXN0cnVjdCBzaF9ldGhfcnhkZXNjICpyeGRlc2MgPSAmbWRwLT5yeF9yaW5nW2ldOworCisJCQkJ ZG1hX3VubWFwX3NpbmdsZSgmbmRldi0+ZGV2LAorCQkJCQkJIGxlMzJfdG9fY3B1KHJ4ZGVzYy0+ YWRkciksCisJCQkJCQkgQUxJR04obWRwLT5yeF9idWZfc3osIDMyKSwKKwkJCQkJCSBETUFfRlJP TV9ERVZJQ0UpOworCQkJfQorCQl9CisJCXJpbmdzaXplID0gc2l6ZW9mKHN0cnVjdCBzaF9ldGhf cnhkZXNjKSAqIG1kcC0+bnVtX3J4X3Jpbmc7CisJCWRtYV9mcmVlX2NvaGVyZW50KE5VTEwsIHJp bmdzaXplLCBtZHAtPnJ4X3JpbmcsCisJCQkJICBtZHAtPnJ4X2Rlc2NfZG1hKTsKKwkJbWRwLT5y eF9yaW5nID0gTlVMTDsKKwl9CisKIAkvKiBGcmVlIFJ4IHNrYiByaW5nYnVmZmVyICovCiAJaWYg KG1kcC0+cnhfc2tidWZmKSB7CiAJCWZvciAoaSA9IDA7IGkgPCBtZHAtPm51bV9yeF9yaW5nOyBp KyspCkBAIC0xMDczLDI3ICsxMTMxLDE4IEBAIHN0YXRpYyB2b2lkIHNoX2V0aF9yaW5nX2ZyZWUo c3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpCiAJa2ZyZWUobWRwLT5yeF9za2J1ZmYpOwogCW1kcC0+ cnhfc2tidWZmID0gTlVMTDsKIAotCS8qIEZyZWUgVHggc2tiIHJpbmdidWZmZXIgKi8KLQlpZiAo bWRwLT50eF9za2J1ZmYpIHsKLQkJZm9yIChpID0gMDsgaSA8IG1kcC0+bnVtX3R4X3Jpbmc7IGkr KykKLQkJCWRldl9rZnJlZV9za2IobWRwLT50eF9za2J1ZmZbaV0pOwotCX0KLQlrZnJlZShtZHAt PnR4X3NrYnVmZik7Ci0JbWRwLT50eF9za2J1ZmYgPSBOVUxMOwotCi0JaWYgKG1kcC0+cnhfcmlu ZykgewotCQlyaW5nc2l6ZSA9IHNpemVvZihzdHJ1Y3Qgc2hfZXRoX3J4ZGVzYykgKiBtZHAtPm51 bV9yeF9yaW5nOwotCQlkbWFfZnJlZV9jb2hlcmVudChOVUxMLCByaW5nc2l6ZSwgbWRwLT5yeF9y aW5nLAotCQkJCSAgbWRwLT5yeF9kZXNjX2RtYSk7Ci0JCW1kcC0+cnhfcmluZyA9IE5VTEw7Ci0J fQotCiAJaWYgKG1kcC0+dHhfcmluZykgeworCQlzaF9ldGhfdHhfZnJlZShuZGV2LCBmYWxzZSk7 CisKIAkJcmluZ3NpemUgPSBzaXplb2Yoc3RydWN0IHNoX2V0aF90eGRlc2MpICogbWRwLT5udW1f dHhfcmluZzsKIAkJZG1hX2ZyZWVfY29oZXJlbnQoTlVMTCwgcmluZ3NpemUsIG1kcC0+dHhfcmlu ZywKIAkJCQkgIG1kcC0+dHhfZGVzY19kbWEpOwogCQltZHAtPnR4X3JpbmcgPSBOVUxMOwogCX0K KworCS8qIEZyZWUgVHggc2tiIHJpbmdidWZmZXIgKi8KKwlrZnJlZShtZHAtPnR4X3NrYnVmZik7 CisJbWRwLT50eF9za2J1ZmYgPSBOVUxMOwogfQogCiAvKiBmb3JtYXQgc2tiIGFuZCBkZXNjcmlw dG9yIGJ1ZmZlciAqLwpAQCAtMTM0MSw0MyArMTM5MCw2IEBAIHN0YXRpYyB2b2lkIHNoX2V0aF9k ZXZfZXhpdChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldikKIAl1cGRhdGVfbWFjX2FkZHJlc3MobmRl dik7CiB9CiAKLS8qIGZyZWUgVHggc2tiIGZ1bmN0aW9uICovCi1zdGF0aWMgaW50IHNoX2V0aF90 eGZyZWUoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpCi17Ci0Jc3RydWN0IHNoX2V0aF9wcml2YXRl ICptZHAgPSBuZXRkZXZfcHJpdihuZGV2KTsKLQlzdHJ1Y3Qgc2hfZXRoX3R4ZGVzYyAqdHhkZXNj OwotCWludCBmcmVlX251bSA9IDA7Ci0JaW50IGVudHJ5OwotCi0JZm9yICg7IG1kcC0+Y3VyX3R4 IC0gbWRwLT5kaXJ0eV90eCA+IDA7IG1kcC0+ZGlydHlfdHgrKykgewotCQllbnRyeSA9IG1kcC0+ ZGlydHlfdHggJSBtZHAtPm51bV90eF9yaW5nOwotCQl0eGRlc2MgPSAmbWRwLT50eF9yaW5nW2Vu dHJ5XTsKLQkJaWYgKHR4ZGVzYy0+c3RhdHVzICYgY3B1X3RvX2xlMzIoVERfVEFDVCkpCi0JCQli cmVhazsKLQkJLyogVEFDVCBiaXQgbXVzdCBiZSBjaGVja2VkIGJlZm9yZSBhbGwgdGhlIGZvbGxv d2luZyByZWFkcyAqLwotCQlkbWFfcm1iKCk7Ci0JCW5ldGlmX2luZm8obWRwLCB0eF9kb25lLCBu ZGV2LAotCQkJICAgInR4IGVudHJ5ICVkIHN0YXR1cyAweCUwOHhcbiIsCi0JCQkgICBlbnRyeSwg bGUzMl90b19jcHUodHhkZXNjLT5zdGF0dXMpKTsKLQkJLyogRnJlZSB0aGUgb3JpZ2luYWwgc2ti LiAqLwotCQlpZiAobWRwLT50eF9za2J1ZmZbZW50cnldKSB7Ci0JCQlkbWFfdW5tYXBfc2luZ2xl KCZuZGV2LT5kZXYsIGxlMzJfdG9fY3B1KHR4ZGVzYy0+YWRkciksCi0JCQkJCSBsZTMyX3RvX2Nw dSh0eGRlc2MtPmxlbikgPj4gMTYsCi0JCQkJCSBETUFfVE9fREVWSUNFKTsKLQkJCWRldl9rZnJl ZV9za2JfaXJxKG1kcC0+dHhfc2tidWZmW2VudHJ5XSk7Ci0JCQltZHAtPnR4X3NrYnVmZltlbnRy eV0gPSBOVUxMOwotCQkJZnJlZV9udW0rKzsKLQkJfQotCQl0eGRlc2MtPnN0YXR1cyA9IGNwdV90 b19sZTMyKFREX1RGUCk7Ci0JCWlmIChlbnRyeSA+PSBtZHAtPm51bV90eF9yaW5nIC0gMSkKLQkJ CXR4ZGVzYy0+c3RhdHVzIHw9IGNwdV90b19sZTMyKFREX1RETEUpOwotCi0JCW5kZXYtPnN0YXRz LnR4X3BhY2tldHMrKzsKLQkJbmRldi0+c3RhdHMudHhfYnl0ZXMgKz0gbGUzMl90b19jcHUodHhk ZXNjLT5sZW4pID4+IDE2OwotCX0KLQlyZXR1cm4gZnJlZV9udW07Ci19Ci0KIC8qIFBhY2tldCBy ZWNlaXZlIGZ1bmN0aW9uICovCiBzdGF0aWMgaW50IHNoX2V0aF9yeChzdHJ1Y3QgbmV0X2Rldmlj ZSAqbmRldiwgdTMyIGludHJfc3RhdHVzLCBpbnQgKnF1b3RhKQogewpAQCAtMTYyMCw3ICsxNjMy LDcgQEAgc3RhdGljIHZvaWQgc2hfZXRoX2Vycm9yKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCB1 MzIgaW50cl9zdGF0dXMpCiAJCQkgICBpbnRyX3N0YXR1cywgbWRwLT5jdXJfdHgsIG1kcC0+ZGly dHlfdHgsCiAJCQkgICAodTMyKW5kZXYtPnN0YXRlLCBlZHRycik7CiAJCS8qIGRpcnR5IGJ1ZmZl ciBmcmVlICovCi0JCXNoX2V0aF90eGZyZWUobmRldik7CisJCXNoX2V0aF90eF9mcmVlKG5kZXYs IHRydWUpOwogCiAJCS8qIFNINzcxMiBCVUcgKi8KIAkJaWYgKGVkdHJyIF4gc2hfZXRoX2dldF9l ZHRycl90cm5zKG1kcCkpIHsKQEAgLTE2NzksNyArMTY5MSw3IEBAIHN0YXRpYyBpcnFyZXR1cm5f dCBzaF9ldGhfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKm5ldGRldikKIAkJLyogQ2xlYXIgVHgg aW50ZXJydXB0cyAqLwogCQlzaF9ldGhfd3JpdGUobmRldiwgaW50cl9zdGF0dXMgJiBjZC0+dHhf Y2hlY2ssIEVFU1IpOwogCi0JCXNoX2V0aF90eGZyZWUobmRldik7CisJCXNoX2V0aF90eF9mcmVl KG5kZXYsIHRydWUpOwogCQluZXRpZl93YWtlX3F1ZXVlKG5kZXYpOwogCX0KIApAQCAtMjMwNyw3 ICsyMzE5LDcgQEAgc3RhdGljIGludCBzaF9ldGhfc3RhcnRfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAq c2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqbmRldikKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZtZHAt PmxvY2ssIGZsYWdzKTsKIAlpZiAoKG1kcC0+Y3VyX3R4IC0gbWRwLT5kaXJ0eV90eCkgPj0gKG1k cC0+bnVtX3R4X3JpbmcgLSA0KSkgewotCQlpZiAoIXNoX2V0aF90eGZyZWUobmRldikpIHsKKwkJ aWYgKCFzaF9ldGhfdHhfZnJlZShuZGV2LCB0cnVlKSkgewogCQkJbmV0aWZfd2FybihtZHAsIHR4 X3F1ZXVlZCwgbmRldiwgIlR4RkQgZXhoYXVzdGVkLlxuIik7CiAJCQluZXRpZl9zdG9wX3F1ZXVl KG5kZXYpOwogCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbWRwLT5sb2NrLCBmbGFncyk7Ci0t IAoyLjQuMTEKCgpGcm9tIGViNjUxYjJkODQ3MGM0MTU5MmI0NGU5NzBlYmRmYzBlMDg4MjMxOWQg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbiBDYXJwZW50ZXIgPGRhbi5jYXJwZW50 ZXJAb3JhY2xlLmNvbT4KRGF0ZTogVHVlLCAxOCBBcHIgMjAxNyAyMjoxNDoyNiArMDMwMApTdWJq ZWN0OiBbUEFUQ0ggMjAvMzNdIGRwODM2NDA6IGRvbid0IHJlY2lldmUgdGltZSBzdGFtcHMgdHdp Y2UKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVU Ri04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IDlk Mzg2Y2Q5YTc1NWM4MjkzZTg5MTYyNjRkNGQwNTM4NzhhN2M5YzcgXQoKVGhpcyBwYXRjaCBpcyBw cm9tcHRlZCBieSBhIHN0YXRpYyBjaGVja2VyIHdhcm5pbmcgYWJvdXQgYSBwb3RlbnRpYWwKdXNl IGFmdGVyIGZyZWUuICBUaGUgY29uY2VybiBpcyB0aGF0IG5ldGlmX3J4X25pKCkgY2FuIGZyZWUg InNrYiIgYW5kIHdlCmNhbGwgaXQgdHdpY2UuCgpXaGVuIEkgbG9vayBhdCB0aGUgY29tbWl0IHRo YXQgYWRkZWQgdGhpcywgaXQgbG9va3MgbGlrZSBzb21lIHN0cmF5CmxpbmVzIHdlcmUgYWRkZWQg YWNjaWRlbnRhbGx5LiAgSXQgZG9lc24ndCBtYWtlIHNlbnNlIHRvIG1lIHRoYXQgd2UKd291bGQg cmVjaWV2ZSB0aGUgc2FtZSBkYXRhIHR3byB0aW1lcy4gIEkgYXNrZWQgdGhlIGF1dGhvciBidXQg bmV2ZXIKcmVjaWV2ZWQgYSByZXNwb25zZS4KCkkgY2FuJ3QgdGVzdCB0aGlzIGNvZGUsIGJ1dCBJ J20gcHJldHR5IHN1cmUgbXkgcGF0Y2ggaXMgY29ycmVjdC4KCkZpeGVzOiA0YjA2MzI1OGFiOTMg KCJkcDgzNjQwOiBEZWxheSBzY2hlZHVsZWQgd29yay4iKQpTaWduZWQtb2ZmLWJ5OiBEYW4gQ2Fy cGVudGVyIDxkYW4uY2FycGVudGVyQG9yYWNsZS5jb20+CkFja2VkLWJ5OiBTdGVmYW4gU8O4cmVu c2VuIDxzdGVmYW4uc29yZW5zZW5Ac3BlY3RyYWxpbmsuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvcGh5L2Rw ODM2NDAuYyB8IDIgLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMgYi9kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5j CmluZGV4IDdhMjQwZmMuLjQ4NjUyMjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3BoeS9kcDgz NjQwLmMKKysrIGIvZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYwpAQCAtMTQzOCw4ICsxNDM4LDYg QEAgc3RhdGljIGJvb2wgZHA4MzY0MF9yeHRzdGFtcChzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2 LAogCQlza2JfaW5mby0+dG1vID0gamlmZmllcyArIFNLQl9USU1FU1RBTVBfVElNRU9VVDsKIAkJ c2tiX3F1ZXVlX3RhaWwoJmRwODM2NDAtPnJ4X3F1ZXVlLCBza2IpOwogCQlzY2hlZHVsZV9kZWxh eWVkX3dvcmsoJmRwODM2NDAtPnRzX3dvcmssIFNLQl9USU1FU1RBTVBfVElNRU9VVCk7Ci0JfSBl bHNlIHsKLQkJbmV0aWZfcnhfbmkoc2tiKTsKIAl9CiAKIAlyZXR1cm4gdHJ1ZTsKLS0gCjIuNC4x MQoKCkZyb20gZjY1NWUzOTY2NmU1NDBmODE4MTU0N2E1ZDQwMDE5NmE2NDBhN2U2ZSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSWxhbiBUYXlhcmkgPGlsYW50QG1lbGxhbm94LmNvbT4K RGF0ZTogV2VkLCAxOSBBcHIgMjAxNyAyMToyNjowNyArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMjEv MzNdIGdzbzogVmFsaWRhdGUgYXNzdW1wdGlvbiBvZiBmcmFnX2xpc3Qgc2VnZW1lbnRhdGlvbgoK WyBVcHN0cmVhbSBjb21taXQgNDMxNzBjNGUwYmE3MDljNzkxMzBjM2ZlNWE0MWU2NjI3OTk1MGNk MCBdCgpDb21taXQgMDdiMjZjOTQ1NGEyICgiZ3NvOiBTdXBwb3J0IHBhcnRpYWwgc3BsaXR0aW5n IGF0IHRoZSBmcmFnX2xpc3QKcG9pbnRlciIpIGFzc3VtZXMgdGhhdCBhbGwgU0tCcyBpbiBhIGZy YWdfbGlzdCAoZXhjZXB0IG1heWJlIHRoZSBsYXN0Cm9uZSkgY29udGFpbiB0aGUgc2FtZSBhbW91 bnQgb2YgR1NPIHBheWxvYWQuCgpUaGlzIGFzc3VtcHRpb24gaXMgbm90IGFsd2F5cyBjb3JyZWN0 LCByZXN1bHRpbmcgaW4gdGhlIGZvbGxvd2luZwp3YXJuaW5nIG1lc3NhZ2UgaW4gdGhlIGxvZzoK ICAgIHNrYl9zZWdtZW50OiB0b28gbWFueSBmcmFncwoKRm9yIGV4YW1wbGUsIG1seDUgZHJpdmVy IGluIFN0cmlkaW5nIFJRIG1vZGUgY3JlYXRlcyBzb21lIFJYIFNLQnMgd2l0aApvbmUgZnJhZywg YW5kIHNvbWUgd2l0aCAyIGZyYWdzLgpBZnRlciBHUk8sIHRoZSBmcmFnX2xpc3QgU0tCcyBlbmQg dXAgaGF2aW5nIGRpZmZlcmVudCBhbW91bnRzIG9mIHBheWxvYWQuCklmIHRoaXMgZnJhZ19saXN0 IFNLQiBpcyB0aGVuIGZvcndhcmRlZCwgdGhlIGFmb3JlbWVudGlvbmVkIGFzc3VtcHRpb24KaXMg dmlvbGF0ZWQuCgpWYWxpZGF0ZSB0aGUgYXNzdW1wdGlvbiwgYW5kIGZhbGwgYmFjayB0byBzb2Z0 d2FyZSBHU08gaWYgaXQgbm90IHRydWUuCgpDaGFuZ2UtSWQ6IElhMDM5ODNmNGE0N2I2NTM0ZGQ5 ODdkN2EyYWFkOTZkNTRkNDZkMjEyCkZpeGVzOiAwN2IyNmM5NDU0YTIgKCJnc286IFN1cHBvcnQg cGFydGlhbCBzcGxpdHRpbmcgYXQgdGhlIGZyYWdfbGlzdCBwb2ludGVyIikKU2lnbmVkLW9mZi1i eTogSWxhbiBUYXlhcmkgPGlsYW50QG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogSWx5YSBM ZXNva2hpbiA8aWx5YWxAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUvc2tidWZmLmMgfCAxOCArKysr KysrKysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL3NrYnVmZi5jIGIvbmV0L2NvcmUvc2tidWZm LmMKaW5kZXggNWVjMzRlYS4uZmUwMDhmMSAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvc2tidWZmLmMK KysrIGIvbmV0L2NvcmUvc2tidWZmLmMKQEAgLTMwNzYsMjIgKzMwNzYsMzIgQEAgc3RydWN0IHNr X2J1ZmYgKnNrYl9zZWdtZW50KHN0cnVjdCBza19idWZmICpoZWFkX3NrYiwKIAlpZiAoc2cgJiYg Y3N1bSAmJiAobXNzICE9IEdTT19CWV9GUkFHUykpICB7CiAJCWlmICghKGZlYXR1cmVzICYgTkVU SUZfRl9HU09fUEFSVElBTCkpIHsKIAkJCXN0cnVjdCBza19idWZmICppdGVyOworCQkJdW5zaWdu ZWQgaW50IGZyYWdfbGVuOwogCiAJCQlpZiAoIWxpc3Rfc2tiIHx8CiAJCQkgICAgIW5ldF9nc29f b2soZmVhdHVyZXMsIHNrYl9zaGluZm8oaGVhZF9za2IpLT5nc29fdHlwZSkpCiAJCQkJZ290byBu b3JtYWw7CiAKLQkJCS8qIFNwbGl0IHRoZSBidWZmZXIgYXQgdGhlIGZyYWdfbGlzdCBwb2ludGVy LgotCQkJICogVGhpcyBpcyBiYXNlZCBvbiB0aGUgYXNzdW1wdGlvbiB0aGF0IGFsbAotCQkJICog YnVmZmVycyBpbiB0aGUgY2hhaW4gZXhjbHVkaW5nIHRoZSBsYXN0Ci0JCQkgKiBjb250YWluaW5n IHRoZSBzYW1lIGFtb3VudCBvZiBkYXRhLgorCQkJLyogSWYgd2UgZ2V0IGhlcmUgdGhlbiBhbGwg dGhlIHJlcXVpcmVkCisJCQkgKiBHU08gZmVhdHVyZXMgZXhjZXB0IGZyYWdfbGlzdCBhcmUgc3Vw cG9ydGVkLgorCQkJICogVHJ5IHRvIHNwbGl0IHRoZSBTS0IgdG8gbXVsdGlwbGUgR1NPIFNLQnMK KwkJCSAqIHdpdGggbm8gZnJhZ19saXN0LgorCQkJICogQ3VycmVudGx5IHdlIGNhbiBkbyB0aGF0 IG9ubHkgd2hlbiB0aGUgYnVmZmVycyBkb24ndAorCQkJICogaGF2ZSBhIGxpbmVhciBwYXJ0IGFu ZCBhbGwgdGhlIGJ1ZmZlcnMgZXhjZXB0CisJCQkgKiB0aGUgbGFzdCBhcmUgb2YgdGhlIHNhbWUg bGVuZ3RoLgogCQkJICovCisJCQlmcmFnX2xlbiA9IGxpc3Rfc2tiLT5sZW47CiAJCQlza2Jfd2Fs a19mcmFncyhoZWFkX3NrYiwgaXRlcikgeworCQkJCWlmIChmcmFnX2xlbiAhPSBpdGVyLT5sZW4g JiYgaXRlci0+bmV4dCkKKwkJCQkJZ290byBub3JtYWw7CiAJCQkJaWYgKHNrYl9oZWFkbGVuKGl0 ZXIpKQogCQkJCQlnb3RvIG5vcm1hbDsKIAogCQkJCWxlbiAtPSBpdGVyLT5sZW47CiAJCQl9CisK KwkJCWlmIChsZW4gIT0gZnJhZ19sZW4pCisJCQkJZ290byBub3JtYWw7CiAJCX0KIAogCQkvKiBH U08gcGFydGlhbCBvbmx5IHJlcXVpcmVzIHRoYXQgd2UgdHJpbSBvZmYgYW55IGV4Y2VzcyB0aGF0 Ci0tIAoyLjQuMTEKCgpGcm9tIDE3MzUxNDViNmQzMDM5YjQyNTA3YzBjYjNkZDJmZmU1NDY5OWY1 NTIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhdmlkIEFoZXJuIDxkc2FAY3VtdWx1 c25ldHdvcmtzLmNvbT4KRGF0ZTogV2VkLCAxOSBBcHIgMjAxNyAxNDoxOTo0MyAtMDcwMApTdWJq ZWN0OiBbUEFUQ0ggMjIvMzNdIG5ldDogaXB2NjogUlRGX1BDUFUgc2hvdWxkIG5vdCBiZSBzZXR0 YWJsZSBmcm9tCiB1c2Vyc3BhY2UKClsgVXBzdHJlYW0gY29tbWl0IDU1N2M0NGJlOTE3YzMyMjg2 MDY2NWJlM2QyODM3NmFmYTg0YWE5MzYgXQoKQW5kcmV5IHJlcG9ydGVkIGEgZmF1bHQgaW4gdGhl IElQdjYgcm91dGUgY29kZToKCmthc2FuOiBHUEYgY291bGQgYmUgY2F1c2VkIGJ5IE5VTEwtcHRy IGRlcmVmIG9yIHVzZXIgbWVtb3J5IGFjY2VzcwpnZW5lcmFsIHByb3RlY3Rpb24gZmF1bHQ6IDAw MDAgWyMxXSBTTVAgS0FTQU4KTW9kdWxlcyBsaW5rZWQgaW46CkNQVTogMSBQSUQ6IDQwMzUgQ29t bTogYS5vdXQgTm90IHRhaW50ZWQgNC4xMS4wLXJjNysgIzI1MApIYXJkd2FyZSBuYW1lOiBRRU1V IFN0YW5kYXJkIFBDIChpNDQwRlggKyBQSUlYLCAxOTk2KSwgQklPUyBCb2NocyAwMS8wMS8yMDEx CnRhc2s6IGZmZmY4ODAwNjk4MDk2MDAgdGFzay5zdGFjazogZmZmZjg4MDA2MmRjODAwMApSSVA6 IDAwMTA6aXA2X3J0X2NhY2hlX2FsbG9jKzB4YTYvMHg1NjAgbmV0L2lwdjYvcm91dGUuYzo5NzUK UlNQOiAwMDE4OmZmZmY4ODAwNjJkY2VkMzAgRUZMQUdTOiAwMDAxMDIwNgpSQVg6IGRmZmZmYzAw MDAwMDAwMDAgUkJYOiBmZmZmODgwMDY3MDU2MWMwIFJDWDogMDAwMDAwMDAwMDAwMDAwNgpSRFg6 IDAwMDAwMDAwMDAwMDAwMDMgUlNJOiBmZmZmODgwMDYyZGNmYjI4IFJESTogMDAwMDAwMDAwMDAw MDAxOApSQlA6IGZmZmY4ODAwNjJkY2VkNjggUjA4OiAwMDAwMDAwMDAwMDAwMDAxIFIwOTogMDAw MDAwMDAwMDAwMDAwMApSMTA6IDAwMDAwMDAwMDAwMDAwMDAgUjExOiAwMDAwMDAwMDAwMDAwMDAw IFIxMjogMDAwMDAwMDAwMDAwMDAwMApSMTM6IGZmZmY4ODAwNjJkY2ZiMjggUjE0OiBkZmZmZmMw MDAwMDAwMDAwIFIxNTogMDAwMDAwMDAwMDAwMDAwMApGUzogIDAwMDA3ZmVlYmUzN2U3YzAoMDAw MCkgR1M6ZmZmZjg4MDA2Y2IwMDAwMCgwMDAwKSBrbmxHUzowMDAwMDAwMDAwMDAwMDAwCkNTOiAg MDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAwMzMKQ1IyOiAwMDAwMDAw MDIwNWEwZmU0IENSMzogMDAwMDAwMDA2YjVjOTAwMCBDUjQ6IDAwMDAwMDAwMDAwMDA2ZTAKQ2Fs bCBUcmFjZToKIGlwNl9wb2xfcm91dGUrMHgxNTEyLzB4MWYyMCBuZXQvaXB2Ni9yb3V0ZS5jOjEx MjgKIGlwNl9wb2xfcm91dGVfb3V0cHV0KzB4NGMvMHg2MCBuZXQvaXB2Ni9yb3V0ZS5jOjEyMTIK Li4uCgpBbmRyZXkncyBzeXprYWxsZXIgcHJvZ3JhbSBwYXNzZXMgcnRtc2cucnRtc2dfZmxhZ3Mg d2l0aCB0aGUgUlRGX1BDUFUgYml0CnNldC4gRmxhZ3MgcGFzc2VkIHRvIHRoZSBrZXJuZWwgYXJl IGJsaW5kbHkgY29waWVkIHRvIHRoZSBhbGxvY2F0ZWQKcnQ2X2luZm8gYnkgaXA2X3JvdXRlX2lu Zm9fY3JlYXRlIG1ha2luZyBhIG5ld2x5IGluc2VydGVkIHJvdXRlIGFwcGVhcgphcyB0aG91Z2gg aXQgaXMgYSBwZXItY3B1IHJvdXRlLiBpcDZfcnRfY2FjaGVfYWxsb2Mgc2VlcyB0aGUgZmxhZyBz ZXQKYW5kIGV4cGVjdHMgcnQtPmRzdC5mcm9tIHRvIGJlIHNldCAtIHdoaWNoIGl0IGlzIG5vdCBz aW5jZSBpdCBpcyBub3QKcmVhbGx5IGEgcGVyLWNwdSBjb3B5LiBUaGUgc3Vic2VxdWVudCBjYWxs IHRvIF9faXA2X2RzdF9hbGxvYyB0aGVuCmdlbmVyYXRlcyB0aGUgZmF1bHQuCgpGaXggYnkgY2hl Y2tpbmcgZm9yIHRoZSBmbGFnIGFuZCBmYWlsaW5nIHdpdGggRUlOVkFMLgoKRml4ZXM6IGQ1MmQz OTk3Zjg0M2YgKCJpcHY2OiBDcmVhdGUgcGVyY3B1IHJ0Nl9pbmZvIikKUmVwb3J0ZWQtYnk6IEFu ZHJleSBLb25vdmFsb3YgPGFuZHJleWtudmxAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgQWhlcm4gPGRzYUBjdW11bHVzbmV0d29ya3MuY29tPgpBY2tlZC1ieTogTWFydGluIEthRmFp IExhdSA8a2FmYWlAZmIuY29tPgpUZXN0ZWQtYnk6IEFuZHJleSBLb25vdmFsb3YgPGFuZHJleWtu dmxAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIGluY2x1ZGUvdWFwaS9saW51eC9pcHY2X3JvdXRlLmggfCAyICstCiBu ZXQvaXB2Ni9yb3V0ZS5jICAgICAgICAgICAgICAgIHwgNCArKysrCiAyIGZpbGVzIGNoYW5nZWQs IDUgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFw aS9saW51eC9pcHY2X3JvdXRlLmggYi9pbmNsdWRlL3VhcGkvbGludXgvaXB2Nl9yb3V0ZS5oCmlu ZGV4IGY2NTk4ZDEuLjMxNmU4MzggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9pcHY2 X3JvdXRlLmgKKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L2lwdjZfcm91dGUuaApAQCAtMzQsNyAr MzQsNyBAQAogI2RlZmluZSBSVEZfUFJFRihwcmVmKQkoKHByZWYpIDw8IDI3KQogI2RlZmluZSBS VEZfUFJFRl9NQVNLCTB4MTgwMDAwMDAKIAotI2RlZmluZSBSVEZfUENQVQkweDQwMDAwMDAwCisj ZGVmaW5lIFJURl9QQ1BVCTB4NDAwMDAwMDAJLyogcmVhZC1vbmx5OiBjYW4gbm90IGJlIHNldCBi eSB1c2VyICovCiAjZGVmaW5lIFJURl9MT0NBTAkweDgwMDAwMDAwCiAKIApkaWZmIC0tZ2l0IGEv bmV0L2lwdjYvcm91dGUuYyBiL25ldC9pcHY2L3JvdXRlLmMKaW5kZXggOGQ2YzA5Zi4uOWYxYmM3 NSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvcm91dGUuYworKysgYi9uZXQvaXB2Ni9yb3V0ZS5jCkBA IC0xODI2LDYgKzE4MjYsMTAgQEAgc3RhdGljIHN0cnVjdCBydDZfaW5mbyAqaXA2X3JvdXRlX2lu Zm9fY3JlYXRlKHN0cnVjdCBmaWI2X2NvbmZpZyAqY2ZnKQogCWludCBhZGRyX3R5cGU7CiAJaW50 IGVyciA9IC1FSU5WQUw7CiAKKwkvKiBSVEZfUENQVSBpcyBhbiBpbnRlcm5hbCBmbGFnOyBjYW4g bm90IGJlIHNldCBieSB1c2Vyc3BhY2UgKi8KKwlpZiAoY2ZnLT5mY19mbGFncyAmIFJURl9QQ1BV KQorCQlnb3RvIG91dDsKKwogCWlmIChjZmctPmZjX2RzdF9sZW4gPiAxMjggfHwgY2ZnLT5mY19z cmNfbGVuID4gMTI4KQogCQlnb3RvIG91dDsKICNpZm5kZWYgQ09ORklHX0lQVjZfU1VCVFJFRVMK LS0gCjIuNC4xMQoKCkZyb20gZDFmYzQwN2NkYmZiYmEyMGQ2Zjc1MDU4M2JjOWNkNmM3NjFkM2E3 MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVHVzaGFyIERhdmUgPHR1c2hhci5uLmRh dmVAb3JhY2xlLmNvbT4KRGF0ZTogVGh1LCAyMCBBcHIgMjAxNyAxNTo1NzozMSAtMDcwMApTdWJq ZWN0OiBbUEFUQ0ggMjMvMzNdIG5ldHBvbGw6IENoZWNrIGZvciBza2ItPnF1ZXVlX21hcHBpbmcK ClsgVXBzdHJlYW0gY29tbWl0IGM3MGIxN2I3NzVlZGIyMTI4MGU5ZGU3NTMxYWNmNmRiM2IzNjUy NzQgXQoKUmVkdWNpbmcgcmVhbF9udW1fdHhfcXVldWVzIG5lZWRzIHRvIGJlIGluIHN5bmMgd2l0 aCBza2IgcXVldWVfbWFwcGluZwpvdGhlcndpc2Ugc2ticyB3aXRoIHF1ZXVlX21hcHBpbmcgZ3Jl YXRlciB0aGFuIHJlYWxfbnVtX3R4X3F1ZXVlcwpjYW4gYmUgc2VudCB0byB0aGUgdW5kZXJseWlu ZyBkcml2ZXIgYW5kIGNhbiByZXN1bHQgaW4ga2VybmVsIHBhbmljLgoKT25lIHN1Y2ggZXZlbnQg aXMgcnVubmluZyBuZXRjb25zb2xlIGFuZCBlbmFibGluZyBWRiBvbiB0aGUgc2FtZQpkZXZpY2Uu IE9yIHJ1bm5pbmcgbmV0Y29uc29sZSBhbmQgY2hhbmdpbmcgbnVtYmVyIG9mIHR4IHF1ZXVlcyB2 aWEKZXRodG9vbCBvbiBzYW1lIGRldmljZS4KCmUuZy4KVW5hYmxlIHRvIGhhbmRsZSBrZXJuZWwg TlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlCnRzay0+e21tLGFjdGl2ZV9tbX0tPmNvbnRleHQgPSAw MDAwMDAwMDAwMDAxNTI1CnRzay0+e21tLGFjdGl2ZV9tbX0tPnBnZCA9IGZmZjgwMDEzMGZmOWEw MDAKICAgICAgICAgICAgICBcfC8gX19fXyBcfC8KICAgICAgICAgICAgICAiQCcvIC4uIFxgQCIK ICAgICAgICAgICAgICAvX3wgXF9fLyB8X1wKICAgICAgICAgICAgICAgICBcX19VXy8Ka3dvcmtl ci80ODoxKDQ3NSk6IE9vcHMgWyMxXQpDUFU6IDQ4IFBJRDogNDc1IENvbW06IGt3b3JrZXIvNDg6 MSBUYWludGVkOiBHICAgICAgICAgICBPRQo0LjExLjAtcmMzLWRhdmVtLW5ldCsgIzcKV29ya3F1 ZXVlOiBldmVudHMgcXVldWVfcHJvY2Vzcwp0YXNrOiBmZmY4MDAxMzExMzI5OWMwIHRhc2suc3Rh Y2s6IGZmZjgwMDEzMTEzMmMwMDAKVFNUQVRFOiAwMDAwMDA0NDgwZTAxNjAwIFRQQzogMDAwMDAw MDAxMDNmOWUzYyBUTlBDOiAwMDAwMDAwMDEwM2Y5ZTQwIFk6CjAwMDAwMDAwICAgIFRhaW50ZWQ6 IEcgICAgICAgICAgIE9FClRQQzogPGl4Z2JlX3htaXRfZnJhbWVfcmluZysweDdjLzB4NmMwIFtp eGdiZV0+CmcwOiAwMDAwMDAwMDAwMDAwMDAwIGcxOiAwMDAwMDAwMDAwMDAzZmZmIGcyOiAwMDAw MDAwMDAwMDAwMDAwIGczOgowMDAwMDAwMDAwMDAwMDAxCmc0OiBmZmY4MDAxMzExMzI5OWMwIGc1 OiBmZmY4MDAxZmE2ODA4MDAwIGc2OiBmZmY4MDAxMzExMzJjMDAwIGc3OgowMDAwMDAwMDAwMDAw MGMwCm8wOiBmZmY4MDAxZmE3NjBjNDYwIG8xOiBmZmY4MDAxMzExMzI5YTUwIG8yOiBmZmY4MDAx ZmE3NjA3NTA0IG8zOgowMDAwMDAwMDAwMDAwMDAzCm80OiBmZmY4MDAxZjk2ZTYzYTQwIG81OiBm ZmY4MDAxMzExZDc3ZWMwIHNwOiBmZmY4MDAxMzExMzJmMGUxIHJldF9wYzoKMDAwMDAwMDAwMDQ5 ZWQ5NApSUEM6IDxzZXRfbmV4dF9lbnRpdHkrMHgzNC8weGI4MD4KbDA6IDAwMDAwMDAwMDAwMDAw MDAgbDE6IDAwMDAwMDAwMDAwMDA4MDAgbDI6IDAwMDAwMDAwMDAwMDAwMDAgbDM6CjAwMDAwMDAw MDAwMDAwMDAKbDQ6IDAwMGIyYWEzMGUzNGIxMGQgbDU6IDAwMDAwMDAwMDAwMDAwMDAgbDY6IDAw MDAwMDAwMDAwMDAwMDAgbDc6CmZmZjgwMDFmYTc2MDUwMjgKaTA6IGZmZjgwMDEzMTExYThhMDAg aTE6IGZmZjgwMDEzMTU1YTA3ODAgaTI6IDAwMDAwMDAwMDAwMDAwMDAgaTM6CjAwMDAwMDAwMDAw MDAwMDAKaTQ6IDAwMDAwMDAwMDAwMDAwMDAgaTU6IDAwMDAwMDAwMDAxMDAwMDAgaTY6IGZmZjgw MDEzMTEzMmYxYTEgaTc6CjAwMDAwMDAwMTAzZmE0YjAKSTc6IDxpeGdiZV94bWl0X2ZyYW1lKzB4 MzAvMHhhMCBbaXhnYmVdPgpDYWxsIFRyYWNlOgogWzAwMDAwMDAwMTAzZmE0YjBdIGl4Z2JlX3ht aXRfZnJhbWUrMHgzMC8weGEwIFtpeGdiZV0KIFswMDAwMDAwMDAwOTk4Yzc0XSBuZXRwb2xsX3N0 YXJ0X3htaXQrMHhmNC8weDIwMAogWzAwMDAwMDAwMDA5OThlMTBdIHF1ZXVlX3Byb2Nlc3MrMHg5 MC8weDE2MAogWzAwMDAwMDAwMDA0ODVmYThdIHByb2Nlc3Nfb25lX3dvcmsrMHgxODgvMHg0ODAK IFswMDAwMDAwMDAwNDg2NDEwXSB3b3JrZXJfdGhyZWFkKzB4MTcwLzB4NGMwCiBbMDAwMDAwMDAw MDQ4YzZiOF0ga3RocmVhZCsweGQ4LzB4MTIwCiBbMDAwMDAwMDAwMDQwNjA2NF0gcmV0X2Zyb21f Zm9yaysweDFjLzB4MmMKIFswMDAwMDAwMDAwMDAwMDAwXSAgICAgICAgICAgKG51bGwpCkRpc2Fi bGluZyBsb2NrIGRlYnVnZ2luZyBkdWUgdG8ga2VybmVsIHRhaW50CkNhbGxlclswMDAwMDAwMDEw M2ZhNGIwXTogaXhnYmVfeG1pdF9mcmFtZSsweDMwLzB4YTAgW2l4Z2JlXQpDYWxsZXJbMDAwMDAw MDAwMDk5OGM3NF06IG5ldHBvbGxfc3RhcnRfeG1pdCsweGY0LzB4MjAwCkNhbGxlclswMDAwMDAw MDAwOTk4ZTEwXTogcXVldWVfcHJvY2VzcysweDkwLzB4MTYwCkNhbGxlclswMDAwMDAwMDAwNDg1 ZmE4XTogcHJvY2Vzc19vbmVfd29yaysweDE4OC8weDQ4MApDYWxsZXJbMDAwMDAwMDAwMDQ4NjQx MF06IHdvcmtlcl90aHJlYWQrMHgxNzAvMHg0YzAKQ2FsbGVyWzAwMDAwMDAwMDA0OGM2YjhdOiBr dGhyZWFkKzB4ZDgvMHgxMjAKQ2FsbGVyWzAwMDAwMDAwMDA0MDYwNjRdOiByZXRfZnJvbV9mb3Jr KzB4MWMvMHgyYwpDYWxsZXJbMDAwMDAwMDAwMDAwMDAwMF06ICAgICAgICAgICAobnVsbCkKClNp Z25lZC1vZmYtYnk6IFR1c2hhciBEYXZlIDx0dXNoYXIubi5kYXZlQG9yYWNsZS5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQv Y29yZS9uZXRwb2xsLmMgfCAxMCArKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRp b25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL25ldHBvbGwuYyBi L25ldC9jb3JlL25ldHBvbGwuYwppbmRleCA1MzU5OWJkLi40NTdmODgyIDEwMDY0NAotLS0gYS9u ZXQvY29yZS9uZXRwb2xsLmMKKysrIGIvbmV0L2NvcmUvbmV0cG9sbC5jCkBAIC0xMDUsMTUgKzEw NSwyMSBAQCBzdGF0aWMgdm9pZCBxdWV1ZV9wcm9jZXNzKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29y aykKIAl3aGlsZSAoKHNrYiA9IHNrYl9kZXF1ZXVlKCZucGluZm8tPnR4cSkpKSB7CiAJCXN0cnVj dCBuZXRfZGV2aWNlICpkZXYgPSBza2ItPmRldjsKIAkJc3RydWN0IG5ldGRldl9xdWV1ZSAqdHhx OworCQl1bnNpZ25lZCBpbnQgcV9pbmRleDsKIAogCQlpZiAoIW5ldGlmX2RldmljZV9wcmVzZW50 KGRldikgfHwgIW5ldGlmX3J1bm5pbmcoZGV2KSkgewogCQkJa2ZyZWVfc2tiKHNrYik7CiAJCQlj b250aW51ZTsKIAkJfQogCi0JCXR4cSA9IHNrYl9nZXRfdHhfcXVldWUoZGV2LCBza2IpOwotCiAJ CWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKwkJLyogY2hlY2sgaWYgc2tiLT5xdWV1ZV9tYXBwaW5n IGlzIHN0aWxsIHZhbGlkICovCisJCXFfaW5kZXggPSBza2JfZ2V0X3F1ZXVlX21hcHBpbmcoc2ti KTsKKwkJaWYgKHVubGlrZWx5KHFfaW5kZXggPj0gZGV2LT5yZWFsX251bV90eF9xdWV1ZXMpKSB7 CisJCQlxX2luZGV4ID0gcV9pbmRleCAlIGRldi0+cmVhbF9udW1fdHhfcXVldWVzOworCQkJc2ti X3NldF9xdWV1ZV9tYXBwaW5nKHNrYiwgcV9pbmRleCk7CisJCX0KKwkJdHhxID0gbmV0ZGV2X2dl dF90eF9xdWV1ZShkZXYsIHFfaW5kZXgpOwogCQlIQVJEX1RYX0xPQ0soZGV2LCB0eHEsIHNtcF9w cm9jZXNzb3JfaWQoKSk7CiAJCWlmIChuZXRpZl94bWl0X2Zyb3plbl9vcl9zdG9wcGVkKHR4cSkg fHwKIAkJICAgIG5ldHBvbGxfc3RhcnRfeG1pdChza2IsIGRldiwgdHhxKSAhPSBORVRERVZfVFhf T0spIHsKLS0gCjIuNC4xMQoKCkZyb20gNDhkYmY5YTg0YTRmZGQyMmI1Mzc5NjUyYThlYWI5MDQw YTdjZGZjYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTmlrb2xheSBBbGVrc2FuZHJv diA8bmlrb2xheUBjdW11bHVzbmV0d29ya3MuY29tPgpEYXRlOiBGcmksIDIxIEFwciAyMDE3IDIw OjQyOjE2ICswMzAwClN1YmplY3Q6IFtQQVRDSCAyNC8zM10gaXA2bXI6IGZpeCBub3RpZmljYXRp b24gZGV2aWNlIGRlc3RydWN0aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCA3MjNiOTI5Y2EwZjc5YzA3 OTZmMTYwYzJlZWRhNDU5N2VlOThkMmI4IF0KCkFuZHJleSBLb25vdmFsb3YgcmVwb3J0ZWQgYSBC VUcgY2F1c2VkIGJ5IHRoZSBpcDZtciBjb2RlIHdoaWNoIGlzIGNhdXNlZApiZWNhdXNlIHdlIGNh bGwgdW5yZWdpc3Rlcl9uZXRkZXZpY2VfbWFueSBmb3IgYSBkZXZpY2UgdGhhdCBpcyBhbHJlYWR5 CmJlaW5nIGRlc3Ryb3llZC4gSW4gSVB2NCdzIGlwbXIgdGhhdCBoYXMgYmVlbiByZXNvbHZlZCBi eSB0d28gY29tbWl0cwpsb25nIHRpbWUgYWdvIGJ5IGludHJvZHVjaW5nIHRoZSAibm90aWZ5IiBw YXJhbWV0ZXIgdG8gdGhlIGRlbGV0ZQpmdW5jdGlvbiBhbmQgYXZvaWRpbmcgdGhlIHVucmVnaXN0 ZXIgd2hlbiBjYWxsZWQgZnJvbSBhIG5vdGlmaWVyLCBzbwpsZXQncyBkbyB0aGUgc2FtZSBmb3Ig aXA2bXIuCgpUaGUgdHJhY2UgZnJvbSBBbmRyZXk6Ci0tLS0tLS0tLS0tLVsgY3V0IGhlcmUgXS0t LS0tLS0tLS0tLQprZXJuZWwgQlVHIGF0IG5ldC9jb3JlL2Rldi5jOjY4MTMhCmludmFsaWQgb3Bj b2RlOiAwMDAwIFsjMV0gU01QIEtBU0FOCk1vZHVsZXMgbGlua2VkIGluOgpDUFU6IDEgUElEOiAx MTY1IENvbW06IGt3b3JrZXIvdTQ6MyBOb3QgdGFpbnRlZCA0LjExLjAtcmM3KyAjMjUxCkhhcmR3 YXJlIG5hbWU6IFFFTVUgU3RhbmRhcmQgUEMgKGk0NDBGWCArIFBJSVgsIDE5OTYpLCBCSU9TIEJv Y2hzCjAxLzAxLzIwMTEKV29ya3F1ZXVlOiBuZXRucyBjbGVhbnVwX25ldAp0YXNrOiBmZmZmODgw MDY5MjA4MDAwIHRhc2suc3RhY2s6IGZmZmY4ODAwNjkyZDgwMDAKUklQOiAwMDEwOnJvbGxiYWNr X3JlZ2lzdGVyZWRfbWFueSsweDM0OC8weGViMCBuZXQvY29yZS9kZXYuYzo2ODEzClJTUDogMDAx ODpmZmZmODgwMDY5MmRlN2YwIEVGTEFHUzogMDAwMTAyOTcKUkFYOiBmZmZmODgwMDY5MjA4MDAw IFJCWDogMDAwMDAwMDAwMDAwMDAwMiBSQ1g6IDAwMDAwMDAwMDAwMDAwMDEKUkRYOiAwMDAwMDAw MDAwMDAwMDAwIFJTSTogMDAwMDAwMDAwMDAwMDAwMCBSREk6IGZmZmY4ODAwNmFmOTA1NjkKUkJQ OiBmZmZmODgwMDY5MmRlOWYwIFIwODogZmZmZjg4MDA2OTJkZWM2MCBSMDk6IDAwMDAwMDAwMDAw MDAwMDAKUjEwOiAwMDAwMDAwMDAwMDAwMDA2IFIxMTogMDAwMDAwMDAwMDAwMDAwMCBSMTI6IGZm ZmY4ODAwNmFmOTAwNzAKUjEzOiBmZmZmODgwMDY5MmRlYmYwIFIxNDogZGZmZmZjMDAwMDAwMDAw MCBSMTU6IGZmZmY4ODAwNmFmOTAwMDAKRlM6ICAwMDAwMDAwMDAwMDAwMDAwKDAwMDApIEdTOmZm ZmY4ODAwNmNiMDAwMDAoMDAwMCkKa25sR1M6MDAwMDAwMDAwMDAwMDAwMApDUzogIDAwMTAgRFM6 IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzCkNSMjogMDAwMDdmZTdlODk3ZDg3 MCBDUjM6IDAwMDAwMDAwNjU3ZTcwMDAgQ1I0OiAwMDAwMDAwMDAwMDAwNmUwCkNhbGwgVHJhY2U6 CiB1bnJlZ2lzdGVyX25ldGRldmljZV9tYW55LnBhcnQuMTA1KzB4ODcvMHg0NDAgbmV0L2NvcmUv ZGV2LmM6Nzg4MQogdW5yZWdpc3Rlcl9uZXRkZXZpY2VfbWFueSsweGM4LzB4MTIwIG5ldC9jb3Jl L2Rldi5jOjc4ODAKIGlwNm1yX2RldmljZV9ldmVudCsweDM2Mi8weDNmMCBuZXQvaXB2Ni9pcDZt ci5jOjEzNDYKIG5vdGlmaWVyX2NhbGxfY2hhaW4rMHgxNDUvMHgyZjAga2VybmVsL25vdGlmaWVy LmM6OTMKIF9fcmF3X25vdGlmaWVyX2NhbGxfY2hhaW4ga2VybmVsL25vdGlmaWVyLmM6Mzk0CiBy YXdfbm90aWZpZXJfY2FsbF9jaGFpbisweDJkLzB4NDAga2VybmVsL25vdGlmaWVyLmM6NDAxCiBj YWxsX25ldGRldmljZV9ub3RpZmllcnNfaW5mbysweDUxLzB4OTAgbmV0L2NvcmUvZGV2LmM6MTY0 NwogY2FsbF9uZXRkZXZpY2Vfbm90aWZpZXJzIG5ldC9jb3JlL2Rldi5jOjE2NjMKIHJvbGxiYWNr X3JlZ2lzdGVyZWRfbWFueSsweDkxOS8weGViMCBuZXQvY29yZS9kZXYuYzo2ODQxCiB1bnJlZ2lz dGVyX25ldGRldmljZV9tYW55LnBhcnQuMTA1KzB4ODcvMHg0NDAgbmV0L2NvcmUvZGV2LmM6Nzg4 MQogdW5yZWdpc3Rlcl9uZXRkZXZpY2VfbWFueSBuZXQvY29yZS9kZXYuYzo3ODgwCiBkZWZhdWx0 X2RldmljZV9leGl0X2JhdGNoKzB4NGZhLzB4NjQwIG5ldC9jb3JlL2Rldi5jOjgzMzMKIG9wc19l eGl0X2xpc3QuaXNyYS40KzB4MTAwLzB4MTUwIG5ldC9jb3JlL25ldF9uYW1lc3BhY2UuYzoxNDQK IGNsZWFudXBfbmV0KzB4NWE4LzB4YjQwIG5ldC9jb3JlL25ldF9uYW1lc3BhY2UuYzo0NjMKIHBy b2Nlc3Nfb25lX3dvcmsrMHhjMDQvMHgxYzEwIGtlcm5lbC93b3JrcXVldWUuYzoyMDk3CiB3b3Jr ZXJfdGhyZWFkKzB4MjIzLzB4MTljMCBrZXJuZWwvd29ya3F1ZXVlLmM6MjIzMQoga3RocmVhZCsw eDM1ZS8weDQzMCBrZXJuZWwva3RocmVhZC5jOjIzMQogcmV0X2Zyb21fZm9yaysweDMxLzB4NDAg YXJjaC94ODYvZW50cnkvZW50cnlfNjQuUzo0MzAKQ29kZTogM2MgMzIgMDAgMGYgODUgNzAgMGIg MDAgMDAgNDggYjggMDAgMDIgMDAgMDAgMDAgMDAgYWQgZGUgNDkgODkKNDcgNzggZTkgOTMgZmUg ZmYgZmYgNDkgOGQgNTcgNzAgNDkgOGQgNWYgNzggZWIgOWUgZTggODggN2EgMTQgZmUgPDBmPgow YiA0OCA4YiA5ZCAyOCBmZSBmZiBmZiBlOCA3YSA3YSAxNCBmZSA0OCBiOCAwMCAwMCAwMCAwMCAw MApSSVA6IHJvbGxiYWNrX3JlZ2lzdGVyZWRfbWFueSsweDM0OC8weGViMCBSU1A6IGZmZmY4ODAw NjkyZGU3ZjAKLS0tWyBlbmQgdHJhY2UgZTBiMjljNTdlOWIzMjkyYyBdLS0tCgpSZXBvcnRlZC1i eTogQW5kcmV5IEtvbm92YWxvdiA8YW5kcmV5a252bEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5 OiBOaWtvbGF5IEFsZWtzYW5kcm92IDxuaWtvbGF5QGN1bXVsdXNuZXR3b3Jrcy5jb20+ClRlc3Rl ZC1ieTogQW5kcmV5IEtvbm92YWxvdiA8YW5kcmV5a252bEBnb29nbGUuY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYv aXA2bXIuYyB8IDEzICsrKysrKy0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMo KyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvaXA2bXIuYyBiL25ldC9p cHY2L2lwNm1yLmMKaW5kZXggN2Y0MjY1Yi4uMTE3NDA1ZCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYv aXA2bXIuYworKysgYi9uZXQvaXB2Ni9pcDZtci5jCkBAIC03NzQsNyArNzc0LDggQEAgc3RhdGlj IHN0cnVjdCBuZXRfZGV2aWNlICppcDZtcl9yZWdfdmlmKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0 IG1yNl90YWJsZSAqbXJ0KQogICoJRGVsZXRlIGEgVklGIGVudHJ5CiAgKi8KIAotc3RhdGljIGlu dCBtaWY2X2RlbGV0ZShzdHJ1Y3QgbXI2X3RhYmxlICptcnQsIGludCB2aWZpLCBzdHJ1Y3QgbGlz dF9oZWFkICpoZWFkKQorc3RhdGljIGludCBtaWY2X2RlbGV0ZShzdHJ1Y3QgbXI2X3RhYmxlICpt cnQsIGludCB2aWZpLCBpbnQgbm90aWZ5LAorCQkgICAgICAgc3RydWN0IGxpc3RfaGVhZCAqaGVh ZCkKIHsKIAlzdHJ1Y3QgbWlmX2RldmljZSAqdjsKIAlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2OwpA QCAtODIwLDcgKzgyMSw3IEBAIHN0YXRpYyBpbnQgbWlmNl9kZWxldGUoc3RydWN0IG1yNl90YWJs ZSAqbXJ0LCBpbnQgdmlmaSwgc3RydWN0IGxpc3RfaGVhZCAqaGVhZCkKIAkJCQkJICAgICBkZXYt PmlmaW5kZXgsICZpbjZfZGV2LT5jbmYpOwogCX0KIAotCWlmICh2LT5mbGFncyAmIE1JRkZfUkVH SVNURVIpCisJaWYgKCh2LT5mbGFncyAmIE1JRkZfUkVHSVNURVIpICYmICFub3RpZnkpCiAJCXVu cmVnaXN0ZXJfbmV0ZGV2aWNlX3F1ZXVlKGRldiwgaGVhZCk7CiAKIAlkZXZfcHV0KGRldik7CkBA IC0xMzMxLDcgKzEzMzIsNiBAQCBzdGF0aWMgaW50IGlwNm1yX2RldmljZV9ldmVudChzdHJ1Y3Qg bm90aWZpZXJfYmxvY2sgKnRoaXMsCiAJc3RydWN0IG1yNl90YWJsZSAqbXJ0OwogCXN0cnVjdCBt aWZfZGV2aWNlICp2OwogCWludCBjdDsKLQlMSVNUX0hFQUQobGlzdCk7CiAKIAlpZiAoZXZlbnQg IT0gTkVUREVWX1VOUkVHSVNURVIpCiAJCXJldHVybiBOT1RJRllfRE9ORTsKQEAgLTEzNDAsMTAg KzEzNDAsOSBAQCBzdGF0aWMgaW50IGlwNm1yX2RldmljZV9ldmVudChzdHJ1Y3Qgbm90aWZpZXJf YmxvY2sgKnRoaXMsCiAJCXYgPSAmbXJ0LT52aWY2X3RhYmxlWzBdOwogCQlmb3IgKGN0ID0gMDsg Y3QgPCBtcnQtPm1heHZpZjsgY3QrKywgdisrKSB7CiAJCQlpZiAodi0+ZGV2ID09IGRldikKLQkJ CQltaWY2X2RlbGV0ZShtcnQsIGN0LCAmbGlzdCk7CisJCQkJbWlmNl9kZWxldGUobXJ0LCBjdCwg MSwgTlVMTCk7CiAJCX0KIAl9Ci0JdW5yZWdpc3Rlcl9uZXRkZXZpY2VfbWFueSgmbGlzdCk7CiAK IAlyZXR1cm4gTk9USUZZX0RPTkU7CiB9CkBAIC0xNTUyLDcgKzE1NTEsNyBAQCBzdGF0aWMgdm9p ZCBtcm91dGVfY2xlYW5fdGFibGVzKHN0cnVjdCBtcjZfdGFibGUgKm1ydCwgYm9vbCBhbGwpCiAJ Zm9yIChpID0gMDsgaSA8IG1ydC0+bWF4dmlmOyBpKyspIHsKIAkJaWYgKCFhbGwgJiYgKG1ydC0+ dmlmNl90YWJsZVtpXS5mbGFncyAmIFZJRkZfU1RBVElDKSkKIAkJCWNvbnRpbnVlOwotCQltaWY2 X2RlbGV0ZShtcnQsIGksICZsaXN0KTsKKwkJbWlmNl9kZWxldGUobXJ0LCBpLCAwLCAmbGlzdCk7 CiAJfQogCXVucmVnaXN0ZXJfbmV0ZGV2aWNlX21hbnkoJmxpc3QpOwogCkBAIC0xNzA2LDcgKzE3 MDUsNyBAQCBpbnQgaXA2X21yb3V0ZV9zZXRzb2Nrb3B0KHN0cnVjdCBzb2NrICpzaywgaW50IG9w dG5hbWUsIGNoYXIgX191c2VyICpvcHR2YWwsIHVucwogCQlpZiAoY29weV9mcm9tX3VzZXIoJm1p ZmksIG9wdHZhbCwgc2l6ZW9mKG1pZmlfdCkpKQogCQkJcmV0dXJuIC1FRkFVTFQ7CiAJCXJ0bmxf bG9jaygpOwotCQlyZXQgPSBtaWY2X2RlbGV0ZShtcnQsIG1pZmksIE5VTEwpOworCQlyZXQgPSBt aWY2X2RlbGV0ZShtcnQsIG1pZmksIDAsIE5VTEwpOwogCQlydG5sX3VubG9jaygpOwogCQlyZXR1 cm4gcmV0OwogCi0tIAoyLjQuMTEKCgpGcm9tIGIzOTVhZjdhNjBhMDRhZmM4YTE0OTgwODA2YWRl YjkwZjkwZDNkMTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1vaGFtYWQgSGFqIFlh aGlhIDxtb2hhbWFkQG1lbGxhbm94LmNvbT4KRGF0ZTogVGh1LCAzMCBNYXIgMjAxNyAxNzowMDoy NSArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMjUvMzNdIG5ldC9tbHg1OiBGaXggZHJpdmVyIGxvYWQg YmFkIGZsb3cgd2hlbiBoYXZpbmcgZncKIGluaXRpYWxpemluZyB0aW1lb3V0CgpbIFVwc3RyZWFt IGNvbW1pdCA1NTM3OGEyMzhlMDRiMzljYzgyOTU3ZDkxZDE2NDk5NzA0ZWE3MTliIF0KCklmIEZX IGlzIHN0dWNrIGluIGluaXRpYWxpemluZyBzdGF0ZSB3ZSB3aWxsIHNraXAgdGhlIGRyaXZlciBs b2FkLCBidXQKY3VycmVudCBlcnJvciBoYW5kbGluZyBmbG93IGRvZXNuJ3QgY2xlYW4gcHJldmlv dXNseSBhbGxvY2F0ZWQgY29tbWFuZAppbnRlcmZhY2UgcmVzb3VyY2VzLgoKRml4ZXM6IGUzMjk3 MjQ2YzJjOCAoJ25ldC9tbHg1X2NvcmU6IFdhaXQgZm9yIEZXIHJlYWRpbmVzcyBvbiBzdGFydHVw JykKU2lnbmVkLW9mZi1ieTogTW9oYW1hZCBIYWogWWFoaWEgPG1vaGFtYWRAbWVsbGFub3guY29t PgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KLS0t CiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbWFpbi5jIHwgMiArLQog MSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4uYyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9tYWluLmMKaW5kZXggN2ExOTZhMC4u ZDc3NmRiNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL21haW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUv bWFpbi5jCkBAIC05NjYsNyArOTY2LDcgQEAgc3RhdGljIGludCBtbHg1X2xvYWRfb25lKHN0cnVj dCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X3ByaXYgKnByaXYsCiAJaWYgKGVycikg ewogCQlkZXZfZXJyKCZkZXYtPnBkZXYtPmRldiwgIkZpcm13YXJlIG92ZXIgJWQgTVMgaW4gaW5p dGlhbGl6aW5nIHN0YXRlLCBhYm9ydGluZ1xuIiwKIAkJCUZXX0lOSVRfVElNRU9VVF9NSUxJKTsK LQkJZ290byBvdXRfZXJyOworCQlnb3RvIGVycl9jbWRfY2xlYW51cDsKIAl9CiAKIAllcnIgPSBt bHg1X2NvcmVfZW5hYmxlX2hjYShkZXYsIDApOwotLSAKMi40LjExCgoKRnJvbSA2ZmIyNGY1NmFi M2JjYjdjMDRmNDY2ZmU0ZjZiNDFjNThkZTUxZjhkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBFdWdlbmlhIEVtYW50YXlldiA8ZXVnZW5pYUBtZWxsYW5veC5jb20+CkRhdGU6IFdlZCwg MjIgTWFyIDIwMTcgMTE6NDQ6MTQgKzAyMDAKU3ViamVjdDogW1BBVENIIDI2LzMzXSBuZXQvbWx4 NWU6IEZpeCBzbWFsbCBwYWNrZXQgdGhyZXNob2xkCgpbIFVwc3RyZWFtIGNvbW1pdCBjYmFkOGNk ZGI2ZWQ3ZWYzYTVmMGE5YTcwZjE3MTFkNGQ3ZmI5YThmIF0KClJYIHBhY2tldCBoZWFkZXJzIGFy ZSBtZWFudCB0byBiZSBjb250YWluZWQgaW4gU0tCIGxpbmVhciBwYXJ0LAphbmQgY2hvc2UgYSB0 aHJlc2hvbGQgb2YgMTI4LgpJdCB0dXJucyBvdXQgdGhpcyBpcyBub3QgZW5vdWdoLCBpLmUuIGZv ciBJUHY2IHBhY2tldCBvdmVyIFZ4TEFOLgpJbiB0aGlzIGNhc2UsIFVEUC9JUHY0IG5lZWRzIDQy IGJ5dGVzLCBHRU5FVkUgaGVhZGVyIGlzIDggYnl0ZXMsCmFuZCA4NiBieXRlcyBmb3IgVENQL0lQ djYuIEluIHRvdGFsIDEzNiBieXRlcyB0aGF0IGlzIG1vcmUgdGhhbgpjdXJyZW50IDEyOCBieXRl cy4gSW4gdGhpcyBjYXNlIGV4cGFuZCBoZWFkZXIgZmxvdyBpcyByZWFjaGVkLgpUaGUgd2Fybmlu ZyBpbiBza2JfdHJ5X2NvYWxlc2NlKCkgY2F1c2VkIGJ5IGEgd3JvbmcgdHJ1ZXNpemUKd2FzIGFs cmVhZHkgZml4ZWQgaGVyZToKY29tbWl0IDE1OGYzMjNiOTg2OCAoIm5ldDogYWRqdXN0IHNrYi0+ dHJ1ZXNpemUgaW4gcHNrYl9leHBhbmRfaGVhZCgpIikuClN0aWxsLCB3ZSBwcmVmZXIgdG8gdG90 YWxseSBhdm9pZCB0aGUgZXhwYW5kIGhlYWRlciBmbG93IGZvciBwZXJmb3JtYW5jZSByZWFzb25z LgpUZXN0ZWQgcmVndWxhciBUQ1BfU1RSRUFNIHdpdGggaXBlcmYgZm9yIDEgYW5kIDggc3RyZWFt cywgbm8gZGVncmFkYXRpb24gd2FzIGZvdW5kLgoKRml4ZXM6IDQ2MTAxN2NiMDA2YSAoIm5ldC9t bHg1ZTogU3VwcG9ydCBSWCBtdWx0aS1wYWNrZXQgV1FFIChTdHJpZGluZyBSUSkiKQpTaWduZWQt b2ZmLWJ5OiBFdWdlbmlhIEVtYW50YXlldiA8ZXVnZW5pYUBtZWxsYW5veC5jb20+ClNpZ25lZC1v ZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oIHwgMiArLQogMSBmaWxlIGNoYW5n ZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmggYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaAppbmRleCA4MWQ4ZTNiLi4yMWNlMGI3IDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaAorKysgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaApAQCAtODIsNyArODIs NyBAQAogI2RlZmluZSBNTFg1RV9WQUxJRF9OVU1fTVRUUyhudW1fbXR0cykgKE1MWDVfTVRUX09D VFcobnVtX210dHMpIDw9IFUxNl9NQVgpCiAKICNkZWZpbmUgTUxYNV9VTVJfQUxJR04JCQkJKDIw NDgpCi0jZGVmaW5lIE1MWDVfTVBXUlFfU01BTExfUEFDS0VUX1RIUkVTSE9MRAkoMTI4KQorI2Rl ZmluZSBNTFg1X01QV1JRX1NNQUxMX1BBQ0tFVF9USFJFU0hPTEQJKDI1NikKIAogI2RlZmluZSBN TFg1RV9QQVJBTVNfREVGQVVMVF9MUk9fV1FFX1NaICAgICAgICAgICAgICAgICAoNjQgKiAxMDI0 KQogI2RlZmluZSBNTFg1RV9ERUZBVUxUX0xST19USU1FT1VUICAgICAgICAgICAgICAgICAgICAg ICAzMgotLSAKMi40LjExCgoKRnJvbSBlYzVjZmE0M2ZiNWY3M2QzZGNmY2ZkODdmMGIxZDMyZGRj MzNlMWQzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBJbGFuIFRheWFyaSA8aWxhbnRA bWVsbGFub3guY29tPgpEYXRlOiBUaHUsIDIgTWFyIDIwMTcgMTU6NDk6NDUgKzAyMDAKU3ViamVj dDogW1BBVENIIDI3LzMzXSBuZXQvbWx4NWU6IEZpeCBFVEhUT09MX0dSWENMU1JMQUxMIGhhbmRs aW5nCgpbIFVwc3RyZWFtIGNvbW1pdCA1ZTgyYzllNGVkNjBiZWJhODNmNDZhMWE1YTgzMDdiOTlh MjNlOTgyIF0KCkhhbmRsZXIgZm9yIEVUSFRPT0xfR1JYQ0xTUkxBTEwgbXVzdCBzZXQgaW5mby0+ ZGF0YSB0byB0aGUgc2l6ZQpvZiB0aGUgdGFibGUsIHJlZ2FyZGxlc3Mgb2YgdGhlIGFtb3VudCBv ZiBlbnRyaWVzIGluIGl0LgpFeGlzdGluZyBjb2RlIGRvZXMgbm90IGRvIHRoYXQsIGFuZCB0aGlz IGJyZWFrcyBhbGwgdXNhZ2Ugb2YgZXRodG9vbCAtTgpvciAtbiB3aXRob3V0IGV4cGxpY2l0IGxv Y2F0aW9uLCB3aXRoIHRoaXMgZXJyb3I6CnJtZ3I6IEludmFsaWQgUlggY2xhc3MgcnVsZXMgdGFi bGUgc2l6ZTogU3VjY2VzcwoKU2V0IGluZm8tPmRhdGEgdG8gdGhlIHRhYmxlIHNpemUuCgpUZXN0 ZWQ6CmV0aHRvb2wgLW4gZW5zOApldGh0b29sIC1OIGVuczggZmxvdy10eXBlIGlwNCBzcmMtaXAg MS4xLjEuMSBkc3QtaXAgMi4yLjIuMiBhY3Rpb24gMQpldGh0b29sIC1OIGVuczggZmxvdy10eXBl IGlwNCBzcmMtaXAgMS4xLjEuMSBkc3QtaXAgMi4yLjIuMiBhY3Rpb24gMSBsb2MgNTUKZXRodG9v bCAtbiBlbnM4CmV0aHRvb2wgLU4gZW5zOCBkZWxldGUgMTAyMwpldGh0b29sIC1OIGVuczggZGVs ZXRlIDU1CgpGaXhlczogZjkxM2E3MmFhMDA4ICgibmV0L21seDVlOiBBZGQgc3VwcG9ydCB0byBn ZXQgZXRodG9vbCBmbG93IHJ1bGVzIikKU2lnbmVkLW9mZi1ieTogSWxhbiBUYXlhcmkgPGlsYW50 QG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxs YW5veC5jb20+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vu X2ZzX2V0aHRvb2wuYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2ZzX2V0 aHRvb2wuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9mc19l dGh0b29sLmMKaW5kZXggOTBlODFhZS4uZTAzNGRiYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2ZzX2V0aHRvb2wuYworKysgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fZnNfZXRodG9vbC5jCkBAIC01NjMs NiArNTYzLDcgQEAgaW50IG1seDVlX2V0aHRvb2xfZ2V0X2FsbF9mbG93cyhzdHJ1Y3QgbWx4NWVf cHJpdiAqcHJpdiwgc3RydWN0IGV0aHRvb2xfcnhuZmMgKmkKIAlpbnQgaWR4ID0gMDsKIAlpbnQg ZXJyID0gMDsKIAorCWluZm8tPmRhdGEgPSBNQVhfTlVNX09GX0VUSFRPT0xfUlVMRVM7CiAJd2hp bGUgKCghZXJyIHx8IGVyciA9PSAtRU5PRU5UKSAmJiBpZHggPCBpbmZvLT5ydWxlX2NudCkgewog CQllcnIgPSBtbHg1ZV9ldGh0b29sX2dldF9mbG93KHByaXYsIGluZm8sIGxvY2F0aW9uKTsKIAkJ aWYgKCFlcnIpCi0tIAoyLjQuMTEKCgpGcm9tIGY4ZGI2OWNmMThlMzljZTRmZDIwMTQ3ZTkwOWUy YWUzZjg5ODFkYjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEhlcmJlcnQgWHUgPGhl cmJlcnRAZ29uZG9yLmFwYW5hLm9yZy5hdT4KRGF0ZTogVGh1LCAyMCBBcHIgMjAxNyAyMDo1NTox MiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjgvMzNdIG1hY3ZsYW46IEZpeCBkZXZpY2UgcmVmIGxl YWsgd2hlbiBwdXJnaW5nIGJjX3F1ZXVlCgpbIFVwc3RyZWFtIGNvbW1pdCBmNjQ3ODIxOGU2ZWRj MmE1ODdiOGYxMzJmNjYzNzNiYWE3YjI0OTdjIF0KCldoZW4gYSBwYXJlbnQgbWFjdmxhbiBkZXZp Y2UgaXMgZGVzdHJveWVkIHdlIGVuZCB1cCBwdXJnaW5nIGl0cwpicm9hZGNhc3QgcXVldWUgd2l0 aG91dCBkcm9wcGluZyB0aGUgZGV2aWNlIHJlZmVyZW5jZSBjb3VudCBvbgp0aGUgcGFja2V0IHNv dXJjZSBkZXZpY2UuICBUaGlzIGNhdXNlcyB0aGUgc291cmNlIGRldmljZSB0byBsaW5nZXIuCgpU aGlzIHBhdGNoIGRyb3BzIHRoYXQgcmVmZXJlbmNlIGNvdW50LgoKRml4ZXM6IDI2MDkxNmRmYjQ4 YyAoIm1hY3ZsYW46IEZpeCBwb3RlbnRpYWwgdXNlLWFmdGVyIGZyZWUgZm9yLi4uIikKUmVwb3J0 ZWQtYnk6IEpvZSBHaGFsYW0gPEpvZS5HaGFsYW1AZGVsbC5jb20+ClNpZ25lZC1vZmYtYnk6IEhl cmJlcnQgWHUgPGhlcmJlcnRAZ29uZG9yLmFwYW5hLm9yZy5hdT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L21hY3Zs YW4uYyB8IDExICsrKysrKysrKystCiAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwg MSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L21hY3ZsYW4uYyBiL2RyaXZl cnMvbmV0L21hY3ZsYW4uYwppbmRleCAyNmQ2ZjBiLi5kYzhjY2FjIDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9tYWN2bGFuLmMKKysrIGIvZHJpdmVycy9uZXQvbWFjdmxhbi5jCkBAIC0xMTQwLDYg KzExNDAsNyBAQCBzdGF0aWMgaW50IG1hY3ZsYW5fcG9ydF9jcmVhdGUoc3RydWN0IG5ldF9kZXZp Y2UgKmRldikKIHN0YXRpYyB2b2lkIG1hY3ZsYW5fcG9ydF9kZXN0cm95KHN0cnVjdCBuZXRfZGV2 aWNlICpkZXYpCiB7CiAJc3RydWN0IG1hY3ZsYW5fcG9ydCAqcG9ydCA9IG1hY3ZsYW5fcG9ydF9n ZXRfcnRubChkZXYpOworCXN0cnVjdCBza19idWZmICpza2I7CiAKIAlkZXYtPnByaXZfZmxhZ3Mg Jj0gfklGRl9NQUNWTEFOX1BPUlQ7CiAJbmV0ZGV2X3J4X2hhbmRsZXJfdW5yZWdpc3RlcihkZXYp OwpAQCAtMTE0OCw3ICsxMTQ5LDE1IEBAIHN0YXRpYyB2b2lkIG1hY3ZsYW5fcG9ydF9kZXN0cm95 KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJICogYnV0IHdlIG5lZWQgdG8gY2FuY2VsIGl0IGFu ZCBwdXJnZSBsZWZ0IHNrYnMgaWYgYW55LgogCSAqLwogCWNhbmNlbF93b3JrX3N5bmMoJnBvcnQt PmJjX3dvcmspOwotCV9fc2tiX3F1ZXVlX3B1cmdlKCZwb3J0LT5iY19xdWV1ZSk7CisKKwl3aGls ZSAoKHNrYiA9IF9fc2tiX2RlcXVldWUoJnBvcnQtPmJjX3F1ZXVlKSkpIHsKKwkJY29uc3Qgc3Ry dWN0IG1hY3ZsYW5fZGV2ICpzcmMgPSBNQUNWTEFOX1NLQl9DQihza2IpLT5zcmM7CisKKwkJaWYg KHNyYykKKwkJCWRldl9wdXQoc3JjLT5kZXYpOworCisJCWtmcmVlX3NrYihza2IpOworCX0KIAog CWtmcmVlX3JjdShwb3J0LCByY3UpOwogfQotLSAKMi40LjExCgoKRnJvbSA1NzNkN2QwMTFkM2Nh MDlhODFkOGQ3MThkNDBiNTA0Y2ViYzgzNDVmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBEYXZpZCBBaGVybiA8ZHNhQGN1bXVsdXNuZXR3b3Jrcy5jb20+CkRhdGU6IFR1ZSwgMjUgQXBy IDIwMTcgMDk6MTc6MjkgLTA3MDAKU3ViamVjdDogW1BBVENIIDI5LzMzXSBuZXQ6IGlwdjY6IHJl Z2VuZXJhdGUgaG9zdCByb3V0ZSBpZiBtb3ZlZCB0byBnYyBsaXN0CgpbIFVwc3RyZWFtIGNvbW1p dCA4MDQ4Y2VkOWJlYjIxYTUyZTMzMDVmMzMzMmFlODIwMjA2MTlmMjRlIF0KClRha2luZyBkb3du IHRoZSBsb29wYmFjayBkZXZpY2Ugd3JlYWtzIGhhdm9jIG9uIElQdjYgcm91dGluZy4gQnkKZXh0 ZW5zaW9uLCB0YWtpbmcgZG93biBhIFZSRiBkZXZpY2Ugd3JlYWtzIGhhdm9jIG9uIGl0cyB0YWJs ZS4KCkRtaXRyeSBhbmQgQW5kcmV5IGJvdGggcmVwb3J0ZWQgaGVhcCBvdXQtb2YtYm91bmRzIHJl cG9ydHMgaW4gdGhlIElQdjYKRklCIGNvZGUgd2hpbGUgcnVubmluZyBzeXprYWxsZXIgZnV6emVy LiBUaGUgcm9vdCBjYXVzZSBpcyBhIGRlYWQgZHN0CnRoYXQgaXMgb24gdGhlIGdhcmJhZ2UgbGlz dCBnZXRzIHJlaW5zZXJ0ZWQgaW50byB0aGUgSVB2NiBGSUIuIFdoaWxlIG9uCnRoZSBnYyAob3Ig cGVyaGFwcyB3aGVuIGl0IGdldHMgYWRkZWQgdG8gdGhlIGdjIGxpc3QpIHRoZSBkc3QtPm5leHQg aXMKc2V0IHRvIGFuIElQdjQgZHN0LiBBIHN1YnNlcXVlbnQgd2FsayBvZiB0aGUgaXB2NiB0YWJs ZXMgY2F1c2VzIHRoZQpvdXQtb2YtYm91bmRzIGFjY2Vzcy4KCkFuZHJleSdzIHJlcHJvZHVjZXIg d2FzIHRoZSBrZXkgdG8gZ2V0dGluZyB0byB0aGUgYm90dG9tIG9mIHRoaXMuCgpXaXRoIElQdjYs IGhvc3Qgcm91dGVzIGZvciBhbiBhZGRyZXNzIGhhdmUgdGhlIGRzdC0+ZGV2IHNldCB0byB0aGUK bG9vcGJhY2sgZGV2aWNlLiBXaGVuIHRoZSAnbG8nIGRldmljZSBpcyB0YWtlbiBkb3duLCBydDZf aWZkb3duIGluaXRpYXRlcwphIHdhbGsgb2YgdGhlIGZpYiBldmljdGluZyByb3V0ZXMgd2l0aCB0 aGUgJ2xvJyBkZXZpY2Ugd2hpY2ggbWVhbnMgYWxsCmhvc3Qgcm91dGVzIGFyZSByZW1vdmVkLiBU aGF0IHByb2Nlc3MgbW92ZXMgdGhlIGRzdCB3aGljaCBpcyBhdHRhY2hlZCB0bwphbiBpbmV0Nl9p ZmFkZHIgdG8gdGhlIGdjIGxpc3QgYW5kIG1hcmtzIGl0IGFzIGRlYWQuCgpUaGUgcmVjZW50IGNo YW5nZSB0byBrZWVwIGdsb2JhbCBJUHY2IGFkZHJlc3NlcyBhZGRlZCBhIG5ldyBmdW5jdGlvbiwK Zml4dXBfcGVybWFuZW50X2FkZHIsIHRoYXQgaXMgY2FsbGVkIG9uIGFkbWluIHVwLiBUaGF0IGZ1 bmN0aW9uIHJlc3RhcnRzCmRhZCBmb3IgYW4gaW5ldDZfaWZhZGRyIGFuZCB3aGVuIGl0IGNvbXBs ZXRlcyB0aGUgaG9zdCByb3V0ZSBhdHRhY2hlZAp0byBpdCBpcyBpbnNlcnRlZCBpbnRvIHRoZSBm aWIuIFNpbmNlIHRoZSByb3V0ZSB3YXMgbWFya2VkIGRlYWQgYW5kCm1vdmVkIHRvIHRoZSBnYyBs aXN0LCByZS1pbnNlcnRpbmcgdGhlIHJvdXRlIGNhdXNlcyB0aGUgcmVwb3J0ZWQKb3V0LW9mLWJv dW5kcyBhY2Nlc3Nlcy4gSWYgdGhlIGRldmljZSB3aXRoIHRoZSBhZGRyZXNzIGlzIHRha2VuIGRv d24Kb3IgdGhlIGFkZHJlc3MgaXMgcmVtb3ZlZCwgdGhlIFdBUk5fT04gaW4gZmliNl9kZWwgaXMg dHJpZ2dlcmVkLgoKQWxsIG9mIHRob3NlIGZhdWx0cyBhcmUgZml4ZWQgYnkgcmVnZW5lcmF0aW5n IHRoZSBob3N0IHJvdXRlIGlmIHRoZQpleGlzdGluZyBvbmUgaGFzIGJlZW4gbW92ZWQgdG8gdGhl IGdjIGxpc3QsIHNvbWV0aGluZyB0aGF0IGNhbiBiZQpkZXRlcm1pbmVkIGJ5IGNoZWNraW5nIGlm IHRoZSBydDZpX3JlZiBjb3VudGVyIGlzIDAuCgpGaXhlczogZjE3MDVlYzE5N2U3ICgibmV0OiBp cHY2OiBNYWtlIGFkZHJlc3MgZmx1c2hpbmcgb24gaWZkb3duIG9wdGlvbmFsIikKUmVwb3J0ZWQt Ynk6IERtaXRyeSBWeXVrb3YgPGR2eXVrb3ZAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6IEFuZHJl eSBLb25vdmFsb3YgPGFuZHJleWtudmxAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg QWhlcm4gPGRzYUBjdW11bHVzbmV0d29ya3MuY29tPgpBY2tlZC1ieTogTWFydGluIEthRmFpIExh dSA8a2FmYWlAZmIuY29tPgpBY2tlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogbmV0L2lwdjYvYWRkcmNvbmYuYyB8IDE0ICsrKysrKysrKysrKy0tCiAxIGZpbGUgY2hh bmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQv aXB2Ni9hZGRyY29uZi5jIGIvbmV0L2lwdjYvYWRkcmNvbmYuYwppbmRleCBjYmNjOTkxLi5jZmZk YmRiIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9hZGRyY29uZi5jCisrKyBiL25ldC9pcHY2L2FkZHJj b25mLmMKQEAgLTMyNTMsMTQgKzMyNTMsMjQgQEAgc3RhdGljIHZvaWQgYWRkcmNvbmZfZ3JlX2Nv bmZpZyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogc3RhdGljIGludCBmaXh1cF9wZXJtYW5lbnRf YWRkcihzdHJ1Y3QgaW5ldDZfZGV2ICppZGV2LAogCQkJCXN0cnVjdCBpbmV0Nl9pZmFkZHIgKmlm cCkKIHsKLQlpZiAoIWlmcC0+cnQpIHsKLQkJc3RydWN0IHJ0Nl9pbmZvICpydDsKKwkvKiBydDZp X3JlZiA9PSAwIG1lYW5zIHRoZSBob3N0IHJvdXRlIHdhcyByZW1vdmVkIGZyb20gdGhlCisJICog RklCLCBmb3IgZXhhbXBsZSwgaWYgJ2xvJyBkZXZpY2UgaXMgdGFrZW4gZG93bi4gSW4gdGhhdAor CSAqIGNhc2UgcmVnZW5lcmF0ZSB0aGUgaG9zdCByb3V0ZS4KKwkgKi8KKwlpZiAoIWlmcC0+cnQg fHwgIWF0b21pY19yZWFkKCZpZnAtPnJ0LT5ydDZpX3JlZikpIHsKKwkJc3RydWN0IHJ0Nl9pbmZv ICpydCwgKnByZXY7CiAKIAkJcnQgPSBhZGRyY29uZl9kc3RfYWxsb2MoaWRldiwgJmlmcC0+YWRk ciwgZmFsc2UpOwogCQlpZiAodW5saWtlbHkoSVNfRVJSKHJ0KSkpCiAJCQlyZXR1cm4gUFRSX0VS UihydCk7CiAKKwkJLyogaWZwLT5ydCBjYW4gYmUgYWNjZXNzZWQgb3V0c2lkZSBvZiBydG5sICov CisJCXNwaW5fbG9jaygmaWZwLT5sb2NrKTsKKwkJcHJldiA9IGlmcC0+cnQ7CiAJCWlmcC0+cnQg PSBydDsKKwkJc3Bpbl91bmxvY2soJmlmcC0+bG9jayk7CisKKwkJaXA2X3J0X3B1dChwcmV2KTsK IAl9CiAKIAlpZiAoIShpZnAtPmZsYWdzICYgSUZBX0ZfTk9QUkVGSVhST1VURSkpIHsKLS0gCjIu NC4xMQoKCkZyb20gOGY4MzZiZGFiOWRiOGRhYmMwM2Y0MTZkMjZhMWNmYWVjN2NiYmUwOSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQWxleGFuZGVyIEtvY2hldGtvdiA8YWwua29jaGV0 QGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAyMCBBcHIgMjAxNyAxNDowMDowNCArMDMwMApTdWJqZWN0 OiBbUEFUQ0ggMzAvMzNdIG5ldDogcGh5OiBmaXggYXV0by1uZWdvdGlhdGlvbiBzdGFsbCBkdWUg dG8gdW5hdmFpbGFibGUKIGludGVycnVwdAoKWyBVcHN0cmVhbSBjb21taXQgZjU1NWYzNGZkYzU4 NmE1NjIwNGNkMTZkOWE3YzEwNGVjNmNiNjY1MCBdCgpUaGUgRXRoZXJuZXQgbGluayBvbiBhbiBp bnRlcnJ1cHQgZHJpdmVuIFBIWSB3YXMgbm90IGNvbWluZyB1cCBpZiB0aGUgRXRoZXJuZXQKY2Fi bGUgd2FzIHBsdWdnZWQgYmVmb3JlIHRoZSBFdGhlcm5ldCBpbnRlcmZhY2Ugd2FzIGJyb3VnaHQg dXAuCgpUaGUgcGF0Y2ggdHJpZ2dlciBQSFkgc3RhdGUgbWFjaGluZSB0byB1cGRhdGUgbGluayBz dGF0ZSBpZiBQSFkgd2FzIHJlcXVlc3RlZCB0bwpkbyBhdXRvLW5lZ290aWF0aW9uIGFuZCBhdXRv LW5lZ290aWF0aW9uIGNvbXBsZXRlIGZsYWcgYWxyZWFkeSBzZXQuCgpEdXJpbmcgcG93ZXItdXAg Y3ljbGUgdGhlIFBIWSBkbyBhdXRvLW5lZ290aWF0aW9uLCBnZW5lcmF0ZSBpbnRlcnJ1cHQgYW5k IHNldAphdXRvLW5lZ290aWF0aW9uIGNvbXBsZXRlIGZsYWcuIEludGVycnVwdCBpcyBoYW5kbGVk IGJ5IFBIWSBzdGF0ZSBtYWNoaW5lIGJ1dApkb2Vzbid0IHVwZGF0ZSBsaW5rIHN0YXRlIGJlY2F1 c2UgUEhZIGlzIGluIFBIWV9SRUFEWSBzdGF0ZS4gQWZ0ZXIgc29tZSB0aW1lCk1BQyBicmluZyB1 cCwgc3RhcnQgYW5kIHJlcXVlc3QgUEhZIHRvIGRvIGF1dG8tbmVnb3RpYXRpb24uIElmIHRoZXJl IGFyZSBubyBuZXcKc2V0dGluZ3MgdG8gYWR2ZXJ0aXNlIGdlbnBoeV9jb25maWdfYW5lZygpIGRv ZXNuJ3Qgc3RhcnQgUEhZIGF1dG8tbmVnb3RpYXRpb24uClBIWSBjb250aW51ZSB0byBzdGF5IGlu IGF1dG8tbmVnb3RpYXRpb24gY29tcGxldGUgc3RhdGUgYW5kIGRvZXNuJ3QgZmlyZQppbnRlcnJ1 cHQuIEF0IHRoZSBzYW1lIHRpbWUgUEhZIHN0YXRlIG1hY2hpbmUgZXhwZWN0IHRoYXQgUEhZIHN0 YXJ0ZWQKYXV0by1uZWdvdGlhdGlvbiBhbmQgaXMgd2FpdGluZyBmb3IgaW50ZXJydXB0IGZyb20g UEhZIGFuZCBpdCB3b24ndCBnZXQgaXQuCgpGaXhlczogMzIxYmVlYzUwNDdhICgibmV0OiBwaHk6 IFVzZSBpbnRlcnJ1cHRzIHdoZW4gYXZhaWxhYmxlIGluIE5PTElOSyBzdGF0ZSIpClNpZ25lZC1v ZmYtYnk6IEFsZXhhbmRlciBLb2NoZXRrb3YgPGFsLmtvY2hldEBnbWFpbC5jb20+CkNjOiBzdGFi bGUgPHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmc+ICMgdjQuOSsKVGVzdGVkLWJ5OiBSb2dlciBRdWFk cm9zIDxyb2dlcnFAdGkuY29tPgpUZXN0ZWQtYnk6IEFsZXhhbmRyZSBCZWxsb25pIDxhbGV4YW5k cmUuYmVsbG9uaUBmcmVlLWVsZWN0cm9ucy5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9waHkvcGh5LmMgfCA0 MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tCiBpbmNsdWRlL2xpbnV4 L3BoeS5oICAgfCAgMSArCiAyIGZpbGVzIGNoYW5nZWQsIDM3IGluc2VydGlvbnMoKyksIDQgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L3BoeS5jIGIvZHJpdmVycy9u ZXQvcGh5L3BoeS5jCmluZGV4IDU2ZmUxNjkuLmE5YmUyNmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L3BoeS9waHkuYworKysgYi9kcml2ZXJzL25ldC9waHkvcGh5LmMKQEAgLTU1MiwxNiArNTUy LDE4IEBAIGludCBwaHlfbWlpX2lvY3RsKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYsIHN0cnVj dCBpZnJlcSAqaWZyLCBpbnQgY21kKQogRVhQT1JUX1NZTUJPTChwaHlfbWlpX2lvY3RsKTsKIAog LyoqCi0gKiBwaHlfc3RhcnRfYW5lZyAtIHN0YXJ0IGF1dG8tbmVnb3RpYXRpb24gZm9yIHRoaXMg UEhZIGRldmljZQorICogcGh5X3N0YXJ0X2FuZWdfcHJpdiAtIHN0YXJ0IGF1dG8tbmVnb3RpYXRp b24gZm9yIHRoaXMgUEhZIGRldmljZQogICogQHBoeWRldjogdGhlIHBoeV9kZXZpY2Ugc3RydWN0 CisgKiBAc3luYzogaW5kaWNhdGUgd2hldGhlciB3ZSBzaG91bGQgd2FpdCBmb3IgdGhlIHdvcmtx dWV1ZSBjYW5jZWxhdGlvbgogICoKICAqIERlc2NyaXB0aW9uOiBTYW5pdGl6ZXMgdGhlIHNldHRp bmdzIChpZiB3ZSdyZSBub3QgYXV0b25lZ290aWF0aW5nCiAgKiAgIHRoZW0pLCBhbmQgdGhlbiBj YWxscyB0aGUgZHJpdmVyJ3MgY29uZmlnX2FuZWcgZnVuY3Rpb24uCiAgKiAgIElmIHRoZSBQSFlD T05UUk9MIExheWVyIGlzIG9wZXJhdGluZywgd2UgY2hhbmdlIHRoZSBzdGF0ZSB0bwogICogICBy ZWZsZWN0IHRoZSBiZWdpbm5pbmcgb2YgQXV0by1uZWdvdGlhdGlvbiBvciBmb3JjaW5nLgogICov Ci1pbnQgcGh5X3N0YXJ0X2FuZWcoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKK3N0YXRpYyBp bnQgcGh5X3N0YXJ0X2FuZWdfcHJpdihzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2LCBib29sIHN5 bmMpCiB7CisJYm9vbCB0cmlnZ2VyID0gMDsKIAlpbnQgZXJyOwogCiAJbXV0ZXhfbG9jaygmcGh5 ZGV2LT5sb2NrKTsKQEAgLTU4NiwxMCArNTg4LDQwIEBAIGludCBwaHlfc3RhcnRfYW5lZyhzdHJ1 Y3QgcGh5X2RldmljZSAqcGh5ZGV2KQogCQl9CiAJfQogCisJLyogUmUtc2NoZWR1bGUgYSBQSFkg c3RhdGUgbWFjaGluZSB0byBjaGVjayBQSFkgc3RhdHVzIGJlY2F1c2UKKwkgKiBuZWdvdGlhdGlv biBtYXkgYWxyZWFkeSBiZSBkb25lIGFuZCBhbmVnIGludGVycnVwdCBtYXkgbm90IGJlCisJICog Z2VuZXJhdGVkLgorCSAqLworCWlmIChwaHlfaW50ZXJydXB0X2lzX3ZhbGlkKHBoeWRldikgJiYg KHBoeWRldi0+c3RhdGUgPT0gUEhZX0FOKSkgeworCQllcnIgPSBwaHlfYW5lZ19kb25lKHBoeWRl dik7CisJCWlmIChlcnIgPiAwKSB7CisJCQl0cmlnZ2VyID0gdHJ1ZTsKKwkJCWVyciA9IDA7CisJ CX0KKwl9CisKIG91dF91bmxvY2s6CiAJbXV0ZXhfdW5sb2NrKCZwaHlkZXYtPmxvY2spOworCisJ aWYgKHRyaWdnZXIpCisJCXBoeV90cmlnZ2VyX21hY2hpbmUocGh5ZGV2LCBzeW5jKTsKKwogCXJl dHVybiBlcnI7CiB9CisKKy8qKgorICogcGh5X3N0YXJ0X2FuZWcgLSBzdGFydCBhdXRvLW5lZ290 aWF0aW9uIGZvciB0aGlzIFBIWSBkZXZpY2UKKyAqIEBwaHlkZXY6IHRoZSBwaHlfZGV2aWNlIHN0 cnVjdAorICoKKyAqIERlc2NyaXB0aW9uOiBTYW5pdGl6ZXMgdGhlIHNldHRpbmdzIChpZiB3ZSdy ZSBub3QgYXV0b25lZ290aWF0aW5nCisgKiAgIHRoZW0pLCBhbmQgdGhlbiBjYWxscyB0aGUgZHJp dmVyJ3MgY29uZmlnX2FuZWcgZnVuY3Rpb24uCisgKiAgIElmIHRoZSBQSFlDT05UUk9MIExheWVy IGlzIG9wZXJhdGluZywgd2UgY2hhbmdlIHRoZSBzdGF0ZSB0bworICogICByZWZsZWN0IHRoZSBi ZWdpbm5pbmcgb2YgQXV0by1uZWdvdGlhdGlvbiBvciBmb3JjaW5nLgorICovCitpbnQgcGh5X3N0 YXJ0X2FuZWcoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKK3sKKwlyZXR1cm4gcGh5X3N0YXJ0 X2FuZWdfcHJpdihwaHlkZXYsIHRydWUpOworfQogRVhQT1JUX1NZTUJPTChwaHlfc3RhcnRfYW5l Zyk7CiAKIC8qKgpAQCAtNjE3LDcgKzY0OSw3IEBAIHZvaWQgcGh5X3N0YXJ0X21hY2hpbmUoc3Ry dWN0IHBoeV9kZXZpY2UgKnBoeWRldikKICAqICAgc3RhdGUgbWFjaGluZSBydW5zLgogICovCiAK LXN0YXRpYyB2b2lkIHBoeV90cmlnZ2VyX21hY2hpbmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRl diwgYm9vbCBzeW5jKQordm9pZCBwaHlfdHJpZ2dlcl9tYWNoaW5lKHN0cnVjdCBwaHlfZGV2aWNl ICpwaHlkZXYsIGJvb2wgc3luYykKIHsKIAlpZiAoc3luYykKIAkJY2FuY2VsX2RlbGF5ZWRfd29y a19zeW5jKCZwaHlkZXYtPnN0YXRlX3F1ZXVlKTsKQEAgLTExMDAsNyArMTEzMiw3IEBAIHZvaWQg cGh5X3N0YXRlX21hY2hpbmUoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCW11dGV4X3VubG9j aygmcGh5ZGV2LT5sb2NrKTsKIAogCWlmIChuZWVkc19hbmVnKQotCQllcnIgPSBwaHlfc3RhcnRf YW5lZyhwaHlkZXYpOworCQllcnIgPSBwaHlfc3RhcnRfYW5lZ19wcml2KHBoeWRldiwgZmFsc2Up OwogCWVsc2UgaWYgKGRvX3N1c3BlbmQpCiAJCXBoeV9zdXNwZW5kKHBoeWRldik7CiAKZGlmZiAt LWdpdCBhL2luY2x1ZGUvbGludXgvcGh5LmggYi9pbmNsdWRlL2xpbnV4L3BoeS5oCmluZGV4IGUy NWYxODMuLmJkMjI2NzAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvcGh5LmgKKysrIGIvaW5j bHVkZS9saW51eC9waHkuaApAQCAtODA2LDYgKzgwNiw3IEBAIHZvaWQgcGh5X2NoYW5nZShzdHJ1 Y3Qgd29ya19zdHJ1Y3QgKndvcmspOwogdm9pZCBwaHlfbWFjX2ludGVycnVwdChzdHJ1Y3QgcGh5 X2RldmljZSAqcGh5ZGV2LCBpbnQgbmV3X2xpbmspOwogdm9pZCBwaHlfc3RhcnRfbWFjaGluZShz dHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KTsKIHZvaWQgcGh5X3N0b3BfbWFjaGluZShzdHJ1Y3Qg cGh5X2RldmljZSAqcGh5ZGV2KTsKK3ZvaWQgcGh5X3RyaWdnZXJfbWFjaGluZShzdHJ1Y3QgcGh5 X2RldmljZSAqcGh5ZGV2LCBib29sIHN5bmMpOwogaW50IHBoeV9ldGh0b29sX3NzZXQoc3RydWN0 IHBoeV9kZXZpY2UgKnBoeWRldiwgc3RydWN0IGV0aHRvb2xfY21kICpjbWQpOwogaW50IHBoeV9l dGh0b29sX2dzZXQoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiwgc3RydWN0IGV0aHRvb2xfY21k ICpjbWQpOwogaW50IHBoeV9ldGh0b29sX2tzZXR0aW5nc19nZXQoc3RydWN0IHBoeV9kZXZpY2Ug KnBoeWRldiwKLS0gCjIuNC4xMQoKCkZyb20gOTExZDRlMTEzM2Q0YTE1MTk0YWFmYjYxNjk0MGY2 Yzk4OGU2OTBiMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogV0FORyBDb25nIDx4aXlv dS53YW5nY29uZ0BnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMjUgQXByIDIwMTcgMTQ6Mzc6MTUgLTA3 MDAKU3ViamVjdDogW1BBVENIIDMxLzMzXSBpcHY2OiBjaGVjayBza2ItPnByb3RvY29sIGJlZm9y ZSBsb29rdXAgZm9yIG5leHRob3AKClsgVXBzdHJlYW0gY29tbWl0IDE5OWFiMDBmM2NkYjZmMTU0 ZWE5M2ZhNzZmZDgwMTkyODYxYTgyMWQgXQoKQW5kcmV5IHJlcG9ydGVkIGEgb3V0LW9mLWJvdW5k IGFjY2VzcyBpbiBpcDZfdG5sX3htaXQoKSwgdGhpcwppcyBiZWNhdXNlIHdlIHVzZSBhbiBpcHY0 IGRzdCBpbiBpcDZfdG5sX3htaXQoKSBhbmQgY2FzdCBhbiBJUHY0Cm5laWdoIGtleSBhcyBhbiBJ UHY2IGFkZHJlc3M6CgogICAgICAgIG5laWdoID0gZHN0X25laWdoX2xvb2t1cChza2JfZHN0KHNr YiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpcHY2X2hkcihza2IpLT5kYWRk cik7CiAgICAgICAgaWYgKCFuZWlnaCkKICAgICAgICAgICAgICAgIGdvdG8gdHhfZXJyX2xpbmtf ZmFpbHVyZTsKCiAgICAgICAgYWRkcjYgPSAoc3RydWN0IGluNl9hZGRyICopJm5laWdoLT5wcmlt YXJ5X2tleTsgLy8gPD09PSBIRVJFCiAgICAgICAgYWRkcl90eXBlID0gaXB2Nl9hZGRyX3R5cGUo YWRkcjYpOwoKICAgICAgICBpZiAoYWRkcl90eXBlID09IElQVjZfQUREUl9BTlkpCiAgICAgICAg ICAgICAgICBhZGRyNiA9ICZpcHY2X2hkcihza2IpLT5kYWRkcjsKCiAgICAgICAgbWVtY3B5KCZm bDYtPmRhZGRyLCBhZGRyNiwgc2l6ZW9mKGZsNi0+ZGFkZHIpKTsKCkFsc28gdGhlIG5ldHdvcmsg aGVhZGVyIG9mIHRoZSBza2IgYXQgdGhpcyBwb2ludCBzaG91bGQgYmUgc3RpbGwgSVB2NApmb3Ig NGluNiB0dW5uZWxzLCB3ZSBzaG9sZCBub3QganVzdCB1c2UgaXQgYXMgSVB2NiBoZWFkZXIuCgpU aGlzIHBhdGNoIGZpeGVzIGl0IGJ5IGNoZWNraW5nIGlmIHNrYi0+cHJvdG9jb2wgaXMgRVRIX1Bf SVBWNjogaWYgaXQKaXMsIHdlIGFyZSBzYWZlIHRvIGRvIHRoZSBuZXh0aG9wIGxvb2t1cCB1c2lu ZyBza2JfZHN0KCkgYW5kCmlwdjZfaGRyKHNrYiktPmRhZGRyOyBpZiBub3QgKGFrYSBJUHY0KSwg d2UgaGF2ZSBubyBjbHVlIGFib3V0IHdoaWNoCmRlc3QgYWRkcmVzcyB3ZSBjYW4gcGljayBoZXJl LCB3ZSBoYXZlIHRvIHJlbHkgb24gY2FsbGVycyB0byBmaWxsIGl0CmZyb20gdHVubmVsIGNvbmZp Zywgc28ganVzdCBmYWxsIHRvIGlwNl9yb3V0ZV9vdXRwdXQoKSB0byBtYWtlIHRoZQpkZWNpc2lv bi4KCkZpeGVzOiBlYTNkYzk2MDFiZGEgKCJpcDZfdHVubmVsOiBBZGQgc3VwcG9ydCBmb3Igd2ls ZGNhcmQgdHVubmVsIGVuZHBvaW50cy4iKQpSZXBvcnRlZC1ieTogQW5kcmV5IEtvbm92YWxvdiA8 YW5kcmV5a252bEBnb29nbGUuY29tPgpUZXN0ZWQtYnk6IEFuZHJleSBLb25vdmFsb3YgPGFuZHJl eWtudmxAZ29vZ2xlLmNvbT4KQ2M6IFN0ZWZmZW4gS2xhc3NlcnQgPHN0ZWZmZW4ua2xhc3NlcnRA c2VjdW5ldC5jb20+ClNpZ25lZC1vZmYtYnk6IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21h aWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L2lwdjYvaXA2X3R1bm5lbC5jIHwgMzQgKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKyksIDE2IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNl90dW5uZWwuYyBiL25ldC9pcHY2L2lw Nl90dW5uZWwuYwppbmRleCBmNmJhNDUyLi4xMTZiNGRhIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9p cDZfdHVubmVsLmMKKysrIGIvbmV0L2lwdjYvaXA2X3R1bm5lbC5jCkBAIC0xMDM3LDcgKzEwMzcs NyBAQCBpbnQgaXA2X3RubF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2 aWNlICpkZXYsIF9fdTggZHNmaWVsZCwKIAlzdHJ1Y3QgaXA2X3RubCAqdCA9IG5ldGRldl9wcml2 KGRldik7CiAJc3RydWN0IG5ldCAqbmV0ID0gdC0+bmV0OwogCXN0cnVjdCBuZXRfZGV2aWNlX3N0 YXRzICpzdGF0cyA9ICZ0LT5kZXYtPnN0YXRzOwotCXN0cnVjdCBpcHY2aGRyICppcHY2aCA9IGlw djZfaGRyKHNrYik7CisJc3RydWN0IGlwdjZoZHIgKmlwdjZoOwogCXN0cnVjdCBpcHY2X3RlbF90 eG9wdGlvbiBvcHQ7CiAJc3RydWN0IGRzdF9lbnRyeSAqZHN0ID0gTlVMTCwgKm5kc3QgPSBOVUxM OwogCXN0cnVjdCBuZXRfZGV2aWNlICp0ZGV2OwpAQCAtMTA1NywyNiArMTA1NywyOCBAQCBpbnQg aXA2X3RubF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYs IF9fdTggZHNmaWVsZCwKIAogCS8qIE5CTUEgdHVubmVsICovCiAJaWYgKGlwdjZfYWRkcl9hbnko JnQtPnBhcm1zLnJhZGRyKSkgewotCQlzdHJ1Y3QgaW42X2FkZHIgKmFkZHI2OwotCQlzdHJ1Y3Qg bmVpZ2hib3VyICpuZWlnaDsKLQkJaW50IGFkZHJfdHlwZTsKKwkJaWYgKHNrYi0+cHJvdG9jb2wg PT0gaHRvbnMoRVRIX1BfSVBWNikpIHsKKwkJCXN0cnVjdCBpbjZfYWRkciAqYWRkcjY7CisJCQlz dHJ1Y3QgbmVpZ2hib3VyICpuZWlnaDsKKwkJCWludCBhZGRyX3R5cGU7CiAKLQkJaWYgKCFza2Jf ZHN0KHNrYikpCi0JCQlnb3RvIHR4X2Vycl9saW5rX2ZhaWx1cmU7CisJCQlpZiAoIXNrYl9kc3Qo c2tiKSkKKwkJCQlnb3RvIHR4X2Vycl9saW5rX2ZhaWx1cmU7CiAKLQkJbmVpZ2ggPSBkc3RfbmVp Z2hfbG9va3VwKHNrYl9kc3Qoc2tiKSwKLQkJCQkJICZpcHY2X2hkcihza2IpLT5kYWRkcik7Ci0J CWlmICghbmVpZ2gpCi0JCQlnb3RvIHR4X2Vycl9saW5rX2ZhaWx1cmU7CisJCQluZWlnaCA9IGRz dF9uZWlnaF9sb29rdXAoc2tiX2RzdChza2IpLAorCQkJCQkJICZpcHY2X2hkcihza2IpLT5kYWRk cik7CisJCQlpZiAoIW5laWdoKQorCQkJCWdvdG8gdHhfZXJyX2xpbmtfZmFpbHVyZTsKIAotCQlh ZGRyNiA9IChzdHJ1Y3QgaW42X2FkZHIgKikmbmVpZ2gtPnByaW1hcnlfa2V5OwotCQlhZGRyX3R5 cGUgPSBpcHY2X2FkZHJfdHlwZShhZGRyNik7CisJCQlhZGRyNiA9IChzdHJ1Y3QgaW42X2FkZHIg KikmbmVpZ2gtPnByaW1hcnlfa2V5OworCQkJYWRkcl90eXBlID0gaXB2Nl9hZGRyX3R5cGUoYWRk cjYpOwogCi0JCWlmIChhZGRyX3R5cGUgPT0gSVBWNl9BRERSX0FOWSkKLQkJCWFkZHI2ID0gJmlw djZfaGRyKHNrYiktPmRhZGRyOworCQkJaWYgKGFkZHJfdHlwZSA9PSBJUFY2X0FERFJfQU5ZKQor CQkJCWFkZHI2ID0gJmlwdjZfaGRyKHNrYiktPmRhZGRyOwogCi0JCW1lbWNweSgmZmw2LT5kYWRk ciwgYWRkcjYsIHNpemVvZihmbDYtPmRhZGRyKSk7Ci0JCW5laWdoX3JlbGVhc2UobmVpZ2gpOwor CQkJbWVtY3B5KCZmbDYtPmRhZGRyLCBhZGRyNiwgc2l6ZW9mKGZsNi0+ZGFkZHIpKTsKKwkJCW5l aWdoX3JlbGVhc2UobmVpZ2gpOworCQl9CiAJfSBlbHNlIGlmICghKHQtPnBhcm1zLmZsYWdzICYK IAkJICAgICAoSVA2X1ROTF9GX1VTRV9PUklHX1RDTEFTUyB8IElQNl9UTkxfRl9VU0VfT1JJR19G V01BUkspKSkgewogCQkvKiBlbmFibGUgdGhlIGNhY2hlIG9ubHkgb25seSBpZiB0aGUgcm91dGlu ZyBkZWNpc2lvbiBkb2VzCi0tIAoyLjQuMTEKCgpGcm9tIGM1M2QxMDQ5NWNkMzk1NjY2ZjYwNjgw ZDgzYTg1ZTgyOTJhYzAyOTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFdlaSBXYW5n IDx3ZWl3YW5AZ29vZ2xlLmNvbT4KRGF0ZTogVHVlLCAyNSBBcHIgMjAxNyAxNzozODowMiAtMDcw MApTdWJqZWN0OiBbUEFUQ0ggMzIvMzNdIHRjcDogbWVtc2V0IGNhX3ByaXYgZGF0YSB0byAwIHBy b3Blcmx5CgpbIFVwc3RyZWFtIGNvbW1pdCBjMTIwMTQ0NDA3NTAwOTUwN2E2ODE4ZGU2NTE4ZTI4 MjJiOWE4N2M4IF0KCkFsd2F5cyB6ZXJvIG91dCBjYV9wcml2IGRhdGEgaW4gdGNwX2Fzc2lnbl9j b25nZXN0aW9uX2NvbnRyb2woKSBzbyB0aGF0CmNhX3ByaXYgZGF0YSBpcyBjbGVhcmVkIG91dCBk dXJpbmcgc29ja2V0IGNyZWF0aW9uLgpBbHNvIGFsd2F5cyB6ZXJvIG91dCBjYV9wcml2IGRhdGEg aW4gdGNwX3JlaW5pdF9jb25nZXN0aW9uX2NvbnRyb2woKSBzbwp0aGF0IHdoZW4gY2MgYWxnb3Jp dGhtIGlzIGNoYW5nZWQsIGNhX3ByaXYgZGF0YSBpcyBjbGVhcmVkIG91dCBhcyB3ZWxsLgpXZSBz aG91bGQgc3RpbGwgemVybyBvdXQgY2FfcHJpdiBkYXRhIGV2ZW4gaW4gVENQX0NMT1NFIHN0YXRl IGJlY2F1c2UKdXNlciBjb3VsZCBjYWxsIGNvbm5lY3QoKSBvbiBBRl9VTlNQRUMgdG8gZGlzY29u bmVjdCB0aGUgc29ja2V0IGFuZApsZWF2ZSBpdCBpbiBUQ1BfQ0xPU0Ugc3RhdGUgYW5kIGxhdGVy IGNhbGwgc2V0c29ja29wdCgpIHRvIHN3aXRjaCBjYwphbGdvcml0aG0gb24gdGhpcyBzb2NrZXQu CgpGaXhlczogMmIwYThjOWVlICgidGNwOiBhZGQgQ0RHIGNvbmdlc3Rpb24gY29udHJvbCIpClJl cG9ydGVkLWJ5OiBBbmRyZXkgS29ub3ZhbG92ICA8YW5kcmV5a252bEBnb29nbGUuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBXZWkgV2FuZyA8d2Vpd2FuQGdvb2dsZS5jb20+CkFja2VkLWJ5OiBFcmljIER1 bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkFja2VkLWJ5OiBZdWNodW5nIENoZW5nIDx5Y2hl bmdAZ29vZ2xlLmNvbT4KQWNrZWQtYnk6IE5lYWwgQ2FyZHdlbGwgPG5jYXJkd2VsbEBnb29nbGUu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogbmV0L2lwdjQvdGNwX2NvbmcuYyB8IDExICsrKy0tLS0tLS0tCiAxIGZpbGUgY2hhbmdl ZCwgMyBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0 L3RjcF9jb25nLmMgYi9uZXQvaXB2NC90Y3BfY29uZy5jCmluZGV4IGY5MDM4ZDZiLi5iYWVhNWRm IDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3BfY29uZy5jCisrKyBiL25ldC9pcHY0L3RjcF9jb25n LmMKQEAgLTE2NywxMiArMTY3LDggQEAgdm9pZCB0Y3BfYXNzaWduX2Nvbmdlc3Rpb25fY29udHJv bChzdHJ1Y3Qgc29jayAqc2spCiAJfQogb3V0OgogCXJjdV9yZWFkX3VubG9jaygpOworCW1lbXNl dChpY3NrLT5pY3NrX2NhX3ByaXYsIDAsIHNpemVvZihpY3NrLT5pY3NrX2NhX3ByaXYpKTsKIAot CS8qIENsZWFyIG91dCBwcml2YXRlIGRhdGEgYmVmb3JlIGRpYWcgZ2V0cyBpdCBhbmQKLQkgKiB0 aGUgY2EgaGFzIG5vdCBiZWVuIGluaXRpYWxpemVkLgotCSAqLwotCWlmIChjYS0+Z2V0X2luZm8p Ci0JCW1lbXNldChpY3NrLT5pY3NrX2NhX3ByaXYsIDAsIHNpemVvZihpY3NrLT5pY3NrX2NhX3By aXYpKTsKIAlpZiAoY2EtPmZsYWdzICYgVENQX0NPTkdfTkVFRFNfRUNOKQogCQlJTkVUX0VDTl94 bWl0KHNrKTsKIAllbHNlCkBAIC0xOTksMTEgKzE5NSwxMCBAQCBzdGF0aWMgdm9pZCB0Y3BfcmVp bml0X2Nvbmdlc3Rpb25fY29udHJvbChzdHJ1Y3Qgc29jayAqc2ssCiAJdGNwX2NsZWFudXBfY29u Z2VzdGlvbl9jb250cm9sKHNrKTsKIAlpY3NrLT5pY3NrX2NhX29wcyA9IGNhOwogCWljc2stPmlj c2tfY2Ffc2V0c29ja29wdCA9IDE7CisJbWVtc2V0KGljc2stPmljc2tfY2FfcHJpdiwgMCwgc2l6 ZW9mKGljc2stPmljc2tfY2FfcHJpdikpOwogCi0JaWYgKHNrLT5za19zdGF0ZSAhPSBUQ1BfQ0xP U0UpIHsKLQkJbWVtc2V0KGljc2stPmljc2tfY2FfcHJpdiwgMCwgc2l6ZW9mKGljc2stPmljc2tf Y2FfcHJpdikpOworCWlmIChzay0+c2tfc3RhdGUgIT0gVENQX0NMT1NFKQogCQl0Y3BfaW5pdF9j b25nZXN0aW9uX2NvbnRyb2woc2spOwotCX0KIH0KIAogLyogTWFuYWdlIHJlZmNvdW50cyBvbiBz b2NrZXQgY2xvc2UuICovCi0tIAoyLjQuMTEKCgpGcm9tIGYyYzIwMTc4ZjIzNDIzMDVmODNmMjk1 ZTYwN2YzNWMxZTljZGNmMDUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEphbWllIEJh aW5icmlkZ2UgPGpiYWluYnJpQHJlZGhhdC5jb20+CkRhdGU6IFdlZCwgMjYgQXByIDIwMTcgMTA6 NDM6MjcgKzEwMDAKU3ViamVjdDogW1BBVENIIDMzLzMzXSBpcHY2OiBjaGVjayByYXcgcGF5bG9h ZCBzaXplIGNvcnJlY3RseSBpbiBpb2N0bAoKWyBVcHN0cmVhbSBjb21taXQgMTA1ZjU1MjhiOWJi YWEwOGI1MjZkMzQwNWE1YmNkMmZmMGM5NTNjOCBdCgpJbiBzaXR1YXRpb25zIHdoZXJlIGFuIHNr YiBpcyBwYWdlZCwgdGhlIHRyYW5zcG9ydCBoZWFkZXIgcG9pbnRlciBhbmQKdGFpbCBwb2ludGVy IGNhbiBiZSB0aGUgc2FtZSBiZWNhdXNlIHRoZSBza2IgY29udGVudHMgYXJlIGluIGZyYWdzLgoK VGhpcyByZXN1bHRzIGluIGlvY3RsKFNJT0NJTlEvRklPTlJFQUQpIGluY29ycmVjdGx5IHJldHVy bmluZyBhCmxlbmd0aCBvZiAwIHdoZW4gdGhlIGxlbmd0aCB0byByZWNlaXZlIGlzIGFjdHVhbGx5 IGdyZWF0ZXIgdGhhbiB6ZXJvLgoKc2tiLT5sZW4gaXMgYWxyZWFkeSBjb3JyZWN0bHkgc2V0IGlu IGlwNl9pbnB1dF9maW5pc2goKSB3aXRoCnBza2JfcHVsbCgpLCBzbyB1c2Ugc2tiLT5sZW4gYXMg aXQgYWx3YXlzIHJldHVybnMgdGhlIGNvcnJlY3QgcmVzdWx0CmZvciBib3RoIGxpbmVhciBhbmQg cGFnZWQgZGF0YS4KClNpZ25lZC1vZmYtYnk6IEphbWllIEJhaW5icmlkZ2UgPGpiYWluYnJpQHJl ZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBuZXQvaXB2Ni9yYXcuYyB8IDMgKy0tCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNl cnRpb24oKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvcmF3LmMgYi9u ZXQvaXB2Ni9yYXcuYwppbmRleCA4NjlmZmM3Li5jZWQzODE3IDEwMDY0NAotLS0gYS9uZXQvaXB2 Ni9yYXcuYworKysgYi9uZXQvaXB2Ni9yYXcuYwpAQCAtMTE3MSw4ICsxMTcxLDcgQEAgc3RhdGlj IGludCByYXd2Nl9pb2N0bChzdHJ1Y3Qgc29jayAqc2ssIGludCBjbWQsIHVuc2lnbmVkIGxvbmcg YXJnKQogCQlzcGluX2xvY2tfYmgoJnNrLT5za19yZWNlaXZlX3F1ZXVlLmxvY2spOwogCQlza2Ig PSBza2JfcGVlaygmc2stPnNrX3JlY2VpdmVfcXVldWUpOwogCQlpZiAoc2tiKQotCQkJYW1vdW50 ID0gc2tiX3RhaWxfcG9pbnRlcihza2IpIC0KLQkJCQlza2JfdHJhbnNwb3J0X2hlYWRlcihza2Ip OworCQkJYW1vdW50ID0gc2tiLT5sZW47CiAJCXNwaW5fdW5sb2NrX2JoKCZzay0+c2tfcmVjZWl2 ZV9xdWV1ZS5sb2NrKTsKIAkJcmV0dXJuIHB1dF91c2VyKGFtb3VudCwgKGludCBfX3VzZXIgKilh cmcpOwogCX0KLS0gCjIuNC4xMQoK ----Next_Part(Fri_Apr_28_15_41_15_2017_206)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_410.mbox" RnJvbSA1ZTM3MmI5NTQwNmVlMGFmZGJiOTJmM2U2NmQ1MDhiYTE2ZDg0YjNjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRh dGU6IFRodSwgMjMgTWFyIDIwMTcgMTI6Mzk6MjEgLTA3MDAKU3ViamVjdDogW1BBVENIIDAxLzQx XSBuZXQ6IG5laWdoOiBndWFyZCBhZ2FpbnN0IE5VTEwgc29saWNpdCgpIG1ldGhvZAoKWyBVcHN0 cmVhbSBjb21taXQgNDg0ODFjOGZhMTY0MTBmZmE0NTkzOWIxM2I2YzUzYzJjYTYwOWU1ZiBdCgpE bWl0cnkgcG9zdGVkIGEgbmljZSByZXByb2R1Y2VyIG9mIGEgYnVnIHRyaWdnZXJpbmcgaW4gbmVp Z2hfcHJvYmUoKQp3aGVuIGRlcmVmZXJlbmNpbmcgYSBOVUxMIG5laWdoLT5vcHMtPnNvbGljaXQg bWV0aG9kLgoKVGhpcyBjYW4gaGFwcGVuIGZvciBhcnBfZGlyZWN0X29wcy9uZGlzY19kaXJlY3Rf b3BzIGFuZCBzaW1pbGFyLAp3aGljaCBjYW4gYmUgdXNlZCBmb3IgTlVEX05PQVJQIG5laWdoYm91 cnMgKGNyZWF0ZWQgd2hlbiBkZXYtPmhlYWRlcl9vcHMKaXMgTlVMTCkuIEFkbWluIGNhbiB0aGVu IGZvcmNlIGNoYW5naW5nIG51ZF9zdGF0ZSB0byBzb21lIG90aGVyIHN0YXRlCnRoYXQgd291bGQg ZmlyZSBuZWlnaCB0aW1lci4KClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRA Z29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6IERtaXRyeSBWeXVrb3YgPGR2eXVrb3ZAZ29vZ2xlLmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIG5ldC9jb3JlL25laWdoYm91ci5jIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2Vy dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9uZWlnaGJvdXIu YyBiL25ldC9jb3JlL25laWdoYm91ci5jCmluZGV4IGU3YzEyY2EuLjQ1MjZjYmQgMTAwNjQ0Ci0t LSBhL25ldC9jb3JlL25laWdoYm91ci5jCisrKyBiL25ldC9jb3JlL25laWdoYm91ci5jCkBAIC04 NjAsNyArODYwLDggQEAgc3RhdGljIHZvaWQgbmVpZ2hfcHJvYmUoc3RydWN0IG5laWdoYm91ciAq bmVpZ2gpCiAJaWYgKHNrYikKIAkJc2tiID0gc2tiX2Nsb25lKHNrYiwgR0ZQX0FUT01JQyk7CiAJ d3JpdGVfdW5sb2NrKCZuZWlnaC0+bG9jayk7Ci0JbmVpZ2gtPm9wcy0+c29saWNpdChuZWlnaCwg c2tiKTsKKwlpZiAobmVpZ2gtPm9wcy0+c29saWNpdCkKKwkJbmVpZ2gtPm9wcy0+c29saWNpdChu ZWlnaCwgc2tiKTsKIAlhdG9taWNfaW5jKCZuZWlnaC0+cHJvYmVzKTsKIAlrZnJlZV9za2Ioc2ti KTsKIH0KLS0gCjIuNC4xMQoKCkZyb20gMWZhZmMyM2M2YWRkNzZiOWIzMDAzMTdlMWRlMTg4ZGE2 MzM2MmQ0MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTmF0aGFuIFN1bGxpdmFuIDxu YXRoYW4uc3VsbGl2YW5AbmkuY29tPgpEYXRlOiBXZWQsIDIyIE1hciAyMDE3IDE1OjI3OjAxIC0w NTAwClN1YmplY3Q6IFtQQVRDSCAwMi80MV0gbmV0OiBwaHk6IGhhbmRsZSBzdGF0ZSBjb3JyZWN0 bHkgaW4gcGh5X3N0b3BfbWFjaGluZQoKWyBVcHN0cmVhbSBjb21taXQgNDlkNTJlODEwOGEyMTc0 OWRjMjExNGI5MjRjOTA3ZGI0MzM1ODk4NCBdCgpJZiB0aGUgUEhZIGlzIGhhbHRlZCBvbiBzdG9w LCB0aGVuIGRvIG5vdCBzZXQgdGhlIHN0YXRlIHRvIFBIWV9VUC4gIFRoaXMKZW5zdXJlcyB0aGUg cGh5IHdpbGwgYmUgcmVzdGFydGVkIGxhdGVyIGluIHBoeV9zdGFydCB3aGVuIHRoZSBtYWNoaW5l IGlzCnN0YXJ0ZWQgYWdhaW4uCgpGaXhlczogMDBkYjgxODlkOTg0ICgiVGhpcyBwYXRjaCBhZGRz IGEgUEhZIEFic3RyYWN0aW9uIExheWVyIHRvIHRoZSBMaW51eCBLZXJuZWwsIGVuYWJsaW5nIGV0 aGVybmV0IGRyaXZlcnMgdG8gcmVtYWluIGFzIGlnbm9yYW50IGFzIGlzIHJlYXNvbmFibGUgb2Yg dGhlIGNvbm5lY3RlZCBQSFkncyBkZXNpZ24gYW5kIG9wZXJhdGlvbiBkZXRhaWxzLiIpClNpZ25l ZC1vZmYtYnk6IE5hdGhhbiBTdWxsaXZhbiA8bmF0aGFuLnN1bGxpdmFuQG5pLmNvbT4KU2lnbmVk LW9mZi1ieTogQnJhZCBNb3VyaW5nIDxicmFkLm1vdXJpbmdAbmkuY29tPgpBY2tlZC1ieTogWGFu ZGVyIEh1ZmYgPHhhbmRlci5odWZmQG5pLmNvbT4KQWNrZWQtYnk6IEt5bGUgUm9lc2NobGV5IDxr eWxlLnJvZXNjaGxleUBuaS5jb20+ClJldmlld2VkLWJ5OiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZh aW5lbGxpQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3BoeS9waHkuYyB8IDIgKy0KIDEgZmlsZSBj aGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L3BoeS9waHkuYyBiL2RyaXZlcnMvbmV0L3BoeS9waHkuYwppbmRleCA3Y2MxYjdkLi5m ZTJkNGM0IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9waHkvcGh5LmMKKysrIGIvZHJpdmVycy9u ZXQvcGh5L3BoeS5jCkBAIC02NzgsNyArNjc4LDcgQEAgdm9pZCBwaHlfc3RvcF9tYWNoaW5lKHN0 cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpCiAJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZwaHlk ZXYtPnN0YXRlX3F1ZXVlKTsKIAogCW11dGV4X2xvY2soJnBoeWRldi0+bG9jayk7Ci0JaWYgKHBo eWRldi0+c3RhdGUgPiBQSFlfVVApCisJaWYgKHBoeWRldi0+c3RhdGUgPiBQSFlfVVAgJiYgcGh5 ZGV2LT5zdGF0ZSAhPSBQSFlfSEFMVEVEKQogCQlwaHlkZXYtPnN0YXRlID0gUEhZX1VQOwogCW11 dGV4X3VubG9jaygmcGh5ZGV2LT5sb2NrKTsKIH0KLS0gCjIuNC4xMQoKCkZyb20gYmVmODU2YTkz Nzc2MmRmNmY1OTkzNjI3MTg2NmRhNmYzZTU0NWRiZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogV0FORyBDb25nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+CkRhdGU6IFRodSwgMjMg TWFyIDIwMTcgMTE6MDM6MzEgLTA3MDAKU3ViamVjdDogW1BBVENIIDAzLzQxXSBrY206IHJldHVy biBpbW1lZGlhdGVseSBhZnRlciBjb3B5X2Zyb21fdXNlcigpIGZhaWx1cmUKClsgVXBzdHJlYW0g Y29tbWl0IGE4MGRiNjllNDdkNzY0YmJjYWYyZmVjNTRiMWYzMDg5MjVlN2M0OTAgXQoKVGhlcmUg aXMgbm8gcmVhc29uIHRvIGNvbnRpbnVlIGFmdGVyIGEgY29weV9mcm9tX3VzZXIoKQpmYWlsdXJl LgoKRml4ZXM6IGFiN2FjNGViOTgzMiAoImtjbTogS2VybmVsIENvbm5lY3Rpb24gTXVsdGlwbGV4 b3IgbW9kdWxlIikKQ2M6IFRvbSBIZXJiZXJ0IDx0b21AaGVyYmVydGxhbmQuY29tPgpTaWduZWQt b2ZmLWJ5OiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9rY20va2Nt c29jay5jIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2tjbS9rY21zb2NrLmMgYi9uZXQva2NtL2tjbXNv Y2suYwppbmRleCBhNjQ2ZjM0Li5mZWNhZDEwIDEwMDY0NAotLS0gYS9uZXQva2NtL2tjbXNvY2su YworKysgYi9uZXQva2NtL2tjbXNvY2suYwpAQCAtMTY4NSw3ICsxNjg1LDcgQEAgc3RhdGljIGlu dCBrY21faW9jdGwoc3RydWN0IHNvY2tldCAqc29jaywgdW5zaWduZWQgaW50IGNtZCwgdW5zaWdu ZWQgbG9uZyBhcmcpCiAJCXN0cnVjdCBrY21fYXR0YWNoIGluZm87CiAKIAkJaWYgKGNvcHlfZnJv bV91c2VyKCZpbmZvLCAodm9pZCBfX3VzZXIgKilhcmcsIHNpemVvZihpbmZvKSkpCi0JCQllcnIg PSAtRUZBVUxUOworCQkJcmV0dXJuIC1FRkFVTFQ7CiAKIAkJZXJyID0ga2NtX2F0dGFjaF9pb2N0 bChzb2NrLCAmaW5mbyk7CiAKQEAgLTE2OTUsNyArMTY5NSw3IEBAIHN0YXRpYyBpbnQga2NtX2lv Y3RsKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcg YXJnKQogCQlzdHJ1Y3Qga2NtX3VuYXR0YWNoIGluZm87CiAKIAkJaWYgKGNvcHlfZnJvbV91c2Vy KCZpbmZvLCAodm9pZCBfX3VzZXIgKilhcmcsIHNpemVvZihpbmZvKSkpCi0JCQllcnIgPSAtRUZB VUxUOworCQkJcmV0dXJuIC1FRkFVTFQ7CiAKIAkJZXJyID0ga2NtX3VuYXR0YWNoX2lvY3RsKHNv Y2ssICZpbmZvKTsKIApAQCAtMTcwNiw3ICsxNzA2LDcgQEAgc3RhdGljIGludCBrY21faW9jdGwo c3RydWN0IHNvY2tldCAqc29jaywgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcp CiAJCXN0cnVjdCBzb2NrZXQgKm5ld3NvY2sgPSBOVUxMOwogCiAJCWlmIChjb3B5X2Zyb21fdXNl cigmaW5mbywgKHZvaWQgX191c2VyICopYXJnLCBzaXplb2YoaW5mbykpKQotCQkJZXJyID0gLUVG QVVMVDsKKwkJCXJldHVybiAtRUZBVUxUOwogCiAJCWVyciA9IGtjbV9jbG9uZShzb2NrLCAmaW5m bywgJm5ld3NvY2spOwogCi0tIAoyLjQuMTEKCgpGcm9tIDZmNDZiMDVmOGIyNGZlZGU2MzQ2MDhk NTc0ZjMzYWJmYTFlMzRlYmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEZsb3JpYW4g V2VzdHBoYWwgPGZ3QHN0cmxlbi5kZT4KRGF0ZTogU2F0LCAyNSBNYXIgMjAxNyAxMDo1ODoyNCAr MDEwMApTdWJqZWN0OiBbUEFUQ0ggMDQvNDFdIHNlY3VyZV9zZXE6IGRvd25ncmFkZSB0byBwZXIt aG9zdCB0aW1lc3RhbXAgb2Zmc2V0cwoKWyBVcHN0cmVhbSBjb21taXQgMjhlZTFiNzQ2ZjQ5M2I3 YzYyMzQ3ZDcxNGY1OGZiZjRmNzBkZjRmMCBdCgpVbmZvcnR1bmF0ZWx5IHRvbyBtYW55IGRldmlj ZXMgKG5vdCB1bmRlciBvdXIgY29udHJvbCkgdXNlIHRjcF90d19yZWN5Y2xlPTEsCndoaWNoIGRl cGVuZHMgb24gdGltZXN0YW1wcyBiZWluZyBpZGVudGljYWwgb2YgdGhlIHNhbWUgc2FkZHIuCgpB bHRob3VnaCB0Y3BfdHdfcmVjeWNsZSBnb3QgcmVtb3ZlZCBpbiBuZXQtbmV4dCB3ZSBjYW4ndCBt YWtlCnN1Y2ggZW5kIGhvc3RzIGRpc2FwcGVhciBzbyBkb3duZ3JhZGUgdG8gcGVyLWhvc3QgdGlt ZXN0YW1wIG9mZnNldHMuCgo0LjEwIG5vdGU6IG9yaWdpbmFsIHBhdGNoIHVzZXMgc2lwaGFzaCAo YWRkZWQgaW4gNC4xMSksIHNpbmNlCnRzX29mZiBpcyBvbmx5IHVzZWQgdG8gb2JzY3VyZSB1cHRp bWUgKGFuZCBkb2Vzbid0IHVzZSBzYW1lIHNlY3JldAphcyBpc24gZ2VuZXJhdG9yKSB0aGlzIHVz ZXMgamhhc2ggaW5zdGVhZC4KCkNjOiBTb2hlaWwgSGFzc2FzIFllZ2FuZWggPHNvaGVpbEBnb29n bGUuY29tPgpDYzogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpDYzogTmVhbCBD YXJkd2VsbCA8bmNhcmR3ZWxsQGdvb2dsZS5jb20+CkNjOiBZdWNodW5nIENoZW5nIDx5Y2hlbmdA Z29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6IFl2YW4gVmFucm9zc29tbWUgPHl2YW5AdmFucm9zc29t bWUubmV0PgpGaXhlczogOTVhMjJjYWVlMzk2YyAoInRjcDogcmFuZG9taXplIHRjcCB0aW1lc3Rh bXAgb2Zmc2V0cyBmb3IgZWFjaCBjb25uZWN0aW9uIikKU2lnbmVkLW9mZi1ieTogRmxvcmlhbiBX ZXN0cGhhbCA8ZndAc3RybGVuLmRlPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUvc2VjdXJlX3NlcS5jIHwgMjkgKysrKysr KysrKysrKysrKysrKysrKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyNyBpbnNlcnRpb25zKCsp LCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL3NlY3VyZV9zZXEuYyBiL25l dC9jb3JlL3NlY3VyZV9zZXEuYwppbmRleCA4OGE4ZTQyLi4wZmQ0MjE3IDEwMDY0NAotLS0gYS9u ZXQvY29yZS9zZWN1cmVfc2VxLmMKKysrIGIvbmV0L2NvcmUvc2VjdXJlX3NlcS5jCkBAIC0xNiw5 ICsxNiwxMSBAQAogI2RlZmluZSBORVRfU0VDUkVUX1NJWkUgKE1ENV9NRVNTQUdFX0JZVEVTIC8g NCkKIAogc3RhdGljIHUzMiBuZXRfc2VjcmV0W05FVF9TRUNSRVRfU0laRV0gX19fX2NhY2hlbGlu ZV9hbGlnbmVkOworc3RhdGljIHUzMiB0c19zZWNyZXRbMl07CiAKIHN0YXRpYyBfX2Fsd2F5c19p bmxpbmUgdm9pZCBuZXRfc2VjcmV0X2luaXQodm9pZCkKIHsKKwluZXRfZ2V0X3JhbmRvbV9vbmNl KHRzX3NlY3JldCwgc2l6ZW9mKHRzX3NlY3JldCkpOwogCW5ldF9nZXRfcmFuZG9tX29uY2UobmV0 X3NlY3JldCwgc2l6ZW9mKG5ldF9zZWNyZXQpKTsKIH0KICNlbmRpZgpAQCAtNDEsNiArNDMsMjEg QEAgc3RhdGljIHUzMiBzZXFfc2NhbGUodTMyIHNlcSkKICNlbmRpZgogCiAjaWYgSVNfRU5BQkxF RChDT05GSUdfSVBWNikKK3N0YXRpYyB1MzIgc2VjdXJlX3RjcHY2X3RzX29mZihjb25zdCBfX2Jl MzIgKnNhZGRyLCBjb25zdCBfX2JlMzIgKmRhZGRyKQoreworCXUzMiBoYXNoWzQgKyA0ICsgMV07 CisKKwlpZiAoc3lzY3RsX3RjcF90aW1lc3RhbXBzICE9IDEpCisJCXJldHVybiAwOworCisJbWVt Y3B5KGhhc2gsIHNhZGRyLCAxNik7CisJbWVtY3B5KGhhc2ggKyA0LCBkYWRkciwgMTYpOworCisJ aGFzaFs4XSA9IHRzX3NlY3JldFswXTsKKworCXJldHVybiBqaGFzaDIoaGFzaCwgQVJSQVlfU0la RShoYXNoKSwgdHNfc2VjcmV0WzFdKTsKK30KKwogdTMyIHNlY3VyZV90Y3B2Nl9zZXF1ZW5jZV9u dW1iZXIoY29uc3QgX19iZTMyICpzYWRkciwgY29uc3QgX19iZTMyICpkYWRkciwKIAkJCQkgX19i ZTE2IHNwb3J0LCBfX2JlMTYgZHBvcnQsIHUzMiAqdHNvZmYpCiB7CkBAIC01OSw3ICs3Niw3IEBA IHUzMiBzZWN1cmVfdGNwdjZfc2VxdWVuY2VfbnVtYmVyKGNvbnN0IF9fYmUzMiAqc2FkZHIsIGNv bnN0IF9fYmUzMiAqZGFkZHIsCiAKIAltZDVfdHJhbnNmb3JtKGhhc2gsIHNlY3JldCk7CiAKLQkq dHNvZmYgPSBzeXNjdGxfdGNwX3RpbWVzdGFtcHMgPT0gMSA/IGhhc2hbMV0gOiAwOworCSp0c29m ZiA9IHNlY3VyZV90Y3B2Nl90c19vZmYoc2FkZHIsIGRhZGRyKTsKIAlyZXR1cm4gc2VxX3NjYWxl KGhhc2hbMF0pOwogfQogRVhQT1JUX1NZTUJPTChzZWN1cmVfdGNwdjZfc2VxdWVuY2VfbnVtYmVy KTsKQEAgLTg3LDYgKzEwNCwxNCBAQCBFWFBPUlRfU1lNQk9MKHNlY3VyZV9pcHY2X3BvcnRfZXBo ZW1lcmFsKTsKICNlbmRpZgogCiAjaWZkZWYgQ09ORklHX0lORVQKK3N0YXRpYyB1MzIgc2VjdXJl X3RjcF90c19vZmYoX19iZTMyIHNhZGRyLCBfX2JlMzIgZGFkZHIpCit7CisJaWYgKHN5c2N0bF90 Y3BfdGltZXN0YW1wcyAhPSAxKQorCQlyZXR1cm4gMDsKKworCXJldHVybiBqaGFzaF8zd29yZHMo KF9fZm9yY2UgdTMyKXNhZGRyLCAoX19mb3JjZSB1MzIpZGFkZHIsCisJCQkgICAgdHNfc2VjcmV0 WzBdLCB0c19zZWNyZXRbMV0pOworfQogCiB1MzIgc2VjdXJlX3RjcF9zZXF1ZW5jZV9udW1iZXIo X19iZTMyIHNhZGRyLCBfX2JlMzIgZGFkZHIsCiAJCQkgICAgICAgX19iZTE2IHNwb3J0LCBfX2Jl MTYgZHBvcnQsIHUzMiAqdHNvZmYpCkBAIC0xMDEsNyArMTI2LDcgQEAgdTMyIHNlY3VyZV90Y3Bf c2VxdWVuY2VfbnVtYmVyKF9fYmUzMiBzYWRkciwgX19iZTMyIGRhZGRyLAogCiAJbWQ1X3RyYW5z Zm9ybShoYXNoLCBuZXRfc2VjcmV0KTsKIAotCSp0c29mZiA9IHN5c2N0bF90Y3BfdGltZXN0YW1w cyA9PSAxID8gaGFzaFsxXSA6IDA7CisJKnRzb2ZmID0gc2VjdXJlX3RjcF90c19vZmYoc2FkZHIs IGRhZGRyKTsKIAlyZXR1cm4gc2VxX3NjYWxlKGhhc2hbMF0pOwogfQogCi0tIAoyLjQuMTEKCgpG cm9tIDNlNTg5NmZhZGIyYjBhYjRlMjVlNTg5ZjYzODQwOWI0YjEwY2ZkNmEgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0 ZTogRnJpLCAyNCBNYXIgMjAxNyAxOTozNjoxMyAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDUvNDFd IHBpbmc6IGltcGxlbWVudCBwcm9wZXIgbG9ja2luZwoKWyBVcHN0cmVhbSBjb21taXQgNDNhNjY4 NDUxOWFiMGE2YzUyMDI0YjVlMjUzMjI0NzZjYWJhZDg5MyBdCgpXZSBnb3QgYSByZXBvcnQgb2Yg eWV0IGFub3RoZXIgYnVnIGluIHBpbmcKCmh0dHA6Ly93d3cub3BlbndhbGwuY29tL2xpc3RzL29z cy1zZWN1cml0eS8yMDE3LzAzLzI0LzYKCi0+ZGlzY29ubmVjdCgpIGlzIG5vdCBjYWxsZWQgd2l0 aCBzb2NrZXQgbG9jayBoZWxkLgoKRml4IHRoaXMgYnkgYWNxdWlyaW5nIHBpbmcgcndsb2NrIGVh cmxpZXIuCgpUaGFua3MgdG8gRGFuaWVsLCBBbGV4YW5kZXIgYW5kIEFuZHJleSBmb3IgbGV0dGlu ZyB1cyBrbm93IHRoaXMgcHJvYmxlbS4KCkZpeGVzOiBjMzE5YjRkNzZiOWUgKCJuZXQ6IGlwdjQ6 IGFkZCBJUFBST1RPX0lDTVAgc29ja2V0IGtpbmQiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6 ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBEYW5pZWwgSmlhbmcgPGRhbmll bGppYW5nMDQxNUBnbWFpbC5jb20+ClJlcG9ydGVkLWJ5OiBTb2xhciBEZXNpZ25lciA8c29sYXJA b3BlbndhbGwuY29tPgpSZXBvcnRlZC1ieTogQW5kcmV5IEtvbm92YWxvdiA8YW5kcmV5a252bEBn b29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogbmV0L2lwdjQvcGluZy5jIHwgNSArKystLQogMSBmaWxlIGNoYW5nZWQsIDMg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9waW5n LmMgYi9uZXQvaXB2NC9waW5nLmMKaW5kZXggNjhkNzdiMS4uNTFlMmYzYyAxMDA2NDQKLS0tIGEv bmV0L2lwdjQvcGluZy5jCisrKyBiL25ldC9pcHY0L3BpbmcuYwpAQCAtMTU2LDE3ICsxNTYsMTgg QEAgaW50IHBpbmdfaGFzaChzdHJ1Y3Qgc29jayAqc2spCiB2b2lkIHBpbmdfdW5oYXNoKHN0cnVj dCBzb2NrICpzaykKIHsKIAlzdHJ1Y3QgaW5ldF9zb2NrICppc2sgPSBpbmV0X3NrKHNrKTsKKwog CXByX2RlYnVnKCJwaW5nX3VuaGFzaChpc2s9JXAsaXNrLT5udW09JXUpXG4iLCBpc2ssIGlzay0+ aW5ldF9udW0pOworCXdyaXRlX2xvY2tfYmgoJnBpbmdfdGFibGUubG9jayk7CiAJaWYgKHNrX2hh c2hlZChzaykpIHsKLQkJd3JpdGVfbG9ja19iaCgmcGluZ190YWJsZS5sb2NrKTsKIAkJaGxpc3Rf bnVsbHNfZGVsKCZzay0+c2tfbnVsbHNfbm9kZSk7CiAJCXNrX251bGxzX25vZGVfaW5pdCgmc2st PnNrX251bGxzX25vZGUpOwogCQlzb2NrX3B1dChzayk7CiAJCWlzay0+aW5ldF9udW0gPSAwOwog CQlpc2stPmluZXRfc3BvcnQgPSAwOwogCQlzb2NrX3Byb3RfaW51c2VfYWRkKHNvY2tfbmV0KHNr KSwgc2stPnNrX3Byb3QsIC0xKTsKLQkJd3JpdGVfdW5sb2NrX2JoKCZwaW5nX3RhYmxlLmxvY2sp OwogCX0KKwl3cml0ZV91bmxvY2tfYmgoJnBpbmdfdGFibGUubG9jayk7CiB9CiBFWFBPUlRfU1lN Qk9MX0dQTChwaW5nX3VuaGFzaCk7CiAKLS0gCjIuNC4xMQoKCkZyb20gODc0Y2M0ZGQ3YjExMzAw ZjQzZTg0NWNlMmE1YTFkYTk2NDVkYmJmNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog QWxleGVpIFN0YXJvdm9pdG92IDxhc3RAZmIuY29tPgpEYXRlOiBGcmksIDI0IE1hciAyMDE3IDE1 OjU3OjMzIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwNi80MV0gYnBmOiBpbXByb3ZlIHZlcmlmaWVy IHBhY2tldCByYW5nZSBjaGVja3MKClsgVXBzdHJlYW0gY29tbWl0IGIxOTc3NjgyYTM4NThiNTU4 NGZmZWE3Y2ZiN2JkODYzZjY4ZGIxOGQgXQoKbGx2bSBjYW4gb3B0aW1pemUgdGhlICdpZiAocHRy ID4gZGF0YV9lbmQpJyBjaGVja3MgdG8gYmUgaW4gdGhlIG9yZGVyCnNsaWdodGx5IGRpZmZlcmVu dCB0aGFuIHRoZSBvcmlnaW5hbCBDIGNvZGUgd2hpY2ggd2lsbCBjb25mdXNlIHZlcmlmaWVyLgpM aWtlOgppZiAocHRyICsgMTYgPiBkYXRhX2VuZCkKICByZXR1cm4gVENfQUNUX1NIT1Q7Ci8vIG1h eSBiZSBmb2xsb3dlZCBieQppZiAocHRyICsgMTQgPiBkYXRhX2VuZCkKICByZXR1cm4gVENfQUNU X1NIT1Q7CndoaWxlIGxsdm0gY2FuIHNlZSB0aGF0ICdwdHInIGlzIHZhbGlkIGZvciBhbGwgMTYg Ynl0ZXMsCnRoZSB2ZXJpZmllciBjb3VsZCBub3QuCkZpeCB2ZXJpZmllciBsb2dpYyB0byBhY2Nv dW50IGZvciBzdWNoIGNhc2UgYW5kIGFkZCBhIHRlc3QuCgpSZXBvcnRlZC1ieTogSHVhcGVuZyBa aG91IDxoemhvdUBmYi5jb20+CkZpeGVzOiA5NjliZjA1ZWIzY2UgKCJicGY6IGRpcmVjdCBwYWNr ZXQgYWNjZXNzIikKU2lnbmVkLW9mZi1ieTogQWxleGVpIFN0YXJvdm9pdG92IDxhc3RAa2VybmVs Lm9yZz4KQWNrZWQtYnk6IERhbmllbCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+CkFj a2VkLWJ5OiBNYXJ0aW4gS2FGYWkgTGF1IDxrYWZhaUBmYi5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBrZXJuZWwvYnBmL3Zlcmlm aWVyLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDUgKysrLS0KIHRvb2xzL3Rlc3Rpbmcvc2Vs ZnRlc3RzL2JwZi90ZXN0X3ZlcmlmaWVyLmMgfCAyMCArKysrKysrKysrKysrKysrKysrKwogMiBm aWxlcyBjaGFuZ2VkLCAyMyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuYwppbmRleCBj ZGM0M2I4Li5mM2M5MzhiIDEwMDY0NAotLS0gYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMKKysrIGIv a2VybmVsL2JwZi92ZXJpZmllci5jCkBAIC0xODU5LDE0ICsxODU5LDE1IEBAIHN0YXRpYyB2b2lk IGZpbmRfZ29vZF9wa3RfcG9pbnRlcnMoc3RydWN0IGJwZl92ZXJpZmllcl9zdGF0ZSAqc3RhdGUs CiAKIAlmb3IgKGkgPSAwOyBpIDwgTUFYX0JQRl9SRUc7IGkrKykKIAkJaWYgKHJlZ3NbaV0udHlw ZSA9PSBQVFJfVE9fUEFDS0VUICYmIHJlZ3NbaV0uaWQgPT0gZHN0X3JlZy0+aWQpCi0JCQlyZWdz W2ldLnJhbmdlID0gZHN0X3JlZy0+b2ZmOworCQkJLyoga2VlcCB0aGUgbWF4aW11bSByYW5nZSBh bHJlYWR5IGNoZWNrZWQgKi8KKwkJCXJlZ3NbaV0ucmFuZ2UgPSBtYXgocmVnc1tpXS5yYW5nZSwg ZHN0X3JlZy0+b2ZmKTsKIAogCWZvciAoaSA9IDA7IGkgPCBNQVhfQlBGX1NUQUNLOyBpICs9IEJQ Rl9SRUdfU0laRSkgewogCQlpZiAoc3RhdGUtPnN0YWNrX3Nsb3RfdHlwZVtpXSAhPSBTVEFDS19T UElMTCkKIAkJCWNvbnRpbnVlOwogCQlyZWcgPSAmc3RhdGUtPnNwaWxsZWRfcmVnc1tpIC8gQlBG X1JFR19TSVpFXTsKIAkJaWYgKHJlZy0+dHlwZSA9PSBQVFJfVE9fUEFDS0VUICYmIHJlZy0+aWQg PT0gZHN0X3JlZy0+aWQpCi0JCQlyZWctPnJhbmdlID0gZHN0X3JlZy0+b2ZmOworCQkJcmVnLT5y YW5nZSA9IG1heChyZWctPnJhbmdlLCBkc3RfcmVnLT5vZmYpOwogCX0KIH0KIApkaWZmIC0tZ2l0 IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfdmVyaWZpZXIuYyBiL3Rvb2xzL3Rl c3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X3ZlcmlmaWVyLmMKaW5kZXggODUzZDdlNC4uZTFhZWE5 ZSAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfdmVyaWZpZXIu YworKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF92ZXJpZmllci5jCkBAIC0y ODc2LDYgKzI4NzYsMjYgQEAgc3RhdGljIHN0cnVjdCBicGZfdGVzdCB0ZXN0c1tdID0gewogCQku cHJvZ190eXBlID0gQlBGX1BST0dfVFlQRV9MV1RfWE1JVCwKIAl9LAogCXsKKwkJIm92ZXJsYXBw aW5nIGNoZWNrcyBmb3IgZGlyZWN0IHBhY2tldCBhY2Nlc3MiLAorCQkuaW5zbnMgPSB7CisJCQlC UEZfTERYX01FTShCUEZfVywgQlBGX1JFR18yLCBCUEZfUkVHXzEsCisJCQkJICAgIG9mZnNldG9m KHN0cnVjdCBfX3NrX2J1ZmYsIGRhdGEpKSwKKwkJCUJQRl9MRFhfTUVNKEJQRl9XLCBCUEZfUkVH XzMsIEJQRl9SRUdfMSwKKwkJCQkgICAgb2Zmc2V0b2Yoc3RydWN0IF9fc2tfYnVmZiwgZGF0YV9l bmQpKSwKKwkJCUJQRl9NT1Y2NF9SRUcoQlBGX1JFR18wLCBCUEZfUkVHXzIpLAorCQkJQlBGX0FM VTY0X0lNTShCUEZfQURELCBCUEZfUkVHXzAsIDgpLAorCQkJQlBGX0pNUF9SRUcoQlBGX0pHVCwg QlBGX1JFR18wLCBCUEZfUkVHXzMsIDQpLAorCQkJQlBGX01PVjY0X1JFRyhCUEZfUkVHXzEsIEJQ Rl9SRUdfMiksCisJCQlCUEZfQUxVNjRfSU1NKEJQRl9BREQsIEJQRl9SRUdfMSwgNiksCisJCQlC UEZfSk1QX1JFRyhCUEZfSkdULCBCUEZfUkVHXzEsIEJQRl9SRUdfMywgMSksCisJCQlCUEZfTERY X01FTShCUEZfSCwgQlBGX1JFR18wLCBCUEZfUkVHXzIsIDYpLAorCQkJQlBGX01PVjY0X0lNTShC UEZfUkVHXzAsIDApLAorCQkJQlBGX0VYSVRfSU5TTigpLAorCQl9LAorCQkucmVzdWx0ID0gQUND RVBULAorCQkucHJvZ190eXBlID0gQlBGX1BST0dfVFlQRV9MV1RfWE1JVCwKKwl9LAorCXsKIAkJ ImludmFsaWQgYWNjZXNzIG9mIHRjX2NsYXNzaWQgZm9yIExXVF9JTiIsCiAJCS5pbnNucyA9IHsK IAkJCUJQRl9MRFhfTUVNKEJQRl9XLCBCUEZfUkVHXzAsIEJQRl9SRUdfMSwKLS0gCjIuNC4xMQoK CkZyb20gYjA3MGQ5ZjY1MjQ4MTQ3ZTFmNjZmYjQxOGNhYmIwMzFiNzQxZWY5NiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogVGFsYXQgQmF0aGVlc2ggPHRhbGF0YkBtZWxsYW5veC5jb20+ CkRhdGU6IFR1ZSwgMjggTWFyIDIwMTcgMTY6MTM6NDEgKzAzMDAKU3ViamVjdDogW1BBVENIIDA3 LzQxXSBuZXQvbWx4NTogQXZvaWQgZGVyZWZlcmVuY2luZyB1bmluaXRpYWxpemVkIHBvaW50ZXIK ClsgVXBzdHJlYW0gY29tbWl0IGU0OTdlYzY4MGM0Y2Q1MWU3NmJmY2RkNDkzNjNkOWFiOGQzMmE3 NTcgXQoKSW4gTkVUREVWX0NIQU5HRVVQUEVSIGV2ZW50IHRoZSB1cHBlcl9pbmZvIGZpZWxkIGlz IHZhbGlkCm9ubHkgd2hlbiBsaW5raW5nIGlzIHRydWUuIE90aGVyd2lzZSBpdCBzaG91bGQgYmUg aWdub3JlZC4KCkZpeGVzOiA3OTA3ZjIzYWRjMTggKG5ldC9tbHg1OiBJbXBsZW1lbnQgUm9DRSBM QUcgZmVhdHVyZSkKU2lnbmVkLW9mZi1ieTogVGFsYXQgQmF0aGVlc2ggPHRhbGF0YkBtZWxsYW5v eC5jb20+ClJldmlld2VkLWJ5OiBBdml2IEhlbGxlciA8YXZpdmhAbWVsbGFub3guY29tPgpSZXZp ZXdlZC1ieTogTW9uaSBTaG91YSA8bW9uaXNAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBT YWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDUvY29yZS9sYWcuYyB8IDUgKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGlu c2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL2xhZy5jCmluZGV4IDU1OTU3MjQuLmI1ZDU1MTkgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcuYworKysgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnLmMKQEAgLTI5NCw3ICsyOTQs NyBAQCBzdGF0aWMgaW50IG1seDVfaGFuZGxlX2NoYW5nZXVwcGVyX2V2ZW50KHN0cnVjdCBtbHg1 X2xhZyAqbGRldiwKIAkJCQkJIHN0cnVjdCBuZXRkZXZfbm90aWZpZXJfY2hhbmdldXBwZXJfaW5m byAqaW5mbykKIHsKIAlzdHJ1Y3QgbmV0X2RldmljZSAqdXBwZXIgPSBpbmZvLT51cHBlcl9kZXYs ICpuZGV2X3RtcDsKLQlzdHJ1Y3QgbmV0ZGV2X2xhZ191cHBlcl9pbmZvICpsYWdfdXBwZXJfaW5m bzsKKwlzdHJ1Y3QgbmV0ZGV2X2xhZ191cHBlcl9pbmZvICpsYWdfdXBwZXJfaW5mbyA9IE5VTEw7 CiAJYm9vbCBpc19ib25kZWQ7CiAJaW50IGJvbmRfc3RhdHVzID0gMDsKIAlpbnQgbnVtX3NsYXZl cyA9IDA7CkBAIC0zMDMsNyArMzAzLDggQEAgc3RhdGljIGludCBtbHg1X2hhbmRsZV9jaGFuZ2V1 cHBlcl9ldmVudChzdHJ1Y3QgbWx4NV9sYWcgKmxkZXYsCiAJaWYgKCFuZXRpZl9pc19sYWdfbWFz dGVyKHVwcGVyKSkKIAkJcmV0dXJuIDA7CiAKLQlsYWdfdXBwZXJfaW5mbyA9IGluZm8tPnVwcGVy X2luZm87CisJaWYgKGluZm8tPmxpbmtpbmcpCisJCWxhZ191cHBlcl9pbmZvID0gaW5mby0+dXBw ZXJfaW5mbzsKIAogCS8qIFRoZSBldmVudCBtYXkgc3RpbGwgYmUgb2YgaW50ZXJlc3QgaWYgdGhl IHNsYXZlIGRvZXMgbm90IGJlbG9uZyB0bwogCSAqIHVzLCBidXQgaXMgZW5zbGF2ZWQgdG8gYSBt YXN0ZXIgd2hpY2ggaGFzIG9uZSBvciBtb3JlIG9mIG91ciBuZXRkZXZzCi0tIAoyLjQuMTEKCgpG cm9tIDM4NzA1MzZkMjY1ODU2OTgyMjAxYTQ5YzQzNzQwMjRiYzYyY2Y2NjYgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IEd1aWxsYXVtZSBOYXVsdCA8Zy5uYXVsdEBhbHBoYWxpbmsuZnI+ CkRhdGU6IFdlZCwgMjkgTWFyIDIwMTcgMDg6NDQ6NTkgKzAyMDAKU3ViamVjdDogW1BBVENIIDA4 LzQxXSBsMnRwOiBob2xkIHR1bm5lbCBzb2NrZXQgd2hlbiBoYW5kbGluZyBjb250cm9sIGZyYW1l cwogaW4gbDJ0cF9pcCBhbmQgbDJ0cF9pcDYKClsgVXBzdHJlYW0gY29tbWl0IDk0ZDdlZTBiYWE4 Yjc2NGNmNjRhZDkxZWQ2OTQ2NGMxYTZhMDA2NmIgXQoKVGhlIGNvZGUgZm9sbG93aW5nIGwydHBf dHVubmVsX2ZpbmQoKSBleHBlY3RzIHRoYXQgYSBuZXcgcmVmZXJlbmNlIGlzCmhlbGQgb24gc2su IEVpdGhlciBza19yZWNlaXZlX3NrYigpIG9yIHRoZSBkaXNjYXJkX3B1dCBlcnJvciBwYXRoIHdp bGwKZHJvcCBhIHJlZmVyZW5jZSBmcm9tIHRoZSB0dW5uZWwncyBzb2NrZXQuCgpUaGlzIGlzc3Vl IGV4aXN0cyBpbiBib3RoIGwydHBfaXAgYW5kIGwydHBfaXA2LgoKRml4ZXM6IGEzYzE4NDIyYTRi NCAoImwydHA6IGhvbGQgc29ja2V0IGJlZm9yZSBkcm9wcGluZyBsb2NrIGluIGwydHBfaXB7LCA2 fV9yZWN2KCkiKQpTaWduZWQtb2ZmLWJ5OiBHdWlsbGF1bWUgTmF1bHQgPGcubmF1bHRAYWxwaGFs aW5rLmZyPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L2wydHAvbDJ0cF9pcC5jICB8IDUgKysrLS0KIG5ldC9sMnRwL2wydHBfaXA2 LmMgfCA1ICsrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvbDJ0cC9sMnRwX2lwLmMgYi9uZXQvbDJ0cC9sMnRwX2lw LmMKaW5kZXggM2VkMzAxNS4uZmEyYmNmYyAxMDA2NDQKLS0tIGEvbmV0L2wydHAvbDJ0cF9pcC5j CisrKyBiL25ldC9sMnRwL2wydHBfaXAuYwpAQCAtMTcxLDkgKzE3MSwxMCBAQCBzdGF0aWMgaW50 IGwydHBfaXBfcmVjdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCiAJdHVubmVsX2lkID0gbnRvaGwo KihfX2JlMzIgKikgJnNrYi0+ZGF0YVs0XSk7CiAJdHVubmVsID0gbDJ0cF90dW5uZWxfZmluZChu ZXQsIHR1bm5lbF9pZCk7Ci0JaWYgKHR1bm5lbCAhPSBOVUxMKQorCWlmICh0dW5uZWwpIHsKIAkJ c2sgPSB0dW5uZWwtPnNvY2s7Ci0JZWxzZSB7CisJCXNvY2tfaG9sZChzayk7CisJfSBlbHNlIHsK IAkJc3RydWN0IGlwaGRyICppcGggPSAoc3RydWN0IGlwaGRyICopIHNrYl9uZXR3b3JrX2hlYWRl cihza2IpOwogCiAJCXJlYWRfbG9ja19iaCgmbDJ0cF9pcF9sb2NrKTsKZGlmZiAtLWdpdCBhL25l dC9sMnRwL2wydHBfaXA2LmMgYi9uZXQvbDJ0cC9sMnRwX2lwNi5jCmluZGV4IGY0N2M0NTIuLjRl NGZhMTUgMTAwNjQ0Ci0tLSBhL25ldC9sMnRwL2wydHBfaXA2LmMKKysrIGIvbmV0L2wydHAvbDJ0 cF9pcDYuYwpAQCAtMTgzLDkgKzE4MywxMCBAQCBzdGF0aWMgaW50IGwydHBfaXA2X3JlY3Yoc3Ry dWN0IHNrX2J1ZmYgKnNrYikKIAogCXR1bm5lbF9pZCA9IG50b2hsKCooX19iZTMyICopICZza2It PmRhdGFbNF0pOwogCXR1bm5lbCA9IGwydHBfdHVubmVsX2ZpbmQobmV0LCB0dW5uZWxfaWQpOwot CWlmICh0dW5uZWwgIT0gTlVMTCkKKwlpZiAodHVubmVsKSB7CiAJCXNrID0gdHVubmVsLT5zb2Nr OwotCWVsc2UgeworCQlzb2NrX2hvbGQoc2spOworCX0gZWxzZSB7CiAJCXN0cnVjdCBpcHY2aGRy ICppcGggPSBpcHY2X2hkcihza2IpOwogCiAJCXJlYWRfbG9ja19iaCgmbDJ0cF9pcDZfbG9jayk7 Ci0tIAoyLjQuMTEKCgpGcm9tIGI1ZGY0OGI2MGE2M2VlYTk5NDRlZjg1MjUyZTlhZjk0M2Q5NDg1 MWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEd1aWxsYXVtZSBOYXVsdCA8Zy5uYXVs dEBhbHBoYWxpbmsuZnI+CkRhdGU6IFdlZCwgMjkgTWFyIDIwMTcgMDg6NDU6MjkgKzAyMDAKU3Vi amVjdDogW1BBVENIIDA5LzQxXSBsMnRwOiBwdXJnZSBzb2NrZXQgcXVldWVzIGluIHRoZSAuZGVz dHJ1Y3QoKSBjYWxsYmFjawoKWyBVcHN0cmVhbSBjb21taXQgZTkxNzkzYmI2MTVjZjZjZGQ1OWMw YjY3NDlmZTE3MzY4N2JiMDk0NyBdCgpUaGUgUnggcGF0aCBtYXkgZ3JhYiB0aGUgc29ja2V0IHJp Z2h0IGJlZm9yZSBwcHBvbDJ0cF9yZWxlYXNlKCksIGJ1dApub3RoaW5nIGd1YXJhbnRlZXMgdGhh dCBpdCB3aWxsIGVucXVldWUgcGFja2V0cyBiZWZvcmUKc2tiX3F1ZXVlX3B1cmdlKCkuIFRoZXJl Zm9yZSwgdGhlIHNvY2tldCBjYW4gYmUgZGVzdHJveWVkIHdpdGhvdXQgaXRzCnF1ZXVlcyBmdWxs eSBwdXJnZWQuCgpGaXggdGhpcyBieSBwdXJnaW5nIHF1ZXVlcyBpbiBwcHBvbDJ0cF9zZXNzaW9u X2Rlc3RydWN0KCkgd2hlcmUgd2UncmUKZ3VhcmFudGVlZCBub3RoaW5nIGlzIHN0aWxsIHJlZmVy ZW5jaW5nIHRoZSBzb2NrZXQuCgpGaXhlczogOWU5Y2I2MjIxYWE3ICgibDJ0cDogZml4IHVzZXJz cGFjZSByZWNlcHRpb24gb24gcGxhaW4gTDJUUCBzb2NrZXRzIikKU2lnbmVkLW9mZi1ieTogR3Vp bGxhdW1lIE5hdWx0IDxnLm5hdWx0QGFscGhhbGluay5mcj4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9sMnRwL2wydHBfcHBwLmMg fCA3ICsrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2wydHAvbDJ0cF9wcHAuYyBiL25ldC9sMnRwL2wydHBfcHBw LmMKaW5kZXggMzZjYzU2Zi4uMTIzYjZhMiAxMDA2NDQKLS0tIGEvbmV0L2wydHAvbDJ0cF9wcHAu YworKysgYi9uZXQvbDJ0cC9sMnRwX3BwcC5jCkBAIC00NTAsNiArNDUwLDEwIEBAIHN0YXRpYyB2 b2lkIHBwcG9sMnRwX3Nlc3Npb25fY2xvc2Uoc3RydWN0IGwydHBfc2Vzc2lvbiAqc2Vzc2lvbikK IHN0YXRpYyB2b2lkIHBwcG9sMnRwX3Nlc3Npb25fZGVzdHJ1Y3Qoc3RydWN0IHNvY2sgKnNrKQog ewogCXN0cnVjdCBsMnRwX3Nlc3Npb24gKnNlc3Npb24gPSBzay0+c2tfdXNlcl9kYXRhOworCisJ c2tiX3F1ZXVlX3B1cmdlKCZzay0+c2tfcmVjZWl2ZV9xdWV1ZSk7CisJc2tiX3F1ZXVlX3B1cmdl KCZzay0+c2tfd3JpdGVfcXVldWUpOworCiAJaWYgKHNlc3Npb24pIHsKIAkJc2stPnNrX3VzZXJf ZGF0YSA9IE5VTEw7CiAJCUJVR19PTihzZXNzaW9uLT5tYWdpYyAhPSBMMlRQX1NFU1NJT05fTUFH SUMpOwpAQCAtNDg4LDkgKzQ5Miw2IEBAIHN0YXRpYyBpbnQgcHBwb2wydHBfcmVsZWFzZShzdHJ1 Y3Qgc29ja2V0ICpzb2NrKQogCQlsMnRwX3Nlc3Npb25fcXVldWVfcHVyZ2Uoc2Vzc2lvbik7CiAJ CXNvY2tfcHV0KHNrKTsKIAl9Ci0Jc2tiX3F1ZXVlX3B1cmdlKCZzay0+c2tfcmVjZWl2ZV9xdWV1 ZSk7Ci0Jc2tiX3F1ZXVlX3B1cmdlKCZzay0+c2tfd3JpdGVfcXVldWUpOwotCiAJcmVsZWFzZV9z b2NrKHNrKTsKIAogCS8qIFRoaXMgd2lsbCBkZWxldGUgdGhlIHNlc3Npb24gY29udGV4dCB2aWEK LS0gCjIuNC4xMQoKCkZyb20gNzdlM2JmMTY4YmI1YTlmYjM2ZTVhYmMwZDczOTJlMmMxMDc3Yjkz ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQW5kcmV5IEtvbm92YWxvdiA8YW5kcmV5 a252bEBnb29nbGUuY29tPgpEYXRlOiBXZWQsIDI5IE1hciAyMDE3IDE2OjExOjIxICswMjAwClN1 YmplY3Q6IFtQQVRDSCAxMC80MV0gbmV0L3BhY2tldDogZml4IG92ZXJmbG93IGluIGNoZWNrIGZv ciB0cF9mcmFtZV9ucgoKWyBVcHN0cmVhbSBjb21taXQgOGY4ZDI4ZTRkNmQ4MTVhMzkxMjg1ZTEy MWMzYTUzYTBiNmNiOWU3YiBdCgpXaGVuIGNhbGN1bGF0aW5nIHJiLT5mcmFtZXNfcGVyX2Jsb2Nr ICogcmVxLT50cF9ibG9ja19uciB0aGUgcmVzdWx0CmNhbiBvdmVyZmxvdy4KCkFkZCBhIGNoZWNr IHRoYXQgdHBfYmxvY2tfc2l6ZSAqIHRwX2Jsb2NrX25yIDw9IFVJTlRfTUFYLgoKU2luY2UgZnJh bWVzX3Blcl9ibG9jayA8PSB0cF9ibG9ja19zaXplLCB0aGUgZXhwcmVzc2lvbiB3b3VsZApuZXZl ciBvdmVyZmxvdy4KClNpZ25lZC1vZmYtYnk6IEFuZHJleSBLb25vdmFsb3YgPGFuZHJleWtudmxA Z29vZ2xlLmNvbT4KQWNrZWQtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IG5ldC9wYWNrZXQvYWZfcGFja2V0LmMgfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRp b25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L3BhY2tldC9hZl9wYWNrZXQuYyBiL25ldC9wYWNrZXQv YWZfcGFja2V0LmMKaW5kZXggNWM5MTk5My4uNjI0ZDE4OCAxMDA2NDQKLS0tIGEvbmV0L3BhY2tl dC9hZl9wYWNrZXQuYworKysgYi9uZXQvcGFja2V0L2FmX3BhY2tldC5jCkBAIC00MTg5LDYgKzQx ODksOCBAQCBzdGF0aWMgaW50IHBhY2tldF9zZXRfcmluZyhzdHJ1Y3Qgc29jayAqc2ssIHVuaW9u IHRwYWNrZXRfcmVxX3UgKnJlcV91LAogCQlyYi0+ZnJhbWVzX3Blcl9ibG9jayA9IHJlcS0+dHBf YmxvY2tfc2l6ZSAvIHJlcS0+dHBfZnJhbWVfc2l6ZTsKIAkJaWYgKHVubGlrZWx5KHJiLT5mcmFt ZXNfcGVyX2Jsb2NrID09IDApKQogCQkJZ290byBvdXQ7CisJCWlmICh1bmxpa2VseShyZXEtPnRw X2Jsb2NrX3NpemUgPiBVSU5UX01BWCAvIHJlcS0+dHBfYmxvY2tfbnIpKQorCQkJZ290byBvdXQ7 CiAJCWlmICh1bmxpa2VseSgocmItPmZyYW1lc19wZXJfYmxvY2sgKiByZXEtPnRwX2Jsb2NrX25y KSAhPQogCQkJCQlyZXEtPnRwX2ZyYW1lX25yKSkKIAkJCWdvdG8gb3V0OwotLSAKMi40LjExCgoK RnJvbSBjMmRhNDk3ZTIzYTRlN2RiMWNkZjU3MGZiYmMzNjUxYzg3OTAyMjRiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXkgS29ub3ZhbG92IDxhbmRyZXlrbnZsQGdvb2dsZS5j b20+CkRhdGU6IFdlZCwgMjkgTWFyIDIwMTcgMTY6MTE6MjIgKzAyMDAKU3ViamVjdDogW1BBVENI IDExLzQxXSBuZXQvcGFja2V0OiBmaXggb3ZlcmZsb3cgaW4gY2hlY2sgZm9yIHRwX3Jlc2VydmUK ClsgVXBzdHJlYW0gY29tbWl0IGJjYzUzNjRiZGNmZTEzMWU2Mzc5MzYzZjA4OWU3YjQxMDhkMzVi NzAgXQoKV2hlbiBjYWxjdWxhdGluZyBwby0+dHBfaGRybGVuICsgcG8tPnRwX3Jlc2VydmUgdGhl IHJlc3VsdCBjYW4gb3ZlcmZsb3cuCgpGaXggYnkgY2hlY2tpbmcgdGhhdCB0cF9yZXNlcnZlIDw9 IElOVF9NQVggb24gYXNzaWduLgoKU2lnbmVkLW9mZi1ieTogQW5kcmV5IEtvbm92YWxvdiA8YW5k cmV5a252bEBnb29nbGUuY29tPgpBY2tlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29n bGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L3BhY2tldC9hZl9wYWNrZXQuYyB8IDIgKysKIDEgZmlsZSBjaGFuZ2VkLCAy IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQvcGFja2V0L2FmX3BhY2tldC5jIGIvbmV0 L3BhY2tldC9hZl9wYWNrZXQuYwppbmRleCA2MjRkMTg4Li4wZjA3NGM5IDEwMDY0NAotLS0gYS9u ZXQvcGFja2V0L2FmX3BhY2tldC5jCisrKyBiL25ldC9wYWNrZXQvYWZfcGFja2V0LmMKQEAgLTM2 NDQsNiArMzY0NCw4IEBAIHBhY2tldF9zZXRzb2Nrb3B0KHN0cnVjdCBzb2NrZXQgKnNvY2ssIGlu dCBsZXZlbCwgaW50IG9wdG5hbWUsIGNoYXIgX191c2VyICpvcHR2CiAJCQlyZXR1cm4gLUVCVVNZ OwogCQlpZiAoY29weV9mcm9tX3VzZXIoJnZhbCwgb3B0dmFsLCBzaXplb2YodmFsKSkpCiAJCQly ZXR1cm4gLUVGQVVMVDsKKwkJaWYgKHZhbCA+IElOVF9NQVgpCisJCQlyZXR1cm4gLUVJTlZBTDsK IAkJcG8tPnRwX3Jlc2VydmUgPSB2YWw7CiAJCXJldHVybiAwOwogCX0KLS0gCjIuNC4xMQoKCkZy b20gN2JjZDI4MjYyNWZiNTMyMWRiODRiMmM1N2FhYmNiZjg3YzQ1Yzk5MSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogWWktSHVuZyBXZWkgPHlpaHVuZy53ZWlAZ21haWwuY29tPgpEYXRl OiBUaHUsIDMwIE1hciAyMDE3IDEyOjM2OjAzIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxMi80MV0g b3BlbnZzd2l0Y2g6IEZpeCBvdnNfZmxvd19rZXlfdXBkYXRlKCkKClsgVXBzdHJlYW0gY29tbWl0 IDZmNTZmNjE4NmMxOGUzZmQ1NDEyMmI3M2RhNjhlODcwNjg3YjhjNTkgXQoKb3ZzX2Zsb3dfa2V5 X3VwZGF0ZSgpIGlzIGNhbGxlZCB3aGVuIHRoZSBmbG93IGtleSBpcyBpbnZhbGlkLCBhbmQgaXQg aXMKdXNlZCB0byB1cGRhdGUgYW5kIHJldmFsaWRhdGUgdGhlIGZsb3cga2V5LiBDb21taXQgMzI5 ZjQ1YmM0ZjE5Cigib3BlbnZzd2l0Y2g6IGFkZCBtYWNfcHJvdG8gZmllbGQgdG8gdGhlIGZsb3cg a2V5IikgaW50cm9kdWNlcyBtYWNfcHJvdG8KZmllbGQgdG8gZmxvdyBrZXkgYW5kIHVzZSBpdCB0 byBkZXRlcm1pbmUgd2hldGhlciB0aGUgZmxvdyBrZXkgaXMgdmFsaWQuCkhvd2V2ZXIsIHRoZSBj b21taXQgZG9lcyBub3QgdXBkYXRlIHRoZSBjb2RlIHBhdGggaW4gb3ZzX2Zsb3dfa2V5X3VwZGF0 ZSgpCnRvIHJldmFsaWRhdGUgdGhlIGZsb3cga2V5IHdoaWNoIG1heSBjYXVzZSBCVUdfT04oKSBv biBleGVjdXRlX3JlY2lyYygpLgpUaGlzIHBhdGNoIGFkZHJlc3NlcyB0aGUgYWZvcmVtZW50aW9u ZWQgaXNzdWUuCgpGaXhlczogMzI5ZjQ1YmM0ZjE5ICgib3BlbnZzd2l0Y2g6IGFkZCBtYWNfcHJv dG8gZmllbGQgdG8gdGhlIGZsb3cga2V5IikKU2lnbmVkLW9mZi1ieTogWWktSHVuZyBXZWkgPHlp aHVuZy53ZWlAZ21haWwuY29tPgpBY2tlZC1ieTogSmlyaSBCZW5jIDxqYmVuY0ByZWRoYXQuY29t PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogbmV0L29wZW52c3dpdGNoL2Zsb3cuYyB8IDEwICsrKysrKysrLS0KIDEgZmlsZSBjaGFuZ2Vk LCA4IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L29wZW52 c3dpdGNoL2Zsb3cuYyBiL25ldC9vcGVudnN3aXRjaC9mbG93LmMKaW5kZXggMmMwYTAwZi4uYmI3 ODkzNSAxMDA2NDQKLS0tIGEvbmV0L29wZW52c3dpdGNoL2Zsb3cuYworKysgYi9uZXQvb3BlbnZz d2l0Y2gvZmxvdy5jCkBAIC01MjcsNyArNTI3LDcgQEAgc3RhdGljIGludCBrZXlfZXh0cmFjdChz dHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKmtleSkKIAogCS8qIExpbmsg bGF5ZXIuICovCiAJY2xlYXJfdmxhbihrZXkpOwotCWlmIChrZXktPm1hY19wcm90byA9PSBNQUNf UFJPVE9fTk9ORSkgeworCWlmIChvdnNfa2V5X21hY19wcm90byhrZXkpID09IE1BQ19QUk9UT19O T05FKSB7CiAJCWlmICh1bmxpa2VseShldGhfdHlwZV92bGFuKHNrYi0+cHJvdG9jb2wpKSkKIAkJ CXJldHVybiAtRUlOVkFMOwogCkBAIC03NDUsNyArNzQ1LDEzIEBAIHN0YXRpYyBpbnQga2V5X2V4 dHJhY3Qoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHN3X2Zsb3dfa2V5ICprZXkpCiAKIGlu dCBvdnNfZmxvd19rZXlfdXBkYXRlKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzd19mbG93 X2tleSAqa2V5KQogewotCXJldHVybiBrZXlfZXh0cmFjdChza2IsIGtleSk7CisJaW50IHJlczsK KworCXJlcyA9IGtleV9leHRyYWN0KHNrYiwga2V5KTsKKwlpZiAoIXJlcykKKwkJa2V5LT5tYWNf cHJvdG8gJj0gflNXX0ZMT1dfS0VZX0lOVkFMSUQ7CisKKwlyZXR1cm4gcmVzOwogfQogCiBzdGF0 aWMgaW50IGtleV9leHRyYWN0X21hY19wcm90byhzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQotLSAKMi40 LjExCgoKRnJvbSA2OTI3MDNkNTIwN2JmYjJkMzU1ZTBjNzE4ZTg3MWZlMzA3NzgzYzE5IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBHdWlsbGF1bWUgTmF1bHQgPGcubmF1bHRAYWxwaGFs aW5rLmZyPgpEYXRlOiBNb24sIDMgQXByIDIwMTcgMTI6MDM6MTMgKzAyMDAKU3ViamVjdDogW1BB VENIIDEzLzQxXSBsMnRwOiB0YWtlIHJlZmVyZW5jZSBvbiBzZXNzaW9ucyBiZWluZyBkdW1wZWQK ClsgVXBzdHJlYW0gY29tbWl0IGUwODI5M2E0Y2NiY2M5OTNkZWQwZmRjNDZmMWU1NzkyNmI4MzNk NjMgXQoKVGFrZSBhIHJlZmVyZW5jZSBvbiB0aGUgc2Vzc2lvbnMgcmV0dXJuZWQgYnkgbDJ0cF9z ZXNzaW9uX2ZpbmRfbnRoKCkKKGFuZCByZW5hbWUgaXQgbDJ0cF9zZXNzaW9uX2dldF9udGgoKSB0 byByZWZsZWN0IHRoaXMgY2hhbmdlKSwgc28gdGhhdApjYWxsZXIgaXMgYXNzdXJlZCB0aGF0IHRo ZSBzZXNzaW9uIGlzbid0IGdvaW5nIHRvIGRpc2FwcGVhciB3aGlsZQpwcm9jZXNzaW5nIGl0LgoK Rm9yIHByb2NmcyBhbmQgZGVidWdmcyBoYW5kbGVycywgdGhlIHNlc3Npb24gaXMgaGVsZCBpbiB0 aGUgLnN0YXJ0KCkKY2FsbGJhY2sgYW5kIGRyb3BwZWQgaW4gLnNob3coKS4gR2l2ZW4gdGhhdCBw cHBvbDJ0cF9zZXFfc2Vzc2lvbl9zaG93KCkKZGVyZWZlcmVuY2VzIHRoZSBhc3NvY2lhdGVkIFBQ UG9MMlRQIHNvY2tldCBhbmQgdGhhdApsMnRwX2Rmc19zZXFfc2Vzc2lvbl9zaG93KCkgbWlnaHQg Y2FsbCBwcHBvbDJ0cF9zaG93KCksIHdlIGFsc28gbmVlZCB0bwpjYWxsIHRoZSBzZXNzaW9uJ3Mg LnJlZigpIGNhbGxiYWNrIHRvIHByZXZlbnQgdGhlIHNvY2tldCBmcm9tIGdvaW5nCmF3YXkgZnJv bSB1bmRlciB1cy4KCkZpeGVzOiBmZDU1OGQxODZkZjIgKCJsMnRwOiBTcGxpdCBwcHBvbDJ0cCBw YXRjaCBpbnRvIHNlcGFyYXRlIGwydHAgYW5kIHBwcCBwYXJ0cyIpCkZpeGVzOiAwYWQ2NjE0MDQ4 Y2YgKCJsMnRwOiBBZGQgZGVidWdmcyBmaWxlcyBmb3IgZHVtcGluZyBsMnRwIGRlYnVnIGluZm8i KQpGaXhlczogMzA5Nzk1ZjRiZWMyICgibDJ0cDogQWRkIG5ldGxpbmsgY29udHJvbCBBUEkgZm9y IEwyVFAiKQpTaWduZWQtb2ZmLWJ5OiBHdWlsbGF1bWUgTmF1bHQgPGcubmF1bHRAYWxwaGFsaW5r LmZyPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogbmV0L2wydHAvbDJ0cF9jb3JlLmMgICAgfCAgOCArKysrKystLQogbmV0L2wydHAvbDJ0 cF9jb3JlLmggICAgfCAgMyArKy0KIG5ldC9sMnRwL2wydHBfZGVidWdmcy5jIHwgMTAgKysrKysr Ky0tLQogbmV0L2wydHAvbDJ0cF9uZXRsaW5rLmMgfCAgNyArKysrKy0tCiBuZXQvbDJ0cC9sMnRw X3BwcC5jICAgICB8IDEwICsrKysrKystLS0KIDUgZmlsZXMgY2hhbmdlZCwgMjcgaW5zZXJ0aW9u cygrKSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2wydHAvbDJ0cF9jb3JlLmMg Yi9uZXQvbDJ0cC9sMnRwX2NvcmUuYwppbmRleCA4NTk0OGM2Li41NjAzNmFiIDEwMDY0NAotLS0g YS9uZXQvbDJ0cC9sMnRwX2NvcmUuYworKysgYi9uZXQvbDJ0cC9sMnRwX2NvcmUuYwpAQCAtMjc4 LDcgKzI3OCw4IEBAIHN0cnVjdCBsMnRwX3Nlc3Npb24gKmwydHBfc2Vzc2lvbl9maW5kKHN0cnVj dCBuZXQgKm5ldCwgc3RydWN0IGwydHBfdHVubmVsICp0dW5uCiB9CiBFWFBPUlRfU1lNQk9MX0dQ TChsMnRwX3Nlc3Npb25fZmluZCk7CiAKLXN0cnVjdCBsMnRwX3Nlc3Npb24gKmwydHBfc2Vzc2lv bl9maW5kX250aChzdHJ1Y3QgbDJ0cF90dW5uZWwgKnR1bm5lbCwgaW50IG50aCkKK3N0cnVjdCBs MnRwX3Nlc3Npb24gKmwydHBfc2Vzc2lvbl9nZXRfbnRoKHN0cnVjdCBsMnRwX3R1bm5lbCAqdHVu bmVsLCBpbnQgbnRoLAorCQkJCQkgIGJvb2wgZG9fcmVmKQogewogCWludCBoYXNoOwogCXN0cnVj dCBsMnRwX3Nlc3Npb24gKnNlc3Npb247CkBAIC0yODgsNiArMjg5LDkgQEAgc3RydWN0IGwydHBf c2Vzc2lvbiAqbDJ0cF9zZXNzaW9uX2ZpbmRfbnRoKHN0cnVjdCBsMnRwX3R1bm5lbCAqdHVubmVs LCBpbnQgbnRoKQogCWZvciAoaGFzaCA9IDA7IGhhc2ggPCBMMlRQX0hBU0hfU0laRTsgaGFzaCsr KSB7CiAJCWhsaXN0X2Zvcl9lYWNoX2VudHJ5KHNlc3Npb24sICZ0dW5uZWwtPnNlc3Npb25faGxp c3RbaGFzaF0sIGhsaXN0KSB7CiAJCQlpZiAoKytjb3VudCA+IG50aCkgeworCQkJCWwydHBfc2Vz c2lvbl9pbmNfcmVmY291bnQoc2Vzc2lvbik7CisJCQkJaWYgKGRvX3JlZiAmJiBzZXNzaW9uLT5y ZWYpCisJCQkJCXNlc3Npb24tPnJlZihzZXNzaW9uKTsKIAkJCQlyZWFkX3VubG9ja19iaCgmdHVu bmVsLT5obGlzdF9sb2NrKTsKIAkJCQlyZXR1cm4gc2Vzc2lvbjsKIAkJCX0KQEAgLTI5OCw3ICsz MDIsNyBAQCBzdHJ1Y3QgbDJ0cF9zZXNzaW9uICpsMnRwX3Nlc3Npb25fZmluZF9udGgoc3RydWN0 IGwydHBfdHVubmVsICp0dW5uZWwsIGludCBudGgpCiAKIAlyZXR1cm4gTlVMTDsKIH0KLUVYUE9S VF9TWU1CT0xfR1BMKGwydHBfc2Vzc2lvbl9maW5kX250aCk7CitFWFBPUlRfU1lNQk9MX0dQTChs MnRwX3Nlc3Npb25fZ2V0X250aCk7CiAKIC8qIExvb2t1cCBhIHNlc3Npb24gYnkgaW50ZXJmYWNl IG5hbWUuCiAgKiBUaGlzIGlzIHZlcnkgaW5lZmZpY2llbnQgYnV0IGlzIG9ubHkgdXNlZCBieSBt YW5hZ2VtZW50IGludGVyZmFjZXMuCmRpZmYgLS1naXQgYS9uZXQvbDJ0cC9sMnRwX2NvcmUuaCBi L25ldC9sMnRwL2wydHBfY29yZS5oCmluZGV4IGFlYmYyODEuLjIyMTY0OGIgMTAwNjQ0Ci0tLSBh L25ldC9sMnRwL2wydHBfY29yZS5oCisrKyBiL25ldC9sMnRwL2wydHBfY29yZS5oCkBAIC0yMzMs NyArMjMzLDggQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgbDJ0cF90dW5uZWwgKmwydHBfc29ja190 b190dW5uZWwoc3RydWN0IHNvY2sgKnNrKQogc3RydWN0IGwydHBfc2Vzc2lvbiAqbDJ0cF9zZXNz aW9uX2ZpbmQoc3RydWN0IG5ldCAqbmV0LAogCQkJCSAgICAgICBzdHJ1Y3QgbDJ0cF90dW5uZWwg KnR1bm5lbCwKIAkJCQkgICAgICAgdTMyIHNlc3Npb25faWQpOwotc3RydWN0IGwydHBfc2Vzc2lv biAqbDJ0cF9zZXNzaW9uX2ZpbmRfbnRoKHN0cnVjdCBsMnRwX3R1bm5lbCAqdHVubmVsLCBpbnQg bnRoKTsKK3N0cnVjdCBsMnRwX3Nlc3Npb24gKmwydHBfc2Vzc2lvbl9nZXRfbnRoKHN0cnVjdCBs MnRwX3R1bm5lbCAqdHVubmVsLCBpbnQgbnRoLAorCQkJCQkgIGJvb2wgZG9fcmVmKTsKIHN0cnVj dCBsMnRwX3Nlc3Npb24gKmwydHBfc2Vzc2lvbl9maW5kX2J5X2lmbmFtZShzdHJ1Y3QgbmV0ICpu ZXQsIGNoYXIgKmlmbmFtZSk7CiBzdHJ1Y3QgbDJ0cF90dW5uZWwgKmwydHBfdHVubmVsX2ZpbmQo c3RydWN0IG5ldCAqbmV0LCB1MzIgdHVubmVsX2lkKTsKIHN0cnVjdCBsMnRwX3R1bm5lbCAqbDJ0 cF90dW5uZWxfZmluZF9udGgoc3RydWN0IG5ldCAqbmV0LCBpbnQgbnRoKTsKZGlmZiAtLWdpdCBh L25ldC9sMnRwL2wydHBfZGVidWdmcy5jIGIvbmV0L2wydHAvbDJ0cF9kZWJ1Z2ZzLmMKaW5kZXgg MmQ2NzYwYS4uZDEwMGFlZCAxMDA2NDQKLS0tIGEvbmV0L2wydHAvbDJ0cF9kZWJ1Z2ZzLmMKKysr IGIvbmV0L2wydHAvbDJ0cF9kZWJ1Z2ZzLmMKQEAgLTUzLDcgKzUzLDcgQEAgc3RhdGljIHZvaWQg bDJ0cF9kZnNfbmV4dF90dW5uZWwoc3RydWN0IGwydHBfZGZzX3NlcV9kYXRhICpwZCkKIAogc3Rh dGljIHZvaWQgbDJ0cF9kZnNfbmV4dF9zZXNzaW9uKHN0cnVjdCBsMnRwX2Rmc19zZXFfZGF0YSAq cGQpCiB7Ci0JcGQtPnNlc3Npb24gPSBsMnRwX3Nlc3Npb25fZmluZF9udGgocGQtPnR1bm5lbCwg cGQtPnNlc3Npb25faWR4KTsKKwlwZC0+c2Vzc2lvbiA9IGwydHBfc2Vzc2lvbl9nZXRfbnRoKHBk LT50dW5uZWwsIHBkLT5zZXNzaW9uX2lkeCwgdHJ1ZSk7CiAJcGQtPnNlc3Npb25faWR4Kys7CiAK IAlpZiAocGQtPnNlc3Npb24gPT0gTlVMTCkgewpAQCAtMjM4LDEwICsyMzgsMTQgQEAgc3RhdGlj IGludCBsMnRwX2Rmc19zZXFfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnYpCiAJfQog CiAJLyogU2hvdyB0aGUgdHVubmVsIG9yIHNlc3Npb24gY29udGV4dCAqLwotCWlmIChwZC0+c2Vz c2lvbiA9PSBOVUxMKQorCWlmICghcGQtPnNlc3Npb24pIHsKIAkJbDJ0cF9kZnNfc2VxX3R1bm5l bF9zaG93KG0sIHBkLT50dW5uZWwpOwotCWVsc2UKKwl9IGVsc2UgewogCQlsMnRwX2Rmc19zZXFf c2Vzc2lvbl9zaG93KG0sIHBkLT5zZXNzaW9uKTsKKwkJaWYgKHBkLT5zZXNzaW9uLT5kZXJlZikK KwkJCXBkLT5zZXNzaW9uLT5kZXJlZihwZC0+c2Vzc2lvbik7CisJCWwydHBfc2Vzc2lvbl9kZWNf cmVmY291bnQocGQtPnNlc3Npb24pOworCX0KIAogb3V0OgogCXJldHVybiAwOwpkaWZmIC0tZ2l0 IGEvbmV0L2wydHAvbDJ0cF9uZXRsaW5rLmMgYi9uZXQvbDJ0cC9sMnRwX25ldGxpbmsuYwppbmRl eCAzNjIwZmJhLi5hZDE5MWE3IDEwMDY0NAotLS0gYS9uZXQvbDJ0cC9sMnRwX25ldGxpbmsuYwor KysgYi9uZXQvbDJ0cC9sMnRwX25ldGxpbmsuYwpAQCAtODUyLDcgKzg1Miw3IEBAIHN0YXRpYyBp bnQgbDJ0cF9ubF9jbWRfc2Vzc2lvbl9kdW1wKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBu ZXRsaW5rX2NhbGxiYWNrCiAJCQkJZ290byBvdXQ7CiAJCX0KIAotCQlzZXNzaW9uID0gbDJ0cF9z ZXNzaW9uX2ZpbmRfbnRoKHR1bm5lbCwgc2kpOworCQlzZXNzaW9uID0gbDJ0cF9zZXNzaW9uX2dl dF9udGgodHVubmVsLCBzaSwgZmFsc2UpOwogCQlpZiAoc2Vzc2lvbiA9PSBOVUxMKSB7CiAJCQl0 aSsrOwogCQkJdHVubmVsID0gTlVMTDsKQEAgLTg2Miw4ICs4NjIsMTEgQEAgc3RhdGljIGludCBs MnRwX25sX2NtZF9zZXNzaW9uX2R1bXAoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldGxp bmtfY2FsbGJhY2sKIAogCQlpZiAobDJ0cF9ubF9zZXNzaW9uX3NlbmQoc2tiLCBORVRMSU5LX0NC KGNiLT5za2IpLnBvcnRpZCwKIAkJCQkJIGNiLT5ubGgtPm5sbXNnX3NlcSwgTkxNX0ZfTVVMVEks Ci0JCQkJCSBzZXNzaW9uLCBMMlRQX0NNRF9TRVNTSU9OX0dFVCkgPCAwKQorCQkJCQkgc2Vzc2lv biwgTDJUUF9DTURfU0VTU0lPTl9HRVQpIDwgMCkgeworCQkJbDJ0cF9zZXNzaW9uX2RlY19yZWZj b3VudChzZXNzaW9uKTsKIAkJCWJyZWFrOworCQl9CisJCWwydHBfc2Vzc2lvbl9kZWNfcmVmY291 bnQoc2Vzc2lvbik7CiAKIAkJc2krKzsKIAl9CmRpZmYgLS1naXQgYS9uZXQvbDJ0cC9sMnRwX3Bw cC5jIGIvbmV0L2wydHAvbDJ0cF9wcHAuYwppbmRleCAxMjNiNmEyLi4yZjE5NDRjIDEwMDY0NAot LS0gYS9uZXQvbDJ0cC9sMnRwX3BwcC5jCisrKyBiL25ldC9sMnRwL2wydHBfcHBwLmMKQEAgLTE1 NTUsNyArMTU1NSw3IEBAIHN0YXRpYyB2b2lkIHBwcG9sMnRwX25leHRfdHVubmVsKHN0cnVjdCBu ZXQgKm5ldCwgc3RydWN0IHBwcG9sMnRwX3NlcV9kYXRhICpwZCkKIAogc3RhdGljIHZvaWQgcHBw b2wydHBfbmV4dF9zZXNzaW9uKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHBwcG9sMnRwX3NlcV9k YXRhICpwZCkKIHsKLQlwZC0+c2Vzc2lvbiA9IGwydHBfc2Vzc2lvbl9maW5kX250aChwZC0+dHVu bmVsLCBwZC0+c2Vzc2lvbl9pZHgpOworCXBkLT5zZXNzaW9uID0gbDJ0cF9zZXNzaW9uX2dldF9u dGgocGQtPnR1bm5lbCwgcGQtPnNlc3Npb25faWR4LCB0cnVlKTsKIAlwZC0+c2Vzc2lvbl9pZHgr KzsKIAogCWlmIChwZC0+c2Vzc2lvbiA9PSBOVUxMKSB7CkBAIC0xNjgyLDEwICsxNjgyLDE0IEBA IHN0YXRpYyBpbnQgcHBwb2wydHBfc2VxX3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp2 KQogCiAJLyogU2hvdyB0aGUgdHVubmVsIG9yIHNlc3Npb24gY29udGV4dC4KIAkgKi8KLQlpZiAo cGQtPnNlc3Npb24gPT0gTlVMTCkKKwlpZiAoIXBkLT5zZXNzaW9uKSB7CiAJCXBwcG9sMnRwX3Nl cV90dW5uZWxfc2hvdyhtLCBwZC0+dHVubmVsKTsKLQllbHNlCisJfSBlbHNlIHsKIAkJcHBwb2wy dHBfc2VxX3Nlc3Npb25fc2hvdyhtLCBwZC0+c2Vzc2lvbik7CisJCWlmIChwZC0+c2Vzc2lvbi0+ ZGVyZWYpCisJCQlwZC0+c2Vzc2lvbi0+ZGVyZWYocGQtPnNlc3Npb24pOworCQlsMnRwX3Nlc3Np b25fZGVjX3JlZmNvdW50KHBkLT5zZXNzaW9uKTsKKwl9CiAKIG91dDoKIAlyZXR1cm4gMDsKLS0g CjIuNC4xMQoKCkZyb20gOTM1ZjU3NGFmY2NlNzViZDdiY2Q0MjJhZmJjZGEzM2Y3MWFlNjZkMyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogR3VpbGxhdW1lIE5hdWx0IDxnLm5hdWx0QGFs cGhhbGluay5mcj4KRGF0ZTogTW9uLCAzIEFwciAyMDE3IDEzOjIzOjE1ICswMjAwClN1YmplY3Q6 IFtQQVRDSCAxNC80MV0gbDJ0cDogZml4IFBQUCBwc2V1ZG8td2lyZSBhdXRvLWxvYWRpbmcKClsg VXBzdHJlYW0gY29tbWl0IDI0OWVlODE5ZTI0YzE4MDkwOWY0M2MxMTczYzhlZjY3MjRkMjFmYWYg XQoKUFBQIHBzZXVkby13aXJlIHR5cGUgaXMgNyAoMTEgaXMgTDJUUF9QV1RZUEVfSVApLgoKRml4 ZXM6IGYxZjM5ZjkxMTAyNyAoImwydHA6IGF1dG8gbG9hZCB0eXBlIG1vZHVsZXMiKQpTaWduZWQt b2ZmLWJ5OiBHdWlsbGF1bWUgTmF1bHQgPGcubmF1bHRAYWxwaGFsaW5rLmZyPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2wydHAv bDJ0cF9wcHAuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxl dGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9sMnRwL2wydHBfcHBwLmMgYi9uZXQvbDJ0cC9sMnRw X3BwcC5jCmluZGV4IDJmMTk0NGMuLjc4MWQyMjIgMTAwNjQ0Ci0tLSBhL25ldC9sMnRwL2wydHBf cHBwLmMKKysrIGIvbmV0L2wydHAvbDJ0cF9wcHAuYwpAQCAtMTg0OCw0ICsxODQ4LDQgQEAgTU9E VUxFX0RFU0NSSVBUSU9OKCJQUFAgb3ZlciBMMlRQIG92ZXIgVURQIik7CiBNT0RVTEVfTElDRU5T RSgiR1BMIik7CiBNT0RVTEVfVkVSU0lPTihQUFBPTDJUUF9EUlZfVkVSU0lPTik7CiBNT0RVTEVf QUxJQVNfTkVUX1BGX1BST1RPKFBGX1BQUE9YLCBQWF9QUk9UT19PTDJUUCk7Ci1NT0RVTEVfQUxJ QVNfTDJUUF9QV1RZUEUoMTEpOworTU9EVUxFX0FMSUFTX0wyVFBfUFdUWVBFKDcpOwotLSAKMi40 LjExCgoKRnJvbSA2ZTMwZjE3YmUxYmNmODI2Yjk1NTg1NzdiOTY4Y2QyZmM2MmM3ZGFlIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGbG9yaWFuIExhcnlzY2ggPGZsQG42MjEuZGU+CkRh dGU6IE1vbiwgMyBBcHIgMjAxNyAxNjo0NjowOSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTUvNDFd IG5ldDogaXB2NDogZml4IG11bHRpcGF0aCBSVE1fR0VUUk9VVEUgYmVoYXZpb3Igd2hlbiBpaWYK IGlzIGdpdmVuCgpbIFVwc3RyZWFtIGNvbW1pdCBhODgwMTc5OWM2OTc1NjAxZmQ1OGFlNjJmNDg5 NjRjYWVjMmViODNmIF0KCmluZXRfcnRtX2dldHJvdXRlIHN5bnRoZXNpemVzIGEgc2tlbGV0YWwg SUNNUCBza2IsIHdoaWNoIGlzIHBhc3NlZCB0bwppcF9yb3V0ZV9pbnB1dCB3aGVuIGlpZiBpcyBn aXZlbi4gSWYgYSBtdWx0aXBhdGggcm91dGUgaXMgcHJlc2VudCBmb3IKdGhlIGRlc2lnbmF0ZWQg ZGVzdGluYXRpb24sIGlwX211bHRpcGF0aF9pY21wX2hhc2ggZW5kcyB1cCBiZWluZyBjYWxsZWQs CndoaWNoIHVzZXMgdGhlIHNvdXJjZS9kZXN0aW5hdGlvbiBhZGRyZXNzZXMgd2l0aGluIHRoZSBz a2IgdG8gY2FsY3VsYXRlCmEgaGFzaC4gSG93ZXZlciwgdGhvc2UgYXJlIG5vdCBzZXQgaW4gdGhl IHN5bnRoZXRpYyBza2IsIGNhdXNpbmcgaXQgdG8KcmV0dXJuIGFuIGFyYml0cmFyeSBhbmQgaW5j b3JyZWN0IHJlc3VsdC4KCkluc3RlYWQsIHVzZSBVRFAsIHdoaWNoIGdldHMgbm8gc3VjaCBzcGVj aWFsIHRyZWF0bWVudC4KClNpZ25lZC1vZmYtYnk6IEZsb3JpYW4gTGFyeXNjaCA8ZmxAbjYyMS5k ZT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIG5ldC9pcHY0L3JvdXRlLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24o KyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9yb3V0ZS5jIGIvbmV0L2lw djQvcm91dGUuYwppbmRleCA4OTc2ODg3Li42MjYzYWYyIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9y b3V0ZS5jCisrKyBiL25ldC9pcHY0L3JvdXRlLmMKQEAgLTI2MDgsNyArMjYwOCw3IEBAIHN0YXRp YyBpbnQgaW5ldF9ydG1fZ2V0cm91dGUoc3RydWN0IHNrX2J1ZmYgKmluX3NrYiwgc3RydWN0IG5s bXNnaGRyICpubGgpCiAJc2tiX3Jlc2V0X25ldHdvcmtfaGVhZGVyKHNrYik7CiAKIAkvKiBCdWdm aXg6IG5lZWQgdG8gZ2l2ZSBpcF9yb3V0ZV9pbnB1dCBlbm91Z2ggb2YgYW4gSVAgaGVhZGVyIHRv IG5vdCBnYWcuICovCi0JaXBfaGRyKHNrYiktPnByb3RvY29sID0gSVBQUk9UT19JQ01QOworCWlw X2hkcihza2IpLT5wcm90b2NvbCA9IElQUFJPVE9fVURQOwogCXNrYl9yZXNlcnZlKHNrYiwgTUFY X0hFQURFUiArIHNpemVvZihzdHJ1Y3QgaXBoZHIpKTsKIAogCXNyYyA9IHRiW1JUQV9TUkNdID8g bmxhX2dldF9pbl9hZGRyKHRiW1JUQV9TUkNdKSA6IDA7Ci0tIAoyLjQuMTEKCgpGcm9tIDJiNDI3 YmVjMjU1NzQzYzNlM2U0NDkwNWExZmUyOTBmYTM5YjA3M2MgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KRGF0ZTogVGh1LCA2IEFw ciAyMDE3IDEzOjEwOjUyICswODAwClN1YmplY3Q6IFtQQVRDSCAxNi80MV0gc2N0cDogbGlzdGVu IG9uIHRoZSBzb2NrIG9ubHkgd2hlbiBpdCdzIHN0YXRlIGlzCiBsaXN0ZW5pbmcgb3IgY2xvc2Vk CgpbIFVwc3RyZWFtIGNvbW1pdCAzNGIyNzg5ZjFkOWJmOGRjY2E5YjVjYjU1M2QwNzZjYTJjZDg5 OGVlIF0KCk5vdyBzY3RwIGRvZXNuJ3QgY2hlY2sgc29jaydzIHN0YXRlIGJlZm9yZSBsaXN0ZW5p bmcgb24gaXQuIEl0IGNvdWxkCmV2ZW4gY2F1c2UgY2hhbmdpbmcgYSBzb2NrIHdpdGggYW55IHN0 YXRlIHRvIGJlY29tZSBhIGxpc3RlbmluZyBzb2NrCndoZW4gZG9pbmcgc2N0cF9saXN0ZW4uCgpU aGlzIHBhdGNoIGlzIHRvIGZpeCBpdCBieSBjaGVja2luZyBzb2NrJ3Mgc3RhdGUgaW4gc2N0cF9s aXN0ZW4sIHNvCnRoYXQgaXQgd2lsbCBsaXN0ZW4gb24gdGhlIHNvY2sgd2l0aCByaWdodCBzdGF0 ZS4KClJlcG9ydGVkLWJ5OiBBbmRyZXkgS29ub3ZhbG92IDxhbmRyZXlrbnZsQGdvb2dsZS5jb20+ ClRlc3RlZC1ieTogQW5kcmV5IEtvbm92YWxvdiA8YW5kcmV5a252bEBnb29nbGUuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkFja2VkLWJ5OiBNYXJj ZWxvIFJpY2FyZG8gTGVpdG5lciA8bWFyY2Vsby5sZWl0bmVyQGdtYWlsLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY3Rw L3NvY2tldC5jIHwgMyArKysKIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKykKCmRpZmYg LS1naXQgYS9uZXQvc2N0cC9zb2NrZXQuYyBiL25ldC9zY3RwL3NvY2tldC5jCmluZGV4IGQwNGE4 YjYuLjY5MzJjZjMgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3NvY2tldC5jCisrKyBiL25ldC9zY3Rw L3NvY2tldC5jCkBAIC02ODYwLDYgKzY4NjAsOSBAQCBpbnQgc2N0cF9pbmV0X2xpc3RlbihzdHJ1 Y3Qgc29ja2V0ICpzb2NrLCBpbnQgYmFja2xvZykKIAlpZiAoc29jay0+c3RhdGUgIT0gU1NfVU5D T05ORUNURUQpCiAJCWdvdG8gb3V0OwogCisJaWYgKCFzY3RwX3NzdGF0ZShzaywgTElTVEVOSU5H KSAmJiAhc2N0cF9zc3RhdGUoc2ssIENMT1NFRCkpCisJCWdvdG8gb3V0OworCiAJLyogSWYgYmFj a2xvZyBpcyB6ZXJvLCBkaXNhYmxlIGxpc3RlbmluZy4gKi8KIAlpZiAoIWJhY2tsb2cpIHsKIAkJ aWYgKHNjdHBfc3N0YXRlKHNrLCBDTE9TRUQpKQotLSAKMi40LjExCgoKRnJvbSA3NDMyYzA0NzYz MDRkZjlmNDQyMzMyODA4MmU2MmI4NGFmODJkOGU4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFNhdCwgOCBBcHIg MjAxNyAwODowNzozMyAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTcvNDFdIHRjcDogY2xlYXIgc2F2 ZWRfc3luIGluIHRjcF9kaXNjb25uZWN0KCkKClsgVXBzdHJlYW0gY29tbWl0IDE3YzMwNjBiMTcw MWZjNjlkYWVkYjRjOTBiZTYzMjVkM2Q5ZmNhOGUgXQoKSW4gdGhlICh2ZXJ5IHVubGlrZWx5KSBj YXNlIGEgcGFzc2l2ZSBzb2NrZXQgYmVjb21lcyBhIGxpc3RlbmVyLAp3ZSBkbyBub3Qgd2FudCB0 byBkdXBsaWNhdGUgaXRzIHNhdmVkIFNZTiBoZWFkZXJzLgoKVGhpcyB3b3VsZCBsZWFkIHRvIGRv dWJsZSBmcmVlcywgdXNlIGFmdGVyIGZyZWUsIGFuZCBwbGVhc2UgaGFja2VycyBhbmQKdmFyaW91 cyBmdXp6ZXJzCgpUZXN0ZWQ6CiAgICAwIHNvY2tldCguLi4sIFNPQ0tfU1RSRUFNLCBJUFBST1RP X1RDUCkgPSAzCiAgICswIHNldHNvY2tvcHQoMywgSVBQUk9UT19UQ1AsIFRDUF9TQVZFX1NZTiwg WzFdLCA0KSA9IDAKICAgKzAgZmNudGwoMywgRl9TRVRGTCwgT19SRFdSfE9fTk9OQkxPQ0spID0g MAoKICAgKzAgYmluZCgzLCAuLi4sIC4uLikgPSAwCiAgICswIGxpc3RlbigzLCA1KSA9IDAKCiAg ICswIDwgUyAwOjAoMCkgd2luIDMyOTcyIDxtc3MgMTQ2MCxub3Asd3NjYWxlIDc+CiAgICswID4g Uy4gMDowKDApIGFjayAxIDwuLi4+CiAgKy4xIDwgLiAxOjEoMCkgYWNrIDEgd2luIDI1NwogICAr MCBhY2NlcHQoMywgLi4uLCAuLi4pID0gNAoKICAgKzAgY29ubmVjdCg0LCBBRl9VTlNQRUMsIC4u LikgPSAwCiAgICswIGNsb3NlKDMpID0gMAogICArMCBiaW5kKDQsIC4uLiwgLi4uKSA9IDAKICAg KzAgbGlzdGVuKDQsIDUpID0gMAoKICAgKzAgPCBTIDA6MCgwKSB3aW4gMzI5NzIgPG1zcyAxNDYw LG5vcCx3c2NhbGUgNz4KICAgKzAgPiBTLiAwOjAoMCkgYWNrIDEgPC4uLj4KICArLjEgPCAuIDE6 MSgwKSBhY2sgMSB3aW4gMjU3CgpGaXhlczogY2Q4YWU4NTI5OWQ1ICgidGNwOiBwcm92aWRlIFNZ TiBoZWFkZXJzIGZvciBwYXNzaXZlIGNvbm5lY3Rpb25zIikKU2lnbmVkLW9mZi1ieTogRXJpYyBE dW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvdGNwLmMgfCAxICsKIDEgZmls ZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcC5jIGIv bmV0L2lwdjQvdGNwLmMKaW5kZXggMGVmYjRjNy4uNTNmYTNhNCAxMDA2NDQKLS0tIGEvbmV0L2lw djQvdGNwLmMKKysrIGIvbmV0L2lwdjQvdGNwLmMKQEAgLTIzMDEsNiArMjMwMSw3IEBAIGludCB0 Y3BfZGlzY29ubmVjdChzdHJ1Y3Qgc29jayAqc2ssIGludCBmbGFncykKIAl0Y3BfaW5pdF9zZW5k X2hlYWQoc2spOwogCW1lbXNldCgmdHAtPnJ4X29wdCwgMCwgc2l6ZW9mKHRwLT5yeF9vcHQpKTsK IAlfX3NrX2RzdF9yZXNldChzayk7CisJdGNwX3NhdmVkX3N5bl9mcmVlKHRwKTsKIAogCVdBUk5f T04oaW5ldC0+aW5ldF9udW0gJiYgIWljc2stPmljc2tfYmluZF9oYXNoKTsKIAotLSAKMi40LjEx CgoKRnJvbSA2NGFmYzQyNmY5MWE2ZjJkMGJjZmIwYmEzMmNiNWNmMGMxMDI2YTY2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSYWJpbiBWaW5jZW50IDxyYWJpbnZAYXhpcy5jb20+CkRh dGU6IE1vbiwgMTAgQXByIDIwMTcgMDg6MzY6MzkgKzAyMDAKU3ViamVjdDogW1BBVENIIDE4LzQx XSBpcHY2OiBGaXggaWRldi0+YWRkcl9saXN0IGNvcnJ1cHRpb24KClsgVXBzdHJlYW0gY29tbWl0 IGEyZDZjYmIwNjcwZDU0ODA2ZjE4MTkyY2IwZGIyNjZiNGE2ZDI4NWEgXQoKYWRkcmNvbmZfaWZk b3duKCkgcmVtb3ZlcyBlbGVtZW50cyBmcm9tIHRoZSBpZGV2LT5hZGRyX2xpc3Qgd2l0aG91dApo b2xkaW5nIHRoZSBpZGV2LT5sb2NrLgoKSWYgdGhpcyBoYXBwZW5zIHdoaWxlIHRoZSBsb29wIGlu IF9faXB2Nl9kZXZfZ2V0X3NhZGRyKCkgaXMgaGFuZGxpbmcgdGhlCnNhbWUgZWxlbWVudCwgdGhh dCBmdW5jdGlvbiBlbmRzIHVwIGluIGFuIGluZmluaXRlIGxvb3A6CgogIE5NSSB3YXRjaGRvZzog QlVHOiBzb2Z0IGxvY2t1cCAtIENQVSMxIHN0dWNrIGZvciAyM3MhIFt0ZXN0OjE3MTldCiAgQ2Fs bCBUcmFjZToKICAgaXB2Nl9nZXRfc2FkZHJfZXZhbCsweDEzYy8weDNhMAogICBfX2lwdjZfZGV2 X2dldF9zYWRkcisweGU0LzB4MWYwCiAgIGlwdjZfZGV2X2dldF9zYWRkcisweDFiNC8weDIwNAog ICBpcDZfZHN0X2xvb2t1cF90YWlsKzB4Y2MvMHgyN2MKICAgaXA2X2RzdF9sb29rdXBfZmxvdysw eDM4LzB4ODAKICAgdWRwdjZfc2VuZG1zZysweDcwOC8weGJhOAogICBzb2NrX3NlbmRtc2crMHgx OC8weDMwCiAgIFN5U19zZW5kdG8rMHhiOC8weGY4CiAgIHN5c2NhbGxfY29tbW9uKzB4MzQvMHg1 OAoKRml4ZXM6IDZhOTIzOTM0YzMzIChSZXZlcnQgImlwdjY6IFJldmVydCBvcHRpb25hbCBhZGRy ZXNzIGZsdXNpbmcgb24gaWZkb3duLiIpClNpZ25lZC1vZmYtYnk6IFJhYmluIFZpbmNlbnQgPHJh YmludkBheGlzLmNvbT4KQWNrZWQtYnk6IERhdmlkIEFoZXJuIDxkc2FAY3VtdWx1c25ldHdvcmtz LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIG5ldC9pcHY2L2FkZHJjb25mLmMgfCAxMSArKysrKysrLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDcgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2 Ni9hZGRyY29uZi5jIGIvbmV0L2lwdjYvYWRkcmNvbmYuYwppbmRleCBhN2JjYzBhLi44YzRlZTRl IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9hZGRyY29uZi5jCisrKyBiL25ldC9pcHY2L2FkZHJjb25m LmMKQEAgLTM2MTgsMTQgKzM2MTgsMTkgQEAgc3RhdGljIGludCBhZGRyY29uZl9pZmRvd24oc3Ry dWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IGhvdykKIAlJTklUX0xJU1RfSEVBRCgmZGVsX2xpc3Qp OwogCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShpZmEsIHRtcCwgJmlkZXYtPmFkZHJfbGlzdCwg aWZfbGlzdCkgewogCQlzdHJ1Y3QgcnQ2X2luZm8gKnJ0ID0gTlVMTDsKKwkJYm9vbCBrZWVwOwog CiAJCWFkZHJjb25mX2RlbF9kYWRfd29yayhpZmEpOwogCisJCWtlZXAgPSBrZWVwX2FkZHIgJiYg KGlmYS0+ZmxhZ3MgJiBJRkFfRl9QRVJNQU5FTlQpICYmCisJCQkhYWRkcl9pc19sb2NhbCgmaWZh LT5hZGRyKTsKKwkJaWYgKCFrZWVwKQorCQkJbGlzdF9tb3ZlKCZpZmEtPmlmX2xpc3QsICZkZWxf bGlzdCk7CisKIAkJd3JpdGVfdW5sb2NrX2JoKCZpZGV2LT5sb2NrKTsKIAkJc3Bpbl9sb2NrX2Jo KCZpZmEtPmxvY2spOwogCi0JCWlmIChrZWVwX2FkZHIgJiYgKGlmYS0+ZmxhZ3MgJiBJRkFfRl9Q RVJNQU5FTlQpICYmCi0JCSAgICAhYWRkcl9pc19sb2NhbCgmaWZhLT5hZGRyKSkgeworCQlpZiAo a2VlcCkgewogCQkJLyogc2V0IHN0YXRlIHRvIHNraXAgdGhlIG5vdGlmaWVyIGJlbG93ICovCiAJ CQlzdGF0ZSA9IElORVQ2X0lGQUREUl9TVEFURV9ERUFEOwogCQkJaWZhLT5zdGF0ZSA9IDA7CkBA IC0zNjM3LDggKzM2NDIsNiBAQCBzdGF0aWMgaW50IGFkZHJjb25mX2lmZG93bihzdHJ1Y3QgbmV0 X2RldmljZSAqZGV2LCBpbnQgaG93KQogCQl9IGVsc2UgewogCQkJc3RhdGUgPSBpZmEtPnN0YXRl OwogCQkJaWZhLT5zdGF0ZSA9IElORVQ2X0lGQUREUl9TVEFURV9ERUFEOwotCi0JCQlsaXN0X21v dmUoJmlmYS0+aWZfbGlzdCwgJmRlbF9saXN0KTsKIAkJfQogCiAJCXNwaW5fdW5sb2NrX2JoKCZp ZmEtPmxvY2spOwotLSAKMi40LjExCgoKRnJvbSBiZTg3ZWZlMjBiMzlhNTM0ZWU1ZGRkYTVhNzNh NzMwOGI3ODRjYjJhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBXaWxsZW0gZGUgQnJ1 aWpuIDx3aWxsZW1iQGdvb2dsZS5jb20+CkRhdGU6IFdlZCwgMTIgQXByIDIwMTcgMTk6MjQ6MzUg LTA0MDAKU3ViamVjdDogW1BBVENIIDE5LzQxXSBuZXQtdGltZXN0YW1wOiBhdm9pZCB1c2UtYWZ0 ZXItZnJlZSBpbiBpcF9yZWN2X2Vycm9yCgpbIFVwc3RyZWFtIGNvbW1pdCAxODYyZDYyMDhkYjBh ZWNhOWM4YWNlNDQ5MTViMDhkNWFiMmNkNjY3IF0KClN5emthbGxlciByZXBvcnRlZCBhIHVzZS1h ZnRlci1mcmVlIGluIGlwX3JlY3ZfZXJyb3IgYXQgbGluZQoKICAgIGluZm8tPmlwaV9pZmluZGV4 ID0gc2tiLT5kZXYtPmlmaW5kZXg7CgpUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBvbiBkZXF1ZXVl IGZyb20gdGhlIGVycm9yIHF1ZXVlLCBhdCB3aGljaApwb2ludCB0aGUgZGV2aWNlIHBvaW50ZXIg bWF5IG5vIGxvbmdlciBiZSB2YWxpZC4KClNhdmUgaWZpbmRleCBvbiBlbnF1ZXVlIGluIF9fc2ti X2NvbXBsZXRlX3R4X3RpbWVzdGFtcCwgd2hlbiB0aGUKcG9pbnRlciBpcyB2YWxpZCBvciBOVUxM LiBTdG9yZSBpdCBpbiB0ZW1wb3Jhcnkgc3RvcmFnZSBza2ItPmNiLgoKSXQgaXMgc2FmZSB0byBy ZWZlcmVuY2Ugc2tiLT5kZXYgaGVyZSwgYXMgY2FsbGVkIGZyb20gZGV2aWNlIGRyaXZlcnMKb3Ig ZGV2X3F1ZXVlX3htaXQuIFRoZSBleGNlcHRpb24gaXMgd2hlbiBjYWxsZWQgZnJvbSB0Y3BfYWNr X3RzdGFtcDsKaW4gdGhhdCBjYXNlIGl0IGlzIE5VTEwgYW5kIGlmaW5kZXggaXMgc2V0IHRvIDAg KGludmFsaWQpLgoKRG8gbm90IHJldHVybiBhIHBrdGluZm8gY21zZyBpZiBpZmluZGV4IGlzIDAu IFRoaXMgbWFpbnRhaW5zIHRoZQpjdXJyZW50IGJlaGF2aW9yIG9mIG5vdCByZXR1cm5pbmcgYSBj bXNnIGlmIHNrYi0+ZGV2IHdhcyBOVUxMLgoKT24gZGVxdWV1ZSwgdGhlIGlwdjQgcGF0aCB3aWxs IGNhc3QgZnJvbSBzb2NrX2V4dGVycl9za2IgdG8KaW5fcGt0aW5mby4gQm90aCBoYXZlIGlmaW5k ZXggYXMgdGhlaXIgZmlyc3QgZWxlbWVudCwgc28gbm8gZXhwbGljaXQKY29udmVyc2lvbiBpcyBu ZWVkZWQuIFRoaXMgaXMgYnkgZGVzaWduLCBpbnRyb2R1Y2VkIGluIGNvbW1pdAowYjkyMmI3YTgy OWMgKCJuZXQ6IG9yaWdpbmFsIGluZ3Jlc3MgZGV2aWNlIGluZGV4IGluIFBLVElORk8iKS4gRm9y CmlwdjYgaXA2X2RhdGFncmFtX3N1cHBvcnRfY21zZyBjb252ZXJ0cyB0byBpbjZfcGt0aW5mby4K CkZpeGVzOiA4MjlhZTlkNjExNjUgKCJuZXQtdGltZXN0YW1wOiBhbGxvdyByZWFkaW5nIHJlY3Yg Y21zZyBvbiBlcnJxdWV1ZSB3aXRoIG9yaWdpbiB0c3RhbXAiKQpSZXBvcnRlZC1ieTogQW5kcmV5 IEtvbm92YWxvdiA8YW5kcmV5a252bEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBXaWxsZW0g ZGUgQnJ1aWpuIDx3aWxsZW1iQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9za2J1ZmYuYyAgICAgIHwg IDEgKwogbmV0L2lwdjQvaXBfc29ja2dsdWUuYyB8ICA5ICsrKystLS0tLQogbmV0L2lwdjYvZGF0 YWdyYW0uYyAgICB8IDEwICstLS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgNiBpbnNlcnRpb25z KCspLCAxNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9za2J1ZmYuYyBiL25l dC9jb3JlL3NrYnVmZi5jCmluZGV4IGFhM2ExMzMuLjM5Y2EzZTYgMTAwNjQ0Ci0tLSBhL25ldC9j b3JlL3NrYnVmZi5jCisrKyBiL25ldC9jb3JlL3NrYnVmZi5jCkBAIC0zNzg5LDYgKzM3ODksNyBA QCBzdGF0aWMgdm9pZCBfX3NrYl9jb21wbGV0ZV90eF90aW1lc3RhbXAoc3RydWN0IHNrX2J1ZmYg KnNrYiwKIAlzZXJyLT5lZS5lZV9lcnJubyA9IEVOT01TRzsKIAlzZXJyLT5lZS5lZV9vcmlnaW4g PSBTT19FRV9PUklHSU5fVElNRVNUQU1QSU5HOwogCXNlcnItPmVlLmVlX2luZm8gPSB0c3R5cGU7 CisJc2Vyci0+aGVhZGVyLmg0LmlpZiA9IHNrYi0+ZGV2ID8gc2tiLT5kZXYtPmlmaW5kZXggOiAw OwogCWlmIChzay0+c2tfdHNmbGFncyAmIFNPRl9USU1FU1RBTVBJTkdfT1BUX0lEKSB7CiAJCXNl cnItPmVlLmVlX2RhdGEgPSBza2Jfc2hpbmZvKHNrYiktPnRza2V5OwogCQlpZiAoc2stPnNrX3By b3RvY29sID09IElQUFJPVE9fVENQICYmCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pcF9zb2NrZ2x1 ZS5jIGIvbmV0L2lwdjQvaXBfc29ja2dsdWUuYwppbmRleCBmYzRiZjRkLi5mY2Y1M2EzIDEwMDY0 NAotLS0gYS9uZXQvaXB2NC9pcF9zb2NrZ2x1ZS5jCisrKyBiL25ldC9pcHY0L2lwX3NvY2tnbHVl LmMKQEAgLTQ4OCwxNiArNDg4LDE1IEBAIHN0YXRpYyBib29sIGlwdjRfZGF0YWdyYW1fc3VwcG9y dF9jbXNnKGNvbnN0IHN0cnVjdCBzb2NrICpzaywKIAkJcmV0dXJuIGZhbHNlOwogCiAJLyogU3Vw cG9ydCBJUF9QS1RJTkZPIG9uIHRzdGFtcCBwYWNrZXRzIGlmIHJlcXVlc3RlZCwgdG8gY29ycmVs YXRlCi0JICogdGltZXN0YW1wIHdpdGggZWdyZXNzIGRldi4gTm90IHBvc3NpYmxlIGZvciBwYWNr ZXRzIHdpdGhvdXQgZGV2CisJICogdGltZXN0YW1wIHdpdGggZWdyZXNzIGRldi4gTm90IHBvc3Np YmxlIGZvciBwYWNrZXRzIHdpdGhvdXQgaWlmCiAJICogb3Igd2l0aG91dCBwYXlsb2FkIChTT0Zf VElNRVNUQU1QSU5HX09QVF9UU09OTFkpLgogCSAqLwotCWlmICgoIShzay0+c2tfdHNmbGFncyAm IFNPRl9USU1FU1RBTVBJTkdfT1BUX0NNU0cpKSB8fAotCSAgICAoIXNrYi0+ZGV2KSkKKwlpbmZv ID0gUEtUSU5GT19TS0JfQ0Ioc2tiKTsKKwlpZiAoIShzay0+c2tfdHNmbGFncyAmIFNPRl9USU1F U1RBTVBJTkdfT1BUX0NNU0cpIHx8CisJICAgICFpbmZvLT5pcGlfaWZpbmRleCkKIAkJcmV0dXJu IGZhbHNlOwogCi0JaW5mbyA9IFBLVElORk9fU0tCX0NCKHNrYik7CiAJaW5mby0+aXBpX3NwZWNf ZHN0LnNfYWRkciA9IGlwX2hkcihza2IpLT5zYWRkcjsKLQlpbmZvLT5pcGlfaWZpbmRleCA9IHNr Yi0+ZGV2LT5pZmluZGV4OwogCXJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9uZXQvaXB2 Ni9kYXRhZ3JhbS5jIGIvbmV0L2lwdjYvZGF0YWdyYW0uYwppbmRleCBlZWMyN2Y4Li5lMDExMTIy IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9kYXRhZ3JhbS5jCisrKyBiL25ldC9pcHY2L2RhdGFncmFt LmMKQEAgLTQwNSw5ICs0MDUsNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXB2Nl9kYXRhZ3JhbV9z dXBwb3J0X2FkZHIoc3RydWN0IHNvY2tfZXh0ZXJyX3NrYiAqc2VycikKICAqIEF0IG9uZSBwb2lu dCwgZXhjbHVkaW5nIGxvY2FsIGVycm9ycyB3YXMgYSBxdWljayB0ZXN0IHRvIGlkZW50aWZ5IGlj bXAvaWNtcDYKICAqIGVycm9ycy4gVGhpcyBpcyBubyBsb25nZXIgdHJ1ZSwgYnV0IHRoZSB0ZXN0 IHJlbWFpbmVkLCBzbyB0aGUgdjYgc3RhY2ssCiAgKiB1bmxpa2UgdjQsIGFsc28gaG9ub3JzIGNt c2cgcmVxdWVzdHMgb24gYWxsIHdpZmkgYW5kIHRpbWVzdGFtcCBlcnJvcnMuCi0gKgotICogVGlt ZXN0YW1wIGNvZGUgcGF0aHMgZG8gbm90IGluaXRpYWxpemUgdGhlIGZpZWxkcyBleHBlY3RlZCBi eSBjbXNnOgotICogdGhlIFBLVElORk8gZmllbGRzIGluIHNrYi0+Y2JbXS4gRmlsbCB0aG9zZSBp biBoZXJlLgogICovCiBzdGF0aWMgYm9vbCBpcDZfZGF0YWdyYW1fc3VwcG9ydF9jbXNnKHN0cnVj dCBza19idWZmICpza2IsCiAJCQkJICAgICAgc3RydWN0IHNvY2tfZXh0ZXJyX3NrYiAqc2VycikK QEAgLTQxOSwxNCArNDE2LDkgQEAgc3RhdGljIGJvb2wgaXA2X2RhdGFncmFtX3N1cHBvcnRfY21z ZyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCWlmIChzZXJyLT5lZS5lZV9vcmlnaW4gPT0gU09fRUVf T1JJR0lOX0xPQ0FMKQogCQlyZXR1cm4gZmFsc2U7CiAKLQlpZiAoIXNrYi0+ZGV2KQorCWlmICgh SVA2Q0Ioc2tiKS0+aWlmKQogCQlyZXR1cm4gZmFsc2U7CiAKLQlpZiAoc2tiLT5wcm90b2NvbCA9 PSBodG9ucyhFVEhfUF9JUFY2KSkKLQkJSVA2Q0Ioc2tiKS0+aWlmID0gc2tiLT5kZXYtPmlmaW5k ZXg7Ci0JZWxzZQotCQlQS1RJTkZPX1NLQl9DQihza2IpLT5pcGlfaWZpbmRleCA9IHNrYi0+ZGV2 LT5pZmluZGV4OwotCiAJcmV0dXJuIHRydWU7CiB9CiAKLS0gCjIuNC4xMQoKCkZyb20gMWMyNzdk YmY1YWNiNDlkZTkyYThmYjZiN2NiMWE5NmNhOTFlNmM5NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRGF2aWQgQWhlcm4gPGRzYUBjdW11bHVzbmV0d29ya3MuY29tPgpEYXRlOiBUaHUs IDEzIEFwciAyMDE3IDEwOjU3OjE1IC0wNjAwClN1YmplY3Q6IFtQQVRDSCAyMC80MV0gbmV0OiB2 cmY6IEZpeCBzZXR0aW5nIE5MTV9GX0VYQ0wgZmxhZyB3aGVuIGFkZGluZwogbDNtZGV2IHJ1bGUK ClsgVXBzdHJlYW0gY29tbWl0IDQyNmM4N2NhYTJiNDU3OGI0M2NkM2Y2ODlmMDJjNjViNzQzYjI1 NTkgXQoKT25seSBuZWVkIDEgbDNtZGV2IEZJQiBydWxlLiBGaXggc2V0dGluZyBOTE1fRl9FWENM IGluIHRoZSBubG1zZ2hkci4KCkZpeGVzOiAxYWE2YzRmNmI4Y2Q4ICgibmV0OiB2cmY6IEFkZCBs M21kZXYgcnVsZXMgb24gZmlyc3QgZGV2aWNlIGNyZWF0ZSIpClNpZ25lZC1vZmYtYnk6IERhdmlk IEFoZXJuIDxkc2FAY3VtdWx1c25ldHdvcmtzLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3ZyZi5jIHwgMiAr LQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvdnJmLmMgYi9kcml2ZXJzL25ldC92cmYuYwppbmRleCA5MjFmZWYy Li5mMmZkNTJlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC92cmYuYworKysgYi9kcml2ZXJzL25l dC92cmYuYwpAQCAtMTEyNiw3ICsxMTI2LDcgQEAgc3RhdGljIGludCB2cmZfZmliX3J1bGUoY29u c3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgX191OCBmYW1pbHksIGJvb2wgYWRkX2l0KQogCQln b3RvIG5sYV9wdXRfZmFpbHVyZTsKIAogCS8qIHJ1bGUgb25seSBuZWVkcyB0byBhcHBlYXIgb25j ZSAqLwotCW5saC0+bmxtc2dfZmxhZ3MgJj0gTkxNX0ZfRVhDTDsKKwlubGgtPm5sbXNnX2ZsYWdz IHw9IE5MTV9GX0VYQ0w7CiAKIAlmcmggPSBubG1zZ19kYXRhKG5saCk7CiAJbWVtc2V0KGZyaCwg MCwgc2l6ZW9mKCpmcmgpKTsKLS0gCjIuNC4xMQoKCkZyb20gOGI0YzU4NWIzZWVhYjZkZWFhYTdl OWU0ZjM2ZThiYzQ1YThjMDdlYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU2VyZ2Vp IFNodHlseW92IDxzZXJnZWkuc2h0eWx5b3ZAY29nZW50ZW1iZWRkZWQuY29tPgpEYXRlOiBNb24s IDE3IEFwciAyMDE3IDE1OjU1OjIyICswMzAwClN1YmplY3Q6IFtQQVRDSCAyMS80MV0gc2hfZXRo OiB1bm1hcCBETUEgYnVmZmVycyB3aGVuIGZyZWVpbmcgcmluZ3MKClsgVXBzdHJlYW0gY29tbWl0 IDFkZWJkYzhmOWViZDA3ZGFmMTQwZTQxN2IzODQxNTk2OTExZTAwNjYgXQoKVGhlIERNQSBBUEkg ZGVidWdnaW5nICh3aGVuIGVuYWJsZWQpIGNhdXNlczoKCldBUk5JTkc6IENQVTogMCBQSUQ6IDE0 NDUgYXQgbGliL2RtYS1kZWJ1Zy5jOjUxOSBhZGRfZG1hX2VudHJ5KzB4ZTAvMHgxMmMKRE1BLUFQ STogZXhjZWVkZWQgNyBvdmVybGFwcGluZyBtYXBwaW5ncyBvZiBjYWNoZWxpbmUgMHgwMWIyOTc0 ZAoKdG8gYmUgIHByaW50ZWQgYWZ0ZXIgcmVwZWF0ZWQgaW5pdGlhbGl6YXRpb24gb2YgdGhlIEV0 aGVyIGRldmljZSwgZS5nLgpzdXNwZW5kL3Jlc3VtZSBvciAnaWZjb25maWcnIHVwL2Rvd24uIFRo aXMgaXMgYmVjYXVzZSBETUEgYnVmZmVycyBtYXBwZWQKdXNpbmcgZG1hX21hcF9zaW5nbGUoKSBp biBzaF9ldGhfcmluZ19mb3JtYXQoKSBhbmQgc2hfZXRoX3N0YXJ0X3htaXQoKSBhcmUKbmV2ZXIg dW5tYXBwZWQuIFJlc29sdmUgdGhpcyBwcm9ibGVtIGJ5IHVubWFwcGluZyB0aGUgYnVmZmVycyB3 aGVuIGZyZWVpbmcKdGhlIGRlc2NyaXB0b3IgIHJpbmdzOyAgaW4gb3JkZXIgIHRvIGRvIGl0IHJp Z2h0LCB3ZSdkIGhhdmUgdG8gYWRkIGFuIGV4dHJhCnBhcmFtZXRlciB0byBzaF9ldGhfdHhmcmVl KCkgKHdlIHJlbmFtZSB0aGlzIGZ1bmN0aW9uIHRvIHNoX2V0aF90eF9mcmVlKCksCndoaWxlIGF0 IGl0KS4KCkJhc2VkIG9uIHRoZSBjb21taXQgYTQ3YjcwZWE4NmJkICgicmF2YjogdW5tYXAgZGVz Y3JpcHRvcnMgd2hlbiBmcmVlaW5nCnJpbmdzIikuCgpTaWduZWQtb2ZmLWJ5OiBTZXJnZWkgU2h0 eWx5b3YgPHNlcmdlaS5zaHR5bHlvdkBjb2dlbnRlbWJlZGRlZC5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9l dGhlcm5ldC9yZW5lc2FzL3NoX2V0aC5jIHwgMTIyICsrKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2NyBpbnNlcnRpb25zKCspLCA1NSBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9yZW5lc2FzL3NoX2V0aC5jIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVuZXNhcy9zaF9ldGguYwppbmRleCBmNzI5YTZiLi4xYTAx MmIzIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9yZW5lc2FzL3NoX2V0aC5jCisr KyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlbmVzYXMvc2hfZXRoLmMKQEAgLTEwNjEsMTIgKzEw NjEsNzAgQEAgc3RhdGljIHN0cnVjdCBtZGlvYmJfb3BzIGJiX29wcyA9IHsKIAkuZ2V0X21kaW9f ZGF0YSA9IHNoX2dldF9tZGlvLAogfTsKIAorLyogZnJlZSBUeCBza2IgZnVuY3Rpb24gKi8KK3N0 YXRpYyBpbnQgc2hfZXRoX3R4X2ZyZWUoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIGJvb2wgc2Vu dF9vbmx5KQoreworCXN0cnVjdCBzaF9ldGhfcHJpdmF0ZSAqbWRwID0gbmV0ZGV2X3ByaXYobmRl dik7CisJc3RydWN0IHNoX2V0aF90eGRlc2MgKnR4ZGVzYzsKKwlpbnQgZnJlZV9udW0gPSAwOwor CWludCBlbnRyeTsKKwlib29sIHNlbnQ7CisKKwlmb3IgKDsgbWRwLT5jdXJfdHggLSBtZHAtPmRp cnR5X3R4ID4gMDsgbWRwLT5kaXJ0eV90eCsrKSB7CisJCWVudHJ5ID0gbWRwLT5kaXJ0eV90eCAl IG1kcC0+bnVtX3R4X3Jpbmc7CisJCXR4ZGVzYyA9ICZtZHAtPnR4X3JpbmdbZW50cnldOworCQlz ZW50ID0gISh0eGRlc2MtPnN0YXR1cyAmIGNwdV90b19sZTMyKFREX1RBQ1QpKTsKKwkJaWYgKHNl bnRfb25seSAmJiAhc2VudCkKKwkJCWJyZWFrOworCQkvKiBUQUNUIGJpdCBtdXN0IGJlIGNoZWNr ZWQgYmVmb3JlIGFsbCB0aGUgZm9sbG93aW5nIHJlYWRzICovCisJCWRtYV9ybWIoKTsKKwkJbmV0 aWZfaW5mbyhtZHAsIHR4X2RvbmUsIG5kZXYsCisJCQkgICAidHggZW50cnkgJWQgc3RhdHVzIDB4 JTA4eFxuIiwKKwkJCSAgIGVudHJ5LCBsZTMyX3RvX2NwdSh0eGRlc2MtPnN0YXR1cykpOworCQkv KiBGcmVlIHRoZSBvcmlnaW5hbCBza2IuICovCisJCWlmIChtZHAtPnR4X3NrYnVmZltlbnRyeV0p IHsKKwkJCWRtYV91bm1hcF9zaW5nbGUoJm5kZXYtPmRldiwgbGUzMl90b19jcHUodHhkZXNjLT5h ZGRyKSwKKwkJCQkJIGxlMzJfdG9fY3B1KHR4ZGVzYy0+bGVuKSA+PiAxNiwKKwkJCQkJIERNQV9U T19ERVZJQ0UpOworCQkJZGV2X2tmcmVlX3NrYl9pcnEobWRwLT50eF9za2J1ZmZbZW50cnldKTsK KwkJCW1kcC0+dHhfc2tidWZmW2VudHJ5XSA9IE5VTEw7CisJCQlmcmVlX251bSsrOworCQl9CisJ CXR4ZGVzYy0+c3RhdHVzID0gY3B1X3RvX2xlMzIoVERfVEZQKTsKKwkJaWYgKGVudHJ5ID49IG1k cC0+bnVtX3R4X3JpbmcgLSAxKQorCQkJdHhkZXNjLT5zdGF0dXMgfD0gY3B1X3RvX2xlMzIoVERf VERMRSk7CisKKwkJaWYgKHNlbnQpIHsKKwkJCW5kZXYtPnN0YXRzLnR4X3BhY2tldHMrKzsKKwkJ CW5kZXYtPnN0YXRzLnR4X2J5dGVzICs9IGxlMzJfdG9fY3B1KHR4ZGVzYy0+bGVuKSA+PiAxNjsK KwkJfQorCX0KKwlyZXR1cm4gZnJlZV9udW07Cit9CisKIC8qIGZyZWUgc2tiIGFuZCBkZXNjcmlw dG9yIGJ1ZmZlciAqLwogc3RhdGljIHZvaWQgc2hfZXRoX3JpbmdfZnJlZShzdHJ1Y3QgbmV0X2Rl dmljZSAqbmRldikKIHsKIAlzdHJ1Y3Qgc2hfZXRoX3ByaXZhdGUgKm1kcCA9IG5ldGRldl9wcml2 KG5kZXYpOwogCWludCByaW5nc2l6ZSwgaTsKIAorCWlmIChtZHAtPnJ4X3JpbmcpIHsKKwkJZm9y IChpID0gMDsgaSA8IG1kcC0+bnVtX3J4X3Jpbmc7IGkrKykgeworCQkJaWYgKG1kcC0+cnhfc2ti dWZmW2ldKSB7CisJCQkJc3RydWN0IHNoX2V0aF9yeGRlc2MgKnJ4ZGVzYyA9ICZtZHAtPnJ4X3Jp bmdbaV07CisKKwkJCQlkbWFfdW5tYXBfc2luZ2xlKCZuZGV2LT5kZXYsCisJCQkJCQkgbGUzMl90 b19jcHUocnhkZXNjLT5hZGRyKSwKKwkJCQkJCSBBTElHTihtZHAtPnJ4X2J1Zl9zeiwgMzIpLAor CQkJCQkJIERNQV9GUk9NX0RFVklDRSk7CisJCQl9CisJCX0KKwkJcmluZ3NpemUgPSBzaXplb2Yo c3RydWN0IHNoX2V0aF9yeGRlc2MpICogbWRwLT5udW1fcnhfcmluZzsKKwkJZG1hX2ZyZWVfY29o ZXJlbnQoTlVMTCwgcmluZ3NpemUsIG1kcC0+cnhfcmluZywKKwkJCQkgIG1kcC0+cnhfZGVzY19k bWEpOworCQltZHAtPnJ4X3JpbmcgPSBOVUxMOworCX0KKwogCS8qIEZyZWUgUnggc2tiIHJpbmdi dWZmZXIgKi8KIAlpZiAobWRwLT5yeF9za2J1ZmYpIHsKIAkJZm9yIChpID0gMDsgaSA8IG1kcC0+ bnVtX3J4X3Jpbmc7IGkrKykKQEAgLTEwNzUsMjcgKzExMzMsMTggQEAgc3RhdGljIHZvaWQgc2hf ZXRoX3JpbmdfZnJlZShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldikKIAlrZnJlZShtZHAtPnJ4X3Nr YnVmZik7CiAJbWRwLT5yeF9za2J1ZmYgPSBOVUxMOwogCi0JLyogRnJlZSBUeCBza2IgcmluZ2J1 ZmZlciAqLwotCWlmIChtZHAtPnR4X3NrYnVmZikgewotCQlmb3IgKGkgPSAwOyBpIDwgbWRwLT5u dW1fdHhfcmluZzsgaSsrKQotCQkJZGV2X2tmcmVlX3NrYihtZHAtPnR4X3NrYnVmZltpXSk7Ci0J fQotCWtmcmVlKG1kcC0+dHhfc2tidWZmKTsKLQltZHAtPnR4X3NrYnVmZiA9IE5VTEw7Ci0KLQlp ZiAobWRwLT5yeF9yaW5nKSB7Ci0JCXJpbmdzaXplID0gc2l6ZW9mKHN0cnVjdCBzaF9ldGhfcnhk ZXNjKSAqIG1kcC0+bnVtX3J4X3Jpbmc7Ci0JCWRtYV9mcmVlX2NvaGVyZW50KE5VTEwsIHJpbmdz aXplLCBtZHAtPnJ4X3JpbmcsCi0JCQkJICBtZHAtPnJ4X2Rlc2NfZG1hKTsKLQkJbWRwLT5yeF9y aW5nID0gTlVMTDsKLQl9Ci0KIAlpZiAobWRwLT50eF9yaW5nKSB7CisJCXNoX2V0aF90eF9mcmVl KG5kZXYsIGZhbHNlKTsKKwogCQlyaW5nc2l6ZSA9IHNpemVvZihzdHJ1Y3Qgc2hfZXRoX3R4ZGVz YykgKiBtZHAtPm51bV90eF9yaW5nOwogCQlkbWFfZnJlZV9jb2hlcmVudChOVUxMLCByaW5nc2l6 ZSwgbWRwLT50eF9yaW5nLAogCQkJCSAgbWRwLT50eF9kZXNjX2RtYSk7CiAJCW1kcC0+dHhfcmlu ZyA9IE5VTEw7CiAJfQorCisJLyogRnJlZSBUeCBza2IgcmluZ2J1ZmZlciAqLworCWtmcmVlKG1k cC0+dHhfc2tidWZmKTsKKwltZHAtPnR4X3NrYnVmZiA9IE5VTEw7CiB9CiAKIC8qIGZvcm1hdCBz a2IgYW5kIGRlc2NyaXB0b3IgYnVmZmVyICovCkBAIC0xMzQzLDQzICsxMzkyLDYgQEAgc3RhdGlj IHZvaWQgc2hfZXRoX2Rldl9leGl0KHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KQogCXVwZGF0ZV9t YWNfYWRkcmVzcyhuZGV2KTsKIH0KIAotLyogZnJlZSBUeCBza2IgZnVuY3Rpb24gKi8KLXN0YXRp YyBpbnQgc2hfZXRoX3R4ZnJlZShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldikKLXsKLQlzdHJ1Y3Qg c2hfZXRoX3ByaXZhdGUgKm1kcCA9IG5ldGRldl9wcml2KG5kZXYpOwotCXN0cnVjdCBzaF9ldGhf dHhkZXNjICp0eGRlc2M7Ci0JaW50IGZyZWVfbnVtID0gMDsKLQlpbnQgZW50cnk7Ci0KLQlmb3Ig KDsgbWRwLT5jdXJfdHggLSBtZHAtPmRpcnR5X3R4ID4gMDsgbWRwLT5kaXJ0eV90eCsrKSB7Ci0J CWVudHJ5ID0gbWRwLT5kaXJ0eV90eCAlIG1kcC0+bnVtX3R4X3Jpbmc7Ci0JCXR4ZGVzYyA9ICZt ZHAtPnR4X3JpbmdbZW50cnldOwotCQlpZiAodHhkZXNjLT5zdGF0dXMgJiBjcHVfdG9fbGUzMihU RF9UQUNUKSkKLQkJCWJyZWFrOwotCQkvKiBUQUNUIGJpdCBtdXN0IGJlIGNoZWNrZWQgYmVmb3Jl IGFsbCB0aGUgZm9sbG93aW5nIHJlYWRzICovCi0JCWRtYV9ybWIoKTsKLQkJbmV0aWZfaW5mbyht ZHAsIHR4X2RvbmUsIG5kZXYsCi0JCQkgICAidHggZW50cnkgJWQgc3RhdHVzIDB4JTA4eFxuIiwK LQkJCSAgIGVudHJ5LCBsZTMyX3RvX2NwdSh0eGRlc2MtPnN0YXR1cykpOwotCQkvKiBGcmVlIHRo ZSBvcmlnaW5hbCBza2IuICovCi0JCWlmIChtZHAtPnR4X3NrYnVmZltlbnRyeV0pIHsKLQkJCWRt YV91bm1hcF9zaW5nbGUoJm5kZXYtPmRldiwgbGUzMl90b19jcHUodHhkZXNjLT5hZGRyKSwKLQkJ CQkJIGxlMzJfdG9fY3B1KHR4ZGVzYy0+bGVuKSA+PiAxNiwKLQkJCQkJIERNQV9UT19ERVZJQ0Up OwotCQkJZGV2X2tmcmVlX3NrYl9pcnEobWRwLT50eF9za2J1ZmZbZW50cnldKTsKLQkJCW1kcC0+ dHhfc2tidWZmW2VudHJ5XSA9IE5VTEw7Ci0JCQlmcmVlX251bSsrOwotCQl9Ci0JCXR4ZGVzYy0+ c3RhdHVzID0gY3B1X3RvX2xlMzIoVERfVEZQKTsKLQkJaWYgKGVudHJ5ID49IG1kcC0+bnVtX3R4 X3JpbmcgLSAxKQotCQkJdHhkZXNjLT5zdGF0dXMgfD0gY3B1X3RvX2xlMzIoVERfVERMRSk7Ci0K LQkJbmRldi0+c3RhdHMudHhfcGFja2V0cysrOwotCQluZGV2LT5zdGF0cy50eF9ieXRlcyArPSBs ZTMyX3RvX2NwdSh0eGRlc2MtPmxlbikgPj4gMTY7Ci0JfQotCXJldHVybiBmcmVlX251bTsKLX0K LQogLyogUGFja2V0IHJlY2VpdmUgZnVuY3Rpb24gKi8KIHN0YXRpYyBpbnQgc2hfZXRoX3J4KHN0 cnVjdCBuZXRfZGV2aWNlICpuZGV2LCB1MzIgaW50cl9zdGF0dXMsIGludCAqcXVvdGEpCiB7CkBA IC0xNjIyLDcgKzE2MzQsNyBAQCBzdGF0aWMgdm9pZCBzaF9ldGhfZXJyb3Ioc3RydWN0IG5ldF9k ZXZpY2UgKm5kZXYsIHUzMiBpbnRyX3N0YXR1cykKIAkJCSAgIGludHJfc3RhdHVzLCBtZHAtPmN1 cl90eCwgbWRwLT5kaXJ0eV90eCwKIAkJCSAgICh1MzIpbmRldi0+c3RhdGUsIGVkdHJyKTsKIAkJ LyogZGlydHkgYnVmZmVyIGZyZWUgKi8KLQkJc2hfZXRoX3R4ZnJlZShuZGV2KTsKKwkJc2hfZXRo X3R4X2ZyZWUobmRldiwgdHJ1ZSk7CiAKIAkJLyogU0g3NzEyIEJVRyAqLwogCQlpZiAoZWR0cnIg XiBzaF9ldGhfZ2V0X2VkdHJyX3RybnMobWRwKSkgewpAQCAtMTY4MSw3ICsxNjkzLDcgQEAgc3Rh dGljIGlycXJldHVybl90IHNoX2V0aF9pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqbmV0ZGV2KQog CQkvKiBDbGVhciBUeCBpbnRlcnJ1cHRzICovCiAJCXNoX2V0aF93cml0ZShuZGV2LCBpbnRyX3N0 YXR1cyAmIGNkLT50eF9jaGVjaywgRUVTUik7CiAKLQkJc2hfZXRoX3R4ZnJlZShuZGV2KTsKKwkJ c2hfZXRoX3R4X2ZyZWUobmRldiwgdHJ1ZSk7CiAJCW5ldGlmX3dha2VfcXVldWUobmRldik7CiAJ fQogCkBAIC0yMzA5LDcgKzIzMjEsNyBAQCBzdGF0aWMgaW50IHNoX2V0aF9zdGFydF94bWl0KHN0 cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KQogCiAJc3Bpbl9sb2Nr X2lycXNhdmUoJm1kcC0+bG9jaywgZmxhZ3MpOwogCWlmICgobWRwLT5jdXJfdHggLSBtZHAtPmRp cnR5X3R4KSA+PSAobWRwLT5udW1fdHhfcmluZyAtIDQpKSB7Ci0JCWlmICghc2hfZXRoX3R4ZnJl ZShuZGV2KSkgeworCQlpZiAoIXNoX2V0aF90eF9mcmVlKG5kZXYsIHRydWUpKSB7CiAJCQluZXRp Zl93YXJuKG1kcCwgdHhfcXVldWVkLCBuZGV2LCAiVHhGRCBleGhhdXN0ZWQuXG4iKTsKIAkJCW5l dGlmX3N0b3BfcXVldWUobmRldik7CiAJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZtZHAtPmxv Y2ssIGZsYWdzKTsKLS0gCjIuNC4xMQoKCkZyb20gNGU2Zjk4NTc3ODgyODNhMTM4NDAyZWFiYTc2 NTY2M2Q3OGEyODY4YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGF2aWQgTGVicnVu IDxkYXZpZC5sZWJydW5AdWNsb3V2YWluLmJlPgpEYXRlOiBUdWUsIDE4IEFwciAyMDE3IDE3OjU5 OjQ5ICswMjAwClN1YmplY3Q6IFtQQVRDSCAyMi80MV0gaXB2Njogc3I6IGZpeCBvdXQtb2YtYm91 bmRzIGFjY2VzcyBpbiBTUkggdmFsaWRhdGlvbgoKWyBVcHN0cmVhbSBjb21taXQgMmYzYmI2NDI0 N2I1YjA4M2QwNWNjZWNhZDljMmUxMzliYmZkYzI5NCBdCgpUaGlzIHBhdGNoIGZpeGVzIGFuIG91 dC1vZi1ib3VuZHMgYWNjZXNzIGluIHNlZzZfdmFsaWRhdGVfc3JoKCkgd2hlbiB0aGUKdHJhaWxp bmcgZGF0YSBpcyBsZXNzIHRoYW4gc2l6ZW9mKHN0cnVjdCBzcjZfdGx2KS4KClJlcG9ydGVkLWJ5 OiBBbmRyZXkgS29ub3ZhbG92IDxhbmRyZXlrbnZsQGdvb2dsZS5jb20+CkNjOiBBbmRyZXkgS29u b3ZhbG92IDxhbmRyZXlrbnZsQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIExlYnJ1 biA8ZGF2aWQubGVicnVuQHVjbG91dmFpbi5iZT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY2L3NlZzYuYyB8IDMgKysrCiAx IGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvc2Vn Ni5jIGIvbmV0L2lwdjYvc2VnNi5jCmluZGV4IGE4NTVlYjMuLjVmNDRmZmUgMTAwNjQ0Ci0tLSBh L25ldC9pcHY2L3NlZzYuYworKysgYi9uZXQvaXB2Ni9zZWc2LmMKQEAgLTUzLDYgKzUzLDkgQEAg Ym9vbCBzZWc2X3ZhbGlkYXRlX3NyaChzdHJ1Y3QgaXB2Nl9zcl9oZHIgKnNyaCwgaW50IGxlbikK IAkJc3RydWN0IHNyNl90bHYgKnRsdjsKIAkJdW5zaWduZWQgaW50IHRsdl9sZW47CiAKKwkJaWYg KHRyYWlsaW5nIDwgc2l6ZW9mKCp0bHYpKQorCQkJcmV0dXJuIGZhbHNlOworCiAJCXRsdiA9IChz dHJ1Y3Qgc3I2X3RsdiAqKSgodW5zaWduZWQgY2hhciAqKXNyaCArIHRsdl9vZmZzZXQpOwogCQl0 bHZfbGVuID0gc2l6ZW9mKCp0bHYpICsgdGx2LT5sZW47CiAKLS0gCjIuNC4xMQoKCkZyb20gOTVh ZmE2NDA3YzFjNTI1M2E2OTIyNjBhM2NlMzhkOGEzOGE1MjU2MyBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRGFuIENhcnBlbnRlciA8ZGFuLmNhcnBlbnRlckBvcmFjbGUuY29tPgpEYXRl OiBUdWUsIDE4IEFwciAyMDE3IDIyOjE0OjI2ICswMzAwClN1YmplY3Q6IFtQQVRDSCAyMy80MV0g ZHA4MzY0MDogZG9uJ3QgcmVjaWV2ZSB0aW1lIHN0YW1wcyB0d2ljZQpNSU1FLVZlcnNpb246IDEu MApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zl ci1FbmNvZGluZzogOGJpdAoKWyBVcHN0cmVhbSBjb21taXQgOWQzODZjZDlhNzU1YzgyOTNlODkx NjI2NGQ0ZDA1Mzg3OGE3YzljNyBdCgpUaGlzIHBhdGNoIGlzIHByb21wdGVkIGJ5IGEgc3RhdGlj IGNoZWNrZXIgd2FybmluZyBhYm91dCBhIHBvdGVudGlhbAp1c2UgYWZ0ZXIgZnJlZS4gIFRoZSBj b25jZXJuIGlzIHRoYXQgbmV0aWZfcnhfbmkoKSBjYW4gZnJlZSAic2tiIiBhbmQgd2UKY2FsbCBp dCB0d2ljZS4KCldoZW4gSSBsb29rIGF0IHRoZSBjb21taXQgdGhhdCBhZGRlZCB0aGlzLCBpdCBs b29rcyBsaWtlIHNvbWUgc3RyYXkKbGluZXMgd2VyZSBhZGRlZCBhY2NpZGVudGFsbHkuICBJdCBk b2Vzbid0IG1ha2Ugc2Vuc2UgdG8gbWUgdGhhdCB3ZQp3b3VsZCByZWNpZXZlIHRoZSBzYW1lIGRh dGEgdHdvIHRpbWVzLiAgSSBhc2tlZCB0aGUgYXV0aG9yIGJ1dCBuZXZlcgpyZWNpZXZlZCBhIHJl c3BvbnNlLgoKSSBjYW4ndCB0ZXN0IHRoaXMgY29kZSwgYnV0IEknbSBwcmV0dHkgc3VyZSBteSBw YXRjaCBpcyBjb3JyZWN0LgoKRml4ZXM6IDRiMDYzMjU4YWI5MyAoImRwODM2NDA6IERlbGF5IHNj aGVkdWxlZCB3b3JrLiIpClNpZ25lZC1vZmYtYnk6IERhbiBDYXJwZW50ZXIgPGRhbi5jYXJwZW50 ZXJAb3JhY2xlLmNvbT4KQWNrZWQtYnk6IFN0ZWZhbiBTw7hyZW5zZW4gPHN0ZWZhbi5zb3JlbnNl bkBzcGVjdHJhbGluay5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jIHwgMiAtLQogMSBm aWxlIGNoYW5nZWQsIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5 L2RwODM2NDAuYyBiL2RyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMKaW5kZXggZTI0NjBhNS4uZWQw ZDEwZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYworKysgYi9kcml2ZXJz L25ldC9waHkvZHA4MzY0MC5jCkBAIC0xNDM4LDggKzE0MzgsNiBAQCBzdGF0aWMgYm9vbCBkcDgz NjQwX3J4dHN0YW1wKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYsCiAJCXNrYl9pbmZvLT50bW8g PSBqaWZmaWVzICsgU0tCX1RJTUVTVEFNUF9USU1FT1VUOwogCQlza2JfcXVldWVfdGFpbCgmZHA4 MzY0MC0+cnhfcXVldWUsIHNrYik7CiAJCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmZHA4MzY0MC0+ dHNfd29yaywgU0tCX1RJTUVTVEFNUF9USU1FT1VUKTsKLQl9IGVsc2UgewotCQluZXRpZl9yeF9u aShza2IpOwogCX0KIAogCXJldHVybiB0cnVlOwotLSAKMi40LjExCgoKRnJvbSAyZTlhZjJkNDg1 ZDI3MjU0MDY3MmY4YmFhOGNlY2U1ZTllNDE5OWNmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBEYXZpZCBMZWJydW4gPGRhdmlkLmxlYnJ1bkB1Y2xvdXZhaW4uYmU+CkRhdGU6IFdlZCwg MTkgQXByIDIwMTcgMTY6MTA6MTkgKzAyMDAKU3ViamVjdDogW1BBVENIIDI0LzQxXSBpcHY2OiBz cjogZml4IGRvdWJsZSBmcmVlIG9mIHNrYiBhZnRlciBoYW5kbGluZyBpbnZhbGlkCiBTUkgKClsg VXBzdHJlYW0gY29tbWl0IDk1YjliODhkMmRhNWU0M2UwMjU0MDBhZmNiNDkyNjQzOTMzYmY4NTgg XQoKVGhlIGljbXB2Nl9wYXJhbV9wcm9iKCkgZnVuY3Rpb24gYWxyZWFkeSBkb2VzIGEga2ZyZWVf c2tiKCksCnRoaXMgcGF0Y2ggcmVtb3ZlcyB0aGUgZHVwbGljYXRlIG9uZS4KCkZpeGVzOiAxYWJh YmViYTRhMjFmM2RiYTNkYTM1MjNjNjcwYjIwN2ZiMmZlYjYyICgiaXB2NjogaW1wbGVtZW50IGRh dGFwbGFuZSBzdXBwb3J0IGZvciBydGhkciB0eXBlIDQgKFNlZ21lbnQgUm91dGluZyBIZWFkZXIp IikKUmVwb3J0ZWQtYnk6IERhbiBDYXJwZW50ZXIgPGRhbi5jYXJwZW50ZXJAb3JhY2xlLmNvbT4K Q2M6IERhbiBDYXJwZW50ZXIgPGRhbi5jYXJwZW50ZXJAb3JhY2xlLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgTGVicnVuIDxkYXZpZC5sZWJydW5AdWNsb3V2YWluLmJlPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvZXh0 aGRycy5jIHwgMSAtCiAxIGZpbGUgY2hhbmdlZCwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBh L25ldC9pcHY2L2V4dGhkcnMuYyBiL25ldC9pcHY2L2V4dGhkcnMuYwppbmRleCAyNzVjYWM2Li4y NTE5MmEzIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9leHRoZHJzLmMKKysrIGIvbmV0L2lwdjYvZXh0 aGRycy5jCkBAIC0zODgsNyArMzg4LDYgQEAgc3RhdGljIGludCBpcHY2X3NyaF9yY3Yoc3RydWN0 IHNrX2J1ZmYgKnNrYikKIAkJaWNtcHY2X3BhcmFtX3Byb2Ioc2tiLCBJQ01QVjZfSERSX0ZJRUxE LAogCQkJCSAgKCgmaGRyLT5zZWdtZW50c19sZWZ0KSAtCiAJCQkJICAgc2tiX25ldHdvcmtfaGVh ZGVyKHNrYikpKTsKLQkJa2ZyZWVfc2tiKHNrYik7CiAJCXJldHVybiAtMTsKIAl9CiAKLS0gCjIu NC4xMQoKCkZyb20gNmZkN2Q2ZmRjYWNhMzVhNWFmMjJjMGI0NDAwYTE0ZDRmMTY3YWI0NiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU2FicmluYSBEdWJyb2NhIDxzZEBxdWVhc3lzbmFp bC5uZXQ+CkRhdGU6IFR1ZSwgMjUgQXByIDIwMTcgMTU6NTY6NTAgKzAyMDAKU3ViamVjdDogW1BB VENIIDI1LzQxXSBpcHY2OiBmaXggc291cmNlIHJvdXRpbmcKClsgVXBzdHJlYW0gY29tbWl0IGVj OWM0MjE1ZmVmMzdkYTY2NjhjNDEwNWY1YWQzODkxYWFhNjUyN2EgXQoKQ29tbWl0IGExNDllN2M3 Y2U4MSAoImlwdjY6IHNyOiBhZGQgc3VwcG9ydCBmb3IgU1JIIGluamVjdGlvbiB0aHJvdWdoCnNl dHNvY2tvcHQiKSBpbnRyb2R1Y2VkIGhhbmRsaW5nIG9mIElQVjZfU1JDUlRfVFlQRV80LCBidXQg YXQgdGhlIHNhbWUKdGltZSByZXN0cmljdGVkIGl0IHRvIG9ubHkgSVBWNl9TUkNSVF9UWVBFXzAg YW5kCklQVjZfU1JDUlRfVFlQRV80LiBQcmV2aW91c2x5LCBpcHY2X3B1c2hfZXh0aGRyKCkgYW5k IGZsNl91cGRhdGVfZHN0KCkKd291bGQgYWxzbyBoYW5kbGUgb3RoZXIgdmFsdWVzIChpZSBTVFJJ Q1QgYW5kIFRZUEVfMikuCgpSZXN0b3JlIHByZXZpb3VzIHNvdXJjZSByb3V0aW5nIGJlaGF2aW9y LCBieSBoYW5kbGluZyBJUFY2X1NSQ1JUX1NUUklDVAphbmQgSVBWNl9TUkNSVF9UWVBFXzIgdGhl IHNhbWUgd2F5IGFzIElQVjZfU1JDUlRfVFlQRV8wIGluCmlwdjZfcHVzaF9leHRoZHIoKSBhbmQg Zmw2X3VwZGF0ZV9kc3QoKS4KCkZpeGVzOiBhMTQ5ZTdjN2NlODEgKCJpcHY2OiBzcjogYWRkIHN1 cHBvcnQgZm9yIFNSSCBpbmplY3Rpb24gdGhyb3VnaCBzZXRzb2Nrb3B0IikKU2lnbmVkLW9mZi1i eTogU2FicmluYSBEdWJyb2NhIDxzZEBxdWVhc3lzbmFpbC5uZXQ+ClJldmlld2VkLWJ5OiBIYW5u ZXMgRnJlZGVyaWMgU293YSA8aGFubmVzQHN0cmVzc2luZHVrdGlvbi5vcmc+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9l eHRoZHJzLmMgfCA0ICsrKysKIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKykKCmRpZmYg LS1naXQgYS9uZXQvaXB2Ni9leHRoZHJzLmMgYi9uZXQvaXB2Ni9leHRoZHJzLmMKaW5kZXggMjUx OTJhMy4uZDMyZTIxMSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvZXh0aGRycy5jCisrKyBiL25ldC9p cHY2L2V4dGhkcnMuYwpAQCAtOTA5LDYgKzkwOSw4IEBAIHN0YXRpYyB2b2lkIGlwdjZfcHVzaF9y dGhkcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1OCAqcHJvdG8sCiB7CiAJc3dpdGNoIChvcHQtPnR5 cGUpIHsKIAljYXNlIElQVjZfU1JDUlRfVFlQRV8wOgorCWNhc2UgSVBWNl9TUkNSVF9TVFJJQ1Q6 CisJY2FzZSBJUFY2X1NSQ1JUX1RZUEVfMjoKIAkJaXB2Nl9wdXNoX3J0aGRyMChza2IsIHByb3Rv LCBvcHQsIGFkZHJfcCwgc2FkZHIpOwogCQlicmVhazsKIAljYXNlIElQVjZfU1JDUlRfVFlQRV80 OgpAQCAtMTE2Myw2ICsxMTY1LDggQEAgc3RydWN0IGluNl9hZGRyICpmbDZfdXBkYXRlX2RzdChz dHJ1Y3QgZmxvd2k2ICpmbDYsCiAKIAlzd2l0Y2ggKG9wdC0+c3JjcnQtPnR5cGUpIHsKIAljYXNl IElQVjZfU1JDUlRfVFlQRV8wOgorCWNhc2UgSVBWNl9TUkNSVF9TVFJJQ1Q6CisJY2FzZSBJUFY2 X1NSQ1JUX1RZUEVfMjoKIAkJZmw2LT5kYWRkciA9ICooKHN0cnVjdCBydDBfaGRyICopb3B0LT5z cmNydCktPmFkZHI7CiAJCWJyZWFrOwogCWNhc2UgSVBWNl9TUkNSVF9UWVBFXzQ6Ci0tIAoyLjQu MTEKCgpGcm9tIDNlMDIyNmIxYWYyNWM0ZGU4MTg2YjgyYmIzMTdmM2I5MDdjZTIyMzAgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IElsYW4gVGF5YXJpIDxpbGFudEBtZWxsYW5veC5jb20+ CkRhdGU6IFdlZCwgMTkgQXByIDIwMTcgMjE6MjY6MDcgKzAzMDAKU3ViamVjdDogW1BBVENIIDI2 LzQxXSBnc286IFZhbGlkYXRlIGFzc3VtcHRpb24gb2YgZnJhZ19saXN0IHNlZ2VtZW50YXRpb24K ClsgVXBzdHJlYW0gY29tbWl0IDQzMTcwYzRlMGJhNzA5Yzc5MTMwYzNmZTVhNDFlNjYyNzk5NTBj ZDAgXQoKQ29tbWl0IDA3YjI2Yzk0NTRhMiAoImdzbzogU3VwcG9ydCBwYXJ0aWFsIHNwbGl0dGlu ZyBhdCB0aGUgZnJhZ19saXN0CnBvaW50ZXIiKSBhc3N1bWVzIHRoYXQgYWxsIFNLQnMgaW4gYSBm cmFnX2xpc3QgKGV4Y2VwdCBtYXliZSB0aGUgbGFzdApvbmUpIGNvbnRhaW4gdGhlIHNhbWUgYW1v dW50IG9mIEdTTyBwYXlsb2FkLgoKVGhpcyBhc3N1bXB0aW9uIGlzIG5vdCBhbHdheXMgY29ycmVj dCwgcmVzdWx0aW5nIGluIHRoZSBmb2xsb3dpbmcKd2FybmluZyBtZXNzYWdlIGluIHRoZSBsb2c6 CiAgICBza2Jfc2VnbWVudDogdG9vIG1hbnkgZnJhZ3MKCkZvciBleGFtcGxlLCBtbHg1IGRyaXZl ciBpbiBTdHJpZGluZyBSUSBtb2RlIGNyZWF0ZXMgc29tZSBSWCBTS0JzIHdpdGgKb25lIGZyYWcs IGFuZCBzb21lIHdpdGggMiBmcmFncy4KQWZ0ZXIgR1JPLCB0aGUgZnJhZ19saXN0IFNLQnMgZW5k IHVwIGhhdmluZyBkaWZmZXJlbnQgYW1vdW50cyBvZiBwYXlsb2FkLgpJZiB0aGlzIGZyYWdfbGlz dCBTS0IgaXMgdGhlbiBmb3J3YXJkZWQsIHRoZSBhZm9yZW1lbnRpb25lZCBhc3N1bXB0aW9uCmlz IHZpb2xhdGVkLgoKVmFsaWRhdGUgdGhlIGFzc3VtcHRpb24sIGFuZCBmYWxsIGJhY2sgdG8gc29m dHdhcmUgR1NPIGlmIGl0IG5vdCB0cnVlLgoKQ2hhbmdlLUlkOiBJYTAzOTgzZjRhNDdiNjUzNGRk OTg3ZDdhMmFhZDk2ZDU0ZDQ2ZDIxMgpGaXhlczogMDdiMjZjOTQ1NGEyICgiZ3NvOiBTdXBwb3J0 IHBhcnRpYWwgc3BsaXR0aW5nIGF0IHRoZSBmcmFnX2xpc3QgcG9pbnRlciIpClNpZ25lZC1vZmYt Ynk6IElsYW4gVGF5YXJpIDxpbGFudEBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IElseWEg TGVzb2toaW4gPGlseWFsQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL3NrYnVmZi5jIHwgMTggKysr KysrKysrKysrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgNCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9za2J1ZmYuYyBiL25ldC9jb3JlL3NrYnVm Zi5jCmluZGV4IDM5Y2EzZTYuLmMzY2I5OWMgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL3NrYnVmZi5j CisrKyBiL25ldC9jb3JlL3NrYnVmZi5jCkBAIC0zMDc4LDIyICszMDc4LDMyIEBAIHN0cnVjdCBz a19idWZmICpza2Jfc2VnbWVudChzdHJ1Y3Qgc2tfYnVmZiAqaGVhZF9za2IsCiAJaWYgKHNnICYm IGNzdW0gJiYgKG1zcyAhPSBHU09fQllfRlJBR1MpKSAgewogCQlpZiAoIShmZWF0dXJlcyAmIE5F VElGX0ZfR1NPX1BBUlRJQUwpKSB7CiAJCQlzdHJ1Y3Qgc2tfYnVmZiAqaXRlcjsKKwkJCXVuc2ln bmVkIGludCBmcmFnX2xlbjsKIAogCQkJaWYgKCFsaXN0X3NrYiB8fAogCQkJICAgICFuZXRfZ3Nv X29rKGZlYXR1cmVzLCBza2Jfc2hpbmZvKGhlYWRfc2tiKS0+Z3NvX3R5cGUpKQogCQkJCWdvdG8g bm9ybWFsOwogCi0JCQkvKiBTcGxpdCB0aGUgYnVmZmVyIGF0IHRoZSBmcmFnX2xpc3QgcG9pbnRl ci4KLQkJCSAqIFRoaXMgaXMgYmFzZWQgb24gdGhlIGFzc3VtcHRpb24gdGhhdCBhbGwKLQkJCSAq IGJ1ZmZlcnMgaW4gdGhlIGNoYWluIGV4Y2x1ZGluZyB0aGUgbGFzdAotCQkJICogY29udGFpbmlu ZyB0aGUgc2FtZSBhbW91bnQgb2YgZGF0YS4KKwkJCS8qIElmIHdlIGdldCBoZXJlIHRoZW4gYWxs IHRoZSByZXF1aXJlZAorCQkJICogR1NPIGZlYXR1cmVzIGV4Y2VwdCBmcmFnX2xpc3QgYXJlIHN1 cHBvcnRlZC4KKwkJCSAqIFRyeSB0byBzcGxpdCB0aGUgU0tCIHRvIG11bHRpcGxlIEdTTyBTS0Jz CisJCQkgKiB3aXRoIG5vIGZyYWdfbGlzdC4KKwkJCSAqIEN1cnJlbnRseSB3ZSBjYW4gZG8gdGhh dCBvbmx5IHdoZW4gdGhlIGJ1ZmZlcnMgZG9uJ3QKKwkJCSAqIGhhdmUgYSBsaW5lYXIgcGFydCBh bmQgYWxsIHRoZSBidWZmZXJzIGV4Y2VwdAorCQkJICogdGhlIGxhc3QgYXJlIG9mIHRoZSBzYW1l IGxlbmd0aC4KIAkJCSAqLworCQkJZnJhZ19sZW4gPSBsaXN0X3NrYi0+bGVuOwogCQkJc2tiX3dh bGtfZnJhZ3MoaGVhZF9za2IsIGl0ZXIpIHsKKwkJCQlpZiAoZnJhZ19sZW4gIT0gaXRlci0+bGVu ICYmIGl0ZXItPm5leHQpCisJCQkJCWdvdG8gbm9ybWFsOwogCQkJCWlmIChza2JfaGVhZGxlbihp dGVyKSkKIAkJCQkJZ290byBub3JtYWw7CiAKIAkJCQlsZW4gLT0gaXRlci0+bGVuOwogCQkJfQor CisJCQlpZiAobGVuICE9IGZyYWdfbGVuKQorCQkJCWdvdG8gbm9ybWFsOwogCQl9CiAKIAkJLyog R1NPIHBhcnRpYWwgb25seSByZXF1aXJlcyB0aGF0IHdlIHRyaW0gb2ZmIGFueSBleGNlc3MgdGhh dAotLSAKMi40LjExCgoKRnJvbSBiZmEyMTY5YmQxYWFkNWQyZTRiZTViMGE1YzUyZDY3ODI1MjA5 MWEzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBBaGVybiA8ZHNhQGN1bXVs dXNuZXR3b3Jrcy5jb20+CkRhdGU6IFdlZCwgMTkgQXByIDIwMTcgMTQ6MTk6NDMgLTA3MDAKU3Vi amVjdDogW1BBVENIIDI3LzQxXSBuZXQ6IGlwdjY6IFJURl9QQ1BVIHNob3VsZCBub3QgYmUgc2V0 dGFibGUgZnJvbQogdXNlcnNwYWNlCgpbIFVwc3RyZWFtIGNvbW1pdCA1NTdjNDRiZTkxN2MzMjI4 NjA2NjViZTNkMjgzNzZhZmE4NGFhOTM2IF0KCkFuZHJleSByZXBvcnRlZCBhIGZhdWx0IGluIHRo ZSBJUHY2IHJvdXRlIGNvZGU6CgprYXNhbjogR1BGIGNvdWxkIGJlIGNhdXNlZCBieSBOVUxMLXB0 ciBkZXJlZiBvciB1c2VyIG1lbW9yeSBhY2Nlc3MKZ2VuZXJhbCBwcm90ZWN0aW9uIGZhdWx0OiAw MDAwIFsjMV0gU01QIEtBU0FOCk1vZHVsZXMgbGlua2VkIGluOgpDUFU6IDEgUElEOiA0MDM1IENv bW06IGEub3V0IE5vdCB0YWludGVkIDQuMTEuMC1yYzcrICMyNTAKSGFyZHdhcmUgbmFtZTogUUVN VSBTdGFuZGFyZCBQQyAoaTQ0MEZYICsgUElJWCwgMTk5NiksIEJJT1MgQm9jaHMgMDEvMDEvMjAx MQp0YXNrOiBmZmZmODgwMDY5ODA5NjAwIHRhc2suc3RhY2s6IGZmZmY4ODAwNjJkYzgwMDAKUklQ OiAwMDEwOmlwNl9ydF9jYWNoZV9hbGxvYysweGE2LzB4NTYwIG5ldC9pcHY2L3JvdXRlLmM6OTc1 ClJTUDogMDAxODpmZmZmODgwMDYyZGNlZDMwIEVGTEFHUzogMDAwMTAyMDYKUkFYOiBkZmZmZmMw MDAwMDAwMDAwIFJCWDogZmZmZjg4MDA2NzA1NjFjMCBSQ1g6IDAwMDAwMDAwMDAwMDAwMDYKUkRY OiAwMDAwMDAwMDAwMDAwMDAzIFJTSTogZmZmZjg4MDA2MmRjZmIyOCBSREk6IDAwMDAwMDAwMDAw MDAwMTgKUkJQOiBmZmZmODgwMDYyZGNlZDY4IFIwODogMDAwMDAwMDAwMDAwMDAwMSBSMDk6IDAw MDAwMDAwMDAwMDAwMDAKUjEwOiAwMDAwMDAwMDAwMDAwMDAwIFIxMTogMDAwMDAwMDAwMDAwMDAw MCBSMTI6IDAwMDAwMDAwMDAwMDAwMDAKUjEzOiBmZmZmODgwMDYyZGNmYjI4IFIxNDogZGZmZmZj MDAwMDAwMDAwMCBSMTU6IDAwMDAwMDAwMDAwMDAwMDAKRlM6ICAwMDAwN2ZlZWJlMzdlN2MwKDAw MDApIEdTOmZmZmY4ODAwNmNiMDAwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMApDUzog IDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzCkNSMjogMDAwMDAw MDAyMDVhMGZlNCBDUjM6IDAwMDAwMDAwNmI1YzkwMDAgQ1I0OiAwMDAwMDAwMDAwMDAwNmUwCkNh bGwgVHJhY2U6CiBpcDZfcG9sX3JvdXRlKzB4MTUxMi8weDFmMjAgbmV0L2lwdjYvcm91dGUuYzox MTI4CiBpcDZfcG9sX3JvdXRlX291dHB1dCsweDRjLzB4NjAgbmV0L2lwdjYvcm91dGUuYzoxMjEy Ci4uLgoKQW5kcmV5J3Mgc3l6a2FsbGVyIHByb2dyYW0gcGFzc2VzIHJ0bXNnLnJ0bXNnX2ZsYWdz IHdpdGggdGhlIFJURl9QQ1BVIGJpdApzZXQuIEZsYWdzIHBhc3NlZCB0byB0aGUga2VybmVsIGFy ZSBibGluZGx5IGNvcGllZCB0byB0aGUgYWxsb2NhdGVkCnJ0Nl9pbmZvIGJ5IGlwNl9yb3V0ZV9p bmZvX2NyZWF0ZSBtYWtpbmcgYSBuZXdseSBpbnNlcnRlZCByb3V0ZSBhcHBlYXIKYXMgdGhvdWdo IGl0IGlzIGEgcGVyLWNwdSByb3V0ZS4gaXA2X3J0X2NhY2hlX2FsbG9jIHNlZXMgdGhlIGZsYWcg c2V0CmFuZCBleHBlY3RzIHJ0LT5kc3QuZnJvbSB0byBiZSBzZXQgLSB3aGljaCBpdCBpcyBub3Qg c2luY2UgaXQgaXMgbm90CnJlYWxseSBhIHBlci1jcHUgY29weS4gVGhlIHN1YnNlcXVlbnQgY2Fs bCB0byBfX2lwNl9kc3RfYWxsb2MgdGhlbgpnZW5lcmF0ZXMgdGhlIGZhdWx0LgoKRml4IGJ5IGNo ZWNraW5nIGZvciB0aGUgZmxhZyBhbmQgZmFpbGluZyB3aXRoIEVJTlZBTC4KCkZpeGVzOiBkNTJk Mzk5N2Y4NDNmICgiaXB2NjogQ3JlYXRlIHBlcmNwdSBydDZfaW5mbyIpClJlcG9ydGVkLWJ5OiBB bmRyZXkgS29ub3ZhbG92IDxhbmRyZXlrbnZsQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIEFoZXJuIDxkc2FAY3VtdWx1c25ldHdvcmtzLmNvbT4KQWNrZWQtYnk6IE1hcnRpbiBLYUZh aSBMYXUgPGthZmFpQGZiLmNvbT4KVGVzdGVkLWJ5OiBBbmRyZXkgS29ub3ZhbG92IDxhbmRyZXlr bnZsQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL3VhcGkvbGludXgvaXB2Nl9yb3V0ZS5oIHwgMiArLQog bmV0L2lwdjYvcm91dGUuYyAgICAgICAgICAgICAgICB8IDQgKysrKwogMiBmaWxlcyBjaGFuZ2Vk LCA1IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL3Vh cGkvbGludXgvaXB2Nl9yb3V0ZS5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L2lwdjZfcm91dGUuaApp bmRleCBmNjU5OGQxLi4zMTZlODM4IDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgvaXB2 Nl9yb3V0ZS5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9pcHY2X3JvdXRlLmgKQEAgLTM0LDcg KzM0LDcgQEAKICNkZWZpbmUgUlRGX1BSRUYocHJlZikJKChwcmVmKSA8PCAyNykKICNkZWZpbmUg UlRGX1BSRUZfTUFTSwkweDE4MDAwMDAwCiAKLSNkZWZpbmUgUlRGX1BDUFUJMHg0MDAwMDAwMAor I2RlZmluZSBSVEZfUENQVQkweDQwMDAwMDAwCS8qIHJlYWQtb25seTogY2FuIG5vdCBiZSBzZXQg YnkgdXNlciAqLwogI2RlZmluZSBSVEZfTE9DQUwJMHg4MDAwMDAwMAogCiAKZGlmZiAtLWdpdCBh L25ldC9pcHY2L3JvdXRlLmMgYi9uZXQvaXB2Ni9yb3V0ZS5jCmluZGV4IDdlYTg1MzcuLjUyMzY4 MWEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3JvdXRlLmMKKysrIGIvbmV0L2lwdjYvcm91dGUuYwpA QCAtMTgzMSw2ICsxODMxLDEwIEBAIHN0YXRpYyBzdHJ1Y3QgcnQ2X2luZm8gKmlwNl9yb3V0ZV9p bmZvX2NyZWF0ZShzdHJ1Y3QgZmliNl9jb25maWcgKmNmZykKIAlpbnQgYWRkcl90eXBlOwogCWlu dCBlcnIgPSAtRUlOVkFMOwogCisJLyogUlRGX1BDUFUgaXMgYW4gaW50ZXJuYWwgZmxhZzsgY2Fu IG5vdCBiZSBzZXQgYnkgdXNlcnNwYWNlICovCisJaWYgKGNmZy0+ZmNfZmxhZ3MgJiBSVEZfUENQ VSkKKwkJZ290byBvdXQ7CisKIAlpZiAoY2ZnLT5mY19kc3RfbGVuID4gMTI4IHx8IGNmZy0+ZmNf c3JjX2xlbiA+IDEyOCkKIAkJZ290byBvdXQ7CiAjaWZuZGVmIENPTkZJR19JUFY2X1NVQlRSRUVT Ci0tIAoyLjQuMTEKCgpGcm9tIDQwNGM4MDJlZGUyYmJkMDYwNTRlNzM4NGI0ZGMyYjRhZGE1YTE2 YzUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFR1c2hhciBEYXZlIDx0dXNoYXIubi5k YXZlQG9yYWNsZS5jb20+CkRhdGU6IFRodSwgMjAgQXByIDIwMTcgMTU6NTc6MzEgLTA3MDAKU3Vi amVjdDogW1BBVENIIDI4LzQxXSBuZXRwb2xsOiBDaGVjayBmb3Igc2tiLT5xdWV1ZV9tYXBwaW5n CgpbIFVwc3RyZWFtIGNvbW1pdCBjNzBiMTdiNzc1ZWRiMjEyODBlOWRlNzUzMWFjZjZkYjNiMzY1 Mjc0IF0KClJlZHVjaW5nIHJlYWxfbnVtX3R4X3F1ZXVlcyBuZWVkcyB0byBiZSBpbiBzeW5jIHdp dGggc2tiIHF1ZXVlX21hcHBpbmcKb3RoZXJ3aXNlIHNrYnMgd2l0aCBxdWV1ZV9tYXBwaW5nIGdy ZWF0ZXIgdGhhbiByZWFsX251bV90eF9xdWV1ZXMKY2FuIGJlIHNlbnQgdG8gdGhlIHVuZGVybHlp bmcgZHJpdmVyIGFuZCBjYW4gcmVzdWx0IGluIGtlcm5lbCBwYW5pYy4KCk9uZSBzdWNoIGV2ZW50 IGlzIHJ1bm5pbmcgbmV0Y29uc29sZSBhbmQgZW5hYmxpbmcgVkYgb24gdGhlIHNhbWUKZGV2aWNl LiBPciBydW5uaW5nIG5ldGNvbnNvbGUgYW5kIGNoYW5naW5nIG51bWJlciBvZiB0eCBxdWV1ZXMg dmlhCmV0aHRvb2wgb24gc2FtZSBkZXZpY2UuCgplLmcuClVuYWJsZSB0byBoYW5kbGUga2VybmVs IE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZQp0c2stPnttbSxhY3RpdmVfbW19LT5jb250ZXh0ID0g MDAwMDAwMDAwMDAwMTUyNQp0c2stPnttbSxhY3RpdmVfbW19LT5wZ2QgPSBmZmY4MDAxMzBmZjlh MDAwCiAgICAgICAgICAgICAgXHwvIF9fX18gXHwvCiAgICAgICAgICAgICAgIkAnLyAuLiBcYEAi CiAgICAgICAgICAgICAgL198IFxfXy8gfF9cCiAgICAgICAgICAgICAgICAgXF9fVV8vCmt3b3Jr ZXIvNDg6MSg0NzUpOiBPb3BzIFsjMV0KQ1BVOiA0OCBQSUQ6IDQ3NSBDb21tOiBrd29ya2VyLzQ4 OjEgVGFpbnRlZDogRyAgICAgICAgICAgT0UKNC4xMS4wLXJjMy1kYXZlbS1uZXQrICM3Cldvcmtx dWV1ZTogZXZlbnRzIHF1ZXVlX3Byb2Nlc3MKdGFzazogZmZmODAwMTMxMTMyOTljMCB0YXNrLnN0 YWNrOiBmZmY4MDAxMzExMzJjMDAwClRTVEFURTogMDAwMDAwNDQ4MGUwMTYwMCBUUEM6IDAwMDAw MDAwMTAzZjllM2MgVE5QQzogMDAwMDAwMDAxMDNmOWU0MCBZOgowMDAwMDAwMCAgICBUYWludGVk OiBHICAgICAgICAgICBPRQpUUEM6IDxpeGdiZV94bWl0X2ZyYW1lX3JpbmcrMHg3Yy8weDZjMCBb aXhnYmVdPgpnMDogMDAwMDAwMDAwMDAwMDAwMCBnMTogMDAwMDAwMDAwMDAwM2ZmZiBnMjogMDAw MDAwMDAwMDAwMDAwMCBnMzoKMDAwMDAwMDAwMDAwMDAwMQpnNDogZmZmODAwMTMxMTMyOTljMCBn NTogZmZmODAwMWZhNjgwODAwMCBnNjogZmZmODAwMTMxMTMyYzAwMCBnNzoKMDAwMDAwMDAwMDAw MDBjMApvMDogZmZmODAwMWZhNzYwYzQ2MCBvMTogZmZmODAwMTMxMTMyOWE1MCBvMjogZmZmODAw MWZhNzYwNzUwNCBvMzoKMDAwMDAwMDAwMDAwMDAwMwpvNDogZmZmODAwMWY5NmU2M2E0MCBvNTog ZmZmODAwMTMxMWQ3N2VjMCBzcDogZmZmODAwMTMxMTMyZjBlMSByZXRfcGM6CjAwMDAwMDAwMDA0 OWVkOTQKUlBDOiA8c2V0X25leHRfZW50aXR5KzB4MzQvMHhiODA+CmwwOiAwMDAwMDAwMDAwMDAw MDAwIGwxOiAwMDAwMDAwMDAwMDAwODAwIGwyOiAwMDAwMDAwMDAwMDAwMDAwIGwzOgowMDAwMDAw MDAwMDAwMDAwCmw0OiAwMDBiMmFhMzBlMzRiMTBkIGw1OiAwMDAwMDAwMDAwMDAwMDAwIGw2OiAw MDAwMDAwMDAwMDAwMDAwIGw3OgpmZmY4MDAxZmE3NjA1MDI4CmkwOiBmZmY4MDAxMzExMWE4YTAw IGkxOiBmZmY4MDAxMzE1NWEwNzgwIGkyOiAwMDAwMDAwMDAwMDAwMDAwIGkzOgowMDAwMDAwMDAw MDAwMDAwCmk0OiAwMDAwMDAwMDAwMDAwMDAwIGk1OiAwMDAwMDAwMDAwMTAwMDAwIGk2OiBmZmY4 MDAxMzExMzJmMWExIGk3OgowMDAwMDAwMDEwM2ZhNGIwCkk3OiA8aXhnYmVfeG1pdF9mcmFtZSsw eDMwLzB4YTAgW2l4Z2JlXT4KQ2FsbCBUcmFjZToKIFswMDAwMDAwMDEwM2ZhNGIwXSBpeGdiZV94 bWl0X2ZyYW1lKzB4MzAvMHhhMCBbaXhnYmVdCiBbMDAwMDAwMDAwMDk5OGM3NF0gbmV0cG9sbF9z dGFydF94bWl0KzB4ZjQvMHgyMDAKIFswMDAwMDAwMDAwOTk4ZTEwXSBxdWV1ZV9wcm9jZXNzKzB4 OTAvMHgxNjAKIFswMDAwMDAwMDAwNDg1ZmE4XSBwcm9jZXNzX29uZV93b3JrKzB4MTg4LzB4NDgw CiBbMDAwMDAwMDAwMDQ4NjQxMF0gd29ya2VyX3RocmVhZCsweDE3MC8weDRjMAogWzAwMDAwMDAw MDA0OGM2YjhdIGt0aHJlYWQrMHhkOC8weDEyMAogWzAwMDAwMDAwMDA0MDYwNjRdIHJldF9mcm9t X2ZvcmsrMHgxYy8weDJjCiBbMDAwMDAwMDAwMDAwMDAwMF0gICAgICAgICAgIChudWxsKQpEaXNh YmxpbmcgbG9jayBkZWJ1Z2dpbmcgZHVlIHRvIGtlcm5lbCB0YWludApDYWxsZXJbMDAwMDAwMDAx MDNmYTRiMF06IGl4Z2JlX3htaXRfZnJhbWUrMHgzMC8weGEwIFtpeGdiZV0KQ2FsbGVyWzAwMDAw MDAwMDA5OThjNzRdOiBuZXRwb2xsX3N0YXJ0X3htaXQrMHhmNC8weDIwMApDYWxsZXJbMDAwMDAw MDAwMDk5OGUxMF06IHF1ZXVlX3Byb2Nlc3MrMHg5MC8weDE2MApDYWxsZXJbMDAwMDAwMDAwMDQ4 NWZhOF06IHByb2Nlc3Nfb25lX3dvcmsrMHgxODgvMHg0ODAKQ2FsbGVyWzAwMDAwMDAwMDA0ODY0 MTBdOiB3b3JrZXJfdGhyZWFkKzB4MTcwLzB4NGMwCkNhbGxlclswMDAwMDAwMDAwNDhjNmI4XTog a3RocmVhZCsweGQ4LzB4MTIwCkNhbGxlclswMDAwMDAwMDAwNDA2MDY0XTogcmV0X2Zyb21fZm9y aysweDFjLzB4MmMKQ2FsbGVyWzAwMDAwMDAwMDAwMDAwMDBdOiAgICAgICAgICAgKG51bGwpCgpT aWduZWQtb2ZmLWJ5OiBUdXNoYXIgRGF2ZSA8dHVzaGFyLm4uZGF2ZUBvcmFjbGUuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0 L2NvcmUvbmV0cG9sbC5jIHwgMTAgKysrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0 aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9uZXRwb2xsLmMg Yi9uZXQvY29yZS9uZXRwb2xsLmMKaW5kZXggOTQyNDY3My4uMjliZTI0NiAxMDA2NDQKLS0tIGEv bmV0L2NvcmUvbmV0cG9sbC5jCisrKyBiL25ldC9jb3JlL25ldHBvbGwuYwpAQCAtMTA1LDE1ICsx MDUsMjEgQEAgc3RhdGljIHZvaWQgcXVldWVfcHJvY2VzcyhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndv cmspCiAJd2hpbGUgKChza2IgPSBza2JfZGVxdWV1ZSgmbnBpbmZvLT50eHEpKSkgewogCQlzdHJ1 Y3QgbmV0X2RldmljZSAqZGV2ID0gc2tiLT5kZXY7CiAJCXN0cnVjdCBuZXRkZXZfcXVldWUgKnR4 cTsKKwkJdW5zaWduZWQgaW50IHFfaW5kZXg7CiAKIAkJaWYgKCFuZXRpZl9kZXZpY2VfcHJlc2Vu dChkZXYpIHx8ICFuZXRpZl9ydW5uaW5nKGRldikpIHsKIAkJCWtmcmVlX3NrYihza2IpOwogCQkJ Y29udGludWU7CiAJCX0KIAotCQl0eHEgPSBza2JfZ2V0X3R4X3F1ZXVlKGRldiwgc2tiKTsKLQog CQlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CisJCS8qIGNoZWNrIGlmIHNrYi0+cXVldWVfbWFwcGlu ZyBpcyBzdGlsbCB2YWxpZCAqLworCQlxX2luZGV4ID0gc2tiX2dldF9xdWV1ZV9tYXBwaW5nKHNr Yik7CisJCWlmICh1bmxpa2VseShxX2luZGV4ID49IGRldi0+cmVhbF9udW1fdHhfcXVldWVzKSkg eworCQkJcV9pbmRleCA9IHFfaW5kZXggJSBkZXYtPnJlYWxfbnVtX3R4X3F1ZXVlczsKKwkJCXNr Yl9zZXRfcXVldWVfbWFwcGluZyhza2IsIHFfaW5kZXgpOworCQl9CisJCXR4cSA9IG5ldGRldl9n ZXRfdHhfcXVldWUoZGV2LCBxX2luZGV4KTsKIAkJSEFSRF9UWF9MT0NLKGRldiwgdHhxLCBzbXBf cHJvY2Vzc29yX2lkKCkpOwogCQlpZiAobmV0aWZfeG1pdF9mcm96ZW5fb3Jfc3RvcHBlZCh0eHEp IHx8CiAJCSAgICBuZXRwb2xsX3N0YXJ0X3htaXQoc2tiLCBkZXYsIHR4cSkgIT0gTkVUREVWX1RY X09LKSB7Ci0tIAoyLjQuMTEKCgpGcm9tIGJkODlmNmI0NTg5ZTJlYjkzZjk1MDMwODAxOGIzOWY2 NDhkZWVhZDIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE5pa29sYXkgQWxla3NhbmRy b3YgPG5pa29sYXlAY3VtdWx1c25ldHdvcmtzLmNvbT4KRGF0ZTogRnJpLCAyMSBBcHIgMjAxNyAy MDo0MjoxNiArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMjkvNDFdIGlwNm1yOiBmaXggbm90aWZpY2F0 aW9uIGRldmljZSBkZXN0cnVjdGlvbgoKWyBVcHN0cmVhbSBjb21taXQgNzIzYjkyOWNhMGY3OWMw Nzk2ZjE2MGMyZWVkYTQ1OTdlZTk4ZDJiOCBdCgpBbmRyZXkgS29ub3ZhbG92IHJlcG9ydGVkIGEg QlVHIGNhdXNlZCBieSB0aGUgaXA2bXIgY29kZSB3aGljaCBpcyBjYXVzZWQKYmVjYXVzZSB3ZSBj YWxsIHVucmVnaXN0ZXJfbmV0ZGV2aWNlX21hbnkgZm9yIGEgZGV2aWNlIHRoYXQgaXMgYWxyZWFk eQpiZWluZyBkZXN0cm95ZWQuIEluIElQdjQncyBpcG1yIHRoYXQgaGFzIGJlZW4gcmVzb2x2ZWQg YnkgdHdvIGNvbW1pdHMKbG9uZyB0aW1lIGFnbyBieSBpbnRyb2R1Y2luZyB0aGUgIm5vdGlmeSIg cGFyYW1ldGVyIHRvIHRoZSBkZWxldGUKZnVuY3Rpb24gYW5kIGF2b2lkaW5nIHRoZSB1bnJlZ2lz dGVyIHdoZW4gY2FsbGVkIGZyb20gYSBub3RpZmllciwgc28KbGV0J3MgZG8gdGhlIHNhbWUgZm9y IGlwNm1yLgoKVGhlIHRyYWNlIGZyb20gQW5kcmV5OgotLS0tLS0tLS0tLS1bIGN1dCBoZXJlIF0t LS0tLS0tLS0tLS0Ka2VybmVsIEJVRyBhdCBuZXQvY29yZS9kZXYuYzo2ODEzIQppbnZhbGlkIG9w Y29kZTogMDAwMCBbIzFdIFNNUCBLQVNBTgpNb2R1bGVzIGxpbmtlZCBpbjoKQ1BVOiAxIFBJRDog MTE2NSBDb21tOiBrd29ya2VyL3U0OjMgTm90IHRhaW50ZWQgNC4xMS4wLXJjNysgIzI1MQpIYXJk d2FyZSBuYW1lOiBRRU1VIFN0YW5kYXJkIFBDIChpNDQwRlggKyBQSUlYLCAxOTk2KSwgQklPUyBC b2NocwowMS8wMS8yMDExCldvcmtxdWV1ZTogbmV0bnMgY2xlYW51cF9uZXQKdGFzazogZmZmZjg4 MDA2OTIwODAwMCB0YXNrLnN0YWNrOiBmZmZmODgwMDY5MmQ4MDAwClJJUDogMDAxMDpyb2xsYmFj a19yZWdpc3RlcmVkX21hbnkrMHgzNDgvMHhlYjAgbmV0L2NvcmUvZGV2LmM6NjgxMwpSU1A6IDAw MTg6ZmZmZjg4MDA2OTJkZTdmMCBFRkxBR1M6IDAwMDEwMjk3ClJBWDogZmZmZjg4MDA2OTIwODAw MCBSQlg6IDAwMDAwMDAwMDAwMDAwMDIgUkNYOiAwMDAwMDAwMDAwMDAwMDAxClJEWDogMDAwMDAw MDAwMDAwMDAwMCBSU0k6IDAwMDAwMDAwMDAwMDAwMDAgUkRJOiBmZmZmODgwMDZhZjkwNTY5ClJC UDogZmZmZjg4MDA2OTJkZTlmMCBSMDg6IGZmZmY4ODAwNjkyZGVjNjAgUjA5OiAwMDAwMDAwMDAw MDAwMDAwClIxMDogMDAwMDAwMDAwMDAwMDAwNiBSMTE6IDAwMDAwMDAwMDAwMDAwMDAgUjEyOiBm ZmZmODgwMDZhZjkwMDcwClIxMzogZmZmZjg4MDA2OTJkZWJmMCBSMTQ6IGRmZmZmYzAwMDAwMDAw MDAgUjE1OiBmZmZmODgwMDZhZjkwMDAwCkZTOiAgMDAwMDAwMDAwMDAwMDAwMCgwMDAwKSBHUzpm ZmZmODgwMDZjYjAwMDAwKDAwMDApCmtubEdTOjAwMDAwMDAwMDAwMDAwMDAKQ1M6ICAwMDEwIERT OiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4MDA1MDAzMwpDUjI6IDAwMDA3ZmU3ZTg5N2Q4 NzAgQ1IzOiAwMDAwMDAwMDY1N2U3MDAwIENSNDogMDAwMDAwMDAwMDAwMDZlMApDYWxsIFRyYWNl OgogdW5yZWdpc3Rlcl9uZXRkZXZpY2VfbWFueS5wYXJ0LjEwNSsweDg3LzB4NDQwIG5ldC9jb3Jl L2Rldi5jOjc4ODEKIHVucmVnaXN0ZXJfbmV0ZGV2aWNlX21hbnkrMHhjOC8weDEyMCBuZXQvY29y ZS9kZXYuYzo3ODgwCiBpcDZtcl9kZXZpY2VfZXZlbnQrMHgzNjIvMHgzZjAgbmV0L2lwdjYvaXA2 bXIuYzoxMzQ2CiBub3RpZmllcl9jYWxsX2NoYWluKzB4MTQ1LzB4MmYwIGtlcm5lbC9ub3RpZmll ci5jOjkzCiBfX3Jhd19ub3RpZmllcl9jYWxsX2NoYWluIGtlcm5lbC9ub3RpZmllci5jOjM5NAog cmF3X25vdGlmaWVyX2NhbGxfY2hhaW4rMHgyZC8weDQwIGtlcm5lbC9ub3RpZmllci5jOjQwMQog Y2FsbF9uZXRkZXZpY2Vfbm90aWZpZXJzX2luZm8rMHg1MS8weDkwIG5ldC9jb3JlL2Rldi5jOjE2 NDcKIGNhbGxfbmV0ZGV2aWNlX25vdGlmaWVycyBuZXQvY29yZS9kZXYuYzoxNjYzCiByb2xsYmFj a19yZWdpc3RlcmVkX21hbnkrMHg5MTkvMHhlYjAgbmV0L2NvcmUvZGV2LmM6Njg0MQogdW5yZWdp c3Rlcl9uZXRkZXZpY2VfbWFueS5wYXJ0LjEwNSsweDg3LzB4NDQwIG5ldC9jb3JlL2Rldi5jOjc4 ODEKIHVucmVnaXN0ZXJfbmV0ZGV2aWNlX21hbnkgbmV0L2NvcmUvZGV2LmM6Nzg4MAogZGVmYXVs dF9kZXZpY2VfZXhpdF9iYXRjaCsweDRmYS8weDY0MCBuZXQvY29yZS9kZXYuYzo4MzMzCiBvcHNf ZXhpdF9saXN0LmlzcmEuNCsweDEwMC8weDE1MCBuZXQvY29yZS9uZXRfbmFtZXNwYWNlLmM6MTQ0 CiBjbGVhbnVwX25ldCsweDVhOC8weGI0MCBuZXQvY29yZS9uZXRfbmFtZXNwYWNlLmM6NDYzCiBw cm9jZXNzX29uZV93b3JrKzB4YzA0LzB4MWMxMCBrZXJuZWwvd29ya3F1ZXVlLmM6MjA5Nwogd29y a2VyX3RocmVhZCsweDIyMy8weDE5YzAga2VybmVsL3dvcmtxdWV1ZS5jOjIyMzEKIGt0aHJlYWQr MHgzNWUvMHg0MzAga2VybmVsL2t0aHJlYWQuYzoyMzEKIHJldF9mcm9tX2ZvcmsrMHgzMS8weDQw IGFyY2gveDg2L2VudHJ5L2VudHJ5XzY0LlM6NDMwCkNvZGU6IDNjIDMyIDAwIDBmIDg1IDcwIDBi IDAwIDAwIDQ4IGI4IDAwIDAyIDAwIDAwIDAwIDAwIGFkIGRlIDQ5IDg5CjQ3IDc4IGU5IDkzIGZl IGZmIGZmIDQ5IDhkIDU3IDcwIDQ5IDhkIDVmIDc4IGViIDllIGU4IDg4IDdhIDE0IGZlIDwwZj4K MGIgNDggOGIgOWQgMjggZmUgZmYgZmYgZTggN2EgN2EgMTQgZmUgNDggYjggMDAgMDAgMDAgMDAg MDAKUklQOiByb2xsYmFja19yZWdpc3RlcmVkX21hbnkrMHgzNDgvMHhlYjAgUlNQOiBmZmZmODgw MDY5MmRlN2YwCi0tLVsgZW5kIHRyYWNlIGUwYjI5YzU3ZTliMzI5MmMgXS0tLQoKUmVwb3J0ZWQt Ynk6IEFuZHJleSBLb25vdmFsb3YgPGFuZHJleWtudmxAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1i eTogTmlrb2xheSBBbGVrc2FuZHJvdiA8bmlrb2xheUBjdW11bHVzbmV0d29ya3MuY29tPgpUZXN0 ZWQtYnk6IEFuZHJleSBLb25vdmFsb3YgPGFuZHJleWtudmxAZ29vZ2xlLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY2 L2lwNm1yLmMgfCAxMyArKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25z KCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNm1yLmMgYi9uZXQv aXB2Ni9pcDZtci5jCmluZGV4IDYwNGQ4OTUuLjcyYTAwZTQgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2 L2lwNm1yLmMKKysrIGIvbmV0L2lwdjYvaXA2bXIuYwpAQCAtNzc0LDcgKzc3NCw4IEBAIHN0YXRp YyBzdHJ1Y3QgbmV0X2RldmljZSAqaXA2bXJfcmVnX3ZpZihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVj dCBtcjZfdGFibGUgKm1ydCkKICAqCURlbGV0ZSBhIFZJRiBlbnRyeQogICovCiAKLXN0YXRpYyBp bnQgbWlmNl9kZWxldGUoc3RydWN0IG1yNl90YWJsZSAqbXJ0LCBpbnQgdmlmaSwgc3RydWN0IGxp c3RfaGVhZCAqaGVhZCkKK3N0YXRpYyBpbnQgbWlmNl9kZWxldGUoc3RydWN0IG1yNl90YWJsZSAq bXJ0LCBpbnQgdmlmaSwgaW50IG5vdGlmeSwKKwkJICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKmhl YWQpCiB7CiAJc3RydWN0IG1pZl9kZXZpY2UgKnY7CiAJc3RydWN0IG5ldF9kZXZpY2UgKmRldjsK QEAgLTgyMCw3ICs4MjEsNyBAQCBzdGF0aWMgaW50IG1pZjZfZGVsZXRlKHN0cnVjdCBtcjZfdGFi bGUgKm1ydCwgaW50IHZpZmksIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpCiAJCQkJCSAgICAgZGV2 LT5pZmluZGV4LCAmaW42X2Rldi0+Y25mKTsKIAl9CiAKLQlpZiAodi0+ZmxhZ3MgJiBNSUZGX1JF R0lTVEVSKQorCWlmICgodi0+ZmxhZ3MgJiBNSUZGX1JFR0lTVEVSKSAmJiAhbm90aWZ5KQogCQl1 bnJlZ2lzdGVyX25ldGRldmljZV9xdWV1ZShkZXYsIGhlYWQpOwogCiAJZGV2X3B1dChkZXYpOwpA QCAtMTMzMSw3ICsxMzMyLDYgQEAgc3RhdGljIGludCBpcDZtcl9kZXZpY2VfZXZlbnQoc3RydWN0 IG5vdGlmaWVyX2Jsb2NrICp0aGlzLAogCXN0cnVjdCBtcjZfdGFibGUgKm1ydDsKIAlzdHJ1Y3Qg bWlmX2RldmljZSAqdjsKIAlpbnQgY3Q7Ci0JTElTVF9IRUFEKGxpc3QpOwogCiAJaWYgKGV2ZW50 ICE9IE5FVERFVl9VTlJFR0lTVEVSKQogCQlyZXR1cm4gTk9USUZZX0RPTkU7CkBAIC0xMzQwLDEw ICsxMzQwLDkgQEAgc3RhdGljIGludCBpcDZtcl9kZXZpY2VfZXZlbnQoc3RydWN0IG5vdGlmaWVy X2Jsb2NrICp0aGlzLAogCQl2ID0gJm1ydC0+dmlmNl90YWJsZVswXTsKIAkJZm9yIChjdCA9IDA7 IGN0IDwgbXJ0LT5tYXh2aWY7IGN0KyssIHYrKykgewogCQkJaWYgKHYtPmRldiA9PSBkZXYpCi0J CQkJbWlmNl9kZWxldGUobXJ0LCBjdCwgJmxpc3QpOworCQkJCW1pZjZfZGVsZXRlKG1ydCwgY3Qs IDEsIE5VTEwpOwogCQl9CiAJfQotCXVucmVnaXN0ZXJfbmV0ZGV2aWNlX21hbnkoJmxpc3QpOwog CiAJcmV0dXJuIE5PVElGWV9ET05FOwogfQpAQCAtMTU1Miw3ICsxNTUxLDcgQEAgc3RhdGljIHZv aWQgbXJvdXRlX2NsZWFuX3RhYmxlcyhzdHJ1Y3QgbXI2X3RhYmxlICptcnQsIGJvb2wgYWxsKQog CWZvciAoaSA9IDA7IGkgPCBtcnQtPm1heHZpZjsgaSsrKSB7CiAJCWlmICghYWxsICYmIChtcnQt PnZpZjZfdGFibGVbaV0uZmxhZ3MgJiBWSUZGX1NUQVRJQykpCiAJCQljb250aW51ZTsKLQkJbWlm Nl9kZWxldGUobXJ0LCBpLCAmbGlzdCk7CisJCW1pZjZfZGVsZXRlKG1ydCwgaSwgMCwgJmxpc3Qp OwogCX0KIAl1bnJlZ2lzdGVyX25ldGRldmljZV9tYW55KCZsaXN0KTsKIApAQCAtMTcwNiw3ICsx NzA1LDcgQEAgaW50IGlwNl9tcm91dGVfc2V0c29ja29wdChzdHJ1Y3Qgc29jayAqc2ssIGludCBv cHRuYW1lLCBjaGFyIF9fdXNlciAqb3B0dmFsLCB1bnMKIAkJaWYgKGNvcHlfZnJvbV91c2VyKCZt aWZpLCBvcHR2YWwsIHNpemVvZihtaWZpX3QpKSkKIAkJCXJldHVybiAtRUZBVUxUOwogCQlydG5s X2xvY2soKTsKLQkJcmV0ID0gbWlmNl9kZWxldGUobXJ0LCBtaWZpLCBOVUxMKTsKKwkJcmV0ID0g bWlmNl9kZWxldGUobXJ0LCBtaWZpLCAwLCBOVUxMKTsKIAkJcnRubF91bmxvY2soKTsKIAkJcmV0 dXJuIHJldDsKIAotLSAKMi40LjExCgoKRnJvbSA3NzZiNDBkYmYwNzA4OGM1NjM3OTk1Y2IzMWM2 OWM1OTE3MGE1YmRlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNb2hhbWFkIEhhaiBZ YWhpYSA8bW9oYW1hZEBtZWxsYW5veC5jb20+CkRhdGU6IFRodSwgMzAgTWFyIDIwMTcgMTc6MDA6 MjUgKzAzMDAKU3ViamVjdDogW1BBVENIIDMwLzQxXSBuZXQvbWx4NTogRml4IGRyaXZlciBsb2Fk IGJhZCBmbG93IHdoZW4gaGF2aW5nIGZ3CiBpbml0aWFsaXppbmcgdGltZW91dAoKWyBVcHN0cmVh bSBjb21taXQgNTUzNzhhMjM4ZTA0YjM5Y2M4Mjk1N2Q5MWQxNjQ5OTcwNGVhNzE5YiBdCgpJZiBG VyBpcyBzdHVjayBpbiBpbml0aWFsaXppbmcgc3RhdGUgd2Ugd2lsbCBza2lwIHRoZSBkcml2ZXIg bG9hZCwgYnV0CmN1cnJlbnQgZXJyb3IgaGFuZGxpbmcgZmxvdyBkb2Vzbid0IGNsZWFuIHByZXZp b3VzbHkgYWxsb2NhdGVkIGNvbW1hbmQKaW50ZXJmYWNlIHJlc291cmNlcy4KCkZpeGVzOiBlMzI5 NzI0NmMyYzggKCduZXQvbWx4NV9jb3JlOiBXYWl0IGZvciBGVyByZWFkaW5lc3Mgb24gc3RhcnR1 cCcpClNpZ25lZC1vZmYtYnk6IE1vaGFtYWQgSGFqIFlhaGlhIDxtb2hhbWFkQG1lbGxhbm94LmNv bT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0t LQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4uYyB8IDIgKy0K IDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9tYWluLmMgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbWFpbi5jCmluZGV4IDRhY2EyNjUu LjRlZTdlYTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUv Y29yZS9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L21haW4uYwpAQCAtMTAwMSw3ICsxMDAxLDcgQEAgc3RhdGljIGludCBtbHg1X2xvYWRfb25lKHN0 cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X3ByaXYgKnByaXYsCiAJaWYgKGVy cikgewogCQlkZXZfZXJyKCZkZXYtPnBkZXYtPmRldiwgIkZpcm13YXJlIG92ZXIgJWQgTVMgaW4g aW5pdGlhbGl6aW5nIHN0YXRlLCBhYm9ydGluZ1xuIiwKIAkJCUZXX0lOSVRfVElNRU9VVF9NSUxJ KTsKLQkJZ290byBvdXRfZXJyOworCQlnb3RvIGVycl9jbWRfY2xlYW51cDsKIAl9CiAKIAllcnIg PSBtbHg1X2NvcmVfZW5hYmxlX2hjYShkZXYsIDApOwotLSAKMi40LjExCgoKRnJvbSA5YmYwMjkz MDM5OGFlZTA0NWU3MTg4M2UyOTY5ZDNlZDdlNTA3ZTU4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBPciBHZXJsaXR6IDxvZ2VybGl0ekBtZWxsYW5veC5jb20+CkRhdGU6IFRodSwgMzAg TWFyIDIwMTcgMTU6NTY6MTAgKzAyMDAKU3ViamVjdDogW1BBVENIIDMxLzQxXSBuZXQvbWx4NTog RS1Td2l0Y2gsIENvcnJlY3RseSBkZWFsIHdpdGggaW5saW5lIG1vZGUgb24KIENvbm5lY3RYLTUK ClsgVXBzdHJlYW0gY29tbWl0IGM0MTVmNzA0YzgyNzZiYzY4NmFiY2IwNDk3YmYyNjA2MDM4Y2E3 M2MgXQoKT24gQ29ubmVjdFg1IHRoZSB3cWUgaW5saW5lIG1vZGUgaXMgIm5vbmUiIGFuZCBoZW5j ZSB0aGUgRlcKcmVwb3J0cyBNTFg1X0NBUF9JTkxJTkVfTU9ERV9OT1RfUkVRVUlSRUQuCgpGaXgg b3VyIGRldmxpbmsgY2FsbGJhY2tzIHRvIGRlYWwgd2l0aCB0aGF0IG9uIGdldCBhbmQgc2V0LgoK QWxzbyBmaXggdGhlIHRjIGZsb3cgcGFyc2luZyBjb2RlIG5vdCB0byBmYWlsIGFueXRoaW5nIHdo ZW4KaW5saW5lIGlzbid0IHJlcXVpcmVkLgoKRml4ZXM6IGJmZmFhOTE2NTg4ZSAoJ25ldC9tbHg1 OiBFLVN3aXRjaCwgQWRkIGNvbnRyb2wgZm9yIGlubGluZSBtb2RlJykKU2lnbmVkLW9mZi1ieTog T3IgR2VybGl0eiA8b2dlcmxpdHpAbWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogUm9pIERheWFu IDxyb2lkQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVk bUBtZWxsYW5veC5jb20+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2VuX3RjLmMgICAgfCAgMyArLQogLi4uL2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9l c3dpdGNoX29mZmxvYWRzLmMgfCAzNiArKysrKysrKysrKysrKy0tLS0tLS0tCiAyIGZpbGVzIGNo YW5nZWQsIDI2IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90Yy5jIGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmMKaW5kZXggY2M3MTg4MS4uZGM1 YzU5NGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29y ZS9lbl90Yy5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9l bl90Yy5jCkBAIC02MTEsNyArNjExLDggQEAgc3RhdGljIGludCBwYXJzZV9jbHNfZmxvd2VyKHN0 cnVjdCBtbHg1ZV9wcml2ICpwcml2LAogCiAJaWYgKCFlcnIgJiYgZXN3LT5tb2RlID09IFNSSU9W X09GRkxPQURTICYmCiAJICAgIHJlcC0+dnBvcnQgIT0gRkRCX1VQTElOS19WUE9SVCkgewotCQlp ZiAobWluX2lubGluZSA+IGVzdy0+b2ZmbG9hZHMuaW5saW5lX21vZGUpIHsKKwkJaWYgKGVzdy0+ b2ZmbG9hZHMuaW5saW5lX21vZGUgIT0gTUxYNV9JTkxJTkVfTU9ERV9OT05FICYmCisJCSAgICBl c3ctPm9mZmxvYWRzLmlubGluZV9tb2RlIDwgbWluX2lubGluZSkgewogCQkJbmV0ZGV2X3dhcm4o cHJpdi0+bmV0ZGV2LAogCQkJCSAgICAiRmxvdyBpcyBub3Qgb2ZmbG9hZGVkIGR1ZSB0byBtaW4g aW5saW5lIHNldHRpbmcsIHJlcXVpcmVkICVkIGFjdHVhbCAlZFxuIiwKIAkJCQkgICAgbWluX2lu bGluZSwgZXN3LT5vZmZsb2Fkcy5pbmxpbmVfbW9kZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fkcy5jIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYwppbmRl eCA3YmNlMmJkLi40ZDExMWMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fkcy5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoX29mZmxvYWRzLmMKQEAgLTkwOCw4ICs5MDgs NyBAQCBpbnQgbWx4NV9kZXZsaW5rX2Vzd2l0Y2hfaW5saW5lX21vZGVfc2V0KHN0cnVjdCBkZXZs aW5rICpkZXZsaW5rLCB1OCBtb2RlKQogCXN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYgPSBkZXZs aW5rX3ByaXYoZGV2bGluayk7CiAJc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3ID0gZGV2LT5wcml2 LmVzd2l0Y2g7CiAJaW50IG51bV92cG9ydHMgPSBlc3ctPmVuYWJsZWRfdnBvcnRzOwotCWludCBl cnI7Ci0JaW50IHZwb3J0OworCWludCBlcnIsIHZwb3J0OwogCXU4IG1seDVfbW9kZTsKIAogCWlm ICghTUxYNV9DQVBfR0VOKGRldiwgdnBvcnRfZ3JvdXBfbWFuYWdlcikpCkBAIC05MTgsOSArOTE3 LDE3IEBAIGludCBtbHg1X2RldmxpbmtfZXN3aXRjaF9pbmxpbmVfbW9kZV9zZXQoc3RydWN0IGRl dmxpbmsgKmRldmxpbmssIHU4IG1vZGUpCiAJaWYgKGVzdy0+bW9kZSA9PSBTUklPVl9OT05FKQog CQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAKLQlpZiAoTUxYNV9DQVBfRVRIKGRldiwgd3FlX2lubGlu ZV9tb2RlKSAhPQotCSAgICBNTFg1X0NBUF9JTkxJTkVfTU9ERV9WUE9SVF9DT05URVhUKQorCXN3 aXRjaCAoTUxYNV9DQVBfRVRIKGRldiwgd3FlX2lubGluZV9tb2RlKSkgeworCWNhc2UgTUxYNV9D QVBfSU5MSU5FX01PREVfTk9UX1JFUVVJUkVEOgorCQlpZiAobW9kZSA9PSBERVZMSU5LX0VTV0lU Q0hfSU5MSU5FX01PREVfTk9ORSkKKwkJCXJldHVybiAwOworCQkvKiBmYWxsIHRocm91Z2ggKi8K KwljYXNlIE1MWDVfQ0FQX0lOTElORV9NT0RFX0wyOgorCQllc3dfd2FybihkZXYsICJJbmxpbmUg bW9kZSBjYW4ndCBiZSBzZXRcbiIpOwogCQlyZXR1cm4gLUVPUE5PVFNVUFA7CisJY2FzZSBNTFg1 X0NBUF9JTkxJTkVfTU9ERV9WUE9SVF9DT05URVhUOgorCQlicmVhazsKKwl9CiAKIAlpZiAoZXN3 LT5vZmZsb2Fkcy5udW1fZmxvd3MgPiAwKSB7CiAJCWVzd193YXJuKGRldiwgIkNhbid0IHNldCBp bmxpbmUgbW9kZSB3aGVuIGZsb3dzIGFyZSBjb25maWd1cmVkXG4iKTsKQEAgLTk2MywxOCArOTcw LDE0IEBAIGludCBtbHg1X2RldmxpbmtfZXN3aXRjaF9pbmxpbmVfbW9kZV9nZXQoc3RydWN0IGRl dmxpbmsgKmRldmxpbmssIHU4ICptb2RlKQogCWlmIChlc3ctPm1vZGUgPT0gU1JJT1ZfTk9ORSkK IAkJcmV0dXJuIC1FT1BOT1RTVVBQOwogCi0JaWYgKE1MWDVfQ0FQX0VUSChkZXYsIHdxZV9pbmxp bmVfbW9kZSkgIT0KLQkgICAgTUxYNV9DQVBfSU5MSU5FX01PREVfVlBPUlRfQ09OVEVYVCkKLQkJ cmV0dXJuIC1FT1BOT1RTVVBQOwotCiAJcmV0dXJuIGVzd19pbmxpbmVfbW9kZV90b19kZXZsaW5r KGVzdy0+b2ZmbG9hZHMuaW5saW5lX21vZGUsIG1vZGUpOwogfQogCiBpbnQgbWx4NV9lc3dpdGNo X2lubGluZV9tb2RlX2dldChzdHJ1Y3QgbWx4NV9lc3dpdGNoICplc3csIGludCBudmZzLCB1OCAq bW9kZSkKIHsKKwl1OCBwcmV2X21seDVfbW9kZSwgbWx4NV9tb2RlID0gTUxYNV9JTkxJTkVfTU9E RV9MMjsKIAlzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gZXN3LT5kZXY7CiAJaW50IHZwb3J0 OwotCXU4IHByZXZfbWx4NV9tb2RlLCBtbHg1X21vZGUgPSBNTFg1X0lOTElORV9NT0RFX0wyOwog CiAJaWYgKCFNTFg1X0NBUF9HRU4oZGV2LCB2cG9ydF9ncm91cF9tYW5hZ2VyKSkKIAkJcmV0dXJu IC1FT1BOT1RTVVBQOwpAQCAtOTgyLDEwICs5ODUsMTggQEAgaW50IG1seDVfZXN3aXRjaF9pbmxp bmVfbW9kZV9nZXQoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3LCBpbnQgbnZmcywgdTggKm1vZGUp CiAJaWYgKGVzdy0+bW9kZSA9PSBTUklPVl9OT05FKQogCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAK LQlpZiAoTUxYNV9DQVBfRVRIKGRldiwgd3FlX2lubGluZV9tb2RlKSAhPQotCSAgICBNTFg1X0NB UF9JTkxJTkVfTU9ERV9WUE9SVF9DT05URVhUKQotCQlyZXR1cm4gLUVPUE5PVFNVUFA7CisJc3dp dGNoIChNTFg1X0NBUF9FVEgoZGV2LCB3cWVfaW5saW5lX21vZGUpKSB7CisJY2FzZSBNTFg1X0NB UF9JTkxJTkVfTU9ERV9OT1RfUkVRVUlSRUQ6CisJCW1seDVfbW9kZSA9IE1MWDVfSU5MSU5FX01P REVfTk9ORTsKKwkJZ290byBvdXQ7CisJY2FzZSBNTFg1X0NBUF9JTkxJTkVfTU9ERV9MMjoKKwkJ bWx4NV9tb2RlID0gTUxYNV9JTkxJTkVfTU9ERV9MMjsKKwkJZ290byBvdXQ7CisJY2FzZSBNTFg1 X0NBUF9JTkxJTkVfTU9ERV9WUE9SVF9DT05URVhUOgorCQlnb3RvIHF1ZXJ5X3Zwb3J0czsKKwl9 CiAKK3F1ZXJ5X3Zwb3J0czoKIAlmb3IgKHZwb3J0ID0gMTsgdnBvcnQgPD0gbnZmczsgdnBvcnQr KykgewogCQltbHg1X3F1ZXJ5X25pY192cG9ydF9taW5faW5saW5lKGRldiwgdnBvcnQsICZtbHg1 X21vZGUpOwogCQlpZiAodnBvcnQgPiAxICYmIHByZXZfbWx4NV9tb2RlICE9IG1seDVfbW9kZSkK QEAgLTk5Myw2ICsxMDA0LDcgQEAgaW50IG1seDVfZXN3aXRjaF9pbmxpbmVfbW9kZV9nZXQoc3Ry dWN0IG1seDVfZXN3aXRjaCAqZXN3LCBpbnQgbnZmcywgdTggKm1vZGUpCiAJCXByZXZfbWx4NV9t b2RlID0gbWx4NV9tb2RlOwogCX0KIAorb3V0OgogCSptb2RlID0gbWx4NV9tb2RlOwogCXJldHVy biAwOwogfQotLSAKMi40LjExCgoKRnJvbSBmNWZkODdiNzA2ZTVkOTFjNGNkMTZkMzFmZmEzZWRh ZjhkYzFjMTMwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFdWdlbmlhIEVtYW50YXll diA8ZXVnZW5pYUBtZWxsYW5veC5jb20+CkRhdGU6IFdlZCwgMjIgTWFyIDIwMTcgMTE6NDQ6MTQg KzAyMDAKU3ViamVjdDogW1BBVENIIDMyLzQxXSBuZXQvbWx4NWU6IEZpeCBzbWFsbCBwYWNrZXQg dGhyZXNob2xkCgpbIFVwc3RyZWFtIGNvbW1pdCBjYmFkOGNkZGI2ZWQ3ZWYzYTVmMGE5YTcwZjE3 MTFkNGQ3ZmI5YThmIF0KClJYIHBhY2tldCBoZWFkZXJzIGFyZSBtZWFudCB0byBiZSBjb250YWlu ZWQgaW4gU0tCIGxpbmVhciBwYXJ0LAphbmQgY2hvc2UgYSB0aHJlc2hvbGQgb2YgMTI4LgpJdCB0 dXJucyBvdXQgdGhpcyBpcyBub3QgZW5vdWdoLCBpLmUuIGZvciBJUHY2IHBhY2tldCBvdmVyIFZ4 TEFOLgpJbiB0aGlzIGNhc2UsIFVEUC9JUHY0IG5lZWRzIDQyIGJ5dGVzLCBHRU5FVkUgaGVhZGVy IGlzIDggYnl0ZXMsCmFuZCA4NiBieXRlcyBmb3IgVENQL0lQdjYuIEluIHRvdGFsIDEzNiBieXRl cyB0aGF0IGlzIG1vcmUgdGhhbgpjdXJyZW50IDEyOCBieXRlcy4gSW4gdGhpcyBjYXNlIGV4cGFu ZCBoZWFkZXIgZmxvdyBpcyByZWFjaGVkLgpUaGUgd2FybmluZyBpbiBza2JfdHJ5X2NvYWxlc2Nl KCkgY2F1c2VkIGJ5IGEgd3JvbmcgdHJ1ZXNpemUKd2FzIGFscmVhZHkgZml4ZWQgaGVyZToKY29t bWl0IDE1OGYzMjNiOTg2OCAoIm5ldDogYWRqdXN0IHNrYi0+dHJ1ZXNpemUgaW4gcHNrYl9leHBh bmRfaGVhZCgpIikuClN0aWxsLCB3ZSBwcmVmZXIgdG8gdG90YWxseSBhdm9pZCB0aGUgZXhwYW5k IGhlYWRlciBmbG93IGZvciBwZXJmb3JtYW5jZSByZWFzb25zLgpUZXN0ZWQgcmVndWxhciBUQ1Bf U1RSRUFNIHdpdGggaXBlcmYgZm9yIDEgYW5kIDggc3RyZWFtcywgbm8gZGVncmFkYXRpb24gd2Fz IGZvdW5kLgoKRml4ZXM6IDQ2MTAxN2NiMDA2YSAoIm5ldC9tbHg1ZTogU3VwcG9ydCBSWCBtdWx0 aS1wYWNrZXQgV1FFIChTdHJpZGluZyBSUSkiKQpTaWduZWQtb2ZmLWJ5OiBFdWdlbmlhIEVtYW50 YXlldiA8ZXVnZW5pYUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVk IDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9lbi5oIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAx IGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4NS9jb3JlL2VuLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUv ZW4uaAppbmRleCA0MWRiNDcwLi4wMTQ1NzY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaAorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvZW4uaApAQCAtODIsNyArODIsNyBAQAogI2RlZmluZSBNTFg1RV9W QUxJRF9OVU1fTVRUUyhudW1fbXR0cykgKE1MWDVfTVRUX09DVFcobnVtX210dHMpIC0gMSA8PSBV MTZfTUFYKQogCiAjZGVmaW5lIE1MWDVfVU1SX0FMSUdOCQkJCSgyMDQ4KQotI2RlZmluZSBNTFg1 X01QV1JRX1NNQUxMX1BBQ0tFVF9USFJFU0hPTEQJKDEyOCkKKyNkZWZpbmUgTUxYNV9NUFdSUV9T TUFMTF9QQUNLRVRfVEhSRVNIT0xECSgyNTYpCiAKICNkZWZpbmUgTUxYNUVfUEFSQU1TX0RFRkFV TFRfTFJPX1dRRV9TWiAgICAgICAgICAgICAgICAgKDY0ICogMTAyNCkKICNkZWZpbmUgTUxYNUVf REVGQVVMVF9MUk9fVElNRU9VVCAgICAgICAgICAgICAgICAgICAgICAgMzIKLS0gCjIuNC4xMQoK CkZyb20gMjA3NzdmNWY5NDkwYzc5OWQyNGUwNTQ2YjNlZmY0OGE1NGI5NmFhNiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogSWxhbiBUYXlhcmkgPGlsYW50QG1lbGxhbm94LmNvbT4KRGF0 ZTogVGh1LCAyIE1hciAyMDE3IDE1OjQ5OjQ1ICswMjAwClN1YmplY3Q6IFtQQVRDSCAzMy80MV0g bmV0L21seDVlOiBGaXggRVRIVE9PTF9HUlhDTFNSTEFMTCBoYW5kbGluZwoKWyBVcHN0cmVhbSBj b21taXQgNWU4MmM5ZTRlZDYwYmViYTgzZjQ2YTFhNWE4MzA3Yjk5YTIzZTk4MiBdCgpIYW5kbGVy IGZvciBFVEhUT09MX0dSWENMU1JMQUxMIG11c3Qgc2V0IGluZm8tPmRhdGEgdG8gdGhlIHNpemUK b2YgdGhlIHRhYmxlLCByZWdhcmRsZXNzIG9mIHRoZSBhbW91bnQgb2YgZW50cmllcyBpbiBpdC4K RXhpc3RpbmcgY29kZSBkb2VzIG5vdCBkbyB0aGF0LCBhbmQgdGhpcyBicmVha3MgYWxsIHVzYWdl IG9mIGV0aHRvb2wgLU4Kb3IgLW4gd2l0aG91dCBleHBsaWNpdCBsb2NhdGlvbiwgd2l0aCB0aGlz IGVycm9yOgpybWdyOiBJbnZhbGlkIFJYIGNsYXNzIHJ1bGVzIHRhYmxlIHNpemU6IFN1Y2Nlc3MK ClNldCBpbmZvLT5kYXRhIHRvIHRoZSB0YWJsZSBzaXplLgoKVGVzdGVkOgpldGh0b29sIC1uIGVu czgKZXRodG9vbCAtTiBlbnM4IGZsb3ctdHlwZSBpcDQgc3JjLWlwIDEuMS4xLjEgZHN0LWlwIDIu Mi4yLjIgYWN0aW9uIDEKZXRodG9vbCAtTiBlbnM4IGZsb3ctdHlwZSBpcDQgc3JjLWlwIDEuMS4x LjEgZHN0LWlwIDIuMi4yLjIgYWN0aW9uIDEgbG9jIDU1CmV0aHRvb2wgLW4gZW5zOApldGh0b29s IC1OIGVuczggZGVsZXRlIDEwMjMKZXRodG9vbCAtTiBlbnM4IGRlbGV0ZSA1NQoKRml4ZXM6IGY5 MTNhNzJhYTAwOCAoIm5ldC9tbHg1ZTogQWRkIHN1cHBvcnQgdG8gZ2V0IGV0aHRvb2wgZmxvdyBy dWxlcyIpClNpZ25lZC1vZmYtYnk6IElsYW4gVGF5YXJpIDxpbGFudEBtZWxsYW5veC5jb20+ClNp Z25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRy aXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9mc19ldGh0b29sLmMgfCAx ICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9mc19ldGh0b29sLmMgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fZnNfZXRodG9vbC5jCmluZGV4IGYz M2Y3MmQuLjMyZDU2Y2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9lbl9mc19ldGh0b29sLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL2VuX2ZzX2V0aHRvb2wuYwpAQCAtNTY0LDYgKzU2NCw3IEBAIGludCBt bHg1ZV9ldGh0b29sX2dldF9hbGxfZmxvd3Moc3RydWN0IG1seDVlX3ByaXYgKnByaXYsIHN0cnVj dCBldGh0b29sX3J4bmZjICppCiAJaW50IGlkeCA9IDA7CiAJaW50IGVyciA9IDA7CiAKKwlpbmZv LT5kYXRhID0gTUFYX05VTV9PRl9FVEhUT09MX1JVTEVTOwogCXdoaWxlICgoIWVyciB8fCBlcnIg PT0gLUVOT0VOVCkgJiYgaWR4IDwgaW5mby0+cnVsZV9jbnQpIHsKIAkJZXJyID0gbWx4NWVfZXRo dG9vbF9nZXRfZmxvdyhwcml2LCBpbmZvLCBsb2NhdGlvbik7CiAJCWlmICghZXJyKQotLSAKMi40 LjExCgoKRnJvbSA1MmQ2N2Y4MDUyN2U2YjI3ZGFiZWFiMGY4YzM5N2Y3ODUzNjdhNjM2IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTb2hlaWwgSGFzc2FzIFllZ2FuZWggPHNvaGVpbEBn b29nbGUuY29tPgpEYXRlOiBTYXQsIDE4IE1hciAyMDE3IDE3OjAyOjU5IC0wNDAwClN1YmplY3Q6 IFtQQVRDSCAzNC80MV0gdGNwOiBmaXggU0NNX1RJTUVTVEFNUElOR19PUFRfU1RBVFMgZm9yIG5v cm1hbCBza2JzCgpbIFVwc3RyZWFtIGNvbW1pdCA4NjA1MzMwYWFjNWE1Nzg1NjMwYWVjOGY2NDM3 OGE1NDg5MTkzN2NjIF0KCl9fc29ja19yZWN2X3RpbWVzdGFtcCBjYW4gYmUgY2FsbGVkIGZvciBi b3RoIG5vcm1hbCBza2JzIChmb3IKcmVjZWl2ZSB0aW1lc3RhbXBzKSBhbmQgZm9yIHNrYnMgb24g dGhlIGVycm9yIHF1ZXVlIChmb3IgdHJhbnNtaXQKdGltZXN0YW1wcykuCgpDb21taXQgMWM4ODU4 MDhlNDU2Cih0Y3A6IFNPRl9USU1FU1RBTVBJTkdfT1BUX1NUQVRTIG9wdGlvbiBmb3IgU09fVElN RVNUQU1QSU5HKQphc3N1bWVzIGFueSBza2IgcGFzc2VkIHRvIF9fc29ja19yZWN2X3RpbWVzdGFt cCBhcmUgZnJvbQp0aGUgZXJyb3IgcXVldWUsIGNvbnRhaW5pbmcgT1BUX1NUQVRTIGluIHRoZSBj b250ZW50IG9mIHRoZSBza2IuClRoaXMgcmVzdWx0cyBpbiBhY2Nlc3NpbmcgaW52YWxpZCBtZW1v cnkgb3IgZ2VuZXJhdGluZyBqdW5rCmRhdGEuCgpUbyBmaXggdGhpcywgc2V0IHNrYi0+cGt0X3R5 cGUgdG8gUEFDS0VUX09VVEdPSU5HIGZvciBwYWNrZXRzCm9uIHRoZSBlcnJvciBxdWV1ZS4gVGhp cyBpcyBzYWZlIGJlY2F1c2Ugb24gdGhlIHJlY2VpdmUgcGF0aApvbiBsb2NhbCBzb2NrZXRzIHNr Yi0+cGt0X3R5cGUgaXMgbmV2ZXIgc2V0IHRvIFBBQ0tFVF9PVVRHT0lORy4KV2l0aCB0aGF0LCBj b3B5IE9QVF9TVEFUUyBmcm9tIGEgcGFja2V0LCBvbmx5IGlmIGl0cyBwa3RfdHlwZQppcyBQQUNL RVRfT1VUR09JTkcuCgpGaXhlczogMWM4ODU4MDhlNDU2ICgidGNwOiBTT0ZfVElNRVNUQU1QSU5H X09QVF9TVEFUUyBvcHRpb24gZm9yIFNPX1RJTUVTVEFNUElORyIpClJlcG9ydGVkLWJ5OiBKb25n SHdhbiBLaW0gPHp6b3J1MDA3QGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogU29oZWlsIEhhc3Nh cyBZZWdhbmVoIDxzb2hlaWxAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0 IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBXaWxsZW0gZGUgQnJ1aWpuIDx3 aWxsZW1iQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9za2J1ZmYuYyB8IDEwICsrKysrKysrKysKIG5l dC9zb2NrZXQuYyAgICAgIHwgMTMgKysrKysrKysrKysrLQogMiBmaWxlcyBjaGFuZ2VkLCAyMiBp bnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvc2tidWZm LmMgYi9uZXQvY29yZS9za2J1ZmYuYwppbmRleCBjM2NiOTljLi5lNGI2ZDU0IDEwMDY0NAotLS0g YS9uZXQvY29yZS9za2J1ZmYuYworKysgYi9uZXQvY29yZS9za2J1ZmYuYwpAQCAtMzcwMCw2ICsz NzAwLDE1IEBAIHN0YXRpYyB2b2lkIHNvY2tfcm1lbV9mcmVlKHN0cnVjdCBza19idWZmICpza2Ip CiAJYXRvbWljX3N1Yihza2ItPnRydWVzaXplLCAmc2stPnNrX3JtZW1fYWxsb2MpOwogfQogCitz dGF0aWMgdm9pZCBza2Jfc2V0X2Vycl9xdWV1ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQoreworCS8q IHBrdF90eXBlIG9mIHNrYnMgcmVjZWl2ZWQgb24gbG9jYWwgc29ja2V0cyBpcyBuZXZlciBQQUNL RVRfT1VUR09JTkcuCisJICogU28sIGl0IGlzIHNhZmUgdG8gKG1pcyl1c2UgaXQgdG8gbWFyayBz a2JzIG9uIHRoZSBlcnJvciBxdWV1ZS4KKwkgKi8KKwlza2ItPnBrdF90eXBlID0gUEFDS0VUX09V VEdPSU5HOworCUJVSUxEX0JVR19PTihQQUNLRVRfT1VUR09JTkcgPT0gMCk7Cit9CisKIC8qCiAg KiBOb3RlOiBXZSBkb250IG1lbSBjaGFyZ2UgZXJyb3IgcGFja2V0cyAobm8gc2tfZm9yd2FyZF9h bGxvYyBjaGFuZ2VzKQogICovCkBAIC0zNzEzLDYgKzM3MjIsNyBAQCBpbnQgc29ja19xdWV1ZV9l cnJfc2tiKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAlza2ItPnNrID0g c2s7CiAJc2tiLT5kZXN0cnVjdG9yID0gc29ja19ybWVtX2ZyZWU7CiAJYXRvbWljX2FkZChza2It PnRydWVzaXplLCAmc2stPnNrX3JtZW1fYWxsb2MpOworCXNrYl9zZXRfZXJyX3F1ZXVlKHNrYik7 CiAKIAkvKiBiZWZvcmUgZXhpdGluZyByY3Ugc2VjdGlvbiwgbWFrZSBzdXJlIGRzdCBpcyByZWZj b3VudGVkICovCiAJc2tiX2RzdF9mb3JjZShza2IpOwpkaWZmIC0tZ2l0IGEvbmV0L3NvY2tldC5j IGIvbmV0L3NvY2tldC5jCmluZGV4IDAyYmQ5MjQuLmJmZGIzNTggMTAwNjQ0Ci0tLSBhL25ldC9z b2NrZXQuYworKysgYi9uZXQvc29ja2V0LmMKQEAgLTY1NCw2ICs2NTQsMTYgQEAgaW50IGtlcm5l bF9zZW5kbXNnKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBtc2doZHIgKm1zZywKIH0KIEVY UE9SVF9TWU1CT0woa2VybmVsX3NlbmRtc2cpOwogCitzdGF0aWMgYm9vbCBza2JfaXNfZXJyX3F1 ZXVlKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IpCit7CisJLyogcGt0X3R5cGUgb2Ygc2ticyBl bnF1ZXVlZCBvbiB0aGUgZXJyb3IgcXVldWUgYXJlIHNldCB0bworCSAqIFBBQ0tFVF9PVVRHT0lO RyBpbiBza2Jfc2V0X2Vycl9xdWV1ZSgpLiBUaGlzIGlzIG9ubHkgc2FmZSB0byBkbworCSAqIGlu IHJlY3Ztc2csIHNpbmNlIHNrYnMgcmVjZWl2ZWQgb24gYSBsb2NhbCBzb2NrZXQgd2lsbCBuZXZl cgorCSAqIGhhdmUgYSBwa3RfdHlwZSBvZiBQQUNLRVRfT1VUR09JTkcuCisJICovCisJcmV0dXJu IHNrYi0+cGt0X3R5cGUgPT0gUEFDS0VUX09VVEdPSU5HOworfQorCiAvKgogICogY2FsbGVkIGZy b20gc29ja19yZWN2X3RpbWVzdGFtcCgpIGlmIHNvY2tfZmxhZyhzaywgU09DS19SQ1ZUU1RBTVAp CiAgKi8KQEAgLTY5Nyw3ICs3MDcsOCBAQCB2b2lkIF9fc29ja19yZWN2X3RpbWVzdGFtcChzdHJ1 Y3QgbXNnaGRyICptc2csIHN0cnVjdCBzb2NrICpzaywKIAkJcHV0X2Ntc2cobXNnLCBTT0xfU09D S0VULAogCQkJIFNDTV9USU1FU1RBTVBJTkcsIHNpemVvZih0c3MpLCAmdHNzKTsKIAotCQlpZiAo c2tiLT5sZW4gJiYgKHNrLT5za190c2ZsYWdzICYgU09GX1RJTUVTVEFNUElOR19PUFRfU1RBVFMp KQorCQlpZiAoc2tiX2lzX2Vycl9xdWV1ZShza2IpICYmIHNrYi0+bGVuICYmCisJCSAgICAoc2st PnNrX3RzZmxhZ3MgJiBTT0ZfVElNRVNUQU1QSU5HX09QVF9TVEFUUykpCiAJCQlwdXRfY21zZyht c2csIFNPTF9TT0NLRVQsIFNDTV9USU1FU1RBTVBJTkdfT1BUX1NUQVRTLAogCQkJCSBza2ItPmxl biwgc2tiLT5kYXRhKTsKIAl9Ci0tIAoyLjQuMTEKCgpGcm9tIGJkM2FjNTI5MmFkZTljNzY2MmM4 ZTEyMGM0MDkzOTM3YWMyODE0MDcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFNvaGVp bCBIYXNzYXMgWWVnYW5laCA8c29oZWlsQGdvb2dsZS5jb20+CkRhdGU6IFNhdCwgMTggTWFyIDIw MTcgMTc6MDM6MDAgLTA0MDAKU3ViamVjdDogW1BBVENIIDM1LzQxXSB0Y3A6IG1hcmsgc2ticyB3 aXRoIFNDTV9USU1FU1RBTVBJTkdfT1BUX1NUQVRTCgpbIFVwc3RyZWFtIGNvbW1pdCA0ZWYxYjI4 Njk0NDc0MTFhZDNlZjkxYWQ3ZDQ4OTFhODNjMWE1MDlhIF0KClNPRl9USU1FU1RBTVBJTkdfT1BU X1NUQVRTIGNhbiBiZSBlbmFibGVkIGFuZCBkaXNhYmxlZAp3aGlsZSBwYWNrZXRzIGFyZSBjb2xs ZWN0ZWQgb24gdGhlIGVycm9yIHF1ZXVlLgpTbywgY2hlY2tpbmcgU09GX1RJTUVTVEFNUElOR19P UFRfU1RBVFMgaW4gc2stPnNrX3RzZmxhZ3MKaXMgbm90IGVub3VnaCB0byBzYWZlbHkgYXNzdW1l IHRoYXQgdGhlIHNrYiBjb250YWlucwpPUFRfU1RBVFMgZGF0YS4KCkFkZCBhIGJpdCBpbiBzb2Nr X2V4dGVycl9za2IgdG8gaW5kaWNhdGUgd2hldGhlciB0aGUKc2tiIGNvbnRhaW5zIG9wdF9zdGF0 cyBkYXRhLgoKRml4ZXM6IDFjODg1ODA4ZTQ1NiAoInRjcDogU09GX1RJTUVTVEFNUElOR19PUFRf U1RBVFMgb3B0aW9uIGZvciBTT19USU1FU1RBTVBJTkciKQpSZXBvcnRlZC1ieTogSm9uZ0h3YW4g S2ltIDx6em9ydTAwN0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IFNvaGVpbCBIYXNzYXMgWWVn YW5laCA8c29oZWlsQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1 bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogV2lsbGVtIGRlIEJydWlqbiA8d2lsbGVt YkBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9saW51eC9lcnJxdWV1ZS5oIHwgIDIgKysKIG5ldC9jb3Jl L3NrYnVmZi5jICAgICAgICB8IDE3ICsrKysrKysrKysrLS0tLS0tCiBuZXQvc29ja2V0LmMgICAg ICAgICAgICAgfCAgMiArLQogMyBmaWxlcyBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspLCA3IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZXJycXVldWUuaCBiL2luY2x1 ZGUvbGludXgvZXJycXVldWUuaAppbmRleCA5Y2EyM2ZjLi42ZmRmYzg4IDEwMDY0NAotLS0gYS9p bmNsdWRlL2xpbnV4L2VycnF1ZXVlLmgKKysrIGIvaW5jbHVkZS9saW51eC9lcnJxdWV1ZS5oCkBA IC0yMCw2ICsyMCw4IEBAIHN0cnVjdCBzb2NrX2V4dGVycl9za2IgewogCXN0cnVjdCBzb2NrX2V4 dGVuZGVkX2VycgllZTsKIAl1MTYJCQkJYWRkcl9vZmZzZXQ7CiAJX19iZTE2CQkJCXBvcnQ7CisJ dTgJCQkJb3B0X3N0YXRzOjEsCisJCQkJCXVudXNlZDo3OwogfTsKIAogI2VuZGlmCmRpZmYgLS1n aXQgYS9uZXQvY29yZS9za2J1ZmYuYyBiL25ldC9jb3JlL3NrYnVmZi5jCmluZGV4IGU0YjZkNTQu Ljg4Nzk5NWUgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL3NrYnVmZi5jCisrKyBiL25ldC9jb3JlL3Nr YnVmZi5jCkBAIC0zNzk5LDE2ICszNzk5LDIwIEBAIEVYUE9SVF9TWU1CT0woc2tiX2Nsb25lX3Nr KTsKIAogc3RhdGljIHZvaWQgX19za2JfY29tcGxldGVfdHhfdGltZXN0YW1wKHN0cnVjdCBza19i dWZmICpza2IsCiAJCQkJCXN0cnVjdCBzb2NrICpzaywKLQkJCQkJaW50IHRzdHlwZSkKKwkJCQkJ aW50IHRzdHlwZSwKKwkJCQkJYm9vbCBvcHRfc3RhdHMpCiB7CiAJc3RydWN0IHNvY2tfZXh0ZXJy X3NrYiAqc2VycjsKIAlpbnQgZXJyOwogCisJQlVJTERfQlVHX09OKHNpemVvZihzdHJ1Y3Qgc29j a19leHRlcnJfc2tiKSA+IHNpemVvZihza2ItPmNiKSk7CisKIAlzZXJyID0gU0tCX0VYVF9FUlIo c2tiKTsKIAltZW1zZXQoc2VyciwgMCwgc2l6ZW9mKCpzZXJyKSk7CiAJc2Vyci0+ZWUuZWVfZXJy bm8gPSBFTk9NU0c7CiAJc2Vyci0+ZWUuZWVfb3JpZ2luID0gU09fRUVfT1JJR0lOX1RJTUVTVEFN UElORzsKIAlzZXJyLT5lZS5lZV9pbmZvID0gdHN0eXBlOworCXNlcnItPm9wdF9zdGF0cyA9IG9w dF9zdGF0czsKIAlzZXJyLT5oZWFkZXIuaDQuaWlmID0gc2tiLT5kZXYgPyBza2ItPmRldi0+aWZp bmRleCA6IDA7CiAJaWYgKHNrLT5za190c2ZsYWdzICYgU09GX1RJTUVTVEFNUElOR19PUFRfSUQp IHsKIAkJc2Vyci0+ZWUuZWVfZGF0YSA9IHNrYl9zaGluZm8oc2tiKS0+dHNrZXk7CkBAIC0zODUw LDcgKzM4NTQsNyBAQCB2b2lkIHNrYl9jb21wbGV0ZV90eF90aW1lc3RhbXAoc3RydWN0IHNrX2J1 ZmYgKnNrYiwKIAkgKi8KIAlpZiAobGlrZWx5KGF0b21pY19pbmNfbm90X3plcm8oJnNrLT5za19y ZWZjbnQpKSkgewogCQkqc2tiX2h3dHN0YW1wcyhza2IpID0gKmh3dHN0YW1wczsKLQkJX19za2Jf Y29tcGxldGVfdHhfdGltZXN0YW1wKHNrYiwgc2ssIFNDTV9UU1RBTVBfU05EKTsKKwkJX19za2Jf Y29tcGxldGVfdHhfdGltZXN0YW1wKHNrYiwgc2ssIFNDTV9UU1RBTVBfU05ELCBmYWxzZSk7CiAJ CXNvY2tfcHV0KHNrKTsKIAl9CiB9CkBAIC0zODYxLDcgKzM4NjUsNyBAQCB2b2lkIF9fc2tiX3Rz dGFtcF90eChzdHJ1Y3Qgc2tfYnVmZiAqb3JpZ19za2IsCiAJCSAgICAgc3RydWN0IHNvY2sgKnNr LCBpbnQgdHN0eXBlKQogewogCXN0cnVjdCBza19idWZmICpza2I7Ci0JYm9vbCB0c29ubHk7CisJ Ym9vbCB0c29ubHksIG9wdF9zdGF0cyA9IGZhbHNlOwogCiAJaWYgKCFzaykKIAkJcmV0dXJuOwpA QCAtMzg3NCw5ICszODc4LDEwIEBAIHZvaWQgX19za2JfdHN0YW1wX3R4KHN0cnVjdCBza19idWZm ICpvcmlnX3NrYiwKICNpZmRlZiBDT05GSUdfSU5FVAogCQlpZiAoKHNrLT5za190c2ZsYWdzICYg U09GX1RJTUVTVEFNUElOR19PUFRfU1RBVFMpICYmCiAJCSAgICBzay0+c2tfcHJvdG9jb2wgPT0g SVBQUk9UT19UQ1AgJiYKLQkJICAgIHNrLT5za190eXBlID09IFNPQ0tfU1RSRUFNKQorCQkgICAg c2stPnNrX3R5cGUgPT0gU09DS19TVFJFQU0pIHsKIAkJCXNrYiA9IHRjcF9nZXRfdGltZXN0YW1w aW5nX29wdF9zdGF0cyhzayk7Ci0JCWVsc2UKKwkJCW9wdF9zdGF0cyA9IHRydWU7CisJCX0gZWxz ZQogI2VuZGlmCiAJCQlza2IgPSBhbGxvY19za2IoMCwgR0ZQX0FUT01JQyk7CiAJfSBlbHNlIHsK QEAgLTM4OTUsNyArMzkwMCw3IEBAIHZvaWQgX19za2JfdHN0YW1wX3R4KHN0cnVjdCBza19idWZm ICpvcmlnX3NrYiwKIAllbHNlCiAJCXNrYi0+dHN0YW1wID0ga3RpbWVfZ2V0X3JlYWwoKTsKIAot CV9fc2tiX2NvbXBsZXRlX3R4X3RpbWVzdGFtcChza2IsIHNrLCB0c3R5cGUpOworCV9fc2tiX2Nv bXBsZXRlX3R4X3RpbWVzdGFtcChza2IsIHNrLCB0c3R5cGUsIG9wdF9zdGF0cyk7CiB9CiBFWFBP UlRfU1lNQk9MX0dQTChfX3NrYl90c3RhbXBfdHgpOwogCmRpZmYgLS1naXQgYS9uZXQvc29ja2V0 LmMgYi9uZXQvc29ja2V0LmMKaW5kZXggYmZkYjM1OC4uNjM2MWQzMSAxMDA2NDQKLS0tIGEvbmV0 L3NvY2tldC5jCisrKyBiL25ldC9zb2NrZXQuYwpAQCAtNzA4LDcgKzcwOCw3IEBAIHZvaWQgX19z b2NrX3JlY3ZfdGltZXN0YW1wKHN0cnVjdCBtc2doZHIgKm1zZywgc3RydWN0IHNvY2sgKnNrLAog CQkJIFNDTV9USU1FU1RBTVBJTkcsIHNpemVvZih0c3MpLCAmdHNzKTsKIAogCQlpZiAoc2tiX2lz X2Vycl9xdWV1ZShza2IpICYmIHNrYi0+bGVuICYmCi0JCSAgICAoc2stPnNrX3RzZmxhZ3MgJiBT T0ZfVElNRVNUQU1QSU5HX09QVF9TVEFUUykpCisJCSAgICBTS0JfRVhUX0VSUihza2IpLT5vcHRf c3RhdHMpCiAJCQlwdXRfY21zZyhtc2csIFNPTF9TT0NLRVQsIFNDTV9USU1FU1RBTVBJTkdfT1BU X1NUQVRTLAogCQkJCSBza2ItPmxlbiwgc2tiLT5kYXRhKTsKIAl9Ci0tIAoyLjQuMTEKCgpGcm9t IGJlODkyNDljOWZjYjAxZTk2ODcxMDM4N2M2NGJmNjEyMTg3OTg1MDcgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IEhlcmJlcnQgWHUgPGhlcmJlcnRAZ29uZG9yLmFwYW5hLm9yZy5hdT4K RGF0ZTogVGh1LCAyMCBBcHIgMjAxNyAyMDo1NToxMiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMzYv NDFdIG1hY3ZsYW46IEZpeCBkZXZpY2UgcmVmIGxlYWsgd2hlbiBwdXJnaW5nIGJjX3F1ZXVlCgpb IFVwc3RyZWFtIGNvbW1pdCBmNjQ3ODIxOGU2ZWRjMmE1ODdiOGYxMzJmNjYzNzNiYWE3YjI0OTdj IF0KCldoZW4gYSBwYXJlbnQgbWFjdmxhbiBkZXZpY2UgaXMgZGVzdHJveWVkIHdlIGVuZCB1cCBw dXJnaW5nIGl0cwpicm9hZGNhc3QgcXVldWUgd2l0aG91dCBkcm9wcGluZyB0aGUgZGV2aWNlIHJl ZmVyZW5jZSBjb3VudCBvbgp0aGUgcGFja2V0IHNvdXJjZSBkZXZpY2UuICBUaGlzIGNhdXNlcyB0 aGUgc291cmNlIGRldmljZSB0byBsaW5nZXIuCgpUaGlzIHBhdGNoIGRyb3BzIHRoYXQgcmVmZXJl bmNlIGNvdW50LgoKRml4ZXM6IDI2MDkxNmRmYjQ4YyAoIm1hY3ZsYW46IEZpeCBwb3RlbnRpYWwg dXNlLWFmdGVyIGZyZWUgZm9yLi4uIikKUmVwb3J0ZWQtYnk6IEpvZSBHaGFsYW0gPEpvZS5HaGFs YW1AZGVsbC5jb20+ClNpZ25lZC1vZmYtYnk6IEhlcmJlcnQgWHUgPGhlcmJlcnRAZ29uZG9yLmFw YW5hLm9yZy5hdT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L21hY3ZsYW4uYyB8IDExICsrKysrKysrKystCiAxIGZp bGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L21hY3ZsYW4uYyBiL2RyaXZlcnMvbmV0L21hY3ZsYW4uYwppbmRleCAyMGIz ZmRmMi4uN2Q0OWEzNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvbWFjdmxhbi5jCisrKyBiL2Ry aXZlcnMvbmV0L21hY3ZsYW4uYwpAQCAtMTE0MCw2ICsxMTQwLDcgQEAgc3RhdGljIGludCBtYWN2 bGFuX3BvcnRfY3JlYXRlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiBzdGF0aWMgdm9pZCBtYWN2 bGFuX3BvcnRfZGVzdHJveShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogewogCXN0cnVjdCBtYWN2 bGFuX3BvcnQgKnBvcnQgPSBtYWN2bGFuX3BvcnRfZ2V0X3J0bmwoZGV2KTsKKwlzdHJ1Y3Qgc2tf YnVmZiAqc2tiOwogCiAJZGV2LT5wcml2X2ZsYWdzICY9IH5JRkZfTUFDVkxBTl9QT1JUOwogCW5l dGRldl9yeF9oYW5kbGVyX3VucmVnaXN0ZXIoZGV2KTsKQEAgLTExNDgsNyArMTE0OSwxNSBAQCBz dGF0aWMgdm9pZCBtYWN2bGFuX3BvcnRfZGVzdHJveShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQog CSAqIGJ1dCB3ZSBuZWVkIHRvIGNhbmNlbCBpdCBhbmQgcHVyZ2UgbGVmdCBza2JzIGlmIGFueS4K IAkgKi8KIAljYW5jZWxfd29ya19zeW5jKCZwb3J0LT5iY193b3JrKTsKLQlfX3NrYl9xdWV1ZV9w dXJnZSgmcG9ydC0+YmNfcXVldWUpOworCisJd2hpbGUgKChza2IgPSBfX3NrYl9kZXF1ZXVlKCZw b3J0LT5iY19xdWV1ZSkpKSB7CisJCWNvbnN0IHN0cnVjdCBtYWN2bGFuX2RldiAqc3JjID0gTUFD VkxBTl9TS0JfQ0Ioc2tiKS0+c3JjOworCisJCWlmIChzcmMpCisJCQlkZXZfcHV0KHNyYy0+ZGV2 KTsKKworCQlrZnJlZV9za2Ioc2tiKTsKKwl9CiAKIAlrZnJlZShwb3J0KTsKIH0KLS0gCjIuNC4x MQoKCkZyb20gOTFhMjc1OTM1MDJiZTk1MDBlNzY4YWU4NzU2ZTZiN2FkNDk1NjEwYiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGF2aWQgQWhlcm4gPGRzYUBjdW11bHVzbmV0d29ya3Mu Y29tPgpEYXRlOiBUdWUsIDI1IEFwciAyMDE3IDA5OjE3OjI5IC0wNzAwClN1YmplY3Q6IFtQQVRD SCAzNy80MV0gbmV0OiBpcHY2OiByZWdlbmVyYXRlIGhvc3Qgcm91dGUgaWYgbW92ZWQgdG8gZ2Mg bGlzdAoKWyBVcHN0cmVhbSBjb21taXQgODA0OGNlZDliZWIyMWE1MmUzMzA1ZjMzMzJhZTgyMDIw NjE5ZjI0ZSBdCgpUYWtpbmcgZG93biB0aGUgbG9vcGJhY2sgZGV2aWNlIHdyZWFrcyBoYXZvYyBv biBJUHY2IHJvdXRpbmcuIEJ5CmV4dGVuc2lvbiwgdGFraW5nIGRvd24gYSBWUkYgZGV2aWNlIHdy ZWFrcyBoYXZvYyBvbiBpdHMgdGFibGUuCgpEbWl0cnkgYW5kIEFuZHJleSBib3RoIHJlcG9ydGVk IGhlYXAgb3V0LW9mLWJvdW5kcyByZXBvcnRzIGluIHRoZSBJUHY2CkZJQiBjb2RlIHdoaWxlIHJ1 bm5pbmcgc3l6a2FsbGVyIGZ1enplci4gVGhlIHJvb3QgY2F1c2UgaXMgYSBkZWFkIGRzdAp0aGF0 IGlzIG9uIHRoZSBnYXJiYWdlIGxpc3QgZ2V0cyByZWluc2VydGVkIGludG8gdGhlIElQdjYgRklC LiBXaGlsZSBvbgp0aGUgZ2MgKG9yIHBlcmhhcHMgd2hlbiBpdCBnZXRzIGFkZGVkIHRvIHRoZSBn YyBsaXN0KSB0aGUgZHN0LT5uZXh0IGlzCnNldCB0byBhbiBJUHY0IGRzdC4gQSBzdWJzZXF1ZW50 IHdhbGsgb2YgdGhlIGlwdjYgdGFibGVzIGNhdXNlcyB0aGUKb3V0LW9mLWJvdW5kcyBhY2Nlc3Mu CgpBbmRyZXkncyByZXByb2R1Y2VyIHdhcyB0aGUga2V5IHRvIGdldHRpbmcgdG8gdGhlIGJvdHRv bSBvZiB0aGlzLgoKV2l0aCBJUHY2LCBob3N0IHJvdXRlcyBmb3IgYW4gYWRkcmVzcyBoYXZlIHRo ZSBkc3QtPmRldiBzZXQgdG8gdGhlCmxvb3BiYWNrIGRldmljZS4gV2hlbiB0aGUgJ2xvJyBkZXZp Y2UgaXMgdGFrZW4gZG93biwgcnQ2X2lmZG93biBpbml0aWF0ZXMKYSB3YWxrIG9mIHRoZSBmaWIg ZXZpY3Rpbmcgcm91dGVzIHdpdGggdGhlICdsbycgZGV2aWNlIHdoaWNoIG1lYW5zIGFsbApob3N0 IHJvdXRlcyBhcmUgcmVtb3ZlZC4gVGhhdCBwcm9jZXNzIG1vdmVzIHRoZSBkc3Qgd2hpY2ggaXMg YXR0YWNoZWQgdG8KYW4gaW5ldDZfaWZhZGRyIHRvIHRoZSBnYyBsaXN0IGFuZCBtYXJrcyBpdCBh cyBkZWFkLgoKVGhlIHJlY2VudCBjaGFuZ2UgdG8ga2VlcCBnbG9iYWwgSVB2NiBhZGRyZXNzZXMg YWRkZWQgYSBuZXcgZnVuY3Rpb24sCmZpeHVwX3Blcm1hbmVudF9hZGRyLCB0aGF0IGlzIGNhbGxl ZCBvbiBhZG1pbiB1cC4gVGhhdCBmdW5jdGlvbiByZXN0YXJ0cwpkYWQgZm9yIGFuIGluZXQ2X2lm YWRkciBhbmQgd2hlbiBpdCBjb21wbGV0ZXMgdGhlIGhvc3Qgcm91dGUgYXR0YWNoZWQKdG8gaXQg aXMgaW5zZXJ0ZWQgaW50byB0aGUgZmliLiBTaW5jZSB0aGUgcm91dGUgd2FzIG1hcmtlZCBkZWFk IGFuZAptb3ZlZCB0byB0aGUgZ2MgbGlzdCwgcmUtaW5zZXJ0aW5nIHRoZSByb3V0ZSBjYXVzZXMg dGhlIHJlcG9ydGVkCm91dC1vZi1ib3VuZHMgYWNjZXNzZXMuIElmIHRoZSBkZXZpY2Ugd2l0aCB0 aGUgYWRkcmVzcyBpcyB0YWtlbiBkb3duCm9yIHRoZSBhZGRyZXNzIGlzIHJlbW92ZWQsIHRoZSBX QVJOX09OIGluIGZpYjZfZGVsIGlzIHRyaWdnZXJlZC4KCkFsbCBvZiB0aG9zZSBmYXVsdHMgYXJl IGZpeGVkIGJ5IHJlZ2VuZXJhdGluZyB0aGUgaG9zdCByb3V0ZSBpZiB0aGUKZXhpc3Rpbmcgb25l IGhhcyBiZWVuIG1vdmVkIHRvIHRoZSBnYyBsaXN0LCBzb21ldGhpbmcgdGhhdCBjYW4gYmUKZGV0 ZXJtaW5lZCBieSBjaGVja2luZyBpZiB0aGUgcnQ2aV9yZWYgY291bnRlciBpcyAwLgoKRml4ZXM6 IGYxNzA1ZWMxOTdlNyAoIm5ldDogaXB2NjogTWFrZSBhZGRyZXNzIGZsdXNoaW5nIG9uIGlmZG93 biBvcHRpb25hbCIpClJlcG9ydGVkLWJ5OiBEbWl0cnkgVnl1a292IDxkdnl1a292QGdvb2dsZS5j b20+ClJlcG9ydGVkLWJ5OiBBbmRyZXkgS29ub3ZhbG92IDxhbmRyZXlrbnZsQGdvb2dsZS5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIEFoZXJuIDxkc2FAY3VtdWx1c25ldHdvcmtzLmNvbT4KQWNr ZWQtYnk6IE1hcnRpbiBLYUZhaSBMYXUgPGthZmFpQGZiLmNvbT4KQWNrZWQtYnk6IEVyaWMgRHVt YXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY2L2FkZHJjb25mLmMgfCAxNCArKysr KysrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvYWRkcmNvbmYuYyBiL25ldC9pcHY2L2FkZHJjb25m LmMKaW5kZXggOGM0ZWU0ZS4uZWM3NmJiZSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvYWRkcmNvbmYu YworKysgYi9uZXQvaXB2Ni9hZGRyY29uZi5jCkBAIC0zMjYzLDE0ICszMjYzLDI0IEBAIHN0YXRp YyB2b2lkIGFkZHJjb25mX2dyZV9jb25maWcoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIHN0YXRp YyBpbnQgZml4dXBfcGVybWFuZW50X2FkZHIoc3RydWN0IGluZXQ2X2RldiAqaWRldiwKIAkJCQlz dHJ1Y3QgaW5ldDZfaWZhZGRyICppZnApCiB7Ci0JaWYgKCFpZnAtPnJ0KSB7Ci0JCXN0cnVjdCBy dDZfaW5mbyAqcnQ7CisJLyogcnQ2aV9yZWYgPT0gMCBtZWFucyB0aGUgaG9zdCByb3V0ZSB3YXMg cmVtb3ZlZCBmcm9tIHRoZQorCSAqIEZJQiwgZm9yIGV4YW1wbGUsIGlmICdsbycgZGV2aWNlIGlz IHRha2VuIGRvd24uIEluIHRoYXQKKwkgKiBjYXNlIHJlZ2VuZXJhdGUgdGhlIGhvc3Qgcm91dGUu CisJICovCisJaWYgKCFpZnAtPnJ0IHx8ICFhdG9taWNfcmVhZCgmaWZwLT5ydC0+cnQ2aV9yZWYp KSB7CisJCXN0cnVjdCBydDZfaW5mbyAqcnQsICpwcmV2OwogCiAJCXJ0ID0gYWRkcmNvbmZfZHN0 X2FsbG9jKGlkZXYsICZpZnAtPmFkZHIsIGZhbHNlKTsKIAkJaWYgKHVubGlrZWx5KElTX0VSUihy dCkpKQogCQkJcmV0dXJuIFBUUl9FUlIocnQpOwogCisJCS8qIGlmcC0+cnQgY2FuIGJlIGFjY2Vz c2VkIG91dHNpZGUgb2YgcnRubCAqLworCQlzcGluX2xvY2soJmlmcC0+bG9jayk7CisJCXByZXYg PSBpZnAtPnJ0OwogCQlpZnAtPnJ0ID0gcnQ7CisJCXNwaW5fdW5sb2NrKCZpZnAtPmxvY2spOwor CisJCWlwNl9ydF9wdXQocHJldik7CiAJfQogCiAJaWYgKCEoaWZwLT5mbGFncyAmIElGQV9GX05P UFJFRklYUk9VVEUpKSB7Ci0tIAoyLjQuMTEKCgpGcm9tIGQyZGVlOWFkNTRjYWQyMzRhM2Y4YmYw Njk4MDQxZjExZDlkODdkNTQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFsZXhhbmRl ciBLb2NoZXRrb3YgPGFsLmtvY2hldEBnbWFpbC5jb20+CkRhdGU6IFRodSwgMjAgQXByIDIwMTcg MTQ6MDA6MDQgKzAzMDAKU3ViamVjdDogW1BBVENIIDM4LzQxXSBuZXQ6IHBoeTogZml4IGF1dG8t bmVnb3RpYXRpb24gc3RhbGwgZHVlIHRvIHVuYXZhaWxhYmxlCiBpbnRlcnJ1cHQKClsgVXBzdHJl YW0gY29tbWl0IGY1NTVmMzRmZGM1ODZhNTYyMDRjZDE2ZDlhN2MxMDRlYzZjYjY2NTAgXQoKVGhl IEV0aGVybmV0IGxpbmsgb24gYW4gaW50ZXJydXB0IGRyaXZlbiBQSFkgd2FzIG5vdCBjb21pbmcg dXAgaWYgdGhlIEV0aGVybmV0CmNhYmxlIHdhcyBwbHVnZ2VkIGJlZm9yZSB0aGUgRXRoZXJuZXQg aW50ZXJmYWNlIHdhcyBicm91Z2h0IHVwLgoKVGhlIHBhdGNoIHRyaWdnZXIgUEhZIHN0YXRlIG1h Y2hpbmUgdG8gdXBkYXRlIGxpbmsgc3RhdGUgaWYgUEhZIHdhcyByZXF1ZXN0ZWQgdG8KZG8gYXV0 by1uZWdvdGlhdGlvbiBhbmQgYXV0by1uZWdvdGlhdGlvbiBjb21wbGV0ZSBmbGFnIGFscmVhZHkg c2V0LgoKRHVyaW5nIHBvd2VyLXVwIGN5Y2xlIHRoZSBQSFkgZG8gYXV0by1uZWdvdGlhdGlvbiwg Z2VuZXJhdGUgaW50ZXJydXB0IGFuZCBzZXQKYXV0by1uZWdvdGlhdGlvbiBjb21wbGV0ZSBmbGFn LiBJbnRlcnJ1cHQgaXMgaGFuZGxlZCBieSBQSFkgc3RhdGUgbWFjaGluZSBidXQKZG9lc24ndCB1 cGRhdGUgbGluayBzdGF0ZSBiZWNhdXNlIFBIWSBpcyBpbiBQSFlfUkVBRFkgc3RhdGUuIEFmdGVy IHNvbWUgdGltZQpNQUMgYnJpbmcgdXAsIHN0YXJ0IGFuZCByZXF1ZXN0IFBIWSB0byBkbyBhdXRv LW5lZ290aWF0aW9uLiBJZiB0aGVyZSBhcmUgbm8gbmV3CnNldHRpbmdzIHRvIGFkdmVydGlzZSBn ZW5waHlfY29uZmlnX2FuZWcoKSBkb2Vzbid0IHN0YXJ0IFBIWSBhdXRvLW5lZ290aWF0aW9uLgpQ SFkgY29udGludWUgdG8gc3RheSBpbiBhdXRvLW5lZ290aWF0aW9uIGNvbXBsZXRlIHN0YXRlIGFu ZCBkb2Vzbid0IGZpcmUKaW50ZXJydXB0LiBBdCB0aGUgc2FtZSB0aW1lIFBIWSBzdGF0ZSBtYWNo aW5lIGV4cGVjdCB0aGF0IFBIWSBzdGFydGVkCmF1dG8tbmVnb3RpYXRpb24gYW5kIGlzIHdhaXRp bmcgZm9yIGludGVycnVwdCBmcm9tIFBIWSBhbmQgaXQgd29uJ3QgZ2V0IGl0LgoKRml4ZXM6IDMy MWJlZWM1MDQ3YSAoIm5ldDogcGh5OiBVc2UgaW50ZXJydXB0cyB3aGVuIGF2YWlsYWJsZSBpbiBO T0xJTksgc3RhdGUiKQpTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kZXIgS29jaGV0a292IDxhbC5rb2No ZXRAZ21haWwuY29tPgpDYzogc3RhYmxlIDxzdGFibGVAdmdlci5rZXJuZWwub3JnPiAjIHY0Ljkr ClRlc3RlZC1ieTogUm9nZXIgUXVhZHJvcyA8cm9nZXJxQHRpLmNvbT4KVGVzdGVkLWJ5OiBBbGV4 YW5kcmUgQmVsbG9uaSA8YWxleGFuZHJlLmJlbGxvbmlAZnJlZS1lbGVjdHJvbnMuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJp dmVycy9uZXQvcGh5L3BoeS5jIHwgNDAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tLQogaW5jbHVkZS9saW51eC9waHkuaCAgIHwgIDEgKwogMiBmaWxlcyBjaGFuZ2VkLCAz NyBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L3BoeS9waHkuYyBiL2RyaXZlcnMvbmV0L3BoeS9waHkuYwppbmRleCBmZTJkNGM0Li5iNDFhMzJi IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9waHkvcGh5LmMKKysrIGIvZHJpdmVycy9uZXQvcGh5 L3BoeS5jCkBAIC01OTEsMTYgKzU5MSwxOCBAQCBpbnQgcGh5X21paV9pb2N0bChzdHJ1Y3QgcGh5 X2RldmljZSAqcGh5ZGV2LCBzdHJ1Y3QgaWZyZXEgKmlmciwgaW50IGNtZCkKIEVYUE9SVF9TWU1C T0wocGh5X21paV9pb2N0bCk7CiAKIC8qKgotICogcGh5X3N0YXJ0X2FuZWcgLSBzdGFydCBhdXRv LW5lZ290aWF0aW9uIGZvciB0aGlzIFBIWSBkZXZpY2UKKyAqIHBoeV9zdGFydF9hbmVnX3ByaXYg LSBzdGFydCBhdXRvLW5lZ290aWF0aW9uIGZvciB0aGlzIFBIWSBkZXZpY2UKICAqIEBwaHlkZXY6 IHRoZSBwaHlfZGV2aWNlIHN0cnVjdAorICogQHN5bmM6IGluZGljYXRlIHdoZXRoZXIgd2Ugc2hv dWxkIHdhaXQgZm9yIHRoZSB3b3JrcXVldWUgY2FuY2VsYXRpb24KICAqCiAgKiBEZXNjcmlwdGlv bjogU2FuaXRpemVzIHRoZSBzZXR0aW5ncyAoaWYgd2UncmUgbm90IGF1dG9uZWdvdGlhdGluZwog ICogICB0aGVtKSwgYW5kIHRoZW4gY2FsbHMgdGhlIGRyaXZlcidzIGNvbmZpZ19hbmVnIGZ1bmN0 aW9uLgogICogICBJZiB0aGUgUEhZQ09OVFJPTCBMYXllciBpcyBvcGVyYXRpbmcsIHdlIGNoYW5n ZSB0aGUgc3RhdGUgdG8KICAqICAgcmVmbGVjdCB0aGUgYmVnaW5uaW5nIG9mIEF1dG8tbmVnb3Rp YXRpb24gb3IgZm9yY2luZy4KICAqLwotaW50IHBoeV9zdGFydF9hbmVnKHN0cnVjdCBwaHlfZGV2 aWNlICpwaHlkZXYpCitzdGF0aWMgaW50IHBoeV9zdGFydF9hbmVnX3ByaXYoc3RydWN0IHBoeV9k ZXZpY2UgKnBoeWRldiwgYm9vbCBzeW5jKQogeworCWJvb2wgdHJpZ2dlciA9IDA7CiAJaW50IGVy cjsKIAogCW11dGV4X2xvY2soJnBoeWRldi0+bG9jayk7CkBAIC02MjUsMTAgKzYyNyw0MCBAQCBp bnQgcGh5X3N0YXJ0X2FuZWcoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKIAkJfQogCX0KIAor CS8qIFJlLXNjaGVkdWxlIGEgUEhZIHN0YXRlIG1hY2hpbmUgdG8gY2hlY2sgUEhZIHN0YXR1cyBi ZWNhdXNlCisJICogbmVnb3RpYXRpb24gbWF5IGFscmVhZHkgYmUgZG9uZSBhbmQgYW5lZyBpbnRl cnJ1cHQgbWF5IG5vdCBiZQorCSAqIGdlbmVyYXRlZC4KKwkgKi8KKwlpZiAocGh5X2ludGVycnVw dF9pc192YWxpZChwaHlkZXYpICYmIChwaHlkZXYtPnN0YXRlID09IFBIWV9BTikpIHsKKwkJZXJy ID0gcGh5X2FuZWdfZG9uZShwaHlkZXYpOworCQlpZiAoZXJyID4gMCkgeworCQkJdHJpZ2dlciA9 IHRydWU7CisJCQllcnIgPSAwOworCQl9CisJfQorCiBvdXRfdW5sb2NrOgogCW11dGV4X3VubG9j aygmcGh5ZGV2LT5sb2NrKTsKKworCWlmICh0cmlnZ2VyKQorCQlwaHlfdHJpZ2dlcl9tYWNoaW5l KHBoeWRldiwgc3luYyk7CisKIAlyZXR1cm4gZXJyOwogfQorCisvKioKKyAqIHBoeV9zdGFydF9h bmVnIC0gc3RhcnQgYXV0by1uZWdvdGlhdGlvbiBmb3IgdGhpcyBQSFkgZGV2aWNlCisgKiBAcGh5 ZGV2OiB0aGUgcGh5X2RldmljZSBzdHJ1Y3QKKyAqCisgKiBEZXNjcmlwdGlvbjogU2FuaXRpemVz IHRoZSBzZXR0aW5ncyAoaWYgd2UncmUgbm90IGF1dG9uZWdvdGlhdGluZworICogICB0aGVtKSwg YW5kIHRoZW4gY2FsbHMgdGhlIGRyaXZlcidzIGNvbmZpZ19hbmVnIGZ1bmN0aW9uLgorICogICBJ ZiB0aGUgUEhZQ09OVFJPTCBMYXllciBpcyBvcGVyYXRpbmcsIHdlIGNoYW5nZSB0aGUgc3RhdGUg dG8KKyAqICAgcmVmbGVjdCB0aGUgYmVnaW5uaW5nIG9mIEF1dG8tbmVnb3RpYXRpb24gb3IgZm9y Y2luZy4KKyAqLworaW50IHBoeV9zdGFydF9hbmVnKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYp Cit7CisJcmV0dXJuIHBoeV9zdGFydF9hbmVnX3ByaXYocGh5ZGV2LCB0cnVlKTsKK30KIEVYUE9S VF9TWU1CT0wocGh5X3N0YXJ0X2FuZWcpOwogCiAvKioKQEAgLTY1Niw3ICs2ODgsNyBAQCB2b2lk IHBoeV9zdGFydF9tYWNoaW5lKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpCiAgKiAgIHN0YXRl IG1hY2hpbmUgcnVucy4KICAqLwogCi1zdGF0aWMgdm9pZCBwaHlfdHJpZ2dlcl9tYWNoaW5lKHN0 cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYsIGJvb2wgc3luYykKK3ZvaWQgcGh5X3RyaWdnZXJfbWFj aGluZShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2LCBib29sIHN5bmMpCiB7CiAJaWYgKHN5bmMp CiAJCWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmcGh5ZGV2LT5zdGF0ZV9xdWV1ZSk7CkBAIC0x MTUxLDcgKzExODMsNyBAQCB2b2lkIHBoeV9zdGF0ZV9tYWNoaW5lKHN0cnVjdCB3b3JrX3N0cnVj dCAqd29yaykKIAltdXRleF91bmxvY2soJnBoeWRldi0+bG9jayk7CiAKIAlpZiAobmVlZHNfYW5l ZykKLQkJZXJyID0gcGh5X3N0YXJ0X2FuZWcocGh5ZGV2KTsKKwkJZXJyID0gcGh5X3N0YXJ0X2Fu ZWdfcHJpdihwaHlkZXYsIGZhbHNlKTsKIAllbHNlIGlmIChkb19zdXNwZW5kKQogCQlwaHlfc3Vz cGVuZChwaHlkZXYpOwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3BoeS5oIGIvaW5jbHVk ZS9saW51eC9waHkuaAppbmRleCA3ZmMxMTA1Li5iMTlhZTY2IDEwMDY0NAotLS0gYS9pbmNsdWRl L2xpbnV4L3BoeS5oCisrKyBiL2luY2x1ZGUvbGludXgvcGh5LmgKQEAgLTg0MCw2ICs4NDAsNyBA QCB2b2lkIHBoeV9jaGFuZ2Vfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspOwogdm9pZCBw aHlfbWFjX2ludGVycnVwdChzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2LCBpbnQgbmV3X2xpbmsp Owogdm9pZCBwaHlfc3RhcnRfbWFjaGluZShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KTsKIHZv aWQgcGh5X3N0b3BfbWFjaGluZShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KTsKK3ZvaWQgcGh5 X3RyaWdnZXJfbWFjaGluZShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2LCBib29sIHN5bmMpOwog aW50IHBoeV9ldGh0b29sX3NzZXQoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiwgc3RydWN0IGV0 aHRvb2xfY21kICpjbWQpOwogaW50IHBoeV9ldGh0b29sX2dzZXQoc3RydWN0IHBoeV9kZXZpY2Ug KnBoeWRldiwgc3RydWN0IGV0aHRvb2xfY21kICpjbWQpOwogaW50IHBoeV9ldGh0b29sX2tzZXR0 aW5nc19nZXQoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiwKLS0gCjIuNC4xMQoKCkZyb20gYjRh MTY5NWVjNmQ3YzcxY2M1MDg3ZGMxMmY0NDMyMmUzNzUzMWQ1NCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogV0FORyBDb25nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+CkRhdGU6IFR1 ZSwgMjUgQXByIDIwMTcgMTQ6Mzc6MTUgLTA3MDAKU3ViamVjdDogW1BBVENIIDM5LzQxXSBpcHY2 OiBjaGVjayBza2ItPnByb3RvY29sIGJlZm9yZSBsb29rdXAgZm9yIG5leHRob3AKClsgVXBzdHJl YW0gY29tbWl0IDE5OWFiMDBmM2NkYjZmMTU0ZWE5M2ZhNzZmZDgwMTkyODYxYTgyMWQgXQoKQW5k cmV5IHJlcG9ydGVkIGEgb3V0LW9mLWJvdW5kIGFjY2VzcyBpbiBpcDZfdG5sX3htaXQoKSwgdGhp cwppcyBiZWNhdXNlIHdlIHVzZSBhbiBpcHY0IGRzdCBpbiBpcDZfdG5sX3htaXQoKSBhbmQgY2Fz dCBhbiBJUHY0Cm5laWdoIGtleSBhcyBhbiBJUHY2IGFkZHJlc3M6CgogICAgICAgIG5laWdoID0g ZHN0X25laWdoX2xvb2t1cChza2JfZHN0KHNrYiksCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICZpcHY2X2hkcihza2IpLT5kYWRkcik7CiAgICAgICAgaWYgKCFuZWlnaCkKICAgICAg ICAgICAgICAgIGdvdG8gdHhfZXJyX2xpbmtfZmFpbHVyZTsKCiAgICAgICAgYWRkcjYgPSAoc3Ry dWN0IGluNl9hZGRyICopJm5laWdoLT5wcmltYXJ5X2tleTsgLy8gPD09PSBIRVJFCiAgICAgICAg YWRkcl90eXBlID0gaXB2Nl9hZGRyX3R5cGUoYWRkcjYpOwoKICAgICAgICBpZiAoYWRkcl90eXBl ID09IElQVjZfQUREUl9BTlkpCiAgICAgICAgICAgICAgICBhZGRyNiA9ICZpcHY2X2hkcihza2Ip LT5kYWRkcjsKCiAgICAgICAgbWVtY3B5KCZmbDYtPmRhZGRyLCBhZGRyNiwgc2l6ZW9mKGZsNi0+ ZGFkZHIpKTsKCkFsc28gdGhlIG5ldHdvcmsgaGVhZGVyIG9mIHRoZSBza2IgYXQgdGhpcyBwb2lu dCBzaG91bGQgYmUgc3RpbGwgSVB2NApmb3IgNGluNiB0dW5uZWxzLCB3ZSBzaG9sZCBub3QganVz dCB1c2UgaXQgYXMgSVB2NiBoZWFkZXIuCgpUaGlzIHBhdGNoIGZpeGVzIGl0IGJ5IGNoZWNraW5n IGlmIHNrYi0+cHJvdG9jb2wgaXMgRVRIX1BfSVBWNjogaWYgaXQKaXMsIHdlIGFyZSBzYWZlIHRv IGRvIHRoZSBuZXh0aG9wIGxvb2t1cCB1c2luZyBza2JfZHN0KCkgYW5kCmlwdjZfaGRyKHNrYikt PmRhZGRyOyBpZiBub3QgKGFrYSBJUHY0KSwgd2UgaGF2ZSBubyBjbHVlIGFib3V0IHdoaWNoCmRl c3QgYWRkcmVzcyB3ZSBjYW4gcGljayBoZXJlLCB3ZSBoYXZlIHRvIHJlbHkgb24gY2FsbGVycyB0 byBmaWxsIGl0CmZyb20gdHVubmVsIGNvbmZpZywgc28ganVzdCBmYWxsIHRvIGlwNl9yb3V0ZV9v dXRwdXQoKSB0byBtYWtlIHRoZQpkZWNpc2lvbi4KCkZpeGVzOiBlYTNkYzk2MDFiZGEgKCJpcDZf dHVubmVsOiBBZGQgc3VwcG9ydCBmb3Igd2lsZGNhcmQgdHVubmVsIGVuZHBvaW50cy4iKQpSZXBv cnRlZC1ieTogQW5kcmV5IEtvbm92YWxvdiA8YW5kcmV5a252bEBnb29nbGUuY29tPgpUZXN0ZWQt Ynk6IEFuZHJleSBLb25vdmFsb3YgPGFuZHJleWtudmxAZ29vZ2xlLmNvbT4KQ2M6IFN0ZWZmZW4g S2xhc3NlcnQgPHN0ZWZmZW4ua2xhc3NlcnRAc2VjdW5ldC5jb20+ClNpZ25lZC1vZmYtYnk6IENv bmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvaXA2X3R1bm5lbC5j IHwgMzQgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQs IDE4IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2 L2lwNl90dW5uZWwuYyBiL25ldC9pcHY2L2lwNl90dW5uZWwuYwppbmRleCA3NWZhYzkzLi5hOTY5 MmVjIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9pcDZfdHVubmVsLmMKKysrIGIvbmV0L2lwdjYvaXA2 X3R1bm5lbC5jCkBAIC0xMDM3LDcgKzEwMzcsNyBAQCBpbnQgaXA2X3RubF94bWl0KHN0cnVjdCBz a19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIF9fdTggZHNmaWVsZCwKIAlzdHJ1 Y3QgaXA2X3RubCAqdCA9IG5ldGRldl9wcml2KGRldik7CiAJc3RydWN0IG5ldCAqbmV0ID0gdC0+ bmV0OwogCXN0cnVjdCBuZXRfZGV2aWNlX3N0YXRzICpzdGF0cyA9ICZ0LT5kZXYtPnN0YXRzOwot CXN0cnVjdCBpcHY2aGRyICppcHY2aCA9IGlwdjZfaGRyKHNrYik7CisJc3RydWN0IGlwdjZoZHIg KmlwdjZoOwogCXN0cnVjdCBpcHY2X3RlbF90eG9wdGlvbiBvcHQ7CiAJc3RydWN0IGRzdF9lbnRy eSAqZHN0ID0gTlVMTCwgKm5kc3QgPSBOVUxMOwogCXN0cnVjdCBuZXRfZGV2aWNlICp0ZGV2OwpA QCAtMTA1NywyNiArMTA1NywyOCBAQCBpbnQgaXA2X3RubF94bWl0KHN0cnVjdCBza19idWZmICpz a2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIF9fdTggZHNmaWVsZCwKIAogCS8qIE5CTUEgdHVu bmVsICovCiAJaWYgKGlwdjZfYWRkcl9hbnkoJnQtPnBhcm1zLnJhZGRyKSkgewotCQlzdHJ1Y3Qg aW42X2FkZHIgKmFkZHI2OwotCQlzdHJ1Y3QgbmVpZ2hib3VyICpuZWlnaDsKLQkJaW50IGFkZHJf dHlwZTsKKwkJaWYgKHNrYi0+cHJvdG9jb2wgPT0gaHRvbnMoRVRIX1BfSVBWNikpIHsKKwkJCXN0 cnVjdCBpbjZfYWRkciAqYWRkcjY7CisJCQlzdHJ1Y3QgbmVpZ2hib3VyICpuZWlnaDsKKwkJCWlu dCBhZGRyX3R5cGU7CiAKLQkJaWYgKCFza2JfZHN0KHNrYikpCi0JCQlnb3RvIHR4X2Vycl9saW5r X2ZhaWx1cmU7CisJCQlpZiAoIXNrYl9kc3Qoc2tiKSkKKwkJCQlnb3RvIHR4X2Vycl9saW5rX2Zh aWx1cmU7CiAKLQkJbmVpZ2ggPSBkc3RfbmVpZ2hfbG9va3VwKHNrYl9kc3Qoc2tiKSwKLQkJCQkJ ICZpcHY2X2hkcihza2IpLT5kYWRkcik7Ci0JCWlmICghbmVpZ2gpCi0JCQlnb3RvIHR4X2Vycl9s aW5rX2ZhaWx1cmU7CisJCQluZWlnaCA9IGRzdF9uZWlnaF9sb29rdXAoc2tiX2RzdChza2IpLAor CQkJCQkJICZpcHY2X2hkcihza2IpLT5kYWRkcik7CisJCQlpZiAoIW5laWdoKQorCQkJCWdvdG8g dHhfZXJyX2xpbmtfZmFpbHVyZTsKIAotCQlhZGRyNiA9IChzdHJ1Y3QgaW42X2FkZHIgKikmbmVp Z2gtPnByaW1hcnlfa2V5OwotCQlhZGRyX3R5cGUgPSBpcHY2X2FkZHJfdHlwZShhZGRyNik7CisJ CQlhZGRyNiA9IChzdHJ1Y3QgaW42X2FkZHIgKikmbmVpZ2gtPnByaW1hcnlfa2V5OworCQkJYWRk cl90eXBlID0gaXB2Nl9hZGRyX3R5cGUoYWRkcjYpOwogCi0JCWlmIChhZGRyX3R5cGUgPT0gSVBW Nl9BRERSX0FOWSkKLQkJCWFkZHI2ID0gJmlwdjZfaGRyKHNrYiktPmRhZGRyOworCQkJaWYgKGFk ZHJfdHlwZSA9PSBJUFY2X0FERFJfQU5ZKQorCQkJCWFkZHI2ID0gJmlwdjZfaGRyKHNrYiktPmRh ZGRyOwogCi0JCW1lbWNweSgmZmw2LT5kYWRkciwgYWRkcjYsIHNpemVvZihmbDYtPmRhZGRyKSk7 Ci0JCW5laWdoX3JlbGVhc2UobmVpZ2gpOworCQkJbWVtY3B5KCZmbDYtPmRhZGRyLCBhZGRyNiwg c2l6ZW9mKGZsNi0+ZGFkZHIpKTsKKwkJCW5laWdoX3JlbGVhc2UobmVpZ2gpOworCQl9CiAJfSBl bHNlIGlmICghKHQtPnBhcm1zLmZsYWdzICYKIAkJICAgICAoSVA2X1ROTF9GX1VTRV9PUklHX1RD TEFTUyB8IElQNl9UTkxfRl9VU0VfT1JJR19GV01BUkspKSkgewogCQkvKiBlbmFibGUgdGhlIGNh Y2hlIG9ubHkgb25seSBpZiB0aGUgcm91dGluZyBkZWNpc2lvbiBkb2VzCi0tIAoyLjQuMTEKCgpG cm9tIDk5NjI2ZDZlZGViYzQ3YzhhOWU3MjAzNWY1MTQ5NjhiMjFmMDlkNWQgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IFdlaSBXYW5nIDx3ZWl3YW5AZ29vZ2xlLmNvbT4KRGF0ZTogVHVl LCAyNSBBcHIgMjAxNyAxNzozODowMiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggNDAvNDFdIHRjcDog bWVtc2V0IGNhX3ByaXYgZGF0YSB0byAwIHByb3Blcmx5CgpbIFVwc3RyZWFtIGNvbW1pdCBjMTIw MTQ0NDA3NTAwOTUwN2E2ODE4ZGU2NTE4ZTI4MjJiOWE4N2M4IF0KCkFsd2F5cyB6ZXJvIG91dCBj YV9wcml2IGRhdGEgaW4gdGNwX2Fzc2lnbl9jb25nZXN0aW9uX2NvbnRyb2woKSBzbyB0aGF0CmNh X3ByaXYgZGF0YSBpcyBjbGVhcmVkIG91dCBkdXJpbmcgc29ja2V0IGNyZWF0aW9uLgpBbHNvIGFs d2F5cyB6ZXJvIG91dCBjYV9wcml2IGRhdGEgaW4gdGNwX3JlaW5pdF9jb25nZXN0aW9uX2NvbnRy b2woKSBzbwp0aGF0IHdoZW4gY2MgYWxnb3JpdGhtIGlzIGNoYW5nZWQsIGNhX3ByaXYgZGF0YSBp cyBjbGVhcmVkIG91dCBhcyB3ZWxsLgpXZSBzaG91bGQgc3RpbGwgemVybyBvdXQgY2FfcHJpdiBk YXRhIGV2ZW4gaW4gVENQX0NMT1NFIHN0YXRlIGJlY2F1c2UKdXNlciBjb3VsZCBjYWxsIGNvbm5l Y3QoKSBvbiBBRl9VTlNQRUMgdG8gZGlzY29ubmVjdCB0aGUgc29ja2V0IGFuZApsZWF2ZSBpdCBp biBUQ1BfQ0xPU0Ugc3RhdGUgYW5kIGxhdGVyIGNhbGwgc2V0c29ja29wdCgpIHRvIHN3aXRjaCBj YwphbGdvcml0aG0gb24gdGhpcyBzb2NrZXQuCgpGaXhlczogMmIwYThjOWVlICgidGNwOiBhZGQg Q0RHIGNvbmdlc3Rpb24gY29udHJvbCIpClJlcG9ydGVkLWJ5OiBBbmRyZXkgS29ub3ZhbG92ICA8 YW5kcmV5a252bEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBXZWkgV2FuZyA8d2Vpd2FuQGdv b2dsZS5jb20+CkFja2VkLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkFj a2VkLWJ5OiBZdWNodW5nIENoZW5nIDx5Y2hlbmdAZ29vZ2xlLmNvbT4KQWNrZWQtYnk6IE5lYWwg Q2FyZHdlbGwgPG5jYXJkd2VsbEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvdGNwX2NvbmcuYyB8IDEx ICsrKy0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcF9jb25nLmMgYi9uZXQvaXB2NC90Y3BfY29u Zy5jCmluZGV4IDc5YzQ4MTcuLjZlM2M1MTIgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9jb25n LmMKKysrIGIvbmV0L2lwdjQvdGNwX2NvbmcuYwpAQCAtMTY4LDEyICsxNjgsOCBAQCB2b2lkIHRj cF9hc3NpZ25fY29uZ2VzdGlvbl9jb250cm9sKHN0cnVjdCBzb2NrICpzaykKIAl9CiBvdXQ6CiAJ cmN1X3JlYWRfdW5sb2NrKCk7CisJbWVtc2V0KGljc2stPmljc2tfY2FfcHJpdiwgMCwgc2l6ZW9m KGljc2stPmljc2tfY2FfcHJpdikpOwogCi0JLyogQ2xlYXIgb3V0IHByaXZhdGUgZGF0YSBiZWZv cmUgZGlhZyBnZXRzIGl0IGFuZAotCSAqIHRoZSBjYSBoYXMgbm90IGJlZW4gaW5pdGlhbGl6ZWQu Ci0JICovCi0JaWYgKGNhLT5nZXRfaW5mbykKLQkJbWVtc2V0KGljc2stPmljc2tfY2FfcHJpdiwg MCwgc2l6ZW9mKGljc2stPmljc2tfY2FfcHJpdikpOwogCWlmIChjYS0+ZmxhZ3MgJiBUQ1BfQ09O R19ORUVEU19FQ04pCiAJCUlORVRfRUNOX3htaXQoc2spOwogCWVsc2UKQEAgLTIwMCwxMSArMTk2 LDEwIEBAIHN0YXRpYyB2b2lkIHRjcF9yZWluaXRfY29uZ2VzdGlvbl9jb250cm9sKHN0cnVjdCBz b2NrICpzaywKIAl0Y3BfY2xlYW51cF9jb25nZXN0aW9uX2NvbnRyb2woc2spOwogCWljc2stPmlj c2tfY2Ffb3BzID0gY2E7CiAJaWNzay0+aWNza19jYV9zZXRzb2Nrb3B0ID0gMTsKKwltZW1zZXQo aWNzay0+aWNza19jYV9wcml2LCAwLCBzaXplb2YoaWNzay0+aWNza19jYV9wcml2KSk7CiAKLQlp ZiAoc2stPnNrX3N0YXRlICE9IFRDUF9DTE9TRSkgewotCQltZW1zZXQoaWNzay0+aWNza19jYV9w cml2LCAwLCBzaXplb2YoaWNzay0+aWNza19jYV9wcml2KSk7CisJaWYgKHNrLT5za19zdGF0ZSAh PSBUQ1BfQ0xPU0UpCiAJCXRjcF9pbml0X2Nvbmdlc3Rpb25fY29udHJvbChzayk7Ci0JfQogfQog CiAvKiBNYW5hZ2UgcmVmY291bnRzIG9uIHNvY2tldCBjbG9zZS4gKi8KLS0gCjIuNC4xMQoKCkZy b20gYzFjZGU3ZGM0ZDI3NWZmY2JkY2Q1MGQxNzA3OGVlNzQ0YWNmZDJjYiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogSmFtaWUgQmFpbmJyaWRnZSA8amJhaW5icmlAcmVkaGF0LmNvbT4K RGF0ZTogV2VkLCAyNiBBcHIgMjAxNyAxMDo0MzoyNyArMTAwMApTdWJqZWN0OiBbUEFUQ0ggNDEv NDFdIGlwdjY6IGNoZWNrIHJhdyBwYXlsb2FkIHNpemUgY29ycmVjdGx5IGluIGlvY3RsCgpbIFVw c3RyZWFtIGNvbW1pdCAxMDVmNTUyOGI5YmJhYTA4YjUyNmQzNDA1YTViY2QyZmYwYzk1M2M4IF0K CkluIHNpdHVhdGlvbnMgd2hlcmUgYW4gc2tiIGlzIHBhZ2VkLCB0aGUgdHJhbnNwb3J0IGhlYWRl ciBwb2ludGVyIGFuZAp0YWlsIHBvaW50ZXIgY2FuIGJlIHRoZSBzYW1lIGJlY2F1c2UgdGhlIHNr YiBjb250ZW50cyBhcmUgaW4gZnJhZ3MuCgpUaGlzIHJlc3VsdHMgaW4gaW9jdGwoU0lPQ0lOUS9G SU9OUkVBRCkgaW5jb3JyZWN0bHkgcmV0dXJuaW5nIGEKbGVuZ3RoIG9mIDAgd2hlbiB0aGUgbGVu Z3RoIHRvIHJlY2VpdmUgaXMgYWN0dWFsbHkgZ3JlYXRlciB0aGFuIHplcm8uCgpza2ItPmxlbiBp cyBhbHJlYWR5IGNvcnJlY3RseSBzZXQgaW4gaXA2X2lucHV0X2ZpbmlzaCgpIHdpdGgKcHNrYl9w dWxsKCksIHNvIHVzZSBza2ItPmxlbiBhcyBpdCBhbHdheXMgcmV0dXJucyB0aGUgY29ycmVjdCBy ZXN1bHQKZm9yIGJvdGggbGluZWFyIGFuZCBwYWdlZCBkYXRhLgoKU2lnbmVkLW9mZi1ieTogSmFt aWUgQmFpbmJyaWRnZSA8amJhaW5icmlAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY2L3Jhdy5jIHwgMyAr LS0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9uZXQvaXB2Ni9yYXcuYyBiL25ldC9pcHY2L3Jhdy5jCmluZGV4IGVhODkwNzMuLjI5 NGZiNmYgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3Jhdy5jCisrKyBiL25ldC9pcHY2L3Jhdy5jCkBA IC0xMTc0LDggKzExNzQsNyBAQCBzdGF0aWMgaW50IHJhd3Y2X2lvY3RsKHN0cnVjdCBzb2NrICpz aywgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCiAJCXNwaW5fbG9ja19iaCgmc2stPnNrX3Jl Y2VpdmVfcXVldWUubG9jayk7CiAJCXNrYiA9IHNrYl9wZWVrKCZzay0+c2tfcmVjZWl2ZV9xdWV1 ZSk7CiAJCWlmIChza2IpCi0JCQlhbW91bnQgPSBza2JfdGFpbF9wb2ludGVyKHNrYikgLQotCQkJ CXNrYl90cmFuc3BvcnRfaGVhZGVyKHNrYik7CisJCQlhbW91bnQgPSBza2ItPmxlbjsKIAkJc3Bp bl91bmxvY2tfYmgoJnNrLT5za19yZWNlaXZlX3F1ZXVlLmxvY2spOwogCQlyZXR1cm4gcHV0X3Vz ZXIoYW1vdW50LCAoaW50IF9fdXNlciAqKWFyZyk7CiAJfQotLSAKMi40LjExCgo= ----Next_Part(Fri_Apr_28_15_41_15_2017_206)----