From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.0 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9E8A4C433E4 for ; Thu, 16 Jul 2020 23:09:33 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3D2102137B for ; Thu, 16 Jul 2020 23:09:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726007AbgGPXJb (ORCPT ); Thu, 16 Jul 2020 19:09:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43442 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728032AbgGPXJX (ORCPT ); Thu, 16 Jul 2020 19:09:23 -0400 Received: from shards.monkeyblade.net (shards.monkeyblade.net [IPv6:2620:137:e000::1:9]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 62A0AC08E763 for ; Thu, 16 Jul 2020 16:07:27 -0700 (PDT) Received: from localhost (unknown [IPv6:2601:601:9f00:477::3d5]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id 328C5126298AE for ; Thu, 16 Jul 2020 16:07:24 -0700 (PDT) Date: Thu, 16 Jul 2020 16:07:20 -0700 (PDT) Message-Id: <20200716.160720.2007825724071053507.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller X-Mailer: Mew version 6.8 on Emacs 26.3 Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Thu_Jul_16_16_07_20_2020_547)--" Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.5.12 (shards.monkeyblade.net [149.20.54.216]); Thu, 16 Jul 2020 16:07:26 -0700 (PDT) Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org ----Next_Part(Thu_Jul_16_16_07_20_2020_547)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for v5.4 and v5.7 -stable, respectively. Thank you! ----Next_Part(Thu_Jul_16_16_07_20_2020_547)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_54.mbox" RnJvbSA5ZmM0YjI3ZDM4YzQxZjQ0MTY3YjUwNzQ1MDBjMDQwNDI2ZjllY2FkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZGUgQ2FyYXR0aSA8ZGNhcmF0dGlAcmVkaGF0LmNvbT4K RGF0ZTogRnJpLCAxMCBKdWwgMjAyMCAxMjo1NTowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDEv MjldIGJueHRfZW46IGZpeCBOVUxMIGRlcmVmZXJlbmNlIGluIGNhc2UgU1ItSU9WCiBjb25maWd1 cmF0aW9uIGZhaWxzCgpbIFVwc3RyZWFtIGNvbW1pdCBjOGIxZDc0MzYwNDVkMzU5OWJhZTU2YWVm MTY4MjgxM2VjY2NhYWQ3IF0KCndlIG5lZWQgdG8gc2V0ICdhY3RpdmVfdmZzJyBiYWNrIHRvIDAs IGlmIHNvbWV0aGluZyBnb2VzIHdyb25nIGR1cmluZyB0aGUKYWxsb2NhdGlvbiBvZiBTUi1JT1Yg cmVzb3VyY2VzOiBvdGhlcndpc2UsIGZ1cnRoZXIgVkYgY29uZmlndXJhdGlvbnMgd2lsbAp3cm9u Z2x5IGFzc3VtZSB0aGF0IGJwLT5wZi52Zlt4XSBhcmUgdmFsaWQgbWVtb3J5IGxvY2F0aW9ucywg YW5kIGNvbW1hbmRzCmxpa2UgdGhlIG9uZXMgaW4gdGhlIGZvbGxvd2luZyBzZXF1ZW5jZToKCiAj IGVjaG8gMiA+L3N5cy9idXMvcGNpL2RldmljZXMvJHtBRERSfS9zcmlvdl9udW12ZnMKICMgaXAg bGluayBzZXQgZGV2IGVuczFmMG5wMCB1cAogIyBpcCBsaW5rIHNldCBkZXYgZW5zMWYwbnAwIHZm IDAgdHJ1c3Qgb24KCndpbGwgY2F1c2UgYSBrZXJuZWwgY3Jhc2ggc2ltaWxhciB0byB0aGlzOgoK IGJueHRfZW4gMDAwMDozYjowMC4wOiBub3QgZW5vdWdoIE1NSU8gcmVzb3VyY2VzIGZvciBTUi1J T1YKIEJVRzoga2VybmVsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSwgYWRkcmVzczogMDAwMDAw MDAwMDAwMDAxNAogI1BGOiBzdXBlcnZpc29yIHJlYWQgYWNjZXNzIGluIGtlcm5lbCBtb2RlCiAj UEY6IGVycm9yX2NvZGUoMHgwMDAwKSAtIG5vdC1wcmVzZW50IHBhZ2UKIFBHRCAwIFA0RCAwCiBP b3BzOiAwMDAwIFsjMV0gU01QIFBUSQogQ1BVOiA0MyBQSUQ6IDIwNTkgQ29tbTogaXAgVGFpbnRl ZDogRyAgICAgICAgICBJICAgICAgIDUuOC4wLXJjMi51cHN0cmVhbSsgIzg3MQogSGFyZHdhcmUg bmFtZTogRGVsbCBJbmMuIFBvd2VyRWRnZSBSNzQwLzA4RDg5RiwgQklPUyAyLjIuMTEgMDYvMTMv MjAxOQogUklQOiAwMDEwOmJueHRfc2V0X3ZmX3RydXN0KzB4NWIvMHgxMTAgW2JueHRfZW5dCiBD b2RlOiA0NCAyNCA1OCAzMSBjMCBlOCBmNSBmYiBmZiBmZiA4NSBjMCAwZiA4NSBiNiAwMCAwMCAw MCA0OCA4ZCAxYyA1YiA0MSA4OSBjNiBiOSAwYiAwMCAwMCAwMCA0OCBjMSBlMyAwNCA0OSAwMyA5 YyAyNCBmMCAwZSAwMCAwMCA8OGI+IDQzIDE0IDg5IGMyIDgzIGM4IDEwIDgzIGUyIGVmIDQ1IDg0 IGVkIDQ5IDg5IGU1IDBmIDQ0IGMyIDRjIDg5CiBSU1A6IDAwMTg6ZmZmZmFjNjI0NmExZjU3MCBF RkxBR1M6IDAwMDEwMjQ2CiBSQVg6IDAwMDAwMDAwMDAwMDAwMDAgUkJYOiAwMDAwMDAwMDAwMDAw MDAwIFJDWDogMDAwMDAwMDAwMDAwMDAwYgogUkRYOiAwMDAwMDAwMDAwMDAwMDAxIFJTSTogMDAw MDAwMDAwMDAwMDAwMCBSREk6IGZmZmY5OGIyOGY1Mzg5MDAKIFJCUDogZmZmZjk4YjI4ZjUzODkw MCBSMDg6IDAwMDAwMDAwMDAwMDAwMDAgUjA5OiAwMDAwMDAwMDAwMDAwMDA4CiBSMTA6IGZmZmZm ZmZmYjk1MTViZTAgUjExOiBmZmZmYWM2MjQ2YTFmNjc4IFIxMjogZmZmZjk4YjI4ZjUzODAwMAog UjEzOiAwMDAwMDAwMDAwMDAwMDAxIFIxNDogMDAwMDAwMDAwMDAwMDAwMCBSMTU6IGZmZmZmZmZm YzA1NDUxZTAKIEZTOiAgMDAwMDdmZGUwZjY4ODgwMCgwMDAwKSBHUzpmZmZmOThiYWZmZDQwMDAw KDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKIENTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAw MCBDUjA6IDAwMDAwMDAwODAwNTAwMzMKIENSMjogMDAwMDAwMDAwMDAwMDAxNCBDUjM6IDAwMDAw MDEwNGJiMGEwMDMgQ1I0OiAwMDAwMDAwMDAwNzYwNmUwCiBEUjA6IDAwMDAwMDAwMDAwMDAwMDAg RFIxOiAwMDAwMDAwMDAwMDAwMDAwIERSMjogMDAwMDAwMDAwMDAwMDAwMAogRFIzOiAwMDAwMDAw MDAwMDAwMDAwIERSNjogMDAwMDAwMDBmZmZlMGZmMCBEUjc6IDAwMDAwMDAwMDAwMDA0MDAKIFBL UlU6IDU1NTU1NTU0CiBDYWxsIFRyYWNlOgogIGRvX3NldGxpbmsrMHg5OTQvMHhmZTAKICBfX3J0 bmxfbmV3bGluaysweDU0NC8weDhkMAogIHJ0bmxfbmV3bGluaysweDQ3LzB4NzAKICBydG5ldGxp bmtfcmN2X21zZysweDI5Zi8weDM1MAogIG5ldGxpbmtfcmN2X3NrYisweDRhLzB4MTEwCiAgbmV0 bGlua191bmljYXN0KzB4MjFkLzB4MzAwCiAgbmV0bGlua19zZW5kbXNnKzB4MzI5LzB4NDUwCiAg c29ja19zZW5kbXNnKzB4NWIvMHg2MAogIF9fX19zeXNfc2VuZG1zZysweDIwNC8weDI4MAogIF9f X3N5c19zZW5kbXNnKzB4ODgvMHhkMAogIF9fc3lzX3NlbmRtc2crMHg1ZS8weGEwCiAgZG9fc3lz Y2FsbF82NCsweDQ3LzB4ODAKICBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0NC8w eGE5CgpGaXhlczogYzBjMDUwYzU4ZDg0MCAoImJueHRfZW46IE5ldyBCcm9hZGNvbSBldGhlcm5l dCBkcml2ZXIuIikKUmVwb3J0ZWQtYnk6IEZlaSBMaXUgPGZlbGl1QHJlZGhhdC5jb20+CkNDOiBK b25hdGhhbiBUb3BwaW5zIDxqdG9wcGluc0ByZWRoYXQuY29tPgpDQzogTWljaGFlbCBDaGFuIDxt aWNoYWVsLmNoYW5AYnJvYWRjb20uY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZGUgQ2FyYXR0aSA8 ZGNhcmF0dGlAcmVkaGF0LmNvbT4KUmV2aWV3ZWQtYnk6IE1pY2hhZWwgQ2hhbiA8bWljaGFlbC5j aGFuQGJyb2FkY29tLmNvbT4KQWNrZWQtYnk6IEpvbmF0aGFuIFRvcHBpbnMgPGp0b3BwaW5zQHJl ZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHRfc3Jpb3Yu YyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dF9zcmlv di5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0X3NyaW92LmMKaW5k ZXggMTA0NmIyMjIyMGEzLi40NTJiZTk3NDk4MjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dF9zcmlvdi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2Jyb2FkY29tL2JueHQvYm54dF9zcmlvdi5jCkBAIC0zOTgsNiArMzk4LDcgQEAgc3RhdGlj IHZvaWQgYm54dF9mcmVlX3ZmX3Jlc291cmNlcyhzdHJ1Y3QgYm54dCAqYnApCiAJCX0KIAl9CiAK KwlicC0+cGYuYWN0aXZlX3ZmcyA9IDA7CiAJa2ZyZWUoYnAtPnBmLnZmKTsKIAlicC0+cGYudmYg PSBOVUxMOwogfQpAQCAtODMzLDcgKzgzNCw2IEBAIHZvaWQgYm54dF9zcmlvdl9kaXNhYmxlKHN0 cnVjdCBibnh0ICpicCkKIAogCWJueHRfZnJlZV92Zl9yZXNvdXJjZXMoYnApOwogCi0JYnAtPnBm LmFjdGl2ZV92ZnMgPSAwOwogCS8qIFJlY2xhaW0gYWxsIHJlc291cmNlcyBmb3IgdGhlIFBGLiAq LwogCXJ0bmxfbG9jaygpOwogCWJueHRfcmVzdG9yZV9wZl9md19yZXNvdXJjZXMoYnApOwotLSAK Mi4yNi4yCgoKRnJvbSAwMDhhMDEyMzRjNmZjZWRkNzgzOThkZDQ1NTI5Nzc2ZjM0MWNkYjgwIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/TGludXM9MjBMPUMzPUJDc3Np bmc/PSA8bGludXMubHVlc3NpbmdAYzBkMy5ibHVlPgpEYXRlOiBTdW4sIDUgSnVsIDIwMjAgMjE6 MTA6MTcgKzAyMDAKU3ViamVjdDogW1BBVENIIDAyLzI5XSBicmlkZ2U6IG1jYXN0OiBGaXggTUxE MiBSZXBvcnQgSVB2NiBwYXlsb2FkIGxlbmd0aAogY2hlY2sKTUlNRS1WZXJzaW9uOiAxLjAKQ29u dGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5j b2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IDVmYzYyNjZhZjdiNDI3MjQzZGEyNGYzNDQz YTUwY2Q0NTg0YWFjMDYgXQoKQ29tbWl0IGU1N2Y2MTg1OGI3YyAoIm5ldDogYnJpZGdlOiBtY2Fz dDogZml4IHN0YWxlIG5zcmNzIHBvaW50ZXIgaW4KaWdtcDMvbWxkMiByZXBvcnQgaGFuZGxpbmci KSBpbnRyb2R1Y2VkIGEgYnVnIGluIHRoZSBJUHY2IGhlYWRlciBwYXlsb2FkCmxlbmd0aCBjaGVj ayB3aGljaCB3b3VsZCBwb3RlbnRpYWxseSBsZWFkIHRvIHJlamVjdGluZyBhIHZhbGlkIE1MRDIg UmVwb3J0OgoKVGhlIGNoZWNrIG5lZWRzIHRvIHRha2UgaW50byBhY2NvdW50IHRoZSAyIGJ5dGVz IGZvciB0aGUgIk51bWJlciBvZgpTb3VyY2VzIiBmaWVsZCBpbiB0aGUgIk11bHRpY2FzdCBBZGRy ZXNzIFJlY29yZCIgYmVmb3JlIHJlYWRpbmcgaXQuCkFuZCBub3QgdGhlIHNpemUgb2YgYSBwb2lu dGVyIHRvIHRoaXMgZmllbGQuCgpGaXhlczogZTU3ZjYxODU4YjdjICgibmV0OiBicmlkZ2U6IG1j YXN0OiBmaXggc3RhbGUgbnNyY3MgcG9pbnRlciBpbiBpZ21wMy9tbGQyIHJlcG9ydCBoYW5kbGlu ZyIpCkFja2VkLWJ5OiBOaWtvbGF5IEFsZWtzYW5kcm92IDxuaWtvbGF5QGN1bXVsdXNuZXR3b3Jr cy5jb20+ClNpZ25lZC1vZmYtYnk6IExpbnVzIEzDvHNzaW5nIDxsaW51cy5sdWVzc2luZ0BjMGQz LmJsdWU+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBuZXQvYnJpZGdlL2JyX211bHRpY2FzdC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQs IDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2JyaWRnZS9i cl9tdWx0aWNhc3QuYyBiL25ldC9icmlkZ2UvYnJfbXVsdGljYXN0LmMKaW5kZXggYWQxMmZlM2Zj YThjLi5lZTI5MDJiNTFkNDUgMTAwNjQ0Ci0tLSBhL25ldC9icmlkZ2UvYnJfbXVsdGljYXN0LmMK KysrIGIvbmV0L2JyaWRnZS9icl9tdWx0aWNhc3QuYwpAQCAtMTAwNyw3ICsxMDA3LDcgQEAgc3Rh dGljIGludCBicl9pcDZfbXVsdGljYXN0X21sZDJfcmVwb3J0KHN0cnVjdCBuZXRfYnJpZGdlICpi ciwKIAkJbnNyY3Nfb2Zmc2V0ID0gbGVuICsgb2Zmc2V0b2Yoc3RydWN0IG1sZDJfZ3JlYywgZ3Jl Y19uc3Jjcyk7CiAKIAkJaWYgKHNrYl90cmFuc3BvcnRfb2Zmc2V0KHNrYikgKyBpcHY2X3RyYW5z cG9ydF9sZW4oc2tiKSA8Ci0JCSAgICBuc3Jjc19vZmZzZXQgKyBzaXplb2YoX25zcmNzKSkKKwkJ ICAgIG5zcmNzX29mZnNldCArIHNpemVvZihfX25zcmNzKSkKIAkJCXJldHVybiAtRUlOVkFMOwog CiAJCV9uc3JjcyA9IHNrYl9oZWFkZXJfcG9pbnRlcihza2IsIG5zcmNzX29mZnNldCwKLS0gCjIu MjYuMgoKCkZyb20gZDk1ZWUxOGMyNTg3NDhkNWI5MjMxM2QwMWMzMmMzNTYxMTYxMmQzNyBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU2VhbiBUcmFuY2hldHRpIDxzdHJhbmNoZUBjb2Rl YXVyb3JhLm9yZz4KRGF0ZTogVHVlLCAzMCBKdW4gMjAyMCAxMTo1MDoxNyAtMDYwMApTdWJqZWN0 OiBbUEFUQ0ggMDMvMjldIGdlbmV0bGluazogcmVtb3ZlIGdlbmxfYmluZAoKWyBVcHN0cmVhbSBj b21taXQgMWU4MmE2MmZlYzYxMzg0NGRhOWU1NThmMzQ5MzU0MGE1YjdhN2I2NyBdCgpBIHBvdGVu dGlhbCBkZWFkbG9jayBjYW4gb2NjdXIgZHVyaW5nIHJlZ2lzdGVyaW5nIG9yIHVucmVnaXN0ZXJp bmcgYQpuZXcgZ2VuZXJpYyBuZXRsaW5rIGZhbWlseSBiZXR3ZWVuIHRoZSBtYWluIG5sX3RhYmxl X2xvY2sgYW5kIHRoZQpjYl9sb2NrIHdoZXJlIGVhY2ggdGhyZWFkIHdhbnRzIHRoZSBsb2NrIGhl bGQgYnkgdGhlIG90aGVyLCBhcwpkZW1vbnN0cmF0ZWQgYmVsb3cuCgoxKSBUaHJlYWQgMSBpcyBw ZXJmb3JtaW5nIGEgbmV0bGlua19iaW5kKCkgb3BlcmF0aW9uIG9uIGEgc29ja2V0LiBBcyBwYXJ0 CiAgIG9mIHRoaXMgY2FsbCwgaXQgd2lsbCBjYWxsIG5ldGxpbmtfbG9ja190YWJsZSgpLCBpbmNy ZW1lbnRpbmcgdGhlCiAgIG5sX3RhYmxlX3VzZXJzIGNvdW50IHRvIDEuCjIpIFRocmVhZCAyIGlz IHJlZ2lzdGVyaW5nIChvciB1bnJlZ2lzdGVyaW5nKSBhIGdlbmxfZmFtaWx5IHZpYSB0aGUKICAg Z2VubF8odW4pcmVnaXN0ZXJfZmFtaWx5KCkgQVBJLiBUaGUgY2JfbG9jayBzZW1hcGhvcmUgd2ls bCBiZSB0YWtlbiBmb3IKICAgd3JpdGluZy4KMykgVGhyZWFkIDEgd2lsbCBjYWxsIGdlbmxfYmlu ZCgpIGFzIHBhcnQgb2YgdGhlIGJpbmQgb3BlcmF0aW9uIHRvIGhhbmRsZQogICBzdWJzY3JpYmlu ZyB0byBHRU5MIG11bHRpY2FzdCBncm91cHMgYXQgdGhlIHJlcXVlc3Qgb2YgdGhlIHVzZXIuIEl0 IHdpbGwKICAgYXR0ZW1wdCB0byB0YWtlIHRoZSBjYl9sb2NrIHNlbWFwaG9yZSBmb3IgcmVhZGlu ZywgYnV0IGl0IHdpbGwgZmFpbCBhbmQKICAgYmUgc2NoZWR1bGVkIGF3YXksIHdhaXRpbmcgZm9y IFRocmVhZCAyIHRvIGZpbmlzaCB0aGUgd3JpdGUuCjQpIFRocmVhZCAyIHdpbGwgY2FsbCBuZXRs aW5rX3RhYmxlX2dyYWIoKSBkdXJpbmcgdGhlICh1bilyZWdpc3RyYXRpb24KICAgY2FsbC4gSG93 ZXZlciwgYXMgVGhyZWFkIDEgaGFzIGluY3JlbWVudGVkIG5sX3RhYmxlX3VzZXJzLCBpdCB3aWxs IG5vdAogICBiZSBhYmxlIHRvIHByb2NlZWQsIGFuZCBib3RoIHRocmVhZHMgd2lsbCBiZSBzdHVj ayB3YWl0aW5nIGZvciB0aGUKICAgb3RoZXIuCgpnZW5sX2JpbmQoKSBpcyBhIG5vb3AsIHVubGVz cyBhIGdlbmxfZmFtaWx5IGltcGxlbWVudHMgdGhlIG1jYXN0X2JpbmQoKQpmdW5jdGlvbiB0byBo YW5kbGUgc2V0dGluZyB1cCBmYW1pbHktc3BlY2lmaWMgbXVsdGljYXN0IG9wZXJhdGlvbnMuIFNp bmNlCm5vIG9uZSBpbi10cmVlIHVzZXMgdGhpcyBmdW5jdGlvbmFsaXR5IGFzIENvbmcgcG9pbnRl ZCBvdXQsIHNpbXBseSByZW1vdmluZwp0aGUgZ2VubF9iaW5kKCkgZnVuY3Rpb24gd2lsbCByZW1v dmUgdGhlIHBvc3NpYmlsaXR5IGZvciBkZWFkbG9jaywgYXMgdGhlcmUKaXMgbm8gYXR0ZW1wdCBi eSBUaHJlYWQgMSBhYm92ZSB0byB0YWtlIHRoZSBjYl9sb2NrIHNlbWFwaG9yZS4KCkZpeGVzOiBj MzgwZDlhN2FmZmYgKCJnZW5ldGxpbms6IHBhc3MgbXVsdGljYXN0IGJpbmQvdW5iaW5kIHRvIGZh bWlsaWVzIikKU3VnZ2VzdGVkLWJ5OiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNv bT4KQWNrZWQtYnk6IEpvaGFubmVzIEJlcmcgPGpvaGFubmVzLmJlcmdAaW50ZWwuY29tPgpSZXBv cnRlZC1ieToga2VybmVsIHRlc3Qgcm9ib3QgPGxrcEBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6 IFNlYW4gVHJhbmNoZXR0aSA8c3RyYW5jaGVAY29kZWF1cm9yYS5vcmc+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC9n ZW5ldGxpbmsuaCB8ICA4IC0tLS0tLS0KIG5ldC9uZXRsaW5rL2dlbmV0bGluay5jIHwgNDkgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwg NTcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvZ2VuZXRsaW5rLmggYi9p bmNsdWRlL25ldC9nZW5ldGxpbmsuaAppbmRleCA5MjkyZjFjNTg4YjcuLjJkOWU2N2E2OWNiZSAx MDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvZ2VuZXRsaW5rLmgKKysrIGIvaW5jbHVkZS9uZXQvZ2Vu ZXRsaW5rLmgKQEAgLTM1LDEyICszNSw2IEBAIHN0cnVjdCBnZW5sX2luZm87CiAgKglkbyBhZGRp dGlvbmFsLCBjb21tb24sIGZpbHRlcmluZyBhbmQgcmV0dXJuIGFuIGVycm9yCiAgKiBAcG9zdF9k b2l0OiBjYWxsZWQgYWZ0ZXIgYW4gb3BlcmF0aW9uJ3MgZG9pdCBjYWxsYmFjaywgaXQgbWF5CiAg Kgl1bmRvIG9wZXJhdGlvbnMgZG9uZSBieSBwcmVfZG9pdCwgZm9yIGV4YW1wbGUgcmVsZWFzZSBs b2NrcwotICogQG1jYXN0X2JpbmQ6IGEgc29ja2V0IGJvdW5kIHRvIHRoZSBnaXZlbiBtdWx0aWNh c3QgZ3JvdXAgKHdoaWNoCi0gKglpcyBnaXZlbiBhcyB0aGUgb2Zmc2V0IGludG8gdGhlIGdyb3Vw cyBhcnJheSkKLSAqIEBtY2FzdF91bmJpbmQ6IGEgc29ja2V0IHdhcyB1bmJvdW5kIGZyb20gdGhl IGdpdmVuIG11bHRpY2FzdCBncm91cC4KLSAqCU5vdGUgdGhhdCB1bmJpbmQoKSB3aWxsIG5vdCBi ZSBjYWxsZWQgc3ltbWV0cmljYWxseSBpZiB0aGUKLSAqCWdlbmVyaWMgbmV0bGluayBmYW1pbHkg aXMgcmVtb3ZlZCB3aGlsZSB0aGVyZSBhcmUgc3RpbGwgb3BlbgotICoJc29ja2V0cy4KICAqIEBh dHRyYnVmOiBidWZmZXIgdG8gc3RvcmUgcGFyc2VkIGF0dHJpYnV0ZXMgKHByaXZhdGUpCiAgKiBA bWNncnBzOiBtdWx0aWNhc3QgZ3JvdXBzIHVzZWQgYnkgdGhpcyBmYW1pbHkKICAqIEBuX21jZ3Jw czogbnVtYmVyIG9mIG11bHRpY2FzdCBncm91cHMKQEAgLTY0LDggKzU4LDYgQEAgc3RydWN0IGdl bmxfZmFtaWx5IHsKIAl2b2lkCQkJKCpwb3N0X2RvaXQpKGNvbnN0IHN0cnVjdCBnZW5sX29wcyAq b3BzLAogCQkJCQkgICAgIHN0cnVjdCBza19idWZmICpza2IsCiAJCQkJCSAgICAgc3RydWN0IGdl bmxfaW5mbyAqaW5mbyk7Ci0JaW50CQkJKCptY2FzdF9iaW5kKShzdHJ1Y3QgbmV0ICpuZXQsIGlu dCBncm91cCk7Ci0Jdm9pZAkJCSgqbWNhc3RfdW5iaW5kKShzdHJ1Y3QgbmV0ICpuZXQsIGludCBn cm91cCk7CiAJc3RydWN0IG5sYXR0ciAqKglhdHRyYnVmOwkvKiBwcml2YXRlICovCiAJY29uc3Qg c3RydWN0IGdlbmxfb3BzICoJb3BzOwogCWNvbnN0IHN0cnVjdCBnZW5sX211bHRpY2FzdF9ncm91 cCAqbWNncnBzOwpkaWZmIC0tZ2l0IGEvbmV0L25ldGxpbmsvZ2VuZXRsaW5rLmMgYi9uZXQvbmV0 bGluay9nZW5ldGxpbmsuYwppbmRleCBlZmNjZDFhYzlhNjYuLjEwMmI4ZDZiNTYxMiAxMDA2NDQK LS0tIGEvbmV0L25ldGxpbmsvZ2VuZXRsaW5rLmMKKysrIGIvbmV0L25ldGxpbmsvZ2VuZXRsaW5r LmMKQEAgLTk4OSw2MCArOTg5LDExIEBAIHN0YXRpYyBzdHJ1Y3QgZ2VubF9mYW1pbHkgZ2VubF9j dHJsIF9fcm9fYWZ0ZXJfaW5pdCA9IHsKIAkubmV0bnNvayA9IHRydWUsCiB9OwogCi1zdGF0aWMg aW50IGdlbmxfYmluZChzdHJ1Y3QgbmV0ICpuZXQsIGludCBncm91cCkKLXsKLQlzdHJ1Y3QgZ2Vu bF9mYW1pbHkgKmY7Ci0JaW50IGVyciA9IC1FTk9FTlQ7Ci0JdW5zaWduZWQgaW50IGlkOwotCi0J ZG93bl9yZWFkKCZjYl9sb2NrKTsKLQotCWlkcl9mb3JfZWFjaF9lbnRyeSgmZ2VubF9mYW1faWRy LCBmLCBpZCkgewotCQlpZiAoZ3JvdXAgPj0gZi0+bWNncnBfb2Zmc2V0ICYmCi0JCSAgICBncm91 cCA8IGYtPm1jZ3JwX29mZnNldCArIGYtPm5fbWNncnBzKSB7Ci0JCQlpbnQgZmFtX2dycCA9IGdy b3VwIC0gZi0+bWNncnBfb2Zmc2V0OwotCi0JCQlpZiAoIWYtPm5ldG5zb2sgJiYgbmV0ICE9ICZp bml0X25ldCkKLQkJCQllcnIgPSAtRU5PRU5UOwotCQkJZWxzZSBpZiAoZi0+bWNhc3RfYmluZCkK LQkJCQllcnIgPSBmLT5tY2FzdF9iaW5kKG5ldCwgZmFtX2dycCk7Ci0JCQllbHNlCi0JCQkJZXJy ID0gMDsKLQkJCWJyZWFrOwotCQl9Ci0JfQotCXVwX3JlYWQoJmNiX2xvY2spOwotCi0JcmV0dXJu IGVycjsKLX0KLQotc3RhdGljIHZvaWQgZ2VubF91bmJpbmQoc3RydWN0IG5ldCAqbmV0LCBpbnQg Z3JvdXApCi17Ci0Jc3RydWN0IGdlbmxfZmFtaWx5ICpmOwotCXVuc2lnbmVkIGludCBpZDsKLQot CWRvd25fcmVhZCgmY2JfbG9jayk7Ci0KLQlpZHJfZm9yX2VhY2hfZW50cnkoJmdlbmxfZmFtX2lk ciwgZiwgaWQpIHsKLQkJaWYgKGdyb3VwID49IGYtPm1jZ3JwX29mZnNldCAmJgotCQkgICAgZ3Jv dXAgPCBmLT5tY2dycF9vZmZzZXQgKyBmLT5uX21jZ3JwcykgewotCQkJaW50IGZhbV9ncnAgPSBn cm91cCAtIGYtPm1jZ3JwX29mZnNldDsKLQotCQkJaWYgKGYtPm1jYXN0X3VuYmluZCkKLQkJCQlm LT5tY2FzdF91bmJpbmQobmV0LCBmYW1fZ3JwKTsKLQkJCWJyZWFrOwotCQl9Ci0JfQotCXVwX3Jl YWQoJmNiX2xvY2spOwotfQotCiBzdGF0aWMgaW50IF9fbmV0X2luaXQgZ2VubF9wZXJuZXRfaW5p dChzdHJ1Y3QgbmV0ICpuZXQpCiB7CiAJc3RydWN0IG5ldGxpbmtfa2VybmVsX2NmZyBjZmcgPSB7 CiAJCS5pbnB1dAkJPSBnZW5sX3JjdiwKIAkJLmZsYWdzCQk9IE5MX0NGR19GX05PTlJPT1RfUkVD ViwKLQkJLmJpbmQJCT0gZ2VubF9iaW5kLAotCQkudW5iaW5kCQk9IGdlbmxfdW5iaW5kLAogCX07 CiAKIAkvKiB3ZSdsbCBidW1wIHRoZSBncm91cCBudW1iZXIgcmlnaHQgYWZ0ZXJ3YXJkcyAqLwot LSAKMi4yNi4yCgoKRnJvbSBlNzNhZTM5YjVhMTU2ZWRjYjlmMWJjNmFkMGZjYTdmYTViMzg4MDc5 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTYWJyaW5hIER1YnJvY2EgPHNkQHF1ZWFz eXNuYWlsLm5ldD4KRGF0ZTogRnJpLCAzIEp1bCAyMDIwIDE3OjAwOjMyICswMjAwClN1YmplY3Q6 IFtQQVRDSCAwNC8yOV0gaXB2NDogZmlsbCBmbDRfaWNtcF97dHlwZSxjb2RlfSBpbiBwaW5nX3Y0 X3NlbmRtc2cKClsgVXBzdHJlYW0gY29tbWl0IDVlZmYwNjkwMjM5NDQyNWM3MjJmMGE0NGQ5NTQ1 OTA5YTg4MDBmNzkgXQoKSVB2NCBwaW5nIHNvY2tldHMgZG9uJ3Qgc2V0IGZsNC5mbDRfaWNtcF97 dHlwZSxjb2RlfSwgd2hpY2ggbGVhZHMgdG8KaW5jb21wbGV0ZSBJUHNlYyBBQ1FVSVJFIG1lc3Nh Z2VzIGJlaW5nIHNlbnQgdG8gdXNlcnNwYWNlLiBDdXJyZW50bHksCmJvdGggcmF3IHNvY2tldHMg YW5kIElQdjYgcGluZyBzb2NrZXRzIHNldCB0aG9zZSBmaWVsZHMuCgpFeHBlY3RlZCBvdXRwdXQg b2YgImlwIHhmcm0gbW9uaXRvciI6CiAgICBhY3F1aXJlIHByb3RvIGVzcAogICAgICBzZWwgc3Jj IDEwLjAuMi4xNS8zMiBkc3QgOC44LjguOC8zMiBwcm90byBpY21wIHR5cGUgOCBjb2RlIDAgZGV2 IGVuczQKICAgICAgcG9saWN5IHNyYyAxMC4wLjIuMTUvMzIgZHN0IDguOC44LjgvMzIKICAgICAg ICA8c25pcD4KCkN1cnJlbnRseSB3aXRoIHBpbmcgc29ja2V0czoKICAgIGFjcXVpcmUgcHJvdG8g ZXNwCiAgICAgIHNlbCBzcmMgMTAuMC4yLjE1LzMyIGRzdCA4LjguOC44LzMyIHByb3RvIGljbXAg dHlwZSAwIGNvZGUgMCBkZXYgZW5zNAogICAgICBwb2xpY3kgc3JjIDEwLjAuMi4xNS8zMiBkc3Qg OC44LjguOC8zMgogICAgICAgIDxzbmlwPgoKVGhlIExpYnJlc3dhbiB0ZXN0IHN1aXRlIGZvdW5k IHRoaXMgcHJvYmxlbSBhZnRlciBGZWRvcmEgY2hhbmdlZCB0aGUKdmFsdWUgZm9yIHRoZSBzeXNj dGwgbmV0LmlwdjQucGluZ19ncm91cF9yYW5nZS4KCkZpeGVzOiBjMzE5YjRkNzZiOWUgKCJuZXQ6 IGlwdjQ6IGFkZCBJUFBST1RPX0lDTVAgc29ja2V0IGtpbmQiKQpSZXBvcnRlZC1ieTogUGF1bCBX b3V0ZXJzIDxwd291dGVyc0ByZWRoYXQuY29tPgpUZXN0ZWQtYnk6IFBhdWwgV291dGVycyA8cHdv dXRlcnNAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FicmluYSBEdWJyb2NhIDxzZEBxdWVh c3lzbmFpbC5uZXQ+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC9waW5nLmMgfCAzICsrKwogMSBmaWxlIGNoYW5nZWQsIDMg aW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3BpbmcuYyBiL25ldC9pcHY0L3Bp bmcuYwppbmRleCA1MzU0MjcyOTIxOTQuLmRmNmZiZWZlNDRkNCAxMDA2NDQKLS0tIGEvbmV0L2lw djQvcGluZy5jCisrKyBiL25ldC9pcHY0L3BpbmcuYwpAQCAtNzg2LDYgKzc4Niw5IEBAIHN0YXRp YyBpbnQgcGluZ192NF9zZW5kbXNnKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IG1zZ2hkciAqbXNn LCBzaXplX3QgbGVuKQogCQkJICAgaW5ldF9za19mbG93aV9mbGFncyhzayksIGZhZGRyLCBzYWRk ciwgMCwgMCwKIAkJCSAgIHNrLT5za191aWQpOwogCisJZmw0LmZsNF9pY21wX3R5cGUgPSB1c2Vy X2ljbXBoLnR5cGU7CisJZmw0LmZsNF9pY21wX2NvZGUgPSB1c2VyX2ljbXBoLmNvZGU7CisKIAlz ZWN1cml0eV9za19jbGFzc2lmeV9mbG93KHNrLCBmbG93aTRfdG9fZmxvd2koJmZsNCkpOwogCXJ0 ID0gaXBfcm91dGVfb3V0cHV0X2Zsb3cobmV0LCAmZmw0LCBzayk7CiAJaWYgKElTX0VSUihydCkp IHsKLS0gCjIuMjYuMgoKCkZyb20gNmRiMmUwODkzMjM1Mzg1NzMyODIzZjQyZTc4NzE0MThhYjU5 MDZlNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGF2aWQgQWhlcm4gPGRzYWhlcm5A a2VybmVsLm9yZz4KRGF0ZTogTW9uLCA2IEp1bCAyMDIwIDExOjQ1OjA3IC0wNjAwClN1YmplY3Q6 IFtQQVRDSCAwNS8yOV0gaXB2NjogZmliNl9zZWxlY3RfcGF0aCBjYW4gbm90IHVzZSBvdXQgcGF0 aCBmb3IgbmV4dGhvcAogb2JqZWN0cwoKWyBVcHN0cmVhbSBjb21taXQgMzRmZTVhMWNmOTVjM2Yx MTQwNjhmYzE2ZDkxOWM5Y2Y0YjAwZTQyOCBdCgpCcmlhbiByZXBvcnRlZCBhIGNyYXNoIGluIElQ djYgY29kZSB3aGVuIHVzaW5nIHJwZmlsdGVyIHdpdGggYSBzZXR1cApydW5uaW5nIEZSUiBhbmQg ZXh0ZXJuYWwgbmV4dGhvcCBvYmplY3RzLiBUaGUgcm9vdCBjYXVzZSBvZiB0aGUgY3Jhc2gKaXMg ZmliNl9zZWxlY3RfcGF0aCBzZXR0aW5nIGZpYjZfbmggaW4gdGhlIHJlc3VsdCB0byBOVUxMIGJl Y2F1c2Ugb2YKYW4gaW1wcm9wZXIgY2hlY2sgZm9yIG5leHRob3Agb2JqZWN0cy4KCk1vcmUgc3Bl Y2lmaWNhbGx5LCBycGZpbHRlciBpbnZva2VzIGlwNl9yb3V0ZV9sb29rdXAgd2l0aCBmbG93aTZf b2lmCnNldCBjYXVzaW5nIGZpYjZfc2VsZWN0X3BhdGggdG8gYmUgY2FsbGVkIHdpdGggaGF2ZV9v aWZfbWF0Y2ggc2V0LgpmaWI2X3NlbGVjdF9wYXRoIGhhcyBlYXJseSBjaGVjayBvbiBoYXZlX29p Zl9tYXRjaCBhbmQganVtcHMgdG8gdGhlCm91dCBsYWJlbCB3aGljaCBwcmVzdW1lcyBhIGJ1aWx0 aW4gZmliNl9uaC4gVGhpcyBwYXRoIGlzIGludmFsaWQgZm9yCm5leHRob3Agb2JqZWN0czsgZm9y IGV4dGVybmFsIG5leHRob3BzIGZpYjZfc2VsZWN0X3BhdGggbmVlZHMgdG8ganVzdApyZXR1cm4g aWYgdGhlIGZpYjZfbmggaGFzIGFscmVhZHkgYmVlbiBzZXQgaW4gdGhlIHJlc3VsdCBvdGhlcndp c2UgaXQKcmV0dXJucyBhZnRlciB0aGUgY2FsbCB0byBuZXh0aG9wX3BhdGhfZmliNl9yZXN1bHQu IFVwZGF0ZSB0aGUgY2hlY2sKb24gaGF2ZV9vaWZfbWF0Y2ggdG8gbm90IGJhaWwgb24gZXh0ZXJu YWwgbmV4dGhvcHMuCgpVcGRhdGUgc2VsZnRlc3RzIGZvciB0aGlzIHByb2JsZW0uCgpGaXhlczog Zjg4ZDhlYTY3ZmJkICgiaXB2NjogUGx1bWIgc3VwcG9ydCBmb3IgbmV4dGhvcCBvYmplY3QgaW4g YSBmaWI2X2luZm8iKQpSZXBvcnRlZC1ieTogQnJpYW4gUmFrIDxicmFrQGNob29wYS5jb20+ClNp Z25lZC1vZmYtYnk6IERhdmlkIEFoZXJuIDxkc2FoZXJuQGtlcm5lbC5vcmc+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9y b3V0ZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDUgKysrKy0KIHRvb2xzL3Rlc3Rp bmcvc2VsZnRlc3RzL25ldC9maWJfbmV4dGhvcHMuc2ggfCAxMyArKysrKysrKysrKysrCiAyIGZp bGVzIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg YS9uZXQvaXB2Ni9yb3V0ZS5jIGIvbmV0L2lwdjYvcm91dGUuYwppbmRleCAzYjRhZjBhOGJjYTYu LjkwMDQyY2FkNjFlYyAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvcm91dGUuYworKysgYi9uZXQvaXB2 Ni9yb3V0ZS5jCkBAIC00MzEsOSArNDMxLDEyIEBAIHZvaWQgZmliNl9zZWxlY3RfcGF0aChjb25z dCBzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBmaWI2X3Jlc3VsdCAqcmVzLAogCXN0cnVjdCBmaWI2 X2luZm8gKnNpYmxpbmcsICpuZXh0X3NpYmxpbmc7CiAJc3RydWN0IGZpYjZfaW5mbyAqbWF0Y2gg PSByZXMtPmY2aTsKIAotCWlmICgoIW1hdGNoLT5maWI2X25zaWJsaW5ncyAmJiAhbWF0Y2gtPm5o KSB8fCBoYXZlX29pZl9tYXRjaCkKKwlpZiAoIW1hdGNoLT5uaCAmJiAoIW1hdGNoLT5maWI2X25z aWJsaW5ncyB8fCBoYXZlX29pZl9tYXRjaCkpCiAJCWdvdG8gb3V0OwogCisJaWYgKG1hdGNoLT5u aCAmJiBoYXZlX29pZl9tYXRjaCAmJiByZXMtPm5oKQorCQlyZXR1cm47CisKIAkvKiBXZSBtaWdo dCBoYXZlIGFscmVhZHkgY29tcHV0ZWQgdGhlIGhhc2ggZm9yIElDTVB2NiBlcnJvcnMuIEluIHN1 Y2gKIAkgKiBjYXNlIGl0IHdpbGwgYWx3YXlzIGJlIG5vbi16ZXJvLiBPdGhlcndpc2Ugbm93IGlz IHRoZSB0aW1lIHRvIGRvIGl0LgogCSAqLwpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxm dGVzdHMvbmV0L2ZpYl9uZXh0aG9wcy5zaCBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9m aWJfbmV4dGhvcHMuc2gKaW5kZXggNjU2MGVkNzk2YWM0Li4wOTgzMGI4OGVjOGMgMTAwNzU1Ci0t LSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9maWJfbmV4dGhvcHMuc2gKKysrIGIvdG9v bHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2ZpYl9uZXh0aG9wcy5zaApAQCAtNTEyLDYgKzUxMiwx OSBAQCBpcHY2X2ZjbmFsX3J1bnRpbWUoKQogCXJ1bl9jbWQgIiRJUCBuZXh0aG9wIGFkZCBpZCA4 NiB2aWEgMjAwMTpkYjg6OTE6OjIgZGV2IHZldGgxIgogCXJ1bl9jbWQgIiRJUCBybyBhZGQgMjAw MTpkYjg6MTAxOjoxLzEyOCBuaGlkIDgxIgogCisJIyBycGZpbHRlciBhbmQgZGVmYXVsdCByb3V0 ZQorCSRJUCBuZXh0aG9wIGZsdXNoID4vZGV2L251bGwgMj4mMQorCXJ1bl9jbWQgImlwIG5ldG5z IGV4ZWMgbWUgaXA2dGFibGVzIC10IG1hbmdsZSAtSSBQUkVST1VUSU5HIDEgLW0gcnBmaWx0ZXIg LS1pbnZlcnQgLWogRFJPUCIKKwlydW5fY21kICIkSVAgbmV4dGhvcCBhZGQgaWQgOTEgdmlhIDIw MDE6ZGI4OjkxOjoyIGRldiB2ZXRoMSIKKwlydW5fY21kICIkSVAgbmV4dGhvcCBhZGQgaWQgOTIg dmlhIDIwMDE6ZGI4OjkyOjoyIGRldiB2ZXRoMyIKKwlydW5fY21kICIkSVAgbmV4dGhvcCBhZGQg aWQgOTMgZ3JvdXAgOTEvOTIiCisJcnVuX2NtZCAiJElQIC02IHJvIGFkZCBkZWZhdWx0IG5oaWQg OTEiCisJcnVuX2NtZCAiaXAgbmV0bnMgZXhlYyBtZSBwaW5nIC1jMSAtdzEgMjAwMTpkYjg6MTAx OjoxIgorCWxvZ190ZXN0ICQ/IDAgIk5leHRob3Agd2l0aCBkZWZhdWx0IHJvdXRlIGFuZCBycGZp bHRlciIKKwlydW5fY21kICIkSVAgLTYgcm8gcmVwbGFjZSBkZWZhdWx0IG5oaWQgOTMiCisJcnVu X2NtZCAiaXAgbmV0bnMgZXhlYyBtZSBwaW5nIC1jMSAtdzEgMjAwMTpkYjg6MTAxOjoxIgorCWxv Z190ZXN0ICQ/IDAgIk5leHRob3Agd2l0aCBtdWx0aXBhdGggZGVmYXVsdCByb3V0ZSBhbmQgcnBm aWx0ZXIiCisKIAkjIFRPLURPOgogCSMgZXhpc3Rpbmcgcm91dGUgd2l0aCBvbGQgbmV4dGhvcDsg YXBwZW5kIHJvdXRlIHdpdGggbmV3IG5leHRob3AKIAkjIGV4aXN0aW5nIHJvdXRlIHdpdGggb2xk IG5leHRob3A7IHJlcGxhY2Ugcm91dGUgd2l0aCBuZXcKLS0gCjIuMjYuMgoKCkZyb20gYzM1ZDQ3 YWVkODU1YjFiMWNhYWRkN2I1MmEzZWE1YWZlYjIxMzA1OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRGF2aWQgQWhlcm4gPGRzYWhlcm5Aa2VybmVsLm9yZz4KRGF0ZTogVHVlLCA3IEp1 bCAyMDIwIDA3OjM5OjI0IC0wNjAwClN1YmplY3Q6IFtQQVRDSCAwNi8yOV0gaXB2NjogRml4IHVz ZSBvZiBhbnljYXN0IGFkZHJlc3Mgd2l0aCBsb29wYmFjawoKWyBVcHN0cmVhbSBjb21taXQgYWVh MjNjMzIzZDg5ODM2YmNkY2VlNjdlNDlkZWY5OTdmZmNhMDQzYiBdCgpUaG9tYXMgcmVwb3J0ZWQg YSByZWdyZXNzaW9uIHdpdGggSVB2NiBhbmQgYW55Y2FzdCB1c2luZyB0aGUgZm9sbG93aW5nCnJl cHJvZHVjZXI6CgogICAgZWNobyAxID4gIC9wcm9jL3N5cy9uZXQvaXB2Ni9jb25mL2FsbC9mb3J3 YXJkaW5nCiAgICBpcCAtNiBhIGFkZCBmYzEyOjoxLzE2IGRldiBsbwogICAgc2xlZXAgMgogICAg ZWNobyAicGluZ2luZyBsbyIKICAgIHBpbmc2IC1jIDIgZmMxMjo6CgpUaGUgY29udmVyc2lvbiBv ZiBhZGRyY29uZl9mNmlfYWxsb2MgdG8gdXNlIGlwNl9yb3V0ZV9pbmZvX2NyZWF0ZSBtaXNzZWQK dGhlIHVzZSBvZiBmaWI2X2lzX3JlamVjdCB3aGljaCBjaGVja3MgYWRkcmVzc2VzIGFkZGVkIHRv IHRoZSBsb29wYmFjawppbnRlcmZhY2UgYW5kIHNldHMgdGhlIFJFSkVDVCBmbGFnIGFzIG5lZWRl ZC4gVXBkYXRlIGZpYjZfaXNfcmVqZWN0IGZvcgpsb29wYmFjayBjaGVja3MgdG8gaGFuZGxlIFJU Rl9BTllDQVNUIGFkZHJlc3Nlcy4KCkZpeGVzOiBjN2ExY2UzOTdhZGEgKCJpcHY2OiBDaGFuZ2Ug YWRkcmNvbmZfZjZpX2FsbG9jIHRvIHVzZSBpcDZfcm91dGVfaW5mb19jcmVhdGUiKQpSZXBvcnRl ZC1ieTogdGhvbWFzLmdhbWJpZXJAbmV4ZWRpLmNvbQpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBBaGVy biA8ZHNhaGVybkBrZXJuZWwub3JnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvcm91dGUuYyB8IDIgKy0KIDEgZmlsZSBj aGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9p cHY2L3JvdXRlLmMgYi9uZXQvaXB2Ni9yb3V0ZS5jCmluZGV4IDkwMDQyY2FkNjFlYy4uOTRhZGU0 M2Q1YTQ1IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9yb3V0ZS5jCisrKyBiL25ldC9pcHY2L3JvdXRl LmMKQEAgLTM0MDksNyArMzQwOSw3IEBAIHN0YXRpYyBib29sIGZpYjZfaXNfcmVqZWN0KHUzMiBm bGFncywgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IGFkZHJfdHlwZSkKIAlpZiAoKGZsYWdz ICYgUlRGX1JFSkVDVCkgfHwKIAkgICAgKGRldiAmJiAoZGV2LT5mbGFncyAmIElGRl9MT09QQkFD SykgJiYKIAkgICAgICEoYWRkcl90eXBlICYgSVBWNl9BRERSX0xPT1BCQUNLKSAmJgotCSAgICAg IShmbGFncyAmIFJURl9MT0NBTCkpKQorCSAgICAgIShmbGFncyAmIChSVEZfQU5ZQ0FTVCB8IFJU Rl9MT0NBTCkpKSkKIAkJcmV0dXJuIHRydWU7CiAKIAlyZXR1cm4gZmFsc2U7Ci0tIAoyLjI2LjIK CgpGcm9tIDA4YTY1NTA3MjE4MTAwYmEzMTBkYWIyMjkyZmRkY2FlMjZjYjdhYTAgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KRGF0 ZTogVHVlLCA3IEp1bCAyMDIwIDAyOjAyOjMyICswODAwClN1YmplY3Q6IFtQQVRDSCAwNy8yOV0g bDJ0cDogcmVtb3ZlIHNrYl9kc3Rfc2V0KCkgZnJvbSBsMnRwX3htaXRfc2tiKCkKClsgVXBzdHJl YW0gY29tbWl0IDI3ZDUzMzIzNjY0YzU0OWI1YmIyZGZhYWY2ZjdhZDZlMDM3NmE2NGUgXQoKSW4g dGhlIHR4IHBhdGggb2YgbDJ0cCwgbDJ0cF94bWl0X3NrYigpIGNhbGxzIHNrYl9kc3Rfc2V0KCkg dG8gc2V0CnNrYidzIGRzdC4gSG93ZXZlciwgaXQgd2lsbCBldmVudHVhbGx5IGNhbGwgaW5ldDZf Y3NrX3htaXQoKSBvcgppcF9xdWV1ZV94bWl0KCkgd2hlcmUgc2tiJ3MgZHN0IHdpbGwgYmUgb3Zl cndyaXR0ZW4gYnk6CgogICBza2JfZHN0X3NldF9ub3JlZihza2IsIGRzdCk7Cgp3aXRob3V0IHJl bGVhc2luZyB0aGUgb2xkIGRzdCBpbiBza2IuIFRoZW4gaXQgY2F1c2VzIGRzdC9kZXYgcmVmY250 IGxlYWs6CgogIHVucmVnaXN0ZXJfbmV0ZGV2aWNlOiB3YWl0aW5nIGZvciBldGgwIHRvIGJlY29t ZSBmcmVlLiBVc2FnZSBjb3VudCA9IDEKClRoaXMgY2FuIGJlIHJlcHJvZHVjZWQgYnkgc2ltcGx5 IHJ1bm5pbmc6CgogICMgbW9kcHJvYmUgbDJ0cF9ldGggJiYgbW9kcHJvYmUgbDJ0cF9pcAogICMg c2ggLi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvbDJ0cC5zaAoKU28gYmVmb3JlIGdvaW5n IHRvIGluZXQ2X2Nza194bWl0KCkgb3IgaXBfcXVldWVfeG1pdCgpLCBza2IncyBkc3QKc2hvdWxk IGJlIGRyb3BwZWQuIFRoaXMgcGF0Y2ggaXMgdG8gZml4IGl0IGJ5IHJlbW92aW5nIHNrYl9kc3Rf c2V0KCkKZnJvbSBsMnRwX3htaXRfc2tiKCkgYW5kIG1vdmluZyBza2JfZHN0X2Ryb3AoKSBpbnRv IGwydHBfeG1pdF9jb3JlKCkuCgpGaXhlczogMzU1N2JhYWJmMjgwICgiW0wyVFBdOiBQUFAgb3Zl ciBMMlRQIGRyaXZlciBjb3JlIikKUmVwb3J0ZWQtYnk6IEhhbmdiaW4gTGl1IDxsaXVoYW5nYmlu QGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29t PgpBY2tlZC1ieTogSmFtZXMgQ2hhcG1hbiA8amNoYXBtYW5Aa2F0YWxpeC5jb20+ClRlc3RlZC1i eTogSmFtZXMgQ2hhcG1hbiA8amNoYXBtYW5Aa2F0YWxpeC5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvbDJ0cC9sMnRwX2Nv cmUuYyB8IDUgKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgNCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvbDJ0cC9sMnRwX2NvcmUuYyBiL25ldC9sMnRwL2wydHBf Y29yZS5jCmluZGV4IDZkYzNiZmExMmIxZS4uOTU4MDVhNjMzMWJlIDEwMDY0NAotLS0gYS9uZXQv bDJ0cC9sMnRwX2NvcmUuYworKysgYi9uZXQvbDJ0cC9sMnRwX2NvcmUuYwpAQCAtMTAzMCw2ICsx MDMwLDcgQEAgc3RhdGljIHZvaWQgbDJ0cF94bWl0X2NvcmUoc3RydWN0IGwydHBfc2Vzc2lvbiAq c2Vzc2lvbiwgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAogCS8qIFF1ZXVlIHRoZSBwYWNrZXQgdG8g SVAgZm9yIG91dHB1dCAqLwogCXNrYi0+aWdub3JlX2RmID0gMTsKKwlza2JfZHN0X2Ryb3Aoc2ti KTsKICNpZiBJU19FTkFCTEVEKENPTkZJR19JUFY2KQogCWlmIChsMnRwX3NrX2lzX3Y2KHR1bm5l bC0+c29jaykpCiAJCWVycm9yID0gaW5ldDZfY3NrX3htaXQodHVubmVsLT5zb2NrLCBza2IsIE5V TEwpOwpAQCAtMTEwMSwxMCArMTEwMiw2IEBAIGludCBsMnRwX3htaXRfc2tiKHN0cnVjdCBsMnRw X3Nlc3Npb24gKnNlc3Npb24sIHN0cnVjdCBza19idWZmICpza2IsIGludCBoZHJfbGVuCiAJCWdv dG8gb3V0X3VubG9jazsKIAl9CiAKLQkvKiBHZXQgcm91dGluZyBpbmZvIGZyb20gdGhlIHR1bm5l bCBzb2NrZXQgKi8KLQlza2JfZHN0X2Ryb3Aoc2tiKTsKLQlza2JfZHN0X3NldChza2IsIHNrX2Rz dF9jaGVjayhzaywgMCkpOwotCiAJaW5ldCA9IGluZXRfc2soc2spOwogCWZsID0gJmluZXQtPmNv cmsuZmw7CiAJc3dpdGNoICh0dW5uZWwtPmVuY2FwKSB7Ci0tIAoyLjI2LjIKCgpGcm9tIDIzY2Q3 MzAxYzcwMjk0Nzg5NzRiODBmNzk5ODMyMzViNWZmNjg3YTcgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogU2F0LCAy NyBKdW4gMjAyMCAxMzozMTo1MCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDgvMjldIGxsYzogbWFr ZSBzdXJlIGFwcGxpY2F0aW9ucyB1c2UgQVJQSFJEX0VUSEVSCgpbIFVwc3RyZWFtIGNvbW1pdCBh OWIxMTEwMTYyMzU3Njg5YTM0OTkyZDVjOTI1ODUyOTQ4ZTViOWZkIF0KCnN5emJvdCB3YXMgdG8g dHJpZ2dlciBhIGJ1ZyBieSB0cmlja2luZyBBRl9MTEMgd2l0aApub24gc2Vuc2libGUgYWRkci0+ c2xsY19hcnBocmQKCkl0IHNlZW1zIGNsZWFyIExMQyByZXF1aXJlcyBhbiBFdGhlcm5ldCBkZXZp Y2UuCgpCYWNrIGluIGNvbW1pdCBhYmY5ZDUzN2ZlYTIgKCJsbGM6IGFkZCBzdXBwb3J0IGZvciBT T19CSU5EVE9ERVZJQ0UiKQpPY3RhdmlhbiBQdXJkaWxhIGFkZGVkIHBvc3NpYmlsaXR5IGZvciBh cHBsaWNhdGlvbiB0byB1c2UgYSB6ZXJvCnZhbHVlIGZvciBzbGxjX2FycGhyZCwgY29udmVydCBp dCB0byBBUlBIUkRfRVRIRVIgdG8gbm90IGNhdXNlCnJlZ3Jlc3Npb25zIG9uIGV4aXN0aW5nIGFw cGxpY2F0aW9ucy4KCkJVRzogS0FTQU46IHVzZS1hZnRlci1mcmVlIGluIF9fcmVhZF9vbmNlX3Np emUgaW5jbHVkZS9saW51eC9jb21waWxlci5oOjE5OSBbaW5saW5lXQpCVUc6IEtBU0FOOiB1c2Ut YWZ0ZXItZnJlZSBpbiBsaXN0X2VtcHR5IGluY2x1ZGUvbGludXgvbGlzdC5oOjI2OCBbaW5saW5l XQpCVUc6IEtBU0FOOiB1c2UtYWZ0ZXItZnJlZSBpbiB3YWl0cXVldWVfYWN0aXZlIGluY2x1ZGUv bGludXgvd2FpdC5oOjEyNiBbaW5saW5lXQpCVUc6IEtBU0FOOiB1c2UtYWZ0ZXItZnJlZSBpbiB3 cV9oYXNfc2xlZXBlciBpbmNsdWRlL2xpbnV4L3dhaXQuaDoxNjAgW2lubGluZV0KQlVHOiBLQVNB TjogdXNlLWFmdGVyLWZyZWUgaW4gc2t3cV9oYXNfc2xlZXBlciBpbmNsdWRlL25ldC9zb2NrLmg6 MjA5MiBbaW5saW5lXQpCVUc6IEtBU0FOOiB1c2UtYWZ0ZXItZnJlZSBpbiBzb2NrX2RlZl93cml0 ZV9zcGFjZSsweDY0Mi8weDY3MCBuZXQvY29yZS9zb2NrLmM6MjgxMwpSZWFkIG9mIHNpemUgOCBh dCBhZGRyIGZmZmY4ODgwMWUwYjQwNzggYnkgdGFzayBrc29mdGlycWQvMy8yNwoKQ1BVOiAzIFBJ RDogMjcgQ29tbToga3NvZnRpcnFkLzMgTm90IHRhaW50ZWQgNS41LjAtcmMxLXN5emthbGxlciAj MApIYXJkd2FyZSBuYW1lOiBRRU1VIFN0YW5kYXJkIFBDIChRMzUgKyBJQ0g5LCAyMDA5KSwgQklP UyByZWwtMS4xMi4wLTU5LWdjOWJhNTI3NmUzMjEtcHJlYnVpbHQucWVtdS5vcmcgMDQvMDEvMjAx NApDYWxsIFRyYWNlOgogX19kdW1wX3N0YWNrIGxpYi9kdW1wX3N0YWNrLmM6NzcgW2lubGluZV0K IGR1bXBfc3RhY2srMHgxOTcvMHgyMTAgbGliL2R1bXBfc3RhY2suYzoxMTgKIHByaW50X2FkZHJl c3NfZGVzY3JpcHRpb24uY29uc3Rwcm9wLjAuY29sZCsweGQ0LzB4MzBiIG1tL2thc2FuL3JlcG9y dC5jOjM3NAogX19rYXNhbl9yZXBvcnQuY29sZCsweDFiLzB4NDEgbW0va2FzYW4vcmVwb3J0LmM6 NTA2CiBrYXNhbl9yZXBvcnQrMHgxMi8weDIwIG1tL2thc2FuL2NvbW1vbi5jOjYzOQogX19hc2Fu X3JlcG9ydF9sb2FkOF9ub2Fib3J0KzB4MTQvMHgyMCBtbS9rYXNhbi9nZW5lcmljX3JlcG9ydC5j OjEzNQogX19yZWFkX29uY2Vfc2l6ZSBpbmNsdWRlL2xpbnV4L2NvbXBpbGVyLmg6MTk5IFtpbmxp bmVdCiBsaXN0X2VtcHR5IGluY2x1ZGUvbGludXgvbGlzdC5oOjI2OCBbaW5saW5lXQogd2FpdHF1 ZXVlX2FjdGl2ZSBpbmNsdWRlL2xpbnV4L3dhaXQuaDoxMjYgW2lubGluZV0KIHdxX2hhc19zbGVl cGVyIGluY2x1ZGUvbGludXgvd2FpdC5oOjE2MCBbaW5saW5lXQogc2t3cV9oYXNfc2xlZXBlciBp bmNsdWRlL25ldC9zb2NrLmg6MjA5MiBbaW5saW5lXQogc29ja19kZWZfd3JpdGVfc3BhY2UrMHg2 NDIvMHg2NzAgbmV0L2NvcmUvc29jay5jOjI4MTMKIHNvY2tfd2ZyZWUrMHgxZTEvMHgyNjAgbmV0 L2NvcmUvc29jay5jOjE5NTgKIHNrYl9yZWxlYXNlX2hlYWRfc3RhdGUrMHhlYi8weDI2MCBuZXQv Y29yZS9za2J1ZmYuYzo2NTIKIHNrYl9yZWxlYXNlX2FsbCsweDE2LzB4NjAgbmV0L2NvcmUvc2ti dWZmLmM6NjYzCiBfX2tmcmVlX3NrYiBuZXQvY29yZS9za2J1ZmYuYzo2NzkgW2lubGluZV0KIGNv bnN1bWVfc2tiIG5ldC9jb3JlL3NrYnVmZi5jOjgzOCBbaW5saW5lXQogY29uc3VtZV9za2IrMHhm Yi8weDQxMCBuZXQvY29yZS9za2J1ZmYuYzo4MzIKIF9fZGV2X2tmcmVlX3NrYl9hbnkrMHhhNC8w eGQwIG5ldC9jb3JlL2Rldi5jOjI5NjcKIGRldl9rZnJlZV9za2JfYW55IGluY2x1ZGUvbGludXgv bmV0ZGV2aWNlLmg6MzY1MCBbaW5saW5lXQogZTEwMDBfdW5tYXBfYW5kX2ZyZWVfdHhfcmVzb3Vy Y2UuaXNyYS4wKzB4MjFiLzB4M2EwIGRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2UxMDAwL2Ux MDAwX21haW4uYzoxOTYzCiBlMTAwMF9jbGVhbl90eF9pcnEgZHJpdmVycy9uZXQvZXRoZXJuZXQv aW50ZWwvZTEwMDAvZTEwMDBfbWFpbi5jOjM4NTQgW2lubGluZV0KIGUxMDAwX2NsZWFuKzB4NGNj LzB4MWQxMCBkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9lMTAwMC9lMTAwMF9tYWluLmM6Mzc5 NgogbmFwaV9wb2xsIG5ldC9jb3JlL2Rldi5jOjY1MzIgW2lubGluZV0KIG5ldF9yeF9hY3Rpb24r MHg1MDgvMHgxMTIwIG5ldC9jb3JlL2Rldi5jOjY2MDAKIF9fZG9fc29mdGlycSsweDI2Mi8weDk4 YyBrZXJuZWwvc29mdGlycS5jOjI5MgogcnVuX2tzb2Z0aXJxZCBrZXJuZWwvc29mdGlycS5jOjYw MyBbaW5saW5lXQogcnVuX2tzb2Z0aXJxZCsweDhlLzB4MTEwIGtlcm5lbC9zb2Z0aXJxLmM6NTk1 CiBzbXBib290X3RocmVhZF9mbisweDZhMy8weGE0MCBrZXJuZWwvc21wYm9vdC5jOjE2NQoga3Ro cmVhZCsweDM2MS8weDQzMCBrZXJuZWwva3RocmVhZC5jOjI1NQogcmV0X2Zyb21fZm9yaysweDI0 LzB4MzAgYXJjaC94ODYvZW50cnkvZW50cnlfNjQuUzozNTIKCkFsbG9jYXRlZCBieSB0YXNrIDgy NDc6CiBzYXZlX3N0YWNrKzB4MjMvMHg5MCBtbS9rYXNhbi9jb21tb24uYzo3Mgogc2V0X3RyYWNr IG1tL2thc2FuL2NvbW1vbi5jOjgwIFtpbmxpbmVdCiBfX2thc2FuX2ttYWxsb2MgbW0va2FzYW4v Y29tbW9uLmM6NTEzIFtpbmxpbmVdCiBfX2thc2FuX2ttYWxsb2MuY29uc3Rwcm9wLjArMHhjZi8w eGUwIG1tL2thc2FuL2NvbW1vbi5jOjQ4Ngoga2FzYW5fc2xhYl9hbGxvYysweGYvMHgyMCBtbS9r YXNhbi9jb21tb24uYzo1MjEKIHNsYWJfcG9zdF9hbGxvY19ob29rIG1tL3NsYWIuaDo1ODQgW2lu bGluZV0KIHNsYWJfYWxsb2MgbW0vc2xhYi5jOjMzMjAgW2lubGluZV0KIGttZW1fY2FjaGVfYWxs b2MrMHgxMjEvMHg3MTAgbW0vc2xhYi5jOjM0ODQKIHNvY2tfYWxsb2NfaW5vZGUrMHgxYy8weDFk MCBuZXQvc29ja2V0LmM6MjQwCiBhbGxvY19pbm9kZSsweDY4LzB4MWUwIGZzL2lub2RlLmM6MjMw CiBuZXdfaW5vZGVfcHNldWRvKzB4MTkvMHhmMCBmcy9pbm9kZS5jOjkxOQogc29ja19hbGxvYysw eDQxLzB4MjcwIG5ldC9zb2NrZXQuYzo1NjAKIF9fc29ja19jcmVhdGUrMHhjMi8weDczMCBuZXQv c29ja2V0LmM6MTM4NAogc29ja19jcmVhdGUgbmV0L3NvY2tldC5jOjE0NzEgW2lubGluZV0KIF9f c3lzX3NvY2tldCsweDEwMy8weDIyMCBuZXQvc29ja2V0LmM6MTUxMwogX19kb19zeXNfc29ja2V0 IG5ldC9zb2NrZXQuYzoxNTIyIFtpbmxpbmVdCiBfX3NlX3N5c19zb2NrZXQgbmV0L3NvY2tldC5j OjE1MjAgW2lubGluZV0KIF9faWEzMl9zeXNfc29ja2V0KzB4NzMvMHhiMCBuZXQvc29ja2V0LmM6 MTUyMAogZG9fc3lzY2FsbF8zMl9pcnFzX29uIGFyY2gveDg2L2VudHJ5L2NvbW1vbi5jOjMzNyBb aW5saW5lXQogZG9fZmFzdF9zeXNjYWxsXzMyKzB4MjdiLzB4ZTE2IGFyY2gveDg2L2VudHJ5L2Nv bW1vbi5jOjQwOAogZW50cnlfU1lTRU5URVJfY29tcGF0KzB4NzAvMHg3ZiBhcmNoL3g4Ni9lbnRy eS9lbnRyeV82NF9jb21wYXQuUzoxMzkKCkZyZWVkIGJ5IHRhc2sgMTc6CiBzYXZlX3N0YWNrKzB4 MjMvMHg5MCBtbS9rYXNhbi9jb21tb24uYzo3Mgogc2V0X3RyYWNrIG1tL2thc2FuL2NvbW1vbi5j OjgwIFtpbmxpbmVdCiBrYXNhbl9zZXRfZnJlZV9pbmZvIG1tL2thc2FuL2NvbW1vbi5jOjMzNSBb aW5saW5lXQogX19rYXNhbl9zbGFiX2ZyZWUrMHgxMDIvMHgxNTAgbW0va2FzYW4vY29tbW9uLmM6 NDc0CiBrYXNhbl9zbGFiX2ZyZWUrMHhlLzB4MTAgbW0va2FzYW4vY29tbW9uLmM6NDgzCiBfX2Nh Y2hlX2ZyZWUgbW0vc2xhYi5jOjM0MjYgW2lubGluZV0KIGttZW1fY2FjaGVfZnJlZSsweDg2LzB4 MzIwIG1tL3NsYWIuYzozNjk0CiBzb2NrX2ZyZWVfaW5vZGUrMHgyMC8weDMwIG5ldC9zb2NrZXQu YzoyNjEKIGlfY2FsbGJhY2srMHg0NC8weDgwIGZzL2lub2RlLmM6MjE5CiBfX3JjdV9yZWNsYWlt IGtlcm5lbC9yY3UvcmN1Lmg6MjIyIFtpbmxpbmVdCiByY3VfZG9fYmF0Y2gga2VybmVsL3JjdS90 cmVlLmM6MjE4MyBbaW5saW5lXQogcmN1X2NvcmUrMHg1NzAvMHgxNTQwIGtlcm5lbC9yY3UvdHJl ZS5jOjI0MDgKIHJjdV9jb3JlX3NpKzB4OS8weDEwIGtlcm5lbC9yY3UvdHJlZS5jOjI0MTcKIF9f ZG9fc29mdGlycSsweDI2Mi8weDk4YyBrZXJuZWwvc29mdGlycS5jOjI5MgoKVGhlIGJ1Z2d5IGFk ZHJlc3MgYmVsb25ncyB0byB0aGUgb2JqZWN0IGF0IGZmZmY4ODgwMWUwYjQwMDAKIHdoaWNoIGJl bG9uZ3MgdG8gdGhlIGNhY2hlIHNvY2tfaW5vZGVfY2FjaGUgb2Ygc2l6ZSAxMTUyClRoZSBidWdn eSBhZGRyZXNzIGlzIGxvY2F0ZWQgMTIwIGJ5dGVzIGluc2lkZSBvZgogMTE1Mi1ieXRlIHJlZ2lv biBbZmZmZjg4ODAxZTBiNDAwMCwgZmZmZjg4ODAxZTBiNDQ4MCkKVGhlIGJ1Z2d5IGFkZHJlc3Mg YmVsb25ncyB0byB0aGUgcGFnZToKcGFnZTpmZmZmZWEwMDAwNzgyZDAwIHJlZmNvdW50OjEgbWFw Y291bnQ6MCBtYXBwaW5nOmZmZmY4ODgwN2FhNTljNDAgaW5kZXg6MHhmZmZmODg4MDFlMGI0ZmZk CnJhdzogMDBmZmZlMDAwMDAwMDIwMCBmZmZmZWEwMDAwOGU2Yzg4IGZmZmZlYTAwMDA3ODJkNDgg ZmZmZjg4ODA3YWE1OWM0MApyYXc6IGZmZmY4ODgwMWUwYjRmZmQgZmZmZjg4ODAxZTBiNDAwMCAw MDAwMDAwMTAwMDAwMDAzIDAwMDAwMDAwMDAwMDAwMDAKcGFnZSBkdW1wZWQgYmVjYXVzZToga2Fz YW46IGJhZCBhY2Nlc3MgZGV0ZWN0ZWQKCk1lbW9yeSBzdGF0ZSBhcm91bmQgdGhlIGJ1Z2d5IGFk ZHJlc3M6CiBmZmZmODg4MDFlMGIzZjAwOiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBm YiBmYiBmYyBmYyBmYyBmYwogZmZmZjg4ODAxZTBiM2Y4MDogZmMgZmMgZmMgZmMgZmMgZmMgZmMg ZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMKPmZmZmY4ODgwMWUwYjQwMDA6IGZiIGZiIGZiIGZi IGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBmZmZmODg4MDFl MGI0MDgwOiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYgog ZmZmZjg4ODAxZTBiNDEwMDogZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIg ZmIgZmIgZmIKCkZpeGVzOiBhYmY5ZDUzN2ZlYTIgKCJsbGM6IGFkZCBzdXBwb3J0IGZvciBTT19C SU5EVE9ERVZJQ0UiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2ds ZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBuZXQvbGxjL2FmX2xsYy5jIHwgMTAgKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQs IDcgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvbGxjL2Fm X2xsYy5jIGIvbmV0L2xsYy9hZl9sbGMuYwppbmRleCBjNzRmNDRkZmFhMjIuLjVhYmI3ZjliN2Vl NSAxMDA2NDQKLS0tIGEvbmV0L2xsYy9hZl9sbGMuYworKysgYi9uZXQvbGxjL2FmX2xsYy5jCkBA IC0yNzMsNiArMjczLDEwIEBAIHN0YXRpYyBpbnQgbGxjX3VpX2F1dG9iaW5kKHN0cnVjdCBzb2Nr ZXQgKnNvY2ssIHN0cnVjdCBzb2NrYWRkcl9sbGMgKmFkZHIpCiAKIAlpZiAoIXNvY2tfZmxhZyhz aywgU09DS19aQVBQRUQpKQogCQlnb3RvIG91dDsKKwlpZiAoIWFkZHItPnNsbGNfYXJwaHJkKQor CQlhZGRyLT5zbGxjX2FycGhyZCA9IEFSUEhSRF9FVEhFUjsKKwlpZiAoYWRkci0+c2xsY19hcnBo cmQgIT0gQVJQSFJEX0VUSEVSKQorCQlnb3RvIG91dDsKIAlyYyA9IC1FTk9ERVY7CiAJaWYgKHNr LT5za19ib3VuZF9kZXZfaWYpIHsKIAkJbGxjLT5kZXYgPSBkZXZfZ2V0X2J5X2luZGV4KCZpbml0 X25ldCwgc2stPnNrX2JvdW5kX2Rldl9pZik7CkBAIC0zMjgsNyArMzMyLDkgQEAgc3RhdGljIGlu dCBsbGNfdWlfYmluZChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29ja2FkZHIgKnVhZGRy LCBpbnQgYWRkcmxlbikKIAlpZiAodW5saWtlbHkoIXNvY2tfZmxhZyhzaywgU09DS19aQVBQRUQp IHx8IGFkZHJsZW4gIT0gc2l6ZW9mKCphZGRyKSkpCiAJCWdvdG8gb3V0OwogCXJjID0gLUVBRk5P U1VQUE9SVDsKLQlpZiAodW5saWtlbHkoYWRkci0+c2xsY19mYW1pbHkgIT0gQUZfTExDKSkKKwlp ZiAoIWFkZHItPnNsbGNfYXJwaHJkKQorCQlhZGRyLT5zbGxjX2FycGhyZCA9IEFSUEhSRF9FVEhF UjsKKwlpZiAodW5saWtlbHkoYWRkci0+c2xsY19mYW1pbHkgIT0gQUZfTExDIHx8IGFkZHItPnNs bGNfYXJwaHJkICE9IEFSUEhSRF9FVEhFUikpCiAJCWdvdG8gb3V0OwogCWRwcmludGsoIiVzOiBi aW5kaW5nICUwMlhcbiIsIF9fZnVuY19fLCBhZGRyLT5zbGxjX3NhcCk7CiAJcmMgPSAtRU5PREVW OwpAQCAtMzM2LDggKzM0Miw2IEBAIHN0YXRpYyBpbnQgbGxjX3VpX2JpbmQoc3RydWN0IHNvY2tl dCAqc29jaywgc3RydWN0IHNvY2thZGRyICp1YWRkciwgaW50IGFkZHJsZW4pCiAJaWYgKHNrLT5z a19ib3VuZF9kZXZfaWYpIHsKIAkJbGxjLT5kZXYgPSBkZXZfZ2V0X2J5X2luZGV4X3JjdSgmaW5p dF9uZXQsIHNrLT5za19ib3VuZF9kZXZfaWYpOwogCQlpZiAobGxjLT5kZXYpIHsKLQkJCWlmICgh YWRkci0+c2xsY19hcnBocmQpCi0JCQkJYWRkci0+c2xsY19hcnBocmQgPSBsbGMtPmRldi0+dHlw ZTsKIAkJCWlmIChpc196ZXJvX2V0aGVyX2FkZHIoYWRkci0+c2xsY19tYWMpKQogCQkJCW1lbWNw eShhZGRyLT5zbGxjX21hYywgbGxjLT5kZXYtPmRldl9hZGRyLAogCQkJCSAgICAgICBJRkhXQURE UkxFTik7Ci0tIAoyLjI2LjIKCgpGcm9tIDNlOGM4ZTI4YjU2YmZkYzg4MmJjNTEzOTE4NTYxYjJh ZmZhZjYyNzcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1hcnRpbiBWYXJnaGVzZSA8 bWFydGluLnZhcmdoZXNlQG5va2lhLmNvbT4KRGF0ZTogU3VuLCA1IEp1bCAyMDIwIDE0OjIzOjQ5 ICswNTMwClN1YmplY3Q6IFtQQVRDSCAwOS8yOV0gbmV0OiBBZGRlZCBwb2ludGVyIGNoZWNrIGZv ciBkc3QtPm9wcy0+bmVpZ2hfbG9va3VwIGluCiBkc3RfbmVpZ2hfbG9va3VwX3NrYgoKWyBVcHN0 cmVhbSBjb21taXQgMzk0ZGUxMTBhNzMzOTVkZTJjYTQ1MTZiMGRlNDM1ZTkxYjExYjYwNCBdCgpU aGUgcGFja2V0cyBmcm9tIHR1bm5lbCBkZXZpY2VzIChlZyBiYXJldWRwKSBtYXkgaGF2ZSBvbmx5 Cm1ldGFkYXRhIGluIHRoZSBkc3QgcG9pbnRlciBvZiBza2IuIEhlbmNlIGEgcG9pbnRlciBjaGVj ayBvZgpuZWlnaF9sb29rdXAgaXMgbmVlZGVkIGluIGRzdF9uZWlnaF9sb29rdXBfc2tiCgpLZXJu ZWwgY3Jhc2hlcyB3aGVuIHBhY2tldHMgZnJvbSBiYXJldWRwIGRldmljZSBpcyBwcm9jZXNzZWQg aW4KdGhlIGtlcm5lbCBuZWlnaGJvdXIgc3Vic3l0ZW0uCgpbICAxMzMuMzg0NDg0XSBCVUc6IGtl cm5lbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UsIGFkZHJlc3M6IDAwMDAwMDAwMDAwMDAwMDAK WyAgMTMzLjM4NTI0MF0gI1BGOiBzdXBlcnZpc29yIGluc3RydWN0aW9uIGZldGNoIGluIGtlcm5l bCBtb2RlClsgIDEzMy4zODU4MjhdICNQRjogZXJyb3JfY29kZSgweDAwMTApIC0gbm90LXByZXNl bnQgcGFnZQpbICAxMzMuMzg2NjAzXSBQR0QgMCBQNEQgMApbICAxMzMuMzg2ODc1XSBPb3BzOiAw MDEwIFsjMV0gU01QIFBUSQpbICAxMzMuMzg3Mjc1XSBDUFU6IDAgUElEOiA1MDQ1IENvbW06IHBp bmcgVGFpbnRlZDogRyAgICAgICAgVyAgICAgICAgIDUuOC4wLXJjMisgIzE1ClsgIDEzMy4zODgw NTJdIEhhcmR3YXJlIG5hbWU6IFJlZCBIYXQgS1ZNLCBCSU9TIDAuNS4xIDAxLzAxLzIwMTEKWyAg MTMzLjM5MTA3Nl0gUklQOiAwMDEwOjB4MApbICAxMzMuMzkyNDAxXSBDb2RlOiBCYWQgUklQIHZh bHVlLgpbICAxMzMuMzk0MDI5XSBSU1A6IDAwMTg6ZmZmZmI3OTk4MDAwM2Q1MCBFRkxBR1M6IDAw MDEwMjQ2ClsgIDEzMy4zOTY2NTZdIFJBWDogMDAwMDAwMDA4MDAwMDEwMiBSQlg6IGZmZmY5ZGUy ZmUwZDY2MDAgUkNYOiBmZmZmOWRlMmZlNWU5ZDAwClsgIDEzMy4zOTkwMThdIFJEWDogMDAwMDAw MDAwMDAwMDAwMCBSU0k6IGZmZmY5ZGUyZmU1ZTlkMDAgUkRJOiBmZmZmOWRlMmZjMjFiNDAwClsg IDEzMy4zOTk2ODVdIFJCUDogZmZmZjlkZTJmZTVlOWQwMCBSMDg6IDAwMDAwMDAwMDAwMDAwMDAg UjA5OiAwMDAwMDAwMDAwMDAwMDAwClsgIDEzMy40MDAzNTBdIFIxMDogZmZmZjlkZTJmYmM2YmUy MiBSMTE6IGZmZmY5ZGUyZmUwZDY2MDAgUjEyOiBmZmZmOWRlMmZjMjFiNDAwClsgIDEzMy40MDEw MTBdIFIxMzogZmZmZjlkZTJmZTBkNjYyOCBSMTQ6IDAwMDAwMDAwMDAwMDAwMDEgUjE1OiAwMDAw MDAwMDAwMDAwMDAzClsgIDEzMy40MDE2NjddIEZTOiAgMDAwMDdmZTAxNDkxODc0MCgwMDAwKSBH UzpmZmZmOWRlMmZlYzAwMDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKWyAgMTMzLjQw MjQxMl0gQ1M6ICAwMDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4MDA1MDAzMwpb ICAxMzMuNDAyOTQ4XSBDUjI6IGZmZmZmZmZmZmZmZmZmZDYgQ1IzOiAwMDAwMDAwMDNiYjcyMDAw IENSNDogMDAwMDAwMDAwMDAwMDZmMApbICAxMzMuNDAzNjExXSBEUjA6IDAwMDAwMDAwMDAwMDAw MDAgRFIxOiAwMDAwMDAwMDAwMDAwMDAwIERSMjogMDAwMDAwMDAwMDAwMDAwMApbICAxMzMuNDA0 MjcwXSBEUjM6IDAwMDAwMDAwMDAwMDAwMDAgRFI2OiAwMDAwMDAwMGZmZmUwZmYwIERSNzogMDAw MDAwMDAwMDAwMDQwMApbICAxMzMuNDA0OTMzXSBDYWxsIFRyYWNlOgpbICAxMzMuNDA1MTY5XSAg PElSUT4KWyAgMTMzLjQwNTM2N10gIF9fbmVpZ2hfdXBkYXRlKzB4NWE0LzB4OGYwClsgIDEzMy40 MDU3MzRdICBhcnBfcHJvY2VzcysweDI5NC8weDgyMApbICAxMzMuNDA2MDc2XSAgPyBfX25ldGlm X3JlY2VpdmVfc2tiX2NvcmUrMHg4NjYvMHhlNzAKWyAgMTMzLjQwNjU1N10gIGFycF9yY3YrMHgx MjkvMHgxYzAKWyAgMTMzLjQwNjg4Ml0gIF9fbmV0aWZfcmVjZWl2ZV9za2Jfb25lX2NvcmUrMHg5 NS8weGIwClsgIDEzMy40MDczNDBdICBwcm9jZXNzX2JhY2tsb2crMHhhNy8weDE1MApbICAxMzMu NDA3NzA1XSAgbmV0X3J4X2FjdGlvbisweDJhZi8weDQyMApbICAxMzMuNDA4NDU3XSAgX19kb19z b2Z0aXJxKzB4ZGEvMHgyYTgKWyAgMTMzLjQwODgxM10gIGFzbV9jYWxsX29uX3N0YWNrKzB4MTIv MHgyMApbICAxMzMuNDA5MjkwXSAgPC9JUlE+ClsgIDEzMy40MDk1MTldICBkb19zb2Z0aXJxX293 bl9zdGFjaysweDM5LzB4NTAKWyAgMTMzLjQxMDAzNl0gIGRvX3NvZnRpcnErMHg1MC8weDYwClsg IDEzMy40MTA0MDFdICBfX2xvY2FsX2JoX2VuYWJsZV9pcCsweDUwLzB4NjAKWyAgMTMzLjQxMDg3 MV0gIGlwX2ZpbmlzaF9vdXRwdXQyKzB4MTk1LzB4NTMwClsgIDEzMy40MTEyODhdICBpcF9vdXRw dXQrMHg3Mi8weGYwClsgIDEzMy40MTE2NzNdICA/IF9faXBfZmluaXNoX291dHB1dCsweDFmMC8w eDFmMApbICAxMzMuNDEyMTIyXSAgaXBfc2VuZF9za2IrMHgxNS8weDQwClsgIDEzMy40MTI0NzFd ICByYXdfc2VuZG1zZysweDg1My8weGFiMApbICAxMzMuNDEyODU1XSAgPyBpbnNlcnRfcGZuKzB4 ZmUvMHgyNzAKWyAgMTMzLjQxMzgyN10gID8gdnZhcl9mYXVsdCsweGVjLzB4MTkwClsgIDEzMy40 MTQ3NzJdICBzb2NrX3NlbmRtc2crMHg1Ny8weDgwClsgIDEzMy40MTU2ODVdICBfX3N5c19zZW5k dG8rMHhkYy8weDE2MApbICAxMzMuNDE2NjA1XSAgPyBzeXNjYWxsX3RyYWNlX2VudGVyKzB4MWQ0 LzB4MmIwClsgIDEzMy40MTc2NzldICA/IF9fYXVkaXRfc3lzY2FsbF9leGl0KzB4MWQ5LzB4Mjgw ClsgIDEzMy40MTg3NTNdICA/IF9fcHJlcGFyZV9leGl0X3RvX3VzZXJtb2RlKzB4NWQvMHgxYTAK WyAgMTMzLjQxOTgxOV0gIF9feDY0X3N5c19zZW5kdG8rMHgyNC8weDMwClsgIDEzMy40MjA4NDhd ICBkb19zeXNjYWxsXzY0KzB4NGQvMHg5MApbICAxMzMuNDIxNzY4XSAgZW50cnlfU1lTQ0FMTF82 NF9hZnRlcl9od2ZyYW1lKzB4NDQvMHhhOQpbICAxMzMuNDIyODMzXSBSSVA6IDAwMzM6MHg3ZmUw MTM2ODljMDMKWyAgMTMzLjQyMzc0OV0gQ29kZTogQmFkIFJJUCB2YWx1ZS4KWyAgMTMzLjQyNDYy NF0gUlNQOiAwMDJiOjAwMDA3ZmZjNzI4OGY0MTggRUZMQUdTOiAwMDAwMDI0NiBPUklHX1JBWDog MDAwMDAwMDAwMDAwMDAyYwpbICAxMzMuNDI1OTQwXSBSQVg6IGZmZmZmZmZmZmZmZmZmZGEgUkJY OiAwMDAwNTYxNTFmYzYzNzIwIFJDWDogMDAwMDdmZTAxMzY4OWMwMwpbICAxMzMuNDI3MjI1XSBS RFg6IDAwMDAwMDAwMDAwMDAwNDAgUlNJOiAwMDAwNTYxNTFmYzYzNzIwIFJESTogMDAwMDAwMDAw MDAwMDAwMwpbICAxMzMuNDI4NDgxXSBSQlA6IDAwMDA3ZmZjNzI4OTBiMzAgUjA4OiAwMDAwNTYx NTFmYzYwNTAwIFIwOTogMDAwMDAwMDAwMDAwMDAxMApbICAxMzMuNDI5NzU3XSBSMTA6IDAwMDAw MDAwMDAwMDAwMDAgUjExOiAwMDAwMDAwMDAwMDAwMjQ2IFIxMjogMDAwMDAwMDAwMDAwMDA0MApb ICAxMzMuNDMxMDQxXSBSMTM6IDAwMDA1NjE1MWZjNjM2ZTAgUjE0OiAwMDAwNTYxNTFmYzYxNmJj IFIxNTogMDAwMDAwMDAwMDAwMDA4MApbICAxMzMuNDMyNDgxXSBNb2R1bGVzIGxpbmtlZCBpbjog bXBsc19pcHR1bm5lbCBhY3RfbWlycmVkIGFjdF90dW5uZWxfa2V5IGNsc19mbG93ZXIgc2NoX2lu Z3Jlc3MgdmV0aCBtcGxzX3JvdXRlciBpcF90dW5uZWwgYmFyZXVkcCBpcDZfdWRwX3R1bm5lbCB1 ZHBfdHVubmVsIG1hY3NlYyB1ZHBfZGlhZyBpbmV0X2RpYWcgdW5peF9kaWFnIGFmX3BhY2tldF9k aWFnIG5ldGxpbmtfZGlhZyBiaW5mbXRfbWlzYyB4dF9NQVNRVUVSQURFIGlwdGFibGVfbmF0IHh0 X2FkZHJ0eXBlIHh0X2Nvbm50cmFjayBuZl9uYXQgbmZfY29ubnRyYWNrIG5mX2RlZnJhZ19pcHY2 IG5mX2RlZnJhZ19pcHY0IGJyX25ldGZpbHRlciBicmlkZ2Ugc3RwIGxsYyBlYnRhYmxlX2ZpbHRl ciBlYnRhYmxlcyBvdmVybGF5IGlwNnRhYmxlX2ZpbHRlciBpcDZfdGFibGVzIGlwdGFibGVfZmls dGVyIHN1bnJwYyBleHQ0IG1iY2FjaGUgamJkMiBwY3Nwa3IgaTJjX3BpaXg0IHZpcnRpb19iYWxs b29uIGpveWRldiBpcF90YWJsZXMgeGZzIGxpYmNyYzMyYyBhdGFfZ2VuZXJpYyBxeGwgcGF0YV9h Y3BpIGRybV90dG1faGVscGVyIHR0bSBkcm1fa21zX2hlbHBlciBzeXNjb3B5YXJlYSBzeXNmaWxs cmVjdCBzeXNpbWdibHQgZmJfc3lzX2ZvcHMgZHJtIGF0YV9waWl4IGxpYmF0YSB2aXJ0aW9fbmV0 IG5ldF9mYWlsb3ZlciB2aXJ0aW9fY29uc29sZSBmYWlsb3ZlciB2aXJ0aW9fYmxrIGkyY19jb3Jl IHZpcnRpb19wY2kgdmlydGlvX3Jpbmcgc2VyaW9fcmF3IGZsb3BweSB2aXJ0aW8gZG1fbWlycm9y IGRtX3JlZ2lvbl9oYXNoIGRtX2xvZyBkbV9tb2QKWyAgMTMzLjQ0NDA0NV0gQ1IyOiAwMDAwMDAw MDAwMDAwMDAwClsgIDEzMy40NDUwODJdIC0tLVsgZW5kIHRyYWNlIGY0YWVlZTE5NThmZDE2Mzgg XS0tLQpbICAxMzMuNDQ2MjM2XSBSSVA6IDAwMTA6MHgwClsgIDEzMy40NDcxODBdIENvZGU6IEJh ZCBSSVAgdmFsdWUuClsgIDEzMy40NDgxNTJdIFJTUDogMDAxODpmZmZmYjc5OTgwMDAzZDUwIEVG TEFHUzogMDAwMTAyNDYKWyAgMTMzLjQ0OTM2M10gUkFYOiAwMDAwMDAwMDgwMDAwMTAyIFJCWDog ZmZmZjlkZTJmZTBkNjYwMCBSQ1g6IGZmZmY5ZGUyZmU1ZTlkMDAKWyAgMTMzLjQ1MDgzNV0gUkRY OiAwMDAwMDAwMDAwMDAwMDAwIFJTSTogZmZmZjlkZTJmZTVlOWQwMCBSREk6IGZmZmY5ZGUyZmMy MWI0MDAKWyAgMTMzLjQ1MjIzN10gUkJQOiBmZmZmOWRlMmZlNWU5ZDAwIFIwODogMDAwMDAwMDAw MDAwMDAwMCBSMDk6IDAwMDAwMDAwMDAwMDAwMDAKWyAgMTMzLjQ1MzcyMl0gUjEwOiBmZmZmOWRl MmZiYzZiZTIyIFIxMTogZmZmZjlkZTJmZTBkNjYwMCBSMTI6IGZmZmY5ZGUyZmMyMWI0MDAKWyAg MTMzLjQ1NTE0OV0gUjEzOiBmZmZmOWRlMmZlMGQ2NjI4IFIxNDogMDAwMDAwMDAwMDAwMDAwMSBS MTU6IDAwMDAwMDAwMDAwMDAwMDMKWyAgMTMzLjQ1NjUyMF0gRlM6ICAwMDAwN2ZlMDE0OTE4NzQw KDAwMDApIEdTOmZmZmY5ZGUyZmVjMDAwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMApb ICAxMzMuNDU4MDQ2XSBDUzogIDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgw MDUwMDMzClsgIDEzMy40NTkzNDJdIENSMjogZmZmZmZmZmZmZmZmZmZkNiBDUjM6IDAwMDAwMDAw M2JiNzIwMDAgQ1I0OiAwMDAwMDAwMDAwMDAwNmYwClsgIDEzMy40NjA3ODJdIERSMDogMDAwMDAw MDAwMDAwMDAwMCBEUjE6IDAwMDAwMDAwMDAwMDAwMDAgRFIyOiAwMDAwMDAwMDAwMDAwMDAwClsg IDEzMy40NjIyNDBdIERSMzogMDAwMDAwMDAwMDAwMDAwMCBEUjY6IDAwMDAwMDAwZmZmZTBmZjAg RFI3OiAwMDAwMDAwMDAwMDAwNDAwClsgIDEzMy40NjM2OTddIEtlcm5lbCBwYW5pYyAtIG5vdCBz eW5jaW5nOiBGYXRhbCBleGNlcHRpb24gaW4gaW50ZXJydXB0ClsgIDEzMy40NjUyMjZdIEtlcm5l bCBPZmZzZXQ6IDB4ZmEwMDAwMCBmcm9tIDB4ZmZmZmZmZmY4MTAwMDAwMCAocmVsb2NhdGlvbiBy YW5nZTogMHhmZmZmZmZmZjgwMDAwMDAwLTB4ZmZmZmZmZmZiZmZmZmZmZikKWyAgMTMzLjQ2NzAy NV0gLS0tWyBlbmQgS2VybmVsIHBhbmljIC0gbm90IHN5bmNpbmc6IEZhdGFsIGV4Y2VwdGlvbiBp biBpbnRlcnJ1cHQgXS0tLQoKRml4ZXM6IGFhYTBjMjNjYjkwMSAoIkZpeCBkc3RfbmVpZ2hfbG9v a3VwL2RzdF9uZWlnaF9sb29rdXBfc2tiIHJldHVybiB2YWx1ZSBoYW5kbGluZyBidWciKQpTaWdu ZWQtb2ZmLWJ5OiBNYXJ0aW4gVmFyZ2hlc2UgPG1hcnRpbi52YXJnaGVzZUBub2tpYS5jb20+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBp bmNsdWRlL25ldC9kc3QuaCB8IDEwICsrKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2Vy dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9kc3QuaCBi L2luY2x1ZGUvbmV0L2RzdC5oCmluZGV4IDM0NDhjZjg2NWVkZS4uNDMzZjdjMWNlOGE5IDEwMDY0 NAotLS0gYS9pbmNsdWRlL25ldC9kc3QuaAorKysgYi9pbmNsdWRlL25ldC9kc3QuaApAQCAtNDAx LDcgKzQwMSwxNSBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBuZWlnaGJvdXIgKmRzdF9uZWlnaF9s b29rdXAoY29uc3Qgc3RydWN0IGRzdF9lbnRyeSAqZHN0LCBjbwogc3RhdGljIGlubGluZSBzdHJ1 Y3QgbmVpZ2hib3VyICpkc3RfbmVpZ2hfbG9va3VwX3NrYihjb25zdCBzdHJ1Y3QgZHN0X2VudHJ5 ICpkc3QsCiAJCQkJCQkgICAgIHN0cnVjdCBza19idWZmICpza2IpCiB7Ci0Jc3RydWN0IG5laWdo Ym91ciAqbiA9ICBkc3QtPm9wcy0+bmVpZ2hfbG9va3VwKGRzdCwgc2tiLCBOVUxMKTsKKwlzdHJ1 Y3QgbmVpZ2hib3VyICpuID0gTlVMTDsKKworCS8qIFRoZSBwYWNrZXRzIGZyb20gdHVubmVsIGRl dmljZXMgKGVnIGJhcmV1ZHApIG1heSBoYXZlIG9ubHkKKwkgKiBtZXRhZGF0YSBpbiB0aGUgZHN0 IHBvaW50ZXIgb2Ygc2tiLiBIZW5jZSBhIHBvaW50ZXIgY2hlY2sgb2YKKwkgKiBuZWlnaF9sb29r dXAgaXMgbmVlZGVkLgorCSAqLworCWlmIChkc3QtPm9wcy0+bmVpZ2hfbG9va3VwKQorCQluID0g ZHN0LT5vcHMtPm5laWdoX2xvb2t1cChkc3QsIHNrYiwgTlVMTCk7CisKIAlyZXR1cm4gSVNfRVJS KG4pID8gTlVMTCA6IG47CiB9CiAKLS0gCjIuMjYuMgoKCkZyb20gY2MyNTI2OGNhNjQxOGVkOWFj YjNjMzYwZWRhZTNhYTBkM2YzYmU3MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ29k cmluIENpdWJvdGFyaXUgPGNvZHJpbi5jaXVib3Rhcml1QG1pY3JvY2hpcC5jb20+CkRhdGU6IFRo dSwgMiBKdWwgMjAyMCAxMjo0NDo1MCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMTAvMjldIG5ldDog ZHNhOiBtaWNyb2NoaXA6IHNldCB0aGUgY29ycmVjdCBudW1iZXIgb2YgcG9ydHMKClsgVXBzdHJl YW0gY29tbWl0IGFmMTk5YTFhOWNiMDJlYzAxOTQ4MDRiZDQ2YzE3NGI2ZGIyNjIwNzUgXQoKVGhl IG51bWJlciBvZiBwb3J0cyBpcyBpbmNvcnJlY3RseSBzZXQgdG8gdGhlIG1heGltdW0gYXZhaWxh YmxlIGZvciBhIERTQQpzd2l0Y2guIEV2ZW4gaWYgdGhlIGV4dHJhIHBvcnRzIGFyZSBub3QgdXNl ZCwgdGhpcyBjYXVzZXMgc29tZSBmdW5jdGlvbnMKdG8gYmUgY2FsbGVkIGxhdGVyLCBsaWtlIHBv cnRfZGlzYWJsZSgpIGFuZCBwb3J0X3N0cF9zdGF0ZV9zZXQoKS4gSWYgdGhlCmRyaXZlciBkb2Vz bid0IGNoZWNrIHRoZSBwb3J0IGluZGV4LCBpdCB3aWxsIGVuZCB1cCBtb2RpZnlpbmcgdW5rbm93 bgpyZWdpc3RlcnMuCgpGaXhlczogYjk4N2U5OGU1MGFiICgiZHNhOiBhZGQgRFNBIHN3aXRjaCBk cml2ZXIgZm9yIE1pY3JvY2hpcCBLU1o5NDc3IikKU2lnbmVkLW9mZi1ieTogQ29kcmluIENpdWJv dGFyaXUgPGNvZHJpbi5jaXVib3Rhcml1QG1pY3JvY2hpcC5jb20+ClJldmlld2VkLWJ5OiBBbmRy ZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzejg3 OTUuYyB8IDMgKysrCiBkcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzejk0NzcuYyB8IDMgKysr CiAyIGZpbGVzIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L2RzYS9taWNyb2NoaXAva3N6ODc5NS5jIGIvZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9r c3o4Nzk1LmMKaW5kZXggMjRhNWU5OWY3ZmQ1Li44NGM0MzE5ZTNiMzEgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6ODc5NS5jCisrKyBiL2RyaXZlcnMvbmV0L2RzYS9t aWNyb2NoaXAva3N6ODc5NS5jCkBAIC0xMjY3LDYgKzEyNjcsOSBAQCBzdGF0aWMgaW50IGtzejg3 OTVfc3dpdGNoX2luaXQoc3RydWN0IGtzel9kZXZpY2UgKmRldikKIAkJCXJldHVybiAtRU5PTUVN OwogCX0KIAorCS8qIHNldCB0aGUgcmVhbCBudW1iZXIgb2YgcG9ydHMgKi8KKwlkZXYtPmRzLT5u dW1fcG9ydHMgPSBkZXYtPnBvcnRfY250OworCiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6OTQ3Ny5jIGIvZHJpdmVycy9uZXQvZHNhL21p Y3JvY2hpcC9rc3o5NDc3LmMKaW5kZXggNTBmZmM2M2Q2MjMxLi4zYWZiNTk2ZDhlNDMgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6OTQ3Ny5jCisrKyBiL2RyaXZlcnMv bmV0L2RzYS9taWNyb2NoaXAva3N6OTQ3Ny5jCkBAIC0xNTg3LDYgKzE1ODcsOSBAQCBzdGF0aWMg aW50IGtzejk0Nzdfc3dpdGNoX2luaXQoc3RydWN0IGtzel9kZXZpY2UgKmRldikKIAkJCXJldHVy biAtRU5PTUVNOwogCX0KIAorCS8qIHNldCB0aGUgcmVhbCBudW1iZXIgb2YgcG9ydHMgKi8KKwlk ZXYtPmRzLT5udW1fcG9ydHMgPSBkZXYtPnBvcnRfY250OworCiAJcmV0dXJuIDA7CiB9CiAKLS0g CjIuMjYuMgoKCkZyb20gNzc5YWZkMTIzZWIxNzYzNGVmYjhjM2Q0YjlmN2UwMzJhZjFmM2ZmNyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUnVzc2VsbCBLaW5nIDxybWsra2VybmVsQGFy bWxpbnV4Lm9yZy51az4KRGF0ZTogVHVlLCAzMCBKdW4gMjAyMCAxMTowNDo0MCArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggMTEvMjldIG5ldDogbXZuZXRhOiBmaXggdXNlIG9mIHN0YXRlLT5zcGVlZAoK WyBVcHN0cmVhbSBjb21taXQgZjJjYTY3M2QyY2Q1ZGY5YTc2MjQ3YjY3MGU5ZmZkNGQ2MzY4MmIz ZiBdCgpXaGVuIHN1cHBvcnQgZm9yIHNob3J0IHByZWFtYmxlcyB3YXMgYWRkZWQsIGl0IGluY29y cmVjdGx5IGtleWVkIGl0cwpkZWNpc2lvbiBvZmYgc3RhdGUtPnNwZWVkIGluc3RlYWQgb2Ygc3Rh dGUtPmludGVyZmFjZS4gIHN0YXRlLT5zcGVlZAppcyBub3QgZ3VhcmFudGVlZCB0byBiZSBjb3Jy ZWN0IGZvciBpbi1iYW5kIG1vZGVzLCB3aGljaCBjYW4gbGVhZCB0bwpzaG9ydCBwcmVhbWJsZXMg YmVpbmcgdW5leHBlY3RlZGx5IGRpc2FibGVkLgoKRml4IHRoaXMgYnkga2V5aW5nIG9mZiB0aGUg aW50ZXJmYWNlIG1vZGUsIHdoaWNoIGlzIHRoZSBvbmx5IHdheSB0aGF0Cm12bmV0YSBjYW4gb3Bl cmF0ZSBhdCAyLjVHYnBzLgoKRml4ZXM6IGRhNThhOTMxZjI0OCAoIm5ldDogbXZuZXRhOiBBZGQg c3VwcG9ydCBmb3IgMjUwME1icHMgU0dNSUkiKQpTaWduZWQtb2ZmLWJ5OiBSdXNzZWxsIEtpbmcg PHJtaytrZXJuZWxAYXJtbGludXgub3JnLnVrPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVs bC9tdm5ldGEuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxl dGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZuZXRh LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212bmV0YS5jCmluZGV4IGExMGFlMjhl YmM4YS4uYWU2ZjM3YjIzMjJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2 ZWxsL212bmV0YS5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZuZXRhLmMK QEAgLTM1NTgsNyArMzU1OCw3IEBAIHN0YXRpYyB2b2lkIG12bmV0YV9tYWNfY29uZmlnKHN0cnVj dCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnLCB1bnNpZ25lZCBpbnQgbW9kZSwKIAkvKiBXaGVuIGF0 IDIuNUcsIHRoZSBsaW5rIHBhcnRuZXIgY2FuIHNlbmQgZnJhbWVzIHdpdGggc2hvcnRlbmVkCiAJ ICogcHJlYW1ibGVzLgogCSAqLwotCWlmIChzdGF0ZS0+c3BlZWQgPT0gU1BFRURfMjUwMCkKKwlp ZiAoc3RhdGUtPmludGVyZmFjZSA9PSBQSFlfSU5URVJGQUNFX01PREVfMjUwMEJBU0VYKQogCQlu ZXdfY3RybDQgfD0gTVZORVRBX0dNQUM0X1NIT1JUX1BSRUFNQkxFX0VOQUJMRTsKIAogCWlmIChw cC0+Y29tcGh5ICYmIHBwLT5waHlfaW50ZXJmYWNlICE9IHN0YXRlLT5pbnRlcmZhY2UgJiYKLS0g CjIuMjYuMgoKCkZyb20gM2Y3MzU1YzdhMzg1ZDU4NmQxNjg0ZjFmODQ3MDZmNTRiOWM4OWEwNyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuIENhcnBlbnRlciA8ZGFuLmNhcnBlbnRl ckBvcmFjbGUuY29tPgpEYXRlOiBUdWUsIDMwIEp1biAyMDIwIDE0OjQ2OjE1ICswMzAwClN1Ympl Y3Q6IFtQQVRDSCAxMi8yOV0gbmV0OiBxcnRyOiBGaXggYW4gb3V0IG9mIGJvdW5kcyByZWFkCiBx cnRyX2VuZHBvaW50X3Bvc3QoKQoKWyBVcHN0cmVhbSBjb21taXQgOGZmNDFjYzIxNzE0NzA0ZWYw MTU4YTU0NmMzYzRkMDdmYWUyYzk1MiBdCgpUaGlzIGNvZGUgYXNzdW1lcyB0aGF0IHRoZSB1c2Vy IHBhc3NlZCBpbiBlbm91Z2ggZGF0YSBmb3IgYQpxcnRyX2hkcl92MSBvciBxcnRyX2hkcl92MiBz dHJ1Y3QsIGJ1dCBpdCdzIG5vdCBuZWNlc3NhcmlseSB0cnVlLiAgSWYKdGhlIGJ1ZmZlciBpcyB0 b28gc21hbGwgdGhlbiBpdCB3aWxsIHJlYWQgYmV5b25kIHRoZSBlbmQuCgpSZXBvcnRlZC1ieTog TWFuaXZhbm5hbiBTYWRoYXNpdmFtIDxtYW5pdmFubmFuLnNhZGhhc2l2YW1AbGluYXJvLm9yZz4K UmVwb3J0ZWQtYnk6IHN5emJvdCtiOGZlMzkzZjk5OWEyOTFhOWVhNkBzeXprYWxsZXIuYXBwc3Bv dG1haWwuY29tCkZpeGVzOiAxOTRjY2M4ODI5N2EgKCJuZXQ6IHFydHI6IFN1cHBvcnQgZGVjb2Rp bmcgaW5jb21pbmcgdjIgcGFja2V0cyIpClNpZ25lZC1vZmYtYnk6IERhbiBDYXJwZW50ZXIgPGRh bi5jYXJwZW50ZXJAb3JhY2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9xcnRyL3FydHIuYyB8IDYgKysrKystCiAxIGZp bGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEv bmV0L3FydHIvcXJ0ci5jIGIvbmV0L3FydHIvcXJ0ci5jCmluZGV4IDJhNGQ1MGUwNDQ0MS4uMTRj MTAxZTEwNGNlIDEwMDY0NAotLS0gYS9uZXQvcXJ0ci9xcnRyLmMKKysrIGIvbmV0L3FydHIvcXJ0 ci5jCkBAIC0yNTksNyArMjU5LDcgQEAgaW50IHFydHJfZW5kcG9pbnRfcG9zdChzdHJ1Y3QgcXJ0 cl9lbmRwb2ludCAqZXAsIGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCBsZW4pCiAJdW5zaWduZWQg aW50IHZlcjsKIAlzaXplX3QgaGRybGVuOwogCi0JaWYgKGxlbiAmIDMpCisJaWYgKGxlbiA9PSAw IHx8IGxlbiAmIDMpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJc2tiID0gbmV0ZGV2X2FsbG9jX3Nr YihOVUxMLCBsZW4pOwpAQCAtMjczLDYgKzI3Myw4IEBAIGludCBxcnRyX2VuZHBvaW50X3Bvc3Qo c3RydWN0IHFydHJfZW5kcG9pbnQgKmVwLCBjb25zdCB2b2lkICpkYXRhLCBzaXplX3QgbGVuKQog CiAJc3dpdGNoICh2ZXIpIHsKIAljYXNlIFFSVFJfUFJPVE9fVkVSXzE6CisJCWlmIChsZW4gPCBz aXplb2YoKnYxKSkKKwkJCWdvdG8gZXJyOwogCQl2MSA9IGRhdGE7CiAJCWhkcmxlbiA9IHNpemVv ZigqdjEpOwogCkBAIC0yODYsNiArMjg4LDggQEAgaW50IHFydHJfZW5kcG9pbnRfcG9zdChzdHJ1 Y3QgcXJ0cl9lbmRwb2ludCAqZXAsIGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCBsZW4pCiAJCXNp emUgPSBsZTMyX3RvX2NwdSh2MS0+c2l6ZSk7CiAJCWJyZWFrOwogCWNhc2UgUVJUUl9QUk9UT19W RVJfMjoKKwkJaWYgKGxlbiA8IHNpemVvZigqdjIpKQorCQkJZ290byBlcnI7CiAJCXYyID0gZGF0 YTsKIAkJaGRybGVuID0gc2l6ZW9mKCp2MikgKyB2Mi0+b3B0bGVuOwogCi0tIAoyLjI2LjIKCgpG cm9tIDlkZWE2ZmYzOWE2Y2EzNjI1NjNlOWFmMmI2MDMwMTU4NTcyOGFiM2MgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpE YXRlOiBXZWQsIDggSnVsIDIwMjAgMjA6MTM6NTkgLTA3MDAKU3ViamVjdDogW1BBVENIIDEzLzI5 XSBuZXRfc2NoZWQ6IGZpeCBhIG1lbW9yeSBsZWFrIGluIGF0bV90Y19pbml0KCkKClsgVXBzdHJl YW0gY29tbWl0IDMwNjM4MWFlYzdjMmI1YTY1OGVlYmNhMDA4YzhhMWI2NjY1MzZjYmEgXQoKV2hl biB0Y2ZfYmxvY2tfZ2V0KCkgZmFpbHMgaW5zaWRlIGF0bV90Y19pbml0KCksCmF0bV90Y19wdXQo KSBpcyBjYWxsZWQgdG8gcmVsZWFzZSB0aGUgcWRpc2MgcC0+bGluay5xLgpCdXQgdGhlIGZsb3ct PnJlZiBwcmV2ZW50cyBpdCB0byBkbyBzbywgYXMgdGhlIGZsb3ctPnJlZgppcyBzdGlsbCB6ZXJv LgoKRml4IHRoaXMgYnkgbW92aW5nIHRoZSBwLT5saW5rLnJlZiBpbml0aWFsaXphdGlvbiBiZWZv cmUKdGNmX2Jsb2NrX2dldCgpLgoKRml4ZXM6IDY1MjllYWJhMzNmMCAoIm5ldDogc2NoZWQ6IGlu dHJvZHVjZSB0Y2YgYmxvY2sgaW5mcmFjdHJ1Y3R1cmUiKQpSZXBvcnRlZC1hbmQtdGVzdGVkLWJ5 OiBzeXpib3QrZDQxMWNmZjZhYjI5Y2MyYzMxMWJAc3l6a2FsbGVyLmFwcHNwb3RtYWlsLmNvbQpD YzogSmFtYWwgSGFkaSBTYWxpbSA8amhzQG1vamF0YXR1LmNvbT4KQ2M6IEppcmkgUGlya28gPGpp cmlAcmVzbnVsbGkudXM+ClNpZ25lZC1vZmYtYnk6IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdA Z21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogbmV0L3NjaGVkL3NjaF9hdG0uYyB8IDggKysrKy0tLS0KIDEgZmlsZSBjaGFu Z2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3Nj aGVkL3NjaF9hdG0uYyBiL25ldC9zY2hlZC9zY2hfYXRtLmMKaW5kZXggZjRmOWI4Y2RiZmZiLi42 Mzg1OTk1ZGM3MDAgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfYXRtLmMKKysrIGIvbmV0L3Nj aGVkL3NjaF9hdG0uYwpAQCAtNTUzLDE2ICs1NTMsMTYgQEAgc3RhdGljIGludCBhdG1fdGNfaW5p dChzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0IG5sYXR0ciAqb3B0LAogCWlmICghcC0+bGluay5x KQogCQlwLT5saW5rLnEgPSAmbm9vcF9xZGlzYzsKIAlwcl9kZWJ1ZygiYXRtX3RjX2luaXQ6IGxp bmsgKCVwKSBxZGlzYyAlcFxuIiwgJnAtPmxpbmssIHAtPmxpbmsucSk7CisJcC0+bGluay52Y2Mg PSBOVUxMOworCXAtPmxpbmsuc29jayA9IE5VTEw7CisJcC0+bGluay5jb21tb24uY2xhc3NpZCA9 IHNjaC0+aGFuZGxlOworCXAtPmxpbmsucmVmID0gMTsKIAogCWVyciA9IHRjZl9ibG9ja19nZXQo JnAtPmxpbmsuYmxvY2ssICZwLT5saW5rLmZpbHRlcl9saXN0LCBzY2gsCiAJCQkgICAgZXh0YWNr KTsKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwogCi0JcC0+bGluay52Y2MgPSBOVUxMOwotCXAt Pmxpbmsuc29jayA9IE5VTEw7Ci0JcC0+bGluay5jb21tb24uY2xhc3NpZCA9IHNjaC0+aGFuZGxl OwotCXAtPmxpbmsucmVmID0gMTsKIAl0YXNrbGV0X2luaXQoJnAtPnRhc2ssIHNjaF9hdG1fZGVx dWV1ZSwgKHVuc2lnbmVkIGxvbmcpc2NoKTsKIAlyZXR1cm4gMDsKIH0KLS0gCjIuMjYuMgoKCkZy b20gMTMxYTUwZWU3ODBkNDdlNTgyOWNkNmYyOTVjYzg0MTVhZWU2ZGM2ZSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogQWNlTGFuIEthbyA8YWNlbGFuLmthb0BjYW5vbmljYWwuY29tPgpE YXRlOiBUdWUsIDcgSnVsIDIwMjAgMTY6MTQ6NDUgKzA4MDAKU3ViamVjdDogW1BBVENIIDE0LzI5 XSBuZXQ6IHVzYjogcW1pX3d3YW46IGFkZCBzdXBwb3J0IGZvciBRdWVjdGVsIEVHOTUgTFRFCiBt b2RlbQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9 VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKWyBVcHN0cmVhbSBjb21taXQg ZjgxNWRkNWNmNDhiOTA1ZWVlY2YwYTJiOTkwZTliN2FiMDQ4YjRmMSBdCgpBZGQgc3VwcG9ydCBm b3IgUXVlY3RlbCBXaXJlbGVzcyBTb2x1dGlvbnMgQ28uLCBMdGQuIEVHOTUgTFRFIG1vZGVtCgpU OiAgQnVzPTAxIExldj0wMSBQcm50PTAxIFBvcnQ9MDIgQ250PTAyIERldiM9ICA1IFNwZD00ODAg TXhDaD0gMApEOiAgVmVyPSAyLjAwIENscz1lZihtaXNjICkgU3ViPTAyIFByb3Q9MDEgTXhQUz02 NCAjQ2Zncz0gIDEKUDogIFZlbmRvcj0yYzdjIFByb2RJRD0wMTk1IFJldj0wMy4xOApTOiAgTWFu dWZhY3R1cmVyPUFuZHJvaWQKUzogIFByb2R1Y3Q9QW5kcm9pZApDOiAgI0lmcz0gNSBDZmcjPSAx IEF0cj1hMCBNeFB3cj01MDBtQQpJOiAgSWYjPTB4MCBBbHQ9IDAgI0VQcz0gMiBDbHM9ZmYodmVu ZC4pIFN1Yj1mZiBQcm90PWZmIERyaXZlcj0obm9uZSkKSTogIElmIz0weDEgQWx0PSAwICNFUHM9 IDMgQ2xzPWZmKHZlbmQuKSBTdWI9MDAgUHJvdD0wMCBEcml2ZXI9KG5vbmUpCkk6ICBJZiM9MHgy IEFsdD0gMCAjRVBzPSAzIENscz1mZih2ZW5kLikgU3ViPTAwIFByb3Q9MDAgRHJpdmVyPShub25l KQpJOiAgSWYjPTB4MyBBbHQ9IDAgI0VQcz0gMyBDbHM9ZmYodmVuZC4pIFN1Yj0wMCBQcm90PTAw IERyaXZlcj0obm9uZSkKSTogIElmIz0weDQgQWx0PSAwICNFUHM9IDMgQ2xzPWZmKHZlbmQuKSBT dWI9ZmYgUHJvdD1mZiBEcml2ZXI9KG5vbmUpCgpTaWduZWQtb2ZmLWJ5OiBBY2VMYW4gS2FvIDxh Y2VsYW4ua2FvQGNhbm9uaWNhbC5jb20+CkFja2VkLWJ5OiBCasO4cm4gTW9yayA8Ympvcm5AbW9y ay5ubz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIGRyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwg MSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC91c2IvcW1pX3d3YW4uYyBi L2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jCmluZGV4IDRhMmM3MzU1YmU2My4uZTU3ZDU5YjBh N2FlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC91c2IvcW1pX3d3YW4uYworKysgYi9kcml2ZXJz L25ldC91c2IvcW1pX3d3YW4uYwpAQCAtMTM3MCw2ICsxMzcwLDcgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCB1c2JfZGV2aWNlX2lkIHByb2R1Y3RzW10gPSB7CiAJe1FNSV9RVUlSS19TRVRfRFRSKDB4 MWUwZSwgMHg5MDAxLCA1KX0sCS8qIFNJTUNvbSA3MTAwRSwgNzIzMEUsIDc2MDBFICsrICovCiAJ e1FNSV9RVUlSS19TRVRfRFRSKDB4MmM3YywgMHgwMTIxLCA0KX0sCS8qIFF1ZWN0ZWwgRUMyMSBN aW5pIFBDSWUgKi8KIAl7UU1JX1FVSVJLX1NFVF9EVFIoMHgyYzdjLCAweDAxOTEsIDQpfSwJLyog UXVlY3RlbCBFRzkxICovCisJe1FNSV9RVUlSS19TRVRfRFRSKDB4MmM3YywgMHgwMTk1LCA0KX0s CS8qIFF1ZWN0ZWwgRUc5NSAqLwogCXtRTUlfRklYRURfSU5URigweDJjN2MsIDB4MDI5NiwgNCl9 LAkvKiBRdWVjdGVsIEJHOTYgKi8KIAl7UU1JX1FVSVJLX1NFVF9EVFIoMHgyY2I3LCAweDAxMDQs IDQpfSwJLyogRmlib2NvbSBOTDY3OCBzZXJpZXMgKi8KIAl7UU1JX0ZJWEVEX0lOVEYoMHgwNDg5 LCAweGUwYjQsIDApfSwJLyogRm94Y29ubiBUNzdXOTY4IExURSAqLwotLSAKMi4yNi4yCgoKRnJv bSAwZjg3YWE3YmQzOTlmYzJmYzY4NTU5MzFkYzg1MTQyMTJhZmYzNWNkIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/VG9rZT0yMEg9QzM9QjhpbGFuZC1KPUMzPUI4cmdl bnNlbj89IDx0b2tlQHJlZGhhdC5jb20+CkRhdGU6IEZyaSwgMyBKdWwgMjAyMCAyMjoyNjo0MyAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggMTUvMjldIHNjaGVkOiBjb25zaXN0ZW50bHkgaGFuZGxlIGxh eWVyMyBoZWFkZXIgYWNjZXNzZXMgaW4KIHRoZSBwcmVzZW5jZSBvZiBWTEFOcwpNSU1FLVZlcnNp b246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1U cmFuc2Zlci1FbmNvZGluZzogOGJpdAoKWyBVcHN0cmVhbSBjb21taXQgZDdiZjJlYmViYzJiZDYx YWI5NWUyYThlMzM1NDFlZjI4MmYzMDNkNCBdCgpUaGVyZSBhcmUgYSBjb3VwbGUgb2YgcGxhY2Vz IGluIG5ldC9zY2hlZC8gdGhhdCBjaGVjayBza2ItPnByb3RvY29sIGFuZCBhY3QKb24gdGhlIHZh bHVlIHRoZXJlLiBIb3dldmVyLCBpbiB0aGUgcHJlc2VuY2Ugb2YgVkxBTiB0YWdzLCB0aGUgdmFs dWUgc3RvcmVkCmluIHNrYi0+cHJvdG9jb2wgY2FuIGJlIGluY29uc2lzdGVudCBiYXNlZCBvbiB3 aGV0aGVyIFZMQU4gYWNjZWxlcmF0aW9uIGlzCmVuYWJsZWQuIFRoZSBjb21taXQgcXVvdGVkIGlu IHRoZSBGaXhlcyB0YWcgYmVsb3cgZml4ZWQgdGhlIHVzZXJzIG9mCnNrYi0+cHJvdG9jb2wgdG8g dXNlIGEgaGVscGVyIHRoYXQgd2lsbCBhbHdheXMgc2VlIHRoZSBWTEFOIGV0aGVydHlwZS4KCkhv d2V2ZXIsIG1vc3Qgb2YgdGhlIGNhbGxlcnMgZG9uJ3QgYWN0dWFsbHkgaGFuZGxlIHRoZSBWTEFO IGV0aGVydHlwZSwgYnV0CmV4cGVjdCB0byBmaW5kIHRoZSBJUCBoZWFkZXIgdHlwZSBpbiB0aGUg cHJvdG9jb2wgZmllbGQuIFRoaXMgbWVhbnMgdGhhdAp0aGluZ3MgbGlrZSBjaGFuZ2luZyB0aGUg RUNOIGZpZWxkLCBvciBwYXJzaW5nIGRpZmZzZXJ2IHZhbHVlcywgc3RvcHMKd29ya2luZyBpZiB0 aGVyZSdzIGEgVkxBTiB0YWcsIG9yIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBuZXN0ZWQgVkxBTgp0 YWdzIChRaW5RKS4KClRvIGZpeCB0aGlzLCBjaGFuZ2UgdGhlIGhlbHBlciB0byB0YWtlIGFuIGFy Z3VtZW50IHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIKdGhlIGNhbGxlciB3YW50cyB0byBza2lwIHRo ZSBWTEFOIHRhZ3Mgb3Igbm90LiBXaGVuIHNraXBwaW5nIFZMQU4gdGFncywgd2UKbWFrZSBzdXJl IHRvIHNraXAgYWxsIG9mIHRoZW0sIHNvIGJlaGF2aW91ciBpcyBjb25zaXN0ZW50IGV2ZW4gaW4g UWluUQptb2RlLgoKVG8gbWFrZSB0aGUgaGVscGVyIHVzYWJsZSBmcm9tIHRoZSBFQ04gY29kZSwg bW92ZSBpdCB0byBpZl92bGFuLmggaW5zdGVhZApvZiBwa3Rfc2NoZWQuaC4KCnYzOgotIFJlbW92 ZSBlbXB0eSBsaW5lcwotIE1vdmUgdmxhbiB2YXJpYWJsZSBkZWZpbml0aW9ucyBpbnNpZGUgbG9v cCBpbiBza2JfcHJvdG9jb2woKQotIEFsc28gdXNlIHNrYl9wcm90b2NvbCgpIGhlbHBlciBpbiBJ UHssNn1fRUNOX2RlY2Fwc3VsYXRlKCkgYW5kCiAgYnBmX3NrYl9lY25fc2V0X2NlKCkKCnYyOgot IFVzZSBldGhfdHlwZV92bGFuKCkgaGVscGVyIGluIHNrYl9wcm90b2NvbCgpCi0gQWxzbyBmaXgg Y29kZSB0aGF0IHJlYWRzIHNrYi0+cHJvdG9jb2wgZGlyZWN0bHkKLSBDaGFuZ2UgYSBjb3VwbGUg b2YgJ2lmL2Vsc2UgaWYnIHN0YXRlbWVudHMgdG8gc3dpdGNoIGNvbnN0cnVjdHMgdG8gYXZvaWQK ICBjYWxsaW5nIHRoZSBoZWxwZXIgdHdpY2UKClJlcG9ydGVkLWJ5OiBJbHlhIFBvbmV0YXlldiA8 aS5wb25ldGFldkBuZG1zeXN0ZW1zLmNvbT4KRml4ZXM6IGQ4Yjk2MDVkMjY5NyAoIm5ldDogc2No ZWQ6IGZpeCBza2ItPnByb3RvY29sIHVzZSBpbiBjYXNlIG9mIGFjY2VsZXJhdGVkIHZsYW4gcGF0 aCIpClNpZ25lZC1vZmYtYnk6IFRva2UgSMO4aWxhbmQtSsO4cmdlbnNlbiA8dG9rZUByZWRoYXQu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogaW5jbHVkZS9saW51eC9pZl92bGFuLmggIHwgMjggKysrKysrKysrKysrKysrKysrKysr KysrKysrKwogaW5jbHVkZS9uZXQvaW5ldF9lY24uaCAgIHwgMjUgKysrKysrKysrKysrKysrKyst LS0tLS0tLQogaW5jbHVkZS9uZXQvcGt0X3NjaGVkLmggIHwgMTEgLS0tLS0tLS0tLS0KIG5ldC9j b3JlL2ZpbHRlci5jICAgICAgICB8IDEwICsrKysrKystLS0KIG5ldC9zY2hlZC9hY3RfY29ubm1h cmsuYyB8ICA5ICsrKysrKy0tLQogbmV0L3NjaGVkL2FjdF9jc3VtLmMgICAgIHwgIDIgKy0KIG5l dC9zY2hlZC9hY3RfY3QuYyAgICAgICB8ICA5ICsrKystLS0tLQogbmV0L3NjaGVkL2FjdF9jdGlu Zm8uYyAgIHwgIDkgKysrKysrLS0tCiBuZXQvc2NoZWQvYWN0X21wbHMuYyAgICAgfCAgMiArLQog bmV0L3NjaGVkL2FjdF9za2JlZGl0LmMgIHwgIDIgKy0KIG5ldC9zY2hlZC9jbHNfYXBpLmMgICAg ICB8ICAyICstCiBuZXQvc2NoZWQvY2xzX2Zsb3cuYyAgICAgfCAgOCArKysrLS0tLQogbmV0L3Nj aGVkL2Nsc19mbG93ZXIuYyAgIHwgIDIgKy0KIG5ldC9zY2hlZC9lbV9pcHNldC5jICAgICB8ICAy ICstCiBuZXQvc2NoZWQvZW1faXB0LmMgICAgICAgfCAgMiArLQogbmV0L3NjaGVkL2VtX21ldGEu YyAgICAgIHwgIDIgKy0KIG5ldC9zY2hlZC9zY2hfY2FrZS5jICAgICB8ICA0ICsrLS0KIG5ldC9z Y2hlZC9zY2hfZHNtYXJrLmMgICB8ICA2ICsrKy0tLQogbmV0L3NjaGVkL3NjaF90ZXFsLmMgICAg IHwgIDIgKy0KIDE5IGZpbGVzIGNoYW5nZWQsIDg2IGluc2VydGlvbnMoKyksIDUxIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvaWZfdmxhbi5oIGIvaW5jbHVkZS9saW51 eC9pZl92bGFuLmgKaW5kZXggYjA1ZTg1NWYxZGRkLi40MjdhNWI4NTk3YzIgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvbGludXgvaWZfdmxhbi5oCisrKyBiL2luY2x1ZGUvbGludXgvaWZfdmxhbi5oCkBA IC0zMDgsNiArMzA4LDM0IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBldGhfdHlwZV92bGFuKF9fYmUx NiBldGhlcnR5cGUpCiAJfQogfQogCisvKiBBIGdldHRlciBmb3IgdGhlIFNLQiBwcm90b2NvbCBm aWVsZCB3aGljaCB3aWxsIGhhbmRsZSBWTEFOIHRhZ3MgY29uc2lzdGVudGx5CisgKiB3aGV0aGVy IFZMQU4gYWNjZWxlcmF0aW9uIGlzIGVuYWJsZWQgb3Igbm90LgorICovCitzdGF0aWMgaW5saW5l IF9fYmUxNiBza2JfcHJvdG9jb2woY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYiwgYm9vbCBza2lw X3ZsYW4pCit7CisJdW5zaWduZWQgaW50IG9mZnNldCA9IHNrYl9tYWNfb2Zmc2V0KHNrYikgKyBz aXplb2Yoc3RydWN0IGV0aGhkcik7CisJX19iZTE2IHByb3RvID0gc2tiLT5wcm90b2NvbDsKKwor CWlmICghc2tpcF92bGFuKQorCQkvKiBWTEFOIGFjY2VsZXJhdGlvbiBzdHJpcHMgdGhlIFZMQU4g aGVhZGVyIGZyb20gdGhlIHNrYiBhbmQKKwkJICogbW92ZXMgaXQgdG8gc2tiLT52bGFuX3Byb3Rv CisJCSAqLworCQlyZXR1cm4gc2tiX3ZsYW5fdGFnX3ByZXNlbnQoc2tiKSA/IHNrYi0+dmxhbl9w cm90byA6IHByb3RvOworCisJd2hpbGUgKGV0aF90eXBlX3ZsYW4ocHJvdG8pKSB7CisJCXN0cnVj dCB2bGFuX2hkciB2aGRyLCAqdmg7CisKKwkJdmggPSBza2JfaGVhZGVyX3BvaW50ZXIoc2tiLCBv ZmZzZXQsIHNpemVvZih2aGRyKSwgJnZoZHIpOworCQlpZiAoIXZoKQorCQkJYnJlYWs7CisKKwkJ cHJvdG8gPSB2aC0+aF92bGFuX2VuY2Fwc3VsYXRlZF9wcm90bzsKKwkJb2Zmc2V0ICs9IHNpemVv Zih2aGRyKTsKKwl9CisKKwlyZXR1cm4gcHJvdG87Cit9CisKIHN0YXRpYyBpbmxpbmUgYm9vbCB2 bGFuX2h3X29mZmxvYWRfY2FwYWJsZShuZXRkZXZfZmVhdHVyZXNfdCBmZWF0dXJlcywKIAkJCQkJ ICAgX19iZTE2IHByb3RvKQogewpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvaW5ldF9lY24uaCBi L2luY2x1ZGUvbmV0L2luZXRfZWNuLmgKaW5kZXggMGYwZDFlZmUwNmRkLi5lMWVhZjE3ODAyODgg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2luZXRfZWNuLmgKKysrIGIvaW5jbHVkZS9uZXQvaW5l dF9lY24uaApAQCAtNCw2ICs0LDcgQEAKIAogI2luY2x1ZGUgPGxpbnV4L2lwLmg+CiAjaW5jbHVk ZSA8bGludXgvc2tidWZmLmg+CisjaW5jbHVkZSA8bGludXgvaWZfdmxhbi5oPgogCiAjaW5jbHVk ZSA8bmV0L2luZXRfc29jay5oPgogI2luY2x1ZGUgPG5ldC9kc2ZpZWxkLmg+CkBAIC0xNzIsNyAr MTczLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGlwdjZfY29weV9kc2NwKHVuc2lnbmVkIGludCBk c2NwLCBzdHJ1Y3QgaXB2NmhkciAqaW5uZXIpCiAKIHN0YXRpYyBpbmxpbmUgaW50IElORVRfRUNO X3NldF9jZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewotCXN3aXRjaCAoc2tiLT5wcm90b2NvbCkg eworCXN3aXRjaCAoc2tiX3Byb3RvY29sKHNrYiwgdHJ1ZSkpIHsKIAljYXNlIGNwdV90b19iZTE2 KEVUSF9QX0lQKToKIAkJaWYgKHNrYl9uZXR3b3JrX2hlYWRlcihza2IpICsgc2l6ZW9mKHN0cnVj dCBpcGhkcikgPD0KIAkJICAgIHNrYl90YWlsX3BvaW50ZXIoc2tiKSkKQEAgLTE5MSw3ICsxOTIs NyBAQCBzdGF0aWMgaW5saW5lIGludCBJTkVUX0VDTl9zZXRfY2Uoc3RydWN0IHNrX2J1ZmYgKnNr YikKIAogc3RhdGljIGlubGluZSBpbnQgSU5FVF9FQ05fc2V0X2VjdDEoc3RydWN0IHNrX2J1ZmYg KnNrYikKIHsKLQlzd2l0Y2ggKHNrYi0+cHJvdG9jb2wpIHsKKwlzd2l0Y2ggKHNrYl9wcm90b2Nv bChza2IsIHRydWUpKSB7CiAJY2FzZSBjcHVfdG9fYmUxNihFVEhfUF9JUCk6CiAJCWlmIChza2Jf bmV0d29ya19oZWFkZXIoc2tiKSArIHNpemVvZihzdHJ1Y3QgaXBoZHIpIDw9CiAJCSAgICBza2Jf dGFpbF9wb2ludGVyKHNrYikpCkBAIC0yNzIsMTIgKzI3MywxNiBAQCBzdGF0aWMgaW5saW5lIGlu dCBJUF9FQ05fZGVjYXBzdWxhdGUoY29uc3Qgc3RydWN0IGlwaGRyICpvaXBoLAogewogCV9fdTgg aW5uZXI7CiAKLQlpZiAoc2tiLT5wcm90b2NvbCA9PSBodG9ucyhFVEhfUF9JUCkpCisJc3dpdGNo IChza2JfcHJvdG9jb2woc2tiLCB0cnVlKSkgeworCWNhc2UgaHRvbnMoRVRIX1BfSVApOgogCQlp bm5lciA9IGlwX2hkcihza2IpLT50b3M7Ci0JZWxzZSBpZiAoc2tiLT5wcm90b2NvbCA9PSBodG9u cyhFVEhfUF9JUFY2KSkKKwkJYnJlYWs7CisJY2FzZSBodG9ucyhFVEhfUF9JUFY2KToKIAkJaW5u ZXIgPSBpcHY2X2dldF9kc2ZpZWxkKGlwdjZfaGRyKHNrYikpOwotCWVsc2UKKwkJYnJlYWs7CisJ ZGVmYXVsdDoKIAkJcmV0dXJuIDA7CisJfQogCiAJcmV0dXJuIElORVRfRUNOX2RlY2Fwc3VsYXRl KHNrYiwgb2lwaC0+dG9zLCBpbm5lcik7CiB9CkBAIC0yODcsMTIgKzI5MiwxNiBAQCBzdGF0aWMg aW5saW5lIGludCBJUDZfRUNOX2RlY2Fwc3VsYXRlKGNvbnN0IHN0cnVjdCBpcHY2aGRyICpvaXB2 NmgsCiB7CiAJX191OCBpbm5lcjsKIAotCWlmIChza2ItPnByb3RvY29sID09IGh0b25zKEVUSF9Q X0lQKSkKKwlzd2l0Y2ggKHNrYl9wcm90b2NvbChza2IsIHRydWUpKSB7CisJY2FzZSBodG9ucyhF VEhfUF9JUCk6CiAJCWlubmVyID0gaXBfaGRyKHNrYiktPnRvczsKLQllbHNlIGlmIChza2ItPnBy b3RvY29sID09IGh0b25zKEVUSF9QX0lQVjYpKQorCQlicmVhazsKKwljYXNlIGh0b25zKEVUSF9Q X0lQVjYpOgogCQlpbm5lciA9IGlwdjZfZ2V0X2RzZmllbGQoaXB2Nl9oZHIoc2tiKSk7Ci0JZWxz ZQorCQlicmVhazsKKwlkZWZhdWx0OgogCQlyZXR1cm4gMDsKKwl9CiAKIAlyZXR1cm4gSU5FVF9F Q05fZGVjYXBzdWxhdGUoc2tiLCBpcHY2X2dldF9kc2ZpZWxkKG9pcHY2aCksIGlubmVyKTsKIH0K ZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3BrdF9zY2hlZC5oIGIvaW5jbHVkZS9uZXQvcGt0X3Nj aGVkLmgKaW5kZXggNmE3MDg0NWJkOWFiLi5jZWUxYzA4NGU5ZjQgMTAwNjQ0Ci0tLSBhL2luY2x1 ZGUvbmV0L3BrdF9zY2hlZC5oCisrKyBiL2luY2x1ZGUvbmV0L3BrdF9zY2hlZC5oCkBAIC0xMjgs MTcgKzEyOCw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBxZGlzY19ydW4oc3RydWN0IFFkaXNjICpx KQogCX0KIH0KIAotc3RhdGljIGlubGluZSBfX2JlMTYgdGNfc2tiX3Byb3RvY29sKGNvbnN0IHN0 cnVjdCBza19idWZmICpza2IpCi17Ci0JLyogV2UgbmVlZCB0byB0YWtlIGV4dHJhIGNhcmUgaW4g Y2FzZSB0aGUgc2tiIGNhbWUgdmlhCi0JICogdmxhbiBhY2NlbGVyYXRlZCBwYXRoLiBJbiB0aGF0 IGNhc2UsIHVzZSBza2ItPnZsYW5fcHJvdG8KLQkgKiBhcyB0aGUgb3JpZ2luYWwgdmxhbiBoZWFk ZXIgd2FzIGFscmVhZHkgc3RyaXBwZWQuCi0JICovCi0JaWYgKHNrYl92bGFuX3RhZ19wcmVzZW50 KHNrYikpCi0JCXJldHVybiBza2ItPnZsYW5fcHJvdG87Ci0JcmV0dXJuIHNrYi0+cHJvdG9jb2w7 Ci19Ci0KIC8qIENhbGN1bGF0ZSBtYXhpbWFsIHNpemUgb2YgcGFja2V0IHNlZW4gYnkgaGFyZF9z dGFydF94bWl0CiAgICByb3V0aW5lIG9mIHRoaXMgZGV2aWNlLgogICovCmRpZmYgLS1naXQgYS9u ZXQvY29yZS9maWx0ZXIuYyBiL25ldC9jb3JlL2ZpbHRlci5jCmluZGV4IGEwYTQ5MmY3Y2Y5Yy4u YmQxZTQ2ZDYxZDhhIDEwMDY0NAotLS0gYS9uZXQvY29yZS9maWx0ZXIuYworKysgYi9uZXQvY29y ZS9maWx0ZXIuYwpAQCAtNTczMCwxMiArNTczMCwxNiBAQCBCUEZfQ0FMTF8xKGJwZl9za2JfZWNu X3NldF9jZSwgc3RydWN0IHNrX2J1ZmYgKiwgc2tiKQogewogCXVuc2lnbmVkIGludCBpcGhkcl9s ZW47CiAKLQlpZiAoc2tiLT5wcm90b2NvbCA9PSBjcHVfdG9fYmUxNihFVEhfUF9JUCkpCisJc3dp dGNoIChza2JfcHJvdG9jb2woc2tiLCB0cnVlKSkgeworCWNhc2UgY3B1X3RvX2JlMTYoRVRIX1Bf SVApOgogCQlpcGhkcl9sZW4gPSBzaXplb2Yoc3RydWN0IGlwaGRyKTsKLQllbHNlIGlmIChza2It PnByb3RvY29sID09IGNwdV90b19iZTE2KEVUSF9QX0lQVjYpKQorCQlicmVhazsKKwljYXNlIGNw dV90b19iZTE2KEVUSF9QX0lQVjYpOgogCQlpcGhkcl9sZW4gPSBzaXplb2Yoc3RydWN0IGlwdjZo ZHIpOwotCWVsc2UKKwkJYnJlYWs7CisJZGVmYXVsdDoKIAkJcmV0dXJuIDA7CisJfQogCiAJaWYg KHNrYl9oZWFkbGVuKHNrYikgPCBpcGhkcl9sZW4pCiAJCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEv bmV0L3NjaGVkL2FjdF9jb25ubWFyay5jIGIvbmV0L3NjaGVkL2FjdF9jb25ubWFyay5jCmluZGV4 IDJiNDNjYWNmODJhZi4uMWE4ZjJmODVlYTFhIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvYWN0X2Nv bm5tYXJrLmMKKysrIGIvbmV0L3NjaGVkL2FjdF9jb25ubWFyay5jCkBAIC00MywxNyArNDMsMjAg QEAgc3RhdGljIGludCB0Y2ZfY29ubm1hcmtfYWN0KHN0cnVjdCBza19idWZmICpza2IsIGNvbnN0 IHN0cnVjdCB0Y19hY3Rpb24gKmEsCiAJdGNmX2xhc3R1c2VfdXBkYXRlKCZjYS0+dGNmX3RtKTsK IAlic3RhdHNfdXBkYXRlKCZjYS0+dGNmX2JzdGF0cywgc2tiKTsKIAotCWlmIChza2ItPnByb3Rv Y29sID09IGh0b25zKEVUSF9QX0lQKSkgeworCXN3aXRjaCAoc2tiX3Byb3RvY29sKHNrYiwgdHJ1 ZSkpIHsKKwljYXNlIGh0b25zKEVUSF9QX0lQKToKIAkJaWYgKHNrYi0+bGVuIDwgc2l6ZW9mKHN0 cnVjdCBpcGhkcikpCiAJCQlnb3RvIG91dDsKIAogCQlwcm90byA9IE5GUFJPVE9fSVBWNDsKLQl9 IGVsc2UgaWYgKHNrYi0+cHJvdG9jb2wgPT0gaHRvbnMoRVRIX1BfSVBWNikpIHsKKwkJYnJlYWs7 CisJY2FzZSBodG9ucyhFVEhfUF9JUFY2KToKIAkJaWYgKHNrYi0+bGVuIDwgc2l6ZW9mKHN0cnVj dCBpcHY2aGRyKSkKIAkJCWdvdG8gb3V0OwogCiAJCXByb3RvID0gTkZQUk9UT19JUFY2OwotCX0g ZWxzZSB7CisJCWJyZWFrOworCWRlZmF1bHQ6CiAJCWdvdG8gb3V0OwogCX0KIApkaWZmIC0tZ2l0 IGEvbmV0L3NjaGVkL2FjdF9jc3VtLmMgYi9uZXQvc2NoZWQvYWN0X2NzdW0uYwppbmRleCBkM2Nm YWQ4OGRjM2EuLjQyOGIxYWUwMDEyMyAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL2FjdF9jc3VtLmMK KysrIGIvbmV0L3NjaGVkL2FjdF9jc3VtLmMKQEAgLTU4Nyw3ICs1ODcsNyBAQCBzdGF0aWMgaW50 IHRjZl9jc3VtX2FjdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgdGNfYWN0aW9u ICphLAogCQlnb3RvIGRyb3A7CiAKIAl1cGRhdGVfZmxhZ3MgPSBwYXJhbXMtPnVwZGF0ZV9mbGFn czsKLQlwcm90b2NvbCA9IHRjX3NrYl9wcm90b2NvbChza2IpOworCXByb3RvY29sID0gc2tiX3By b3RvY29sKHNrYiwgZmFsc2UpOwogYWdhaW46CiAJc3dpdGNoIChwcm90b2NvbCkgewogCWNhc2Ug Y3B1X3RvX2JlMTYoRVRIX1BfSVApOgpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL2FjdF9jdC5jIGIv bmV0L3NjaGVkL2FjdF9jdC5jCmluZGV4IDA1ODY1NDZjMjBkNy4uZTAwNjBhZWZiZjlkIDEwMDY0 NAotLS0gYS9uZXQvc2NoZWQvYWN0X2N0LmMKKysrIGIvbmV0L3NjaGVkL2FjdF9jdC5jCkBAIC0x MDAsNyArMTAwLDcgQEAgc3RhdGljIHU4IHRjZl9jdF9za2JfbmZfZmFtaWx5KHN0cnVjdCBza19i dWZmICpza2IpCiB7CiAJdTggZmFtaWx5ID0gTkZQUk9UT19VTlNQRUM7CiAKLQlzd2l0Y2ggKHNr Yi0+cHJvdG9jb2wpIHsKKwlzd2l0Y2ggKHNrYl9wcm90b2NvbChza2IsIHRydWUpKSB7CiAJY2Fz ZSBodG9ucyhFVEhfUF9JUCk6CiAJCWZhbWlseSA9IE5GUFJPVE9fSVBWNDsKIAkJYnJlYWs7CkBA IC0yMjIsNiArMjIyLDcgQEAgc3RhdGljIGludCBjdF9uYXRfZXhlY3V0ZShzdHJ1Y3Qgc2tfYnVm ZiAqc2tiLCBzdHJ1Y3QgbmZfY29ubiAqY3QsCiAJCQkgIGNvbnN0IHN0cnVjdCBuZl9uYXRfcmFu Z2UyICpyYW5nZSwKIAkJCSAgZW51bSBuZl9uYXRfbWFuaXBfdHlwZSBtYW5pcHR5cGUpCiB7CisJ X19iZTE2IHByb3RvID0gc2tiX3Byb3RvY29sKHNrYiwgdHJ1ZSk7CiAJaW50IGhvb2tudW0sIGVy ciA9IE5GX0FDQ0VQVDsKIAogCS8qIFNlZSBIT09LMk1BTklQKCkuICovCkBAIC0yMzMsMTQgKzIz NCwxMyBAQCBzdGF0aWMgaW50IGN0X25hdF9leGVjdXRlKHN0cnVjdCBza19idWZmICpza2IsIHN0 cnVjdCBuZl9jb25uICpjdCwKIAlzd2l0Y2ggKGN0aW5mbykgewogCWNhc2UgSVBfQ1RfUkVMQVRF RDoKIAljYXNlIElQX0NUX1JFTEFURURfUkVQTFk6Ci0JCWlmIChza2ItPnByb3RvY29sID09IGh0 b25zKEVUSF9QX0lQKSAmJgorCQlpZiAocHJvdG8gPT0gaHRvbnMoRVRIX1BfSVApICYmCiAJCSAg ICBpcF9oZHIoc2tiKS0+cHJvdG9jb2wgPT0gSVBQUk9UT19JQ01QKSB7CiAJCQlpZiAoIW5mX25h dF9pY21wX3JlcGx5X3RyYW5zbGF0aW9uKHNrYiwgY3QsIGN0aW5mbywKIAkJCQkJCQkgICBob29r bnVtKSkKIAkJCQllcnIgPSBORl9EUk9QOwogCQkJZ290byBvdXQ7Ci0JCX0gZWxzZSBpZiAoSVNf RU5BQkxFRChDT05GSUdfSVBWNikgJiYKLQkJCSAgIHNrYi0+cHJvdG9jb2wgPT0gaHRvbnMoRVRI X1BfSVBWNikpIHsKKwkJfSBlbHNlIGlmIChJU19FTkFCTEVEKENPTkZJR19JUFY2KSAmJiBwcm90 byA9PSBodG9ucyhFVEhfUF9JUFY2KSkgewogCQkJX19iZTE2IGZyYWdfb2ZmOwogCQkJdTggbmV4 dGhkciA9IGlwdjZfaGRyKHNrYiktPm5leHRoZHI7CiAJCQlpbnQgaGRybGVuID0gaXB2Nl9za2lw X2V4dGhkcihza2IsCkBAIC05OTMsNCArOTkzLDMgQEAgTU9EVUxFX0FVVEhPUigiWW9zc2kgS3Vw ZXJtYW4gPHlvc3Npa3VAbWVsbGFub3guY29tPiIpOwogTU9EVUxFX0FVVEhPUigiTWFyY2VsbyBS aWNhcmRvIExlaXRuZXIgPG1hcmNlbG8ubGVpdG5lckBnbWFpbC5jb20+Iik7CiBNT0RVTEVfREVT Q1JJUFRJT04oIkNvbm5lY3Rpb24gdHJhY2tpbmcgYWN0aW9uIik7CiBNT0RVTEVfTElDRU5TRSgi R1BMIHYyIik7Ci0KZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9hY3RfY3RpbmZvLmMgYi9uZXQvc2No ZWQvYWN0X2N0aW5mby5jCmluZGV4IGY0NTk5NWE2MjM3YS4uYTkxZmNlZTgxMGVmIDEwMDY0NAot LS0gYS9uZXQvc2NoZWQvYWN0X2N0aW5mby5jCisrKyBiL25ldC9zY2hlZC9hY3RfY3RpbmZvLmMK QEAgLTk2LDE5ICs5NiwyMiBAQCBzdGF0aWMgaW50IHRjZl9jdGluZm9fYWN0KHN0cnVjdCBza19i dWZmICpza2IsIGNvbnN0IHN0cnVjdCB0Y19hY3Rpb24gKmEsCiAJYWN0aW9uID0gUkVBRF9PTkNF KGNhLT50Y2ZfYWN0aW9uKTsKIAogCXdsZW4gPSBza2JfbmV0d29ya19vZmZzZXQoc2tiKTsKLQlp ZiAodGNfc2tiX3Byb3RvY29sKHNrYikgPT0gaHRvbnMoRVRIX1BfSVApKSB7CisJc3dpdGNoIChz a2JfcHJvdG9jb2woc2tiLCB0cnVlKSkgeworCWNhc2UgaHRvbnMoRVRIX1BfSVApOgogCQl3bGVu ICs9IHNpemVvZihzdHJ1Y3QgaXBoZHIpOwogCQlpZiAoIXBza2JfbWF5X3B1bGwoc2tiLCB3bGVu KSkKIAkJCWdvdG8gb3V0OwogCiAJCXByb3RvID0gTkZQUk9UT19JUFY0OwotCX0gZWxzZSBpZiAo dGNfc2tiX3Byb3RvY29sKHNrYikgPT0gaHRvbnMoRVRIX1BfSVBWNikpIHsKKwkJYnJlYWs7CisJ Y2FzZSBodG9ucyhFVEhfUF9JUFY2KToKIAkJd2xlbiArPSBzaXplb2Yoc3RydWN0IGlwdjZoZHIp OwogCQlpZiAoIXBza2JfbWF5X3B1bGwoc2tiLCB3bGVuKSkKIAkJCWdvdG8gb3V0OwogCiAJCXBy b3RvID0gTkZQUk9UT19JUFY2OwotCX0gZWxzZSB7CisJCWJyZWFrOworCWRlZmF1bHQ6CiAJCWdv dG8gb3V0OwogCX0KIApkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL2FjdF9tcGxzLmMgYi9uZXQvc2No ZWQvYWN0X21wbHMuYwppbmRleCBkYjU3MGQyYmQwZTAuLmY3ODY3NzU2OTliNSAxMDA2NDQKLS0t IGEvbmV0L3NjaGVkL2FjdF9tcGxzLmMKKysrIGIvbmV0L3NjaGVkL2FjdF9tcGxzLmMKQEAgLTgy LDcgKzgyLDcgQEAgc3RhdGljIGludCB0Y2ZfbXBsc19hY3Qoc3RydWN0IHNrX2J1ZmYgKnNrYiwg Y29uc3Qgc3RydWN0IHRjX2FjdGlvbiAqYSwKIAkJCWdvdG8gZHJvcDsKIAkJYnJlYWs7CiAJY2Fz ZSBUQ0FfTVBMU19BQ1RfUFVTSDoKLQkJbmV3X2xzZSA9IHRjZl9tcGxzX2dldF9sc2UoTlVMTCwg cCwgIWV0aF9wX21wbHMoc2tiLT5wcm90b2NvbCkpOworCQluZXdfbHNlID0gdGNmX21wbHNfZ2V0 X2xzZShOVUxMLCBwLCAhZXRoX3BfbXBscyhza2JfcHJvdG9jb2woc2tiLCB0cnVlKSkpOwogCQlp ZiAoc2tiX21wbHNfcHVzaChza2IsIG5ld19sc2UsIHAtPnRjZm1fcHJvdG8sIG1hY19sZW4sCiAJ CQkJICBza2ItPmRldiAmJiBza2ItPmRldi0+dHlwZSA9PSBBUlBIUkRfRVRIRVIpKQogCQkJZ290 byBkcm9wOwpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL2FjdF9za2JlZGl0LmMgYi9uZXQvc2NoZWQv YWN0X3NrYmVkaXQuYwppbmRleCA2YThkMzMzN2M1NzcuLmY5OGIyNzkxZWNlYyAxMDA2NDQKLS0t IGEvbmV0L3NjaGVkL2FjdF9za2JlZGl0LmMKKysrIGIvbmV0L3NjaGVkL2FjdF9za2JlZGl0LmMK QEAgLTQxLDcgKzQxLDcgQEAgc3RhdGljIGludCB0Y2Zfc2tiZWRpdF9hY3Qoc3RydWN0IHNrX2J1 ZmYgKnNrYiwgY29uc3Qgc3RydWN0IHRjX2FjdGlvbiAqYSwKIAlpZiAocGFyYW1zLT5mbGFncyAm IFNLQkVESVRfRl9JTkhFUklURFNGSUVMRCkgewogCQlpbnQgd2xlbiA9IHNrYl9uZXR3b3JrX29m ZnNldChza2IpOwogCi0JCXN3aXRjaCAodGNfc2tiX3Byb3RvY29sKHNrYikpIHsKKwkJc3dpdGNo IChza2JfcHJvdG9jb2woc2tiLCB0cnVlKSkgewogCQljYXNlIGh0b25zKEVUSF9QX0lQKToKIAkJ CXdsZW4gKz0gc2l6ZW9mKHN0cnVjdCBpcGhkcik7CiAJCQlpZiAoIXBza2JfbWF5X3B1bGwoc2ti LCB3bGVuKSkKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9jbHNfYXBpLmMgYi9uZXQvc2NoZWQvY2xz X2FwaS5jCmluZGV4IDY4YzhmYzZmNTM1Yy4uZDc2MDQ0MTczNjdkIDEwMDY0NAotLS0gYS9uZXQv c2NoZWQvY2xzX2FwaS5jCisrKyBiL25ldC9zY2hlZC9jbHNfYXBpLmMKQEAgLTE1NzEsNyArMTU3 MSw3IEBAIGludCB0Y2ZfY2xhc3NpZnkoc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0 IHRjZl9wcm90byAqdHAsCiByZWNsYXNzaWZ5OgogI2VuZGlmCiAJZm9yICg7IHRwOyB0cCA9IHJj dV9kZXJlZmVyZW5jZV9iaCh0cC0+bmV4dCkpIHsKLQkJX19iZTE2IHByb3RvY29sID0gdGNfc2ti X3Byb3RvY29sKHNrYik7CisJCV9fYmUxNiBwcm90b2NvbCA9IHNrYl9wcm90b2NvbChza2IsIGZh bHNlKTsKIAkJaW50IGVycjsKIAogCQlpZiAodHAtPnByb3RvY29sICE9IHByb3RvY29sICYmCmRp ZmYgLS1naXQgYS9uZXQvc2NoZWQvY2xzX2Zsb3cuYyBiL25ldC9zY2hlZC9jbHNfZmxvdy5jCmlu ZGV4IDgwYWU3YjlmYTkwYS4uYWI1M2E5M2IyZjJiIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvY2xz X2Zsb3cuYworKysgYi9uZXQvc2NoZWQvY2xzX2Zsb3cuYwpAQCAtODAsNyArODAsNyBAQCBzdGF0 aWMgdTMyIGZsb3dfZ2V0X2RzdChjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1 Y3QgZmxvd19rZXlzICpmbG93KQogCWlmIChkc3QpCiAJCXJldHVybiBudG9obChkc3QpOwogCi0J cmV0dXJuIGFkZHJfZm9sZChza2JfZHN0KHNrYikpIF4gKF9fZm9yY2UgdTE2KSB0Y19za2JfcHJv dG9jb2woc2tiKTsKKwlyZXR1cm4gYWRkcl9mb2xkKHNrYl9kc3Qoc2tiKSkgXiAoX19mb3JjZSB1 MTYpc2tiX3Byb3RvY29sKHNrYiwgdHJ1ZSk7CiB9CiAKIHN0YXRpYyB1MzIgZmxvd19nZXRfcHJv dG8oY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYiwKQEAgLTEwNCw3ICsxMDQsNyBAQCBzdGF0aWMg dTMyIGZsb3dfZ2V0X3Byb3RvX2RzdChjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCWlmIChm bG93LT5wb3J0cy5wb3J0cykKIAkJcmV0dXJuIG50b2hzKGZsb3ctPnBvcnRzLmRzdCk7CiAKLQly ZXR1cm4gYWRkcl9mb2xkKHNrYl9kc3Qoc2tiKSkgXiAoX19mb3JjZSB1MTYpIHRjX3NrYl9wcm90 b2NvbChza2IpOworCXJldHVybiBhZGRyX2ZvbGQoc2tiX2RzdChza2IpKSBeIChfX2ZvcmNlIHUx Nilza2JfcHJvdG9jb2woc2tiLCB0cnVlKTsKIH0KIAogc3RhdGljIHUzMiBmbG93X2dldF9paWYo Y29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYikKQEAgLTE1MSw3ICsxNTEsNyBAQCBzdGF0aWMgdTMy IGZsb3dfZ2V0X25mY3QoY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYikKIHN0YXRpYyB1MzIgZmxv d19nZXRfbmZjdF9zcmMoY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJCSAgICAgY29uc3Qg c3RydWN0IGZsb3dfa2V5cyAqZmxvdykKIHsKLQlzd2l0Y2ggKHRjX3NrYl9wcm90b2NvbChza2Ip KSB7CisJc3dpdGNoIChza2JfcHJvdG9jb2woc2tiLCB0cnVlKSkgewogCWNhc2UgaHRvbnMoRVRI X1BfSVApOgogCQlyZXR1cm4gbnRvaGwoQ1RUVVBMRShza2IsIHNyYy51My5pcCkpOwogCWNhc2Ug aHRvbnMoRVRIX1BfSVBWNik6CkBAIC0xNjQsNyArMTY0LDcgQEAgc3RhdGljIHUzMiBmbG93X2dl dF9uZmN0X3NyYyhjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogc3RhdGljIHUzMiBmbG93X2dl dF9uZmN0X2RzdChjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJICAgICBjb25zdCBzdHJ1 Y3QgZmxvd19rZXlzICpmbG93KQogewotCXN3aXRjaCAodGNfc2tiX3Byb3RvY29sKHNrYikpIHsK Kwlzd2l0Y2ggKHNrYl9wcm90b2NvbChza2IsIHRydWUpKSB7CiAJY2FzZSBodG9ucyhFVEhfUF9J UCk6CiAJCXJldHVybiBudG9obChDVFRVUExFKHNrYiwgZHN0LnUzLmlwKSk7CiAJY2FzZSBodG9u cyhFVEhfUF9JUFY2KToKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9jbHNfZmxvd2VyLmMgYi9uZXQv c2NoZWQvY2xzX2Zsb3dlci5jCmluZGV4IDFkMjcwNTQwZTc0ZC4uYzVhMGYyYzI2MzVlIDEwMDY0 NAotLS0gYS9uZXQvc2NoZWQvY2xzX2Zsb3dlci5jCisrKyBiL25ldC9zY2hlZC9jbHNfZmxvd2Vy LmMKQEAgLTMxMCw3ICszMTAsNyBAQCBzdGF0aWMgaW50IGZsX2NsYXNzaWZ5KHN0cnVjdCBza19i dWZmICpza2IsIGNvbnN0IHN0cnVjdCB0Y2ZfcHJvdG8gKnRwLAogCQkvKiBza2JfZmxvd19kaXNz ZWN0KCkgZG9lcyBub3Qgc2V0IG5fcHJvdG8gaW4gY2FzZSBhbiB1bmtub3duCiAJCSAqIHByb3Rv Y29sLCBzbyBkbyBpdCByYXRoZXIgaGVyZS4KIAkJICovCi0JCXNrYl9rZXkuYmFzaWMubl9wcm90 byA9IHNrYi0+cHJvdG9jb2w7CisJCXNrYl9rZXkuYmFzaWMubl9wcm90byA9IHNrYl9wcm90b2Nv bChza2IsIGZhbHNlKTsKIAkJc2tiX2Zsb3dfZGlzc2VjdF90dW5uZWxfaW5mbyhza2IsICZtYXNr LT5kaXNzZWN0b3IsICZza2Jfa2V5KTsKIAkJc2tiX2Zsb3dfZGlzc2VjdF9jdChza2IsICZtYXNr LT5kaXNzZWN0b3IsICZza2Jfa2V5LAogCQkJCSAgICBmbF9jdF9pbmZvX3RvX2Zsb3dlcl9tYXAs CmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvZW1faXBzZXQuYyBiL25ldC9zY2hlZC9lbV9pcHNldC5j CmluZGV4IGRmMDA1NjZkMzI3ZC4uYzk1Y2Y4NmZiNDMxIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQv ZW1faXBzZXQuYworKysgYi9uZXQvc2NoZWQvZW1faXBzZXQuYwpAQCAtNTksNyArNTksNyBAQCBz dGF0aWMgaW50IGVtX2lwc2V0X21hdGNoKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCB0Y2Zf ZW1hdGNoICplbSwKIAl9OwogCWludCByZXQsIG5ldHdvcmtfb2Zmc2V0OwogCi0Jc3dpdGNoICh0 Y19za2JfcHJvdG9jb2woc2tiKSkgeworCXN3aXRjaCAoc2tiX3Byb3RvY29sKHNrYiwgdHJ1ZSkp IHsKIAljYXNlIGh0b25zKEVUSF9QX0lQKToKIAkJc3RhdGUucGYgPSBORlBST1RPX0lQVjQ7CiAJ CWlmICghcHNrYl9uZXR3b3JrX21heV9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBpcGhkcikpKQpk aWZmIC0tZ2l0IGEvbmV0L3NjaGVkL2VtX2lwdC5jIGIvbmV0L3NjaGVkL2VtX2lwdC5jCmluZGV4 IDlmZmY2NDgwYWNjNi4uZTJjMTU3ZGYzZjhiIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvZW1faXB0 LmMKKysrIGIvbmV0L3NjaGVkL2VtX2lwdC5jCkBAIC0yMTIsNyArMjEyLDcgQEAgc3RhdGljIGlu dCBlbV9pcHRfbWF0Y2goc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHRjZl9lbWF0Y2ggKmVt LAogCXN0cnVjdCBuZl9ob29rX3N0YXRlIHN0YXRlOwogCWludCByZXQ7CiAKLQlzd2l0Y2ggKHRj X3NrYl9wcm90b2NvbChza2IpKSB7CisJc3dpdGNoIChza2JfcHJvdG9jb2woc2tiLCB0cnVlKSkg ewogCWNhc2UgaHRvbnMoRVRIX1BfSVApOgogCQlpZiAoIXBza2JfbmV0d29ya19tYXlfcHVsbChz a2IsIHNpemVvZihzdHJ1Y3QgaXBoZHIpKSkKIAkJCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvbmV0 L3NjaGVkL2VtX21ldGEuYyBiL25ldC9zY2hlZC9lbV9tZXRhLmMKaW5kZXggMzE3N2RjYjE3MzE2 Li5hZDAwN2NkY2VjOTcgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9lbV9tZXRhLmMKKysrIGIvbmV0 L3NjaGVkL2VtX21ldGEuYwpAQCAtMTk1LDcgKzE5NSw3IEBAIE1FVEFfQ09MTEVDVE9SKGludF9w cmlvcml0eSkKIE1FVEFfQ09MTEVDVE9SKGludF9wcm90b2NvbCkKIHsKIAkvKiBMZXQgdXNlcnNw YWNlIHRha2UgY2FyZSBvZiB0aGUgYnl0ZSBvcmRlcmluZyAqLwotCWRzdC0+dmFsdWUgPSB0Y19z a2JfcHJvdG9jb2woc2tiKTsKKwlkc3QtPnZhbHVlID0gc2tiX3Byb3RvY29sKHNrYiwgZmFsc2Up OwogfQogCiBNRVRBX0NPTExFQ1RPUihpbnRfcGt0dHlwZSkKZGlmZiAtLWdpdCBhL25ldC9zY2hl ZC9zY2hfY2FrZS5jIGIvbmV0L3NjaGVkL3NjaF9jYWtlLmMKaW5kZXggNWQ2MDViYWI5YWZjLi44 OTZjMDU2MmNiNDIgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfY2FrZS5jCisrKyBiL25ldC9z Y2hlZC9zY2hfY2FrZS5jCkBAIC01OTIsNyArNTkyLDcgQEAgc3RhdGljIHZvaWQgY2FrZV91cGRh dGVfZmxvd2tleXMoc3RydWN0IGZsb3dfa2V5cyAqa2V5cywKIAlzdHJ1Y3QgbmZfY29ubnRyYWNr X3R1cGxlIHR1cGxlID0ge307CiAJYm9vbCByZXYgPSAhc2tiLT5fbmZjdDsKIAotCWlmICh0Y19z a2JfcHJvdG9jb2woc2tiKSAhPSBodG9ucyhFVEhfUF9JUCkpCisJaWYgKHNrYl9wcm90b2NvbChz a2IsIHRydWUpICE9IGh0b25zKEVUSF9QX0lQKSkKIAkJcmV0dXJuOwogCiAJaWYgKCFuZl9jdF9n ZXRfdHVwbGVfc2tiKCZ0dXBsZSwgc2tiKSkKQEAgLTE1MjEsNyArMTUyMSw3IEBAIHN0YXRpYyB1 OCBjYWtlX2hhbmRsZV9kaWZmc2VydihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBib29sIHdhc2gpCiAJ dTE2ICpidWYsIGJ1Zl87CiAJdTggZHNjcDsKIAotCXN3aXRjaCAodGNfc2tiX3Byb3RvY29sKHNr YikpIHsKKwlzd2l0Y2ggKHNrYl9wcm90b2NvbChza2IsIHRydWUpKSB7CiAJY2FzZSBodG9ucyhF VEhfUF9JUCk6CiAJCWJ1ZiA9IHNrYl9oZWFkZXJfcG9pbnRlcihza2IsIG9mZnNldCwgc2l6ZW9m KGJ1Zl8pLCAmYnVmXyk7CiAJCWlmICh1bmxpa2VseSghYnVmKSkKZGlmZiAtLWdpdCBhL25ldC9z Y2hlZC9zY2hfZHNtYXJrLmMgYi9uZXQvc2NoZWQvc2NoX2RzbWFyay5jCmluZGV4IDA1NjA1YjMw YmVmMy4uMmI4ODcxMDk5NGQ3IDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2NoX2RzbWFyay5jCisr KyBiL25ldC9zY2hlZC9zY2hfZHNtYXJrLmMKQEAgLTIxMCw3ICsyMTAsNyBAQCBzdGF0aWMgaW50 IGRzbWFya19lbnF1ZXVlKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBRZGlzYyAqc2NoLAog CWlmIChwLT5zZXRfdGNfaW5kZXgpIHsKIAkJaW50IHdsZW4gPSBza2JfbmV0d29ya19vZmZzZXQo c2tiKTsKIAotCQlzd2l0Y2ggKHRjX3NrYl9wcm90b2NvbChza2IpKSB7CisJCXN3aXRjaCAoc2ti X3Byb3RvY29sKHNrYiwgdHJ1ZSkpIHsKIAkJY2FzZSBodG9ucyhFVEhfUF9JUCk6CiAJCQl3bGVu ICs9IHNpemVvZihzdHJ1Y3QgaXBoZHIpOwogCQkJaWYgKCFwc2tiX21heV9wdWxsKHNrYiwgd2xl bikgfHwKQEAgLTMwMyw3ICszMDMsNyBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmRzbWFya19k ZXF1ZXVlKHN0cnVjdCBRZGlzYyAqc2NoKQogCWluZGV4ID0gc2tiLT50Y19pbmRleCAmIChwLT5p bmRpY2VzIC0gMSk7CiAJcHJfZGVidWcoImluZGV4ICVkLT4lZFxuIiwgc2tiLT50Y19pbmRleCwg aW5kZXgpOwogCi0Jc3dpdGNoICh0Y19za2JfcHJvdG9jb2woc2tiKSkgeworCXN3aXRjaCAoc2ti X3Byb3RvY29sKHNrYiwgdHJ1ZSkpIHsKIAljYXNlIGh0b25zKEVUSF9QX0lQKToKIAkJaXB2NF9j aGFuZ2VfZHNmaWVsZChpcF9oZHIoc2tiKSwgcC0+bXZbaW5kZXhdLm1hc2ssCiAJCQkJICAgIHAt Pm12W2luZGV4XS52YWx1ZSk7CkBAIC0zMjAsNyArMzIwLDcgQEAgc3RhdGljIHN0cnVjdCBza19i dWZmICpkc21hcmtfZGVxdWV1ZShzdHJ1Y3QgUWRpc2MgKnNjaCkKIAkJICovCiAJCWlmIChwLT5t dltpbmRleF0ubWFzayAhPSAweGZmIHx8IHAtPm12W2luZGV4XS52YWx1ZSkKIAkJCXByX3dhcm4o IiVzOiB1bnN1cHBvcnRlZCBwcm90b2NvbCAlZFxuIiwKLQkJCQlfX2Z1bmNfXywgbnRvaHModGNf c2tiX3Byb3RvY29sKHNrYikpKTsKKwkJCQlfX2Z1bmNfXywgbnRvaHMoc2tiX3Byb3RvY29sKHNr YiwgdHJ1ZSkpKTsKIAkJYnJlYWs7CiAJfQogCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX3Rl cWwuYyBiL25ldC9zY2hlZC9zY2hfdGVxbC5jCmluZGV4IDY4OWVmNmYzZGVkOC4uMmYxZjBhMzc4 NDA4IDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2NoX3RlcWwuYworKysgYi9uZXQvc2NoZWQvc2No X3RlcWwuYwpAQCAtMjM5LDcgKzIzOSw3IEBAIF9fdGVxbF9yZXNvbHZlKHN0cnVjdCBza19idWZm ICpza2IsIHN0cnVjdCBza19idWZmICpza2JfcmVzLAogCQljaGFyIGhhZGRyW01BWF9BRERSX0xF Tl07CiAKIAkJbmVpZ2hfaGFfc25hcHNob3QoaGFkZHIsIG4sIGRldik7Ci0JCWVyciA9IGRldl9o YXJkX2hlYWRlcihza2IsIGRldiwgbnRvaHModGNfc2tiX3Byb3RvY29sKHNrYikpLAorCQllcnIg PSBkZXZfaGFyZF9oZWFkZXIoc2tiLCBkZXYsIG50b2hzKHNrYl9wcm90b2NvbChza2IsIGZhbHNl KSksCiAJCQkJICAgICAgaGFkZHIsIE5VTEwsIHNrYi0+bGVuKTsKIAogCQlpZiAoZXJyIDwgMCkK LS0gCjIuMjYuMgoKCkZyb20gMjBlYzRmNWZlYjY4ZDk3OTZmNjA3Mjc1YmE5ZTQyYjVkNjA4OGQ2 MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBn b29nbGUuY29tPgpEYXRlOiBUdWUsIDMwIEp1biAyMDIwIDEzOjUxOjI4IC0wNzAwClN1YmplY3Q6 IFtQQVRDSCAxNi8yOV0gdGNwOiBmaXggU09fUkNWTE9XQVQgcG9zc2libGUgaGFuZ3MgdW5kZXIg aGlnaCBtZW0KIHByZXNzdXJlCgpbIFVwc3RyZWFtIGNvbW1pdCBiYTNiYjBlNzZjY2Q0NjRiYjY2 NjY1YTE5NDFmYWJlNTVkYWRiM2JhIF0KCldoZW5ldmVyIHRjcF90cnlfcm1lbV9zY2hlZHVsZSgp IHJldHVybnMgYW4gZXJyb3IsIHdlIGFyZSB1bmRlcgp0cm91YmxlIGFuZCBzaG91bGQgbWFrZSBz dXJlIHRvIHdha2V1cCByZWFkZXJzIHNvIHRoYXQgdGhleQpjYW4gZHJhaW4gc29ja2V0IHF1ZXVl cyBhbmQgZXZlbnR1YWxseSBtYWtlIHJvb20uCgpGaXhlczogMDNmNDVjODgzYzZmICgidGNwOiBh dm9pZCBleHRyYSB3YWtldXBzIGZvciBTT19SQ1ZMT1dBVCB1c2VycyIpClNpZ25lZC1vZmYtYnk6 IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3RjcF9pbnB1dC5j IHwgMiArKwogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25l dC9pcHY0L3RjcF9pbnB1dC5jIGIvbmV0L2lwdjQvdGNwX2lucHV0LmMKaW5kZXggM2U2M2RjOWMz ZWJhLi42ZDMzMTMwN2JlY2EgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9pbnB1dC5jCisrKyBi L25ldC9pcHY0L3RjcF9pbnB1dC5jCkBAIC00NTY0LDYgKzQ1NjQsNyBAQCBzdGF0aWMgdm9pZCB0 Y3BfZGF0YV9xdWV1ZV9vZm8oc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQog CiAJaWYgKHVubGlrZWx5KHRjcF90cnlfcm1lbV9zY2hlZHVsZShzaywgc2tiLCBza2ItPnRydWVz aXplKSkpIHsKIAkJTkVUX0lOQ19TVEFUUyhzb2NrX25ldChzayksIExJTlVYX01JQl9UQ1BPRk9E Uk9QKTsKKwkJc2stPnNrX2RhdGFfcmVhZHkoc2spOwogCQl0Y3BfZHJvcChzaywgc2tiKTsKIAkJ cmV0dXJuOwogCX0KQEAgLTQ4MDcsNiArNDgwOCw3IEBAIHN0YXRpYyB2b2lkIHRjcF9kYXRhX3F1 ZXVlKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAkJCXNrX2ZvcmNlZF9t ZW1fc2NoZWR1bGUoc2ssIHNrYi0+dHJ1ZXNpemUpOwogCQllbHNlIGlmICh0Y3BfdHJ5X3JtZW1f c2NoZWR1bGUoc2ssIHNrYiwgc2tiLT50cnVlc2l6ZSkpIHsKIAkJCU5FVF9JTkNfU1RBVFMoc29j a19uZXQoc2spLCBMSU5VWF9NSUJfVENQUkNWUURST1ApOworCQkJc2stPnNrX2RhdGFfcmVhZHko c2spOwogCQkJZ290byBkcm9wOwogCQl9CiAKLS0gCjIuMjYuMgoKCkZyb20gM2Y2OTUzNDg3MjVi ODk1ZWEzNTg1YmQxNmNkZGRiNjJhMDU0ZDZlMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogQ2hyaXN0b3BoIFBhYXNjaCA8Y3BhYXNjaEBhcHBsZS5jb20+CkRhdGU6IFdlZCwgOCBKdWwg MjAyMCAxNjoxODozNCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTcvMjldIHRjcDogbWFrZSBzdXJl IGxpc3RlbmVycyBkb24ndCBpbml0aWFsaXplCiBjb25nZXN0aW9uLWNvbnRyb2wgc3RhdGUKClsg VXBzdHJlYW0gY29tbWl0IGNlNjllNTYzYjMyNWY2MjA4NjM4MzBjMjQ2YTg2OThjY2VhNTIwNDgg XQoKc3l6a2FsbGVyIGZvdW5kIGl0cyB3YXkgaW50byBzZXRzb2Nrb3B0IHdpdGggVENQX0NPTkdF U1RJT04gImNkZyIuCnRjcF9jZGdfaW5pdCgpIGRvZXMgYSBrY2FsbG9jIHRvIHN0b3JlIHRoZSBn cmFkaWVudHMuIEFzIHNrX2Nsb25lX2xvY2sKanVzdCBjb3BpZXMgYWxsIHRoZSBtZW1vcnksIHRo ZSBhbGxvY2F0ZWQgcG9pbnRlciB3aWxsIGJlIGNvcGllZCBhcwp3ZWxsLCBpZiB0aGUgYXBwIGNh bGxlZCBzZXRzb2Nrb3B0KC4uLiwgVENQX0NPTkdFU1RJT04pIG9uIHRoZSBsaXN0ZW5lci4KSWYg bm93IHRoZSBzb2NrZXQgd2lsbCBiZSBkZXN0cm95ZWQgYmVmb3JlIHRoZSBjb25nZXN0aW9uLWNv bnRyb2wKaGFzIHByb3Blcmx5IGJlZW4gaW5pdGlhbGl6ZWQgKHRocm91Z2ggYSBjYWxsIHRvIHRj cF9pbml0X3RyYW5zZmVyKSwgd2UKd2lsbCBlbmQgdXAgZnJlZWluZyBtZW1vcnkgdGhhdCBkb2Vz IG5vdCBiZWxvbmcgdG8gdGhhdCBwYXJ0aWN1bGFyCnNvY2tldCwgb3BlbmluZyB0aGUgZG9vciB0 byBhIGRvdWJsZS1mcmVlOgoKWyAgIDExLjQxMzEwMl0gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClsgICAxMS40MTQxODFd IEJVRzogS0FTQU46IGRvdWJsZS1mcmVlIG9yIGludmFsaWQtZnJlZSBpbiB0Y3BfY2xlYW51cF9j b25nZXN0aW9uX2NvbnRyb2wrMHg1OC8weGQwClsgICAxMS40MTUzMjldClsgICAxMS40MTU1NjBd IENQVTogMyBQSUQ6IDQ4ODQgQ29tbTogc3l6LWV4ZWN1dG9yLjUgTm90IHRhaW50ZWQgNS44LjAt cmMyICM4MApbICAgMTEuNDE2NTQ0XSBIYXJkd2FyZSBuYW1lOiBRRU1VIFN0YW5kYXJkIFBDIChp NDQwRlggKyBQSUlYLCAxOTk2KSwgQklPUyByZWwtMS4xMi4xLTAtZ2E1Y2FiNThlOWEzZi1wcmVi dWlsdC5xZW11Lm9yZyAwNC8wMS8yMDE0ClsgICAxMS40MTgxNDhdIENhbGwgVHJhY2U6ClsgICAx MS40MTg1MzRdICA8SVJRPgpbICAgMTEuNDE4ODM0XSAgZHVtcF9zdGFjaysweDdkLzB4YjAKWyAg IDExLjQxOTI5N10gIHByaW50X2FkZHJlc3NfZGVzY3JpcHRpb24uY29uc3Rwcm9wLjArMHgxYS8w eDIxMApbICAgMTEuNDIyMDc5XSAga2FzYW5fcmVwb3J0X2ludmFsaWRfZnJlZSsweDUxLzB4ODAK WyAgIDExLjQyMzQzM10gIF9fa2FzYW5fc2xhYl9mcmVlKzB4MTVlLzB4MTcwClsgICAxMS40MjQ3 NjFdICBrZnJlZSsweDhjLzB4MjMwClsgICAxMS40MjUxNTddICB0Y3BfY2xlYW51cF9jb25nZXN0 aW9uX2NvbnRyb2wrMHg1OC8weGQwClsgICAxMS40MjU4NzJdICB0Y3BfdjRfZGVzdHJveV9zb2Nr KzB4NTcvMHg1YTAKWyAgIDExLjQyNjQ5M10gIGluZXRfY3NrX2Rlc3Ryb3lfc29jaysweDE1My8w eDJjMApbICAgMTEuNDI3MDkzXSAgdGNwX3Y0X3N5bl9yZWN2X3NvY2srMHhiMjkvMHgxMTAwClsg ICAxMS40Mjc3MzFdICB0Y3BfZ2V0X2Nvb2tpZV9zb2NrKzB4YzMvMHg0YTAKWyAgIDExLjQyOTQ1 N10gIGNvb2tpZV92NF9jaGVjaysweDEzZDAvMHgyNTAwClsgICAxMS40MzMxODldICB0Y3BfdjRf ZG9fcmN2KzB4NjBlLzB4NzgwClsgICAxMS40MzM3MjddICB0Y3BfdjRfcmN2KzB4Mjg2OS8weDJl MTAKWyAgIDExLjQzNzE0M10gIGlwX3Byb3RvY29sX2RlbGl2ZXJfcmN1KzB4MjMvMHgxOTAKWyAg IDExLjQzNzgxMF0gIGlwX2xvY2FsX2RlbGl2ZXIrMHgyOTQvMHgzNTAKWyAgIDExLjQzOTU2Nl0g IF9fbmV0aWZfcmVjZWl2ZV9za2Jfb25lX2NvcmUrMHgxNWQvMHgxYTAKWyAgIDExLjQ0MTk5NV0g IHByb2Nlc3NfYmFja2xvZysweDFiMS8weDZiMApbICAgMTEuNDQzMTQ4XSAgbmV0X3J4X2FjdGlv bisweDM3ZS8weGM0MApbICAgMTEuNDQ1MzYxXSAgX19kb19zb2Z0aXJxKzB4MThjLzB4NjFhClsg ICAxMS40NDU4ODFdICBhc21fY2FsbF9vbl9zdGFjaysweDEyLzB4MjAKWyAgIDExLjQ0NjQwOV0g IDwvSVJRPgpbICAgMTEuNDQ2NzE2XSAgZG9fc29mdGlycV9vd25fc3RhY2srMHgzNC8weDQwClsg ICAxMS40NDcyNTldICBkb19zb2Z0aXJxLnBhcnQuMCsweDI2LzB4MzAKWyAgIDExLjQ0NzgyN10g IF9fbG9jYWxfYmhfZW5hYmxlX2lwKzB4NDYvMHg1MApbICAgMTEuNDQ4NDA2XSAgaXBfZmluaXNo X291dHB1dDIrMHg2MGYvMHgxYmMwClsgICAxMS40NTAxMDldICBfX2lwX3F1ZXVlX3htaXQrMHg3 MWMvMHgxYjYwClsgICAxMS40NTE4NjFdICBfX3RjcF90cmFuc21pdF9za2IrMHgxNzI3LzB4M2Ji MApbICAgMTEuNDUzNzg5XSAgdGNwX3Jjdl9zdGF0ZV9wcm9jZXNzKzB4MzA3MC8weDRkM2EKWyAg IDExLjQ1NjgxMF0gIHRjcF92NF9kb19yY3YrMHgyYWQvMHg3ODAKWyAgIDExLjQ1Nzk5NV0gIF9f cmVsZWFzZV9zb2NrKzB4MTRiLzB4MmMwClsgICAxMS40NTg1MjldICByZWxlYXNlX3NvY2srMHg0 YS8weDE3MApbICAgMTEuNDU5MDA1XSAgX19pbmV0X3N0cmVhbV9jb25uZWN0KzB4NDY3LzB4Yzgw ClsgICAxMS40NjE0MzVdICBpbmV0X3N0cmVhbV9jb25uZWN0KzB4NGUvMHhhMApbICAgMTEuNDYy MDQzXSAgX19zeXNfY29ubmVjdCsweDIwNC8weDI3MApbICAgMTEuNDY1NTE1XSAgX194NjRfc3lz X2Nvbm5lY3QrMHg2YS8weGIwClsgICAxMS40NjYwODhdICBkb19zeXNjYWxsXzY0KzB4M2UvMHg3 MApbICAgMTEuNDY2NjE3XSAgZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDQvMHhh OQpbICAgMTEuNDY3MzQxXSBSSVA6IDAwMzM6MHg3ZjU2MDQ2ZGM0NjkKWyAgIDExLjQ2Nzg0NF0g Q29kZTogQmFkIFJJUCB2YWx1ZS4KWyAgIDExLjQ2ODI4Ml0gUlNQOiAwMDJiOjAwMDA3ZjU2MDRk Y2NkZDggRUZMQUdTOiAwMDAwMDI0NiBPUklHX1JBWDogMDAwMDAwMDAwMDAwMDAyYQpbICAgMTEu NDY5MzI2XSBSQVg6IGZmZmZmZmZmZmZmZmZmZGEgUkJYOiAwMDAwMDAwMDAwNjhiZjAwIFJDWDog MDAwMDdmNTYwNDZkYzQ2OQpbICAgMTEuNDcwMzc5XSBSRFg6IDAwMDAwMDAwMDAwMDAwMTAgUlNJ OiAwMDAwMDAwMDIwMDAwMDAwIFJESTogMDAwMDAwMDAwMDAwMDAwNApbICAgMTEuNDcxMzExXSBS QlA6IDAwMDAwMDAwZmZmZmZmZmYgUjA4OiAwMDAwMDAwMDAwMDAwMDAwIFIwOTogMDAwMDAwMDAw MDAwMDAwMApbICAgMTEuNDcyMjg2XSBSMTA6IDAwMDAwMDAwMDAwMDAwMDAgUjExOiAwMDAwMDAw MDAwMDAwMjQ2IFIxMjogMDAwMDAwMDAwMDAwMDAwMApbICAgMTEuNDczMzQxXSBSMTM6IDAwMDAw MDAwMDA0MTQyN2MgUjE0OiAwMDAwN2Y1NjA0ZGNkNWMwIFIxNTogMDAwMDAwMDAwMDAwMDAwMwpb ICAgMTEuNDc0MzIxXQpbICAgMTEuNDc0NTI3XSBBbGxvY2F0ZWQgYnkgdGFzayA0ODg0OgpbICAg MTEuNDc1MDMxXSAgc2F2ZV9zdGFjaysweDFiLzB4NDAKWyAgIDExLjQ3NTU0OF0gIF9fa2FzYW5f a21hbGxvYy5jb25zdHByb3AuMCsweGMyLzB4ZDAKWyAgIDExLjQ3NjE4Ml0gIHRjcF9jZGdfaW5p dCsweGYwLzB4MTUwClsgICAxMS40NzY3NDRdICB0Y3BfaW5pdF9jb25nZXN0aW9uX2NvbnRyb2wr MHg5Yi8weDNhMApbICAgMTEuNDc3NDM1XSAgdGNwX3NldF9jb25nZXN0aW9uX2NvbnRyb2wrMHgy NzAvMHgzMmYKWyAgIDExLjQ3ODA4OF0gIGRvX3RjcF9zZXRzb2Nrb3B0LmlzcmEuMCsweDUyMS8w eDFhMDAKWyAgIDExLjQ3ODc0NF0gIF9fc3lzX3NldHNvY2tvcHQrMHhmZi8weDFlMApbICAgMTEu NDc5MjU5XSAgX194NjRfc3lzX3NldHNvY2tvcHQrMHhiNS8weDE1MApbICAgMTEuNDc5ODk1XSAg ZG9fc3lzY2FsbF82NCsweDNlLzB4NzAKWyAgIDExLjQ4MDM5NV0gIGVudHJ5X1NZU0NBTExfNjRf YWZ0ZXJfaHdmcmFtZSsweDQ0LzB4YTkKWyAgIDExLjQ4MTA5N10KWyAgIDExLjQ4MTMyMV0gRnJl ZWQgYnkgdGFzayA0ODcyOgpbICAgMTEuNDgxNzgzXSAgc2F2ZV9zdGFjaysweDFiLzB4NDAKWyAg IDExLjQ4MjIzMF0gIF9fa2FzYW5fc2xhYl9mcmVlKzB4MTJjLzB4MTcwClsgICAxMS40ODI4Mzld ICBrZnJlZSsweDhjLzB4MjMwClsgICAxMS40ODMyNDBdICB0Y3BfY2xlYW51cF9jb25nZXN0aW9u X2NvbnRyb2wrMHg1OC8weGQwClsgICAxMS40ODM5NDhdICB0Y3BfdjRfZGVzdHJveV9zb2NrKzB4 NTcvMHg1YTAKWyAgIDExLjQ4NDUwMl0gIGluZXRfY3NrX2Rlc3Ryb3lfc29jaysweDE1My8weDJj MApbICAgMTEuNDg1MTQ0XSAgdGNwX2Nsb3NlKzB4OTMyLzB4ZmUwClsgICAxMS40ODU2NDJdICBp bmV0X3JlbGVhc2UrMHhjMS8weDFjMApbICAgMTEuNDg2MTMxXSAgX19zb2NrX3JlbGVhc2UrMHhj MC8weDI3MApbICAgMTEuNDg2Njk3XSAgc29ja19jbG9zZSsweGMvMHgxMApbICAgMTEuNDg3MTQ1 XSAgX19mcHV0KzB4Mjc3LzB4NzgwClsgICAxMS40ODc2MzJdICB0YXNrX3dvcmtfcnVuKzB4ZWIv MHgxODAKWyAgIDExLjQ4ODExOF0gIF9fcHJlcGFyZV9leGl0X3RvX3VzZXJtb2RlKzB4MTVhLzB4 MTYwClsgICAxMS40ODg4MzRdICBkb19zeXNjYWxsXzY0KzB4NGEvMHg3MApbICAgMTEuNDg5MzI2 XSAgZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDQvMHhhOQoKV2VpIFdhbmcgZml4 ZWQgYSBwYXJ0IG9mIHRoZXNlIENERy1tYWxsb2MgaXNzdWVzIHdpdGggY29tbWl0IGMxMjAxNDQ0 MDc1MAooInRjcDogbWVtc2V0IGNhX3ByaXYgZGF0YSB0byAwIHByb3Blcmx5IikuCgpUaGlzIHBh dGNoIGhlcmUgZml4ZXMgdGhlIGxpc3RlbmVyLXNjZW5hcmlvOiBXZSBtYWtlIHN1cmUgdGhhdCBs aXN0ZW5lcnMKc2V0dGluZyB0aGUgY29uZ2VzdGlvbi1jb250cm9sIHRocm91Z2ggc2V0c29ja29w dCB3b24ndCBpbml0aWFsaXplIGl0Cih0aHVzIENERyBuZXZlciBhbGxvY2F0ZXMgb24gbGlzdGVu ZXJzKS4gRm9yIHRob3NlIHdobyB1c2UgQUZfVU5TUEVDIHRvCnJldXNlIGEgc29ja2V0LCB0Y3Bf ZGlzY29ubmVjdCgpIGlzIGNoYW5nZWQgdG8gY2xlYW51cCBhZnRlcndhcmRzLgoKKFRoZSBpc3N1 ZSBjYW4gYmUgcmVwcm9kdWNlZCBhdCBsZWFzdCBkb3duIHRvIHY0LjQueC4pCgpDYzogV2VpIFdh bmcgPHdlaXdhbkBnb29nbGUuY29tPgpDYzogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUu Y29tPgpGaXhlczogMmIwYThjOWVlZTgxICgidGNwOiBhZGQgQ0RHIGNvbmdlc3Rpb24gY29udHJv bCIpClNpZ25lZC1vZmYtYnk6IENocmlzdG9waCBQYWFzY2ggPGNwYWFzY2hAYXBwbGUuY29tPgpT aWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2 NC90Y3AuYyAgICAgIHwgMyArKysKIG5ldC9pcHY0L3RjcF9jb25nLmMgfCAyICstCiAyIGZpbGVz IGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25l dC9pcHY0L3RjcC5jIGIvbmV0L2lwdjQvdGNwLmMKaW5kZXggZmUzY2RlZGRkMDk3Li5hODkxMGUy ZmNjNzggMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcC5jCisrKyBiL25ldC9pcHY0L3RjcC5jCkBA IC0yNjMxLDYgKzI2MzEsOSBAQCBpbnQgdGNwX2Rpc2Nvbm5lY3Qoc3RydWN0IHNvY2sgKnNrLCBp bnQgZmxhZ3MpCiAJdHAtPndpbmRvd19jbGFtcCA9IDA7CiAJdHAtPmRlbGl2ZXJlZCA9IDA7CiAJ dHAtPmRlbGl2ZXJlZF9jZSA9IDA7CisJaWYgKGljc2stPmljc2tfY2Ffb3BzLT5yZWxlYXNlKQor CQlpY3NrLT5pY3NrX2NhX29wcy0+cmVsZWFzZShzayk7CisJbWVtc2V0KGljc2stPmljc2tfY2Ff cHJpdiwgMCwgc2l6ZW9mKGljc2stPmljc2tfY2FfcHJpdikpOwogCXRjcF9zZXRfY2Ffc3RhdGUo c2ssIFRDUF9DQV9PcGVuKTsKIAl0cC0+aXNfc2Fja19yZW5lZyA9IDA7CiAJdGNwX2NsZWFyX3Jl dHJhbnModHApOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX2NvbmcuYyBiL25ldC9pcHY0L3Rj cF9jb25nLmMKaW5kZXggYzQ0NWE4MWQxNDRlLi5kN2ExZjJlZjZjNTIgMTAwNjQ0Ci0tLSBhL25l dC9pcHY0L3RjcF9jb25nLmMKKysrIGIvbmV0L2lwdjQvdGNwX2NvbmcuYwpAQCAtMTk3LDcgKzE5 Nyw3IEBAIHN0YXRpYyB2b2lkIHRjcF9yZWluaXRfY29uZ2VzdGlvbl9jb250cm9sKHN0cnVjdCBz b2NrICpzaywKIAlpY3NrLT5pY3NrX2NhX3NldHNvY2tvcHQgPSAxOwogCW1lbXNldChpY3NrLT5p Y3NrX2NhX3ByaXYsIDAsIHNpemVvZihpY3NrLT5pY3NrX2NhX3ByaXYpKTsKIAotCWlmIChzay0+ c2tfc3RhdGUgIT0gVENQX0NMT1NFKQorCWlmICghKCgxIDw8IHNrLT5za19zdGF0ZSkgJiAoVENQ Rl9DTE9TRSB8IFRDUEZfTElTVEVOKSkpCiAJCXRjcF9pbml0X2Nvbmdlc3Rpb25fY29udHJvbChz ayk7CiB9CiAKLS0gCjIuMjYuMgoKCkZyb20gNjVlOGYyYjE4ZTZkNWEwZDdkNGNmM2VhZGJiN2Zj Yzk0MWQyMmE5NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxl ZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBUdWUsIDMwIEp1biAyMDIwIDE2OjQxOjAxIC0wNzAw ClN1YmplY3Q6IFtQQVRDSCAxOC8yOV0gdGNwOiBtZDU6IGFkZCBtaXNzaW5nIG1lbW9yeSBiYXJy aWVycyBpbgogdGNwX21kNV9kb19hZGQoKS90Y3BfbWQ1X2hhc2hfa2V5KCkKClsgVXBzdHJlYW0g Y29tbWl0IDZhMmZlYmVjMzM4ZGY3ZTc2OTlhNTJkMDBiMmUxMjA3ZGNmNjViMjggXQoKTUQ1IGtl eXMgYXJlIHJlYWQgd2l0aCBSQ1UgcHJvdGVjdGlvbiwgYW5kIHRjcF9tZDVfZG9fYWRkKCkKbWln aHQgdXBkYXRlIGluLXBsYWNlIGEgcHJpb3Iga2V5LgoKTm9ybWFsbHksIHR5cGljYWwgUkNVIHVw ZGF0ZXMgd291bGQgYWxsb2NhdGUgYSBuZXcgcGllY2UKb2YgbWVtb3J5LiBJbiB0aGlzIGNhc2Ug b25seSBrZXktPmtleSBhbmQga2V5LT5rZXlsZW4gbWlnaHQKYmUgdXBkYXRlZCwgYW5kIHdlIGRv IG5vdCBjYXJlIGlmIGFuIGluY29taW5nIHBhY2tldCBjb3VsZApzZWUgdGhlIG9sZCBrZXksIHRo ZSBuZXcgb25lLCBvciBzb21lIGludGVybWVkaWF0ZSB2YWx1ZSwKc2luY2UgY2hhbmdpbmcgdGhl IGtleSBvbiBhIGxpdmUgZmxvdyBpcyBrbm93biB0byBiZSBwcm9ibGVtYXRpYwphbnl3YXkuCgpX ZSBvbmx5IHdhbnQgdG8gbWFrZSBzdXJlIHRoYXQgaW4gdGhlIGNhc2Uga2V5LT5rZXlsZW4KaXMg Y2hhbmdlZCwgY3B1cyBpbiB0Y3BfbWQ1X2hhc2hfa2V5KCkgd29udCB0cnkgdG8gdXNlCnVuaW5p dGlhbGl6ZWQgZGF0YSwgb3IgY3Jhc2ggYmVjYXVzZSBrZXktPmtleWxlbiB3YXMKcmVhZCB0d2lj ZSB0byBmZWVkIHNnX2luaXRfb25lKCkgYW5kIGFoYXNoX3JlcXVlc3Rfc2V0X2NyeXB0KCkKCkZp eGVzOiA5ZWE4OGExNTMwMDEgKCJ0Y3A6IG1kNTogY2hlY2sgbWQ1IHNpZ25hdHVyZSB3aXRob3V0 IHNvY2tldCBsb2NrIikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29n bGUuY29tPgpDYzogTWF0aGlldSBEZXNub3llcnMgPG1hdGhpZXUuZGVzbm95ZXJzQGVmZmljaW9z LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIG5ldC9pcHY0L3RjcC5jICAgICAgfCA3ICsrKysrLS0KIG5ldC9pcHY0L3RjcF9pcHY0 LmMgfCAzICsrKwogMiBmaWxlcyBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwLmMgYi9uZXQvaXB2NC90Y3AuYwppbmRleCBh ODkxMGUyZmNjNzguLjdkZTY5ZTE2MWMzNCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwLmMKKysr IGIvbmV0L2lwdjQvdGNwLmMKQEAgLTM4NDcsMTAgKzM4NDcsMTMgQEAgRVhQT1JUX1NZTUJPTCh0 Y3BfbWQ1X2hhc2hfc2tiX2RhdGEpOwogCiBpbnQgdGNwX21kNV9oYXNoX2tleShzdHJ1Y3QgdGNw X21kNXNpZ19wb29sICpocCwgY29uc3Qgc3RydWN0IHRjcF9tZDVzaWdfa2V5ICprZXkpCiB7CisJ dTgga2V5bGVuID0ga2V5LT5rZXlsZW47CiAJc3RydWN0IHNjYXR0ZXJsaXN0IHNnOwogCi0Jc2df aW5pdF9vbmUoJnNnLCBrZXktPmtleSwga2V5LT5rZXlsZW4pOwotCWFoYXNoX3JlcXVlc3Rfc2V0 X2NyeXB0KGhwLT5tZDVfcmVxLCAmc2csIE5VTEwsIGtleS0+a2V5bGVuKTsKKwlzbXBfcm1iKCk7 IC8qIHBhaXJlZCB3aXRoIHNtcF93bWIoKSBpbiB0Y3BfbWQ1X2RvX2FkZCgpICovCisKKwlzZ19p bml0X29uZSgmc2csIGtleS0+a2V5LCBrZXlsZW4pOworCWFoYXNoX3JlcXVlc3Rfc2V0X2NyeXB0 KGhwLT5tZDVfcmVxLCAmc2csIE5VTEwsIGtleWxlbik7CiAJcmV0dXJuIGNyeXB0b19haGFzaF91 cGRhdGUoaHAtPm1kNV9yZXEpOwogfQogRVhQT1JUX1NZTUJPTCh0Y3BfbWQ1X2hhc2hfa2V5KTsK ZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcF9pcHY0LmMgYi9uZXQvaXB2NC90Y3BfaXB2NC5jCmlu ZGV4IGVkYTY0ODcxZjk4My4uN2JiODc0N2Q4NmYxIDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3Bf aXB2NC5jCisrKyBiL25ldC9pcHY0L3RjcF9pcHY0LmMKQEAgLTEwNzksNiArMTA3OSw5IEBAIGlu dCB0Y3BfbWQ1X2RvX2FkZChzdHJ1Y3Qgc29jayAqc2ssIGNvbnN0IHVuaW9uIHRjcF9tZDVfYWRk ciAqYWRkciwKIAlpZiAoa2V5KSB7CiAJCS8qIFByZS1leGlzdGluZyBlbnRyeSAtIGp1c3QgdXBk YXRlIHRoYXQgb25lLiAqLwogCQltZW1jcHkoa2V5LT5rZXksIG5ld2tleSwgbmV3a2V5bGVuKTsK KworCQlzbXBfd21iKCk7IC8qIHBhaXJzIHdpdGggc21wX3JtYigpIGluIHRjcF9tZDVfaGFzaF9r ZXkoKSAqLworCiAJCWtleS0+a2V5bGVuID0gbmV3a2V5bGVuOwogCQlyZXR1cm4gMDsKIAl9Ci0t IAoyLjI2LjIKCgpGcm9tIGI5M2U2YmZkM2RjZjZjYzVlODRjYjk3ZDc1ZGRiNjJlZDU2YjM0OTQg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29v Z2xlLmNvbT4KRGF0ZTogV2VkLCAxIEp1bCAyMDIwIDEyOjQxOjIzIC0wNzAwClN1YmplY3Q6IFtQ QVRDSCAxOS8yOV0gdGNwOiBtZDU6IGRvIG5vdCBzZW5kIHNpbGx5IG9wdGlvbnMgaW4gU1lOQ09P S0lFUwoKWyBVcHN0cmVhbSBjb21taXQgZTExNGUxZThhYzlkMzFmMjViOWRkODczYmFiNWQ4MGMx ZmM0ODJjYSBdCgpXaGVuZXZlciBjb29raWVfaW5pdF90aW1lc3RhbXAoKSBoYXMgYmVlbiB1c2Vk IHRvIGVuY29kZQpFQ04sU0FDSyxXU0NBTEUgb3B0aW9ucywgd2UgY2FuIG5vdCByZW1vdmUgdGhl IFRTIG9wdGlvbiBpbiB0aGUgU1lOQUNLLgoKT3RoZXJ3aXNlLCB0Y3Bfc3luYWNrX29wdGlvbnMo KSB3aWxsIHN0aWxsIGFkdmVydGl6ZSBvcHRpb25zIGxpa2UgV1NDQUxFCnRoYXQgd2UgY2FuIG5v dCBkZWR1Y2UgbGF0ZXIgd2hlbiByZWNlaXZpbmcgdGhlIHBhY2tldCBmcm9tIHRoZSBjbGllbnQK dG8gY29tcGxldGUgM1dIUy4KCk5vdGUgdGhhdCBtb2Rlcm4gbGludXggVENQIHN0YWNrcyB3b250 IHVzZSBNRDUrVFMrU0FDSyBpbiBhIFNZTiBwYWNrZXQsCmJ1dCB3ZSBjYW4gbm90IGtub3cgZm9y IHN1cmUgdGhhdCBhbGwgVENQIHN0YWNrcyBoYXZlIHRoZSBzYW1lIGxvZ2ljLgoKQmVmb3JlIHRo ZSBmaXggYSB0Y3BkdW1wIHdvdWxkIGV4aGliaXQgdGhpcyB3cm9uZyBleGNoYW5nZSA6CgoxMDox MjoxNS40NjQ1OTEgSVAgQyA+IFM6IEZsYWdzIFtTXSwgc2VxIDQyMDI0MTU2MDEsIHdpbiA2NTUz NSwgb3B0aW9ucyBbbm9wLG5vcCxtZDUgdmFsaWQsbXNzIDE0MDAsc2Fja09LLFRTIHZhbCA0NTY5 NjUyNjkgZWNyIDAsbm9wLHdzY2FsZSA4XSwgbGVuZ3RoIDAKMTA6MTI6MTUuNDY0NjAyIElQIFMg PiBDOiBGbGFncyBbUy5dLCBzZXEgMjUzNTE2NzY2LCBhY2sgNDIwMjQxNTYwMiwgd2luIDY1NTM1 LCBvcHRpb25zIFtub3Asbm9wLG1kNSB2YWxpZCxtc3MgMTQwMCxub3Asbm9wLHNhY2tPSyxub3As d3NjYWxlIDhdLCBsZW5ndGggMAoxMDoxMjoxNS40NjQ2MTEgSVAgQyA+IFM6IEZsYWdzIFsuXSwg YWNrIDEsIHdpbiAyNTYsIG9wdGlvbnMgW25vcCxub3AsbWQ1IHZhbGlkXSwgbGVuZ3RoIDAKMTA6 MTI6MTUuNDY0Njc4IElQIEMgPiBTOiBGbGFncyBbUC5dLCBzZXEgMToxMywgYWNrIDEsIHdpbiAy NTYsIG9wdGlvbnMgW25vcCxub3AsbWQ1IHZhbGlkXSwgbGVuZ3RoIDEyCjEwOjEyOjE1LjQ2NDY4 NSBJUCBTID4gQzogRmxhZ3MgWy5dLCBhY2sgMTMsIHdpbiA2NTUzNSwgb3B0aW9ucyBbbm9wLG5v cCxtZDUgdmFsaWRdLCBsZW5ndGggMAoKQWZ0ZXIgdGhpcyBwYXRjaCB0aGUgZXhjaGFuZ2UgbG9v a3Mgc2FuZXIgOgoKMTE6NTk6NTkuODgyOTkwIElQIEMgPiBTOiBGbGFncyBbU10sIHNlcSA1MTcw NzU5NDQsIHdpbiA2NTUzNSwgb3B0aW9ucyBbbm9wLG5vcCxtZDUgdmFsaWQsbXNzIDE0MDAsc2Fj a09LLFRTIHZhbCAxNzUxNTA4NDgzIGVjciAwLG5vcCx3c2NhbGUgOF0sIGxlbmd0aCAwCjExOjU5 OjU5Ljg4MzAwMiBJUCBTID4gQzogRmxhZ3MgW1MuXSwgc2VxIDE5MDI5MzkyNTMsIGFjayA1MTcw NzU5NDUsIHdpbiA2NTUzNSwgb3B0aW9ucyBbbm9wLG5vcCxtZDUgdmFsaWQsbXNzIDE0MDAsc2Fj a09LLFRTIHZhbCAxNzUxNTA4NDc5IGVjciAxNzUxNTA4NDgzLG5vcCx3c2NhbGUgOF0sIGxlbmd0 aCAwCjExOjU5OjU5Ljg4MzAxMiBJUCBDID4gUzogRmxhZ3MgWy5dLCBhY2sgMSwgd2luIDI1Niwg b3B0aW9ucyBbbm9wLG5vcCxtZDUgdmFsaWQsbm9wLG5vcCxUUyB2YWwgMTc1MTUwODQ4MyBlY3Ig MTc1MTUwODQ3OV0sIGxlbmd0aCAwCjExOjU5OjU5Ljg4MzExNCBJUCBDID4gUzogRmxhZ3MgW1Au XSwgc2VxIDE6MTMsIGFjayAxLCB3aW4gMjU2LCBvcHRpb25zIFtub3Asbm9wLG1kNSB2YWxpZCxu b3Asbm9wLFRTIHZhbCAxNzUxNTA4NDgzIGVjciAxNzUxNTA4NDc5XSwgbGVuZ3RoIDEyCjExOjU5 OjU5Ljg4MzEyMiBJUCBTID4gQzogRmxhZ3MgWy5dLCBhY2sgMTMsIHdpbiAyNTYsIG9wdGlvbnMg W25vcCxub3AsbWQ1IHZhbGlkLG5vcCxub3AsVFMgdmFsIDE3NTE1MDg0ODMgZWNyIDE3NTE1MDg0 ODNdLCBsZW5ndGggMAoxMTo1OTo1OS44ODMxNTIgSVAgUyA+IEM6IEZsYWdzIFtQLl0sIHNlcSAx OjEzLCBhY2sgMTMsIHdpbiAyNTYsIG9wdGlvbnMgW25vcCxub3AsbWQ1IHZhbGlkLG5vcCxub3As VFMgdmFsIDE3NTE1MDg0ODQgZWNyIDE3NTE1MDg0ODNdLCBsZW5ndGggMTIKMTE6NTk6NTkuODgz MTcwIElQIEMgPiBTOiBGbGFncyBbLl0sIGFjayAxMywgd2luIDI1Niwgb3B0aW9ucyBbbm9wLG5v cCxtZDUgdmFsaWQsbm9wLG5vcCxUUyB2YWwgMTc1MTUwODQ4NCBlY3IgMTc1MTUwODQ4NF0sIGxl bmd0aCAwCgpPZiBjb3Vyc2UsIG5vIFNBQ0sgYmxvY2sgd2lsbCBldmVyIGJlIGFkZGVkIGxhdGVy LCBidXQgbm90aGluZyBzaG91bGQgYnJlYWsuClRlY2huaWNhbGx5LCB3ZSBjb3VsZCByZW1vdmUg dGhlIDQgbm9wcyBpbmNsdWRlZCBpbiBNRDUrVFMgb3B0aW9ucywKYnV0IGFnYWluIHNvbWUgc3Rh Y2tzIGNvdWxkIGJyZWFrIHNlZWluZyBub3QgY29udmVudGlvbmFsIGFsaWdubWVudC4KCkZpeGVz OiA0OTU3ZmFhZGUxMWIgKCJUQ1BDVCBwYXJ0IDFnOiBSZXNwb25kZXIgQ29va2llID0+IEluaXRp YXRvciIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4K Q2M6IEZsb3JpYW4gV2VzdHBoYWwgPGZ3QHN0cmxlbi5kZT4KQ2M6IE1hdGhpZXUgRGVzbm95ZXJz IDxtYXRoaWV1LmRlc25veWVyc0BlZmZpY2lvcy5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC90Y3Bfb3V0cHV0LmMg fCA4ICsrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcF9vdXRwdXQuYyBiL25ldC9pcHY0L3RjcF9v dXRwdXQuYwppbmRleCBjOGQwM2MxYjRjNmIuLjVkYzc0ODVjNDA3NiAxMDA2NDQKLS0tIGEvbmV0 L2lwdjQvdGNwX291dHB1dC5jCisrKyBiL25ldC9pcHY0L3RjcF9vdXRwdXQuYwpAQCAtNjYyLDcg KzY2Miw4IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgdGNwX3N5bmFja19vcHRpb25zKGNvbnN0IHN0 cnVjdCBzb2NrICpzaywKIAkJCQkgICAgICAgdW5zaWduZWQgaW50IG1zcywgc3RydWN0IHNrX2J1 ZmYgKnNrYiwKIAkJCQkgICAgICAgc3RydWN0IHRjcF9vdXRfb3B0aW9ucyAqb3B0cywKIAkJCQkg ICAgICAgY29uc3Qgc3RydWN0IHRjcF9tZDVzaWdfa2V5ICptZDUsCi0JCQkJICAgICAgIHN0cnVj dCB0Y3BfZmFzdG9wZW5fY29va2llICpmb2MpCisJCQkJICAgICAgIHN0cnVjdCB0Y3BfZmFzdG9w ZW5fY29va2llICpmb2MsCisJCQkJICAgICAgIGVudW0gdGNwX3N5bmFja190eXBlIHN5bmFja190 eXBlKQogewogCXN0cnVjdCBpbmV0X3JlcXVlc3Rfc29jayAqaXJlcSA9IGluZXRfcnNrKHJlcSk7 CiAJdW5zaWduZWQgaW50IHJlbWFpbmluZyA9IE1BWF9UQ1BfT1BUSU9OX1NQQUNFOwpAQCAtNjc3 LDcgKzY3OCw4IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgdGNwX3N5bmFja19vcHRpb25zKGNvbnN0 IHN0cnVjdCBzb2NrICpzaywKIAkJICogcmF0aGVyIHRoYW4gVFMgaW4gb3JkZXIgdG8gZml0IGlu IGJldHRlciB3aXRoIG9sZCwKIAkJICogYnVnZ3kga2VybmVscywgYnV0IHRoYXQgd2FzIGRlZW1l ZCB0byBiZSB1bm5lY2Vzc2FyeS4KIAkJICovCi0JCWlyZXEtPnRzdGFtcF9vayAmPSAhaXJlcS0+ c2Fja19vazsKKwkJaWYgKHN5bmFja190eXBlICE9IFRDUF9TWU5BQ0tfQ09PS0lFKQorCQkJaXJl cS0+dHN0YW1wX29rICY9ICFpcmVxLT5zYWNrX29rOwogCX0KICNlbmRpZgogCkBAIC0zMzI2LDcg KzMzMjgsNyBAQCBzdHJ1Y3Qgc2tfYnVmZiAqdGNwX21ha2Vfc3luYWNrKGNvbnN0IHN0cnVjdCBz b2NrICpzaywgc3RydWN0IGRzdF9lbnRyeSAqZHN0LAogI2VuZGlmCiAJc2tiX3NldF9oYXNoKHNr YiwgdGNwX3JzayhyZXEpLT50eGhhc2gsIFBLVF9IQVNIX1RZUEVfTDQpOwogCXRjcF9oZWFkZXJf c2l6ZSA9IHRjcF9zeW5hY2tfb3B0aW9ucyhzaywgcmVxLCBtc3MsIHNrYiwgJm9wdHMsIG1kNSwK LQkJCQkJICAgICBmb2MpICsgc2l6ZW9mKCp0aCk7CisJCQkJCSAgICAgZm9jLCBzeW5hY2tfdHlw ZSkgKyBzaXplb2YoKnRoKTsKIAogCXNrYl9wdXNoKHNrYiwgdGNwX2hlYWRlcl9zaXplKTsKIAlz a2JfcmVzZXRfdHJhbnNwb3J0X2hlYWRlcihza2IpOwotLSAKMi4yNi4yCgoKRnJvbSBhZjIzMTYy NTc3NGYzMDI5OWQ4ZmZiZDc5NjIwYmRjZjYyNjcxM2NkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiA9P1VURi04P3E/VG9rZT0yMEg9QzM9QjhpbGFuZC1KPUMzPUI4cmdlbnNlbj89IDx0 b2tlQHJlZGhhdC5jb20+CkRhdGU6IFR1ZSwgNyBKdWwgMjAyMCAxMzowMzoyNSArMDIwMApTdWJq ZWN0OiBbUEFUQ0ggMjAvMjldIHZsYW46IGNvbnNvbGlkYXRlIFZMQU4gcGFyc2luZyBjb2RlIGFu ZCBsaW1pdCBtYXgKIHBhcnNpbmcgZGVwdGgKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBl OiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhi aXQKClsgVXBzdHJlYW0gY29tbWl0IDQ2OWFjZWRkZmEzZWQxNmUxN2VlMzA1MzNmYWU0NWU5MGY2 MmVmZDggXQoKVG9zaGlha2kgcG9pbnRlZCBvdXQgdGhhdCB3ZSBub3cgaGF2ZSB0d28gdmVyeSBz aW1pbGFyIGZ1bmN0aW9ucyB0byBleHRyYWN0CnRoZSBMMyBwcm90b2NvbCBudW1iZXIgaW4gdGhl IHByZXNlbmNlIG9mIFZMQU4gdGFncy4gQW5kIERhbmllbCBwb2ludGVkIG91dAp0aGF0IHRoZSB1 bmJvdW5kZWQgcGFyc2luZyBsb29wIG1ha2VzIGl0IHBvc3NpYmxlIGZvciBtYWxpY2lvdXNseSBj cmFmdGVkCnBhY2tldHMgdG8gbG9vcCB0aHJvdWdoIHBvdGVudGlhbGx5IGh1bmRyZWRzIG9mIHRh Z3MuCgpGaXggYm90aCBvZiB0aGVzZSBpc3N1ZXMgYnkgY29uc29saWRhdGluZyB0aGUgdHdvIHBh cnNpbmcgZnVuY3Rpb25zIGFuZApsaW1pdGluZyB0aGUgVkxBTiB0YWcgcGFyc2luZyB0byBhIG1h eCBkZXB0aCBvZiA4IHRhZ3MuIEFzIHBhcnQgb2YgdGhpcywKc3dpdGNoIG92ZXIgX192bGFuX2dl dF9wcm90b2NvbCgpIHRvIHVzZSBza2JfaGVhZGVyX3BvaW50ZXIoKSBpbnN0ZWFkIG9mCnBza2Jf bWF5X3B1bGwoKSwgdG8gYXZvaWQgdGhlIHBvc3NpYmxlIHNpZGUgZWZmZWN0cyBvZiB0aGUgbGF0 dGVyIGFuZCBrZWVwCnRoZSBza2IgcG9pbnRlciAnY29uc3QnIHRocm91Z2ggYWxsIHRoZSBwYXJz aW5nIGZ1bmN0aW9ucy4KCnYyOgotIFVzZSBsaW1pdCBvZiA4IHRhZ3MgaW5zdGVhZCBvZiAzMiAo bWF0Y2hpbmcgWE1JVF9SRUNVUlNJT05fTElNSVQpCgpSZXBvcnRlZC1ieTogVG9zaGlha2kgTWFr aXRhIDx0b3NoaWFraS5tYWtpdGExQGdtYWlsLmNvbT4KUmVwb3J0ZWQtYnk6IERhbmllbCBCb3Jr bWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+CkZpeGVzOiBkN2JmMmViZWJjMmIgKCJzY2hlZDog Y29uc2lzdGVudGx5IGhhbmRsZSBsYXllcjMgaGVhZGVyIGFjY2Vzc2VzIGluIHRoZSBwcmVzZW5j ZSBvZiBWTEFOcyIpClNpZ25lZC1vZmYtYnk6IFRva2UgSMO4aWxhbmQtSsO4cmdlbnNlbiA8dG9r ZUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9saW51eC9pZl92bGFuLmggfCA1NyArKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDIyIGluc2VydGlv bnMoKyksIDM1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvaWZfdmxh bi5oIGIvaW5jbHVkZS9saW51eC9pZl92bGFuLmgKaW5kZXggNDI3YTViODU5N2MyLi40MWE1MTgz MzY2NzMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaWZfdmxhbi5oCisrKyBiL2luY2x1ZGUv bGludXgvaWZfdmxhbi5oCkBAIC0yNSw2ICsyNSw4IEBACiAjZGVmaW5lIFZMQU5fRVRIX0RBVEFf TEVOCTE1MDAJLyogTWF4LiBvY3RldHMgaW4gcGF5bG9hZAkgKi8KICNkZWZpbmUgVkxBTl9FVEhf RlJBTUVfTEVOCTE1MTgJLyogTWF4LiBvY3RldHMgaW4gZnJhbWUgc2FucyBGQ1MgKi8KIAorI2Rl ZmluZSBWTEFOX01BWF9ERVBUSAk4CQkvKiBNYXguIG51bWJlciBvZiBuZXN0ZWQgVkxBTiB0YWdz IHBhcnNlZCAqLworCiAvKgogICogCXN0cnVjdCB2bGFuX2hkciAtIHZsYW4gaGVhZGVyCiAgKiAJ QGhfdmxhbl9UQ0k6IHByaW9yaXR5IGFuZCBWTEFOIElECkBAIC0zMDgsMzQgKzMxMCw2IEBAIHN0 YXRpYyBpbmxpbmUgYm9vbCBldGhfdHlwZV92bGFuKF9fYmUxNiBldGhlcnR5cGUpCiAJfQogfQog Ci0vKiBBIGdldHRlciBmb3IgdGhlIFNLQiBwcm90b2NvbCBmaWVsZCB3aGljaCB3aWxsIGhhbmRs ZSBWTEFOIHRhZ3MgY29uc2lzdGVudGx5Ci0gKiB3aGV0aGVyIFZMQU4gYWNjZWxlcmF0aW9uIGlz IGVuYWJsZWQgb3Igbm90LgotICovCi1zdGF0aWMgaW5saW5lIF9fYmUxNiBza2JfcHJvdG9jb2wo Y29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYiwgYm9vbCBza2lwX3ZsYW4pCi17Ci0JdW5zaWduZWQg aW50IG9mZnNldCA9IHNrYl9tYWNfb2Zmc2V0KHNrYikgKyBzaXplb2Yoc3RydWN0IGV0aGhkcik7 Ci0JX19iZTE2IHByb3RvID0gc2tiLT5wcm90b2NvbDsKLQotCWlmICghc2tpcF92bGFuKQotCQkv KiBWTEFOIGFjY2VsZXJhdGlvbiBzdHJpcHMgdGhlIFZMQU4gaGVhZGVyIGZyb20gdGhlIHNrYiBh bmQKLQkJICogbW92ZXMgaXQgdG8gc2tiLT52bGFuX3Byb3RvCi0JCSAqLwotCQlyZXR1cm4gc2ti X3ZsYW5fdGFnX3ByZXNlbnQoc2tiKSA/IHNrYi0+dmxhbl9wcm90byA6IHByb3RvOwotCi0Jd2hp bGUgKGV0aF90eXBlX3ZsYW4ocHJvdG8pKSB7Ci0JCXN0cnVjdCB2bGFuX2hkciB2aGRyLCAqdmg7 Ci0KLQkJdmggPSBza2JfaGVhZGVyX3BvaW50ZXIoc2tiLCBvZmZzZXQsIHNpemVvZih2aGRyKSwg JnZoZHIpOwotCQlpZiAoIXZoKQotCQkJYnJlYWs7Ci0KLQkJcHJvdG8gPSB2aC0+aF92bGFuX2Vu Y2Fwc3VsYXRlZF9wcm90bzsKLQkJb2Zmc2V0ICs9IHNpemVvZih2aGRyKTsKLQl9Ci0KLQlyZXR1 cm4gcHJvdG87Ci19Ci0KIHN0YXRpYyBpbmxpbmUgYm9vbCB2bGFuX2h3X29mZmxvYWRfY2FwYWJs ZShuZXRkZXZfZmVhdHVyZXNfdCBmZWF0dXJlcywKIAkJCQkJICAgX19iZTE2IHByb3RvKQogewpA QCAtNjA1LDEwICs1NzksMTAgQEAgc3RhdGljIGlubGluZSBpbnQgdmxhbl9nZXRfdGFnKGNvbnN0 IHN0cnVjdCBza19idWZmICpza2IsIHUxNiAqdmxhbl90Y2kpCiAgKiBSZXR1cm5zIHRoZSBFdGhl clR5cGUgb2YgdGhlIHBhY2tldCwgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGlzCiAgKiB2bGFu IGVuY2Fwc3VsYXRlZCAobm9ybWFsIG9yIGhhcmR3YXJlIGFjY2VsZXJhdGVkKSBvciBub3QuCiAg Ki8KLXN0YXRpYyBpbmxpbmUgX19iZTE2IF9fdmxhbl9nZXRfcHJvdG9jb2woc3RydWN0IHNrX2J1 ZmYgKnNrYiwgX19iZTE2IHR5cGUsCitzdGF0aWMgaW5saW5lIF9fYmUxNiBfX3ZsYW5fZ2V0X3By b3RvY29sKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsIF9fYmUxNiB0eXBlLAogCQkJCQkgaW50 ICpkZXB0aCkKIHsKLQl1bnNpZ25lZCBpbnQgdmxhbl9kZXB0aCA9IHNrYi0+bWFjX2xlbjsKKwl1 bnNpZ25lZCBpbnQgdmxhbl9kZXB0aCA9IHNrYi0+bWFjX2xlbiwgcGFyc2VfZGVwdGggPSBWTEFO X01BWF9ERVBUSDsKIAogCS8qIGlmIHR5cGUgaXMgODAyLjFRL0FEIHRoZW4gdGhlIGhlYWRlciBz aG91bGQgYWxyZWFkeSBiZQogCSAqIHByZXNlbnQgYXQgbWFjX2xlbiAtIFZMQU5fSExFTiAoaWYg bWFjX2xlbiA+IDApLCBvciBhdApAQCAtNjIzLDEzICs1OTcsMTIgQEAgc3RhdGljIGlubGluZSBf X2JlMTYgX192bGFuX2dldF9wcm90b2NvbChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBfX2JlMTYgdHlw ZSwKIAkJCXZsYW5fZGVwdGggPSBFVEhfSExFTjsKIAkJfQogCQlkbyB7Ci0JCQlzdHJ1Y3Qgdmxh bl9oZHIgKnZoOworCQkJc3RydWN0IHZsYW5faGRyIHZoZHIsICp2aDsKIAotCQkJaWYgKHVubGlr ZWx5KCFwc2tiX21heV9wdWxsKHNrYiwKLQkJCQkJCSAgICB2bGFuX2RlcHRoICsgVkxBTl9ITEVO KSkpCisJCQl2aCA9IHNrYl9oZWFkZXJfcG9pbnRlcihza2IsIHZsYW5fZGVwdGgsIHNpemVvZih2 aGRyKSwgJnZoZHIpOworCQkJaWYgKHVubGlrZWx5KCF2aCB8fCAhLS1wYXJzZV9kZXB0aCkpCiAJ CQkJcmV0dXJuIDA7CiAKLQkJCXZoID0gKHN0cnVjdCB2bGFuX2hkciAqKShza2ItPmRhdGEgKyB2 bGFuX2RlcHRoKTsKIAkJCXR5cGUgPSB2aC0+aF92bGFuX2VuY2Fwc3VsYXRlZF9wcm90bzsKIAkJ CXZsYW5fZGVwdGggKz0gVkxBTl9ITEVOOwogCQl9IHdoaWxlIChldGhfdHlwZV92bGFuKHR5cGUp KTsKQEAgLTY0OCwxMSArNjIxLDI1IEBAIHN0YXRpYyBpbmxpbmUgX19iZTE2IF9fdmxhbl9nZXRf cHJvdG9jb2woc3RydWN0IHNrX2J1ZmYgKnNrYiwgX19iZTE2IHR5cGUsCiAgKiBSZXR1cm5zIHRo ZSBFdGhlclR5cGUgb2YgdGhlIHBhY2tldCwgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGlzCiAg KiB2bGFuIGVuY2Fwc3VsYXRlZCAobm9ybWFsIG9yIGhhcmR3YXJlIGFjY2VsZXJhdGVkKSBvciBu b3QuCiAgKi8KLXN0YXRpYyBpbmxpbmUgX19iZTE2IHZsYW5fZ2V0X3Byb3RvY29sKHN0cnVjdCBz a19idWZmICpza2IpCitzdGF0aWMgaW5saW5lIF9fYmUxNiB2bGFuX2dldF9wcm90b2NvbChjb25z dCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewogCXJldHVybiBfX3ZsYW5fZ2V0X3Byb3RvY29sKHNr Yiwgc2tiLT5wcm90b2NvbCwgTlVMTCk7CiB9CiAKKy8qIEEgZ2V0dGVyIGZvciB0aGUgU0tCIHBy b3RvY29sIGZpZWxkIHdoaWNoIHdpbGwgaGFuZGxlIFZMQU4gdGFncyBjb25zaXN0ZW50bHkKKyAq IHdoZXRoZXIgVkxBTiBhY2NlbGVyYXRpb24gaXMgZW5hYmxlZCBvciBub3QuCisgKi8KK3N0YXRp YyBpbmxpbmUgX19iZTE2IHNrYl9wcm90b2NvbChjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBi b29sIHNraXBfdmxhbikKK3sKKwlpZiAoIXNraXBfdmxhbikKKwkJLyogVkxBTiBhY2NlbGVyYXRp b24gc3RyaXBzIHRoZSBWTEFOIGhlYWRlciBmcm9tIHRoZSBza2IgYW5kCisJCSAqIG1vdmVzIGl0 IHRvIHNrYi0+dmxhbl9wcm90bworCQkgKi8KKwkJcmV0dXJuIHNrYl92bGFuX3RhZ19wcmVzZW50 KHNrYikgPyBza2ItPnZsYW5fcHJvdG8gOiBza2ItPnByb3RvY29sOworCisJcmV0dXJuIHZsYW5f Z2V0X3Byb3RvY29sKHNrYik7Cit9CisKIHN0YXRpYyBpbmxpbmUgdm9pZCB2bGFuX3NldF9lbmNh cF9wcm90byhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJCQlzdHJ1Y3Qgdmxhbl9oZHIgKnZoZHIp CiB7Ci0tIAoyLjI2LjIKCgpGcm9tIGViOWI4ZDY1NzU1MjAxMGQ2ODI5NjAwYTUwY2NhOWY4NDkz OWExYmQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6 ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogV2VkLCAxIEp1bCAyMDIwIDExOjQzOjA0IC0wNzAwClN1Ympl Y3Q6IFtQQVRDSCAyMS8yOV0gdGNwOiBtZDU6IHJlZmluZSB0Y3BfbWQ1X2RvX2FkZCgpL3RjcF9t ZDVfaGFzaF9rZXkoKQogYmFycmllcnMKClsgVXBzdHJlYW0gY29tbWl0IGU2Y2VkODMxZWYxMWEy YTA2ZThkMDBhYWQ5ZDRmYzA1YjYxMGJmMzggXQoKTXkgcHJpb3IgZml4IHdlbnQgYSBiaXQgdG9v IGZhciwgYWNjb3JkaW5nIHRvIEhlcmJlcnQgYW5kIE1hdGhpZXUuCgpTaW5jZSB3ZSBhY2NlcHQg dGhhdCBjb25jdXJyZW50IFRDUCBNRDUgbG9va3VwcyBtaWdodCBzZWUgaW5jb25zaXN0ZW50Cmtl eXMsIHdlIGNhbiB1c2UgUkVBRF9PTkNFKCkvV1JJVEVfT05DRSgpIGluc3RlYWQgb2Ygc21wX3Jt YigpL3NtcF93bWIoKQoKQ2xlYXJpbmcgYWxsIGtleS0+a2V5W10gaXMgbmVlZGVkIHRvIGF2b2lk IHBvc3NpYmxlIEtNU0FOIHJlcG9ydHMsCmlmIGtleS0+a2V5bGVuIGlzIGluY3JlYXNlZC4gU2lu Y2UgdGNwX21kNV9kb19hZGQoKSBpcyBub3QgZmFzdCBwYXRoLAp1c2luZyBfX0dGUF9aRVJPIHRv IGNsZWFyIGFsbCBzdHJ1Y3QgdGNwX21kNXNpZ19rZXkgaXMgc2ltcGxlci4KCmRhdGFfcmFjZSgp IHdhcyBhZGRlZCBpbiBsaW51eC01LjggYW5kIHdpbGwgcHJldmVudCBLQ1NBTiByZXBvcnRzLAp0 aGlzIGNhbiBzYWZlbHkgYmUgcmVtb3ZlZCBpbiBzdGFibGUgYmFja3BvcnRzLCBpZiBkYXRhX3Jh Y2UoKSBpcwpub3QgeWV0IGJhY2twb3J0ZWQuCgp2MjogdXNlIGRhdGFfcmFjZSgpIGJvdGggaW4g dGNwX21kNV9oYXNoX2tleSgpIGFuZCB0Y3BfbWQ1X2RvX2FkZCgpCgpGaXhlczogNmEyZmViZWMz MzhkICgidGNwOiBtZDU6IGFkZCBtaXNzaW5nIG1lbW9yeSBiYXJyaWVycyBpbiB0Y3BfbWQ1X2Rv X2FkZCgpL3RjcF9tZDVfaGFzaF9rZXkoKSIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8 ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQ2M6IE1hdGhpZXUgRGVzbm95ZXJzIDxtYXRoaWV1LmRlc25v eWVyc0BlZmZpY2lvcy5jb20+CkNjOiBIZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5v cmcuYXU+CkNjOiBNYXJjbyBFbHZlciA8ZWx2ZXJAZ29vZ2xlLmNvbT4KUmV2aWV3ZWQtYnk6IE1h dGhpZXUgRGVzbm95ZXJzIDxtYXRoaWV1LmRlc25veWVyc0BlZmZpY2lvcy5jb20+CkFja2VkLWJ5 OiBIZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC90Y3Au YyAgICAgIHwgIDYgKysrLS0tCiBuZXQvaXB2NC90Y3BfaXB2NC5jIHwgMTQgKysrKysrKysrKy0t LS0KIDIgZmlsZXMgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9uZXQvaXB2NC90Y3AuYyBiL25ldC9pcHY0L3RjcC5jCmluZGV4IDdkZTY5ZTE2 MWMzNC4uYTNhMmI2ZGYyZWUyIDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3AuYworKysgYi9uZXQv aXB2NC90Y3AuYwpAQCAtMzg0NywxMyArMzg0NywxMyBAQCBFWFBPUlRfU1lNQk9MKHRjcF9tZDVf aGFzaF9za2JfZGF0YSk7CiAKIGludCB0Y3BfbWQ1X2hhc2hfa2V5KHN0cnVjdCB0Y3BfbWQ1c2ln X3Bvb2wgKmhwLCBjb25zdCBzdHJ1Y3QgdGNwX21kNXNpZ19rZXkgKmtleSkKIHsKLQl1OCBrZXls ZW4gPSBrZXktPmtleWxlbjsKKwl1OCBrZXlsZW4gPSBSRUFEX09OQ0Uoa2V5LT5rZXlsZW4pOyAv KiBwYWlyZWQgd2l0aCBXUklURV9PTkNFKCkgaW4gdGNwX21kNV9kb19hZGQgKi8KIAlzdHJ1Y3Qg c2NhdHRlcmxpc3Qgc2c7CiAKLQlzbXBfcm1iKCk7IC8qIHBhaXJlZCB3aXRoIHNtcF93bWIoKSBp biB0Y3BfbWQ1X2RvX2FkZCgpICovCi0KIAlzZ19pbml0X29uZSgmc2csIGtleS0+a2V5LCBrZXls ZW4pOwogCWFoYXNoX3JlcXVlc3Rfc2V0X2NyeXB0KGhwLT5tZDVfcmVxLCAmc2csIE5VTEwsIGtl eWxlbik7CisKKwkvKiB0Y3BfbWQ1X2RvX2FkZCgpIG1pZ2h0IGNoYW5nZSBrZXktPmtleSB1bmRl ciB1cyAqLwogCXJldHVybiBjcnlwdG9fYWhhc2hfdXBkYXRlKGhwLT5tZDVfcmVxKTsKIH0KIEVY UE9SVF9TWU1CT0wodGNwX21kNV9oYXNoX2tleSk7CmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3Bf aXB2NC5jIGIvbmV0L2lwdjQvdGNwX2lwdjQuYwppbmRleCA3YmI4NzQ3ZDg2ZjEuLjM1Zjk2MzY5 MGE3MCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwX2lwdjQuYworKysgYi9uZXQvaXB2NC90Y3Bf aXB2NC5jCkBAIC0xMDc3LDEyICsxMDc3LDE4IEBAIGludCB0Y3BfbWQ1X2RvX2FkZChzdHJ1Y3Qg c29jayAqc2ssIGNvbnN0IHVuaW9uIHRjcF9tZDVfYWRkciAqYWRkciwKIAogCWtleSA9IHRjcF9t ZDVfZG9fbG9va3VwX2V4YWN0KHNrLCBhZGRyLCBmYW1pbHksIHByZWZpeGxlbik7CiAJaWYgKGtl eSkgewotCQkvKiBQcmUtZXhpc3RpbmcgZW50cnkgLSBqdXN0IHVwZGF0ZSB0aGF0IG9uZS4gKi8K KwkJLyogUHJlLWV4aXN0aW5nIGVudHJ5IC0ganVzdCB1cGRhdGUgdGhhdCBvbmUuCisJCSAqIE5v dGUgdGhhdCB0aGUga2V5IG1pZ2h0IGJlIHVzZWQgY29uY3VycmVudGx5LgorCQkgKi8KIAkJbWVt Y3B5KGtleS0+a2V5LCBuZXdrZXksIG5ld2tleWxlbik7CiAKLQkJc21wX3dtYigpOyAvKiBwYWly cyB3aXRoIHNtcF9ybWIoKSBpbiB0Y3BfbWQ1X2hhc2hfa2V5KCkgKi8KKwkJLyogUGFpcnMgd2l0 aCBSRUFEX09OQ0UoKSBpbiB0Y3BfbWQ1X2hhc2hfa2V5KCkuCisJCSAqIEFsc28gbm90ZSB0aGF0 IGEgcmVhZGVyIGNvdWxkIGNhdGNoIG5ldyBrZXktPmtleWxlbiB2YWx1ZQorCQkgKiBidXQgb2xk IGtleS0+a2V5W10sIHRoaXMgaXMgdGhlIHJlYXNvbiB3ZSB1c2UgX19HRlBfWkVSTworCQkgKiBh dCBzb2NrX2ttYWxsb2MoKSB0aW1lIGJlbG93IHRoZXNlIGxpbmVzLgorCQkgKi8KKwkJV1JJVEVf T05DRShrZXktPmtleWxlbiwgbmV3a2V5bGVuKTsKIAotCQlrZXktPmtleWxlbiA9IG5ld2tleWxl bjsKIAkJcmV0dXJuIDA7CiAJfQogCkBAIC0xMDk4LDcgKzExMDQsNyBAQCBpbnQgdGNwX21kNV9k b19hZGQoc3RydWN0IHNvY2sgKnNrLCBjb25zdCB1bmlvbiB0Y3BfbWQ1X2FkZHIgKmFkZHIsCiAJ CXJjdV9hc3NpZ25fcG9pbnRlcih0cC0+bWQ1c2lnX2luZm8sIG1kNXNpZyk7CiAJfQogCi0Ja2V5 ID0gc29ja19rbWFsbG9jKHNrLCBzaXplb2YoKmtleSksIGdmcCk7CisJa2V5ID0gc29ja19rbWFs bG9jKHNrLCBzaXplb2YoKmtleSksIGdmcCB8IF9fR0ZQX1pFUk8pOwogCWlmICgha2V5KQogCQly ZXR1cm4gLUVOT01FTTsKIAlpZiAoIXRjcF9hbGxvY19tZDVzaWdfcG9vbCgpKSB7Ci0tIAoyLjI2 LjIKCgpGcm9tIGE5NjI1ODM2ZGE2YTM2MjkyYjAzZWUzZTUyYjE1YTNhOTQ5ZjkwODAgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNv bT4KRGF0ZTogV2VkLCAxIEp1bCAyMDIwIDE4OjM5OjMzIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAy Mi8yOV0gdGNwOiBtZDU6IGFsbG93IGNoYW5naW5nIE1ENSBrZXlzIGluIGFsbCBzb2NrZXQgc3Rh dGVzCgpbIFVwc3RyZWFtIGNvbW1pdCAxY2EwZmFmZDczYzUyNjhlOGZjNGI5OTcwOTRiOGJiMmJm ZThkZWVhIF0KClRoaXMgZXNzZW50aWFsbHkgcmV2ZXJ0cyBjb21taXQgNzIxMjMwMzI2ODkxICgi dGNwOiBtZDU6IHJlamVjdCBUQ1BfTUQ1U0lHCm9yIFRDUF9NRDVTSUdfRVhUIG9uIGVzdGFibGlz aGVkIHNvY2tldHMiKQoKTWF0aGlldSByZXBvcnRlZCB0aGF0IG1hbnkgdmVuZG9ycyBCR1AgaW1w bGVtZW50YXRpb25zIGNhbgphY3R1YWxseSBzd2l0Y2ggVENQIE1ENSBvbiBlc3RhYmxpc2hlZCBm bG93cy4KClF1b3RpbmcgTWF0aGlldSA6CiAgIEhlcmUgaXMgYSBsaXN0IG9mIGEgZmV3IG5ldHdv cmsgdmVuZG9ycyBhbG9uZyB3aXRoIHRoZWlyIGJlaGF2aW9yCiAgIHdpdGggcmVzcGVjdCB0byBU Q1AgTUQ1OgoKICAgLSBDaXNjbzogQWxsb3dzIGZvciBwYXNzd29yZCB0byBiZSBjaGFuZ2VkLCBi dXQgd2l0aGluIHRoZSBob2xkLWRvd24KICAgICB0aW1lciAofjE4MCBzZWNvbmRzKS4KICAgLSBK dW5pcGVyOiBXaGVuIHBhc3N3b3JkIGlzIGluaXRpYWxseSBzZXQgb24gYWN0aXZlIGNvbm5lY3Rp b24gaXQgd2lsbAogICAgIHJlc2V0LCBidXQgYWZ0ZXIgdGhhdCBhbnkgc3Vic2VxdWVudCBwYXNz d29yZCBjaGFuZ2VzIG5vIG5ldHdvcmsKICAgICByZXNldHMuCiAgIC0gTm9raWE6IE5vIG5vdGVz IG9uIGlmIHRoZXkgZmxhcCB0aGUgdGNwIGNvbm5lY3Rpb24gb3Igbm90LgogICAtIEVyaWNzc29u L1JlZEJhY2s6IEFsbG93cyBmb3IgMiBwYXNzd29yZCAob2xkL25ldykgdG8gY28tZXhpc3QgdW50 aWwKICAgICBib3RoIHNpZGVzIGFyZSBvayB3aXRoIG5ldyBwYXNzd29yZHMuCiAgIC0gTWV0YS1T d2l0Y2g6IEV4cGVjdHMgdGhlIHBhc3N3b3JkIHRvIGJlIHNldCBiZWZvcmUgYSBjb25uZWN0aW9u IGlzCiAgICAgYXR0ZW1wdGVkLCBidXQgbm8gZnVydGhlciBpbmZvIG9uIHdoZXRoZXIgdGhleSBy ZXNldCB0aGUgVENQCiAgICAgY29ubmVjdGlvbiBvbiBhIGNoYW5nZS4KICAgLSBBdmF5YTogRGlz YWJsZSB0aGUgbmVpZ2hib3IsIHRoZW4gc2V0IHBhc3N3b3JkLCB0aGVuIHJlLWVuYWJsZS4KICAg LSBaZWJvczogV291bGQgbm9ybWFsbHkgYWxsb3cgdGhlIGNoYW5nZSB3aGVuIHNvY2tldCBjb25u ZWN0ZWQuCgpXZSBjYW4gcmV2ZXJ0IG15IHByaW9yIGNoYW5nZSBiZWNhdXNlIGNvbW1pdCA5NDI0 ZTJlN2FkOTMgKCJ0Y3A6IG1kNTogZml4IHBvdGVudGlhbApvdmVyZXN0aW1hdGlvbiBvZiBUQ1Ag b3B0aW9uIHNwYWNlIikgcmVtb3ZlZCB0aGUgbGVhayBvZiA0IGtlcm5lbCBieXRlcyB0bwp0aGUg d2lyZSB0aGF0IHdhcyB0aGUgbWFpbiByZWFzb24gZm9yIG15IHBhdGNoLgoKV2hpbGUgZG9pbmcg bXkgaW52ZXN0aWdhdGlvbnMsIEkgZm91bmQgYSBidWcgd2hlbiBhIE1ENSBrZXkgaXMgY2hhbmdl ZCwgbGVhZGluZwp0byB0aGVzZSBjb21taXRzIHRoYXQgc3RhYmxlIHRlYW1zIHdhbnQgdG8gY29u c2lkZXIgYmVmb3JlIGJhY2twb3J0aW5nIHRoaXMgcmV2ZXJ0IDoKCiBDb21taXQgNmEyZmViZWMz MzhkICgidGNwOiBtZDU6IGFkZCBtaXNzaW5nIG1lbW9yeSBiYXJyaWVycyBpbiB0Y3BfbWQ1X2Rv X2FkZCgpL3RjcF9tZDVfaGFzaF9rZXkoKSIpCiBDb21taXQgZTZjZWQ4MzFlZjExICgidGNwOiBt ZDU6IHJlZmluZSB0Y3BfbWQ1X2RvX2FkZCgpL3RjcF9tZDVfaGFzaF9rZXkoKSBiYXJyaWVycyIp CgpGaXhlczogNzIxMjMwMzI2ODkxICJ0Y3A6IG1kNTogcmVqZWN0IFRDUF9NRDVTSUcgb3IgVENQ X01ENVNJR19FWFQgb24gZXN0YWJsaXNoZWQgc29ja2V0cyIKU2lnbmVkLW9mZi1ieTogRXJpYyBE dW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpSZXBvcnRlZC1ieTogTWF0aGlldSBEZXNub3ll cnMgPG1hdGhpZXUuZGVzbm95ZXJzQGVmZmljaW9zLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3RjcC5jIHwgNSAr LS0tLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCA0IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL25ldC9pcHY0L3RjcC5jIGIvbmV0L2lwdjQvdGNwLmMKaW5kZXggYTNhMmI2ZGYy ZWUyLi44NDA5MDExNTQyMTAgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcC5jCisrKyBiL25ldC9p cHY0L3RjcC5jCkBAIC0zMDg4LDEwICszMDg4LDcgQEAgc3RhdGljIGludCBkb190Y3Bfc2V0c29j a29wdChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZXZlbCwKICNpZmRlZiBDT05GSUdfVENQX01ENVNJ RwogCWNhc2UgVENQX01ENVNJRzoKIAljYXNlIFRDUF9NRDVTSUdfRVhUOgotCQlpZiAoKDEgPDwg c2stPnNrX3N0YXRlKSAmIChUQ1BGX0NMT1NFIHwgVENQRl9MSVNURU4pKQotCQkJZXJyID0gdHAt PmFmX3NwZWNpZmljLT5tZDVfcGFyc2Uoc2ssIG9wdG5hbWUsIG9wdHZhbCwgb3B0bGVuKTsKLQkJ ZWxzZQotCQkJZXJyID0gLUVJTlZBTDsKKwkJZXJyID0gdHAtPmFmX3NwZWNpZmljLT5tZDVfcGFy c2Uoc2ssIG9wdG5hbWUsIG9wdHZhbCwgb3B0bGVuKTsKIAkJYnJlYWs7CiAjZW5kaWYKIAljYXNl IFRDUF9VU0VSX1RJTUVPVVQ6Ci0tIAoyLjI2LjIKCgpGcm9tIDYyZGZkM2FhMGM5YTUyOGVjYjUy YTZjZjQ1YWI1ZmJmNDVlMDg2NjggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENvbmcg V2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpEYXRlOiBUaHUsIDIgSnVsIDIwMjAgMTE6 NTI6NTYgLTA3MDAKU3ViamVjdDogW1BBVENIIDIzLzI5XSBjZ3JvdXA6IGZpeCBjZ3JvdXBfc2tf YWxsb2MoKSBmb3Igc2tfY2xvbmVfbG9jaygpCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlw ZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4 Yml0CgpbIFVwc3RyZWFtIGNvbW1pdCBhZDBmNzVlNWY1N2NjYmNlZWMxMzI3NGUxZTI0MmYyYjVh NjM5N2VkIF0KCldoZW4gd2UgY2xvbmUgYSBzb2NrZXQgaW4gc2tfY2xvbmVfbG9jaygpLCBpdHMg c2tfY2dycF9kYXRhIGlzCmNvcGllZCwgc28gdGhlIGNncm91cCByZWZjbnQgbXVzdCBiZSB0YWtl biB0b28uIEFuZCwgdW5saWtlIHRoZQpza19hbGxvYygpIHBhdGgsIHNvY2tfdXBkYXRlX25ldHBy aW9pZHgoKSBpcyBub3QgY2FsbGVkIGhlcmUuClRoZXJlZm9yZSwgaXQgaXMgc2FmZSBhbmQgbmVj ZXNzYXJ5IHRvIGdyYWIgdGhlIGNncm91cCByZWZjbnQKZXZlbiB3aGVuIGNncm91cF9za19hbGxv YyBpcyBkaXNhYmxlZC4KCnNrX2Nsb25lX2xvY2soKSBpcyBpbiBCSCBjb250ZXh0IGFueXdheSwg dGhlIGluX2ludGVycnVwdCgpCndvdWxkIHRlcm1pbmF0ZSB0aGlzIGZ1bmN0aW9uIGlmIGNhbGxl ZCB0aGVyZS4gQW5kIGZvciBza19hbGxvYygpCnNrY2QtPnZhbCBpcyBhbHdheXMgemVyby4gU28g aXQncyBzYWZlIHRvIGZhY3RvciBvdXQgdGhlIGNvZGUKdG8gbWFrZSBpdCBtb3JlIHJlYWRhYmxl LgoKVGhlIGdsb2JhbCB2YXJpYWJsZSAnY2dyb3VwX3NrX2FsbG9jX2Rpc2FibGVkJyBpcyB1c2Vk IHRvIGRldGVybWluZQp3aGV0aGVyIHRvIHRha2UgdGhlc2UgcmVmZXJlbmNlIGNvdW50cy4gSXQg aXMgaW1wb3NzaWJsZSB0byBtYWtlCnRoZSByZWZlcmVuY2UgY291bnRpbmcgY29ycmVjdCB1bmxl c3Mgd2Ugc2F2ZSB0aGlzIGJpdCBvZiBpbmZvcm1hdGlvbgppbiBza2NkLT52YWwuIFNvLCBhZGQg YSBuZXcgYml0IHRoZXJlIHRvIHJlY29yZCB3aGV0aGVyIHRoZSBzb2NrZXQKaGFzIGFscmVhZHkg dGFrZW4gdGhlIHJlZmVyZW5jZSBjb3VudHMuIFRoaXMgb2J2aW91c2x5IHJlbGllcyBvbgprbWFs bG9jKCkgdG8gYWxpZ24gY2dyb3VwIHBvaW50ZXJzIHRvIGF0IGxlYXN0IDQgYnl0ZXMsCkFSQ0hf S01BTExPQ19NSU5BTElHTiBpcyBjZXJ0YWlubHkgbGFyZ2VyIHRoYW4gdGhhdC4KClRoaXMgYnVn IHNlZW1zIHRvIGJlIGludHJvZHVjZWQgc2luY2UgdGhlIGJlZ2lubmluZywgY29tbWl0CmQ5Nzlh MzlkNzI0MiAoImNncm91cDogZHVwbGljYXRlIGNncm91cCByZWZlcmVuY2Ugd2hlbiBjbG9uaW5n IHNvY2tldHMiKQp0cmllZCB0byBmaXggaXQgYnV0IG5vdCBjb21wZWxldGVseS4gSXQgc2VlbXMg bm90IGVhc3kgdG8gdHJpZ2dlciB1bnRpbAp0aGUgcmVjZW50IGNvbW1pdCAwOTBlMjhiMjI5YWYK KCJuZXRwcmlvX2Nncm91cDogRml4IHVubGltaXRlZCBtZW1vcnkgbGVhayBvZiB2MiBjZ3JvdXBz Iikgd2FzIG1lcmdlZC4KCkZpeGVzOiBiZDEwNjBhMWQ2NzEgKCJzb2NrLCBjZ3JvdXA6IGFkZCBz b2NrLT5za19jZ3JvdXAiKQpSZXBvcnRlZC1ieTogQ2FtZXJvbiBCZXJrZW5wYXMgPGNhbUBuZW8t emVvbi5kZT4KUmVwb3J0ZWQtYnk6IFBldGVyIEdlaXMgPHBnd2lwZW91dEBnbWFpbC5jb20+ClJl cG9ydGVkLWJ5OiBMdSBGZW5ncWkgPGx1ZnEuZm5zdEBjbi5mdWppdHN1LmNvbT4KUmVwb3J0ZWQt Ynk6IERhbmnDq2wgU29uY2sgPGRzb25jazkyQGdtYWlsLmNvbT4KUmVwb3J0ZWQtYnk6IFpoYW5n IFFpYW5nIDxxaWFuZy56aGFuZ0B3aW5kcml2ZXIuY29tPgpUZXN0ZWQtYnk6IENhbWVyb24gQmVy a2VucGFzIDxjYW1AbmVvLXplb24uZGU+ClRlc3RlZC1ieTogUGV0ZXIgR2VpcyA8cGd3aXBlb3V0 QGdtYWlsLmNvbT4KVGVzdGVkLWJ5OiBUaG9tYXMgTGFtcHJlY2h0IDx0LmxhbXByZWNodEBwcm94 bW94LmNvbT4KQ2M6IERhbmllbCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+CkNjOiBa ZWZhbiBMaSA8bGl6ZWZhbkBodWF3ZWkuY29tPgpDYzogVGVqdW4gSGVvIDx0akBrZXJuZWwub3Jn PgpDYzogUm9tYW4gR3VzaGNoaW4gPGd1cm9AZmIuY29tPgpTaWduZWQtb2ZmLWJ5OiBDb25nIFdh bmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbGludXgvY2dyb3VwLWRlZnMu aCB8ICA2ICsrKystLQogaW5jbHVkZS9saW51eC9jZ3JvdXAuaCAgICAgIHwgIDQgKysrLQoga2Vy bmVsL2Nncm91cC9jZ3JvdXAuYyAgICAgIHwgMzEgKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0tLQogbmV0L2NvcmUvc29jay5jICAgICAgICAgICAgIHwgIDIgKy0KIDQgZmlsZXMgY2hhbmdl ZCwgMjcgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9saW51eC9jZ3JvdXAtZGVmcy5oIGIvaW5jbHVkZS9saW51eC9jZ3JvdXAtZGVmcy5oCmluZGV4 IDQzMGUyMTllM2FiYS4uMmViYWNiN2VmNTAxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2Nn cm91cC1kZWZzLmgKKysrIGIvaW5jbHVkZS9saW51eC9jZ3JvdXAtZGVmcy5oCkBAIC03OTcsNyAr Nzk3LDggQEAgc3RydWN0IHNvY2tfY2dyb3VwX2RhdGEgewogCXVuaW9uIHsKICNpZmRlZiBfX0xJ VFRMRV9FTkRJQU4KIAkJc3RydWN0IHsKLQkJCXU4CWlzX2RhdGE7CisJCQl1OAlpc19kYXRhIDog MTsKKwkJCXU4CW5vX3JlZmNudCA6IDE7CiAJCQl1OAlwYWRkaW5nOwogCQkJdTE2CXByaW9pZHg7 CiAJCQl1MzIJY2xhc3NpZDsKQEAgLTgwNyw3ICs4MDgsOCBAQCBzdHJ1Y3Qgc29ja19jZ3JvdXBf ZGF0YSB7CiAJCQl1MzIJY2xhc3NpZDsKIAkJCXUxNglwcmlvaWR4OwogCQkJdTgJcGFkZGluZzsK LQkJCXU4CWlzX2RhdGE7CisJCQl1OAlub19yZWZjbnQgOiAxOworCQkJdTgJaXNfZGF0YSA6IDE7 CiAJCX0gX19wYWNrZWQ7CiAjZW5kaWYKIAkJdTY0CQl2YWw7CmRpZmYgLS1naXQgYS9pbmNsdWRl L2xpbnV4L2Nncm91cC5oIGIvaW5jbHVkZS9saW51eC9jZ3JvdXAuaAppbmRleCA1NzU3NzA3NWQy MDQuLjIwMjg1MjM4M2FlOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9jZ3JvdXAuaAorKysg Yi9pbmNsdWRlL2xpbnV4L2Nncm91cC5oCkBAIC04MjIsNiArODIyLDcgQEAgZXh0ZXJuIHNwaW5s b2NrX3QgY2dyb3VwX3NrX3VwZGF0ZV9sb2NrOwogCiB2b2lkIGNncm91cF9za19hbGxvY19kaXNh YmxlKHZvaWQpOwogdm9pZCBjZ3JvdXBfc2tfYWxsb2Moc3RydWN0IHNvY2tfY2dyb3VwX2RhdGEg KnNrY2QpOwordm9pZCBjZ3JvdXBfc2tfY2xvbmUoc3RydWN0IHNvY2tfY2dyb3VwX2RhdGEgKnNr Y2QpOwogdm9pZCBjZ3JvdXBfc2tfZnJlZShzdHJ1Y3Qgc29ja19jZ3JvdXBfZGF0YSAqc2tjZCk7 CiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IGNncm91cCAqc29ja19jZ3JvdXBfcHRyKHN0cnVjdCBz b2NrX2Nncm91cF9kYXRhICpza2NkKQpAQCAtODM1LDcgKzgzNiw3IEBAIHN0YXRpYyBpbmxpbmUg c3RydWN0IGNncm91cCAqc29ja19jZ3JvdXBfcHRyKHN0cnVjdCBzb2NrX2Nncm91cF9kYXRhICpz a2NkKQogCSAqLwogCXYgPSBSRUFEX09OQ0Uoc2tjZC0+dmFsKTsKIAotCWlmICh2ICYgMSkKKwlp ZiAodiAmIDMpCiAJCXJldHVybiAmY2dycF9kZmxfcm9vdC5jZ3JwOwogCiAJcmV0dXJuIChzdHJ1 Y3QgY2dyb3VwICopKHVuc2lnbmVkIGxvbmcpdiA/OiAmY2dycF9kZmxfcm9vdC5jZ3JwOwpAQCAt ODQ3LDYgKzg0OCw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGNncm91cCAqc29ja19jZ3JvdXBf cHRyKHN0cnVjdCBzb2NrX2Nncm91cF9kYXRhICpza2NkKQogI2Vsc2UJLyogQ09ORklHX0NHUk9V UF9EQVRBICovCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBjZ3JvdXBfc2tfYWxsb2Moc3RydWN0IHNv Y2tfY2dyb3VwX2RhdGEgKnNrY2QpIHt9CitzdGF0aWMgaW5saW5lIHZvaWQgY2dyb3VwX3NrX2Ns b25lKHN0cnVjdCBzb2NrX2Nncm91cF9kYXRhICpza2NkKSB7fQogc3RhdGljIGlubGluZSB2b2lk IGNncm91cF9za19mcmVlKHN0cnVjdCBzb2NrX2Nncm91cF9kYXRhICpza2NkKSB7fQogCiAjZW5k aWYJLyogQ09ORklHX0NHUk9VUF9EQVRBICovCmRpZmYgLS1naXQgYS9rZXJuZWwvY2dyb3VwL2Nn cm91cC5jIGIva2VybmVsL2Nncm91cC9jZ3JvdXAuYwppbmRleCA3YzllOTc1NTNhMDAuLjM1ZmFm MDgyYTcwOSAxMDA2NDQKLS0tIGEva2VybmVsL2Nncm91cC9jZ3JvdXAuYworKysgYi9rZXJuZWwv Y2dyb3VwL2Nncm91cC5jCkBAIC02Mzc5LDE4ICs2Mzc5LDggQEAgdm9pZCBjZ3JvdXBfc2tfYWxs b2NfZGlzYWJsZSh2b2lkKQogCiB2b2lkIGNncm91cF9za19hbGxvYyhzdHJ1Y3Qgc29ja19jZ3Jv dXBfZGF0YSAqc2tjZCkKIHsKLQlpZiAoY2dyb3VwX3NrX2FsbG9jX2Rpc2FibGVkKQotCQlyZXR1 cm47Ci0KLQkvKiBTb2NrZXQgY2xvbmUgcGF0aCAqLwotCWlmIChza2NkLT52YWwpIHsKLQkJLyoK LQkJICogV2UgbWlnaHQgYmUgY2xvbmluZyBhIHNvY2tldCB3aGljaCBpcyBsZWZ0IGluIGFuIGVt cHR5Ci0JCSAqIGNncm91cCBhbmQgdGhlIGNncm91cCBtaWdodCBoYXZlIGFscmVhZHkgYmVlbiBy bWRpcidkLgotCQkgKiBEb24ndCB1c2UgY2dyb3VwX2dldF9saXZlKCkuCi0JCSAqLwotCQljZ3Jv dXBfZ2V0KHNvY2tfY2dyb3VwX3B0cihza2NkKSk7Ci0JCWNncm91cF9icGZfZ2V0KHNvY2tfY2dy b3VwX3B0cihza2NkKSk7CisJaWYgKGNncm91cF9za19hbGxvY19kaXNhYmxlZCkgeworCQlza2Nk LT5ub19yZWZjbnQgPSAxOwogCQlyZXR1cm47CiAJfQogCkBAIC02NDE1LDEwICs2NDA1LDI3IEBA IHZvaWQgY2dyb3VwX3NrX2FsbG9jKHN0cnVjdCBzb2NrX2Nncm91cF9kYXRhICpza2NkKQogCXJj dV9yZWFkX3VubG9jaygpOwogfQogCit2b2lkIGNncm91cF9za19jbG9uZShzdHJ1Y3Qgc29ja19j Z3JvdXBfZGF0YSAqc2tjZCkKK3sKKwlpZiAoc2tjZC0+dmFsKSB7CisJCWlmIChza2NkLT5ub19y ZWZjbnQpCisJCQlyZXR1cm47CisJCS8qCisJCSAqIFdlIG1pZ2h0IGJlIGNsb25pbmcgYSBzb2Nr ZXQgd2hpY2ggaXMgbGVmdCBpbiBhbiBlbXB0eQorCQkgKiBjZ3JvdXAgYW5kIHRoZSBjZ3JvdXAg bWlnaHQgaGF2ZSBhbHJlYWR5IGJlZW4gcm1kaXInZC4KKwkJICogRG9uJ3QgdXNlIGNncm91cF9n ZXRfbGl2ZSgpLgorCQkgKi8KKwkJY2dyb3VwX2dldChzb2NrX2Nncm91cF9wdHIoc2tjZCkpOwor CQljZ3JvdXBfYnBmX2dldChzb2NrX2Nncm91cF9wdHIoc2tjZCkpOworCX0KK30KKwogdm9pZCBj Z3JvdXBfc2tfZnJlZShzdHJ1Y3Qgc29ja19jZ3JvdXBfZGF0YSAqc2tjZCkKIHsKIAlzdHJ1Y3Qg Y2dyb3VwICpjZ3JwID0gc29ja19jZ3JvdXBfcHRyKHNrY2QpOwogCisJaWYgKHNrY2QtPm5vX3Jl ZmNudCkKKwkJcmV0dXJuOwogCWNncm91cF9icGZfcHV0KGNncnApOwogCWNncm91cF9wdXQoY2dy cCk7CiB9CmRpZmYgLS1naXQgYS9uZXQvY29yZS9zb2NrLmMgYi9uZXQvY29yZS9zb2NrLmMKaW5k ZXggMDc4NzkxYTY2NDlhLi4zM2EyMzI5NzQzNzQgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL3NvY2su YworKysgYi9uZXQvY29yZS9zb2NrLmMKQEAgLTE4MzcsNyArMTgzNyw3IEBAIHN0cnVjdCBzb2Nr ICpza19jbG9uZV9sb2NrKGNvbnN0IHN0cnVjdCBzb2NrICpzaywgY29uc3QgZ2ZwX3QgcHJpb3Jp dHkpCiAJCS8qIHNrLT5za19tZW1jZyB3aWxsIGJlIHBvcHVsYXRlZCBhdCBhY2NlcHQoKSB0aW1l ICovCiAJCW5ld3NrLT5za19tZW1jZyA9IE5VTEw7CiAKLQkJY2dyb3VwX3NrX2FsbG9jKCZuZXdz ay0+c2tfY2dycF9kYXRhKTsKKwkJY2dyb3VwX3NrX2Nsb25lKCZuZXdzay0+c2tfY2dycF9kYXRh KTsKIAogCQlyY3VfcmVhZF9sb2NrKCk7CiAJCWZpbHRlciA9IHJjdV9kZXJlZmVyZW5jZShzay0+ c2tfZmlsdGVyKTsKLS0gCjIuMjYuMgoKCkZyb20gMmYwYmU2MDU4ZjNlZWVjNDZiNGUyNzUwYTFh OGU1M2JlZjFjZmI3MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ29uZyBXYW5nIDx4 aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+CkRhdGU6IFRodSwgOSBKdWwgMjAyMCAxNjoyODo0NCAt MDcwMApTdWJqZWN0OiBbUEFUQ0ggMjQvMjldIGNncm91cDogRml4IHNvY2tfY2dyb3VwX2RhdGEg b24gYmlnLWVuZGlhbi4KClsgVXBzdHJlYW0gY29tbWl0IDE0YjAzMmI4ZjhmY2UwM2E1NDZkY2Yz NjU0NTRiZWM4YzRhNThkN2QgXQoKSW4gb3JkZXIgZm9yIG5vX3JlZmNudCBhbmQgaXNfZGF0YSB0 byBiZSB0aGUgbG93ZXN0IG9yZGVyIHR3bwpiaXRzIGluIHRoZSAndmFsJyB3ZSBoYXZlIHRvIHBh ZCBvdXQgdGhlIGJpdGZpZWxkIG9mIHRoZSB1OC4KCkZpeGVzOiBhZDBmNzVlNWY1N2MgKCJjZ3Jv dXA6IGZpeCBjZ3JvdXBfc2tfYWxsb2MoKSBmb3Igc2tfY2xvbmVfbG9jaygpIikKUmVwb3J0ZWQt Ynk6IEd1ZW50ZXIgUm9lY2sgPGxpbnV4QHJvZWNrLXVzLm5ldD4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbGludXgvY2dy b3VwLWRlZnMuaCB8IDIgKysKIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKCmRpZmYg LS1naXQgYS9pbmNsdWRlL2xpbnV4L2Nncm91cC1kZWZzLmggYi9pbmNsdWRlL2xpbnV4L2Nncm91 cC1kZWZzLmgKaW5kZXggMmViYWNiN2VmNTAxLi4xY2NmYTM3NzllMTggMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvbGludXgvY2dyb3VwLWRlZnMuaAorKysgYi9pbmNsdWRlL2xpbnV4L2Nncm91cC1kZWZz LmgKQEAgLTc5OSw2ICs3OTksNyBAQCBzdHJ1Y3Qgc29ja19jZ3JvdXBfZGF0YSB7CiAJCXN0cnVj dCB7CiAJCQl1OAlpc19kYXRhIDogMTsKIAkJCXU4CW5vX3JlZmNudCA6IDE7CisJCQl1OAl1bnVz ZWQgOiA2OwogCQkJdTgJcGFkZGluZzsKIAkJCXUxNglwcmlvaWR4OwogCQkJdTMyCWNsYXNzaWQ7 CkBAIC04MDgsNiArODA5LDcgQEAgc3RydWN0IHNvY2tfY2dyb3VwX2RhdGEgewogCQkJdTMyCWNs YXNzaWQ7CiAJCQl1MTYJcHJpb2lkeDsKIAkJCXU4CXBhZGRpbmc7CisJCQl1OAl1bnVzZWQgOiA2 OwogCQkJdTgJbm9fcmVmY250IDogMTsKIAkJCXU4CWlzX2RhdGEgOiAxOwogCQl9IF9fcGFja2Vk OwotLSAKMi4yNi4yCgoKRnJvbSAyZWQwYzIzNmY5OTA3OWIxYTM2NDA1NDk3YTk2MTIwZjg5YTE2 YWVjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBJZG8gU2NoaW1tZWwgPGlkb3NjaEBt ZWxsYW5veC5jb20+CkRhdGU6IEZyaSwgMTAgSnVsIDIwMjAgMTY6NDE6MzggKzAzMDAKU3ViamVj dDogW1BBVENIIDI1LzI5XSBtbHhzdzogc3BlY3RydW1fcm91dGVyOiBSZW1vdmUgaW5hcHByb3By aWF0ZSB1c2FnZSBvZgogV0FSTl9PTigpCgpbIFVwc3RyZWFtIGNvbW1pdCBkOWQ1NDIwMjczOTk3 NjY0YTFjMDkxNTFjYTg2YWM5OTNmMmY4OWMxIF0KCldlIHNob3VsZCBub3QgdHJpZ2dlciBhIHdh cm5pbmcgd2hlbiBhIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWxzLiBSZW1vdmUKdGhlIFdBUk5fT04o KS4KClRoZSB3YXJuaW5nIGlzIGNvbnN0YW50bHkgdHJpZ2dlcmVkIGJ5IHN5emthbGxlciB3aGVu IGl0IGlzIGluamVjdGluZwpmYXVsdHM6CgpbIDIyMzAuNzU4NjY0XSBGQVVMVF9JTkpFQ1RJT046 IGZvcmNpbmcgYSBmYWlsdXJlLgpbIDIyMzAuNzU4NjY0XSBuYW1lIGZhaWxzbGFiLCBpbnRlcnZh bCAxLCBwcm9iYWJpbGl0eSAwLCBzcGFjZSAwLCB0aW1lcyAwClsgMjIzMC43NjIzMjldIENQVTog MyBQSUQ6IDE0MDcgQ29tbTogc3l6LWV4ZWN1dG9yLjAgTm90IHRhaW50ZWQgNS44LjAtcmMyKyAj MjgKLi4uClsgMjIzMC44OTgxNzVdIFdBUk5JTkc6IENQVTogMyBQSUQ6IDE0MDcgYXQgZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW1fcm91dGVyLmM6NjI2NSBtbHhz d19zcF9yb3V0ZXJfZmliX2V2ZW50KzB4ZmFkLzB4MTNlMApbIDIyMzAuODk4MTc5XSBLZXJuZWwg cGFuaWMgLSBub3Qgc3luY2luZzogcGFuaWNfb25fd2FybiBzZXQgLi4uClsgMjIzMC44OTgxODNd IENQVTogMyBQSUQ6IDE0MDcgQ29tbTogc3l6LWV4ZWN1dG9yLjAgTm90IHRhaW50ZWQgNS44LjAt cmMyKyAjMjgKWyAyMjMwLjg5ODE5MF0gSGFyZHdhcmUgbmFtZTogUUVNVSBTdGFuZGFyZCBQQyAo aTQ0MEZYICsgUElJWCwgMTk5NiksIEJJT1MgcmVsLTEuMTIuMS0wLWdhNWNhYjU4ZTlhM2YtcHJl YnVpbHQucWVtdS5vcmcgMDQvMDEvMjAxNAoKRml4ZXM6IDMwNTcyMjRlMDE0YyAoIm1seHN3OiBz cGVjdHJ1bV9yb3V0ZXI6IEltcGxlbWVudCBGSUIgb2ZmbG9hZCBpbiBkZWZlcnJlZCB3b3JrIikK U2lnbmVkLW9mZi1ieTogSWRvIFNjaGltbWVsIDxpZG9zY2hAbWVsbGFub3guY29tPgpSZXZpZXdl ZC1ieTogSmlyaSBQaXJrbyA8amlyaUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9yb3V0ZXIuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2Vk LCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtX3JvdXRlci5jIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW1fcm91dGVyLmMKaW5kZXggZWZkZjhjYjUx MTRjLi4yZjAxM2ZjNzE2OTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seHN3L3NwZWN0cnVtX3JvdXRlci5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seHN3L3NwZWN0cnVtX3JvdXRlci5jCkBAIC02Mjg3LDcgKzYyODcsNyBAQCBzdGF0 aWMgaW50IG1seHN3X3NwX3JvdXRlcl9maWJfZXZlbnQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpu YiwKIAl9CiAKIAlmaWJfd29yayA9IGt6YWxsb2Moc2l6ZW9mKCpmaWJfd29yayksIEdGUF9BVE9N SUMpOwotCWlmIChXQVJOX09OKCFmaWJfd29yaykpCisJaWYgKCFmaWJfd29yaykKIAkJcmV0dXJu IE5PVElGWV9CQUQ7CiAKIAlmaWJfd29yay0+bWx4c3dfc3AgPSByb3V0ZXItPm1seHN3X3NwOwot LSAKMi4yNi4yCgoKRnJvbSBjMzhkNjU3NjBhNzRkZjU5ZWRkYTIzYjljMDM4NmJlYjVjODQzMDMw IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBJZG8gU2NoaW1tZWwgPGlkb3NjaEBtZWxs YW5veC5jb20+CkRhdGU6IEZyaSwgMTAgSnVsIDIwMjAgMTY6NDE6MzkgKzAzMDAKU3ViamVjdDog W1BBVENIIDI2LzI5XSBtbHhzdzogcGNpOiBGaXggdXNlLWFmdGVyLWZyZWUgaW4gY2FzZSBvZiBm YWlsZWQKIGRldmxpbmsgcmVsb2FkCgpbIFVwc3RyZWFtIGNvbW1pdCBjNDMxN2IxMTY3NWI5OWFm NjY0MTY2MmViY2JkM2M2MDEwNjAwZTY0IF0KCkluIGNhc2UgZGV2bGluayByZWxvYWQgZmFpbGVk LCBpdCBpcyBwb3NzaWJsZSB0byB0cmlnZ2VyIGEKdXNlLWFmdGVyLWZyZWUgd2hlbiBxdWVyeWlu ZyB0aGUga2VybmVsIGZvciBkZXZpY2UgaW5mbyB2aWEgJ2RldmxpbmsgZGV2CmluZm8nIFsxXS4K ClRoaXMgaGFwcGVucyBiZWNhdXNlIGFzIHBhcnQgb2YgdGhlIHJlbG9hZCBlcnJvciBwYXRoIHRo ZSBQQ0kgY29tbWFuZAppbnRlcmZhY2UgaXMgZGUtaW5pdGlhbGl6ZWQgYW5kIGl0cyBtYWlsYm94 ZXMgYXJlIGZyZWVkLiBXaGVuIHRoZQpkZXZsaW5rICctPmluZm9fZ2V0KCknIGNhbGxiYWNrIGlz IGludm9rZWQgdGhlIGRldmljZSBpcyBxdWVyaWVkIHZpYSB0aGUKY29tbWFuZCBpbnRlcmZhY2Ug YW5kIHRoZSBmcmVlZCBtYWlsYm94ZXMgYXJlIGFjY2Vzc2VkLgoKRml4IHRoaXMgYnkgaW5pdGlh bGl6aW5nIHRoZSBjb21tYW5kIGludGVyZmFjZSBvbmNlIGR1cmluZyBwcm9iZSBhbmQgbm90CmR1 cmluZyBldmVyeSByZWxvYWQuCgpUaGlzIGlzIGNvbnNpc3RlbnQgd2l0aCB0aGUgb3RoZXIgYnVz IHVzZWQgYnkgbWx4c3cgKGkuZS4sICdtbHhzd19pMmMnKQphbmQgYWxzbyBhbGxvd3MgdXNlciBz cGFjZSB0byBxdWVyeSB0aGUgcnVubmluZyBmaXJtd2FyZSB2ZXJzaW9uIChmb3IKZXhhbXBsZSkg ZnJvbSB0aGUgZGV2aWNlIGFmdGVyIGEgZmFpbGVkIHJlbG9hZC4KClsxXQpCVUc6IEtBU0FOOiB1 c2UtYWZ0ZXItZnJlZSBpbiBtZW1jcHkgaW5jbHVkZS9saW51eC9zdHJpbmcuaDo0MDYgW2lubGlu ZV0KQlVHOiBLQVNBTjogdXNlLWFmdGVyLWZyZWUgaW4gbWx4c3dfcGNpX2NtZF9leGVjKzB4MTc3 LzB4YTYwIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3BjaS5jOjE2NzUKV3Jp dGUgb2Ygc2l6ZSA0MDk2IGF0IGFkZHIgZmZmZjg4ODEwYWUzMjAwMCBieSB0YXNrIHN5ei1leGVj dXRvci4xLzIzNTUKCkNQVTogMSBQSUQ6IDIzNTUgQ29tbTogc3l6LWV4ZWN1dG9yLjEgTm90IHRh aW50ZWQgNS44LjAtcmMyKyAjMjkKSGFyZHdhcmUgbmFtZTogUUVNVSBTdGFuZGFyZCBQQyAoaTQ0 MEZYICsgUElJWCwgMTk5NiksIEJJT1MgcmVsLTEuMTIuMS0wLWdhNWNhYjU4ZTlhM2YtcHJlYnVp bHQucWVtdS5vcmcgMDQvMDEvMjAxNApDYWxsIFRyYWNlOgogX19kdW1wX3N0YWNrIGxpYi9kdW1w X3N0YWNrLmM6NzcgW2lubGluZV0KIGR1bXBfc3RhY2srMHhmNi8weDE2ZSBsaWIvZHVtcF9zdGFj ay5jOjExOAogcHJpbnRfYWRkcmVzc19kZXNjcmlwdGlvbi5jb25zdHByb3AuMCsweDFjLzB4MjUw IG1tL2thc2FuL3JlcG9ydC5jOjM4MwogX19rYXNhbl9yZXBvcnQgbW0va2FzYW4vcmVwb3J0LmM6 NTEzIFtpbmxpbmVdCiBrYXNhbl9yZXBvcnQuY29sZCsweDFmLzB4MzcgbW0va2FzYW4vcmVwb3J0 LmM6NTMwCiBjaGVja19tZW1vcnlfcmVnaW9uX2lubGluZSBtbS9rYXNhbi9nZW5lcmljLmM6MTg2 IFtpbmxpbmVdCiBjaGVja19tZW1vcnlfcmVnaW9uKzB4MTRlLzB4MWIwIG1tL2thc2FuL2dlbmVy aWMuYzoxOTIKIG1lbWNweSsweDM5LzB4NjAgbW0va2FzYW4vY29tbW9uLmM6MTA2CiBtZW1jcHkg aW5jbHVkZS9saW51eC9zdHJpbmcuaDo0MDYgW2lubGluZV0KIG1seHN3X3BjaV9jbWRfZXhlYysw eDE3Ny8weGE2MCBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9wY2kuYzoxNjc1 CiBtbHhzd19jbWRfZXhlYysweDI0OS8weDU1MCBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHhzdy9jb3JlLmM6MjMzNQogbWx4c3dfY21kX2FjY2Vzc19yZWcgZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4c3cvY21kLmg6ODU5IFtpbmxpbmVdCiBtbHhzd19jb3JlX3JlZ19h Y2Nlc3NfY21kIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L2NvcmUuYzoxOTM4 IFtpbmxpbmVdCiBtbHhzd19jb3JlX3JlZ19hY2Nlc3MrMHgyZjYvMHg1NDAgZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvY29yZS5jOjE5ODUKIG1seHN3X3JlZ19xdWVyeSBkcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9jb3JlLmM6MjAwMCBbaW5saW5lXQogbWx4 c3dfZGV2bGlua19pbmZvX2dldCsweDE3Zi8weDZlMCBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHhzdy9jb3JlLmM6MTA5MAogZGV2bGlua19ubF9pbmZvX2ZpbGwuY29uc3Rwcm9wLjAr MHgxM2MvMHgyZDAgbmV0L2NvcmUvZGV2bGluay5jOjQ1ODgKIGRldmxpbmtfbmxfY21kX2luZm9f Z2V0X2R1bXBpdCsweDI0Ni8weDQ2MCBuZXQvY29yZS9kZXZsaW5rLmM6NDY0OAogZ2VubF9sb2Nr X2R1bXBpdCsweDg1LzB4YzAgbmV0L25ldGxpbmsvZ2VuZXRsaW5rLmM6NTc1CiBuZXRsaW5rX2R1 bXArMHg1MTUvMHhlNTAgbmV0L25ldGxpbmsvYWZfbmV0bGluay5jOjIyNDUKIF9fbmV0bGlua19k dW1wX3N0YXJ0KzB4NTNkLzB4ODMwIG5ldC9uZXRsaW5rL2FmX25ldGxpbmsuYzoyMzUzCiBnZW5s X2ZhbWlseV9yY3ZfbXNnX2R1bXBpdC5pc3JhLjArMHgyOTYvMHgzMDAgbmV0L25ldGxpbmsvZ2Vu ZXRsaW5rLmM6NjM4CiBnZW5sX2ZhbWlseV9yY3ZfbXNnIG5ldC9uZXRsaW5rL2dlbmV0bGluay5j OjczMyBbaW5saW5lXQogZ2VubF9yY3ZfbXNnKzB4NzhkLzB4OWQwIG5ldC9uZXRsaW5rL2dlbmV0 bGluay5jOjc1MwogbmV0bGlua19yY3Zfc2tiKzB4MTUyLzB4NDQwIG5ldC9uZXRsaW5rL2FmX25l dGxpbmsuYzoyNDY5CiBnZW5sX3JjdisweDI0LzB4NDAgbmV0L25ldGxpbmsvZ2VuZXRsaW5rLmM6 NzY0CiBuZXRsaW5rX3VuaWNhc3Rfa2VybmVsIG5ldC9uZXRsaW5rL2FmX25ldGxpbmsuYzoxMzAz IFtpbmxpbmVdCiBuZXRsaW5rX3VuaWNhc3QrMHg1M2EvMHg3NTAgbmV0L25ldGxpbmsvYWZfbmV0 bGluay5jOjEzMjkKIG5ldGxpbmtfc2VuZG1zZysweDg1MC8weGQ5MCBuZXQvbmV0bGluay9hZl9u ZXRsaW5rLmM6MTkxOAogc29ja19zZW5kbXNnX25vc2VjIG5ldC9zb2NrZXQuYzo2NTIgW2lubGlu ZV0KIHNvY2tfc2VuZG1zZysweDE1MC8weDE5MCBuZXQvc29ja2V0LmM6NjcyCiBfX19fc3lzX3Nl bmRtc2crMHg2ZDgvMHg4NDAgbmV0L3NvY2tldC5jOjIzNjMKIF9fX3N5c19zZW5kbXNnKzB4ZmYv MHgxNzAgbmV0L3NvY2tldC5jOjI0MTcKIF9fc3lzX3NlbmRtc2crMHhlNS8weDFiMCBuZXQvc29j a2V0LmM6MjQ1MAogZG9fc3lzY2FsbF82NCsweDU2LzB4YTAgYXJjaC94ODYvZW50cnkvY29tbW9u LmM6MzU5CiBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0NC8weGE5CgpGaXhlczog YTljODMzNmY2NTQ0ICgibWx4c3c6IGNvcmU6IEFkZCBzdXBwb3J0IGZvciBkZXZsaW5rIGluZm8g Y29tbWFuZCIpClNpZ25lZC1vZmYtYnk6IElkbyBTY2hpbW1lbCA8aWRvc2NoQG1lbGxhbm94LmNv bT4KUmV2aWV3ZWQtYnk6IEppcmkgUGlya28gPGppcmlAbWVsbGFub3guY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvcGNpLmMgfCA1NCArKysrKysrKysrKysrKysrLS0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDM4IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3BjaS5jIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvcGNpLmMKaW5kZXggZjNkMWY5NDEx ZDEwLi5hYTRmZWY3ODkwODQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seHN3L3BjaS5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3 L3BjaS5jCkBAIC0xNDAxLDIzICsxNDAxLDEyIEBAIHN0YXRpYyBpbnQgbWx4c3dfcGNpX2luaXQo dm9pZCAqYnVzX3ByaXYsIHN0cnVjdCBtbHhzd19jb3JlICptbHhzd19jb3JlLAogCXUxNiBudW1f cGFnZXM7CiAJaW50IGVycjsKIAotCW11dGV4X2luaXQoJm1seHN3X3BjaS0+Y21kLmxvY2spOwot CWluaXRfd2FpdHF1ZXVlX2hlYWQoJm1seHN3X3BjaS0+Y21kLndhaXQpOwotCiAJbWx4c3dfcGNp LT5jb3JlID0gbWx4c3dfY29yZTsKIAogCW1ib3ggPSBtbHhzd19jbWRfbWJveF9hbGxvYygpOwog CWlmICghbWJveCkKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQllcnIgPSBtbHhzd19wY2lfbWJveF9h bGxvYyhtbHhzd19wY2ksICZtbHhzd19wY2ktPmNtZC5pbl9tYm94KTsKLQlpZiAoZXJyKQotCQln b3RvIG1ib3hfcHV0OwotCi0JZXJyID0gbWx4c3dfcGNpX21ib3hfYWxsb2MobWx4c3dfcGNpLCAm bWx4c3dfcGNpLT5jbWQub3V0X21ib3gpOwotCWlmIChlcnIpCi0JCWdvdG8gZXJyX291dF9tYm94 X2FsbG9jOwotCiAJZXJyID0gbWx4c3dfcGNpX3N3X3Jlc2V0KG1seHN3X3BjaSwgbWx4c3dfcGNp LT5pZCk7CiAJaWYgKGVycikKIAkJZ290byBlcnJfc3dfcmVzZXQ7CkBAIC0xNTI0LDkgKzE1MTMs NiBAQCBzdGF0aWMgaW50IG1seHN3X3BjaV9pbml0KHZvaWQgKmJ1c19wcml2LCBzdHJ1Y3QgbWx4 c3dfY29yZSAqbWx4c3dfY29yZSwKIAltbHhzd19wY2lfZnJlZV9pcnFfdmVjdG9ycyhtbHhzd19w Y2kpOwogZXJyX2FsbG9jX2lycToKIGVycl9zd19yZXNldDoKLQltbHhzd19wY2lfbWJveF9mcmVl KG1seHN3X3BjaSwgJm1seHN3X3BjaS0+Y21kLm91dF9tYm94KTsKLWVycl9vdXRfbWJveF9hbGxv YzoKLQltbHhzd19wY2lfbWJveF9mcmVlKG1seHN3X3BjaSwgJm1seHN3X3BjaS0+Y21kLmluX21i b3gpOwogbWJveF9wdXQ6CiAJbWx4c3dfY21kX21ib3hfZnJlZShtYm94KTsKIAlyZXR1cm4gZXJy OwpAQCAtMTU0MCw4ICsxNTI2LDYgQEAgc3RhdGljIHZvaWQgbWx4c3dfcGNpX2Zpbmkodm9pZCAq YnVzX3ByaXYpCiAJbWx4c3dfcGNpX2Fxc19maW5pKG1seHN3X3BjaSk7CiAJbWx4c3dfcGNpX2Z3 X2FyZWFfZmluaShtbHhzd19wY2kpOwogCW1seHN3X3BjaV9mcmVlX2lycV92ZWN0b3JzKG1seHN3 X3BjaSk7Ci0JbWx4c3dfcGNpX21ib3hfZnJlZShtbHhzd19wY2ksICZtbHhzd19wY2ktPmNtZC5v dXRfbWJveCk7Ci0JbWx4c3dfcGNpX21ib3hfZnJlZShtbHhzd19wY2ksICZtbHhzd19wY2ktPmNt ZC5pbl9tYm94KTsKIH0KIAogc3RhdGljIHN0cnVjdCBtbHhzd19wY2lfcXVldWUgKgpAQCAtMTc1 NSw2ICsxNzM5LDM3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbWx4c3dfYnVzIG1seHN3X3BjaV9i dXMgPSB7CiAJLmZlYXR1cmVzCQk9IE1MWFNXX0JVU19GX1RYUlggfCBNTFhTV19CVVNfRl9SRVNF VCwKIH07CiAKK3N0YXRpYyBpbnQgbWx4c3dfcGNpX2NtZF9pbml0KHN0cnVjdCBtbHhzd19wY2kg Km1seHN3X3BjaSkKK3sKKwlpbnQgZXJyOworCisJbXV0ZXhfaW5pdCgmbWx4c3dfcGNpLT5jbWQu bG9jayk7CisJaW5pdF93YWl0cXVldWVfaGVhZCgmbWx4c3dfcGNpLT5jbWQud2FpdCk7CisKKwll cnIgPSBtbHhzd19wY2lfbWJveF9hbGxvYyhtbHhzd19wY2ksICZtbHhzd19wY2ktPmNtZC5pbl9t Ym94KTsKKwlpZiAoZXJyKQorCQlnb3RvIGVycl9pbl9tYm94X2FsbG9jOworCisJZXJyID0gbWx4 c3dfcGNpX21ib3hfYWxsb2MobWx4c3dfcGNpLCAmbWx4c3dfcGNpLT5jbWQub3V0X21ib3gpOwor CWlmIChlcnIpCisJCWdvdG8gZXJyX291dF9tYm94X2FsbG9jOworCisJcmV0dXJuIDA7CisKK2Vy cl9vdXRfbWJveF9hbGxvYzoKKwltbHhzd19wY2lfbWJveF9mcmVlKG1seHN3X3BjaSwgJm1seHN3 X3BjaS0+Y21kLmluX21ib3gpOworZXJyX2luX21ib3hfYWxsb2M6CisJbXV0ZXhfZGVzdHJveSgm bWx4c3dfcGNpLT5jbWQubG9jayk7CisJcmV0dXJuIGVycjsKK30KKworc3RhdGljIHZvaWQgbWx4 c3dfcGNpX2NtZF9maW5pKHN0cnVjdCBtbHhzd19wY2kgKm1seHN3X3BjaSkKK3sKKwltbHhzd19w Y2lfbWJveF9mcmVlKG1seHN3X3BjaSwgJm1seHN3X3BjaS0+Y21kLm91dF9tYm94KTsKKwltbHhz d19wY2lfbWJveF9mcmVlKG1seHN3X3BjaSwgJm1seHN3X3BjaS0+Y21kLmluX21ib3gpOworCW11 dGV4X2Rlc3Ryb3koJm1seHN3X3BjaS0+Y21kLmxvY2spOworfQorCiBzdGF0aWMgaW50IG1seHN3 X3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2Vf aWQgKmlkKQogewogCWNvbnN0IGNoYXIgKmRyaXZlcl9uYW1lID0gcGRldi0+ZHJpdmVyLT5uYW1l OwpAQCAtMTgxMCw2ICsxODI1LDEwIEBAIHN0YXRpYyBpbnQgbWx4c3dfcGNpX3Byb2JlKHN0cnVj dCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpCiAJbWx4c3df cGNpLT5wZGV2ID0gcGRldjsKIAlwY2lfc2V0X2RydmRhdGEocGRldiwgbWx4c3dfcGNpKTsKIAor CWVyciA9IG1seHN3X3BjaV9jbWRfaW5pdChtbHhzd19wY2kpOworCWlmIChlcnIpCisJCWdvdG8g ZXJyX3BjaV9jbWRfaW5pdDsKKwogCW1seHN3X3BjaS0+YnVzX2luZm8uZGV2aWNlX2tpbmQgPSBk cml2ZXJfbmFtZTsKIAltbHhzd19wY2ktPmJ1c19pbmZvLmRldmljZV9uYW1lID0gcGNpX25hbWUo bWx4c3dfcGNpLT5wZGV2KTsKIAltbHhzd19wY2ktPmJ1c19pbmZvLmRldiA9ICZwZGV2LT5kZXY7 CkBAIC0xODI3LDYgKzE4NDYsOCBAQCBzdGF0aWMgaW50IG1seHN3X3BjaV9wcm9iZShzdHJ1Y3Qg cGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKQogCXJldHVybiAw OwogCiBlcnJfYnVzX2RldmljZV9yZWdpc3RlcjoKKwltbHhzd19wY2lfY21kX2ZpbmkobWx4c3df cGNpKTsKK2Vycl9wY2lfY21kX2luaXQ6CiAJaW91bm1hcChtbHhzd19wY2ktPmh3X2FkZHIpOwog ZXJyX2lvcmVtYXA6CiBlcnJfcGNpX3Jlc291cmNlX2xlbl9jaGVjazoKQEAgLTE4NDQsNiArMTg2 NSw3IEBAIHN0YXRpYyB2b2lkIG1seHN3X3BjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYp CiAJc3RydWN0IG1seHN3X3BjaSAqbWx4c3dfcGNpID0gcGNpX2dldF9kcnZkYXRhKHBkZXYpOwog CiAJbWx4c3dfY29yZV9idXNfZGV2aWNlX3VucmVnaXN0ZXIobWx4c3dfcGNpLT5jb3JlLCBmYWxz ZSk7CisJbWx4c3dfcGNpX2NtZF9maW5pKG1seHN3X3BjaSk7CiAJaW91bm1hcChtbHhzd19wY2kt Pmh3X2FkZHIpOwogCXBjaV9yZWxlYXNlX3JlZ2lvbnMobWx4c3dfcGNpLT5wZGV2KTsKIAlwY2lf ZGlzYWJsZV9kZXZpY2UobWx4c3dfcGNpLT5wZGV2KTsKLS0gCjIuMjYuMgoKCkZyb20gMTdjMjI0 Mzc0NWIwM2Q5ZGYxNjAzMGZkYzhhOGRjODUwM2NiNmNjYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRXJhbiBCZW4gRWxpc2hhIDxlcmFuYmVAbWVsbGFub3guY29tPgpEYXRlOiBTdW4s IDE0IEp1biAyMDIwIDE3OjMxOjI2ICswMzAwClN1YmplY3Q6IFtQQVRDSCAyNy8yOV0gbmV0L21s eDU6IEZpeCBlZXByb20gc3VwcG9ydCBmb3IgU0ZQIG1vZHVsZQoKWyBVcHN0cmVhbSBjb21taXQg NDdhZmJkZDJmYTRjNTc3NWMzODNiYTM3NmEzZDFkYTdkN2Y2OTRkYyBdCgpGaXggZWVwcm9tIFNG UCBxdWVyeSBzdXBwb3J0IGJ5IHNldHRpbmcgaTJjX2FkZHIsIG9mZnNldCBhbmQgcGFnZSBudW1i ZXIKY29ycmVjdGx5LiBVbmxpa2UgUVNGUCBtb2R1bGVzLCBTRlAgZWVwcm9tIHBhcmFtcyBhcmUg YXMgZm9sbG93OgotIGkyY19hZGRyIGlzIDB4NTAgZm9yIG9mZnNldCAwIC0gMjU1IGFuZCAweDUx IGZvciBvZmZzZXQgMjU2IC0gNTExLgotIFBhZ2UgbnVtYmVyIGlzIGFsd2F5cyB6ZXJvLgotIFBh Z2Ugb2Zmc2V0IGlzIGFsd2F5cyByZWxhdGl2ZSB0byB6ZXJvLgoKQXMgcGFydCBvZiBlZXByb20g cXVlcnksIHF1ZXJ5IHRoZSBtb2R1bGUgSUQgKFNGUCAvIFFTRlAqKSB2aWEgaGVscGVyCmZ1bmN0 aW9uIHRvIHNldCB0aGUgcGFyYW1zIGFjY29yZGluZ2x5LgoKSW4gYWRkaXRpb24sIGNoYW5nZSBt bHg1X3FzZnBfZWVwcm9tX3BhZ2UoKSBpbnB1dCB0eXBlIHRvIGJlIHUxNiB0byBhdm9pZAp1bm5l Y2Vzc2FyeSBjYXN0aW5nLgoKRml4ZXM6IGE3MDhmYjdiMWY4ZCAoIm5ldC9tbHg1ZTogZXRodG9v bCwgQWRkIHN1cHBvcnQgZm9yIEVFUFJPTSBoaWdoIHBhZ2VzIHF1ZXJ5IikKU2lnbmVkLW9mZi1i eTogRXJhbiBCZW4gRWxpc2hhIDxlcmFuYmVAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBI dXkgTmd1eWVuIDxodXluQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1l ZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogLi4uL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvcG9ydC5jICAgIHwgOTMgKysrKysrKysrKysrKysrLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDc3IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9wb3J0LmMgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvcG9ydC5jCmluZGV4IGNjMjYyYjMwYWVkNS4uZGM1 ODkzMjI5NDBjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvcG9ydC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29y ZS9wb3J0LmMKQEAgLTI5Myw3ICsyOTMsNDAgQEAgc3RhdGljIGludCBtbHg1X3F1ZXJ5X21vZHVs ZV9udW0oc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgaW50ICptb2R1bGVfbnVtKQogCXJldHVy biAwOwogfQogCi1zdGF0aWMgaW50IG1seDVfZWVwcm9tX3BhZ2UoaW50IG9mZnNldCkKK3N0YXRp YyBpbnQgbWx4NV9xdWVyeV9tb2R1bGVfaWQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgaW50 IG1vZHVsZV9udW0sCisJCQkJdTggKm1vZHVsZV9pZCkKK3sKKwl1MzIgaW5bTUxYNV9TVF9TWl9E VyhtY2lhX3JlZyldID0ge307CisJdTMyIG91dFtNTFg1X1NUX1NaX0RXKG1jaWFfcmVnKV07CisJ aW50IGVyciwgc3RhdHVzOworCXU4ICpwdHI7CisKKwlNTFg1X1NFVChtY2lhX3JlZywgaW4sIGky Y19kZXZpY2VfYWRkcmVzcywgTUxYNV9JMkNfQUREUl9MT1cpOworCU1MWDVfU0VUKG1jaWFfcmVn LCBpbiwgbW9kdWxlLCBtb2R1bGVfbnVtKTsKKwlNTFg1X1NFVChtY2lhX3JlZywgaW4sIGRldmlj ZV9hZGRyZXNzLCAwKTsKKwlNTFg1X1NFVChtY2lhX3JlZywgaW4sIHBhZ2VfbnVtYmVyLCAwKTsK KwlNTFg1X1NFVChtY2lhX3JlZywgaW4sIHNpemUsIDEpOworCU1MWDVfU0VUKG1jaWFfcmVnLCBp biwgbCwgMCk7CisKKwllcnIgPSBtbHg1X2NvcmVfYWNjZXNzX3JlZyhkZXYsIGluLCBzaXplb2Yo aW4pLCBvdXQsCisJCQkJICAgc2l6ZW9mKG91dCksIE1MWDVfUkVHX01DSUEsIDAsIDApOworCWlm IChlcnIpCisJCXJldHVybiBlcnI7CisKKwlzdGF0dXMgPSBNTFg1X0dFVChtY2lhX3JlZywgb3V0 LCBzdGF0dXMpOworCWlmIChzdGF0dXMpIHsKKwkJbWx4NV9jb3JlX2VycihkZXYsICJxdWVyeV9t Y2lhX3JlZyBmYWlsZWQ6IHN0YXR1czogMHgleFxuIiwKKwkJCSAgICAgIHN0YXR1cyk7CisJCXJl dHVybiAtRUlPOworCX0KKwlwdHIgPSBNTFg1X0FERFJfT0YobWNpYV9yZWcsIG91dCwgZHdvcmRf MCk7CisKKwkqbW9kdWxlX2lkID0gcHRyWzBdOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBp bnQgbWx4NV9xc2ZwX2VlcHJvbV9wYWdlKHUxNiBvZmZzZXQpCiB7CiAJaWYgKG9mZnNldCA8IE1M WDVfRUVQUk9NX1BBR0VfTEVOR1RIKQogCQkvKiBBZGRyZXNzZXMgYmV0d2VlbiAwLTI1NSAtIHBh Z2UgMDAgKi8KQEAgLTMwNyw3ICszNDAsNyBAQCBzdGF0aWMgaW50IG1seDVfZWVwcm9tX3BhZ2Uo aW50IG9mZnNldCkKIAkJICAgIE1MWDVfRUVQUk9NX0hJR0hfUEFHRV9MRU5HVEgpOwogfQogCi1z dGF0aWMgaW50IG1seDVfZWVwcm9tX2hpZ2hfcGFnZV9vZmZzZXQoaW50IHBhZ2VfbnVtKQorc3Rh dGljIGludCBtbHg1X3FzZnBfZWVwcm9tX2hpZ2hfcGFnZV9vZmZzZXQoaW50IHBhZ2VfbnVtKQog ewogCWlmICghcGFnZV9udW0pIC8qIFBhZ2UgMCBhbHdheXMgc3RhcnQgZnJvbSBsb3cgcGFnZSAq LwogCQlyZXR1cm4gMDsKQEAgLTMxNiwzNSArMzQ5LDYyIEBAIHN0YXRpYyBpbnQgbWx4NV9lZXBy b21faGlnaF9wYWdlX29mZnNldChpbnQgcGFnZV9udW0pCiAJcmV0dXJuIHBhZ2VfbnVtICogTUxY NV9FRVBST01fSElHSF9QQUdFX0xFTkdUSDsKIH0KIAorc3RhdGljIHZvaWQgbWx4NV9xc2ZwX2Vl cHJvbV9wYXJhbXNfc2V0KHUxNiAqaTJjX2FkZHIsIGludCAqcGFnZV9udW0sIHUxNiAqb2Zmc2V0 KQoreworCSppMmNfYWRkciA9IE1MWDVfSTJDX0FERFJfTE9XOworCSpwYWdlX251bSA9IG1seDVf cXNmcF9lZXByb21fcGFnZSgqb2Zmc2V0KTsKKwkqb2Zmc2V0IC09ICBtbHg1X3FzZnBfZWVwcm9t X2hpZ2hfcGFnZV9vZmZzZXQoKnBhZ2VfbnVtKTsKK30KKworc3RhdGljIHZvaWQgbWx4NV9zZnBf ZWVwcm9tX3BhcmFtc19zZXQodTE2ICppMmNfYWRkciwgaW50ICpwYWdlX251bSwgdTE2ICpvZmZz ZXQpCit7CisJKmkyY19hZGRyID0gTUxYNV9JMkNfQUREUl9MT1c7CisJKnBhZ2VfbnVtID0gMDsK KworCWlmICgqb2Zmc2V0IDwgTUxYNV9FRVBST01fUEFHRV9MRU5HVEgpCisJCXJldHVybjsKKwor CSppMmNfYWRkciA9IE1MWDVfSTJDX0FERFJfSElHSDsKKwkqb2Zmc2V0IC09IE1MWDVfRUVQUk9N X1BBR0VfTEVOR1RIOworfQorCiBpbnQgbWx4NV9xdWVyeV9tb2R1bGVfZWVwcm9tKHN0cnVjdCBt bHg1X2NvcmVfZGV2ICpkZXYsCiAJCQkgICAgIHUxNiBvZmZzZXQsIHUxNiBzaXplLCB1OCAqZGF0 YSkKIHsKLQlpbnQgbW9kdWxlX251bSwgcGFnZV9udW0sIHN0YXR1cywgZXJyOworCWludCBtb2R1 bGVfbnVtLCBzdGF0dXMsIGVyciwgcGFnZV9udW0gPSAwOworCXUzMiBpbltNTFg1X1NUX1NaX0RX KG1jaWFfcmVnKV0gPSB7fTsKIAl1MzIgb3V0W01MWDVfU1RfU1pfRFcobWNpYV9yZWcpXTsKLQl1 MzIgaW5bTUxYNV9TVF9TWl9EVyhtY2lhX3JlZyldOwotCXUxNiBpMmNfYWRkcjsKLQl2b2lkICpw dHIgPSBNTFg1X0FERFJfT0YobWNpYV9yZWcsIG91dCwgZHdvcmRfMCk7CisJdTE2IGkyY19hZGRy ID0gMDsKKwl1OCBtb2R1bGVfaWQ7CisJdm9pZCAqcHRyOwogCiAJZXJyID0gbWx4NV9xdWVyeV9t b2R1bGVfbnVtKGRldiwgJm1vZHVsZV9udW0pOwogCWlmIChlcnIpCiAJCXJldHVybiBlcnI7CiAK LQltZW1zZXQoaW4sIDAsIHNpemVvZihpbikpOwotCXNpemUgPSBtaW5fdChpbnQsIHNpemUsIE1M WDVfRUVQUk9NX01BWF9CWVRFUyk7Ci0KLQkvKiBHZXQgdGhlIHBhZ2UgbnVtYmVyIHJlbGF0ZWQg dG8gdGhlIGdpdmVuIG9mZnNldCAqLwotCXBhZ2VfbnVtID0gbWx4NV9lZXByb21fcGFnZShvZmZz ZXQpOworCWVyciA9IG1seDVfcXVlcnlfbW9kdWxlX2lkKGRldiwgbW9kdWxlX251bSwgJm1vZHVs ZV9pZCk7CisJaWYgKGVycikKKwkJcmV0dXJuIGVycjsKIAotCS8qIFNldCB0aGUgcmlnaHQgb2Zm c2V0IGFjY29yZGluZyB0byB0aGUgcGFnZSBudW1iZXIsCi0JICogRm9yIHBhZ2VfbnVtID4gMCwg cmVsYXRpdmUgb2Zmc2V0IGlzIGFsd2F5cyA+PSAxMjggKGhpZ2ggcGFnZSkuCi0JICovCi0Jb2Zm c2V0IC09IG1seDVfZWVwcm9tX2hpZ2hfcGFnZV9vZmZzZXQocGFnZV9udW0pOworCXN3aXRjaCAo bW9kdWxlX2lkKSB7CisJY2FzZSBNTFg1X01PRFVMRV9JRF9TRlA6CisJCW1seDVfc2ZwX2VlcHJv bV9wYXJhbXNfc2V0KCZpMmNfYWRkciwgJnBhZ2VfbnVtLCAmb2Zmc2V0KTsKKwkJYnJlYWs7CisJ Y2FzZSBNTFg1X01PRFVMRV9JRF9RU0ZQOgorCWNhc2UgTUxYNV9NT0RVTEVfSURfUVNGUF9QTFVT OgorCWNhc2UgTUxYNV9NT0RVTEVfSURfUVNGUDI4OgorCQltbHg1X3FzZnBfZWVwcm9tX3BhcmFt c19zZXQoJmkyY19hZGRyLCAmcGFnZV9udW0sICZvZmZzZXQpOworCQlicmVhazsKKwlkZWZhdWx0 OgorCQltbHg1X2NvcmVfZXJyKGRldiwgIk1vZHVsZSBJRCBub3QgcmVjb2duaXplZDogMHgleFxu IiwgbW9kdWxlX2lkKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQogCiAJaWYgKG9mZnNldCArIHNp emUgPiBNTFg1X0VFUFJPTV9QQUdFX0xFTkdUSCkKIAkJLyogQ3Jvc3MgcGFnZXMgcmVhZCwgcmVh ZCB1bnRpbCBvZmZzZXQgMjU2IGluIGxvdyBwYWdlICovCiAJCXNpemUgLT0gb2Zmc2V0ICsgc2l6 ZSAtIE1MWDVfRUVQUk9NX1BBR0VfTEVOR1RIOwogCi0JaTJjX2FkZHIgPSBNTFg1X0kyQ19BRERS X0xPVzsKKwlzaXplID0gbWluX3QoaW50LCBzaXplLCBNTFg1X0VFUFJPTV9NQVhfQllURVMpOwog CiAJTUxYNV9TRVQobWNpYV9yZWcsIGluLCBsLCAwKTsKIAlNTFg1X1NFVChtY2lhX3JlZywgaW4s IG1vZHVsZSwgbW9kdWxlX251bSk7CkBAIC0zNjUsNiArNDI1LDcgQEAgaW50IG1seDVfcXVlcnlf bW9kdWxlX2VlcHJvbShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LAogCQlyZXR1cm4gLUVJTzsK IAl9CiAKKwlwdHIgPSBNTFg1X0FERFJfT0YobWNpYV9yZWcsIG91dCwgZHdvcmRfMCk7CiAJbWVt Y3B5KGRhdGEsIHB0ciwgc2l6ZSk7CiAKIAlyZXR1cm4gc2l6ZTsKLS0gCjIuMjYuMgoKCkZyb20g ZDRlZDVhZThmZDZmNGIwN2FhNzk4YzU4OGY2YWIxNDc4Y2Y4NGU1MSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogV2lsbGVtIGRlIEJydWlqbiA8d2lsbGVtYkBnb29nbGUuY29tPgpEYXRl OiBXZWQsIDEgSnVsIDIwMjAgMTY6MDA6MDYgLTA0MDAKU3ViamVjdDogW1BBVENIIDI4LzI5XSBp cDogRml4IFNPX01BUksgaW4gUlNULCBBQ0sgYW5kIElDTVAgcGFja2V0cwoKWyBVcHN0cmVhbSBj b21taXQgMGRhNzUzNmZiNDdmNTFkZjg5Y2NmY2IxZmEwOWYyNDlkOWFjY2VjNSBdCgpXaGVuIG5v IGZ1bGwgc29ja2V0IGlzIGF2YWlsYWJsZSwgc2ticyBhcmUgc2VudCBvdmVyIGEgcGVyLW5ldG5z CmNvbnRyb2wgc29ja2V0LiBJdHMgc2tfbWFyayBpcyB0ZW1wb3JhcmlseSBhZGp1c3RlZCB0byBt YXRjaCB0aGF0Cm9mIHRoZSByZWFsIChyZXF1ZXN0IG9yIHRpbWV3YWl0KSBzb2NrZXQgb3IgdG8g cmVmbGVjdCBhbiBpbmNvbWluZwpza2IsIHNvIHRoYXQgdGhlIG91dGdvaW5nIHNrYiBpbmhlcml0 cyB0aGlzIGluIF9faXBfbWFrZV9za2IuCgpJbnRyb2R1Y3Rpb24gb2YgdGhlIHNvY2tldCBjb29r aWUgbWFyayBmaWVsZCBicm9rZSB0aGlzLiBOb3cgdGhlCnNrYiBpcyBzZXQgdGhyb3VnaCB0aGUg Y29va2llIGFuZCBjb3JrOgoKPGNhbGxlcj4JCSMgaW5pdCBzb2NrYy5tYXJrIGZyb20gc2tfbWFy ayBvciBjbXNnCmlwX2FwcGVuZF9kYXRhCiAgaXBfc2V0dXBfY29yawkJIyBjb252ZXJ0IHNvY2tj Lm1hcmsgdG8gY29yayBtYXJrCmlwX3B1c2hfcGVuZGluZ19mcmFtZXMKICBpcF9maW5pc2hfc2ti CiAgICBfX2lwX21ha2Vfc2tiCSMgc2V0IHNrYi0+bWFyayB0byBjb3JrIG1hcmsKCkJ1dCBJIG1p c3NlZCB0aGVzZSBzcGVjaWFsIGNvbnRyb2wgc29ja2V0cy4gVXBkYXRlIGFsbCBjYWxsZXJzIG9m Cl9faXAoNilfbWFrZV9za2IgdGhhdCB3ZXJlIG9yaWdpbmFsbHkgbWlzc2VkLgoKRm9yIElQdjYs IHRoZSBzYW1lIHR3byBpY21wKHY2KSBwYXRocyBhcmUgYWZmZWN0ZWQuIFRoZSB0aGlyZApjYXNl IGlzIG5vdCwgYXMgY29tbWl0IDkyZTU1ZjQxMmNmZiAoInRjcDogZG9uJ3QgYW5ub3RhdGUKbWFy ayBvbiBjb250cm9sIHNvY2tldCBmcm9tIHRjcF92Nl9zZW5kX3Jlc3BvbnNlKCkiKSByZXBsYWNl ZAp0aGUgY3RsX3NrLT5za19tYXJrIHdpdGggcGFzc2luZyB0aGUgbWFyayBmaWVsZCBkaXJlY3Rs eSBhcyBhCmZ1bmN0aW9uIGFyZ3VtZW50LiBUaGF0IGNvbW1pdCBwcmVkYXRlcyB0aGUgY29tbWl0 IHRoYXQKaW50cm9kdWNlZCB0aGUgYnVnLgoKRml4ZXM6IGM2YWYwYzIyN2EyMiAoImlwOiBzdXBw b3J0IFNPX01BUksgY21zZyIpClNpZ25lZC1vZmYtYnk6IFdpbGxlbSBkZSBCcnVpam4gPHdpbGxl bWJAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6IE1hcnRpbiBLYUZhaSBMYXUgPGthZmFpQGZiLmNv bT4KUmV2aWV3ZWQtYnk6IE1hcnRpbiBLYUZhaSBMYXUgPGthZmFpQGZiLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0 L2ljbXAuYyAgICAgIHwgNCArKy0tCiBuZXQvaXB2NC9pcF9vdXRwdXQuYyB8IDIgKy0KIG5ldC9p cHY2L2ljbXAuYyAgICAgIHwgNCArKy0tCiAzIGZpbGVzIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygr KSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pY21wLmMgYi9uZXQvaXB2 NC9pY21wLmMKaW5kZXggYWM5NWJhNzhiOTAzLi43M2Y0NmNiNWU1MWQgMTAwNjQ0Ci0tLSBhL25l dC9pcHY0L2ljbXAuYworKysgYi9uZXQvaXB2NC9pY21wLmMKQEAgLTQyNyw3ICs0MjcsNyBAQCBz dGF0aWMgdm9pZCBpY21wX3JlcGx5KHN0cnVjdCBpY21wX2J4bSAqaWNtcF9wYXJhbSwgc3RydWN0 IHNrX2J1ZmYgKnNrYikKIAogCWlwY21faW5pdCgmaXBjKTsKIAlpbmV0LT50b3MgPSBpcF9oZHIo c2tiKS0+dG9zOwotCXNrLT5za19tYXJrID0gbWFyazsKKwlpcGMuc29ja2MubWFyayA9IG1hcms7 CiAJZGFkZHIgPSBpcGMuYWRkciA9IGlwX2hkcihza2IpLT5zYWRkcjsKIAlzYWRkciA9IGZpYl9j b21wdXRlX3NwZWNfZHN0KHNrYik7CiAKQEAgLTcwOSwxMCArNzA5LDEwIEBAIHZvaWQgX19pY21w X3NlbmQoc3RydWN0IHNrX2J1ZmYgKnNrYl9pbiwgaW50IHR5cGUsIGludCBjb2RlLCBfX2JlMzIg aW5mbywKIAlpY21wX3BhcmFtLnNrYgkgID0gc2tiX2luOwogCWljbXBfcGFyYW0ub2Zmc2V0ID0g c2tiX25ldHdvcmtfb2Zmc2V0KHNrYl9pbik7CiAJaW5ldF9zayhzayktPnRvcyA9IHRvczsKLQlz ay0+c2tfbWFyayA9IG1hcms7CiAJaXBjbV9pbml0KCZpcGMpOwogCWlwYy5hZGRyID0gaXBoLT5z YWRkcjsKIAlpcGMub3B0ID0gJmljbXBfcGFyYW0ucmVwbHlvcHRzLm9wdDsKKwlpcGMuc29ja2Mu bWFyayA9IG1hcms7CiAKIAlydCA9IGljbXBfcm91dGVfbG9va3VwKG5ldCwgJmZsNCwgc2tiX2lu LCBpcGgsIHNhZGRyLCB0b3MsIG1hcmssCiAJCQkgICAgICAgdHlwZSwgY29kZSwgJmljbXBfcGFy YW0pOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaXBfb3V0cHV0LmMgYi9uZXQvaXB2NC9pcF9vdXRw dXQuYwppbmRleCBiMjY4ZWUxYzFiNDQuLmIzNmM0YTMxNTllNSAxMDA2NDQKLS0tIGEvbmV0L2lw djQvaXBfb3V0cHV0LmMKKysrIGIvbmV0L2lwdjQvaXBfb3V0cHV0LmMKQEAgLTE3MDQsNyArMTcw NCw3IEBAIHZvaWQgaXBfc2VuZF91bmljYXN0X3JlcGx5KHN0cnVjdCBzb2NrICpzaywgc3RydWN0 IHNrX2J1ZmYgKnNrYiwKIAlzay0+c2tfcHJvdG9jb2wgPSBpcF9oZHIoc2tiKS0+cHJvdG9jb2w7 CiAJc2stPnNrX2JvdW5kX2Rldl9pZiA9IGFyZy0+Ym91bmRfZGV2X2lmOwogCXNrLT5za19zbmRi dWYgPSBzeXNjdGxfd21lbV9kZWZhdWx0OwotCXNrLT5za19tYXJrID0gZmw0LmZsb3dpNF9tYXJr OworCWlwYy5zb2NrYy5tYXJrID0gZmw0LmZsb3dpNF9tYXJrOwogCWVyciA9IGlwX2FwcGVuZF9k YXRhKHNrLCAmZmw0LCBpcF9yZXBseV9nbHVlX2JpdHMsIGFyZy0+aW92LT5pb3ZfYmFzZSwKIAkJ CSAgICAgbGVuLCAwLCAmaXBjLCAmcnQsIE1TR19ET05UV0FJVCk7CiAJaWYgKHVubGlrZWx5KGVy cikpIHsKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2ljbXAuYyBiL25ldC9pcHY2L2ljbXAuYwppbmRl eCA2MmM5OTcyMDE5NzAuLjdkM2EzODk0Zjc4NSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaWNtcC5j CisrKyBiL25ldC9pcHY2L2ljbXAuYwpAQCAtNTM1LDcgKzUzNSw2IEBAIHN0YXRpYyB2b2lkIGlj bXA2X3NlbmQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTggdHlwZSwgdTggY29kZSwgX191MzIgaW5m bywKIAlpZiAoIXNrKQogCQlnb3RvIG91dF9iaF9lbmFibGU7CiAKLQlzay0+c2tfbWFyayA9IG1h cms7CiAJbnAgPSBpbmV0Nl9zayhzayk7CiAKIAlpZiAoIWljbXB2Nl94cmxpbV9hbGxvdyhzaywg dHlwZSwgJmZsNikpCkBAIC01NTIsNiArNTUxLDcgQEAgc3RhdGljIHZvaWQgaWNtcDZfc2VuZChz dHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1OCB0eXBlLCB1OCBjb2RlLCBfX3UzMiBpbmZvLAogCQlmbDYu Zmxvd2k2X29pZiA9IG5wLT51Y2FzdF9vaWY7CiAKIAlpcGNtNl9pbml0X3NrKCZpcGM2LCBucCk7 CisJaXBjNi5zb2NrYy5tYXJrID0gbWFyazsKIAlmbDYuZmxvd2xhYmVsID0gaXA2X21ha2VfZmxv d2luZm8oaXBjNi50Y2xhc3MsIGZsNi5mbG93bGFiZWwpOwogCiAJZHN0ID0gaWNtcHY2X3JvdXRl X2xvb2t1cChuZXQsIHNrYiwgc2ssICZmbDYpOwpAQCAtNzIwLDcgKzcyMCw2IEBAIHN0YXRpYyB2 b2lkIGljbXB2Nl9lY2hvX3JlcGx5KHN0cnVjdCBza19idWZmICpza2IpCiAJc2sgPSBpY21wdjZf eG1pdF9sb2NrKG5ldCk7CiAJaWYgKCFzaykKIAkJZ290byBvdXRfYmhfZW5hYmxlOwotCXNrLT5z a19tYXJrID0gbWFyazsKIAlucCA9IGluZXQ2X3NrKHNrKTsKIAogCWlmICghZmw2LmZsb3dpNl9v aWYgJiYgaXB2Nl9hZGRyX2lzX211bHRpY2FzdCgmZmw2LmRhZGRyKSkKQEAgLTc0OCw2ICs3NDcs NyBAQCBzdGF0aWMgdm9pZCBpY21wdjZfZWNob19yZXBseShzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQog CWlwY202X2luaXRfc2soJmlwYzYsIG5wKTsKIAlpcGM2LmhsaW1pdCA9IGlwNl9za19kc3RfaG9w bGltaXQobnAsICZmbDYsIGRzdCk7CiAJaXBjNi50Y2xhc3MgPSBpcHY2X2dldF9kc2ZpZWxkKGlw djZfaGRyKHNrYikpOworCWlwYzYuc29ja2MubWFyayA9IG1hcms7CiAKIAlpZiAoaXA2X2FwcGVu ZF9kYXRhKHNrLCBpY21wdjZfZ2V0ZnJhZywgJm1zZywKIAkJCSAgICBza2ItPmxlbiArIHNpemVv ZihzdHJ1Y3QgaWNtcDZoZHIpLAotLSAKMi4yNi4yCgoKRnJvbSBkNTA1YTNlZDljZjUwODdmZmMw YjhjZjQzYmE1ZjUzNDQ2MGNhY2E4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBeWEg TGV2aW4gPGF5YWxAbWVsbGFub3guY29tPgpEYXRlOiBNb24sIDE1IEp1biAyMDIwIDEyOjQ4OjQ3 ICswMzAwClN1YmplY3Q6IFtQQVRDSCAyOS8yOV0gbmV0L21seDVlOiBGaXggNTBHIHBlciBsYW5l IGluZGljYXRpb24KClsgVXBzdHJlYW0gY29tbWl0IDZhMWNmNGU0NDNhM2IwYTRkNjkwZDNjOTNi ODRiMWU5Y2JmY2IxYmQgXQoKU29tZSByZWxlYXNlZCBGVyB2ZXJzaW9ucyBtaXN0YWtlbmx5IGRv bid0IHNldCB0aGUgY2FwYWJpbGl0eSB0aGF0IDUwRwpwZXIgbGFuZSBsaW5rLW1vZGVzIGFyZSBz dXBwb3J0ZWQgZm9yIFZGcyAocHR5c19leHRlbmRlZF9ldGhlcm5ldApjYXBhYmlsaXR5IGJpdCku IFdoZW4gdGhlIGNhcGFiaWxpdHkgaXMgdW5zZXQsIHJlYWQKUFRZUy5leHRfZXRoX3Byb3RvX2Nh cGFiaWxpdHkgKGFsd2F5cyByZWxpYWJsZSkuCklmIFBUWVMuZXh0X2V0aF9wcm90b19jYXBhYmls aXR5IGlzIHZhbGlkIChoYXMgYSBub24temVybyB2YWx1ZSkKY29uY2x1ZGUgdGhhdCB0aGUgSENB IHN1cHBvcnRzIDUwRyBwZXIgbGFuZS4gT3RoZXJ3aXNlLCBjb25jbHVkZSB0aGF0CnRoZSBIQ0Eg ZG9lc24ndCBzdXBwb3J0IDUwRyBwZXIgbGFuZS4KCkZpeGVzOiBhMDhiNGVkMTM3M2QgKCJuZXQv bWx4NTogQWRkIHN1cHBvcnQgdG8gZXh0XyogZmllbGRzIGludHJvZHVjZWQgaW4gUG9ydCBUeXBl IGFuZCBTcGVlZCByZWdpc3RlciIpClNpZ25lZC1vZmYtYnk6IEF5YSBMZXZpbiA8YXlhbEBtZWxs YW5veC5jb20+ClJldmlld2VkLWJ5OiBFcmFuIEJlbiBFbGlzaGEgPGVyYW5iZUBtZWxsYW5veC5j b20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgot LS0KIC4uLi9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3BvcnQuYyB8IDIxICsr KysrKysrKysrKysrKystLS0KIC4uLi9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vu L3BvcnQuaCB8ICAyICstCiAuLi4vZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2V0aHRv b2wuYyAgfCAgOCArKystLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDIzIGluc2VydGlvbnMoKyksIDgg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4NS9jb3JlL2VuL3BvcnQuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUv Y29yZS9lbi9wb3J0LmMKaW5kZXggZmNlNmVjY2RjZjhiLi5mYTgxYTk3ZjZiYTkgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9wb3J0LmMKKysr IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3BvcnQuYwpAQCAt NzgsMTEgKzc4LDI2IEBAIHN0YXRpYyBjb25zdCB1MzIgbWx4NWVfZXh0X2xpbmtfc3BlZWRbTUxY NUVfRVhUX0xJTktfTU9ERVNfTlVNQkVSXSA9IHsKIAlbTUxYNUVfNDAwR0FVSV84XQkJCT0gNDAw MDAwLAogfTsKIAorYm9vbCBtbHg1ZV9wdHlzX2V4dF9zdXBwb3J0ZWQoc3RydWN0IG1seDVfY29y ZV9kZXYgKm1kZXYpCit7CisJc3RydWN0IG1seDVlX3BvcnRfZXRoX3Byb3RvIGVwcm90bzsKKwlp bnQgZXJyOworCisJaWYgKE1MWDVfQ0FQX1BDQU1fRkVBVFVSRShtZGV2LCBwdHlzX2V4dGVuZGVk X2V0aGVybmV0KSkKKwkJcmV0dXJuIHRydWU7CisKKwllcnIgPSBtbHg1X3BvcnRfcXVlcnlfZXRo X3Byb3RvKG1kZXYsIDEsIHRydWUsICZlcHJvdG8pOworCWlmIChlcnIpCisJCXJldHVybiBmYWxz ZTsKKworCXJldHVybiAhIWVwcm90by5jYXA7Cit9CisKIHN0YXRpYyB2b2lkIG1seDVlX3BvcnRf Z2V0X3NwZWVkX2FycihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldiwKIAkJCQkgICAgIGNvbnN0 IHUzMiAqKmFyciwgdTMyICpzaXplLAogCQkJCSAgICAgYm9vbCBmb3JjZV9sZWdhY3kpCiB7Ci0J Ym9vbCBleHQgPSBmb3JjZV9sZWdhY3kgPyBmYWxzZSA6IE1MWDVfQ0FQX1BDQU1fRkVBVFVSRSht ZGV2LCBwdHlzX2V4dGVuZGVkX2V0aGVybmV0KTsKKwlib29sIGV4dCA9IGZvcmNlX2xlZ2FjeSA/ IGZhbHNlIDogbWx4NWVfcHR5c19leHRfc3VwcG9ydGVkKG1kZXYpOwogCiAJKnNpemUgPSBleHQg PyBBUlJBWV9TSVpFKG1seDVlX2V4dF9saW5rX3NwZWVkKSA6CiAJCSAgICAgIEFSUkFZX1NJWkUo bWx4NWVfbGlua19zcGVlZCk7CkBAIC0xNzcsNyArMTkyLDcgQEAgaW50IG1seDVlX3BvcnRfbGlu a3NwZWVkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LCB1MzIgKnNwZWVkKQogCWJvb2wgZXh0 OwogCWludCBlcnI7CiAKLQlleHQgPSBNTFg1X0NBUF9QQ0FNX0ZFQVRVUkUobWRldiwgcHR5c19l eHRlbmRlZF9ldGhlcm5ldCk7CisJZXh0ID0gbWx4NWVfcHR5c19leHRfc3VwcG9ydGVkKG1kZXYp OwogCWVyciA9IG1seDVfcG9ydF9xdWVyeV9ldGhfcHJvdG8obWRldiwgMSwgZXh0LCAmZXByb3Rv KTsKIAlpZiAoZXJyKQogCQlnb3RvIG91dDsKQEAgLTIwNSw3ICsyMjAsNyBAQCBpbnQgbWx4NWVf cG9ydF9tYXhfbGlua3NwZWVkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LCB1MzIgKnNwZWVk KQogCWludCBlcnI7CiAJaW50IGk7CiAKLQlleHQgPSBNTFg1X0NBUF9QQ0FNX0ZFQVRVUkUobWRl diwgcHR5c19leHRlbmRlZF9ldGhlcm5ldCk7CisJZXh0ID0gbWx4NWVfcHR5c19leHRfc3VwcG9y dGVkKG1kZXYpOwogCWVyciA9IG1seDVfcG9ydF9xdWVyeV9ldGhfcHJvdG8obWRldiwgMSwgZXh0 LCAmZXByb3RvKTsKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3BvcnQuaCBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9wb3J0LmgKaW5kZXggNGE3ZjQ0OTc2OTJi Li5lMTk2ODg4ZjcwNTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9lbi9wb3J0LmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4NS9jb3JlL2VuL3BvcnQuaApAQCAtNTQsNyArNTQsNyBAQCBpbnQgbWx4NWVfcG9ydF9saW5r c3BlZWQoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYsIHUzMiAqc3BlZWQpOwogaW50IG1seDVl X3BvcnRfbWF4X2xpbmtzcGVlZChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldiwgdTMyICpzcGVl ZCk7CiB1MzIgbWx4NWVfcG9ydF9zcGVlZDJsaW5rbW9kZXMoc3RydWN0IG1seDVfY29yZV9kZXYg Km1kZXYsIHUzMiBzcGVlZCwKIAkJCSAgICAgICBib29sIGZvcmNlX2xlZ2FjeSk7Ci0KK2Jvb2wg bWx4NWVfcHR5c19leHRfc3VwcG9ydGVkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2KTsKIGlu dCBtbHg1ZV9wb3J0X3F1ZXJ5X3BibWMoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYsIHZvaWQg Km91dCk7CiBpbnQgbWx4NWVfcG9ydF9zZXRfcGJtYyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRl diwgdm9pZCAqaW4pOwogaW50IG1seDVlX3BvcnRfcXVlcnlfcHJpb3JpdHkyYnVmZmVyKHN0cnVj dCBtbHg1X2NvcmVfZGV2ICptZGV2LCB1OCAqYnVmZmVyKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9ldGh0b29sLmMgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fZXRodG9vbC5jCmluZGV4IDM5ZWUzMjUx OGIxMC4uOGNkNTI5NTU2YjIxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg1L2NvcmUvZW5fZXRodG9vbC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDUvY29yZS9lbl9ldGh0b29sLmMKQEAgLTIwMCw3ICsyMDAsNyBAQCBzdGF0aWMg dm9pZCBtbHg1ZV9ldGh0b29sX2dldF9zcGVlZF9hcnIoc3RydWN0IG1seDVfY29yZV9kZXYgKm1k ZXYsCiAJCQkJCXN0cnVjdCBwdHlzMmV0aHRvb2xfY29uZmlnICoqYXJyLAogCQkJCQl1MzIgKnNp emUpCiB7Ci0JYm9vbCBleHQgPSBNTFg1X0NBUF9QQ0FNX0ZFQVRVUkUobWRldiwgcHR5c19leHRl bmRlZF9ldGhlcm5ldCk7CisJYm9vbCBleHQgPSBtbHg1ZV9wdHlzX2V4dF9zdXBwb3J0ZWQobWRl dik7CiAKIAkqYXJyID0gZXh0ID8gcHR5czJleHRfZXRodG9vbF90YWJsZSA6IHB0eXMybGVnYWN5 X2V0aHRvb2xfdGFibGU7CiAJKnNpemUgPSBleHQgPyBBUlJBWV9TSVpFKHB0eXMyZXh0X2V0aHRv b2xfdGFibGUpIDoKQEAgLTg3MSw3ICs4NzEsNyBAQCBzdGF0aWMgdm9pZCBnZXRfbHBfYWR2ZXJ0 aXNpbmcoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYsIHUzMiBldGhfcHJvdG9fbHAsCiAJCQkg ICAgICAgc3RydWN0IGV0aHRvb2xfbGlua19rc2V0dGluZ3MgKmxpbmtfa3NldHRpbmdzKQogewog CXVuc2lnbmVkIGxvbmcgKmxwX2FkdmVydGlzaW5nID0gbGlua19rc2V0dGluZ3MtPmxpbmtfbW9k ZXMubHBfYWR2ZXJ0aXNpbmc7Ci0JYm9vbCBleHQgPSBNTFg1X0NBUF9QQ0FNX0ZFQVRVUkUobWRl diwgcHR5c19leHRlbmRlZF9ldGhlcm5ldCk7CisJYm9vbCBleHQgPSBtbHg1ZV9wdHlzX2V4dF9z dXBwb3J0ZWQobWRldik7CiAKIAlwdHlzMmV0aHRvb2xfYWR2ZXJfbGluayhscF9hZHZlcnRpc2lu ZywgZXRoX3Byb3RvX2xwLCBleHQpOwogfQpAQCAtOTAwLDcgKzkwMCw3IEBAIGludCBtbHg1ZV9l dGh0b29sX2dldF9saW5rX2tzZXR0aW5ncyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwKIAkJCSAg IF9fZnVuY19fLCBlcnIpOwogCQlnb3RvIGVycl9xdWVyeV9yZWdzOwogCX0KLQlleHQgPSBNTFg1 X0NBUF9QQ0FNX0ZFQVRVUkUobWRldiwgcHR5c19leHRlbmRlZF9ldGhlcm5ldCk7CisJZXh0ID0g ISFNTFg1X0dFVF9FVEhfUFJPVE8ocHR5c19yZWcsIG91dCwgdHJ1ZSwgZXRoX3Byb3RvX2NhcGFi aWxpdHkpOwogCWV0aF9wcm90b19jYXAgICAgPSBNTFg1X0dFVF9FVEhfUFJPVE8ocHR5c19yZWcs IG91dCwgZXh0LAogCQkJCQkgICAgICBldGhfcHJvdG9fY2FwYWJpbGl0eSk7CiAJZXRoX3Byb3Rv X2FkbWluICA9IE1MWDVfR0VUX0VUSF9QUk9UTyhwdHlzX3JlZywgb3V0LCBleHQsCkBAIC0xMDUy LDcgKzEwNTIsNyBAQCBpbnQgbWx4NWVfZXRodG9vbF9zZXRfbGlua19rc2V0dGluZ3Moc3RydWN0 IG1seDVlX3ByaXYgKnByaXYsCiAJYXV0b25lZyA9IGxpbmtfa3NldHRpbmdzLT5iYXNlLmF1dG9u ZWc7CiAJc3BlZWQgPSBsaW5rX2tzZXR0aW5ncy0+YmFzZS5zcGVlZDsKIAotCWV4dF9zdXBwb3J0 ZWQgPSBNTFg1X0NBUF9QQ0FNX0ZFQVRVUkUobWRldiwgcHR5c19leHRlbmRlZF9ldGhlcm5ldCk7 CisJZXh0X3N1cHBvcnRlZCA9IG1seDVlX3B0eXNfZXh0X3N1cHBvcnRlZChtZGV2KTsKIAlleHQg PSBleHRfcmVxdWVzdGVkKGF1dG9uZWcsIGFkdmVyLCBleHRfc3VwcG9ydGVkKTsKIAlpZiAoIWV4 dF9zdXBwb3J0ZWQgJiYgZXh0KQogCQlyZXR1cm4gLUVPUE5PVFNVUFA7Ci0tIAoyLjI2LjIKCg== ----Next_Part(Thu_Jul_16_16_07_20_2020_547)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_57.mbox" RnJvbSAyY2QxOGM2MjhjMGYyYzZjNzRiZTJiZTc2MTM2MzQ0MDQ3Njk5ZGVmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZGUgQ2FyYXR0aSA8ZGNhcmF0dGlAcmVkaGF0LmNvbT4K RGF0ZTogRnJpLCAxMCBKdWwgMjAyMCAxMjo1NTowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDEv NDRdIGJueHRfZW46IGZpeCBOVUxMIGRlcmVmZXJlbmNlIGluIGNhc2UgU1ItSU9WCiBjb25maWd1 cmF0aW9uIGZhaWxzCgpbIFVwc3RyZWFtIGNvbW1pdCBjOGIxZDc0MzYwNDVkMzU5OWJhZTU2YWVm MTY4MjgxM2VjY2NhYWQ3IF0KCndlIG5lZWQgdG8gc2V0ICdhY3RpdmVfdmZzJyBiYWNrIHRvIDAs IGlmIHNvbWV0aGluZyBnb2VzIHdyb25nIGR1cmluZyB0aGUKYWxsb2NhdGlvbiBvZiBTUi1JT1Yg cmVzb3VyY2VzOiBvdGhlcndpc2UsIGZ1cnRoZXIgVkYgY29uZmlndXJhdGlvbnMgd2lsbAp3cm9u Z2x5IGFzc3VtZSB0aGF0IGJwLT5wZi52Zlt4XSBhcmUgdmFsaWQgbWVtb3J5IGxvY2F0aW9ucywg YW5kIGNvbW1hbmRzCmxpa2UgdGhlIG9uZXMgaW4gdGhlIGZvbGxvd2luZyBzZXF1ZW5jZToKCiAj IGVjaG8gMiA+L3N5cy9idXMvcGNpL2RldmljZXMvJHtBRERSfS9zcmlvdl9udW12ZnMKICMgaXAg bGluayBzZXQgZGV2IGVuczFmMG5wMCB1cAogIyBpcCBsaW5rIHNldCBkZXYgZW5zMWYwbnAwIHZm IDAgdHJ1c3Qgb24KCndpbGwgY2F1c2UgYSBrZXJuZWwgY3Jhc2ggc2ltaWxhciB0byB0aGlzOgoK IGJueHRfZW4gMDAwMDozYjowMC4wOiBub3QgZW5vdWdoIE1NSU8gcmVzb3VyY2VzIGZvciBTUi1J T1YKIEJVRzoga2VybmVsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSwgYWRkcmVzczogMDAwMDAw MDAwMDAwMDAxNAogI1BGOiBzdXBlcnZpc29yIHJlYWQgYWNjZXNzIGluIGtlcm5lbCBtb2RlCiAj UEY6IGVycm9yX2NvZGUoMHgwMDAwKSAtIG5vdC1wcmVzZW50IHBhZ2UKIFBHRCAwIFA0RCAwCiBP b3BzOiAwMDAwIFsjMV0gU01QIFBUSQogQ1BVOiA0MyBQSUQ6IDIwNTkgQ29tbTogaXAgVGFpbnRl ZDogRyAgICAgICAgICBJICAgICAgIDUuOC4wLXJjMi51cHN0cmVhbSsgIzg3MQogSGFyZHdhcmUg bmFtZTogRGVsbCBJbmMuIFBvd2VyRWRnZSBSNzQwLzA4RDg5RiwgQklPUyAyLjIuMTEgMDYvMTMv MjAxOQogUklQOiAwMDEwOmJueHRfc2V0X3ZmX3RydXN0KzB4NWIvMHgxMTAgW2JueHRfZW5dCiBD b2RlOiA0NCAyNCA1OCAzMSBjMCBlOCBmNSBmYiBmZiBmZiA4NSBjMCAwZiA4NSBiNiAwMCAwMCAw MCA0OCA4ZCAxYyA1YiA0MSA4OSBjNiBiOSAwYiAwMCAwMCAwMCA0OCBjMSBlMyAwNCA0OSAwMyA5 YyAyNCBmMCAwZSAwMCAwMCA8OGI+IDQzIDE0IDg5IGMyIDgzIGM4IDEwIDgzIGUyIGVmIDQ1IDg0 IGVkIDQ5IDg5IGU1IDBmIDQ0IGMyIDRjIDg5CiBSU1A6IDAwMTg6ZmZmZmFjNjI0NmExZjU3MCBF RkxBR1M6IDAwMDEwMjQ2CiBSQVg6IDAwMDAwMDAwMDAwMDAwMDAgUkJYOiAwMDAwMDAwMDAwMDAw MDAwIFJDWDogMDAwMDAwMDAwMDAwMDAwYgogUkRYOiAwMDAwMDAwMDAwMDAwMDAxIFJTSTogMDAw MDAwMDAwMDAwMDAwMCBSREk6IGZmZmY5OGIyOGY1Mzg5MDAKIFJCUDogZmZmZjk4YjI4ZjUzODkw MCBSMDg6IDAwMDAwMDAwMDAwMDAwMDAgUjA5OiAwMDAwMDAwMDAwMDAwMDA4CiBSMTA6IGZmZmZm ZmZmYjk1MTViZTAgUjExOiBmZmZmYWM2MjQ2YTFmNjc4IFIxMjogZmZmZjk4YjI4ZjUzODAwMAog UjEzOiAwMDAwMDAwMDAwMDAwMDAxIFIxNDogMDAwMDAwMDAwMDAwMDAwMCBSMTU6IGZmZmZmZmZm YzA1NDUxZTAKIEZTOiAgMDAwMDdmZGUwZjY4ODgwMCgwMDAwKSBHUzpmZmZmOThiYWZmZDQwMDAw KDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKIENTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAw MCBDUjA6IDAwMDAwMDAwODAwNTAwMzMKIENSMjogMDAwMDAwMDAwMDAwMDAxNCBDUjM6IDAwMDAw MDEwNGJiMGEwMDMgQ1I0OiAwMDAwMDAwMDAwNzYwNmUwCiBEUjA6IDAwMDAwMDAwMDAwMDAwMDAg RFIxOiAwMDAwMDAwMDAwMDAwMDAwIERSMjogMDAwMDAwMDAwMDAwMDAwMAogRFIzOiAwMDAwMDAw MDAwMDAwMDAwIERSNjogMDAwMDAwMDBmZmZlMGZmMCBEUjc6IDAwMDAwMDAwMDAwMDA0MDAKIFBL UlU6IDU1NTU1NTU0CiBDYWxsIFRyYWNlOgogIGRvX3NldGxpbmsrMHg5OTQvMHhmZTAKICBfX3J0 bmxfbmV3bGluaysweDU0NC8weDhkMAogIHJ0bmxfbmV3bGluaysweDQ3LzB4NzAKICBydG5ldGxp bmtfcmN2X21zZysweDI5Zi8weDM1MAogIG5ldGxpbmtfcmN2X3NrYisweDRhLzB4MTEwCiAgbmV0 bGlua191bmljYXN0KzB4MjFkLzB4MzAwCiAgbmV0bGlua19zZW5kbXNnKzB4MzI5LzB4NDUwCiAg c29ja19zZW5kbXNnKzB4NWIvMHg2MAogIF9fX19zeXNfc2VuZG1zZysweDIwNC8weDI4MAogIF9f X3N5c19zZW5kbXNnKzB4ODgvMHhkMAogIF9fc3lzX3NlbmRtc2crMHg1ZS8weGEwCiAgZG9fc3lz Y2FsbF82NCsweDQ3LzB4ODAKICBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0NC8w eGE5CgpGaXhlczogYzBjMDUwYzU4ZDg0MCAoImJueHRfZW46IE5ldyBCcm9hZGNvbSBldGhlcm5l dCBkcml2ZXIuIikKUmVwb3J0ZWQtYnk6IEZlaSBMaXUgPGZlbGl1QHJlZGhhdC5jb20+CkNDOiBK b25hdGhhbiBUb3BwaW5zIDxqdG9wcGluc0ByZWRoYXQuY29tPgpDQzogTWljaGFlbCBDaGFuIDxt aWNoYWVsLmNoYW5AYnJvYWRjb20uY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZGUgQ2FyYXR0aSA8 ZGNhcmF0dGlAcmVkaGF0LmNvbT4KUmV2aWV3ZWQtYnk6IE1pY2hhZWwgQ2hhbiA8bWljaGFlbC5j aGFuQGJyb2FkY29tLmNvbT4KQWNrZWQtYnk6IEpvbmF0aGFuIFRvcHBpbnMgPGp0b3BwaW5zQHJl ZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHRfc3Jpb3Yu YyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dF9zcmlv di5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0X3NyaW92LmMKaW5k ZXggY2VhMmY5OTU4YTFkLi4yMjk1ZjUzOWE2NDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dF9zcmlvdi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2Jyb2FkY29tL2JueHQvYm54dF9zcmlvdi5jCkBAIC0zOTYsNiArMzk2LDcgQEAgc3RhdGlj IHZvaWQgYm54dF9mcmVlX3ZmX3Jlc291cmNlcyhzdHJ1Y3QgYm54dCAqYnApCiAJCX0KIAl9CiAK KwlicC0+cGYuYWN0aXZlX3ZmcyA9IDA7CiAJa2ZyZWUoYnAtPnBmLnZmKTsKIAlicC0+cGYudmYg PSBOVUxMOwogfQpAQCAtODM1LDcgKzgzNiw2IEBAIHZvaWQgYm54dF9zcmlvdl9kaXNhYmxlKHN0 cnVjdCBibnh0ICpicCkKIAogCWJueHRfZnJlZV92Zl9yZXNvdXJjZXMoYnApOwogCi0JYnAtPnBm LmFjdGl2ZV92ZnMgPSAwOwogCS8qIFJlY2xhaW0gYWxsIHJlc291cmNlcyBmb3IgdGhlIFBGLiAq LwogCXJ0bmxfbG9jaygpOwogCWJueHRfcmVzdG9yZV9wZl9md19yZXNvdXJjZXMoYnApOwotLSAK Mi4yNi4yCgoKRnJvbSBiMzU5ZDEzMmM2ZjFjMmE5NWQ5OGE3NTY3YjEyMDZmMzhhZGExNDYyIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/TGludXM9MjBMPUMzPUJDc3Np bmc/PSA8bGludXMubHVlc3NpbmdAYzBkMy5ibHVlPgpEYXRlOiBTdW4sIDUgSnVsIDIwMjAgMjE6 MTA6MTcgKzAyMDAKU3ViamVjdDogW1BBVENIIDAyLzQ0XSBicmlkZ2U6IG1jYXN0OiBGaXggTUxE MiBSZXBvcnQgSVB2NiBwYXlsb2FkIGxlbmd0aAogY2hlY2sKTUlNRS1WZXJzaW9uOiAxLjAKQ29u dGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5j b2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IDVmYzYyNjZhZjdiNDI3MjQzZGEyNGYzNDQz YTUwY2Q0NTg0YWFjMDYgXQoKQ29tbWl0IGU1N2Y2MTg1OGI3YyAoIm5ldDogYnJpZGdlOiBtY2Fz dDogZml4IHN0YWxlIG5zcmNzIHBvaW50ZXIgaW4KaWdtcDMvbWxkMiByZXBvcnQgaGFuZGxpbmci KSBpbnRyb2R1Y2VkIGEgYnVnIGluIHRoZSBJUHY2IGhlYWRlciBwYXlsb2FkCmxlbmd0aCBjaGVj ayB3aGljaCB3b3VsZCBwb3RlbnRpYWxseSBsZWFkIHRvIHJlamVjdGluZyBhIHZhbGlkIE1MRDIg UmVwb3J0OgoKVGhlIGNoZWNrIG5lZWRzIHRvIHRha2UgaW50byBhY2NvdW50IHRoZSAyIGJ5dGVz IGZvciB0aGUgIk51bWJlciBvZgpTb3VyY2VzIiBmaWVsZCBpbiB0aGUgIk11bHRpY2FzdCBBZGRy ZXNzIFJlY29yZCIgYmVmb3JlIHJlYWRpbmcgaXQuCkFuZCBub3QgdGhlIHNpemUgb2YgYSBwb2lu dGVyIHRvIHRoaXMgZmllbGQuCgpGaXhlczogZTU3ZjYxODU4YjdjICgibmV0OiBicmlkZ2U6IG1j YXN0OiBmaXggc3RhbGUgbnNyY3MgcG9pbnRlciBpbiBpZ21wMy9tbGQyIHJlcG9ydCBoYW5kbGlu ZyIpCkFja2VkLWJ5OiBOaWtvbGF5IEFsZWtzYW5kcm92IDxuaWtvbGF5QGN1bXVsdXNuZXR3b3Jr cy5jb20+ClNpZ25lZC1vZmYtYnk6IExpbnVzIEzDvHNzaW5nIDxsaW51cy5sdWVzc2luZ0BjMGQz LmJsdWU+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBuZXQvYnJpZGdlL2JyX211bHRpY2FzdC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQs IDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2JyaWRnZS9i cl9tdWx0aWNhc3QuYyBiL25ldC9icmlkZ2UvYnJfbXVsdGljYXN0LmMKaW5kZXggODM0OTBiZjcz YTEzLi40YzRhOTNhYmRlNjggMTAwNjQ0Ci0tLSBhL25ldC9icmlkZ2UvYnJfbXVsdGljYXN0LmMK KysrIGIvbmV0L2JyaWRnZS9icl9tdWx0aWNhc3QuYwpAQCAtMTAwNyw3ICsxMDA3LDcgQEAgc3Rh dGljIGludCBicl9pcDZfbXVsdGljYXN0X21sZDJfcmVwb3J0KHN0cnVjdCBuZXRfYnJpZGdlICpi ciwKIAkJbnNyY3Nfb2Zmc2V0ID0gbGVuICsgb2Zmc2V0b2Yoc3RydWN0IG1sZDJfZ3JlYywgZ3Jl Y19uc3Jjcyk7CiAKIAkJaWYgKHNrYl90cmFuc3BvcnRfb2Zmc2V0KHNrYikgKyBpcHY2X3RyYW5z cG9ydF9sZW4oc2tiKSA8Ci0JCSAgICBuc3Jjc19vZmZzZXQgKyBzaXplb2YoX25zcmNzKSkKKwkJ ICAgIG5zcmNzX29mZnNldCArIHNpemVvZihfX25zcmNzKSkKIAkJCXJldHVybiAtRUlOVkFMOwog CiAJCV9uc3JjcyA9IHNrYl9oZWFkZXJfcG9pbnRlcihza2IsIG5zcmNzX29mZnNldCwKLS0gCjIu MjYuMgoKCkZyb20gNDg0MDEwODVlM2NlMGM1YTEyMDA3NDZmZGNhOTgwMDgwMjI2YjAzNyBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU2VhbiBUcmFuY2hldHRpIDxzdHJhbmNoZUBjb2Rl YXVyb3JhLm9yZz4KRGF0ZTogVHVlLCAzMCBKdW4gMjAyMCAxMTo1MDoxNyAtMDYwMApTdWJqZWN0 OiBbUEFUQ0ggMDMvNDRdIGdlbmV0bGluazogcmVtb3ZlIGdlbmxfYmluZAoKWyBVcHN0cmVhbSBj b21taXQgMWU4MmE2MmZlYzYxMzg0NGRhOWU1NThmMzQ5MzU0MGE1YjdhN2I2NyBdCgpBIHBvdGVu dGlhbCBkZWFkbG9jayBjYW4gb2NjdXIgZHVyaW5nIHJlZ2lzdGVyaW5nIG9yIHVucmVnaXN0ZXJp bmcgYQpuZXcgZ2VuZXJpYyBuZXRsaW5rIGZhbWlseSBiZXR3ZWVuIHRoZSBtYWluIG5sX3RhYmxl X2xvY2sgYW5kIHRoZQpjYl9sb2NrIHdoZXJlIGVhY2ggdGhyZWFkIHdhbnRzIHRoZSBsb2NrIGhl bGQgYnkgdGhlIG90aGVyLCBhcwpkZW1vbnN0cmF0ZWQgYmVsb3cuCgoxKSBUaHJlYWQgMSBpcyBw ZXJmb3JtaW5nIGEgbmV0bGlua19iaW5kKCkgb3BlcmF0aW9uIG9uIGEgc29ja2V0LiBBcyBwYXJ0 CiAgIG9mIHRoaXMgY2FsbCwgaXQgd2lsbCBjYWxsIG5ldGxpbmtfbG9ja190YWJsZSgpLCBpbmNy ZW1lbnRpbmcgdGhlCiAgIG5sX3RhYmxlX3VzZXJzIGNvdW50IHRvIDEuCjIpIFRocmVhZCAyIGlz IHJlZ2lzdGVyaW5nIChvciB1bnJlZ2lzdGVyaW5nKSBhIGdlbmxfZmFtaWx5IHZpYSB0aGUKICAg Z2VubF8odW4pcmVnaXN0ZXJfZmFtaWx5KCkgQVBJLiBUaGUgY2JfbG9jayBzZW1hcGhvcmUgd2ls bCBiZSB0YWtlbiBmb3IKICAgd3JpdGluZy4KMykgVGhyZWFkIDEgd2lsbCBjYWxsIGdlbmxfYmlu ZCgpIGFzIHBhcnQgb2YgdGhlIGJpbmQgb3BlcmF0aW9uIHRvIGhhbmRsZQogICBzdWJzY3JpYmlu ZyB0byBHRU5MIG11bHRpY2FzdCBncm91cHMgYXQgdGhlIHJlcXVlc3Qgb2YgdGhlIHVzZXIuIEl0 IHdpbGwKICAgYXR0ZW1wdCB0byB0YWtlIHRoZSBjYl9sb2NrIHNlbWFwaG9yZSBmb3IgcmVhZGlu ZywgYnV0IGl0IHdpbGwgZmFpbCBhbmQKICAgYmUgc2NoZWR1bGVkIGF3YXksIHdhaXRpbmcgZm9y IFRocmVhZCAyIHRvIGZpbmlzaCB0aGUgd3JpdGUuCjQpIFRocmVhZCAyIHdpbGwgY2FsbCBuZXRs aW5rX3RhYmxlX2dyYWIoKSBkdXJpbmcgdGhlICh1bilyZWdpc3RyYXRpb24KICAgY2FsbC4gSG93 ZXZlciwgYXMgVGhyZWFkIDEgaGFzIGluY3JlbWVudGVkIG5sX3RhYmxlX3VzZXJzLCBpdCB3aWxs IG5vdAogICBiZSBhYmxlIHRvIHByb2NlZWQsIGFuZCBib3RoIHRocmVhZHMgd2lsbCBiZSBzdHVj ayB3YWl0aW5nIGZvciB0aGUKICAgb3RoZXIuCgpnZW5sX2JpbmQoKSBpcyBhIG5vb3AsIHVubGVz cyBhIGdlbmxfZmFtaWx5IGltcGxlbWVudHMgdGhlIG1jYXN0X2JpbmQoKQpmdW5jdGlvbiB0byBo YW5kbGUgc2V0dGluZyB1cCBmYW1pbHktc3BlY2lmaWMgbXVsdGljYXN0IG9wZXJhdGlvbnMuIFNp bmNlCm5vIG9uZSBpbi10cmVlIHVzZXMgdGhpcyBmdW5jdGlvbmFsaXR5IGFzIENvbmcgcG9pbnRl ZCBvdXQsIHNpbXBseSByZW1vdmluZwp0aGUgZ2VubF9iaW5kKCkgZnVuY3Rpb24gd2lsbCByZW1v dmUgdGhlIHBvc3NpYmlsaXR5IGZvciBkZWFkbG9jaywgYXMgdGhlcmUKaXMgbm8gYXR0ZW1wdCBi eSBUaHJlYWQgMSBhYm92ZSB0byB0YWtlIHRoZSBjYl9sb2NrIHNlbWFwaG9yZS4KCkZpeGVzOiBj MzgwZDlhN2FmZmYgKCJnZW5ldGxpbms6IHBhc3MgbXVsdGljYXN0IGJpbmQvdW5iaW5kIHRvIGZh bWlsaWVzIikKU3VnZ2VzdGVkLWJ5OiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNv bT4KQWNrZWQtYnk6IEpvaGFubmVzIEJlcmcgPGpvaGFubmVzLmJlcmdAaW50ZWwuY29tPgpSZXBv cnRlZC1ieToga2VybmVsIHRlc3Qgcm9ib3QgPGxrcEBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6 IFNlYW4gVHJhbmNoZXR0aSA8c3RyYW5jaGVAY29kZWF1cm9yYS5vcmc+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC9n ZW5ldGxpbmsuaCB8ICA4IC0tLS0tLS0KIG5ldC9uZXRsaW5rL2dlbmV0bGluay5jIHwgNDkgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwg NTcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvZ2VuZXRsaW5rLmggYi9p bmNsdWRlL25ldC9nZW5ldGxpbmsuaAppbmRleCA3NDk1MDY2M2JiMDAuLjRjZjcwM2Q4YzMwZSAx MDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvZ2VuZXRsaW5rLmgKKysrIGIvaW5jbHVkZS9uZXQvZ2Vu ZXRsaW5rLmgKQEAgLTM1LDEyICszNSw2IEBAIHN0cnVjdCBnZW5sX2luZm87CiAgKglkbyBhZGRp dGlvbmFsLCBjb21tb24sIGZpbHRlcmluZyBhbmQgcmV0dXJuIGFuIGVycm9yCiAgKiBAcG9zdF9k b2l0OiBjYWxsZWQgYWZ0ZXIgYW4gb3BlcmF0aW9uJ3MgZG9pdCBjYWxsYmFjaywgaXQgbWF5CiAg Kgl1bmRvIG9wZXJhdGlvbnMgZG9uZSBieSBwcmVfZG9pdCwgZm9yIGV4YW1wbGUgcmVsZWFzZSBs b2NrcwotICogQG1jYXN0X2JpbmQ6IGEgc29ja2V0IGJvdW5kIHRvIHRoZSBnaXZlbiBtdWx0aWNh c3QgZ3JvdXAgKHdoaWNoCi0gKglpcyBnaXZlbiBhcyB0aGUgb2Zmc2V0IGludG8gdGhlIGdyb3Vw cyBhcnJheSkKLSAqIEBtY2FzdF91bmJpbmQ6IGEgc29ja2V0IHdhcyB1bmJvdW5kIGZyb20gdGhl IGdpdmVuIG11bHRpY2FzdCBncm91cC4KLSAqCU5vdGUgdGhhdCB1bmJpbmQoKSB3aWxsIG5vdCBi ZSBjYWxsZWQgc3ltbWV0cmljYWxseSBpZiB0aGUKLSAqCWdlbmVyaWMgbmV0bGluayBmYW1pbHkg aXMgcmVtb3ZlZCB3aGlsZSB0aGVyZSBhcmUgc3RpbGwgb3BlbgotICoJc29ja2V0cy4KICAqIEBh dHRyYnVmOiBidWZmZXIgdG8gc3RvcmUgcGFyc2VkIGF0dHJpYnV0ZXMgKHByaXZhdGUpCiAgKiBA bWNncnBzOiBtdWx0aWNhc3QgZ3JvdXBzIHVzZWQgYnkgdGhpcyBmYW1pbHkKICAqIEBuX21jZ3Jw czogbnVtYmVyIG9mIG11bHRpY2FzdCBncm91cHMKQEAgLTY0LDggKzU4LDYgQEAgc3RydWN0IGdl bmxfZmFtaWx5IHsKIAl2b2lkCQkJKCpwb3N0X2RvaXQpKGNvbnN0IHN0cnVjdCBnZW5sX29wcyAq b3BzLAogCQkJCQkgICAgIHN0cnVjdCBza19idWZmICpza2IsCiAJCQkJCSAgICAgc3RydWN0IGdl bmxfaW5mbyAqaW5mbyk7Ci0JaW50CQkJKCptY2FzdF9iaW5kKShzdHJ1Y3QgbmV0ICpuZXQsIGlu dCBncm91cCk7Ci0Jdm9pZAkJCSgqbWNhc3RfdW5iaW5kKShzdHJ1Y3QgbmV0ICpuZXQsIGludCBn cm91cCk7CiAJc3RydWN0IG5sYXR0ciAqKglhdHRyYnVmOwkvKiBwcml2YXRlICovCiAJY29uc3Qg c3RydWN0IGdlbmxfb3BzICoJb3BzOwogCWNvbnN0IHN0cnVjdCBnZW5sX211bHRpY2FzdF9ncm91 cCAqbWNncnBzOwpkaWZmIC0tZ2l0IGEvbmV0L25ldGxpbmsvZ2VuZXRsaW5rLmMgYi9uZXQvbmV0 bGluay9nZW5ldGxpbmsuYwppbmRleCA5YzFjMjdmM2EwODkuLmYzNzRhNDAzOGMwMyAxMDA2NDQK LS0tIGEvbmV0L25ldGxpbmsvZ2VuZXRsaW5rLmMKKysrIGIvbmV0L25ldGxpbmsvZ2VuZXRsaW5r LmMKQEAgLTEwODgsNjAgKzEwODgsMTEgQEAgc3RhdGljIHN0cnVjdCBnZW5sX2ZhbWlseSBnZW5s X2N0cmwgX19yb19hZnRlcl9pbml0ID0gewogCS5uZXRuc29rID0gdHJ1ZSwKIH07CiAKLXN0YXRp YyBpbnQgZ2VubF9iaW5kKHN0cnVjdCBuZXQgKm5ldCwgaW50IGdyb3VwKQotewotCXN0cnVjdCBn ZW5sX2ZhbWlseSAqZjsKLQlpbnQgZXJyID0gLUVOT0VOVDsKLQl1bnNpZ25lZCBpbnQgaWQ7Ci0K LQlkb3duX3JlYWQoJmNiX2xvY2spOwotCi0JaWRyX2Zvcl9lYWNoX2VudHJ5KCZnZW5sX2ZhbV9p ZHIsIGYsIGlkKSB7Ci0JCWlmIChncm91cCA+PSBmLT5tY2dycF9vZmZzZXQgJiYKLQkJICAgIGdy b3VwIDwgZi0+bWNncnBfb2Zmc2V0ICsgZi0+bl9tY2dycHMpIHsKLQkJCWludCBmYW1fZ3JwID0g Z3JvdXAgLSBmLT5tY2dycF9vZmZzZXQ7Ci0KLQkJCWlmICghZi0+bmV0bnNvayAmJiBuZXQgIT0g JmluaXRfbmV0KQotCQkJCWVyciA9IC1FTk9FTlQ7Ci0JCQllbHNlIGlmIChmLT5tY2FzdF9iaW5k KQotCQkJCWVyciA9IGYtPm1jYXN0X2JpbmQobmV0LCBmYW1fZ3JwKTsKLQkJCWVsc2UKLQkJCQll cnIgPSAwOwotCQkJYnJlYWs7Ci0JCX0KLQl9Ci0JdXBfcmVhZCgmY2JfbG9jayk7Ci0KLQlyZXR1 cm4gZXJyOwotfQotCi1zdGF0aWMgdm9pZCBnZW5sX3VuYmluZChzdHJ1Y3QgbmV0ICpuZXQsIGlu dCBncm91cCkKLXsKLQlzdHJ1Y3QgZ2VubF9mYW1pbHkgKmY7Ci0JdW5zaWduZWQgaW50IGlkOwot Ci0JZG93bl9yZWFkKCZjYl9sb2NrKTsKLQotCWlkcl9mb3JfZWFjaF9lbnRyeSgmZ2VubF9mYW1f aWRyLCBmLCBpZCkgewotCQlpZiAoZ3JvdXAgPj0gZi0+bWNncnBfb2Zmc2V0ICYmCi0JCSAgICBn cm91cCA8IGYtPm1jZ3JwX29mZnNldCArIGYtPm5fbWNncnBzKSB7Ci0JCQlpbnQgZmFtX2dycCA9 IGdyb3VwIC0gZi0+bWNncnBfb2Zmc2V0OwotCi0JCQlpZiAoZi0+bWNhc3RfdW5iaW5kKQotCQkJ CWYtPm1jYXN0X3VuYmluZChuZXQsIGZhbV9ncnApOwotCQkJYnJlYWs7Ci0JCX0KLQl9Ci0JdXBf cmVhZCgmY2JfbG9jayk7Ci19Ci0KIHN0YXRpYyBpbnQgX19uZXRfaW5pdCBnZW5sX3Blcm5ldF9p bml0KHN0cnVjdCBuZXQgKm5ldCkKIHsKIAlzdHJ1Y3QgbmV0bGlua19rZXJuZWxfY2ZnIGNmZyA9 IHsKIAkJLmlucHV0CQk9IGdlbmxfcmN2LAogCQkuZmxhZ3MJCT0gTkxfQ0ZHX0ZfTk9OUk9PVF9S RUNWLAotCQkuYmluZAkJPSBnZW5sX2JpbmQsCi0JCS51bmJpbmQJCT0gZ2VubF91bmJpbmQsCiAJ fTsKIAogCS8qIHdlJ2xsIGJ1bXAgdGhlIGdyb3VwIG51bWJlciByaWdodCBhZnRlcndhcmRzICov Ci0tIAoyLjI2LjIKCgpGcm9tIDc4NWY2NDk0MmRiNmRiYTZiN2JmODg4YTBmMzRjYzU3MjVlMmFj YjYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFNhYnJpbmEgRHVicm9jYSA8c2RAcXVl YXN5c25haWwubmV0PgpEYXRlOiBGcmksIDMgSnVsIDIwMjAgMTc6MDA6MzIgKzAyMDAKU3ViamVj dDogW1BBVENIIDA0LzQ0XSBpcHY0OiBmaWxsIGZsNF9pY21wX3t0eXBlLGNvZGV9IGluIHBpbmdf djRfc2VuZG1zZwoKWyBVcHN0cmVhbSBjb21taXQgNWVmZjA2OTAyMzk0NDI1YzcyMmYwYTQ0ZDk1 NDU5MDlhODgwMGY3OSBdCgpJUHY0IHBpbmcgc29ja2V0cyBkb24ndCBzZXQgZmw0LmZsNF9pY21w X3t0eXBlLGNvZGV9LCB3aGljaCBsZWFkcyB0bwppbmNvbXBsZXRlIElQc2VjIEFDUVVJUkUgbWVz c2FnZXMgYmVpbmcgc2VudCB0byB1c2Vyc3BhY2UuIEN1cnJlbnRseSwKYm90aCByYXcgc29ja2V0 cyBhbmQgSVB2NiBwaW5nIHNvY2tldHMgc2V0IHRob3NlIGZpZWxkcy4KCkV4cGVjdGVkIG91dHB1 dCBvZiAiaXAgeGZybSBtb25pdG9yIjoKICAgIGFjcXVpcmUgcHJvdG8gZXNwCiAgICAgIHNlbCBz cmMgMTAuMC4yLjE1LzMyIGRzdCA4LjguOC44LzMyIHByb3RvIGljbXAgdHlwZSA4IGNvZGUgMCBk ZXYgZW5zNAogICAgICBwb2xpY3kgc3JjIDEwLjAuMi4xNS8zMiBkc3QgOC44LjguOC8zMgogICAg ICAgIDxzbmlwPgoKQ3VycmVudGx5IHdpdGggcGluZyBzb2NrZXRzOgogICAgYWNxdWlyZSBwcm90 byBlc3AKICAgICAgc2VsIHNyYyAxMC4wLjIuMTUvMzIgZHN0IDguOC44LjgvMzIgcHJvdG8gaWNt cCB0eXBlIDAgY29kZSAwIGRldiBlbnM0CiAgICAgIHBvbGljeSBzcmMgMTAuMC4yLjE1LzMyIGRz dCA4LjguOC44LzMyCiAgICAgICAgPHNuaXA+CgpUaGUgTGlicmVzd2FuIHRlc3Qgc3VpdGUgZm91 bmQgdGhpcyBwcm9ibGVtIGFmdGVyIEZlZG9yYSBjaGFuZ2VkIHRoZQp2YWx1ZSBmb3IgdGhlIHN5 c2N0bCBuZXQuaXB2NC5waW5nX2dyb3VwX3JhbmdlLgoKRml4ZXM6IGMzMTliNGQ3NmI5ZSAoIm5l dDogaXB2NDogYWRkIElQUFJPVE9fSUNNUCBzb2NrZXQga2luZCIpClJlcG9ydGVkLWJ5OiBQYXVs IFdvdXRlcnMgPHB3b3V0ZXJzQHJlZGhhdC5jb20+ClRlc3RlZC1ieTogUGF1bCBXb3V0ZXJzIDxw d291dGVyc0ByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWJyaW5hIER1YnJvY2EgPHNkQHF1 ZWFzeXNuYWlsLm5ldD4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3BpbmcuYyB8IDMgKysrCiAxIGZpbGUgY2hhbmdlZCwg MyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvcGluZy5jIGIvbmV0L2lwdjQv cGluZy5jCmluZGV4IDUzNTQyNzI5MjE5NC4uZGY2ZmJlZmU0NGQ0IDEwMDY0NAotLS0gYS9uZXQv aXB2NC9waW5nLmMKKysrIGIvbmV0L2lwdjQvcGluZy5jCkBAIC03ODYsNiArNzg2LDkgQEAgc3Rh dGljIGludCBwaW5nX3Y0X3NlbmRtc2coc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbXNnaGRyICpt c2csIHNpemVfdCBsZW4pCiAJCQkgICBpbmV0X3NrX2Zsb3dpX2ZsYWdzKHNrKSwgZmFkZHIsIHNh ZGRyLCAwLCAwLAogCQkJICAgc2stPnNrX3VpZCk7CiAKKwlmbDQuZmw0X2ljbXBfdHlwZSA9IHVz ZXJfaWNtcGgudHlwZTsKKwlmbDQuZmw0X2ljbXBfY29kZSA9IHVzZXJfaWNtcGguY29kZTsKKwog CXNlY3VyaXR5X3NrX2NsYXNzaWZ5X2Zsb3coc2ssIGZsb3dpNF90b19mbG93aSgmZmw0KSk7CiAJ cnQgPSBpcF9yb3V0ZV9vdXRwdXRfZmxvdyhuZXQsICZmbDQsIHNrKTsKIAlpZiAoSVNfRVJSKHJ0 KSkgewotLSAKMi4yNi4yCgoKRnJvbSA4ODMwNDRlNDQ1NjdmMzhmODFmNGQzM2NlZTk2MDgxMjNh ZGI3YzFmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBBaGVybiA8ZHNhaGVy bkBrZXJuZWwub3JnPgpEYXRlOiBNb24sIDYgSnVsIDIwMjAgMTE6NDU6MDcgLTA2MDAKU3ViamVj dDogW1BBVENIIDA1LzQ0XSBpcHY2OiBmaWI2X3NlbGVjdF9wYXRoIGNhbiBub3QgdXNlIG91dCBw YXRoIGZvciBuZXh0aG9wCiBvYmplY3RzCgpbIFVwc3RyZWFtIGNvbW1pdCAzNGZlNWExY2Y5NWMz ZjExNDA2OGZjMTZkOTE5YzljZjRiMDBlNDI4IF0KCkJyaWFuIHJlcG9ydGVkIGEgY3Jhc2ggaW4g SVB2NiBjb2RlIHdoZW4gdXNpbmcgcnBmaWx0ZXIgd2l0aCBhIHNldHVwCnJ1bm5pbmcgRlJSIGFu ZCBleHRlcm5hbCBuZXh0aG9wIG9iamVjdHMuIFRoZSByb290IGNhdXNlIG9mIHRoZSBjcmFzaApp cyBmaWI2X3NlbGVjdF9wYXRoIHNldHRpbmcgZmliNl9uaCBpbiB0aGUgcmVzdWx0IHRvIE5VTEwg YmVjYXVzZSBvZgphbiBpbXByb3BlciBjaGVjayBmb3IgbmV4dGhvcCBvYmplY3RzLgoKTW9yZSBz cGVjaWZpY2FsbHksIHJwZmlsdGVyIGludm9rZXMgaXA2X3JvdXRlX2xvb2t1cCB3aXRoIGZsb3dp Nl9vaWYKc2V0IGNhdXNpbmcgZmliNl9zZWxlY3RfcGF0aCB0byBiZSBjYWxsZWQgd2l0aCBoYXZl X29pZl9tYXRjaCBzZXQuCmZpYjZfc2VsZWN0X3BhdGggaGFzIGVhcmx5IGNoZWNrIG9uIGhhdmVf b2lmX21hdGNoIGFuZCBqdW1wcyB0byB0aGUKb3V0IGxhYmVsIHdoaWNoIHByZXN1bWVzIGEgYnVp bHRpbiBmaWI2X25oLiBUaGlzIHBhdGggaXMgaW52YWxpZCBmb3IKbmV4dGhvcCBvYmplY3RzOyBm b3IgZXh0ZXJuYWwgbmV4dGhvcHMgZmliNl9zZWxlY3RfcGF0aCBuZWVkcyB0byBqdXN0CnJldHVy biBpZiB0aGUgZmliNl9uaCBoYXMgYWxyZWFkeSBiZWVuIHNldCBpbiB0aGUgcmVzdWx0IG90aGVy d2lzZSBpdApyZXR1cm5zIGFmdGVyIHRoZSBjYWxsIHRvIG5leHRob3BfcGF0aF9maWI2X3Jlc3Vs dC4gVXBkYXRlIHRoZSBjaGVjawpvbiBoYXZlX29pZl9tYXRjaCB0byBub3QgYmFpbCBvbiBleHRl cm5hbCBuZXh0aG9wcy4KClVwZGF0ZSBzZWxmdGVzdHMgZm9yIHRoaXMgcHJvYmxlbS4KCkZpeGVz OiBmODhkOGVhNjdmYmQgKCJpcHY2OiBQbHVtYiBzdXBwb3J0IGZvciBuZXh0aG9wIG9iamVjdCBp biBhIGZpYjZfaW5mbyIpClJlcG9ydGVkLWJ5OiBCcmlhbiBSYWsgPGJyYWtAY2hvb3BhLmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgQWhlcm4gPGRzYWhlcm5Aa2VybmVsLm9yZz4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY2 L3JvdXRlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNSArKysrLQogdG9vbHMvdGVz dGluZy9zZWxmdGVzdHMvbmV0L2ZpYl9uZXh0aG9wcy5zaCB8IDEzICsrKysrKysrKysrKysKIDIg ZmlsZXMgY2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdp dCBhL25ldC9pcHY2L3JvdXRlLmMgYi9uZXQvaXB2Ni9yb3V0ZS5jCmluZGV4IGZmODQ3YTMyNDIy MC4uOWM5Y2JiYTM0ZGMzIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9yb3V0ZS5jCisrKyBiL25ldC9p cHY2L3JvdXRlLmMKQEAgLTQzMSw5ICs0MzEsMTIgQEAgdm9pZCBmaWI2X3NlbGVjdF9wYXRoKGNv bnN0IHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IGZpYjZfcmVzdWx0ICpyZXMsCiAJc3RydWN0IGZp YjZfaW5mbyAqc2libGluZywgKm5leHRfc2libGluZzsKIAlzdHJ1Y3QgZmliNl9pbmZvICptYXRj aCA9IHJlcy0+ZjZpOwogCi0JaWYgKCghbWF0Y2gtPmZpYjZfbnNpYmxpbmdzICYmICFtYXRjaC0+ bmgpIHx8IGhhdmVfb2lmX21hdGNoKQorCWlmICghbWF0Y2gtPm5oICYmICghbWF0Y2gtPmZpYjZf bnNpYmxpbmdzIHx8IGhhdmVfb2lmX21hdGNoKSkKIAkJZ290byBvdXQ7CiAKKwlpZiAobWF0Y2gt Pm5oICYmIGhhdmVfb2lmX21hdGNoICYmIHJlcy0+bmgpCisJCXJldHVybjsKKwogCS8qIFdlIG1p Z2h0IGhhdmUgYWxyZWFkeSBjb21wdXRlZCB0aGUgaGFzaCBmb3IgSUNNUHY2IGVycm9ycy4gSW4g c3VjaAogCSAqIGNhc2UgaXQgd2lsbCBhbHdheXMgYmUgbm9uLXplcm8uIE90aGVyd2lzZSBub3cg aXMgdGhlIHRpbWUgdG8gZG8gaXQuCiAJICovCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3Nl bGZ0ZXN0cy9uZXQvZmliX25leHRob3BzLnNoIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0 L2ZpYl9uZXh0aG9wcy5zaAppbmRleCA2NTYwZWQ3OTZhYzQuLjA5ODMwYjg4ZWM4YyAxMDA3NTUK LS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2ZpYl9uZXh0aG9wcy5zaAorKysgYi90 b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvZmliX25leHRob3BzLnNoCkBAIC01MTIsNiArNTEy LDE5IEBAIGlwdjZfZmNuYWxfcnVudGltZSgpCiAJcnVuX2NtZCAiJElQIG5leHRob3AgYWRkIGlk IDg2IHZpYSAyMDAxOmRiODo5MTo6MiBkZXYgdmV0aDEiCiAJcnVuX2NtZCAiJElQIHJvIGFkZCAy MDAxOmRiODoxMDE6OjEvMTI4IG5oaWQgODEiCiAKKwkjIHJwZmlsdGVyIGFuZCBkZWZhdWx0IHJv dXRlCisJJElQIG5leHRob3AgZmx1c2ggPi9kZXYvbnVsbCAyPiYxCisJcnVuX2NtZCAiaXAgbmV0 bnMgZXhlYyBtZSBpcDZ0YWJsZXMgLXQgbWFuZ2xlIC1JIFBSRVJPVVRJTkcgMSAtbSBycGZpbHRl ciAtLWludmVydCAtaiBEUk9QIgorCXJ1bl9jbWQgIiRJUCBuZXh0aG9wIGFkZCBpZCA5MSB2aWEg MjAwMTpkYjg6OTE6OjIgZGV2IHZldGgxIgorCXJ1bl9jbWQgIiRJUCBuZXh0aG9wIGFkZCBpZCA5 MiB2aWEgMjAwMTpkYjg6OTI6OjIgZGV2IHZldGgzIgorCXJ1bl9jbWQgIiRJUCBuZXh0aG9wIGFk ZCBpZCA5MyBncm91cCA5MS85MiIKKwlydW5fY21kICIkSVAgLTYgcm8gYWRkIGRlZmF1bHQgbmhp ZCA5MSIKKwlydW5fY21kICJpcCBuZXRucyBleGVjIG1lIHBpbmcgLWMxIC13MSAyMDAxOmRiODox MDE6OjEiCisJbG9nX3Rlc3QgJD8gMCAiTmV4dGhvcCB3aXRoIGRlZmF1bHQgcm91dGUgYW5kIHJw ZmlsdGVyIgorCXJ1bl9jbWQgIiRJUCAtNiBybyByZXBsYWNlIGRlZmF1bHQgbmhpZCA5MyIKKwly dW5fY21kICJpcCBuZXRucyBleGVjIG1lIHBpbmcgLWMxIC13MSAyMDAxOmRiODoxMDE6OjEiCisJ bG9nX3Rlc3QgJD8gMCAiTmV4dGhvcCB3aXRoIG11bHRpcGF0aCBkZWZhdWx0IHJvdXRlIGFuZCBy cGZpbHRlciIKKwogCSMgVE8tRE86CiAJIyBleGlzdGluZyByb3V0ZSB3aXRoIG9sZCBuZXh0aG9w OyBhcHBlbmQgcm91dGUgd2l0aCBuZXcgbmV4dGhvcAogCSMgZXhpc3Rpbmcgcm91dGUgd2l0aCBv bGQgbmV4dGhvcDsgcmVwbGFjZSByb3V0ZSB3aXRoIG5ldwotLSAKMi4yNi4yCgoKRnJvbSBmMzAz OTYzMWMwOThiMzY3ZGFlNTFjNDIxOGNkZDM5YmVkYTRiYzdiIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBEYXZpZCBBaGVybiA8ZHNhaGVybkBrZXJuZWwub3JnPgpEYXRlOiBUdWUsIDcg SnVsIDIwMjAgMDc6Mzk6MjQgLTA2MDAKU3ViamVjdDogW1BBVENIIDA2LzQ0XSBpcHY2OiBGaXgg dXNlIG9mIGFueWNhc3QgYWRkcmVzcyB3aXRoIGxvb3BiYWNrCgpbIFVwc3RyZWFtIGNvbW1pdCBh ZWEyM2MzMjNkODk4MzZiY2RjZWU2N2U0OWRlZjk5N2ZmY2EwNDNiIF0KClRob21hcyByZXBvcnRl ZCBhIHJlZ3Jlc3Npb24gd2l0aCBJUHY2IGFuZCBhbnljYXN0IHVzaW5nIHRoZSBmb2xsb3dpbmcK cmVwcm9kdWNlcjoKCiAgICBlY2hvIDEgPiAgL3Byb2Mvc3lzL25ldC9pcHY2L2NvbmYvYWxsL2Zv cndhcmRpbmcKICAgIGlwIC02IGEgYWRkIGZjMTI6OjEvMTYgZGV2IGxvCiAgICBzbGVlcCAyCiAg ICBlY2hvICJwaW5naW5nIGxvIgogICAgcGluZzYgLWMgMiBmYzEyOjoKClRoZSBjb252ZXJzaW9u IG9mIGFkZHJjb25mX2Y2aV9hbGxvYyB0byB1c2UgaXA2X3JvdXRlX2luZm9fY3JlYXRlIG1pc3Nl ZAp0aGUgdXNlIG9mIGZpYjZfaXNfcmVqZWN0IHdoaWNoIGNoZWNrcyBhZGRyZXNzZXMgYWRkZWQg dG8gdGhlIGxvb3BiYWNrCmludGVyZmFjZSBhbmQgc2V0cyB0aGUgUkVKRUNUIGZsYWcgYXMgbmVl ZGVkLiBVcGRhdGUgZmliNl9pc19yZWplY3QgZm9yCmxvb3BiYWNrIGNoZWNrcyB0byBoYW5kbGUg UlRGX0FOWUNBU1QgYWRkcmVzc2VzLgoKRml4ZXM6IGM3YTFjZTM5N2FkYSAoImlwdjY6IENoYW5n ZSBhZGRyY29uZl9mNmlfYWxsb2MgdG8gdXNlIGlwNl9yb3V0ZV9pbmZvX2NyZWF0ZSIpClJlcG9y dGVkLWJ5OiB0aG9tYXMuZ2FtYmllckBuZXhlZGkuY29tClNpZ25lZC1vZmYtYnk6IERhdmlkIEFo ZXJuIDxkc2FoZXJuQGtlcm5lbC5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9yb3V0ZS5jIHwgMiArLQogMSBmaWxl IGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0 L2lwdjYvcm91dGUuYyBiL25ldC9pcHY2L3JvdXRlLmMKaW5kZXggOWM5Y2JiYTM0ZGMzLi5lOGEx ODRhY2Y2NjggMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3JvdXRlLmMKKysrIGIvbmV0L2lwdjYvcm91 dGUuYwpAQCAtMzQwMiw3ICszNDAyLDcgQEAgc3RhdGljIGJvb2wgZmliNl9pc19yZWplY3QodTMy IGZsYWdzLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgYWRkcl90eXBlKQogCWlmICgoZmxh Z3MgJiBSVEZfUkVKRUNUKSB8fAogCSAgICAoZGV2ICYmIChkZXYtPmZsYWdzICYgSUZGX0xPT1BC QUNLKSAmJgogCSAgICAgIShhZGRyX3R5cGUgJiBJUFY2X0FERFJfTE9PUEJBQ0spICYmCi0JICAg ICAhKGZsYWdzICYgUlRGX0xPQ0FMKSkpCisJICAgICAhKGZsYWdzICYgKFJURl9BTllDQVNUIHwg UlRGX0xPQ0FMKSkpKQogCQlyZXR1cm4gdHJ1ZTsKIAogCXJldHVybiBmYWxzZTsKLS0gCjIuMjYu MgoKCkZyb20gMmUxOTcyMGUxMzIyOGE2Y2MzOTZmNGE4NzJmZGY5ZGU5NWYwNWZkZSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpE YXRlOiBUdWUsIDcgSnVsIDIwMjAgMDI6MDI6MzIgKzA4MDAKU3ViamVjdDogW1BBVENIIDA3LzQ0 XSBsMnRwOiByZW1vdmUgc2tiX2RzdF9zZXQoKSBmcm9tIGwydHBfeG1pdF9za2IoKQoKWyBVcHN0 cmVhbSBjb21taXQgMjdkNTMzMjM2NjRjNTQ5YjViYjJkZmFhZjZmN2FkNmUwMzc2YTY0ZSBdCgpJ biB0aGUgdHggcGF0aCBvZiBsMnRwLCBsMnRwX3htaXRfc2tiKCkgY2FsbHMgc2tiX2RzdF9zZXQo KSB0byBzZXQKc2tiJ3MgZHN0LiBIb3dldmVyLCBpdCB3aWxsIGV2ZW50dWFsbHkgY2FsbCBpbmV0 Nl9jc2tfeG1pdCgpIG9yCmlwX3F1ZXVlX3htaXQoKSB3aGVyZSBza2IncyBkc3Qgd2lsbCBiZSBv dmVyd3JpdHRlbiBieToKCiAgIHNrYl9kc3Rfc2V0X25vcmVmKHNrYiwgZHN0KTsKCndpdGhvdXQg cmVsZWFzaW5nIHRoZSBvbGQgZHN0IGluIHNrYi4gVGhlbiBpdCBjYXVzZXMgZHN0L2RldiByZWZj bnQgbGVhazoKCiAgdW5yZWdpc3Rlcl9uZXRkZXZpY2U6IHdhaXRpbmcgZm9yIGV0aDAgdG8gYmVj b21lIGZyZWUuIFVzYWdlIGNvdW50ID0gMQoKVGhpcyBjYW4gYmUgcmVwcm9kdWNlZCBieSBzaW1w bHkgcnVubmluZzoKCiAgIyBtb2Rwcm9iZSBsMnRwX2V0aCAmJiBtb2Rwcm9iZSBsMnRwX2lwCiAg IyBzaCAuL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9sMnRwLnNoCgpTbyBiZWZvcmUgZ29p bmcgdG8gaW5ldDZfY3NrX3htaXQoKSBvciBpcF9xdWV1ZV94bWl0KCksIHNrYidzIGRzdApzaG91 bGQgYmUgZHJvcHBlZC4gVGhpcyBwYXRjaCBpcyB0byBmaXggaXQgYnkgcmVtb3Zpbmcgc2tiX2Rz dF9zZXQoKQpmcm9tIGwydHBfeG1pdF9za2IoKSBhbmQgbW92aW5nIHNrYl9kc3RfZHJvcCgpIGlu dG8gbDJ0cF94bWl0X2NvcmUoKS4KCkZpeGVzOiAzNTU3YmFhYmYyODAgKCJbTDJUUF06IFBQUCBv dmVyIEwyVFAgZHJpdmVyIGNvcmUiKQpSZXBvcnRlZC1ieTogSGFuZ2JpbiBMaXUgPGxpdWhhbmdi aW5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5j b20+CkFja2VkLWJ5OiBKYW1lcyBDaGFwbWFuIDxqY2hhcG1hbkBrYXRhbGl4LmNvbT4KVGVzdGVk LWJ5OiBKYW1lcyBDaGFwbWFuIDxqY2hhcG1hbkBrYXRhbGl4LmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9sMnRwL2wydHBf Y29yZS5jIHwgNSArLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCA0IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9sMnRwL2wydHBfY29yZS5jIGIvbmV0L2wydHAvbDJ0 cF9jb3JlLmMKaW5kZXggNmQ3ZWY3OGM4OGFmLi42NDM0ZDE3ZTZlOGUgMTAwNjQ0Ci0tLSBhL25l dC9sMnRwL2wydHBfY29yZS5jCisrKyBiL25ldC9sMnRwL2wydHBfY29yZS5jCkBAIC0xMDI4LDYg KzEwMjgsNyBAQCBzdGF0aWMgdm9pZCBsMnRwX3htaXRfY29yZShzdHJ1Y3QgbDJ0cF9zZXNzaW9u ICpzZXNzaW9uLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCiAJLyogUXVldWUgdGhlIHBhY2tldCB0 byBJUCBmb3Igb3V0cHV0ICovCiAJc2tiLT5pZ25vcmVfZGYgPSAxOworCXNrYl9kc3RfZHJvcChz a2IpOwogI2lmIElTX0VOQUJMRUQoQ09ORklHX0lQVjYpCiAJaWYgKGwydHBfc2tfaXNfdjYodHVu bmVsLT5zb2NrKSkKIAkJZXJyb3IgPSBpbmV0Nl9jc2tfeG1pdCh0dW5uZWwtPnNvY2ssIHNrYiwg TlVMTCk7CkBAIC0xMDk5LDEwICsxMTAwLDYgQEAgaW50IGwydHBfeG1pdF9za2Ioc3RydWN0IGwy dHBfc2Vzc2lvbiAqc2Vzc2lvbiwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IGhkcl9sZW4KIAkJ Z290byBvdXRfdW5sb2NrOwogCX0KIAotCS8qIEdldCByb3V0aW5nIGluZm8gZnJvbSB0aGUgdHVu bmVsIHNvY2tldCAqLwotCXNrYl9kc3RfZHJvcChza2IpOwotCXNrYl9kc3Rfc2V0KHNrYiwgc2tf ZHN0X2NoZWNrKHNrLCAwKSk7Ci0KIAlpbmV0ID0gaW5ldF9zayhzayk7CiAJZmwgPSAmaW5ldC0+ Y29yay5mbDsKIAlzd2l0Y2ggKHR1bm5lbC0+ZW5jYXApIHsKLS0gCjIuMjYuMgoKCkZyb20gNzFi ODUyYmQ2MWM3Yjg5Njc4NmU5ZmE5YjdjMGE2MDNmZWIzYjg3OCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBTYXQs IDI3IEp1biAyMDIwIDEzOjMxOjUwIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwOC80NF0gbGxjOiBt YWtlIHN1cmUgYXBwbGljYXRpb25zIHVzZSBBUlBIUkRfRVRIRVIKClsgVXBzdHJlYW0gY29tbWl0 IGE5YjExMTAxNjIzNTc2ODlhMzQ5OTJkNWM5MjU4NTI5NDhlNWI5ZmQgXQoKc3l6Ym90IHdhcyB0 byB0cmlnZ2VyIGEgYnVnIGJ5IHRyaWNraW5nIEFGX0xMQyB3aXRoCm5vbiBzZW5zaWJsZSBhZGRy LT5zbGxjX2FycGhyZAoKSXQgc2VlbXMgY2xlYXIgTExDIHJlcXVpcmVzIGFuIEV0aGVybmV0IGRl dmljZS4KCkJhY2sgaW4gY29tbWl0IGFiZjlkNTM3ZmVhMiAoImxsYzogYWRkIHN1cHBvcnQgZm9y IFNPX0JJTkRUT0RFVklDRSIpCk9jdGF2aWFuIFB1cmRpbGEgYWRkZWQgcG9zc2liaWxpdHkgZm9y IGFwcGxpY2F0aW9uIHRvIHVzZSBhIHplcm8KdmFsdWUgZm9yIHNsbGNfYXJwaHJkLCBjb252ZXJ0 IGl0IHRvIEFSUEhSRF9FVEhFUiB0byBub3QgY2F1c2UKcmVncmVzc2lvbnMgb24gZXhpc3Rpbmcg YXBwbGljYXRpb25zLgoKQlVHOiBLQVNBTjogdXNlLWFmdGVyLWZyZWUgaW4gX19yZWFkX29uY2Vf c2l6ZSBpbmNsdWRlL2xpbnV4L2NvbXBpbGVyLmg6MTk5IFtpbmxpbmVdCkJVRzogS0FTQU46IHVz ZS1hZnRlci1mcmVlIGluIGxpc3RfZW1wdHkgaW5jbHVkZS9saW51eC9saXN0Lmg6MjY4IFtpbmxp bmVdCkJVRzogS0FTQU46IHVzZS1hZnRlci1mcmVlIGluIHdhaXRxdWV1ZV9hY3RpdmUgaW5jbHVk ZS9saW51eC93YWl0Lmg6MTI2IFtpbmxpbmVdCkJVRzogS0FTQU46IHVzZS1hZnRlci1mcmVlIGlu IHdxX2hhc19zbGVlcGVyIGluY2x1ZGUvbGludXgvd2FpdC5oOjE2MCBbaW5saW5lXQpCVUc6IEtB U0FOOiB1c2UtYWZ0ZXItZnJlZSBpbiBza3dxX2hhc19zbGVlcGVyIGluY2x1ZGUvbmV0L3NvY2su aDoyMDkyIFtpbmxpbmVdCkJVRzogS0FTQU46IHVzZS1hZnRlci1mcmVlIGluIHNvY2tfZGVmX3dy aXRlX3NwYWNlKzB4NjQyLzB4NjcwIG5ldC9jb3JlL3NvY2suYzoyODEzClJlYWQgb2Ygc2l6ZSA4 IGF0IGFkZHIgZmZmZjg4ODAxZTBiNDA3OCBieSB0YXNrIGtzb2Z0aXJxZC8zLzI3CgpDUFU6IDMg UElEOiAyNyBDb21tOiBrc29mdGlycWQvMyBOb3QgdGFpbnRlZCA1LjUuMC1yYzEtc3l6a2FsbGVy ICMwCkhhcmR3YXJlIG5hbWU6IFFFTVUgU3RhbmRhcmQgUEMgKFEzNSArIElDSDksIDIwMDkpLCBC SU9TIHJlbC0xLjEyLjAtNTktZ2M5YmE1Mjc2ZTMyMS1wcmVidWlsdC5xZW11Lm9yZyAwNC8wMS8y MDE0CkNhbGwgVHJhY2U6CiBfX2R1bXBfc3RhY2sgbGliL2R1bXBfc3RhY2suYzo3NyBbaW5saW5l XQogZHVtcF9zdGFjaysweDE5Ny8weDIxMCBsaWIvZHVtcF9zdGFjay5jOjExOAogcHJpbnRfYWRk cmVzc19kZXNjcmlwdGlvbi5jb25zdHByb3AuMC5jb2xkKzB4ZDQvMHgzMGIgbW0va2FzYW4vcmVw b3J0LmM6Mzc0CiBfX2thc2FuX3JlcG9ydC5jb2xkKzB4MWIvMHg0MSBtbS9rYXNhbi9yZXBvcnQu Yzo1MDYKIGthc2FuX3JlcG9ydCsweDEyLzB4MjAgbW0va2FzYW4vY29tbW9uLmM6NjM5CiBfX2Fz YW5fcmVwb3J0X2xvYWQ4X25vYWJvcnQrMHgxNC8weDIwIG1tL2thc2FuL2dlbmVyaWNfcmVwb3J0 LmM6MTM1CiBfX3JlYWRfb25jZV9zaXplIGluY2x1ZGUvbGludXgvY29tcGlsZXIuaDoxOTkgW2lu bGluZV0KIGxpc3RfZW1wdHkgaW5jbHVkZS9saW51eC9saXN0Lmg6MjY4IFtpbmxpbmVdCiB3YWl0 cXVldWVfYWN0aXZlIGluY2x1ZGUvbGludXgvd2FpdC5oOjEyNiBbaW5saW5lXQogd3FfaGFzX3Ns ZWVwZXIgaW5jbHVkZS9saW51eC93YWl0Lmg6MTYwIFtpbmxpbmVdCiBza3dxX2hhc19zbGVlcGVy IGluY2x1ZGUvbmV0L3NvY2suaDoyMDkyIFtpbmxpbmVdCiBzb2NrX2RlZl93cml0ZV9zcGFjZSsw eDY0Mi8weDY3MCBuZXQvY29yZS9zb2NrLmM6MjgxMwogc29ja193ZnJlZSsweDFlMS8weDI2MCBu ZXQvY29yZS9zb2NrLmM6MTk1OAogc2tiX3JlbGVhc2VfaGVhZF9zdGF0ZSsweGViLzB4MjYwIG5l dC9jb3JlL3NrYnVmZi5jOjY1Mgogc2tiX3JlbGVhc2VfYWxsKzB4MTYvMHg2MCBuZXQvY29yZS9z a2J1ZmYuYzo2NjMKIF9fa2ZyZWVfc2tiIG5ldC9jb3JlL3NrYnVmZi5jOjY3OSBbaW5saW5lXQog Y29uc3VtZV9za2IgbmV0L2NvcmUvc2tidWZmLmM6ODM4IFtpbmxpbmVdCiBjb25zdW1lX3NrYisw eGZiLzB4NDEwIG5ldC9jb3JlL3NrYnVmZi5jOjgzMgogX19kZXZfa2ZyZWVfc2tiX2FueSsweGE0 LzB4ZDAgbmV0L2NvcmUvZGV2LmM6Mjk2NwogZGV2X2tmcmVlX3NrYl9hbnkgaW5jbHVkZS9saW51 eC9uZXRkZXZpY2UuaDozNjUwIFtpbmxpbmVdCiBlMTAwMF91bm1hcF9hbmRfZnJlZV90eF9yZXNv dXJjZS5pc3JhLjArMHgyMWIvMHgzYTAgZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvZTEwMDAv ZTEwMDBfbWFpbi5jOjE5NjMKIGUxMDAwX2NsZWFuX3R4X2lycSBkcml2ZXJzL25ldC9ldGhlcm5l dC9pbnRlbC9lMTAwMC9lMTAwMF9tYWluLmM6Mzg1NCBbaW5saW5lXQogZTEwMDBfY2xlYW4rMHg0 Y2MvMHgxZDEwIGRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2UxMDAwL2UxMDAwX21haW4uYzoz Nzk2CiBuYXBpX3BvbGwgbmV0L2NvcmUvZGV2LmM6NjUzMiBbaW5saW5lXQogbmV0X3J4X2FjdGlv bisweDUwOC8weDExMjAgbmV0L2NvcmUvZGV2LmM6NjYwMAogX19kb19zb2Z0aXJxKzB4MjYyLzB4 OThjIGtlcm5lbC9zb2Z0aXJxLmM6MjkyCiBydW5fa3NvZnRpcnFkIGtlcm5lbC9zb2Z0aXJxLmM6 NjAzIFtpbmxpbmVdCiBydW5fa3NvZnRpcnFkKzB4OGUvMHgxMTAga2VybmVsL3NvZnRpcnEuYzo1 OTUKIHNtcGJvb3RfdGhyZWFkX2ZuKzB4NmEzLzB4YTQwIGtlcm5lbC9zbXBib290LmM6MTY1CiBr dGhyZWFkKzB4MzYxLzB4NDMwIGtlcm5lbC9rdGhyZWFkLmM6MjU1CiByZXRfZnJvbV9mb3JrKzB4 MjQvMHgzMCBhcmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5TOjM1MgoKQWxsb2NhdGVkIGJ5IHRhc2sg ODI0NzoKIHNhdmVfc3RhY2srMHgyMy8weDkwIG1tL2thc2FuL2NvbW1vbi5jOjcyCiBzZXRfdHJh Y2sgbW0va2FzYW4vY29tbW9uLmM6ODAgW2lubGluZV0KIF9fa2FzYW5fa21hbGxvYyBtbS9rYXNh bi9jb21tb24uYzo1MTMgW2lubGluZV0KIF9fa2FzYW5fa21hbGxvYy5jb25zdHByb3AuMCsweGNm LzB4ZTAgbW0va2FzYW4vY29tbW9uLmM6NDg2CiBrYXNhbl9zbGFiX2FsbG9jKzB4Zi8weDIwIG1t L2thc2FuL2NvbW1vbi5jOjUyMQogc2xhYl9wb3N0X2FsbG9jX2hvb2sgbW0vc2xhYi5oOjU4NCBb aW5saW5lXQogc2xhYl9hbGxvYyBtbS9zbGFiLmM6MzMyMCBbaW5saW5lXQoga21lbV9jYWNoZV9h bGxvYysweDEyMS8weDcxMCBtbS9zbGFiLmM6MzQ4NAogc29ja19hbGxvY19pbm9kZSsweDFjLzB4 MWQwIG5ldC9zb2NrZXQuYzoyNDAKIGFsbG9jX2lub2RlKzB4NjgvMHgxZTAgZnMvaW5vZGUuYzoy MzAKIG5ld19pbm9kZV9wc2V1ZG8rMHgxOS8weGYwIGZzL2lub2RlLmM6OTE5CiBzb2NrX2FsbG9j KzB4NDEvMHgyNzAgbmV0L3NvY2tldC5jOjU2MAogX19zb2NrX2NyZWF0ZSsweGMyLzB4NzMwIG5l dC9zb2NrZXQuYzoxMzg0CiBzb2NrX2NyZWF0ZSBuZXQvc29ja2V0LmM6MTQ3MSBbaW5saW5lXQog X19zeXNfc29ja2V0KzB4MTAzLzB4MjIwIG5ldC9zb2NrZXQuYzoxNTEzCiBfX2RvX3N5c19zb2Nr ZXQgbmV0L3NvY2tldC5jOjE1MjIgW2lubGluZV0KIF9fc2Vfc3lzX3NvY2tldCBuZXQvc29ja2V0 LmM6MTUyMCBbaW5saW5lXQogX19pYTMyX3N5c19zb2NrZXQrMHg3My8weGIwIG5ldC9zb2NrZXQu YzoxNTIwCiBkb19zeXNjYWxsXzMyX2lycXNfb24gYXJjaC94ODYvZW50cnkvY29tbW9uLmM6MzM3 IFtpbmxpbmVdCiBkb19mYXN0X3N5c2NhbGxfMzIrMHgyN2IvMHhlMTYgYXJjaC94ODYvZW50cnkv Y29tbW9uLmM6NDA4CiBlbnRyeV9TWVNFTlRFUl9jb21wYXQrMHg3MC8weDdmIGFyY2gveDg2L2Vu dHJ5L2VudHJ5XzY0X2NvbXBhdC5TOjEzOQoKRnJlZWQgYnkgdGFzayAxNzoKIHNhdmVfc3RhY2sr MHgyMy8weDkwIG1tL2thc2FuL2NvbW1vbi5jOjcyCiBzZXRfdHJhY2sgbW0va2FzYW4vY29tbW9u LmM6ODAgW2lubGluZV0KIGthc2FuX3NldF9mcmVlX2luZm8gbW0va2FzYW4vY29tbW9uLmM6MzM1 IFtpbmxpbmVdCiBfX2thc2FuX3NsYWJfZnJlZSsweDEwMi8weDE1MCBtbS9rYXNhbi9jb21tb24u Yzo0NzQKIGthc2FuX3NsYWJfZnJlZSsweGUvMHgxMCBtbS9rYXNhbi9jb21tb24uYzo0ODMKIF9f Y2FjaGVfZnJlZSBtbS9zbGFiLmM6MzQyNiBbaW5saW5lXQoga21lbV9jYWNoZV9mcmVlKzB4ODYv MHgzMjAgbW0vc2xhYi5jOjM2OTQKIHNvY2tfZnJlZV9pbm9kZSsweDIwLzB4MzAgbmV0L3NvY2tl dC5jOjI2MQogaV9jYWxsYmFjaysweDQ0LzB4ODAgZnMvaW5vZGUuYzoyMTkKIF9fcmN1X3JlY2xh aW0ga2VybmVsL3JjdS9yY3UuaDoyMjIgW2lubGluZV0KIHJjdV9kb19iYXRjaCBrZXJuZWwvcmN1 L3RyZWUuYzoyMTgzIFtpbmxpbmVdCiByY3VfY29yZSsweDU3MC8weDE1NDAga2VybmVsL3JjdS90 cmVlLmM6MjQwOAogcmN1X2NvcmVfc2krMHg5LzB4MTAga2VybmVsL3JjdS90cmVlLmM6MjQxNwog X19kb19zb2Z0aXJxKzB4MjYyLzB4OThjIGtlcm5lbC9zb2Z0aXJxLmM6MjkyCgpUaGUgYnVnZ3kg YWRkcmVzcyBiZWxvbmdzIHRvIHRoZSBvYmplY3QgYXQgZmZmZjg4ODAxZTBiNDAwMAogd2hpY2gg YmVsb25ncyB0byB0aGUgY2FjaGUgc29ja19pbm9kZV9jYWNoZSBvZiBzaXplIDExNTIKVGhlIGJ1 Z2d5IGFkZHJlc3MgaXMgbG9jYXRlZCAxMjAgYnl0ZXMgaW5zaWRlIG9mCiAxMTUyLWJ5dGUgcmVn aW9uIFtmZmZmODg4MDFlMGI0MDAwLCBmZmZmODg4MDFlMGI0NDgwKQpUaGUgYnVnZ3kgYWRkcmVz cyBiZWxvbmdzIHRvIHRoZSBwYWdlOgpwYWdlOmZmZmZlYTAwMDA3ODJkMDAgcmVmY291bnQ6MSBt YXBjb3VudDowIG1hcHBpbmc6ZmZmZjg4ODA3YWE1OWM0MCBpbmRleDoweGZmZmY4ODgwMWUwYjRm ZmQKcmF3OiAwMGZmZmUwMDAwMDAwMjAwIGZmZmZlYTAwMDA4ZTZjODggZmZmZmVhMDAwMDc4MmQ0 OCBmZmZmODg4MDdhYTU5YzQwCnJhdzogZmZmZjg4ODAxZTBiNGZmZCBmZmZmODg4MDFlMGI0MDAw IDAwMDAwMDAxMDAwMDAwMDMgMDAwMDAwMDAwMDAwMDAwMApwYWdlIGR1bXBlZCBiZWNhdXNlOiBr YXNhbjogYmFkIGFjY2VzcyBkZXRlY3RlZAoKTWVtb3J5IHN0YXRlIGFyb3VuZCB0aGUgYnVnZ3kg YWRkcmVzczoKIGZmZmY4ODgwMWUwYjNmMDA6IGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZi IGZiIGZiIGZjIGZjIGZjIGZjCiBmZmZmODg4MDFlMGIzZjgwOiBmYyBmYyBmYyBmYyBmYyBmYyBm YyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYwo+ZmZmZjg4ODAxZTBiNDAwMDogZmIgZmIgZmIg ZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIGZmZmY4ODgw MWUwYjQwODA6IGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZi CiBmZmZmODg4MDFlMGI0MTAwOiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBm YiBmYiBmYiBmYgoKRml4ZXM6IGFiZjlkNTM3ZmVhMiAoImxsYzogYWRkIHN1cHBvcnQgZm9yIFNP X0JJTkRUT0RFVklDRSIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29v Z2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIG5ldC9sbGMvYWZfbGxjLmMgfCAxMCArKysrKysrLS0tCiAxIGZpbGUgY2hhbmdl ZCwgNyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9sbGMv YWZfbGxjLmMgYi9uZXQvbGxjL2FmX2xsYy5jCmluZGV4IDU0ZmI4ZDQ1MmE3Yi4uNmU1M2U0M2Mx OTA3IDEwMDY0NAotLS0gYS9uZXQvbGxjL2FmX2xsYy5jCisrKyBiL25ldC9sbGMvYWZfbGxjLmMK QEAgLTI3Myw2ICsyNzMsMTAgQEAgc3RhdGljIGludCBsbGNfdWlfYXV0b2JpbmQoc3RydWN0IHNv Y2tldCAqc29jaywgc3RydWN0IHNvY2thZGRyX2xsYyAqYWRkcikKIAogCWlmICghc29ja19mbGFn KHNrLCBTT0NLX1pBUFBFRCkpCiAJCWdvdG8gb3V0OworCWlmICghYWRkci0+c2xsY19hcnBocmQp CisJCWFkZHItPnNsbGNfYXJwaHJkID0gQVJQSFJEX0VUSEVSOworCWlmIChhZGRyLT5zbGxjX2Fy cGhyZCAhPSBBUlBIUkRfRVRIRVIpCisJCWdvdG8gb3V0OwogCXJjID0gLUVOT0RFVjsKIAlpZiAo c2stPnNrX2JvdW5kX2Rldl9pZikgewogCQlsbGMtPmRldiA9IGRldl9nZXRfYnlfaW5kZXgoJmlu aXRfbmV0LCBzay0+c2tfYm91bmRfZGV2X2lmKTsKQEAgLTMyOCw3ICszMzIsOSBAQCBzdGF0aWMg aW50IGxsY191aV9iaW5kKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrYWRkciAqdWFk ZHIsIGludCBhZGRybGVuKQogCWlmICh1bmxpa2VseSghc29ja19mbGFnKHNrLCBTT0NLX1pBUFBF RCkgfHwgYWRkcmxlbiAhPSBzaXplb2YoKmFkZHIpKSkKIAkJZ290byBvdXQ7CiAJcmMgPSAtRUFG Tk9TVVBQT1JUOwotCWlmICh1bmxpa2VseShhZGRyLT5zbGxjX2ZhbWlseSAhPSBBRl9MTEMpKQor CWlmICghYWRkci0+c2xsY19hcnBocmQpCisJCWFkZHItPnNsbGNfYXJwaHJkID0gQVJQSFJEX0VU SEVSOworCWlmICh1bmxpa2VseShhZGRyLT5zbGxjX2ZhbWlseSAhPSBBRl9MTEMgfHwgYWRkci0+ c2xsY19hcnBocmQgIT0gQVJQSFJEX0VUSEVSKSkKIAkJZ290byBvdXQ7CiAJZHByaW50aygiJXM6 IGJpbmRpbmcgJTAyWFxuIiwgX19mdW5jX18sIGFkZHItPnNsbGNfc2FwKTsKIAlyYyA9IC1FTk9E RVY7CkBAIC0zMzYsOCArMzQyLDYgQEAgc3RhdGljIGludCBsbGNfdWlfYmluZChzdHJ1Y3Qgc29j a2V0ICpzb2NrLCBzdHJ1Y3Qgc29ja2FkZHIgKnVhZGRyLCBpbnQgYWRkcmxlbikKIAlpZiAoc2st PnNrX2JvdW5kX2Rldl9pZikgewogCQlsbGMtPmRldiA9IGRldl9nZXRfYnlfaW5kZXhfcmN1KCZp bml0X25ldCwgc2stPnNrX2JvdW5kX2Rldl9pZik7CiAJCWlmIChsbGMtPmRldikgewotCQkJaWYg KCFhZGRyLT5zbGxjX2FycGhyZCkKLQkJCQlhZGRyLT5zbGxjX2FycGhyZCA9IGxsYy0+ZGV2LT50 eXBlOwogCQkJaWYgKGlzX3plcm9fZXRoZXJfYWRkcihhZGRyLT5zbGxjX21hYykpCiAJCQkJbWVt Y3B5KGFkZHItPnNsbGNfbWFjLCBsbGMtPmRldi0+ZGV2X2FkZHIsCiAJCQkJICAgICAgIElGSFdB RERSTEVOKTsKLS0gCjIuMjYuMgoKCkZyb20gOWM5YzFkZTRlYjNkNjlkZTk3N2M4NzRlOWM4OGEy ZDczZWFkMmZjZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWFydGluIFZhcmdoZXNl IDxtYXJ0aW4udmFyZ2hlc2VAbm9raWEuY29tPgpEYXRlOiBTdW4sIDUgSnVsIDIwMjAgMTQ6MjM6 NDkgKzA1MzAKU3ViamVjdDogW1BBVENIIDA5LzQ0XSBuZXQ6IEFkZGVkIHBvaW50ZXIgY2hlY2sg Zm9yIGRzdC0+b3BzLT5uZWlnaF9sb29rdXAgaW4KIGRzdF9uZWlnaF9sb29rdXBfc2tiCgpbIFVw c3RyZWFtIGNvbW1pdCAzOTRkZTExMGE3MzM5NWRlMmNhNDUxNmIwZGU0MzVlOTFiMTFiNjA0IF0K ClRoZSBwYWNrZXRzIGZyb20gdHVubmVsIGRldmljZXMgKGVnIGJhcmV1ZHApIG1heSBoYXZlIG9u bHkKbWV0YWRhdGEgaW4gdGhlIGRzdCBwb2ludGVyIG9mIHNrYi4gSGVuY2UgYSBwb2ludGVyIGNo ZWNrIG9mCm5laWdoX2xvb2t1cCBpcyBuZWVkZWQgaW4gZHN0X25laWdoX2xvb2t1cF9za2IKCktl cm5lbCBjcmFzaGVzIHdoZW4gcGFja2V0cyBmcm9tIGJhcmV1ZHAgZGV2aWNlIGlzIHByb2Nlc3Nl ZCBpbgp0aGUga2VybmVsIG5laWdoYm91ciBzdWJzeXRlbS4KClsgIDEzMy4zODQ0ODRdIEJVRzog a2VybmVsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSwgYWRkcmVzczogMDAwMDAwMDAwMDAwMDAw MApbICAxMzMuMzg1MjQwXSAjUEY6IHN1cGVydmlzb3IgaW5zdHJ1Y3Rpb24gZmV0Y2ggaW4ga2Vy bmVsIG1vZGUKWyAgMTMzLjM4NTgyOF0gI1BGOiBlcnJvcl9jb2RlKDB4MDAxMCkgLSBub3QtcHJl c2VudCBwYWdlClsgIDEzMy4zODY2MDNdIFBHRCAwIFA0RCAwClsgIDEzMy4zODY4NzVdIE9vcHM6 IDAwMTAgWyMxXSBTTVAgUFRJClsgIDEzMy4zODcyNzVdIENQVTogMCBQSUQ6IDUwNDUgQ29tbTog cGluZyBUYWludGVkOiBHICAgICAgICBXICAgICAgICAgNS44LjAtcmMyKyAjMTUKWyAgMTMzLjM4 ODA1Ml0gSGFyZHdhcmUgbmFtZTogUmVkIEhhdCBLVk0sIEJJT1MgMC41LjEgMDEvMDEvMjAxMQpb ICAxMzMuMzkxMDc2XSBSSVA6IDAwMTA6MHgwClsgIDEzMy4zOTI0MDFdIENvZGU6IEJhZCBSSVAg dmFsdWUuClsgIDEzMy4zOTQwMjldIFJTUDogMDAxODpmZmZmYjc5OTgwMDAzZDUwIEVGTEFHUzog MDAwMTAyNDYKWyAgMTMzLjM5NjY1Nl0gUkFYOiAwMDAwMDAwMDgwMDAwMTAyIFJCWDogZmZmZjlk ZTJmZTBkNjYwMCBSQ1g6IGZmZmY5ZGUyZmU1ZTlkMDAKWyAgMTMzLjM5OTAxOF0gUkRYOiAwMDAw MDAwMDAwMDAwMDAwIFJTSTogZmZmZjlkZTJmZTVlOWQwMCBSREk6IGZmZmY5ZGUyZmMyMWI0MDAK WyAgMTMzLjM5OTY4NV0gUkJQOiBmZmZmOWRlMmZlNWU5ZDAwIFIwODogMDAwMDAwMDAwMDAwMDAw MCBSMDk6IDAwMDAwMDAwMDAwMDAwMDAKWyAgMTMzLjQwMDM1MF0gUjEwOiBmZmZmOWRlMmZiYzZi ZTIyIFIxMTogZmZmZjlkZTJmZTBkNjYwMCBSMTI6IGZmZmY5ZGUyZmMyMWI0MDAKWyAgMTMzLjQw MTAxMF0gUjEzOiBmZmZmOWRlMmZlMGQ2NjI4IFIxNDogMDAwMDAwMDAwMDAwMDAwMSBSMTU6IDAw MDAwMDAwMDAwMDAwMDMKWyAgMTMzLjQwMTY2N10gRlM6ICAwMDAwN2ZlMDE0OTE4NzQwKDAwMDAp IEdTOmZmZmY5ZGUyZmVjMDAwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMApbICAxMzMu NDAyNDEyXSBDUzogIDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMz ClsgIDEzMy40MDI5NDhdIENSMjogZmZmZmZmZmZmZmZmZmZkNiBDUjM6IDAwMDAwMDAwM2JiNzIw MDAgQ1I0OiAwMDAwMDAwMDAwMDAwNmYwClsgIDEzMy40MDM2MTFdIERSMDogMDAwMDAwMDAwMDAw MDAwMCBEUjE6IDAwMDAwMDAwMDAwMDAwMDAgRFIyOiAwMDAwMDAwMDAwMDAwMDAwClsgIDEzMy40 MDQyNzBdIERSMzogMDAwMDAwMDAwMDAwMDAwMCBEUjY6IDAwMDAwMDAwZmZmZTBmZjAgRFI3OiAw MDAwMDAwMDAwMDAwNDAwClsgIDEzMy40MDQ5MzNdIENhbGwgVHJhY2U6ClsgIDEzMy40MDUxNjld ICA8SVJRPgpbICAxMzMuNDA1MzY3XSAgX19uZWlnaF91cGRhdGUrMHg1YTQvMHg4ZjAKWyAgMTMz LjQwNTczNF0gIGFycF9wcm9jZXNzKzB4Mjk0LzB4ODIwClsgIDEzMy40MDYwNzZdICA/IF9fbmV0 aWZfcmVjZWl2ZV9za2JfY29yZSsweDg2Ni8weGU3MApbICAxMzMuNDA2NTU3XSAgYXJwX3Jjdisw eDEyOS8weDFjMApbICAxMzMuNDA2ODgyXSAgX19uZXRpZl9yZWNlaXZlX3NrYl9vbmVfY29yZSsw eDk1LzB4YjAKWyAgMTMzLjQwNzM0MF0gIHByb2Nlc3NfYmFja2xvZysweGE3LzB4MTUwClsgIDEz My40MDc3MDVdICBuZXRfcnhfYWN0aW9uKzB4MmFmLzB4NDIwClsgIDEzMy40MDg0NTddICBfX2Rv X3NvZnRpcnErMHhkYS8weDJhOApbICAxMzMuNDA4ODEzXSAgYXNtX2NhbGxfb25fc3RhY2srMHgx Mi8weDIwClsgIDEzMy40MDkyOTBdICA8L0lSUT4KWyAgMTMzLjQwOTUxOV0gIGRvX3NvZnRpcnFf b3duX3N0YWNrKzB4MzkvMHg1MApbICAxMzMuNDEwMDM2XSAgZG9fc29mdGlycSsweDUwLzB4NjAK WyAgMTMzLjQxMDQwMV0gIF9fbG9jYWxfYmhfZW5hYmxlX2lwKzB4NTAvMHg2MApbICAxMzMuNDEw ODcxXSAgaXBfZmluaXNoX291dHB1dDIrMHgxOTUvMHg1MzAKWyAgMTMzLjQxMTI4OF0gIGlwX291 dHB1dCsweDcyLzB4ZjAKWyAgMTMzLjQxMTY3M10gID8gX19pcF9maW5pc2hfb3V0cHV0KzB4MWYw LzB4MWYwClsgIDEzMy40MTIxMjJdICBpcF9zZW5kX3NrYisweDE1LzB4NDAKWyAgMTMzLjQxMjQ3 MV0gIHJhd19zZW5kbXNnKzB4ODUzLzB4YWIwClsgIDEzMy40MTI4NTVdICA/IGluc2VydF9wZm4r MHhmZS8weDI3MApbICAxMzMuNDEzODI3XSAgPyB2dmFyX2ZhdWx0KzB4ZWMvMHgxOTAKWyAgMTMz LjQxNDc3Ml0gIHNvY2tfc2VuZG1zZysweDU3LzB4ODAKWyAgMTMzLjQxNTY4NV0gIF9fc3lzX3Nl bmR0bysweGRjLzB4MTYwClsgIDEzMy40MTY2MDVdICA/IHN5c2NhbGxfdHJhY2VfZW50ZXIrMHgx ZDQvMHgyYjAKWyAgMTMzLjQxNzY3OV0gID8gX19hdWRpdF9zeXNjYWxsX2V4aXQrMHgxZDkvMHgy ODAKWyAgMTMzLjQxODc1M10gID8gX19wcmVwYXJlX2V4aXRfdG9fdXNlcm1vZGUrMHg1ZC8weDFh MApbICAxMzMuNDE5ODE5XSAgX194NjRfc3lzX3NlbmR0bysweDI0LzB4MzAKWyAgMTMzLjQyMDg0 OF0gIGRvX3N5c2NhbGxfNjQrMHg0ZC8weDkwClsgIDEzMy40MjE3NjhdICBlbnRyeV9TWVNDQUxM XzY0X2FmdGVyX2h3ZnJhbWUrMHg0NC8weGE5ClsgIDEzMy40MjI4MzNdIFJJUDogMDAzMzoweDdm ZTAxMzY4OWMwMwpbICAxMzMuNDIzNzQ5XSBDb2RlOiBCYWQgUklQIHZhbHVlLgpbICAxMzMuNDI0 NjI0XSBSU1A6IDAwMmI6MDAwMDdmZmM3Mjg4ZjQxOCBFRkxBR1M6IDAwMDAwMjQ2IE9SSUdfUkFY OiAwMDAwMDAwMDAwMDAwMDJjClsgIDEzMy40MjU5NDBdIFJBWDogZmZmZmZmZmZmZmZmZmZkYSBS Qlg6IDAwMDA1NjE1MWZjNjM3MjAgUkNYOiAwMDAwN2ZlMDEzNjg5YzAzClsgIDEzMy40MjcyMjVd IFJEWDogMDAwMDAwMDAwMDAwMDA0MCBSU0k6IDAwMDA1NjE1MWZjNjM3MjAgUkRJOiAwMDAwMDAw MDAwMDAwMDAzClsgIDEzMy40Mjg0ODFdIFJCUDogMDAwMDdmZmM3Mjg5MGIzMCBSMDg6IDAwMDA1 NjE1MWZjNjA1MDAgUjA5OiAwMDAwMDAwMDAwMDAwMDEwClsgIDEzMy40Mjk3NTddIFIxMDogMDAw MDAwMDAwMDAwMDAwMCBSMTE6IDAwMDAwMDAwMDAwMDAyNDYgUjEyOiAwMDAwMDAwMDAwMDAwMDQw ClsgIDEzMy40MzEwNDFdIFIxMzogMDAwMDU2MTUxZmM2MzZlMCBSMTQ6IDAwMDA1NjE1MWZjNjE2 YmMgUjE1OiAwMDAwMDAwMDAwMDAwMDgwClsgIDEzMy40MzI0ODFdIE1vZHVsZXMgbGlua2VkIGlu OiBtcGxzX2lwdHVubmVsIGFjdF9taXJyZWQgYWN0X3R1bm5lbF9rZXkgY2xzX2Zsb3dlciBzY2hf aW5ncmVzcyB2ZXRoIG1wbHNfcm91dGVyIGlwX3R1bm5lbCBiYXJldWRwIGlwNl91ZHBfdHVubmVs IHVkcF90dW5uZWwgbWFjc2VjIHVkcF9kaWFnIGluZXRfZGlhZyB1bml4X2RpYWcgYWZfcGFja2V0 X2RpYWcgbmV0bGlua19kaWFnIGJpbmZtdF9taXNjIHh0X01BU1FVRVJBREUgaXB0YWJsZV9uYXQg eHRfYWRkcnR5cGUgeHRfY29ubnRyYWNrIG5mX25hdCBuZl9jb25udHJhY2sgbmZfZGVmcmFnX2lw djYgbmZfZGVmcmFnX2lwdjQgYnJfbmV0ZmlsdGVyIGJyaWRnZSBzdHAgbGxjIGVidGFibGVfZmls dGVyIGVidGFibGVzIG92ZXJsYXkgaXA2dGFibGVfZmlsdGVyIGlwNl90YWJsZXMgaXB0YWJsZV9m aWx0ZXIgc3VucnBjIGV4dDQgbWJjYWNoZSBqYmQyIHBjc3BrciBpMmNfcGlpeDQgdmlydGlvX2Jh bGxvb24gam95ZGV2IGlwX3RhYmxlcyB4ZnMgbGliY3JjMzJjIGF0YV9nZW5lcmljIHF4bCBwYXRh X2FjcGkgZHJtX3R0bV9oZWxwZXIgdHRtIGRybV9rbXNfaGVscGVyIHN5c2NvcHlhcmVhIHN5c2Zp bGxyZWN0IHN5c2ltZ2JsdCBmYl9zeXNfZm9wcyBkcm0gYXRhX3BpaXggbGliYXRhIHZpcnRpb19u ZXQgbmV0X2ZhaWxvdmVyIHZpcnRpb19jb25zb2xlIGZhaWxvdmVyIHZpcnRpb19ibGsgaTJjX2Nv cmUgdmlydGlvX3BjaSB2aXJ0aW9fcmluZyBzZXJpb19yYXcgZmxvcHB5IHZpcnRpbyBkbV9taXJy b3IgZG1fcmVnaW9uX2hhc2ggZG1fbG9nIGRtX21vZApbICAxMzMuNDQ0MDQ1XSBDUjI6IDAwMDAw MDAwMDAwMDAwMDAKWyAgMTMzLjQ0NTA4Ml0gLS0tWyBlbmQgdHJhY2UgZjRhZWVlMTk1OGZkMTYz OCBdLS0tClsgIDEzMy40NDYyMzZdIFJJUDogMDAxMDoweDAKWyAgMTMzLjQ0NzE4MF0gQ29kZTog QmFkIFJJUCB2YWx1ZS4KWyAgMTMzLjQ0ODE1Ml0gUlNQOiAwMDE4OmZmZmZiNzk5ODAwMDNkNTAg RUZMQUdTOiAwMDAxMDI0NgpbICAxMzMuNDQ5MzYzXSBSQVg6IDAwMDAwMDAwODAwMDAxMDIgUkJY OiBmZmZmOWRlMmZlMGQ2NjAwIFJDWDogZmZmZjlkZTJmZTVlOWQwMApbICAxMzMuNDUwODM1XSBS RFg6IDAwMDAwMDAwMDAwMDAwMDAgUlNJOiBmZmZmOWRlMmZlNWU5ZDAwIFJESTogZmZmZjlkZTJm YzIxYjQwMApbICAxMzMuNDUyMjM3XSBSQlA6IGZmZmY5ZGUyZmU1ZTlkMDAgUjA4OiAwMDAwMDAw MDAwMDAwMDAwIFIwOTogMDAwMDAwMDAwMDAwMDAwMApbICAxMzMuNDUzNzIyXSBSMTA6IGZmZmY5 ZGUyZmJjNmJlMjIgUjExOiBmZmZmOWRlMmZlMGQ2NjAwIFIxMjogZmZmZjlkZTJmYzIxYjQwMApb ICAxMzMuNDU1MTQ5XSBSMTM6IGZmZmY5ZGUyZmUwZDY2MjggUjE0OiAwMDAwMDAwMDAwMDAwMDAx IFIxNTogMDAwMDAwMDAwMDAwMDAwMwpbICAxMzMuNDU2NTIwXSBGUzogIDAwMDA3ZmUwMTQ5MTg3 NDAoMDAwMCkgR1M6ZmZmZjlkZTJmZWMwMDAwMCgwMDAwKSBrbmxHUzowMDAwMDAwMDAwMDAwMDAw ClsgIDEzMy40NTgwNDZdIENTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAw ODAwNTAwMzMKWyAgMTMzLjQ1OTM0Ml0gQ1IyOiBmZmZmZmZmZmZmZmZmZmQ2IENSMzogMDAwMDAw MDAzYmI3MjAwMCBDUjQ6IDAwMDAwMDAwMDAwMDA2ZjAKWyAgMTMzLjQ2MDc4Ml0gRFIwOiAwMDAw MDAwMDAwMDAwMDAwIERSMTogMDAwMDAwMDAwMDAwMDAwMCBEUjI6IDAwMDAwMDAwMDAwMDAwMDAK WyAgMTMzLjQ2MjI0MF0gRFIzOiAwMDAwMDAwMDAwMDAwMDAwIERSNjogMDAwMDAwMDBmZmZlMGZm MCBEUjc6IDAwMDAwMDAwMDAwMDA0MDAKWyAgMTMzLjQ2MzY5N10gS2VybmVsIHBhbmljIC0gbm90 IHN5bmNpbmc6IEZhdGFsIGV4Y2VwdGlvbiBpbiBpbnRlcnJ1cHQKWyAgMTMzLjQ2NTIyNl0gS2Vy bmVsIE9mZnNldDogMHhmYTAwMDAwIGZyb20gMHhmZmZmZmZmZjgxMDAwMDAwIChyZWxvY2F0aW9u IHJhbmdlOiAweGZmZmZmZmZmODAwMDAwMDAtMHhmZmZmZmZmZmJmZmZmZmZmKQpbICAxMzMuNDY3 MDI1XSAtLS1bIGVuZCBLZXJuZWwgcGFuaWMgLSBub3Qgc3luY2luZzogRmF0YWwgZXhjZXB0aW9u IGluIGludGVycnVwdCBdLS0tCgpGaXhlczogYWFhMGMyM2NiOTAxICgiRml4IGRzdF9uZWlnaF9s b29rdXAvZHN0X25laWdoX2xvb2t1cF9za2IgcmV0dXJuIHZhbHVlIGhhbmRsaW5nIGJ1ZyIpClNp Z25lZC1vZmYtYnk6IE1hcnRpbiBWYXJnaGVzZSA8bWFydGluLnZhcmdoZXNlQG5va2lhLmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IGluY2x1ZGUvbmV0L2RzdC5oIHwgMTAgKysrKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDkgaW5z ZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2RzdC5o IGIvaW5jbHVkZS9uZXQvZHN0LmgKaW5kZXggMDdhZGZhY2Q4MDg4Li44NTJkOGZiMzZhYjcgMTAw NjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2RzdC5oCisrKyBiL2luY2x1ZGUvbmV0L2RzdC5oCkBAIC00 MDAsNyArNDAwLDE1IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IG5laWdoYm91ciAqZHN0X25laWdo X2xvb2t1cChjb25zdCBzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QsIGNvCiBzdGF0aWMgaW5saW5lIHN0 cnVjdCBuZWlnaGJvdXIgKmRzdF9uZWlnaF9sb29rdXBfc2tiKGNvbnN0IHN0cnVjdCBkc3RfZW50 cnkgKmRzdCwKIAkJCQkJCSAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKLQlzdHJ1Y3QgbmVp Z2hib3VyICpuID0gIGRzdC0+b3BzLT5uZWlnaF9sb29rdXAoZHN0LCBza2IsIE5VTEwpOworCXN0 cnVjdCBuZWlnaGJvdXIgKm4gPSBOVUxMOworCisJLyogVGhlIHBhY2tldHMgZnJvbSB0dW5uZWwg ZGV2aWNlcyAoZWcgYmFyZXVkcCkgbWF5IGhhdmUgb25seQorCSAqIG1ldGFkYXRhIGluIHRoZSBk c3QgcG9pbnRlciBvZiBza2IuIEhlbmNlIGEgcG9pbnRlciBjaGVjayBvZgorCSAqIG5laWdoX2xv b2t1cCBpcyBuZWVkZWQuCisJICovCisJaWYgKGRzdC0+b3BzLT5uZWlnaF9sb29rdXApCisJCW4g PSBkc3QtPm9wcy0+bmVpZ2hfbG9va3VwKGRzdCwgc2tiLCBOVUxMKTsKKwogCXJldHVybiBJU19F UlIobikgPyBOVUxMIDogbjsKIH0KIAotLSAKMi4yNi4yCgoKRnJvbSAzYWE2ZDFkZTI0ODQzNjEy OGYxMTUzMzRlMWFjMjg2YWZmZDBlOGNmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBE bWl0cnkgQm9nZGFub3YgPGRib2dkYW5vdkBtYXJ2ZWxsLmNvbT4KRGF0ZTogV2VkLCA4IEp1bCAy MDIwIDE3OjE3OjEwICswMzAwClN1YmplY3Q6IFtQQVRDSCAxMC80NF0gbmV0OiBhdGxhbnRpYzog Zml4IGlwIGRzdCBhbmQgaXB2NiBhZGRyZXNzIGZpbHRlcnMKClsgVXBzdHJlYW0gY29tbWl0IGE0 MmU2YWVlN2Y0N2E4YTY4ZDA5OTIzYzcyMGZjOGY2MDVhMDQyMDcgXQoKVGhpcyBwYXRjaCBmaXhl cyBpcCBkc3QgYW5kIGlwdjYgYWRkcmVzcyBmaWx0ZXJzLgpUaGVyZSB3ZXJlIDIgbWlzdGFrZXMg aW4gdGhlIGNvZGUsIHdoaWNoIGxlZCB0byB0aGUgaXNzdWU6CiogaW52YWxpZCByZWdpc3RlciB3 YXMgdXNlZCBmb3IgaXB2NCBkc3QgYWRkcmVzczsKKiBpbmNvcnJlY3Qgd3JpdGUgb3JkZXIgb2Yg ZHdvcmRzIGZvciBpcHY2IGFkZHJlc3Nlcy4KCkZpeGVzOiAyM2U3YTcxOGE0OWIgKCJuZXQ6IGFx dWFudGlhOiBhZGQgcngtZmxvdyBmaWx0ZXIgZGVmaW5pdGlvbnMiKQpTaWduZWQtb2ZmLWJ5OiBE bWl0cnkgQm9nZGFub3YgPGRib2dkYW5vdkBtYXJ2ZWxsLmNvbT4KU2lnbmVkLW9mZi1ieTogTWFy ayBTdGFyb3ZveXRvdiA8bXN0YXJvdm9pdG92QG1hcnZlbGwuY29tPgpTaWduZWQtb2ZmLWJ5OiBB bGV4YW5kZXIgTG9iYWtpbiA8YWxvYmFraW5AbWFydmVsbC5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhl cm5ldC9hcXVhbnRpYS9hdGxhbnRpYy9od19hdGwvaHdfYXRsX2xsaC5jICAgIHwgNCArKy0tCiAu Li4vZXRoZXJuZXQvYXF1YW50aWEvYXRsYW50aWMvaHdfYXRsL2h3X2F0bF9sbGhfaW50ZXJuYWwu aCAgIHwgMiArLQogMiBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYXF1YW50aWEvYXRsYW50aWMv aHdfYXRsL2h3X2F0bF9sbGguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FxdWFudGlhL2F0bGFu dGljL2h3X2F0bC9od19hdGxfbGxoLmMKaW5kZXggZDFmNjhmYzE2MjkxLi5lNmIxZmIxMGFkOTEg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FxdWFudGlhL2F0bGFudGljL2h3X2F0 bC9od19hdGxfbGxoLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYXF1YW50aWEvYXRsYW50 aWMvaHdfYXRsL2h3X2F0bF9sbGguYwpAQCAtMTY1MSw3ICsxNjUxLDcgQEAgdm9pZCBod19hdGxf cnBmbDNsNF9pcHY2X3NyY19hZGRyX3NldChzdHJ1Y3QgYXFfaHdfcyAqYXFfaHcsIHU4IGxvY2F0 aW9uLAogCWZvciAoaSA9IDA7IGkgPCA0OyArK2kpCiAJCWFxX2h3X3dyaXRlX3JlZyhhcV9odywK IAkJCQlIV19BVExfUlBGX0wzX1NSQ0FfQURSKGxvY2F0aW9uICsgaSksCi0JCQkJaXB2Nl9zcmNb aV0pOworCQkJCWlwdjZfc3JjWzMgLSBpXSk7CiB9CiAKIHZvaWQgaHdfYXRsX3JwZmwzbDRfaXB2 Nl9kZXN0X2FkZHJfc2V0KHN0cnVjdCBhcV9od19zICphcV9odywgdTggbG9jYXRpb24sCkBAIC0x NjYyLDcgKzE2NjIsNyBAQCB2b2lkIGh3X2F0bF9ycGZsM2w0X2lwdjZfZGVzdF9hZGRyX3NldChz dHJ1Y3QgYXFfaHdfcyAqYXFfaHcsIHU4IGxvY2F0aW9uLAogCWZvciAoaSA9IDA7IGkgPCA0OyAr K2kpCiAJCWFxX2h3X3dyaXRlX3JlZyhhcV9odywKIAkJCQlIV19BVExfUlBGX0wzX0RTVEFfQURS KGxvY2F0aW9uICsgaSksCi0JCQkJaXB2Nl9kZXN0W2ldKTsKKwkJCQlpcHY2X2Rlc3RbMyAtIGld KTsKIH0KIAogdTMyIGh3X2F0bF9zZW1fcmFtX2dldChzdHJ1Y3QgYXFfaHdfcyAqc2VsZikKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FxdWFudGlhL2F0bGFudGljL2h3X2F0bC9o d19hdGxfbGxoX2ludGVybmFsLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hcXVhbnRpYS9hdGxh bnRpYy9od19hdGwvaHdfYXRsX2xsaF9pbnRlcm5hbC5oCmluZGV4IDE4ZGUyZjdiODk1OS4uYTc1 OTBiOWVhMmRmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hcXVhbnRpYS9hdGxh bnRpYy9od19hdGwvaHdfYXRsX2xsaF9pbnRlcm5hbC5oCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2FxdWFudGlhL2F0bGFudGljL2h3X2F0bC9od19hdGxfbGxoX2ludGVybmFsLmgKQEAgLTEz NjAsNyArMTM2MCw3IEBACiAgKi8KIAogIC8qIFJlZ2lzdGVyIGFkZHJlc3MgZm9yIGJpdGZpZWxk IHBpZl9ycGZfbDNfZGEwX2lbMzE6MF0gKi8KLSNkZWZpbmUgSFdfQVRMX1JQRl9MM19EU1RBX0FE UihmaWx0ZXIpICgweDAwMDA1M0IwICsgKGZpbHRlcikgKiAweDQpCisjZGVmaW5lIEhXX0FUTF9S UEZfTDNfRFNUQV9BRFIoZmlsdGVyKSAoMHgwMDAwNTNEMCArIChmaWx0ZXIpICogMHg0KQogLyog Qml0bWFzayBmb3IgYml0ZmllbGQgbDNfZGEwWzFGOjBdICovCiAjZGVmaW5lIEhXX0FUTF9SUEZf TDNfRFNUQV9NU0sgMHhGRkZGRkZGRnUKIC8qIEludmVydGVkIGJpdG1hc2sgZm9yIGJpdGZpZWxk IGwzX2RhMFsxRjowXSAqLwotLSAKMi4yNi4yCgoKRnJvbSAxMzA3NjY4NjUyYjA2Zjk5NWNkMGZm ZmIxOTBjZmE2MDBjNzYxMjkxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDb2RyaW4g Q2l1Ym90YXJpdSA8Y29kcmluLmNpdWJvdGFyaXVAbWljcm9jaGlwLmNvbT4KRGF0ZTogVGh1LCAy IEp1bCAyMDIwIDEyOjQ0OjUwICswMzAwClN1YmplY3Q6IFtQQVRDSCAxMS80NF0gbmV0OiBkc2E6 IG1pY3JvY2hpcDogc2V0IHRoZSBjb3JyZWN0IG51bWJlciBvZiBwb3J0cwoKWyBVcHN0cmVhbSBj b21taXQgYWYxOTlhMWE5Y2IwMmVjMDE5NDgwNGJkNDZjMTc0YjZkYjI2MjA3NSBdCgpUaGUgbnVt YmVyIG9mIHBvcnRzIGlzIGluY29ycmVjdGx5IHNldCB0byB0aGUgbWF4aW11bSBhdmFpbGFibGUg Zm9yIGEgRFNBCnN3aXRjaC4gRXZlbiBpZiB0aGUgZXh0cmEgcG9ydHMgYXJlIG5vdCB1c2VkLCB0 aGlzIGNhdXNlcyBzb21lIGZ1bmN0aW9ucwp0byBiZSBjYWxsZWQgbGF0ZXIsIGxpa2UgcG9ydF9k aXNhYmxlKCkgYW5kIHBvcnRfc3RwX3N0YXRlX3NldCgpLiBJZiB0aGUKZHJpdmVyIGRvZXNuJ3Qg Y2hlY2sgdGhlIHBvcnQgaW5kZXgsIGl0IHdpbGwgZW5kIHVwIG1vZGlmeWluZyB1bmtub3duCnJl Z2lzdGVycy4KCkZpeGVzOiBiOTg3ZTk4ZTUwYWIgKCJkc2E6IGFkZCBEU0Egc3dpdGNoIGRyaXZl ciBmb3IgTWljcm9jaGlwIEtTWjk0NzciKQpTaWduZWQtb2ZmLWJ5OiBDb2RyaW4gQ2l1Ym90YXJp dSA8Y29kcmluLmNpdWJvdGFyaXVAbWljcm9jaGlwLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJldyBM dW5uIDxhbmRyZXdAbHVubi5jaD4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6ODc5NS5j IHwgMyArKysKIGRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6OTQ3Ny5jIHwgMyArKysKIDIg ZmlsZXMgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv ZHNhL21pY3JvY2hpcC9rc3o4Nzk1LmMgYi9kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzejg3 OTUuYwppbmRleCA0N2Q2NWI3N2NhZjcuLjdjMTdiMGY3MDVlYyAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvZHNhL21pY3JvY2hpcC9rc3o4Nzk1LmMKKysrIGIvZHJpdmVycy9uZXQvZHNhL21pY3Jv Y2hpcC9rc3o4Nzk1LmMKQEAgLTEyNjgsNiArMTI2OCw5IEBAIHN0YXRpYyBpbnQga3N6ODc5NV9z d2l0Y2hfaW5pdChzdHJ1Y3Qga3N6X2RldmljZSAqZGV2KQogCQkJcmV0dXJuIC1FTk9NRU07CiAJ fQogCisJLyogc2V0IHRoZSByZWFsIG51bWJlciBvZiBwb3J0cyAqLworCWRldi0+ZHMtPm51bV9w b3J0cyA9IGRldi0+cG9ydF9jbnQ7CisKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3o5NDc3LmMgYi9kcml2ZXJzL25ldC9kc2EvbWljcm9j aGlwL2tzejk0NzcuYwppbmRleCA5YTUxYjhhNGRlNWQuLjhkMTVjMzAxNjAyNCAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3o5NDc3LmMKKysrIGIvZHJpdmVycy9uZXQv ZHNhL21pY3JvY2hpcC9rc3o5NDc3LmMKQEAgLTE1ODgsNiArMTU4OCw5IEBAIHN0YXRpYyBpbnQg a3N6OTQ3N19zd2l0Y2hfaW5pdChzdHJ1Y3Qga3N6X2RldmljZSAqZGV2KQogCQkJcmV0dXJuIC1F Tk9NRU07CiAJfQogCisJLyogc2V0IHRoZSByZWFsIG51bWJlciBvZiBwb3J0cyAqLworCWRldi0+ ZHMtPm51bV9wb3J0cyA9IGRldi0+cG9ydF9jbnQ7CisKIAlyZXR1cm4gMDsKIH0KIAotLSAKMi4y Ni4yCgoKRnJvbSA3YWZjZDlkZGVmOTZjYWM5MWM3NjQxNzk1NzMxNzk4ZWFhYmE2ZTY3IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSdXNzZWxsIEtpbmcgPHJtaytrZXJuZWxAYXJtbGlu dXgub3JnLnVrPgpEYXRlOiBUdWUsIDMwIEp1biAyMDIwIDExOjA0OjQwICswMTAwClN1YmplY3Q6 IFtQQVRDSCAxMi80NF0gbmV0OiBtdm5ldGE6IGZpeCB1c2Ugb2Ygc3RhdGUtPnNwZWVkCgpbIFVw c3RyZWFtIGNvbW1pdCBmMmNhNjczZDJjZDVkZjlhNzYyNDdiNjcwZTlmZmQ0ZDYzNjgyYjNmIF0K CldoZW4gc3VwcG9ydCBmb3Igc2hvcnQgcHJlYW1ibGVzIHdhcyBhZGRlZCwgaXQgaW5jb3JyZWN0 bHkga2V5ZWQgaXRzCmRlY2lzaW9uIG9mZiBzdGF0ZS0+c3BlZWQgaW5zdGVhZCBvZiBzdGF0ZS0+ aW50ZXJmYWNlLiAgc3RhdGUtPnNwZWVkCmlzIG5vdCBndWFyYW50ZWVkIHRvIGJlIGNvcnJlY3Qg Zm9yIGluLWJhbmQgbW9kZXMsIHdoaWNoIGNhbiBsZWFkIHRvCnNob3J0IHByZWFtYmxlcyBiZWlu ZyB1bmV4cGVjdGVkbHkgZGlzYWJsZWQuCgpGaXggdGhpcyBieSBrZXlpbmcgb2ZmIHRoZSBpbnRl cmZhY2UgbW9kZSwgd2hpY2ggaXMgdGhlIG9ubHkgd2F5IHRoYXQKbXZuZXRhIGNhbiBvcGVyYXRl IGF0IDIuNUdicHMuCgpGaXhlczogZGE1OGE5MzFmMjQ4ICgibmV0OiBtdm5ldGE6IEFkZCBzdXBw b3J0IGZvciAyNTAwTWJwcyBTR01JSSIpClNpZ25lZC1vZmYtYnk6IFJ1c3NlbGwgS2luZyA8cm1r K2tlcm5lbEBhcm1saW51eC5vcmcudWs+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212 bmV0YS5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9u KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm5ldGEuYyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZuZXRhLmMKaW5kZXggNDNiNDRhMWU4ZjY5 Li5hMWI2YjQ4YmE4NDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwv bXZuZXRhLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm5ldGEuYwpAQCAt MzkxNyw3ICszOTE3LDcgQEAgc3RhdGljIHZvaWQgbXZuZXRhX21hY19jb25maWcoc3RydWN0IHBo eWxpbmtfY29uZmlnICpjb25maWcsIHVuc2lnbmVkIGludCBtb2RlLAogCS8qIFdoZW4gYXQgMi41 RywgdGhlIGxpbmsgcGFydG5lciBjYW4gc2VuZCBmcmFtZXMgd2l0aCBzaG9ydGVuZWQKIAkgKiBw cmVhbWJsZXMuCiAJICovCi0JaWYgKHN0YXRlLT5zcGVlZCA9PSBTUEVFRF8yNTAwKQorCWlmIChz dGF0ZS0+aW50ZXJmYWNlID09IFBIWV9JTlRFUkZBQ0VfTU9ERV8yNTAwQkFTRVgpCiAJCW5ld19j dHJsNCB8PSBNVk5FVEFfR01BQzRfU0hPUlRfUFJFQU1CTEVfRU5BQkxFOwogCiAJaWYgKHBwLT5j b21waHkgJiYgcHAtPnBoeV9pbnRlcmZhY2UgIT0gc3RhdGUtPmludGVyZmFjZSAmJgotLSAKMi4y Ni4yCgoKRnJvbSBkOTJhMjZlMGMzOGU4NWRmOGM2ZDZkYjRkMDRhYTJlNjYzYjhhZmY0IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW4gQ2FycGVudGVyIDxkYW4uY2FycGVudGVyQG9y YWNsZS5jb20+CkRhdGU6IFR1ZSwgMzAgSnVuIDIwMjAgMTQ6NDY6MTUgKzAzMDAKU3ViamVjdDog W1BBVENIIDEzLzQ0XSBuZXQ6IHFydHI6IEZpeCBhbiBvdXQgb2YgYm91bmRzIHJlYWQKIHFydHJf ZW5kcG9pbnRfcG9zdCgpCgpbIFVwc3RyZWFtIGNvbW1pdCA4ZmY0MWNjMjE3MTQ3MDRlZjAxNThh NTQ2YzNjNGQwN2ZhZTJjOTUyIF0KClRoaXMgY29kZSBhc3N1bWVzIHRoYXQgdGhlIHVzZXIgcGFz c2VkIGluIGVub3VnaCBkYXRhIGZvciBhCnFydHJfaGRyX3YxIG9yIHFydHJfaGRyX3YyIHN0cnVj dCwgYnV0IGl0J3Mgbm90IG5lY2Vzc2FyaWx5IHRydWUuICBJZgp0aGUgYnVmZmVyIGlzIHRvbyBz bWFsbCB0aGVuIGl0IHdpbGwgcmVhZCBiZXlvbmQgdGhlIGVuZC4KClJlcG9ydGVkLWJ5OiBNYW5p dmFubmFuIFNhZGhhc2l2YW0gPG1hbml2YW5uYW4uc2FkaGFzaXZhbUBsaW5hcm8ub3JnPgpSZXBv cnRlZC1ieTogc3l6Ym90K2I4ZmUzOTNmOTk5YTI5MWE5ZWE2QHN5emthbGxlci5hcHBzcG90bWFp bC5jb20KRml4ZXM6IDE5NGNjYzg4Mjk3YSAoIm5ldDogcXJ0cjogU3VwcG9ydCBkZWNvZGluZyBp bmNvbWluZyB2MiBwYWNrZXRzIikKU2lnbmVkLW9mZi1ieTogRGFuIENhcnBlbnRlciA8ZGFuLmNh cnBlbnRlckBvcmFjbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3FydHIvcXJ0ci5jIHwgNiArKysrKy0KIDEgZmlsZSBj aGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQv cXJ0ci9xcnRyLmMgYi9uZXQvcXJ0ci9xcnRyLmMKaW5kZXggMmQ4ZDYxMzFiYzVmLi43ZWNjYmJm NmY4YWQgMTAwNjQ0Ci0tLSBhL25ldC9xcnRyL3FydHIuYworKysgYi9uZXQvcXJ0ci9xcnRyLmMK QEAgLTQyNyw3ICs0MjcsNyBAQCBpbnQgcXJ0cl9lbmRwb2ludF9wb3N0KHN0cnVjdCBxcnRyX2Vu ZHBvaW50ICplcCwgY29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IGxlbikKIAl1bnNpZ25lZCBpbnQg dmVyOwogCXNpemVfdCBoZHJsZW47CiAKLQlpZiAobGVuICYgMykKKwlpZiAobGVuID09IDAgfHwg bGVuICYgMykKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlza2IgPSBuZXRkZXZfYWxsb2Nfc2tiKE5V TEwsIGxlbik7CkBAIC00NDEsNiArNDQxLDggQEAgaW50IHFydHJfZW5kcG9pbnRfcG9zdChzdHJ1 Y3QgcXJ0cl9lbmRwb2ludCAqZXAsIGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCBsZW4pCiAKIAlz d2l0Y2ggKHZlcikgewogCWNhc2UgUVJUUl9QUk9UT19WRVJfMToKKwkJaWYgKGxlbiA8IHNpemVv ZigqdjEpKQorCQkJZ290byBlcnI7CiAJCXYxID0gZGF0YTsKIAkJaGRybGVuID0gc2l6ZW9mKCp2 MSk7CiAKQEAgLTQ1NCw2ICs0NTYsOCBAQCBpbnQgcXJ0cl9lbmRwb2ludF9wb3N0KHN0cnVjdCBx cnRyX2VuZHBvaW50ICplcCwgY29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IGxlbikKIAkJc2l6ZSA9 IGxlMzJfdG9fY3B1KHYxLT5zaXplKTsKIAkJYnJlYWs7CiAJY2FzZSBRUlRSX1BST1RPX1ZFUl8y OgorCQlpZiAobGVuIDwgc2l6ZW9mKCp2MikpCisJCQlnb3RvIGVycjsKIAkJdjIgPSBkYXRhOwog CQloZHJsZW4gPSBzaXplb2YoKnYyKSArIHYyLT5vcHRsZW47CiAKLS0gCjIuMjYuMgoKCkZyb20g MmRjMTRiNDVlODE1N2YzYmM1MzgyNDM4ZGE4MmFhM2JlZDNmZDc5NiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogQ2FybCBIdWFuZyA8Y2podWFuZ0Bjb2RlYXVyb3JhLm9yZz4KRGF0ZTog VHVlLCAzMCBKdW4gMjAyMCAxNDo1Mjo1MSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTQvNDRdIG5l dDogcXJ0cjogZnJlZSBmbG93IGluIF9fcXJ0cl9ub2RlX3JlbGVhc2UKClsgVXBzdHJlYW0gY29t bWl0IDI4NTQxZjNkMzI0ZjZkZTFlNTQ1ZTI4NzUyODNiNmNlZjk1YzVkMzYgXQoKVGhlIGZsb3cg aXMgYWxsb2NhdGVkIGluIHFydHJfdHhfd2FpdCwgYnV0IG5vdCBmcmVlZCB3aGVuIHFydHIgbm9k ZQppcyByZWxlYXNlZC4gKCpzbG90KSBiZWNvbWVzIE5VTEwgYWZ0ZXIgcmFkaXhfdHJlZV9pdGVy X2RlbGV0ZSBpcwpjYWxsZWQgaW4gX19xcnRyX25vZGVfcmVsZWFzZS4gVGhlIGZpeCBpcyB0byBz YXZlICgqc2xvdCkgdG8gYQp2YWlyYWJsZSBhbmQgdGhlbiBmcmVlIGl0LgoKVGhpcyBtZW1vcnkg bGVhayBpcyBjYXRjaGVkIHdoZW4ga21lbWxlYWsgaXMgZW5hYmxlZCBpbiBrZXJuZWwsCnRoZSBy ZXBvcnQgbG9va3MgbGlrZSBiZWxvdzoKCnVucmVmZXJlbmNlZCBvYmplY3QgMHhmZmZmYTBkZTY5 ZTA4NDIwIChzaXplIDMyKToKICBjb21tICJrd29ya2VyL3UxNjozIiwgcGlkIDE3NiwgamlmZmll cyA0Mjk0OTE4Mjc1IChhZ2UgODI4NTguODc2cykKICBoZXggZHVtcCAoZmlyc3QgMzIgYnl0ZXMp OgogICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMjggODQgZTAgNjkgZGUgYTAgZmYgZmYgIC4u Li4uLi4uKC4uaS4uLi4KICAgIDI4IDg0IGUwIDY5IGRlIGEwIGZmIGZmIDAzIDAwIDAwIDAwIDAw IDAwIDAwIDAwICAoLi5pLi4uLi4uLi4uLi4uCiAgYmFja3RyYWNlOgogICAgWzwwMDAwMDAwMGUy NTJhZjBhPl0gcXJ0cl9ub2RlX2VucXVldWUrMHgzOGUvMHg0MDAgW3FydHJdCiAgICBbPDAwMDAw MDAwOWNlYTQzN2Y+XSBxcnRyX3NlbmRtc2crMHgxZTAvMHgyYTAgW3FydHJdCiAgICBbPDAwMDAw MDAwOGJkZGJiYTQ+XSBzb2NrX3NlbmRtc2crMHg1Yi8weDYwCiAgICBbPDAwMDAwMDAwMDNiZWI0 M2E+XSBxbWlfc2VuZF9tZXNzYWdlLmlzcmEuMysweGJlLzB4MTEwIFtxbWlfaGVscGVyc10KICAg IFs8MDAwMDAwMDA5YzlhZTdkZT5dIHFtaV9zZW5kX3JlcXVlc3QrMHgxYy8weDIwIFtxbWlfaGVs cGVyc10KClNpZ25lZC1vZmYtYnk6IENhcmwgSHVhbmcgPGNqaHVhbmdAY29kZWF1cm9yYS5vcmc+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBuZXQvcXJ0ci9xcnRyLmMgfCA0ICsrKy0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMo KyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvcXJ0ci9xcnRyLmMgYi9uZXQvcXJ0 ci9xcnRyLmMKaW5kZXggN2VjY2JiZjZmOGFkLi4yNGE4YzNjNmRhMGQgMTAwNjQ0Ci0tLSBhL25l dC9xcnRyL3FydHIuYworKysgYi9uZXQvcXJ0ci9xcnRyLmMKQEAgLTE2Niw2ICsxNjYsNyBAQCBz dGF0aWMgdm9pZCBfX3FydHJfbm9kZV9yZWxlYXNlKHN0cnVjdCBrcmVmICprcmVmKQogewogCXN0 cnVjdCBxcnRyX25vZGUgKm5vZGUgPSBjb250YWluZXJfb2Yoa3JlZiwgc3RydWN0IHFydHJfbm9k ZSwgcmVmKTsKIAlzdHJ1Y3QgcmFkaXhfdHJlZV9pdGVyIGl0ZXI7CisJc3RydWN0IHFydHJfdHhf ZmxvdyAqZmxvdzsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXZvaWQgX19yY3UgKipzbG90Owog CkBAIC0xODEsOCArMTgyLDkgQEAgc3RhdGljIHZvaWQgX19xcnRyX25vZGVfcmVsZWFzZShzdHJ1 Y3Qga3JlZiAqa3JlZikKIAogCS8qIEZyZWUgdHggZmxvdyBjb3VudGVycyAqLwogCXJhZGl4X3Ry ZWVfZm9yX2VhY2hfc2xvdChzbG90LCAmbm9kZS0+cXJ0cl90eF9mbG93LCAmaXRlciwgMCkgewor CQlmbG93ID0gKnNsb3Q7CiAJCXJhZGl4X3RyZWVfaXRlcl9kZWxldGUoJm5vZGUtPnFydHJfdHhf ZmxvdywgJml0ZXIsIHNsb3QpOwotCQlrZnJlZSgqc2xvdCk7CisJCWtmcmVlKGZsb3cpOwogCX0K IAlrZnJlZShub2RlKTsKIH0KLS0gCjIuMjYuMgoKCkZyb20gNmYyZjBlOGFhYmE2MDFmZjc1Y2Jh NWQzNmRiZDg4MzZkODYxNzg1YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ29uZyBX YW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+CkRhdGU6IFdlZCwgOCBKdWwgMjAyMCAyMDox Mzo1OSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTUvNDRdIG5ldF9zY2hlZDogZml4IGEgbWVtb3J5 IGxlYWsgaW4gYXRtX3RjX2luaXQoKQoKWyBVcHN0cmVhbSBjb21taXQgMzA2MzgxYWVjN2MyYjVh NjU4ZWViY2EwMDhjOGExYjY2NjUzNmNiYSBdCgpXaGVuIHRjZl9ibG9ja19nZXQoKSBmYWlscyBp bnNpZGUgYXRtX3RjX2luaXQoKSwKYXRtX3RjX3B1dCgpIGlzIGNhbGxlZCB0byByZWxlYXNlIHRo ZSBxZGlzYyBwLT5saW5rLnEuCkJ1dCB0aGUgZmxvdy0+cmVmIHByZXZlbnRzIGl0IHRvIGRvIHNv LCBhcyB0aGUgZmxvdy0+cmVmCmlzIHN0aWxsIHplcm8uCgpGaXggdGhpcyBieSBtb3ZpbmcgdGhl IHAtPmxpbmsucmVmIGluaXRpYWxpemF0aW9uIGJlZm9yZQp0Y2ZfYmxvY2tfZ2V0KCkuCgpGaXhl czogNjUyOWVhYmEzM2YwICgibmV0OiBzY2hlZDogaW50cm9kdWNlIHRjZiBibG9jayBpbmZyYWN0 cnVjdHVyZSIpClJlcG9ydGVkLWFuZC10ZXN0ZWQtYnk6IHN5emJvdCtkNDExY2ZmNmFiMjljYzJj MzExYkBzeXprYWxsZXIuYXBwc3BvdG1haWwuY29tCkNjOiBKYW1hbCBIYWRpIFNhbGltIDxqaHNA bW9qYXRhdHUuY29tPgpDYzogSmlyaSBQaXJrbyA8amlyaUByZXNudWxsaS51cz4KU2lnbmVkLW9m Zi1ieTogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2NoZWQvc2No X2F0bS5jIHwgOCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX2F0bS5jIGIvbmV0L3NjaGVk L3NjaF9hdG0uYwppbmRleCBlZTEyY2E5ZjU1YjQuLjFjMjgxY2M4MWY1NyAxMDA2NDQKLS0tIGEv bmV0L3NjaGVkL3NjaF9hdG0uYworKysgYi9uZXQvc2NoZWQvc2NoX2F0bS5jCkBAIC01NTMsMTYg KzU1MywxNiBAQCBzdGF0aWMgaW50IGF0bV90Y19pbml0KHN0cnVjdCBRZGlzYyAqc2NoLCBzdHJ1 Y3QgbmxhdHRyICpvcHQsCiAJaWYgKCFwLT5saW5rLnEpCiAJCXAtPmxpbmsucSA9ICZub29wX3Fk aXNjOwogCXByX2RlYnVnKCJhdG1fdGNfaW5pdDogbGluayAoJXApIHFkaXNjICVwXG4iLCAmcC0+ bGluaywgcC0+bGluay5xKTsKKwlwLT5saW5rLnZjYyA9IE5VTEw7CisJcC0+bGluay5zb2NrID0g TlVMTDsKKwlwLT5saW5rLmNvbW1vbi5jbGFzc2lkID0gc2NoLT5oYW5kbGU7CisJcC0+bGluay5y ZWYgPSAxOwogCiAJZXJyID0gdGNmX2Jsb2NrX2dldCgmcC0+bGluay5ibG9jaywgJnAtPmxpbmsu ZmlsdGVyX2xpc3QsIHNjaCwKIAkJCSAgICBleHRhY2spOwogCWlmIChlcnIpCiAJCXJldHVybiBl cnI7CiAKLQlwLT5saW5rLnZjYyA9IE5VTEw7Ci0JcC0+bGluay5zb2NrID0gTlVMTDsKLQlwLT5s aW5rLmNvbW1vbi5jbGFzc2lkID0gc2NoLT5oYW5kbGU7Ci0JcC0+bGluay5yZWYgPSAxOwogCXRh c2tsZXRfaW5pdCgmcC0+dGFzaywgc2NoX2F0bV9kZXF1ZXVlLCAodW5zaWduZWQgbG9uZylzY2gp OwogCXJldHVybiAwOwogfQotLSAKMi4yNi4yCgoKRnJvbSAzZTc3NzZjZDIzNmM5MTc1NTVjOWRl ZDhiZjAzYjBhMGZjYTFiNWM1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBY2VMYW4g S2FvIDxhY2VsYW4ua2FvQGNhbm9uaWNhbC5jb20+CkRhdGU6IFR1ZSwgNyBKdWwgMjAyMCAxNjox NDo0NSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTYvNDRdIG5ldDogdXNiOiBxbWlfd3dhbjogYWRk IHN1cHBvcnQgZm9yIFF1ZWN0ZWwgRUc5NSBMVEUKIG1vZGVtCk1JTUUtVmVyc2lvbjogMS4wCkNv bnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVu Y29kaW5nOiA4Yml0CgpbIFVwc3RyZWFtIGNvbW1pdCBmODE1ZGQ1Y2Y0OGI5MDVlZWVjZjBhMmI5 OTBlOWI3YWIwNDhiNGYxIF0KCkFkZCBzdXBwb3J0IGZvciBRdWVjdGVsIFdpcmVsZXNzIFNvbHV0 aW9ucyBDby4sIEx0ZC4gRUc5NSBMVEUgbW9kZW0KClQ6ICBCdXM9MDEgTGV2PTAxIFBybnQ9MDEg UG9ydD0wMiBDbnQ9MDIgRGV2Iz0gIDUgU3BkPTQ4MCBNeENoPSAwCkQ6ICBWZXI9IDIuMDAgQ2xz PWVmKG1pc2MgKSBTdWI9MDIgUHJvdD0wMSBNeFBTPTY0ICNDZmdzPSAgMQpQOiAgVmVuZG9yPTJj N2MgUHJvZElEPTAxOTUgUmV2PTAzLjE4ClM6ICBNYW51ZmFjdHVyZXI9QW5kcm9pZApTOiAgUHJv ZHVjdD1BbmRyb2lkCkM6ICAjSWZzPSA1IENmZyM9IDEgQXRyPWEwIE14UHdyPTUwMG1BCkk6ICBJ ZiM9MHgwIEFsdD0gMCAjRVBzPSAyIENscz1mZih2ZW5kLikgU3ViPWZmIFByb3Q9ZmYgRHJpdmVy PShub25lKQpJOiAgSWYjPTB4MSBBbHQ9IDAgI0VQcz0gMyBDbHM9ZmYodmVuZC4pIFN1Yj0wMCBQ cm90PTAwIERyaXZlcj0obm9uZSkKSTogIElmIz0weDIgQWx0PSAwICNFUHM9IDMgQ2xzPWZmKHZl bmQuKSBTdWI9MDAgUHJvdD0wMCBEcml2ZXI9KG5vbmUpCkk6ICBJZiM9MHgzIEFsdD0gMCAjRVBz PSAzIENscz1mZih2ZW5kLikgU3ViPTAwIFByb3Q9MDAgRHJpdmVyPShub25lKQpJOiAgSWYjPTB4 NCBBbHQ9IDAgI0VQcz0gMyBDbHM9ZmYodmVuZC4pIFN1Yj1mZiBQcm90PWZmIERyaXZlcj0obm9u ZSkKClNpZ25lZC1vZmYtYnk6IEFjZUxhbiBLYW8gPGFjZWxhbi5rYW9AY2Fub25pY2FsLmNvbT4K QWNrZWQtYnk6IEJqw7hybiBNb3JrIDxiam9ybkBtb3JrLm5vPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdXNiL3Ft aV93d2FuLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jIGIvZHJpdmVycy9uZXQvdXNiL3FtaV93d2Fu LmMKaW5kZXggNGEyYzczNTViZTYzLi5lNTdkNTliMGE3YWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L3VzYi9xbWlfd3dhbi5jCisrKyBiL2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jCkBAIC0x MzcwLDYgKzEzNzAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgcHJvZHVj dHNbXSA9IHsKIAl7UU1JX1FVSVJLX1NFVF9EVFIoMHgxZTBlLCAweDkwMDEsIDUpfSwJLyogU0lN Q29tIDcxMDBFLCA3MjMwRSwgNzYwMEUgKysgKi8KIAl7UU1JX1FVSVJLX1NFVF9EVFIoMHgyYzdj LCAweDAxMjEsIDQpfSwJLyogUXVlY3RlbCBFQzIxIE1pbmkgUENJZSAqLwogCXtRTUlfUVVJUktf U0VUX0RUUigweDJjN2MsIDB4MDE5MSwgNCl9LAkvKiBRdWVjdGVsIEVHOTEgKi8KKwl7UU1JX1FV SVJLX1NFVF9EVFIoMHgyYzdjLCAweDAxOTUsIDQpfSwJLyogUXVlY3RlbCBFRzk1ICovCiAJe1FN SV9GSVhFRF9JTlRGKDB4MmM3YywgMHgwMjk2LCA0KX0sCS8qIFF1ZWN0ZWwgQkc5NiAqLwogCXtR TUlfUVVJUktfU0VUX0RUUigweDJjYjcsIDB4MDEwNCwgNCl9LAkvKiBGaWJvY29tIE5MNjc4IHNl cmllcyAqLwogCXtRTUlfRklYRURfSU5URigweDA0ODksIDB4ZTBiNCwgMCl9LAkvKiBGb3hjb25u IFQ3N1c5NjggTFRFICovCi0tIAoyLjI2LjIKCgpGcm9tIGYwMTY5NjNlN2I0ZDJiYTAyN2ZiODU0 YTk5NWU2ZWM0N2IyNmI0MjcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/ cT9Ub2tlPTIwSD1DMz1COGlsYW5kLUo9QzM9QjhyZ2Vuc2VuPz0gPHRva2VAcmVkaGF0LmNvbT4K RGF0ZTogRnJpLCAzIEp1bCAyMDIwIDIyOjI2OjQzICswMjAwClN1YmplY3Q6IFtQQVRDSCAxNy80 NF0gc2NoZWQ6IGNvbnNpc3RlbnRseSBoYW5kbGUgbGF5ZXIzIGhlYWRlciBhY2Nlc3NlcyBpbgog dGhlIHByZXNlbmNlIG9mIFZMQU5zCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4 dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Cgpb IFVwc3RyZWFtIGNvbW1pdCBkN2JmMmViZWJjMmJkNjFhYjk1ZTJhOGUzMzU0MWVmMjgyZjMwM2Q0 IF0KClRoZXJlIGFyZSBhIGNvdXBsZSBvZiBwbGFjZXMgaW4gbmV0L3NjaGVkLyB0aGF0IGNoZWNr IHNrYi0+cHJvdG9jb2wgYW5kIGFjdApvbiB0aGUgdmFsdWUgdGhlcmUuIEhvd2V2ZXIsIGluIHRo ZSBwcmVzZW5jZSBvZiBWTEFOIHRhZ3MsIHRoZSB2YWx1ZSBzdG9yZWQKaW4gc2tiLT5wcm90b2Nv bCBjYW4gYmUgaW5jb25zaXN0ZW50IGJhc2VkIG9uIHdoZXRoZXIgVkxBTiBhY2NlbGVyYXRpb24g aXMKZW5hYmxlZC4gVGhlIGNvbW1pdCBxdW90ZWQgaW4gdGhlIEZpeGVzIHRhZyBiZWxvdyBmaXhl ZCB0aGUgdXNlcnMgb2YKc2tiLT5wcm90b2NvbCB0byB1c2UgYSBoZWxwZXIgdGhhdCB3aWxsIGFs d2F5cyBzZWUgdGhlIFZMQU4gZXRoZXJ0eXBlLgoKSG93ZXZlciwgbW9zdCBvZiB0aGUgY2FsbGVy cyBkb24ndCBhY3R1YWxseSBoYW5kbGUgdGhlIFZMQU4gZXRoZXJ0eXBlLCBidXQKZXhwZWN0IHRv IGZpbmQgdGhlIElQIGhlYWRlciB0eXBlIGluIHRoZSBwcm90b2NvbCBmaWVsZC4gVGhpcyBtZWFu cyB0aGF0CnRoaW5ncyBsaWtlIGNoYW5naW5nIHRoZSBFQ04gZmllbGQsIG9yIHBhcnNpbmcgZGlm ZnNlcnYgdmFsdWVzLCBzdG9wcwp3b3JraW5nIGlmIHRoZXJlJ3MgYSBWTEFOIHRhZywgb3IgaWYg dGhlcmUgYXJlIG11bHRpcGxlIG5lc3RlZCBWTEFOCnRhZ3MgKFFpblEpLgoKVG8gZml4IHRoaXMs IGNoYW5nZSB0aGUgaGVscGVyIHRvIHRha2UgYW4gYXJndW1lbnQgdGhhdCBpbmRpY2F0ZXMgd2hl dGhlcgp0aGUgY2FsbGVyIHdhbnRzIHRvIHNraXAgdGhlIFZMQU4gdGFncyBvciBub3QuIFdoZW4g c2tpcHBpbmcgVkxBTiB0YWdzLCB3ZQptYWtlIHN1cmUgdG8gc2tpcCBhbGwgb2YgdGhlbSwgc28g YmVoYXZpb3VyIGlzIGNvbnNpc3RlbnQgZXZlbiBpbiBRaW5RCm1vZGUuCgpUbyBtYWtlIHRoZSBo ZWxwZXIgdXNhYmxlIGZyb20gdGhlIEVDTiBjb2RlLCBtb3ZlIGl0IHRvIGlmX3ZsYW4uaCBpbnN0 ZWFkCm9mIHBrdF9zY2hlZC5oLgoKdjM6Ci0gUmVtb3ZlIGVtcHR5IGxpbmVzCi0gTW92ZSB2bGFu IHZhcmlhYmxlIGRlZmluaXRpb25zIGluc2lkZSBsb29wIGluIHNrYl9wcm90b2NvbCgpCi0gQWxz byB1c2Ugc2tiX3Byb3RvY29sKCkgaGVscGVyIGluIElQeyw2fV9FQ05fZGVjYXBzdWxhdGUoKSBh bmQKICBicGZfc2tiX2Vjbl9zZXRfY2UoKQoKdjI6Ci0gVXNlIGV0aF90eXBlX3ZsYW4oKSBoZWxw ZXIgaW4gc2tiX3Byb3RvY29sKCkKLSBBbHNvIGZpeCBjb2RlIHRoYXQgcmVhZHMgc2tiLT5wcm90 b2NvbCBkaXJlY3RseQotIENoYW5nZSBhIGNvdXBsZSBvZiAnaWYvZWxzZSBpZicgc3RhdGVtZW50 cyB0byBzd2l0Y2ggY29uc3RydWN0cyB0byBhdm9pZAogIGNhbGxpbmcgdGhlIGhlbHBlciB0d2lj ZQoKUmVwb3J0ZWQtYnk6IElseWEgUG9uZXRheWV2IDxpLnBvbmV0YWV2QG5kbXN5c3RlbXMuY29t PgpGaXhlczogZDhiOTYwNWQyNjk3ICgibmV0OiBzY2hlZDogZml4IHNrYi0+cHJvdG9jb2wgdXNl IGluIGNhc2Ugb2YgYWNjZWxlcmF0ZWQgdmxhbiBwYXRoIikKU2lnbmVkLW9mZi1ieTogVG9rZSBI w7hpbGFuZC1Kw7hyZ2Vuc2VuIDx0b2tlQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL2xpbnV4L2lmX3Zs YW4uaCAgfCAyOCArKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBpbmNsdWRlL25ldC9pbmV0 X2Vjbi5oICAgfCAyNSArKysrKysrKysrKysrKysrKy0tLS0tLS0tCiBpbmNsdWRlL25ldC9wa3Rf c2NoZWQuaCAgfCAxMSAtLS0tLS0tLS0tLQogbmV0L2NvcmUvZmlsdGVyLmMgICAgICAgIHwgMTAg KysrKysrKy0tLQogbmV0L3NjaGVkL2FjdF9jb25ubWFyay5jIHwgIDkgKysrKysrLS0tCiBuZXQv c2NoZWQvYWN0X2NzdW0uYyAgICAgfCAgMiArLQogbmV0L3NjaGVkL2FjdF9jdC5jICAgICAgIHwg IDkgKysrKy0tLS0tCiBuZXQvc2NoZWQvYWN0X2N0aW5mby5jICAgfCAgOSArKysrKystLS0KIG5l dC9zY2hlZC9hY3RfbXBscy5jICAgICB8ICAyICstCiBuZXQvc2NoZWQvYWN0X3NrYmVkaXQuYyAg fCAgMiArLQogbmV0L3NjaGVkL2Nsc19hcGkuYyAgICAgIHwgIDIgKy0KIG5ldC9zY2hlZC9jbHNf Zmxvdy5jICAgICB8ICA4ICsrKystLS0tCiBuZXQvc2NoZWQvY2xzX2Zsb3dlci5jICAgfCAgMiAr LQogbmV0L3NjaGVkL2VtX2lwc2V0LmMgICAgIHwgIDIgKy0KIG5ldC9zY2hlZC9lbV9pcHQuYyAg ICAgICB8ICAyICstCiBuZXQvc2NoZWQvZW1fbWV0YS5jICAgICAgfCAgMiArLQogbmV0L3NjaGVk L3NjaF9jYWtlLmMgICAgIHwgIDQgKystLQogbmV0L3NjaGVkL3NjaF9kc21hcmsuYyAgIHwgIDYg KysrLS0tCiBuZXQvc2NoZWQvc2NoX3RlcWwuYyAgICAgfCAgMiArLQogMTkgZmlsZXMgY2hhbmdl ZCwgODYgaW5zZXJ0aW9ucygrKSwgNTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9saW51eC9pZl92bGFuLmggYi9pbmNsdWRlL2xpbnV4L2lmX3ZsYW4uaAppbmRleCBiMDVlODU1 ZjFkZGQuLjQyN2E1Yjg1OTdjMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9pZl92bGFuLmgK KysrIGIvaW5jbHVkZS9saW51eC9pZl92bGFuLmgKQEAgLTMwOCw2ICszMDgsMzQgQEAgc3RhdGlj IGlubGluZSBib29sIGV0aF90eXBlX3ZsYW4oX19iZTE2IGV0aGVydHlwZSkKIAl9CiB9CiAKKy8q IEEgZ2V0dGVyIGZvciB0aGUgU0tCIHByb3RvY29sIGZpZWxkIHdoaWNoIHdpbGwgaGFuZGxlIFZM QU4gdGFncyBjb25zaXN0ZW50bHkKKyAqIHdoZXRoZXIgVkxBTiBhY2NlbGVyYXRpb24gaXMgZW5h YmxlZCBvciBub3QuCisgKi8KK3N0YXRpYyBpbmxpbmUgX19iZTE2IHNrYl9wcm90b2NvbChjb25z dCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBib29sIHNraXBfdmxhbikKK3sKKwl1bnNpZ25lZCBpbnQg b2Zmc2V0ID0gc2tiX21hY19vZmZzZXQoc2tiKSArIHNpemVvZihzdHJ1Y3QgZXRoaGRyKTsKKwlf X2JlMTYgcHJvdG8gPSBza2ItPnByb3RvY29sOworCisJaWYgKCFza2lwX3ZsYW4pCisJCS8qIFZM QU4gYWNjZWxlcmF0aW9uIHN0cmlwcyB0aGUgVkxBTiBoZWFkZXIgZnJvbSB0aGUgc2tiIGFuZAor CQkgKiBtb3ZlcyBpdCB0byBza2ItPnZsYW5fcHJvdG8KKwkJICovCisJCXJldHVybiBza2Jfdmxh bl90YWdfcHJlc2VudChza2IpID8gc2tiLT52bGFuX3Byb3RvIDogcHJvdG87CisKKwl3aGlsZSAo ZXRoX3R5cGVfdmxhbihwcm90bykpIHsKKwkJc3RydWN0IHZsYW5faGRyIHZoZHIsICp2aDsKKwor CQl2aCA9IHNrYl9oZWFkZXJfcG9pbnRlcihza2IsIG9mZnNldCwgc2l6ZW9mKHZoZHIpLCAmdmhk cik7CisJCWlmICghdmgpCisJCQlicmVhazsKKworCQlwcm90byA9IHZoLT5oX3ZsYW5fZW5jYXBz dWxhdGVkX3Byb3RvOworCQlvZmZzZXQgKz0gc2l6ZW9mKHZoZHIpOworCX0KKworCXJldHVybiBw cm90bzsKK30KKwogc3RhdGljIGlubGluZSBib29sIHZsYW5faHdfb2ZmbG9hZF9jYXBhYmxlKG5l dGRldl9mZWF0dXJlc190IGZlYXR1cmVzLAogCQkJCQkgICBfX2JlMTYgcHJvdG8pCiB7CmRpZmYg LS1naXQgYS9pbmNsdWRlL25ldC9pbmV0X2Vjbi5oIGIvaW5jbHVkZS9uZXQvaW5ldF9lY24uaApp bmRleCAwZjBkMWVmZTA2ZGQuLmUxZWFmMTc4MDI4OCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQv aW5ldF9lY24uaAorKysgYi9pbmNsdWRlL25ldC9pbmV0X2Vjbi5oCkBAIC00LDYgKzQsNyBAQAog CiAjaW5jbHVkZSA8bGludXgvaXAuaD4KICNpbmNsdWRlIDxsaW51eC9za2J1ZmYuaD4KKyNpbmNs dWRlIDxsaW51eC9pZl92bGFuLmg+CiAKICNpbmNsdWRlIDxuZXQvaW5ldF9zb2NrLmg+CiAjaW5j bHVkZSA8bmV0L2RzZmllbGQuaD4KQEAgLTE3Miw3ICsxNzMsNyBAQCBzdGF0aWMgaW5saW5lIHZv aWQgaXB2Nl9jb3B5X2RzY3AodW5zaWduZWQgaW50IGRzY3AsIHN0cnVjdCBpcHY2aGRyICppbm5l cikKIAogc3RhdGljIGlubGluZSBpbnQgSU5FVF9FQ05fc2V0X2NlKHN0cnVjdCBza19idWZmICpz a2IpCiB7Ci0Jc3dpdGNoIChza2ItPnByb3RvY29sKSB7CisJc3dpdGNoIChza2JfcHJvdG9jb2wo c2tiLCB0cnVlKSkgewogCWNhc2UgY3B1X3RvX2JlMTYoRVRIX1BfSVApOgogCQlpZiAoc2tiX25l dHdvcmtfaGVhZGVyKHNrYikgKyBzaXplb2Yoc3RydWN0IGlwaGRyKSA8PQogCQkgICAgc2tiX3Rh aWxfcG9pbnRlcihza2IpKQpAQCAtMTkxLDcgKzE5Miw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IElO RVRfRUNOX3NldF9jZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCiBzdGF0aWMgaW5saW5lIGludCBJ TkVUX0VDTl9zZXRfZWN0MShzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewotCXN3aXRjaCAoc2tiLT5w cm90b2NvbCkgeworCXN3aXRjaCAoc2tiX3Byb3RvY29sKHNrYiwgdHJ1ZSkpIHsKIAljYXNlIGNw dV90b19iZTE2KEVUSF9QX0lQKToKIAkJaWYgKHNrYl9uZXR3b3JrX2hlYWRlcihza2IpICsgc2l6 ZW9mKHN0cnVjdCBpcGhkcikgPD0KIAkJICAgIHNrYl90YWlsX3BvaW50ZXIoc2tiKSkKQEAgLTI3 MiwxMiArMjczLDE2IEBAIHN0YXRpYyBpbmxpbmUgaW50IElQX0VDTl9kZWNhcHN1bGF0ZShjb25z dCBzdHJ1Y3QgaXBoZHIgKm9pcGgsCiB7CiAJX191OCBpbm5lcjsKIAotCWlmIChza2ItPnByb3Rv Y29sID09IGh0b25zKEVUSF9QX0lQKSkKKwlzd2l0Y2ggKHNrYl9wcm90b2NvbChza2IsIHRydWUp KSB7CisJY2FzZSBodG9ucyhFVEhfUF9JUCk6CiAJCWlubmVyID0gaXBfaGRyKHNrYiktPnRvczsK LQllbHNlIGlmIChza2ItPnByb3RvY29sID09IGh0b25zKEVUSF9QX0lQVjYpKQorCQlicmVhazsK KwljYXNlIGh0b25zKEVUSF9QX0lQVjYpOgogCQlpbm5lciA9IGlwdjZfZ2V0X2RzZmllbGQoaXB2 Nl9oZHIoc2tiKSk7Ci0JZWxzZQorCQlicmVhazsKKwlkZWZhdWx0OgogCQlyZXR1cm4gMDsKKwl9 CiAKIAlyZXR1cm4gSU5FVF9FQ05fZGVjYXBzdWxhdGUoc2tiLCBvaXBoLT50b3MsIGlubmVyKTsK IH0KQEAgLTI4NywxMiArMjkyLDE2IEBAIHN0YXRpYyBpbmxpbmUgaW50IElQNl9FQ05fZGVjYXBz dWxhdGUoY29uc3Qgc3RydWN0IGlwdjZoZHIgKm9pcHY2aCwKIHsKIAlfX3U4IGlubmVyOwogCi0J aWYgKHNrYi0+cHJvdG9jb2wgPT0gaHRvbnMoRVRIX1BfSVApKQorCXN3aXRjaCAoc2tiX3Byb3Rv Y29sKHNrYiwgdHJ1ZSkpIHsKKwljYXNlIGh0b25zKEVUSF9QX0lQKToKIAkJaW5uZXIgPSBpcF9o ZHIoc2tiKS0+dG9zOwotCWVsc2UgaWYgKHNrYi0+cHJvdG9jb2wgPT0gaHRvbnMoRVRIX1BfSVBW NikpCisJCWJyZWFrOworCWNhc2UgaHRvbnMoRVRIX1BfSVBWNik6CiAJCWlubmVyID0gaXB2Nl9n ZXRfZHNmaWVsZChpcHY2X2hkcihza2IpKTsKLQllbHNlCisJCWJyZWFrOworCWRlZmF1bHQ6CiAJ CXJldHVybiAwOworCX0KIAogCXJldHVybiBJTkVUX0VDTl9kZWNhcHN1bGF0ZShza2IsIGlwdjZf Z2V0X2RzZmllbGQob2lwdjZoKSwgaW5uZXIpOwogfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQv cGt0X3NjaGVkLmggYi9pbmNsdWRlL25ldC9wa3Rfc2NoZWQuaAppbmRleCA5MDkyZTY5NzA1OWUu LmFjOGM4OTBhMjY1NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvcGt0X3NjaGVkLmgKKysrIGIv aW5jbHVkZS9uZXQvcGt0X3NjaGVkLmgKQEAgLTEzNiwxNyArMTM2LDYgQEAgc3RhdGljIGlubGlu ZSB2b2lkIHFkaXNjX3J1bihzdHJ1Y3QgUWRpc2MgKnEpCiAJfQogfQogCi1zdGF0aWMgaW5saW5l IF9fYmUxNiB0Y19za2JfcHJvdG9jb2woY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYikKLXsKLQkv KiBXZSBuZWVkIHRvIHRha2UgZXh0cmEgY2FyZSBpbiBjYXNlIHRoZSBza2IgY2FtZSB2aWEKLQkg KiB2bGFuIGFjY2VsZXJhdGVkIHBhdGguIEluIHRoYXQgY2FzZSwgdXNlIHNrYi0+dmxhbl9wcm90 bwotCSAqIGFzIHRoZSBvcmlnaW5hbCB2bGFuIGhlYWRlciB3YXMgYWxyZWFkeSBzdHJpcHBlZC4K LQkgKi8KLQlpZiAoc2tiX3ZsYW5fdGFnX3ByZXNlbnQoc2tiKSkKLQkJcmV0dXJuIHNrYi0+dmxh bl9wcm90bzsKLQlyZXR1cm4gc2tiLT5wcm90b2NvbDsKLX0KLQogLyogQ2FsY3VsYXRlIG1heGlt YWwgc2l6ZSBvZiBwYWNrZXQgc2VlbiBieSBoYXJkX3N0YXJ0X3htaXQKICAgIHJvdXRpbmUgb2Yg dGhpcyBkZXZpY2UuCiAgKi8KZGlmZiAtLWdpdCBhL25ldC9jb3JlL2ZpbHRlci5jIGIvbmV0L2Nv cmUvZmlsdGVyLmMKaW5kZXggNDVmYTY1YTI4OTgzLi5jZWJiYjZiYTllZDkgMTAwNjQ0Ci0tLSBh L25ldC9jb3JlL2ZpbHRlci5jCisrKyBiL25ldC9jb3JlL2ZpbHRlci5jCkBAIC01NzI0LDEyICs1 NzI0LDE2IEBAIEJQRl9DQUxMXzEoYnBmX3NrYl9lY25fc2V0X2NlLCBzdHJ1Y3Qgc2tfYnVmZiAq LCBza2IpCiB7CiAJdW5zaWduZWQgaW50IGlwaGRyX2xlbjsKIAotCWlmIChza2ItPnByb3RvY29s ID09IGNwdV90b19iZTE2KEVUSF9QX0lQKSkKKwlzd2l0Y2ggKHNrYl9wcm90b2NvbChza2IsIHRy dWUpKSB7CisJY2FzZSBjcHVfdG9fYmUxNihFVEhfUF9JUCk6CiAJCWlwaGRyX2xlbiA9IHNpemVv ZihzdHJ1Y3QgaXBoZHIpOwotCWVsc2UgaWYgKHNrYi0+cHJvdG9jb2wgPT0gY3B1X3RvX2JlMTYo RVRIX1BfSVBWNikpCisJCWJyZWFrOworCWNhc2UgY3B1X3RvX2JlMTYoRVRIX1BfSVBWNik6CiAJ CWlwaGRyX2xlbiA9IHNpemVvZihzdHJ1Y3QgaXB2Nmhkcik7Ci0JZWxzZQorCQlicmVhazsKKwlk ZWZhdWx0OgogCQlyZXR1cm4gMDsKKwl9CiAKIAlpZiAoc2tiX2hlYWRsZW4oc2tiKSA8IGlwaGRy X2xlbikKIAkJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvYWN0X2Nvbm5tYXJrLmMg Yi9uZXQvc2NoZWQvYWN0X2Nvbm5tYXJrLmMKaW5kZXggNDNhMjQzMDgxZTdkLi5mOTAxNDIxYjA2 MzQgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9hY3RfY29ubm1hcmsuYworKysgYi9uZXQvc2NoZWQv YWN0X2Nvbm5tYXJrLmMKQEAgLTQzLDE3ICs0MywyMCBAQCBzdGF0aWMgaW50IHRjZl9jb25ubWFy a19hY3Qoc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0IHRjX2FjdGlvbiAqYSwKIAl0 Y2ZfbGFzdHVzZV91cGRhdGUoJmNhLT50Y2ZfdG0pOwogCWJzdGF0c191cGRhdGUoJmNhLT50Y2Zf YnN0YXRzLCBza2IpOwogCi0JaWYgKHNrYi0+cHJvdG9jb2wgPT0gaHRvbnMoRVRIX1BfSVApKSB7 CisJc3dpdGNoIChza2JfcHJvdG9jb2woc2tiLCB0cnVlKSkgeworCWNhc2UgaHRvbnMoRVRIX1Bf SVApOgogCQlpZiAoc2tiLT5sZW4gPCBzaXplb2Yoc3RydWN0IGlwaGRyKSkKIAkJCWdvdG8gb3V0 OwogCiAJCXByb3RvID0gTkZQUk9UT19JUFY0OwotCX0gZWxzZSBpZiAoc2tiLT5wcm90b2NvbCA9 PSBodG9ucyhFVEhfUF9JUFY2KSkgeworCQlicmVhazsKKwljYXNlIGh0b25zKEVUSF9QX0lQVjYp OgogCQlpZiAoc2tiLT5sZW4gPCBzaXplb2Yoc3RydWN0IGlwdjZoZHIpKQogCQkJZ290byBvdXQ7 CiAKIAkJcHJvdG8gPSBORlBST1RPX0lQVjY7Ci0JfSBlbHNlIHsKKwkJYnJlYWs7CisJZGVmYXVs dDoKIAkJZ290byBvdXQ7CiAJfQogCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvYWN0X2NzdW0uYyBi L25ldC9zY2hlZC9hY3RfY3N1bS5jCmluZGV4IGNiODYwOGYwYTc3YS4uYzYwNjc0Y2YyNWM0IDEw MDY0NAotLS0gYS9uZXQvc2NoZWQvYWN0X2NzdW0uYworKysgYi9uZXQvc2NoZWQvYWN0X2NzdW0u YwpAQCAtNTg3LDcgKzU4Nyw3IEBAIHN0YXRpYyBpbnQgdGNmX2NzdW1fYWN0KHN0cnVjdCBza19i dWZmICpza2IsIGNvbnN0IHN0cnVjdCB0Y19hY3Rpb24gKmEsCiAJCWdvdG8gZHJvcDsKIAogCXVw ZGF0ZV9mbGFncyA9IHBhcmFtcy0+dXBkYXRlX2ZsYWdzOwotCXByb3RvY29sID0gdGNfc2tiX3By b3RvY29sKHNrYik7CisJcHJvdG9jb2wgPSBza2JfcHJvdG9jb2woc2tiLCBmYWxzZSk7CiBhZ2Fp bjoKIAlzd2l0Y2ggKHByb3RvY29sKSB7CiAJY2FzZSBjcHVfdG9fYmUxNihFVEhfUF9JUCk6CmRp ZmYgLS1naXQgYS9uZXQvc2NoZWQvYWN0X2N0LmMgYi9uZXQvc2NoZWQvYWN0X2N0LmMKaW5kZXgg MjA1NzczNTUyMzVhLi42YTExNGY4MGU1NGIgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9hY3RfY3Qu YworKysgYi9uZXQvc2NoZWQvYWN0X2N0LmMKQEAgLTYyMiw3ICs2MjIsNyBAQCBzdGF0aWMgdTgg dGNmX2N0X3NrYl9uZl9mYW1pbHkoc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKIAl1OCBmYW1pbHkg PSBORlBST1RPX1VOU1BFQzsKIAotCXN3aXRjaCAoc2tiLT5wcm90b2NvbCkgeworCXN3aXRjaCAo c2tiX3Byb3RvY29sKHNrYiwgdHJ1ZSkpIHsKIAljYXNlIGh0b25zKEVUSF9QX0lQKToKIAkJZmFt aWx5ID0gTkZQUk9UT19JUFY0OwogCQlicmVhazsKQEAgLTc0Niw2ICs3NDYsNyBAQCBzdGF0aWMg aW50IGN0X25hdF9leGVjdXRlKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZl9jb25uICpj dCwKIAkJCSAgY29uc3Qgc3RydWN0IG5mX25hdF9yYW5nZTIgKnJhbmdlLAogCQkJICBlbnVtIG5m X25hdF9tYW5pcF90eXBlIG1hbmlwdHlwZSkKIHsKKwlfX2JlMTYgcHJvdG8gPSBza2JfcHJvdG9j b2woc2tiLCB0cnVlKTsKIAlpbnQgaG9va251bSwgZXJyID0gTkZfQUNDRVBUOwogCiAJLyogU2Vl IEhPT0syTUFOSVAoKS4gKi8KQEAgLTc1NywxNCArNzU4LDEzIEBAIHN0YXRpYyBpbnQgY3RfbmF0 X2V4ZWN1dGUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5mX2Nvbm4gKmN0LAogCXN3aXRj aCAoY3RpbmZvKSB7CiAJY2FzZSBJUF9DVF9SRUxBVEVEOgogCWNhc2UgSVBfQ1RfUkVMQVRFRF9S RVBMWToKLQkJaWYgKHNrYi0+cHJvdG9jb2wgPT0gaHRvbnMoRVRIX1BfSVApICYmCisJCWlmIChw cm90byA9PSBodG9ucyhFVEhfUF9JUCkgJiYKIAkJICAgIGlwX2hkcihza2IpLT5wcm90b2NvbCA9 PSBJUFBST1RPX0lDTVApIHsKIAkJCWlmICghbmZfbmF0X2ljbXBfcmVwbHlfdHJhbnNsYXRpb24o c2tiLCBjdCwgY3RpbmZvLAogCQkJCQkJCSAgIGhvb2tudW0pKQogCQkJCWVyciA9IE5GX0RST1A7 CiAJCQlnb3RvIG91dDsKLQkJfSBlbHNlIGlmIChJU19FTkFCTEVEKENPTkZJR19JUFY2KSAmJgot CQkJICAgc2tiLT5wcm90b2NvbCA9PSBodG9ucyhFVEhfUF9JUFY2KSkgeworCQl9IGVsc2UgaWYg KElTX0VOQUJMRUQoQ09ORklHX0lQVjYpICYmIHByb3RvID09IGh0b25zKEVUSF9QX0lQVjYpKSB7 CiAJCQlfX2JlMTYgZnJhZ19vZmY7CiAJCQl1OCBuZXh0aGRyID0gaXB2Nl9oZHIoc2tiKS0+bmV4 dGhkcjsKIAkJCWludCBoZHJsZW4gPSBpcHY2X3NraXBfZXh0aGRyKHNrYiwKQEAgLTE1NTksNCAr MTU1OSwzIEBAIE1PRFVMRV9BVVRIT1IoIllvc3NpIEt1cGVybWFuIDx5b3NzaWt1QG1lbGxhbm94 LmNvbT4iKTsKIE1PRFVMRV9BVVRIT1IoIk1hcmNlbG8gUmljYXJkbyBMZWl0bmVyIDxtYXJjZWxv LmxlaXRuZXJAZ21haWwuY29tPiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJDb25uZWN0aW9uIHRy YWNraW5nIGFjdGlvbiIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwotCmRpZmYgLS1naXQg YS9uZXQvc2NoZWQvYWN0X2N0aW5mby5jIGIvbmV0L3NjaGVkL2FjdF9jdGluZm8uYwppbmRleCAx OTY0OTYyMzQ5M2IuLmI1MDQyZjNlYTA3OSAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL2FjdF9jdGlu Zm8uYworKysgYi9uZXQvc2NoZWQvYWN0X2N0aW5mby5jCkBAIC05NiwxOSArOTYsMjIgQEAgc3Rh dGljIGludCB0Y2ZfY3RpbmZvX2FjdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3Qg dGNfYWN0aW9uICphLAogCWFjdGlvbiA9IFJFQURfT05DRShjYS0+dGNmX2FjdGlvbik7CiAKIAl3 bGVuID0gc2tiX25ldHdvcmtfb2Zmc2V0KHNrYik7Ci0JaWYgKHRjX3NrYl9wcm90b2NvbChza2Ip ID09IGh0b25zKEVUSF9QX0lQKSkgeworCXN3aXRjaCAoc2tiX3Byb3RvY29sKHNrYiwgdHJ1ZSkp IHsKKwljYXNlIGh0b25zKEVUSF9QX0lQKToKIAkJd2xlbiArPSBzaXplb2Yoc3RydWN0IGlwaGRy KTsKIAkJaWYgKCFwc2tiX21heV9wdWxsKHNrYiwgd2xlbikpCiAJCQlnb3RvIG91dDsKIAogCQlw cm90byA9IE5GUFJPVE9fSVBWNDsKLQl9IGVsc2UgaWYgKHRjX3NrYl9wcm90b2NvbChza2IpID09 IGh0b25zKEVUSF9QX0lQVjYpKSB7CisJCWJyZWFrOworCWNhc2UgaHRvbnMoRVRIX1BfSVBWNik6 CiAJCXdsZW4gKz0gc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKTsKIAkJaWYgKCFwc2tiX21heV9wdWxs KHNrYiwgd2xlbikpCiAJCQlnb3RvIG91dDsKIAogCQlwcm90byA9IE5GUFJPVE9fSVBWNjsKLQl9 IGVsc2UgeworCQlicmVhazsKKwlkZWZhdWx0OgogCQlnb3RvIG91dDsKIAl9CiAKZGlmZiAtLWdp dCBhL25ldC9zY2hlZC9hY3RfbXBscy5jIGIvbmV0L3NjaGVkL2FjdF9tcGxzLmMKaW5kZXggYmUz ZjIxNWNkMDI3Li44MTE4ZTI2NDA5NzkgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9hY3RfbXBscy5j CisrKyBiL25ldC9zY2hlZC9hY3RfbXBscy5jCkBAIC04Miw3ICs4Miw3IEBAIHN0YXRpYyBpbnQg dGNmX21wbHNfYWN0KHN0cnVjdCBza19idWZmICpza2IsIGNvbnN0IHN0cnVjdCB0Y19hY3Rpb24g KmEsCiAJCQlnb3RvIGRyb3A7CiAJCWJyZWFrOwogCWNhc2UgVENBX01QTFNfQUNUX1BVU0g6Ci0J CW5ld19sc2UgPSB0Y2ZfbXBsc19nZXRfbHNlKE5VTEwsIHAsICFldGhfcF9tcGxzKHNrYi0+cHJv dG9jb2wpKTsKKwkJbmV3X2xzZSA9IHRjZl9tcGxzX2dldF9sc2UoTlVMTCwgcCwgIWV0aF9wX21w bHMoc2tiX3Byb3RvY29sKHNrYiwgdHJ1ZSkpKTsKIAkJaWYgKHNrYl9tcGxzX3B1c2goc2tiLCBu ZXdfbHNlLCBwLT50Y2ZtX3Byb3RvLCBtYWNfbGVuLAogCQkJCSAgc2tiLT5kZXYgJiYgc2tiLT5k ZXYtPnR5cGUgPT0gQVJQSFJEX0VUSEVSKSkKIAkJCWdvdG8gZHJvcDsKZGlmZiAtLWdpdCBhL25l dC9zY2hlZC9hY3Rfc2tiZWRpdC5jIGIvbmV0L3NjaGVkL2FjdF9za2JlZGl0LmMKaW5kZXggYjEy NWIyYmU0NDY3Li5iMmIzZmFhNTcyOTQgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9hY3Rfc2tiZWRp dC5jCisrKyBiL25ldC9zY2hlZC9hY3Rfc2tiZWRpdC5jCkBAIC00MSw3ICs0MSw3IEBAIHN0YXRp YyBpbnQgdGNmX3NrYmVkaXRfYWN0KHN0cnVjdCBza19idWZmICpza2IsIGNvbnN0IHN0cnVjdCB0 Y19hY3Rpb24gKmEsCiAJaWYgKHBhcmFtcy0+ZmxhZ3MgJiBTS0JFRElUX0ZfSU5IRVJJVERTRklF TEQpIHsKIAkJaW50IHdsZW4gPSBza2JfbmV0d29ya19vZmZzZXQoc2tiKTsKIAotCQlzd2l0Y2gg KHRjX3NrYl9wcm90b2NvbChza2IpKSB7CisJCXN3aXRjaCAoc2tiX3Byb3RvY29sKHNrYiwgdHJ1 ZSkpIHsKIAkJY2FzZSBodG9ucyhFVEhfUF9JUCk6CiAJCQl3bGVuICs9IHNpemVvZihzdHJ1Y3Qg aXBoZHIpOwogCQkJaWYgKCFwc2tiX21heV9wdWxsKHNrYiwgd2xlbikpCmRpZmYgLS1naXQgYS9u ZXQvc2NoZWQvY2xzX2FwaS5jIGIvbmV0L3NjaGVkL2Nsc19hcGkuYwppbmRleCAwYTdlY2MyOTJi ZDMuLjU4ZDQ2OWE2Njg5NiAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL2Nsc19hcGkuYworKysgYi9u ZXQvc2NoZWQvY2xzX2FwaS5jCkBAIC0xNTg5LDcgKzE1ODksNyBAQCBzdGF0aWMgaW5saW5lIGlu dCBfX3RjZl9jbGFzc2lmeShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogcmVjbGFzc2lmeToKICNlbmRp ZgogCWZvciAoOyB0cDsgdHAgPSByY3VfZGVyZWZlcmVuY2VfYmgodHAtPm5leHQpKSB7Ci0JCV9f YmUxNiBwcm90b2NvbCA9IHRjX3NrYl9wcm90b2NvbChza2IpOworCQlfX2JlMTYgcHJvdG9jb2wg PSBza2JfcHJvdG9jb2woc2tiLCBmYWxzZSk7CiAJCWludCBlcnI7CiAKIAkJaWYgKHRwLT5wcm90 b2NvbCAhPSBwcm90b2NvbCAmJgpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL2Nsc19mbG93LmMgYi9u ZXQvc2NoZWQvY2xzX2Zsb3cuYwppbmRleCA4MGFlN2I5ZmE5MGEuLmFiNTNhOTNiMmYyYiAxMDA2 NDQKLS0tIGEvbmV0L3NjaGVkL2Nsc19mbG93LmMKKysrIGIvbmV0L3NjaGVkL2Nsc19mbG93LmMK QEAgLTgwLDcgKzgwLDcgQEAgc3RhdGljIHUzMiBmbG93X2dldF9kc3QoY29uc3Qgc3RydWN0IHNr X2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0IGZsb3dfa2V5cyAqZmxvdykKIAlpZiAoZHN0KQogCQly ZXR1cm4gbnRvaGwoZHN0KTsKIAotCXJldHVybiBhZGRyX2ZvbGQoc2tiX2RzdChza2IpKSBeIChf X2ZvcmNlIHUxNikgdGNfc2tiX3Byb3RvY29sKHNrYik7CisJcmV0dXJuIGFkZHJfZm9sZChza2Jf ZHN0KHNrYikpIF4gKF9fZm9yY2UgdTE2KXNrYl9wcm90b2NvbChza2IsIHRydWUpOwogfQogCiBz dGF0aWMgdTMyIGZsb3dfZ2V0X3Byb3RvKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsCkBAIC0x MDQsNyArMTA0LDcgQEAgc3RhdGljIHUzMiBmbG93X2dldF9wcm90b19kc3QoY29uc3Qgc3RydWN0 IHNrX2J1ZmYgKnNrYiwKIAlpZiAoZmxvdy0+cG9ydHMucG9ydHMpCiAJCXJldHVybiBudG9ocyhm bG93LT5wb3J0cy5kc3QpOwogCi0JcmV0dXJuIGFkZHJfZm9sZChza2JfZHN0KHNrYikpIF4gKF9f Zm9yY2UgdTE2KSB0Y19za2JfcHJvdG9jb2woc2tiKTsKKwlyZXR1cm4gYWRkcl9mb2xkKHNrYl9k c3Qoc2tiKSkgXiAoX19mb3JjZSB1MTYpc2tiX3Byb3RvY29sKHNrYiwgdHJ1ZSk7CiB9CiAKIHN0 YXRpYyB1MzIgZmxvd19nZXRfaWlmKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IpCkBAIC0xNTEs NyArMTUxLDcgQEAgc3RhdGljIHUzMiBmbG93X2dldF9uZmN0KGNvbnN0IHN0cnVjdCBza19idWZm ICpza2IpCiBzdGF0aWMgdTMyIGZsb3dfZ2V0X25mY3Rfc3JjKGNvbnN0IHN0cnVjdCBza19idWZm ICpza2IsCiAJCQkgICAgIGNvbnN0IHN0cnVjdCBmbG93X2tleXMgKmZsb3cpCiB7Ci0Jc3dpdGNo ICh0Y19za2JfcHJvdG9jb2woc2tiKSkgeworCXN3aXRjaCAoc2tiX3Byb3RvY29sKHNrYiwgdHJ1 ZSkpIHsKIAljYXNlIGh0b25zKEVUSF9QX0lQKToKIAkJcmV0dXJuIG50b2hsKENUVFVQTEUoc2ti LCBzcmMudTMuaXApKTsKIAljYXNlIGh0b25zKEVUSF9QX0lQVjYpOgpAQCAtMTY0LDcgKzE2NCw3 IEBAIHN0YXRpYyB1MzIgZmxvd19nZXRfbmZjdF9zcmMoY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNr YiwKIHN0YXRpYyB1MzIgZmxvd19nZXRfbmZjdF9kc3QoY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNr YiwKIAkJCSAgICAgY29uc3Qgc3RydWN0IGZsb3dfa2V5cyAqZmxvdykKIHsKLQlzd2l0Y2ggKHRj X3NrYl9wcm90b2NvbChza2IpKSB7CisJc3dpdGNoIChza2JfcHJvdG9jb2woc2tiLCB0cnVlKSkg ewogCWNhc2UgaHRvbnMoRVRIX1BfSVApOgogCQlyZXR1cm4gbnRvaGwoQ1RUVVBMRShza2IsIGRz dC51My5pcCkpOwogCWNhc2UgaHRvbnMoRVRIX1BfSVBWNik6CmRpZmYgLS1naXQgYS9uZXQvc2No ZWQvY2xzX2Zsb3dlci5jIGIvbmV0L3NjaGVkL2Nsc19mbG93ZXIuYwppbmRleCA3NGEwZmViY2Fm YjguLjNiOTNkOTVkMmE1NiAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL2Nsc19mbG93ZXIuYworKysg Yi9uZXQvc2NoZWQvY2xzX2Zsb3dlci5jCkBAIC0zMTIsNyArMzEyLDcgQEAgc3RhdGljIGludCBm bF9jbGFzc2lmeShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgdGNmX3Byb3RvICp0 cCwKIAkJLyogc2tiX2Zsb3dfZGlzc2VjdCgpIGRvZXMgbm90IHNldCBuX3Byb3RvIGluIGNhc2Ug YW4gdW5rbm93bgogCQkgKiBwcm90b2NvbCwgc28gZG8gaXQgcmF0aGVyIGhlcmUuCiAJCSAqLwot CQlza2Jfa2V5LmJhc2ljLm5fcHJvdG8gPSBza2ItPnByb3RvY29sOworCQlza2Jfa2V5LmJhc2lj Lm5fcHJvdG8gPSBza2JfcHJvdG9jb2woc2tiLCBmYWxzZSk7CiAJCXNrYl9mbG93X2Rpc3NlY3Rf dHVubmVsX2luZm8oc2tiLCAmbWFzay0+ZGlzc2VjdG9yLCAmc2tiX2tleSk7CiAJCXNrYl9mbG93 X2Rpc3NlY3RfY3Qoc2tiLCAmbWFzay0+ZGlzc2VjdG9yLCAmc2tiX2tleSwKIAkJCQkgICAgZmxf Y3RfaW5mb190b19mbG93ZXJfbWFwLApkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL2VtX2lwc2V0LmMg Yi9uZXQvc2NoZWQvZW1faXBzZXQuYwppbmRleCBkZjAwNTY2ZDMyN2QuLmM5NWNmODZmYjQzMSAx MDA2NDQKLS0tIGEvbmV0L3NjaGVkL2VtX2lwc2V0LmMKKysrIGIvbmV0L3NjaGVkL2VtX2lwc2V0 LmMKQEAgLTU5LDcgKzU5LDcgQEAgc3RhdGljIGludCBlbV9pcHNldF9tYXRjaChzdHJ1Y3Qgc2tf YnVmZiAqc2tiLCBzdHJ1Y3QgdGNmX2VtYXRjaCAqZW0sCiAJfTsKIAlpbnQgcmV0LCBuZXR3b3Jr X29mZnNldDsKIAotCXN3aXRjaCAodGNfc2tiX3Byb3RvY29sKHNrYikpIHsKKwlzd2l0Y2ggKHNr Yl9wcm90b2NvbChza2IsIHRydWUpKSB7CiAJY2FzZSBodG9ucyhFVEhfUF9JUCk6CiAJCXN0YXRl LnBmID0gTkZQUk9UT19JUFY0OwogCQlpZiAoIXBza2JfbmV0d29ya19tYXlfcHVsbChza2IsIHNp emVvZihzdHJ1Y3QgaXBoZHIpKSkKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9lbV9pcHQuYyBiL25l dC9zY2hlZC9lbV9pcHQuYwppbmRleCBlZWNmZTA3MmM1MDguLjk0MDViNGQ4ODAwMiAxMDA2NDQK LS0tIGEvbmV0L3NjaGVkL2VtX2lwdC5jCisrKyBiL25ldC9zY2hlZC9lbV9pcHQuYwpAQCAtMjEy LDcgKzIxMiw3IEBAIHN0YXRpYyBpbnQgZW1faXB0X21hdGNoKHN0cnVjdCBza19idWZmICpza2Is IHN0cnVjdCB0Y2ZfZW1hdGNoICplbSwKIAlzdHJ1Y3QgbmZfaG9va19zdGF0ZSBzdGF0ZTsKIAlp bnQgcmV0OwogCi0Jc3dpdGNoICh0Y19za2JfcHJvdG9jb2woc2tiKSkgeworCXN3aXRjaCAoc2ti X3Byb3RvY29sKHNrYiwgdHJ1ZSkpIHsKIAljYXNlIGh0b25zKEVUSF9QX0lQKToKIAkJaWYgKCFw c2tiX25ldHdvcmtfbWF5X3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IGlwaGRyKSkpCiAJCQlyZXR1 cm4gMDsKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9lbV9tZXRhLmMgYi9uZXQvc2NoZWQvZW1fbWV0 YS5jCmluZGV4IGQ5OTk2NmE1NWM4NC4uNDYyNTQ5NjhkMzkwIDEwMDY0NAotLS0gYS9uZXQvc2No ZWQvZW1fbWV0YS5jCisrKyBiL25ldC9zY2hlZC9lbV9tZXRhLmMKQEAgLTE5NSw3ICsxOTUsNyBA QCBNRVRBX0NPTExFQ1RPUihpbnRfcHJpb3JpdHkpCiBNRVRBX0NPTExFQ1RPUihpbnRfcHJvdG9j b2wpCiB7CiAJLyogTGV0IHVzZXJzcGFjZSB0YWtlIGNhcmUgb2YgdGhlIGJ5dGUgb3JkZXJpbmcg Ki8KLQlkc3QtPnZhbHVlID0gdGNfc2tiX3Byb3RvY29sKHNrYik7CisJZHN0LT52YWx1ZSA9IHNr Yl9wcm90b2NvbChza2IsIGZhbHNlKTsKIH0KIAogTUVUQV9DT0xMRUNUT1IoaW50X3BrdHR5cGUp CmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX2Nha2UuYyBiL25ldC9zY2hlZC9zY2hfY2FrZS5j CmluZGV4IDk0NzVmYTgxZWE3Zi4uOWJiMmI4ZjczNjkyIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQv c2NoX2Nha2UuYworKysgYi9uZXQvc2NoZWQvc2NoX2Nha2UuYwpAQCAtNTkxLDcgKzU5MSw3IEBA IHN0YXRpYyB2b2lkIGNha2VfdXBkYXRlX2Zsb3drZXlzKHN0cnVjdCBmbG93X2tleXMgKmtleXMs CiAJc3RydWN0IG5mX2Nvbm50cmFja190dXBsZSB0dXBsZSA9IHt9OwogCWJvb2wgcmV2ID0gIXNr Yi0+X25mY3Q7CiAKLQlpZiAodGNfc2tiX3Byb3RvY29sKHNrYikgIT0gaHRvbnMoRVRIX1BfSVAp KQorCWlmIChza2JfcHJvdG9jb2woc2tiLCB0cnVlKSAhPSBodG9ucyhFVEhfUF9JUCkpCiAJCXJl dHVybjsKIAogCWlmICghbmZfY3RfZ2V0X3R1cGxlX3NrYigmdHVwbGUsIHNrYikpCkBAIC0xNTIw LDcgKzE1MjAsNyBAQCBzdGF0aWMgdTggY2FrZV9oYW5kbGVfZGlmZnNlcnYoc3RydWN0IHNrX2J1 ZmYgKnNrYiwgYm9vbCB3YXNoKQogCXUxNiAqYnVmLCBidWZfOwogCXU4IGRzY3A7CiAKLQlzd2l0 Y2ggKHRjX3NrYl9wcm90b2NvbChza2IpKSB7CisJc3dpdGNoIChza2JfcHJvdG9jb2woc2tiLCB0 cnVlKSkgewogCWNhc2UgaHRvbnMoRVRIX1BfSVApOgogCQlidWYgPSBza2JfaGVhZGVyX3BvaW50 ZXIoc2tiLCBvZmZzZXQsIHNpemVvZihidWZfKSwgJmJ1Zl8pOwogCQlpZiAodW5saWtlbHkoIWJ1 ZikpCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX2RzbWFyay5jIGIvbmV0L3NjaGVkL3NjaF9k c21hcmsuYwppbmRleCAwNTYwNWIzMGJlZjMuLjJiODg3MTA5OTRkNyAxMDA2NDQKLS0tIGEvbmV0 L3NjaGVkL3NjaF9kc21hcmsuYworKysgYi9uZXQvc2NoZWQvc2NoX2RzbWFyay5jCkBAIC0yMTAs NyArMjEwLDcgQEAgc3RhdGljIGludCBkc21hcmtfZW5xdWV1ZShzdHJ1Y3Qgc2tfYnVmZiAqc2ti LCBzdHJ1Y3QgUWRpc2MgKnNjaCwKIAlpZiAocC0+c2V0X3RjX2luZGV4KSB7CiAJCWludCB3bGVu ID0gc2tiX25ldHdvcmtfb2Zmc2V0KHNrYik7CiAKLQkJc3dpdGNoICh0Y19za2JfcHJvdG9jb2wo c2tiKSkgeworCQlzd2l0Y2ggKHNrYl9wcm90b2NvbChza2IsIHRydWUpKSB7CiAJCWNhc2UgaHRv bnMoRVRIX1BfSVApOgogCQkJd2xlbiArPSBzaXplb2Yoc3RydWN0IGlwaGRyKTsKIAkJCWlmICgh cHNrYl9tYXlfcHVsbChza2IsIHdsZW4pIHx8CkBAIC0zMDMsNyArMzAzLDcgQEAgc3RhdGljIHN0 cnVjdCBza19idWZmICpkc21hcmtfZGVxdWV1ZShzdHJ1Y3QgUWRpc2MgKnNjaCkKIAlpbmRleCA9 IHNrYi0+dGNfaW5kZXggJiAocC0+aW5kaWNlcyAtIDEpOwogCXByX2RlYnVnKCJpbmRleCAlZC0+ JWRcbiIsIHNrYi0+dGNfaW5kZXgsIGluZGV4KTsKIAotCXN3aXRjaCAodGNfc2tiX3Byb3RvY29s KHNrYikpIHsKKwlzd2l0Y2ggKHNrYl9wcm90b2NvbChza2IsIHRydWUpKSB7CiAJY2FzZSBodG9u cyhFVEhfUF9JUCk6CiAJCWlwdjRfY2hhbmdlX2RzZmllbGQoaXBfaGRyKHNrYiksIHAtPm12W2lu ZGV4XS5tYXNrLAogCQkJCSAgICBwLT5tdltpbmRleF0udmFsdWUpOwpAQCAtMzIwLDcgKzMyMCw3 IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqZHNtYXJrX2RlcXVldWUoc3RydWN0IFFkaXNjICpz Y2gpCiAJCSAqLwogCQlpZiAocC0+bXZbaW5kZXhdLm1hc2sgIT0gMHhmZiB8fCBwLT5tdltpbmRl eF0udmFsdWUpCiAJCQlwcl93YXJuKCIlczogdW5zdXBwb3J0ZWQgcHJvdG9jb2wgJWRcbiIsCi0J CQkJX19mdW5jX18sIG50b2hzKHRjX3NrYl9wcm90b2NvbChza2IpKSk7CisJCQkJX19mdW5jX18s IG50b2hzKHNrYl9wcm90b2NvbChza2IsIHRydWUpKSk7CiAJCWJyZWFrOwogCX0KIApkaWZmIC0t Z2l0IGEvbmV0L3NjaGVkL3NjaF90ZXFsLmMgYi9uZXQvc2NoZWQvc2NoX3RlcWwuYwppbmRleCA2 ODllZjZmM2RlZDguLjJmMWYwYTM3ODQwOCAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF90ZXFs LmMKKysrIGIvbmV0L3NjaGVkL3NjaF90ZXFsLmMKQEAgLTIzOSw3ICsyMzksNyBAQCBfX3RlcWxf cmVzb2x2ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiX3JlcywKIAkJ Y2hhciBoYWRkcltNQVhfQUREUl9MRU5dOwogCiAJCW5laWdoX2hhX3NuYXBzaG90KGhhZGRyLCBu LCBkZXYpOwotCQllcnIgPSBkZXZfaGFyZF9oZWFkZXIoc2tiLCBkZXYsIG50b2hzKHRjX3NrYl9w cm90b2NvbChza2IpKSwKKwkJZXJyID0gZGV2X2hhcmRfaGVhZGVyKHNrYiwgZGV2LCBudG9ocyhz a2JfcHJvdG9jb2woc2tiLCBmYWxzZSkpLAogCQkJCSAgICAgIGhhZGRyLCBOVUxMLCBza2ItPmxl bik7CiAKIAkJaWYgKGVyciA8IDApCi0tIAoyLjI2LjIKCgpGcm9tIDQ0NzY4OTQ5YWEyODNlMjA4 MWFmMWIxZjBkMDVkYWM3YTViMTU4ZWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVy aWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogVHVlLCAzMCBKdW4gMjAyMCAx Mzo1MToyOCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTgvNDRdIHRjcDogZml4IFNPX1JDVkxPV0FU IHBvc3NpYmxlIGhhbmdzIHVuZGVyIGhpZ2ggbWVtCiBwcmVzc3VyZQoKWyBVcHN0cmVhbSBjb21t aXQgYmEzYmIwZTc2Y2NkNDY0YmI2NjY2NWExOTQxZmFiZTU1ZGFkYjNiYSBdCgpXaGVuZXZlciB0 Y3BfdHJ5X3JtZW1fc2NoZWR1bGUoKSByZXR1cm5zIGFuIGVycm9yLCB3ZSBhcmUgdW5kZXIKdHJv dWJsZSBhbmQgc2hvdWxkIG1ha2Ugc3VyZSB0byB3YWtldXAgcmVhZGVycyBzbyB0aGF0IHRoZXkK Y2FuIGRyYWluIHNvY2tldCBxdWV1ZXMgYW5kIGV2ZW50dWFsbHkgbWFrZSByb29tLgoKRml4ZXM6 IDAzZjQ1Yzg4M2M2ZiAoInRjcDogYXZvaWQgZXh0cmEgd2FrZXVwcyBmb3IgU09fUkNWTE9XQVQg dXNlcnMiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBuZXQvaXB2NC90Y3BfaW5wdXQuYyB8IDIgKysKIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlv bnMoKykKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3BfaW5wdXQuYyBiL25ldC9pcHY0L3RjcF9p bnB1dC5jCmluZGV4IDFmYTAwOTk5OWY1Ny4uMzFjNThlMDBkMjViIDEwMDY0NAotLS0gYS9uZXQv aXB2NC90Y3BfaW5wdXQuYworKysgYi9uZXQvaXB2NC90Y3BfaW5wdXQuYwpAQCAtNDU3MCw2ICs0 NTcwLDcgQEAgc3RhdGljIHZvaWQgdGNwX2RhdGFfcXVldWVfb2ZvKHN0cnVjdCBzb2NrICpzaywg c3RydWN0IHNrX2J1ZmYgKnNrYikKIAogCWlmICh1bmxpa2VseSh0Y3BfdHJ5X3JtZW1fc2NoZWR1 bGUoc2ssIHNrYiwgc2tiLT50cnVlc2l6ZSkpKSB7CiAJCU5FVF9JTkNfU1RBVFMoc29ja19uZXQo c2spLCBMSU5VWF9NSUJfVENQT0ZPRFJPUCk7CisJCXNrLT5za19kYXRhX3JlYWR5KHNrKTsKIAkJ dGNwX2Ryb3Aoc2ssIHNrYik7CiAJCXJldHVybjsKIAl9CkBAIC00ODE2LDYgKzQ4MTcsNyBAQCBz dGF0aWMgdm9pZCB0Y3BfZGF0YV9xdWV1ZShzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZm ICpza2IpCiAJCQlza19mb3JjZWRfbWVtX3NjaGVkdWxlKHNrLCBza2ItPnRydWVzaXplKTsKIAkJ ZWxzZSBpZiAodGNwX3RyeV9ybWVtX3NjaGVkdWxlKHNrLCBza2IsIHNrYi0+dHJ1ZXNpemUpKSB7 CiAJCQlORVRfSU5DX1NUQVRTKHNvY2tfbmV0KHNrKSwgTElOVVhfTUlCX1RDUFJDVlFEUk9QKTsK KwkJCXNrLT5za19kYXRhX3JlYWR5KHNrKTsKIAkJCWdvdG8gZHJvcDsKIAkJfQogCi0tIAoyLjI2 LjIKCgpGcm9tIDYzZjhjMmU5M2M0MDc5MjI3ZDMyODdmMmViYzAzZGUzMTBmOGEwMmQgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IENocmlzdG9waCBQYWFzY2ggPGNwYWFzY2hAYXBwbGUu Y29tPgpEYXRlOiBXZWQsIDggSnVsIDIwMjAgMTY6MTg6MzQgLTA3MDAKU3ViamVjdDogW1BBVENI IDE5LzQ0XSB0Y3A6IG1ha2Ugc3VyZSBsaXN0ZW5lcnMgZG9uJ3QgaW5pdGlhbGl6ZQogY29uZ2Vz dGlvbi1jb250cm9sIHN0YXRlCgpbIFVwc3RyZWFtIGNvbW1pdCBjZTY5ZTU2M2IzMjVmNjIwODYz ODMwYzI0NmE4Njk4Y2NlYTUyMDQ4IF0KCnN5emthbGxlciBmb3VuZCBpdHMgd2F5IGludG8gc2V0 c29ja29wdCB3aXRoIFRDUF9DT05HRVNUSU9OICJjZGciLgp0Y3BfY2RnX2luaXQoKSBkb2VzIGEg a2NhbGxvYyB0byBzdG9yZSB0aGUgZ3JhZGllbnRzLiBBcyBza19jbG9uZV9sb2NrCmp1c3QgY29w aWVzIGFsbCB0aGUgbWVtb3J5LCB0aGUgYWxsb2NhdGVkIHBvaW50ZXIgd2lsbCBiZSBjb3BpZWQg YXMKd2VsbCwgaWYgdGhlIGFwcCBjYWxsZWQgc2V0c29ja29wdCguLi4sIFRDUF9DT05HRVNUSU9O KSBvbiB0aGUgbGlzdGVuZXIuCklmIG5vdyB0aGUgc29ja2V0IHdpbGwgYmUgZGVzdHJveWVkIGJl Zm9yZSB0aGUgY29uZ2VzdGlvbi1jb250cm9sCmhhcyBwcm9wZXJseSBiZWVuIGluaXRpYWxpemVk ICh0aHJvdWdoIGEgY2FsbCB0byB0Y3BfaW5pdF90cmFuc2ZlciksIHdlCndpbGwgZW5kIHVwIGZy ZWVpbmcgbWVtb3J5IHRoYXQgZG9lcyBub3QgYmVsb25nIHRvIHRoYXQgcGFydGljdWxhcgpzb2Nr ZXQsIG9wZW5pbmcgdGhlIGRvb3IgdG8gYSBkb3VibGUtZnJlZToKClsgICAxMS40MTMxMDJdID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQpbICAgMTEuNDE0MTgxXSBCVUc6IEtBU0FOOiBkb3VibGUtZnJlZSBvciBpbnZhbGlk LWZyZWUgaW4gdGNwX2NsZWFudXBfY29uZ2VzdGlvbl9jb250cm9sKzB4NTgvMHhkMApbICAgMTEu NDE1MzI5XQpbICAgMTEuNDE1NTYwXSBDUFU6IDMgUElEOiA0ODg0IENvbW06IHN5ei1leGVjdXRv ci41IE5vdCB0YWludGVkIDUuOC4wLXJjMiAjODAKWyAgIDExLjQxNjU0NF0gSGFyZHdhcmUgbmFt ZTogUUVNVSBTdGFuZGFyZCBQQyAoaTQ0MEZYICsgUElJWCwgMTk5NiksIEJJT1MgcmVsLTEuMTIu MS0wLWdhNWNhYjU4ZTlhM2YtcHJlYnVpbHQucWVtdS5vcmcgMDQvMDEvMjAxNApbICAgMTEuNDE4 MTQ4XSBDYWxsIFRyYWNlOgpbICAgMTEuNDE4NTM0XSAgPElSUT4KWyAgIDExLjQxODgzNF0gIGR1 bXBfc3RhY2srMHg3ZC8weGIwClsgICAxMS40MTkyOTddICBwcmludF9hZGRyZXNzX2Rlc2NyaXB0 aW9uLmNvbnN0cHJvcC4wKzB4MWEvMHgyMTAKWyAgIDExLjQyMjA3OV0gIGthc2FuX3JlcG9ydF9p bnZhbGlkX2ZyZWUrMHg1MS8weDgwClsgICAxMS40MjM0MzNdICBfX2thc2FuX3NsYWJfZnJlZSsw eDE1ZS8weDE3MApbICAgMTEuNDI0NzYxXSAga2ZyZWUrMHg4Yy8weDIzMApbICAgMTEuNDI1MTU3 XSAgdGNwX2NsZWFudXBfY29uZ2VzdGlvbl9jb250cm9sKzB4NTgvMHhkMApbICAgMTEuNDI1ODcy XSAgdGNwX3Y0X2Rlc3Ryb3lfc29jaysweDU3LzB4NWEwClsgICAxMS40MjY0OTNdICBpbmV0X2Nz a19kZXN0cm95X3NvY2srMHgxNTMvMHgyYzAKWyAgIDExLjQyNzA5M10gIHRjcF92NF9zeW5fcmVj dl9zb2NrKzB4YjI5LzB4MTEwMApbICAgMTEuNDI3NzMxXSAgdGNwX2dldF9jb29raWVfc29jaysw eGMzLzB4NGEwClsgICAxMS40Mjk0NTddICBjb29raWVfdjRfY2hlY2srMHgxM2QwLzB4MjUwMApb ICAgMTEuNDMzMTg5XSAgdGNwX3Y0X2RvX3JjdisweDYwZS8weDc4MApbICAgMTEuNDMzNzI3XSAg dGNwX3Y0X3JjdisweDI4NjkvMHgyZTEwClsgICAxMS40MzcxNDNdICBpcF9wcm90b2NvbF9kZWxp dmVyX3JjdSsweDIzLzB4MTkwClsgICAxMS40Mzc4MTBdICBpcF9sb2NhbF9kZWxpdmVyKzB4Mjk0 LzB4MzUwClsgICAxMS40Mzk1NjZdICBfX25ldGlmX3JlY2VpdmVfc2tiX29uZV9jb3JlKzB4MTVk LzB4MWEwClsgICAxMS40NDE5OTVdICBwcm9jZXNzX2JhY2tsb2crMHgxYjEvMHg2YjAKWyAgIDEx LjQ0MzE0OF0gIG5ldF9yeF9hY3Rpb24rMHgzN2UvMHhjNDAKWyAgIDExLjQ0NTM2MV0gIF9fZG9f c29mdGlycSsweDE4Yy8weDYxYQpbICAgMTEuNDQ1ODgxXSAgYXNtX2NhbGxfb25fc3RhY2srMHgx Mi8weDIwClsgICAxMS40NDY0MDldICA8L0lSUT4KWyAgIDExLjQ0NjcxNl0gIGRvX3NvZnRpcnFf b3duX3N0YWNrKzB4MzQvMHg0MApbICAgMTEuNDQ3MjU5XSAgZG9fc29mdGlycS5wYXJ0LjArMHgy Ni8weDMwClsgICAxMS40NDc4MjddICBfX2xvY2FsX2JoX2VuYWJsZV9pcCsweDQ2LzB4NTAKWyAg IDExLjQ0ODQwNl0gIGlwX2ZpbmlzaF9vdXRwdXQyKzB4NjBmLzB4MWJjMApbICAgMTEuNDUwMTA5 XSAgX19pcF9xdWV1ZV94bWl0KzB4NzFjLzB4MWI2MApbICAgMTEuNDUxODYxXSAgX190Y3BfdHJh bnNtaXRfc2tiKzB4MTcyNy8weDNiYjAKWyAgIDExLjQ1Mzc4OV0gIHRjcF9yY3Zfc3RhdGVfcHJv Y2VzcysweDMwNzAvMHg0ZDNhClsgICAxMS40NTY4MTBdICB0Y3BfdjRfZG9fcmN2KzB4MmFkLzB4 NzgwClsgICAxMS40NTc5OTVdICBfX3JlbGVhc2Vfc29jaysweDE0Yi8weDJjMApbICAgMTEuNDU4 NTI5XSAgcmVsZWFzZV9zb2NrKzB4NGEvMHgxNzAKWyAgIDExLjQ1OTAwNV0gIF9faW5ldF9zdHJl YW1fY29ubmVjdCsweDQ2Ny8weGM4MApbICAgMTEuNDYxNDM1XSAgaW5ldF9zdHJlYW1fY29ubmVj dCsweDRlLzB4YTAKWyAgIDExLjQ2MjA0M10gIF9fc3lzX2Nvbm5lY3QrMHgyMDQvMHgyNzAKWyAg IDExLjQ2NTUxNV0gIF9feDY0X3N5c19jb25uZWN0KzB4NmEvMHhiMApbICAgMTEuNDY2MDg4XSAg ZG9fc3lzY2FsbF82NCsweDNlLzB4NzAKWyAgIDExLjQ2NjYxN10gIGVudHJ5X1NZU0NBTExfNjRf YWZ0ZXJfaHdmcmFtZSsweDQ0LzB4YTkKWyAgIDExLjQ2NzM0MV0gUklQOiAwMDMzOjB4N2Y1NjA0 NmRjNDY5ClsgICAxMS40Njc4NDRdIENvZGU6IEJhZCBSSVAgdmFsdWUuClsgICAxMS40NjgyODJd IFJTUDogMDAyYjowMDAwN2Y1NjA0ZGNjZGQ4IEVGTEFHUzogMDAwMDAyNDYgT1JJR19SQVg6IDAw MDAwMDAwMDAwMDAwMmEKWyAgIDExLjQ2OTMyNl0gUkFYOiBmZmZmZmZmZmZmZmZmZmRhIFJCWDog MDAwMDAwMDAwMDY4YmYwMCBSQ1g6IDAwMDA3ZjU2MDQ2ZGM0NjkKWyAgIDExLjQ3MDM3OV0gUkRY OiAwMDAwMDAwMDAwMDAwMDEwIFJTSTogMDAwMDAwMDAyMDAwMDAwMCBSREk6IDAwMDAwMDAwMDAw MDAwMDQKWyAgIDExLjQ3MTMxMV0gUkJQOiAwMDAwMDAwMGZmZmZmZmZmIFIwODogMDAwMDAwMDAw MDAwMDAwMCBSMDk6IDAwMDAwMDAwMDAwMDAwMDAKWyAgIDExLjQ3MjI4Nl0gUjEwOiAwMDAwMDAw MDAwMDAwMDAwIFIxMTogMDAwMDAwMDAwMDAwMDI0NiBSMTI6IDAwMDAwMDAwMDAwMDAwMDAKWyAg IDExLjQ3MzM0MV0gUjEzOiAwMDAwMDAwMDAwNDE0MjdjIFIxNDogMDAwMDdmNTYwNGRjZDVjMCBS MTU6IDAwMDAwMDAwMDAwMDAwMDMKWyAgIDExLjQ3NDMyMV0KWyAgIDExLjQ3NDUyN10gQWxsb2Nh dGVkIGJ5IHRhc2sgNDg4NDoKWyAgIDExLjQ3NTAzMV0gIHNhdmVfc3RhY2srMHgxYi8weDQwClsg ICAxMS40NzU1NDhdICBfX2thc2FuX2ttYWxsb2MuY29uc3Rwcm9wLjArMHhjMi8weGQwClsgICAx MS40NzYxODJdICB0Y3BfY2RnX2luaXQrMHhmMC8weDE1MApbICAgMTEuNDc2NzQ0XSAgdGNwX2lu aXRfY29uZ2VzdGlvbl9jb250cm9sKzB4OWIvMHgzYTAKWyAgIDExLjQ3NzQzNV0gIHRjcF9zZXRf Y29uZ2VzdGlvbl9jb250cm9sKzB4MjcwLzB4MzJmClsgICAxMS40NzgwODhdICBkb190Y3Bfc2V0 c29ja29wdC5pc3JhLjArMHg1MjEvMHgxYTAwClsgICAxMS40Nzg3NDRdICBfX3N5c19zZXRzb2Nr b3B0KzB4ZmYvMHgxZTAKWyAgIDExLjQ3OTI1OV0gIF9feDY0X3N5c19zZXRzb2Nrb3B0KzB4YjUv MHgxNTAKWyAgIDExLjQ3OTg5NV0gIGRvX3N5c2NhbGxfNjQrMHgzZS8weDcwClsgICAxMS40ODAz OTVdICBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0NC8weGE5ClsgICAxMS40ODEw OTddClsgICAxMS40ODEzMjFdIEZyZWVkIGJ5IHRhc2sgNDg3MjoKWyAgIDExLjQ4MTc4M10gIHNh dmVfc3RhY2srMHgxYi8weDQwClsgICAxMS40ODIyMzBdICBfX2thc2FuX3NsYWJfZnJlZSsweDEy Yy8weDE3MApbICAgMTEuNDgyODM5XSAga2ZyZWUrMHg4Yy8weDIzMApbICAgMTEuNDgzMjQwXSAg dGNwX2NsZWFudXBfY29uZ2VzdGlvbl9jb250cm9sKzB4NTgvMHhkMApbICAgMTEuNDgzOTQ4XSAg dGNwX3Y0X2Rlc3Ryb3lfc29jaysweDU3LzB4NWEwClsgICAxMS40ODQ1MDJdICBpbmV0X2Nza19k ZXN0cm95X3NvY2srMHgxNTMvMHgyYzAKWyAgIDExLjQ4NTE0NF0gIHRjcF9jbG9zZSsweDkzMi8w eGZlMApbICAgMTEuNDg1NjQyXSAgaW5ldF9yZWxlYXNlKzB4YzEvMHgxYzAKWyAgIDExLjQ4NjEz MV0gIF9fc29ja19yZWxlYXNlKzB4YzAvMHgyNzAKWyAgIDExLjQ4NjY5N10gIHNvY2tfY2xvc2Ur MHhjLzB4MTAKWyAgIDExLjQ4NzE0NV0gIF9fZnB1dCsweDI3Ny8weDc4MApbICAgMTEuNDg3NjMy XSAgdGFza193b3JrX3J1bisweGViLzB4MTgwClsgICAxMS40ODgxMThdICBfX3ByZXBhcmVfZXhp dF90b191c2VybW9kZSsweDE1YS8weDE2MApbICAgMTEuNDg4ODM0XSAgZG9fc3lzY2FsbF82NCsw eDRhLzB4NzAKWyAgIDExLjQ4OTMyNl0gIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsw eDQ0LzB4YTkKCldlaSBXYW5nIGZpeGVkIGEgcGFydCBvZiB0aGVzZSBDREctbWFsbG9jIGlzc3Vl cyB3aXRoIGNvbW1pdCBjMTIwMTQ0NDA3NTAKKCJ0Y3A6IG1lbXNldCBjYV9wcml2IGRhdGEgdG8g MCBwcm9wZXJseSIpLgoKVGhpcyBwYXRjaCBoZXJlIGZpeGVzIHRoZSBsaXN0ZW5lci1zY2VuYXJp bzogV2UgbWFrZSBzdXJlIHRoYXQgbGlzdGVuZXJzCnNldHRpbmcgdGhlIGNvbmdlc3Rpb24tY29u dHJvbCB0aHJvdWdoIHNldHNvY2tvcHQgd29uJ3QgaW5pdGlhbGl6ZSBpdAoodGh1cyBDREcgbmV2 ZXIgYWxsb2NhdGVzIG9uIGxpc3RlbmVycykuIEZvciB0aG9zZSB3aG8gdXNlIEFGX1VOU1BFQyB0 bwpyZXVzZSBhIHNvY2tldCwgdGNwX2Rpc2Nvbm5lY3QoKSBpcyBjaGFuZ2VkIHRvIGNsZWFudXAg YWZ0ZXJ3YXJkcy4KCihUaGUgaXNzdWUgY2FuIGJlIHJlcHJvZHVjZWQgYXQgbGVhc3QgZG93biB0 byB2NC40LnguKQoKQ2M6IFdlaSBXYW5nIDx3ZWl3YW5AZ29vZ2xlLmNvbT4KQ2M6IEVyaWMgRHVt YXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRml4ZXM6IDJiMGE4YzllZWU4MSAoInRjcDogYWRk IENERyBjb25nZXN0aW9uIGNvbnRyb2wiKQpTaWduZWQtb2ZmLWJ5OiBDaHJpc3RvcGggUGFhc2No IDxjcGFhc2NoQGFwcGxlLmNvbT4KU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpl dEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvdGNwLmMgICAgICB8IDMgKysrCiBuZXQvaXB2NC90Y3Bf Y29uZy5jIHwgMiArLQogMiBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDEgZGVsZXRp b24oLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3AuYyBiL25ldC9pcHY0L3RjcC5jCmluZGV4 IGRkNDAxNzU3ZWVhMS4uNGY0MTI5OWU0ZDU4IDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3AuYwor KysgYi9uZXQvaXB2NC90Y3AuYwpAQCAtMjYzNSw2ICsyNjM1LDkgQEAgaW50IHRjcF9kaXNjb25u ZWN0KHN0cnVjdCBzb2NrICpzaywgaW50IGZsYWdzKQogCXRwLT53aW5kb3dfY2xhbXAgPSAwOwog CXRwLT5kZWxpdmVyZWQgPSAwOwogCXRwLT5kZWxpdmVyZWRfY2UgPSAwOworCWlmIChpY3NrLT5p Y3NrX2NhX29wcy0+cmVsZWFzZSkKKwkJaWNzay0+aWNza19jYV9vcHMtPnJlbGVhc2Uoc2spOwor CW1lbXNldChpY3NrLT5pY3NrX2NhX3ByaXYsIDAsIHNpemVvZihpY3NrLT5pY3NrX2NhX3ByaXYp KTsKIAl0Y3Bfc2V0X2NhX3N0YXRlKHNrLCBUQ1BfQ0FfT3Blbik7CiAJdHAtPmlzX3NhY2tfcmVu ZWcgPSAwOwogCXRjcF9jbGVhcl9yZXRyYW5zKHRwKTsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3Rj cF9jb25nLmMgYi9uZXQvaXB2NC90Y3BfY29uZy5jCmluZGV4IDMxNzJlMzE5ODdiZS4uNjI4Nzhj ZjI2ZDljIDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3BfY29uZy5jCisrKyBiL25ldC9pcHY0L3Rj cF9jb25nLmMKQEAgLTE5Nyw3ICsxOTcsNyBAQCBzdGF0aWMgdm9pZCB0Y3BfcmVpbml0X2Nvbmdl c3Rpb25fY29udHJvbChzdHJ1Y3Qgc29jayAqc2ssCiAJaWNzay0+aWNza19jYV9zZXRzb2Nrb3B0 ID0gMTsKIAltZW1zZXQoaWNzay0+aWNza19jYV9wcml2LCAwLCBzaXplb2YoaWNzay0+aWNza19j YV9wcml2KSk7CiAKLQlpZiAoc2stPnNrX3N0YXRlICE9IFRDUF9DTE9TRSkKKwlpZiAoISgoMSA8 PCBzay0+c2tfc3RhdGUpICYgKFRDUEZfQ0xPU0UgfCBUQ1BGX0xJU1RFTikpKQogCQl0Y3BfaW5p dF9jb25nZXN0aW9uX2NvbnRyb2woc2spOwogfQogCi0tIAoyLjI2LjIKCgpGcm9tIDk0ZDliYjA5 OGRmN2FkNTA1MDA1MDBiZWU2NTNkMjJlOTlmNTU2MGIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogVHVlLCAzMCBK dW4gMjAyMCAxNjo0MTowMSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMjAvNDRdIHRjcDogbWQ1OiBh ZGQgbWlzc2luZyBtZW1vcnkgYmFycmllcnMgaW4KIHRjcF9tZDVfZG9fYWRkKCkvdGNwX21kNV9o YXNoX2tleSgpCgpbIFVwc3RyZWFtIGNvbW1pdCA2YTJmZWJlYzMzOGRmN2U3Njk5YTUyZDAwYjJl MTIwN2RjZjY1YjI4IF0KCk1ENSBrZXlzIGFyZSByZWFkIHdpdGggUkNVIHByb3RlY3Rpb24sIGFu ZCB0Y3BfbWQ1X2RvX2FkZCgpCm1pZ2h0IHVwZGF0ZSBpbi1wbGFjZSBhIHByaW9yIGtleS4KCk5v cm1hbGx5LCB0eXBpY2FsIFJDVSB1cGRhdGVzIHdvdWxkIGFsbG9jYXRlIGEgbmV3IHBpZWNlCm9m IG1lbW9yeS4gSW4gdGhpcyBjYXNlIG9ubHkga2V5LT5rZXkgYW5kIGtleS0+a2V5bGVuIG1pZ2h0 CmJlIHVwZGF0ZWQsIGFuZCB3ZSBkbyBub3QgY2FyZSBpZiBhbiBpbmNvbWluZyBwYWNrZXQgY291 bGQKc2VlIHRoZSBvbGQga2V5LCB0aGUgbmV3IG9uZSwgb3Igc29tZSBpbnRlcm1lZGlhdGUgdmFs dWUsCnNpbmNlIGNoYW5naW5nIHRoZSBrZXkgb24gYSBsaXZlIGZsb3cgaXMga25vd24gdG8gYmUg cHJvYmxlbWF0aWMKYW55d2F5LgoKV2Ugb25seSB3YW50IHRvIG1ha2Ugc3VyZSB0aGF0IGluIHRo ZSBjYXNlIGtleS0+a2V5bGVuCmlzIGNoYW5nZWQsIGNwdXMgaW4gdGNwX21kNV9oYXNoX2tleSgp IHdvbnQgdHJ5IHRvIHVzZQp1bmluaXRpYWxpemVkIGRhdGEsIG9yIGNyYXNoIGJlY2F1c2Uga2V5 LT5rZXlsZW4gd2FzCnJlYWQgdHdpY2UgdG8gZmVlZCBzZ19pbml0X29uZSgpIGFuZCBhaGFzaF9y ZXF1ZXN0X3NldF9jcnlwdCgpCgpGaXhlczogOWVhODhhMTUzMDAxICgidGNwOiBtZDU6IGNoZWNr IG1kNSBzaWduYXR1cmUgd2l0aG91dCBzb2NrZXQgbG9jayIpClNpZ25lZC1vZmYtYnk6IEVyaWMg RHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQ2M6IE1hdGhpZXUgRGVzbm95ZXJzIDxtYXRo aWV1LmRlc25veWVyc0BlZmZpY2lvcy5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC90Y3AuYyAgICAgIHwgNyArKysr Ky0tCiBuZXQvaXB2NC90Y3BfaXB2NC5jIHwgMyArKysKIDIgZmlsZXMgY2hhbmdlZCwgOCBpbnNl cnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcC5jIGIv bmV0L2lwdjQvdGNwLmMKaW5kZXggNGY0MTI5OWU0ZDU4Li43NGJmZTlhM2UyZmEgMTAwNjQ0Ci0t LSBhL25ldC9pcHY0L3RjcC5jCisrKyBiL25ldC9pcHY0L3RjcC5jCkBAIC0zODgwLDEwICszODgw LDEzIEBAIEVYUE9SVF9TWU1CT0wodGNwX21kNV9oYXNoX3NrYl9kYXRhKTsKIAogaW50IHRjcF9t ZDVfaGFzaF9rZXkoc3RydWN0IHRjcF9tZDVzaWdfcG9vbCAqaHAsIGNvbnN0IHN0cnVjdCB0Y3Bf bWQ1c2lnX2tleSAqa2V5KQogeworCXU4IGtleWxlbiA9IGtleS0+a2V5bGVuOwogCXN0cnVjdCBz Y2F0dGVybGlzdCBzZzsKIAotCXNnX2luaXRfb25lKCZzZywga2V5LT5rZXksIGtleS0+a2V5bGVu KTsKLQlhaGFzaF9yZXF1ZXN0X3NldF9jcnlwdChocC0+bWQ1X3JlcSwgJnNnLCBOVUxMLCBrZXkt PmtleWxlbik7CisJc21wX3JtYigpOyAvKiBwYWlyZWQgd2l0aCBzbXBfd21iKCkgaW4gdGNwX21k NV9kb19hZGQoKSAqLworCisJc2dfaW5pdF9vbmUoJnNnLCBrZXktPmtleSwga2V5bGVuKTsKKwlh aGFzaF9yZXF1ZXN0X3NldF9jcnlwdChocC0+bWQ1X3JlcSwgJnNnLCBOVUxMLCBrZXlsZW4pOwog CXJldHVybiBjcnlwdG9fYWhhc2hfdXBkYXRlKGhwLT5tZDVfcmVxKTsKIH0KIEVYUE9SVF9TWU1C T0wodGNwX21kNV9oYXNoX2tleSk7CmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3BfaXB2NC5jIGIv bmV0L2lwdjQvdGNwX2lwdjQuYwppbmRleCA4M2E1ZDI0ZTEzYjguLjJhN2UyMTVlYjE5NSAxMDA2 NDQKLS0tIGEvbmV0L2lwdjQvdGNwX2lwdjQuYworKysgYi9uZXQvaXB2NC90Y3BfaXB2NC5jCkBA IC0xMTA1LDYgKzExMDUsOSBAQCBpbnQgdGNwX21kNV9kb19hZGQoc3RydWN0IHNvY2sgKnNrLCBj b25zdCB1bmlvbiB0Y3BfbWQ1X2FkZHIgKmFkZHIsCiAJaWYgKGtleSkgewogCQkvKiBQcmUtZXhp c3RpbmcgZW50cnkgLSBqdXN0IHVwZGF0ZSB0aGF0IG9uZS4gKi8KIAkJbWVtY3B5KGtleS0+a2V5 LCBuZXdrZXksIG5ld2tleWxlbik7CisKKwkJc21wX3dtYigpOyAvKiBwYWlycyB3aXRoIHNtcF9y bWIoKSBpbiB0Y3BfbWQ1X2hhc2hfa2V5KCkgKi8KKwogCQlrZXktPmtleWxlbiA9IG5ld2tleWxl bjsKIAkJcmV0dXJuIDA7CiAJfQotLSAKMi4yNi4yCgoKRnJvbSBkMjM1ZDk5YjIyM2Y5N2FkOTMw Y2IzMmIxNmQ3ZWZkYTdhMTY4MDMwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmlj IER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFdlZCwgMSBKdWwgMjAyMCAxMjo0 MToyMyAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMjEvNDRdIHRjcDogbWQ1OiBkbyBub3Qgc2VuZCBz aWxseSBvcHRpb25zIGluIFNZTkNPT0tJRVMKClsgVXBzdHJlYW0gY29tbWl0IGUxMTRlMWU4YWM5 ZDMxZjI1YjlkZDg3M2JhYjVkODBjMWZjNDgyY2EgXQoKV2hlbmV2ZXIgY29va2llX2luaXRfdGlt ZXN0YW1wKCkgaGFzIGJlZW4gdXNlZCB0byBlbmNvZGUKRUNOLFNBQ0ssV1NDQUxFIG9wdGlvbnMs IHdlIGNhbiBub3QgcmVtb3ZlIHRoZSBUUyBvcHRpb24gaW4gdGhlIFNZTkFDSy4KCk90aGVyd2lz ZSwgdGNwX3N5bmFja19vcHRpb25zKCkgd2lsbCBzdGlsbCBhZHZlcnRpemUgb3B0aW9ucyBsaWtl IFdTQ0FMRQp0aGF0IHdlIGNhbiBub3QgZGVkdWNlIGxhdGVyIHdoZW4gcmVjZWl2aW5nIHRoZSBw YWNrZXQgZnJvbSB0aGUgY2xpZW50CnRvIGNvbXBsZXRlIDNXSFMuCgpOb3RlIHRoYXQgbW9kZXJu IGxpbnV4IFRDUCBzdGFja3Mgd29udCB1c2UgTUQ1K1RTK1NBQ0sgaW4gYSBTWU4gcGFja2V0LApi dXQgd2UgY2FuIG5vdCBrbm93IGZvciBzdXJlIHRoYXQgYWxsIFRDUCBzdGFja3MgaGF2ZSB0aGUg c2FtZSBsb2dpYy4KCkJlZm9yZSB0aGUgZml4IGEgdGNwZHVtcCB3b3VsZCBleGhpYml0IHRoaXMg d3JvbmcgZXhjaGFuZ2UgOgoKMTA6MTI6MTUuNDY0NTkxIElQIEMgPiBTOiBGbGFncyBbU10sIHNl cSA0MjAyNDE1NjAxLCB3aW4gNjU1MzUsIG9wdGlvbnMgW25vcCxub3AsbWQ1IHZhbGlkLG1zcyAx NDAwLHNhY2tPSyxUUyB2YWwgNDU2OTY1MjY5IGVjciAwLG5vcCx3c2NhbGUgOF0sIGxlbmd0aCAw CjEwOjEyOjE1LjQ2NDYwMiBJUCBTID4gQzogRmxhZ3MgW1MuXSwgc2VxIDI1MzUxNjc2NiwgYWNr IDQyMDI0MTU2MDIsIHdpbiA2NTUzNSwgb3B0aW9ucyBbbm9wLG5vcCxtZDUgdmFsaWQsbXNzIDE0 MDAsbm9wLG5vcCxzYWNrT0ssbm9wLHdzY2FsZSA4XSwgbGVuZ3RoIDAKMTA6MTI6MTUuNDY0NjEx IElQIEMgPiBTOiBGbGFncyBbLl0sIGFjayAxLCB3aW4gMjU2LCBvcHRpb25zIFtub3Asbm9wLG1k NSB2YWxpZF0sIGxlbmd0aCAwCjEwOjEyOjE1LjQ2NDY3OCBJUCBDID4gUzogRmxhZ3MgW1AuXSwg c2VxIDE6MTMsIGFjayAxLCB3aW4gMjU2LCBvcHRpb25zIFtub3Asbm9wLG1kNSB2YWxpZF0sIGxl bmd0aCAxMgoxMDoxMjoxNS40NjQ2ODUgSVAgUyA+IEM6IEZsYWdzIFsuXSwgYWNrIDEzLCB3aW4g NjU1MzUsIG9wdGlvbnMgW25vcCxub3AsbWQ1IHZhbGlkXSwgbGVuZ3RoIDAKCkFmdGVyIHRoaXMg cGF0Y2ggdGhlIGV4Y2hhbmdlIGxvb2tzIHNhbmVyIDoKCjExOjU5OjU5Ljg4Mjk5MCBJUCBDID4g UzogRmxhZ3MgW1NdLCBzZXEgNTE3MDc1OTQ0LCB3aW4gNjU1MzUsIG9wdGlvbnMgW25vcCxub3As bWQ1IHZhbGlkLG1zcyAxNDAwLHNhY2tPSyxUUyB2YWwgMTc1MTUwODQ4MyBlY3IgMCxub3Asd3Nj YWxlIDhdLCBsZW5ndGggMAoxMTo1OTo1OS44ODMwMDIgSVAgUyA+IEM6IEZsYWdzIFtTLl0sIHNl cSAxOTAyOTM5MjUzLCBhY2sgNTE3MDc1OTQ1LCB3aW4gNjU1MzUsIG9wdGlvbnMgW25vcCxub3As bWQ1IHZhbGlkLG1zcyAxNDAwLHNhY2tPSyxUUyB2YWwgMTc1MTUwODQ3OSBlY3IgMTc1MTUwODQ4 Myxub3Asd3NjYWxlIDhdLCBsZW5ndGggMAoxMTo1OTo1OS44ODMwMTIgSVAgQyA+IFM6IEZsYWdz IFsuXSwgYWNrIDEsIHdpbiAyNTYsIG9wdGlvbnMgW25vcCxub3AsbWQ1IHZhbGlkLG5vcCxub3As VFMgdmFsIDE3NTE1MDg0ODMgZWNyIDE3NTE1MDg0NzldLCBsZW5ndGggMAoxMTo1OTo1OS44ODMx MTQgSVAgQyA+IFM6IEZsYWdzIFtQLl0sIHNlcSAxOjEzLCBhY2sgMSwgd2luIDI1Niwgb3B0aW9u cyBbbm9wLG5vcCxtZDUgdmFsaWQsbm9wLG5vcCxUUyB2YWwgMTc1MTUwODQ4MyBlY3IgMTc1MTUw ODQ3OV0sIGxlbmd0aCAxMgoxMTo1OTo1OS44ODMxMjIgSVAgUyA+IEM6IEZsYWdzIFsuXSwgYWNr IDEzLCB3aW4gMjU2LCBvcHRpb25zIFtub3Asbm9wLG1kNSB2YWxpZCxub3Asbm9wLFRTIHZhbCAx NzUxNTA4NDgzIGVjciAxNzUxNTA4NDgzXSwgbGVuZ3RoIDAKMTE6NTk6NTkuODgzMTUyIElQIFMg PiBDOiBGbGFncyBbUC5dLCBzZXEgMToxMywgYWNrIDEzLCB3aW4gMjU2LCBvcHRpb25zIFtub3As bm9wLG1kNSB2YWxpZCxub3Asbm9wLFRTIHZhbCAxNzUxNTA4NDg0IGVjciAxNzUxNTA4NDgzXSwg bGVuZ3RoIDEyCjExOjU5OjU5Ljg4MzE3MCBJUCBDID4gUzogRmxhZ3MgWy5dLCBhY2sgMTMsIHdp biAyNTYsIG9wdGlvbnMgW25vcCxub3AsbWQ1IHZhbGlkLG5vcCxub3AsVFMgdmFsIDE3NTE1MDg0 ODQgZWNyIDE3NTE1MDg0ODRdLCBsZW5ndGggMAoKT2YgY291cnNlLCBubyBTQUNLIGJsb2NrIHdp bGwgZXZlciBiZSBhZGRlZCBsYXRlciwgYnV0IG5vdGhpbmcgc2hvdWxkIGJyZWFrLgpUZWNobmlj YWxseSwgd2UgY291bGQgcmVtb3ZlIHRoZSA0IG5vcHMgaW5jbHVkZWQgaW4gTUQ1K1RTIG9wdGlv bnMsCmJ1dCBhZ2FpbiBzb21lIHN0YWNrcyBjb3VsZCBicmVhayBzZWVpbmcgbm90IGNvbnZlbnRp b25hbCBhbGlnbm1lbnQuCgpGaXhlczogNDk1N2ZhYWRlMTFiICgiVENQQ1QgcGFydCAxZzogUmVz cG9uZGVyIENvb2tpZSA9PiBJbml0aWF0b3IiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQg PGVkdW1hemV0QGdvb2dsZS5jb20+CkNjOiBGbG9yaWFuIFdlc3RwaGFsIDxmd0BzdHJsZW4uZGU+ CkNjOiBNYXRoaWV1IERlc25veWVycyA8bWF0aGlldS5kZXNub3llcnNAZWZmaWNpb3MuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog bmV0L2lwdjQvdGNwX291dHB1dC5jIHwgOCArKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5z ZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3Bfb3V0 cHV0LmMgYi9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMKaW5kZXggMmY0NWNkZTE2OGM0Li5iZWUyZjli OGI4YTEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9vdXRwdXQuYworKysgYi9uZXQvaXB2NC90 Y3Bfb3V0cHV0LmMKQEAgLTcwMCw3ICs3MDAsOCBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHRjcF9z eW5hY2tfb3B0aW9ucyhjb25zdCBzdHJ1Y3Qgc29jayAqc2ssCiAJCQkJICAgICAgIHVuc2lnbmVk IGludCBtc3MsIHN0cnVjdCBza19idWZmICpza2IsCiAJCQkJICAgICAgIHN0cnVjdCB0Y3Bfb3V0 X29wdGlvbnMgKm9wdHMsCiAJCQkJICAgICAgIGNvbnN0IHN0cnVjdCB0Y3BfbWQ1c2lnX2tleSAq bWQ1LAotCQkJCSAgICAgICBzdHJ1Y3QgdGNwX2Zhc3RvcGVuX2Nvb2tpZSAqZm9jKQorCQkJCSAg ICAgICBzdHJ1Y3QgdGNwX2Zhc3RvcGVuX2Nvb2tpZSAqZm9jLAorCQkJCSAgICAgICBlbnVtIHRj cF9zeW5hY2tfdHlwZSBzeW5hY2tfdHlwZSkKIHsKIAlzdHJ1Y3QgaW5ldF9yZXF1ZXN0X3NvY2sg KmlyZXEgPSBpbmV0X3JzayhyZXEpOwogCXVuc2lnbmVkIGludCByZW1haW5pbmcgPSBNQVhfVENQ X09QVElPTl9TUEFDRTsKQEAgLTcxNSw3ICs3MTYsOCBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHRj cF9zeW5hY2tfb3B0aW9ucyhjb25zdCBzdHJ1Y3Qgc29jayAqc2ssCiAJCSAqIHJhdGhlciB0aGFu IFRTIGluIG9yZGVyIHRvIGZpdCBpbiBiZXR0ZXIgd2l0aCBvbGQsCiAJCSAqIGJ1Z2d5IGtlcm5l bHMsIGJ1dCB0aGF0IHdhcyBkZWVtZWQgdG8gYmUgdW5uZWNlc3NhcnkuCiAJCSAqLwotCQlpcmVx LT50c3RhbXBfb2sgJj0gIWlyZXEtPnNhY2tfb2s7CisJCWlmIChzeW5hY2tfdHlwZSAhPSBUQ1Bf U1lOQUNLX0NPT0tJRSkKKwkJCWlyZXEtPnRzdGFtcF9vayAmPSAhaXJlcS0+c2Fja19vazsKIAl9 CiAjZW5kaWYKIApAQCAtMzM4OCw3ICszMzkwLDcgQEAgc3RydWN0IHNrX2J1ZmYgKnRjcF9tYWtl X3N5bmFjayhjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBkc3RfZW50cnkgKmRzdCwKICNl bmRpZgogCXNrYl9zZXRfaGFzaChza2IsIHRjcF9yc2socmVxKS0+dHhoYXNoLCBQS1RfSEFTSF9U WVBFX0w0KTsKIAl0Y3BfaGVhZGVyX3NpemUgPSB0Y3Bfc3luYWNrX29wdGlvbnMoc2ssIHJlcSwg bXNzLCBza2IsICZvcHRzLCBtZDUsCi0JCQkJCSAgICAgZm9jKSArIHNpemVvZigqdGgpOworCQkJ CQkgICAgIGZvYywgc3luYWNrX3R5cGUpICsgc2l6ZW9mKCp0aCk7CiAKIAlza2JfcHVzaChza2Is IHRjcF9oZWFkZXJfc2l6ZSk7CiAJc2tiX3Jlc2V0X3RyYW5zcG9ydF9oZWFkZXIoc2tiKTsKLS0g CjIuMjYuMgoKCkZyb20gZjU2N2UyYzgyN2M1YmJkZjRlYjMxZDhkZDZmNGYwYjEzOGNjYTI3OSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP1Rva2U9MjBIPUMzPUI4aWxh bmQtSj1DMz1COHJnZW5zZW4/PSA8dG9rZUByZWRoYXQuY29tPgpEYXRlOiBUdWUsIDcgSnVsIDIw MjAgMTM6MDM6MjUgKzAyMDAKU3ViamVjdDogW1BBVENIIDIyLzQ0XSB2bGFuOiBjb25zb2xpZGF0 ZSBWTEFOIHBhcnNpbmcgY29kZSBhbmQgbGltaXQgbWF4CiBwYXJzaW5nIGRlcHRoCk1JTUUtVmVy c2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50 LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpbIFVwc3RyZWFtIGNvbW1pdCA0NjlhY2VkZGZhM2Vk MTZlMTdlZTMwNTMzZmFlNDVlOTBmNjJlZmQ4IF0KClRvc2hpYWtpIHBvaW50ZWQgb3V0IHRoYXQg d2Ugbm93IGhhdmUgdHdvIHZlcnkgc2ltaWxhciBmdW5jdGlvbnMgdG8gZXh0cmFjdAp0aGUgTDMg cHJvdG9jb2wgbnVtYmVyIGluIHRoZSBwcmVzZW5jZSBvZiBWTEFOIHRhZ3MuIEFuZCBEYW5pZWwg cG9pbnRlZCBvdXQKdGhhdCB0aGUgdW5ib3VuZGVkIHBhcnNpbmcgbG9vcCBtYWtlcyBpdCBwb3Nz aWJsZSBmb3IgbWFsaWNpb3VzbHkgY3JhZnRlZApwYWNrZXRzIHRvIGxvb3AgdGhyb3VnaCBwb3Rl bnRpYWxseSBodW5kcmVkcyBvZiB0YWdzLgoKRml4IGJvdGggb2YgdGhlc2UgaXNzdWVzIGJ5IGNv bnNvbGlkYXRpbmcgdGhlIHR3byBwYXJzaW5nIGZ1bmN0aW9ucyBhbmQKbGltaXRpbmcgdGhlIFZM QU4gdGFnIHBhcnNpbmcgdG8gYSBtYXggZGVwdGggb2YgOCB0YWdzLiBBcyBwYXJ0IG9mIHRoaXMs CnN3aXRjaCBvdmVyIF9fdmxhbl9nZXRfcHJvdG9jb2woKSB0byB1c2Ugc2tiX2hlYWRlcl9wb2lu dGVyKCkgaW5zdGVhZCBvZgpwc2tiX21heV9wdWxsKCksIHRvIGF2b2lkIHRoZSBwb3NzaWJsZSBz aWRlIGVmZmVjdHMgb2YgdGhlIGxhdHRlciBhbmQga2VlcAp0aGUgc2tiIHBvaW50ZXIgJ2NvbnN0 JyB0aHJvdWdoIGFsbCB0aGUgcGFyc2luZyBmdW5jdGlvbnMuCgp2MjoKLSBVc2UgbGltaXQgb2Yg OCB0YWdzIGluc3RlYWQgb2YgMzIgKG1hdGNoaW5nIFhNSVRfUkVDVVJTSU9OX0xJTUlUKQoKUmVw b3J0ZWQtYnk6IFRvc2hpYWtpIE1ha2l0YSA8dG9zaGlha2kubWFraXRhMUBnbWFpbC5jb20+ClJl cG9ydGVkLWJ5OiBEYW5pZWwgQm9ya21hbm4gPGRhbmllbEBpb2dlYXJib3gubmV0PgpGaXhlczog ZDdiZjJlYmViYzJiICgic2NoZWQ6IGNvbnNpc3RlbnRseSBoYW5kbGUgbGF5ZXIzIGhlYWRlciBh Y2Nlc3NlcyBpbiB0aGUgcHJlc2VuY2Ugb2YgVkxBTnMiKQpTaWduZWQtb2ZmLWJ5OiBUb2tlIEjD uGlsYW5kLUrDuHJnZW5zZW4gPHRva2VAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbGludXgvaWZfdmxh bi5oIHwgNTcgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCAyMiBpbnNlcnRpb25zKCspLCAzNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9pbmNsdWRlL2xpbnV4L2lmX3ZsYW4uaCBiL2luY2x1ZGUvbGludXgvaWZfdmxhbi5oCmluZGV4 IDQyN2E1Yjg1OTdjMi4uNDFhNTE4MzM2NjczIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2lm X3ZsYW4uaAorKysgYi9pbmNsdWRlL2xpbnV4L2lmX3ZsYW4uaApAQCAtMjUsNiArMjUsOCBAQAog I2RlZmluZSBWTEFOX0VUSF9EQVRBX0xFTgkxNTAwCS8qIE1heC4gb2N0ZXRzIGluIHBheWxvYWQJ ICovCiAjZGVmaW5lIFZMQU5fRVRIX0ZSQU1FX0xFTgkxNTE4CS8qIE1heC4gb2N0ZXRzIGluIGZy YW1lIHNhbnMgRkNTICovCiAKKyNkZWZpbmUgVkxBTl9NQVhfREVQVEgJOAkJLyogTWF4LiBudW1i ZXIgb2YgbmVzdGVkIFZMQU4gdGFncyBwYXJzZWQgKi8KKwogLyoKICAqIAlzdHJ1Y3Qgdmxhbl9o ZHIgLSB2bGFuIGhlYWRlcgogICogCUBoX3ZsYW5fVENJOiBwcmlvcml0eSBhbmQgVkxBTiBJRApA QCAtMzA4LDM0ICszMTAsNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZXRoX3R5cGVfdmxhbihfX2Jl MTYgZXRoZXJ0eXBlKQogCX0KIH0KIAotLyogQSBnZXR0ZXIgZm9yIHRoZSBTS0IgcHJvdG9jb2wg ZmllbGQgd2hpY2ggd2lsbCBoYW5kbGUgVkxBTiB0YWdzIGNvbnNpc3RlbnRseQotICogd2hldGhl ciBWTEFOIGFjY2VsZXJhdGlvbiBpcyBlbmFibGVkIG9yIG5vdC4KLSAqLwotc3RhdGljIGlubGlu ZSBfX2JlMTYgc2tiX3Byb3RvY29sKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsIGJvb2wgc2tp cF92bGFuKQotewotCXVuc2lnbmVkIGludCBvZmZzZXQgPSBza2JfbWFjX29mZnNldChza2IpICsg c2l6ZW9mKHN0cnVjdCBldGhoZHIpOwotCV9fYmUxNiBwcm90byA9IHNrYi0+cHJvdG9jb2w7Ci0K LQlpZiAoIXNraXBfdmxhbikKLQkJLyogVkxBTiBhY2NlbGVyYXRpb24gc3RyaXBzIHRoZSBWTEFO IGhlYWRlciBmcm9tIHRoZSBza2IgYW5kCi0JCSAqIG1vdmVzIGl0IHRvIHNrYi0+dmxhbl9wcm90 bwotCQkgKi8KLQkJcmV0dXJuIHNrYl92bGFuX3RhZ19wcmVzZW50KHNrYikgPyBza2ItPnZsYW5f cHJvdG8gOiBwcm90bzsKLQotCXdoaWxlIChldGhfdHlwZV92bGFuKHByb3RvKSkgewotCQlzdHJ1 Y3Qgdmxhbl9oZHIgdmhkciwgKnZoOwotCi0JCXZoID0gc2tiX2hlYWRlcl9wb2ludGVyKHNrYiwg b2Zmc2V0LCBzaXplb2YodmhkciksICZ2aGRyKTsKLQkJaWYgKCF2aCkKLQkJCWJyZWFrOwotCi0J CXByb3RvID0gdmgtPmhfdmxhbl9lbmNhcHN1bGF0ZWRfcHJvdG87Ci0JCW9mZnNldCArPSBzaXpl b2Yodmhkcik7Ci0JfQotCi0JcmV0dXJuIHByb3RvOwotfQotCiBzdGF0aWMgaW5saW5lIGJvb2wg dmxhbl9od19vZmZsb2FkX2NhcGFibGUobmV0ZGV2X2ZlYXR1cmVzX3QgZmVhdHVyZXMsCiAJCQkJ CSAgIF9fYmUxNiBwcm90bykKIHsKQEAgLTYwNSwxMCArNTc5LDEwIEBAIHN0YXRpYyBpbmxpbmUg aW50IHZsYW5fZ2V0X3RhZyhjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MTYgKnZsYW5fdGNp KQogICogUmV0dXJucyB0aGUgRXRoZXJUeXBlIG9mIHRoZSBwYWNrZXQsIHJlZ2FyZGxlc3Mgb2Yg d2hldGhlciBpdCBpcwogICogdmxhbiBlbmNhcHN1bGF0ZWQgKG5vcm1hbCBvciBoYXJkd2FyZSBh Y2NlbGVyYXRlZCkgb3Igbm90LgogICovCi1zdGF0aWMgaW5saW5lIF9fYmUxNiBfX3ZsYW5fZ2V0 X3Byb3RvY29sKHN0cnVjdCBza19idWZmICpza2IsIF9fYmUxNiB0eXBlLAorc3RhdGljIGlubGlu ZSBfX2JlMTYgX192bGFuX2dldF9wcm90b2NvbChjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBf X2JlMTYgdHlwZSwKIAkJCQkJIGludCAqZGVwdGgpCiB7Ci0JdW5zaWduZWQgaW50IHZsYW5fZGVw dGggPSBza2ItPm1hY19sZW47CisJdW5zaWduZWQgaW50IHZsYW5fZGVwdGggPSBza2ItPm1hY19s ZW4sIHBhcnNlX2RlcHRoID0gVkxBTl9NQVhfREVQVEg7CiAKIAkvKiBpZiB0eXBlIGlzIDgwMi4x US9BRCB0aGVuIHRoZSBoZWFkZXIgc2hvdWxkIGFscmVhZHkgYmUKIAkgKiBwcmVzZW50IGF0IG1h Y19sZW4gLSBWTEFOX0hMRU4gKGlmIG1hY19sZW4gPiAwKSwgb3IgYXQKQEAgLTYyMywxMyArNTk3 LDEyIEBAIHN0YXRpYyBpbmxpbmUgX19iZTE2IF9fdmxhbl9nZXRfcHJvdG9jb2woc3RydWN0IHNr X2J1ZmYgKnNrYiwgX19iZTE2IHR5cGUsCiAJCQl2bGFuX2RlcHRoID0gRVRIX0hMRU47CiAJCX0K IAkJZG8gewotCQkJc3RydWN0IHZsYW5faGRyICp2aDsKKwkJCXN0cnVjdCB2bGFuX2hkciB2aGRy LCAqdmg7CiAKLQkJCWlmICh1bmxpa2VseSghcHNrYl9tYXlfcHVsbChza2IsCi0JCQkJCQkgICAg dmxhbl9kZXB0aCArIFZMQU5fSExFTikpKQorCQkJdmggPSBza2JfaGVhZGVyX3BvaW50ZXIoc2ti LCB2bGFuX2RlcHRoLCBzaXplb2YodmhkciksICZ2aGRyKTsKKwkJCWlmICh1bmxpa2VseSghdmgg fHwgIS0tcGFyc2VfZGVwdGgpKQogCQkJCXJldHVybiAwOwogCi0JCQl2aCA9IChzdHJ1Y3Qgdmxh bl9oZHIgKikoc2tiLT5kYXRhICsgdmxhbl9kZXB0aCk7CiAJCQl0eXBlID0gdmgtPmhfdmxhbl9l bmNhcHN1bGF0ZWRfcHJvdG87CiAJCQl2bGFuX2RlcHRoICs9IFZMQU5fSExFTjsKIAkJfSB3aGls ZSAoZXRoX3R5cGVfdmxhbih0eXBlKSk7CkBAIC02NDgsMTEgKzYyMSwyNSBAQCBzdGF0aWMgaW5s aW5lIF9fYmUxNiBfX3ZsYW5fZ2V0X3Byb3RvY29sKHN0cnVjdCBza19idWZmICpza2IsIF9fYmUx NiB0eXBlLAogICogUmV0dXJucyB0aGUgRXRoZXJUeXBlIG9mIHRoZSBwYWNrZXQsIHJlZ2FyZGxl c3Mgb2Ygd2hldGhlciBpdCBpcwogICogdmxhbiBlbmNhcHN1bGF0ZWQgKG5vcm1hbCBvciBoYXJk d2FyZSBhY2NlbGVyYXRlZCkgb3Igbm90LgogICovCi1zdGF0aWMgaW5saW5lIF9fYmUxNiB2bGFu X2dldF9wcm90b2NvbChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQorc3RhdGljIGlubGluZSBfX2JlMTYg dmxhbl9nZXRfcHJvdG9jb2woY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKIAlyZXR1cm4g X192bGFuX2dldF9wcm90b2NvbChza2IsIHNrYi0+cHJvdG9jb2wsIE5VTEwpOwogfQogCisvKiBB IGdldHRlciBmb3IgdGhlIFNLQiBwcm90b2NvbCBmaWVsZCB3aGljaCB3aWxsIGhhbmRsZSBWTEFO IHRhZ3MgY29uc2lzdGVudGx5CisgKiB3aGV0aGVyIFZMQU4gYWNjZWxlcmF0aW9uIGlzIGVuYWJs ZWQgb3Igbm90LgorICovCitzdGF0aWMgaW5saW5lIF9fYmUxNiBza2JfcHJvdG9jb2woY29uc3Qg c3RydWN0IHNrX2J1ZmYgKnNrYiwgYm9vbCBza2lwX3ZsYW4pCit7CisJaWYgKCFza2lwX3ZsYW4p CisJCS8qIFZMQU4gYWNjZWxlcmF0aW9uIHN0cmlwcyB0aGUgVkxBTiBoZWFkZXIgZnJvbSB0aGUg c2tiIGFuZAorCQkgKiBtb3ZlcyBpdCB0byBza2ItPnZsYW5fcHJvdG8KKwkJICovCisJCXJldHVy biBza2Jfdmxhbl90YWdfcHJlc2VudChza2IpID8gc2tiLT52bGFuX3Byb3RvIDogc2tiLT5wcm90 b2NvbDsKKworCXJldHVybiB2bGFuX2dldF9wcm90b2NvbChza2IpOworfQorCiBzdGF0aWMgaW5s aW5lIHZvaWQgdmxhbl9zZXRfZW5jYXBfcHJvdG8oc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJCQkJ c3RydWN0IHZsYW5faGRyICp2aGRyKQogewotLSAKMi4yNi4yCgoKRnJvbSBjOTI5ZGRhNTRjMmUx ZTdjMDNhMzdhNzk5MDU1ZjFiZTBiZGM1YjdkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFdlZCwgMSBKdWwgMjAy MCAxMTo0MzowNCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMjMvNDRdIHRjcDogbWQ1OiByZWZpbmUg dGNwX21kNV9kb19hZGQoKS90Y3BfbWQ1X2hhc2hfa2V5KCkKIGJhcnJpZXJzCgpbIFVwc3RyZWFt IGNvbW1pdCBlNmNlZDgzMWVmMTFhMmEwNmU4ZDAwYWFkOWQ0ZmMwNWI2MTBiZjM4IF0KCk15IHBy aW9yIGZpeCB3ZW50IGEgYml0IHRvbyBmYXIsIGFjY29yZGluZyB0byBIZXJiZXJ0IGFuZCBNYXRo aWV1LgoKU2luY2Ugd2UgYWNjZXB0IHRoYXQgY29uY3VycmVudCBUQ1AgTUQ1IGxvb2t1cHMgbWln aHQgc2VlIGluY29uc2lzdGVudAprZXlzLCB3ZSBjYW4gdXNlIFJFQURfT05DRSgpL1dSSVRFX09O Q0UoKSBpbnN0ZWFkIG9mIHNtcF9ybWIoKS9zbXBfd21iKCkKCkNsZWFyaW5nIGFsbCBrZXktPmtl eVtdIGlzIG5lZWRlZCB0byBhdm9pZCBwb3NzaWJsZSBLTVNBTiByZXBvcnRzLAppZiBrZXktPmtl eWxlbiBpcyBpbmNyZWFzZWQuIFNpbmNlIHRjcF9tZDVfZG9fYWRkKCkgaXMgbm90IGZhc3QgcGF0 aCwKdXNpbmcgX19HRlBfWkVSTyB0byBjbGVhciBhbGwgc3RydWN0IHRjcF9tZDVzaWdfa2V5IGlz IHNpbXBsZXIuCgpkYXRhX3JhY2UoKSB3YXMgYWRkZWQgaW4gbGludXgtNS44IGFuZCB3aWxsIHBy ZXZlbnQgS0NTQU4gcmVwb3J0cywKdGhpcyBjYW4gc2FmZWx5IGJlIHJlbW92ZWQgaW4gc3RhYmxl IGJhY2twb3J0cywgaWYgZGF0YV9yYWNlKCkgaXMKbm90IHlldCBiYWNrcG9ydGVkLgoKdjI6IHVz ZSBkYXRhX3JhY2UoKSBib3RoIGluIHRjcF9tZDVfaGFzaF9rZXkoKSBhbmQgdGNwX21kNV9kb19h ZGQoKQoKRml4ZXM6IDZhMmZlYmVjMzM4ZCAoInRjcDogbWQ1OiBhZGQgbWlzc2luZyBtZW1vcnkg YmFycmllcnMgaW4gdGNwX21kNV9kb19hZGQoKS90Y3BfbWQ1X2hhc2hfa2V5KCkiKQpTaWduZWQt b2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkNjOiBNYXRoaWV1IERl c25veWVycyA8bWF0aGlldS5kZXNub3llcnNAZWZmaWNpb3MuY29tPgpDYzogSGVyYmVydCBYdSA8 aGVyYmVydEBnb25kb3IuYXBhbmEub3JnLmF1PgpDYzogTWFyY28gRWx2ZXIgPGVsdmVyQGdvb2ds ZS5jb20+ClJldmlld2VkLWJ5OiBNYXRoaWV1IERlc25veWVycyA8bWF0aGlldS5kZXNub3llcnNA ZWZmaWNpb3MuY29tPgpBY2tlZC1ieTogSGVyYmVydCBYdSA8aGVyYmVydEBnb25kb3IuYXBhbmEu b3JnLmF1PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L2lwdjQvdGNwLmMgICAgICB8ICA2ICsrKy0tLQogbmV0L2lwdjQvdGNwX2lw djQuYyB8IDE0ICsrKysrKysrKystLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDEzIGluc2VydGlvbnMo KyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwLmMgYi9uZXQvaXB2 NC90Y3AuYwppbmRleCA3NGJmZTlhM2UyZmEuLmQ2NzljOTFiYjcyOSAxMDA2NDQKLS0tIGEvbmV0 L2lwdjQvdGNwLmMKKysrIGIvbmV0L2lwdjQvdGNwLmMKQEAgLTM4ODAsMTMgKzM4ODAsMTMgQEAg RVhQT1JUX1NZTUJPTCh0Y3BfbWQ1X2hhc2hfc2tiX2RhdGEpOwogCiBpbnQgdGNwX21kNV9oYXNo X2tleShzdHJ1Y3QgdGNwX21kNXNpZ19wb29sICpocCwgY29uc3Qgc3RydWN0IHRjcF9tZDVzaWdf a2V5ICprZXkpCiB7Ci0JdTgga2V5bGVuID0ga2V5LT5rZXlsZW47CisJdTgga2V5bGVuID0gUkVB RF9PTkNFKGtleS0+a2V5bGVuKTsgLyogcGFpcmVkIHdpdGggV1JJVEVfT05DRSgpIGluIHRjcF9t ZDVfZG9fYWRkICovCiAJc3RydWN0IHNjYXR0ZXJsaXN0IHNnOwogCi0Jc21wX3JtYigpOyAvKiBw YWlyZWQgd2l0aCBzbXBfd21iKCkgaW4gdGNwX21kNV9kb19hZGQoKSAqLwotCiAJc2dfaW5pdF9v bmUoJnNnLCBrZXktPmtleSwga2V5bGVuKTsKIAlhaGFzaF9yZXF1ZXN0X3NldF9jcnlwdChocC0+ bWQ1X3JlcSwgJnNnLCBOVUxMLCBrZXlsZW4pOworCisJLyogdGNwX21kNV9kb19hZGQoKSBtaWdo dCBjaGFuZ2Uga2V5LT5rZXkgdW5kZXIgdXMgKi8KIAlyZXR1cm4gY3J5cHRvX2FoYXNoX3VwZGF0 ZShocC0+bWQ1X3JlcSk7CiB9CiBFWFBPUlRfU1lNQk9MKHRjcF9tZDVfaGFzaF9rZXkpOwpkaWZm IC0tZ2l0IGEvbmV0L2lwdjQvdGNwX2lwdjQuYyBiL25ldC9pcHY0L3RjcF9pcHY0LmMKaW5kZXgg MmE3ZTIxNWViMTk1Li40YzJmMmYyMTA3YTkgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9pcHY0 LmMKKysrIGIvbmV0L2lwdjQvdGNwX2lwdjQuYwpAQCAtMTEwMywxMiArMTEwMywxOCBAQCBpbnQg dGNwX21kNV9kb19hZGQoc3RydWN0IHNvY2sgKnNrLCBjb25zdCB1bmlvbiB0Y3BfbWQ1X2FkZHIg KmFkZHIsCiAKIAlrZXkgPSB0Y3BfbWQ1X2RvX2xvb2t1cF9leGFjdChzaywgYWRkciwgZmFtaWx5 LCBwcmVmaXhsZW4sIGwzaW5kZXgpOwogCWlmIChrZXkpIHsKLQkJLyogUHJlLWV4aXN0aW5nIGVu dHJ5IC0ganVzdCB1cGRhdGUgdGhhdCBvbmUuICovCisJCS8qIFByZS1leGlzdGluZyBlbnRyeSAt IGp1c3QgdXBkYXRlIHRoYXQgb25lLgorCQkgKiBOb3RlIHRoYXQgdGhlIGtleSBtaWdodCBiZSB1 c2VkIGNvbmN1cnJlbnRseS4KKwkJICovCiAJCW1lbWNweShrZXktPmtleSwgbmV3a2V5LCBuZXdr ZXlsZW4pOwogCi0JCXNtcF93bWIoKTsgLyogcGFpcnMgd2l0aCBzbXBfcm1iKCkgaW4gdGNwX21k NV9oYXNoX2tleSgpICovCisJCS8qIFBhaXJzIHdpdGggUkVBRF9PTkNFKCkgaW4gdGNwX21kNV9o YXNoX2tleSgpLgorCQkgKiBBbHNvIG5vdGUgdGhhdCBhIHJlYWRlciBjb3VsZCBjYXRjaCBuZXcg a2V5LT5rZXlsZW4gdmFsdWUKKwkJICogYnV0IG9sZCBrZXktPmtleVtdLCB0aGlzIGlzIHRoZSBy ZWFzb24gd2UgdXNlIF9fR0ZQX1pFUk8KKwkJICogYXQgc29ja19rbWFsbG9jKCkgdGltZSBiZWxv dyB0aGVzZSBsaW5lcy4KKwkJICovCisJCVdSSVRFX09OQ0Uoa2V5LT5rZXlsZW4sIG5ld2tleWxl bik7CiAKLQkJa2V5LT5rZXlsZW4gPSBuZXdrZXlsZW47CiAJCXJldHVybiAwOwogCX0KIApAQCAt MTEyNCw3ICsxMTMwLDcgQEAgaW50IHRjcF9tZDVfZG9fYWRkKHN0cnVjdCBzb2NrICpzaywgY29u c3QgdW5pb24gdGNwX21kNV9hZGRyICphZGRyLAogCQlyY3VfYXNzaWduX3BvaW50ZXIodHAtPm1k NXNpZ19pbmZvLCBtZDVzaWcpOwogCX0KIAotCWtleSA9IHNvY2tfa21hbGxvYyhzaywgc2l6ZW9m KCprZXkpLCBnZnApOworCWtleSA9IHNvY2tfa21hbGxvYyhzaywgc2l6ZW9mKCprZXkpLCBnZnAg fCBfX0dGUF9aRVJPKTsKIAlpZiAoIWtleSkKIAkJcmV0dXJuIC1FTk9NRU07CiAJaWYgKCF0Y3Bf YWxsb2NfbWQ1c2lnX3Bvb2woKSkgewotLSAKMi4yNi4yCgoKRnJvbSAyZmUwMTg3MWM3ZDc0MmE0 YjM5N2I1MjYwODQ5ZWQ3OWIwZmI4OGY0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBF cmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFdlZCwgMSBKdWwgMjAyMCAx ODozOTozMyAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMjQvNDRdIHRjcDogbWQ1OiBhbGxvdyBjaGFu Z2luZyBNRDUga2V5cyBpbiBhbGwgc29ja2V0IHN0YXRlcwoKWyBVcHN0cmVhbSBjb21taXQgMWNh MGZhZmQ3M2M1MjY4ZThmYzRiOTk3MDk0YjhiYjJiZmU4ZGVlYSBdCgpUaGlzIGVzc2VudGlhbGx5 IHJldmVydHMgY29tbWl0IDcyMTIzMDMyNjg5MSAoInRjcDogbWQ1OiByZWplY3QgVENQX01ENVNJ RwpvciBUQ1BfTUQ1U0lHX0VYVCBvbiBlc3RhYmxpc2hlZCBzb2NrZXRzIikKCk1hdGhpZXUgcmVw b3J0ZWQgdGhhdCBtYW55IHZlbmRvcnMgQkdQIGltcGxlbWVudGF0aW9ucyBjYW4KYWN0dWFsbHkg c3dpdGNoIFRDUCBNRDUgb24gZXN0YWJsaXNoZWQgZmxvd3MuCgpRdW90aW5nIE1hdGhpZXUgOgog ICBIZXJlIGlzIGEgbGlzdCBvZiBhIGZldyBuZXR3b3JrIHZlbmRvcnMgYWxvbmcgd2l0aCB0aGVp ciBiZWhhdmlvcgogICB3aXRoIHJlc3BlY3QgdG8gVENQIE1ENToKCiAgIC0gQ2lzY286IEFsbG93 cyBmb3IgcGFzc3dvcmQgdG8gYmUgY2hhbmdlZCwgYnV0IHdpdGhpbiB0aGUgaG9sZC1kb3duCiAg ICAgdGltZXIgKH4xODAgc2Vjb25kcykuCiAgIC0gSnVuaXBlcjogV2hlbiBwYXNzd29yZCBpcyBp bml0aWFsbHkgc2V0IG9uIGFjdGl2ZSBjb25uZWN0aW9uIGl0IHdpbGwKICAgICByZXNldCwgYnV0 IGFmdGVyIHRoYXQgYW55IHN1YnNlcXVlbnQgcGFzc3dvcmQgY2hhbmdlcyBubyBuZXR3b3JrCiAg ICAgcmVzZXRzLgogICAtIE5va2lhOiBObyBub3RlcyBvbiBpZiB0aGV5IGZsYXAgdGhlIHRjcCBj b25uZWN0aW9uIG9yIG5vdC4KICAgLSBFcmljc3Nvbi9SZWRCYWNrOiBBbGxvd3MgZm9yIDIgcGFz c3dvcmQgKG9sZC9uZXcpIHRvIGNvLWV4aXN0IHVudGlsCiAgICAgYm90aCBzaWRlcyBhcmUgb2sg d2l0aCBuZXcgcGFzc3dvcmRzLgogICAtIE1ldGEtU3dpdGNoOiBFeHBlY3RzIHRoZSBwYXNzd29y ZCB0byBiZSBzZXQgYmVmb3JlIGEgY29ubmVjdGlvbiBpcwogICAgIGF0dGVtcHRlZCwgYnV0IG5v IGZ1cnRoZXIgaW5mbyBvbiB3aGV0aGVyIHRoZXkgcmVzZXQgdGhlIFRDUAogICAgIGNvbm5lY3Rp b24gb24gYSBjaGFuZ2UuCiAgIC0gQXZheWE6IERpc2FibGUgdGhlIG5laWdoYm9yLCB0aGVuIHNl dCBwYXNzd29yZCwgdGhlbiByZS1lbmFibGUuCiAgIC0gWmVib3M6IFdvdWxkIG5vcm1hbGx5IGFs bG93IHRoZSBjaGFuZ2Ugd2hlbiBzb2NrZXQgY29ubmVjdGVkLgoKV2UgY2FuIHJldmVydCBteSBw cmlvciBjaGFuZ2UgYmVjYXVzZSBjb21taXQgOTQyNGUyZTdhZDkzICgidGNwOiBtZDU6IGZpeCBw b3RlbnRpYWwKb3ZlcmVzdGltYXRpb24gb2YgVENQIG9wdGlvbiBzcGFjZSIpIHJlbW92ZWQgdGhl IGxlYWsgb2YgNCBrZXJuZWwgYnl0ZXMgdG8KdGhlIHdpcmUgdGhhdCB3YXMgdGhlIG1haW4gcmVh c29uIGZvciBteSBwYXRjaC4KCldoaWxlIGRvaW5nIG15IGludmVzdGlnYXRpb25zLCBJIGZvdW5k IGEgYnVnIHdoZW4gYSBNRDUga2V5IGlzIGNoYW5nZWQsIGxlYWRpbmcKdG8gdGhlc2UgY29tbWl0 cyB0aGF0IHN0YWJsZSB0ZWFtcyB3YW50IHRvIGNvbnNpZGVyIGJlZm9yZSBiYWNrcG9ydGluZyB0 aGlzIHJldmVydCA6CgogQ29tbWl0IDZhMmZlYmVjMzM4ZCAoInRjcDogbWQ1OiBhZGQgbWlzc2lu ZyBtZW1vcnkgYmFycmllcnMgaW4gdGNwX21kNV9kb19hZGQoKS90Y3BfbWQ1X2hhc2hfa2V5KCki KQogQ29tbWl0IGU2Y2VkODMxZWYxMSAoInRjcDogbWQ1OiByZWZpbmUgdGNwX21kNV9kb19hZGQo KS90Y3BfbWQ1X2hhc2hfa2V5KCkgYmFycmllcnMiKQoKRml4ZXM6IDcyMTIzMDMyNjg5MSAidGNw OiBtZDU6IHJlamVjdCBUQ1BfTUQ1U0lHIG9yIFRDUF9NRDVTSUdfRVhUIG9uIGVzdGFibGlzaGVk IHNvY2tldHMiClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNv bT4KUmVwb3J0ZWQtYnk6IE1hdGhpZXUgRGVzbm95ZXJzIDxtYXRoaWV1LmRlc25veWVyc0BlZmZp Y2lvcy5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBuZXQvaXB2NC90Y3AuYyB8IDUgKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxIGlu c2VydGlvbigrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3AuYyBi L25ldC9pcHY0L3RjcC5jCmluZGV4IGQ2NzljOTFiYjcyOS4uZWVlMTgyNTlhMjRlIDEwMDY0NAot LS0gYS9uZXQvaXB2NC90Y3AuYworKysgYi9uZXQvaXB2NC90Y3AuYwpAQCAtMzA5MywxMCArMzA5 Myw3IEBAIHN0YXRpYyBpbnQgZG9fdGNwX3NldHNvY2tvcHQoc3RydWN0IHNvY2sgKnNrLCBpbnQg bGV2ZWwsCiAjaWZkZWYgQ09ORklHX1RDUF9NRDVTSUcKIAljYXNlIFRDUF9NRDVTSUc6CiAJY2Fz ZSBUQ1BfTUQ1U0lHX0VYVDoKLQkJaWYgKCgxIDw8IHNrLT5za19zdGF0ZSkgJiAoVENQRl9DTE9T RSB8IFRDUEZfTElTVEVOKSkKLQkJCWVyciA9IHRwLT5hZl9zcGVjaWZpYy0+bWQ1X3BhcnNlKHNr LCBvcHRuYW1lLCBvcHR2YWwsIG9wdGxlbik7Ci0JCWVsc2UKLQkJCWVyciA9IC1FSU5WQUw7CisJ CWVyciA9IHRwLT5hZl9zcGVjaWZpYy0+bWQ1X3BhcnNlKHNrLCBvcHRuYW1lLCBvcHR2YWwsIG9w dGxlbik7CiAJCWJyZWFrOwogI2VuZGlmCiAJY2FzZSBUQ1BfVVNFUl9USU1FT1VUOgotLSAKMi4y Ni4yCgoKRnJvbSBhYjY4YjFmZTMzNzE3ODE0OWNjOGU4MjA1YWMxZWViOTM4ZDkxZmJkIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWls LmNvbT4KRGF0ZTogVGh1LCAyIEp1bCAyMDIwIDExOjUyOjU2IC0wNzAwClN1YmplY3Q6IFtQQVRD SCAyNS80NF0gY2dyb3VwOiBmaXggY2dyb3VwX3NrX2FsbG9jKCkgZm9yIHNrX2Nsb25lX2xvY2so KQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRG LTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKWyBVcHN0cmVhbSBjb21taXQgYWQw Zjc1ZTVmNTdjY2JjZWVjMTMyNzRlMWUyNDJmMmI1YTYzOTdlZCBdCgpXaGVuIHdlIGNsb25lIGEg c29ja2V0IGluIHNrX2Nsb25lX2xvY2soKSwgaXRzIHNrX2NncnBfZGF0YSBpcwpjb3BpZWQsIHNv IHRoZSBjZ3JvdXAgcmVmY250IG11c3QgYmUgdGFrZW4gdG9vLiBBbmQsIHVubGlrZSB0aGUKc2tf YWxsb2MoKSBwYXRoLCBzb2NrX3VwZGF0ZV9uZXRwcmlvaWR4KCkgaXMgbm90IGNhbGxlZCBoZXJl LgpUaGVyZWZvcmUsIGl0IGlzIHNhZmUgYW5kIG5lY2Vzc2FyeSB0byBncmFiIHRoZSBjZ3JvdXAg cmVmY250CmV2ZW4gd2hlbiBjZ3JvdXBfc2tfYWxsb2MgaXMgZGlzYWJsZWQuCgpza19jbG9uZV9s b2NrKCkgaXMgaW4gQkggY29udGV4dCBhbnl3YXksIHRoZSBpbl9pbnRlcnJ1cHQoKQp3b3VsZCB0 ZXJtaW5hdGUgdGhpcyBmdW5jdGlvbiBpZiBjYWxsZWQgdGhlcmUuIEFuZCBmb3Igc2tfYWxsb2Mo KQpza2NkLT52YWwgaXMgYWx3YXlzIHplcm8uIFNvIGl0J3Mgc2FmZSB0byBmYWN0b3Igb3V0IHRo ZSBjb2RlCnRvIG1ha2UgaXQgbW9yZSByZWFkYWJsZS4KClRoZSBnbG9iYWwgdmFyaWFibGUgJ2Nn cm91cF9za19hbGxvY19kaXNhYmxlZCcgaXMgdXNlZCB0byBkZXRlcm1pbmUKd2hldGhlciB0byB0 YWtlIHRoZXNlIHJlZmVyZW5jZSBjb3VudHMuIEl0IGlzIGltcG9zc2libGUgdG8gbWFrZQp0aGUg cmVmZXJlbmNlIGNvdW50aW5nIGNvcnJlY3QgdW5sZXNzIHdlIHNhdmUgdGhpcyBiaXQgb2YgaW5m b3JtYXRpb24KaW4gc2tjZC0+dmFsLiBTbywgYWRkIGEgbmV3IGJpdCB0aGVyZSB0byByZWNvcmQg d2hldGhlciB0aGUgc29ja2V0CmhhcyBhbHJlYWR5IHRha2VuIHRoZSByZWZlcmVuY2UgY291bnRz LiBUaGlzIG9idmlvdXNseSByZWxpZXMgb24Ka21hbGxvYygpIHRvIGFsaWduIGNncm91cCBwb2lu dGVycyB0byBhdCBsZWFzdCA0IGJ5dGVzLApBUkNIX0tNQUxMT0NfTUlOQUxJR04gaXMgY2VydGFp bmx5IGxhcmdlciB0aGFuIHRoYXQuCgpUaGlzIGJ1ZyBzZWVtcyB0byBiZSBpbnRyb2R1Y2VkIHNp bmNlIHRoZSBiZWdpbm5pbmcsIGNvbW1pdApkOTc5YTM5ZDcyNDIgKCJjZ3JvdXA6IGR1cGxpY2F0 ZSBjZ3JvdXAgcmVmZXJlbmNlIHdoZW4gY2xvbmluZyBzb2NrZXRzIikKdHJpZWQgdG8gZml4IGl0 IGJ1dCBub3QgY29tcGVsZXRlbHkuIEl0IHNlZW1zIG5vdCBlYXN5IHRvIHRyaWdnZXIgdW50aWwK dGhlIHJlY2VudCBjb21taXQgMDkwZTI4YjIyOWFmCigibmV0cHJpb19jZ3JvdXA6IEZpeCB1bmxp bWl0ZWQgbWVtb3J5IGxlYWsgb2YgdjIgY2dyb3VwcyIpIHdhcyBtZXJnZWQuCgpGaXhlczogYmQx MDYwYTFkNjcxICgic29jaywgY2dyb3VwOiBhZGQgc29jay0+c2tfY2dyb3VwIikKUmVwb3J0ZWQt Ynk6IENhbWVyb24gQmVya2VucGFzIDxjYW1AbmVvLXplb24uZGU+ClJlcG9ydGVkLWJ5OiBQZXRl ciBHZWlzIDxwZ3dpcGVvdXRAZ21haWwuY29tPgpSZXBvcnRlZC1ieTogTHUgRmVuZ3FpIDxsdWZx LmZuc3RAY24uZnVqaXRzdS5jb20+ClJlcG9ydGVkLWJ5OiBEYW5pw6tsIFNvbmNrIDxkc29uY2s5 MkBnbWFpbC5jb20+ClJlcG9ydGVkLWJ5OiBaaGFuZyBRaWFuZyA8cWlhbmcuemhhbmdAd2luZHJp dmVyLmNvbT4KVGVzdGVkLWJ5OiBDYW1lcm9uIEJlcmtlbnBhcyA8Y2FtQG5lby16ZW9uLmRlPgpU ZXN0ZWQtYnk6IFBldGVyIEdlaXMgPHBnd2lwZW91dEBnbWFpbC5jb20+ClRlc3RlZC1ieTogVGhv bWFzIExhbXByZWNodCA8dC5sYW1wcmVjaHRAcHJveG1veC5jb20+CkNjOiBEYW5pZWwgQm9ya21h bm4gPGRhbmllbEBpb2dlYXJib3gubmV0PgpDYzogWmVmYW4gTGkgPGxpemVmYW5AaHVhd2VpLmNv bT4KQ2M6IFRlanVuIEhlbyA8dGpAa2VybmVsLm9yZz4KQ2M6IFJvbWFuIEd1c2hjaGluIDxndXJv QGZiLmNvbT4KU2lnbmVkLW9mZi1ieTogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBpbmNsdWRlL2xpbnV4L2Nncm91cC1kZWZzLmggfCAgNiArKysrLS0KIGluY2x1ZGUvbGlu dXgvY2dyb3VwLmggICAgICB8ICA0ICsrKy0KIGtlcm5lbC9jZ3JvdXAvY2dyb3VwLmMgICAgICB8 IDMxICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KIG5ldC9jb3JlL3NvY2suYyAgICAg ICAgICAgICB8ICAyICstCiA0IGZpbGVzIGNoYW5nZWQsIDI3IGluc2VydGlvbnMoKyksIDE2IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvY2dyb3VwLWRlZnMuaCBiL2lu Y2x1ZGUvbGludXgvY2dyb3VwLWRlZnMuaAppbmRleCA1MjY2MTE1NWY4NWYuLjRmMWNkMGVkYzU3 ZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9jZ3JvdXAtZGVmcy5oCisrKyBiL2luY2x1ZGUv bGludXgvY2dyb3VwLWRlZnMuaApAQCAtNzkwLDcgKzc5MCw4IEBAIHN0cnVjdCBzb2NrX2Nncm91 cF9kYXRhIHsKIAl1bmlvbiB7CiAjaWZkZWYgX19MSVRUTEVfRU5ESUFOCiAJCXN0cnVjdCB7Ci0J CQl1OAlpc19kYXRhOworCQkJdTgJaXNfZGF0YSA6IDE7CisJCQl1OAlub19yZWZjbnQgOiAxOwog CQkJdTgJcGFkZGluZzsKIAkJCXUxNglwcmlvaWR4OwogCQkJdTMyCWNsYXNzaWQ7CkBAIC04MDAs NyArODAxLDggQEAgc3RydWN0IHNvY2tfY2dyb3VwX2RhdGEgewogCQkJdTMyCWNsYXNzaWQ7CiAJ CQl1MTYJcHJpb2lkeDsKIAkJCXU4CXBhZGRpbmc7Ci0JCQl1OAlpc19kYXRhOworCQkJdTgJbm9f cmVmY250IDogMTsKKwkJCXU4CWlzX2RhdGEgOiAxOwogCQl9IF9fcGFja2VkOwogI2VuZGlmCiAJ CXU2NAkJdmFsOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9jZ3JvdXAuaCBiL2luY2x1ZGUv bGludXgvY2dyb3VwLmgKaW5kZXggNDU5OGU0ZGE2YjFiLi42MTg4MzhjNDgzMTMgMTAwNjQ0Ci0t LSBhL2luY2x1ZGUvbGludXgvY2dyb3VwLmgKKysrIGIvaW5jbHVkZS9saW51eC9jZ3JvdXAuaApA QCAtODIyLDYgKzgyMiw3IEBAIGV4dGVybiBzcGlubG9ja190IGNncm91cF9za191cGRhdGVfbG9j azsKIAogdm9pZCBjZ3JvdXBfc2tfYWxsb2NfZGlzYWJsZSh2b2lkKTsKIHZvaWQgY2dyb3VwX3Nr X2FsbG9jKHN0cnVjdCBzb2NrX2Nncm91cF9kYXRhICpza2NkKTsKK3ZvaWQgY2dyb3VwX3NrX2Ns b25lKHN0cnVjdCBzb2NrX2Nncm91cF9kYXRhICpza2NkKTsKIHZvaWQgY2dyb3VwX3NrX2ZyZWUo c3RydWN0IHNvY2tfY2dyb3VwX2RhdGEgKnNrY2QpOwogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBj Z3JvdXAgKnNvY2tfY2dyb3VwX3B0cihzdHJ1Y3Qgc29ja19jZ3JvdXBfZGF0YSAqc2tjZCkKQEAg LTgzNSw3ICs4MzYsNyBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBjZ3JvdXAgKnNvY2tfY2dyb3Vw X3B0cihzdHJ1Y3Qgc29ja19jZ3JvdXBfZGF0YSAqc2tjZCkKIAkgKi8KIAl2ID0gUkVBRF9PTkNF KHNrY2QtPnZhbCk7CiAKLQlpZiAodiAmIDEpCisJaWYgKHYgJiAzKQogCQlyZXR1cm4gJmNncnBf ZGZsX3Jvb3QuY2dycDsKIAogCXJldHVybiAoc3RydWN0IGNncm91cCAqKSh1bnNpZ25lZCBsb25n KXYgPzogJmNncnBfZGZsX3Jvb3QuY2dycDsKQEAgLTg0Nyw2ICs4NDgsNyBAQCBzdGF0aWMgaW5s aW5lIHN0cnVjdCBjZ3JvdXAgKnNvY2tfY2dyb3VwX3B0cihzdHJ1Y3Qgc29ja19jZ3JvdXBfZGF0 YSAqc2tjZCkKICNlbHNlCS8qIENPTkZJR19DR1JPVVBfREFUQSAqLwogCiBzdGF0aWMgaW5saW5l IHZvaWQgY2dyb3VwX3NrX2FsbG9jKHN0cnVjdCBzb2NrX2Nncm91cF9kYXRhICpza2NkKSB7fQor c3RhdGljIGlubGluZSB2b2lkIGNncm91cF9za19jbG9uZShzdHJ1Y3Qgc29ja19jZ3JvdXBfZGF0 YSAqc2tjZCkge30KIHN0YXRpYyBpbmxpbmUgdm9pZCBjZ3JvdXBfc2tfZnJlZShzdHJ1Y3Qgc29j a19jZ3JvdXBfZGF0YSAqc2tjZCkge30KIAogI2VuZGlmCS8qIENPTkZJR19DR1JPVVBfREFUQSAq LwpkaWZmIC0tZ2l0IGEva2VybmVsL2Nncm91cC9jZ3JvdXAuYyBiL2tlcm5lbC9jZ3JvdXAvY2dy b3VwLmMKaW5kZXggMDZiNWVhOWQ4OTlkLi45YjQ2YTc2MDRlN2IgMTAwNjQ0Ci0tLSBhL2tlcm5l bC9jZ3JvdXAvY2dyb3VwLmMKKysrIGIva2VybmVsL2Nncm91cC9jZ3JvdXAuYwpAQCAtNjQ0Nywx OCArNjQ0Nyw4IEBAIHZvaWQgY2dyb3VwX3NrX2FsbG9jX2Rpc2FibGUodm9pZCkKIAogdm9pZCBj Z3JvdXBfc2tfYWxsb2Moc3RydWN0IHNvY2tfY2dyb3VwX2RhdGEgKnNrY2QpCiB7Ci0JaWYgKGNn cm91cF9za19hbGxvY19kaXNhYmxlZCkKLQkJcmV0dXJuOwotCi0JLyogU29ja2V0IGNsb25lIHBh dGggKi8KLQlpZiAoc2tjZC0+dmFsKSB7Ci0JCS8qCi0JCSAqIFdlIG1pZ2h0IGJlIGNsb25pbmcg YSBzb2NrZXQgd2hpY2ggaXMgbGVmdCBpbiBhbiBlbXB0eQotCQkgKiBjZ3JvdXAgYW5kIHRoZSBj Z3JvdXAgbWlnaHQgaGF2ZSBhbHJlYWR5IGJlZW4gcm1kaXInZC4KLQkJICogRG9uJ3QgdXNlIGNn cm91cF9nZXRfbGl2ZSgpLgotCQkgKi8KLQkJY2dyb3VwX2dldChzb2NrX2Nncm91cF9wdHIoc2tj ZCkpOwotCQljZ3JvdXBfYnBmX2dldChzb2NrX2Nncm91cF9wdHIoc2tjZCkpOworCWlmIChjZ3Jv dXBfc2tfYWxsb2NfZGlzYWJsZWQpIHsKKwkJc2tjZC0+bm9fcmVmY250ID0gMTsKIAkJcmV0dXJu OwogCX0KIApAQCAtNjQ4MywxMCArNjQ3MywyNyBAQCB2b2lkIGNncm91cF9za19hbGxvYyhzdHJ1 Y3Qgc29ja19jZ3JvdXBfZGF0YSAqc2tjZCkKIAlyY3VfcmVhZF91bmxvY2soKTsKIH0KIAordm9p ZCBjZ3JvdXBfc2tfY2xvbmUoc3RydWN0IHNvY2tfY2dyb3VwX2RhdGEgKnNrY2QpCit7CisJaWYg KHNrY2QtPnZhbCkgeworCQlpZiAoc2tjZC0+bm9fcmVmY250KQorCQkJcmV0dXJuOworCQkvKgor CQkgKiBXZSBtaWdodCBiZSBjbG9uaW5nIGEgc29ja2V0IHdoaWNoIGlzIGxlZnQgaW4gYW4gZW1w dHkKKwkJICogY2dyb3VwIGFuZCB0aGUgY2dyb3VwIG1pZ2h0IGhhdmUgYWxyZWFkeSBiZWVuIHJt ZGlyJ2QuCisJCSAqIERvbid0IHVzZSBjZ3JvdXBfZ2V0X2xpdmUoKS4KKwkJICovCisJCWNncm91 cF9nZXQoc29ja19jZ3JvdXBfcHRyKHNrY2QpKTsKKwkJY2dyb3VwX2JwZl9nZXQoc29ja19jZ3Jv dXBfcHRyKHNrY2QpKTsKKwl9Cit9CisKIHZvaWQgY2dyb3VwX3NrX2ZyZWUoc3RydWN0IHNvY2tf Y2dyb3VwX2RhdGEgKnNrY2QpCiB7CiAJc3RydWN0IGNncm91cCAqY2dycCA9IHNvY2tfY2dyb3Vw X3B0cihza2NkKTsKIAorCWlmIChza2NkLT5ub19yZWZjbnQpCisJCXJldHVybjsKIAljZ3JvdXBf YnBmX3B1dChjZ3JwKTsKIAljZ3JvdXBfcHV0KGNncnApOwogfQpkaWZmIC0tZ2l0IGEvbmV0L2Nv cmUvc29jay5jIGIvbmV0L2NvcmUvc29jay5jCmluZGV4IGFmZTRhNjJhZGY4Zi4uYmM2ZmU0MTE0 Mzc0IDEwMDY0NAotLS0gYS9uZXQvY29yZS9zb2NrLmMKKysrIGIvbmV0L2NvcmUvc29jay5jCkBA IC0xODM3LDcgKzE4MzcsNyBAQCBzdHJ1Y3Qgc29jayAqc2tfY2xvbmVfbG9jayhjb25zdCBzdHJ1 Y3Qgc29jayAqc2ssIGNvbnN0IGdmcF90IHByaW9yaXR5KQogCQkvKiBzay0+c2tfbWVtY2cgd2ls bCBiZSBwb3B1bGF0ZWQgYXQgYWNjZXB0KCkgdGltZSAqLwogCQluZXdzay0+c2tfbWVtY2cgPSBO VUxMOwogCi0JCWNncm91cF9za19hbGxvYygmbmV3c2stPnNrX2NncnBfZGF0YSk7CisJCWNncm91 cF9za19jbG9uZSgmbmV3c2stPnNrX2NncnBfZGF0YSk7CiAKIAkJcmN1X3JlYWRfbG9jaygpOwog CQlmaWx0ZXIgPSByY3VfZGVyZWZlcmVuY2Uoc2stPnNrX2ZpbHRlcik7Ci0tIAoyLjI2LjIKCgpG cm9tIGQ0NTUwYTkyYzJkNzA5ODNmZGUzMDk2NWNkMzc1OTE1NmRkOTIxNGYgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpE YXRlOiBUaHUsIDkgSnVsIDIwMjAgMTY6Mjg6NDQgLTA3MDAKU3ViamVjdDogW1BBVENIIDI2LzQ0 XSBjZ3JvdXA6IEZpeCBzb2NrX2Nncm91cF9kYXRhIG9uIGJpZy1lbmRpYW4uCgpbIFVwc3RyZWFt IGNvbW1pdCAxNGIwMzJiOGY4ZmNlMDNhNTQ2ZGNmMzY1NDU0YmVjOGM0YTU4ZDdkIF0KCkluIG9y ZGVyIGZvciBub19yZWZjbnQgYW5kIGlzX2RhdGEgdG8gYmUgdGhlIGxvd2VzdCBvcmRlciB0d28K Yml0cyBpbiB0aGUgJ3ZhbCcgd2UgaGF2ZSB0byBwYWQgb3V0IHRoZSBiaXRmaWVsZCBvZiB0aGUg dTguCgpGaXhlczogYWQwZjc1ZTVmNTdjICgiY2dyb3VwOiBmaXggY2dyb3VwX3NrX2FsbG9jKCkg Zm9yIHNrX2Nsb25lX2xvY2soKSIpClJlcG9ydGVkLWJ5OiBHdWVudGVyIFJvZWNrIDxsaW51eEBy b2Vjay11cy5uZXQ+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL2xpbnV4L2Nncm91cC1kZWZzLmggfCAyICsrCiAxIGZpbGUg Y2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9jZ3Jv dXAtZGVmcy5oIGIvaW5jbHVkZS9saW51eC9jZ3JvdXAtZGVmcy5oCmluZGV4IDRmMWNkMGVkYzU3 ZC4uZmVlMGI1NTQ3Y2QwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2Nncm91cC1kZWZzLmgK KysrIGIvaW5jbHVkZS9saW51eC9jZ3JvdXAtZGVmcy5oCkBAIC03OTIsNiArNzkyLDcgQEAgc3Ry dWN0IHNvY2tfY2dyb3VwX2RhdGEgewogCQlzdHJ1Y3QgewogCQkJdTgJaXNfZGF0YSA6IDE7CiAJ CQl1OAlub19yZWZjbnQgOiAxOworCQkJdTgJdW51c2VkIDogNjsKIAkJCXU4CXBhZGRpbmc7CiAJ CQl1MTYJcHJpb2lkeDsKIAkJCXUzMgljbGFzc2lkOwpAQCAtODAxLDYgKzgwMiw3IEBAIHN0cnVj dCBzb2NrX2Nncm91cF9kYXRhIHsKIAkJCXUzMgljbGFzc2lkOwogCQkJdTE2CXByaW9pZHg7CiAJ CQl1OAlwYWRkaW5nOworCQkJdTgJdW51c2VkIDogNjsKIAkJCXU4CW5vX3JlZmNudCA6IDE7CiAJ CQl1OAlpc19kYXRhIDogMTsKIAkJfSBfX3BhY2tlZDsKLS0gCjIuMjYuMgoKCkZyb20gMjM3Yjlm OWM0ZjRjMWY4NjczMmIzNjFjMGUxYzMzZjFjMDY4NzVjYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogQWxleCBFbGRlciA8ZWxkZXJAbGluYXJvLm9yZz4KRGF0ZTogVHVlLCAzMCBKdW4g MjAyMCAwNzo0NDo0MiAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMjcvNDRdIG5ldDogaXBhOiBhbHdh eXMgY2hlY2sgZm9yIHN0b3BwZWQgY2hhbm5lbAoKWyBVcHN0cmVhbSBjb21taXQgNTQ2OGNiY2Rk ZjQ3ZjY3NDgyOWM2YWRhMTkwMjgzMTA4YTYzZDdiNSBdCgpJbiBnc2lfY2hhbm5lbF9zdG9wKCks IHRoZXJlJ3MgYSBjaGVjayB0byBzZWUgaWYgdGhlIGNoYW5uZWwgbWlnaHQKaGF2ZSBlbnRlcmVk IFNUT1BQRUQgc3RhdGUgc2luY2UgYSBwcmV2aW91cyBjYWxsLCB3aGljaCBtaWdodCBoYXZlCnRp bWVkIG91dCBiZWZvcmUgc3RvcHBpbmcgY29tcGxldGVkLgoKVGhhdCBjaGVjayBhY3R1YWxseSBi ZWxvbmdzIGluIGdzaV9jaGFubmVsX3N0b3BfY29tbWFuZCgpLCB3aGljaCBpcwpjYWxsZWQgcmVw ZWF0ZWRseSBieSBnc2lfY2hhbm5lbF9zdG9wKCkgZm9yIFJYIGNoYW5uZWxzLgoKRml4ZXM6IDY1 MGQxNjAzODI1ZCAoInNvYzogcWNvbTogaXBhOiB0aGUgZ2VuZXJpYyBzb2Z0d2FyZSBpbnRlcmZh Y2UiKQpTaWduZWQtb2ZmLWJ5OiBBbGV4IEVsZGVyIDxlbGRlckBsaW5hcm8ub3JnPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVy cy9uZXQvaXBhL2dzaS5jIHwgMTMgKysrKysrLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5z ZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEv Z3NpLmMgYi9kcml2ZXJzL25ldC9pcGEvZ3NpLmMKaW5kZXggMDQzYTY3NWUxYmUxLi42MTQ0YTFj Y2MwZjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2lwYS9nc2kuYworKysgYi9kcml2ZXJzL25l dC9pcGEvZ3NpLmMKQEAgLTQ5MCw2ICs0OTAsMTIgQEAgc3RhdGljIGludCBnc2lfY2hhbm5lbF9z dG9wX2NvbW1hbmQoc3RydWN0IGdzaV9jaGFubmVsICpjaGFubmVsKQogCWVudW0gZ3NpX2NoYW5u ZWxfc3RhdGUgc3RhdGUgPSBjaGFubmVsLT5zdGF0ZTsKIAlpbnQgcmV0OwogCisJLyogQ2hhbm5l bCBjb3VsZCBoYXZlIGVudGVyZWQgU1RPUFBFRCBzdGF0ZSBzaW5jZSBsYXN0IGNhbGwKKwkgKiBp ZiBpdCB0aW1lZCBvdXQuICBJZiBzbywgd2UncmUgZG9uZS4KKwkgKi8KKwlpZiAoc3RhdGUgPT0g R1NJX0NIQU5ORUxfU1RBVEVfU1RPUFBFRCkKKwkJcmV0dXJuIDA7CisKIAlpZiAoc3RhdGUgIT0g R1NJX0NIQU5ORUxfU1RBVEVfU1RBUlRFRCAmJgogCSAgICBzdGF0ZSAhPSBHU0lfQ0hBTk5FTF9T VEFURV9TVE9QX0lOX1BST0MpCiAJCXJldHVybiAtRUlOVkFMOwpAQCAtNzczLDEzICs3NzksNiBA QCBpbnQgZ3NpX2NoYW5uZWxfc3RvcChzdHJ1Y3QgZ3NpICpnc2ksIHUzMiBjaGFubmVsX2lkKQog CiAJZ3NpX2NoYW5uZWxfZnJlZXplKGNoYW5uZWwpOwogCi0JLyogQ2hhbm5lbCBjb3VsZCBoYXZl IGVudGVyZWQgU1RPUFBFRCBzdGF0ZSBzaW5jZSBsYXN0IGNhbGwgaWYgdGhlCi0JICogU1RPUCBj b21tYW5kIHRpbWVkIG91dC4gIFdlIHdvbid0IHN0b3AgYSBjaGFubmVsIGlmIHN0b3BwaW5nIGl0 Ci0JICogd2FzIHN1Y2Nlc3NmdWwgcHJldmlvdXNseSAoc28gd2Ugc3RpbGwgd2FudCB0aGUgZnJl ZXplIGFib3ZlKS4KLQkgKi8KLQlpZiAoY2hhbm5lbC0+c3RhdGUgPT0gR1NJX0NIQU5ORUxfU1RB VEVfU1RPUFBFRCkKLQkJcmV0dXJuIDA7Ci0KIAkvKiBSWCBjaGFubmVscyBtaWdodCByZXF1aXJl IGEgbGl0dGxlIHRpbWUgdG8gZW50ZXIgU1RPUFBFRCBzdGF0ZSAqLwogCXJldHJpZXMgPSBjaGFu bmVsLT50b3dhcmRfaXBhID8gMCA6IEdTSV9DSEFOTkVMX1NUT1BfUlhfUkVUUklFUzsKIAotLSAK Mi4yNi4yCgoKRnJvbSBmMjc1YjdhNzVlYzY3ZDU1M2NjMTljODE3YmFjODk0YWRjODc3OWQ5IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4IEVsZGVyIDxlbGRlckBsaW5hcm8ub3Jn PgpEYXRlOiBUdWUsIDMwIEp1biAyMDIwIDA3OjQ0OjQzIC0wNTAwClN1YmplY3Q6IFtQQVRDSCAy OC80NF0gbmV0OiBpcGE6IG5vIGNoZWNrc3VtIG9mZmxvYWQgZm9yIFNETTg0NSBMQU4gUlgKClsg VXBzdHJlYW0gY29tbWl0IDQxYWY1NDM2ZTg1N2VjNjRmMzAyZmNjOWI2ZTRhOGM1MjZiNmI0MDIg XQoKVGhlIEFQIExBTiBSWCBlbmRwb2ludCBzaG91bGQgbm90IGhhdmUgZG93bmxvYWQgY2hlY2tz dW0gb2ZmbG9hZAplbmFibGVkLgoKVGhlIHJlY2VpdmUgaGFuZGxlciBkb2VzIHByb3Blcmx5IGFj Y29tbW9kYXRlIHRoZSB0cmFpbGVyIHRoYXQncwphZGRlZCBieSB0aGUgaGFyZHdhcmUsIGJ1dCB3 ZSBpZ25vcmUgaXQuCgpGaXhlczogMWVkN2QwYzBmZGJhICgic29jOiBxY29tOiBpcGE6IGNvbmZp Z3VyYXRpb24gZGF0YSIpClNpZ25lZC1vZmYtYnk6IEFsZXggRWxkZXIgPGVsZGVyQGxpbmFyby5v cmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBkcml2ZXJzL25ldC9pcGEvaXBhX2RhdGEtc2RtODQ1LmMgfCAxIC0KIDEgZmlsZSBjaGFu Z2VkLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXBhL2lwYV9kYXRh LXNkbTg0NS5jIGIvZHJpdmVycy9uZXQvaXBhL2lwYV9kYXRhLXNkbTg0NS5jCmluZGV4IDBkOWMz NmUxZTgwNi4uMDkxN2M1YjAyOGY2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9pcGEvaXBhX2Rh dGEtc2RtODQ1LmMKKysrIGIvZHJpdmVycy9uZXQvaXBhL2lwYV9kYXRhLXNkbTg0NS5jCkBAIC00 NCw3ICs0NCw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX2dzaV9lbmRwb2ludF9kYXRhIGlw YV9nc2lfZW5kcG9pbnRfZGF0YVtdID0gewogCQkuZW5kcG9pbnQgPSB7CiAJCQkuc2VxX3R5cGUJ PSBJUEFfU0VRX0lOVkFMSUQsCiAJCQkuY29uZmlnID0gewotCQkJCS5jaGVja3N1bQk9IHRydWUs CiAJCQkJLmFnZ3JlZ2F0aW9uCT0gdHJ1ZSwKIAkJCQkuc3RhdHVzX2VuYWJsZQk9IHRydWUsCiAJ CQkJLnJ4ID0gewotLSAKMi4yNi4yCgoKRnJvbSA5YmYyMGNjOGM3ZTdhMTFjYTdlMWZkYWQyOGEx YzEyOTZhN2ZjM2U2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4IEVsZGVyIDxl bGRlckBsaW5hcm8ub3JnPgpEYXRlOiBUdWUsIDMwIEp1biAyMDIwIDA3OjQ0OjQ0IC0wNTAwClN1 YmplY3Q6IFtQQVRDSCAyOS80NF0gbmV0OiBpcGE6IGludHJvZHVjZSBpcGFfY21kX3RhZ19wcm9j ZXNzKCkKClsgVXBzdHJlYW0gY29tbWl0IDZjYjYzZWE2YTM5ZWFjOTY0MGQxMDlmMjc0YTIzN2Iz NDM1MGMxODMgXQoKQ3JlYXRlIGEgbmV3IGZ1bmN0aW9uIGlwYV9jbWRfdGFnX3Byb2Nlc3MoKSB0 aGF0IHNpbXBseSBhbGxvY2F0ZXMgYQp0cmFuc2FjdGlvbiwgYWRkcyBhIHRhZyBwcm9jZXNzIGNv bW1hbmQgdG8gaXQgdG8gY2xlYXIgdGhlIGhhcmR3YXJlCnBpcGVsaW5lLCBhbmQgY29tbWl0cyB0 aGUgdHJhbnNhY3Rpb24uCgpDYWxsIGl0IGluIGZyb20gaXBhX2VuZHBvaW50X3N1c3BlbmQoKSwg YWZ0ZXIgc3VzcGVuZGluZyB0aGUgbW9kZW0KZW5kcG9pbnRzIGJ1dCBiZWZvcmUgc3VzcGVuZGlu ZyB0aGUgQVAgY29tbWFuZCBUWCBhbmQgQVAgTEFOIFJYCmVuZHBvaW50cyAod2hpY2ggYXJlIHVz ZWQgYnkgdGhlIHRhZyBzZXF1ZW5jZSkuCgpTaWduZWQtb2ZmLWJ5OiBBbGV4IEVsZGVyIDxlbGRl ckBsaW5hcm8ub3JnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvaXBhL2lwYV9jbWQuYyAgICAgIHwgMTUgKysrKysr KysrKysrKysrCiBkcml2ZXJzL25ldC9pcGEvaXBhX2NtZC5oICAgICAgfCAgOCArKysrKysrKwog ZHJpdmVycy9uZXQvaXBhL2lwYV9lbmRwb2ludC5jIHwgIDIgKysKIDMgZmlsZXMgY2hhbmdlZCwg MjUgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfY21kLmMg Yi9kcml2ZXJzL25ldC9pcGEvaXBhX2NtZC5jCmluZGV4IGNlZTQxNzE4MWY5OC4uZTRmZWJkYTJk NmI0IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9pcGEvaXBhX2NtZC5jCisrKyBiL2RyaXZlcnMv bmV0L2lwYS9pcGFfY21kLmMKQEAgLTY0NSw2ICs2NDUsMjEgQEAgdTMyIGlwYV9jbWRfdGFnX3By b2Nlc3NfY291bnQodm9pZCkKIAlyZXR1cm4gNDsKIH0KIAordm9pZCBpcGFfY21kX3RhZ19wcm9j ZXNzKHN0cnVjdCBpcGEgKmlwYSkKK3sKKwl1MzIgY291bnQgPSBpcGFfY21kX3RhZ19wcm9jZXNz X2NvdW50KCk7CisJc3RydWN0IGdzaV90cmFucyAqdHJhbnM7CisKKwl0cmFucyA9IGlwYV9jbWRf dHJhbnNfYWxsb2MoaXBhLCBjb3VudCk7CisJaWYgKHRyYW5zKSB7CisJCWlwYV9jbWRfdGFnX3By b2Nlc3NfYWRkKHRyYW5zKTsKKwkJZ3NpX3RyYW5zX2NvbW1pdF93YWl0KHRyYW5zKTsKKwl9IGVs c2UgeworCQlkZXZfZXJyKCZpcGEtPnBkZXYtPmRldiwKKwkJCSJlcnJvciBhbGxvY2F0aW5nICV1 IGVudHJ5IHRhZyB0cmFuc2FjdGlvblxuIiwgY291bnQpOworCX0KK30KKwogc3RhdGljIHN0cnVj dCBpcGFfY21kX2luZm8gKgogaXBhX2NtZF9pbmZvX2FsbG9jKHN0cnVjdCBpcGFfZW5kcG9pbnQg KmVuZHBvaW50LCB1MzIgdHJlX2NvdW50KQogewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXBh L2lwYV9jbWQuaCBiL2RyaXZlcnMvbmV0L2lwYS9pcGFfY21kLmgKaW5kZXggNDkxNzUyNWIzYTQ3 Li4xZWU5MjY1NjUxYTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfY21kLmgKKysr IGIvZHJpdmVycy9uZXQvaXBhL2lwYV9jbWQuaApAQCAtMTgyLDYgKzE4MiwxNCBAQCB2b2lkIGlw YV9jbWRfdGFnX3Byb2Nlc3NfYWRkKHN0cnVjdCBnc2lfdHJhbnMgKnRyYW5zKTsKICAqLwogdTMy IGlwYV9jbWRfdGFnX3Byb2Nlc3NfY291bnQodm9pZCk7CiAKKy8qKgorICogaXBhX2NtZF90YWdf cHJvY2VzcygpIC0gUGVyZm9ybSBhIHRhZyBwcm9jZXNzCisgKgorICogQFJldHVybjoJVGhlIG51 bWJlciBvZiBlbGVtZW50cyB0byBhbGxvY2F0ZSBpbiBhIHRyYW5zYWN0aW9uCisgKgkJdG8gaG9s ZCB0YWcgcHJvY2VzcyBjb21tYW5kcworICovCit2b2lkIGlwYV9jbWRfdGFnX3Byb2Nlc3Moc3Ry dWN0IGlwYSAqaXBhKTsKKwogLyoqCiAgKiBpcGFfY21kX3RyYW5zX2FsbG9jKCkgLSBBbGxvY2F0 ZSBhIHRyYW5zYWN0aW9uIGZvciB0aGUgY29tbWFuZCBUWCBlbmRwb2ludAogICogQGlwYToJSVBB IHBvaW50ZXIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfZW5kcG9pbnQuYyBiL2Ry aXZlcnMvbmV0L2lwYS9pcGFfZW5kcG9pbnQuYwppbmRleCAxZDgyM2FjMGY2ZDYuLjM3MWM5Mzk1 M2FlYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvaXBhL2lwYV9lbmRwb2ludC5jCisrKyBiL2Ry aXZlcnMvbmV0L2lwYS9pcGFfZW5kcG9pbnQuYwpAQCAtMTQ4NSw2ICsxNDg1LDggQEAgdm9pZCBp cGFfZW5kcG9pbnRfc3VzcGVuZChzdHJ1Y3QgaXBhICppcGEpCiAJaWYgKGlwYS0+bW9kZW1fbmV0 ZGV2KQogCQlpcGFfbW9kZW1fc3VzcGVuZChpcGEtPm1vZGVtX25ldGRldik7CiAKKwlpcGFfY21k X3RhZ19wcm9jZXNzKGlwYSk7CisKIAlpcGFfZW5kcG9pbnRfc3VzcGVuZF9vbmUoaXBhLT5uYW1l X21hcFtJUEFfRU5EUE9JTlRfQVBfTEFOX1JYXSk7CiAJaXBhX2VuZHBvaW50X3N1c3BlbmRfb25l KGlwYS0+bmFtZV9tYXBbSVBBX0VORFBPSU5UX0FQX0NPTU1BTkRfVFhdKTsKIH0KLS0gCjIuMjYu MgoKCkZyb20gZDA1NzM4YTk1MmZkZTIzZDJkY2Q0NDA4ZTM2N2UxYjc4NDBhOWI4NiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSWRvIFNjaGltbWVsIDxpZG9zY2hAbWVsbGFub3guY29t PgpEYXRlOiBGcmksIDEwIEp1bCAyMDIwIDE2OjQxOjM4ICswMzAwClN1YmplY3Q6IFtQQVRDSCAz MC80NF0gbWx4c3c6IHNwZWN0cnVtX3JvdXRlcjogUmVtb3ZlIGluYXBwcm9wcmlhdGUgdXNhZ2Ug b2YKIFdBUk5fT04oKQoKWyBVcHN0cmVhbSBjb21taXQgZDlkNTQyMDI3Mzk5NzY2NGExYzA5MTUx Y2E4NmFjOTkzZjJmODljMSBdCgpXZSBzaG91bGQgbm90IHRyaWdnZXIgYSB3YXJuaW5nIHdoZW4g YSBtZW1vcnkgYWxsb2NhdGlvbiBmYWlscy4gUmVtb3ZlCnRoZSBXQVJOX09OKCkuCgpUaGUgd2Fy bmluZyBpcyBjb25zdGFudGx5IHRyaWdnZXJlZCBieSBzeXprYWxsZXIgd2hlbiBpdCBpcyBpbmpl Y3RpbmcKZmF1bHRzOgoKWyAyMjMwLjc1ODY2NF0gRkFVTFRfSU5KRUNUSU9OOiBmb3JjaW5nIGEg ZmFpbHVyZS4KWyAyMjMwLjc1ODY2NF0gbmFtZSBmYWlsc2xhYiwgaW50ZXJ2YWwgMSwgcHJvYmFi aWxpdHkgMCwgc3BhY2UgMCwgdGltZXMgMApbIDIyMzAuNzYyMzI5XSBDUFU6IDMgUElEOiAxNDA3 IENvbW06IHN5ei1leGVjdXRvci4wIE5vdCB0YWludGVkIDUuOC4wLXJjMisgIzI4Ci4uLgpbIDIy MzAuODk4MTc1XSBXQVJOSU5HOiBDUFU6IDMgUElEOiAxNDA3IGF0IGRyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtX3JvdXRlci5jOjYyNjUgbWx4c3dfc3Bfcm91dGVy X2ZpYl9ldmVudCsweGZhZC8weDEzZTAKWyAyMjMwLjg5ODE3OV0gS2VybmVsIHBhbmljIC0gbm90 IHN5bmNpbmc6IHBhbmljX29uX3dhcm4gc2V0IC4uLgpbIDIyMzAuODk4MTgzXSBDUFU6IDMgUElE OiAxNDA3IENvbW06IHN5ei1leGVjdXRvci4wIE5vdCB0YWludGVkIDUuOC4wLXJjMisgIzI4Clsg MjIzMC44OTgxOTBdIEhhcmR3YXJlIG5hbWU6IFFFTVUgU3RhbmRhcmQgUEMgKGk0NDBGWCArIFBJ SVgsIDE5OTYpLCBCSU9TIHJlbC0xLjEyLjEtMC1nYTVjYWI1OGU5YTNmLXByZWJ1aWx0LnFlbXUu b3JnIDA0LzAxLzIwMTQKCkZpeGVzOiAzMDU3MjI0ZTAxNGMgKCJtbHhzdzogc3BlY3RydW1fcm91 dGVyOiBJbXBsZW1lbnQgRklCIG9mZmxvYWQgaW4gZGVmZXJyZWQgd29yayIpClNpZ25lZC1vZmYt Ynk6IElkbyBTY2hpbW1lbCA8aWRvc2NoQG1lbGxhbm94LmNvbT4KUmV2aWV3ZWQtYnk6IEppcmkg UGlya28gPGppcmlAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4c3cvc3BlY3RydW1fcm91dGVyLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9yb3V0ZXIuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seHN3L3NwZWN0cnVtX3JvdXRlci5jCmluZGV4IGQ1YmNhMWJlM2VmNS4uODRiM2Q3 OGE5ZGQ4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9z cGVjdHJ1bV9yb3V0ZXIuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhz dy9zcGVjdHJ1bV9yb3V0ZXIuYwpAQCAtNjI1Niw3ICs2MjU2LDcgQEAgc3RhdGljIGludCBtbHhz d19zcF9yb3V0ZXJfZmliX2V2ZW50KHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsCiAJfQogCiAJ ZmliX3dvcmsgPSBremFsbG9jKHNpemVvZigqZmliX3dvcmspLCBHRlBfQVRPTUlDKTsKLQlpZiAo V0FSTl9PTighZmliX3dvcmspKQorCWlmICghZmliX3dvcmspCiAJCXJldHVybiBOT1RJRllfQkFE OwogCiAJZmliX3dvcmstPm1seHN3X3NwID0gcm91dGVyLT5tbHhzd19zcDsKLS0gCjIuMjYuMgoK CkZyb20gMTRhMDY5YjdhYzMzZjZkZDM5NjA0MjE3YmEwZTlhNzc0Y2UzNzk4YyBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogSWRvIFNjaGltbWVsIDxpZG9zY2hAbWVsbGFub3guY29tPgpE YXRlOiBGcmksIDEwIEp1bCAyMDIwIDE2OjQxOjM5ICswMzAwClN1YmplY3Q6IFtQQVRDSCAzMS80 NF0gbWx4c3c6IHBjaTogRml4IHVzZS1hZnRlci1mcmVlIGluIGNhc2Ugb2YgZmFpbGVkCiBkZXZs aW5rIHJlbG9hZAoKWyBVcHN0cmVhbSBjb21taXQgYzQzMTdiMTE2NzViOTlhZjY2NDE2NjJlYmNi ZDNjNjAxMDYwMGU2NCBdCgpJbiBjYXNlIGRldmxpbmsgcmVsb2FkIGZhaWxlZCwgaXQgaXMgcG9z c2libGUgdG8gdHJpZ2dlciBhCnVzZS1hZnRlci1mcmVlIHdoZW4gcXVlcnlpbmcgdGhlIGtlcm5l bCBmb3IgZGV2aWNlIGluZm8gdmlhICdkZXZsaW5rIGRldgppbmZvJyBbMV0uCgpUaGlzIGhhcHBl bnMgYmVjYXVzZSBhcyBwYXJ0IG9mIHRoZSByZWxvYWQgZXJyb3IgcGF0aCB0aGUgUENJIGNvbW1h bmQKaW50ZXJmYWNlIGlzIGRlLWluaXRpYWxpemVkIGFuZCBpdHMgbWFpbGJveGVzIGFyZSBmcmVl ZC4gV2hlbiB0aGUKZGV2bGluayAnLT5pbmZvX2dldCgpJyBjYWxsYmFjayBpcyBpbnZva2VkIHRo ZSBkZXZpY2UgaXMgcXVlcmllZCB2aWEgdGhlCmNvbW1hbmQgaW50ZXJmYWNlIGFuZCB0aGUgZnJl ZWQgbWFpbGJveGVzIGFyZSBhY2Nlc3NlZC4KCkZpeCB0aGlzIGJ5IGluaXRpYWxpemluZyB0aGUg Y29tbWFuZCBpbnRlcmZhY2Ugb25jZSBkdXJpbmcgcHJvYmUgYW5kIG5vdApkdXJpbmcgZXZlcnkg cmVsb2FkLgoKVGhpcyBpcyBjb25zaXN0ZW50IHdpdGggdGhlIG90aGVyIGJ1cyB1c2VkIGJ5IG1s eHN3IChpLmUuLCAnbWx4c3dfaTJjJykKYW5kIGFsc28gYWxsb3dzIHVzZXIgc3BhY2UgdG8gcXVl cnkgdGhlIHJ1bm5pbmcgZmlybXdhcmUgdmVyc2lvbiAoZm9yCmV4YW1wbGUpIGZyb20gdGhlIGRl dmljZSBhZnRlciBhIGZhaWxlZCByZWxvYWQuCgpbMV0KQlVHOiBLQVNBTjogdXNlLWFmdGVyLWZy ZWUgaW4gbWVtY3B5IGluY2x1ZGUvbGludXgvc3RyaW5nLmg6NDA2IFtpbmxpbmVdCkJVRzogS0FT QU46IHVzZS1hZnRlci1mcmVlIGluIG1seHN3X3BjaV9jbWRfZXhlYysweDE3Ny8weGE2MCBkcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9wY2kuYzoxNjc1CldyaXRlIG9mIHNpemUg NDA5NiBhdCBhZGRyIGZmZmY4ODgxMGFlMzIwMDAgYnkgdGFzayBzeXotZXhlY3V0b3IuMS8yMzU1 CgpDUFU6IDEgUElEOiAyMzU1IENvbW06IHN5ei1leGVjdXRvci4xIE5vdCB0YWludGVkIDUuOC4w LXJjMisgIzI5CkhhcmR3YXJlIG5hbWU6IFFFTVUgU3RhbmRhcmQgUEMgKGk0NDBGWCArIFBJSVgs IDE5OTYpLCBCSU9TIHJlbC0xLjEyLjEtMC1nYTVjYWI1OGU5YTNmLXByZWJ1aWx0LnFlbXUub3Jn IDA0LzAxLzIwMTQKQ2FsbCBUcmFjZToKIF9fZHVtcF9zdGFjayBsaWIvZHVtcF9zdGFjay5jOjc3 IFtpbmxpbmVdCiBkdW1wX3N0YWNrKzB4ZjYvMHgxNmUgbGliL2R1bXBfc3RhY2suYzoxMTgKIHBy aW50X2FkZHJlc3NfZGVzY3JpcHRpb24uY29uc3Rwcm9wLjArMHgxYy8weDI1MCBtbS9rYXNhbi9y ZXBvcnQuYzozODMKIF9fa2FzYW5fcmVwb3J0IG1tL2thc2FuL3JlcG9ydC5jOjUxMyBbaW5saW5l XQoga2FzYW5fcmVwb3J0LmNvbGQrMHgxZi8weDM3IG1tL2thc2FuL3JlcG9ydC5jOjUzMAogY2hl Y2tfbWVtb3J5X3JlZ2lvbl9pbmxpbmUgbW0va2FzYW4vZ2VuZXJpYy5jOjE4NiBbaW5saW5lXQog Y2hlY2tfbWVtb3J5X3JlZ2lvbisweDE0ZS8weDFiMCBtbS9rYXNhbi9nZW5lcmljLmM6MTkyCiBt ZW1jcHkrMHgzOS8weDYwIG1tL2thc2FuL2NvbW1vbi5jOjEwNgogbWVtY3B5IGluY2x1ZGUvbGlu dXgvc3RyaW5nLmg6NDA2IFtpbmxpbmVdCiBtbHhzd19wY2lfY21kX2V4ZWMrMHgxNzcvMHhhNjAg ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvcGNpLmM6MTY3NQogbWx4c3dfY21k X2V4ZWMrMHgyNDkvMHg1NTAgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvY29y ZS5jOjIzMzUKIG1seHN3X2NtZF9hY2Nlc3NfcmVnIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seHN3L2NtZC5oOjg1OSBbaW5saW5lXQogbWx4c3dfY29yZV9yZWdfYWNjZXNzX2NtZCBk cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9jb3JlLmM6MTkzOCBbaW5saW5lXQog bWx4c3dfY29yZV9yZWdfYWNjZXNzKzB4MmY2LzB4NTQwIGRyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seHN3L2NvcmUuYzoxOTg1CiBtbHhzd19yZWdfcXVlcnkgZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4c3cvY29yZS5jOjIwMDAgW2lubGluZV0KIG1seHN3X2Rldmxpbmtf aW5mb19nZXQrMHgxN2YvMHg2ZTAgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cv Y29yZS5jOjEwOTAKIGRldmxpbmtfbmxfaW5mb19maWxsLmNvbnN0cHJvcC4wKzB4MTNjLzB4MmQw IG5ldC9jb3JlL2RldmxpbmsuYzo0NTg4CiBkZXZsaW5rX25sX2NtZF9pbmZvX2dldF9kdW1waXQr MHgyNDYvMHg0NjAgbmV0L2NvcmUvZGV2bGluay5jOjQ2NDgKIGdlbmxfbG9ja19kdW1waXQrMHg4 NS8weGMwIG5ldC9uZXRsaW5rL2dlbmV0bGluay5jOjU3NQogbmV0bGlua19kdW1wKzB4NTE1LzB4 ZTUwIG5ldC9uZXRsaW5rL2FmX25ldGxpbmsuYzoyMjQ1CiBfX25ldGxpbmtfZHVtcF9zdGFydCsw eDUzZC8weDgzMCBuZXQvbmV0bGluay9hZl9uZXRsaW5rLmM6MjM1MwogZ2VubF9mYW1pbHlfcmN2 X21zZ19kdW1waXQuaXNyYS4wKzB4Mjk2LzB4MzAwIG5ldC9uZXRsaW5rL2dlbmV0bGluay5jOjYz OAogZ2VubF9mYW1pbHlfcmN2X21zZyBuZXQvbmV0bGluay9nZW5ldGxpbmsuYzo3MzMgW2lubGlu ZV0KIGdlbmxfcmN2X21zZysweDc4ZC8weDlkMCBuZXQvbmV0bGluay9nZW5ldGxpbmsuYzo3NTMK IG5ldGxpbmtfcmN2X3NrYisweDE1Mi8weDQ0MCBuZXQvbmV0bGluay9hZl9uZXRsaW5rLmM6MjQ2 OQogZ2VubF9yY3YrMHgyNC8weDQwIG5ldC9uZXRsaW5rL2dlbmV0bGluay5jOjc2NAogbmV0bGlu a191bmljYXN0X2tlcm5lbCBuZXQvbmV0bGluay9hZl9uZXRsaW5rLmM6MTMwMyBbaW5saW5lXQog bmV0bGlua191bmljYXN0KzB4NTNhLzB4NzUwIG5ldC9uZXRsaW5rL2FmX25ldGxpbmsuYzoxMzI5 CiBuZXRsaW5rX3NlbmRtc2crMHg4NTAvMHhkOTAgbmV0L25ldGxpbmsvYWZfbmV0bGluay5jOjE5 MTgKIHNvY2tfc2VuZG1zZ19ub3NlYyBuZXQvc29ja2V0LmM6NjUyIFtpbmxpbmVdCiBzb2NrX3Nl bmRtc2crMHgxNTAvMHgxOTAgbmV0L3NvY2tldC5jOjY3MgogX19fX3N5c19zZW5kbXNnKzB4NmQ4 LzB4ODQwIG5ldC9zb2NrZXQuYzoyMzYzCiBfX19zeXNfc2VuZG1zZysweGZmLzB4MTcwIG5ldC9z b2NrZXQuYzoyNDE3CiBfX3N5c19zZW5kbXNnKzB4ZTUvMHgxYjAgbmV0L3NvY2tldC5jOjI0NTAK IGRvX3N5c2NhbGxfNjQrMHg1Ni8weGEwIGFyY2gveDg2L2VudHJ5L2NvbW1vbi5jOjM1OQogZW50 cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDQvMHhhOQoKRml4ZXM6IGE5YzgzMzZmNjU0 NCAoIm1seHN3OiBjb3JlOiBBZGQgc3VwcG9ydCBmb3IgZGV2bGluayBpbmZvIGNvbW1hbmQiKQpT aWduZWQtb2ZmLWJ5OiBJZG8gU2NoaW1tZWwgPGlkb3NjaEBtZWxsYW5veC5jb20+ClJldmlld2Vk LWJ5OiBKaXJpIFBpcmtvIDxqaXJpQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seHN3L3BjaS5jIHwgNTQgKysrKysrKysrKysrKysrKy0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCAzOCBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9wY2kuYyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seHN3L3BjaS5jCmluZGV4IGZkMGU5N2RlNDRlNy4uYzA0ZWMx YTkyODI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9w Y2kuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9wY2kuYwpAQCAt MTQxNCwyMyArMTQxNCwxMiBAQCBzdGF0aWMgaW50IG1seHN3X3BjaV9pbml0KHZvaWQgKmJ1c19w cml2LCBzdHJ1Y3QgbWx4c3dfY29yZSAqbWx4c3dfY29yZSwKIAl1MTYgbnVtX3BhZ2VzOwogCWlu dCBlcnI7CiAKLQltdXRleF9pbml0KCZtbHhzd19wY2ktPmNtZC5sb2NrKTsKLQlpbml0X3dhaXRx dWV1ZV9oZWFkKCZtbHhzd19wY2ktPmNtZC53YWl0KTsKLQogCW1seHN3X3BjaS0+Y29yZSA9IG1s eHN3X2NvcmU7CiAKIAltYm94ID0gbWx4c3dfY21kX21ib3hfYWxsb2MoKTsKIAlpZiAoIW1ib3gp CiAJCXJldHVybiAtRU5PTUVNOwogCi0JZXJyID0gbWx4c3dfcGNpX21ib3hfYWxsb2MobWx4c3df cGNpLCAmbWx4c3dfcGNpLT5jbWQuaW5fbWJveCk7Ci0JaWYgKGVycikKLQkJZ290byBtYm94X3B1 dDsKLQotCWVyciA9IG1seHN3X3BjaV9tYm94X2FsbG9jKG1seHN3X3BjaSwgJm1seHN3X3BjaS0+ Y21kLm91dF9tYm94KTsKLQlpZiAoZXJyKQotCQlnb3RvIGVycl9vdXRfbWJveF9hbGxvYzsKLQog CWVyciA9IG1seHN3X3BjaV9zd19yZXNldChtbHhzd19wY2ksIG1seHN3X3BjaS0+aWQpOwogCWlm IChlcnIpCiAJCWdvdG8gZXJyX3N3X3Jlc2V0OwpAQCAtMTUzNyw5ICsxNTI2LDYgQEAgc3RhdGlj IGludCBtbHhzd19wY2lfaW5pdCh2b2lkICpidXNfcHJpdiwgc3RydWN0IG1seHN3X2NvcmUgKm1s eHN3X2NvcmUsCiAJbWx4c3dfcGNpX2ZyZWVfaXJxX3ZlY3RvcnMobWx4c3dfcGNpKTsKIGVycl9h bGxvY19pcnE6CiBlcnJfc3dfcmVzZXQ6Ci0JbWx4c3dfcGNpX21ib3hfZnJlZShtbHhzd19wY2ks ICZtbHhzd19wY2ktPmNtZC5vdXRfbWJveCk7Ci1lcnJfb3V0X21ib3hfYWxsb2M6Ci0JbWx4c3df cGNpX21ib3hfZnJlZShtbHhzd19wY2ksICZtbHhzd19wY2ktPmNtZC5pbl9tYm94KTsKIG1ib3hf cHV0OgogCW1seHN3X2NtZF9tYm94X2ZyZWUobWJveCk7CiAJcmV0dXJuIGVycjsKQEAgLTE1NTMs OCArMTUzOSw2IEBAIHN0YXRpYyB2b2lkIG1seHN3X3BjaV9maW5pKHZvaWQgKmJ1c19wcml2KQog CW1seHN3X3BjaV9hcXNfZmluaShtbHhzd19wY2kpOwogCW1seHN3X3BjaV9md19hcmVhX2Zpbmko bWx4c3dfcGNpKTsKIAltbHhzd19wY2lfZnJlZV9pcnFfdmVjdG9ycyhtbHhzd19wY2kpOwotCW1s eHN3X3BjaV9tYm94X2ZyZWUobWx4c3dfcGNpLCAmbWx4c3dfcGNpLT5jbWQub3V0X21ib3gpOwot CW1seHN3X3BjaV9tYm94X2ZyZWUobWx4c3dfcGNpLCAmbWx4c3dfcGNpLT5jbWQuaW5fbWJveCk7 CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgbWx4c3dfcGNpX3F1ZXVlICoKQEAgLTE3NzYsNiArMTc2MCwz NyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG1seHN3X2J1cyBtbHhzd19wY2lfYnVzID0gewogCS5m ZWF0dXJlcwkJPSBNTFhTV19CVVNfRl9UWFJYIHwgTUxYU1dfQlVTX0ZfUkVTRVQsCiB9OwogCitz dGF0aWMgaW50IG1seHN3X3BjaV9jbWRfaW5pdChzdHJ1Y3QgbWx4c3dfcGNpICptbHhzd19wY2kp Cit7CisJaW50IGVycjsKKworCW11dGV4X2luaXQoJm1seHN3X3BjaS0+Y21kLmxvY2spOworCWlu aXRfd2FpdHF1ZXVlX2hlYWQoJm1seHN3X3BjaS0+Y21kLndhaXQpOworCisJZXJyID0gbWx4c3df cGNpX21ib3hfYWxsb2MobWx4c3dfcGNpLCAmbWx4c3dfcGNpLT5jbWQuaW5fbWJveCk7CisJaWYg KGVycikKKwkJZ290byBlcnJfaW5fbWJveF9hbGxvYzsKKworCWVyciA9IG1seHN3X3BjaV9tYm94 X2FsbG9jKG1seHN3X3BjaSwgJm1seHN3X3BjaS0+Y21kLm91dF9tYm94KTsKKwlpZiAoZXJyKQor CQlnb3RvIGVycl9vdXRfbWJveF9hbGxvYzsKKworCXJldHVybiAwOworCitlcnJfb3V0X21ib3hf YWxsb2M6CisJbWx4c3dfcGNpX21ib3hfZnJlZShtbHhzd19wY2ksICZtbHhzd19wY2ktPmNtZC5p bl9tYm94KTsKK2Vycl9pbl9tYm94X2FsbG9jOgorCW11dGV4X2Rlc3Ryb3koJm1seHN3X3BjaS0+ Y21kLmxvY2spOworCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyB2b2lkIG1seHN3X3BjaV9jbWRf ZmluaShzdHJ1Y3QgbWx4c3dfcGNpICptbHhzd19wY2kpCit7CisJbWx4c3dfcGNpX21ib3hfZnJl ZShtbHhzd19wY2ksICZtbHhzd19wY2ktPmNtZC5vdXRfbWJveCk7CisJbWx4c3dfcGNpX21ib3hf ZnJlZShtbHhzd19wY2ksICZtbHhzd19wY2ktPmNtZC5pbl9tYm94KTsKKwltdXRleF9kZXN0cm95 KCZtbHhzd19wY2ktPmNtZC5sb2NrKTsKK30KKwogc3RhdGljIGludCBtbHhzd19wY2lfcHJvYmUo c3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCkKIHsK IAljb25zdCBjaGFyICpkcml2ZXJfbmFtZSA9IHBkZXYtPmRyaXZlci0+bmFtZTsKQEAgLTE4MzEs NiArMTg0NiwxMCBAQCBzdGF0aWMgaW50IG1seHN3X3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAq cGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKQogCW1seHN3X3BjaS0+cGRldiA9 IHBkZXY7CiAJcGNpX3NldF9kcnZkYXRhKHBkZXYsIG1seHN3X3BjaSk7CiAKKwllcnIgPSBtbHhz d19wY2lfY21kX2luaXQobWx4c3dfcGNpKTsKKwlpZiAoZXJyKQorCQlnb3RvIGVycl9wY2lfY21k X2luaXQ7CisKIAltbHhzd19wY2ktPmJ1c19pbmZvLmRldmljZV9raW5kID0gZHJpdmVyX25hbWU7 CiAJbWx4c3dfcGNpLT5idXNfaW5mby5kZXZpY2VfbmFtZSA9IHBjaV9uYW1lKG1seHN3X3BjaS0+ cGRldik7CiAJbWx4c3dfcGNpLT5idXNfaW5mby5kZXYgPSAmcGRldi0+ZGV2OwpAQCAtMTg0OCw2 ICsxODY3LDggQEAgc3RhdGljIGludCBtbHhzd19wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBk ZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCkKIAlyZXR1cm4gMDsKIAogZXJyX2J1 c19kZXZpY2VfcmVnaXN0ZXI6CisJbWx4c3dfcGNpX2NtZF9maW5pKG1seHN3X3BjaSk7CitlcnJf cGNpX2NtZF9pbml0OgogCWlvdW5tYXAobWx4c3dfcGNpLT5od19hZGRyKTsKIGVycl9pb3JlbWFw OgogZXJyX3BjaV9yZXNvdXJjZV9sZW5fY2hlY2s6CkBAIC0xODY1LDYgKzE4ODYsNyBAQCBzdGF0 aWMgdm9pZCBtbHhzd19wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogCXN0cnVjdCBt bHhzd19wY2kgKm1seHN3X3BjaSA9IHBjaV9nZXRfZHJ2ZGF0YShwZGV2KTsKIAogCW1seHN3X2Nv cmVfYnVzX2RldmljZV91bnJlZ2lzdGVyKG1seHN3X3BjaS0+Y29yZSwgZmFsc2UpOworCW1seHN3 X3BjaV9jbWRfZmluaShtbHhzd19wY2kpOwogCWlvdW5tYXAobWx4c3dfcGNpLT5od19hZGRyKTsK IAlwY2lfcmVsZWFzZV9yZWdpb25zKG1seHN3X3BjaS0+cGRldik7CiAJcGNpX2Rpc2FibGVfZGV2 aWNlKG1seHN3X3BjaS0+cGRldik7Ci0tIAoyLjI2LjIKCgpGcm9tIDE0N2IwYjhlYjFiY2FlYTYy MGM2NzQ4NGJjODkyMzY0YzA4ZWIyOTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVy YW4gQmVuIEVsaXNoYSA8ZXJhbmJlQG1lbGxhbm94LmNvbT4KRGF0ZTogU3VuLCAxNCBKdW4gMjAy MCAxNzozMToyNiArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMzIvNDRdIG5ldC9tbHg1OiBGaXggZWVw cm9tIHN1cHBvcnQgZm9yIFNGUCBtb2R1bGUKClsgVXBzdHJlYW0gY29tbWl0IDQ3YWZiZGQyZmE0 YzU3NzVjMzgzYmEzNzZhM2QxZGE3ZDdmNjk0ZGMgXQoKRml4IGVlcHJvbSBTRlAgcXVlcnkgc3Vw cG9ydCBieSBzZXR0aW5nIGkyY19hZGRyLCBvZmZzZXQgYW5kIHBhZ2UgbnVtYmVyCmNvcnJlY3Rs eS4gVW5saWtlIFFTRlAgbW9kdWxlcywgU0ZQIGVlcHJvbSBwYXJhbXMgYXJlIGFzIGZvbGxvdzoK LSBpMmNfYWRkciBpcyAweDUwIGZvciBvZmZzZXQgMCAtIDI1NSBhbmQgMHg1MSBmb3Igb2Zmc2V0 IDI1NiAtIDUxMS4KLSBQYWdlIG51bWJlciBpcyBhbHdheXMgemVyby4KLSBQYWdlIG9mZnNldCBp cyBhbHdheXMgcmVsYXRpdmUgdG8gemVyby4KCkFzIHBhcnQgb2YgZWVwcm9tIHF1ZXJ5LCBxdWVy eSB0aGUgbW9kdWxlIElEIChTRlAgLyBRU0ZQKikgdmlhIGhlbHBlcgpmdW5jdGlvbiB0byBzZXQg dGhlIHBhcmFtcyBhY2NvcmRpbmdseS4KCkluIGFkZGl0aW9uLCBjaGFuZ2UgbWx4NV9xc2ZwX2Vl cHJvbV9wYWdlKCkgaW5wdXQgdHlwZSB0byBiZSB1MTYgdG8gYXZvaWQKdW5uZWNlc3NhcnkgY2Fz dGluZy4KCkZpeGVzOiBhNzA4ZmI3YjFmOGQgKCJuZXQvbWx4NWU6IGV0aHRvb2wsIEFkZCBzdXBw b3J0IGZvciBFRVBST00gaGlnaCBwYWdlcyBxdWVyeSIpClNpZ25lZC1vZmYtYnk6IEVyYW4gQmVu IEVsaXNoYSA8ZXJhbmJlQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogSHV5IE5ndXllbiA8 aHV5bkBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1A bWVsbGFub3guY29tPgotLS0KIC4uLi9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3Bv cnQuYyAgICB8IDkzICsrKysrKysrKysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA3NyBpbnNl cnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvcG9ydC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL3BvcnQuYwppbmRleCBjYzI2MmIzMGFlZDUuLmRjNTg5MzIyOTQwYyAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3BvcnQu YworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvcG9ydC5jCkBA IC0yOTMsNyArMjkzLDQwIEBAIHN0YXRpYyBpbnQgbWx4NV9xdWVyeV9tb2R1bGVfbnVtKHN0cnVj dCBtbHg1X2NvcmVfZGV2ICpkZXYsIGludCAqbW9kdWxlX251bSkKIAlyZXR1cm4gMDsKIH0KIAot c3RhdGljIGludCBtbHg1X2VlcHJvbV9wYWdlKGludCBvZmZzZXQpCitzdGF0aWMgaW50IG1seDVf cXVlcnlfbW9kdWxlX2lkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGludCBtb2R1bGVfbnVt LAorCQkJCXU4ICptb2R1bGVfaWQpCit7CisJdTMyIGluW01MWDVfU1RfU1pfRFcobWNpYV9yZWcp XSA9IHt9OworCXUzMiBvdXRbTUxYNV9TVF9TWl9EVyhtY2lhX3JlZyldOworCWludCBlcnIsIHN0 YXR1czsKKwl1OCAqcHRyOworCisJTUxYNV9TRVQobWNpYV9yZWcsIGluLCBpMmNfZGV2aWNlX2Fk ZHJlc3MsIE1MWDVfSTJDX0FERFJfTE9XKTsKKwlNTFg1X1NFVChtY2lhX3JlZywgaW4sIG1vZHVs ZSwgbW9kdWxlX251bSk7CisJTUxYNV9TRVQobWNpYV9yZWcsIGluLCBkZXZpY2VfYWRkcmVzcywg MCk7CisJTUxYNV9TRVQobWNpYV9yZWcsIGluLCBwYWdlX251bWJlciwgMCk7CisJTUxYNV9TRVQo bWNpYV9yZWcsIGluLCBzaXplLCAxKTsKKwlNTFg1X1NFVChtY2lhX3JlZywgaW4sIGwsIDApOwor CisJZXJyID0gbWx4NV9jb3JlX2FjY2Vzc19yZWcoZGV2LCBpbiwgc2l6ZW9mKGluKSwgb3V0LAor CQkJCSAgIHNpemVvZihvdXQpLCBNTFg1X1JFR19NQ0lBLCAwLCAwKTsKKwlpZiAoZXJyKQorCQly ZXR1cm4gZXJyOworCisJc3RhdHVzID0gTUxYNV9HRVQobWNpYV9yZWcsIG91dCwgc3RhdHVzKTsK KwlpZiAoc3RhdHVzKSB7CisJCW1seDVfY29yZV9lcnIoZGV2LCAicXVlcnlfbWNpYV9yZWcgZmFp bGVkOiBzdGF0dXM6IDB4JXhcbiIsCisJCQkgICAgICBzdGF0dXMpOworCQlyZXR1cm4gLUVJTzsK Kwl9CisJcHRyID0gTUxYNV9BRERSX09GKG1jaWFfcmVnLCBvdXQsIGR3b3JkXzApOworCisJKm1v ZHVsZV9pZCA9IHB0clswXTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IG1seDVfcXNm cF9lZXByb21fcGFnZSh1MTYgb2Zmc2V0KQogewogCWlmIChvZmZzZXQgPCBNTFg1X0VFUFJPTV9Q QUdFX0xFTkdUSCkKIAkJLyogQWRkcmVzc2VzIGJldHdlZW4gMC0yNTUgLSBwYWdlIDAwICovCkBA IC0zMDcsNyArMzQwLDcgQEAgc3RhdGljIGludCBtbHg1X2VlcHJvbV9wYWdlKGludCBvZmZzZXQp CiAJCSAgICBNTFg1X0VFUFJPTV9ISUdIX1BBR0VfTEVOR1RIKTsKIH0KIAotc3RhdGljIGludCBt bHg1X2VlcHJvbV9oaWdoX3BhZ2Vfb2Zmc2V0KGludCBwYWdlX251bSkKK3N0YXRpYyBpbnQgbWx4 NV9xc2ZwX2VlcHJvbV9oaWdoX3BhZ2Vfb2Zmc2V0KGludCBwYWdlX251bSkKIHsKIAlpZiAoIXBh Z2VfbnVtKSAvKiBQYWdlIDAgYWx3YXlzIHN0YXJ0IGZyb20gbG93IHBhZ2UgKi8KIAkJcmV0dXJu IDA7CkBAIC0zMTYsMzUgKzM0OSw2MiBAQCBzdGF0aWMgaW50IG1seDVfZWVwcm9tX2hpZ2hfcGFn ZV9vZmZzZXQoaW50IHBhZ2VfbnVtKQogCXJldHVybiBwYWdlX251bSAqIE1MWDVfRUVQUk9NX0hJ R0hfUEFHRV9MRU5HVEg7CiB9CiAKK3N0YXRpYyB2b2lkIG1seDVfcXNmcF9lZXByb21fcGFyYW1z X3NldCh1MTYgKmkyY19hZGRyLCBpbnQgKnBhZ2VfbnVtLCB1MTYgKm9mZnNldCkKK3sKKwkqaTJj X2FkZHIgPSBNTFg1X0kyQ19BRERSX0xPVzsKKwkqcGFnZV9udW0gPSBtbHg1X3FzZnBfZWVwcm9t X3BhZ2UoKm9mZnNldCk7CisJKm9mZnNldCAtPSAgbWx4NV9xc2ZwX2VlcHJvbV9oaWdoX3BhZ2Vf b2Zmc2V0KCpwYWdlX251bSk7Cit9CisKK3N0YXRpYyB2b2lkIG1seDVfc2ZwX2VlcHJvbV9wYXJh bXNfc2V0KHUxNiAqaTJjX2FkZHIsIGludCAqcGFnZV9udW0sIHUxNiAqb2Zmc2V0KQoreworCSpp MmNfYWRkciA9IE1MWDVfSTJDX0FERFJfTE9XOworCSpwYWdlX251bSA9IDA7CisKKwlpZiAoKm9m ZnNldCA8IE1MWDVfRUVQUk9NX1BBR0VfTEVOR1RIKQorCQlyZXR1cm47CisKKwkqaTJjX2FkZHIg PSBNTFg1X0kyQ19BRERSX0hJR0g7CisJKm9mZnNldCAtPSBNTFg1X0VFUFJPTV9QQUdFX0xFTkdU SDsKK30KKwogaW50IG1seDVfcXVlcnlfbW9kdWxlX2VlcHJvbShzdHJ1Y3QgbWx4NV9jb3JlX2Rl diAqZGV2LAogCQkJICAgICB1MTYgb2Zmc2V0LCB1MTYgc2l6ZSwgdTggKmRhdGEpCiB7Ci0JaW50 IG1vZHVsZV9udW0sIHBhZ2VfbnVtLCBzdGF0dXMsIGVycjsKKwlpbnQgbW9kdWxlX251bSwgc3Rh dHVzLCBlcnIsIHBhZ2VfbnVtID0gMDsKKwl1MzIgaW5bTUxYNV9TVF9TWl9EVyhtY2lhX3JlZyld ID0ge307CiAJdTMyIG91dFtNTFg1X1NUX1NaX0RXKG1jaWFfcmVnKV07Ci0JdTMyIGluW01MWDVf U1RfU1pfRFcobWNpYV9yZWcpXTsKLQl1MTYgaTJjX2FkZHI7Ci0Jdm9pZCAqcHRyID0gTUxYNV9B RERSX09GKG1jaWFfcmVnLCBvdXQsIGR3b3JkXzApOworCXUxNiBpMmNfYWRkciA9IDA7CisJdTgg bW9kdWxlX2lkOworCXZvaWQgKnB0cjsKIAogCWVyciA9IG1seDVfcXVlcnlfbW9kdWxlX251bShk ZXYsICZtb2R1bGVfbnVtKTsKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwogCi0JbWVtc2V0KGlu LCAwLCBzaXplb2YoaW4pKTsKLQlzaXplID0gbWluX3QoaW50LCBzaXplLCBNTFg1X0VFUFJPTV9N QVhfQllURVMpOwotCi0JLyogR2V0IHRoZSBwYWdlIG51bWJlciByZWxhdGVkIHRvIHRoZSBnaXZl biBvZmZzZXQgKi8KLQlwYWdlX251bSA9IG1seDVfZWVwcm9tX3BhZ2Uob2Zmc2V0KTsKKwllcnIg PSBtbHg1X3F1ZXJ5X21vZHVsZV9pZChkZXYsIG1vZHVsZV9udW0sICZtb2R1bGVfaWQpOworCWlm IChlcnIpCisJCXJldHVybiBlcnI7CiAKLQkvKiBTZXQgdGhlIHJpZ2h0IG9mZnNldCBhY2NvcmRp bmcgdG8gdGhlIHBhZ2UgbnVtYmVyLAotCSAqIEZvciBwYWdlX251bSA+IDAsIHJlbGF0aXZlIG9m ZnNldCBpcyBhbHdheXMgPj0gMTI4IChoaWdoIHBhZ2UpLgotCSAqLwotCW9mZnNldCAtPSBtbHg1 X2VlcHJvbV9oaWdoX3BhZ2Vfb2Zmc2V0KHBhZ2VfbnVtKTsKKwlzd2l0Y2ggKG1vZHVsZV9pZCkg eworCWNhc2UgTUxYNV9NT0RVTEVfSURfU0ZQOgorCQltbHg1X3NmcF9lZXByb21fcGFyYW1zX3Nl dCgmaTJjX2FkZHIsICZwYWdlX251bSwgJm9mZnNldCk7CisJCWJyZWFrOworCWNhc2UgTUxYNV9N T0RVTEVfSURfUVNGUDoKKwljYXNlIE1MWDVfTU9EVUxFX0lEX1FTRlBfUExVUzoKKwljYXNlIE1M WDVfTU9EVUxFX0lEX1FTRlAyODoKKwkJbWx4NV9xc2ZwX2VlcHJvbV9wYXJhbXNfc2V0KCZpMmNf YWRkciwgJnBhZ2VfbnVtLCAmb2Zmc2V0KTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJbWx4NV9j b3JlX2VycihkZXYsICJNb2R1bGUgSUQgbm90IHJlY29nbml6ZWQ6IDB4JXhcbiIsIG1vZHVsZV9p ZCk7CisJCXJldHVybiAtRUlOVkFMOworCX0KIAogCWlmIChvZmZzZXQgKyBzaXplID4gTUxYNV9F RVBST01fUEFHRV9MRU5HVEgpCiAJCS8qIENyb3NzIHBhZ2VzIHJlYWQsIHJlYWQgdW50aWwgb2Zm c2V0IDI1NiBpbiBsb3cgcGFnZSAqLwogCQlzaXplIC09IG9mZnNldCArIHNpemUgLSBNTFg1X0VF UFJPTV9QQUdFX0xFTkdUSDsKIAotCWkyY19hZGRyID0gTUxYNV9JMkNfQUREUl9MT1c7CisJc2l6 ZSA9IG1pbl90KGludCwgc2l6ZSwgTUxYNV9FRVBST01fTUFYX0JZVEVTKTsKIAogCU1MWDVfU0VU KG1jaWFfcmVnLCBpbiwgbCwgMCk7CiAJTUxYNV9TRVQobWNpYV9yZWcsIGluLCBtb2R1bGUsIG1v ZHVsZV9udW0pOwpAQCAtMzY1LDYgKzQyNSw3IEBAIGludCBtbHg1X3F1ZXJ5X21vZHVsZV9lZXBy b20oc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwKIAkJcmV0dXJuIC1FSU87CiAJfQogCisJcHRy ID0gTUxYNV9BRERSX09GKG1jaWFfcmVnLCBvdXQsIGR3b3JkXzApOwogCW1lbWNweShkYXRhLCBw dHIsIHNpemUpOwogCiAJcmV0dXJuIHNpemU7Ci0tIAoyLjI2LjIKCgpGcm9tIDdiM2VkNzI4NTdj NmQ5MThhNTBiMTQwZjgxOWZlZGFiNTA4ODU2MzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IFdpbGxlbSBkZSBCcnVpam4gPHdpbGxlbWJAZ29vZ2xlLmNvbT4KRGF0ZTogV2VkLCAxIEp1 bCAyMDIwIDE2OjAwOjA2IC0wNDAwClN1YmplY3Q6IFtQQVRDSCAzMy80NF0gaXA6IEZpeCBTT19N QVJLIGluIFJTVCwgQUNLIGFuZCBJQ01QIHBhY2tldHMKClsgVXBzdHJlYW0gY29tbWl0IDBkYTc1 MzZmYjQ3ZjUxZGY4OWNjZmNiMWZhMDlmMjQ5ZDlhY2NlYzUgXQoKV2hlbiBubyBmdWxsIHNvY2tl dCBpcyBhdmFpbGFibGUsIHNrYnMgYXJlIHNlbnQgb3ZlciBhIHBlci1uZXRucwpjb250cm9sIHNv Y2tldC4gSXRzIHNrX21hcmsgaXMgdGVtcG9yYXJpbHkgYWRqdXN0ZWQgdG8gbWF0Y2ggdGhhdApv ZiB0aGUgcmVhbCAocmVxdWVzdCBvciB0aW1ld2FpdCkgc29ja2V0IG9yIHRvIHJlZmxlY3QgYW4g aW5jb21pbmcKc2tiLCBzbyB0aGF0IHRoZSBvdXRnb2luZyBza2IgaW5oZXJpdHMgdGhpcyBpbiBf X2lwX21ha2Vfc2tiLgoKSW50cm9kdWN0aW9uIG9mIHRoZSBzb2NrZXQgY29va2llIG1hcmsgZmll bGQgYnJva2UgdGhpcy4gTm93IHRoZQpza2IgaXMgc2V0IHRocm91Z2ggdGhlIGNvb2tpZSBhbmQg Y29yazoKCjxjYWxsZXI+CQkjIGluaXQgc29ja2MubWFyayBmcm9tIHNrX21hcmsgb3IgY21zZwpp cF9hcHBlbmRfZGF0YQogIGlwX3NldHVwX2NvcmsJCSMgY29udmVydCBzb2NrYy5tYXJrIHRvIGNv cmsgbWFyawppcF9wdXNoX3BlbmRpbmdfZnJhbWVzCiAgaXBfZmluaXNoX3NrYgogICAgX19pcF9t YWtlX3NrYgkjIHNldCBza2ItPm1hcmsgdG8gY29yayBtYXJrCgpCdXQgSSBtaXNzZWQgdGhlc2Ug c3BlY2lhbCBjb250cm9sIHNvY2tldHMuIFVwZGF0ZSBhbGwgY2FsbGVycyBvZgpfX2lwKDYpX21h a2Vfc2tiIHRoYXQgd2VyZSBvcmlnaW5hbGx5IG1pc3NlZC4KCkZvciBJUHY2LCB0aGUgc2FtZSB0 d28gaWNtcCh2NikgcGF0aHMgYXJlIGFmZmVjdGVkLiBUaGUgdGhpcmQKY2FzZSBpcyBub3QsIGFz IGNvbW1pdCA5MmU1NWY0MTJjZmYgKCJ0Y3A6IGRvbid0IGFubm90YXRlCm1hcmsgb24gY29udHJv bCBzb2NrZXQgZnJvbSB0Y3BfdjZfc2VuZF9yZXNwb25zZSgpIikgcmVwbGFjZWQKdGhlIGN0bF9z ay0+c2tfbWFyayB3aXRoIHBhc3NpbmcgdGhlIG1hcmsgZmllbGQgZGlyZWN0bHkgYXMgYQpmdW5j dGlvbiBhcmd1bWVudC4gVGhhdCBjb21taXQgcHJlZGF0ZXMgdGhlIGNvbW1pdCB0aGF0CmludHJv ZHVjZWQgdGhlIGJ1Zy4KCkZpeGVzOiBjNmFmMGMyMjdhMjIgKCJpcDogc3VwcG9ydCBTT19NQVJL IGNtc2ciKQpTaWduZWQtb2ZmLWJ5OiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1iQGdvb2dsZS5j b20+ClJlcG9ydGVkLWJ5OiBNYXJ0aW4gS2FGYWkgTGF1IDxrYWZhaUBmYi5jb20+ClJldmlld2Vk LWJ5OiBNYXJ0aW4gS2FGYWkgTGF1IDxrYWZhaUBmYi5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC9pY21wLmMgICAg ICB8IDQgKystLQogbmV0L2lwdjQvaXBfb3V0cHV0LmMgfCAyICstCiBuZXQvaXB2Ni9pY21wLmMg ICAgICB8IDQgKystLQogMyBmaWxlcyBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDUgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaWNtcC5jIGIvbmV0L2lwdjQvaWNtcC5jCmlu ZGV4IGZjNjFmNTFkODdhMy4uY2E1OTEwNTFjNjU2IDEwMDY0NAotLS0gYS9uZXQvaXB2NC9pY21w LmMKKysrIGIvbmV0L2lwdjQvaWNtcC5jCkBAIC00MjcsNyArNDI3LDcgQEAgc3RhdGljIHZvaWQg aWNtcF9yZXBseShzdHJ1Y3QgaWNtcF9ieG0gKmljbXBfcGFyYW0sIHN0cnVjdCBza19idWZmICpz a2IpCiAKIAlpcGNtX2luaXQoJmlwYyk7CiAJaW5ldC0+dG9zID0gaXBfaGRyKHNrYiktPnRvczsK LQlzay0+c2tfbWFyayA9IG1hcms7CisJaXBjLnNvY2tjLm1hcmsgPSBtYXJrOwogCWRhZGRyID0g aXBjLmFkZHIgPSBpcF9oZHIoc2tiKS0+c2FkZHI7CiAJc2FkZHIgPSBmaWJfY29tcHV0ZV9zcGVj X2RzdChza2IpOwogCkBAIC03MTAsMTAgKzcxMCwxMCBAQCB2b2lkIF9faWNtcF9zZW5kKHN0cnVj dCBza19idWZmICpza2JfaW4sIGludCB0eXBlLCBpbnQgY29kZSwgX19iZTMyIGluZm8sCiAJaWNt cF9wYXJhbS5za2IJICA9IHNrYl9pbjsKIAlpY21wX3BhcmFtLm9mZnNldCA9IHNrYl9uZXR3b3Jr X29mZnNldChza2JfaW4pOwogCWluZXRfc2soc2spLT50b3MgPSB0b3M7Ci0Jc2stPnNrX21hcmsg PSBtYXJrOwogCWlwY21faW5pdCgmaXBjKTsKIAlpcGMuYWRkciA9IGlwaC0+c2FkZHI7CiAJaXBj Lm9wdCA9ICZpY21wX3BhcmFtLnJlcGx5b3B0cy5vcHQ7CisJaXBjLnNvY2tjLm1hcmsgPSBtYXJr OwogCiAJcnQgPSBpY21wX3JvdXRlX2xvb2t1cChuZXQsICZmbDQsIHNrYl9pbiwgaXBoLCBzYWRk ciwgdG9zLCBtYXJrLAogCQkJICAgICAgIHR5cGUsIGNvZGUsICZpY21wX3BhcmFtKTsKZGlmZiAt LWdpdCBhL25ldC9pcHY0L2lwX291dHB1dC5jIGIvbmV0L2lwdjQvaXBfb3V0cHV0LmMKaW5kZXgg MDkwZDMwOTdlZTE1Li4xNzIwNjY3N2Q1MDMgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2lwX291dHB1 dC5jCisrKyBiL25ldC9pcHY0L2lwX291dHB1dC5jCkBAIC0xNzAyLDcgKzE3MDIsNyBAQCB2b2lk IGlwX3NlbmRfdW5pY2FzdF9yZXBseShzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpz a2IsCiAJc2stPnNrX3Byb3RvY29sID0gaXBfaGRyKHNrYiktPnByb3RvY29sOwogCXNrLT5za19i b3VuZF9kZXZfaWYgPSBhcmctPmJvdW5kX2Rldl9pZjsKIAlzay0+c2tfc25kYnVmID0gc3lzY3Rs X3dtZW1fZGVmYXVsdDsKLQlzay0+c2tfbWFyayA9IGZsNC5mbG93aTRfbWFyazsKKwlpcGMuc29j a2MubWFyayA9IGZsNC5mbG93aTRfbWFyazsKIAllcnIgPSBpcF9hcHBlbmRfZGF0YShzaywgJmZs NCwgaXBfcmVwbHlfZ2x1ZV9iaXRzLCBhcmctPmlvdi0+aW92X2Jhc2UsCiAJCQkgICAgIGxlbiwg MCwgJmlwYywgJnJ0LCBNU0dfRE9OVFdBSVQpOwogCWlmICh1bmxpa2VseShlcnIpKSB7CmRpZmYg LS1naXQgYS9uZXQvaXB2Ni9pY21wLmMgYi9uZXQvaXB2Ni9pY21wLmMKaW5kZXggZmM1MDAwMzcw MDMwLi45ZGY4NzM3YWUwZDMgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2ljbXAuYworKysgYi9uZXQv aXB2Ni9pY21wLmMKQEAgLTU2Niw3ICs1NjYsNiBAQCBzdGF0aWMgdm9pZCBpY21wNl9zZW5kKHN0 cnVjdCBza19idWZmICpza2IsIHU4IHR5cGUsIHU4IGNvZGUsIF9fdTMyIGluZm8sCiAJZmw2Lm1w X2hhc2ggPSBydDZfbXVsdGlwYXRoX2hhc2gobmV0LCAmZmw2LCBza2IsIE5VTEwpOwogCXNlY3Vy aXR5X3NrYl9jbGFzc2lmeV9mbG93KHNrYiwgZmxvd2k2X3RvX2Zsb3dpKCZmbDYpKTsKIAotCXNr LT5za19tYXJrID0gbWFyazsKIAlucCA9IGluZXQ2X3NrKHNrKTsKIAogCWlmICghaWNtcHY2X3hy bGltX2FsbG93KHNrLCB0eXBlLCAmZmw2KSkKQEAgLTU4Myw2ICs1ODIsNyBAQCBzdGF0aWMgdm9p ZCBpY21wNl9zZW5kKHN0cnVjdCBza19idWZmICpza2IsIHU4IHR5cGUsIHU4IGNvZGUsIF9fdTMy IGluZm8sCiAJCWZsNi5mbG93aTZfb2lmID0gbnAtPnVjYXN0X29pZjsKIAogCWlwY202X2luaXRf c2soJmlwYzYsIG5wKTsKKwlpcGM2LnNvY2tjLm1hcmsgPSBtYXJrOwogCWZsNi5mbG93bGFiZWwg PSBpcDZfbWFrZV9mbG93aW5mbyhpcGM2LnRjbGFzcywgZmw2LmZsb3dsYWJlbCk7CiAKIAlkc3Qg PSBpY21wdjZfcm91dGVfbG9va3VwKG5ldCwgc2tiLCBzaywgJmZsNik7CkBAIC03NTEsNyArNzUx LDYgQEAgc3RhdGljIHZvaWQgaWNtcHY2X2VjaG9fcmVwbHkoc3RydWN0IHNrX2J1ZmYgKnNrYikK IAlzayA9IGljbXB2Nl94bWl0X2xvY2sobmV0KTsKIAlpZiAoIXNrKQogCQlnb3RvIG91dF9iaF9l bmFibGU7Ci0Jc2stPnNrX21hcmsgPSBtYXJrOwogCW5wID0gaW5ldDZfc2soc2spOwogCiAJaWYg KCFmbDYuZmxvd2k2X29pZiAmJiBpcHY2X2FkZHJfaXNfbXVsdGljYXN0KCZmbDYuZGFkZHIpKQpA QCAtNzc5LDYgKzc3OCw3IEBAIHN0YXRpYyB2b2lkIGljbXB2Nl9lY2hvX3JlcGx5KHN0cnVjdCBz a19idWZmICpza2IpCiAJaXBjbTZfaW5pdF9zaygmaXBjNiwgbnApOwogCWlwYzYuaGxpbWl0ID0g aXA2X3NrX2RzdF9ob3BsaW1pdChucCwgJmZsNiwgZHN0KTsKIAlpcGM2LnRjbGFzcyA9IGlwdjZf Z2V0X2RzZmllbGQoaXB2Nl9oZHIoc2tiKSk7CisJaXBjNi5zb2NrYy5tYXJrID0gbWFyazsKIAog CWlmIChpcDZfYXBwZW5kX2RhdGEoc2ssIGljbXB2Nl9nZXRmcmFnLCAmbXNnLAogCQkJICAgIHNr Yi0+bGVuICsgc2l6ZW9mKHN0cnVjdCBpY21wNmhkciksCi0tIAoyLjI2LjIKCgpGcm9tIGMyYjdi YmYwOTFkNjFjMDdmYWZmMzQxZmVkODVhNWQwYzExNDg2NGUgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IEF5YSBMZXZpbiA8YXlhbEBtZWxsYW5veC5jb20+CkRhdGU6IE1vbiwgMTUgSnVu IDIwMjAgMTI6NDg6NDcgKzAzMDAKU3ViamVjdDogW1BBVENIIDM0LzQ0XSBuZXQvbWx4NWU6IEZp eCA1MEcgcGVyIGxhbmUgaW5kaWNhdGlvbgoKWyBVcHN0cmVhbSBjb21taXQgNmExY2Y0ZTQ0M2Ez YjBhNGQ2OTBkM2M5M2I4NGIxZTljYmZjYjFiZCBdCgpTb21lIHJlbGVhc2VkIEZXIHZlcnNpb25z IG1pc3Rha2VubHkgZG9uJ3Qgc2V0IHRoZSBjYXBhYmlsaXR5IHRoYXQgNTBHCnBlciBsYW5lIGxp bmstbW9kZXMgYXJlIHN1cHBvcnRlZCBmb3IgVkZzIChwdHlzX2V4dGVuZGVkX2V0aGVybmV0CmNh cGFiaWxpdHkgYml0KS4gV2hlbiB0aGUgY2FwYWJpbGl0eSBpcyB1bnNldCwgcmVhZApQVFlTLmV4 dF9ldGhfcHJvdG9fY2FwYWJpbGl0eSAoYWx3YXlzIHJlbGlhYmxlKS4KSWYgUFRZUy5leHRfZXRo X3Byb3RvX2NhcGFiaWxpdHkgaXMgdmFsaWQgKGhhcyBhIG5vbi16ZXJvIHZhbHVlKQpjb25jbHVk ZSB0aGF0IHRoZSBIQ0Egc3VwcG9ydHMgNTBHIHBlciBsYW5lLiBPdGhlcndpc2UsIGNvbmNsdWRl IHRoYXQKdGhlIEhDQSBkb2Vzbid0IHN1cHBvcnQgNTBHIHBlciBsYW5lLgoKRml4ZXM6IGEwOGI0 ZWQxMzczZCAoIm5ldC9tbHg1OiBBZGQgc3VwcG9ydCB0byBleHRfKiBmaWVsZHMgaW50cm9kdWNl ZCBpbiBQb3J0IFR5cGUgYW5kIFNwZWVkIHJlZ2lzdGVyIikKU2lnbmVkLW9mZi1ieTogQXlhIExl dmluIDxheWFsQG1lbGxhbm94LmNvbT4KUmV2aWV3ZWQtYnk6IEVyYW4gQmVuIEVsaXNoYSA8ZXJh bmJlQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBt ZWxsYW5veC5jb20+Ci0tLQogLi4uL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4v cG9ydC5jIHwgMjEgKysrKysrKysrKysrKysrKy0tLQogLi4uL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg1L2NvcmUvZW4vcG9ydC5oIHwgIDIgKy0KIC4uLi9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvZW5fZXRodG9vbC5jICB8ICA4ICsrKy0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgMjMgaW5z ZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcG9ydC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NS9jb3JlL2VuL3BvcnQuYwppbmRleCAyYTg5NTBiMzA1NmYuLjNjZjNlMzUw NTNmNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L2VuL3BvcnQuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUv ZW4vcG9ydC5jCkBAIC03OCwxMSArNzgsMjYgQEAgc3RhdGljIGNvbnN0IHUzMiBtbHg1ZV9leHRf bGlua19zcGVlZFtNTFg1RV9FWFRfTElOS19NT0RFU19OVU1CRVJdID0gewogCVtNTFg1RV80MDBH QVVJXzhdCQkJPSA0MDAwMDAsCiB9OwogCitib29sIG1seDVlX3B0eXNfZXh0X3N1cHBvcnRlZChz dHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldikKK3sKKwlzdHJ1Y3QgbWx4NWVfcG9ydF9ldGhfcHJv dG8gZXByb3RvOworCWludCBlcnI7CisKKwlpZiAoTUxYNV9DQVBfUENBTV9GRUFUVVJFKG1kZXYs IHB0eXNfZXh0ZW5kZWRfZXRoZXJuZXQpKQorCQlyZXR1cm4gdHJ1ZTsKKworCWVyciA9IG1seDVf cG9ydF9xdWVyeV9ldGhfcHJvdG8obWRldiwgMSwgdHJ1ZSwgJmVwcm90byk7CisJaWYgKGVycikK KwkJcmV0dXJuIGZhbHNlOworCisJcmV0dXJuICEhZXByb3RvLmNhcDsKK30KKwogc3RhdGljIHZv aWQgbWx4NWVfcG9ydF9nZXRfc3BlZWRfYXJyKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LAog CQkJCSAgICAgY29uc3QgdTMyICoqYXJyLCB1MzIgKnNpemUsCiAJCQkJICAgICBib29sIGZvcmNl X2xlZ2FjeSkKIHsKLQlib29sIGV4dCA9IGZvcmNlX2xlZ2FjeSA/IGZhbHNlIDogTUxYNV9DQVBf UENBTV9GRUFUVVJFKG1kZXYsIHB0eXNfZXh0ZW5kZWRfZXRoZXJuZXQpOworCWJvb2wgZXh0ID0g Zm9yY2VfbGVnYWN5ID8gZmFsc2UgOiBtbHg1ZV9wdHlzX2V4dF9zdXBwb3J0ZWQobWRldik7CiAK IAkqc2l6ZSA9IGV4dCA/IEFSUkFZX1NJWkUobWx4NWVfZXh0X2xpbmtfc3BlZWQpIDoKIAkJICAg ICAgQVJSQVlfU0laRShtbHg1ZV9saW5rX3NwZWVkKTsKQEAgLTE3Nyw3ICsxOTIsNyBAQCBpbnQg bWx4NWVfcG9ydF9saW5rc3BlZWQoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYsIHUzMiAqc3Bl ZWQpCiAJYm9vbCBleHQ7CiAJaW50IGVycjsKIAotCWV4dCA9IE1MWDVfQ0FQX1BDQU1fRkVBVFVS RShtZGV2LCBwdHlzX2V4dGVuZGVkX2V0aGVybmV0KTsKKwlleHQgPSBtbHg1ZV9wdHlzX2V4dF9z dXBwb3J0ZWQobWRldik7CiAJZXJyID0gbWx4NV9wb3J0X3F1ZXJ5X2V0aF9wcm90byhtZGV2LCAx LCBleHQsICZlcHJvdG8pOwogCWlmIChlcnIpCiAJCWdvdG8gb3V0OwpAQCAtMjA1LDcgKzIyMCw3 IEBAIGludCBtbHg1ZV9wb3J0X21heF9saW5rc3BlZWQoc3RydWN0IG1seDVfY29yZV9kZXYgKm1k ZXYsIHUzMiAqc3BlZWQpCiAJaW50IGVycjsKIAlpbnQgaTsKIAotCWV4dCA9IE1MWDVfQ0FQX1BD QU1fRkVBVFVSRShtZGV2LCBwdHlzX2V4dGVuZGVkX2V0aGVybmV0KTsKKwlleHQgPSBtbHg1ZV9w dHlzX2V4dF9zdXBwb3J0ZWQobWRldik7CiAJZXJyID0gbWx4NV9wb3J0X3F1ZXJ5X2V0aF9wcm90 byhtZGV2LCAxLCBleHQsICZlcHJvdG8pOwogCWlmIChlcnIpCiAJCXJldHVybiBlcnI7CmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcG9ydC5o IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3BvcnQuaAppbmRl eCBhMmRkZDQ0NmRkNTkuLjdhN2RlZmU2MDc5MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3BvcnQuaAorKysgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcG9ydC5oCkBAIC01NCw3ICs1NCw3IEBAIGludCBt bHg1ZV9wb3J0X2xpbmtzcGVlZChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldiwgdTMyICpzcGVl ZCk7CiBpbnQgbWx4NWVfcG9ydF9tYXhfbGlua3NwZWVkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpt ZGV2LCB1MzIgKnNwZWVkKTsKIHUzMiBtbHg1ZV9wb3J0X3NwZWVkMmxpbmttb2RlcyhzdHJ1Y3Qg bWx4NV9jb3JlX2RldiAqbWRldiwgdTMyIHNwZWVkLAogCQkJICAgICAgIGJvb2wgZm9yY2VfbGVn YWN5KTsKLQorYm9vbCBtbHg1ZV9wdHlzX2V4dF9zdXBwb3J0ZWQoc3RydWN0IG1seDVfY29yZV9k ZXYgKm1kZXYpOwogaW50IG1seDVlX3BvcnRfcXVlcnlfcGJtYyhzdHJ1Y3QgbWx4NV9jb3JlX2Rl diAqbWRldiwgdm9pZCAqb3V0KTsKIGludCBtbHg1ZV9wb3J0X3NldF9wYm1jKHN0cnVjdCBtbHg1 X2NvcmVfZGV2ICptZGV2LCB2b2lkICppbik7CiBpbnQgbWx4NWVfcG9ydF9xdWVyeV9wcmlvcml0 eTJidWZmZXIoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYsIHU4ICpidWZmZXIpOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2V0aHRvb2wu YyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9ldGh0b29sLmMK aW5kZXggYmMyOTBhZTgwYTUzLi4xYzQ5MWFjZDQ4ZjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9ldGh0b29sLmMKKysrIGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2V0aHRvb2wuYwpAQCAtMjAwLDcgKzIw MCw3IEBAIHN0YXRpYyB2b2lkIG1seDVlX2V0aHRvb2xfZ2V0X3NwZWVkX2FycihzdHJ1Y3QgbWx4 NV9jb3JlX2RldiAqbWRldiwKIAkJCQkJc3RydWN0IHB0eXMyZXRodG9vbF9jb25maWcgKiphcnIs CiAJCQkJCXUzMiAqc2l6ZSkKIHsKLQlib29sIGV4dCA9IE1MWDVfQ0FQX1BDQU1fRkVBVFVSRSht ZGV2LCBwdHlzX2V4dGVuZGVkX2V0aGVybmV0KTsKKwlib29sIGV4dCA9IG1seDVlX3B0eXNfZXh0 X3N1cHBvcnRlZChtZGV2KTsKIAogCSphcnIgPSBleHQgPyBwdHlzMmV4dF9ldGh0b29sX3RhYmxl IDogcHR5czJsZWdhY3lfZXRodG9vbF90YWJsZTsKIAkqc2l6ZSA9IGV4dCA/IEFSUkFZX1NJWkUo cHR5czJleHRfZXRodG9vbF90YWJsZSkgOgpAQCAtODgzLDcgKzg4Myw3IEBAIHN0YXRpYyB2b2lk IGdldF9scF9hZHZlcnRpc2luZyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldiwgdTMyIGV0aF9w cm90b19scCwKIAkJCSAgICAgICBzdHJ1Y3QgZXRodG9vbF9saW5rX2tzZXR0aW5ncyAqbGlua19r c2V0dGluZ3MpCiB7CiAJdW5zaWduZWQgbG9uZyAqbHBfYWR2ZXJ0aXNpbmcgPSBsaW5rX2tzZXR0 aW5ncy0+bGlua19tb2Rlcy5scF9hZHZlcnRpc2luZzsKLQlib29sIGV4dCA9IE1MWDVfQ0FQX1BD QU1fRkVBVFVSRShtZGV2LCBwdHlzX2V4dGVuZGVkX2V0aGVybmV0KTsKKwlib29sIGV4dCA9IG1s eDVlX3B0eXNfZXh0X3N1cHBvcnRlZChtZGV2KTsKIAogCXB0eXMyZXRodG9vbF9hZHZlcl9saW5r KGxwX2FkdmVydGlzaW5nLCBldGhfcHJvdG9fbHAsIGV4dCk7CiB9CkBAIC05MTMsNyArOTEzLDcg QEAgaW50IG1seDVlX2V0aHRvb2xfZ2V0X2xpbmtfa3NldHRpbmdzKHN0cnVjdCBtbHg1ZV9wcml2 ICpwcml2LAogCQkJICAgX19mdW5jX18sIGVycik7CiAJCWdvdG8gZXJyX3F1ZXJ5X3JlZ3M7CiAJ fQotCWV4dCA9IE1MWDVfQ0FQX1BDQU1fRkVBVFVSRShtZGV2LCBwdHlzX2V4dGVuZGVkX2V0aGVy bmV0KTsKKwlleHQgPSAhIU1MWDVfR0VUX0VUSF9QUk9UTyhwdHlzX3JlZywgb3V0LCB0cnVlLCBl dGhfcHJvdG9fY2FwYWJpbGl0eSk7CiAJZXRoX3Byb3RvX2NhcCAgICA9IE1MWDVfR0VUX0VUSF9Q Uk9UTyhwdHlzX3JlZywgb3V0LCBleHQsCiAJCQkJCSAgICAgIGV0aF9wcm90b19jYXBhYmlsaXR5 KTsKIAlldGhfcHJvdG9fYWRtaW4gID0gTUxYNV9HRVRfRVRIX1BST1RPKHB0eXNfcmVnLCBvdXQs IGV4dCwKQEAgLTEwNjYsNyArMTA2Niw3IEBAIGludCBtbHg1ZV9ldGh0b29sX3NldF9saW5rX2tz ZXR0aW5ncyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwKIAlhdXRvbmVnID0gbGlua19rc2V0dGlu Z3MtPmJhc2UuYXV0b25lZzsKIAlzcGVlZCA9IGxpbmtfa3NldHRpbmdzLT5iYXNlLnNwZWVkOwog Ci0JZXh0X3N1cHBvcnRlZCA9IE1MWDVfQ0FQX1BDQU1fRkVBVFVSRShtZGV2LCBwdHlzX2V4dGVu ZGVkX2V0aGVybmV0KTsKKwlleHRfc3VwcG9ydGVkID0gbWx4NWVfcHR5c19leHRfc3VwcG9ydGVk KG1kZXYpOwogCWV4dCA9IGV4dF9yZXF1ZXN0ZWQoYXV0b25lZywgYWR2ZXIsIGV4dF9zdXBwb3J0 ZWQpOwogCWlmICghZXh0X3N1cHBvcnRlZCAmJiBleHQpCiAJCXJldHVybiAtRU9QTk9UU1VQUDsK LS0gCjIuMjYuMgoKCkZyb20gZTNlNDEyOWViOGViODY3Y2I1NDMyNGY3OTNiZmE1YTljNWY3M2Q3 NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29u Z0BnbWFpbC5jb20+CkRhdGU6IFNhdCwgMjcgSnVuIDIwMjAgMDA6MTI6MjQgLTA3MDAKU3ViamVj dDogW1BBVENIIDM1LzQ0XSBnZW5ldGxpbms6IGdldCByaWQgb2YgZmFtaWx5LT5hdHRyYnVmCgpb IFVwc3RyZWFtIGNvbW1pdCBiZjY0ZmY0YzJhYWM2NWQ2ODBkYzYzOWE1MTFjNzgxY2Y2YjZlYzA4 IF0KCmdlbmxfZmFtaWx5X3Jjdl9tc2dfYXR0cnNfcGFyc2UoKSByZXVzZXMgdGhlIGdsb2JhbCBm YW1pbHktPmF0dHJidWYKd2hlbiBmYW1pbHktPnBhcmFsbGVsX29wcyBpcyBmYWxzZS4gSG93ZXZl ciwgZmFtaWx5LT5hdHRyYnVmIGlzIG5vdApwcm90ZWN0ZWQgYnkgYW55IGxvY2sgb24gdGhlIGdl bmxfZmFtaWx5X3Jjdl9tc2dfZG9pdCgpIGNvZGUgcGF0aC4KClRoaXMgbGVhZHMgdG8gc2V2ZXJh bCBkaWZmZXJlbnQgY29uc2VxdWVuY2VzLCBvbmUgb2YgdGhlbSBpcyBVQUYsCmxpa2UgdGhlIGZv bGxvd2luZzoKCmdlbmxfZmFtaWx5X3Jjdl9tc2dfZG9pdCgpOgkJZ2VubF9zdGFydCgpOgoJCQkJ CSAgZ2VubF9mYW1pbHlfcmN2X21zZ19hdHRyc19wYXJzZSgpCgkJCQkJICAgIGF0dHJidWYgPSBm YW1pbHktPmF0dHJidWYKCQkJCQkgICAgX19ubG1zZ19wYXJzZShhdHRyYnVmKTsKICBnZW5sX2Zh bWlseV9yY3ZfbXNnX2F0dHJzX3BhcnNlKCkKICAgIGF0dHJidWYgPSBmYW1pbHktPmF0dHJidWYK ICAgIF9fbmxtc2dfcGFyc2UoYXR0cmJ1Zik7CgkJCQkJICBpbmZvLT5hdHRycyA9IGF0dHJzOwoJ CQkJCSAgY2ItPmRhdGEgPSBpbmZvOwoKbmV0bGlua191bmljYXN0X2tlcm5lbCgpOgogY29uc3Vt ZV9za2IoKQoJCQkJCWdlbmxfbG9ja19kdW1waXQoKToKCQkJCQkgIGdlbmxfZHVtcGl0X2luZm8o Y2IpLT5hdHRycwoKTm90ZSBmYW1pbHktPmF0dHJidWYgaXMgYW4gYXJyYXkgb2YgcG9pbnRlcnMg dG8gdGhlIHNrYiBkYXRhLCBvbmNlCnRoZSBza2IgaXMgZnJlZWQsIGFueSBkZXJlZmVyZW5jZSBv ZiBmYW1pbHktPmF0dHJidWYgd2lsbCBiZSBhIFVBRi4KCk1heWJlIHdlIGNvdWxkIHNlcmlhbGl6 ZSB0aGUgZmFtaWx5LT5hdHRyYnVmIHdpdGggZ2VubF9tdXRleCB0b28sIGJ1dAp0aGF0IHdvdWxk IG1ha2UgdGhlIGxvY2tpbmcgbW9yZSBjb21wbGljYXRlZC4gSW5zdGVhZCwgd2UgY2FuIGp1c3Qg Z2V0CnJpZCBvZiBmYW1pbHktPmF0dHJidWYgYW5kIGFsd2F5cyBhbGxvY2F0ZSBhdHRyYnVmIGZy b20gaGVhcCBsaWtlIHRoZQpmYW1pbHktPnBhcmFsbGVsX29wcz09dHJ1ZSBjb2RlIHBhdGguIFRo aXMgbWF5IGFkZCBzb21lIHBlcmZvcm1hbmNlCm92ZXJoZWFkIGJ1dCBjb21wYXJpbmcgd2l0aCB0 YWtpbmcgdGhlIGdsb2JhbCBnZW5sX211dGV4LCBpdCBzdGlsbApsb29rcyBiZXR0ZXIuCgpGaXhl czogNzVjZGJkZDA4OTAwICgibmV0OiBpZWVlODAyMTU0OiBoYXZlIGdlbmV0bGluayBjb2RlIHRv IHBhcnNlIHRoZSBhdHRycyBkdXJpbmcgZHVtcGl0IikKRml4ZXM6IDA1N2FmNzA3MTM0NCAoIm5l dDogdGlwYzogaGF2ZSBnZW5ldGxpbmsgY29kZSB0byBwYXJzZSB0aGUgYXR0cnMgZHVyaW5nIGR1 bXBpdCIpClJlcG9ydGVkLWFuZC10ZXN0ZWQtYnk6IHN5emJvdCszMDM5ZGRmNmQ3YjEzZGFmMzc4 N0BzeXprYWxsZXIuYXBwc3BvdG1haWwuY29tClJlcG9ydGVkLWFuZC10ZXN0ZWQtYnk6IHN5emJv dCs4MGNhZDFlM2NiNGM0MWNkZTZmZkBzeXprYWxsZXIuYXBwc3BvdG1haWwuY29tClJlcG9ydGVk LWFuZC10ZXN0ZWQtYnk6IHN5emJvdCs3MzZiY2JjYjExYjYwZDBjMDc5MkBzeXprYWxsZXIuYXBw c3BvdG1haWwuY29tClJlcG9ydGVkLWFuZC10ZXN0ZWQtYnk6IHN5emJvdCs1MjBmODcwNGRiMmI2 ODA5MWQ0NEBzeXprYWxsZXIuYXBwc3BvdG1haWwuY29tClJlcG9ydGVkLWFuZC10ZXN0ZWQtYnk6 IHN5emJvdCtjOTZlNGRmYjMyZjg5ODdmZGVlZEBzeXprYWxsZXIuYXBwc3BvdG1haWwuY29tCkNj OiBKaXJpIFBpcmtvIDxqaXJpQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogQ29uZyBXYW5n IDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC9nZW5ldGxpbmsuaCB8ICAy IC0tCiBuZXQvbmV0bGluay9nZW5ldGxpbmsuYyB8IDQ4ICsrKysrKysrKysrLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDM3 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2dlbmV0bGluay5oIGIvaW5j bHVkZS9uZXQvZ2VuZXRsaW5rLmgKaW5kZXggNGNmNzAzZDhjMzBlLi42ZTVmMWUxYWE4MjIgMTAw NjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2dlbmV0bGluay5oCisrKyBiL2luY2x1ZGUvbmV0L2dlbmV0 bGluay5oCkBAIC0zNSw3ICszNSw2IEBAIHN0cnVjdCBnZW5sX2luZm87CiAgKglkbyBhZGRpdGlv bmFsLCBjb21tb24sIGZpbHRlcmluZyBhbmQgcmV0dXJuIGFuIGVycm9yCiAgKiBAcG9zdF9kb2l0 OiBjYWxsZWQgYWZ0ZXIgYW4gb3BlcmF0aW9uJ3MgZG9pdCBjYWxsYmFjaywgaXQgbWF5CiAgKgl1 bmRvIG9wZXJhdGlvbnMgZG9uZSBieSBwcmVfZG9pdCwgZm9yIGV4YW1wbGUgcmVsZWFzZSBsb2Nr cwotICogQGF0dHJidWY6IGJ1ZmZlciB0byBzdG9yZSBwYXJzZWQgYXR0cmlidXRlcyAocHJpdmF0 ZSkKICAqIEBtY2dycHM6IG11bHRpY2FzdCBncm91cHMgdXNlZCBieSB0aGlzIGZhbWlseQogICog QG5fbWNncnBzOiBudW1iZXIgb2YgbXVsdGljYXN0IGdyb3VwcwogICogQG1jZ3JwX29mZnNldDog c3RhcnRpbmcgbnVtYmVyIG9mIG11bHRpY2FzdCBncm91cCBJRHMgaW4gdGhpcyBmYW1pbHkKQEAg LTU4LDcgKzU3LDYgQEAgc3RydWN0IGdlbmxfZmFtaWx5IHsKIAl2b2lkCQkJKCpwb3N0X2RvaXQp KGNvbnN0IHN0cnVjdCBnZW5sX29wcyAqb3BzLAogCQkJCQkgICAgIHN0cnVjdCBza19idWZmICpz a2IsCiAJCQkJCSAgICAgc3RydWN0IGdlbmxfaW5mbyAqaW5mbyk7Ci0Jc3RydWN0IG5sYXR0ciAq KglhdHRyYnVmOwkvKiBwcml2YXRlICovCiAJY29uc3Qgc3RydWN0IGdlbmxfb3BzICoJb3BzOwog CWNvbnN0IHN0cnVjdCBnZW5sX211bHRpY2FzdF9ncm91cCAqbWNncnBzOwogCXVuc2lnbmVkIGlu dAkJbl9vcHM7CmRpZmYgLS1naXQgYS9uZXQvbmV0bGluay9nZW5ldGxpbmsuYyBiL25ldC9uZXRs aW5rL2dlbmV0bGluay5jCmluZGV4IGYzNzRhNDAzOGMwMy4uY2ZjYzUxOGQ3N2MwIDEwMDY0NAot LS0gYS9uZXQvbmV0bGluay9nZW5ldGxpbmsuYworKysgYi9uZXQvbmV0bGluay9nZW5ldGxpbmsu YwpAQCAtMzUxLDIyICszNTEsMTEgQEAgaW50IGdlbmxfcmVnaXN0ZXJfZmFtaWx5KHN0cnVjdCBn ZW5sX2ZhbWlseSAqZmFtaWx5KQogCQlzdGFydCA9IGVuZCA9IEdFTkxfSURfVkZTX0RRVU9UOwog CX0KIAotCWlmIChmYW1pbHktPm1heGF0dHIgJiYgIWZhbWlseS0+cGFyYWxsZWxfb3BzKSB7Ci0J CWZhbWlseS0+YXR0cmJ1ZiA9IGttYWxsb2NfYXJyYXkoZmFtaWx5LT5tYXhhdHRyICsgMSwKLQkJ CQkJCXNpemVvZihzdHJ1Y3QgbmxhdHRyICopLAotCQkJCQkJR0ZQX0tFUk5FTCk7Ci0JCWlmIChm YW1pbHktPmF0dHJidWYgPT0gTlVMTCkgewotCQkJZXJyID0gLUVOT01FTTsKLQkJCWdvdG8gZXJy b3V0X2xvY2tlZDsKLQkJfQotCX0gZWxzZQotCQlmYW1pbHktPmF0dHJidWYgPSBOVUxMOwotCiAJ ZmFtaWx5LT5pZCA9IGlkcl9hbGxvY19jeWNsaWMoJmdlbmxfZmFtX2lkciwgZmFtaWx5LAogCQkJ CSAgICAgIHN0YXJ0LCBlbmQgKyAxLCBHRlBfS0VSTkVMKTsKIAlpZiAoZmFtaWx5LT5pZCA8IDAp IHsKIAkJZXJyID0gZmFtaWx5LT5pZDsKLQkJZ290byBlcnJvdXRfZnJlZTsKKwkJZ290byBlcnJv dXRfbG9ja2VkOwogCX0KIAogCWVyciA9IGdlbmxfdmFsaWRhdGVfYXNzaWduX21jX2dyb3Vwcyhm YW1pbHkpOwpAQCAtMzg1LDggKzM3NCw2IEBAIGludCBnZW5sX3JlZ2lzdGVyX2ZhbWlseShzdHJ1 Y3QgZ2VubF9mYW1pbHkgKmZhbWlseSkKIAogZXJyb3V0X3JlbW92ZToKIAlpZHJfcmVtb3ZlKCZn ZW5sX2ZhbV9pZHIsIGZhbWlseS0+aWQpOwotZXJyb3V0X2ZyZWU6Ci0Ja2ZyZWUoZmFtaWx5LT5h dHRyYnVmKTsKIGVycm91dF9sb2NrZWQ6CiAJZ2VubF91bmxvY2tfYWxsKCk7CiAJcmV0dXJuIGVy cjsKQEAgLTQxOSw4ICs0MDYsNiBAQCBpbnQgZ2VubF91bnJlZ2lzdGVyX2ZhbWlseShjb25zdCBz dHJ1Y3QgZ2VubF9mYW1pbHkgKmZhbWlseSkKIAkJICAgYXRvbWljX3JlYWQoJmdlbmxfc2tfZGVz dHJ1Y3RpbmdfY250KSA9PSAwKTsKIAlnZW5sX3VubG9jaygpOwogCi0Ja2ZyZWUoZmFtaWx5LT5h dHRyYnVmKTsKLQogCWdlbmxfY3RybF9ldmVudChDVFJMX0NNRF9ERUxGQU1JTFksIGZhbWlseSwg TlVMTCwgMCk7CiAKIAlyZXR1cm4gMDsKQEAgLTQ4NSwzMCArNDcwLDIzIEBAIGdlbmxfZmFtaWx5 X3Jjdl9tc2dfYXR0cnNfcGFyc2UoY29uc3Qgc3RydWN0IGdlbmxfZmFtaWx5ICpmYW1pbHksCiAJ aWYgKCFmYW1pbHktPm1heGF0dHIpCiAJCXJldHVybiBOVUxMOwogCi0JaWYgKGZhbWlseS0+cGFy YWxsZWxfb3BzKSB7Ci0JCWF0dHJidWYgPSBrbWFsbG9jX2FycmF5KGZhbWlseS0+bWF4YXR0ciAr IDEsCi0JCQkJCXNpemVvZihzdHJ1Y3QgbmxhdHRyICopLCBHRlBfS0VSTkVMKTsKLQkJaWYgKCFh dHRyYnVmKQotCQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Ci0JfSBlbHNlIHsKLQkJYXR0cmJ1 ZiA9IGZhbWlseS0+YXR0cmJ1ZjsKLQl9CisJYXR0cmJ1ZiA9IGttYWxsb2NfYXJyYXkoZmFtaWx5 LT5tYXhhdHRyICsgMSwKKwkJCQlzaXplb2Yoc3RydWN0IG5sYXR0ciAqKSwgR0ZQX0tFUk5FTCk7 CisJaWYgKCFhdHRyYnVmKQorCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAogCWVyciA9IF9f bmxtc2dfcGFyc2UobmxoLCBoZHJsZW4sIGF0dHJidWYsIGZhbWlseS0+bWF4YXR0ciwKIAkJCSAg ICBmYW1pbHktPnBvbGljeSwgdmFsaWRhdGUsIGV4dGFjayk7CiAJaWYgKGVycikgewotCQlpZiAo ZmFtaWx5LT5wYXJhbGxlbF9vcHMpCi0JCQlrZnJlZShhdHRyYnVmKTsKKwkJa2ZyZWUoYXR0cmJ1 Zik7CiAJCXJldHVybiBFUlJfUFRSKGVycik7CiAJfQogCXJldHVybiBhdHRyYnVmOwogfQogCi1z dGF0aWMgdm9pZCBnZW5sX2ZhbWlseV9yY3ZfbXNnX2F0dHJzX2ZyZWUoY29uc3Qgc3RydWN0IGdl bmxfZmFtaWx5ICpmYW1pbHksCi0JCQkJCSAgIHN0cnVjdCBubGF0dHIgKiphdHRyYnVmKQorc3Rh dGljIHZvaWQgZ2VubF9mYW1pbHlfcmN2X21zZ19hdHRyc19mcmVlKHN0cnVjdCBubGF0dHIgKiph dHRyYnVmKQogewotCWlmIChmYW1pbHktPnBhcmFsbGVsX29wcykKLQkJa2ZyZWUoYXR0cmJ1Zik7 CisJa2ZyZWUoYXR0cmJ1Zik7CiB9CiAKIHN0cnVjdCBnZW5sX3N0YXJ0X2NvbnRleHQgewpAQCAt NTQyLDcgKzUyMCw3IEBAIHN0YXRpYyBpbnQgZ2VubF9zdGFydChzdHJ1Y3QgbmV0bGlua19jYWxs YmFjayAqY2IpCiBub19hdHRyczoKIAlpbmZvID0gZ2VubF9kdW1waXRfaW5mb19hbGxvYygpOwog CWlmICghaW5mbykgewotCQlnZW5sX2ZhbWlseV9yY3ZfbXNnX2F0dHJzX2ZyZWUoY3R4LT5mYW1p bHksIGF0dHJzKTsKKwkJZ2VubF9mYW1pbHlfcmN2X21zZ19hdHRyc19mcmVlKGF0dHJzKTsKIAkJ cmV0dXJuIC1FTk9NRU07CiAJfQogCWluZm8tPmZhbWlseSA9IGN0eC0+ZmFtaWx5OwpAQCAtNTU5 LDcgKzUzNyw3IEBAIHN0YXRpYyBpbnQgZ2VubF9zdGFydChzdHJ1Y3QgbmV0bGlua19jYWxsYmFj ayAqY2IpCiAJfQogCiAJaWYgKHJjKSB7Ci0JCWdlbmxfZmFtaWx5X3Jjdl9tc2dfYXR0cnNfZnJl ZShpbmZvLT5mYW1pbHksIGluZm8tPmF0dHJzKTsKKwkJZ2VubF9mYW1pbHlfcmN2X21zZ19hdHRy c19mcmVlKGluZm8tPmF0dHJzKTsKIAkJZ2VubF9kdW1waXRfaW5mb19mcmVlKGluZm8pOwogCQlj Yi0+ZGF0YSA9IE5VTEw7CiAJfQpAQCAtNTg4LDcgKzU2Niw3IEBAIHN0YXRpYyBpbnQgZ2VubF9s b2NrX2RvbmUoc3RydWN0IG5ldGxpbmtfY2FsbGJhY2sgKmNiKQogCQlyYyA9IG9wcy0+ZG9uZShj Yik7CiAJCWdlbmxfdW5sb2NrKCk7CiAJfQotCWdlbmxfZmFtaWx5X3Jjdl9tc2dfYXR0cnNfZnJl ZShpbmZvLT5mYW1pbHksIGluZm8tPmF0dHJzKTsKKwlnZW5sX2ZhbWlseV9yY3ZfbXNnX2F0dHJz X2ZyZWUoaW5mby0+YXR0cnMpOwogCWdlbmxfZHVtcGl0X2luZm9fZnJlZShpbmZvKTsKIAlyZXR1 cm4gcmM7CiB9CkBAIC02MDEsNyArNTc5LDcgQEAgc3RhdGljIGludCBnZW5sX3BhcmFsbGVsX2Rv bmUoc3RydWN0IG5ldGxpbmtfY2FsbGJhY2sgKmNiKQogCiAJaWYgKG9wcy0+ZG9uZSkKIAkJcmMg PSBvcHMtPmRvbmUoY2IpOwotCWdlbmxfZmFtaWx5X3Jjdl9tc2dfYXR0cnNfZnJlZShpbmZvLT5m YW1pbHksIGluZm8tPmF0dHJzKTsKKwlnZW5sX2ZhbWlseV9yY3ZfbXNnX2F0dHJzX2ZyZWUoaW5m by0+YXR0cnMpOwogCWdlbmxfZHVtcGl0X2luZm9fZnJlZShpbmZvKTsKIAlyZXR1cm4gcmM7CiB9 CkBAIC02OTQsNyArNjcyLDcgQEAgc3RhdGljIGludCBnZW5sX2ZhbWlseV9yY3ZfbXNnX2RvaXQo Y29uc3Qgc3RydWN0IGdlbmxfZmFtaWx5ICpmYW1pbHksCiAJCWZhbWlseS0+cG9zdF9kb2l0KG9w cywgc2tiLCAmaW5mbyk7CiAKIG91dDoKLQlnZW5sX2ZhbWlseV9yY3ZfbXNnX2F0dHJzX2ZyZWUo ZmFtaWx5LCBhdHRyYnVmKTsKKwlnZW5sX2ZhbWlseV9yY3ZfbXNnX2F0dHJzX2ZyZWUoYXR0cmJ1 Zik7CiAKIAlyZXR1cm4gZXJyOwogfQotLSAKMi4yNi4yCgoKRnJvbSA1MzQ1ODRlYjU0MjdiZmU4 MTEzMjZjMGY3ZTJhOGNhZjE5YTFjMDE2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBN aWFvaGUgTGluIDxsaW5taWFvaGVAaHVhd2VpLmNvbT4KRGF0ZTogU2F0LCAyNyBKdW4gMjAyMCAx NTo0Nzo1MSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMzYvNDRdIG5ldDogaXB2NDogRml4IHdyb25n IHR5cGUgY29udmVyc2lvbiBmcm9tIGhpbnQgdG8gcnQgaW4KIGlwX3JvdXRlX3VzZV9oaW50KCkK ClsgVXBzdHJlYW0gY29tbWl0IDJjZTU3OGNhOTQ0NGJiNDRkYTY2YjlhNDk0ZjU2ZTdlYzEyZTY0 NjYgXQoKV2UgY2FuJ3QgY2FzdCBza19idWZmIHRvIHJ0YWJsZSBieSAoc3RydWN0IHJ0YWJsZSAq KWhpbnQuIFVzZSBza2JfcnRhYmxlKCkuCgpGaXhlczogMDJiMjQ5NDE2MTlmICgiaXB2NDogdXNl IGRzdCBoaW50IGZvciBpcHY0IGxpc3QgcmVjZWl2ZSIpClNpZ25lZC1vZmYtYnk6IE1pYW9oZSBM aW4gPGxpbm1pYW9oZUBodWF3ZWkuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvcm91dGUuYyB8IDIgKy0KIDEgZmls ZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25l dC9pcHY0L3JvdXRlLmMgYi9uZXQvaXB2NC9yb3V0ZS5jCmluZGV4IGI3M2Y1NDBmYTE5Yi4uYWJl MTJjYWYyNDUxIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9yb3V0ZS5jCisrKyBiL25ldC9pcHY0L3Jv dXRlLmMKQEAgLTIwMjcsNyArMjAyNyw3IEBAIGludCBpcF9yb3V0ZV91c2VfaGludChzdHJ1Y3Qg c2tfYnVmZiAqc2tiLCBfX2JlMzIgZGFkZHIsIF9fYmUzMiBzYWRkciwKIAkJICAgICAgY29uc3Qg c3RydWN0IHNrX2J1ZmYgKmhpbnQpCiB7CiAJc3RydWN0IGluX2RldmljZSAqaW5fZGV2ID0gX19p bl9kZXZfZ2V0X3JjdShkZXYpOwotCXN0cnVjdCBydGFibGUgKnJ0ID0gKHN0cnVjdCBydGFibGUg KiloaW50OworCXN0cnVjdCBydGFibGUgKnJ0ID0gc2tiX3J0YWJsZShoaW50KTsKIAlzdHJ1Y3Qg bmV0ICpuZXQgPSBkZXZfbmV0KGRldik7CiAJaW50IGVyciA9IC1FSU5WQUw7CiAJdTMyIHRhZyA9 IDA7Ci0tIAoyLjI2LjIKCgpGcm9tIDg3YmM5MzMzZmVkNjU4YmE2YzJlOWVkYmNkMTUyMGE5YjUy MTViYTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEF5YSBMZXZpbiA8YXlhbEBtZWxs YW5veC5jb20+CkRhdGU6IFdlZCwgMjQgSnVuIDIwMjAgMTk6MDQ6MDMgKzAzMDAKU3ViamVjdDog W1BBVENIIDM3LzQ0XSBuZXQvbWx4NWU6IEZpeCBWWExBTiBjb25maWd1cmF0aW9uIHJlc3RvcmUg YWZ0ZXIKIGZ1bmN0aW9uIHJlbG9hZAoKWyBVcHN0cmVhbSBjb21taXQgYjNjMmVkMjFjMGJkZjM1 YmE0OThhOTk3NGFhNTg3Zjk5YTAzYjY1OCBdCgpXaGVuIGRldGFjaGluZyBuZXRkZXYsIHJlbW92 ZSB2eGxhbiBwb3J0IGNvbmZpZ3VyYXRpb24gdXNpbmcKdWRwX3R1bm5lbF9kcm9wX3J4X2luZm8u IER1cmluZyBmdW5jdGlvbiByZWxvYWQsIGNvbmZpZ3VyYXRpb24gd2lsbCBiZQpyZXN0b3JlZCB1 c2luZyB1ZHBfdHVubmVsX2dldF9yeF9pbmZvLiBUaGlzIGVuc3VyZXMgc3luYyBiZXR3ZWVuCmZp cm13YXJlIGFuZCBkcml2ZXIuIFVzZSB1ZHBfdHVubmVsX2dldF9yeF9pbmZvIGV2ZW4gaWYgaXRz IHBoeXNpY2FsCmludGVyZmFjZSBpcyBkb3duLgoKRml4ZXM6IDQzODNjZmNjNjVlNyAoIm5ldC9t bHg1OiBBZGQgZGV2bGluayByZWxvYWQiKQpTaWduZWQtb2ZmLWJ5OiBBeWEgTGV2aW4gPGF5YWxA bWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogRXJhbiBCZW4gRWxpc2hhIDxlcmFuYmVAbWVsbGFu b3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNv bT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5j IHwgNyArKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29y ZS9lbl9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5f bWFpbi5jCmluZGV4IGJkOGQwZTA5NjA4NS4uMDJmNmI2YmQyODQ3IDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jCisrKyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMKQEAgLTMwNzYsOSAr MzA3Niw2IEBAIGludCBtbHg1ZV9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpCiAJCW1s eDVfc2V0X3BvcnRfYWRtaW5fc3RhdHVzKHByaXYtPm1kZXYsIE1MWDVfUE9SVF9VUCk7CiAJbXV0 ZXhfdW5sb2NrKCZwcml2LT5zdGF0ZV9sb2NrKTsKIAotCWlmIChtbHg1X3Z4bGFuX2FsbG93ZWQo cHJpdi0+bWRldi0+dnhsYW4pKQotCQl1ZHBfdHVubmVsX2dldF9yeF9pbmZvKG5ldGRldik7Ci0K IAlyZXR1cm4gZXJyOwogfQogCkBAIC01MjA3LDYgKzUyMDQsOCBAQCBzdGF0aWMgdm9pZCBtbHg1 ZV9uaWNfZW5hYmxlKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2KQogCXJ0bmxfbG9jaygpOwogCWlm IChuZXRpZl9ydW5uaW5nKG5ldGRldikpCiAJCW1seDVlX29wZW4obmV0ZGV2KTsKKwlpZiAobWx4 NV92eGxhbl9hbGxvd2VkKHByaXYtPm1kZXYtPnZ4bGFuKSkKKwkJdWRwX3R1bm5lbF9nZXRfcnhf aW5mbyhuZXRkZXYpOwogCW5ldGlmX2RldmljZV9hdHRhY2gobmV0ZGV2KTsKIAlydG5sX3VubG9j aygpOwogfQpAQCAtNTIyMyw2ICs1MjIyLDggQEAgc3RhdGljIHZvaWQgbWx4NWVfbmljX2Rpc2Fi bGUoc3RydWN0IG1seDVlX3ByaXYgKnByaXYpCiAJcnRubF9sb2NrKCk7CiAJaWYgKG5ldGlmX3J1 bm5pbmcocHJpdi0+bmV0ZGV2KSkKIAkJbWx4NWVfY2xvc2UocHJpdi0+bmV0ZGV2KTsKKwlpZiAo bWx4NV92eGxhbl9hbGxvd2VkKHByaXYtPm1kZXYtPnZ4bGFuKSkKKwkJdWRwX3R1bm5lbF9kcm9w X3J4X2luZm8ocHJpdi0+bmV0ZGV2KTsKIAluZXRpZl9kZXZpY2VfZGV0YWNoKHByaXYtPm5ldGRl dik7CiAJcnRubF91bmxvY2soKTsKIAotLSAKMi4yNi4yCgoKRnJvbSA3Mzc1MjM1NmRiMGMyZGIx OGU2ZGY2NjdkZWMxMzc1NGRhMjZkMDNlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBB eWEgTGV2aW4gPGF5YWxAbWVsbGFub3guY29tPgpEYXRlOiBXZWQsIDIwIE1heSAyMDIwIDEwOjM3 OjQyICswMzAwClN1YmplY3Q6IFtQQVRDSCAzOC80NF0gbmV0L21seDVlOiBGaXggQ1BVIG1hcHBp bmcgYWZ0ZXIgZnVuY3Rpb24gcmVsb2FkIHRvCiBhdm9pZCBhUkZTIFJYIGNyYXNoCgpbIFVwc3Ry ZWFtIGNvbW1pdCBmNGFlYmJmYjU2ZWQwYzE4NmFkYmViMjc5OWRmODM2ZGE1MGY3OGUzIF0KCkFm dGVyIGZ1bmN0aW9uIHJlbG9hZCwgQ1BVIG1hcHBpbmcgdXNlZCBieSBhUkZTIFJYIGlzIGJyb2tl biwgbGVhZGluZyB0bwphIGtlcm5lbCBwYW5pYy4gRml4IGJ5IG1vdmluZyBpbml0aWFsaXphdGlv biBvZiByeF9jcHVfcm1hcCBmcm9tCm5ldGRldl9pbml0IHRvIG5ldGRldl9hdHRhY2guIElSUSB0 YWJsZSBpcyByZS1hbGxvY2F0ZWQgb24gbWx4NV9sb2FkLApidXQgbmV0ZGV2IGlzIG5vdCByZS1p bml0aWFsaXplLgoKVHJhY2Ugb2YgdGhlIHBhbmljOgpbIDIyLjA1NTY3Ml0gZ2VuZXJhbCBwcm90 ZWN0aW9uIGZhdWx0LCBwcm9iYWJseSBmb3Igbm9uLWNhbm9uaWNhbCBhZGRyZXNzIDB4Nzg1NjM0 MTIwMDAwZmYxYzogMDAwMCBbIzFdIFNNUCBQVEkKWyAyMi4wNjUwMTBdIENQVTogNCBQSUQ6IDAg Q29tbTogc3dhcHBlci80IE5vdCB0YWludGVkIDUuNy4wLXJjMi1mb3ItdXBzdHJlYW0tcGVyZi0y MDIwLTA0LTIxXzE2LTM0LTAzLTMxICMxClsgMjIuMDY3OTY3XSBIYXJkd2FyZSBuYW1lOiBRRU1V IFN0YW5kYXJkIFBDIChRMzUgKyBJQ0g5LCAyMDA5KSwgQklPUyByZWwtMS4xMi4xLTAtZ2E1Y2Fi NThlOWEzZi1wcmVidWlsdC5xZW11Lm9yZyAwNC8wMS8yMDE0ClsgMjIuMDcxMTc0XSBSSVA6IDAw MTA6Z2V0X3Jwc19jcHUrMHgyNjcvMHgzMDAKWyAyMi4wNzU2OTJdIFJTUDogMDAxODpmZmZmYzkw MDAwMjQ0ZDYwIEVGTEFHUzogMDAwMTAyMDIKWyAyMi4wNzY4ODhdIFJBWDogZmZmZjg4ODQ1OWIw ZTQwMCBSQlg6IDAwMDAwMDAwMDAwMDAwMDAgUkNYOjAwMDAwMDAwMDAwMDAwMDcKWyAyMi4wNzgz NjRdIFJEWDogMDAwMDAwMDAwMDAwODg4NCBSU0k6IGZmZmY4ODg0NjdjYjViMDAgUkRJOjAwMDAw MDAwMDAwMDAwMDAKWyAyMi4wNzk4MTVdIFJCUDogMDAwMDAwMDBmZjM0MmIyNyBSMDg6IDAwMDAw MDAwMDAwMDAwMDcgUjA5OjAwMDAwMDAwMDAwMDAwMDMKWyAyMi4wODEyODldIFIxMDogZmZmZmZm ZmZmZmZmZmZmZiBSMTE6IDAwMDAwMDAwMDAwMDcwY2MgUjEyOmZmZmY4ODg0NTQ5MDAwMDAKWyAy Mi4wODI3NjddIFIxMzogZmZmZmM5MDAwMGU1YTk1MCBSMTQ6IGZmZmZjOTAwMDAyNDRkYzAgUjE1 OjAwMDAwMDAwMDAwMDAwMDcKWyAyMi4wODQxOTBdIEZTOiAwMDAwMDAwMDAwMDAwMDAwKDAwMDAp IEdTOmZmZmY4ODg0NmZjODAwMDAoMDAwMClrbmxHUzowMDAwMDAwMDAwMDAwMDAwClsgMjIuMDg2 MTYxXSBDUzogMDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAwMzMKWyAy Mi4wODc0MjddIENSMjogZmZmZmZmZmZmZmZmZmZmZiBDUjM6IDAwMDAwMDA0NjQ0MjYwMDMgQ1I0 OjAwMDAwMDAwMDA3NjBlZTAKWyAyMi4wODg4ODhdIERSMDogMDAwMDAwMDAwMDAwMDAwMCBEUjE6 IDAwMDAwMDAwMDAwMDAwMDAgRFIyOjAwMDAwMDAwMDAwMDAwMDAKWyAyMi4wOTAzMzZdIERSMzog MDAwMDAwMDAwMDAwMDAwMCBEUjY6IDAwMDAwMDAwZmZmZTBmZjAgRFI3OjAwMDAwMDAwMDAwMDA0 MDAKWyAyMi4wOTE3NjRdIFBLUlU6IDU1NTU1NTU0ClsgMjIuMDkyNjE4XSBDYWxsIFRyYWNlOgpb IDIyLjA5MzQ0Ml0gPElSUT4KWyAyMi4wOTQyMTFdID8ga3ZtX2Nsb2NrX2dldF9jeWNsZXMrMHhk LzB4MTAKWyAyMi4wOTUyNzJdIG5ldGlmX3JlY2VpdmVfc2tiX2xpc3RfaW50ZXJuYWwrMHgyNTgv MHgyYTAKWyAyMi4wOTY0NjBdIGdyb19ub3JtYWxfbGlzdC5wYXJ0LjEzNysweDE5LzB4NDAKWyAy Mi4wOTc1NDddIG5hcGlfY29tcGxldGVfZG9uZSsweGM2LzB4MTEwClsgMjIuMDk4Njg1XSBtbHg1 ZV9uYXBpX3BvbGwrMHgxOTAvMHg2NzAgW21seDVfY29yZV0KWyAyMi4wOTk4NTldIG5ldF9yeF9h Y3Rpb24rMHgyYTAvMHg0MDAKWyAyMi4xMDA4NDhdIF9fZG9fc29mdGlycSsweGQ4LzB4MmE4Clsg MjIuMTAxODI5XSBpcnFfZXhpdCsweGE1LzB4YjAKWyAyMi4xMDI3NTBdIGRvX0lSUSsweDUyLzB4 ZDAKWyAyMi4xMDM2NTRdIGNvbW1vbl9pbnRlcnJ1cHQrMHhmLzB4ZgpbIDIyLjEwNDY0MV0gPC9J UlE+CgpGaXhlczogNDM4M2NmY2M2NWU3ICgibmV0L21seDU6IEFkZCBkZXZsaW5rIHJlbG9hZCIp ClNpZ25lZC1vZmYtYnk6IEF5YSBMZXZpbiA8YXlhbEBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5 OiBFcmFuIEJlbiBFbGlzaGEgPGVyYW5iZUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNh ZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMgfCA4ICsrKystLS0tCiAxIGZpbGUgY2hh bmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jCmluZGV4IDAyZjZiNmJkMjg0 Ny4uYmM1NDkxM2M1ODYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg1L2NvcmUvZW5fbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9lbl9tYWluLmMKQEAgLTUxMTksNiArNTExOSwxMCBAQCBzdGF0aWMgaW50IG1s eDVlX2luaXRfbmljX3J4KHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2KQogCWlmIChlcnIpCiAJCWdv dG8gZXJyX2Rlc3Ryb3lfZmxvd19zdGVlcmluZzsKIAorI2lmZGVmIENPTkZJR19NTFg1X0VOX0FS RlMKKwlwcml2LT5uZXRkZXYtPnJ4X2NwdV9ybWFwID0gIG1seDVfZXFfdGFibGVfZ2V0X3JtYXAo cHJpdi0+bWRldik7CisjZW5kaWYKKwogCXJldHVybiAwOwogCiBlcnJfZGVzdHJveV9mbG93X3N0 ZWVyaW5nOgpAQCAtNTI5NiwxMCArNTMwMCw2IEBAIGludCBtbHg1ZV9uZXRkZXZfaW5pdChzdHJ1 Y3QgbmV0X2RldmljZSAqbmV0ZGV2LAogCS8qIG5ldGRldiBpbml0ICovCiAJbmV0aWZfY2Fycmll cl9vZmYobmV0ZGV2KTsKIAotI2lmZGVmIENPTkZJR19NTFg1X0VOX0FSRlMKLQluZXRkZXYtPnJ4 X2NwdV9ybWFwID0gIG1seDVfZXFfdGFibGVfZ2V0X3JtYXAobWRldik7Ci0jZW5kaWYKLQogCXJl dHVybiAwOwogCiBlcnJfZnJlZV9jcHVtYXNrOgotLSAKMi4yNi4yCgoKRnJvbSA0MmI2Y2Y0YmM5 ZTE5MWE2ZmQ3OGYyMDdhZTRiNWNkOWVjODQwMWIxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBNaWNoYWwgS3ViZWNlayA8bWt1YmVjZWtAc3VzZS5jej4KRGF0ZTogVGh1LCA5IEp1bCAy MDIwIDEyOjExOjUwICswMjAwClN1YmplY3Q6IFtQQVRDSCAzOS80NF0gZXRodG9vbDogZml4IGdl bmxtc2dfcHV0KCkgZmFpbHVyZSBoYW5kbGluZyBpbgogZXRobmxfZGVmYXVsdF9kdW1waXQoKQoK WyBVcHN0cmVhbSBjb21taXQgMzY1ZjlhZTRlZTM2MDM3ZTJhOTI2OGZlNzI5NjA2NTM1Njg0MGI0 YyBdCgpJZiB0aGUgZ2VubG1zZ19wdXQoKSBjYWxsIGluIGV0aG5sX2RlZmF1bHRfZHVtcGl0KCkg ZmFpbHMsIHdlIGJhaWwgb3V0CndpdGhvdXQgY2hlY2tpbmcgaWYgd2UgYWxyZWFkeSBoYXZlIHNv bWUgbWVzc2FnZXMgaW4gY3VycmVudCBza2IgbGlrZSB3ZSBkbwp3aXRoIGV0aG5sX2RlZmF1bHRf ZHVtcF9vbmUoKSBmYWlsdXJlIGxhdGVyLiBUaGVyZWZvcmUgaWYgZXhpc3RpbmcgbWVzc2FnZXMK YWxtb3N0IGZpbGwgdXAgdGhlIGJ1ZmZlciBzbyB0aGF0IHRoZXJlIGlzIG5vdCBlbm91Z2ggc3Bh Y2UgZXZlbiBmb3IKbmV0bGluayBhbmQgZ2VuZXRsaW5rIGhlYWRlciwgd2UgbG9zZSBhbGwgcHJl cGFyZWQgbWVzc2FnZXMgYW5kIHJldHVybiBhbmQKZXJyb3IuCgpSYXRoZXIgdGhhbiBkdXBsaWNh dGluZyB0aGUgc2tiLT5sZW4gY2hlY2ssIG1vdmUgdGhlIGdlbmxtc2dfcHV0KCksCmdlbmxtc2df Y2FuY2VsKCkgYW5kIGdlbmxtc2dfZW5kKCkgY2FsbHMgaW50byBldGhubF9kZWZhdWx0X2R1bXBf b25lKCkuClRoaXMgaXMgYWxzbyBtb3JlIGxvZ2ljYWwgYXMgYWxsIG1lc3NhZ2UgY29tcG9zaXRp b24gd2lsbCBiZSBpbgpldGhubF9kZWZhdWx0X2R1bXBfb25lKCkgYW5kIG9ubHkgaXRlcmF0aW9u IGxvZ2ljIHdpbGwgYmUgbGVmdCBpbgpldGhubF9kZWZhdWx0X2R1bXBpdCgpLgoKRml4ZXM6IDcy ODQ4MGYxMjQ0MiAoImV0aHRvb2w6IGRlZmF1bHQgaGFuZGxlcnMgZm9yIEdFVCByZXF1ZXN0cyIp ClJlcG9ydGVkLWJ5OiBKYWt1YiBLaWNpbnNraSA8a3ViYUBrZXJuZWwub3JnPgpTaWduZWQtb2Zm LWJ5OiBNaWNoYWwgS3ViZWNlayA8bWt1YmVjZWtAc3VzZS5jej4KUmV2aWV3ZWQtYnk6IEpha3Vi IEtpY2luc2tpIDxrdWJhQGtlcm5lbC5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvZXRodG9vbC9uZXRsaW5rLmMgfCAyNyAr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMyBpbnNlcnRpb25z KCspLCAxNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvZXRodG9vbC9uZXRsaW5rLmMg Yi9uZXQvZXRodG9vbC9uZXRsaW5rLmMKaW5kZXggZWQ1MzU3MjEwMTkzLi4wZjRlMmUxMDY3OTkg MTAwNjQ0Ci0tLSBhL25ldC9ldGh0b29sL25ldGxpbmsuYworKysgYi9uZXQvZXRodG9vbC9uZXRs aW5rLmMKQEAgLTM3NiwxMCArMzc2LDE3IEBAIHN0YXRpYyBpbnQgZXRobmxfZGVmYXVsdF9kb2l0 KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pCiB9CiAKIHN0YXRp YyBpbnQgZXRobmxfZGVmYXVsdF9kdW1wX29uZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qg bmV0X2RldmljZSAqZGV2LAotCQkJCSAgY29uc3Qgc3RydWN0IGV0aG5sX2R1bXBfY3R4ICpjdHgp CisJCQkJICBjb25zdCBzdHJ1Y3QgZXRobmxfZHVtcF9jdHggKmN0eCwKKwkJCQkgIHN0cnVjdCBu ZXRsaW5rX2NhbGxiYWNrICpjYikKIHsKKwl2b2lkICplaGRyOwogCWludCByZXQ7CiAKKwllaGRy ID0gZ2VubG1zZ19wdXQoc2tiLCBORVRMSU5LX0NCKGNiLT5za2IpLnBvcnRpZCwgY2ItPm5saC0+ bmxtc2dfc2VxLAorCQkJICAgJmV0aHRvb2xfZ2VubF9mYW1pbHksIDAsIGN0eC0+b3BzLT5yZXBs eV9jbWQpOworCWlmICghZWhkcikKKwkJcmV0dXJuIC1FTVNHU0laRTsKKwogCWV0aG5sX2luaXRf cmVwbHlfZGF0YShjdHgtPnJlcGx5X2RhdGEsIGN0eC0+b3BzLCBkZXYpOwogCXJ0bmxfbG9jaygp OwogCXJldCA9IGN0eC0+b3BzLT5wcmVwYXJlX2RhdGEoY3R4LT5yZXFfaW5mbywgY3R4LT5yZXBs eV9kYXRhLCBOVUxMKTsKQEAgLTM5NSw2ICs0MDIsMTAgQEAgc3RhdGljIGludCBldGhubF9kZWZh dWx0X2R1bXBfb25lKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYs CiAJaWYgKGN0eC0+b3BzLT5jbGVhbnVwX2RhdGEpCiAJCWN0eC0+b3BzLT5jbGVhbnVwX2RhdGEo Y3R4LT5yZXBseV9kYXRhKTsKIAljdHgtPnJlcGx5X2RhdGEtPmRldiA9IE5VTEw7CisJaWYgKHJl dCA8IDApCisJCWdlbmxtc2dfY2FuY2VsKHNrYiwgZWhkcik7CisJZWxzZQorCQlnZW5sbXNnX2Vu ZChza2IsIGVoZHIpOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTQxMSw3ICs0MjIsNiBAQCBzdGF0 aWMgaW50IGV0aG5sX2RlZmF1bHRfZHVtcGl0KHN0cnVjdCBza19idWZmICpza2IsCiAJaW50IHNf aWR4ID0gY3R4LT5wb3NfaWR4OwogCWludCBoLCBpZHggPSAwOwogCWludCByZXQgPSAwOwotCXZv aWQgKmVoZHI7CiAKIAlydG5sX2xvY2soKTsKIAlmb3IgKGggPSBjdHgtPnBvc19oYXNoOyBoIDwg TkVUREVWX0hBU0hFTlRSSUVTOyBoKyssIHNfaWR4ID0gMCkgewpAQCAtNDMxLDI2ICs0NDEsMTUg QEAgc3RhdGljIGludCBldGhubF9kZWZhdWx0X2R1bXBpdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAog CQkJZGV2X2hvbGQoZGV2KTsKIAkJCXJ0bmxfdW5sb2NrKCk7CiAKLQkJCWVoZHIgPSBnZW5sbXNn X3B1dChza2IsIE5FVExJTktfQ0IoY2ItPnNrYikucG9ydGlkLAotCQkJCQkgICBjYi0+bmxoLT5u bG1zZ19zZXEsCi0JCQkJCSAgICZldGh0b29sX2dlbmxfZmFtaWx5LCAwLAotCQkJCQkgICBjdHgt Pm9wcy0+cmVwbHlfY21kKTsKLQkJCWlmICghZWhkcikgewotCQkJCWRldl9wdXQoZGV2KTsKLQkJ CQlyZXQgPSAtRU1TR1NJWkU7Ci0JCQkJZ290byBvdXQ7Ci0JCQl9Ci0JCQlyZXQgPSBldGhubF9k ZWZhdWx0X2R1bXBfb25lKHNrYiwgZGV2LCBjdHgpOworCQkJcmV0ID0gZXRobmxfZGVmYXVsdF9k dW1wX29uZShza2IsIGRldiwgY3R4LCBjYik7CiAJCQlkZXZfcHV0KGRldik7CiAJCQlpZiAocmV0 IDwgMCkgewotCQkJCWdlbmxtc2dfY2FuY2VsKHNrYiwgZWhkcik7CiAJCQkJaWYgKHJldCA9PSAt RU9QTk9UU1VQUCkKIAkJCQkJZ290byBsb2NrX2FuZF9jb250OwogCQkJCWlmIChsaWtlbHkoc2ti LT5sZW4pKQogCQkJCQlyZXQgPSBza2ItPmxlbjsKIAkJCQlnb3RvIG91dDsKIAkJCX0KLQkJCWdl bmxtc2dfZW5kKHNrYiwgZWhkcik7CiBsb2NrX2FuZF9jb250OgogCQkJcnRubF9sb2NrKCk7CiAJ CQlpZiAobmV0LT5kZXZfYmFzZV9zZXEgIT0gc2VxKSB7Ci0tIAoyLjI2LjIKCgpGcm9tIDJmNzMy NTUzZGE5MzNmN2FkMzBhNzliMDliYTJkZTdjYTY0Y2M2ZWQgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IFBhb2xvIEFiZW5pIDxwYWJlbmlAcmVkaGF0LmNvbT4KRGF0ZTogRnJpLCAzIEp1 bCAyMDIwIDE4OjA2OjA0ICswMjAwClN1YmplY3Q6IFtQQVRDSCA0MC80NF0gbXB0Y3A6IGZpeCBE U1MgbWFwIGdlbmVyYXRpb24gb24gZmluIHJldHJhbnNtaXNzaW9uCgpbIFVwc3RyZWFtIGNvbW1p dCA5YzI5ZTM2MTUyNzQ4ZmQ2MjNmY2ZmNmNjOGY1Mzg1NTBmOWVlYWZjIF0KClRoZSBSRkMgODY4 NCBtYW5kYXRlcyB0aGF0IG5vLWRhdGEgREFUQSBGSU4gcGFja2V0cyBzaG91bGQgY2FycnkKYSBE U1Mgd2l0aCAwIHNlcXVlbmNlIG51bWJlciBhbmQgZGF0YSBsZW4gZXF1YWwgdG8gMS4gQ3VycmVu dGx5LApvbiBGSU4gcmV0cmFuc21pc3Npb24gd2UgcmUtdXNlIHRoZSBleGlzdGluZyBtYXBwaW5n OyBpZiB0aGUgcHJldmlvdXMKZmluIHRyYW5zbWlzc2lvbiB3YXMgcGFydCBvZiBhIHBhcnRpYWxs eSBhY2tlZCBkYXRhIHBhY2tldCwgd2UgY291bGQKZW5kLXVwIHdyaXRpbmcgaW4gdGhlIGVncmVz cyBwYWNrZXQgYSBub24tY29tcGxpYW50IERTUy4KClRoZSBhYm92ZSB3aWxsIGJlIGRldGVjdGVk IGJ5IGEgIkJhZCBtYXBwaW5nIiB3YXJuaW5nIG9uIHRoZSByZWNlaXZlcgpzaWRlLgoKVGhpcyBj aGFuZ2UgYWRkcmVzc2VzIHRoZSBpc3N1ZSBleHBsaWNpdGx5IGNoZWNraW5nIGZvciAwIGxlbiBw YWNrZXQKd2hlbiBhZGRpbmcgdGhlIERBVEFfRklOIG9wdGlvbi4KCkZpeGVzOiA2ZDAwNjBmNjAw YWQgKCJtcHRjcDogV3JpdGUgTVBUQ1AgRFNTIGhlYWRlcnMgdG8gb3V0Z29pbmcgZGF0YSBwYWNr ZXRzIikKUmVwb3J0ZWQtYnk6IHN5emJvdCs0MmEwN2ZhYTU5MjNjZmFlYjljOUBzeXprYWxsZXIu YXBwc3BvdG1haWwuY29tClRlc3RlZC1ieTogQ2hyaXN0b3BoIFBhYXNjaCA8Y3BhYXNjaEBhcHBs ZS5jb20+ClJldmlld2VkLWJ5OiBDaHJpc3RvcGggUGFhc2NoIDxjcGFhc2NoQGFwcGxlLmNvbT4K UmV2aWV3ZWQtYnk6IE1hdCBNYXJ0aW5lYXUgPG1hdGhldy5qLm1hcnRpbmVhdUBsaW51eC5pbnRl bC5jb20+ClNpZ25lZC1vZmYtYnk6IFBhb2xvIEFiZW5pIDxwYWJlbmlAcmVkaGF0LmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5l dC9tcHRjcC9vcHRpb25zLmMgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9u cygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvbXB0Y3Avb3B0aW9ucy5jIGIv bmV0L21wdGNwL29wdGlvbnMuYwppbmRleCAyNDMwYmJmYTM0MDUuLjJiM2VkMGM1MTk5ZCAxMDA2 NDQKLS0tIGEvbmV0L21wdGNwL29wdGlvbnMuYworKysgYi9uZXQvbXB0Y3Avb3B0aW9ucy5jCkBA IC00NDksOSArNDQ5LDkgQEAgc3RhdGljIGJvb2wgbXB0Y3BfZXN0YWJsaXNoZWRfb3B0aW9uc19t cChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IsCiB9CiAKIHN0YXRpYyB2b2lk IG1wdGNwX3dyaXRlX2RhdGFfZmluKHN0cnVjdCBtcHRjcF9zdWJmbG93X2NvbnRleHQgKnN1YmZs b3csCi0JCQkJIHN0cnVjdCBtcHRjcF9leHQgKmV4dCkKKwkJCQkgc3RydWN0IHNrX2J1ZmYgKnNr Yiwgc3RydWN0IG1wdGNwX2V4dCAqZXh0KQogewotCWlmICghZXh0LT51c2VfbWFwKSB7CisJaWYg KCFleHQtPnVzZV9tYXAgfHwgIXNrYi0+bGVuKSB7CiAJCS8qIFJGQzY4MjQgcmVxdWlyZXMgYSBE U1MgbWFwcGluZyB3aXRoIHNwZWNpZmljIHZhbHVlcwogCQkgKiBpZiBEQVRBX0ZJTiBpcyBzZXQg YnV0IG5vIGRhdGEgcGF5bG9hZCBpcyBtYXBwZWQKIAkJICovCkBAIC01MDMsNyArNTAzLDcgQEAg c3RhdGljIGJvb2wgbXB0Y3BfZXN0YWJsaXNoZWRfb3B0aW9uc19kc3Moc3RydWN0IHNvY2sgKnNr LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJb3B0cy0+ZXh0X2NvcHkgPSAqbXBleHQ7CiAKIAkJ aWYgKHNrYiAmJiB0Y3BfZmluICYmIHN1YmZsb3ctPmRhdGFfZmluX3R4X2VuYWJsZSkKLQkJCW1w dGNwX3dyaXRlX2RhdGFfZmluKHN1YmZsb3csICZvcHRzLT5leHRfY29weSk7CisJCQltcHRjcF93 cml0ZV9kYXRhX2ZpbihzdWJmbG93LCBza2IsICZvcHRzLT5leHRfY29weSk7CiAJCXJldCA9IHRy dWU7CiAJfQogCi0tIAoyLjI2LjIKCgpGcm9tIGE0NmY3Yjc3NjEzNTA3NjFmYmU2ZGQxOTg3Y2M5 Mzg4YTIzODk5NDkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFRhZWhlZSBZb28gPGFw NDIwMDczQGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAyIEp1bCAyMDIwIDE3OjA4OjE4ICswMDAwClN1 YmplY3Q6IFtQQVRDSCA0MS80NF0gbmV0OiBybW5ldDogZml4IGxvd2VyIGludGVyZmFjZSBsZWFr CgpbIFVwc3RyZWFtIGNvbW1pdCAyYTc2MmU5ZThjZDFjZjEyNDJlNDI2OWEyMjQ0NjY2ZWQwMmVl Y2QxIF0KClRoZXJlIGFyZSB0d28gdHlwZXMgb2YgdGhlIGxvd2VyIGludGVyZmFjZSBvZiBybW5l dCB0aGF0IGFyZSBWTkQKYW5kIEJSSURHRS4KRWFjaCBsb3dlciBpbnRlcmZhY2UgY2FuIGhhdmUg b25seSBvbmUgdHlwZSBlaXRoZXIgVk5EIG9yIEJSSURHRS4KQnV0LCB0aGVyZSBpcyBhIGNhc2Us IHdoaWNoIHVzZXMgYm90aCBsb3dlciBpbnRlcmZhY2UgdHlwZXMuCkR1ZSB0byB0aGlzIHVuZXhw ZWN0ZWQgYmVoYXZpb3IsIGxvd2VyIGludGVyZmFjZSBsZWFrIG9jY3Vycy4KClRlc3QgY29tbWFu ZHM6CiAgICBpcCBsaW5rIGFkZCBkdW1teTAgdHlwZSBkdW1teQogICAgaXAgbGluayBhZGQgZHVt bXkxIHR5cGUgZHVtbXkKICAgIGlwIGxpbmsgYWRkIHJtbmV0MCBsaW5rIGR1bW15MCB0eXBlIHJt bmV0IG11eF9pZCAxCiAgICBpcCBsaW5rIHNldCBkdW1teTEgbWFzdGVyIHJtbmV0MAogICAgaXAg bGluayBhZGQgcm1uZXQxIGxpbmsgZHVtbXkxIHR5cGUgcm1uZXQgbXV4X2lkIDIKICAgIGlwIGxp bmsgZGVsIHJtbmV0MAoKVGhlIGR1bW15MSB3YXMgYXR0YWNoZWQgYXMgQlJJREdFIGludGVyZmFj ZSBvZiBybW5ldDAuClRoZW4sIGl0IGFsc28gd2FzIGF0dGFjaGVkIGFzIFZORCBpbnRlcmZhY2Ug b2Ygcm1uZXQxLgpUaGlzIGlzIHVuZXhwZWN0ZWQgYmVoYXZpb3IgYW5kIHRoZXJlIGlzIG5vIGNv ZGUgZm9yIGhhbmRsaW5nIHRoaXMgY2FzZS4KU28gdGhhdCBiZWxvdyBzcGxhdCBvY2N1cnMgd2hl biB0aGUgcm1uZXQwIGludGVyZmFjZSBpcyBkZWxldGVkLgoKU3BsYXQgbG9va3MgbGlrZToKWyAg IDUzLjI1NDExMl1bICAgIEMxXSBXQVJOSU5HOiBDUFU6IDEgUElEOiAxMTkyIGF0IG5ldC9jb3Jl L2Rldi5jOjg5OTIgcm9sbGJhY2tfcmVnaXN0ZXJlZF9tYW55KzB4OTg2LzB4Y2YwClsgICA1My4y NTQxMTddWyAgICBDMV0gTW9kdWxlcyBsaW5rZWQgaW46IHJtbmV0IGR1bW15IG9wZW52c3dpdGNo IG5zaCBuZl9jb25uY291bnQgbmZfbmF0IG5mX2Nvbm50cmFjayBuZl9kZWZyYWdfaXB2NiBuZngK WyAgIDUzLjI1NDE4Ml1bICAgIEMxXSBDUFU6IDEgUElEOiAxMTkyIENvbW06IGlwIE5vdCB0YWlu dGVkIDUuOC4wLXJjMSsgIzYyMApbICAgNTMuMjU0MTg4XVsgICAgQzFdIEhhcmR3YXJlIG5hbWU6 IGlubm90ZWsgR21iSCBWaXJ0dWFsQm94L1ZpcnR1YWxCb3gsIEJJT1MgVmlydHVhbEJveCAxMi8w MS8yMDA2ClsgICA1My4yNTQxOTJdWyAgICBDMV0gUklQOiAwMDEwOnJvbGxiYWNrX3JlZ2lzdGVy ZWRfbWFueSsweDk4Ni8weGNmMApbICAgNTMuMjU0MjAwXVsgICAgQzFdIENvZGU6IDQxIDhiIDRl IGNjIDQ1IDMxIGMwIDMxIGQyIDRjIDg5IGVlIDQ4IDg5IGRmIGU4IGUwIDQ3IGZmIGZmIDg1IGMw IDBmIDg0IGNkIGZjIGZmIGZmIDBmIDBiIGU1ClsgICA1My4yNTQyMDVdWyAgICBDMV0gUlNQOiAw MDE4OmZmZmY4ODgwNTBhNWYyZTAgRUZMQUdTOiAwMDAxMDI4NwpbICAgNTMuMjU0MjE0XVsgICAg QzFdIFJBWDogZmZmZjg4ODA1NzU2ZDY1OCBSQlg6IGZmZmY4ODgwNGQ5OWMwMDAgUkNYOiBmZmZm ZmZmZjgzMjlkMzIzClsgICA1My4yNTQyMTldWyAgICBDMV0gUkRYOiAxZmZmZmZmZmYwYmU2NDEw IFJTSTogMDAwMDAwMDAwMDAwMDAwOCBSREk6IGZmZmZmZmZmODVmMzIwODAKWyAgIDUzLjI1NDIy M11bICAgIEMxXSBSQlA6IGRmZmZmYzAwMDAwMDAwMDAgUjA4OiBmZmZmZmJmZmYwYmU2NDExIFIw OTogZmZmZmZiZmZmMGJlNjQxMQpbICAgNTMuMjU0MjI4XVsgICAgQzFdIFIxMDogZmZmZmZmZmY4 NWYzMjA4NyBSMTE6IDAwMDAwMDAwMDAwMDAwMDEgUjEyOiBmZmZmODg4MDUwYTVmNDgwClsgICA1 My4yNTQyMzNdWyAgICBDMV0gUjEzOiBmZmZmODg4MDRkOTljMGI4IFIxNDogZmZmZjg4ODA1MGE1 ZjQwMCBSMTU6IGZmZmY4ODgwNTQ4ZWJlNDAKWyAgIDUzLjI1NDIzOF1bICAgIEMxXSBGUzogIDAw MDA3ZjZiODZiMzcwYzAoMDAwMCkgR1M6ZmZmZjg4ODA2YzIwMDAwMCgwMDAwKSBrbmxHUzowMDAw MDAwMDAwMDAwMDAwClsgICA1My4yNTQyNDNdWyAgICBDMV0gQ1M6ICAwMDEwIERTOiAwMDAwIEVT OiAwMDAwIENSMDogMDAwMDAwMDA4MDA1MDAzMwpbICAgNTMuMjU0MjQ4XVsgICAgQzFdIENSMjog MDAwMDU2MmM2MjQzODc1OCBDUjM6IDAwMDAwMDAwM2Y2MDAwMDUgQ1I0OiAwMDAwMDAwMDAwMDYw NmUwClsgICA1My4yNTQyNTNdWyAgICBDMV0gRFIwOiAwMDAwMDAwMDAwMDAwMDAwIERSMTogMDAw MDAwMDAwMDAwMDAwMCBEUjI6IDAwMDAwMDAwMDAwMDAwMDAKWyAgIDUzLjI1NDI1N11bICAgIEMx XSBEUjM6IDAwMDAwMDAwMDAwMDAwMDAgRFI2OiAwMDAwMDAwMGZmZmUwZmYwIERSNzogMDAwMDAw MDAwMDAwMDQwMApbICAgNTMuMjU0MjYxXVsgICAgQzFdIENhbGwgVHJhY2U6ClsgICA1My4yNTQy NjZdWyAgICBDMV0gID8gbG9ja2RlcF9oYXJkaXJxc19vbl9wcmVwYXJlKzB4Mzc5LzB4NTQwClsg ICA1My4yNTQyNzBdWyAgICBDMV0gID8gbmV0aWZfc2V0X3JlYWxfbnVtX3R4X3F1ZXVlcysweDc4 MC8weDc4MApbICAgNTMuMjU0Mjc1XVsgICAgQzFdICA/IHJtbmV0X3VucmVnaXN0ZXJfcmVhbF9k ZXZpY2UrMHg1Ni8weDkwIFtybW5ldF0KWyAgIDUzLjI1NDI3OV1bICAgIEMxXSAgPyBfX2thc2Fu X3NsYWJfZnJlZSsweDEyNi8weDE1MApbICAgNTMuMjU0MjgzXVsgICAgQzFdICA/IGtmcmVlKzB4 ZGMvMHgzMjAKWyAgIDUzLjI1NDI4OF1bICAgIEMxXSAgPyBybW5ldF91bnJlZ2lzdGVyX3JlYWxf ZGV2aWNlKzB4NTYvMHg5MCBbcm1uZXRdClsgICA1My4yNTQyOTNdWyAgICBDMV0gIHVucmVnaXN0 ZXJfbmV0ZGV2aWNlX21hbnkucGFydC4xMzUrMHgxMy8weDFiMApbICAgNTMuMjU0Mjk3XVsgICAg QzFdICBydG5sX2RlbGV0ZV9saW5rKzB4YmMvMHgxMDAKWyAgIDUzLjI1NDMwMV1bICAgIEMxXSAg PyBydG5sX2FmX3JlZ2lzdGVyKzB4YzAvMHhjMApbICAgNTMuMjU0MzA1XVsgICAgQzFdICBydG5s X2RlbGxpbmsrMHgyZGMvMHg4NDAKWyAgIDUzLjI1NDMwOV1bICAgIEMxXSAgPyBmaW5kX2hlbGRf bG9jaysweDM5LzB4MWQwClsgICA1My4yNTQzMTRdWyAgICBDMV0gID8gdmFsaWRfZmRiX2R1bXBf c3RyaWN0KzB4NjIwLzB4NjIwClsgICA1My4yNTQzMThdWyAgICBDMV0gID8gcnRuZXRsaW5rX3Jj dl9tc2crMHg0NTcvMHg4OTAKWyAgIDUzLjI1NDMyMl1bICAgIEMxXSAgPyBsb2NrX2NvbnRlbmRl ZCsweGQyMC8weGQyMApbICAgNTMuMjU0MzI2XVsgICAgQzFdICBydG5ldGxpbmtfcmN2X21zZysw eDRhOC8weDg5MApbIC4uLiBdClsgICA3My44MTM2OTZdWyBUMTE5Ml0gdW5yZWdpc3Rlcl9uZXRk ZXZpY2U6IHdhaXRpbmcgZm9yIHJtbmV0MCB0byBiZWNvbWUgZnJlZS4gVXNhZ2UgY291bnQgPSAx CgpGaXhlczogMDM3ZjljZGY3MmZiICgibmV0OiBybW5ldDogdXNlIHVwcGVyL2xvd2VyIGRldmlj ZSBpbmZyYXN0cnVjdHVyZSIpClNpZ25lZC1vZmYtYnk6IFRhZWhlZSBZb28gPGFwNDIwMDczQGdt YWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIC4uLi9ldGhlcm5ldC9xdWFsY29tbS9ybW5ldC9ybW5ldF9jb25maWcuYyAgICB8 IDIxICsrKysrKysrKysrLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCsp LCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3F1YWxj b21tL3JtbmV0L3JtbmV0X2NvbmZpZy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvcXVhbGNvbW0v cm1uZXQvcm1uZXRfY29uZmlnLmMKaW5kZXggNDBlZmU2MGVmZjhkLi4yYzhjMjUyYjdiOTcgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3F1YWxjb21tL3JtbmV0L3JtbmV0X2NvbmZp Zy5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3F1YWxjb21tL3JtbmV0L3JtbmV0X2NvbmZp Zy5jCkBAIC00NywxNSArNDcsMjMgQEAgc3RhdGljIGludCBybW5ldF91bnJlZ2lzdGVyX3JlYWxf ZGV2aWNlKHN0cnVjdCBuZXRfZGV2aWNlICpyZWFsX2RldikKIAlyZXR1cm4gMDsKIH0KIAotc3Rh dGljIGludCBybW5ldF9yZWdpc3Rlcl9yZWFsX2RldmljZShzdHJ1Y3QgbmV0X2RldmljZSAqcmVh bF9kZXYpCitzdGF0aWMgaW50IHJtbmV0X3JlZ2lzdGVyX3JlYWxfZGV2aWNlKHN0cnVjdCBuZXRf ZGV2aWNlICpyZWFsX2RldiwKKwkJCQkgICAgICBzdHJ1Y3QgbmV0bGlua19leHRfYWNrICpleHRh Y2spCiB7CiAJc3RydWN0IHJtbmV0X3BvcnQgKnBvcnQ7CiAJaW50IHJjLCBlbnRyeTsKIAogCUFT U0VSVF9SVE5MKCk7CiAKLQlpZiAocm1uZXRfaXNfcmVhbF9kZXZfcmVnaXN0ZXJlZChyZWFsX2Rl dikpCisJaWYgKHJtbmV0X2lzX3JlYWxfZGV2X3JlZ2lzdGVyZWQocmVhbF9kZXYpKSB7CisJCXBv cnQgPSBybW5ldF9nZXRfcG9ydF9ydG5sKHJlYWxfZGV2KTsKKwkJaWYgKHBvcnQtPnJtbmV0X21v ZGUgIT0gUk1ORVRfRVBNT0RFX1ZORCkgeworCQkJTkxfU0VUX0VSUl9NU0dfTU9EKGV4dGFjaywg ImJyaWRnZSBkZXZpY2UgYWxyZWFkeSBleGlzdHMiKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9 CisKIAkJcmV0dXJuIDA7CisJfQogCiAJcG9ydCA9IGt6YWxsb2Moc2l6ZW9mKCpwb3J0KSwgR0ZQ X0tFUk5FTCk7CiAJaWYgKCFwb3J0KQpAQCAtMTMzLDcgKzE0MSw3IEBAIHN0YXRpYyBpbnQgcm1u ZXRfbmV3bGluayhzdHJ1Y3QgbmV0ICpzcmNfbmV0LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAog CiAJbXV4X2lkID0gbmxhX2dldF91MTYoZGF0YVtJRkxBX1JNTkVUX01VWF9JRF0pOwogCi0JZXJy ID0gcm1uZXRfcmVnaXN0ZXJfcmVhbF9kZXZpY2UocmVhbF9kZXYpOworCWVyciA9IHJtbmV0X3Jl Z2lzdGVyX3JlYWxfZGV2aWNlKHJlYWxfZGV2LCBleHRhY2spOwogCWlmIChlcnIpCiAJCWdvdG8g ZXJyMDsKIApAQCAtNDIxLDExICs0MjksNiBAQCBpbnQgcm1uZXRfYWRkX2JyaWRnZShzdHJ1Y3Qg bmV0X2RldmljZSAqcm1uZXRfZGV2LAogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQlpZiAocG9y dC0+cm1uZXRfbW9kZSAhPSBSTU5FVF9FUE1PREVfVk5EKSB7Ci0JCU5MX1NFVF9FUlJfTVNHX01P RChleHRhY2ssICJicmlkZ2UgZGV2aWNlIGFscmVhZHkgZXhpc3RzIik7Ci0JCXJldHVybiAtRUlO VkFMOwotCX0KLQogCWlmIChybW5ldF9pc19yZWFsX2Rldl9yZWdpc3RlcmVkKHNsYXZlX2Rldikp IHsKIAkJTkxfU0VUX0VSUl9NU0dfTU9EKGV4dGFjaywKIAkJCQkgICAic2xhdmUgY2Fubm90IGJl IGFub3RoZXIgcm1uZXQgZGV2Iik7CkBAIC00MzMsNyArNDM2LDcgQEAgaW50IHJtbmV0X2FkZF9i cmlkZ2Uoc3RydWN0IG5ldF9kZXZpY2UgKnJtbmV0X2RldiwKIAkJcmV0dXJuIC1FQlVTWTsKIAl9 CiAKLQllcnIgPSBybW5ldF9yZWdpc3Rlcl9yZWFsX2RldmljZShzbGF2ZV9kZXYpOworCWVyciA9 IHJtbmV0X3JlZ2lzdGVyX3JlYWxfZGV2aWNlKHNsYXZlX2RldiwgZXh0YWNrKTsKIAlpZiAoZXJy KQogCQlyZXR1cm4gLUVCVVNZOwogCi0tIAoyLjI2LjIKCgpGcm9tIGQ0MzgzYTU3YWI0NWFiNjI2 MjRhMzhjYmU2MzU4MWJjNGViZjAwMmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFRh ZWhlZSBZb28gPGFwNDIwMDczQGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAyIEp1bCAyMDIwIDE3OjA4 OjU1ICswMDAwClN1YmplY3Q6IFtQQVRDSCA0Mi80NF0gbmV0OiBybW5ldDogZG8gbm90IGFsbG93 IHRvIGFkZCBtdWx0aXBsZSBicmlkZ2UKIGludGVyZmFjZXMKClsgVXBzdHJlYW0gY29tbWl0IDJm YjI3OTlhMmFiYjM5ZDdkYmI0OGFiYjNiYWExMTMzYmY1ZTkyMWEgXQoKcm1uZXQgY2FuIGhhdmUg b25seSB0d28gYnJpZGdlIGludGVyZmFjZS4KT25lIG9mIHRoZW0gaXMgYSBsaW5rIGludGVyZmFj ZSBhbmQgYW5vdGhlciBvbmUgaXMgYWRkZWQgYnkKdGhlIG1hc3RlciBvcGVyYXRpb24uCnJtbmV0 IGludGVyZmFjZSBzaG91bGRuJ3QgYWxsb3cgYWRkaW5nIGFkZGl0aW9uYWwKYnJpZGdlIGludGVy ZmFjZXMgYnkgbWF0ZXIgb3BlcmF0aW9uLgpCdXQsIHRoZXJlIGlzIG5vIGNvZGUgdG8gZGVueSBh ZGRpdGlvbmFsIGludGVyZmFjZXMuClNvLCBpbnRlcmZhY2UgbGVhayBvY2N1cnMuCgpUZXN0IGNv bW1hbmRzOgogICAgaXAgbGluayBhZGQgZHVtbXkwIHR5cGUgZHVtbXkKICAgIGlwIGxpbmsgYWRk IGR1bW15MSB0eXBlIGR1bW15CiAgICBpcCBsaW5rIGFkZCBkdW1teTIgdHlwZSBkdW1teQogICAg aXAgbGluayBhZGQgcm1uZXQwIGxpbmsgZHVtbXkwIHR5cGUgcm1uZXQgbXV4X2lkIDEKICAgIGlw IGxpbmsgc2V0IGR1bW15MSBtYXN0ZXIgcm1uZXQwCiAgICBpcCBsaW5rIHNldCBkdW1teTIgbWFz dGVyIHJtbmV0MAogICAgaXAgbGluayBkZWwgcm1uZXQwCgpJbiB0aGUgYWJvdmUgdGVzdCBjb21t YW5kLCB0aGUgZHVtbXkwIHdhcyBhdHRhY2hlZCB0byBybW5ldCBhcyBWTkQgbW9kZS4KVGhlbiwg ZHVtbXkxIHdhcyBhdHRhY2hlZCB0byBybW5ldDAgYXMgQlJJREdFIG1vZGUuCkF0IHRoaXMgcG9p bnQsIGR1bW15MCBtb2RlIGlzIHN3aXRjaGVkIGZyb20gVk5EIHRvIEJSSURHRSBhdXRvbWF0aWNh bGx5LgpUaGVuLCBkdW1teTIgaXMgYXR0YWNoZWQgdG8gcm1uZXQgYXMgQlJJREdFIG1vZGUuCkF0 IHRoaXMgcG9pbnQsIHJtbmV0MCBzaG91bGQgZGVueSB0aGlzIG9wZXJhdGlvbi4KQnV0LCBybW5l dDAgZG9lc24ndCBkZW55IHRoaXMuClNvIHRoYXQgYmVsb3cgc3BsYXQgb2NjdXJzIHdoZW4gdGhl IHJtbmV0MCBpbnRlcmZhY2UgaXMgZGVsZXRlZC4KClNwbGF0IGxvb2tzIGxpa2U6ClsgIDE4Ni42 ODQ3ODddWyAgICBDMl0gV0FSTklORzogQ1BVOiAyIFBJRDogMTAwOSBhdCBuZXQvY29yZS9kZXYu Yzo4OTkyIHJvbGxiYWNrX3JlZ2lzdGVyZWRfbWFueSsweDk4Ni8weGNmMApbICAxODYuNjg0Nzg4 XVsgICAgQzJdIE1vZHVsZXMgbGlua2VkIGluOiBybW5ldCBkdW1teSBvcGVudnN3aXRjaCBuc2gg bmZfY29ubmNvdW50IG5mX25hdCBuZl9jb25udHJhY2sgbmZfZGVmcmFnX3gKWyAgMTg2LjY4NDgw NV1bICAgIEMyXSBDUFU6IDIgUElEOiAxMDA5IENvbW06IGlwIE5vdCB0YWludGVkIDUuOC4wLXJj MSsgIzYyMQpbICAxODYuNjg0ODA3XVsgICAgQzJdIEhhcmR3YXJlIG5hbWU6IGlubm90ZWsgR21i SCBWaXJ0dWFsQm94L1ZpcnR1YWxCb3gsIEJJT1MgVmlydHVhbEJveCAxMi8wMS8yMDA2ClsgIDE4 Ni42ODQ4MDhdWyAgICBDMl0gUklQOiAwMDEwOnJvbGxiYWNrX3JlZ2lzdGVyZWRfbWFueSsweDk4 Ni8weGNmMApbICAxODYuNjg0ODExXVsgICAgQzJdIENvZGU6IDQxIDhiIDRlIGNjIDQ1IDMxIGMw IDMxIGQyIDRjIDg5IGVlIDQ4IDg5IGRmIGU4IGUwIDQ3IGZmIGZmIDg1IGMwIDBmIDg0IGNkIGZj IGZmIGZmIDUKWyAgMTg2LjY4NDgxMl1bICAgIEMyXSBSU1A6IDAwMTg6ZmZmZjg4ODBjZDk0NzJl MCBFRkxBR1M6IDAwMDEwMjg3ClsgIDE4Ni42ODQ4MTVdWyAgICBDMl0gUkFYOiBmZmZmODg4MGNj NTZkYTU4IFJCWDogZmZmZjg4ODBhYjIxYzAwMCBSQ1g6IGZmZmZmZmZmOTMyOWQzMjMKWyAgMTg2 LjY4NDgxNl1bICAgIEMyXSBSRFg6IDFmZmZmZmZmZjJiZTY0MTAgUlNJOiAwMDAwMDAwMDAwMDAw MDA4IFJESTogZmZmZmZmZmY5NWYzMjA4MApbICAxODYuNjg0ODE4XVsgICAgQzJdIFJCUDogZGZm ZmZjMDAwMDAwMDAwMCBSMDg6IGZmZmZmYmZmZjJiZTY0MTEgUjA5OiBmZmZmZmJmZmYyYmU2NDEx ClsgIDE4Ni42ODQ4MTldWyAgICBDMl0gUjEwOiBmZmZmZmZmZjk1ZjMyMDg3IFIxMTogMDAwMDAw MDAwMDAwMDAwMSBSMTI6IGZmZmY4ODgwY2Q5NDc0ODAKWyAgMTg2LjY4NDgyMF1bICAgIEMyXSBS MTM6IGZmZmY4ODgwYWIyMWMwYjggUjE0OiBmZmZmODg4MGNkOTQ3NDAwIFIxNTogZmZmZjg4ODBj ZGYxMDY0MApbICAxODYuNjg0ODIyXVsgICAgQzJdIEZTOiAgMDAwMDdmMDA4NDM4OTBjMCgwMDAw KSBHUzpmZmZmODg4MGQ0ZTAwMDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKWyAgMTg2 LjY4NDgyM11bICAgIEMyXSBDUzogIDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAw MDgwMDUwMDMzClsgIDE4Ni42ODQ4MjVdWyAgICBDMl0gQ1IyOiAwMDAwNTViOGFiMTA3N2I4IENS MzogMDAwMDAwMDBhYjYxMjAwNiBDUjQ6IDAwMDAwMDAwMDAwNjA2ZTAKWyAgMTg2LjY4NDgyNl1b ICAgIEMyXSBDYWxsIFRyYWNlOgpbICAxODYuNjg0ODI3XVsgICAgQzJdICA/IGxvY2tkZXBfaGFy ZGlycXNfb25fcHJlcGFyZSsweDM3OS8weDU0MApbICAxODYuNjg0ODI5XVsgICAgQzJdICA/IG5l dGlmX3NldF9yZWFsX251bV90eF9xdWV1ZXMrMHg3ODAvMHg3ODAKWyAgMTg2LjY4NDgzMF1bICAg IEMyXSAgPyBybW5ldF91bnJlZ2lzdGVyX3JlYWxfZGV2aWNlKzB4NTYvMHg5MCBbcm1uZXRdClsg IDE4Ni42ODQ4MzFdWyAgICBDMl0gID8gX19rYXNhbl9zbGFiX2ZyZWUrMHgxMjYvMHgxNTAKWyAg MTg2LjY4NDgzMl1bICAgIEMyXSAgPyBrZnJlZSsweGRjLzB4MzIwClsgIDE4Ni42ODQ4MzRdWyAg ICBDMl0gID8gcm1uZXRfdW5yZWdpc3Rlcl9yZWFsX2RldmljZSsweDU2LzB4OTAgW3JtbmV0XQpb ICAxODYuNjg0ODM1XVsgICAgQzJdICB1bnJlZ2lzdGVyX25ldGRldmljZV9tYW55LnBhcnQuMTM1 KzB4MTMvMHgxYjAKWyAgMTg2LjY4NDgzNl1bICAgIEMyXSAgcnRubF9kZWxldGVfbGluaysweGJj LzB4MTAwClsgLi4uIF0KWyAgMjM4LjQ0MDA3MV1bIFQxMDA5XSB1bnJlZ2lzdGVyX25ldGRldmlj ZTogd2FpdGluZyBmb3Igcm1uZXQwIHRvIGJlY29tZSBmcmVlLiBVc2FnZSBjb3VudCA9IDEKCkZp eGVzOiAwMzdmOWNkZjcyZmIgKCJuZXQ6IHJtbmV0OiB1c2UgdXBwZXIvbG93ZXIgZGV2aWNlIGlu ZnJhc3RydWN0dXJlIikKU2lnbmVkLW9mZi1ieTogVGFlaGVlIFlvbyA8YXA0MjAwNzNAZ21haWwu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvcXVhbGNvbW0vcm1uZXQvcm1uZXRfY29uZmlnLmMg fCA1ICsrKysrCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvcXVhbGNvbW0vcm1uZXQvcm1uZXRfY29uZmlnLmMgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9xdWFsY29tbS9ybW5ldC9ybW5ldF9jb25maWcuYwppbmRleCAyYzhj MjUyYjdiOTcuLmZjZGVjZGRiMjgxMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv cXVhbGNvbW0vcm1uZXQvcm1uZXRfY29uZmlnLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv cXVhbGNvbW0vcm1uZXQvcm1uZXRfY29uZmlnLmMKQEAgLTQyOSw2ICs0MjksMTEgQEAgaW50IHJt bmV0X2FkZF9icmlkZ2Uoc3RydWN0IG5ldF9kZXZpY2UgKnJtbmV0X2RldiwKIAkJcmV0dXJuIC1F SU5WQUw7CiAJfQogCisJaWYgKHBvcnQtPnJtbmV0X21vZGUgIT0gUk1ORVRfRVBNT0RFX1ZORCkg eworCQlOTF9TRVRfRVJSX01TR19NT0QoZXh0YWNrLCAibW9yZSB0aGFuIG9uZSBicmlkZ2UgZGV2 IGF0dGFjaGVkIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKwogCWlmIChybW5ldF9pc19yZWFs X2Rldl9yZWdpc3RlcmVkKHNsYXZlX2RldikpIHsKIAkJTkxfU0VUX0VSUl9NU0dfTU9EKGV4dGFj aywKIAkJCQkgICAic2xhdmUgY2Fubm90IGJlIGFub3RoZXIgcm1uZXQgZGV2Iik7Ci0tIAoyLjI2 LjIKCgpGcm9tIDUzODNjOTZjOWQ2NTcwODAyMzJhZTMyM2Y1ZjU2NTFjNDBlOGEyNzkgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IFRhZWhlZSBZb28gPGFwNDIwMDczQGdtYWlsLmNvbT4K RGF0ZTogVGh1LCAyIEp1bCAyMDIwIDE3OjA2OjE5ICswMDAwClN1YmplY3Q6IFtQQVRDSCA0My80 NF0gaHNyOiBmaXggaW50ZXJmYWNlIGxlYWsgaW4gZXJyb3IgcGF0aCBvZgogaHNyX2Rldl9maW5h bGl6ZSgpCgpbIFVwc3RyZWFtIGNvbW1pdCBjY2ZjOWRmMTM1MmJlNWIyZjM5MTA5MWUxOGM0YjIz OTVkMzBjZTc4IF0KClRvIHJlbGVhc2UgaHNyKHVwcGVyKSBpbnRlcmZhY2UsIGl0IHNob3VsZCBy ZWxlYXNlCml0cyBvd24gbG93ZXIgaW50ZXJmYWNlcyBmaXJzdC4KVGhlbiwgaHNyKHVwcGVyKSBp bnRlcmZhY2UgY2FuIGJlIHJlbGVhc2VkIHNhZmVseS4KSW4gdGhlIGN1cnJlbnQgY29kZSBvZiBl cnJvciBwYXRoIG9mIGhzcl9kZXZfZmluYWxpemUoKSwgaXQgcmVsZWFzZXMgaHNyCmludGVyZmFj ZSBiZWZvcmUgcmVsZWFzaW5nIGEgbG93ZXIgaW50ZXJmYWNlLgpTbywgYSB3YXJuaW5nIG9jY3Vy cywgd2hpY2ggd2FybnMgYWJvdXQgdGhlIGxlYWsgb2YgbG93ZXIgaW50ZXJmYWNlcy4KSW4gb3Jk ZXIgdG8gZml4IHRoaXMgcHJvYmxlbSwgY2hhbmdpbmcgdGhlIG9yZGVyaW5nIG9mIHRoZSBlcnJv ciBwYXRoIG9mCmhzcl9kZXZfZmluYWxpemUoKSBpcyBuZWVkZWQuCgpUZXN0IGNvbW1hbmRzOgog ICAgaXAgbGluayBhZGQgZHVtbXkwIHR5cGUgZHVtbXkKICAgIGlwIGxpbmsgYWRkIGR1bW15MSB0 eXBlIGR1bW15CiAgICBpcCBsaW5rIGFkZCBkdW1teTIgdHlwZSBkdW1teQogICAgaXAgbGluayBh ZGQgaHNyMCB0eXBlIGhzciBzbGF2ZTEgZHVtbXkwIHNsYXZlMiBkdW1teTEKICAgIGlwIGxpbmsg YWRkIGhzcjEgdHlwZSBoc3Igc2xhdmUxIGR1bW15MiBzbGF2ZTIgZHVtbXkwCgpTcGxhdCBsb29r cyBsaWtlOgpbICAyMTQuOTIzMTI3XVsgICAgQzJdIFdBUk5JTkc6IENQVTogMiBQSUQ6IDEwOTMg YXQgbmV0L2NvcmUvZGV2LmM6ODk5MiByb2xsYmFja19yZWdpc3RlcmVkX21hbnkrMHg5ODYvMHhj ZjAKWyAgMjE0LjkyMzEyOV1bICAgIEMyXSBNb2R1bGVzIGxpbmtlZCBpbjogaHNyIGR1bW15IG9w ZW52c3dpdGNoIG5zaCBuZl9jb25uY291bnQgbmZfbmF0IG5mX2Nvbm50cmFjayBuZl9kZWZyYWdf aXB4ClsgIDIxNC45MjMxNTRdWyAgICBDMl0gQ1BVOiAyIFBJRDogMTA5MyBDb21tOiBpcCBOb3Qg dGFpbnRlZCA1LjguMC1yYzIrICM2MjMKWyAgMjE0LjkyMzE1Nl1bICAgIEMyXSBIYXJkd2FyZSBu YW1lOiBpbm5vdGVrIEdtYkggVmlydHVhbEJveC9WaXJ0dWFsQm94LCBCSU9TIFZpcnR1YWxCb3gg MTIvMDEvMjAwNgpbICAyMTQuOTIzMTU3XVsgICAgQzJdIFJJUDogMDAxMDpyb2xsYmFja19yZWdp c3RlcmVkX21hbnkrMHg5ODYvMHhjZjAKWyAgMjE0LjkyMzE2MF1bICAgIEMyXSBDb2RlOiA0MSA4 YiA0ZSBjYyA0NSAzMSBjMCAzMSBkMiA0YyA4OSBlZSA0OCA4OSBkZiBlOCBlMCA0NyBmZiBmZiA4 NSBjMCAwZiA4NCBjZCBmYyBmZiBmZiA1ClsgIDIxNC45MjMxNjJdWyAgICBDMl0gUlNQOiAwMDE4 OmZmZmY4ODgwYzUxNTZmMjggRUZMQUdTOiAwMDAxMDI4NwpbICAyMTQuOTIzMTY1XVsgICAgQzJd IFJBWDogZmZmZjg4ODBkMWRhZDQ1OCBSQlg6IGZmZmY4ODgwYmQxYjkwMDAgUkNYOiBmZmZmZmZm ZmI5MjlkMjQzClsgIDIxNC45MjMxNjddWyAgICBDMl0gUkRYOiAxZmZmZmZmZmY3N2U2M2YwIFJT STogMDAwMDAwMDAwMDAwMDAwOCBSREk6IGZmZmZmZmZmYmJmMzFmODAKWyAgMjE0LjkyMzE2OF1b ICAgIEMyXSBSQlA6IGRmZmZmYzAwMDAwMDAwMDAgUjA4OiBmZmZmZmJmZmY3N2U2M2YxIFIwOTog ZmZmZmZiZmZmNzdlNjNmMQpbICAyMTQuOTIzMTcwXVsgICAgQzJdIFIxMDogZmZmZmZmZmZiYmYz MWY4NyBSMTE6IDAwMDAwMDAwMDAwMDAwMDEgUjEyOiBmZmZmODg4MGM1MTU3MGEwClsgIDIxNC45 MjMxNzJdWyAgICBDMl0gUjEzOiBmZmZmODg4MGJkMWI5MGI4IFIxNDogZmZmZjg4ODBjNTE1NzA0 OCBSMTU6IGZmZmY4ODgwZDFkYWNjNDAKWyAgMjE0LjkyMzE3NF1bICAgIEMyXSBGUzogIDAwMDA3 ZmRkMjU3YTIwYzAoMDAwMCkgR1M6ZmZmZjg4ODBkYTIwMDAwMCgwMDAwKSBrbmxHUzowMDAwMDAw MDAwMDAwMDAwClsgIDIxNC45MjMxNzVdWyAgICBDMl0gQ1M6ICAwMDEwIERTOiAwMDAwIEVTOiAw MDAwIENSMDogMDAwMDAwMDA4MDA1MDAzMwpbICAyMTQuOTIzMTc3XVsgICAgQzJdIENSMjogMDAw MDdmZmQ3OGJlYjAzOCBDUjM6IDAwMDAwMDAwYmU1NDQwMDUgQ1I0OiAwMDAwMDAwMDAwMDYwNmUw ClsgIDIxNC45MjMxNzldWyAgICBDMl0gQ2FsbCBUcmFjZToKWyAgMjE0LjkyMzE4MF1bICAgIEMy XSAgPyBuZXRpZl9zZXRfcmVhbF9udW1fdHhfcXVldWVzKzB4NzgwLzB4NzgwClsgIDIxNC45MjMx ODJdWyAgICBDMl0gID8gZGV2X3ZhbGlkYXRlX210dSsweDE0MC8weDE0MApbICAyMTQuOTIzMTgz XVsgICAgQzJdICA/IHN5bmNocm9uaXplX3JjdS5wYXJ0Ljc5KzB4ODUvMHhkMApbICAyMTQuOTIz MTg1XVsgICAgQzJdICA/IHN5bmNocm9uaXplX3JjdV9leHBlZGl0ZWQrMHhiYjAvMHhiYjAKWyAg MjE0LjkyMzE4N11bICAgIEMyXSAgcm9sbGJhY2tfcmVnaXN0ZXJlZCsweGM4LzB4MTcwClsgIDIx NC45MjMxODhdWyAgICBDMl0gID8gcm9sbGJhY2tfcmVnaXN0ZXJlZF9tYW55KzB4Y2YwLzB4Y2Yw ClsgIDIxNC45MjMxOTBdWyAgICBDMl0gIHVucmVnaXN0ZXJfbmV0ZGV2aWNlX3F1ZXVlKzB4MThi LzB4MjQwClsgIDIxNC45MjMxOTFdWyAgICBDMl0gIGhzcl9kZXZfZmluYWxpemUrMHg1NmUvMHg2 ZTAgW2hzcl0KWyAgMjE0LjkyMzE5Ml1bICAgIEMyXSAgaHNyX25ld2xpbmsrMHgzNmIvMHg0NTAg W2hzcl0KWyAgMjE0LjkyMzE5NF1bICAgIEMyXSAgPyBoc3JfZGVsbGluaysweDcwLzB4NzAgW2hz cl0KWyAgMjE0LjkyMzE5NV1bICAgIEMyXSAgPyBydG5sX2NyZWF0ZV9saW5rKzB4MmU0LzB4YjAw ClsgIDIxNC45MjMxOTddWyAgICBDMl0gID8gX19uZXRsaW5rX25zX2NhcGFibGUrMHhjMy8weGYw ClsgIDIxNC45MjMxOThdWyAgICBDMl0gIF9fcnRubF9uZXdsaW5rKzB4YmRiLzB4MTI3MApbIC4u LiBdCgpGaXhlczogZTBhNGI5OTc3M2QzICgiaHNyOiB1c2UgdXBwZXIvbG93ZXIgZGV2aWNlIGlu ZnJhc3RydWN0dXJlIikKUmVwb3J0ZWQtYnk6IHN5emJvdCs3ZjFjMDIwZjY4ZGFiOTVhYWI1OUBz eXprYWxsZXIuYXBwc3BvdG1haWwuY29tClNpZ25lZC1vZmYtYnk6IFRhZWhlZSBZb28gPGFwNDIw MDczQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIG5ldC9oc3IvaHNyX2RldmljZS5jIHwgMTEgKysrKysrKy0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvbmV0L2hzci9oc3JfZGV2aWNlLmMgYi9uZXQvaHNyL2hzcl9kZXZpY2UuYwppbmRleCBlZjEw MGNmZDJhYzEuLjU2YTExMzQxZjk5YyAxMDA2NDQKLS0tIGEvbmV0L2hzci9oc3JfZGV2aWNlLmMK KysrIGIvbmV0L2hzci9oc3JfZGV2aWNlLmMKQEAgLTQxNyw2ICs0MTcsNyBAQCBpbnQgaHNyX2Rl dl9maW5hbGl6ZShzdHJ1Y3QgbmV0X2RldmljZSAqaHNyX2Rldiwgc3RydWN0IG5ldF9kZXZpY2Ug KnNsYXZlWzJdLAogCQkgICAgIHVuc2lnbmVkIGNoYXIgbXVsdGljYXN0X3NwZWMsIHU4IHByb3Rv Y29sX3ZlcnNpb24sCiAJCSAgICAgc3RydWN0IG5ldGxpbmtfZXh0X2FjayAqZXh0YWNrKQogewor CWJvb2wgdW5yZWdpc3RlciA9IGZhbHNlOwogCXN0cnVjdCBoc3JfcHJpdiAqaHNyOwogCWludCBy ZXM7CiAKQEAgLTQ2OCwyNSArNDY5LDI3IEBAIGludCBoc3JfZGV2X2ZpbmFsaXplKHN0cnVjdCBu ZXRfZGV2aWNlICpoc3JfZGV2LCBzdHJ1Y3QgbmV0X2RldmljZSAqc2xhdmVbMl0sCiAJaWYgKHJl cykKIAkJZ290byBlcnJfdW5yZWdpc3RlcjsKIAorCXVucmVnaXN0ZXIgPSB0cnVlOworCiAJcmVz ID0gaHNyX2FkZF9wb3J0KGhzciwgc2xhdmVbMF0sIEhTUl9QVF9TTEFWRV9BLCBleHRhY2spOwog CWlmIChyZXMpCi0JCWdvdG8gZXJyX2FkZF9zbGF2ZXM7CisJCWdvdG8gZXJyX3VucmVnaXN0ZXI7 CiAKIAlyZXMgPSBoc3JfYWRkX3BvcnQoaHNyLCBzbGF2ZVsxXSwgSFNSX1BUX1NMQVZFX0IsIGV4 dGFjayk7CiAJaWYgKHJlcykKLQkJZ290byBlcnJfYWRkX3NsYXZlczsKKwkJZ290byBlcnJfdW5y ZWdpc3RlcjsKIAogCWhzcl9kZWJ1Z2ZzX2luaXQoaHNyLCBoc3JfZGV2KTsKIAltb2RfdGltZXIo Jmhzci0+cHJ1bmVfdGltZXIsIGppZmZpZXMgKyBtc2Vjc190b19qaWZmaWVzKFBSVU5FX1BFUklP RCkpOwogCiAJcmV0dXJuIDA7CiAKLWVycl9hZGRfc2xhdmVzOgotCXVucmVnaXN0ZXJfbmV0ZGV2 aWNlKGhzcl9kZXYpOwogZXJyX3VucmVnaXN0ZXI6CiAJaHNyX2RlbF9wb3J0cyhoc3IpOwogZXJy X2FkZF9tYXN0ZXI6CiAJaHNyX2RlbF9zZWxmX25vZGUoaHNyKTsKIAorCWlmICh1bnJlZ2lzdGVy KQorCQl1bnJlZ2lzdGVyX25ldGRldmljZShoc3JfZGV2KTsKIAlyZXR1cm4gcmVzOwogfQotLSAK Mi4yNi4yCgoKRnJvbSA3OTJiYTc0OTJjMzAxZmM2ZGU2Nzk3OTdhZDkxMzMyZjEzNWRhMWU0IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFbGkgQnJpdHN0ZWluIDxlbGlickBtZWxsYW5v eC5jb20+CkRhdGU6IFN1biwgMjggSnVuIDIwMjAgMTU6NDI6MjYgKzAzMDAKU3ViamVjdDogW1BB VENIIDQ0LzQ0XSBuZXQvbWx4NWU6IENUOiBGaXggbWVtb3J5IGxlYWsgaW4gY2xlYW51cAoKWyBV cHN0cmVhbSBjb21taXQgZWIzMmIzZjUzZDI4M2U4ZDY4YjZkODZjM2E2ZWQ4NTliMjRkYWNhZSBd CgpDVCBlbnRyaWVzIGFyZSBkZWxldGVkIHZpYSBhIHdvcmtxdWV1ZSBmcm9tIG5ldGZpbHRlci4g SWYgcmVtb3ZpbmcgdGhlCm1vZHVsZSBiZWZvcmUgdGhhdCwgdGhlIHJ1bGVzIGFyZSBjbGVhbmVk IGJ5IHRoZSBkcml2ZXIgaXRzZWxmLCBidXQgdGhlCm1lbW9yeSBlbnRyaWVzIGZvciB0aGVtIGFy ZSBub3QgZnJlZWQuIEZpeCB0aGF0LgoKRml4ZXM6IGFjOTkxYjQ4ZDQzYyAoIm5ldC9tbHg1ZTog Q1Q6IE9mZmxvYWQgZXN0YWJsaXNoZWQgZmxvd3MiKQpTaWduZWQtb2ZmLWJ5OiBFbGkgQnJpdHN0 ZWluIDxlbGlickBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBSb2kgRGF5YW4gPHJvaWRAbWVs bGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94 LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGNf Y3QuYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX2N0LmMgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGNfY3QuYwppbmRleCA0NzAy ODJkYWVkMTkuLjM2OWEwMzc3MTQzNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX2N0LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX2N0LmMKQEAgLTg0OSw2ICs4NDksNyBAQCBtbHg1X3Rj X2N0X2ZsdXNoX2Z0X2VudHJ5KHZvaWQgKnB0ciwgdm9pZCAqYXJnKQogCXN0cnVjdCBtbHg1X2N0 X2VudHJ5ICplbnRyeSA9IHB0cjsKIAogCW1seDVfdGNfY3RfZW50cnlfZGVsX3J1bGVzKGN0X3By aXYsIGVudHJ5KTsKKwlrZnJlZShlbnRyeSk7CiB9CiAKIHN0YXRpYyB2b2lkCi0tIAoyLjI2LjIK Cg== ----Next_Part(Thu_Jul_16_16_07_20_2020_547)----