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=-1.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS autolearn=ham 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 4964FC43381 for ; Sun, 24 Feb 2019 05:18:08 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C089920663 for ; Sun, 24 Feb 2019 05:18:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725965AbfBXFSH (ORCPT ); Sun, 24 Feb 2019 00:18:07 -0500 Received: from shards.monkeyblade.net ([23.128.96.9]:45916 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725959AbfBXFSG (ORCPT ); Sun, 24 Feb 2019 00:18:06 -0500 Received: from localhost (unknown [IPv6:2601:601:9f80:35cd::bf5]) (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 466FE14BFBB9E for ; Sat, 23 Feb 2019 21:18:03 -0800 (PST) Date: Sat, 23 Feb 2019 21:18:00 -0800 (PST) Message-Id: <20190223.211800.511057809532439561.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller X-Mailer: Mew version 6.8 on Emacs 26.1 Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Sat_Feb_23_21_18_00_2019_036)--" 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]); Sat, 23 Feb 2019 21:18:04 -0800 (PST) Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org ----Next_Part(Sat_Feb_23_21_18_00_2019_036)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes to v4.19 and v4.20 respectively. Thank you! ----Next_Part(Sat_Feb_23_21_18_00_2019_036)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_419.mbox" RnJvbSAxYTYyZmZkMWQwZDA5YzAwNDljYzdmOWUxNzhjMTFlYjY0ZWNlY2NkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRh dGU6IE1vbiwgMTEgRmViIDIwMTkgMTQ6NDE6MjIgLTA4MDAKU3ViamVjdDogW1BBVENIIDAxLzIx XSBiYXRtYW4tYWR2OiBmaXggdW5pbml0LXZhbHVlIGluIGJhdGFkdl9pbnRlcmZhY2VfdHgoKQoK WyBVcHN0cmVhbSBjb21taXQgNGZmY2JmYWM2MDY0MmY2M2FlM2Q4MDg5MWY1NzNiYTdlOTRhMjY1 YyBdCgpLTVNBTiByZXBvcnRlZCBiYXRhZHZfaW50ZXJmYWNlX3R4KCkgd2FzIHBvc3NpYmx5IHVz aW5nIGEKZ2FyYmFnZSB2YWx1ZSBbMV0KCmJhdGFkdl9nZXRfdmlkKCkgZG9lcyBoYXZlIGEgcHNr Yl9tYXlfcHVsbCgpIGNhbGwKYnV0IGJhdGFkdl9pbnRlcmZhY2VfdHgoKSBkb2VzIG5vdCBhY3R1 YWxseSBtYWtlIHN1cmUKdGhpcyBkaWQgbm90IGZhaWwuCgpbMV0KQlVHOiBLTVNBTjogdW5pbml0 LXZhbHVlIGluIGJhdGFkdl9pbnRlcmZhY2VfdHgrMHg5MDgvMHgxZTQwIG5ldC9iYXRtYW4tYWR2 L3NvZnQtaW50ZXJmYWNlLmM6MjMxCkNQVTogMCBQSUQ6IDEwMDA2IENvbW06IHN5ei1leGVjdXRv cjQ2OSBOb3QgdGFpbnRlZCA0LjIwLjAtcmM3KyAjNQpIYXJkd2FyZSBuYW1lOiBHb29nbGUgR29v Z2xlIENvbXB1dGUgRW5naW5lL0dvb2dsZSBDb21wdXRlIEVuZ2luZSwgQklPUyBHb29nbGUgMDEv MDEvMjAxMQpDYWxsIFRyYWNlOgogX19kdW1wX3N0YWNrIGxpYi9kdW1wX3N0YWNrLmM6NzcgW2lu bGluZV0KIGR1bXBfc3RhY2srMHgxNzMvMHgxZDAgbGliL2R1bXBfc3RhY2suYzoxMTMKIGttc2Fu X3JlcG9ydCsweDEyZS8weDJhMCBtbS9rbXNhbi9rbXNhbi5jOjYxMwogX19tc2FuX3dhcm5pbmcr MHg4Mi8weGYwIG1tL2ttc2FuL2ttc2FuX2luc3RyLmM6MzEzCiBiYXRhZHZfaW50ZXJmYWNlX3R4 KzB4OTA4LzB4MWU0MCBuZXQvYmF0bWFuLWFkdi9zb2Z0LWludGVyZmFjZS5jOjIzMQogX19uZXRk ZXZfc3RhcnRfeG1pdCBpbmNsdWRlL2xpbnV4L25ldGRldmljZS5oOjQzNTYgW2lubGluZV0KIG5l dGRldl9zdGFydF94bWl0IGluY2x1ZGUvbGludXgvbmV0ZGV2aWNlLmg6NDM2NSBbaW5saW5lXQog eG1pdF9vbmUgbmV0L2NvcmUvZGV2LmM6MzI1NyBbaW5saW5lXQogZGV2X2hhcmRfc3RhcnRfeG1p dCsweDYwNy8weGM0MCBuZXQvY29yZS9kZXYuYzozMjczCiBfX2Rldl9xdWV1ZV94bWl0KzB4MmU0 Mi8weDNiYzAgbmV0L2NvcmUvZGV2LmM6Mzg0MwogZGV2X3F1ZXVlX3htaXQrMHg0Yi8weDYwIG5l dC9jb3JlL2Rldi5jOjM4NzYKIHBhY2tldF9zbmQgbmV0L3BhY2tldC9hZl9wYWNrZXQuYzoyOTI4 IFtpbmxpbmVdCiBwYWNrZXRfc2VuZG1zZysweDgzMDYvMHg4ZjMwIG5ldC9wYWNrZXQvYWZfcGFj a2V0LmM6Mjk1Mwogc29ja19zZW5kbXNnX25vc2VjIG5ldC9zb2NrZXQuYzo2MjEgW2lubGluZV0K IHNvY2tfc2VuZG1zZyBuZXQvc29ja2V0LmM6NjMxIFtpbmxpbmVdCiBfX3N5c19zZW5kdG8rMHg4 YzQvMHhhYzAgbmV0L3NvY2tldC5jOjE3ODgKIF9fZG9fc3lzX3NlbmR0byBuZXQvc29ja2V0LmM6 MTgwMCBbaW5saW5lXQogX19zZV9zeXNfc2VuZHRvKzB4MTA3LzB4MTMwIG5ldC9zb2NrZXQuYzox Nzk2CiBfX3g2NF9zeXNfc2VuZHRvKzB4NmUvMHg5MCBuZXQvc29ja2V0LmM6MTc5NgogZG9fc3lz Y2FsbF82NCsweGJjLzB4ZjAgYXJjaC94ODYvZW50cnkvY29tbW9uLmM6MjkxCiBlbnRyeV9TWVND QUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg2My8weGU3ClJJUDogMDAzMzoweDQ0MTg4OQpDb2RlOiAx OCA4OSBkMCBjMyA2NiAyZSAwZiAxZiA4NCAwMCAwMCAwMCAwMCAwMCAwZiAxZiAwMCA0OCA4OSBm OCA0OCA4OSBmNyA0OCA4OSBkNiA0OCA4OSBjYSA0ZCA4OSBjMiA0ZCA4OSBjOCA0YyA4YiA0YyAy NCAwOCAwZiAwNSA8NDg+IDNkIDAxIGYwIGZmIGZmIDBmIDgzIGJiIDEwIGZjIGZmIGMzIDY2IDJl IDBmIDFmIDg0IDAwIDAwIDAwIDAwClJTUDogMDAyYjowMDAwN2ZmZGRhNmZkNDY4IEVGTEFHUzog MDAwMDAyMTYgT1JJR19SQVg6IDAwMDAwMDAwMDAwMDAwMmMKUkFYOiBmZmZmZmZmZmZmZmZmZmRh IFJCWDogMDAwMDAwMDAwMDAwMDAwMiBSQ1g6IDAwMDAwMDAwMDA0NDE4ODkKUkRYOiAwMDAwMDAw MDAwMDAwMDBlIFJTSTogMDAwMDAwMDAyMDAwMDBjMCBSREk6IDAwMDAwMDAwMDAwMDAwMDMKUkJQ OiAwMDAwMDAwMDAwMDAwMDAzIFIwODogMDAwMDAwMDAwMDAwMDAwMCBSMDk6IDAwMDAwMDAwMDAw MDAwMDAKUjEwOiAwMDAwMDAwMDAwMDAwMDAwIFIxMTogMDAwMDAwMDAwMDAwMDIxNiBSMTI6IDAw MDA3ZmZkZGE2ZmQ0YzAKUjEzOiAwMDAwN2ZmZGRhNmZkNGIwIFIxNDogMDAwMDAwMDAwMDAwMDAw MCBSMTU6IDAwMDAwMDAwMDAwMDAwMDAKClVuaW5pdCB3YXMgY3JlYXRlZCBhdDoKIGttc2FuX3Nh dmVfc3RhY2tfd2l0aF9mbGFncyBtbS9rbXNhbi9rbXNhbi5jOjIwNCBbaW5saW5lXQoga21zYW5f aW50ZXJuYWxfcG9pc29uX3NoYWRvdysweDkyLzB4MTUwIG1tL2ttc2FuL2ttc2FuLmM6MTU4CiBr bXNhbl9rbWFsbG9jKzB4YTYvMHgxMzAgbW0va21zYW4va21zYW5faG9va3MuYzoxNzYKIGttc2Fu X3NsYWJfYWxsb2MrMHhlLzB4MTAgbW0va21zYW4va21zYW5faG9va3MuYzoxODUKIHNsYWJfcG9z dF9hbGxvY19ob29rIG1tL3NsYWIuaDo0NDYgW2lubGluZV0KIHNsYWJfYWxsb2Nfbm9kZSBtbS9z bHViLmM6Mjc1OSBbaW5saW5lXQogX19rbWFsbG9jX25vZGVfdHJhY2tfY2FsbGVyKzB4ZTE4LzB4 MTAzMCBtbS9zbHViLmM6NDM4MwogX19rbWFsbG9jX3Jlc2VydmUgbmV0L2NvcmUvc2tidWZmLmM6 MTM3IFtpbmxpbmVdCiBfX2FsbG9jX3NrYisweDMwOS8weGEyMCBuZXQvY29yZS9za2J1ZmYuYzoy MDUKIGFsbG9jX3NrYiBpbmNsdWRlL2xpbnV4L3NrYnVmZi5oOjk5OCBbaW5saW5lXQogYWxsb2Nf c2tiX3dpdGhfZnJhZ3MrMHgxYzcvMHhhYzAgbmV0L2NvcmUvc2tidWZmLmM6NTIyMAogc29ja19h bGxvY19zZW5kX3Bza2IrMHhhZmQvMHgxMGUwIG5ldC9jb3JlL3NvY2suYzoyMDgzCiBwYWNrZXRf YWxsb2Nfc2tiIG5ldC9wYWNrZXQvYWZfcGFja2V0LmM6Mjc4MSBbaW5saW5lXQogcGFja2V0X3Nu ZCBuZXQvcGFja2V0L2FmX3BhY2tldC5jOjI4NzIgW2lubGluZV0KIHBhY2tldF9zZW5kbXNnKzB4 NjYxYS8weDhmMzAgbmV0L3BhY2tldC9hZl9wYWNrZXQuYzoyOTUzCiBzb2NrX3NlbmRtc2dfbm9z ZWMgbmV0L3NvY2tldC5jOjYyMSBbaW5saW5lXQogc29ja19zZW5kbXNnIG5ldC9zb2NrZXQuYzo2 MzEgW2lubGluZV0KIF9fc3lzX3NlbmR0bysweDhjNC8weGFjMCBuZXQvc29ja2V0LmM6MTc4OAog X19kb19zeXNfc2VuZHRvIG5ldC9zb2NrZXQuYzoxODAwIFtpbmxpbmVdCiBfX3NlX3N5c19zZW5k dG8rMHgxMDcvMHgxMzAgbmV0L3NvY2tldC5jOjE3OTYKIF9feDY0X3N5c19zZW5kdG8rMHg2ZS8w eDkwIG5ldC9zb2NrZXQuYzoxNzk2CiBkb19zeXNjYWxsXzY0KzB4YmMvMHhmMCBhcmNoL3g4Ni9l bnRyeS9jb21tb24uYzoyOTEKIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsweDYzLzB4 ZTcKCkZpeGVzOiBjNmM4ZmVhMjk3NjkgKCJuZXQ6IEFkZCBiYXRtYW4tYWR2IG1lc2hpbmcgcHJv dG9jb2wiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ ClJlcG9ydGVkLWJ5OiBzeXpib3QgPHN5emthbGxlckBnb29nbGVncm91cHMuY29tPgpDYzoJTWFy ZWsgTGluZG5lciA8bWFyZWtsaW5kbmVyQG5lb21haWxib3guY2g+CkNjOglTaW1vbiBXdW5kZXJs aWNoIDxzd0BzaW1vbnd1bmRlcmxpY2guZGU+CkNjOglBbnRvbmlvIFF1YXJ0dWxsaSA8YUB1bnN0 YWJsZS5jYz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIG5ldC9iYXRtYW4tYWR2L3NvZnQtaW50ZXJmYWNlLmMgfCAyICsrCiAxIGZpbGUg Y2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2JhdG1hbi1hZHYvc29m dC1pbnRlcmZhY2UuYyBiL25ldC9iYXRtYW4tYWR2L3NvZnQtaW50ZXJmYWNlLmMKaW5kZXggMzg5 OWZhNmUyMDFkLi5hMjk3NmFkZWVlZGMgMTAwNjQ0Ci0tLSBhL25ldC9iYXRtYW4tYWR2L3NvZnQt aW50ZXJmYWNlLmMKKysrIGIvbmV0L2JhdG1hbi1hZHYvc29mdC1pbnRlcmZhY2UuYwpAQCAtMjI3 LDYgKzIyNyw4IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBiYXRhZHZfaW50ZXJmYWNlX3R4KHN0cnVj dCBza19idWZmICpza2IsCiAKIAlzd2l0Y2ggKG50b2hzKGV0aGhkci0+aF9wcm90bykpIHsKIAlj YXNlIEVUSF9QXzgwMjFROgorCQlpZiAoIXBza2JfbWF5X3B1bGwoc2tiLCBzaXplb2YoKnZoZHIp KSkKKwkJCWdvdG8gZHJvcHBlZDsKIAkJdmhkciA9IHZsYW5fZXRoX2hkcihza2IpOwogCiAJCS8q IGRyb3AgYmF0bWFuLWluLWJhdG1hbiBwYWNrZXRzIHRvIHByZXZlbnQgbG9vcHMgKi8KLS0gCjIu MjAuMQoKCkZyb20gNTk2MzcwYmZkZDhhZDQxMmJiYTFjNWRkMTM5MDY2Mjk4M2Q5ZjNkNCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogS29uc3RhbnRpbiBLaGxlYm5pa292IDxraGxlYm5p a292QHlhbmRleC10ZWFtLnJ1PgpEYXRlOiBTYXQsIDkgRmViIDIwMTkgMTM6MzU6NTIgKzAzMDAK U3ViamVjdDogW1BBVENIIDAyLzIxXSBpbmV0X2RpYWc6IGZpeCByZXBvcnRpbmcgY2dyb3VwIGNs YXNzaWQgYW5kIGZhbGxiYWNrIHRvCiBwcmlvcml0eQoKWyBVcHN0cmVhbSBjb21taXQgMWVjMTdk YmQ5MGY4YjYzOGY0MWVlNjUwNTU4NjA5YzFhZjYzZGZhMCBdCgpGaWVsZCBpZGlhZ19leHQgaW4g c3RydWN0IGluZXRfZGlhZ19yZXFfdjIgdXNlZCBhcyBiaXRtYXAgb2YgcmVxdWVzdGVkCmV4dGVu c2lvbnMgaGFzIG9ubHkgOCBiaXRzLiBUaHVzIGV4dGVuc2lvbnMgc3RhcnRpbmcgZnJvbSBEQ1RD UElORk8KY2Fubm90IGJlIHJlcXVlc3RlZCBkaXJlY3RseS4gU29tZSBvZiB0aGVtIGluY2x1ZGVk IGludG8gcmVzcG9uc2UKdW5jb25kaXRpb25hbGx5IG9yIGhvb2sgaW50byBzb21lIG9mIGxvd2Vy IDggYml0cy4KCkV4dGVuc2lvbiBJTkVUX0RJQUdfQ0xBU1NfSUQgaGFzIG5vdCB3YXkgdG8gcmVx dWVzdCBmcm9tIHRoZSBiZWdpbm5pbmcuCgpUaGlzIHBhdGNoIGJ1bmRsZSBpdCB3aXRoIElORVRf RElBR19UQ0xBU1MgKGlwdjYgdG9zKSwgZml4ZXMgc3BhY2UKcmVzZXJ2YXRpb24sIGFuZCBkb2N1 bWVudHMgYmVoYXZpb3IgZm9yIG90aGVyIGV4dGVuc2lvbnMuCgpBbHNvIHRoaXMgcGF0Y2ggYWRk cyBmYWxsYmFjayB0byByZXBvcnRpbmcgc29ja2V0IHByaW9yaXR5LiBUaGlzIGZpbGVkCmlzIG1v cmUgd2lkZWx5IHVzZWQgZm9yIHRyYWZmaWMgY2xhc3NpZmljYXRpb24gYmVjYXVzZSBpcHY0IHNv Y2tldHMKYXV0b21hdGljYWxseSBtYXBzIFRPUyB0byBwcmlvcml0eSBhbmQgZGVmYXVsdCBxZGlz YyBwZmlmb19mYXN0IGtub3dzCmFib3V0IHRoYXQuIEJ1dCBwcmlvcml0eSBjb3VsZCBiZSBjaGFu Z2VkIHZpYSBzZXRzb2Nrb3B0IFNPX1BSSU9SSVRZIHNvCklORVRfRElBR19UT1MgaXNuJ3QgZW5v dWdoIGZvciBwcmVkaWN0aW5nIGNsYXNzLgoKQWxzbyBjZ3JvdXAyIG9ic29sZXRlcyBuZXRfY2xz IGNsYXNzaWQgKGl0IGFsd2F5cyB6ZXJvKSwgYnV0IHdlIGNhbm5vdApyZXVzZSB0aGlzIGZpZWxk IGZvciByZXBvcnRpbmcgY2dyb3VwMiBpZCBiZWNhdXNlIGl0IGlzIDY0LWJpdCAoaW5vK2dlbiku CgpTbywgYWZ0ZXIgdGhpcyBwYXRjaCBJTkVUX0RJQUdfQ0xBU1NfSUQgd2lsbCByZXBvcnQgc29j a2V0IHByaW9yaXR5CmZvciBtb3N0IGNvbW1vbiBzZXR1cCB3aGVuIG5ldF9jbHMgaXNuJ3Qgc2V0 IGFuZC9vciBjZ3JvdXAyIGluIHVzZS4KCkZpeGVzOiAwODg4ZTM3MmMzN2YgKCJuZXQ6IGluZXQ6 IGRpYWc6IGV4cG9zZSBzb2NrZXRzIGNncm91cCBjbGFzc2lkIikKU2lnbmVkLW9mZi1ieTogS29u c3RhbnRpbiBLaGxlYm5pa292IDxraGxlYm5pa292QHlhbmRleC10ZWFtLnJ1PgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS91 YXBpL2xpbnV4L2luZXRfZGlhZy5oIHwgMTYgKysrKysrKysrKystLS0tLQogbmV0L2lwdjQvaW5l dF9kaWFnLmMgICAgICAgICAgIHwgMTAgKysrKysrKysrLQogbmV0L3NjdHAvZGlhZy5jICAgICAg ICAgICAgICAgIHwgIDEgKwogMyBmaWxlcyBjaGFuZ2VkLCAyMSBpbnNlcnRpb25zKCspLCA2IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9pbmV0X2RpYWcuaCBi L2luY2x1ZGUvdWFwaS9saW51eC9pbmV0X2RpYWcuaAppbmRleCAxNDU2NWQ3MDMyOTEuLmU4YmFj YTg1YmFjNiAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2luZXRfZGlhZy5oCisrKyBi L2luY2x1ZGUvdWFwaS9saW51eC9pbmV0X2RpYWcuaApAQCAtMTM3LDE1ICsxMzcsMjEgQEAgZW51 bSB7CiAJSU5FVF9ESUFHX1RDTEFTUywKIAlJTkVUX0RJQUdfU0tNRU1JTkZPLAogCUlORVRfRElB R19TSFVURE9XTiwKLQlJTkVUX0RJQUdfRENUQ1BJTkZPLAotCUlORVRfRElBR19QUk9UT0NPTCwg IC8qIHJlc3BvbnNlIGF0dHJpYnV0ZSBvbmx5ICovCisKKwkvKgorCSAqIE5leHQgZXh0ZW5zdGlv bnMgY2Fubm90IGJlIHJlcXVlc3RlZCBpbiBzdHJ1Y3QgaW5ldF9kaWFnX3JlcV92MjoKKwkgKiBp dHMgZmllbGQgaWRpYWdfZXh0IGhhcyBvbmx5IDggYml0cy4KKwkgKi8KKworCUlORVRfRElBR19E Q1RDUElORk8sCS8qIHJlcXVlc3QgYXMgSU5FVF9ESUFHX1ZFR0FTSU5GTyAqLworCUlORVRfRElB R19QUk9UT0NPTCwJLyogcmVzcG9uc2UgYXR0cmlidXRlIG9ubHkgKi8KIAlJTkVUX0RJQUdfU0tW Nk9OTFksCiAJSU5FVF9ESUFHX0xPQ0FMUywKIAlJTkVUX0RJQUdfUEVFUlMsCiAJSU5FVF9ESUFH X1BBRCwKLQlJTkVUX0RJQUdfTUFSSywKLQlJTkVUX0RJQUdfQkJSSU5GTywKLQlJTkVUX0RJQUdf Q0xBU1NfSUQsCisJSU5FVF9ESUFHX01BUkssCQkvKiBvbmx5IHdpdGggQ0FQX05FVF9BRE1JTiAq LworCUlORVRfRElBR19CQlJJTkZPLAkvKiByZXF1ZXN0IGFzIElORVRfRElBR19WRUdBU0lORk8g Ki8KKwlJTkVUX0RJQUdfQ0xBU1NfSUQsCS8qIHJlcXVlc3QgYXMgSU5FVF9ESUFHX1RDTEFTUyAq LwogCUlORVRfRElBR19NRDVTSUcsCiAJX19JTkVUX0RJQUdfTUFYLAogfTsKZGlmZiAtLWdpdCBh L25ldC9pcHY0L2luZXRfZGlhZy5jIGIvbmV0L2lwdjQvaW5ldF9kaWFnLmMKaW5kZXggMWE0ZTlm ZjAyNzYyLi41NzMxNjcwYzU2MGIgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2luZXRfZGlhZy5jCisr KyBiL25ldC9pcHY0L2luZXRfZGlhZy5jCkBAIC0xMDgsNiArMTA4LDcgQEAgc3RhdGljIHNpemVf dCBpbmV0X3NrX2F0dHJfc2l6ZShzdHJ1Y3Qgc29jayAqc2ssCiAJCSsgbmxhX3RvdGFsX3NpemUo MSkgLyogSU5FVF9ESUFHX1RPUyAqLwogCQkrIG5sYV90b3RhbF9zaXplKDEpIC8qIElORVRfRElB R19UQ0xBU1MgKi8KIAkJKyBubGFfdG90YWxfc2l6ZSg0KSAvKiBJTkVUX0RJQUdfTUFSSyAqLwor CQkrIG5sYV90b3RhbF9zaXplKDQpIC8qIElORVRfRElBR19DTEFTU19JRCAqLwogCQkrIG5sYV90 b3RhbF9zaXplKHNpemVvZihzdHJ1Y3QgaW5ldF9kaWFnX21lbWluZm8pKQogCQkrIG5sYV90b3Rh bF9zaXplKHNpemVvZihzdHJ1Y3QgaW5ldF9kaWFnX21zZykpCiAJCSsgbmxhX3RvdGFsX3NpemUo U0tfTUVNSU5GT19WQVJTICogc2l6ZW9mKHUzMikpCkBAIC0yODcsMTIgKzI4OCwxOSBAQCBpbnQg aW5ldF9za19kaWFnX2ZpbGwoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgaW5ldF9jb25uZWN0aW9u X3NvY2sgKmljc2ssCiAJCQlnb3RvIGVycm91dDsKIAl9CiAKLQlpZiAoZXh0ICYgKDEgPDwgKElO RVRfRElBR19DTEFTU19JRCAtIDEpKSkgeworCWlmIChleHQgJiAoMSA8PCAoSU5FVF9ESUFHX0NM QVNTX0lEIC0gMSkpIHx8CisJICAgIGV4dCAmICgxIDw8IChJTkVUX0RJQUdfVENMQVNTIC0gMSkp KSB7CiAJCXUzMiBjbGFzc2lkID0gMDsKIAogI2lmZGVmIENPTkZJR19TT0NLX0NHUk9VUF9EQVRB CiAJCWNsYXNzaWQgPSBzb2NrX2Nncm91cF9jbGFzc2lkKCZzay0+c2tfY2dycF9kYXRhKTsKICNl bmRpZgorCQkvKiBGYWxsYmFjayB0byBzb2NrZXQgcHJpb3JpdHkgaWYgY2xhc3MgaWQgaXNuJ3Qg c2V0LgorCQkgKiBDbGFzc2Z1bCBxZGlzY3MgdXNlIGl0IGFzIGRpcmVjdCByZWZlcmVuY2UgdG8g Y2xhc3MuCisJCSAqIEZvciBjZ3JvdXAyIGNsYXNzaWQgaXMgYWx3YXlzIHplcm8uCisJCSAqLwor CQlpZiAoIWNsYXNzaWQpCisJCQljbGFzc2lkID0gc2stPnNrX3ByaW9yaXR5OwogCiAJCWlmIChu bGFfcHV0X3UzMihza2IsIElORVRfRElBR19DTEFTU19JRCwgY2xhc3NpZCkpCiAJCQlnb3RvIGVy cm91dDsKZGlmZiAtLWdpdCBhL25ldC9zY3RwL2RpYWcuYyBiL25ldC9zY3RwL2RpYWcuYwppbmRl eCAwNzhmMDFhOGQ1ODIuLjQzNTg0N2Q5OGI1MSAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvZGlhZy5j CisrKyBiL25ldC9zY3RwL2RpYWcuYwpAQCAtMjU2LDYgKzI1Niw3IEBAIHN0YXRpYyBzaXplX3Qg aW5ldF9hc3NvY19hdHRyX3NpemUoc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2MpCiAJCSsg bmxhX3RvdGFsX3NpemUoMSkgLyogSU5FVF9ESUFHX1RPUyAqLwogCQkrIG5sYV90b3RhbF9zaXpl KDEpIC8qIElORVRfRElBR19UQ0xBU1MgKi8KIAkJKyBubGFfdG90YWxfc2l6ZSg0KSAvKiBJTkVU X0RJQUdfTUFSSyAqLworCQkrIG5sYV90b3RhbF9zaXplKDQpIC8qIElORVRfRElBR19DTEFTU19J RCAqLwogCQkrIG5sYV90b3RhbF9zaXplKGFkZHJsZW4gKiBhc29jLT5wZWVyLnRyYW5zcG9ydF9j b3VudCkKIAkJKyBubGFfdG90YWxfc2l6ZShhZGRybGVuICogYWRkcmNudCkKIAkJKyBubGFfdG90 YWxfc2l6ZShzaXplb2Yoc3RydWN0IGluZXRfZGlhZ19tZW1pbmZvKSkKLS0gCjIuMjAuMQoKCkZy b20gZDJmMjMwN2I5YzcyN2Y5YmMwZGEwMzIxNGZkYmM0OTFkZjgzOThjOSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogTGkgUm9uZ1FpbmcgPGxpcm9uZ3FpbmdAYmFpZHUuY29tPgpEYXRl OiBNb24sIDExIEZlYiAyMDE5IDE5OjMyOjIwICswODAwClN1YmplY3Q6IFtQQVRDSCAwMy8yMV0g aXB2NjogcHJvcGFnYXRlIGdlbmxtc2dfcmVwbHkgcmV0dXJuIGNvZGUKClsgVXBzdHJlYW0gY29t bWl0IGQxZjIwNzk4YTExOWJlNzE3NDY5NDliYTliMmUyZmYzMzBmZGMwMzggXQoKZ2VubG1zZ19y ZXBseSBjYW4gZmFpbCwgc28gcHJvcGFnYXRlIGl0cyByZXR1cm4gY29kZQoKRml4ZXM6IDkxNWQ3 ZTVlNTkzICgiaXB2Njogc3I6IGFkZCBjb2RlIGJhc2UgZm9yIGNvbnRyb2wgcGxhbmUgc3VwcG9y dCBvZiBTUi1JUHY2IikKU2lnbmVkLW9mZi1ieTogTGkgUm9uZ1FpbmcgPGxpcm9uZ3FpbmdAYmFp ZHUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L2lwdjYvc2VnNi5jIHwgNCArLS0tCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNl cnRpb24oKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvc2VnNi5jIGIv bmV0L2lwdjYvc2VnNi5jCmluZGV4IDhkMGJhNzU3YTQ2Yy4uOWIyZjI3MmNhMTY0IDEwMDY0NAot LS0gYS9uZXQvaXB2Ni9zZWc2LmMKKysrIGIvbmV0L2lwdjYvc2VnNi5jCkBAIC0yMjEsOSArMjIx LDcgQEAgc3RhdGljIGludCBzZWc2X2dlbmxfZ2V0X3R1bnNyYyhzdHJ1Y3Qgc2tfYnVmZiAqc2ti LCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKQogCXJjdV9yZWFkX3VubG9jaygpOwogCiAJZ2VubG1z Z19lbmQobXNnLCBoZHIpOwotCWdlbmxtc2dfcmVwbHkobXNnLCBpbmZvKTsKLQotCXJldHVybiAw OworCXJldHVybiBnZW5sbXNnX3JlcGx5KG1zZywgaW5mbyk7CiAKIG5sYV9wdXRfZmFpbHVyZToK IAlyY3VfcmVhZF91bmxvY2soKTsKLS0gCjIuMjAuMQoKCkZyb20gODZjMzMxZGQ5MjM5NWMxODQ2 MzJiODU0MGY0YmVlODhjMTg2ZDk5MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQXJ0 aHVyIEtpeWFub3Zza2kgPGFraXlhbm9AYW1hem9uLmNvbT4KRGF0ZTogTW9uLCAxMSBGZWIgMjAx OSAxOToxNzo0MyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDQvMjFdIG5ldDogZW5hOiBmaXggcmFj ZSBiZXR3ZWVuIGxpbmsgdXAgYW5kIGRldmljZQogaW5pdGFsaXphdGlvbgoKWyBVcHN0cmVhbSBj b21taXQgZTFmMWJkOWJmYmVkY2ZjZTQyOGVlN2UxYjgyYTZlYzEyZDRjMzg2MyBdCgpGaXggcmFj ZSBjb25kaXRpb24gYmV0d2VlbiBlbmFfdXBkYXRlX29uX2xpbmtfY2hhbmdlKCkgYW5kCmVuYV9y ZXN0b3JlX2RldmljZSgpLgoKVGhpcyByYWNlIGNhbiBvY2N1ciBpZiBsaW5rIG5vdGlmaWNhdGlv biBhcnJpdmVzIHdoaWxlIHRoZSBkcml2ZXIKaXMgcGVyZm9ybWluZyBhIHJlc2V0IHNlcXVlbmNl LiBJbiB0aGlzIGNhc2UgbGluayBjYW4gYmUgc2V0IHVwLAplbmFibGluZyB0aGUgZGV2aWNlLCBi ZWZvcmUgaXQgaXMgZnVsbHkgcmVzdG9yZWQuIElmIHBhY2tldHMgYXJlCnNlbnQgYXQgdGhpcyB0 aW1lLCB0aGUgZHJpdmVyIG1pZ2h0IGFjY2VzcyB1bmluaXRpYWxpemVkIGRhdGEKc3RydWN0dXJl cywgY2F1c2luZyBrZXJuZWwgY3Jhc2guCgpNb3ZlIHRoZSBjbGVhcmluZyBvZiBFTkFfRkxBR19P TkdPSU5HX1JFU0VUIGFuZCBuZXRpZl9jYXJyaWVyX29uKCkKYWZ0ZXIgZW5hX3VwKCkgdG8gZW5z dXJlIHRoZSBkZXZpY2UgaXMgcmVhZHkgd2hlbiBsaW5rIGlzIHNldCB1cC4KCkZpeGVzOiBkMThl NGY2ODM0NDUgKCJuZXQ6IGVuYTogZml4IHJhY2UgY29uZGl0aW9uIGJldHdlZW4gZGV2aWNlIHJl c2V0IGFuZCBsaW5rIHVwIHNldHVwIikKU2lnbmVkLW9mZi1ieTogQXJ0aHVyIEtpeWFub3Zza2kg PGFraXlhbm9AYW1hem9uLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2FtYXpvbi9lbmEvZW5h X25ldGRldi5jIHwgMTAgKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygr KSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWF6 b24vZW5hL2VuYV9uZXRkZXYuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtYXpvbi9lbmEvZW5h X25ldGRldi5jCmluZGV4IDRiNzMxMzFhMGYyMC4uMWI1ZjU5MWNmMGEyIDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9hbWF6b24vZW5hL2VuYV9uZXRkZXYuYworKysgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9hbWF6b24vZW5hL2VuYV9uZXRkZXYuYwpAQCAtMjU5NSwxMSArMjU5NSw2 IEBAIHN0YXRpYyBpbnQgZW5hX3Jlc3RvcmVfZGV2aWNlKHN0cnVjdCBlbmFfYWRhcHRlciAqYWRh cHRlcikKIAkJZ290byBlcnJfZGV2aWNlX2Rlc3Ryb3k7CiAJfQogCi0JY2xlYXJfYml0KEVOQV9G TEFHX09OR09JTkdfUkVTRVQsICZhZGFwdGVyLT5mbGFncyk7Ci0JLyogTWFrZSBzdXJlIHdlIGRv bid0IGhhdmUgYSByYWNlIHdpdGggQUVOUSBMaW5rcyBzdGF0ZSBoYW5kbGVyICovCi0JaWYgKHRl c3RfYml0KEVOQV9GTEFHX0xJTktfVVAsICZhZGFwdGVyLT5mbGFncykpCi0JCW5ldGlmX2NhcnJp ZXJfb24oYWRhcHRlci0+bmV0ZGV2KTsKLQogCXJjID0gZW5hX2VuYWJsZV9tc2l4X2FuZF9zZXRf YWRtaW5faW50ZXJydXB0cyhhZGFwdGVyLAogCQkJCQkJICAgICAgYWRhcHRlci0+bnVtX3F1ZXVl cyk7CiAJaWYgKHJjKSB7CkBAIC0yNjE2LDYgKzI2MTEsMTEgQEAgc3RhdGljIGludCBlbmFfcmVz dG9yZV9kZXZpY2Uoc3RydWN0IGVuYV9hZGFwdGVyICphZGFwdGVyKQogCX0KIAogCXNldF9iaXQo RU5BX0ZMQUdfREVWSUNFX1JVTk5JTkcsICZhZGFwdGVyLT5mbGFncyk7CisKKwljbGVhcl9iaXQo RU5BX0ZMQUdfT05HT0lOR19SRVNFVCwgJmFkYXB0ZXItPmZsYWdzKTsKKwlpZiAodGVzdF9iaXQo RU5BX0ZMQUdfTElOS19VUCwgJmFkYXB0ZXItPmZsYWdzKSkKKwkJbmV0aWZfY2Fycmllcl9vbihh ZGFwdGVyLT5uZXRkZXYpOworCiAJbW9kX3RpbWVyKCZhZGFwdGVyLT50aW1lcl9zZXJ2aWNlLCBy b3VuZF9qaWZmaWVzKGppZmZpZXMgKyBIWikpOwogCWRldl9lcnIoJnBkZXYtPmRldiwgIkRldmlj ZSByZXNldCBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5XG4iKTsKIAotLSAKMi4yMC4xCgoKRnJvbSBk MTgxN2Q2MDg0YWFhY2U4ZTZiMWZjYTE3ZDdhMWEyNWFkNzk2OWYyIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KRGF0ZTog TW9uLCAxMSBGZWIgMjAxOSAxODowNDoxNyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDUvMjFdIG5l dC9tbHg0X2VuOiBGb3JjZSBDSEVDS1NVTV9OT05FIGZvciBzaG9ydCBldGhlcm5ldAogZnJhbWVz CgpbIFVwc3RyZWFtIGNvbW1pdCAyOWRkZWQ4OWU4MGUzZmZmNjFlZmIzNGYwN2E4YTNmYmEzZWEx NDZkIF0KCldoZW4gYW4gZXRoZXJuZXQgZnJhbWUgaXMgcGFkZGVkIHRvIG1lZXQgdGhlIG1pbmlt dW0gZXRoZXJuZXQgZnJhbWUKc2l6ZSwgdGhlIHBhZGRpbmcgb2N0ZXRzIGFyZSBub3QgY292ZXJl ZCBieSB0aGUgaGFyZHdhcmUgY2hlY2tzdW0uCkZvcnR1bmF0ZWx5IHRoZSBwYWRkaW5nIG9jdGV0 cyBhcmUgdXN1YWxseSB6ZXJvJ3MsIHdoaWNoIGRvbid0IGFmZmVjdApjaGVja3N1bS4gSG93ZXZl ciwgaXQgaXMgbm90IGd1YXJhbnRlZWQuIEZvciBleGFtcGxlLCBzd2l0Y2hlcyBtaWdodApjaG9v c2UgdG8gbWFrZSBvdGhlciB1c2Ugb2YgdGhlc2Ugb2N0ZXRzLgpUaGlzIHJlcGVhdGVkbHkgY2F1 c2VzIGtlcm5lbCBoYXJkd2FyZSBjaGVja3N1bSBmYXVsdC4KClByaW9yIHRvIHRoZSBjaXRlZCBj b21taXQgYmVsb3csIHNrYiBjaGVja3N1bSB3YXMgZm9yY2VkIHRvIGJlCkNIRUNLU1VNX05PTkUg d2hlbiBwYWRkaW5nIGlzIGRldGVjdGVkLiBBZnRlciBpdCwgd2UgbmVlZCB0byBrZWVwCnNrYi0+ Y3N1bSB1cGRhdGVkLiBIb3dldmVyLCBmaXhpbmcgdXAgQ0hFQ0tTVU1fQ09NUExFVEUgcmVxdWly ZXMgdG8KdmVyaWZ5IGFuZCBwYXJzZSBJUCBoZWFkZXJzLCBpdCBkb2VzIG5vdCB3b3J0aCB0aGUg ZWZmb3J0IGFzIHRoZSBwYWNrZXRzCmFyZSBzbyBzbWFsbCB0aGF0IENIRUNLU1VNX0NPTVBMRVRF IGhhcyBubyBzaWduaWZpY2FudCBhZHZhbnRhZ2UuCgpGdXR1cmUgd29yazogd2hlbiByZXBvcnRp bmcgY2hlY2tzdW0gY29tcGxldGUgaXMgbm90IGFuIG9wdGlvbiBmb3IKSVAgbm9uLVRDUC9VRFAg cGFja2V0cywgd2UgY2FuIGFjdHVhbGx5IGZhbGxiYWNrIHRvIHJlcG9ydCBjaGVja3N1bQp1bm5l Y2Vzc2FyeSwgYnkgbG9va2luZyBhdCBjcWUgSVBPSyBiaXQuCgpGaXhlczogODgwNzhkOThkMWJi ICgibmV0OiBwc2tiX3RyaW1fcmNzdW0oKSBhbmQgQ0hFQ0tTVU1fQ09NUExFVEUgYXJlIGZyaWVu ZHMiKQpDYzogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5 OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogVGFy aXEgVG91a2FuIDx0YXJpcXRAbWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogRXJpYyBEdW1hemV0 IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 NC9lbl9yeC5jIHwgMjIgKysrKysrKysrKysrKysrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDIw IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl9yeC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NC9lbl9yeC5jCmluZGV4IGExYWVlYjgwOTRjMy4uZjVjZDk1Mzk5ODBmIDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2VuX3J4LmMKKysrIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl9yeC5jCkBAIC02MjAsNiArNjIw LDggQEAgc3RhdGljIGludCBnZXRfZml4ZWRfaXB2Nl9jc3VtKF9fd3N1bSBod19jaGVja3N1bSwg c3RydWN0IHNrX2J1ZmYgKnNrYiwKIH0KICNlbmRpZgogCisjZGVmaW5lIHNob3J0X2ZyYW1lKHNp emUpICgoc2l6ZSkgPD0gRVRIX1pMRU4gKyBFVEhfRkNTX0xFTikKKwogLyogV2UgcmVhY2ggdGhp cyBmdW5jdGlvbiBvbmx5IGFmdGVyIGNoZWNraW5nIHRoYXQgYW55IG9mCiAgKiB0aGUgKElQdjQg fCBJUHY2KSBiaXRzIGFyZSBzZXQgaW4gY3FlLT5zdGF0dXMuCiAgKi8KQEAgLTYyNyw5ICs2Mjks MjAgQEAgc3RhdGljIGludCBjaGVja19jc3VtKHN0cnVjdCBtbHg0X2NxZSAqY3FlLCBzdHJ1Y3Qg c2tfYnVmZiAqc2tiLCB2b2lkICp2YSwKIAkJICAgICAgbmV0ZGV2X2ZlYXR1cmVzX3QgZGV2X2Zl YXR1cmVzKQogewogCV9fd3N1bSBod19jaGVja3N1bSA9IDA7CisJdm9pZCAqaGRyOworCisJLyog Q1FFIGNzdW0gZG9lc24ndCBjb3ZlciBwYWRkaW5nIG9jdGV0cyBpbiBzaG9ydCBldGhlcm5ldAor CSAqIGZyYW1lcy4gQW5kIHRoZSBwYWQgZmllbGQgaXMgYXBwZW5kZWQgcHJpb3IgdG8gY2FsY3Vs YXRpbmcKKwkgKiBhbmQgYXBwZW5kaW5nIHRoZSBGQ1MgZmllbGQuCisJICoKKwkgKiBEZXRlY3Rp bmcgdGhlc2UgcGFkZGVkIGZyYW1lcyByZXF1aXJlcyB0byB2ZXJpZnkgYW5kIHBhcnNlCisJICog SVAgaGVhZGVycywgc28gd2Ugc2ltcGx5IGZvcmNlIGFsbCB0aG9zZSBzbWFsbCBmcmFtZXMgdG8g c2tpcAorCSAqIGNoZWNrc3VtIGNvbXBsZXRlLgorCSAqLworCWlmIChzaG9ydF9mcmFtZShza2It PmxlbikpCisJCXJldHVybiAtRUlOVkFMOwogCi0Jdm9pZCAqaGRyID0gKHU4ICopdmEgKyBzaXpl b2Yoc3RydWN0IGV0aGhkcik7Ci0KKwloZHIgPSAodTggKil2YSArIHNpemVvZihzdHJ1Y3QgZXRo aGRyKTsKIAlod19jaGVja3N1bSA9IGNzdW1fdW5mb2xkKChfX2ZvcmNlIF9fc3VtMTYpY3FlLT5j aGVja3N1bSk7CiAKIAlpZiAoY3FlLT52bGFuX215X3FwbiAmIGNwdV90b19iZTMyKE1MWDRfQ1FF X0NWTEFOX1BSRVNFTlRfTUFTSykgJiYKQEAgLTgyMiw2ICs4MzUsMTEgQEAgaW50IG1seDRfZW5f cHJvY2Vzc19yeF9jcShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgbWx4NF9lbl9jcSAq Y3EsIGludCBidWQKIAkJc2tiX3JlY29yZF9yeF9xdWV1ZShza2IsIGNxX3JpbmcpOwogCiAJCWlm IChsaWtlbHkoZGV2LT5mZWF0dXJlcyAmIE5FVElGX0ZfUlhDU1VNKSkgeworCQkJLyogVE9ETzog Rm9yIElQIG5vbiBUQ1AvVURQIHBhY2tldHMgd2hlbiBjc3VtIGNvbXBsZXRlIGlzCisJCQkgKiBu b3QgYW4gb3B0aW9uIChub3Qgc3VwcG9ydGVkIG9yIGFueSBvdGhlciByZWFzb24pIHdlIGNhbgor CQkJICogYWN0dWFsbHkgY2hlY2sgY3FlIElQT0sgc3RhdHVzIGJpdCBhbmQgcmVwb3J0CisJCQkg KiBDSEVDS1NVTV9VTk5FQ0VTU0FSWSByYXRoZXIgdGhhbiBDSEVDS1NVTV9OT05FCisJCQkgKi8K IAkJCWlmICgoY3FlLT5zdGF0dXMgJiBjcHVfdG9fYmUxNihNTFg0X0NRRV9TVEFUVVNfVENQIHwK IAkJCQkJCSAgICAgICBNTFg0X0NRRV9TVEFUVVNfVURQKSkgJiYKIAkJCSAgICAoY3FlLT5zdGF0 dXMgJiBjcHVfdG9fYmUxNihNTFg0X0NRRV9TVEFUVVNfSVBPSykpICYmCi0tIAoyLjIwLjEKCgpG cm9tIDE0MmQxMjA4YTFlOWY2OTRlMzM2ODM0ZDA2MWM5ZGFlNDdhMTJmZmYgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IFRvbmdoYW8gWmhhbmcgPHhpYW5neGlhLm0ueXVlQGdtYWlsLmNv bT4KRGF0ZTogTW9uLCAyOCBKYW4gMjAxOSAxNToyODowNiAtMDgwMApTdWJqZWN0OiBbUEFUQ0gg MDYvMjFdIG5ldC9tbHg1ZTogRG9uJ3Qgb3ZlcndyaXRlIHBlZGl0IGFjdGlvbiB3aGVuIG11bHRp cGxlCiBwZWRpdCB1c2VkCgpbIFVwc3RyZWFtIGNvbW1pdCAyMThkMDVjZTMyNmY5ZTFiNDBhNTYw ODU0MzFmYTEwNjhiNDNkNWQ5IF0KCkluIHNvbWUgY2FzZSwgd2UgbWF5IHVzZSBtdWx0aXBsZSBw ZWRpdCBhY3Rpb25zIHRvIG1vZGlmeSBwYWNrZXRzLgpUaGUgY29tbWFuZCBzaG93biBhcyBiZWxv dzogdGhlIGxhc3QgcGVkaXQgYWN0aW9uIGlzIGVmZmVjdGl2ZS4KCiQgdGMgZmlsdGVyIGFkZCBk ZXYgbmV0ZGV2X3JlcCBwYXJlbnQgZmZmZjogcHJvdG9jb2wgaXAgcHJpbyAxICAgIFwKCWZsb3dl ciBza2lwX3N3IGlwX3Byb3RvIGljbXAgZHN0X2lwIDMuMy4zLjMgICAgICAgIFwKCWFjdGlvbiBw ZWRpdCBleCBtdW5nZSBpcCBkc3Qgc2V0IDE5Mi4xNjguMS4xMDAgcGlwZSAgICBcCglhY3Rpb24g cGVkaXQgZXggbXVuZ2UgZXRoIHNyYyBzZXQgMDA6MDA6MDA6MDA6MDA6MDEgcGlwZSAgICBcCglh Y3Rpb24gcGVkaXQgZXggbXVuZ2UgZXRoIGRzdCBzZXQgMDA6MDA6MDA6MDA6MDA6MDIgcGlwZSAg ICBcCglhY3Rpb24gY3N1bSBpcCBwaXBlICAgIFwKCWFjdGlvbiB0dW5uZWxfa2V5IHNldCBzcmNf aXAgMS4xLjEuMTAwIGRzdF9pcCAxLjEuMS4yMDAgZHN0X3BvcnQgNDc4OSBpZCAxMDAgXAoJYWN0 aW9uIG1pcnJlZCBlZ3Jlc3MgcmVkaXJlY3QgZGV2IHZ4bGFuMAoKVG8gZml4IGl0LCB3ZSBhZGQg bWF4X21vZF9oZHJfYWN0aW9ucyB0byBtbHg1ZV90Y19mbG93X3BhcnNlX2F0dHIgc3RydWN0aW9u LAptYXhfbW9kX2hkcl9hY3Rpb25zIHdpbGwgc3RvcmUgdGhlIG1heCBwZWRpdCBhY3Rpb24gbnVt YmVyIHdlIHN1cHBvcnQgYW5kCm51bV9tb2RfaGRyX2FjdGlvbnMgaW5kaWNhdGVzIGhvdyBtYW55 IHBlZGl0IGFjdGlvbiB3ZSB1c2VkLCBhbmQgc3RvcmUgYWxsCnBlZGl0IGFjdGlvbiB0byBtb2Rf aGRyX2FjdGlvbnMuCgpGaXhlczogZDc5YjZkZjZiMTBhICgibmV0L21seDVlOiBBZGQgcGFyc2lu ZyBvZiBUQyBwZWRpdCBhY3Rpb25zIHRvIEhXIGZvcm1hdCIpCkNjOiBPciBHZXJsaXR6IDxvZ2Vy bGl0ekBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFRvbmdoYW8gWmhhbmcgPHhpYW5neGlh Lm0ueXVlQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IE9yIEdlcmxpdHogPG9nZXJsaXR6QG1lbGxh bm94LmNvbT4KQWNrZWQtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog Li4uL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYyAgIHwgMjUgKysrKysr KysrKystLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDEwIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUv Y29yZS9lbl90Yy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vu X3RjLmMKaW5kZXggMzA5MmM1OWMwZGM3Li45ZjdmODQyNWY2NzYgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90Yy5jCisrKyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90Yy5jCkBAIC05Niw2ICs5Niw3IEBA IHN0cnVjdCBtbHg1ZV90Y19mbG93X3BhcnNlX2F0dHIgewogCXN0cnVjdCBpcF90dW5uZWxfaW5m byB0dW5faW5mbzsKIAlzdHJ1Y3QgbWx4NV9mbG93X3NwZWMgc3BlYzsKIAlpbnQgbnVtX21vZF9o ZHJfYWN0aW9uczsKKwlpbnQgbWF4X21vZF9oZHJfYWN0aW9uczsKIAl2b2lkICptb2RfaGRyX2Fj dGlvbnM7CiAJaW50IG1pcnJlZF9pZmluZGV4OwogfTsKQEAgLTE3NDIsOSArMTc0Myw5IEBAIHN0 YXRpYyBzdHJ1Y3QgbWx4NV9maWVsZHMgZmllbGRzW10gPSB7CiAJT0ZGTE9BRChVRFBfRFBPUlQs IDIsIHVkcC5kZXN0LCAgIDApLAogfTsKIAotLyogT24gaW5wdXQgYXR0ci0+bnVtX21vZF9oZHJf YWN0aW9ucyB0ZWxscyBob3cgbWFueSBIVyBhY3Rpb25zIGNhbiBiZSBwYXJzZWQgYXQKLSAqIG1h eCBmcm9tIHRoZSBTVyBwZWRpdCBhY3Rpb24uIE9uIHN1Y2Nlc3MsIGl0IHNheXMgaG93IG1hbnkg SFcgYWN0aW9ucyB3ZXJlCi0gKiBhY3R1YWxseSBwYXJzZWQuCisvKiBPbiBpbnB1dCBhdHRyLT5t YXhfbW9kX2hkcl9hY3Rpb25zIHRlbGxzIGhvdyBtYW55IEhXIGFjdGlvbnMgY2FuIGJlIHBhcnNl ZCBhdAorICogbWF4IGZyb20gdGhlIFNXIHBlZGl0IGFjdGlvbi4gT24gc3VjY2VzcywgYXR0ci0+ bnVtX21vZF9oZHJfYWN0aW9ucworICogc2F5cyBob3cgbWFueSBIVyBhY3Rpb25zIHdlcmUgYWN0 dWFsbHkgcGFyc2VkLgogICovCiBzdGF0aWMgaW50IG9mZmxvYWRfcGVkaXRfZmllbGRzKHN0cnVj dCBwZWRpdF9oZWFkZXJzICptYXNrcywKIAkJCQlzdHJ1Y3QgcGVkaXRfaGVhZGVycyAqdmFscywK QEAgLTE3NjcsOSArMTc2OCwxMSBAQCBzdGF0aWMgaW50IG9mZmxvYWRfcGVkaXRfZmllbGRzKHN0 cnVjdCBwZWRpdF9oZWFkZXJzICptYXNrcywKIAlhZGRfdmFscyA9ICZ2YWxzW1RDQV9QRURJVF9L RVlfRVhfQ01EX0FERF07CiAKIAlhY3Rpb25fc2l6ZSA9IE1MWDVfVU5fU1pfQllURVMoc2V0X2Fj dGlvbl9pbl9hZGRfYWN0aW9uX2luX2F1dG8pOwotCWFjdGlvbiA9IHBhcnNlX2F0dHItPm1vZF9o ZHJfYWN0aW9uczsKLQltYXhfYWN0aW9ucyA9IHBhcnNlX2F0dHItPm51bV9tb2RfaGRyX2FjdGlv bnM7Ci0JbmFjdGlvbnMgPSAwOworCWFjdGlvbiA9IHBhcnNlX2F0dHItPm1vZF9oZHJfYWN0aW9u cyArCisJCSBwYXJzZV9hdHRyLT5udW1fbW9kX2hkcl9hY3Rpb25zICogYWN0aW9uX3NpemU7CisK KwltYXhfYWN0aW9ucyA9IHBhcnNlX2F0dHItPm1heF9tb2RfaGRyX2FjdGlvbnM7CisJbmFjdGlv bnMgPSBwYXJzZV9hdHRyLT5udW1fbW9kX2hkcl9hY3Rpb25zOwogCiAJZm9yIChpID0gMDsgaSA8 IEFSUkFZX1NJWkUoZmllbGRzKTsgaSsrKSB7CiAJCWYgPSAmZmllbGRzW2ldOwpAQCAtMTg3NCw3 ICsxODc3LDcgQEAgc3RhdGljIGludCBhbGxvY19tb2RfaGRyX2FjdGlvbnMoc3RydWN0IG1seDVl X3ByaXYgKnByaXYsCiAJaWYgKCFwYXJzZV9hdHRyLT5tb2RfaGRyX2FjdGlvbnMpCiAJCXJldHVy biAtRU5PTUVNOwogCi0JcGFyc2VfYXR0ci0+bnVtX21vZF9oZHJfYWN0aW9ucyA9IG1heF9hY3Rp b25zOworCXBhcnNlX2F0dHItPm1heF9tb2RfaGRyX2FjdGlvbnMgPSBtYXhfYWN0aW9uczsKIAly ZXR1cm4gMDsKIH0KIApAQCAtMTkxOCw5ICsxOTIxLDExIEBAIHN0YXRpYyBpbnQgcGFyc2VfdGNf cGVkaXRfYWN0aW9uKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LAogCQkJZ290byBvdXRfZXJyOwog CX0KIAotCWVyciA9IGFsbG9jX21vZF9oZHJfYWN0aW9ucyhwcml2LCBhLCBuYW1lc3BhY2UsIHBh cnNlX2F0dHIpOwotCWlmIChlcnIpCi0JCWdvdG8gb3V0X2VycjsKKwlpZiAoIXBhcnNlX2F0dHIt Pm1vZF9oZHJfYWN0aW9ucykgeworCQllcnIgPSBhbGxvY19tb2RfaGRyX2FjdGlvbnMocHJpdiwg YSwgbmFtZXNwYWNlLCBwYXJzZV9hdHRyKTsKKwkJaWYgKGVycikKKwkJCWdvdG8gb3V0X2VycjsK Kwl9CiAKIAllcnIgPSBvZmZsb2FkX3BlZGl0X2ZpZWxkcyhtYXNrcywgdmFscywgcGFyc2VfYXR0 cik7CiAJaWYgKGVyciA8IDApCi0tIAoyLjIwLjEKCgpGcm9tIGE5ZjRiODI3MTQzNDE1ZGEyNzIz NzFkOWYwZDMyMzVlNTU0MTlkOWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEthbCBD b25sZXkgPGthbC5jb25sZXlAZGVjdHJpcy5jb20+CkRhdGU6IFN1biwgMTAgRmViIDIwMTkgMDk6 NTc6MTEgKzAxMDAKU3ViamVjdDogW1BBVENIIDA3LzIxXSBuZXQvcGFja2V0OiBmaXggNGdiIGJ1 ZmZlciBsaW1pdCBkdWUgdG8gb3ZlcmZsb3cgY2hlY2sKClsgVXBzdHJlYW0gY29tbWl0IGZjNjI4 MTRkNjkwY2Y2MjE4OTg1NDQ2NGY0YmQwNzQ1N2Q1ZTllNTAgXQoKV2hlbiBjYWxjdWxhdGluZyBy Yi0+ZnJhbWVzX3Blcl9ibG9jayAqIHJlcS0+dHBfYmxvY2tfbnIgdGhlIHJlc3VsdApjYW4gb3Zl cmZsb3cuIENoZWNrIGl0IGZvciBvdmVyZmxvdyB3aXRob3V0IGxpbWl0aW5nIHRoZSB0b3RhbCBi dWZmZXIKc2l6ZSB0byBVSU5UX01BWC4KClRoaXMgY2hhbmdlIGZpeGVzIHN1cHBvcnQgZm9yIHBh Y2tldCByaW5nIGJ1ZmZlcnMgPj0gVUlOVF9NQVguCgpGaXhlczogOGY4ZDI4ZTRkNmQ4ICgibmV0 L3BhY2tldDogZml4IG92ZXJmbG93IGluIGNoZWNrIGZvciB0cF9mcmFtZV9uciIpClNpZ25lZC1v ZmYtYnk6IEthbCBDb25sZXkgPGthbC5jb25sZXlAZGVjdHJpcy5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvcGFja2V0L2Fm X3BhY2tldC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0 aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3BhY2tldC9hZl9wYWNrZXQuYyBiL25ldC9wYWNrZXQv YWZfcGFja2V0LmMKaW5kZXggYzc2YzIxNjA0ZmZkLi5mZDE2ZmI4MzZkZjIgMTAwNjQ0Ci0tLSBh L25ldC9wYWNrZXQvYWZfcGFja2V0LmMKKysrIGIvbmV0L3BhY2tldC9hZl9wYWNrZXQuYwpAQCAt NDI3NSw3ICs0Mjc1LDcgQEAgc3RhdGljIGludCBwYWNrZXRfc2V0X3Jpbmcoc3RydWN0IHNvY2sg KnNrLCB1bmlvbiB0cGFja2V0X3JlcV91ICpyZXFfdSwKIAkJcmItPmZyYW1lc19wZXJfYmxvY2sg PSByZXEtPnRwX2Jsb2NrX3NpemUgLyByZXEtPnRwX2ZyYW1lX3NpemU7CiAJCWlmICh1bmxpa2Vs eShyYi0+ZnJhbWVzX3Blcl9ibG9jayA9PSAwKSkKIAkJCWdvdG8gb3V0OwotCQlpZiAodW5saWtl bHkocmVxLT50cF9ibG9ja19zaXplID4gVUlOVF9NQVggLyByZXEtPnRwX2Jsb2NrX25yKSkKKwkJ aWYgKHVubGlrZWx5KHJiLT5mcmFtZXNfcGVyX2Jsb2NrID4gVUlOVF9NQVggLyByZXEtPnRwX2Js b2NrX25yKSkKIAkJCWdvdG8gb3V0OwogCQlpZiAodW5saWtlbHkoKHJiLT5mcmFtZXNfcGVyX2Js b2NrICogcmVxLT50cF9ibG9ja19ucikgIT0KIAkJCQkJcmVxLT50cF9mcmFtZV9ucikpCi0tIAoy LjIwLjEKCgpGcm9tIDU1OWUyYTVmNDFkYjExZTU0NWY0Mzg5ODk5Mzg1NzQ2Yjc3NTI5OTggTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFJ1c3NlbGwgS2luZyA8cm1rK2tlcm5lbEBhcm1s aW51eC5vcmcudWs+CkRhdGU6IFdlZCwgNiBGZWIgMjAxOSAxMDo1MjozMCArMDAwMApTdWJqZWN0 OiBbUEFUQ0ggMDgvMjFdIG5ldDogc2ZwOiBkbyBub3QgcHJvYmUgU0ZQIG1vZHVsZSBiZWZvcmUg d2UncmUgYXR0YWNoZWQKClsgVXBzdHJlYW0gY29tbWl0IGI1YmZjMjFhZjVjYjNkNTNmOWNlZTBl ZjgyZWFhNDM3NjJhOTBmODEgXQoKV2hlbiB3ZSBwcm9iZSBhIFNGUCBtb2R1bGUsIHdlIGV4cGVj dCB0byBiZSBhYmxlIHRvIGNhbGwgdGhlIHVwc3RyZWFtCmRldmljZSdzIG1vZHVsZV9pbnNlcnQo KSBmdW5jdGlvbiBzbyB0aGF0IHRoZSB1cHN0cmVhbSBsaW5rIGNhbiBiZQpjb25maWd1cmVkLiAg SG93ZXZlciwgd2hlbiB0aGUgdXBzdHJlYW0gZGV2aWNlIGlzIGRlbGF5ZWQsIHdlIGN1cnJlbnRs eQptYXkgZW5kIHVwIHByb2JpbmcgdGhlIG1vZHVsZSBiZWZvcmUgdGhlIHVwc3RyZWFtIGRldmlj ZSBpcyBhdmFpbGFibGUsCmFuZCBsb3NlIHRoZSBtb2R1bGVfaW5zZXJ0KCkgY2FsbC4KCkF2b2lk IHRoaXMgYnkgaG9sZGluZyBvZmYgcHJvYmluZyB0aGUgbW9kdWxlIHVudGlsIHRoZSBTRlAgYnVz IGlzCnByb3Blcmx5IGNvbm5lY3RlZCB0byBib3RoIHRoZSBTRlAgc29ja2V0IGRyaXZlciBhbmQg dGhlIHVwc3RyZWFtCmRyaXZlci4KClNpZ25lZC1vZmYtYnk6IFJ1c3NlbGwgS2luZyA8cm1rK2tl cm5lbEBhcm1saW51eC5vcmcudWs+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9waHkvc2ZwLWJ1cy5jIHwgIDIgKysK IGRyaXZlcnMvbmV0L3BoeS9zZnAuYyAgICAgfCAzMCArKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0KIGRyaXZlcnMvbmV0L3BoeS9zZnAuaCAgICAgfCAgMiArKwogMyBmaWxlcyBjaGFuZ2Vk LCAyNSBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L3BoeS9zZnAtYnVzLmMgYi9kcml2ZXJzL25ldC9waHkvc2ZwLWJ1cy5jCmluZGV4IGFkOWRi NjUyODc0ZC4uZmVmNzAxYmZhZDYyIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9waHkvc2ZwLWJ1 cy5jCisrKyBiL2RyaXZlcnMvbmV0L3BoeS9zZnAtYnVzLmMKQEAgLTM0Nyw2ICszNDcsNyBAQCBz dGF0aWMgaW50IHNmcF9yZWdpc3Rlcl9idXMoc3RydWN0IHNmcF9idXMgKmJ1cykKIAkJCQlyZXR1 cm4gcmV0OwogCQl9CiAJfQorCWJ1cy0+c29ja2V0X29wcy0+YXR0YWNoKGJ1cy0+c2ZwKTsKIAlp ZiAoYnVzLT5zdGFydGVkKQogCQlidXMtPnNvY2tldF9vcHMtPnN0YXJ0KGJ1cy0+c2ZwKTsKIAli dXMtPm5ldGRldi0+c2ZwX2J1cyA9IGJ1czsKQEAgLTM2Miw2ICszNjMsNyBAQCBzdGF0aWMgdm9p ZCBzZnBfdW5yZWdpc3Rlcl9idXMoc3RydWN0IHNmcF9idXMgKmJ1cykKIAlpZiAoYnVzLT5yZWdp c3RlcmVkKSB7CiAJCWlmIChidXMtPnN0YXJ0ZWQpCiAJCQlidXMtPnNvY2tldF9vcHMtPnN0b3Ao YnVzLT5zZnApOworCQlidXMtPnNvY2tldF9vcHMtPmRldGFjaChidXMtPnNmcCk7CiAJCWlmIChi dXMtPnBoeWRldiAmJiBvcHMgJiYgb3BzLT5kaXNjb25uZWN0X3BoeSkKIAkJCW9wcy0+ZGlzY29u bmVjdF9waHkoYnVzLT51cHN0cmVhbSk7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5 L3NmcC5jIGIvZHJpdmVycy9uZXQvcGh5L3NmcC5jCmluZGV4IGZkOGJiOTk4YWU1Mi4uNjhjOGZi ZjA5OWY4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9waHkvc2ZwLmMKKysrIGIvZHJpdmVycy9u ZXQvcGh5L3NmcC5jCkBAIC0xODQsNiArMTg0LDcgQEAgc3RydWN0IHNmcCB7CiAKIAlzdHJ1Y3Qg Z3Bpb19kZXNjICpncGlvW0dQSU9fTUFYXTsKIAorCWJvb2wgYXR0YWNoZWQ7CiAJdW5zaWduZWQg aW50IHN0YXRlOwogCXN0cnVjdCBkZWxheWVkX3dvcmsgcG9sbDsKIAlzdHJ1Y3QgZGVsYXllZF93 b3JrIHRpbWVvdXQ7CkBAIC0xNDc1LDcgKzE0NzYsNyBAQCBzdGF0aWMgdm9pZCBzZnBfc21fZXZl bnQoc3RydWN0IHNmcCAqc2ZwLCB1bnNpZ25lZCBpbnQgZXZlbnQpCiAJICovCiAJc3dpdGNoIChz ZnAtPnNtX21vZF9zdGF0ZSkgewogCWRlZmF1bHQ6Ci0JCWlmIChldmVudCA9PSBTRlBfRV9JTlNF UlQpIHsKKwkJaWYgKGV2ZW50ID09IFNGUF9FX0lOU0VSVCAmJiBzZnAtPmF0dGFjaGVkKSB7CiAJ CQlzZnBfbW9kdWxlX3R4X2Rpc2FibGUoc2ZwKTsKIAkJCXNmcF9zbV9pbnNfbmV4dChzZnAsIFNG UF9NT0RfUFJPQkUsIFRfUFJPQkVfSU5JVCk7CiAJCX0KQEAgLTE2MDcsNiArMTYwOCwxOSBAQCBz dGF0aWMgdm9pZCBzZnBfc21fZXZlbnQoc3RydWN0IHNmcCAqc2ZwLCB1bnNpZ25lZCBpbnQgZXZl bnQpCiAJbXV0ZXhfdW5sb2NrKCZzZnAtPnNtX211dGV4KTsKIH0KIAorc3RhdGljIHZvaWQgc2Zw X2F0dGFjaChzdHJ1Y3Qgc2ZwICpzZnApCit7CisJc2ZwLT5hdHRhY2hlZCA9IHRydWU7CisJaWYg KHNmcC0+c3RhdGUgJiBTRlBfRl9QUkVTRU5UKQorCQlzZnBfc21fZXZlbnQoc2ZwLCBTRlBfRV9J TlNFUlQpOworfQorCitzdGF0aWMgdm9pZCBzZnBfZGV0YWNoKHN0cnVjdCBzZnAgKnNmcCkKK3sK KwlzZnAtPmF0dGFjaGVkID0gZmFsc2U7CisJc2ZwX3NtX2V2ZW50KHNmcCwgU0ZQX0VfUkVNT1ZF KTsKK30KKwogc3RhdGljIHZvaWQgc2ZwX3N0YXJ0KHN0cnVjdCBzZnAgKnNmcCkKIHsKIAlzZnBf c21fZXZlbnQoc2ZwLCBTRlBfRV9ERVZfVVApOwpAQCAtMTY2Nyw2ICsxNjgxLDggQEAgc3RhdGlj IGludCBzZnBfbW9kdWxlX2VlcHJvbShzdHJ1Y3Qgc2ZwICpzZnAsIHN0cnVjdCBldGh0b29sX2Vl cHJvbSAqZWUsCiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2ZwX3NvY2tldF9vcHMgc2ZwX21v ZHVsZV9vcHMgPSB7CisJLmF0dGFjaCA9IHNmcF9hdHRhY2gsCisJLmRldGFjaCA9IHNmcF9kZXRh Y2gsCiAJLnN0YXJ0ID0gc2ZwX3N0YXJ0LAogCS5zdG9wID0gc2ZwX3N0b3AsCiAJLm1vZHVsZV9p bmZvID0gc2ZwX21vZHVsZV9pbmZvLApAQCAtMTgzNCwxMCArMTg1MCw2IEBAIHN0YXRpYyBpbnQg c2ZwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJZGV2X2luZm8oc2ZwLT5k ZXYsICJIb3N0IG1heGltdW0gcG93ZXIgJXUuJXVXXG4iLAogCQkgc2ZwLT5tYXhfcG93ZXJfbVcg LyAxMDAwLCAoc2ZwLT5tYXhfcG93ZXJfbVcgLyAxMDApICUgMTApOwogCi0Jc2ZwLT5zZnBfYnVz ID0gc2ZwX3JlZ2lzdGVyX3NvY2tldChzZnAtPmRldiwgc2ZwLCAmc2ZwX21vZHVsZV9vcHMpOwot CWlmICghc2ZwLT5zZnBfYnVzKQotCQlyZXR1cm4gLUVOT01FTTsKLQogCS8qIEdldCB0aGUgaW5p dGlhbCBzdGF0ZSwgYW5kIGFsd2F5cyBzaWduYWwgVFggZGlzYWJsZSwKIAkgKiBzaW5jZSB0aGUg bmV0d29yayBpbnRlcmZhY2Ugd2lsbCBub3QgYmUgdXAuCiAJICovCkBAIC0xODQ4LDEwICsxODYw LDYgQEAgc3RhdGljIGludCBzZnBfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikK IAkJc2ZwLT5zdGF0ZSB8PSBTRlBfRl9SQVRFX1NFTEVDVDsKIAlzZnBfc2V0X3N0YXRlKHNmcCwg c2ZwLT5zdGF0ZSk7CiAJc2ZwX21vZHVsZV90eF9kaXNhYmxlKHNmcCk7Ci0JcnRubF9sb2NrKCk7 Ci0JaWYgKHNmcC0+c3RhdGUgJiBTRlBfRl9QUkVTRU5UKQotCQlzZnBfc21fZXZlbnQoc2ZwLCBT RlBfRV9JTlNFUlQpOwotCXJ0bmxfdW5sb2NrKCk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgR1BJT19N QVg7IGkrKykgewogCQlpZiAoZ3Bpb19mbGFnc1tpXSAhPSBHUElPRF9JTiB8fCAhc2ZwLT5ncGlv W2ldKQpAQCAtMTg4NCw2ICsxODkyLDEwIEBAIHN0YXRpYyBpbnQgc2ZwX3Byb2JlKHN0cnVjdCBw bGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCWRldl93YXJuKHNmcC0+ZGV2LAogCQkJICJObyB0eF9k aXNhYmxlIHBpbjogU0ZQIG1vZHVsZXMgd2lsbCBhbHdheXMgYmUgZW1pdHRpbmcuXG4iKTsKIAor CXNmcC0+c2ZwX2J1cyA9IHNmcF9yZWdpc3Rlcl9zb2NrZXQoc2ZwLT5kZXYsIHNmcCwgJnNmcF9t b2R1bGVfb3BzKTsKKwlpZiAoIXNmcC0+c2ZwX2J1cykKKwkJcmV0dXJuIC1FTk9NRU07CisKIAly ZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L3NmcC5oIGIvZHJpdmVy cy9uZXQvcGh5L3NmcC5oCmluZGV4IDMxYjBhY2YzMzdlMi4uNjRmNTRiMGJiZDhjIDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC9waHkvc2ZwLmgKKysrIGIvZHJpdmVycy9uZXQvcGh5L3NmcC5oCkBA IC03LDYgKzcsOCBAQAogc3RydWN0IHNmcDsKIAogc3RydWN0IHNmcF9zb2NrZXRfb3BzIHsKKwl2 b2lkICgqYXR0YWNoKShzdHJ1Y3Qgc2ZwICpzZnApOworCXZvaWQgKCpkZXRhY2gpKHN0cnVjdCBz ZnAgKnNmcCk7CiAJdm9pZCAoKnN0YXJ0KShzdHJ1Y3Qgc2ZwICpzZnApOwogCXZvaWQgKCpzdG9w KShzdHJ1Y3Qgc2ZwICpzZnApOwogCWludCAoKm1vZHVsZV9pbmZvKShzdHJ1Y3Qgc2ZwICpzZnAs IHN0cnVjdCBldGh0b29sX21vZGluZm8gKm1vZGluZm8pOwotLSAKMi4yMC4xCgoKRnJvbSA1NzBk NWQ0ZjMyNDhiM2RjNjdmYzZiODBhZmJlZTRiZGIwNGU3MGNmIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMTIg RmViIDIwMTkgMTg6NDc6MzAgKzA4MDAKU3ViamVjdDogW1BBVENIIDA5LzIxXSBzY3RwOiBjYWxs IGdzb19yZXNldF9jaGVja3N1bSB3aGVuIGNvbXB1dGluZyBjaGVja3N1bQogaW4gc2N0cF9nc29f c2VnbWVudAoKWyBVcHN0cmVhbSBjb21taXQgZmMyMjhhYmMyMzQ3ZTEwNmE0NGMwZTliMjlhYjcw YjcxMmM0Y2E1MSBdCgpKaWFubGluIHJlcG9ydGVkIGEgcGFuaWMgd2hlbiBydW5uaW5nIHNjdHAg Z3NvIG92ZXIgZ3JlIG92ZXIgdmxhbiBkZXZpY2U6CgogIFsgICA4NC43NzI5MzBdIFJJUDogMDAx MDpkb19jc3VtKzB4NmQvMHgxNzAKICBbICAgODQuNzkwNjA1XSBDYWxsIFRyYWNlOgogIFsgICA4 NC43OTEwNTRdICBjc3VtX3BhcnRpYWwrMHhkLzB4MjAKICBbICAgODQuNzkxNjU3XSAgZ3JlX2dz b19zZWdtZW50KzB4MmMzLzB4MzkwCiAgWyAgIDg0Ljc5MjM2NF0gIGluZXRfZ3NvX3NlZ21lbnQr MHgxNjEvMHgzZTAKICBbICAgODQuNzkzMDcxXSAgc2tiX21hY19nc29fc2VnbWVudCsweGI4LzB4 MTIwCiAgWyAgIDg0Ljc5Mzg0Nl0gIF9fc2tiX2dzb19zZWdtZW50KzB4N2UvMHgxODAKICBbICAg ODQuNzk0NTgxXSAgdmFsaWRhdGVfeG1pdF9za2IrMHgxNDEvMHgyZTAKICBbICAgODQuNzk1Mjk3 XSAgX19kZXZfcXVldWVfeG1pdCsweDI1OC8weDhmMAogIFsgICA4NC43OTU5NDldICA/IGV0aF9o ZWFkZXIrMHgyNi8weGMwCiAgWyAgIDg0Ljc5NjU4MV0gIGlwX2ZpbmlzaF9vdXRwdXQyKzB4MTk2 LzB4NDMwCiAgWyAgIDg0Ljc5NzI5NV0gID8gc2tiX2dzb192YWxpZGF0ZV9uZXR3b3JrX2xlbisw eDExLzB4ODAKICBbICAgODQuNzk4MTgzXSAgPyBpcF9maW5pc2hfb3V0cHV0KzB4MTY5LzB4Mjcw CiAgWyAgIDg0Ljc5ODg3NV0gIGlwX291dHB1dCsweDZjLzB4ZTAKICBbICAgODQuNzk5NDEzXSAg PyBpcF9hcHBlbmRfZGF0YS5wYXJ0LjUwKzB4YzAvMHhjMAogIFsgICA4NC44MDAxNDVdICBpcHR1 bm5lbF94bWl0KzB4MTQ0LzB4MWMwCiAgWyAgIDg0LjgwMDgxNF0gIGlwX3R1bm5lbF94bWl0KzB4 NjJkLzB4OTMwIFtpcF90dW5uZWxdCiAgWyAgIDg0LjgwMTY5OV0gIGdyZV90YXBfeG1pdCsweGFj LzB4ZjAgW2lwX2dyZV0KICBbICAgODQuODAyMzk1XSAgZGV2X2hhcmRfc3RhcnRfeG1pdCsweGE1 LzB4MjEwCiAgWyAgIDg0LjgwMzA4Nl0gIHNjaF9kaXJlY3RfeG1pdCsweDE0Zi8weDM0MAogIFsg ICA4NC44MDM3MzNdICBfX2Rldl9xdWV1ZV94bWl0KzB4Nzk5LzB4OGYwCiAgWyAgIDg0LjgwNDQ3 Ml0gIGlwX2ZpbmlzaF9vdXRwdXQyKzB4MmUwLzB4NDMwCiAgWyAgIDg0LjgwNTI1NV0gID8gc2ti X2dzb192YWxpZGF0ZV9uZXR3b3JrX2xlbisweDExLzB4ODAKICBbICAgODQuODA2MTU0XSAgaXBf b3V0cHV0KzB4NmMvMHhlMAogIFsgICA4NC44MDY3MjFdICA/IGlwX2FwcGVuZF9kYXRhLnBhcnQu NTArMHhjMC8weGMwCiAgWyAgIDg0LjgwNzUxNl0gIHNjdHBfcGFja2V0X3RyYW5zbWl0KzB4NzE2 LzB4YTEwIFtzY3RwXQogIFsgICA4NC44MDgzMzddICBzY3RwX291dHFfZmx1c2grMHhkNy8weDg4 MCBbc2N0cF0KCkl0IHdhcyBjYXVzZWQgYnkgU0tCX0dTT19DQihza2IpLT5jc3VtX3N0YXJ0IG5v dCBzZXQgaW4gc2N0cF9nc29fc2VnbWVudC4Kc2N0cF9nc29fc2VnbWVudCgpIGNhbGxzIHNrYl9z ZWdtZW50KCkgd2l0aCAnZmVhdHVyZSB8IE5FVElGX0ZfSFdfQ1NVTScsCndoaWNoIGNhdXNlcyBT S0JfR1NPX0NCKHNrYiktPmNzdW1fc3RhcnQgbm90IHRvIGJlIHNldCBpbiBza2Jfc2VnbWVudCgp LgoKRm9yIFRDUC9VRFAsIHdoZW4gZmVhdHVyZSBzdXBwb3J0cyBIV19DU1VNLCBDSEVDS1NVTV9Q QVJUSUFMIHdpbGwgYmUgc2V0CmFuZCBnc29fcmVzZXRfY2hlY2tzdW0gd2lsbCBiZSBjYWxsZWQg dG8gc2V0IFNLQl9HU09fQ0Ioc2tiKS0+Y3N1bV9zdGFydC4KClNvIFNDVFAgc2hvdWxkIGRvIHRo ZSBzYW1lIGFzIFRDUC9VRFAsIHRvIGNhbGwgZ3NvX3Jlc2V0X2NoZWNrc3VtKCkgd2hlbgpjb21w dXRpbmcgY2hlY2tzdW0gaW4gc2N0cF9nc29fc2VnbWVudC4KClJlcG9ydGVkLWJ5OiBKaWFubGlu IFNoaSA8amlzaGlAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogWGluIExvbmcgPGx1Y2llbi54 aW5AZ21haWwuY29tPgpBY2tlZC1ieTogTmVpbCBIb3JtYW4gPG5ob3JtYW5AdHV4ZHJpdmVyLmNv bT4KQWNrZWQtYnk6IE1hcmNlbG8gUmljYXJkbyBMZWl0bmVyIDxtYXJjZWxvLmxlaXRuZXJAZ21h aWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L3NjdHAvb2ZmbG9hZC5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNl cnRpb24oKykKCmRpZmYgLS1naXQgYS9uZXQvc2N0cC9vZmZsb2FkLmMgYi9uZXQvc2N0cC9vZmZs b2FkLmMKaW5kZXggMTIzZTlmMmRjMjI2Li5lZGZjZjE2ZTcwNGMgMTAwNjQ0Ci0tLSBhL25ldC9z Y3RwL29mZmxvYWQuYworKysgYi9uZXQvc2N0cC9vZmZsb2FkLmMKQEAgLTM2LDYgKzM2LDcgQEAg c3RhdGljIF9fbGUzMiBzY3RwX2dzb19tYWtlX2NoZWNrc3VtKHN0cnVjdCBza19idWZmICpza2Ip CiB7CiAJc2tiLT5pcF9zdW1tZWQgPSBDSEVDS1NVTV9OT05FOwogCXNrYi0+Y3N1bV9ub3RfaW5l dCA9IDA7CisJZ3NvX3Jlc2V0X2NoZWNrc3VtKHNrYiwgfjApOwogCXJldHVybiBzY3RwX2NvbXB1 dGVfY2tzdW0oc2tiLCBza2JfdHJhbnNwb3J0X29mZnNldChza2IpKTsKIH0KIAotLSAKMi4yMC4x CgoKRnJvbSBjZjNmNWJlYzM2MzdlMjExNmM3NDZiOTJlOTg4NTFkN2M0NjVlNmEwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkRh dGU6IFR1ZSwgMTIgRmViIDIwMTkgMTg6NTE6MDEgKzA4MDAKU3ViamVjdDogW1BBVENIIDEwLzIx XSBzY3RwOiBzZXQgc3RyZWFtIGV4dCB0byBOVUxMIGFmdGVyIGZyZWVpbmcgaXQgaW4KIHNjdHBf c3RyZWFtX291dHFfbWlncmF0ZQoKWyBVcHN0cmVhbSBjb21taXQgYWY5OGM1YTc4NTE3YzA0YWRi NWZkNjhiYjY0YjFhZDZmZTNkNDczZiBdCgpJbiBzY3RwX3N0cmVhbV9pbml0KCksIGFmdGVyIHNj dHBfc3RyZWFtX291dHFfbWlncmF0ZSgpIGZyZWVkIHRoZQpzdXJwbHVzIHN0cmVhbXMnIGV4dCwg YnV0IHNjdHBfc3RyZWFtX2FsbG9jX291dCgpIHJldHVybnMgLUVOT01FTSwKc3RyZWFtLT5vdXRj bnQgd2lsbCBub3QgYmUgc2V0IHRvICdvdXRjbnQnLgoKV2l0aCB0aGUgYmlnZ2VyIHZhbHVlIG9u IHN0cmVhbS0+b3V0Y250LCB3aGVuIGNsb3NpbmcgdGhlIGFzc29jIGFuZApmcmVlaW5nIGl0cyBz dHJlYW1zLCB0aGUgZXh0IG9mIHRob3NlIHN1cnBsdXMgc3RyZWFtcyB3aWxsIGJlIGZyZWVkCmFn YWluIHNpbmNlIHRob3NlIHN0cmVhbSBleHRzIHdlcmUgbm90IHNldCB0byBOVUxMIGFmdGVyIGZy ZWVpbmcgaW4Kc2N0cF9zdHJlYW1fb3V0cV9taWdyYXRlKCkuIFRoZW4gdGhlIGludmFsaWQtZnJl ZSBpc3N1ZSByZXBvcnRlZCBieQpzeXpib3Qgd291bGQgYmUgdHJpZ2dlcmVkLgoKV2UgZml4IGl0 IGJ5IHNpbXBseSBzZXR0aW5nIHRoZW0gdG8gTlVMTCBhZnRlciBmcmVlaW5nLgoKRml4ZXM6IDVi YmJiZTMyYTQzMSAoInNjdHA6IGludHJvZHVjZSBzdHJlYW0gc2NoZWR1bGVyIGZvdW5kYXRpb25z IikKUmVwb3J0ZWQtYnk6IHN5emJvdCs1OGU0ODBlN2IyOGYyZDg5MGJmZEBzeXprYWxsZXIuYXBw c3BvdG1haWwuY29tClNpZ25lZC1vZmYtYnk6IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNv bT4KQWNrZWQtYnk6IE5laWwgSG9ybWFuIDxuaG9ybWFuQHR1eGRyaXZlci5jb20+CkFja2VkLWJ5 OiBNYXJjZWxvIFJpY2FyZG8gTGVpdG5lciA8bWFyY2Vsby5sZWl0bmVyQGdtYWlsLmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5l dC9zY3RwL3N0cmVhbS5jIHwgNCArKystCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCsp LCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvc3RyZWFtLmMgYi9uZXQvc2N0 cC9zdHJlYW0uYwppbmRleCBmMjQ2MzMxMTRkZmQuLjI5MzZlZDE3YmY5ZSAxMDA2NDQKLS0tIGEv bmV0L3NjdHAvc3RyZWFtLmMKKysrIGIvbmV0L3NjdHAvc3RyZWFtLmMKQEAgLTE0NCw4ICsxNDQs MTAgQEAgc3RhdGljIHZvaWQgc2N0cF9zdHJlYW1fb3V0cV9taWdyYXRlKHN0cnVjdCBzY3RwX3N0 cmVhbSAqc3RyZWFtLAogCQl9CiAJfQogCi0JZm9yIChpID0gb3V0Y250OyBpIDwgc3RyZWFtLT5v dXRjbnQ7IGkrKykKKwlmb3IgKGkgPSBvdXRjbnQ7IGkgPCBzdHJlYW0tPm91dGNudDsgaSsrKSB7 CiAJCWtmcmVlKFNDVFBfU08oc3RyZWFtLCBpKS0+ZXh0KTsKKwkJU0NUUF9TTyhzdHJlYW0sIGkp LT5leHQgPSBOVUxMOworCX0KIH0KIAogc3RhdGljIGludCBzY3RwX3N0cmVhbV9hbGxvY19vdXQo c3RydWN0IHNjdHBfc3RyZWFtICpzdHJlYW0sIF9fdTE2IG91dGNudCwKLS0gCjIuMjAuMQoKCkZy b20gYWI5Mjg0NGQ2ZGM0Yjg5Yjk4MjViOTM5MTQ3M2UyYjEyYWFkZTFiZiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+CkRh dGU6IE1vbiwgMTEgRmViIDIwMTkgMjE6NTk6NTEgLTA4MDAKU3ViamVjdDogW1BBVENIIDExLzIx XSB0ZWFtOiBhdm9pZCBjb21wbGV4IGxpc3Qgb3BlcmF0aW9ucyBpbgogdGVhbV9ubF9jbWRfb3B0 aW9uc19zZXQoKQoKWyBVcHN0cmVhbSBjb21taXQgMmZkZWVlMjU0OTIzMWIxZjk4OWYwMTFiYjE4 MTkxZjU2NjBkMzc0NSBdCgpUaGUgY3VycmVudCBvcHRfaW5zdF9saXN0IG9wZXJhdGlvbnMgaW5z aWRlIHRlYW1fbmxfY21kX29wdGlvbnNfc2V0KCkKaXMgdG9vIGNvbXBsZXggdG8gdHJhY2s6Cgog ICAgTElTVF9IRUFEKG9wdF9pbnN0X2xpc3QpOwogICAgbmxhX2Zvcl9lYWNoX25lc3RlZCguLi4p IHsKICAgICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KG9wdF9pbnN0LCAmdGVhbS0+b3B0aW9uX2lu c3RfbGlzdCwgbGlzdCkgewogICAgICAgICAgICBpZiAoX190ZWFtX29wdGlvbl9pbnN0X3RtcF9m aW5kKCZvcHRfaW5zdF9saXN0LCBvcHRfaW5zdCkpCiAgICAgICAgICAgICAgICBjb250aW51ZTsK ICAgICAgICAgICAgbGlzdF9hZGQoJm9wdF9pbnN0LT50bXBfbGlzdCwgJm9wdF9pbnN0X2xpc3Qp OwogICAgICAgIH0KICAgIH0KICAgIHRlYW1fbmxfc2VuZF9ldmVudF9vcHRpb25zX2dldCh0ZWFt LCAmb3B0X2luc3RfbGlzdCk7CgphcyB3aGlsZSB3ZSByZXRyaWV2ZSAnb3B0X2luc3QnIGZyb20g dGVhbS0+b3B0aW9uX2luc3RfbGlzdCwgaXQgY291bGQKYmUgYWRkZWQgdG8gdGhlIGxvY2FsICdv cHRfaW5zdF9saXN0JyBmb3IgbXVsdGlwbGUgdGltZXMuIFRoZQpfX3RlYW1fb3B0aW9uX2luc3Rf dG1wX2ZpbmQoKSBkb2Vzbid0IHdvcmssIGFzIHRoZSBzZXR0ZXIKdGVhbV9tb2RlX29wdGlvbl9z ZXQoKSBzdGlsbCBjYWxscyB0ZWFtLT5vcHMuZXhpdCgpIHdoaWNoIHVzZXMKLT50bXBfbGlzdCB0 b28gaW4gX190ZWFtX29wdGlvbnNfY2hhbmdlX2NoZWNrKCkuCgpTaW1wbGlmeSB0aGUgbGlzdCBv cGVyYXRpb25zIGJ5IG1vdmluZyB0aGUgJ29wdF9pbnN0X2xpc3QnIGFuZAp0ZWFtX25sX3NlbmRf ZXZlbnRfb3B0aW9uc19nZXQoKSBpbnRvIHRoZSBubGFfZm9yX2VhY2hfbmVzdGVkKCkgbG9vcCBz bwp0aGF0IGl0IGNhbiBiZSBndXJhbnRlZWQgdGhhdCB3ZSB3b24ndCBpbnNlcnQgYSBzYW1lIGxp c3QgZW50cnkgZm9yCm11bHRpcGxlIHRpbWVzLiBUaGVyZWZvcmUsIF9fdGVhbV9vcHRpb25faW5z dF90bXBfZmluZCgpIGNhbiBiZSByZW1vdmVkCnRvby4KCkZpeGVzOiA0ZmIwNTM0ZmI3YmIgKCJ0 ZWFtOiBhdm9pZCBhZGRpbmcgdHdpY2UgdGhlIHNhbWUgb3B0aW9uIHRvIHRoZSBldmVudCBsaXN0 IikKRml4ZXM6IDJmY2RiMmM5ZTY1OSAoInRlYW06IGFsbG93IHRvIHNlbmQgbXVsdGlwbGUgc2V0 IGV2ZW50cyBpbiBvbmUgbWVzc2FnZSIpClJlcG9ydGVkLWJ5OiBzeXpib3QrNGQ0YWY2ODU0MzJk YzBlNTZjOTFAc3l6a2FsbGVyLmFwcHNwb3RtYWlsLmNvbQpSZXBvcnRlZC1ieTogc3l6Ym90KzY4 ZWU1MTAwNzVjZjY0MjYwY2M0QHN5emthbGxlci5hcHBzcG90bWFpbC5jb20KQ2M6IEppcmkgUGly a28gPGppcmlAcmVzbnVsbGkudXM+CkNjOiBQYW9sbyBBYmVuaSA8cGFiZW5pQHJlZGhhdC5jb20+ ClNpZ25lZC1vZmYtYnk6IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpBY2tl ZC1ieTogSmlyaSBQaXJrbyA8amlyaUBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBQYW9sbyBB YmVuaSA8cGFiZW5pQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC90ZWFtL3RlYW0uYyB8IDI3ICsr KysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygr KSwgMjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdGVhbS90ZWFtLmMg Yi9kcml2ZXJzL25ldC90ZWFtL3RlYW0uYwppbmRleCA0YjY1NzJmMDE4OGEuLjcyMzgxNGQ4NGI3 ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdGVhbS90ZWFtLmMKKysrIGIvZHJpdmVycy9uZXQv dGVhbS90ZWFtLmMKQEAgLTI1NiwxNyArMjU2LDYgQEAgc3RhdGljIHZvaWQgX190ZWFtX29wdGlv bl9pbnN0X21hcmtfcmVtb3ZlZF9wb3J0KHN0cnVjdCB0ZWFtICp0ZWFtLAogCX0KIH0KIAotc3Rh dGljIGJvb2wgX190ZWFtX29wdGlvbl9pbnN0X3RtcF9maW5kKGNvbnN0IHN0cnVjdCBsaXN0X2hl YWQgKm9wdHMsCi0JCQkJCWNvbnN0IHN0cnVjdCB0ZWFtX29wdGlvbl9pbnN0ICpuZWVkbGUpCi17 Ci0Jc3RydWN0IHRlYW1fb3B0aW9uX2luc3QgKm9wdF9pbnN0OwotCi0JbGlzdF9mb3JfZWFjaF9l bnRyeShvcHRfaW5zdCwgb3B0cywgdG1wX2xpc3QpCi0JCWlmIChvcHRfaW5zdCA9PSBuZWVkbGUp Ci0JCQlyZXR1cm4gdHJ1ZTsKLQlyZXR1cm4gZmFsc2U7Ci19Ci0KIHN0YXRpYyBpbnQgX190ZWFt X29wdGlvbnNfcmVnaXN0ZXIoc3RydWN0IHRlYW0gKnRlYW0sCiAJCQkJICAgY29uc3Qgc3RydWN0 IHRlYW1fb3B0aW9uICpvcHRpb24sCiAJCQkJICAgc2l6ZV90IG9wdGlvbl9jb3VudCkKQEAgLTI0 NjMsNyArMjQ1Miw2IEBAIHN0YXRpYyBpbnQgdGVhbV9ubF9jbWRfb3B0aW9uc19zZXQoc3RydWN0 IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbykKIAlpbnQgZXJyID0gMDsKIAlp bnQgaTsKIAlzdHJ1Y3QgbmxhdHRyICpubF9vcHRpb247Ci0JTElTVF9IRUFEKG9wdF9pbnN0X2xp c3QpOwogCiAJcnRubF9sb2NrKCk7CiAKQEAgLTI0ODMsNiArMjQ3MSw3IEBAIHN0YXRpYyBpbnQg dGVhbV9ubF9jbWRfb3B0aW9uc19zZXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxf aW5mbyAqaW5mbykKIAkJc3RydWN0IG5sYXR0ciAqb3B0X2F0dHJzW1RFQU1fQVRUUl9PUFRJT05f TUFYICsgMV07CiAJCXN0cnVjdCBubGF0dHIgKmF0dHI7CiAJCXN0cnVjdCBubGF0dHIgKmF0dHJf ZGF0YTsKKwkJTElTVF9IRUFEKG9wdF9pbnN0X2xpc3QpOwogCQllbnVtIHRlYW1fb3B0aW9uX3R5 cGUgb3B0X3R5cGU7CiAJCWludCBvcHRfcG9ydF9pZmluZGV4ID0gMDsgLyogIT0gMCBmb3IgcGVy LXBvcnQgb3B0aW9ucyAqLwogCQl1MzIgb3B0X2FycmF5X2luZGV4ID0gMDsKQEAgLTI1ODcsMjMg KzI1NzYsMTcgQEAgc3RhdGljIGludCB0ZWFtX25sX2NtZF9vcHRpb25zX3NldChzdHJ1Y3Qgc2tf YnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKQogCQkJaWYgKGVycikKIAkJCQlnb3Rv IHRlYW1fcHV0OwogCQkJb3B0X2luc3QtPmNoYW5nZWQgPSB0cnVlOwotCi0JCQkvKiBkdW1iL2V2 aWwgdXNlci1zcGFjZSBjYW4gc2VuZCB1cyBkdXBsaWNhdGUgb3B0LAotCQkJICoga2VlcCBvbmx5 IHRoZSBsYXN0IG9uZQotCQkJICovCi0JCQlpZiAoX190ZWFtX29wdGlvbl9pbnN0X3RtcF9maW5k KCZvcHRfaW5zdF9saXN0LAotCQkJCQkJCW9wdF9pbnN0KSkKLQkJCQljb250aW51ZTsKLQogCQkJ bGlzdF9hZGQoJm9wdF9pbnN0LT50bXBfbGlzdCwgJm9wdF9pbnN0X2xpc3QpOwogCQl9CiAJCWlm ICghb3B0X2ZvdW5kKSB7CiAJCQllcnIgPSAtRU5PRU5UOwogCQkJZ290byB0ZWFtX3B1dDsKIAkJ fQotCX0KIAotCWVyciA9IHRlYW1fbmxfc2VuZF9ldmVudF9vcHRpb25zX2dldCh0ZWFtLCAmb3B0 X2luc3RfbGlzdCk7CisJCWVyciA9IHRlYW1fbmxfc2VuZF9ldmVudF9vcHRpb25zX2dldCh0ZWFt LCAmb3B0X2luc3RfbGlzdCk7CisJCWlmIChlcnIpCisJCQlicmVhazsKKwl9CiAKIHRlYW1fcHV0 OgogCXRlYW1fbmxfdGVhbV9wdXQodGVhbSk7Ci0tIAoyLjIwLjEKCgpGcm9tIDQ3MTBmNDU5ZDdi ZjZhZTQ1ZmQyZmI1M2ZlZDNhY2RhZjljNDcxZTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEpvaGFubmVzIEJlcmcgPGpvaGFubmVzLmJlcmdAaW50ZWwuY29tPgpEYXRlOiBGcmksIDI1 IEphbiAyMDE5IDIyOjQzOjE3ICswMTAwClN1YmplY3Q6IFtQQVRDSCAxMi8yMV0gUmV2ZXJ0ICJz b2NrZXQ6IGZpeCBzdHJ1Y3QgaWZyZXEgc2l6ZSBpbiBjb21wYXQgaW9jdGwiCgpbIFVwc3RyZWFt IGNvbW1pdCA2M2ZmMDNhYjc4NmFiMWJjNmNjYTAxZDQ4ZWFjZDIyYzk1YjliM2ViIF0KClRoaXMg cmV2ZXJ0cyBjb21taXQgMWNlYmY4ZjE0M2MyICgic29ja2V0OiBmaXggc3RydWN0IGlmcmVxCnNp emUgaW4gY29tcGF0IGlvY3RsIiksIGl0J3MgYSBidWdmaXggZm9yIGFub3RoZXIgY29tbWl0IHRo YXQKSSdsbCByZXZlcnQgbmV4dC4KClRoaXMgaXMgbm90IGEgJ3BlcmZlY3QnIHJldmVydCwgSSdt IGtlZXBpbmcgc29tZSBjb2Rpbmcgc3R5bGUKaW50YWN0IHJhdGhlciB0aGFuIHJldmVydCB0byB0 aGUgc3RhdGUgd2l0aCBpbmRlbnRhdGlvbiBlcnJvcnMuCgpDYzogc3RhYmxlQHZnZXIua2VybmVs Lm9yZwpGaXhlczogMWNlYmY4ZjE0M2MyICgic29ja2V0OiBmaXggc3RydWN0IGlmcmVxIHNpemUg aW4gY29tcGF0IGlvY3RsIikKU2lnbmVkLW9mZi1ieTogSm9oYW5uZXMgQmVyZyA8am9oYW5uZXMu YmVyZ0BpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc29ja2V0LmMgfCAyMiArKysrKysrKy0tLS0tLS0tLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9uZXQvc29ja2V0LmMgYi9uZXQvc29ja2V0LmMKaW5kZXggMzkwYThlY2VmNGJmLi44 NWE4MzU1M2Y4ZmEgMTAwNjQ0Ci0tLSBhL25ldC9zb2NrZXQuYworKysgYi9uZXQvc29ja2V0LmMK QEAgLTk0MSw4ICs5NDEsNyBAQCB2b2lkIGRsY2lfaW9jdGxfc2V0KGludCAoKmhvb2spICh1bnNp Z25lZCBpbnQsIHZvaWQgX191c2VyICopKQogRVhQT1JUX1NZTUJPTChkbGNpX2lvY3RsX3NldCk7 CiAKIHN0YXRpYyBsb25nIHNvY2tfZG9faW9jdGwoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc29j a2V0ICpzb2NrLAotCQkJICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZywKLQkJ CSAgdW5zaWduZWQgaW50IGlmcmVxX3NpemUpCisJCQkgIHVuc2lnbmVkIGludCBjbWQsIHVuc2ln bmVkIGxvbmcgYXJnKQogewogCWludCBlcnI7CiAJdm9pZCBfX3VzZXIgKmFyZ3AgPSAodm9pZCBf X3VzZXIgKilhcmc7CkBAIC05NjgsMTEgKzk2NywxMSBAQCBzdGF0aWMgbG9uZyBzb2NrX2RvX2lv Y3RsKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNvY2tldCAqc29jaywKIAl9IGVsc2UgewogCQlz dHJ1Y3QgaWZyZXEgaWZyOwogCQlib29sIG5lZWRfY29weW91dDsKLQkJaWYgKGNvcHlfZnJvbV91 c2VyKCZpZnIsIGFyZ3AsIGlmcmVxX3NpemUpKQorCQlpZiAoY29weV9mcm9tX3VzZXIoJmlmciwg YXJncCwgc2l6ZW9mKHN0cnVjdCBpZnJlcSkpKQogCQkJcmV0dXJuIC1FRkFVTFQ7CiAJCWVyciA9 IGRldl9pb2N0bChuZXQsIGNtZCwgJmlmciwgJm5lZWRfY29weW91dCk7CiAJCWlmICghZXJyICYm IG5lZWRfY29weW91dCkKLQkJCWlmIChjb3B5X3RvX3VzZXIoYXJncCwgJmlmciwgaWZyZXFfc2l6 ZSkpCisJCQlpZiAoY29weV90b191c2VyKGFyZ3AsICZpZnIsIHNpemVvZihzdHJ1Y3QgaWZyZXEp KSkKIAkJCQlyZXR1cm4gLUVGQVVMVDsKIAl9CiAJcmV0dXJuIGVycjsKQEAgLTEwNzEsOCArMTA3 MCw3IEBAIHN0YXRpYyBsb25nIHNvY2tfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVk IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCiAJCQllcnIgPSBvcGVuX3JlbGF0ZWRfbnMoJm5ldC0+ bnMsIGdldF9uZXRfbnMpOwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6Ci0JCQllcnIgPSBzb2NrX2Rv X2lvY3RsKG5ldCwgc29jaywgY21kLCBhcmcsCi0JCQkJCSAgICBzaXplb2Yoc3RydWN0IGlmcmVx KSk7CisJCQllcnIgPSBzb2NrX2RvX2lvY3RsKG5ldCwgc29jaywgY21kLCBhcmcpOwogCQkJYnJl YWs7CiAJCX0KIAlyZXR1cm4gZXJyOwpAQCAtMjc1Miw4ICsyNzUwLDcgQEAgc3RhdGljIGludCBk b19zaW9jZ3N0YW1wKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNvY2tldCAqc29jaywKIAlpbnQg ZXJyOwogCiAJc2V0X2ZzKEtFUk5FTF9EUyk7Ci0JZXJyID0gc29ja19kb19pb2N0bChuZXQsIHNv Y2ssIGNtZCwgKHVuc2lnbmVkIGxvbmcpJmt0diwKLQkJCSAgICBzaXplb2Yoc3RydWN0IGNvbXBh dF9pZnJlcSkpOworCWVyciA9IHNvY2tfZG9faW9jdGwobmV0LCBzb2NrLCBjbWQsICh1bnNpZ25l ZCBsb25nKSZrdHYpOwogCXNldF9mcyhvbGRfZnMpOwogCWlmICghZXJyKQogCQllcnIgPSBjb21w YXRfcHV0X3RpbWV2YWwoJmt0diwgdXApOwpAQCAtMjc2OSw4ICsyNzY2LDcgQEAgc3RhdGljIGlu dCBkb19zaW9jZ3N0YW1wbnMoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLAog CWludCBlcnI7CiAKIAlzZXRfZnMoS0VSTkVMX0RTKTsKLQllcnIgPSBzb2NrX2RvX2lvY3RsKG5l dCwgc29jaywgY21kLCAodW5zaWduZWQgbG9uZykma3RzLAotCQkJICAgIHNpemVvZihzdHJ1Y3Qg Y29tcGF0X2lmcmVxKSk7CisJZXJyID0gc29ja19kb19pb2N0bChuZXQsIHNvY2ssIGNtZCwgKHVu c2lnbmVkIGxvbmcpJmt0cyk7CiAJc2V0X2ZzKG9sZF9mcyk7CiAJaWYgKCFlcnIpCiAJCWVyciA9 IGNvbXBhdF9wdXRfdGltZXNwZWMoJmt0cywgdXApOwpAQCAtMzA4MSw4ICszMDc3LDcgQEAgc3Rh dGljIGludCByb3V0aW5nX2lvY3RsKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNvY2tldCAqc29j aywKIAl9CiAKIAlzZXRfZnMoS0VSTkVMX0RTKTsKLQlyZXQgPSBzb2NrX2RvX2lvY3RsKG5ldCwg c29jaywgY21kLCAodW5zaWduZWQgbG9uZykgciwKLQkJCSAgICBzaXplb2Yoc3RydWN0IGNvbXBh dF9pZnJlcSkpOworCXJldCA9IHNvY2tfZG9faW9jdGwobmV0LCBzb2NrLCBjbWQsICh1bnNpZ25l ZCBsb25nKSByKTsKIAlzZXRfZnMob2xkX2ZzKTsKIAogb3V0OgpAQCAtMzE5NSw4ICszMTkwLDcg QEAgc3RhdGljIGludCBjb21wYXRfc29ja19pb2N0bF90cmFucyhzdHJ1Y3QgZmlsZSAqZmlsZSwg c3RydWN0IHNvY2tldCAqc29jaywKIAljYXNlIFNJT0NCT05EU0VUSFdBRERSOgogCWNhc2UgU0lP Q0JPTkRDSEFOR0VBQ1RJVkU6CiAJY2FzZSBTSU9DR0lGTkFNRToKLQkJcmV0dXJuIHNvY2tfZG9f aW9jdGwobmV0LCBzb2NrLCBjbWQsIGFyZywKLQkJCQkgICAgIHNpemVvZihzdHJ1Y3QgY29tcGF0 X2lmcmVxKSk7CisJCXJldHVybiBzb2NrX2RvX2lvY3RsKG5ldCwgc29jaywgY21kLCBhcmcpOwog CX0KIAogCXJldHVybiAtRU5PSU9DVExDTUQ7Ci0tIAoyLjIwLjEKCgpGcm9tIDBmMjM3ZTI2Zjdi ODE2MTJkYTFhZTA5YjNkMWI3MDYxYWFlNjg2ZTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEpvaGFubmVzIEJlcmcgPGpvaGFubmVzLmJlcmdAaW50ZWwuY29tPgpEYXRlOiBGcmksIDI1 IEphbiAyMDE5IDIyOjQzOjE4ICswMTAwClN1YmplY3Q6IFtQQVRDSCAxMy8yMV0gUmV2ZXJ0ICJr aWxsIGRldl9pZnNpb2MoKSIKClsgVXBzdHJlYW0gY29tbWl0IDM3YWMzOWJkZGRjNTI4Yzk5OGE5 ZjM2ZGIzNjkzN2RlOTIzZmRmMmEgXQoKVGhpcyByZXZlcnRzIGNvbW1pdCBiZjQ0MDU3MzdmOWYg KCJraWxsIGRldl9pZnNpb2MoKSIpLgoKVGhpcyB3YXNuJ3QgcmVhbGx5IHVudXNlZCBhcyBpbXBs aWVkIGJ5IHRoZSBvcmlnaW5hbCBjb21taXQsCml0IHN0aWxsIGhhbmRsZXMgdGhlIGNvcHkgdG8v ZnJvbSB1c2VyIGRpZmZlcmVudGx5LCBhbmQgdGhlCmNvbW1pdCB0aHVzIGNhdXNlZCBpc3N1ZXMg c3VjaCBhcwogIGh0dHBzOi8vYnVnemlsbGEua2VybmVsLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5 NDY5CmFuZAogIGh0dHBzOi8vYnVnemlsbGEua2VybmVsLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAy MjczCgpIb3dldmVyLCBkZXZpYXRpbmcgZnJvbSBhIHN0cmljdCByZXZlcnQsIHJlbmFtZSBkZXZf aWZzaW9jKCkKdG8gY29tcGF0X2lmcmVxX2lvY3RsKCkgdG8gYmUgY2xlYXJlciBhcyB0byBpdHMg cHVycG9zZSBhbmQKYWRkIGEgY29tbWVudC4KCkNjOiBzdGFibGVAdmdlci5rZXJuZWwub3JnCkZp eGVzOiBiZjQ0MDU3MzdmOWYgKCJraWxsIGRldl9pZnNpb2MoKSIpClNpZ25lZC1vZmYtYnk6IEpv aGFubmVzIEJlcmcgPGpvaGFubmVzLmJlcmdAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NvY2tldC5jIHwgNDkg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMSBmaWxl IGNoYW5nZWQsIDQ5IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQvc29ja2V0LmMgYi9u ZXQvc29ja2V0LmMKaW5kZXggODVhODM1NTNmOGZhLi5lNzRlZGU1NmU5MDMgMTAwNjQ0Ci0tLSBh L25ldC9zb2NrZXQuYworKysgYi9uZXQvc29ja2V0LmMKQEAgLTI5NjIsNiArMjk2Miw1MyBAQCBz dGF0aWMgaW50IGNvbXBhdF9pZnJfZGF0YV9pb2N0bChzdHJ1Y3QgbmV0ICpuZXQsIHVuc2lnbmVk IGludCBjbWQsCiAJcmV0dXJuIGRldl9pb2N0bChuZXQsIGNtZCwgJmlmcmVxLCBOVUxMKTsKIH0K IAorc3RhdGljIGludCBjb21wYXRfaWZyZXFfaW9jdGwoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qg c29ja2V0ICpzb2NrLAorCQkJICAgICAgdW5zaWduZWQgaW50IGNtZCwKKwkJCSAgICAgIHN0cnVj dCBjb21wYXRfaWZyZXEgX191c2VyICp1aWZyMzIpCit7CisJc3RydWN0IGlmcmVxIF9fdXNlciAq dWlmcjsKKwlpbnQgZXJyOworCisJLyogSGFuZGxlIHRoZSBmYWN0IHRoYXQgd2hpbGUgc3RydWN0 IGlmcmVxIGhhcyB0aGUgc2FtZSAqbGF5b3V0KiBvbgorCSAqIDMyLzY0IGZvciBldmVyeXRoaW5n IGJ1dCBpZnJlcTo6aWZydV9pZm1hcCBhbmQgaWZyZXE6OmlmcnVfZGF0YSwKKwkgKiB3aGljaCBh cmUgaGFuZGxlZCBlbHNld2hlcmUsIGl0IHN0aWxsIGhhcyBkaWZmZXJlbnQgKnNpemUqIGR1ZSB0 bworCSAqIGlmcmVxOjppZnJ1X2lmbWFwICh3aGljaCBpcyAxNiBieXRlcyBvbiAzMiBiaXQsIDI0 IGJ5dGVzIG9uIDY0LWJpdCwKKwkgKiByZXN1bHRpbmcgaW4gc3RydWN0IGlmcmVxIGJlaW5nIDMy IGFuZCA0MCBieXRlcyByZXNwZWN0aXZlbHkpLgorCSAqIEFzIGEgcmVzdWx0LCBpZiB0aGUgc3Ry dWN0IGhhcHBlbnMgdG8gYmUgYXQgdGhlIGVuZCBvZiBhIHBhZ2UgYW5kCisJICogdGhlIG5leHQg cGFnZSBpc24ndCByZWFkYWJsZS93cml0YWJsZSwgd2UgZ2V0IGEgZmF1bHQuIFRvIHByZXZlbnQK KwkgKiB0aGF0LCBjb3B5IGJhY2sgYW5kIGZvcnRoIHRvIHRoZSBmdWxsIHNpemUuCisJICovCisK Kwl1aWZyID0gY29tcGF0X2FsbG9jX3VzZXJfc3BhY2Uoc2l6ZW9mKCp1aWZyKSk7CisJaWYgKGNv cHlfaW5fdXNlcih1aWZyLCB1aWZyMzIsIHNpemVvZigqdWlmcjMyKSkpCisJCXJldHVybiAtRUZB VUxUOworCisJZXJyID0gc29ja19kb19pb2N0bChuZXQsIHNvY2ssIGNtZCwgKHVuc2lnbmVkIGxv bmcpdWlmcik7CisKKwlpZiAoIWVycikgeworCQlzd2l0Y2ggKGNtZCkgeworCQljYXNlIFNJT0NH SUZGTEFHUzoKKwkJY2FzZSBTSU9DR0lGTUVUUklDOgorCQljYXNlIFNJT0NHSUZNVFU6CisJCWNh c2UgU0lPQ0dJRk1FTToKKwkJY2FzZSBTSU9DR0lGSFdBRERSOgorCQljYXNlIFNJT0NHSUZJTkRF WDoKKwkJY2FzZSBTSU9DR0lGQUREUjoKKwkJY2FzZSBTSU9DR0lGQlJEQUREUjoKKwkJY2FzZSBT SU9DR0lGRFNUQUREUjoKKwkJY2FzZSBTSU9DR0lGTkVUTUFTSzoKKwkJY2FzZSBTSU9DR0lGUEZM QUdTOgorCQljYXNlIFNJT0NHSUZUWFFMRU46CisJCWNhc2UgU0lPQ0dNSUlQSFk6CisJCWNhc2Ug U0lPQ0dNSUlSRUc6CisJCQlpZiAoY29weV9pbl91c2VyKHVpZnIzMiwgdWlmciwgc2l6ZW9mKCp1 aWZyMzIpKSkKKwkJCQllcnIgPSAtRUZBVUxUOworCQkJYnJlYWs7CisJCX0KKwl9CisJcmV0dXJu IGVycjsKK30KKwogc3RhdGljIGludCBjb21wYXRfc2lvY19pZm1hcChzdHJ1Y3QgbmV0ICpuZXQs IHVuc2lnbmVkIGludCBjbWQsCiAJCQlzdHJ1Y3QgY29tcGF0X2lmcmVxIF9fdXNlciAqdWlmcjMy KQogewpAQCAtMzE4MSw2ICszMjI4LDggQEAgc3RhdGljIGludCBjb21wYXRfc29ja19pb2N0bF90 cmFucyhzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHNvY2tldCAqc29jaywKIAljYXNlIFNJT0NH TUlJUEhZOgogCWNhc2UgU0lPQ0dNSUlSRUc6CiAJY2FzZSBTSU9DU01JSVJFRzoKKwkJcmV0dXJu IGNvbXBhdF9pZnJlcV9pb2N0bChuZXQsIHNvY2ssIGNtZCwgYXJncCk7CisKIAljYXNlIFNJT0NT QVJQOgogCWNhc2UgU0lPQ0dBUlA6CiAJY2FzZSBTSU9DREFSUDoKLS0gCjIuMjAuMQoKCkZyb20g NDI1MzU2ZWNhZGY5MzI1MzlhZDIyYTgxM2M3MzIxZGU5YTI2MjY1NiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogSm9oYW5uZXMgQmVyZyA8am9oYW5uZXMuYmVyZ0BpbnRlbC5jb20+CkRh dGU6IEZyaSwgMjUgSmFuIDIwMTkgMjI6NDM6MTkgKzAxMDAKU3ViamVjdDogW1BBVENIIDE0LzIx XSBuZXQ6IHNvY2tldDogZml4IFNJT0NHSUZOQU1FIGluIGNvbXBhdAoKWyBVcHN0cmVhbSBjb21t aXQgYzZjOWZlZTM1ZGMyNzM2MmI3YmFjMzRiMmZjOWY1YjhhY2UyZTIyYyBdCgpBcyByZXBvcnRl ZCBieSBSb2JlcnQgTydDYWxsYWhhbiBpbgpodHRwczovL2J1Z3ppbGxhLmtlcm5lbC5vcmcvc2hv d19idWcuY2dpP2lkPTIwMjI3MwpyZXZlcnRpbmcgdGhlIHByZXZpb3VzIGNoYW5nZXMgaW4gdGhp cyBhcmVhIGJyb2tlCnRoZSBTSU9DR0lGTkFNRSBpb2N0bCBpbiBjb21wYXQgYWdhaW4gKEknZCBw cmV2aW91c2x5CmZpeGVkIGl0IGFmdGVyIGhpcyBwcmV2aW91cyByZXBvcnQgb2YgYnJlYWthZ2Ug aW4KaHR0cHM6Ly9idWd6aWxsYS5rZXJuZWwub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk0NjkpLgoK VGhpcyBpcyBvYnZpb3VzbHkgYmVjYXVzZSBJIGZpeGVkIFNJT0NHSUZOQU1FIG1vcmUgb3IKbGVz cyBieSBhY2NpZGVudC4KCkZpeCBpdCBleHBsaWNpdGx5IG5vdyBieSBtYWtpbmcgaXQgcGFzcyB0 aHJvdWdoIHRoZQpyZXN0b3JlZCBjb21wYXQgdHJhbnNsYXRpb24gY29kZS4KCkNjOiBzdGFibGVA dmdlci5rZXJuZWwub3JnCkZpeGVzOiA0Y2Y4MDhlN2FjMzIgKCJraWxsIGRldl9pZm5hbWUzMigp IikKUmVwb3J0ZWQtYnk6IFJvYmVydCBPJ0NhbGxhaGFuIDxyb2JlcnRAb2NhbGxhaGFuLm9yZz4K U2lnbmVkLW9mZi1ieTogSm9oYW5uZXMgQmVyZyA8am9oYW5uZXMuYmVyZ0BpbnRlbC5jb20+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBu ZXQvc29ja2V0LmMgfCAzICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBk ZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9zb2NrZXQuYyBiL25ldC9zb2NrZXQuYwppbmRl eCBlNzRlZGU1NmU5MDMuLjNiOTU0Y2FmZDZhOSAxMDA2NDQKLS0tIGEvbmV0L3NvY2tldC5jCisr KyBiL25ldC9zb2NrZXQuYwpAQCAtMzAwMSw2ICszMDAxLDcgQEAgc3RhdGljIGludCBjb21wYXRf aWZyZXFfaW9jdGwoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLAogCQljYXNl IFNJT0NHSUZUWFFMRU46CiAJCWNhc2UgU0lPQ0dNSUlQSFk6CiAJCWNhc2UgU0lPQ0dNSUlSRUc6 CisJCWNhc2UgU0lPQ0dJRk5BTUU6CiAJCQlpZiAoY29weV9pbl91c2VyKHVpZnIzMiwgdWlmciwg c2l6ZW9mKCp1aWZyMzIpKSkKIAkJCQllcnIgPSAtRUZBVUxUOwogCQkJYnJlYWs7CkBAIC0zMjI0 LDYgKzMyMjUsNyBAQCBzdGF0aWMgaW50IGNvbXBhdF9zb2NrX2lvY3RsX3RyYW5zKHN0cnVjdCBm aWxlICpmaWxlLCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLAogCWNhc2UgU0lPQ1NJRlRYUUxFTjoKIAlj YXNlIFNJT0NCUkFERElGOgogCWNhc2UgU0lPQ0JSREVMSUY6CisJY2FzZSBTSU9DR0lGTkFNRToK IAljYXNlIFNJT0NTSUZOQU1FOgogCWNhc2UgU0lPQ0dNSUlQSFk6CiAJY2FzZSBTSU9DR01JSVJF RzoKQEAgLTMyMzgsNyArMzI0MCw2IEBAIHN0YXRpYyBpbnQgY29tcGF0X3NvY2tfaW9jdGxfdHJh bnMoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBzb2NrZXQgKnNvY2ssCiAJY2FzZSBTSU9DQk9O RFJFTEVBU0U6CiAJY2FzZSBTSU9DQk9ORFNFVEhXQUREUjoKIAljYXNlIFNJT0NCT05EQ0hBTkdF QUNUSVZFOgotCWNhc2UgU0lPQ0dJRk5BTUU6CiAJCXJldHVybiBzb2NrX2RvX2lvY3RsKG5ldCwg c29jaywgY21kLCBhcmcpOwogCX0KIAotLSAKMi4yMC4xCgoKRnJvbSBhYTMyNzllYTQ5MjNkNjhh MTEzNzhhODdhOTVlYTJiNGY4MjE3OGEyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBK b2hhbm5lcyBCZXJnIDxqb2hhbm5lcy5iZXJnQGludGVsLmNvbT4KRGF0ZTogRnJpLCAyNSBKYW4g MjAxOSAyMjo0MzoyMCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTUvMjFdIG5ldDogc29ja2V0OiBt YWtlIGJvbmQgaW9jdGxzIGdvIHRocm91Z2gKIGNvbXBhdF9pZnJlcV9pb2N0bCgpCgpbIFVwc3Ry ZWFtIGNvbW1pdCA5ODQwNjEzM2RkOWNiOWYxOTU2NzZlYWI1NDBjMjcwZGNlY2E4NzlhIF0KClNh bWUgc3RvcnkgYXMgYmVmb3JlLCB0aGVzZSB1c2Ugc3RydWN0IGlmcmVxIGFuZCB0aHVzIG5lZWQK dG8gYmUgcmVhZCB3aXRoIHRoZSBzaG9ydGVyIHZlcnNpb24gdG8gbm90IGNhdXNlIGZhdWx0cy4K CkNjOiBzdGFibGVAdmdlci5rZXJuZWwub3JnCkZpeGVzOiBmOTJkNGZjOTUzNDEgKCJraWxsIGJv bmRfaW9jdGwoKSIpClNpZ25lZC1vZmYtYnk6IEpvaGFubmVzIEJlcmcgPGpvaGFubmVzLmJlcmdA aW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogbmV0L3NvY2tldC5jIHwgOCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQg aW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc29ja2V0LmMg Yi9uZXQvc29ja2V0LmMKaW5kZXggM2I5NTRjYWZkNmE5Li41YzgyMDIxMmJhODEgMTAwNjQ0Ci0t LSBhL25ldC9zb2NrZXQuYworKysgYi9uZXQvc29ja2V0LmMKQEAgLTMyMzAsMTYgKzMyMzAsMTYg QEAgc3RhdGljIGludCBjb21wYXRfc29ja19pb2N0bF90cmFucyhzdHJ1Y3QgZmlsZSAqZmlsZSwg c3RydWN0IHNvY2tldCAqc29jaywKIAljYXNlIFNJT0NHTUlJUEhZOgogCWNhc2UgU0lPQ0dNSUlS RUc6CiAJY2FzZSBTSU9DU01JSVJFRzoKKwljYXNlIFNJT0NCT05ERU5TTEFWRToKKwljYXNlIFNJ T0NCT05EUkVMRUFTRToKKwljYXNlIFNJT0NCT05EU0VUSFdBRERSOgorCWNhc2UgU0lPQ0JPTkRD SEFOR0VBQ1RJVkU6CiAJCXJldHVybiBjb21wYXRfaWZyZXFfaW9jdGwobmV0LCBzb2NrLCBjbWQs IGFyZ3ApOwogCiAJY2FzZSBTSU9DU0FSUDoKIAljYXNlIFNJT0NHQVJQOgogCWNhc2UgU0lPQ0RB UlA6CiAJY2FzZSBTSU9DQVRNQVJLOgotCWNhc2UgU0lPQ0JPTkRFTlNMQVZFOgotCWNhc2UgU0lP Q0JPTkRSRUxFQVNFOgotCWNhc2UgU0lPQ0JPTkRTRVRIV0FERFI6Ci0JY2FzZSBTSU9DQk9ORENI QU5HRUFDVElWRToKIAkJcmV0dXJuIHNvY2tfZG9faW9jdGwobmV0LCBzb2NrLCBjbWQsIGFyZyk7 CiAJfQogCi0tIAoyLjIwLjEKCgpGcm9tIGUwMzc5YWUxODU0NTk1ZmQyYWMwNzllMGQyN2QyYTRh OWUyMWUxNTIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEhhbmdiaW4gTGl1IDxsaXVo YW5nYmluQGdtYWlsLmNvbT4KRGF0ZTogVGh1LCA3IEZlYiAyMDE5IDE4OjM2OjEwICswODAwClN1 YmplY3Q6IFtQQVRDSCAxNi8yMV0gZ2VuZXZlOiBzaG91bGQgbm90IGNhbGwgcnQ2X2xvb2t1cCgp IHdoZW4gaXB2NiB3YXMKIGRpc2FibGVkCgpbIFVwc3RyZWFtIGNvbW1pdCBjMGE0N2U0NGMwOTgw YjNiMjNlZTMxZmE3OTM2ZDcwZWE1ZGNlNDkxIF0KCldoZW4gd2UgYWRkIGEgbmV3IEdFTkVWRSBk ZXZpY2Ugd2l0aCBJUHY2IHJlbW90ZSwgY2hlY2tpbmcgb25seSBmb3IKSVNfRU5BQkxFRChDT05G SUdfSVBWNikgaXMgbm90IGVub3VnaCBhcyB3ZSBtYXkgZGlzYWJsZSBJUHY2IGluIHRoZQprZXJu ZWwgY29tbWFuZCBsaW5lIChpcHY2LmRpc2FibGU9MSksIGFuZCBjYWxsaW5nIHJ0Nl9sb29rdXAo KSB3b3VsZApjYXVzZSBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZS4KCnYyOgotIGRvbid0IG1p eCBkZWNsYXJhdGlvbnMgYW5kIGNvZGUgKHJlcG9ydGVkIGJ5IFN0ZWZhbm8gQnJpdmlvLCBFcmlj IER1bWF6ZXQpCi0gdGhlcmUncyBubyBuZWVkIHRvIHVzZSBpbjZfZGV2X2dldCgpIGFzIHdlIG9u bHkgbmVlZCB0byBjaGVjayB0aGF0CiAgaWRldiBleGlzdHMgKHJlcG9ydGVkIGJ5IERhdmlkIEFo ZXJuKS4gVGhpcyBpcyB1bmRlciBSVE5MLCBzbyB3ZSBjYW4KICBzaW1wbHkgdXNlIF9faW42X2Rl dl9nZXQoKSBpbnN0ZWFkIChTdGVmYW5vLCBFcmljKS4KClJlcG9ydGVkLWJ5OiBKaWFubGluIFNo aSA8amlzaGlAcmVkaGF0LmNvbT4KRml4ZXM6IGM0MGU4OWZkMzU4ZTkgKCJnZW5ldmU6IGNvbmZp Z3VyZSBNVFUgYmFzZWQgb24gYSBsb3dlciBkZXZpY2UiKQpDYzogQWxleGV5IEtvZGFuZXYgPGFs ZXhleS5rb2RhbmV2QG9yYWNsZS5jb20+ClNpZ25lZC1vZmYtYnk6IEhhbmdiaW4gTGl1IDxsaXVo YW5nYmluQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IFN0ZWZhbm8gQnJpdmlvIDxzYnJpdmlvQHJl ZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9nZW5ldmUuYyB8IDEwICsrKysrKystLS0KIDEgZmlsZSBj aGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvZ2VuZXZlLmMgYi9kcml2ZXJzL25ldC9nZW5ldmUuYwppbmRleCA0OTNjZDM4MmI4 YWEuLjAxNzExZTZlOWEzOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZ2VuZXZlLmMKKysrIGIv ZHJpdmVycy9uZXQvZ2VuZXZlLmMKQEAgLTE0MDYsOSArMTQwNiwxMyBAQCBzdGF0aWMgdm9pZCBn ZW5ldmVfbGlua19jb25maWcoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAl9CiAjaWYgSVNfRU5B QkxFRChDT05GSUdfSVBWNikKIAljYXNlIEFGX0lORVQ2OiB7Ci0JCXN0cnVjdCBydDZfaW5mbyAq cnQgPSBydDZfbG9va3VwKGdlbmV2ZS0+bmV0LAotCQkJCQkJICZpbmZvLT5rZXkudS5pcHY2LmRz dCwgTlVMTCwgMCwKLQkJCQkJCSBOVUxMLCAwKTsKKwkJc3RydWN0IHJ0Nl9pbmZvICpydDsKKwor CQlpZiAoIV9faW42X2Rldl9nZXQoZGV2KSkKKwkJCWJyZWFrOworCisJCXJ0ID0gcnQ2X2xvb2t1 cChnZW5ldmUtPm5ldCwgJmluZm8tPmtleS51LmlwdjYuZHN0LCBOVUxMLCAwLAorCQkJCU5VTEws IDApOwogCiAJCWlmIChydCAmJiBydC0+ZHN0LmRldikKIAkJCWxkZXZfbXR1ID0gcnQtPmRzdC5k ZXYtPm10dSAtIEdFTkVWRV9JUFY2X0hMRU47Ci0tIAoyLjIwLjEKCgpGcm9tIGM4NDk0ODYwNDU5 ODFiZmU0NjlmYjcwZGUzMjZiMmI3ZWM2Zjg5Y2IgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEhhbmdiaW4gTGl1IDxsaXVoYW5nYmluQGdtYWlsLmNvbT4KRGF0ZTogVGh1LCA3IEZlYiAy MDE5IDE4OjM2OjExICswODAwClN1YmplY3Q6IFtQQVRDSCAxNy8yMV0gc2l0OiBjaGVjayBpZiBJ UHY2IGVuYWJsZWQgYmVmb3JlIGNhbGxpbmcKIGlwNl9lcnJfZ2VuX2ljbXB2Nl91bnJlYWNoKCkK ClsgVXBzdHJlYW0gY29tbWl0IDE3MzY1NmFjY2FmNTgzNjk4YmFjM2Y5ZTI2OTg4NGJhNjBkNTFl ZjQgXQoKSWYgd2UgZGlzYWJsZWQgSVB2NiBmcm9tIHRoZSBrZXJuZWwgY29tbWFuZCBsaW5lIChp cHY2LmRpc2FibGU9MSksIHdlIHNob3VsZApub3QgY2FsbCBpcDZfZXJyX2dlbl9pY21wdjZfdW5y ZWFjaCgpLiBUaGlzOgoKICBpcCBsaW5rIGFkZCBzaXQxIHR5cGUgc2l0IGxvY2FsIDE5Mi4wLjIu MSByZW1vdGUgMTkyLjAuMi4yIHR0bCAxCiAgaXAgbGluayBzZXQgc2l0MSB1cAogIGlwIGFkZHIg YWRkIDE5OC41MS4xMDAuMS8yNCBkZXYgc2l0MQogIHBpbmcgMTk4LjUxLjEwMC4yCgppZiBJUHY2 IGlzIGRpc2FibGVkIGF0IGJvb3QgdGltZSwgd2lsbCBjcmFzaCB0aGUga2VybmVsLgoKdjI6IHRo ZXJlJ3Mgbm8gbmVlZCB0byB1c2UgaW42X2Rldl9nZXQoKSwgdXNlIF9faW42X2Rldl9nZXQoKSBp bnN0ZWFkLAogICAgYXMgd2Ugb25seSBuZWVkIHRvIGNoZWNrIHRoYXQgaWRldiBleGlzdHMgYW5k IHdlIGFyZSB1bmRlcgogICAgcmN1X3JlYWRfbG9jaygpIChmcm9tIG5ldGlmX3JlY2VpdmVfc2ti X2ludGVybmFsKCkpLgoKUmVwb3J0ZWQtYnk6IEppYW5saW4gU2hpIDxqaXNoaUByZWRoYXQuY29t PgpGaXhlczogY2ExNWEwNzhiZDkwICgic2l0OiBnZW5lcmF0ZSBpY21wdjYgZXJyb3Igd2hlbiBy ZWNlaXZpbmcgaWNtcHY0IGVycm9yIikKQ2M6IE91c3NhbWEgR2hvcmJlbCA8Z2hvcmJlbEBwaXZh c29mdHdhcmUuY29tPgpTaWduZWQtb2ZmLWJ5OiBIYW5nYmluIExpdSA8bGl1aGFuZ2JpbkBnbWFp bC5jb20+ClJldmlld2VkLWJ5OiBTdGVmYW5vIEJyaXZpbyA8c2JyaXZpb0ByZWRoYXQuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog bmV0L2lwdjYvc2l0LmMgfCAzICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwg MSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L3NpdC5jIGIvbmV0L2lwdjYvc2l0 LmMKaW5kZXggZWIxNjJiZDBlMDQxLi5kYTZkNWEzZjUzOTkgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2 L3NpdC5jCisrKyBiL25ldC9pcHY2L3NpdC5jCkBAIC01NDYsNyArNTQ2LDggQEAgc3RhdGljIGlu dCBpcGlwNl9lcnIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIGluZm8pCiAJfQogCiAJZXJyID0g MDsKLQlpZiAoIWlwNl9lcnJfZ2VuX2ljbXB2Nl91bnJlYWNoKHNrYiwgaXBoLT5paGwgKiA0LCB0 eXBlLCBkYXRhX2xlbikpCisJaWYgKF9faW42X2Rldl9nZXQoc2tiLT5kZXYpICYmCisJICAgICFp cDZfZXJyX2dlbl9pY21wdjZfdW5yZWFjaChza2IsIGlwaC0+aWhsICogNCwgdHlwZSwgZGF0YV9s ZW4pKQogCQlnb3RvIG91dDsKIAogCWlmICh0LT5wYXJtcy5pcGguZGFkZHIgPT0gMCkKLS0gCjIu MjAuMQoKCkZyb20gMjk2ZTYxZDI0MTgyYjgzM2NmODIxMjZkNDMzZWM3MzUwNDEyNjY4MiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFp bC5jb20+CkRhdGU6IE1vbiwgMTEgRmViIDIwMTkgMTM6MDY6MTQgLTA4MDAKU3ViamVjdDogW1BB VENIIDE4LzIxXSBuZXRfc2NoZWQ6IGZpeCBhIHJhY2UgY29uZGl0aW9uIGluIHRjaW5kZXhfZGVz dHJveSgpCgpbIFVwc3RyZWFtIGNvbW1pdCA4MDE1ZDkzZWJkMjc0ODQ0MThkNDk1MjI4NGZkMDIx NzJmYTRiMGIyIF0KCnRjaW5kZXhfZGVzdHJveSgpIGludm9rZXMgdGNpbmRleF9kZXN0cm95X2Vs ZW1lbnQoKSB2aWEKYSB3YWxrZXIgdG8gZGVsZXRlIGVhY2ggZmlsdGVyIHJlc3VsdCBpbiBpdHMg cGVyZmVjdCBoYXNoCnRhYmxlLCBhbmQgdGNpbmRleF9kZXN0cm95X2VsZW1lbnQoKSBjYWxscyB0 Y2luZGV4X2RlbGV0ZSgpCndoaWNoIHNjaGVkdWxlcyB0Y2YgUkNVIHdvcmtzIHRvIGRvIHRoZSBm aW5hbCBkZWxldGlvbiB3b3JrLgpVbmZvcnR1bmF0ZWx5IHRoaXMgcmFjZXMgd2l0aCB0aGUgUkNV IGNhbGxiYWNrCl9fdGNpbmRleF9kZXN0cm95KCksIHdoaWNoIGNvdWxkIGxlYWQgdG8gdXNlLWFm dGVyLWZyZWUgYXMKcmVwb3J0ZWQgYnkgQWRyaWFuLgoKRml4IHRoaXMgYnkgbWlncmF0aW5nIHRo aXMgUkNVIGNhbGxiYWNrIHRvIHRjZiBSQ1Ugd29yayB0b28sCmFzIHRoYXQgd29ya3F1ZXVlIGlz IG9yZGVyZWQsIHdlIHdpbGwgbm90IGhhdmUgdXNlLWFmdGVyLWZyZWUuCgpOb3RlLCB3ZSBkb24n dCBuZWVkIHRvIGhvbGQgbmV0bnMgcmVmY250IGJlY2F1c2Ugd2UgZG9uJ3QgY2FsbAp0Y2ZfZXh0 c19kZXN0cm95KCkgaGVyZS4KCkZpeGVzOiAyN2NlNGYwNWUyYWIgKCJuZXRfc2NoZWQ6IHVzZSB0 Y2ZfcXVldWVfd29yaygpIGluIHRjaW5kZXggZmlsdGVyIikKUmVwb3J0ZWQtYnk6IEFkcmlhbiA8 YnVnc0BhYnRlbGVjb20ucm8+CkNjOiBCZW4gSHV0Y2hpbmdzIDxiZW5AZGVjYWRlbnQub3JnLnVr PgpDYzogSmFtYWwgSGFkaSBTYWxpbSA8amhzQG1vamF0YXR1LmNvbT4KQ2M6IEppcmkgUGlya28g PGppcmlAcmVzbnVsbGkudXM+ClNpZ25lZC1vZmYtYnk6IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2Nv bmdAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogbmV0L3NjaGVkL2Nsc190Y2luZGV4LmMgfCAxOCArKysrKysrKysrKy0t LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9jbHNfdGNpbmRleC5jIGIvbmV0L3NjaGVkL2Nsc190Y2lu ZGV4LmMKaW5kZXggOWNjYzkzZjI1N2RiLi43OWI1MmE2MzdkZGEgMTAwNjQ0Ci0tLSBhL25ldC9z Y2hlZC9jbHNfdGNpbmRleC5jCisrKyBiL25ldC9zY2hlZC9jbHNfdGNpbmRleC5jCkBAIC00OCw3 ICs0OCw3IEBAIHN0cnVjdCB0Y2luZGV4X2RhdGEgewogCXUzMiBoYXNoOwkJLyogaGFzaCB0YWJs ZSBzaXplOyAwIGlmIHVuZGVmaW5lZCAqLwogCXUzMiBhbGxvY19oYXNoOwkJLyogYWxsb2NhdGVk IHNpemUgKi8KIAl1MzIgZmFsbF90aHJvdWdoOwkvKiAwOiBvbmx5IGNsYXNzaWZ5IGlmIGV4cGxp Y2l0IG1hdGNoICovCi0Jc3RydWN0IHJjdV9oZWFkIHJjdTsKKwlzdHJ1Y3QgcmN1X3dvcmsgcndv cms7CiB9OwogCiBzdGF0aWMgaW5saW5lIGludCB0Y2luZGV4X2ZpbHRlcl9pc19zZXQoc3RydWN0 IHRjaW5kZXhfZmlsdGVyX3Jlc3VsdCAqcikKQEAgLTIyOSw5ICsyMjksMTEgQEAgc3RhdGljIGlu dCB0Y2luZGV4X2Rlc3Ryb3lfZWxlbWVudChzdHJ1Y3QgdGNmX3Byb3RvICp0cCwKIAlyZXR1cm4g dGNpbmRleF9kZWxldGUodHAsIGFyZywgJmxhc3QsIE5VTEwpOwogfQogCi1zdGF0aWMgdm9pZCBf X3RjaW5kZXhfZGVzdHJveShzdHJ1Y3QgcmN1X2hlYWQgKmhlYWQpCitzdGF0aWMgdm9pZCB0Y2lu ZGV4X2Rlc3Ryb3lfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiB7Ci0Jc3RydWN0IHRj aW5kZXhfZGF0YSAqcCA9IGNvbnRhaW5lcl9vZihoZWFkLCBzdHJ1Y3QgdGNpbmRleF9kYXRhLCBy Y3UpOworCXN0cnVjdCB0Y2luZGV4X2RhdGEgKnAgPSBjb250YWluZXJfb2YodG9fcmN1X3dvcmso d29yayksCisJCQkJCSAgICAgIHN0cnVjdCB0Y2luZGV4X2RhdGEsCisJCQkJCSAgICAgIHJ3b3Jr KTsKIAogCWtmcmVlKHAtPnBlcmZlY3QpOwogCWtmcmVlKHAtPmgpOwpAQCAtMjU4LDkgKzI2MCwx MSBAQCBzdGF0aWMgaW50IHRjaW5kZXhfZmlsdGVyX3Jlc3VsdF9pbml0KHN0cnVjdCB0Y2luZGV4 X2ZpbHRlcl9yZXN1bHQgKnIpCiAJcmV0dXJuIHRjZl9leHRzX2luaXQoJnItPmV4dHMsIFRDQV9U Q0lOREVYX0FDVCwgVENBX1RDSU5ERVhfUE9MSUNFKTsKIH0KIAotc3RhdGljIHZvaWQgX190Y2lu ZGV4X3BhcnRpYWxfZGVzdHJveShzdHJ1Y3QgcmN1X2hlYWQgKmhlYWQpCitzdGF0aWMgdm9pZCB0 Y2luZGV4X3BhcnRpYWxfZGVzdHJveV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIHsK LQlzdHJ1Y3QgdGNpbmRleF9kYXRhICpwID0gY29udGFpbmVyX29mKGhlYWQsIHN0cnVjdCB0Y2lu ZGV4X2RhdGEsIHJjdSk7CisJc3RydWN0IHRjaW5kZXhfZGF0YSAqcCA9IGNvbnRhaW5lcl9vZih0 b19yY3Vfd29yayh3b3JrKSwKKwkJCQkJICAgICAgc3RydWN0IHRjaW5kZXhfZGF0YSwKKwkJCQkJ ICAgICAgcndvcmspOwogCiAJa2ZyZWUocC0+cGVyZmVjdCk7CiAJa2ZyZWUocCk7CkBAIC00Nzgs NyArNDgyLDcgQEAgdGNpbmRleF9zZXRfcGFybXMoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdGNm X3Byb3RvICp0cCwgdW5zaWduZWQgbG9uZyBiYXNlLAogCX0KIAogCWlmIChvbGRwKQotCQljYWxs X3JjdSgmb2xkcC0+cmN1LCBfX3RjaW5kZXhfcGFydGlhbF9kZXN0cm95KTsKKwkJdGNmX3F1ZXVl X3dvcmsoJm9sZHAtPnJ3b3JrLCB0Y2luZGV4X3BhcnRpYWxfZGVzdHJveV93b3JrKTsKIAlyZXR1 cm4gMDsKIAogZXJyb3V0X2FsbG9jOgpAQCAtNTcwLDcgKzU3NCw3IEBAIHN0YXRpYyB2b2lkIHRj aW5kZXhfZGVzdHJveShzdHJ1Y3QgdGNmX3Byb3RvICp0cCwKIAl3YWxrZXIuZm4gPSB0Y2luZGV4 X2Rlc3Ryb3lfZWxlbWVudDsKIAl0Y2luZGV4X3dhbGsodHAsICZ3YWxrZXIpOwogCi0JY2FsbF9y Y3UoJnAtPnJjdSwgX190Y2luZGV4X2Rlc3Ryb3kpOworCXRjZl9xdWV1ZV93b3JrKCZwLT5yd29y aywgdGNpbmRleF9kZXN0cm95X3dvcmspOwogfQogCiAKLS0gCjIuMjAuMQoKCkZyb20gZDljMzFk YjNiYzM2NjNhODY1ZDkyMjJlNjdmZjExMjE0NjQ0NDdmMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+CkRhdGU6IE1vbiwg MTEgRmViIDIwMTkgMTM6MDY6MTUgLTA4MDAKU3ViamVjdDogW1BBVENIIDE5LzIxXSBuZXRfc2No ZWQ6IGZpeCBhIG1lbW9yeSBsZWFrIGluIGNsc190Y2luZGV4CgpbIFVwc3RyZWFtIGNvbW1pdCAw MzNiMjI4ZTdmMjZiMjlhZTM3ZjhiZmExYmM2YjIwOWE1MzY1ZTlmIF0KCldoZW4gdGNpbmRleF9k ZXN0cm95KCkgZGVzdHJveXMgYWxsIHRoZSBmaWx0ZXIgcmVzdWx0cyBpbgp0aGUgcGVyZmVjdCBo YXNoIHRhYmxlLCBpdCBpbnZva2VzIHRoZSB3YWxrZXIgdG8gZGVsZXRlCmVhY2ggb2YgdGhlbS4g SG93ZXZlciwgcmVzdWx0cyB3aXRoIGNsYXNzPT0wIGFyZSBza2lwcGVkCmluIGVpdGhlciB0Y2lu ZGV4X3dhbGsoKSBvciB0Y2luZGV4X2RlbGV0ZSgpLCB3aGljaCBjYXVzZXMKYSBtZW1vcnkgbGVh ayByZXBvcnRlZCBieSBrbWVtbGVhay4KClRoaXMgcGF0Y2ggZml4ZXMgaXQgYnkgc2tpcHBpbmcg dGhlIHdhbGtlciBhbmQgZGlyZWN0bHkKZGVsZXRpbmcgdGhlc2UgZmlsdGVyIHJlc3VsdHMgc28g d2UgZG9uJ3QgbWlzcyBhbnkgZmlsdGVyCnJlc3VsdC4KCkFzIGEgcmVzdWx0IG9mIHRoaXMgY2hh bmdlLCB3ZSBoYXZlIHRvIGluaXRpYWxpemUgZXh0cy0+bmV0CnByb3Blcmx5IGluIHRjaW5kZXhf YWxsb2NfcGVyZmVjdF9oYXNoKCkuIEZvciBuZXQtbmV4dCwgd2UKbmVlZCB0byBjb25zaWRlciB3 aGV0aGVyIHdlIHNob3VsZCBpbml0aWFsaXplIC0+bmV0IGluCnRjZl9leHRzX2luaXQoKSBpbnN0 ZWFkLCBiZWZvcmUgdGhhdCBqdXN0IGRpcmVjdGx5IHRlc3QKQ09ORklHX05FVF9DTFNfQUNUPXku CgpDYzogSmFtYWwgSGFkaSBTYWxpbSA8amhzQG1vamF0YXR1LmNvbT4KQ2M6IEppcmkgUGlya28g PGppcmlAcmVzbnVsbGkudXM+ClNpZ25lZC1vZmYtYnk6IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2Nv bmdAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogbmV0L3NjaGVkL2Nsc190Y2luZGV4LmMgfCA0NiArKysrKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDMwIGluc2VydGlv bnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9jbHNfdGNpbmRl eC5jIGIvbmV0L3NjaGVkL2Nsc190Y2luZGV4LmMKaW5kZXggNzliNTJhNjM3ZGRhLi43MGVhNWIx YTc4ODkgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9jbHNfdGNpbmRleC5jCisrKyBiL25ldC9zY2hl ZC9jbHNfdGNpbmRleC5jCkBAIC0yMjEsMTQgKzIyMSw2IEBAIHN0YXRpYyBpbnQgdGNpbmRleF9k ZWxldGUoc3RydWN0IHRjZl9wcm90byAqdHAsIHZvaWQgKmFyZywgYm9vbCAqbGFzdCwKIAlyZXR1 cm4gMDsKIH0KIAotc3RhdGljIGludCB0Y2luZGV4X2Rlc3Ryb3lfZWxlbWVudChzdHJ1Y3QgdGNm X3Byb3RvICp0cCwKLQkJCQkgICB2b2lkICphcmcsIHN0cnVjdCB0Y2Zfd2Fsa2VyICp3YWxrZXIp Ci17Ci0JYm9vbCBsYXN0OwotCi0JcmV0dXJuIHRjaW5kZXhfZGVsZXRlKHRwLCBhcmcsICZsYXN0 LCBOVUxMKTsKLX0KLQogc3RhdGljIHZvaWQgdGNpbmRleF9kZXN0cm95X3dvcmsoc3RydWN0IHdv cmtfc3RydWN0ICp3b3JrKQogewogCXN0cnVjdCB0Y2luZGV4X2RhdGEgKnAgPSBjb250YWluZXJf b2YodG9fcmN1X3dvcmsod29yayksCkBAIC0yNzksNyArMjcxLDcgQEAgc3RhdGljIHZvaWQgdGNp bmRleF9mcmVlX3BlcmZlY3RfaGFzaChzdHJ1Y3QgdGNpbmRleF9kYXRhICpjcCkKIAlrZnJlZShj cC0+cGVyZmVjdCk7CiB9CiAKLXN0YXRpYyBpbnQgdGNpbmRleF9hbGxvY19wZXJmZWN0X2hhc2go c3RydWN0IHRjaW5kZXhfZGF0YSAqY3ApCitzdGF0aWMgaW50IHRjaW5kZXhfYWxsb2NfcGVyZmVj dF9oYXNoKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHRjaW5kZXhfZGF0YSAqY3ApCiB7CiAJaW50 IGksIGVyciA9IDA7CiAKQEAgLTI5Myw2ICsyODUsOSBAQCBzdGF0aWMgaW50IHRjaW5kZXhfYWxs b2NfcGVyZmVjdF9oYXNoKHN0cnVjdCB0Y2luZGV4X2RhdGEgKmNwKQogCQkJCSAgICBUQ0FfVENJ TkRFWF9BQ1QsIFRDQV9UQ0lOREVYX1BPTElDRSk7CiAJCWlmIChlcnIgPCAwKQogCQkJZ290byBl cnJvdXQ7CisjaWZkZWYgQ09ORklHX05FVF9DTFNfQUNUCisJCWNwLT5wZXJmZWN0W2ldLmV4dHMu bmV0ID0gbmV0OworI2VuZGlmCiAJfQogCiAJcmV0dXJuIDA7CkBAIC0zNDEsNyArMzM2LDcgQEAg dGNpbmRleF9zZXRfcGFybXMoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdGNmX3Byb3RvICp0cCwg dW5zaWduZWQgbG9uZyBiYXNlLAogCWlmIChwLT5wZXJmZWN0KSB7CiAJCWludCBpOwogCi0JCWlm ICh0Y2luZGV4X2FsbG9jX3BlcmZlY3RfaGFzaChjcCkgPCAwKQorCQlpZiAodGNpbmRleF9hbGxv Y19wZXJmZWN0X2hhc2gobmV0LCBjcCkgPCAwKQogCQkJZ290byBlcnJvdXQ7CiAJCWZvciAoaSA9 IDA7IGkgPCBjcC0+aGFzaDsgaSsrKQogCQkJY3AtPnBlcmZlY3RbaV0ucmVzID0gcC0+cGVyZmVj dFtpXS5yZXM7CkBAIC00MTAsNyArNDA1LDcgQEAgdGNpbmRleF9zZXRfcGFybXMoc3RydWN0IG5l dCAqbmV0LCBzdHJ1Y3QgdGNmX3Byb3RvICp0cCwgdW5zaWduZWQgbG9uZyBiYXNlLAogCWVyciA9 IC1FTk9NRU07CiAJaWYgKCFjcC0+cGVyZmVjdCAmJiAhY3AtPmgpIHsKIAkJaWYgKHZhbGlkX3Bl cmZlY3RfaGFzaChjcCkpIHsKLQkJCWlmICh0Y2luZGV4X2FsbG9jX3BlcmZlY3RfaGFzaChjcCkg PCAwKQorCQkJaWYgKHRjaW5kZXhfYWxsb2NfcGVyZmVjdF9oYXNoKG5ldCwgY3ApIDwgMCkKIAkJ CQlnb3RvIGVycm91dF9hbGxvYzsKIAkJCWJhbGxvYyA9IDE7CiAJCX0gZWxzZSB7CkBAIC01NjYs MTMgKzU2MSwzMiBAQCBzdGF0aWMgdm9pZCB0Y2luZGV4X2Rlc3Ryb3koc3RydWN0IHRjZl9wcm90 byAqdHAsCiAJCQkgICAgc3RydWN0IG5ldGxpbmtfZXh0X2FjayAqZXh0YWNrKQogewogCXN0cnVj dCB0Y2luZGV4X2RhdGEgKnAgPSBydG5sX2RlcmVmZXJlbmNlKHRwLT5yb290KTsKLQlzdHJ1Y3Qg dGNmX3dhbGtlciB3YWxrZXI7CisJaW50IGk7CiAKIAlwcl9kZWJ1ZygidGNpbmRleF9kZXN0cm95 KHRwICVwKSxwICVwXG4iLCB0cCwgcCk7Ci0Jd2Fsa2VyLmNvdW50ID0gMDsKLQl3YWxrZXIuc2tp cCA9IDA7Ci0Jd2Fsa2VyLmZuID0gdGNpbmRleF9kZXN0cm95X2VsZW1lbnQ7Ci0JdGNpbmRleF93 YWxrKHRwLCAmd2Fsa2VyKTsKKworCWlmIChwLT5wZXJmZWN0KSB7CisJCWZvciAoaSA9IDA7IGkg PCBwLT5oYXNoOyBpKyspIHsKKwkJCXN0cnVjdCB0Y2luZGV4X2ZpbHRlcl9yZXN1bHQgKnIgPSBw LT5wZXJmZWN0ICsgaTsKKworCQkJdGNmX3VuYmluZF9maWx0ZXIodHAsICZyLT5yZXMpOworCQkJ aWYgKHRjZl9leHRzX2dldF9uZXQoJnItPmV4dHMpKQorCQkJCXRjZl9xdWV1ZV93b3JrKCZyLT5y d29yaywKKwkJCQkJICAgICAgIHRjaW5kZXhfZGVzdHJveV9yZXh0c193b3JrKTsKKwkJCWVsc2UK KwkJCQlfX3RjaW5kZXhfZGVzdHJveV9yZXh0cyhyKTsKKwkJfQorCX0KKworCWZvciAoaSA9IDA7 IHAtPmggJiYgaSA8IHAtPmhhc2g7IGkrKykgeworCQlzdHJ1Y3QgdGNpbmRleF9maWx0ZXIgKmYs ICpuZXh0OworCQlib29sIGxhc3Q7CisKKwkJZm9yIChmID0gcnRubF9kZXJlZmVyZW5jZShwLT5o W2ldKTsgZjsgZiA9IG5leHQpIHsKKwkJCW5leHQgPSBydG5sX2RlcmVmZXJlbmNlKGYtPm5leHQp OworCQkJdGNpbmRleF9kZWxldGUodHAsICZmLT5yZXN1bHQsICZsYXN0LCBOVUxMKTsKKwkJfQor CX0KIAogCXRjZl9xdWV1ZV93b3JrKCZwLT5yd29yaywgdGNpbmRleF9kZXN0cm95X3dvcmspOwog fQotLSAKMi4yMC4xCgoKRnJvbSA1ZjY4Y2U4MjdjODI3Y2QwZDAxNTY2ODdlYzllMDJkNmRiODFk YTRmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDb25nIFdhbmcgPHhpeW91Lndhbmdj b25nQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAxMSBGZWIgMjAxOSAxMzowNjoxNiAtMDgwMApTdWJq ZWN0OiBbUEFUQ0ggMjAvMjFdIG5ldF9zY2hlZDogZml4IHR3byBtb3JlIG1lbW9yeSBsZWFrcyBp biBjbHNfdGNpbmRleAoKWyBVcHN0cmVhbSBjb21taXQgMWRiODE3ZTc1ZjViOTM4N2I4ZGIxMWUz N2Q1ZjA2MjRlYjkyMjNlMCBdCgpzdHJ1Y3QgdGNpbmRleF9maWx0ZXJfcmVzdWx0IGNvbnRhaW5z IHR3byBwYXJ0czoKc3RydWN0IHRjZl9leHRzIGFuZCBzdHJ1Y3QgdGNmX3Jlc3VsdC4KCkZvciB0 aGUgbG9jYWwgdmFyaWFibGUgJ2NyJywgaXRzIGV4dHMgcGFydCBpcyBuZXZlciB1c2VkIGJ1dApp bml0aWFsaXplZCB3aXRob3V0IGJlaW5nIHJlbGVhc2VkIHByb3Blcmx5IG9uIHN1Y2Nlc3MgcGF0 aC4gU28KanVzdCBjb21wbGV0ZWx5IHJlbW92ZSB0aGUgZXh0cyBwYXJ0IHRvIGZpeCB0aGlzIGxl YWsuCgpGb3IgdGhlIGxvY2FsIHZhcmlhYmxlICduZXdfZmlsdGVyX3Jlc3VsdCcsIGl0IGlzIG5l dmVyIHByb3Blcmx5CnJlbGVhc2VkIGlmIG5vdCB1c2VkIGJ5ICdyJyBvbiBzdWNjZXNzIHBhdGgu CgpDYzogSmFtYWwgSGFkaSBTYWxpbSA8amhzQG1vamF0YXR1LmNvbT4KQ2M6IEppcmkgUGlya28g PGppcmlAcmVzbnVsbGkudXM+ClNpZ25lZC1vZmYtYnk6IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2Nv bmdAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogbmV0L3NjaGVkL2Nsc190Y2luZGV4LmMgfCAxNiArKysrKysrLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL25ldC9zY2hlZC9jbHNfdGNpbmRleC5jIGIvbmV0L3NjaGVkL2Nsc190Y2luZGV4 LmMKaW5kZXggNzBlYTViMWE3ODg5Li4zOGJiODgyYmI5NTggMTAwNjQ0Ci0tLSBhL25ldC9zY2hl ZC9jbHNfdGNpbmRleC5jCisrKyBiL25ldC9zY2hlZC9jbHNfdGNpbmRleC5jCkBAIC0zMDQsOSAr MzA0LDkgQEAgdGNpbmRleF9zZXRfcGFybXMoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdGNmX3By b3RvICp0cCwgdW5zaWduZWQgbG9uZyBiYXNlLAogCQkgIHN0cnVjdCBubGF0dHIgKmVzdCwgYm9v bCBvdnIsIHN0cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjaykKIHsKIAlzdHJ1Y3QgdGNpbmRl eF9maWx0ZXJfcmVzdWx0IG5ld19maWx0ZXJfcmVzdWx0LCAqb2xkX3IgPSByOwotCXN0cnVjdCB0 Y2luZGV4X2ZpbHRlcl9yZXN1bHQgY3I7CiAJc3RydWN0IHRjaW5kZXhfZGF0YSAqY3AgPSBOVUxM LCAqb2xkcDsKIAlzdHJ1Y3QgdGNpbmRleF9maWx0ZXIgKmYgPSBOVUxMOyAvKiBtYWtlIGdjYyBi ZWhhdmUgKi8KKwlzdHJ1Y3QgdGNmX3Jlc3VsdCBjciA9IHt9OwogCWludCBlcnIsIGJhbGxvYyA9 IDA7CiAJc3RydWN0IHRjZl9leHRzIGU7CiAKQEAgLTM0NSwxMyArMzQ1LDEwIEBAIHRjaW5kZXhf c2V0X3Bhcm1zKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHRjZl9wcm90byAqdHAsIHVuc2lnbmVk IGxvbmcgYmFzZSwKIAljcC0+aCA9IHAtPmg7CiAKIAllcnIgPSB0Y2luZGV4X2ZpbHRlcl9yZXN1 bHRfaW5pdCgmbmV3X2ZpbHRlcl9yZXN1bHQpOwotCWlmIChlcnIgPCAwKQotCQlnb3RvIGVycm91 dDE7Ci0JZXJyID0gdGNpbmRleF9maWx0ZXJfcmVzdWx0X2luaXQoJmNyKTsKIAlpZiAoZXJyIDwg MCkKIAkJZ290byBlcnJvdXQxOwogCWlmIChvbGRfcikKLQkJY3IucmVzID0gci0+cmVzOworCQlj ciA9IHItPnJlczsKIAogCWlmICh0YltUQ0FfVENJTkRFWF9IQVNIXSkKIAkJY3AtPmhhc2ggPSBu bGFfZ2V0X3UzMih0YltUQ0FfVENJTkRFWF9IQVNIXSk7CkBAIC00NDIsOCArNDM5LDggQEAgdGNp bmRleF9zZXRfcGFybXMoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdGNmX3Byb3RvICp0cCwgdW5z aWduZWQgbG9uZyBiYXNlLAogCX0KIAogCWlmICh0YltUQ0FfVENJTkRFWF9DTEFTU0lEXSkgewot CQljci5yZXMuY2xhc3NpZCA9IG5sYV9nZXRfdTMyKHRiW1RDQV9UQ0lOREVYX0NMQVNTSURdKTsK LQkJdGNmX2JpbmRfZmlsdGVyKHRwLCAmY3IucmVzLCBiYXNlKTsKKwkJY3IuY2xhc3NpZCA9IG5s YV9nZXRfdTMyKHRiW1RDQV9UQ0lOREVYX0NMQVNTSURdKTsKKwkJdGNmX2JpbmRfZmlsdGVyKHRw LCAmY3IsIGJhc2UpOwogCX0KIAogCWlmIChvbGRfciAmJiBvbGRfciAhPSByKSB7CkBAIC00NTUs NyArNDUyLDcgQEAgdGNpbmRleF9zZXRfcGFybXMoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdGNm X3Byb3RvICp0cCwgdW5zaWduZWQgbG9uZyBiYXNlLAogCX0KIAogCW9sZHAgPSBwOwotCXItPnJl cyA9IGNyLnJlczsKKwlyLT5yZXMgPSBjcjsKIAl0Y2ZfZXh0c19jaGFuZ2UoJnItPmV4dHMsICZl KTsKIAogCXJjdV9hc3NpZ25fcG9pbnRlcih0cC0+cm9vdCwgY3ApOwpAQCAtNDc0LDYgKzQ3MSw4 IEBAIHRjaW5kZXhfc2V0X3Bhcm1zKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHRjZl9wcm90byAq dHAsIHVuc2lnbmVkIGxvbmcgYmFzZSwKIAkJCQk7IC8qIG5vdGhpbmcgKi8KIAogCQlyY3VfYXNz aWduX3BvaW50ZXIoKmZwLCBmKTsKKwl9IGVsc2UgeworCQl0Y2ZfZXh0c19kZXN0cm95KCZuZXdf ZmlsdGVyX3Jlc3VsdC5leHRzKTsKIAl9CiAKIAlpZiAob2xkcCkKQEAgLTQ4Niw3ICs0ODUsNiBA QCB0Y2luZGV4X3NldF9wYXJtcyhzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCB0Y2ZfcHJvdG8gKnRw LCB1bnNpZ25lZCBsb25nIGJhc2UsCiAJZWxzZSBpZiAoYmFsbG9jID09IDIpCiAJCWtmcmVlKGNw LT5oKTsKIGVycm91dDE6Ci0JdGNmX2V4dHNfZGVzdHJveSgmY3IuZXh0cyk7CiAJdGNmX2V4dHNf ZGVzdHJveSgmbmV3X2ZpbHRlcl9yZXN1bHQuZXh0cyk7CiBlcnJvdXQ6CiAJa2ZyZWUoY3ApOwot LSAKMi4yMC4xCgoKRnJvbSA5NTEwOTc4M2M5ZTEwMDExY2I1ZGFiMTJjZTRiMWVjMDIwNDE3MzE3 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1l bGxhbm94LmNvbT4KRGF0ZTogTW9uLCAxMSBGZWIgMjAxOSAxNjoyNzowMiAtMDgwMApTdWJqZWN0 OiBbUEFUQ0ggMjEvMjFdIG5ldC9tbHg1ZTogWERQLCBmaXggcmVkaXJlY3QgcmVzb3VyY2VzIGF2 YWlsYWJpbGl0eQogY2hlY2sKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3Bs YWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBz dHJlYW0gY29tbWl0IDQwN2UxN2IxYTY5YTUxYmE5YTUxMmEwNDM0MmRhNTZjMWY5MzFkZjQgXQoK Q3VycmVudGx5IG1seDUgZHJpdmVyIGNyZWF0ZXMgeGRwIHJlZGlyZWN0IGh3IHF1ZXVlcyB1bmNv bmRpdGlvbmFsbHkgb24KbmV0ZGV2aWNlIG9wZW4sIFRoaXMgaXMgZ3JlYXQgdW50aWwgc29tZW9u ZSBzdGFydHMgcmVkaXJlY3RpbmcgWERQIHRyYWZmaWMKdmlhIG5kb194ZHBfeG1pdCBvbiBtbHg1 IGRldmljZSBhbmQgY2hhbmdlcyB0aGUgZGV2aWNlIGNvbmZpZ3VyYXRpb24gYXQKdGhlIHNhbWUg dGltZSwgdGhpcyBtaWdodCBjYXVzZSBjcmFzaGVzLCBzaW5jZSB0aGUgb3RoZXIgZGV2aWNlJ3Mg bmFwaQppcyBub3QgYXdhcmUgb2YgdGhlIG1seDUgc3RhdGUgY2hhbmdlIChyZXNvdXJjZXMgdW4t YXZhaWxhYmlsaXR5KS4KClRvIGZpeCB0aGlzIHdlIG11c3Qgc3luY2hyb25pemUgd2l0aCBvdGhl ciBkZXZpY2VzIG5hcGkncyBvbiB0aGUgc3lzdGVtLgpBZGRlZCBhIG5ldyBmbGFnIHVuZGVyIG1s eDVlX3ByaXYgdG8gZGV0ZXJtaW5lIFhEUCBUWCByZXNvdXJjZXMgYXJlCmF2YWlsYWJsZSwgc2V0 L2NsZWFyIGl0IHVwIHdoZW4gbmVjZXNzYXJ5IGFuZCB1c2Ugc3luY2hyb25pemVfcmN1KCkKd2hl biB0aGUgZmxhZyBpcyB0dXJuZWQgb2ZmLCBzbyBvdGhlciBuYXBpJ3MgYXJlIGluLXN5bmMgd2l0 aCBpdCwgYmVmb3JlCndlIGFjdHVhbGx5IGNsZWFudXAgdGhlIGh3IHJlc291cmNlcy4KClRoZSBm bGFnIGlzIHRlc3RlZCBwcmlvciB0byBjb21taXR0aW5nIHRvIHRyYW5zbWl0IG9uIG1seDVlX3hk cF94bWl0LCBhbmQKaXQgaXMgc3VmZmljaWVudCB0byBkZXRlcm1pbmUgaWYgaXQgc2FmZSB0byB0 cmFuc21pdCBvciBub3QuIFRoZSBvdGhlcgp0d28gaW50ZXJuYWwgZmxhZ3MgKE1MWDVFX1NUQVRF X09QRU5FRCBhbmQgTUxYNUVfU1FfU1RBVEVfRU5BQkxFRCkgYmVjb21lCnVubmVjZXNzYXJ5LiBU aHVzLCB0aGV5IGFyZSByZW1vdmVkIGZyb20gZGF0YSBwYXRoLgoKRml4ZXM6IDU4Yjk5ZWUzZTNl YiAoIm5ldC9tbHg1ZTogQWRkIHN1cHBvcnQgZm9yIFhEUF9SRURJUkVDVCBpbiBkZXZpY2Utb3V0 IHNpZGUiKQpSZXBvcnRlZC1ieTogVG9rZSBIw7hpbGFuZC1Kw7hyZ2Vuc2VuIDx0b2tlQHJlZGhh dC5jb20+ClJldmlld2VkLWJ5OiBUYXJpcSBUb3VrYW4gPHRhcmlxdEBtZWxsYW5veC5jb20+ClNp Z25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRy aXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oICAgIHwgIDEgKwogLi4u L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4veGRwLmMgICAgfCAgNiArKy0tLS0K IC4uLi9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3hkcC5oICAgIHwgMTcgKysr KysrKysrKysrKysrKysKIC4uLi9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21h aW4uYyAgIHwgIDIgKysKIDQgZmlsZXMgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgNCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvZW4uaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5o CmluZGV4IDE2Y2VlYjFiMmM5ZC4uZGE1MmU2MGQ0NDM3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaAorKysgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaApAQCAtNjMzLDYgKzYzMyw3IEBAIGVudW0gewog CU1MWDVFX1NUQVRFX0FTWU5DX0VWRU5UU19FTkFCTEVELAogCU1MWDVFX1NUQVRFX09QRU5FRCwK IAlNTFg1RV9TVEFURV9ERVNUUk9ZSU5HLAorCU1MWDVFX1NUQVRFX1hEUF9UWF9FTkFCTEVELAog fTsKIAogc3RydWN0IG1seDVlX3JxdCB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvZW4veGRwLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg1L2NvcmUvZW4veGRwLmMKaW5kZXggYWQ2ZDQ3MWQwMGRkLi40YTMzYzlhN2NhYzcg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi94 ZHAuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4veGRw LmMKQEAgLTI2Miw3ICsyNjIsOCBAQCBpbnQgbWx4NWVfeGRwX3htaXQoc3RydWN0IG5ldF9kZXZp Y2UgKmRldiwgaW50IG4sIHN0cnVjdCB4ZHBfZnJhbWUgKipmcmFtZXMsCiAJaW50IHNxX251bTsK IAlpbnQgaTsKIAotCWlmICh1bmxpa2VseSghdGVzdF9iaXQoTUxYNUVfU1RBVEVfT1BFTkVELCAm cHJpdi0+c3RhdGUpKSkKKwkvKiB0aGlzIGZsYWcgaXMgc3VmZmljaWVudCwgbm8gbmVlZCB0byB0 ZXN0IGludGVybmFsIHNxIHN0YXRlICovCisJaWYgKHVubGlrZWx5KCFtbHg1ZV94ZHBfdHhfaXNf ZW5hYmxlZChwcml2KSkpCiAJCXJldHVybiAtRU5FVERPV047CiAKIAlpZiAodW5saWtlbHkoZmxh Z3MgJiB+WERQX1hNSVRfRkxBR1NfTUFTSykpCkBAIC0yNzUsOSArMjc2LDYgQEAgaW50IG1seDVl X3hkcF94bWl0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBuLCBzdHJ1Y3QgeGRwX2ZyYW1l ICoqZnJhbWVzLAogCiAJc3EgPSAmcHJpdi0+Y2hhbm5lbHMuY1tzcV9udW1dLT54ZHBzcTsKIAot CWlmICh1bmxpa2VseSghdGVzdF9iaXQoTUxYNUVfU1FfU1RBVEVfRU5BQkxFRCwgJnNxLT5zdGF0 ZSkpKQotCQlyZXR1cm4gLUVORVRET1dOOwotCiAJZm9yIChpID0gMDsgaSA8IG47IGkrKykgewog CQlzdHJ1Y3QgeGRwX2ZyYW1lICp4ZHBmID0gZnJhbWVzW2ldOwogCQlzdHJ1Y3QgbWx4NWVfeGRw X2luZm8geGRwaTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDUvY29yZS9lbi94ZHAuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29y ZS9lbi94ZHAuaAppbmRleCA2ZGZhYjA0NTkyNWYuLjRkMDk2NjIzMTc4YiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3hkcC5oCisrKyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi94ZHAuaApAQCAtNDksNiAr NDksMjMgQEAgYm9vbCBtbHg1ZV94bWl0X3hkcF9mcmFtZShzdHJ1Y3QgbWx4NWVfeGRwc3EgKnNx LCBzdHJ1Y3QgbWx4NWVfeGRwX2luZm8gKnhkcGkpOwogaW50IG1seDVlX3hkcF94bWl0KHN0cnVj dCBuZXRfZGV2aWNlICpkZXYsIGludCBuLCBzdHJ1Y3QgeGRwX2ZyYW1lICoqZnJhbWVzLAogCQkg ICB1MzIgZmxhZ3MpOwogCitzdGF0aWMgaW5saW5lIHZvaWQgbWx4NWVfeGRwX3R4X2VuYWJsZShz dHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdikKK3sKKwlzZXRfYml0KE1MWDVFX1NUQVRFX1hEUF9UWF9F TkFCTEVELCAmcHJpdi0+c3RhdGUpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgbWx4NWVfeGRw X3R4X2Rpc2FibGUoc3RydWN0IG1seDVlX3ByaXYgKnByaXYpCit7CisJY2xlYXJfYml0KE1MWDVF X1NUQVRFX1hEUF9UWF9FTkFCTEVELCAmcHJpdi0+c3RhdGUpOworCS8qIGxldCBvdGhlciBkZXZp Y2UncyBuYXBpKHMpIHNlZSBvdXIgbmV3IHN0YXRlICovCisJc3luY2hyb25pemVfcmN1KCk7Cit9 CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBtbHg1ZV94ZHBfdHhfaXNfZW5hYmxlZChzdHJ1Y3QgbWx4 NWVfcHJpdiAqcHJpdikKK3sKKwlyZXR1cm4gdGVzdF9iaXQoTUxYNUVfU1RBVEVfWERQX1RYX0VO QUJMRUQsICZwcml2LT5zdGF0ZSk7Cit9CisKIHN0YXRpYyBpbmxpbmUgdm9pZCBtbHg1ZV94bWl0 X3hkcF9kb29yYmVsbChzdHJ1Y3QgbWx4NWVfeGRwc3EgKnNxKQogewogCXN0cnVjdCBtbHg1X3dx X2N5YyAqd3EgPSAmc3EtPndxOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL2VuX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9lbl9tYWluLmMKaW5kZXggOTQ0ZjIxZjk5ZDQzLi42MzdkNTljMDFmZTUgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWlu LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4u YwpAQCAtMjg5MCw2ICsyODkwLDcgQEAgdm9pZCBtbHg1ZV9hY3RpdmF0ZV9wcml2X2NoYW5uZWxz KHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2KQogCiAJbWx4NWVfYnVpbGRfdHgyc3FfbWFwcyhwcml2 KTsKIAltbHg1ZV9hY3RpdmF0ZV9jaGFubmVscygmcHJpdi0+Y2hhbm5lbHMpOworCW1seDVlX3hk cF90eF9lbmFibGUocHJpdik7CiAJbmV0aWZfdHhfc3RhcnRfYWxsX3F1ZXVlcyhwcml2LT5uZXRk ZXYpOwogCiAJaWYgKE1MWDVfRVNXSVRDSF9NQU5BR0VSKHByaXYtPm1kZXYpKQpAQCAtMjkxMSw2 ICsyOTEyLDcgQEAgdm9pZCBtbHg1ZV9kZWFjdGl2YXRlX3ByaXZfY2hhbm5lbHMoc3RydWN0IG1s eDVlX3ByaXYgKnByaXYpCiAJICovCiAJbmV0aWZfdHhfc3RvcF9hbGxfcXVldWVzKHByaXYtPm5l dGRldik7CiAJbmV0aWZfdHhfZGlzYWJsZShwcml2LT5uZXRkZXYpOworCW1seDVlX3hkcF90eF9k aXNhYmxlKHByaXYpOwogCW1seDVlX2RlYWN0aXZhdGVfY2hhbm5lbHMoJnByaXYtPmNoYW5uZWxz KTsKIH0KIAotLSAKMi4yMC4xCgo= ----Next_Part(Sat_Feb_23_21_18_00_2019_036)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_420.mbox" RnJvbSA2NGJmYjU3MTZmNzcwNGNiOGNlZjk3M2U1YTc0MTNkY2JmYzdhYzE4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRh dGU6IE1vbiwgMTEgRmViIDIwMTkgMTQ6NDE6MjIgLTA4MDAKU3ViamVjdDogW1BBVENIIDAxLzIz XSBiYXRtYW4tYWR2OiBmaXggdW5pbml0LXZhbHVlIGluIGJhdGFkdl9pbnRlcmZhY2VfdHgoKQoK WyBVcHN0cmVhbSBjb21taXQgNGZmY2JmYWM2MDY0MmY2M2FlM2Q4MDg5MWY1NzNiYTdlOTRhMjY1 YyBdCgpLTVNBTiByZXBvcnRlZCBiYXRhZHZfaW50ZXJmYWNlX3R4KCkgd2FzIHBvc3NpYmx5IHVz aW5nIGEKZ2FyYmFnZSB2YWx1ZSBbMV0KCmJhdGFkdl9nZXRfdmlkKCkgZG9lcyBoYXZlIGEgcHNr Yl9tYXlfcHVsbCgpIGNhbGwKYnV0IGJhdGFkdl9pbnRlcmZhY2VfdHgoKSBkb2VzIG5vdCBhY3R1 YWxseSBtYWtlIHN1cmUKdGhpcyBkaWQgbm90IGZhaWwuCgpbMV0KQlVHOiBLTVNBTjogdW5pbml0 LXZhbHVlIGluIGJhdGFkdl9pbnRlcmZhY2VfdHgrMHg5MDgvMHgxZTQwIG5ldC9iYXRtYW4tYWR2 L3NvZnQtaW50ZXJmYWNlLmM6MjMxCkNQVTogMCBQSUQ6IDEwMDA2IENvbW06IHN5ei1leGVjdXRv cjQ2OSBOb3QgdGFpbnRlZCA0LjIwLjAtcmM3KyAjNQpIYXJkd2FyZSBuYW1lOiBHb29nbGUgR29v Z2xlIENvbXB1dGUgRW5naW5lL0dvb2dsZSBDb21wdXRlIEVuZ2luZSwgQklPUyBHb29nbGUgMDEv MDEvMjAxMQpDYWxsIFRyYWNlOgogX19kdW1wX3N0YWNrIGxpYi9kdW1wX3N0YWNrLmM6NzcgW2lu bGluZV0KIGR1bXBfc3RhY2srMHgxNzMvMHgxZDAgbGliL2R1bXBfc3RhY2suYzoxMTMKIGttc2Fu X3JlcG9ydCsweDEyZS8weDJhMCBtbS9rbXNhbi9rbXNhbi5jOjYxMwogX19tc2FuX3dhcm5pbmcr MHg4Mi8weGYwIG1tL2ttc2FuL2ttc2FuX2luc3RyLmM6MzEzCiBiYXRhZHZfaW50ZXJmYWNlX3R4 KzB4OTA4LzB4MWU0MCBuZXQvYmF0bWFuLWFkdi9zb2Z0LWludGVyZmFjZS5jOjIzMQogX19uZXRk ZXZfc3RhcnRfeG1pdCBpbmNsdWRlL2xpbnV4L25ldGRldmljZS5oOjQzNTYgW2lubGluZV0KIG5l dGRldl9zdGFydF94bWl0IGluY2x1ZGUvbGludXgvbmV0ZGV2aWNlLmg6NDM2NSBbaW5saW5lXQog eG1pdF9vbmUgbmV0L2NvcmUvZGV2LmM6MzI1NyBbaW5saW5lXQogZGV2X2hhcmRfc3RhcnRfeG1p dCsweDYwNy8weGM0MCBuZXQvY29yZS9kZXYuYzozMjczCiBfX2Rldl9xdWV1ZV94bWl0KzB4MmU0 Mi8weDNiYzAgbmV0L2NvcmUvZGV2LmM6Mzg0MwogZGV2X3F1ZXVlX3htaXQrMHg0Yi8weDYwIG5l dC9jb3JlL2Rldi5jOjM4NzYKIHBhY2tldF9zbmQgbmV0L3BhY2tldC9hZl9wYWNrZXQuYzoyOTI4 IFtpbmxpbmVdCiBwYWNrZXRfc2VuZG1zZysweDgzMDYvMHg4ZjMwIG5ldC9wYWNrZXQvYWZfcGFj a2V0LmM6Mjk1Mwogc29ja19zZW5kbXNnX25vc2VjIG5ldC9zb2NrZXQuYzo2MjEgW2lubGluZV0K IHNvY2tfc2VuZG1zZyBuZXQvc29ja2V0LmM6NjMxIFtpbmxpbmVdCiBfX3N5c19zZW5kdG8rMHg4 YzQvMHhhYzAgbmV0L3NvY2tldC5jOjE3ODgKIF9fZG9fc3lzX3NlbmR0byBuZXQvc29ja2V0LmM6 MTgwMCBbaW5saW5lXQogX19zZV9zeXNfc2VuZHRvKzB4MTA3LzB4MTMwIG5ldC9zb2NrZXQuYzox Nzk2CiBfX3g2NF9zeXNfc2VuZHRvKzB4NmUvMHg5MCBuZXQvc29ja2V0LmM6MTc5NgogZG9fc3lz Y2FsbF82NCsweGJjLzB4ZjAgYXJjaC94ODYvZW50cnkvY29tbW9uLmM6MjkxCiBlbnRyeV9TWVND QUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg2My8weGU3ClJJUDogMDAzMzoweDQ0MTg4OQpDb2RlOiAx OCA4OSBkMCBjMyA2NiAyZSAwZiAxZiA4NCAwMCAwMCAwMCAwMCAwMCAwZiAxZiAwMCA0OCA4OSBm OCA0OCA4OSBmNyA0OCA4OSBkNiA0OCA4OSBjYSA0ZCA4OSBjMiA0ZCA4OSBjOCA0YyA4YiA0YyAy NCAwOCAwZiAwNSA8NDg+IDNkIDAxIGYwIGZmIGZmIDBmIDgzIGJiIDEwIGZjIGZmIGMzIDY2IDJl IDBmIDFmIDg0IDAwIDAwIDAwIDAwClJTUDogMDAyYjowMDAwN2ZmZGRhNmZkNDY4IEVGTEFHUzog MDAwMDAyMTYgT1JJR19SQVg6IDAwMDAwMDAwMDAwMDAwMmMKUkFYOiBmZmZmZmZmZmZmZmZmZmRh IFJCWDogMDAwMDAwMDAwMDAwMDAwMiBSQ1g6IDAwMDAwMDAwMDA0NDE4ODkKUkRYOiAwMDAwMDAw MDAwMDAwMDBlIFJTSTogMDAwMDAwMDAyMDAwMDBjMCBSREk6IDAwMDAwMDAwMDAwMDAwMDMKUkJQ OiAwMDAwMDAwMDAwMDAwMDAzIFIwODogMDAwMDAwMDAwMDAwMDAwMCBSMDk6IDAwMDAwMDAwMDAw MDAwMDAKUjEwOiAwMDAwMDAwMDAwMDAwMDAwIFIxMTogMDAwMDAwMDAwMDAwMDIxNiBSMTI6IDAw MDA3ZmZkZGE2ZmQ0YzAKUjEzOiAwMDAwN2ZmZGRhNmZkNGIwIFIxNDogMDAwMDAwMDAwMDAwMDAw MCBSMTU6IDAwMDAwMDAwMDAwMDAwMDAKClVuaW5pdCB3YXMgY3JlYXRlZCBhdDoKIGttc2FuX3Nh dmVfc3RhY2tfd2l0aF9mbGFncyBtbS9rbXNhbi9rbXNhbi5jOjIwNCBbaW5saW5lXQoga21zYW5f aW50ZXJuYWxfcG9pc29uX3NoYWRvdysweDkyLzB4MTUwIG1tL2ttc2FuL2ttc2FuLmM6MTU4CiBr bXNhbl9rbWFsbG9jKzB4YTYvMHgxMzAgbW0va21zYW4va21zYW5faG9va3MuYzoxNzYKIGttc2Fu X3NsYWJfYWxsb2MrMHhlLzB4MTAgbW0va21zYW4va21zYW5faG9va3MuYzoxODUKIHNsYWJfcG9z dF9hbGxvY19ob29rIG1tL3NsYWIuaDo0NDYgW2lubGluZV0KIHNsYWJfYWxsb2Nfbm9kZSBtbS9z bHViLmM6Mjc1OSBbaW5saW5lXQogX19rbWFsbG9jX25vZGVfdHJhY2tfY2FsbGVyKzB4ZTE4LzB4 MTAzMCBtbS9zbHViLmM6NDM4MwogX19rbWFsbG9jX3Jlc2VydmUgbmV0L2NvcmUvc2tidWZmLmM6 MTM3IFtpbmxpbmVdCiBfX2FsbG9jX3NrYisweDMwOS8weGEyMCBuZXQvY29yZS9za2J1ZmYuYzoy MDUKIGFsbG9jX3NrYiBpbmNsdWRlL2xpbnV4L3NrYnVmZi5oOjk5OCBbaW5saW5lXQogYWxsb2Nf c2tiX3dpdGhfZnJhZ3MrMHgxYzcvMHhhYzAgbmV0L2NvcmUvc2tidWZmLmM6NTIyMAogc29ja19h bGxvY19zZW5kX3Bza2IrMHhhZmQvMHgxMGUwIG5ldC9jb3JlL3NvY2suYzoyMDgzCiBwYWNrZXRf YWxsb2Nfc2tiIG5ldC9wYWNrZXQvYWZfcGFja2V0LmM6Mjc4MSBbaW5saW5lXQogcGFja2V0X3Nu ZCBuZXQvcGFja2V0L2FmX3BhY2tldC5jOjI4NzIgW2lubGluZV0KIHBhY2tldF9zZW5kbXNnKzB4 NjYxYS8weDhmMzAgbmV0L3BhY2tldC9hZl9wYWNrZXQuYzoyOTUzCiBzb2NrX3NlbmRtc2dfbm9z ZWMgbmV0L3NvY2tldC5jOjYyMSBbaW5saW5lXQogc29ja19zZW5kbXNnIG5ldC9zb2NrZXQuYzo2 MzEgW2lubGluZV0KIF9fc3lzX3NlbmR0bysweDhjNC8weGFjMCBuZXQvc29ja2V0LmM6MTc4OAog X19kb19zeXNfc2VuZHRvIG5ldC9zb2NrZXQuYzoxODAwIFtpbmxpbmVdCiBfX3NlX3N5c19zZW5k dG8rMHgxMDcvMHgxMzAgbmV0L3NvY2tldC5jOjE3OTYKIF9feDY0X3N5c19zZW5kdG8rMHg2ZS8w eDkwIG5ldC9zb2NrZXQuYzoxNzk2CiBkb19zeXNjYWxsXzY0KzB4YmMvMHhmMCBhcmNoL3g4Ni9l bnRyeS9jb21tb24uYzoyOTEKIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsweDYzLzB4 ZTcKCkZpeGVzOiBjNmM4ZmVhMjk3NjkgKCJuZXQ6IEFkZCBiYXRtYW4tYWR2IG1lc2hpbmcgcHJv dG9jb2wiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ ClJlcG9ydGVkLWJ5OiBzeXpib3QgPHN5emthbGxlckBnb29nbGVncm91cHMuY29tPgpDYzoJTWFy ZWsgTGluZG5lciA8bWFyZWtsaW5kbmVyQG5lb21haWxib3guY2g+CkNjOglTaW1vbiBXdW5kZXJs aWNoIDxzd0BzaW1vbnd1bmRlcmxpY2guZGU+CkNjOglBbnRvbmlvIFF1YXJ0dWxsaSA8YUB1bnN0 YWJsZS5jYz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIG5ldC9iYXRtYW4tYWR2L3NvZnQtaW50ZXJmYWNlLmMgfCAyICsrCiAxIGZpbGUg Y2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2JhdG1hbi1hZHYvc29m dC1pbnRlcmZhY2UuYyBiL25ldC9iYXRtYW4tYWR2L3NvZnQtaW50ZXJmYWNlLmMKaW5kZXggYjg1 Y2E4MDllNTA5Li5mZmM4M2JlYmZlNDAgMTAwNjQ0Ci0tLSBhL25ldC9iYXRtYW4tYWR2L3NvZnQt aW50ZXJmYWNlLmMKKysrIGIvbmV0L2JhdG1hbi1hZHYvc29mdC1pbnRlcmZhY2UuYwpAQCAtMjI3 LDYgKzIyNyw4IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBiYXRhZHZfaW50ZXJmYWNlX3R4KHN0cnVj dCBza19idWZmICpza2IsCiAKIAlzd2l0Y2ggKG50b2hzKGV0aGhkci0+aF9wcm90bykpIHsKIAlj YXNlIEVUSF9QXzgwMjFROgorCQlpZiAoIXBza2JfbWF5X3B1bGwoc2tiLCBzaXplb2YoKnZoZHIp KSkKKwkJCWdvdG8gZHJvcHBlZDsKIAkJdmhkciA9IHZsYW5fZXRoX2hkcihza2IpOwogCiAJCS8q IGRyb3AgYmF0bWFuLWluLWJhdG1hbiBwYWNrZXRzIHRvIHByZXZlbnQgbG9vcHMgKi8KLS0gCjIu MjAuMQoKCkZyb20gNDI2ODVlY2RlNTJlZDJkNzQyZjlhYzk2MzJjYTdkYTUzYzMzMmYxMCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogS29uc3RhbnRpbiBLaGxlYm5pa292IDxraGxlYm5p a292QHlhbmRleC10ZWFtLnJ1PgpEYXRlOiBTYXQsIDkgRmViIDIwMTkgMTM6MzU6NTIgKzAzMDAK U3ViamVjdDogW1BBVENIIDAyLzIzXSBpbmV0X2RpYWc6IGZpeCByZXBvcnRpbmcgY2dyb3VwIGNs YXNzaWQgYW5kIGZhbGxiYWNrIHRvCiBwcmlvcml0eQoKWyBVcHN0cmVhbSBjb21taXQgMWVjMTdk YmQ5MGY4YjYzOGY0MWVlNjUwNTU4NjA5YzFhZjYzZGZhMCBdCgpGaWVsZCBpZGlhZ19leHQgaW4g c3RydWN0IGluZXRfZGlhZ19yZXFfdjIgdXNlZCBhcyBiaXRtYXAgb2YgcmVxdWVzdGVkCmV4dGVu c2lvbnMgaGFzIG9ubHkgOCBiaXRzLiBUaHVzIGV4dGVuc2lvbnMgc3RhcnRpbmcgZnJvbSBEQ1RD UElORk8KY2Fubm90IGJlIHJlcXVlc3RlZCBkaXJlY3RseS4gU29tZSBvZiB0aGVtIGluY2x1ZGVk IGludG8gcmVzcG9uc2UKdW5jb25kaXRpb25hbGx5IG9yIGhvb2sgaW50byBzb21lIG9mIGxvd2Vy IDggYml0cy4KCkV4dGVuc2lvbiBJTkVUX0RJQUdfQ0xBU1NfSUQgaGFzIG5vdCB3YXkgdG8gcmVx dWVzdCBmcm9tIHRoZSBiZWdpbm5pbmcuCgpUaGlzIHBhdGNoIGJ1bmRsZSBpdCB3aXRoIElORVRf RElBR19UQ0xBU1MgKGlwdjYgdG9zKSwgZml4ZXMgc3BhY2UKcmVzZXJ2YXRpb24sIGFuZCBkb2N1 bWVudHMgYmVoYXZpb3IgZm9yIG90aGVyIGV4dGVuc2lvbnMuCgpBbHNvIHRoaXMgcGF0Y2ggYWRk cyBmYWxsYmFjayB0byByZXBvcnRpbmcgc29ja2V0IHByaW9yaXR5LiBUaGlzIGZpbGVkCmlzIG1v cmUgd2lkZWx5IHVzZWQgZm9yIHRyYWZmaWMgY2xhc3NpZmljYXRpb24gYmVjYXVzZSBpcHY0IHNv Y2tldHMKYXV0b21hdGljYWxseSBtYXBzIFRPUyB0byBwcmlvcml0eSBhbmQgZGVmYXVsdCBxZGlz YyBwZmlmb19mYXN0IGtub3dzCmFib3V0IHRoYXQuIEJ1dCBwcmlvcml0eSBjb3VsZCBiZSBjaGFu Z2VkIHZpYSBzZXRzb2Nrb3B0IFNPX1BSSU9SSVRZIHNvCklORVRfRElBR19UT1MgaXNuJ3QgZW5v dWdoIGZvciBwcmVkaWN0aW5nIGNsYXNzLgoKQWxzbyBjZ3JvdXAyIG9ic29sZXRlcyBuZXRfY2xz IGNsYXNzaWQgKGl0IGFsd2F5cyB6ZXJvKSwgYnV0IHdlIGNhbm5vdApyZXVzZSB0aGlzIGZpZWxk IGZvciByZXBvcnRpbmcgY2dyb3VwMiBpZCBiZWNhdXNlIGl0IGlzIDY0LWJpdCAoaW5vK2dlbiku CgpTbywgYWZ0ZXIgdGhpcyBwYXRjaCBJTkVUX0RJQUdfQ0xBU1NfSUQgd2lsbCByZXBvcnQgc29j a2V0IHByaW9yaXR5CmZvciBtb3N0IGNvbW1vbiBzZXR1cCB3aGVuIG5ldF9jbHMgaXNuJ3Qgc2V0 IGFuZC9vciBjZ3JvdXAyIGluIHVzZS4KCkZpeGVzOiAwODg4ZTM3MmMzN2YgKCJuZXQ6IGluZXQ6 IGRpYWc6IGV4cG9zZSBzb2NrZXRzIGNncm91cCBjbGFzc2lkIikKU2lnbmVkLW9mZi1ieTogS29u c3RhbnRpbiBLaGxlYm5pa292IDxraGxlYm5pa292QHlhbmRleC10ZWFtLnJ1PgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS91 YXBpL2xpbnV4L2luZXRfZGlhZy5oIHwgMTYgKysrKysrKysrKystLS0tLQogbmV0L2lwdjQvaW5l dF9kaWFnLmMgICAgICAgICAgIHwgMTAgKysrKysrKysrLQogbmV0L3NjdHAvZGlhZy5jICAgICAg ICAgICAgICAgIHwgIDEgKwogMyBmaWxlcyBjaGFuZ2VkLCAyMSBpbnNlcnRpb25zKCspLCA2IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9pbmV0X2RpYWcuaCBi L2luY2x1ZGUvdWFwaS9saW51eC9pbmV0X2RpYWcuaAppbmRleCAxNDU2NWQ3MDMyOTEuLmU4YmFj YTg1YmFjNiAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2luZXRfZGlhZy5oCisrKyBi L2luY2x1ZGUvdWFwaS9saW51eC9pbmV0X2RpYWcuaApAQCAtMTM3LDE1ICsxMzcsMjEgQEAgZW51 bSB7CiAJSU5FVF9ESUFHX1RDTEFTUywKIAlJTkVUX0RJQUdfU0tNRU1JTkZPLAogCUlORVRfRElB R19TSFVURE9XTiwKLQlJTkVUX0RJQUdfRENUQ1BJTkZPLAotCUlORVRfRElBR19QUk9UT0NPTCwg IC8qIHJlc3BvbnNlIGF0dHJpYnV0ZSBvbmx5ICovCisKKwkvKgorCSAqIE5leHQgZXh0ZW5zdGlv bnMgY2Fubm90IGJlIHJlcXVlc3RlZCBpbiBzdHJ1Y3QgaW5ldF9kaWFnX3JlcV92MjoKKwkgKiBp dHMgZmllbGQgaWRpYWdfZXh0IGhhcyBvbmx5IDggYml0cy4KKwkgKi8KKworCUlORVRfRElBR19E Q1RDUElORk8sCS8qIHJlcXVlc3QgYXMgSU5FVF9ESUFHX1ZFR0FTSU5GTyAqLworCUlORVRfRElB R19QUk9UT0NPTCwJLyogcmVzcG9uc2UgYXR0cmlidXRlIG9ubHkgKi8KIAlJTkVUX0RJQUdfU0tW Nk9OTFksCiAJSU5FVF9ESUFHX0xPQ0FMUywKIAlJTkVUX0RJQUdfUEVFUlMsCiAJSU5FVF9ESUFH X1BBRCwKLQlJTkVUX0RJQUdfTUFSSywKLQlJTkVUX0RJQUdfQkJSSU5GTywKLQlJTkVUX0RJQUdf Q0xBU1NfSUQsCisJSU5FVF9ESUFHX01BUkssCQkvKiBvbmx5IHdpdGggQ0FQX05FVF9BRE1JTiAq LworCUlORVRfRElBR19CQlJJTkZPLAkvKiByZXF1ZXN0IGFzIElORVRfRElBR19WRUdBU0lORk8g Ki8KKwlJTkVUX0RJQUdfQ0xBU1NfSUQsCS8qIHJlcXVlc3QgYXMgSU5FVF9ESUFHX1RDTEFTUyAq LwogCUlORVRfRElBR19NRDVTSUcsCiAJX19JTkVUX0RJQUdfTUFYLAogfTsKZGlmZiAtLWdpdCBh L25ldC9pcHY0L2luZXRfZGlhZy5jIGIvbmV0L2lwdjQvaW5ldF9kaWFnLmMKaW5kZXggMWE0ZTlm ZjAyNzYyLi41NzMxNjcwYzU2MGIgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2luZXRfZGlhZy5jCisr KyBiL25ldC9pcHY0L2luZXRfZGlhZy5jCkBAIC0xMDgsNiArMTA4LDcgQEAgc3RhdGljIHNpemVf dCBpbmV0X3NrX2F0dHJfc2l6ZShzdHJ1Y3Qgc29jayAqc2ssCiAJCSsgbmxhX3RvdGFsX3NpemUo MSkgLyogSU5FVF9ESUFHX1RPUyAqLwogCQkrIG5sYV90b3RhbF9zaXplKDEpIC8qIElORVRfRElB R19UQ0xBU1MgKi8KIAkJKyBubGFfdG90YWxfc2l6ZSg0KSAvKiBJTkVUX0RJQUdfTUFSSyAqLwor CQkrIG5sYV90b3RhbF9zaXplKDQpIC8qIElORVRfRElBR19DTEFTU19JRCAqLwogCQkrIG5sYV90 b3RhbF9zaXplKHNpemVvZihzdHJ1Y3QgaW5ldF9kaWFnX21lbWluZm8pKQogCQkrIG5sYV90b3Rh bF9zaXplKHNpemVvZihzdHJ1Y3QgaW5ldF9kaWFnX21zZykpCiAJCSsgbmxhX3RvdGFsX3NpemUo U0tfTUVNSU5GT19WQVJTICogc2l6ZW9mKHUzMikpCkBAIC0yODcsMTIgKzI4OCwxOSBAQCBpbnQg aW5ldF9za19kaWFnX2ZpbGwoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgaW5ldF9jb25uZWN0aW9u X3NvY2sgKmljc2ssCiAJCQlnb3RvIGVycm91dDsKIAl9CiAKLQlpZiAoZXh0ICYgKDEgPDwgKElO RVRfRElBR19DTEFTU19JRCAtIDEpKSkgeworCWlmIChleHQgJiAoMSA8PCAoSU5FVF9ESUFHX0NM QVNTX0lEIC0gMSkpIHx8CisJICAgIGV4dCAmICgxIDw8IChJTkVUX0RJQUdfVENMQVNTIC0gMSkp KSB7CiAJCXUzMiBjbGFzc2lkID0gMDsKIAogI2lmZGVmIENPTkZJR19TT0NLX0NHUk9VUF9EQVRB CiAJCWNsYXNzaWQgPSBzb2NrX2Nncm91cF9jbGFzc2lkKCZzay0+c2tfY2dycF9kYXRhKTsKICNl bmRpZgorCQkvKiBGYWxsYmFjayB0byBzb2NrZXQgcHJpb3JpdHkgaWYgY2xhc3MgaWQgaXNuJ3Qg c2V0LgorCQkgKiBDbGFzc2Z1bCBxZGlzY3MgdXNlIGl0IGFzIGRpcmVjdCByZWZlcmVuY2UgdG8g Y2xhc3MuCisJCSAqIEZvciBjZ3JvdXAyIGNsYXNzaWQgaXMgYWx3YXlzIHplcm8uCisJCSAqLwor CQlpZiAoIWNsYXNzaWQpCisJCQljbGFzc2lkID0gc2stPnNrX3ByaW9yaXR5OwogCiAJCWlmIChu bGFfcHV0X3UzMihza2IsIElORVRfRElBR19DTEFTU19JRCwgY2xhc3NpZCkpCiAJCQlnb3RvIGVy cm91dDsKZGlmZiAtLWdpdCBhL25ldC9zY3RwL2RpYWcuYyBiL25ldC9zY3RwL2RpYWcuYwppbmRl eCAwNzhmMDFhOGQ1ODIuLjQzNTg0N2Q5OGI1MSAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvZGlhZy5j CisrKyBiL25ldC9zY3RwL2RpYWcuYwpAQCAtMjU2LDYgKzI1Niw3IEBAIHN0YXRpYyBzaXplX3Qg aW5ldF9hc3NvY19hdHRyX3NpemUoc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2MpCiAJCSsg bmxhX3RvdGFsX3NpemUoMSkgLyogSU5FVF9ESUFHX1RPUyAqLwogCQkrIG5sYV90b3RhbF9zaXpl KDEpIC8qIElORVRfRElBR19UQ0xBU1MgKi8KIAkJKyBubGFfdG90YWxfc2l6ZSg0KSAvKiBJTkVU X0RJQUdfTUFSSyAqLworCQkrIG5sYV90b3RhbF9zaXplKDQpIC8qIElORVRfRElBR19DTEFTU19J RCAqLwogCQkrIG5sYV90b3RhbF9zaXplKGFkZHJsZW4gKiBhc29jLT5wZWVyLnRyYW5zcG9ydF9j b3VudCkKIAkJKyBubGFfdG90YWxfc2l6ZShhZGRybGVuICogYWRkcmNudCkKIAkJKyBubGFfdG90 YWxfc2l6ZShzaXplb2Yoc3RydWN0IGluZXRfZGlhZ19tZW1pbmZvKSkKLS0gCjIuMjAuMQoKCkZy b20gYjI3NDNiZjllOGFlZTljMDE5YjY1NmQ0YTNlMmU3YmRkMGYwY2U3MyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogTGkgUm9uZ1FpbmcgPGxpcm9uZ3FpbmdAYmFpZHUuY29tPgpEYXRl OiBNb24sIDExIEZlYiAyMDE5IDE5OjMyOjIwICswODAwClN1YmplY3Q6IFtQQVRDSCAwMy8yM10g aXB2NjogcHJvcGFnYXRlIGdlbmxtc2dfcmVwbHkgcmV0dXJuIGNvZGUKClsgVXBzdHJlYW0gY29t bWl0IGQxZjIwNzk4YTExOWJlNzE3NDY5NDliYTliMmUyZmYzMzBmZGMwMzggXQoKZ2VubG1zZ19y ZXBseSBjYW4gZmFpbCwgc28gcHJvcGFnYXRlIGl0cyByZXR1cm4gY29kZQoKRml4ZXM6IDkxNWQ3 ZTVlNTkzICgiaXB2Njogc3I6IGFkZCBjb2RlIGJhc2UgZm9yIGNvbnRyb2wgcGxhbmUgc3VwcG9y dCBvZiBTUi1JUHY2IikKU2lnbmVkLW9mZi1ieTogTGkgUm9uZ1FpbmcgPGxpcm9uZ3FpbmdAYmFp ZHUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L2lwdjYvc2VnNi5jIHwgNCArLS0tCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNl cnRpb24oKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvc2VnNi5jIGIv bmV0L2lwdjYvc2VnNi5jCmluZGV4IDhkMGJhNzU3YTQ2Yy4uOWIyZjI3MmNhMTY0IDEwMDY0NAot LS0gYS9uZXQvaXB2Ni9zZWc2LmMKKysrIGIvbmV0L2lwdjYvc2VnNi5jCkBAIC0yMjEsOSArMjIx LDcgQEAgc3RhdGljIGludCBzZWc2X2dlbmxfZ2V0X3R1bnNyYyhzdHJ1Y3Qgc2tfYnVmZiAqc2ti LCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKQogCXJjdV9yZWFkX3VubG9jaygpOwogCiAJZ2VubG1z Z19lbmQobXNnLCBoZHIpOwotCWdlbmxtc2dfcmVwbHkobXNnLCBpbmZvKTsKLQotCXJldHVybiAw OworCXJldHVybiBnZW5sbXNnX3JlcGx5KG1zZywgaW5mbyk7CiAKIG5sYV9wdXRfZmFpbHVyZToK IAlyY3VfcmVhZF91bmxvY2soKTsKLS0gCjIuMjAuMQoKCkZyb20gYjU5Y2Y1ZjYzMGU1ZmUxM2Jh ZWVlMmExZjEyZTQ4ZGUwMGYyYzFlZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQXJ0 aHVyIEtpeWFub3Zza2kgPGFraXlhbm9AYW1hem9uLmNvbT4KRGF0ZTogTW9uLCAxMSBGZWIgMjAx OSAxOToxNzo0MyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDQvMjNdIG5ldDogZW5hOiBmaXggcmFj ZSBiZXR3ZWVuIGxpbmsgdXAgYW5kIGRldmljZQogaW5pdGFsaXphdGlvbgoKWyBVcHN0cmVhbSBj b21taXQgZTFmMWJkOWJmYmVkY2ZjZTQyOGVlN2UxYjgyYTZlYzEyZDRjMzg2MyBdCgpGaXggcmFj ZSBjb25kaXRpb24gYmV0d2VlbiBlbmFfdXBkYXRlX29uX2xpbmtfY2hhbmdlKCkgYW5kCmVuYV9y ZXN0b3JlX2RldmljZSgpLgoKVGhpcyByYWNlIGNhbiBvY2N1ciBpZiBsaW5rIG5vdGlmaWNhdGlv biBhcnJpdmVzIHdoaWxlIHRoZSBkcml2ZXIKaXMgcGVyZm9ybWluZyBhIHJlc2V0IHNlcXVlbmNl LiBJbiB0aGlzIGNhc2UgbGluayBjYW4gYmUgc2V0IHVwLAplbmFibGluZyB0aGUgZGV2aWNlLCBi ZWZvcmUgaXQgaXMgZnVsbHkgcmVzdG9yZWQuIElmIHBhY2tldHMgYXJlCnNlbnQgYXQgdGhpcyB0 aW1lLCB0aGUgZHJpdmVyIG1pZ2h0IGFjY2VzcyB1bmluaXRpYWxpemVkIGRhdGEKc3RydWN0dXJl cywgY2F1c2luZyBrZXJuZWwgY3Jhc2guCgpNb3ZlIHRoZSBjbGVhcmluZyBvZiBFTkFfRkxBR19P TkdPSU5HX1JFU0VUIGFuZCBuZXRpZl9jYXJyaWVyX29uKCkKYWZ0ZXIgZW5hX3VwKCkgdG8gZW5z dXJlIHRoZSBkZXZpY2UgaXMgcmVhZHkgd2hlbiBsaW5rIGlzIHNldCB1cC4KCkZpeGVzOiBkMThl NGY2ODM0NDUgKCJuZXQ6IGVuYTogZml4IHJhY2UgY29uZGl0aW9uIGJldHdlZW4gZGV2aWNlIHJl c2V0IGFuZCBsaW5rIHVwIHNldHVwIikKU2lnbmVkLW9mZi1ieTogQXJ0aHVyIEtpeWFub3Zza2kg PGFraXlhbm9AYW1hem9uLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2FtYXpvbi9lbmEvZW5h X25ldGRldi5jIHwgMTAgKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygr KSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWF6 b24vZW5hL2VuYV9uZXRkZXYuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtYXpvbi9lbmEvZW5h X25ldGRldi5jCmluZGV4IGE3MGJiMWJiOTBlNy4uYTZlYWNmMjA5OWMzIDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9hbWF6b24vZW5hL2VuYV9uZXRkZXYuYworKysgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9hbWF6b24vZW5hL2VuYV9uZXRkZXYuYwpAQCAtMjY2MywxMSArMjY2Myw2 IEBAIHN0YXRpYyBpbnQgZW5hX3Jlc3RvcmVfZGV2aWNlKHN0cnVjdCBlbmFfYWRhcHRlciAqYWRh cHRlcikKIAkJZ290byBlcnJfZGV2aWNlX2Rlc3Ryb3k7CiAJfQogCi0JY2xlYXJfYml0KEVOQV9G TEFHX09OR09JTkdfUkVTRVQsICZhZGFwdGVyLT5mbGFncyk7Ci0JLyogTWFrZSBzdXJlIHdlIGRv bid0IGhhdmUgYSByYWNlIHdpdGggQUVOUSBMaW5rcyBzdGF0ZSBoYW5kbGVyICovCi0JaWYgKHRl c3RfYml0KEVOQV9GTEFHX0xJTktfVVAsICZhZGFwdGVyLT5mbGFncykpCi0JCW5ldGlmX2NhcnJp ZXJfb24oYWRhcHRlci0+bmV0ZGV2KTsKLQogCXJjID0gZW5hX2VuYWJsZV9tc2l4X2FuZF9zZXRf YWRtaW5faW50ZXJydXB0cyhhZGFwdGVyLAogCQkJCQkJICAgICAgYWRhcHRlci0+bnVtX3F1ZXVl cyk7CiAJaWYgKHJjKSB7CkBAIC0yNjg0LDYgKzI2NzksMTEgQEAgc3RhdGljIGludCBlbmFfcmVz dG9yZV9kZXZpY2Uoc3RydWN0IGVuYV9hZGFwdGVyICphZGFwdGVyKQogCX0KIAogCXNldF9iaXQo RU5BX0ZMQUdfREVWSUNFX1JVTk5JTkcsICZhZGFwdGVyLT5mbGFncyk7CisKKwljbGVhcl9iaXQo RU5BX0ZMQUdfT05HT0lOR19SRVNFVCwgJmFkYXB0ZXItPmZsYWdzKTsKKwlpZiAodGVzdF9iaXQo RU5BX0ZMQUdfTElOS19VUCwgJmFkYXB0ZXItPmZsYWdzKSkKKwkJbmV0aWZfY2Fycmllcl9vbihh ZGFwdGVyLT5uZXRkZXYpOworCiAJbW9kX3RpbWVyKCZhZGFwdGVyLT50aW1lcl9zZXJ2aWNlLCBy b3VuZF9qaWZmaWVzKGppZmZpZXMgKyBIWikpOwogCWRldl9lcnIoJnBkZXYtPmRldiwKIAkJIkRl dmljZSByZXNldCBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LCBEcml2ZXIgaW5mbzogJXNcbiIsCi0t IAoyLjIwLjEKCgpGcm9tIGM5NDBjYzJiMjBjZWE1YjZmY2Q5YmU4NDJmYWExNGI3OWE1OTgxYzYg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVs bGFub3guY29tPgpEYXRlOiBNb24sIDExIEZlYiAyMDE5IDE4OjA0OjE3ICswMjAwClN1YmplY3Q6 IFtQQVRDSCAwNS8yM10gbmV0L21seDRfZW46IEZvcmNlIENIRUNLU1VNX05PTkUgZm9yIHNob3J0 IGV0aGVybmV0CiBmcmFtZXMKClsgVXBzdHJlYW0gY29tbWl0IDI5ZGRlZDg5ZTgwZTNmZmY2MWVm YjM0ZjA3YThhM2ZiYTNlYTE0NmQgXQoKV2hlbiBhbiBldGhlcm5ldCBmcmFtZSBpcyBwYWRkZWQg dG8gbWVldCB0aGUgbWluaW11bSBldGhlcm5ldCBmcmFtZQpzaXplLCB0aGUgcGFkZGluZyBvY3Rl dHMgYXJlIG5vdCBjb3ZlcmVkIGJ5IHRoZSBoYXJkd2FyZSBjaGVja3N1bS4KRm9ydHVuYXRlbHkg dGhlIHBhZGRpbmcgb2N0ZXRzIGFyZSB1c3VhbGx5IHplcm8ncywgd2hpY2ggZG9uJ3QgYWZmZWN0 CmNoZWNrc3VtLiBIb3dldmVyLCBpdCBpcyBub3QgZ3VhcmFudGVlZC4gRm9yIGV4YW1wbGUsIHN3 aXRjaGVzIG1pZ2h0CmNob29zZSB0byBtYWtlIG90aGVyIHVzZSBvZiB0aGVzZSBvY3RldHMuClRo aXMgcmVwZWF0ZWRseSBjYXVzZXMga2VybmVsIGhhcmR3YXJlIGNoZWNrc3VtIGZhdWx0LgoKUHJp b3IgdG8gdGhlIGNpdGVkIGNvbW1pdCBiZWxvdywgc2tiIGNoZWNrc3VtIHdhcyBmb3JjZWQgdG8g YmUKQ0hFQ0tTVU1fTk9ORSB3aGVuIHBhZGRpbmcgaXMgZGV0ZWN0ZWQuIEFmdGVyIGl0LCB3ZSBu ZWVkIHRvIGtlZXAKc2tiLT5jc3VtIHVwZGF0ZWQuIEhvd2V2ZXIsIGZpeGluZyB1cCBDSEVDS1NV TV9DT01QTEVURSByZXF1aXJlcyB0bwp2ZXJpZnkgYW5kIHBhcnNlIElQIGhlYWRlcnMsIGl0IGRv ZXMgbm90IHdvcnRoIHRoZSBlZmZvcnQgYXMgdGhlIHBhY2tldHMKYXJlIHNvIHNtYWxsIHRoYXQg Q0hFQ0tTVU1fQ09NUExFVEUgaGFzIG5vIHNpZ25pZmljYW50IGFkdmFudGFnZS4KCkZ1dHVyZSB3 b3JrOiB3aGVuIHJlcG9ydGluZyBjaGVja3N1bSBjb21wbGV0ZSBpcyBub3QgYW4gb3B0aW9uIGZv cgpJUCBub24tVENQL1VEUCBwYWNrZXRzLCB3ZSBjYW4gYWN0dWFsbHkgZmFsbGJhY2sgdG8gcmVw b3J0IGNoZWNrc3VtCnVubmVjZXNzYXJ5LCBieSBsb29raW5nIGF0IGNxZSBJUE9LIGJpdC4KCkZp eGVzOiA4ODA3OGQ5OGQxYmIgKCJuZXQ6IHBza2JfdHJpbV9yY3N1bSgpIGFuZCBDSEVDS1NVTV9D T01QTEVURSBhcmUgZnJpZW5kcyIpCkNjOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5j b20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgpT aWduZWQtb2ZmLWJ5OiBUYXJpcSBUb3VrYW4gPHRhcmlxdEBtZWxsYW5veC5jb20+ClJldmlld2Vk LWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg0L2VuX3J4LmMgfCAyMiArKysrKysrKysrKysrKysrKysrKy0tCiAx IGZpbGUgY2hhbmdlZCwgMjAgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2VuX3J4LmMgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2VuX3J4LmMKaW5kZXggZGIwMGJmMWMyM2Y1Li5k NDdkNGY4NmFjMTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDQvZW5fcnguYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2VuX3J4 LmMKQEAgLTYyMCw2ICs2MjAsOCBAQCBzdGF0aWMgaW50IGdldF9maXhlZF9pcHY2X2NzdW0oX193 c3VtIGh3X2NoZWNrc3VtLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogfQogI2VuZGlmCiAKKyNkZWZp bmUgc2hvcnRfZnJhbWUoc2l6ZSkgKChzaXplKSA8PSBFVEhfWkxFTiArIEVUSF9GQ1NfTEVOKQor CiAvKiBXZSByZWFjaCB0aGlzIGZ1bmN0aW9uIG9ubHkgYWZ0ZXIgY2hlY2tpbmcgdGhhdCBhbnkg b2YKICAqIHRoZSAoSVB2NCB8IElQdjYpIGJpdHMgYXJlIHNldCBpbiBjcWUtPnN0YXR1cy4KICAq LwpAQCAtNjI3LDkgKzYyOSwyMCBAQCBzdGF0aWMgaW50IGNoZWNrX2NzdW0oc3RydWN0IG1seDRf Y3FlICpjcWUsIHN0cnVjdCBza19idWZmICpza2IsIHZvaWQgKnZhLAogCQkgICAgICBuZXRkZXZf ZmVhdHVyZXNfdCBkZXZfZmVhdHVyZXMpCiB7CiAJX193c3VtIGh3X2NoZWNrc3VtID0gMDsKKwl2 b2lkICpoZHI7CisKKwkvKiBDUUUgY3N1bSBkb2Vzbid0IGNvdmVyIHBhZGRpbmcgb2N0ZXRzIGlu IHNob3J0IGV0aGVybmV0CisJICogZnJhbWVzLiBBbmQgdGhlIHBhZCBmaWVsZCBpcyBhcHBlbmRl ZCBwcmlvciB0byBjYWxjdWxhdGluZworCSAqIGFuZCBhcHBlbmRpbmcgdGhlIEZDUyBmaWVsZC4K KwkgKgorCSAqIERldGVjdGluZyB0aGVzZSBwYWRkZWQgZnJhbWVzIHJlcXVpcmVzIHRvIHZlcmlm eSBhbmQgcGFyc2UKKwkgKiBJUCBoZWFkZXJzLCBzbyB3ZSBzaW1wbHkgZm9yY2UgYWxsIHRob3Nl IHNtYWxsIGZyYW1lcyB0byBza2lwCisJICogY2hlY2tzdW0gY29tcGxldGUuCisJICovCisJaWYg KHNob3J0X2ZyYW1lKHNrYi0+bGVuKSkKKwkJcmV0dXJuIC1FSU5WQUw7CiAKLQl2b2lkICpoZHIg PSAodTggKil2YSArIHNpemVvZihzdHJ1Y3QgZXRoaGRyKTsKLQorCWhkciA9ICh1OCAqKXZhICsg c2l6ZW9mKHN0cnVjdCBldGhoZHIpOwogCWh3X2NoZWNrc3VtID0gY3N1bV91bmZvbGQoKF9fZm9y Y2UgX19zdW0xNiljcWUtPmNoZWNrc3VtKTsKIAogCWlmIChjcWUtPnZsYW5fbXlfcXBuICYgY3B1 X3RvX2JlMzIoTUxYNF9DUUVfQ1ZMQU5fUFJFU0VOVF9NQVNLKSAmJgpAQCAtODIyLDYgKzgzNSwx MSBAQCBpbnQgbWx4NF9lbl9wcm9jZXNzX3J4X2NxKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0 cnVjdCBtbHg0X2VuX2NxICpjcSwgaW50IGJ1ZAogCQlza2JfcmVjb3JkX3J4X3F1ZXVlKHNrYiwg Y3FfcmluZyk7CiAKIAkJaWYgKGxpa2VseShkZXYtPmZlYXR1cmVzICYgTkVUSUZfRl9SWENTVU0p KSB7CisJCQkvKiBUT0RPOiBGb3IgSVAgbm9uIFRDUC9VRFAgcGFja2V0cyB3aGVuIGNzdW0gY29t cGxldGUgaXMKKwkJCSAqIG5vdCBhbiBvcHRpb24gKG5vdCBzdXBwb3J0ZWQgb3IgYW55IG90aGVy IHJlYXNvbikgd2UgY2FuCisJCQkgKiBhY3R1YWxseSBjaGVjayBjcWUgSVBPSyBzdGF0dXMgYml0 IGFuZCByZXBvcnQKKwkJCSAqIENIRUNLU1VNX1VOTkVDRVNTQVJZIHJhdGhlciB0aGFuIENIRUNL U1VNX05PTkUKKwkJCSAqLwogCQkJaWYgKChjcWUtPnN0YXR1cyAmIGNwdV90b19iZTE2KE1MWDRf Q1FFX1NUQVRVU19UQ1AgfAogCQkJCQkJICAgICAgIE1MWDRfQ1FFX1NUQVRVU19VRFApKSAmJgog CQkJICAgIChjcWUtPnN0YXR1cyAmIGNwdV90b19iZTE2KE1MWDRfQ1FFX1NUQVRVU19JUE9LKSkg JiYKLS0gCjIuMjAuMQoKCkZyb20gZDhmMzg5NzFmNDEyOTJkYzJhMjAzOTczNzIxZjE5MmEyODc5 MzQ2YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVG9uZ2hhbyBaaGFuZyA8eGlhbmd4 aWEubS55dWVAZ21haWwuY29tPgpEYXRlOiBNb24sIDI4IEphbiAyMDE5IDE1OjI4OjA2IC0wODAw ClN1YmplY3Q6IFtQQVRDSCAwNi8yM10gbmV0L21seDVlOiBEb24ndCBvdmVyd3JpdGUgcGVkaXQg YWN0aW9uIHdoZW4gbXVsdGlwbGUKIHBlZGl0IHVzZWQKClsgVXBzdHJlYW0gY29tbWl0IDIxOGQw NWNlMzI2ZjllMWI0MGE1NjA4NTQzMWZhMTA2OGI0M2Q1ZDkgXQoKSW4gc29tZSBjYXNlLCB3ZSBt YXkgdXNlIG11bHRpcGxlIHBlZGl0IGFjdGlvbnMgdG8gbW9kaWZ5IHBhY2tldHMuClRoZSBjb21t YW5kIHNob3duIGFzIGJlbG93OiB0aGUgbGFzdCBwZWRpdCBhY3Rpb24gaXMgZWZmZWN0aXZlLgoK JCB0YyBmaWx0ZXIgYWRkIGRldiBuZXRkZXZfcmVwIHBhcmVudCBmZmZmOiBwcm90b2NvbCBpcCBw cmlvIDEgICAgXAoJZmxvd2VyIHNraXBfc3cgaXBfcHJvdG8gaWNtcCBkc3RfaXAgMy4zLjMuMyAg ICAgICAgXAoJYWN0aW9uIHBlZGl0IGV4IG11bmdlIGlwIGRzdCBzZXQgMTkyLjE2OC4xLjEwMCBw aXBlICAgIFwKCWFjdGlvbiBwZWRpdCBleCBtdW5nZSBldGggc3JjIHNldCAwMDowMDowMDowMDow MDowMSBwaXBlICAgIFwKCWFjdGlvbiBwZWRpdCBleCBtdW5nZSBldGggZHN0IHNldCAwMDowMDow MDowMDowMDowMiBwaXBlICAgIFwKCWFjdGlvbiBjc3VtIGlwIHBpcGUgICAgXAoJYWN0aW9uIHR1 bm5lbF9rZXkgc2V0IHNyY19pcCAxLjEuMS4xMDAgZHN0X2lwIDEuMS4xLjIwMCBkc3RfcG9ydCA0 Nzg5IGlkIDEwMCBcCglhY3Rpb24gbWlycmVkIGVncmVzcyByZWRpcmVjdCBkZXYgdnhsYW4wCgpU byBmaXggaXQsIHdlIGFkZCBtYXhfbW9kX2hkcl9hY3Rpb25zIHRvIG1seDVlX3RjX2Zsb3dfcGFy c2VfYXR0ciBzdHJ1Y3Rpb24sCm1heF9tb2RfaGRyX2FjdGlvbnMgd2lsbCBzdG9yZSB0aGUgbWF4 IHBlZGl0IGFjdGlvbiBudW1iZXIgd2Ugc3VwcG9ydCBhbmQKbnVtX21vZF9oZHJfYWN0aW9ucyBp bmRpY2F0ZXMgaG93IG1hbnkgcGVkaXQgYWN0aW9uIHdlIHVzZWQsIGFuZCBzdG9yZSBhbGwKcGVk aXQgYWN0aW9uIHRvIG1vZF9oZHJfYWN0aW9ucy4KCkZpeGVzOiBkNzliNmRmNmIxMGEgKCJuZXQv bWx4NWU6IEFkZCBwYXJzaW5nIG9mIFRDIHBlZGl0IGFjdGlvbnMgdG8gSFcgZm9ybWF0IikKQ2M6 IE9yIEdlcmxpdHogPG9nZXJsaXR6QG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogVG9uZ2hh byBaaGFuZyA8eGlhbmd4aWEubS55dWVAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogT3IgR2VybGl0 eiA8b2dlcmxpdHpAbWVsbGFub3guY29tPgpBY2tlZC1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVk bUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiAuLi4vbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90 Yy5jICAgfCAyNSArKysrKysrKysrKy0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTUgaW5zZXJ0 aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg1L2NvcmUvZW5fdGMuYwppbmRleCA0ZTAxNTE5MThkYjEuLjNmYmE4MGE4YjQzNiAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3Rj LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmMK QEAgLTk4LDYgKzk4LDcgQEAgc3RydWN0IG1seDVlX3RjX2Zsb3dfcGFyc2VfYXR0ciB7CiAJc3Ry dWN0IGlwX3R1bm5lbF9pbmZvIHR1bl9pbmZvOwogCXN0cnVjdCBtbHg1X2Zsb3dfc3BlYyBzcGVj OwogCWludCBudW1fbW9kX2hkcl9hY3Rpb25zOworCWludCBtYXhfbW9kX2hkcl9hY3Rpb25zOwog CXZvaWQgKm1vZF9oZHJfYWN0aW9uczsKIAlpbnQgbWlycmVkX2lmaW5kZXg7CiB9OwpAQCAtMTg4 OCw5ICsxODg5LDkgQEAgc3RhdGljIHN0cnVjdCBtbHg1X2ZpZWxkcyBmaWVsZHNbXSA9IHsKIAlP RkZMT0FEKFVEUF9EUE9SVCwgMiwgdWRwLmRlc3QsICAgMCksCiB9OwogCi0vKiBPbiBpbnB1dCBh dHRyLT5udW1fbW9kX2hkcl9hY3Rpb25zIHRlbGxzIGhvdyBtYW55IEhXIGFjdGlvbnMgY2FuIGJl IHBhcnNlZCBhdAotICogbWF4IGZyb20gdGhlIFNXIHBlZGl0IGFjdGlvbi4gT24gc3VjY2Vzcywg aXQgc2F5cyBob3cgbWFueSBIVyBhY3Rpb25zIHdlcmUKLSAqIGFjdHVhbGx5IHBhcnNlZC4KKy8q IE9uIGlucHV0IGF0dHItPm1heF9tb2RfaGRyX2FjdGlvbnMgdGVsbHMgaG93IG1hbnkgSFcgYWN0 aW9ucyBjYW4gYmUgcGFyc2VkIGF0CisgKiBtYXggZnJvbSB0aGUgU1cgcGVkaXQgYWN0aW9uLiBP biBzdWNjZXNzLCBhdHRyLT5udW1fbW9kX2hkcl9hY3Rpb25zCisgKiBzYXlzIGhvdyBtYW55IEhX IGFjdGlvbnMgd2VyZSBhY3R1YWxseSBwYXJzZWQuCiAgKi8KIHN0YXRpYyBpbnQgb2ZmbG9hZF9w ZWRpdF9maWVsZHMoc3RydWN0IHBlZGl0X2hlYWRlcnMgKm1hc2tzLAogCQkJCXN0cnVjdCBwZWRp dF9oZWFkZXJzICp2YWxzLApAQCAtMTkxNCw5ICsxOTE1LDExIEBAIHN0YXRpYyBpbnQgb2ZmbG9h ZF9wZWRpdF9maWVsZHMoc3RydWN0IHBlZGl0X2hlYWRlcnMgKm1hc2tzLAogCWFkZF92YWxzID0g JnZhbHNbVENBX1BFRElUX0tFWV9FWF9DTURfQUREXTsKIAogCWFjdGlvbl9zaXplID0gTUxYNV9V Tl9TWl9CWVRFUyhzZXRfYWN0aW9uX2luX2FkZF9hY3Rpb25faW5fYXV0byk7Ci0JYWN0aW9uID0g cGFyc2VfYXR0ci0+bW9kX2hkcl9hY3Rpb25zOwotCW1heF9hY3Rpb25zID0gcGFyc2VfYXR0ci0+ bnVtX21vZF9oZHJfYWN0aW9uczsKLQluYWN0aW9ucyA9IDA7CisJYWN0aW9uID0gcGFyc2VfYXR0 ci0+bW9kX2hkcl9hY3Rpb25zICsKKwkJIHBhcnNlX2F0dHItPm51bV9tb2RfaGRyX2FjdGlvbnMg KiBhY3Rpb25fc2l6ZTsKKworCW1heF9hY3Rpb25zID0gcGFyc2VfYXR0ci0+bWF4X21vZF9oZHJf YWN0aW9uczsKKwluYWN0aW9ucyA9IHBhcnNlX2F0dHItPm51bV9tb2RfaGRyX2FjdGlvbnM7CiAK IAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShmaWVsZHMpOyBpKyspIHsKIAkJZiA9ICZmaWVs ZHNbaV07CkBAIC0yMDI3LDcgKzIwMzAsNyBAQCBzdGF0aWMgaW50IGFsbG9jX21vZF9oZHJfYWN0 aW9ucyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwKIAlpZiAoIXBhcnNlX2F0dHItPm1vZF9oZHJf YWN0aW9ucykKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQlwYXJzZV9hdHRyLT5udW1fbW9kX2hkcl9h Y3Rpb25zID0gbWF4X2FjdGlvbnM7CisJcGFyc2VfYXR0ci0+bWF4X21vZF9oZHJfYWN0aW9ucyA9 IG1heF9hY3Rpb25zOwogCXJldHVybiAwOwogfQogCkBAIC0yMDczLDkgKzIwNzYsMTEgQEAgc3Rh dGljIGludCBwYXJzZV90Y19wZWRpdF9hY3Rpb24oc3RydWN0IG1seDVlX3ByaXYgKnByaXYsCiAJ CQlnb3RvIG91dF9lcnI7CiAJfQogCi0JZXJyID0gYWxsb2NfbW9kX2hkcl9hY3Rpb25zKHByaXYs IGEsIG5hbWVzcGFjZSwgcGFyc2VfYXR0cik7Ci0JaWYgKGVycikKLQkJZ290byBvdXRfZXJyOwor CWlmICghcGFyc2VfYXR0ci0+bW9kX2hkcl9hY3Rpb25zKSB7CisJCWVyciA9IGFsbG9jX21vZF9o ZHJfYWN0aW9ucyhwcml2LCBhLCBuYW1lc3BhY2UsIHBhcnNlX2F0dHIpOworCQlpZiAoZXJyKQor CQkJZ290byBvdXRfZXJyOworCX0KIAogCWVyciA9IG9mZmxvYWRfcGVkaXRfZmllbGRzKG1hc2tz LCB2YWxzLCBwYXJzZV9hdHRyLCBleHRhY2spOwogCWlmIChlcnIgPCAwKQotLSAKMi4yMC4xCgoK RnJvbSAzN2RjYTc2Njg1ODIwOWM4OGI4ZjUzYTRlMjQ1ZDkyZjY1NTQ0YTRjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBLYWwgQ29ubGV5IDxrYWwuY29ubGV5QGRlY3RyaXMuY29tPgpE YXRlOiBTdW4sIDEwIEZlYiAyMDE5IDA5OjU3OjExICswMTAwClN1YmplY3Q6IFtQQVRDSCAwNy8y M10gbmV0L3BhY2tldDogZml4IDRnYiBidWZmZXIgbGltaXQgZHVlIHRvIG92ZXJmbG93IGNoZWNr CgpbIFVwc3RyZWFtIGNvbW1pdCBmYzYyODE0ZDY5MGNmNjIxODk4NTQ0NjRmNGJkMDc0NTdkNWU5 ZTUwIF0KCldoZW4gY2FsY3VsYXRpbmcgcmItPmZyYW1lc19wZXJfYmxvY2sgKiByZXEtPnRwX2Js b2NrX25yIHRoZSByZXN1bHQKY2FuIG92ZXJmbG93LiBDaGVjayBpdCBmb3Igb3ZlcmZsb3cgd2l0 aG91dCBsaW1pdGluZyB0aGUgdG90YWwgYnVmZmVyCnNpemUgdG8gVUlOVF9NQVguCgpUaGlzIGNo YW5nZSBmaXhlcyBzdXBwb3J0IGZvciBwYWNrZXQgcmluZyBidWZmZXJzID49IFVJTlRfTUFYLgoK Rml4ZXM6IDhmOGQyOGU0ZDZkOCAoIm5ldC9wYWNrZXQ6IGZpeCBvdmVyZmxvdyBpbiBjaGVjayBm b3IgdHBfZnJhbWVfbnIiKQpTaWduZWQtb2ZmLWJ5OiBLYWwgQ29ubGV5IDxrYWwuY29ubGV5QGRl Y3RyaXMuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogbmV0L3BhY2tldC9hZl9wYWNrZXQuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2Vk LCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9wYWNrZXQv YWZfcGFja2V0LmMgYi9uZXQvcGFja2V0L2FmX3BhY2tldC5jCmluZGV4IDNiMWE3ODkwNmJjMC4u MWNkMWQ4M2E0YmUwIDEwMDY0NAotLS0gYS9uZXQvcGFja2V0L2FmX3BhY2tldC5jCisrKyBiL25l dC9wYWNrZXQvYWZfcGFja2V0LmMKQEAgLTQyOTIsNyArNDI5Miw3IEBAIHN0YXRpYyBpbnQgcGFj a2V0X3NldF9yaW5nKHN0cnVjdCBzb2NrICpzaywgdW5pb24gdHBhY2tldF9yZXFfdSAqcmVxX3Us CiAJCXJiLT5mcmFtZXNfcGVyX2Jsb2NrID0gcmVxLT50cF9ibG9ja19zaXplIC8gcmVxLT50cF9m cmFtZV9zaXplOwogCQlpZiAodW5saWtlbHkocmItPmZyYW1lc19wZXJfYmxvY2sgPT0gMCkpCiAJ CQlnb3RvIG91dDsKLQkJaWYgKHVubGlrZWx5KHJlcS0+dHBfYmxvY2tfc2l6ZSA+IFVJTlRfTUFY IC8gcmVxLT50cF9ibG9ja19ucikpCisJCWlmICh1bmxpa2VseShyYi0+ZnJhbWVzX3Blcl9ibG9j ayA+IFVJTlRfTUFYIC8gcmVxLT50cF9ibG9ja19ucikpCiAJCQlnb3RvIG91dDsKIAkJaWYgKHVu bGlrZWx5KChyYi0+ZnJhbWVzX3Blcl9ibG9jayAqIHJlcS0+dHBfYmxvY2tfbnIpICE9CiAJCQkJ CXJlcS0+dHBfZnJhbWVfbnIpKQotLSAKMi4yMC4xCgoKRnJvbSA5ZjQzMzNiMjNlYjE2YmM1ZDI3 YmQ5Mzk4MDJiN2ViNDhjZGYzODg2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSdXNz ZWxsIEtpbmcgPHJtaytrZXJuZWxAYXJtbGludXgub3JnLnVrPgpEYXRlOiBXZWQsIDYgRmViIDIw MTkgMTA6NTI6MzAgKzAwMDAKU3ViamVjdDogW1BBVENIIDA4LzIzXSBuZXQ6IHNmcDogZG8gbm90 IHByb2JlIFNGUCBtb2R1bGUgYmVmb3JlIHdlJ3JlIGF0dGFjaGVkCgpbIFVwc3RyZWFtIGNvbW1p dCBiNWJmYzIxYWY1Y2IzZDUzZjljZWUwZWY4MmVhYTQzNzYyYTkwZjgxIF0KCldoZW4gd2UgcHJv YmUgYSBTRlAgbW9kdWxlLCB3ZSBleHBlY3QgdG8gYmUgYWJsZSB0byBjYWxsIHRoZSB1cHN0cmVh bQpkZXZpY2UncyBtb2R1bGVfaW5zZXJ0KCkgZnVuY3Rpb24gc28gdGhhdCB0aGUgdXBzdHJlYW0g bGluayBjYW4gYmUKY29uZmlndXJlZC4gIEhvd2V2ZXIsIHdoZW4gdGhlIHVwc3RyZWFtIGRldmlj ZSBpcyBkZWxheWVkLCB3ZSBjdXJyZW50bHkKbWF5IGVuZCB1cCBwcm9iaW5nIHRoZSBtb2R1bGUg YmVmb3JlIHRoZSB1cHN0cmVhbSBkZXZpY2UgaXMgYXZhaWxhYmxlLAphbmQgbG9zZSB0aGUgbW9k dWxlX2luc2VydCgpIGNhbGwuCgpBdm9pZCB0aGlzIGJ5IGhvbGRpbmcgb2ZmIHByb2JpbmcgdGhl IG1vZHVsZSB1bnRpbCB0aGUgU0ZQIGJ1cyBpcwpwcm9wZXJseSBjb25uZWN0ZWQgdG8gYm90aCB0 aGUgU0ZQIHNvY2tldCBkcml2ZXIgYW5kIHRoZSB1cHN0cmVhbQpkcml2ZXIuCgpTaWduZWQtb2Zm LWJ5OiBSdXNzZWxsIEtpbmcgPHJtaytrZXJuZWxAYXJtbGludXgub3JnLnVrPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9u ZXQvcGh5L3NmcC1idXMuYyB8ICAyICsrCiBkcml2ZXJzL25ldC9waHkvc2ZwLmMgICAgIHwgMzAg KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCiBkcml2ZXJzL25ldC9waHkvc2ZwLmggICAg IHwgIDIgKysKIDMgZmlsZXMgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkvc2ZwLWJ1cy5jIGIvZHJpdmVycy9uZXQv cGh5L3NmcC1idXMuYwppbmRleCBhZDlkYjY1Mjg3NGQuLmZlZjcwMWJmYWQ2MiAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvcGh5L3NmcC1idXMuYworKysgYi9kcml2ZXJzL25ldC9waHkvc2ZwLWJ1 cy5jCkBAIC0zNDcsNiArMzQ3LDcgQEAgc3RhdGljIGludCBzZnBfcmVnaXN0ZXJfYnVzKHN0cnVj dCBzZnBfYnVzICpidXMpCiAJCQkJcmV0dXJuIHJldDsKIAkJfQogCX0KKwlidXMtPnNvY2tldF9v cHMtPmF0dGFjaChidXMtPnNmcCk7CiAJaWYgKGJ1cy0+c3RhcnRlZCkKIAkJYnVzLT5zb2NrZXRf b3BzLT5zdGFydChidXMtPnNmcCk7CiAJYnVzLT5uZXRkZXYtPnNmcF9idXMgPSBidXM7CkBAIC0z NjIsNiArMzYzLDcgQEAgc3RhdGljIHZvaWQgc2ZwX3VucmVnaXN0ZXJfYnVzKHN0cnVjdCBzZnBf YnVzICpidXMpCiAJaWYgKGJ1cy0+cmVnaXN0ZXJlZCkgewogCQlpZiAoYnVzLT5zdGFydGVkKQog CQkJYnVzLT5zb2NrZXRfb3BzLT5zdG9wKGJ1cy0+c2ZwKTsKKwkJYnVzLT5zb2NrZXRfb3BzLT5k ZXRhY2goYnVzLT5zZnApOwogCQlpZiAoYnVzLT5waHlkZXYgJiYgb3BzICYmIG9wcy0+ZGlzY29u bmVjdF9waHkpCiAJCQlvcHMtPmRpc2Nvbm5lY3RfcGh5KGJ1cy0+dXBzdHJlYW0pOwogCX0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9zZnAuYyBiL2RyaXZlcnMvbmV0L3BoeS9zZnAuYwpp bmRleCBmZDhiYjk5OGFlNTIuLjY4YzhmYmYwOTlmOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv cGh5L3NmcC5jCisrKyBiL2RyaXZlcnMvbmV0L3BoeS9zZnAuYwpAQCAtMTg0LDYgKzE4NCw3IEBA IHN0cnVjdCBzZnAgewogCiAJc3RydWN0IGdwaW9fZGVzYyAqZ3Bpb1tHUElPX01BWF07CiAKKwli b29sIGF0dGFjaGVkOwogCXVuc2lnbmVkIGludCBzdGF0ZTsKIAlzdHJ1Y3QgZGVsYXllZF93b3Jr IHBvbGw7CiAJc3RydWN0IGRlbGF5ZWRfd29yayB0aW1lb3V0OwpAQCAtMTQ3NSw3ICsxNDc2LDcg QEAgc3RhdGljIHZvaWQgc2ZwX3NtX2V2ZW50KHN0cnVjdCBzZnAgKnNmcCwgdW5zaWduZWQgaW50 IGV2ZW50KQogCSAqLwogCXN3aXRjaCAoc2ZwLT5zbV9tb2Rfc3RhdGUpIHsKIAlkZWZhdWx0Ogot CQlpZiAoZXZlbnQgPT0gU0ZQX0VfSU5TRVJUKSB7CisJCWlmIChldmVudCA9PSBTRlBfRV9JTlNF UlQgJiYgc2ZwLT5hdHRhY2hlZCkgewogCQkJc2ZwX21vZHVsZV90eF9kaXNhYmxlKHNmcCk7CiAJ CQlzZnBfc21faW5zX25leHQoc2ZwLCBTRlBfTU9EX1BST0JFLCBUX1BST0JFX0lOSVQpOwogCQl9 CkBAIC0xNjA3LDYgKzE2MDgsMTkgQEAgc3RhdGljIHZvaWQgc2ZwX3NtX2V2ZW50KHN0cnVjdCBz ZnAgKnNmcCwgdW5zaWduZWQgaW50IGV2ZW50KQogCW11dGV4X3VubG9jaygmc2ZwLT5zbV9tdXRl eCk7CiB9CiAKK3N0YXRpYyB2b2lkIHNmcF9hdHRhY2goc3RydWN0IHNmcCAqc2ZwKQoreworCXNm cC0+YXR0YWNoZWQgPSB0cnVlOworCWlmIChzZnAtPnN0YXRlICYgU0ZQX0ZfUFJFU0VOVCkKKwkJ c2ZwX3NtX2V2ZW50KHNmcCwgU0ZQX0VfSU5TRVJUKTsKK30KKworc3RhdGljIHZvaWQgc2ZwX2Rl dGFjaChzdHJ1Y3Qgc2ZwICpzZnApCit7CisJc2ZwLT5hdHRhY2hlZCA9IGZhbHNlOworCXNmcF9z bV9ldmVudChzZnAsIFNGUF9FX1JFTU9WRSk7Cit9CisKIHN0YXRpYyB2b2lkIHNmcF9zdGFydChz dHJ1Y3Qgc2ZwICpzZnApCiB7CiAJc2ZwX3NtX2V2ZW50KHNmcCwgU0ZQX0VfREVWX1VQKTsKQEAg LTE2NjcsNiArMTY4MSw4IEBAIHN0YXRpYyBpbnQgc2ZwX21vZHVsZV9lZXByb20oc3RydWN0IHNm cCAqc2ZwLCBzdHJ1Y3QgZXRodG9vbF9lZXByb20gKmVlLAogfQogCiBzdGF0aWMgY29uc3Qgc3Ry dWN0IHNmcF9zb2NrZXRfb3BzIHNmcF9tb2R1bGVfb3BzID0geworCS5hdHRhY2ggPSBzZnBfYXR0 YWNoLAorCS5kZXRhY2ggPSBzZnBfZGV0YWNoLAogCS5zdGFydCA9IHNmcF9zdGFydCwKIAkuc3Rv cCA9IHNmcF9zdG9wLAogCS5tb2R1bGVfaW5mbyA9IHNmcF9tb2R1bGVfaW5mbywKQEAgLTE4MzQs MTAgKzE4NTAsNiBAQCBzdGF0aWMgaW50IHNmcF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNl ICpwZGV2KQogCWRldl9pbmZvKHNmcC0+ZGV2LCAiSG9zdCBtYXhpbXVtIHBvd2VyICV1LiV1V1xu IiwKIAkJIHNmcC0+bWF4X3Bvd2VyX21XIC8gMTAwMCwgKHNmcC0+bWF4X3Bvd2VyX21XIC8gMTAw KSAlIDEwKTsKIAotCXNmcC0+c2ZwX2J1cyA9IHNmcF9yZWdpc3Rlcl9zb2NrZXQoc2ZwLT5kZXYs IHNmcCwgJnNmcF9tb2R1bGVfb3BzKTsKLQlpZiAoIXNmcC0+c2ZwX2J1cykKLQkJcmV0dXJuIC1F Tk9NRU07Ci0KIAkvKiBHZXQgdGhlIGluaXRpYWwgc3RhdGUsIGFuZCBhbHdheXMgc2lnbmFsIFRY IGRpc2FibGUsCiAJICogc2luY2UgdGhlIG5ldHdvcmsgaW50ZXJmYWNlIHdpbGwgbm90IGJlIHVw LgogCSAqLwpAQCAtMTg0OCwxMCArMTg2MCw2IEBAIHN0YXRpYyBpbnQgc2ZwX3Byb2JlKHN0cnVj dCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCXNmcC0+c3RhdGUgfD0gU0ZQX0ZfUkFURV9TRUxF Q1Q7CiAJc2ZwX3NldF9zdGF0ZShzZnAsIHNmcC0+c3RhdGUpOwogCXNmcF9tb2R1bGVfdHhfZGlz YWJsZShzZnApOwotCXJ0bmxfbG9jaygpOwotCWlmIChzZnAtPnN0YXRlICYgU0ZQX0ZfUFJFU0VO VCkKLQkJc2ZwX3NtX2V2ZW50KHNmcCwgU0ZQX0VfSU5TRVJUKTsKLQlydG5sX3VubG9jaygpOwog CiAJZm9yIChpID0gMDsgaSA8IEdQSU9fTUFYOyBpKyspIHsKIAkJaWYgKGdwaW9fZmxhZ3NbaV0g IT0gR1BJT0RfSU4gfHwgIXNmcC0+Z3Bpb1tpXSkKQEAgLTE4ODQsNiArMTg5MiwxMCBAQCBzdGF0 aWMgaW50IHNmcF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQlkZXZfd2Fy bihzZnAtPmRldiwKIAkJCSAiTm8gdHhfZGlzYWJsZSBwaW46IFNGUCBtb2R1bGVzIHdpbGwgYWx3 YXlzIGJlIGVtaXR0aW5nLlxuIik7CiAKKwlzZnAtPnNmcF9idXMgPSBzZnBfcmVnaXN0ZXJfc29j a2V0KHNmcC0+ZGV2LCBzZnAsICZzZnBfbW9kdWxlX29wcyk7CisJaWYgKCFzZnAtPnNmcF9idXMp CisJCXJldHVybiAtRU5PTUVNOworCiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L3BoeS9zZnAuaCBiL2RyaXZlcnMvbmV0L3BoeS9zZnAuaAppbmRleCAzMWIwYWNmMzM3 ZTIuLjY0ZjU0YjBiYmQ4YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcGh5L3NmcC5oCisrKyBi L2RyaXZlcnMvbmV0L3BoeS9zZnAuaApAQCAtNyw2ICs3LDggQEAKIHN0cnVjdCBzZnA7CiAKIHN0 cnVjdCBzZnBfc29ja2V0X29wcyB7CisJdm9pZCAoKmF0dGFjaCkoc3RydWN0IHNmcCAqc2ZwKTsK Kwl2b2lkICgqZGV0YWNoKShzdHJ1Y3Qgc2ZwICpzZnApOwogCXZvaWQgKCpzdGFydCkoc3RydWN0 IHNmcCAqc2ZwKTsKIAl2b2lkICgqc3RvcCkoc3RydWN0IHNmcCAqc2ZwKTsKIAlpbnQgKCptb2R1 bGVfaW5mbykoc3RydWN0IHNmcCAqc2ZwLCBzdHJ1Y3QgZXRodG9vbF9tb2RpbmZvICptb2RpbmZv KTsKLS0gCjIuMjAuMQoKCkZyb20gOTUxOWQ4OTNiZjVlYjMxN2Y4NzA5NzYzZWFlNGZlNTM2YTZi NDBjOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWGluIExvbmcgPGx1Y2llbi54aW5A Z21haWwuY29tPgpEYXRlOiBUdWUsIDEyIEZlYiAyMDE5IDE4OjQ3OjMwICswODAwClN1YmplY3Q6 IFtQQVRDSCAwOS8yM10gc2N0cDogY2FsbCBnc29fcmVzZXRfY2hlY2tzdW0gd2hlbiBjb21wdXRp bmcgY2hlY2tzdW0KIGluIHNjdHBfZ3NvX3NlZ21lbnQKClsgVXBzdHJlYW0gY29tbWl0IGZjMjI4 YWJjMjM0N2UxMDZhNDRjMGU5YjI5YWI3MGI3MTJjNGNhNTEgXQoKSmlhbmxpbiByZXBvcnRlZCBh IHBhbmljIHdoZW4gcnVubmluZyBzY3RwIGdzbyBvdmVyIGdyZSBvdmVyIHZsYW4gZGV2aWNlOgoK ICBbICAgODQuNzcyOTMwXSBSSVA6IDAwMTA6ZG9fY3N1bSsweDZkLzB4MTcwCiAgWyAgIDg0Ljc5 MDYwNV0gQ2FsbCBUcmFjZToKICBbICAgODQuNzkxMDU0XSAgY3N1bV9wYXJ0aWFsKzB4ZC8weDIw CiAgWyAgIDg0Ljc5MTY1N10gIGdyZV9nc29fc2VnbWVudCsweDJjMy8weDM5MAogIFsgICA4NC43 OTIzNjRdICBpbmV0X2dzb19zZWdtZW50KzB4MTYxLzB4M2UwCiAgWyAgIDg0Ljc5MzA3MV0gIHNr Yl9tYWNfZ3NvX3NlZ21lbnQrMHhiOC8weDEyMAogIFsgICA4NC43OTM4NDZdICBfX3NrYl9nc29f c2VnbWVudCsweDdlLzB4MTgwCiAgWyAgIDg0Ljc5NDU4MV0gIHZhbGlkYXRlX3htaXRfc2tiKzB4 MTQxLzB4MmUwCiAgWyAgIDg0Ljc5NTI5N10gIF9fZGV2X3F1ZXVlX3htaXQrMHgyNTgvMHg4ZjAK ICBbICAgODQuNzk1OTQ5XSAgPyBldGhfaGVhZGVyKzB4MjYvMHhjMAogIFsgICA4NC43OTY1ODFd ICBpcF9maW5pc2hfb3V0cHV0MisweDE5Ni8weDQzMAogIFsgICA4NC43OTcyOTVdICA/IHNrYl9n c29fdmFsaWRhdGVfbmV0d29ya19sZW4rMHgxMS8weDgwCiAgWyAgIDg0Ljc5ODE4M10gID8gaXBf ZmluaXNoX291dHB1dCsweDE2OS8weDI3MAogIFsgICA4NC43OTg4NzVdICBpcF9vdXRwdXQrMHg2 Yy8weGUwCiAgWyAgIDg0Ljc5OTQxM10gID8gaXBfYXBwZW5kX2RhdGEucGFydC41MCsweGMwLzB4 YzAKICBbICAgODQuODAwMTQ1XSAgaXB0dW5uZWxfeG1pdCsweDE0NC8weDFjMAogIFsgICA4NC44 MDA4MTRdICBpcF90dW5uZWxfeG1pdCsweDYyZC8weDkzMCBbaXBfdHVubmVsXQogIFsgICA4NC44 MDE2OTldICBncmVfdGFwX3htaXQrMHhhYy8weGYwIFtpcF9ncmVdCiAgWyAgIDg0LjgwMjM5NV0g IGRldl9oYXJkX3N0YXJ0X3htaXQrMHhhNS8weDIxMAogIFsgICA4NC44MDMwODZdICBzY2hfZGly ZWN0X3htaXQrMHgxNGYvMHgzNDAKICBbICAgODQuODAzNzMzXSAgX19kZXZfcXVldWVfeG1pdCsw eDc5OS8weDhmMAogIFsgICA4NC44MDQ0NzJdICBpcF9maW5pc2hfb3V0cHV0MisweDJlMC8weDQz MAogIFsgICA4NC44MDUyNTVdICA/IHNrYl9nc29fdmFsaWRhdGVfbmV0d29ya19sZW4rMHgxMS8w eDgwCiAgWyAgIDg0LjgwNjE1NF0gIGlwX291dHB1dCsweDZjLzB4ZTAKICBbICAgODQuODA2NzIx XSAgPyBpcF9hcHBlbmRfZGF0YS5wYXJ0LjUwKzB4YzAvMHhjMAogIFsgICA4NC44MDc1MTZdICBz Y3RwX3BhY2tldF90cmFuc21pdCsweDcxNi8weGExMCBbc2N0cF0KICBbICAgODQuODA4MzM3XSAg c2N0cF9vdXRxX2ZsdXNoKzB4ZDcvMHg4ODAgW3NjdHBdCgpJdCB3YXMgY2F1c2VkIGJ5IFNLQl9H U09fQ0Ioc2tiKS0+Y3N1bV9zdGFydCBub3Qgc2V0IGluIHNjdHBfZ3NvX3NlZ21lbnQuCnNjdHBf Z3NvX3NlZ21lbnQoKSBjYWxscyBza2Jfc2VnbWVudCgpIHdpdGggJ2ZlYXR1cmUgfCBORVRJRl9G X0hXX0NTVU0nLAp3aGljaCBjYXVzZXMgU0tCX0dTT19DQihza2IpLT5jc3VtX3N0YXJ0IG5vdCB0 byBiZSBzZXQgaW4gc2tiX3NlZ21lbnQoKS4KCkZvciBUQ1AvVURQLCB3aGVuIGZlYXR1cmUgc3Vw cG9ydHMgSFdfQ1NVTSwgQ0hFQ0tTVU1fUEFSVElBTCB3aWxsIGJlIHNldAphbmQgZ3NvX3Jlc2V0 X2NoZWNrc3VtIHdpbGwgYmUgY2FsbGVkIHRvIHNldCBTS0JfR1NPX0NCKHNrYiktPmNzdW1fc3Rh cnQuCgpTbyBTQ1RQIHNob3VsZCBkbyB0aGUgc2FtZSBhcyBUQ1AvVURQLCB0byBjYWxsIGdzb19y ZXNldF9jaGVja3N1bSgpIHdoZW4KY29tcHV0aW5nIGNoZWNrc3VtIGluIHNjdHBfZ3NvX3NlZ21l bnQuCgpSZXBvcnRlZC1ieTogSmlhbmxpbiBTaGkgPGppc2hpQHJlZGhhdC5jb20+ClNpZ25lZC1v ZmYtYnk6IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KQWNrZWQtYnk6IE5laWwgSG9y bWFuIDxuaG9ybWFuQHR1eGRyaXZlci5jb20+CkFja2VkLWJ5OiBNYXJjZWxvIFJpY2FyZG8gTGVp dG5lciA8bWFyY2Vsby5sZWl0bmVyQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY3RwL29mZmxvYWQuYyB8IDEg KwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAv b2ZmbG9hZC5jIGIvbmV0L3NjdHAvb2ZmbG9hZC5jCmluZGV4IDEyM2U5ZjJkYzIyNi4uZWRmY2Yx NmU3MDRjIDEwMDY0NAotLS0gYS9uZXQvc2N0cC9vZmZsb2FkLmMKKysrIGIvbmV0L3NjdHAvb2Zm bG9hZC5jCkBAIC0zNiw2ICszNiw3IEBAIHN0YXRpYyBfX2xlMzIgc2N0cF9nc29fbWFrZV9jaGVj a3N1bShzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewogCXNrYi0+aXBfc3VtbWVkID0gQ0hFQ0tTVU1f Tk9ORTsKIAlza2ItPmNzdW1fbm90X2luZXQgPSAwOworCWdzb19yZXNldF9jaGVja3N1bShza2Is IH4wKTsKIAlyZXR1cm4gc2N0cF9jb21wdXRlX2Nrc3VtKHNrYiwgc2tiX3RyYW5zcG9ydF9vZmZz ZXQoc2tiKSk7CiB9CiAKLS0gCjIuMjAuMQoKCkZyb20gNGI1YjZhYjIzNjVkNjJmYTg1NjBkYWQw MTg4MWM3MWUyZTZmZWZmNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWGluIExvbmcg PGx1Y2llbi54aW5AZ21haWwuY29tPgpEYXRlOiBUdWUsIDEyIEZlYiAyMDE5IDE4OjUxOjAxICsw ODAwClN1YmplY3Q6IFtQQVRDSCAxMC8yM10gc2N0cDogc2V0IHN0cmVhbSBleHQgdG8gTlVMTCBh ZnRlciBmcmVlaW5nIGl0IGluCiBzY3RwX3N0cmVhbV9vdXRxX21pZ3JhdGUKClsgVXBzdHJlYW0g Y29tbWl0IGFmOThjNWE3ODUxN2MwNGFkYjVmZDY4YmI2NGIxYWQ2ZmUzZDQ3M2YgXQoKSW4gc2N0 cF9zdHJlYW1faW5pdCgpLCBhZnRlciBzY3RwX3N0cmVhbV9vdXRxX21pZ3JhdGUoKSBmcmVlZCB0 aGUKc3VycGx1cyBzdHJlYW1zJyBleHQsIGJ1dCBzY3RwX3N0cmVhbV9hbGxvY19vdXQoKSByZXR1 cm5zIC1FTk9NRU0sCnN0cmVhbS0+b3V0Y250IHdpbGwgbm90IGJlIHNldCB0byAnb3V0Y250Jy4K CldpdGggdGhlIGJpZ2dlciB2YWx1ZSBvbiBzdHJlYW0tPm91dGNudCwgd2hlbiBjbG9zaW5nIHRo ZSBhc3NvYyBhbmQKZnJlZWluZyBpdHMgc3RyZWFtcywgdGhlIGV4dCBvZiB0aG9zZSBzdXJwbHVz IHN0cmVhbXMgd2lsbCBiZSBmcmVlZAphZ2FpbiBzaW5jZSB0aG9zZSBzdHJlYW0gZXh0cyB3ZXJl IG5vdCBzZXQgdG8gTlVMTCBhZnRlciBmcmVlaW5nIGluCnNjdHBfc3RyZWFtX291dHFfbWlncmF0 ZSgpLiBUaGVuIHRoZSBpbnZhbGlkLWZyZWUgaXNzdWUgcmVwb3J0ZWQgYnkKc3l6Ym90IHdvdWxk IGJlIHRyaWdnZXJlZC4KCldlIGZpeCBpdCBieSBzaW1wbHkgc2V0dGluZyB0aGVtIHRvIE5VTEwg YWZ0ZXIgZnJlZWluZy4KCkZpeGVzOiA1YmJiYmUzMmE0MzEgKCJzY3RwOiBpbnRyb2R1Y2Ugc3Ry ZWFtIHNjaGVkdWxlciBmb3VuZGF0aW9ucyIpClJlcG9ydGVkLWJ5OiBzeXpib3QrNThlNDgwZTdi MjhmMmQ4OTBiZmRAc3l6a2FsbGVyLmFwcHNwb3RtYWlsLmNvbQpTaWduZWQtb2ZmLWJ5OiBYaW4g TG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkFja2VkLWJ5OiBOZWlsIEhvcm1hbiA8bmhvcm1h bkB0dXhkcml2ZXIuY29tPgpBY2tlZC1ieTogTWFyY2VsbyBSaWNhcmRvIExlaXRuZXIgPG1hcmNl bG8ubGVpdG5lckBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2N0cC9zdHJlYW0uYyB8IDQgKysrLQogMSBmaWxl IGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25l dC9zY3RwL3N0cmVhbS5jIGIvbmV0L3NjdHAvc3RyZWFtLmMKaW5kZXggZjI0NjMzMTE0ZGZkLi4y OTM2ZWQxN2JmOWUgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3N0cmVhbS5jCisrKyBiL25ldC9zY3Rw L3N0cmVhbS5jCkBAIC0xNDQsOCArMTQ0LDEwIEBAIHN0YXRpYyB2b2lkIHNjdHBfc3RyZWFtX291 dHFfbWlncmF0ZShzdHJ1Y3Qgc2N0cF9zdHJlYW0gKnN0cmVhbSwKIAkJfQogCX0KIAotCWZvciAo aSA9IG91dGNudDsgaSA8IHN0cmVhbS0+b3V0Y250OyBpKyspCisJZm9yIChpID0gb3V0Y250OyBp IDwgc3RyZWFtLT5vdXRjbnQ7IGkrKykgewogCQlrZnJlZShTQ1RQX1NPKHN0cmVhbSwgaSktPmV4 dCk7CisJCVNDVFBfU08oc3RyZWFtLCBpKS0+ZXh0ID0gTlVMTDsKKwl9CiB9CiAKIHN0YXRpYyBp bnQgc2N0cF9zdHJlYW1fYWxsb2Nfb3V0KHN0cnVjdCBzY3RwX3N0cmVhbSAqc3RyZWFtLCBfX3Ux NiBvdXRjbnQsCi0tIAoyLjIwLjEKCgpGcm9tIGUwMTk3ZDhhZmIzMDZlOTgwYmZkMjFhMjMwMjcw ZmIxMzczMGZiOTEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENvbmcgV2FuZyA8eGl5 b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpEYXRlOiBNb24sIDExIEZlYiAyMDE5IDIxOjU5OjUxIC0w ODAwClN1YmplY3Q6IFtQQVRDSCAxMS8yM10gdGVhbTogYXZvaWQgY29tcGxleCBsaXN0IG9wZXJh dGlvbnMgaW4KIHRlYW1fbmxfY21kX29wdGlvbnNfc2V0KCkKClsgVXBzdHJlYW0gY29tbWl0IDJm ZGVlZTI1NDkyMzFiMWY5ODlmMDExYmIxODE5MWY1NjYwZDM3NDUgXQoKVGhlIGN1cnJlbnQgb3B0 X2luc3RfbGlzdCBvcGVyYXRpb25zIGluc2lkZSB0ZWFtX25sX2NtZF9vcHRpb25zX3NldCgpCmlz IHRvbyBjb21wbGV4IHRvIHRyYWNrOgoKICAgIExJU1RfSEVBRChvcHRfaW5zdF9saXN0KTsKICAg IG5sYV9mb3JfZWFjaF9uZXN0ZWQoLi4uKSB7CiAgICAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeShv cHRfaW5zdCwgJnRlYW0tPm9wdGlvbl9pbnN0X2xpc3QsIGxpc3QpIHsKICAgICAgICAgICAgaWYg KF9fdGVhbV9vcHRpb25faW5zdF90bXBfZmluZCgmb3B0X2luc3RfbGlzdCwgb3B0X2luc3QpKQog ICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIGxpc3RfYWRkKCZvcHRfaW5zdC0+ dG1wX2xpc3QsICZvcHRfaW5zdF9saXN0KTsKICAgICAgICB9CiAgICB9CiAgICB0ZWFtX25sX3Nl bmRfZXZlbnRfb3B0aW9uc19nZXQodGVhbSwgJm9wdF9pbnN0X2xpc3QpOwoKYXMgd2hpbGUgd2Ug cmV0cmlldmUgJ29wdF9pbnN0JyBmcm9tIHRlYW0tPm9wdGlvbl9pbnN0X2xpc3QsIGl0IGNvdWxk CmJlIGFkZGVkIHRvIHRoZSBsb2NhbCAnb3B0X2luc3RfbGlzdCcgZm9yIG11bHRpcGxlIHRpbWVz LiBUaGUKX190ZWFtX29wdGlvbl9pbnN0X3RtcF9maW5kKCkgZG9lc24ndCB3b3JrLCBhcyB0aGUg c2V0dGVyCnRlYW1fbW9kZV9vcHRpb25fc2V0KCkgc3RpbGwgY2FsbHMgdGVhbS0+b3BzLmV4aXQo KSB3aGljaCB1c2VzCi0+dG1wX2xpc3QgdG9vIGluIF9fdGVhbV9vcHRpb25zX2NoYW5nZV9jaGVj aygpLgoKU2ltcGxpZnkgdGhlIGxpc3Qgb3BlcmF0aW9ucyBieSBtb3ZpbmcgdGhlICdvcHRfaW5z dF9saXN0JyBhbmQKdGVhbV9ubF9zZW5kX2V2ZW50X29wdGlvbnNfZ2V0KCkgaW50byB0aGUgbmxh X2Zvcl9lYWNoX25lc3RlZCgpIGxvb3Agc28KdGhhdCBpdCBjYW4gYmUgZ3VyYW50ZWVkIHRoYXQg d2Ugd29uJ3QgaW5zZXJ0IGEgc2FtZSBsaXN0IGVudHJ5IGZvcgptdWx0aXBsZSB0aW1lcy4gVGhl cmVmb3JlLCBfX3RlYW1fb3B0aW9uX2luc3RfdG1wX2ZpbmQoKSBjYW4gYmUgcmVtb3ZlZAp0b28u CgpGaXhlczogNGZiMDUzNGZiN2JiICgidGVhbTogYXZvaWQgYWRkaW5nIHR3aWNlIHRoZSBzYW1l IG9wdGlvbiB0byB0aGUgZXZlbnQgbGlzdCIpCkZpeGVzOiAyZmNkYjJjOWU2NTkgKCJ0ZWFtOiBh bGxvdyB0byBzZW5kIG11bHRpcGxlIHNldCBldmVudHMgaW4gb25lIG1lc3NhZ2UiKQpSZXBvcnRl ZC1ieTogc3l6Ym90KzRkNGFmNjg1NDMyZGMwZTU2YzkxQHN5emthbGxlci5hcHBzcG90bWFpbC5j b20KUmVwb3J0ZWQtYnk6IHN5emJvdCs2OGVlNTEwMDc1Y2Y2NDI2MGNjNEBzeXprYWxsZXIuYXBw c3BvdG1haWwuY29tCkNjOiBKaXJpIFBpcmtvIDxqaXJpQHJlc251bGxpLnVzPgpDYzogUGFvbG8g QWJlbmkgPHBhYmVuaUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBDb25nIFdhbmcgPHhpeW91 Lndhbmdjb25nQGdtYWlsLmNvbT4KQWNrZWQtYnk6IEppcmkgUGlya28gPGppcmlAbWVsbGFub3gu Y29tPgpSZXZpZXdlZC1ieTogUGFvbG8gQWJlbmkgPHBhYmVuaUByZWRoYXQuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVy cy9uZXQvdGVhbS90ZWFtLmMgfCAyNyArKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDIyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L3RlYW0vdGVhbS5jIGIvZHJpdmVycy9uZXQvdGVhbS90ZWFtLmMKaW5kZXgg MzY0ZjUxNGQ1NmQ4Li44NmRiMTIwNWEzOTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3RlYW0v dGVhbS5jCisrKyBiL2RyaXZlcnMvbmV0L3RlYW0vdGVhbS5jCkBAIC0yNTYsMTcgKzI1Niw2IEBA IHN0YXRpYyB2b2lkIF9fdGVhbV9vcHRpb25faW5zdF9tYXJrX3JlbW92ZWRfcG9ydChzdHJ1Y3Qg dGVhbSAqdGVhbSwKIAl9CiB9CiAKLXN0YXRpYyBib29sIF9fdGVhbV9vcHRpb25faW5zdF90bXBf ZmluZChjb25zdCBzdHJ1Y3QgbGlzdF9oZWFkICpvcHRzLAotCQkJCQljb25zdCBzdHJ1Y3QgdGVh bV9vcHRpb25faW5zdCAqbmVlZGxlKQotewotCXN0cnVjdCB0ZWFtX29wdGlvbl9pbnN0ICpvcHRf aW5zdDsKLQotCWxpc3RfZm9yX2VhY2hfZW50cnkob3B0X2luc3QsIG9wdHMsIHRtcF9saXN0KQot CQlpZiAob3B0X2luc3QgPT0gbmVlZGxlKQotCQkJcmV0dXJuIHRydWU7Ci0JcmV0dXJuIGZhbHNl OwotfQotCiBzdGF0aWMgaW50IF9fdGVhbV9vcHRpb25zX3JlZ2lzdGVyKHN0cnVjdCB0ZWFtICp0 ZWFtLAogCQkJCSAgIGNvbnN0IHN0cnVjdCB0ZWFtX29wdGlvbiAqb3B0aW9uLAogCQkJCSAgIHNp emVfdCBvcHRpb25fY291bnQpCkBAIC0yNDYwLDcgKzI0NDksNiBAQCBzdGF0aWMgaW50IHRlYW1f bmxfY21kX29wdGlvbnNfc2V0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8g KmluZm8pCiAJaW50IGVyciA9IDA7CiAJaW50IGk7CiAJc3RydWN0IG5sYXR0ciAqbmxfb3B0aW9u OwotCUxJU1RfSEVBRChvcHRfaW5zdF9saXN0KTsKIAogCXJ0bmxfbG9jaygpOwogCkBAIC0yNDgw LDYgKzI0NjgsNyBAQCBzdGF0aWMgaW50IHRlYW1fbmxfY21kX29wdGlvbnNfc2V0KHN0cnVjdCBz a19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pCiAJCXN0cnVjdCBubGF0dHIgKm9w dF9hdHRyc1tURUFNX0FUVFJfT1BUSU9OX01BWCArIDFdOwogCQlzdHJ1Y3QgbmxhdHRyICphdHRy OwogCQlzdHJ1Y3QgbmxhdHRyICphdHRyX2RhdGE7CisJCUxJU1RfSEVBRChvcHRfaW5zdF9saXN0 KTsKIAkJZW51bSB0ZWFtX29wdGlvbl90eXBlIG9wdF90eXBlOwogCQlpbnQgb3B0X3BvcnRfaWZp bmRleCA9IDA7IC8qICE9IDAgZm9yIHBlci1wb3J0IG9wdGlvbnMgKi8KIAkJdTMyIG9wdF9hcnJh eV9pbmRleCA9IDA7CkBAIC0yNTg0LDIzICsyNTczLDE3IEBAIHN0YXRpYyBpbnQgdGVhbV9ubF9j bWRfb3B0aW9uc19zZXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5m bykKIAkJCWlmIChlcnIpCiAJCQkJZ290byB0ZWFtX3B1dDsKIAkJCW9wdF9pbnN0LT5jaGFuZ2Vk ID0gdHJ1ZTsKLQotCQkJLyogZHVtYi9ldmlsIHVzZXItc3BhY2UgY2FuIHNlbmQgdXMgZHVwbGlj YXRlIG9wdCwKLQkJCSAqIGtlZXAgb25seSB0aGUgbGFzdCBvbmUKLQkJCSAqLwotCQkJaWYgKF9f dGVhbV9vcHRpb25faW5zdF90bXBfZmluZCgmb3B0X2luc3RfbGlzdCwKLQkJCQkJCQlvcHRfaW5z dCkpCi0JCQkJY29udGludWU7Ci0KIAkJCWxpc3RfYWRkKCZvcHRfaW5zdC0+dG1wX2xpc3QsICZv cHRfaW5zdF9saXN0KTsKIAkJfQogCQlpZiAoIW9wdF9mb3VuZCkgewogCQkJZXJyID0gLUVOT0VO VDsKIAkJCWdvdG8gdGVhbV9wdXQ7CiAJCX0KLQl9CiAKLQllcnIgPSB0ZWFtX25sX3NlbmRfZXZl bnRfb3B0aW9uc19nZXQodGVhbSwgJm9wdF9pbnN0X2xpc3QpOworCQllcnIgPSB0ZWFtX25sX3Nl bmRfZXZlbnRfb3B0aW9uc19nZXQodGVhbSwgJm9wdF9pbnN0X2xpc3QpOworCQlpZiAoZXJyKQor CQkJYnJlYWs7CisJfQogCiB0ZWFtX3B1dDoKIAl0ZWFtX25sX3RlYW1fcHV0KHRlYW0pOwotLSAK Mi4yMC4xCgoKRnJvbSBjMjdjYjdmNjcyZmQ3NzQ3OTg5ZWFmYTcxMTg4NWNiYjYxMDY3MmNhIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxp QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAxOCBGZWIgMjAxOSAxNDozMDoxMSAtMDgwMApTdWJqZWN0 OiBbUEFUQ0ggMTIvMjNdIG5ldDogZHNhOiBGaXggTlBEIGNoZWNraW5nIGZvciBicl92bGFuX2Vu YWJsZWQoKQoKWyBVcHN0cmVhbSBub3QgYXBwbGljYWJsZSBdCgpJdCBpcyBwb3NzaWJsZSBmb3Ig dGhlIERTQSBzbGF2ZSBuZXR3b3JrIGRldmljZSBub3QgdG8gYmUgcGFydCBvZiBhCmJyaWRnZSwg eWV0IGhhdmUgYW4gdXBwZXIgZGV2aWNlIGxpa2UgYSBWTEFOIGRldmljZSBiZSBwYXJ0IG9mIGEg YnJpZGdlLgpXaGVuIHRoYXQgVkxBTiBkZXZpY2UgaXMgZW5zbGF2ZWQsIHNpbmNlIGl0IGRvZXMg bm90IGRlZmluZSBhbnkKc3dpdGNoZGV2X29wcywgd2Ugd2lsbCByZWN1cnNlIGRvd24gdG8gdGhl IGxvd2VyL3BoeXNpY2FsIHBvcnQgZGV2aWNlLApjYWxsIHN3aXRjaGRldl9wb3J0X29ial9hZGQo KSB3aXRoIGEgVkxBTiwgYW5kIGhlcmUgd2Ugd2lsbCBjaGVjawpicl92bGFuX2VuYWJsZWQoKSBv biBhIE5VTEwgZHAtPmJyaWRnZV9kZXYsIHRodXMgY2F1c2luZyBhIE5VTEwgcG9pbnRlcgpkZS1y ZWZlcmVuY2UuCgpUaGlzIGlzIG5vIGxvbmdlciBhIHByb2JsZW0gdXBzdHJlYW0gYWZ0ZXIgY29t bWl0IGQxN2Q5ZjVlNTE0MwooInN3aXRjaGRldjogUmVwbGFjZSBwb3J0IG9iaiBhZGQvZGVsIFNE TyB3aXRoIGEgbm90aWZpY2F0aW9uIikuCgpGaXhlczogMmVhN2E2NzljYTJhICgibmV0OiBkc2E6 IERvbid0IGFkZCB2bGFucyB3aGVuIHZsYW4gZmlsdGVyaW5nIGlzIGRpc2FibGVkIikKUmVwb3J0 ZWQtYnk6IEZyYW5rIFd1bmRlcmxpY2ggPGZyYW5rLXdAcHVibGljLWZpbGVzLmRlPgpTaWduZWQt b2ZmLWJ5OiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KLS0tCiBuZXQv ZHNhL3BvcnQuYyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvZHNhL3BvcnQuYyBiL25ldC9kc2EvcG9ydC5j CmluZGV4IGVkMDU5NTQ1OWRmMS4uNzkyYTEzMDY4YzUwIDEwMDY0NAotLS0gYS9uZXQvZHNhL3Bv cnQuYworKysgYi9uZXQvZHNhL3BvcnQuYwpAQCAtMjU1LDcgKzI1NSw3IEBAIGludCBkc2FfcG9y dF92bGFuX2FkZChzdHJ1Y3QgZHNhX3BvcnQgKmRwLAogCWlmIChuZXRpZl9pc19icmlkZ2VfbWFz dGVyKHZsYW4tPm9iai5vcmlnX2RldikpCiAJCXJldHVybiAtRU9QTk9UU1VQUDsKIAotCWlmIChi cl92bGFuX2VuYWJsZWQoZHAtPmJyaWRnZV9kZXYpKQorCWlmIChkcC0+YnJpZGdlX2RldiAmJiBi cl92bGFuX2VuYWJsZWQoZHAtPmJyaWRnZV9kZXYpKQogCQlyZXR1cm4gZHNhX3BvcnRfbm90aWZ5 KGRwLCBEU0FfTk9USUZJRVJfVkxBTl9BREQsICZpbmZvKTsKIAogCXJldHVybiAwOwpAQCAtMjcz LDcgKzI3Myw3IEBAIGludCBkc2FfcG9ydF92bGFuX2RlbChzdHJ1Y3QgZHNhX3BvcnQgKmRwLAog CWlmIChuZXRpZl9pc19icmlkZ2VfbWFzdGVyKHZsYW4tPm9iai5vcmlnX2RldikpCiAJCXJldHVy biAtRU9QTk9UU1VQUDsKIAotCWlmIChicl92bGFuX2VuYWJsZWQoZHAtPmJyaWRnZV9kZXYpKQor CWlmIChkcC0+YnJpZGdlX2RldiAmJiBicl92bGFuX2VuYWJsZWQoZHAtPmJyaWRnZV9kZXYpKQog CQlyZXR1cm4gZHNhX3BvcnRfbm90aWZ5KGRwLCBEU0FfTk9USUZJRVJfVkxBTl9ERUwsICZpbmZv KTsKIAogCXJldHVybiAwOwotLSAKMi4yMC4xCgoKRnJvbSBjMWQyMTJjZmIyNGRhMDlmNjUxMWUy YmQ4Mjk0YzliZmM1YzAwZTI4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2hhbm5l cyBCZXJnIDxqb2hhbm5lcy5iZXJnQGludGVsLmNvbT4KRGF0ZTogRnJpLCAyNSBKYW4gMjAxOSAy Mjo0MzoxNyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTMvMjNdIFJldmVydCAic29ja2V0OiBmaXgg c3RydWN0IGlmcmVxIHNpemUgaW4gY29tcGF0IGlvY3RsIgoKWyBVcHN0cmVhbSBjb21taXQgNjNm ZjAzYWI3ODZhYjFiYzZjY2EwMWQ0OGVhY2QyMmM5NWI5YjNlYiBdCgpUaGlzIHJldmVydHMgY29t bWl0IDFjZWJmOGYxNDNjMiAoInNvY2tldDogZml4IHN0cnVjdCBpZnJlcQpzaXplIGluIGNvbXBh dCBpb2N0bCIpLCBpdCdzIGEgYnVnZml4IGZvciBhbm90aGVyIGNvbW1pdCB0aGF0CkknbGwgcmV2 ZXJ0IG5leHQuCgpUaGlzIGlzIG5vdCBhICdwZXJmZWN0JyByZXZlcnQsIEknbSBrZWVwaW5nIHNv bWUgY29kaW5nIHN0eWxlCmludGFjdCByYXRoZXIgdGhhbiByZXZlcnQgdG8gdGhlIHN0YXRlIHdp dGggaW5kZW50YXRpb24gZXJyb3JzLgoKQ2M6IHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmcKRml4ZXM6 IDFjZWJmOGYxNDNjMiAoInNvY2tldDogZml4IHN0cnVjdCBpZnJlcSBzaXplIGluIGNvbXBhdCBp b2N0bCIpClNpZ25lZC1vZmYtYnk6IEpvaGFubmVzIEJlcmcgPGpvaGFubmVzLmJlcmdAaW50ZWwu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogbmV0L3NvY2tldC5jIHwgMjIgKysrKysrKystLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0 L3NvY2tldC5jIGIvbmV0L3NvY2tldC5jCmluZGV4IDMzNGZjYzYxN2VmMi4uMWEzYmE0MjM0NjYy IDEwMDY0NAotLS0gYS9uZXQvc29ja2V0LmMKKysrIGIvbmV0L3NvY2tldC5jCkBAIC05NDEsOCAr OTQxLDcgQEAgdm9pZCBkbGNpX2lvY3RsX3NldChpbnQgKCpob29rKSAodW5zaWduZWQgaW50LCB2 b2lkIF9fdXNlciAqKSkKIEVYUE9SVF9TWU1CT0woZGxjaV9pb2N0bF9zZXQpOwogCiBzdGF0aWMg bG9uZyBzb2NrX2RvX2lvY3RsKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNvY2tldCAqc29jaywK LQkJCSAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcsCi0JCQkgIHVuc2lnbmVk IGludCBpZnJlcV9zaXplKQorCQkJICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFy ZykKIHsKIAlpbnQgZXJyOwogCXZvaWQgX191c2VyICphcmdwID0gKHZvaWQgX191c2VyICopYXJn OwpAQCAtOTY4LDExICs5NjcsMTEgQEAgc3RhdGljIGxvbmcgc29ja19kb19pb2N0bChzdHJ1Y3Qg bmV0ICpuZXQsIHN0cnVjdCBzb2NrZXQgKnNvY2ssCiAJfSBlbHNlIHsKIAkJc3RydWN0IGlmcmVx IGlmcjsKIAkJYm9vbCBuZWVkX2NvcHlvdXQ7Ci0JCWlmIChjb3B5X2Zyb21fdXNlcigmaWZyLCBh cmdwLCBpZnJlcV9zaXplKSkKKwkJaWYgKGNvcHlfZnJvbV91c2VyKCZpZnIsIGFyZ3AsIHNpemVv ZihzdHJ1Y3QgaWZyZXEpKSkKIAkJCXJldHVybiAtRUZBVUxUOwogCQllcnIgPSBkZXZfaW9jdGwo bmV0LCBjbWQsICZpZnIsICZuZWVkX2NvcHlvdXQpOwogCQlpZiAoIWVyciAmJiBuZWVkX2NvcHlv dXQpCi0JCQlpZiAoY29weV90b191c2VyKGFyZ3AsICZpZnIsIGlmcmVxX3NpemUpKQorCQkJaWYg KGNvcHlfdG9fdXNlcihhcmdwLCAmaWZyLCBzaXplb2Yoc3RydWN0IGlmcmVxKSkpCiAJCQkJcmV0 dXJuIC1FRkFVTFQ7CiAJfQogCXJldHVybiBlcnI7CkBAIC0xMDcxLDggKzEwNzAsNyBAQCBzdGF0 aWMgbG9uZyBzb2NrX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBjbWQsIHVuc2ln bmVkIGxvbmcgYXJnKQogCQkJZXJyID0gb3Blbl9yZWxhdGVkX25zKCZuZXQtPm5zLCBnZXRfbmV0 X25zKTsKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgotCQkJZXJyID0gc29ja19kb19pb2N0bChuZXQs IHNvY2ssIGNtZCwgYXJnLAotCQkJCQkgICAgc2l6ZW9mKHN0cnVjdCBpZnJlcSkpOworCQkJZXJy ID0gc29ja19kb19pb2N0bChuZXQsIHNvY2ssIGNtZCwgYXJnKTsKIAkJCWJyZWFrOwogCQl9CiAJ cmV0dXJuIGVycjsKQEAgLTI3NTAsOCArMjc0OCw3IEBAIHN0YXRpYyBpbnQgZG9fc2lvY2dzdGFt cChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBzb2NrZXQgKnNvY2ssCiAJaW50IGVycjsKIAogCXNl dF9mcyhLRVJORUxfRFMpOwotCWVyciA9IHNvY2tfZG9faW9jdGwobmV0LCBzb2NrLCBjbWQsICh1 bnNpZ25lZCBsb25nKSZrdHYsCi0JCQkgICAgc2l6ZW9mKHN0cnVjdCBjb21wYXRfaWZyZXEpKTsK KwllcnIgPSBzb2NrX2RvX2lvY3RsKG5ldCwgc29jaywgY21kLCAodW5zaWduZWQgbG9uZykma3R2 KTsKIAlzZXRfZnMob2xkX2ZzKTsKIAlpZiAoIWVycikKIAkJZXJyID0gY29tcGF0X3B1dF90aW1l dmFsKCZrdHYsIHVwKTsKQEAgLTI3NjcsOCArMjc2NCw3IEBAIHN0YXRpYyBpbnQgZG9fc2lvY2dz dGFtcG5zKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNvY2tldCAqc29jaywKIAlpbnQgZXJyOwog CiAJc2V0X2ZzKEtFUk5FTF9EUyk7Ci0JZXJyID0gc29ja19kb19pb2N0bChuZXQsIHNvY2ssIGNt ZCwgKHVuc2lnbmVkIGxvbmcpJmt0cywKLQkJCSAgICBzaXplb2Yoc3RydWN0IGNvbXBhdF9pZnJl cSkpOworCWVyciA9IHNvY2tfZG9faW9jdGwobmV0LCBzb2NrLCBjbWQsICh1bnNpZ25lZCBsb25n KSZrdHMpOwogCXNldF9mcyhvbGRfZnMpOwogCWlmICghZXJyKQogCQllcnIgPSBjb21wYXRfcHV0 X3RpbWVzcGVjKCZrdHMsIHVwKTsKQEAgLTMwNzksOCArMzA3NSw3IEBAIHN0YXRpYyBpbnQgcm91 dGluZ19pb2N0bChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBzb2NrZXQgKnNvY2ssCiAJfQogCiAJ c2V0X2ZzKEtFUk5FTF9EUyk7Ci0JcmV0ID0gc29ja19kb19pb2N0bChuZXQsIHNvY2ssIGNtZCwg KHVuc2lnbmVkIGxvbmcpIHIsCi0JCQkgICAgc2l6ZW9mKHN0cnVjdCBjb21wYXRfaWZyZXEpKTsK KwlyZXQgPSBzb2NrX2RvX2lvY3RsKG5ldCwgc29jaywgY21kLCAodW5zaWduZWQgbG9uZykgcik7 CiAJc2V0X2ZzKG9sZF9mcyk7CiAKIG91dDoKQEAgLTMxOTMsOCArMzE4OCw3IEBAIHN0YXRpYyBp bnQgY29tcGF0X3NvY2tfaW9jdGxfdHJhbnMoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBzb2Nr ZXQgKnNvY2ssCiAJY2FzZSBTSU9DQk9ORFNFVEhXQUREUjoKIAljYXNlIFNJT0NCT05EQ0hBTkdF QUNUSVZFOgogCWNhc2UgU0lPQ0dJRk5BTUU6Ci0JCXJldHVybiBzb2NrX2RvX2lvY3RsKG5ldCwg c29jaywgY21kLCBhcmcsCi0JCQkJICAgICBzaXplb2Yoc3RydWN0IGNvbXBhdF9pZnJlcSkpOwor CQlyZXR1cm4gc29ja19kb19pb2N0bChuZXQsIHNvY2ssIGNtZCwgYXJnKTsKIAl9CiAKIAlyZXR1 cm4gLUVOT0lPQ1RMQ01EOwotLSAKMi4yMC4xCgoKRnJvbSA2ZGJjZTQxNGZkYzU1ZGQ1ZWIyMWFk MDQ0Y2ZkMGYyZDI5YzBhNjBjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2hhbm5l cyBCZXJnIDxqb2hhbm5lcy5iZXJnQGludGVsLmNvbT4KRGF0ZTogRnJpLCAyNSBKYW4gMjAxOSAy Mjo0MzoxOCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTQvMjNdIFJldmVydCAia2lsbCBkZXZfaWZz aW9jKCkiCgpbIFVwc3RyZWFtIGNvbW1pdCAzN2FjMzliZGRkYzUyOGM5OThhOWYzNmRiMzY5Mzdk ZTkyM2ZkZjJhIF0KClRoaXMgcmV2ZXJ0cyBjb21taXQgYmY0NDA1NzM3ZjlmICgia2lsbCBkZXZf aWZzaW9jKCkiKS4KClRoaXMgd2Fzbid0IHJlYWxseSB1bnVzZWQgYXMgaW1wbGllZCBieSB0aGUg b3JpZ2luYWwgY29tbWl0LAppdCBzdGlsbCBoYW5kbGVzIHRoZSBjb3B5IHRvL2Zyb20gdXNlciBk aWZmZXJlbnRseSwgYW5kIHRoZQpjb21taXQgdGh1cyBjYXVzZWQgaXNzdWVzIHN1Y2ggYXMKICBo dHRwczovL2J1Z3ppbGxhLmtlcm5lbC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTQ2OQphbmQKICBo dHRwczovL2J1Z3ppbGxhLmtlcm5lbC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjI3MwoKSG93ZXZl ciwgZGV2aWF0aW5nIGZyb20gYSBzdHJpY3QgcmV2ZXJ0LCByZW5hbWUgZGV2X2lmc2lvYygpCnRv IGNvbXBhdF9pZnJlcV9pb2N0bCgpIHRvIGJlIGNsZWFyZXIgYXMgdG8gaXRzIHB1cnBvc2UgYW5k CmFkZCBhIGNvbW1lbnQuCgpDYzogc3RhYmxlQHZnZXIua2VybmVsLm9yZwpGaXhlczogYmY0NDA1 NzM3ZjlmICgia2lsbCBkZXZfaWZzaW9jKCkiKQpTaWduZWQtb2ZmLWJ5OiBKb2hhbm5lcyBCZXJn IDxqb2hhbm5lcy5iZXJnQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zb2NrZXQuYyB8IDQ5ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA0 OSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L3NvY2tldC5jIGIvbmV0L3NvY2tldC5j CmluZGV4IDFhM2JhNDIzNDY2Mi4uOGUyOWFmNmQ2NzY4IDEwMDY0NAotLS0gYS9uZXQvc29ja2V0 LmMKKysrIGIvbmV0L3NvY2tldC5jCkBAIC0yOTYwLDYgKzI5NjAsNTMgQEAgc3RhdGljIGludCBj b21wYXRfaWZyX2RhdGFfaW9jdGwoc3RydWN0IG5ldCAqbmV0LCB1bnNpZ25lZCBpbnQgY21kLAog CXJldHVybiBkZXZfaW9jdGwobmV0LCBjbWQsICZpZnJlcSwgTlVMTCk7CiB9CiAKK3N0YXRpYyBp bnQgY29tcGF0X2lmcmVxX2lvY3RsKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNvY2tldCAqc29j aywKKwkJCSAgICAgIHVuc2lnbmVkIGludCBjbWQsCisJCQkgICAgICBzdHJ1Y3QgY29tcGF0X2lm cmVxIF9fdXNlciAqdWlmcjMyKQoreworCXN0cnVjdCBpZnJlcSBfX3VzZXIgKnVpZnI7CisJaW50 IGVycjsKKworCS8qIEhhbmRsZSB0aGUgZmFjdCB0aGF0IHdoaWxlIHN0cnVjdCBpZnJlcSBoYXMg dGhlIHNhbWUgKmxheW91dCogb24KKwkgKiAzMi82NCBmb3IgZXZlcnl0aGluZyBidXQgaWZyZXE6 OmlmcnVfaWZtYXAgYW5kIGlmcmVxOjppZnJ1X2RhdGEsCisJICogd2hpY2ggYXJlIGhhbmRsZWQg ZWxzZXdoZXJlLCBpdCBzdGlsbCBoYXMgZGlmZmVyZW50ICpzaXplKiBkdWUgdG8KKwkgKiBpZnJl cTo6aWZydV9pZm1hcCAod2hpY2ggaXMgMTYgYnl0ZXMgb24gMzIgYml0LCAyNCBieXRlcyBvbiA2 NC1iaXQsCisJICogcmVzdWx0aW5nIGluIHN0cnVjdCBpZnJlcSBiZWluZyAzMiBhbmQgNDAgYnl0 ZXMgcmVzcGVjdGl2ZWx5KS4KKwkgKiBBcyBhIHJlc3VsdCwgaWYgdGhlIHN0cnVjdCBoYXBwZW5z IHRvIGJlIGF0IHRoZSBlbmQgb2YgYSBwYWdlIGFuZAorCSAqIHRoZSBuZXh0IHBhZ2UgaXNuJ3Qg cmVhZGFibGUvd3JpdGFibGUsIHdlIGdldCBhIGZhdWx0LiBUbyBwcmV2ZW50CisJICogdGhhdCwg Y29weSBiYWNrIGFuZCBmb3J0aCB0byB0aGUgZnVsbCBzaXplLgorCSAqLworCisJdWlmciA9IGNv bXBhdF9hbGxvY191c2VyX3NwYWNlKHNpemVvZigqdWlmcikpOworCWlmIChjb3B5X2luX3VzZXIo dWlmciwgdWlmcjMyLCBzaXplb2YoKnVpZnIzMikpKQorCQlyZXR1cm4gLUVGQVVMVDsKKworCWVy ciA9IHNvY2tfZG9faW9jdGwobmV0LCBzb2NrLCBjbWQsICh1bnNpZ25lZCBsb25nKXVpZnIpOwor CisJaWYgKCFlcnIpIHsKKwkJc3dpdGNoIChjbWQpIHsKKwkJY2FzZSBTSU9DR0lGRkxBR1M6CisJ CWNhc2UgU0lPQ0dJRk1FVFJJQzoKKwkJY2FzZSBTSU9DR0lGTVRVOgorCQljYXNlIFNJT0NHSUZN RU06CisJCWNhc2UgU0lPQ0dJRkhXQUREUjoKKwkJY2FzZSBTSU9DR0lGSU5ERVg6CisJCWNhc2Ug U0lPQ0dJRkFERFI6CisJCWNhc2UgU0lPQ0dJRkJSREFERFI6CisJCWNhc2UgU0lPQ0dJRkRTVEFE RFI6CisJCWNhc2UgU0lPQ0dJRk5FVE1BU0s6CisJCWNhc2UgU0lPQ0dJRlBGTEFHUzoKKwkJY2Fz ZSBTSU9DR0lGVFhRTEVOOgorCQljYXNlIFNJT0NHTUlJUEhZOgorCQljYXNlIFNJT0NHTUlJUkVH OgorCQkJaWYgKGNvcHlfaW5fdXNlcih1aWZyMzIsIHVpZnIsIHNpemVvZigqdWlmcjMyKSkpCisJ CQkJZXJyID0gLUVGQVVMVDsKKwkJCWJyZWFrOworCQl9CisJfQorCXJldHVybiBlcnI7Cit9CisK IHN0YXRpYyBpbnQgY29tcGF0X3Npb2NfaWZtYXAoc3RydWN0IG5ldCAqbmV0LCB1bnNpZ25lZCBp bnQgY21kLAogCQkJc3RydWN0IGNvbXBhdF9pZnJlcSBfX3VzZXIgKnVpZnIzMikKIHsKQEAgLTMx NzksNiArMzIyNiw4IEBAIHN0YXRpYyBpbnQgY29tcGF0X3NvY2tfaW9jdGxfdHJhbnMoc3RydWN0 IGZpbGUgKmZpbGUsIHN0cnVjdCBzb2NrZXQgKnNvY2ssCiAJY2FzZSBTSU9DR01JSVBIWToKIAlj YXNlIFNJT0NHTUlJUkVHOgogCWNhc2UgU0lPQ1NNSUlSRUc6CisJCXJldHVybiBjb21wYXRfaWZy ZXFfaW9jdGwobmV0LCBzb2NrLCBjbWQsIGFyZ3ApOworCiAJY2FzZSBTSU9DU0FSUDoKIAljYXNl IFNJT0NHQVJQOgogCWNhc2UgU0lPQ0RBUlA6Ci0tIAoyLjIwLjEKCgpGcm9tIDZjN2JlMDMyNGZl M2YzOTkyMTMyNjRlN2UxNWQxMzlmZjUwYzc5NzIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEpvaGFubmVzIEJlcmcgPGpvaGFubmVzLmJlcmdAaW50ZWwuY29tPgpEYXRlOiBGcmksIDI1 IEphbiAyMDE5IDIyOjQzOjE5ICswMTAwClN1YmplY3Q6IFtQQVRDSCAxNS8yM10gbmV0OiBzb2Nr ZXQ6IGZpeCBTSU9DR0lGTkFNRSBpbiBjb21wYXQKClsgVXBzdHJlYW0gY29tbWl0IGM2YzlmZWUz NWRjMjczNjJiN2JhYzM0YjJmYzlmNWI4YWNlMmUyMmMgXQoKQXMgcmVwb3J0ZWQgYnkgUm9iZXJ0 IE8nQ2FsbGFoYW4gaW4KaHR0cHM6Ly9idWd6aWxsYS5rZXJuZWwub3JnL3Nob3dfYnVnLmNnaT9p ZD0yMDIyNzMKcmV2ZXJ0aW5nIHRoZSBwcmV2aW91cyBjaGFuZ2VzIGluIHRoaXMgYXJlYSBicm9r ZQp0aGUgU0lPQ0dJRk5BTUUgaW9jdGwgaW4gY29tcGF0IGFnYWluIChJJ2QgcHJldmlvdXNseQpm aXhlZCBpdCBhZnRlciBoaXMgcHJldmlvdXMgcmVwb3J0IG9mIGJyZWFrYWdlIGluCmh0dHBzOi8v YnVnemlsbGEua2VybmVsLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5NDY5KS4KClRoaXMgaXMgb2J2 aW91c2x5IGJlY2F1c2UgSSBmaXhlZCBTSU9DR0lGTkFNRSBtb3JlIG9yCmxlc3MgYnkgYWNjaWRl bnQuCgpGaXggaXQgZXhwbGljaXRseSBub3cgYnkgbWFraW5nIGl0IHBhc3MgdGhyb3VnaCB0aGUK cmVzdG9yZWQgY29tcGF0IHRyYW5zbGF0aW9uIGNvZGUuCgpDYzogc3RhYmxlQHZnZXIua2VybmVs Lm9yZwpGaXhlczogNGNmODA4ZTdhYzMyICgia2lsbCBkZXZfaWZuYW1lMzIoKSIpClJlcG9ydGVk LWJ5OiBSb2JlcnQgTydDYWxsYWhhbiA8cm9iZXJ0QG9jYWxsYWhhbi5vcmc+ClNpZ25lZC1vZmYt Ynk6IEpvaGFubmVzIEJlcmcgPGpvaGFubmVzLmJlcmdAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NvY2tldC5j IHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkK CmRpZmYgLS1naXQgYS9uZXQvc29ja2V0LmMgYi9uZXQvc29ja2V0LmMKaW5kZXggOGUyOWFmNmQ2 NzY4Li4yZDA2Mzg0YTJhN2YgMTAwNjQ0Ci0tLSBhL25ldC9zb2NrZXQuYworKysgYi9uZXQvc29j a2V0LmMKQEAgLTI5OTksNiArMjk5OSw3IEBAIHN0YXRpYyBpbnQgY29tcGF0X2lmcmVxX2lvY3Rs KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNvY2tldCAqc29jaywKIAkJY2FzZSBTSU9DR0lGVFhR TEVOOgogCQljYXNlIFNJT0NHTUlJUEhZOgogCQljYXNlIFNJT0NHTUlJUkVHOgorCQljYXNlIFNJ T0NHSUZOQU1FOgogCQkJaWYgKGNvcHlfaW5fdXNlcih1aWZyMzIsIHVpZnIsIHNpemVvZigqdWlm cjMyKSkpCiAJCQkJZXJyID0gLUVGQVVMVDsKIAkJCWJyZWFrOwpAQCAtMzIyMiw2ICszMjIzLDcg QEAgc3RhdGljIGludCBjb21wYXRfc29ja19pb2N0bF90cmFucyhzdHJ1Y3QgZmlsZSAqZmlsZSwg c3RydWN0IHNvY2tldCAqc29jaywKIAljYXNlIFNJT0NTSUZUWFFMRU46CiAJY2FzZSBTSU9DQlJB RERJRjoKIAljYXNlIFNJT0NCUkRFTElGOgorCWNhc2UgU0lPQ0dJRk5BTUU6CiAJY2FzZSBTSU9D U0lGTkFNRToKIAljYXNlIFNJT0NHTUlJUEhZOgogCWNhc2UgU0lPQ0dNSUlSRUc6CkBAIC0zMjM2 LDcgKzMyMzgsNiBAQCBzdGF0aWMgaW50IGNvbXBhdF9zb2NrX2lvY3RsX3RyYW5zKHN0cnVjdCBm aWxlICpmaWxlLCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLAogCWNhc2UgU0lPQ0JPTkRSRUxFQVNFOgog CWNhc2UgU0lPQ0JPTkRTRVRIV0FERFI6CiAJY2FzZSBTSU9DQk9ORENIQU5HRUFDVElWRToKLQlj YXNlIFNJT0NHSUZOQU1FOgogCQlyZXR1cm4gc29ja19kb19pb2N0bChuZXQsIHNvY2ssIGNtZCwg YXJnKTsKIAl9CiAKLS0gCjIuMjAuMQoKCkZyb20gZDdlNjI1MDg0Yjg2ZWVjNDE5OGJmNDNkNmY3 ZDY5MWRlZTM4NjAzMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9oYW5uZXMgQmVy ZyA8am9oYW5uZXMuYmVyZ0BpbnRlbC5jb20+CkRhdGU6IEZyaSwgMjUgSmFuIDIwMTkgMjI6NDM6 MjAgKzAxMDAKU3ViamVjdDogW1BBVENIIDE2LzIzXSBuZXQ6IHNvY2tldDogbWFrZSBib25kIGlv Y3RscyBnbyB0aHJvdWdoCiBjb21wYXRfaWZyZXFfaW9jdGwoKQoKWyBVcHN0cmVhbSBjb21taXQg OTg0MDYxMzNkZDljYjlmMTk1Njc2ZWFiNTQwYzI3MGRjZWNhODc5YSBdCgpTYW1lIHN0b3J5IGFz IGJlZm9yZSwgdGhlc2UgdXNlIHN0cnVjdCBpZnJlcSBhbmQgdGh1cyBuZWVkCnRvIGJlIHJlYWQg d2l0aCB0aGUgc2hvcnRlciB2ZXJzaW9uIHRvIG5vdCBjYXVzZSBmYXVsdHMuCgpDYzogc3RhYmxl QHZnZXIua2VybmVsLm9yZwpGaXhlczogZjkyZDRmYzk1MzQxICgia2lsbCBib25kX2lvY3RsKCki KQpTaWduZWQtb2ZmLWJ5OiBKb2hhbm5lcyBCZXJnIDxqb2hhbm5lcy5iZXJnQGludGVsLmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IG5ldC9zb2NrZXQuYyB8IDggKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMo KyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3NvY2tldC5jIGIvbmV0L3NvY2tl dC5jCmluZGV4IDJkMDYzODRhMmE3Zi4uOTNhNDVmMTVlZTQwIDEwMDY0NAotLS0gYS9uZXQvc29j a2V0LmMKKysrIGIvbmV0L3NvY2tldC5jCkBAIC0zMjI4LDE2ICszMjI4LDE2IEBAIHN0YXRpYyBp bnQgY29tcGF0X3NvY2tfaW9jdGxfdHJhbnMoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBzb2Nr ZXQgKnNvY2ssCiAJY2FzZSBTSU9DR01JSVBIWToKIAljYXNlIFNJT0NHTUlJUkVHOgogCWNhc2Ug U0lPQ1NNSUlSRUc6CisJY2FzZSBTSU9DQk9OREVOU0xBVkU6CisJY2FzZSBTSU9DQk9ORFJFTEVB U0U6CisJY2FzZSBTSU9DQk9ORFNFVEhXQUREUjoKKwljYXNlIFNJT0NCT05EQ0hBTkdFQUNUSVZF OgogCQlyZXR1cm4gY29tcGF0X2lmcmVxX2lvY3RsKG5ldCwgc29jaywgY21kLCBhcmdwKTsKIAog CWNhc2UgU0lPQ1NBUlA6CiAJY2FzZSBTSU9DR0FSUDoKIAljYXNlIFNJT0NEQVJQOgogCWNhc2Ug U0lPQ0FUTUFSSzoKLQljYXNlIFNJT0NCT05ERU5TTEFWRToKLQljYXNlIFNJT0NCT05EUkVMRUFT RToKLQljYXNlIFNJT0NCT05EU0VUSFdBRERSOgotCWNhc2UgU0lPQ0JPTkRDSEFOR0VBQ1RJVkU6 CiAJCXJldHVybiBzb2NrX2RvX2lvY3RsKG5ldCwgc29jaywgY21kLCBhcmcpOwogCX0KIAotLSAK Mi4yMC4xCgoKRnJvbSBkN2U1NTg1Mjg0NmE0ZGEyMTlkZjI2ZDA0ZTNkOGI2NzhiMzkyMTc4IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIYW5nYmluIExpdSA8bGl1aGFuZ2JpbkBnbWFp bC5jb20+CkRhdGU6IFRodSwgNyBGZWIgMjAxOSAxODozNjoxMCArMDgwMApTdWJqZWN0OiBbUEFU Q0ggMTcvMjNdIGdlbmV2ZTogc2hvdWxkIG5vdCBjYWxsIHJ0Nl9sb29rdXAoKSB3aGVuIGlwdjYg d2FzCiBkaXNhYmxlZAoKWyBVcHN0cmVhbSBjb21taXQgYzBhNDdlNDRjMDk4MGIzYjIzZWUzMWZh NzkzNmQ3MGVhNWRjZTQ5MSBdCgpXaGVuIHdlIGFkZCBhIG5ldyBHRU5FVkUgZGV2aWNlIHdpdGgg SVB2NiByZW1vdGUsIGNoZWNraW5nIG9ubHkgZm9yCklTX0VOQUJMRUQoQ09ORklHX0lQVjYpIGlz IG5vdCBlbm91Z2ggYXMgd2UgbWF5IGRpc2FibGUgSVB2NiBpbiB0aGUKa2VybmVsIGNvbW1hbmQg bGluZSAoaXB2Ni5kaXNhYmxlPTEpLCBhbmQgY2FsbGluZyBydDZfbG9va3VwKCkgd291bGQKY2F1 c2UgYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UuCgp2MjoKLSBkb24ndCBtaXggZGVjbGFyYXRp b25zIGFuZCBjb2RlIChyZXBvcnRlZCBieSBTdGVmYW5vIEJyaXZpbywgRXJpYyBEdW1hemV0KQot IHRoZXJlJ3Mgbm8gbmVlZCB0byB1c2UgaW42X2Rldl9nZXQoKSBhcyB3ZSBvbmx5IG5lZWQgdG8g Y2hlY2sgdGhhdAogIGlkZXYgZXhpc3RzIChyZXBvcnRlZCBieSBEYXZpZCBBaGVybikuIFRoaXMg aXMgdW5kZXIgUlROTCwgc28gd2UgY2FuCiAgc2ltcGx5IHVzZSBfX2luNl9kZXZfZ2V0KCkgaW5z dGVhZCAoU3RlZmFubywgRXJpYykuCgpSZXBvcnRlZC1ieTogSmlhbmxpbiBTaGkgPGppc2hpQHJl ZGhhdC5jb20+CkZpeGVzOiBjNDBlODlmZDM1OGU5ICgiZ2VuZXZlOiBjb25maWd1cmUgTVRVIGJh c2VkIG9uIGEgbG93ZXIgZGV2aWNlIikKQ2M6IEFsZXhleSBLb2RhbmV2IDxhbGV4ZXkua29kYW5l dkBvcmFjbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBIYW5nYmluIExpdSA8bGl1aGFuZ2JpbkBnbWFp bC5jb20+ClJldmlld2VkLWJ5OiBTdGVmYW5vIEJyaXZpbyA8c2JyaXZpb0ByZWRoYXQuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog ZHJpdmVycy9uZXQvZ2VuZXZlLmMgfCAxMCArKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgNyBp bnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2dl bmV2ZS5jIGIvZHJpdmVycy9uZXQvZ2VuZXZlLmMKaW5kZXggYTBjZDFjNDFjZjVmLi4yZTZlMTFk OGNmNWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2dlbmV2ZS5jCisrKyBiL2RyaXZlcnMvbmV0 L2dlbmV2ZS5jCkBAIC0xNDI2LDkgKzE0MjYsMTMgQEAgc3RhdGljIHZvaWQgZ2VuZXZlX2xpbmtf Y29uZmlnKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJfQogI2lmIElTX0VOQUJMRUQoQ09ORklH X0lQVjYpCiAJY2FzZSBBRl9JTkVUNjogewotCQlzdHJ1Y3QgcnQ2X2luZm8gKnJ0ID0gcnQ2X2xv b2t1cChnZW5ldmUtPm5ldCwKLQkJCQkJCSAmaW5mby0+a2V5LnUuaXB2Ni5kc3QsIE5VTEwsIDAs Ci0JCQkJCQkgTlVMTCwgMCk7CisJCXN0cnVjdCBydDZfaW5mbyAqcnQ7CisKKwkJaWYgKCFfX2lu Nl9kZXZfZ2V0KGRldikpCisJCQlicmVhazsKKworCQlydCA9IHJ0Nl9sb29rdXAoZ2VuZXZlLT5u ZXQsICZpbmZvLT5rZXkudS5pcHY2LmRzdCwgTlVMTCwgMCwKKwkJCQlOVUxMLCAwKTsKIAogCQlp ZiAocnQgJiYgcnQtPmRzdC5kZXYpCiAJCQlsZGV2X210dSA9IHJ0LT5kc3QuZGV2LT5tdHUgLSBH RU5FVkVfSVBWNl9ITEVOOwotLSAKMi4yMC4xCgoKRnJvbSAxN2U2NTM1YzI5ZTQ5MWI2OTE3NDYy MDVkOTM3YTUwZmJiYWIwODBlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIYW5nYmlu IExpdSA8bGl1aGFuZ2JpbkBnbWFpbC5jb20+CkRhdGU6IFRodSwgNyBGZWIgMjAxOSAxODozNjox MSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTgvMjNdIHNpdDogY2hlY2sgaWYgSVB2NiBlbmFibGVk IGJlZm9yZSBjYWxsaW5nCiBpcDZfZXJyX2dlbl9pY21wdjZfdW5yZWFjaCgpCgpbIFVwc3RyZWFt IGNvbW1pdCAxNzM2NTZhY2NhZjU4MzY5OGJhYzNmOWUyNjk4ODRiYTYwZDUxZWY0IF0KCklmIHdl IGRpc2FibGVkIElQdjYgZnJvbSB0aGUga2VybmVsIGNvbW1hbmQgbGluZSAoaXB2Ni5kaXNhYmxl PTEpLCB3ZSBzaG91bGQKbm90IGNhbGwgaXA2X2Vycl9nZW5faWNtcHY2X3VucmVhY2goKS4gVGhp czoKCiAgaXAgbGluayBhZGQgc2l0MSB0eXBlIHNpdCBsb2NhbCAxOTIuMC4yLjEgcmVtb3RlIDE5 Mi4wLjIuMiB0dGwgMQogIGlwIGxpbmsgc2V0IHNpdDEgdXAKICBpcCBhZGRyIGFkZCAxOTguNTEu MTAwLjEvMjQgZGV2IHNpdDEKICBwaW5nIDE5OC41MS4xMDAuMgoKaWYgSVB2NiBpcyBkaXNhYmxl ZCBhdCBib290IHRpbWUsIHdpbGwgY3Jhc2ggdGhlIGtlcm5lbC4KCnYyOiB0aGVyZSdzIG5vIG5l ZWQgdG8gdXNlIGluNl9kZXZfZ2V0KCksIHVzZSBfX2luNl9kZXZfZ2V0KCkgaW5zdGVhZCwKICAg IGFzIHdlIG9ubHkgbmVlZCB0byBjaGVjayB0aGF0IGlkZXYgZXhpc3RzIGFuZCB3ZSBhcmUgdW5k ZXIKICAgIHJjdV9yZWFkX2xvY2soKSAoZnJvbSBuZXRpZl9yZWNlaXZlX3NrYl9pbnRlcm5hbCgp KS4KClJlcG9ydGVkLWJ5OiBKaWFubGluIFNoaSA8amlzaGlAcmVkaGF0LmNvbT4KRml4ZXM6IGNh MTVhMDc4YmQ5MCAoInNpdDogZ2VuZXJhdGUgaWNtcHY2IGVycm9yIHdoZW4gcmVjZWl2aW5nIGlj bXB2NCBlcnJvciIpCkNjOiBPdXNzYW1hIEdob3JiZWwgPGdob3JiZWxAcGl2YXNvZnR3YXJlLmNv bT4KU2lnbmVkLW9mZi1ieTogSGFuZ2JpbiBMaXUgPGxpdWhhbmdiaW5AZ21haWwuY29tPgpSZXZp ZXdlZC1ieTogU3RlZmFubyBCcml2aW8gPHNicml2aW9AcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY2L3Np dC5jIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o LSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9zaXQuYyBiL25ldC9pcHY2L3NpdC5jCmluZGV4IDFl MDMzMDVjMDU0OS4uZThhMWRhYmVmODAzIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9zaXQuYworKysg Yi9uZXQvaXB2Ni9zaXQuYwpAQCAtNTQ2LDcgKzU0Niw4IEBAIHN0YXRpYyBpbnQgaXBpcDZfZXJy KHN0cnVjdCBza19idWZmICpza2IsIHUzMiBpbmZvKQogCX0KIAogCWVyciA9IDA7Ci0JaWYgKCFp cDZfZXJyX2dlbl9pY21wdjZfdW5yZWFjaChza2IsIGlwaC0+aWhsICogNCwgdHlwZSwgZGF0YV9s ZW4pKQorCWlmIChfX2luNl9kZXZfZ2V0KHNrYi0+ZGV2KSAmJgorCSAgICAhaXA2X2Vycl9nZW5f aWNtcHY2X3VucmVhY2goc2tiLCBpcGgtPmlobCAqIDQsIHR5cGUsIGRhdGFfbGVuKSkKIAkJZ290 byBvdXQ7CiAKIAlpZiAodC0+cGFybXMuaXBoLmRhZGRyID09IDApCi0tIAoyLjIwLjEKCgpGcm9t IDMzMmMzMDhhZDgzMjY5Y2JmMTViYzhmNjZmODA3NzkxNmNlYWRjYzMgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpEYXRl OiBNb24sIDExIEZlYiAyMDE5IDEzOjA2OjE0IC0wODAwClN1YmplY3Q6IFtQQVRDSCAxOS8yM10g bmV0X3NjaGVkOiBmaXggYSByYWNlIGNvbmRpdGlvbiBpbiB0Y2luZGV4X2Rlc3Ryb3koKQoKWyBV cHN0cmVhbSBjb21taXQgODAxNWQ5M2ViZDI3NDg0NDE4ZDQ5NTIyODRmZDAyMTcyZmE0YjBiMiBd Cgp0Y2luZGV4X2Rlc3Ryb3koKSBpbnZva2VzIHRjaW5kZXhfZGVzdHJveV9lbGVtZW50KCkgdmlh CmEgd2Fsa2VyIHRvIGRlbGV0ZSBlYWNoIGZpbHRlciByZXN1bHQgaW4gaXRzIHBlcmZlY3QgaGFz aAp0YWJsZSwgYW5kIHRjaW5kZXhfZGVzdHJveV9lbGVtZW50KCkgY2FsbHMgdGNpbmRleF9kZWxl dGUoKQp3aGljaCBzY2hlZHVsZXMgdGNmIFJDVSB3b3JrcyB0byBkbyB0aGUgZmluYWwgZGVsZXRp b24gd29yay4KVW5mb3J0dW5hdGVseSB0aGlzIHJhY2VzIHdpdGggdGhlIFJDVSBjYWxsYmFjawpf X3RjaW5kZXhfZGVzdHJveSgpLCB3aGljaCBjb3VsZCBsZWFkIHRvIHVzZS1hZnRlci1mcmVlIGFz CnJlcG9ydGVkIGJ5IEFkcmlhbi4KCkZpeCB0aGlzIGJ5IG1pZ3JhdGluZyB0aGlzIFJDVSBjYWxs YmFjayB0byB0Y2YgUkNVIHdvcmsgdG9vLAphcyB0aGF0IHdvcmtxdWV1ZSBpcyBvcmRlcmVkLCB3 ZSB3aWxsIG5vdCBoYXZlIHVzZS1hZnRlci1mcmVlLgoKTm90ZSwgd2UgZG9uJ3QgbmVlZCB0byBo b2xkIG5ldG5zIHJlZmNudCBiZWNhdXNlIHdlIGRvbid0IGNhbGwKdGNmX2V4dHNfZGVzdHJveSgp IGhlcmUuCgpGaXhlczogMjdjZTRmMDVlMmFiICgibmV0X3NjaGVkOiB1c2UgdGNmX3F1ZXVlX3dv cmsoKSBpbiB0Y2luZGV4IGZpbHRlciIpClJlcG9ydGVkLWJ5OiBBZHJpYW4gPGJ1Z3NAYWJ0ZWxl Y29tLnJvPgpDYzogQmVuIEh1dGNoaW5ncyA8YmVuQGRlY2FkZW50Lm9yZy51az4KQ2M6IEphbWFs IEhhZGkgU2FsaW0gPGpoc0Btb2phdGF0dS5jb20+CkNjOiBKaXJpIFBpcmtvIDxqaXJpQHJlc251 bGxpLnVzPgpTaWduZWQtb2ZmLWJ5OiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIG5ldC9zY2hlZC9jbHNfdGNpbmRleC5jIHwgMTggKysrKysrKysrKystLS0tLS0tCiAxIGZp bGUgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9uZXQvc2NoZWQvY2xzX3RjaW5kZXguYyBiL25ldC9zY2hlZC9jbHNfdGNpbmRleC5jCmluZGV4 IDljY2M5M2YyNTdkYi4uNzliNTJhNjM3ZGRhIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvY2xzX3Rj aW5kZXguYworKysgYi9uZXQvc2NoZWQvY2xzX3RjaW5kZXguYwpAQCAtNDgsNyArNDgsNyBAQCBz dHJ1Y3QgdGNpbmRleF9kYXRhIHsKIAl1MzIgaGFzaDsJCS8qIGhhc2ggdGFibGUgc2l6ZTsgMCBp ZiB1bmRlZmluZWQgKi8KIAl1MzIgYWxsb2NfaGFzaDsJCS8qIGFsbG9jYXRlZCBzaXplICovCiAJ dTMyIGZhbGxfdGhyb3VnaDsJLyogMDogb25seSBjbGFzc2lmeSBpZiBleHBsaWNpdCBtYXRjaCAq LwotCXN0cnVjdCByY3VfaGVhZCByY3U7CisJc3RydWN0IHJjdV93b3JrIHJ3b3JrOwogfTsKIAog c3RhdGljIGlubGluZSBpbnQgdGNpbmRleF9maWx0ZXJfaXNfc2V0KHN0cnVjdCB0Y2luZGV4X2Zp bHRlcl9yZXN1bHQgKnIpCkBAIC0yMjksOSArMjI5LDExIEBAIHN0YXRpYyBpbnQgdGNpbmRleF9k ZXN0cm95X2VsZW1lbnQoc3RydWN0IHRjZl9wcm90byAqdHAsCiAJcmV0dXJuIHRjaW5kZXhfZGVs ZXRlKHRwLCBhcmcsICZsYXN0LCBOVUxMKTsKIH0KIAotc3RhdGljIHZvaWQgX190Y2luZGV4X2Rl c3Ryb3koc3RydWN0IHJjdV9oZWFkICpoZWFkKQorc3RhdGljIHZvaWQgdGNpbmRleF9kZXN0cm95 X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogewotCXN0cnVjdCB0Y2luZGV4X2RhdGEg KnAgPSBjb250YWluZXJfb2YoaGVhZCwgc3RydWN0IHRjaW5kZXhfZGF0YSwgcmN1KTsKKwlzdHJ1 Y3QgdGNpbmRleF9kYXRhICpwID0gY29udGFpbmVyX29mKHRvX3JjdV93b3JrKHdvcmspLAorCQkJ CQkgICAgICBzdHJ1Y3QgdGNpbmRleF9kYXRhLAorCQkJCQkgICAgICByd29yayk7CiAKIAlrZnJl ZShwLT5wZXJmZWN0KTsKIAlrZnJlZShwLT5oKTsKQEAgLTI1OCw5ICsyNjAsMTEgQEAgc3RhdGlj IGludCB0Y2luZGV4X2ZpbHRlcl9yZXN1bHRfaW5pdChzdHJ1Y3QgdGNpbmRleF9maWx0ZXJfcmVz dWx0ICpyKQogCXJldHVybiB0Y2ZfZXh0c19pbml0KCZyLT5leHRzLCBUQ0FfVENJTkRFWF9BQ1Qs IFRDQV9UQ0lOREVYX1BPTElDRSk7CiB9CiAKLXN0YXRpYyB2b2lkIF9fdGNpbmRleF9wYXJ0aWFs X2Rlc3Ryb3koc3RydWN0IHJjdV9oZWFkICpoZWFkKQorc3RhdGljIHZvaWQgdGNpbmRleF9wYXJ0 aWFsX2Rlc3Ryb3lfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiB7Ci0Jc3RydWN0IHRj aW5kZXhfZGF0YSAqcCA9IGNvbnRhaW5lcl9vZihoZWFkLCBzdHJ1Y3QgdGNpbmRleF9kYXRhLCBy Y3UpOworCXN0cnVjdCB0Y2luZGV4X2RhdGEgKnAgPSBjb250YWluZXJfb2YodG9fcmN1X3dvcmso d29yayksCisJCQkJCSAgICAgIHN0cnVjdCB0Y2luZGV4X2RhdGEsCisJCQkJCSAgICAgIHJ3b3Jr KTsKIAogCWtmcmVlKHAtPnBlcmZlY3QpOwogCWtmcmVlKHApOwpAQCAtNDc4LDcgKzQ4Miw3IEBA IHRjaW5kZXhfc2V0X3Bhcm1zKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHRjZl9wcm90byAqdHAs IHVuc2lnbmVkIGxvbmcgYmFzZSwKIAl9CiAKIAlpZiAob2xkcCkKLQkJY2FsbF9yY3UoJm9sZHAt PnJjdSwgX190Y2luZGV4X3BhcnRpYWxfZGVzdHJveSk7CisJCXRjZl9xdWV1ZV93b3JrKCZvbGRw LT5yd29yaywgdGNpbmRleF9wYXJ0aWFsX2Rlc3Ryb3lfd29yayk7CiAJcmV0dXJuIDA7CiAKIGVy cm91dF9hbGxvYzoKQEAgLTU3MCw3ICs1NzQsNyBAQCBzdGF0aWMgdm9pZCB0Y2luZGV4X2Rlc3Ry b3koc3RydWN0IHRjZl9wcm90byAqdHAsCiAJd2Fsa2VyLmZuID0gdGNpbmRleF9kZXN0cm95X2Vs ZW1lbnQ7CiAJdGNpbmRleF93YWxrKHRwLCAmd2Fsa2VyKTsKIAotCWNhbGxfcmN1KCZwLT5yY3Us IF9fdGNpbmRleF9kZXN0cm95KTsKKwl0Y2ZfcXVldWVfd29yaygmcC0+cndvcmssIHRjaW5kZXhf ZGVzdHJveV93b3JrKTsKIH0KIAogCi0tIAoyLjIwLjEKCgpGcm9tIDc3YmI3ODE2N2EzOGE4ZmYz N2RiZTAzYWVkM2U4YmNhMDhkOGQzNGIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENv bmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpEYXRlOiBNb24sIDExIEZlYiAyMDE5 IDEzOjA2OjE1IC0wODAwClN1YmplY3Q6IFtQQVRDSCAyMC8yM10gbmV0X3NjaGVkOiBmaXggYSBt ZW1vcnkgbGVhayBpbiBjbHNfdGNpbmRleAoKWyBVcHN0cmVhbSBjb21taXQgMDMzYjIyOGU3ZjI2 YjI5YWUzN2Y4YmZhMWJjNmIyMDlhNTM2NWU5ZiBdCgpXaGVuIHRjaW5kZXhfZGVzdHJveSgpIGRl c3Ryb3lzIGFsbCB0aGUgZmlsdGVyIHJlc3VsdHMgaW4KdGhlIHBlcmZlY3QgaGFzaCB0YWJsZSwg aXQgaW52b2tlcyB0aGUgd2Fsa2VyIHRvIGRlbGV0ZQplYWNoIG9mIHRoZW0uIEhvd2V2ZXIsIHJl c3VsdHMgd2l0aCBjbGFzcz09MCBhcmUgc2tpcHBlZAppbiBlaXRoZXIgdGNpbmRleF93YWxrKCkg b3IgdGNpbmRleF9kZWxldGUoKSwgd2hpY2ggY2F1c2VzCmEgbWVtb3J5IGxlYWsgcmVwb3J0ZWQg Ynkga21lbWxlYWsuCgpUaGlzIHBhdGNoIGZpeGVzIGl0IGJ5IHNraXBwaW5nIHRoZSB3YWxrZXIg YW5kIGRpcmVjdGx5CmRlbGV0aW5nIHRoZXNlIGZpbHRlciByZXN1bHRzIHNvIHdlIGRvbid0IG1p c3MgYW55IGZpbHRlcgpyZXN1bHQuCgpBcyBhIHJlc3VsdCBvZiB0aGlzIGNoYW5nZSwgd2UgaGF2 ZSB0byBpbml0aWFsaXplIGV4dHMtPm5ldApwcm9wZXJseSBpbiB0Y2luZGV4X2FsbG9jX3BlcmZl Y3RfaGFzaCgpLiBGb3IgbmV0LW5leHQsIHdlCm5lZWQgdG8gY29uc2lkZXIgd2hldGhlciB3ZSBz aG91bGQgaW5pdGlhbGl6ZSAtPm5ldCBpbgp0Y2ZfZXh0c19pbml0KCkgaW5zdGVhZCwgYmVmb3Jl IHRoYXQganVzdCBkaXJlY3RseSB0ZXN0CkNPTkZJR19ORVRfQ0xTX0FDVD15LgoKQ2M6IEphbWFs IEhhZGkgU2FsaW0gPGpoc0Btb2phdGF0dS5jb20+CkNjOiBKaXJpIFBpcmtvIDxqaXJpQHJlc251 bGxpLnVzPgpTaWduZWQtb2ZmLWJ5OiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIG5ldC9zY2hlZC9jbHNfdGNpbmRleC5jIHwgNDYgKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzMCBpbnNlcnRpb25zKCspLCAxNiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvY2xzX3RjaW5kZXguYyBiL25ldC9z Y2hlZC9jbHNfdGNpbmRleC5jCmluZGV4IDc5YjUyYTYzN2RkYS4uNzBlYTViMWE3ODg5IDEwMDY0 NAotLS0gYS9uZXQvc2NoZWQvY2xzX3RjaW5kZXguYworKysgYi9uZXQvc2NoZWQvY2xzX3RjaW5k ZXguYwpAQCAtMjIxLDE0ICsyMjEsNiBAQCBzdGF0aWMgaW50IHRjaW5kZXhfZGVsZXRlKHN0cnVj dCB0Y2ZfcHJvdG8gKnRwLCB2b2lkICphcmcsIGJvb2wgKmxhc3QsCiAJcmV0dXJuIDA7CiB9CiAK LXN0YXRpYyBpbnQgdGNpbmRleF9kZXN0cm95X2VsZW1lbnQoc3RydWN0IHRjZl9wcm90byAqdHAs Ci0JCQkJICAgdm9pZCAqYXJnLCBzdHJ1Y3QgdGNmX3dhbGtlciAqd2Fsa2VyKQotewotCWJvb2wg bGFzdDsKLQotCXJldHVybiB0Y2luZGV4X2RlbGV0ZSh0cCwgYXJnLCAmbGFzdCwgTlVMTCk7Ci19 Ci0KIHN0YXRpYyB2b2lkIHRjaW5kZXhfZGVzdHJveV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAq d29yaykKIHsKIAlzdHJ1Y3QgdGNpbmRleF9kYXRhICpwID0gY29udGFpbmVyX29mKHRvX3JjdV93 b3JrKHdvcmspLApAQCAtMjc5LDcgKzI3MSw3IEBAIHN0YXRpYyB2b2lkIHRjaW5kZXhfZnJlZV9w ZXJmZWN0X2hhc2goc3RydWN0IHRjaW5kZXhfZGF0YSAqY3ApCiAJa2ZyZWUoY3AtPnBlcmZlY3Qp OwogfQogCi1zdGF0aWMgaW50IHRjaW5kZXhfYWxsb2NfcGVyZmVjdF9oYXNoKHN0cnVjdCB0Y2lu ZGV4X2RhdGEgKmNwKQorc3RhdGljIGludCB0Y2luZGV4X2FsbG9jX3BlcmZlY3RfaGFzaChzdHJ1 Y3QgbmV0ICpuZXQsIHN0cnVjdCB0Y2luZGV4X2RhdGEgKmNwKQogewogCWludCBpLCBlcnIgPSAw OwogCkBAIC0yOTMsNiArMjg1LDkgQEAgc3RhdGljIGludCB0Y2luZGV4X2FsbG9jX3BlcmZlY3Rf aGFzaChzdHJ1Y3QgdGNpbmRleF9kYXRhICpjcCkKIAkJCQkgICAgVENBX1RDSU5ERVhfQUNULCBU Q0FfVENJTkRFWF9QT0xJQ0UpOwogCQlpZiAoZXJyIDwgMCkKIAkJCWdvdG8gZXJyb3V0OworI2lm ZGVmIENPTkZJR19ORVRfQ0xTX0FDVAorCQljcC0+cGVyZmVjdFtpXS5leHRzLm5ldCA9IG5ldDsK KyNlbmRpZgogCX0KIAogCXJldHVybiAwOwpAQCAtMzQxLDcgKzMzNiw3IEBAIHRjaW5kZXhfc2V0 X3Bhcm1zKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHRjZl9wcm90byAqdHAsIHVuc2lnbmVkIGxv bmcgYmFzZSwKIAlpZiAocC0+cGVyZmVjdCkgewogCQlpbnQgaTsKIAotCQlpZiAodGNpbmRleF9h bGxvY19wZXJmZWN0X2hhc2goY3ApIDwgMCkKKwkJaWYgKHRjaW5kZXhfYWxsb2NfcGVyZmVjdF9o YXNoKG5ldCwgY3ApIDwgMCkKIAkJCWdvdG8gZXJyb3V0OwogCQlmb3IgKGkgPSAwOyBpIDwgY3At Pmhhc2g7IGkrKykKIAkJCWNwLT5wZXJmZWN0W2ldLnJlcyA9IHAtPnBlcmZlY3RbaV0ucmVzOwpA QCAtNDEwLDcgKzQwNSw3IEBAIHRjaW5kZXhfc2V0X3Bhcm1zKHN0cnVjdCBuZXQgKm5ldCwgc3Ry dWN0IHRjZl9wcm90byAqdHAsIHVuc2lnbmVkIGxvbmcgYmFzZSwKIAllcnIgPSAtRU5PTUVNOwog CWlmICghY3AtPnBlcmZlY3QgJiYgIWNwLT5oKSB7CiAJCWlmICh2YWxpZF9wZXJmZWN0X2hhc2go Y3ApKSB7Ci0JCQlpZiAodGNpbmRleF9hbGxvY19wZXJmZWN0X2hhc2goY3ApIDwgMCkKKwkJCWlm ICh0Y2luZGV4X2FsbG9jX3BlcmZlY3RfaGFzaChuZXQsIGNwKSA8IDApCiAJCQkJZ290byBlcnJv dXRfYWxsb2M7CiAJCQliYWxsb2MgPSAxOwogCQl9IGVsc2UgewpAQCAtNTY2LDEzICs1NjEsMzIg QEAgc3RhdGljIHZvaWQgdGNpbmRleF9kZXN0cm95KHN0cnVjdCB0Y2ZfcHJvdG8gKnRwLAogCQkJ ICAgIHN0cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjaykKIHsKIAlzdHJ1Y3QgdGNpbmRleF9k YXRhICpwID0gcnRubF9kZXJlZmVyZW5jZSh0cC0+cm9vdCk7Ci0Jc3RydWN0IHRjZl93YWxrZXIg d2Fsa2VyOworCWludCBpOwogCiAJcHJfZGVidWcoInRjaW5kZXhfZGVzdHJveSh0cCAlcCkscCAl cFxuIiwgdHAsIHApOwotCXdhbGtlci5jb3VudCA9IDA7Ci0Jd2Fsa2VyLnNraXAgPSAwOwotCXdh bGtlci5mbiA9IHRjaW5kZXhfZGVzdHJveV9lbGVtZW50OwotCXRjaW5kZXhfd2Fsayh0cCwgJndh bGtlcik7CisKKwlpZiAocC0+cGVyZmVjdCkgeworCQlmb3IgKGkgPSAwOyBpIDwgcC0+aGFzaDsg aSsrKSB7CisJCQlzdHJ1Y3QgdGNpbmRleF9maWx0ZXJfcmVzdWx0ICpyID0gcC0+cGVyZmVjdCAr IGk7CisKKwkJCXRjZl91bmJpbmRfZmlsdGVyKHRwLCAmci0+cmVzKTsKKwkJCWlmICh0Y2ZfZXh0 c19nZXRfbmV0KCZyLT5leHRzKSkKKwkJCQl0Y2ZfcXVldWVfd29yaygmci0+cndvcmssCisJCQkJ CSAgICAgICB0Y2luZGV4X2Rlc3Ryb3lfcmV4dHNfd29yayk7CisJCQllbHNlCisJCQkJX190Y2lu ZGV4X2Rlc3Ryb3lfcmV4dHMocik7CisJCX0KKwl9CisKKwlmb3IgKGkgPSAwOyBwLT5oICYmIGkg PCBwLT5oYXNoOyBpKyspIHsKKwkJc3RydWN0IHRjaW5kZXhfZmlsdGVyICpmLCAqbmV4dDsKKwkJ Ym9vbCBsYXN0OworCisJCWZvciAoZiA9IHJ0bmxfZGVyZWZlcmVuY2UocC0+aFtpXSk7IGY7IGYg PSBuZXh0KSB7CisJCQluZXh0ID0gcnRubF9kZXJlZmVyZW5jZShmLT5uZXh0KTsKKwkJCXRjaW5k ZXhfZGVsZXRlKHRwLCAmZi0+cmVzdWx0LCAmbGFzdCwgTlVMTCk7CisJCX0KKwl9CiAKIAl0Y2Zf cXVldWVfd29yaygmcC0+cndvcmssIHRjaW5kZXhfZGVzdHJveV93b3JrKTsKIH0KLS0gCjIuMjAu MQoKCkZyb20gZTEyMGU0YWFlOTQzOGIyNDRhNjA5MjA3YjM4NWZhNmZhMWY3ODQwZCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5j b20+CkRhdGU6IE1vbiwgMTEgRmViIDIwMTkgMTM6MDY6MTYgLTA4MDAKU3ViamVjdDogW1BBVENI IDIxLzIzXSBuZXRfc2NoZWQ6IGZpeCB0d28gbW9yZSBtZW1vcnkgbGVha3MgaW4gY2xzX3RjaW5k ZXgKClsgVXBzdHJlYW0gY29tbWl0IDFkYjgxN2U3NWY1YjkzODdiOGRiMTFlMzdkNWYwNjI0ZWI5 MjIzZTAgXQoKc3RydWN0IHRjaW5kZXhfZmlsdGVyX3Jlc3VsdCBjb250YWlucyB0d28gcGFydHM6 CnN0cnVjdCB0Y2ZfZXh0cyBhbmQgc3RydWN0IHRjZl9yZXN1bHQuCgpGb3IgdGhlIGxvY2FsIHZh cmlhYmxlICdjcicsIGl0cyBleHRzIHBhcnQgaXMgbmV2ZXIgdXNlZCBidXQKaW5pdGlhbGl6ZWQg d2l0aG91dCBiZWluZyByZWxlYXNlZCBwcm9wZXJseSBvbiBzdWNjZXNzIHBhdGguIFNvCmp1c3Qg Y29tcGxldGVseSByZW1vdmUgdGhlIGV4dHMgcGFydCB0byBmaXggdGhpcyBsZWFrLgoKRm9yIHRo ZSBsb2NhbCB2YXJpYWJsZSAnbmV3X2ZpbHRlcl9yZXN1bHQnLCBpdCBpcyBuZXZlciBwcm9wZXJs eQpyZWxlYXNlZCBpZiBub3QgdXNlZCBieSAncicgb24gc3VjY2VzcyBwYXRoLgoKQ2M6IEphbWFs IEhhZGkgU2FsaW0gPGpoc0Btb2phdGF0dS5jb20+CkNjOiBKaXJpIFBpcmtvIDxqaXJpQHJlc251 bGxpLnVzPgpTaWduZWQtb2ZmLWJ5OiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIG5ldC9zY2hlZC9jbHNfdGNpbmRleC5jIHwgMTYgKysrKysrKy0tLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9u ZXQvc2NoZWQvY2xzX3RjaW5kZXguYyBiL25ldC9zY2hlZC9jbHNfdGNpbmRleC5jCmluZGV4IDcw ZWE1YjFhNzg4OS4uMzhiYjg4MmJiOTU4IDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvY2xzX3RjaW5k ZXguYworKysgYi9uZXQvc2NoZWQvY2xzX3RjaW5kZXguYwpAQCAtMzA0LDkgKzMwNCw5IEBAIHRj aW5kZXhfc2V0X3Bhcm1zKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHRjZl9wcm90byAqdHAsIHVu c2lnbmVkIGxvbmcgYmFzZSwKIAkJICBzdHJ1Y3QgbmxhdHRyICplc3QsIGJvb2wgb3ZyLCBzdHJ1 Y3QgbmV0bGlua19leHRfYWNrICpleHRhY2spCiB7CiAJc3RydWN0IHRjaW5kZXhfZmlsdGVyX3Jl c3VsdCBuZXdfZmlsdGVyX3Jlc3VsdCwgKm9sZF9yID0gcjsKLQlzdHJ1Y3QgdGNpbmRleF9maWx0 ZXJfcmVzdWx0IGNyOwogCXN0cnVjdCB0Y2luZGV4X2RhdGEgKmNwID0gTlVMTCwgKm9sZHA7CiAJ c3RydWN0IHRjaW5kZXhfZmlsdGVyICpmID0gTlVMTDsgLyogbWFrZSBnY2MgYmVoYXZlICovCisJ c3RydWN0IHRjZl9yZXN1bHQgY3IgPSB7fTsKIAlpbnQgZXJyLCBiYWxsb2MgPSAwOwogCXN0cnVj dCB0Y2ZfZXh0cyBlOwogCkBAIC0zNDUsMTMgKzM0NSwxMCBAQCB0Y2luZGV4X3NldF9wYXJtcyhz dHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCB0Y2ZfcHJvdG8gKnRwLCB1bnNpZ25lZCBsb25nIGJhc2Us CiAJY3AtPmggPSBwLT5oOwogCiAJZXJyID0gdGNpbmRleF9maWx0ZXJfcmVzdWx0X2luaXQoJm5l d19maWx0ZXJfcmVzdWx0KTsKLQlpZiAoZXJyIDwgMCkKLQkJZ290byBlcnJvdXQxOwotCWVyciA9 IHRjaW5kZXhfZmlsdGVyX3Jlc3VsdF9pbml0KCZjcik7CiAJaWYgKGVyciA8IDApCiAJCWdvdG8g ZXJyb3V0MTsKIAlpZiAob2xkX3IpCi0JCWNyLnJlcyA9IHItPnJlczsKKwkJY3IgPSByLT5yZXM7 CiAKIAlpZiAodGJbVENBX1RDSU5ERVhfSEFTSF0pCiAJCWNwLT5oYXNoID0gbmxhX2dldF91MzIo dGJbVENBX1RDSU5ERVhfSEFTSF0pOwpAQCAtNDQyLDggKzQzOSw4IEBAIHRjaW5kZXhfc2V0X3Bh cm1zKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHRjZl9wcm90byAqdHAsIHVuc2lnbmVkIGxvbmcg YmFzZSwKIAl9CiAKIAlpZiAodGJbVENBX1RDSU5ERVhfQ0xBU1NJRF0pIHsKLQkJY3IucmVzLmNs YXNzaWQgPSBubGFfZ2V0X3UzMih0YltUQ0FfVENJTkRFWF9DTEFTU0lEXSk7Ci0JCXRjZl9iaW5k X2ZpbHRlcih0cCwgJmNyLnJlcywgYmFzZSk7CisJCWNyLmNsYXNzaWQgPSBubGFfZ2V0X3UzMih0 YltUQ0FfVENJTkRFWF9DTEFTU0lEXSk7CisJCXRjZl9iaW5kX2ZpbHRlcih0cCwgJmNyLCBiYXNl KTsKIAl9CiAKIAlpZiAob2xkX3IgJiYgb2xkX3IgIT0gcikgewpAQCAtNDU1LDcgKzQ1Miw3IEBA IHRjaW5kZXhfc2V0X3Bhcm1zKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHRjZl9wcm90byAqdHAs IHVuc2lnbmVkIGxvbmcgYmFzZSwKIAl9CiAKIAlvbGRwID0gcDsKLQlyLT5yZXMgPSBjci5yZXM7 CisJci0+cmVzID0gY3I7CiAJdGNmX2V4dHNfY2hhbmdlKCZyLT5leHRzLCAmZSk7CiAKIAlyY3Vf YXNzaWduX3BvaW50ZXIodHAtPnJvb3QsIGNwKTsKQEAgLTQ3NCw2ICs0NzEsOCBAQCB0Y2luZGV4 X3NldF9wYXJtcyhzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCB0Y2ZfcHJvdG8gKnRwLCB1bnNpZ25l ZCBsb25nIGJhc2UsCiAJCQkJOyAvKiBub3RoaW5nICovCiAKIAkJcmN1X2Fzc2lnbl9wb2ludGVy KCpmcCwgZik7CisJfSBlbHNlIHsKKwkJdGNmX2V4dHNfZGVzdHJveSgmbmV3X2ZpbHRlcl9yZXN1 bHQuZXh0cyk7CiAJfQogCiAJaWYgKG9sZHApCkBAIC00ODYsNyArNDg1LDYgQEAgdGNpbmRleF9z ZXRfcGFybXMoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdGNmX3Byb3RvICp0cCwgdW5zaWduZWQg bG9uZyBiYXNlLAogCWVsc2UgaWYgKGJhbGxvYyA9PSAyKQogCQlrZnJlZShjcC0+aCk7CiBlcnJv dXQxOgotCXRjZl9leHRzX2Rlc3Ryb3koJmNyLmV4dHMpOwogCXRjZl9leHRzX2Rlc3Ryb3koJm5l d19maWx0ZXJfcmVzdWx0LmV4dHMpOwogZXJyb3V0OgogCWtmcmVlKGNwKTsKLS0gCjIuMjAuMQoK CkZyb20gOGQ1M2Q4MTg5ZDM2NmEwMWEwOGIzNmU3YThhZjQ2NjcyNGYyNDhiMiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogUmFlZCBTYWxlbSA8cmFlZHNAbWVsbGFub3guY29tPgpEYXRl OiBNb24sIDE3IERlYyAyMDE4IDExOjQwOjA2ICswMjAwClN1YmplY3Q6IFtQQVRDSCAyMi8yM10g bmV0L21seDVlOiBGUEdBLCBmaXggSW5ub3ZhIElQc2VjIFRYIG9mZmxvYWQgZGF0YSBwYXRoCiBw ZXJmb3JtYW5jZQoKWyBVcHN0cmVhbSBjb21taXQgODJlYWExZmEwNDQ4ZGExODUyZDdiODA4MzJl NjdlODBhMDhkY2MyNyBdCgpBdCBJbm5vdmEgSVBzZWMgVFggb2ZmbG9hZCBkYXRhIHBhdGggYSBz cGVjaWFsIHNvZnR3YXJlIHBhcnNlciBtZXRhZGF0YQppcyB1c2VkIHRvIHBhc3Mgc29tZSBwYWNr ZXQgYXR0cmlidXRlcyB0byB0aGUgaGFyZHdhcmUsIHRoaXMgbWV0YWRhdGEKaXMgcGFzc2VkIHVz aW5nIHRoZSBFdGhlcm5ldCBjb250cm9sIHNlZ21lbnQgb2YgYSBXUUUgKGEgSFcgZGVzY3JpcHRv cikKaGVhZGVyLgoKVGhlIGNpdGVkIGNvbW1pdCBtaWdodCBudWxsaWZ5IHRoaXMgaGVhZGVyLCBo ZW5jZSB0aGUgbWV0YWRhdGEgaXMgbG9zdCwKdGhpcyBjYXVzZWQgYSBzaWduaWZpY2FudCBwZXJm b3JtYW5jZSBkcm9wIGR1cmluZyBodyBvZmZsb2FkaW5nCm9wZXJhdGlvbi4KCkZpeCBieSByZXN0 b3JpbmcgdGhlIG1ldGFkYXRhIGF0IHRoZSBFdGhlcm5ldCBjb250cm9sIHNlZ21lbnQgaW4gY2Fz ZQppdCB3YXMgbnVsbGlmaWVkLgoKRml4ZXM6IDM3ZmRmZmIyMTdhNCAoIm5ldC9tbHg1OiBXUSwg Zml4ZXMgZm9yIGZyYWdtZW50ZWQgV1EgYnVmZmVycyBBUEkiKQpTaWduZWQtb2ZmLWJ5OiBSYWVk IFNhbGVtIDxyYWVkc0BtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBUYXJpcSBUb3VrYW4gPHRh cmlxdEBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1A bWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29y ZS9lbl90eC5jIHwgNiArKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKykKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHgu YyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90eC5jCmluZGV4 IDZkYWNhZWJhMmZiZi4uMGIwM2Q2NTQ3NGU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHguYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHguYwpAQCAtMzg3LDggKzM4NywxNCBAQCBuZXRkZXZf dHhfdCBtbHg1ZV9zcV94bWl0KHN0cnVjdCBtbHg1ZV90eHFzcSAqc3EsIHN0cnVjdCBza19idWZm ICpza2IsCiAJbnVtX3dxZWJicyA9IERJVl9ST1VORF9VUChkc19jbnQsIE1MWDVfU0VORF9XUUVC Ql9OVU1fRFMpOwogCWNvbnRpZ193cWViYnNfcm9vbSA9IG1seDVfd3FfY3ljX2dldF9jb250aWdf d3FlYmJzKHdxLCBwaSk7CiAJaWYgKHVubGlrZWx5KGNvbnRpZ193cWViYnNfcm9vbSA8IG51bV93 cWViYnMpKSB7CisjaWZkZWYgQ09ORklHX01MWDVfRU5fSVBTRUMKKwkJc3RydWN0IG1seDVfd3Fl X2V0aF9zZWcgY3VyX2V0aCA9IHdxZS0+ZXRoOworI2VuZGlmCiAJCW1seDVlX2ZpbGxfc3FfZnJh Z19lZGdlKHNxLCB3cSwgcGksIGNvbnRpZ193cWViYnNfcm9vbSk7CiAJCW1seDVlX3NxX2ZldGNo X3dxZShzcSwgJndxZSwgJnBpKTsKKyNpZmRlZiBDT05GSUdfTUxYNV9FTl9JUFNFQworCQl3cWUt PmV0aCA9IGN1cl9ldGg7CisjZW5kaWYKIAl9CiAKIAkvKiBmaWxsIHdxZSAqLwotLSAKMi4yMC4x CgoKRnJvbSA4YzlkMTY3MGYyZjE4NjJiNDc1Zjk2NWYzMzFhYzNhMzE5NzJiMDExIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNv bT4KRGF0ZTogTW9uLCAxMSBGZWIgMjAxOSAxNjoyNzowMiAtMDgwMApTdWJqZWN0OiBbUEFUQ0gg MjMvMjNdIG5ldC9tbHg1ZTogWERQLCBmaXggcmVkaXJlY3QgcmVzb3VyY2VzIGF2YWlsYWJpbGl0 eQogY2hlY2sKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFy c2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29t bWl0IDQwN2UxN2IxYTY5YTUxYmE5YTUxMmEwNDM0MmRhNTZjMWY5MzFkZjQgXQoKQ3VycmVudGx5 IG1seDUgZHJpdmVyIGNyZWF0ZXMgeGRwIHJlZGlyZWN0IGh3IHF1ZXVlcyB1bmNvbmRpdGlvbmFs bHkgb24KbmV0ZGV2aWNlIG9wZW4sIFRoaXMgaXMgZ3JlYXQgdW50aWwgc29tZW9uZSBzdGFydHMg cmVkaXJlY3RpbmcgWERQIHRyYWZmaWMKdmlhIG5kb194ZHBfeG1pdCBvbiBtbHg1IGRldmljZSBh bmQgY2hhbmdlcyB0aGUgZGV2aWNlIGNvbmZpZ3VyYXRpb24gYXQKdGhlIHNhbWUgdGltZSwgdGhp cyBtaWdodCBjYXVzZSBjcmFzaGVzLCBzaW5jZSB0aGUgb3RoZXIgZGV2aWNlJ3MgbmFwaQppcyBu b3QgYXdhcmUgb2YgdGhlIG1seDUgc3RhdGUgY2hhbmdlIChyZXNvdXJjZXMgdW4tYXZhaWxhYmls aXR5KS4KClRvIGZpeCB0aGlzIHdlIG11c3Qgc3luY2hyb25pemUgd2l0aCBvdGhlciBkZXZpY2Vz IG5hcGkncyBvbiB0aGUgc3lzdGVtLgpBZGRlZCBhIG5ldyBmbGFnIHVuZGVyIG1seDVlX3ByaXYg dG8gZGV0ZXJtaW5lIFhEUCBUWCByZXNvdXJjZXMgYXJlCmF2YWlsYWJsZSwgc2V0L2NsZWFyIGl0 IHVwIHdoZW4gbmVjZXNzYXJ5IGFuZCB1c2Ugc3luY2hyb25pemVfcmN1KCkKd2hlbiB0aGUgZmxh ZyBpcyB0dXJuZWQgb2ZmLCBzbyBvdGhlciBuYXBpJ3MgYXJlIGluLXN5bmMgd2l0aCBpdCwgYmVm b3JlCndlIGFjdHVhbGx5IGNsZWFudXAgdGhlIGh3IHJlc291cmNlcy4KClRoZSBmbGFnIGlzIHRl c3RlZCBwcmlvciB0byBjb21taXR0aW5nIHRvIHRyYW5zbWl0IG9uIG1seDVlX3hkcF94bWl0LCBh bmQKaXQgaXMgc3VmZmljaWVudCB0byBkZXRlcm1pbmUgaWYgaXQgc2FmZSB0byB0cmFuc21pdCBv ciBub3QuIFRoZSBvdGhlcgp0d28gaW50ZXJuYWwgZmxhZ3MgKE1MWDVFX1NUQVRFX09QRU5FRCBh bmQgTUxYNUVfU1FfU1RBVEVfRU5BQkxFRCkgYmVjb21lCnVubmVjZXNzYXJ5LiBUaHVzLCB0aGV5 IGFyZSByZW1vdmVkIGZyb20gZGF0YSBwYXRoLgoKRml4ZXM6IDU4Yjk5ZWUzZTNlYiAoIm5ldC9t bHg1ZTogQWRkIHN1cHBvcnQgZm9yIFhEUF9SRURJUkVDVCBpbiBkZXZpY2Utb3V0IHNpZGUiKQpS ZXBvcnRlZC1ieTogVG9rZSBIw7hpbGFuZC1Kw7hyZ2Vuc2VuIDx0b2tlQHJlZGhhdC5jb20+ClJl dmlld2VkLWJ5OiBUYXJpcSBUb3VrYW4gPHRhcmlxdEBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYt Ynk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oICAgIHwgIDEgKwogLi4uL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4veGRwLmMgICAgfCAgNiArKy0tLS0KIC4uLi9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3hkcC5oICAgIHwgMTcgKysrKysrKysrKysr KysrKysKIC4uLi9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYyAgIHwg IDIgKysKIDQgZmlsZXMgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4u aCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oCmluZGV4IDEx ODMyNDgwMjkyNi4uN2M3MmIzYjVlZWRmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaAorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg1L2NvcmUvZW4uaApAQCAtNjM2LDYgKzYzNiw3IEBAIGVudW0gewogCU1MWDVFX1NU QVRFX0FTWU5DX0VWRU5UU19FTkFCTEVELAogCU1MWDVFX1NUQVRFX09QRU5FRCwKIAlNTFg1RV9T VEFURV9ERVNUUk9ZSU5HLAorCU1MWDVFX1NUQVRFX1hEUF9UWF9FTkFCTEVELAogfTsKIAogc3Ry dWN0IG1seDVlX3JxdCB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg1L2NvcmUvZW4veGRwLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvZW4veGRwLmMKaW5kZXggYWQ2ZDQ3MWQwMGRkLi40YTMzYzlhN2NhYzcgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi94ZHAuYworKysg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4veGRwLmMKQEAgLTI2 Miw3ICsyNjIsOCBAQCBpbnQgbWx4NWVfeGRwX3htaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwg aW50IG4sIHN0cnVjdCB4ZHBfZnJhbWUgKipmcmFtZXMsCiAJaW50IHNxX251bTsKIAlpbnQgaTsK IAotCWlmICh1bmxpa2VseSghdGVzdF9iaXQoTUxYNUVfU1RBVEVfT1BFTkVELCAmcHJpdi0+c3Rh dGUpKSkKKwkvKiB0aGlzIGZsYWcgaXMgc3VmZmljaWVudCwgbm8gbmVlZCB0byB0ZXN0IGludGVy bmFsIHNxIHN0YXRlICovCisJaWYgKHVubGlrZWx5KCFtbHg1ZV94ZHBfdHhfaXNfZW5hYmxlZChw cml2KSkpCiAJCXJldHVybiAtRU5FVERPV047CiAKIAlpZiAodW5saWtlbHkoZmxhZ3MgJiB+WERQ X1hNSVRfRkxBR1NfTUFTSykpCkBAIC0yNzUsOSArMjc2LDYgQEAgaW50IG1seDVlX3hkcF94bWl0 KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBuLCBzdHJ1Y3QgeGRwX2ZyYW1lICoqZnJhbWVz LAogCiAJc3EgPSAmcHJpdi0+Y2hhbm5lbHMuY1tzcV9udW1dLT54ZHBzcTsKIAotCWlmICh1bmxp a2VseSghdGVzdF9iaXQoTUxYNUVfU1FfU1RBVEVfRU5BQkxFRCwgJnNxLT5zdGF0ZSkpKQotCQly ZXR1cm4gLUVORVRET1dOOwotCiAJZm9yIChpID0gMDsgaSA8IG47IGkrKykgewogCQlzdHJ1Y3Qg eGRwX2ZyYW1lICp4ZHBmID0gZnJhbWVzW2ldOwogCQlzdHJ1Y3QgbWx4NWVfeGRwX2luZm8geGRw aTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9l bi94ZHAuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi94ZHAu aAppbmRleCA2ZGZhYjA0NTkyNWYuLjRkMDk2NjIzMTc4YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3hkcC5oCisrKyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi94ZHAuaApAQCAtNDksNiArNDksMjMgQEAg Ym9vbCBtbHg1ZV94bWl0X3hkcF9mcmFtZShzdHJ1Y3QgbWx4NWVfeGRwc3EgKnNxLCBzdHJ1Y3Qg bWx4NWVfeGRwX2luZm8gKnhkcGkpOwogaW50IG1seDVlX3hkcF94bWl0KHN0cnVjdCBuZXRfZGV2 aWNlICpkZXYsIGludCBuLCBzdHJ1Y3QgeGRwX2ZyYW1lICoqZnJhbWVzLAogCQkgICB1MzIgZmxh Z3MpOwogCitzdGF0aWMgaW5saW5lIHZvaWQgbWx4NWVfeGRwX3R4X2VuYWJsZShzdHJ1Y3QgbWx4 NWVfcHJpdiAqcHJpdikKK3sKKwlzZXRfYml0KE1MWDVFX1NUQVRFX1hEUF9UWF9FTkFCTEVELCAm cHJpdi0+c3RhdGUpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgbWx4NWVfeGRwX3R4X2Rpc2Fi bGUoc3RydWN0IG1seDVlX3ByaXYgKnByaXYpCit7CisJY2xlYXJfYml0KE1MWDVFX1NUQVRFX1hE UF9UWF9FTkFCTEVELCAmcHJpdi0+c3RhdGUpOworCS8qIGxldCBvdGhlciBkZXZpY2UncyBuYXBp KHMpIHNlZSBvdXIgbmV3IHN0YXRlICovCisJc3luY2hyb25pemVfcmN1KCk7Cit9CisKK3N0YXRp YyBpbmxpbmUgYm9vbCBtbHg1ZV94ZHBfdHhfaXNfZW5hYmxlZChzdHJ1Y3QgbWx4NWVfcHJpdiAq cHJpdikKK3sKKwlyZXR1cm4gdGVzdF9iaXQoTUxYNUVfU1RBVEVfWERQX1RYX0VOQUJMRUQsICZw cml2LT5zdGF0ZSk7Cit9CisKIHN0YXRpYyBpbmxpbmUgdm9pZCBtbHg1ZV94bWl0X3hkcF9kb29y YmVsbChzdHJ1Y3QgbWx4NWVfeGRwc3EgKnNxKQogewogCXN0cnVjdCBtbHg1X3dxX2N5YyAqd3Eg PSAmc3EtPndxOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 NS9jb3JlL2VuX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29y ZS9lbl9tYWluLmMKaW5kZXggOTU3N2QwNjU3ODM5Li4xZDY2YTRlMjJkNjQgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMKKysrIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYwpAQCAtMjkw Myw2ICsyOTAzLDcgQEAgdm9pZCBtbHg1ZV9hY3RpdmF0ZV9wcml2X2NoYW5uZWxzKHN0cnVjdCBt bHg1ZV9wcml2ICpwcml2KQogCiAJbWx4NWVfYnVpbGRfdHgyc3FfbWFwcyhwcml2KTsKIAltbHg1 ZV9hY3RpdmF0ZV9jaGFubmVscygmcHJpdi0+Y2hhbm5lbHMpOworCW1seDVlX3hkcF90eF9lbmFi bGUocHJpdik7CiAJbmV0aWZfdHhfc3RhcnRfYWxsX3F1ZXVlcyhwcml2LT5uZXRkZXYpOwogCiAJ aWYgKE1MWDVfRVNXSVRDSF9NQU5BR0VSKHByaXYtPm1kZXYpKQpAQCAtMjkyNCw2ICsyOTI1LDcg QEAgdm9pZCBtbHg1ZV9kZWFjdGl2YXRlX3ByaXZfY2hhbm5lbHMoc3RydWN0IG1seDVlX3ByaXYg KnByaXYpCiAJICovCiAJbmV0aWZfdHhfc3RvcF9hbGxfcXVldWVzKHByaXYtPm5ldGRldik7CiAJ bmV0aWZfdHhfZGlzYWJsZShwcml2LT5uZXRkZXYpOworCW1seDVlX3hkcF90eF9kaXNhYmxlKHBy aXYpOwogCW1seDVlX2RlYWN0aXZhdGVfY2hhbm5lbHMoJnByaXYtPmNoYW5uZWxzKTsKIH0KIAot LSAKMi4yMC4xCgo= ----Next_Part(Sat_Feb_23_21_18_00_2019_036)----