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=-0.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D9FFDC433E0 for ; Wed, 27 May 2020 06:16:56 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 89FBA20723 for ; Wed, 27 May 2020 06:16:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727054AbgE0GQ4 (ORCPT ); Wed, 27 May 2020 02:16:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52736 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725843AbgE0GQz (ORCPT ); Wed, 27 May 2020 02:16:55 -0400 Received: from shards.monkeyblade.net (shards.monkeyblade.net [IPv6:2620:137:e000::1:9]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 81881C061A0F for ; Tue, 26 May 2020 23:16:55 -0700 (PDT) Received: from localhost (unknown [IPv6:2601:601:9f00:477::3d5]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id AC522127F35B0 for ; Tue, 26 May 2020 23:16:53 -0700 (PDT) Date: Tue, 26 May 2020 23:16:52 -0700 (PDT) Message-Id: <20200526.231652.280818104196261017.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller X-Mailer: Mew version 6.8 on Emacs 26.3 Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Tue_May_26_23_16_52_2020_574)--" 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]); Tue, 26 May 2020 23:16:55 -0700 (PDT) Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org ----Next_Part(Tue_May_26_23_16_52_2020_574)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for v5.4 and v5.6 -stable, respectively. Thank you. ----Next_Part(Tue_May_26_23_16_52_2020_574)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_54.mbox" RnJvbSBmZjYzZGE1MzRjN2IwOWI3ZDJmYzI3MzNlMTRmZDhiNjE0ZmMyMmJhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRh dGU6IFR1ZSwgMTkgTWF5IDIwMjAgMTg6MjQ6NDMgLTA3MDAKU3ViamVjdDogW1BBVENIIDAxLzI1 XSBheDI1OiBmaXggc2V0c29ja29wdChTT19CSU5EVE9ERVZJQ0UpCgpbIFVwc3RyZWFtIGNvbW1p dCA2ODc3NzVjZWMwNTZiMzhhNGM4ZjMyOTFlMGRkN2E5MTQ1ZjdiNjY3IF0KCnN5emJvdCB3YXMg YWJsZSB0byB0cmlnZ2VyIHRoaXMgdHJhY2UgWzFdLCBwcm9iYWJseSBieSB1c2luZwphIHplcm8g b3B0bGVuLgoKV2hpbGUgd2UgYXJlIGF0IGl0LCBjYXAgb3B0bGVuIHRvIElGTkFNU0laIC0gMSBp bnN0ZWFkIG9mIElGTkFNU0laLgoKWzFdCkJVRzogS01TQU46IHVuaW5pdC12YWx1ZSBpbiBzdHJu bGVuKzB4ZjkvMHgxNzAgbGliL3N0cmluZy5jOjU2OQpDUFU6IDAgUElEOiA4ODA3IENvbW06IHN5 ei1leGVjdXRvcjQ4MyBOb3QgdGFpbnRlZCA1LjcuMC1yYzQtc3l6a2FsbGVyICMwCkhhcmR3YXJl IG5hbWU6IEdvb2dsZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUvR29vZ2xlIENvbXB1dGUgRW5naW5l LCBCSU9TIEdvb2dsZSAwMS8wMS8yMDExCkNhbGwgVHJhY2U6CiBfX2R1bXBfc3RhY2sgbGliL2R1 bXBfc3RhY2suYzo3NyBbaW5saW5lXQogZHVtcF9zdGFjaysweDFjOS8weDIyMCBsaWIvZHVtcF9z dGFjay5jOjExOAoga21zYW5fcmVwb3J0KzB4ZjcvMHgxZTAgbW0va21zYW4va21zYW5fcmVwb3J0 LmM6MTIxCiBfX21zYW5fd2FybmluZysweDU4LzB4YTAgbW0va21zYW4va21zYW5faW5zdHIuYzoy MTUKIHN0cm5sZW4rMHhmOS8weDE3MCBsaWIvc3RyaW5nLmM6NTY5CiBkZXZfbmFtZV9oYXNoIG5l dC9jb3JlL2Rldi5jOjIwNyBbaW5saW5lXQogbmV0ZGV2X25hbWVfbm9kZV9sb29rdXAgbmV0L2Nv cmUvZGV2LmM6Mjc3IFtpbmxpbmVdCiBfX2Rldl9nZXRfYnlfbmFtZSsweDc1LzB4MmIwIG5ldC9j b3JlL2Rldi5jOjc3OAogYXgyNV9zZXRzb2Nrb3B0KzB4ZmEzLzB4MTE3MCBuZXQvYXgyNS9hZl9h eDI1LmM6NjU0CiBfX2NvbXBhdF9zeXNfc2V0c29ja29wdCsweDRlZC8weDkxMCBuZXQvY29tcGF0 LmM6NDAzCiBfX2RvX2NvbXBhdF9zeXNfc2V0c29ja29wdCBuZXQvY29tcGF0LmM6NDEzIFtpbmxp bmVdCiBfX3NlX2NvbXBhdF9zeXNfc2V0c29ja29wdCsweGRkLzB4MTAwIG5ldC9jb21wYXQuYzo0 MTAKIF9faWEzMl9jb21wYXRfc3lzX3NldHNvY2tvcHQrMHg2Mi8weDgwIG5ldC9jb21wYXQuYzo0 MTAKIGRvX3N5c2NhbGxfMzJfaXJxc19vbiBhcmNoL3g4Ni9lbnRyeS9jb21tb24uYzozMzkgW2lu bGluZV0KIGRvX2Zhc3Rfc3lzY2FsbF8zMisweDNiZi8weDZkMCBhcmNoL3g4Ni9lbnRyeS9jb21t b24uYzozOTgKIGVudHJ5X1NZU0VOVEVSX2NvbXBhdCsweDY4LzB4NzcgYXJjaC94ODYvZW50cnkv ZW50cnlfNjRfY29tcGF0LlM6MTM5ClJJUDogMDAyMzoweGY3ZjU3ZGQ5CkNvZGU6IDkwIGU4IDBi IDAwIDAwIDAwIGYzIDkwIDBmIGFlIGU4IGViIGY5IDhkIDc0IDI2IDAwIDg5IDNjIDI0IGMzIDkw IDkwIDkwIDkwIDkwIDkwIDkwIDkwIDkwIDkwIDkwIDkwIDUxIDUyIDU1IDg5IGU1IDBmIDM0IGNk IDgwIDw1ZD4gNWEgNTkgYzMgOTAgOTAgOTAgOTAgZWIgMGQgOTAgOTAgOTAgOTAgOTAgOTAgOTAg OTAgOTAgOTAgOTAgOTAKUlNQOiAwMDJiOjAwMDAwMDAwZmZhZThjMWMgRUZMQUdTOiAwMDAwMDIx NyBPUklHX1JBWDogMDAwMDAwMDAwMDAwMDE2ZQpSQVg6IGZmZmZmZmZmZmZmZmZmZGEgUkJYOiAw MDAwMDAwMDAwMDAwMDAzIFJDWDogMDAwMDAwMDAwMDAwMDEwMQpSRFg6IDAwMDAwMDAwMDAwMDAw MTkgUlNJOiAwMDAwMDAwMDIwMDAwMDAwIFJESTogMDAwMDAwMDAwMDAwMDAwNApSQlA6IDAwMDAw MDAwMDAwMDAwMTIgUjA4OiAwMDAwMDAwMDAwMDAwMDAwIFIwOTogMDAwMDAwMDAwMDAwMDAwMApS MTA6IDAwMDAwMDAwMDAwMDAwMDAgUjExOiAwMDAwMDAwMDAwMDAwMDAwIFIxMjogMDAwMDAwMDAw MDAwMDAwMApSMTM6IDAwMDAwMDAwMDAwMDAwMDAgUjE0OiAwMDAwMDAwMDAwMDAwMDAwIFIxNTog MDAwMDAwMDAwMDAwMDAwMAoKTG9jYWwgdmFyaWFibGUgLS0tLWRldm5hbWVAYXgyNV9zZXRzb2Nr b3B0IGNyZWF0ZWQgYXQ6CiBheDI1X3NldHNvY2tvcHQrMHhlNi8weDExNzAgbmV0L2F4MjUvYWZf YXgyNS5jOjUzNgogYXgyNV9zZXRzb2Nrb3B0KzB4ZTYvMHgxMTcwIG5ldC9heDI1L2FmX2F4MjUu Yzo1MzYKCkZpeGVzOiAxZGExNzdlNGMzZjQgKCJMaW51eC0yLjYuMTItcmMyIikKU2lnbmVkLW9m Zi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpSZXBvcnRlZC1ieTogc3l6 Ym90IDxzeXprYWxsZXJAZ29vZ2xlZ3JvdXBzLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9heDI1L2FmX2F4MjUuYyB8IDYg KysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL25ldC9heDI1L2FmX2F4MjUuYyBiL25ldC9heDI1L2FmX2F4MjUuYwppbmRl eCBiYjIyMmI4ODJiNjcuLmU1YTNkYzI4MTE2ZCAxMDA2NDQKLS0tIGEvbmV0L2F4MjUvYWZfYXgy NS5jCisrKyBiL25ldC9heDI1L2FmX2F4MjUuYwpAQCAtNjM1LDggKzYzNSwxMCBAQCBzdGF0aWMg aW50IGF4MjVfc2V0c29ja29wdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgbGV2ZWwsIGludCBv cHRuYW1lLAogCQlicmVhazsKIAogCWNhc2UgU09fQklORFRPREVWSUNFOgotCQlpZiAob3B0bGVu ID4gSUZOQU1TSVopCi0JCQlvcHRsZW4gPSBJRk5BTVNJWjsKKwkJaWYgKG9wdGxlbiA+IElGTkFN U0laIC0gMSkKKwkJCW9wdGxlbiA9IElGTkFNU0laIC0gMTsKKworCQltZW1zZXQoZGV2bmFtZSwg MCwgc2l6ZW9mKGRldm5hbWUpKTsKIAogCQlpZiAoY29weV9mcm9tX3VzZXIoZGV2bmFtZSwgb3B0 dmFsLCBvcHRsZW4pKSB7CiAJCQlyZXMgPSAtRUZBVUxUOwotLSAKMi4yNi4yCgoKRnJvbSA1Njcy Y2UxZTQ5ZTQ2YzdmNGQ0ZTk0YzZhMjk4Njg2MTFhOTE1MmY5IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBWbGFkaW1pciBPbHRlYW4gPHZsYWRpbWlyLm9sdGVhbkBueHAuY29tPgpEYXRl OiBNb24sIDI1IE1heSAyMDIwIDAwOjIyOjUxICswMzAwClN1YmplY3Q6IFtQQVRDSCAwMi8yNV0g ZHBhYV9ldGg6IGZpeCB1c2FnZSBhcyBEU0EgbWFzdGVyLCB0cnkgMwoKWyBVcHN0cmVhbSBjb21t aXQgNWQxNGMzMDRiZmMxNGI0ZmQwNTJkYzgzZDUyMjQzNzZiNDhmNTJmMCBdCgpUaGUgZHBhYS1l dGggZHJpdmVyIHByb2JlcyBvbiBjb21wYXRpYmxlIHN0cmluZyBmb3IgdGhlIE1BQyBub2RlLCBh bmQKdGhlIGZtYW4vbWFjLmMgZHJpdmVyIGFsbG9jYXRlcyBhIGRwYWEtZXRoZXJuZXQgcGxhdGZv cm0gZGV2aWNlIHRoYXQKdHJpZ2dlcnMgdGhlIHByb2Jpbmcgb2YgdGhlIGRwYWEtZXRoIG5ldCBk ZXZpY2UgZHJpdmVyLgoKQWxsIG9mIHRoaXMgaXMgZmluZSwgYnV0IHRoZSBwcm9ibGVtIGlzIHRo YXQgdGhlIHN0cnVjdCBkZXZpY2Ugb2YgdGhlCmRwYWFfZXRoIG5ldF9kZXZpY2UgaXMgMiBwYXJl bnRzIGF3YXkgZnJvbSB0aGUgTUFDIHdoaWNoIGNhbiBiZQpyZWZlcmVuY2VkIHZpYSBvZl9ub2Rl LiBTbyBvZl9maW5kX25ldF9kZXZpY2VfYnlfbm9kZSBjYW4ndCBmaW5kIGl0LCBhbmQKRFNBIHN3 aXRjaGVzIHdvbid0IGJlIGFibGUgdG8gcHJvYmUgb24gdG9wIG9mIEZNYW4gcG9ydHMuCgpJdCB3 b3VsZCBiZSBhIGJpdCBzaWxseSB0byBtb2RpZnkgYSBjb3JlIGZ1bmN0aW9uCihvZl9maW5kX25l dF9kZXZpY2VfYnlfbm9kZSkgdG8gbG9vayBmb3IgZGV2LT5wYXJlbnQtPnBhcmVudC0+b2Zfbm9k ZQpqdXN0IGZvciBvbmUgZHJpdmVyLiBXZSdyZSBqdXN0IDEgc3RlcCBhd2F5IGZyb20gaW1wbGVt ZW50aW5nIGZ1bGwKcmVjdXJzaW9uLgoKQWN0dWFsbHkgdGhlcmUgaGF2ZSBhbHJlYWR5IGJlZW4g YXQgbGVhc3QgMiBwcmV2aW91cyBhdHRlbXB0cyB0byBtYWtlCnRoaXMgd29yazoKLSBDb21taXQg YTFhNTBjOGU0YzI0ICgiZnNsL21hbjogSW5oZXJpdCBwYXJlbnQgZGV2aWNlIGFuZCBvZl9ub2Rl IikKLSBPbmUgb3IgbW9yZSBvZiB0aGUgcGF0Y2hlcyBpbiAiW3YzLDAvNl0gYWRhcHQgRFBBQSBk cml2ZXJzIGZvciBEU0EiOgogIGh0dHBzOi8vcGF0Y2h3b3JrLm96bGFicy5vcmcvcHJvamVjdC9u ZXRkZXYvY292ZXIvMTUwODE3ODk3MC0yODk0NS0xLWdpdC1zZW5kLWVtYWlsLW1hZGFsaW4uYnVj dXJAbnhwLmNvbS8KICAoSSBjb3VsZG4ndCByZWFsbHkgZmlndXJlIG91dCB3aGljaCBvbmUgd2Fz IHN1cHBvc2VkIHRvIHNvbHZlIHRoZQogIHByb2JsZW0gYW5kIGhvdykuCgpQb2ludCBiZWluZywg aXQgbG9va3MgbGlrZSB0aGlzIGlzIHN0aWxsIHByZXR0eSBtdWNoIGEgcHJvYmxlbSB0b2RheS4K T24gVDEwNDAsIHRoZSAvc3lzL2NsYXNzL25ldC9ldGgwIHN5bWxpbmsgY3VycmVudGx5IHBvaW50 cyB0bwoKLi4vLi4vZGV2aWNlcy9wbGF0Zm9ybS9mZmUwMDAwMDAuc29jL2ZmZTQwMDAwMC5mbWFu L2ZmZTRlNjAwMC5ldGhlcm5ldC9kcGFhLWV0aGVybmV0LjAvbmV0L2V0aDAKCndoaWNoIHByZXR0 eSBtdWNoIGlsbHVzdHJhdGVzIHRoZSBwcm9ibGVtLiBUaGUgY2xvc2VzdCBvZl9ub2RlIHdlJ3Zl IGdvdAppcyB0aGUgImZzbCxmbWFuLW1lbWFjIiBhdCAvc29jQGZmZTAwMDAwMC9mbWFuQDQwMDAw MC9ldGhlcm5ldEBlNjAwMCwKd2hpY2ggaXMgd2hhdCB3ZSdkIGxpa2UgdG8gYmUgYWJsZSB0byBy ZWZlcmVuY2UgZnJvbSBEU0EgYXMgaG9zdCBwb3J0LgoKRm9yIG9mX2ZpbmRfbmV0X2RldmljZV9i eV9ub2RlIHRvIGZpbmQgdGhlIGV0aDAgcG9ydCwgd2Ugd291bGQgbmVlZCB0aGUKcGFyZW50IG9m IHRoZSBldGgwIG5ldF9kZXZpY2UgdG8gbm90IGJlIHRoZSAiZHBhYS1ldGhlcm5ldCIgcGxhdGZv cm0KZGV2aWNlLCBidXQgdG8gcG9pbnQgMSBsZXZlbCBoaWdoZXIsIGFrYSB0aGUgImZzbCxmbWFu LW1lbWFjIiBub2RlCmRpcmVjdGx5LiBUaGUgbmV3IHN5c2ZzIHBhdGggd291bGQgbG9vayBsaWtl IHRoaXM6CgouLi8uLi9kZXZpY2VzL3BsYXRmb3JtL2ZmZTAwMDAwMC5zb2MvZmZlNDAwMDAwLmZt YW4vZmZlNGU2MDAwLmV0aGVybmV0L25ldC9ldGgwCgpBbmQgdGhpcyBpcyBleGFjdGx5IHdoYXQg U0VUX05FVERFVl9ERVYgZG9lcy4gSXQgc2V0cyB0aGUgcGFyZW50IG9mIHRoZQpuZXRfZGV2aWNl LiBUaGUgbmV3IHBhcmVudCBoYXMgYW4gb2Zfbm9kZSBhc3NvY2lhdGVkIHdpdGggaXQsIGFuZApv Zl9kZXZfbm9kZV9tYXRjaCBhbHJlYWR5IGNoZWNrcyBmb3IgdGhlIG9mX25vZGUgb2YgdGhlIGRl dmljZSBvciBvZiBpdHMKcGFyZW50LgoKRml4ZXM6IGExYTUwYzhlNGMyNCAoImZzbC9tYW46IElu aGVyaXQgcGFyZW50IGRldmljZSBhbmQgb2Zfbm9kZSIpCkZpeGVzOiBjNmUyNmVhOGM4OTMgKCJk cGFhX2V0aDogY2hhbmdlIGRldmljZSB1c2VkIikKU2lnbmVkLW9mZi1ieTogVmxhZGltaXIgT2x0 ZWFuIDx2bGFkaW1pci5vbHRlYW5AbnhwLmNvbT4KUmV2aWV3ZWQtYnk6IEZsb3JpYW4gRmFpbmVs bGkgPGYuZmFpbmVsbGlAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxl L2RwYWEvZHBhYV9ldGguYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwg MSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2Fs ZS9kcGFhL2RwYWFfZXRoLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYS9k cGFhX2V0aC5jCmluZGV4IDAwYzRiZWI3NjBjMy4uY2Q5ZDA4Njk1Y2MxIDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYS9kcGFhX2V0aC5jCisrKyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhL2RwYWFfZXRoLmMKQEAgLTI4MDIsNyArMjgw Miw3IEBAIHN0YXRpYyBpbnQgZHBhYV9ldGhfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldikKIAl9CiAKIAkvKiBEbyB0aGlzIGhlcmUsIHNvIHdlIGNhbiBiZSB2ZXJib3NlIGVhcmx5 ICovCi0JU0VUX05FVERFVl9ERVYobmV0X2RldiwgZGV2KTsKKwlTRVRfTkVUREVWX0RFVihuZXRf ZGV2LCBkZXYtPnBhcmVudCk7CiAJZGV2X3NldF9kcnZkYXRhKGRldiwgbmV0X2Rldik7CiAKIAlw cml2ID0gbmV0ZGV2X3ByaXYobmV0X2Rldik7Ci0tIAoyLjI2LjIKCgpGcm9tIGQ2YTI4YjJlMWY4 YzdjNWVhYzdmMDVhMzY5YzI4ODI4ZWZhMDFhYmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IFNhYnJpbmEgRHVicm9jYSA8c2RAcXVlYXN5c25haWwubmV0PgpEYXRlOiBXZWQsIDIwIE1h eSAyMDIwIDExOjE1OjQ2ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMy8yNV0gbmV0OiBkb24ndCBy ZXR1cm4gaW52YWxpZCB0YWJsZSBpZCBlcnJvciB3aGVuIHdlIGZhbGwKIGJhY2sgdG8gUEZfVU5T UEVDCgpbIFVwc3RyZWFtIGNvbW1pdCA0MWI0YmQ5ODZmODYzMzFlZmM1OTliOWEzZjVmYjg2YWQ5 MmU5YWY5IF0KCkluIGNhc2Ugd2UgY2FuJ3QgZmluZCBhIC0+ZHVtcGl0IGNhbGxiYWNrIGZvciB0 aGUgcmVxdWVzdGVkCihmYW1pbHksdHlwZSkgcGFpciwgd2UgZmFsbCBiYWNrIHRvIChQRl9VTlNQ RUMsdHlwZSkuIEluIGVmZmVjdCwgd2UncmUKaW4gdGhlIHNhbWUgc2l0dWF0aW9uIGFzIGlmIHVz ZXJzcGFjZSBoYWQgcmVxdWVzdGVkIGEgUEZfVU5TUEVDCmR1bXAuIEZvciBSVE1fR0VUUk9VVEUs IHRoYXQgaGFuZGxlciBpcyBydG5sX2R1bXBfYWxsLCB3aGljaCBjYWxscyBhbGwKdGhlIHJlZ2lz dGVyZWQgUlRNX0dFVFJPVVRFIGhhbmRsZXJzLgoKVGhlIHJlcXVlc3RlZCB0YWJsZSBpZCBtYXkg b3IgbWF5IG5vdCBleGlzdCBmb3IgYWxsIG9mIHRob3NlCmZhbWlsaWVzLiBjb21taXQgYWU2Nzdi YmI0NDQxICgibmV0OiBEb24ndCByZXR1cm4gaW52YWxpZCB0YWJsZSBpZAplcnJvciB3aGVuIGR1 bXBpbmcgYWxsIGZhbWlsaWVzIikgZml4ZWQgdGhlIHByb2JsZW0gd2hlbiB1c2Vyc3BhY2UKZXhw bGljaXRseSByZXF1ZXN0cyBhIFBGX1VOU1BFQyBkdW1wLCBidXQgbWlzc2VkIHRoZSBmYWxsYmFj ayBjYXNlLgoKRm9yIGV4YW1wbGUsIHdoZW4gd2UgcGFzcyBpcHY2LmRpc2FibGU9MSB0byBhIGtl cm5lbCB3aXRoCkNPTkZJR19JUF9NUk9VVEU9eSBhbmQgQ09ORklHX0lQX01ST1VURV9NVUxUSVBM RV9UQUJMRVM9eSwKdGhlIChQRl9JTkVUNiwgUlRNX0dFVFJPVVRFKSBoYW5kbGVyIGlzbid0IHJl Z2lzdGVyZWQsIHNvIHdlIGVuZCB1cCBpbgpydG5sX2R1bXBfYWxsLCBhbmQgbGlzdGluZyBJUHY2 IHJvdXRlcyB3aWxsIHVuZXhwZWN0ZWRseSBwcmludDoKCiAgIyBpcCAtNiByCiAgRXJyb3I6IGlw djQ6IE1SIHRhYmxlIGRvZXMgbm90IGV4aXN0LgogIER1bXAgdGVybWluYXRlZAoKY29tbWl0IGFl Njc3YmJiNDQ0MSBpbnRyb2R1Y2VkIHRoZSBkdW1wX2FsbF9mYW1pbGllcyB2YXJpYWJsZSwgd2hp Y2gKZ2V0cyBzZXQgd2hlbiB1c2Vyc3BhY2UgcmVxdWVzdHMgYSBQRl9VTlNQRUMgZHVtcC4gSG93 ZXZlciwgd2UgY2FuJ3QKc2ltcGx5IHNldCB0aGUgZmFtaWx5IHRvIFBGX1VOU1BFQyBpbiBydG5l dGxpbmtfcmN2X21zZyBpbiB0aGUKZmFsbGJhY2sgY2FzZSB0byBnZXQgZHVtcF9hbGxfZmFtaWxp ZXMgPT0gdHJ1ZSwgYmVjYXVzZSBzb21lIG1lc3NhZ2VzCnR5cGVzIChmb3IgZXhhbXBsZSBSVE1f R0VUUlVMRSBhbmQgUlRNX0dFVE5FSUdIKSBvbmx5IHJlZ2lzdGVyIHRoZQpQRl9VTlNQRUMgaGFu ZGxlciBhbmQgdXNlIHRoZSBmYW1pbHkgdG8gZmlsdGVyIGluIHRoZSBrZXJuZWwgd2hhdCBpcwpk dW1wZWQgdG8gdXNlcnNwYWNlLiBXZSB3b3VsZCB0aGVuIGV4cG9ydCBtb3JlIGVudHJpZXMsIHRo YXQgdXNlcnNwYWNlCndvdWxkIGhhdmUgdG8gZmlsdGVyLiBpcHJvdXRlIGRvZXMgdGhhdCwgYnV0 IG90aGVyIHByb2dyYW1zIG1heSBub3QuCgpJbnN0ZWFkLCB0aGlzIHBhdGNoIHJlbW92ZXMgZHVt cF9hbGxfZmFtaWxpZXMgYW5kIHVwZGF0ZXMgdGhlClJUTV9HRVRST1VURSBoYW5kbGVycyB0byBj aGVjayBpZiB0aGUgZmFtaWx5IHRoYXQgaXMgYmVpbmcgZHVtcGVkIGlzCnRoZWlyIG93bi4gV2hl biBpdCdzIG5vdCwgd2hpY2ggY292ZXJzIGJvdGggdGhlIGludGVudGlvbmFsIFBGX1VOU1BFQwpk dW1wcyAoYXMgZHVtcF9hbGxfZmFtaWxpZXMgZGlkKSBhbmQgdGhlIGZhbGxiYWNrIGNhc2UsIGln bm9yZSB0aGUKbWlzc2luZyB0YWJsZSBpZCBlcnJvci4KCkZpeGVzOiBjYjE2Nzg5M2Y0MWUgKCJu ZXQ6IFBsdW1iIHN1cHBvcnQgZm9yIGZpbHRlcmluZyBpcHY0IGFuZCBpcHY2IG11bHRpY2FzdCBy b3V0ZSBkdW1wcyIpClNpZ25lZC1vZmYtYnk6IFNhYnJpbmEgRHVicm9jYSA8c2RAcXVlYXN5c25h aWwubmV0PgpSZXZpZXdlZC1ieTogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5j bHVkZS9uZXQvaXBfZmliLmggICAgfCAxIC0KIG5ldC9pcHY0L2ZpYl9mcm9udGVuZC5jIHwgMyAr LS0KIG5ldC9pcHY0L2lwbXIuYyAgICAgICAgIHwgMiArLQogbmV0L2lwdjYvaXA2X2ZpYi5jICAg ICAgfCAyICstCiBuZXQvaXB2Ni9pcDZtci5jICAgICAgICB8IDIgKy0KIDUgZmlsZXMgY2hhbmdl ZCwgNCBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUv bmV0L2lwX2ZpYi5oIGIvaW5jbHVkZS9uZXQvaXBfZmliLmgKaW5kZXggYWIxY2E5ZTIzOGQyLi43 MmJjZmRjYjI1ZTAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2lwX2ZpYi5oCisrKyBiL2luY2x1 ZGUvbmV0L2lwX2ZpYi5oCkBAIC0yNDQsNyArMjQ0LDYgQEAgc3RydWN0IGZpYl9kdW1wX2ZpbHRl ciB7CiAJdTMyCQkJdGFibGVfaWQ7CiAJLyogZmlsdGVyX3NldCBpcyBhbiBvcHRpbWl6YXRpb24g dGhhdCBhbiBlbnRyeSBpcyBzZXQgKi8KIAlib29sCQkJZmlsdGVyX3NldDsKLQlib29sCQkJZHVt cF9hbGxfZmFtaWxpZXM7CiAJYm9vbAkJCWR1bXBfcm91dGVzOwogCWJvb2wJCQlkdW1wX2V4Y2Vw dGlvbnM7CiAJdW5zaWduZWQgY2hhcgkJcHJvdG9jb2w7CmRpZmYgLS1naXQgYS9uZXQvaXB2NC9m aWJfZnJvbnRlbmQuYyBiL25ldC9pcHY0L2ZpYl9mcm9udGVuZC5jCmluZGV4IDQ4YmYzYjliZTQ3 NS4uNjVhZGM1ZmI5MzJmIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9maWJfZnJvbnRlbmQuYworKysg Yi9uZXQvaXB2NC9maWJfZnJvbnRlbmQuYwpAQCAtOTI4LDcgKzkyOCw2IEBAIGludCBpcF92YWxp ZF9maWJfZHVtcF9yZXEoc3RydWN0IG5ldCAqbmV0LCBjb25zdCBzdHJ1Y3Qgbmxtc2doZHIgKm5s aCwKIAllbHNlCiAJCWZpbHRlci0+ZHVtcF9leGNlcHRpb25zID0gZmFsc2U7CiAKLQlmaWx0ZXIt PmR1bXBfYWxsX2ZhbWlsaWVzID0gKHJ0bS0+cnRtX2ZhbWlseSA9PSBBRl9VTlNQRUMpOwogCWZp bHRlci0+ZmxhZ3MgICAgPSBydG0tPnJ0bV9mbGFnczsKIAlmaWx0ZXItPnByb3RvY29sID0gcnRt LT5ydG1fcHJvdG9jb2w7CiAJZmlsdGVyLT5ydF90eXBlICA9IHJ0bS0+cnRtX3R5cGU7CkBAIC0x MDAwLDcgKzk5OSw3IEBAIHN0YXRpYyBpbnQgaW5ldF9kdW1wX2ZpYihzdHJ1Y3Qgc2tfYnVmZiAq c2tiLCBzdHJ1Y3QgbmV0bGlua19jYWxsYmFjayAqY2IpCiAJaWYgKGZpbHRlci50YWJsZV9pZCkg ewogCQl0YiA9IGZpYl9nZXRfdGFibGUobmV0LCBmaWx0ZXIudGFibGVfaWQpOwogCQlpZiAoIXRi KSB7Ci0JCQlpZiAoZmlsdGVyLmR1bXBfYWxsX2ZhbWlsaWVzKQorCQkJaWYgKHJ0bmxfbXNnX2Zh bWlseShjYi0+bmxoKSAhPSBQRl9JTkVUKQogCQkJCXJldHVybiBza2ItPmxlbjsKIAogCQkJTkxf U0VUX0VSUl9NU0coY2ItPmV4dGFjaywgImlwdjQ6IEZJQiB0YWJsZSBkb2VzIG5vdCBleGlzdCIp OwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaXBtci5jIGIvbmV0L2lwdjQvaXBtci5jCmluZGV4IDU4 MDA3NDM5Y2ZmZC4uZDcxOTM1NjE4ODcxIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9pcG1yLmMKKysr IGIvbmV0L2lwdjQvaXBtci5jCkBAIC0yNjA5LDcgKzI2MDksNyBAQCBzdGF0aWMgaW50IGlwbXJf cnRtX2R1bXByb3V0ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0bGlua19jYWxsYmFj ayAqY2IpCiAKIAkJbXJ0ID0gaXBtcl9nZXRfdGFibGUoc29ja19uZXQoc2tiLT5zayksIGZpbHRl ci50YWJsZV9pZCk7CiAJCWlmICghbXJ0KSB7Ci0JCQlpZiAoZmlsdGVyLmR1bXBfYWxsX2ZhbWls aWVzKQorCQkJaWYgKHJ0bmxfbXNnX2ZhbWlseShjYi0+bmxoKSAhPSBSVE5MX0ZBTUlMWV9JUE1S KQogCQkJCXJldHVybiBza2ItPmxlbjsKIAogCQkJTkxfU0VUX0VSUl9NU0coY2ItPmV4dGFjaywg ImlwdjQ6IE1SIHRhYmxlIGRvZXMgbm90IGV4aXN0Iik7CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9p cDZfZmliLmMgYi9uZXQvaXB2Ni9pcDZfZmliLmMKaW5kZXggYzc1Mjc0ZTA3NDVjLi43YTBjODc3 Y2EzMDYgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2lwNl9maWIuYworKysgYi9uZXQvaXB2Ni9pcDZf ZmliLmMKQEAgLTYxMyw3ICs2MTMsNyBAQCBzdGF0aWMgaW50IGluZXQ2X2R1bXBfZmliKHN0cnVj dCBza19idWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYikKIAlpZiAoYXJnLmZp bHRlci50YWJsZV9pZCkgewogCQl0YiA9IGZpYjZfZ2V0X3RhYmxlKG5ldCwgYXJnLmZpbHRlci50 YWJsZV9pZCk7CiAJCWlmICghdGIpIHsKLQkJCWlmIChhcmcuZmlsdGVyLmR1bXBfYWxsX2ZhbWls aWVzKQorCQkJaWYgKHJ0bmxfbXNnX2ZhbWlseShjYi0+bmxoKSAhPSBQRl9JTkVUNikKIAkJCQln b3RvIG91dDsKIAogCQkJTkxfU0VUX0VSUl9NU0dfTU9EKGNiLT5leHRhY2ssICJGSUIgdGFibGUg ZG9lcyBub3QgZXhpc3QiKTsKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNm1yLmMgYi9uZXQvaXB2 Ni9pcDZtci5jCmluZGV4IDg1N2E4OWFkNGQ2Yy4uZGQ0MTMxM2Q3ZmE1IDEwMDY0NAotLS0gYS9u ZXQvaXB2Ni9pcDZtci5jCisrKyBiL25ldC9pcHY2L2lwNm1yLmMKQEAgLTI0OTgsNyArMjQ5OCw3 IEBAIHN0YXRpYyBpbnQgaXA2bXJfcnRtX2R1bXByb3V0ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBz dHJ1Y3QgbmV0bGlua19jYWxsYmFjayAqY2IpCiAKIAkJbXJ0ID0gaXA2bXJfZ2V0X3RhYmxlKHNv Y2tfbmV0KHNrYi0+c2spLCBmaWx0ZXIudGFibGVfaWQpOwogCQlpZiAoIW1ydCkgewotCQkJaWYg KGZpbHRlci5kdW1wX2FsbF9mYW1pbGllcykKKwkJCWlmIChydG5sX21zZ19mYW1pbHkoY2ItPm5s aCkgIT0gUlROTF9GQU1JTFlfSVA2TVIpCiAJCQkJcmV0dXJuIHNrYi0+bGVuOwogCiAJCQlOTF9T RVRfRVJSX01TR19NT0QoY2ItPmV4dGFjaywgIk1SIHRhYmxlIGRvZXMgbm90IGV4aXN0Iik7Ci0t IAoyLjI2LjIKCgpGcm9tIGE3NGI4ZTVjNWVlMzkxMTNiMGJlNjU5MDE3M2QwNzMyYWYxN2Y2NWEg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERFTkcgUWluZ2ZhbmcgPGRxZmV4dEBnbWFp bC5jb20+CkRhdGU6IFdlZCwgMTMgTWF5IDIwMjAgMjM6MTA6MTYgKzA4MDAKU3ViamVjdDogW1BB VENIIDA0LzI1XSBuZXQ6IGRzYTogbXQ3NTMwOiBmaXggcm9hbWluZyBmcm9tIERTQSB1c2VyIHBv cnRzCgpbIFVwc3RyZWFtIGNvbW1pdCA1ZTU1MDJlMDEyYjgxMjllMTFiZTYxNmFjYjBmOWMzNGJj OGY4YWRiIF0KCldoZW4gYSBjbGllbnQgbW92ZXMgZnJvbSBhIERTQSB1c2VyIHBvcnQgdG8gYSBz b2Z0d2FyZSBwb3J0IGluIGEgYnJpZGdlLAppdCBjYW5ub3QgcmVhY2ggYW55IG90aGVyIGNsaWVu dHMgdGhhdCBjb25uZWN0ZWQgdG8gdGhlIERTQSB1c2VyIHBvcnRzLgpUaGF0IGlzIGJlY2F1c2Ug U0EgbGVhcm5pbmcgb24gdGhlIENQVSBwb3J0IGlzIGRpc2FibGVkLCBzbyB0aGUgc3dpdGNoCmln bm9yZXMgdGhlIGNsaWVudCdzIGZyYW1lcyBmcm9tIHRoZSBDUFUgcG9ydCBhbmQgc3RpbGwgdGhp bmtzIGl0IGlzIGF0CnRoZSB1c2VyIHBvcnQuCgpGaXggaXQgYnkgZW5hYmxpbmcgU0EgbGVhcm5p bmcgb24gdGhlIENQVSBwb3J0LgoKVG8gcHJldmVudCB0aGUgc3dpdGNoIGZyb20gbGVhcm5pbmcg ZnJvbSBmbG9vZGluZyBmcmFtZXMgZnJvbSB0aGUgQ1BVCnBvcnQsIHNldCBza2ItPm9mZmxvYWRf ZndkX21hcmsgdG8gMSBmb3IgdW5pY2FzdCBhbmQgYnJvYWRjYXN0IGZyYW1lcywKYW5kIGxldCB0 aGUgc3dpdGNoIGZsb29kIHRoZW0gaW5zdGVhZCBvZiB0cmFwcGluZyB0byB0aGUgQ1BVIHBvcnQu Ck11bHRpY2FzdCBmcmFtZXMgc3RpbGwgbmVlZCB0byBiZSB0cmFwcGVkIHRvIHRoZSBDUFUgcG9y dCBmb3Igc25vb3BpbmcsCnNvIHNldCB0aGUgU0FfRElTIGJpdCBvZiB0aGUgTVRLIHRhZyB0byAx IHdoZW4gdHJhbnNtaXR0aW5nIHRob3NlIGZyYW1lcwp0byBkaXNhYmxlIFNBIGxlYXJuaW5nLgoK Rml4ZXM6IGI4ZjEyNmE4ZDU0MyAoIm5ldC1uZXh0OiBkc2E6IGFkZCBkc2Egc3VwcG9ydCBmb3Ig TWVkaWF0ZWsgTVQ3NTMwIHN3aXRjaCIpClNpZ25lZC1vZmYtYnk6IERFTkcgUWluZ2ZhbmcgPGRx ZmV4dEBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMgfCAgOSArKy0tLS0tLS0K IGRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuaCB8ICAxICsKIG5ldC9kc2EvdGFnX210ay5jICAgICAg ICB8IDE1ICsrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAxOCBpbnNlcnRpb25zKCsp LCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYyBi L2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYwppbmRleCBjZmZhZjRmZGQ3NzIuLjYwMjdiYjY1Zjdm NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZHNhL210NzUzMC5jCisrKyBiL2RyaXZlcnMvbmV0 L2RzYS9tdDc1MzAuYwpAQCAtNjM5LDExICs2MzksOCBAQCBtdDc1MzBfY3B1X3BvcnRfZW5hYmxl KHN0cnVjdCBtdDc1MzBfcHJpdiAqcHJpdiwKIAltdDc1MzBfd3JpdGUocHJpdiwgTVQ3NTMwX1BW Q19QKHBvcnQpLAogCQkgICAgIFBPUlRfU1BFQ19UQUcpOwogCi0JLyogRGlzYWJsZSBhdXRvIGxl YXJuaW5nIG9uIHRoZSBjcHUgcG9ydCAqLwotCW10NzUzMF9zZXQocHJpdiwgTVQ3NTMwX1BTQ19Q KHBvcnQpLCBTQV9ESVMpOwotCi0JLyogVW5rbm93biB1bmljYXN0IGZyYW1lIGZvcmR3YXJkaW5n IHRvIHRoZSBjcHUgcG9ydCAqLwotCW10NzUzMF9zZXQocHJpdiwgTVQ3NTMwX01GQywgVU5VX0ZG UChCSVQocG9ydCkpKTsKKwkvKiBVbmtub3duIG11bHRpY2FzdCBmcmFtZSBmb3J3YXJkaW5nIHRv IHRoZSBjcHUgcG9ydCAqLworCW10NzUzMF9ybXcocHJpdiwgTVQ3NTMwX01GQywgVU5NX0ZGUF9N QVNLLCBVTk1fRkZQKEJJVChwb3J0KSkpOwogCiAJLyogU2V0IENQVSBwb3J0IG51bWJlciAqLwog CWlmIChwcml2LT5pZCA9PSBJRF9NVDc2MjEpCkBAIC0xMjQ2LDggKzEyNDMsNiBAQCBtdDc1MzBf c2V0dXAoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKQogCS8qIEVuYWJsZSBhbmQgcmVzZXQgTUlCIGNv dW50ZXJzICovCiAJbXQ3NTMwX21pYl9yZXNldChkcyk7CiAKLQltdDc1MzBfY2xlYXIocHJpdiwg TVQ3NTMwX01GQywgVU5VX0ZGUF9NQVNLKTsKLQogCWZvciAoaSA9IDA7IGkgPCBNVDc1MzBfTlVN X1BPUlRTOyBpKyspIHsKIAkJLyogRGlzYWJsZSBmb3J3YXJkaW5nIGJ5IGRlZmF1bHQgb24gYWxs IHBvcnRzICovCiAJCW10NzUzMF9ybXcocHJpdiwgTVQ3NTMwX1BDUl9QKGkpLCBQQ1JfTUFUUklY X01BU0ssCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmggYi9kcml2ZXJzL25l dC9kc2EvbXQ3NTMwLmgKaW5kZXggNzU2MTQwYjdkZmQ1Li4wZTdlMzZkOGY5OTQgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAuaAorKysgYi9kcml2ZXJzL25ldC9kc2EvbXQ3NTMw LmgKQEAgLTMxLDYgKzMxLDcgQEAgZW51bSB7CiAjZGVmaW5lIE1UNzUzMF9NRkMJCQkweDEwCiAj ZGVmaW5lICBCQ19GRlAoeCkJCQkoKCh4KSAmIDB4ZmYpIDw8IDI0KQogI2RlZmluZSAgVU5NX0ZG UCh4KQkJCSgoKHgpICYgMHhmZikgPDwgMTYpCisjZGVmaW5lICBVTk1fRkZQX01BU0sJCQlVTk1f RkZQKH4wKQogI2RlZmluZSAgVU5VX0ZGUCh4KQkJCSgoKHgpICYgMHhmZikgPDwgOCkKICNkZWZp bmUgIFVOVV9GRlBfTUFTSwkJCVVOVV9GRlAofjApCiAjZGVmaW5lICBDUFVfRU4JCQkJQklUKDcp CmRpZmYgLS1naXQgYS9uZXQvZHNhL3RhZ19tdGsuYyBiL25ldC9kc2EvdGFnX210ay5jCmluZGV4 IGI1NzA1Y2JhODMxOC4uZDY2MTllZGQ1M2U1IDEwMDY0NAotLS0gYS9uZXQvZHNhL3RhZ19tdGsu YworKysgYi9uZXQvZHNhL3RhZ19tdGsuYwpAQCAtMTUsNiArMTUsNyBAQAogI2RlZmluZSBNVEtf SERSX1hNSVRfVEFHR0VEX1RQSURfODEwMAkxCiAjZGVmaW5lIE1US19IRFJfUkVDVl9TT1VSQ0Vf UE9SVF9NQVNLCUdFTk1BU0soMiwgMCkKICNkZWZpbmUgTVRLX0hEUl9YTUlUX0RQX0JJVF9NQVNL CUdFTk1BU0soNSwgMCkKKyNkZWZpbmUgTVRLX0hEUl9YTUlUX1NBX0RJUwkJQklUKDYpCiAKIHN0 YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqbXRrX3RhZ194bWl0KHN0cnVjdCBza19idWZmICpza2IsCiAJ CQkJICAgIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCkBAIC0yMiw2ICsyMyw5IEBAIHN0YXRpYyBz dHJ1Y3Qgc2tfYnVmZiAqbXRrX3RhZ194bWl0KHN0cnVjdCBza19idWZmICpza2IsCiAJc3RydWN0 IGRzYV9wb3J0ICpkcCA9IGRzYV9zbGF2ZV90b19wb3J0KGRldik7CiAJdTggKm10a190YWc7CiAJ Ym9vbCBpc192bGFuX3NrYiA9IHRydWU7CisJdW5zaWduZWQgY2hhciAqZGVzdCA9IGV0aF9oZHIo c2tiKS0+aF9kZXN0OworCWJvb2wgaXNfbXVsdGljYXN0X3NrYiA9IGlzX211bHRpY2FzdF9ldGhl cl9hZGRyKGRlc3QpICYmCisJCQkJIWlzX2Jyb2FkY2FzdF9ldGhlcl9hZGRyKGRlc3QpOwogCiAJ LyogQnVpbGQgdGhlIHNwZWNpYWwgdGFnIGFmdGVyIHRoZSBNQUMgU291cmNlIEFkZHJlc3MuIElm IFZMQU4gaGVhZGVyCiAJICogaXMgcHJlc2VudCwgaXQncyByZXF1aXJlZCB0aGF0IFZMQU4gaGVh ZGVyIGFuZCBzcGVjaWFsIHRhZyBpcwpAQCAtNDcsNiArNTEsMTAgQEAgc3RhdGljIHN0cnVjdCBz a19idWZmICptdGtfdGFnX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJICAgICBNVEtfSERS X1hNSVRfVU5UQUdHRUQ7CiAJbXRrX3RhZ1sxXSA9ICgxIDw8IGRwLT5pbmRleCkgJiBNVEtfSERS X1hNSVRfRFBfQklUX01BU0s7CiAKKwkvKiBEaXNhYmxlIFNBIGxlYXJuaW5nIGZvciBtdWx0aWNh c3QgZnJhbWVzICovCisJaWYgKHVubGlrZWx5KGlzX211bHRpY2FzdF9za2IpKQorCQltdGtfdGFn WzFdIHw9IE1US19IRFJfWE1JVF9TQV9ESVM7CisKIAkvKiBUYWcgY29udHJvbCBpbmZvcm1hdGlv biBpcyBrZXB0IGZvciA4MDIuMVEgKi8KIAlpZiAoIWlzX3ZsYW5fc2tiKSB7CiAJCW10a190YWdb Ml0gPSAwOwpAQCAtNjEsNiArNjksOSBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKm10a190YWdf cmN2KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiB7CiAJaW50 IHBvcnQ7CiAJX19iZTE2ICpwaGRyLCBoZHI7CisJdW5zaWduZWQgY2hhciAqZGVzdCA9IGV0aF9o ZHIoc2tiKS0+aF9kZXN0OworCWJvb2wgaXNfbXVsdGljYXN0X3NrYiA9IGlzX211bHRpY2FzdF9l dGhlcl9hZGRyKGRlc3QpICYmCisJCQkJIWlzX2Jyb2FkY2FzdF9ldGhlcl9hZGRyKGRlc3QpOwog CiAJaWYgKHVubGlrZWx5KCFwc2tiX21heV9wdWxsKHNrYiwgTVRLX0hEUl9MRU4pKSkKIAkJcmV0 dXJuIE5VTEw7CkBAIC04Niw2ICs5NywxMCBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKm10a190 YWdfcmN2KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJaWYg KCFza2ItPmRldikKIAkJcmV0dXJuIE5VTEw7CiAKKwkvKiBPbmx5IHVuaWNhc3Qgb3IgYnJvYWRj YXN0IGZyYW1lcyBhcmUgb2ZmbG9hZGVkICovCisJaWYgKGxpa2VseSghaXNfbXVsdGljYXN0X3Nr YikpCisJCXNrYi0+b2ZmbG9hZF9md2RfbWFyayA9IDE7CisKIAlyZXR1cm4gc2tiOwogfQogCi0t IAoyLjI2LjIKCgpGcm9tIGRjM2YxYTBkMzY1MjNjY2M1MzYzN2QxN2ZiM2RlMzM5OTlkMzUzNDUg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEdyeWdvcmlpIFN0cmFzaGtvIDxncnlnb3Jp aS5zdHJhc2hrb0B0aS5jb20+CkRhdGU6IEZyaSwgMjIgTWF5IDIwMjAgMjA6MDk6MjggKzAzMDAK U3ViamVjdDogW1BBVENIIDA1LzI1XSBuZXQ6IGV0aGVybmV0OiB0aTogY3BzdzogZml4IEFTU0VS VF9SVE5MKCkgd2FybmluZwogZHVyaW5nIHN1c3BlbmQKClsgVXBzdHJlYW0gY29tbWl0IDRjNjRi ODNkMDNmNGFhZmNkZjcxMGNhYWQ5OTRjYmM4NTU4MDJlNzQgXQoKdmxhbl9mb3JfZWFjaCgpIGFy ZSByZXF1aXJlZCB0byBiZSBjYWxsZWQgd2l0aCBydG5sX2xvY2sgdGFrZW4sIG90aGVyd2lzZQpB U1NFUlRfUlROTCgpIHdhcm5pbmcgd2lsbCBiZSB0cmlnZ2VyZWQgLSB3aGljaCBoYXBwZW5zIG5v dyBkdXJpbmcgU3lzdGVtCnJlc3VtZSBmcm9tIHN1c3BlbmQ6CiAgY3Bzd19zdXNwZW5kKCkKICB8 LSBjcHN3X25kb19zdG9wKCkKICAgIHwtIF9faHdfYWRkcl9yZWZfdW5zeW5jX2RldigpCiAgICAg IHwtIGNwc3dfcHVyZ2VfYWxsX21jKCkKICAgICAgICAgfC0gdmxhbl9mb3JfZWFjaCgpCiAgICAg ICAgICAgIHwtIEFTU0VSVF9SVE5MKCk7CgpIZW5jZSwgZml4IGl0IGJ5IHN1cnJvdW5kaW5nIGNw c3dfbmRvX3N0b3AoKSBieSBydG5sX2xvY2svdW5sb2NrKCkgY2FsbHMuCgpGaXhlczogMTUxODBl Y2E1NjliICgibmV0OiBldGhlcm5ldDogdGk6IGNwc3c6IGZpeCB2bGFuIG1jYXN0IikKU2lnbmVk LW9mZi1ieTogR3J5Z29yaWkgU3RyYXNoa28gPGdyeWdvcmlpLnN0cmFzaGtvQHRpLmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRy aXZlcnMvbmV0L2V0aGVybmV0L3RpL2Nwc3cuYyB8IDQgKysrKwogMSBmaWxlIGNoYW5nZWQsIDQg aW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3RpL2Nwc3cu YyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3RpL2Nwc3cuYwppbmRleCBkN2E5NTNjNjQ3YjQuLjM5 ZGY4YzhmZWI2YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvY3Bzdy5jCisr KyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3RpL2Nwc3cuYwpAQCAtMjk5OSwxMSArMjk5OSwxNSBA QCBzdGF0aWMgaW50IGNwc3dfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJc3RydWN0IGNw c3dfY29tbW9uICpjcHN3ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CiAJaW50IGk7CiAKKwlydG5s X2xvY2soKTsKKwogCWZvciAoaSA9IDA7IGkgPCBjcHN3LT5kYXRhLnNsYXZlczsgaSsrKQogCQlp ZiAoY3Bzdy0+c2xhdmVzW2ldLm5kZXYpCiAJCQlpZiAobmV0aWZfcnVubmluZyhjcHN3LT5zbGF2 ZXNbaV0ubmRldikpCiAJCQkJY3Bzd19uZG9fc3RvcChjcHN3LT5zbGF2ZXNbaV0ubmRldik7CiAK KwlydG5sX3VubG9jaygpOworCiAJLyogU2VsZWN0IHNsZWVwIHBpbiBzdGF0ZSAqLwogCXBpbmN0 cmxfcG1fc2VsZWN0X3NsZWVwX3N0YXRlKGRldik7CiAKLS0gCjIuMjYuMgoKCkZyb20gMzQyOWVh YTRkNjc0MDNlNjZmOTUzMzA2YmM4NzFhMmU4ZWM2ZmU0MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogQm9yaXMgU3VraG9saXRrbyA8Ym9yaXMuc3VraG9saXRrb0Bicm9hZGNvbS5jb20+ CkRhdGU6IFR1ZSwgMTkgTWF5IDIwMjAgMTA6MzI6MzcgKzAzMDAKU3ViamVjdDogW1BBVENIIDA2 LzI1XSBfX25ldGlmX3JlY2VpdmVfc2tiX2NvcmU6IHBhc3Mgc2tiIGJ5IHJlZmVyZW5jZQoKWyBV cHN0cmVhbSBjb21taXQgYzBiYmJkYzMyZmViZDRmMDM0ZWNiZjNlYTE3ODY1Nzg1YjJjMDY1MiBd CgpfX25ldGlmX3JlY2VpdmVfc2tiX2NvcmUgbWF5IGNoYW5nZSB0aGUgc2tiIHBvaW50ZXIgcGFz c2VkIGludG8gaXQgKGUuZy4KaW4gcnhfaGFuZGxlcikuIFRoZSBvcmlnaW5hbCBza2IgbWF5IGJl IGZyZWVkIGFzIGEgcmVzdWx0IG9mIHRoaXMKb3BlcmF0aW9uLgoKVGhlIGNhbGxlcnMgb2YgX19u ZXRpZl9yZWNlaXZlX3NrYl9jb3JlIG1heSBmdXJ0aGVyIHByb2Nlc3Mgb3JpZ2luYWwgc2tiCmJ5 IHVzaW5nIHB0X3ByZXYgcG9pbnRlciByZXR1cm5lZCBieSBfX25ldGlmX3JlY2VpdmVfc2tiX2Nv cmUgdGh1cwpsZWFkaW5nIHRvIHVucGxlYXNhbnQgZWZmZWN0cy4KClRoZSBzb2x1dGlvbiBpcyB0 byBwYXNzIHNrYiBieSByZWZlcmVuY2UgaW50byBfX25ldGlmX3JlY2VpdmVfc2tiX2NvcmUuCgp2 MjogQWRkZWQgRml4ZXMgdGFnIGFuZCBjb21tZW50IHJlZ2FyZGluZyBwcHRfcHJldiBhbmQgc2ti IGludmFyaWFudC4KCkZpeGVzOiA4OGViMTk0NGUxOGMgKCJuZXQ6IGNvcmU6IHByb3BhZ2F0ZSBT S0IgbGlzdHMgdGhyb3VnaCBwYWNrZXRfdHlwZSBsb29rdXAiKQpTaWduZWQtb2ZmLWJ5OiBCb3Jp cyBTdWtob2xpdGtvIDxib3Jpcy5zdWtob2xpdGtvQGJyb2FkY29tLmNvbT4KQWNrZWQtYnk6IEVk d2FyZCBDcmVlIDxlY3JlZUBzb2xhcmZsYXJlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL2Rldi5jIHwgMjAgKysr KysrKysrKysrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCA1IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2Rldi5jIGIvbmV0L2NvcmUvZGV2LmMK aW5kZXggMTIwYjk5NGFmMzFjLi44NTUyODc0ZTVhYWMgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2Rl di5jCisrKyBiL25ldC9jb3JlL2Rldi5jCkBAIC00NzEzLDExICs0NzEzLDEyIEBAIHN0YXRpYyBp bmxpbmUgaW50IG5mX2luZ3Jlc3Moc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHBhY2tldF90 eXBlICoqcHRfcHJldiwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBfX25ldGlmX3JlY2Vp dmVfc2tiX2NvcmUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgYm9vbCBwZm1lbWFsbG9jLAorc3RhdGlj IGludCBfX25ldGlmX3JlY2VpdmVfc2tiX2NvcmUoc3RydWN0IHNrX2J1ZmYgKipwc2tiLCBib29s IHBmbWVtYWxsb2MsCiAJCQkJICAgIHN0cnVjdCBwYWNrZXRfdHlwZSAqKnBwdF9wcmV2KQogewog CXN0cnVjdCBwYWNrZXRfdHlwZSAqcHR5cGUsICpwdF9wcmV2OwogCXJ4X2hhbmRsZXJfZnVuY190 ICpyeF9oYW5kbGVyOworCXN0cnVjdCBza19idWZmICpza2IgPSAqcHNrYjsKIAlzdHJ1Y3QgbmV0 X2RldmljZSAqb3JpZ19kZXY7CiAJYm9vbCBkZWxpdmVyX2V4YWN0ID0gZmFsc2U7CiAJaW50IHJl dCA9IE5FVF9SWF9EUk9QOwpAQCAtNDc0OCw4ICs0NzQ5LDEwIEBAIHN0YXRpYyBpbnQgX19uZXRp Zl9yZWNlaXZlX3NrYl9jb3JlKHN0cnVjdCBza19idWZmICpza2IsIGJvb2wgcGZtZW1hbGxvYywK IAkJcmV0MiA9IGRvX3hkcF9nZW5lcmljKHJjdV9kZXJlZmVyZW5jZShza2ItPmRldi0+eGRwX3By b2cpLCBza2IpOwogCQlwcmVlbXB0X2VuYWJsZSgpOwogCi0JCWlmIChyZXQyICE9IFhEUF9QQVNT KQotCQkJcmV0dXJuIE5FVF9SWF9EUk9QOworCQlpZiAocmV0MiAhPSBYRFBfUEFTUykgeworCQkJ cmV0ID0gTkVUX1JYX0RST1A7CisJCQlnb3RvIG91dDsKKwkJfQogCQlza2JfcmVzZXRfbWFjX2xl bihza2IpOwogCX0KIApAQCAtNDg5OSw2ICs0OTAyLDEzIEBAIHN0YXRpYyBpbnQgX19uZXRpZl9y ZWNlaXZlX3NrYl9jb3JlKHN0cnVjdCBza19idWZmICpza2IsIGJvb2wgcGZtZW1hbGxvYywKIAl9 CiAKIG91dDoKKwkvKiBUaGUgaW52YXJpYW50IGhlcmUgaXMgdGhhdCBpZiAqcHB0X3ByZXYgaXMg bm90IE5VTEwKKwkgKiB0aGVuIHNrYiBzaG91bGQgYWxzbyBiZSBub24tTlVMTC4KKwkgKgorCSAq IEFwcGFyZW50bHkgKnBwdF9wcmV2IGFzc2lnbm1lbnQgYWJvdmUgaG9sZHMgdGhpcyBpbnZhcmlh bnQgZHVlIHRvCisJICogc2tiIGRlcmVmZXJlbmNpbmcgbmVhciBpdC4KKwkgKi8KKwkqcHNrYiA9 IHNrYjsKIAlyZXR1cm4gcmV0OwogfQogCkBAIC00OTA4LDcgKzQ5MTgsNyBAQCBzdGF0aWMgaW50 IF9fbmV0aWZfcmVjZWl2ZV9za2Jfb25lX2NvcmUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgYm9vbCBw Zm1lbWFsbG9jKQogCXN0cnVjdCBwYWNrZXRfdHlwZSAqcHRfcHJldiA9IE5VTEw7CiAJaW50IHJl dDsKIAotCXJldCA9IF9fbmV0aWZfcmVjZWl2ZV9za2JfY29yZShza2IsIHBmbWVtYWxsb2MsICZw dF9wcmV2KTsKKwlyZXQgPSBfX25ldGlmX3JlY2VpdmVfc2tiX2NvcmUoJnNrYiwgcGZtZW1hbGxv YywgJnB0X3ByZXYpOwogCWlmIChwdF9wcmV2KQogCQlyZXQgPSBJTkRJUkVDVF9DQUxMX0lORVQo cHRfcHJldi0+ZnVuYywgaXB2Nl9yY3YsIGlwX3Jjdiwgc2tiLAogCQkJCQkgc2tiLT5kZXYsIHB0 X3ByZXYsIG9yaWdfZGV2KTsKQEAgLTQ5ODYsNyArNDk5Niw3IEBAIHN0YXRpYyB2b2lkIF9fbmV0 aWZfcmVjZWl2ZV9za2JfbGlzdF9jb3JlKHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQsIGJvb2wgcGZt ZW1hbGxvCiAJCXN0cnVjdCBwYWNrZXRfdHlwZSAqcHRfcHJldiA9IE5VTEw7CiAKIAkJc2tiX2xp c3RfZGVsX2luaXQoc2tiKTsKLQkJX19uZXRpZl9yZWNlaXZlX3NrYl9jb3JlKHNrYiwgcGZtZW1h bGxvYywgJnB0X3ByZXYpOworCQlfX25ldGlmX3JlY2VpdmVfc2tiX2NvcmUoJnNrYiwgcGZtZW1h bGxvYywgJnB0X3ByZXYpOwogCQlpZiAoIXB0X3ByZXYpCiAJCQljb250aW51ZTsKIAkJaWYgKHB0 X2N1cnIgIT0gcHRfcHJldiB8fCBvZF9jdXJyICE9IG9yaWdfZGV2KSB7Ci0tIAoyLjI2LjIKCgpG cm9tIDNjZTQzNGFmM2M4MTg3MmVlNDlkMzczNzg4YjJiODUyZjQ1ZWNkMTkgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IE1hcnRpbiBLYUZhaSBMYXUgPGthZmFpQGZiLmNvbT4KRGF0ZTog TW9uLCAxOCBNYXkgMjAyMCAxNzoxMzozNCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDcvMjVdIG5l dDogaW5ldF9jc2s6IEZpeCBzb19yZXVzZXBvcnQgYmluZC1hZGRyZXNzIGNhY2hlIGluCiB0Yi0+ ZmFzdCoKClsgVXBzdHJlYW0gY29tbWl0IDg4ZDdmY2ZhM2IxZmU2NzBmMDQxMmI5NWJlNzg1YWFm Y2E2MzM1MmIgXQoKVGhlIGNvbW1pdCA2MzdiYzhiYmU2YzAgKCJpbmV0OiByZXNldCB0Yi0+ZmFz dHJldXNlcG9ydCB3aGVuIGFkZGluZyBhIHJldXNlcG9ydCBzayIpCmFkZGVkIGEgYmluZC1hZGRy ZXNzIGNhY2hlIGluIHRiLT5mYXN0Ki4gIFRoZSB0Yi0+ZmFzdCogY2FjaGVzIHRoZSBhZGRyZXNz Cm9mIGEgc2sgd2hpY2ggaGFzIHN1Y2Nlc3NmdWxseSBiZWVuIGJpbmRlZCB3aXRoIFNPX1JFVVNF UE9SVCBPTi4gIFRoZSBpZGVhCmlzIHRvIGF2b2lkIHRoZSBleHBlbnNpdmUgY29uZmxpY3Qgc2Vh cmNoIGluIGluZXRfY3NrX2JpbmRfY29uZmxpY3QoKS4KClRoZXJlIGlzIGFuIGlzc3VlIHdpdGgg d2lsZGNhcmQgbWF0Y2hpbmcgd2hlcmUgc2tfcmV1c2Vwb3J0X21hdGNoKCkgc2hvdWxkCmhhdmUg cmV0dXJuZWQgZmFsc2UgYnV0IGl0IGlzIGN1cnJlbnRseSByZXR1cm5pbmcgdHJ1ZS4gIEl0IGVu ZHMgdXAKaGlkaW5nIGJpbmQgY29uZmxpY3QuICBGb3IgZXhhbXBsZSwKCmJpbmQoIls6OjFdOjQ0 MyIpOyAvKiB3aXRob3V0IFNPX1JFVVNFUE9SVC4gU3VjY2VlZC4gKi8KYmluZCgiWzo6Ml06NDQz Iik7IC8qIHdpdGggICAgU09fUkVVU0VQT1JULiBTdWNjZWVkLiAqLwpiaW5kKCJbOjpdOjQ0MyIp OyAgLyogd2l0aCAgICBTT19SRVVTRVBPUlQuIFN0aWxsIFN1Y2NlZWQgd2hlcmUgaXQgc2hvdWxk bid0ICovCgpUaGUgbGFzdCBiaW5kKCJbOjpdOjQ0MyIpIHdpdGggU09fUkVVU0VQT1JUIG9uIHNo b3VsZCBoYXZlIGZhaWxlZCBiZWNhdXNlCml0IHNob3VsZCBoYXZlIGEgY29uZmxpY3Qgd2l0aCB0 aGUgdmVyeSBmaXJzdCBiaW5kKCJbOjoxXTo0NDMiKSB3aGljaApoYXMgU09fUkVVU0VQT1JUIG9m Zi4gIEhvd2V2ZXIsIHRoZSBhZGRyZXNzICJbOjoyXSIgaXMgY2FjaGVkIGluCnRiLT5mYXN0KiBp biB0aGUgc2Vjb25kIGJpbmQuIEluIHRoZSBsYXN0IGJpbmQsIHRoZSBza19yZXVzZXBvcnRfbWF0 Y2goKQpyZXR1cm5zIHRydWUgYmVjYXVzZSB0aGUgYmluZGluZyBzaydzIHdpbGRjYXJkIGFkZHIg Ils6Ol0iIG1hdGNoZXMgd2l0aAp0aGUgIls6OjJdIiBjYWNoZWQgaW4gdGItPmZhc3QqLgoKVGhl IGNvcnJlY3QgYmluZCBjb25mbGljdCBpcyByZXBvcnRlZCBieSByZW1vdmluZyB0aGUgc2Vjb25k CmJpbmQgc3VjaCB0aGF0IHRiLT5mYXN0KiBjYWNoZSBpcyBub3QgaW52b2x2ZWQgYW5kIGZvcmNl cyB0aGUKYmluZCgiWzo6XTo0NDMiKSB0byBnbyB0aHJvdWdoIHRoZSBpbmV0X2Nza19iaW5kX2Nv bmZsaWN0KCk6CgpiaW5kKCJbOjoxXTo0NDMiKTsgLyogd2l0aG91dCBTT19SRVVTRVBPUlQuIFN1 Y2NlZWQuICovCmJpbmQoIls6Ol06NDQzIik7ICAvKiB3aXRoICAgIFNPX1JFVVNFUE9SVC4gLUVB RERSSU5VU0UgKi8KClRoZSBleHBlY3RlZCBiZWhhdmlvciBmb3Igc2tfcmV1c2Vwb3J0X21hdGNo KCkgaXMsIGl0IHNob3VsZCBvbmx5IGFsbG93CnRoZSAiY2FjaGVkIiB0Yi0+ZmFzdCogYWRkcmVz cyB0byBiZSB1c2VkIGFzIGEgd2lsZGNhcmQgbWF0Y2ggYnV0IG5vdAp0aGUgYWRkcmVzcyBvZiB0 aGUgYmluZGluZyBzay4gIFRvIGRvIHRoYXQsIHRoZSBjdXJyZW50CiJib29sIG1hdGNoX3dpbGRj YXJkIiBhcmcgaXMgc3BsaXQgaW50bwoiYm9vbCBtYXRjaF9zazFfd2lsZGNhcmQiIGFuZCAiYm9v bCBtYXRjaF9zazJfd2lsZGNhcmQiLgoKVGhpcyBjaGFuZ2Ugb25seSBhZmZlY3RzIHRoZSBza19y ZXVzZXBvcnRfbWF0Y2goKSB3aGljaCBpcyBvbmx5CnVzZWQgYnkgaW5ldF9jc2sgKGUuZy4gVENQ KS4KVGhlIG90aGVyIHVzZSBjYXNlcyBhcmUgY2FsbGluZyBpbmV0X3Jjdl9zYWRkcl9lcXVhbCgp IGFuZAp0aGlzIHBhdGNoIG1ha2VzIGl0IHBhc3MgdGhlIHNhbWUgIm1hdGNoX3dpbGRjYXJkIiBh cmcgdHdpY2UgdG8KdGhlICJpcHZbNDZdX3Jjdl9zYWRkcl9lcXVhbCguLi4sIG1hdGNoX3dpbGRj YXJkLCBtYXRjaF93aWxkY2FyZCkiLgoKQ2M6IEpvc2VmIEJhY2lrIDxqYmFjaWtAZmIuY29tPgpG aXhlczogNjM3YmM4YmJlNmMwICgiaW5ldDogcmVzZXQgdGItPmZhc3RyZXVzZXBvcnQgd2hlbiBh ZGRpbmcgYSByZXVzZXBvcnQgc2siKQpTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS2FGYWkgTGF1IDxr YWZhaUBmYi5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jIHwgNDMgKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjQgaW5zZXJ0aW9u cygrKSwgMTkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaW5ldF9jb25uZWN0 aW9uX3NvY2suYyBiL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMKaW5kZXggYjAwMTBj NzEwODAyLi41ZTQ4Njg5NWQ2N2MgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2luZXRfY29ubmVjdGlv bl9zb2NrLmMKKysrIGIvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYwpAQCAtMjQsMTcg KzI0LDE5IEBACiAjaW5jbHVkZSA8bmV0L2FkZHJjb25mLmg+CiAKICNpZiBJU19FTkFCTEVEKENP TkZJR19JUFY2KQotLyogbWF0Y2hfd2lsZGNhcmQgPT0gdHJ1ZTogIElQVjZfQUREUl9BTlkgZXF1 YWxzIHRvIGFueSBJUHY2IGFkZHJlc3NlcyBpZiBJUHY2Ci0gKiAgICAgICAgICAgICAgICAgICAg ICAgICAgb25seSwgYW5kIGFueSBJUHY0IGFkZHJlc3NlcyBpZiBub3QgSVB2NiBvbmx5Ci0gKiBt YXRjaF93aWxkY2FyZCA9PSBmYWxzZTogYWRkcmVzc2VzIG11c3QgYmUgZXhhY3RseSB0aGUgc2Ft ZSwgaS5lLgotICogICAgICAgICAgICAgICAgICAgICAgICAgIElQVjZfQUREUl9BTlkgb25seSBl cXVhbHMgdG8gSVBWNl9BRERSX0FOWSwKLSAqICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQg MC4wLjAuMCBlcXVhbHMgdG8gMC4wLjAuMCBvbmx5CisvKiBtYXRjaF9zaypfd2lsZGNhcmQgPT0g dHJ1ZTogIElQVjZfQUREUl9BTlkgZXF1YWxzIHRvIGFueSBJUHY2IGFkZHJlc3NlcworICoJCQkJ aWYgSVB2NiBvbmx5LCBhbmQgYW55IElQdjQgYWRkcmVzc2VzCisgKgkJCQlpZiBub3QgSVB2NiBv bmx5CisgKiBtYXRjaF9zaypfd2lsZGNhcmQgPT0gZmFsc2U6IGFkZHJlc3NlcyBtdXN0IGJlIGV4 YWN0bHkgdGhlIHNhbWUsIGkuZS4KKyAqCQkJCUlQVjZfQUREUl9BTlkgb25seSBlcXVhbHMgdG8g SVBWNl9BRERSX0FOWSwKKyAqCQkJCWFuZCAwLjAuMC4wIGVxdWFscyB0byAwLjAuMC4wIG9ubHkK ICAqLwogc3RhdGljIGJvb2wgaXB2Nl9yY3Zfc2FkZHJfZXF1YWwoY29uc3Qgc3RydWN0IGluNl9h ZGRyICpzazFfcmN2X3NhZGRyNiwKIAkJCQkgY29uc3Qgc3RydWN0IGluNl9hZGRyICpzazJfcmN2 X3NhZGRyNiwKIAkJCQkgX19iZTMyIHNrMV9yY3Zfc2FkZHIsIF9fYmUzMiBzazJfcmN2X3NhZGRy LAogCQkJCSBib29sIHNrMV9pcHY2b25seSwgYm9vbCBzazJfaXB2Nm9ubHksCi0JCQkJIGJvb2wg bWF0Y2hfd2lsZGNhcmQpCisJCQkJIGJvb2wgbWF0Y2hfc2sxX3dpbGRjYXJkLAorCQkJCSBib29s IG1hdGNoX3NrMl93aWxkY2FyZCkKIHsKIAlpbnQgYWRkcl90eXBlID0gaXB2Nl9hZGRyX3R5cGUo c2sxX3Jjdl9zYWRkcjYpOwogCWludCBhZGRyX3R5cGUyID0gc2syX3Jjdl9zYWRkcjYgPyBpcHY2 X2FkZHJfdHlwZShzazJfcmN2X3NhZGRyNikgOiBJUFY2X0FERFJfTUFQUEVEOwpAQCAtNDQsOCAr NDYsOCBAQCBzdGF0aWMgYm9vbCBpcHY2X3Jjdl9zYWRkcl9lcXVhbChjb25zdCBzdHJ1Y3QgaW42 X2FkZHIgKnNrMV9yY3Zfc2FkZHI2LAogCQlpZiAoIXNrMl9pcHY2b25seSkgewogCQkJaWYgKHNr MV9yY3Zfc2FkZHIgPT0gc2syX3Jjdl9zYWRkcikKIAkJCQlyZXR1cm4gdHJ1ZTsKLQkJCWlmICgh c2sxX3Jjdl9zYWRkciB8fCAhc2syX3Jjdl9zYWRkcikKLQkJCQlyZXR1cm4gbWF0Y2hfd2lsZGNh cmQ7CisJCQlyZXR1cm4gKG1hdGNoX3NrMV93aWxkY2FyZCAmJiAhc2sxX3Jjdl9zYWRkcikgfHwK KwkJCQkobWF0Y2hfc2syX3dpbGRjYXJkICYmICFzazJfcmN2X3NhZGRyKTsKIAkJfQogCQlyZXR1 cm4gZmFsc2U7CiAJfQpAQCAtNTMsMTEgKzU1LDExIEBAIHN0YXRpYyBib29sIGlwdjZfcmN2X3Nh ZGRyX2VxdWFsKGNvbnN0IHN0cnVjdCBpbjZfYWRkciAqc2sxX3Jjdl9zYWRkcjYsCiAJaWYgKGFk ZHJfdHlwZSA9PSBJUFY2X0FERFJfQU5ZICYmIGFkZHJfdHlwZTIgPT0gSVBWNl9BRERSX0FOWSkK IAkJcmV0dXJuIHRydWU7CiAKLQlpZiAoYWRkcl90eXBlMiA9PSBJUFY2X0FERFJfQU5ZICYmIG1h dGNoX3dpbGRjYXJkICYmCisJaWYgKGFkZHJfdHlwZTIgPT0gSVBWNl9BRERSX0FOWSAmJiBtYXRj aF9zazJfd2lsZGNhcmQgJiYKIAkgICAgIShzazJfaXB2Nm9ubHkgJiYgYWRkcl90eXBlID09IElQ VjZfQUREUl9NQVBQRUQpKQogCQlyZXR1cm4gdHJ1ZTsKIAotCWlmIChhZGRyX3R5cGUgPT0gSVBW Nl9BRERSX0FOWSAmJiBtYXRjaF93aWxkY2FyZCAmJgorCWlmIChhZGRyX3R5cGUgPT0gSVBWNl9B RERSX0FOWSAmJiBtYXRjaF9zazFfd2lsZGNhcmQgJiYKIAkgICAgIShzazFfaXB2Nm9ubHkgJiYg YWRkcl90eXBlMiA9PSBJUFY2X0FERFJfTUFQUEVEKSkKIAkJcmV0dXJuIHRydWU7CiAKQEAgLTY5 LDE4ICs3MSwxOSBAQCBzdGF0aWMgYm9vbCBpcHY2X3Jjdl9zYWRkcl9lcXVhbChjb25zdCBzdHJ1 Y3QgaW42X2FkZHIgKnNrMV9yY3Zfc2FkZHI2LAogfQogI2VuZGlmCiAKLS8qIG1hdGNoX3dpbGRj YXJkID09IHRydWU6ICAwLjAuMC4wIGVxdWFscyB0byBhbnkgSVB2NCBhZGRyZXNzZXMKLSAqIG1h dGNoX3dpbGRjYXJkID09IGZhbHNlOiBhZGRyZXNzZXMgbXVzdCBiZSBleGFjdGx5IHRoZSBzYW1l LCBpLmUuCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgMC4wLjAuMCBvbmx5IGVxdWFscyB0 byAwLjAuMC4wCisvKiBtYXRjaF9zaypfd2lsZGNhcmQgPT0gdHJ1ZTogIDAuMC4wLjAgZXF1YWxz IHRvIGFueSBJUHY0IGFkZHJlc3NlcworICogbWF0Y2hfc2sqX3dpbGRjYXJkID09IGZhbHNlOiBh ZGRyZXNzZXMgbXVzdCBiZSBleGFjdGx5IHRoZSBzYW1lLCBpLmUuCisgKgkJCQkwLjAuMC4wIG9u bHkgZXF1YWxzIHRvIDAuMC4wLjAKICAqLwogc3RhdGljIGJvb2wgaXB2NF9yY3Zfc2FkZHJfZXF1 YWwoX19iZTMyIHNrMV9yY3Zfc2FkZHIsIF9fYmUzMiBzazJfcmN2X3NhZGRyLAotCQkJCSBib29s IHNrMl9pcHY2b25seSwgYm9vbCBtYXRjaF93aWxkY2FyZCkKKwkJCQkgYm9vbCBzazJfaXB2Nm9u bHksIGJvb2wgbWF0Y2hfc2sxX3dpbGRjYXJkLAorCQkJCSBib29sIG1hdGNoX3NrMl93aWxkY2Fy ZCkKIHsKIAlpZiAoIXNrMl9pcHY2b25seSkgewogCQlpZiAoc2sxX3Jjdl9zYWRkciA9PSBzazJf cmN2X3NhZGRyKQogCQkJcmV0dXJuIHRydWU7Ci0JCWlmICghc2sxX3Jjdl9zYWRkciB8fCAhc2sy X3Jjdl9zYWRkcikKLQkJCXJldHVybiBtYXRjaF93aWxkY2FyZDsKKwkJcmV0dXJuIChtYXRjaF9z azFfd2lsZGNhcmQgJiYgIXNrMV9yY3Zfc2FkZHIpIHx8CisJCQkobWF0Y2hfc2syX3dpbGRjYXJk ICYmICFzazJfcmN2X3NhZGRyKTsKIAl9CiAJcmV0dXJuIGZhbHNlOwogfQpAQCAtOTYsMTAgKzk5 LDEyIEBAIGJvb2wgaW5ldF9yY3Zfc2FkZHJfZXF1YWwoY29uc3Qgc3RydWN0IHNvY2sgKnNrLCBj b25zdCBzdHJ1Y3Qgc29jayAqc2syLAogCQkJCQkgICAgc2syLT5za19yY3Zfc2FkZHIsCiAJCQkJ CSAgICBpcHY2X29ubHlfc29jayhzayksCiAJCQkJCSAgICBpcHY2X29ubHlfc29jayhzazIpLAor CQkJCQkgICAgbWF0Y2hfd2lsZGNhcmQsCiAJCQkJCSAgICBtYXRjaF93aWxkY2FyZCk7CiAjZW5k aWYKIAlyZXR1cm4gaXB2NF9yY3Zfc2FkZHJfZXF1YWwoc2stPnNrX3Jjdl9zYWRkciwgc2syLT5z a19yY3Zfc2FkZHIsCi0JCQkJICAgIGlwdjZfb25seV9zb2NrKHNrMiksIG1hdGNoX3dpbGRjYXJk KTsKKwkJCQkgICAgaXB2Nl9vbmx5X3NvY2soc2syKSwgbWF0Y2hfd2lsZGNhcmQsCisJCQkJICAg IG1hdGNoX3dpbGRjYXJkKTsKIH0KIEVYUE9SVF9TWU1CT0woaW5ldF9yY3Zfc2FkZHJfZXF1YWwp OwogCkBAIC0yNzMsMTAgKzI3OCwxMCBAQCBzdGF0aWMgaW5saW5lIGludCBza19yZXVzZXBvcnRf bWF0Y2goc3RydWN0IGluZXRfYmluZF9idWNrZXQgKnRiLAogCQkJCQkgICAgdGItPmZhc3RfcmN2 X3NhZGRyLAogCQkJCQkgICAgc2stPnNrX3Jjdl9zYWRkciwKIAkJCQkJICAgIHRiLT5mYXN0X2lw djZfb25seSwKLQkJCQkJICAgIGlwdjZfb25seV9zb2NrKHNrKSwgdHJ1ZSk7CisJCQkJCSAgICBp cHY2X29ubHlfc29jayhzayksIHRydWUsIGZhbHNlKTsKICNlbmRpZgogCXJldHVybiBpcHY0X3Jj dl9zYWRkcl9lcXVhbCh0Yi0+ZmFzdF9yY3Zfc2FkZHIsIHNrLT5za19yY3Zfc2FkZHIsCi0JCQkJ ICAgIGlwdjZfb25seV9zb2NrKHNrKSwgdHJ1ZSk7CisJCQkJICAgIGlwdjZfb25seV9zb2NrKHNr KSwgdHJ1ZSwgZmFsc2UpOwogfQogCiAvKiBPYnRhaW4gYSByZWZlcmVuY2UgdG8gYSBsb2NhbCBw b3J0IGZvciB0aGUgZ2l2ZW4gc29jaywKLS0gCjIuMjYuMgoKCkZyb20gNGJmYTZlNTdjOGE0YjNj ZDg1Y2VlNDM5YzI0ZGI1ZGQ3Nzg1ODAwYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog VmFkaW0gRmVkb3JlbmtvIDx2ZmVkb3JlbmtvQG5vdmVrLnJ1PgpEYXRlOiBXZWQsIDIwIE1heSAy MDIwIDExOjUwOjQ4ICswMzAwClN1YmplY3Q6IFtQQVRDSCAwOC8yNV0gbmV0OiBpcGlwOiBmaXgg d3JvbmcgYWRkcmVzcyBmYW1pbHkgaW4gaW5pdCBlcnJvciBwYXRoCgpbIFVwc3RyZWFtIGNvbW1p dCA1N2ViYzhmMDg1MDRmMTc2ZWIwZjI1YjNlMGZkZTUxN2RlYzYxYTRmIF0KCkluIGNhc2Ugb2Yg ZXJyb3Igd2l0aCBNUExTIHN1cHBvcnQgdGhlIGNvZGUgaXMgbWlzdXNpbmcgQUZfSU5FVAppbnN0 ZWFkIG9mIEFGX01QTFMuCgpGaXhlczogMWI2OWU3ZTZjNGRhICgiaXBpcDogc3VwcG9ydCBNUExT IG92ZXIgSVB2NCIpClNpZ25lZC1vZmYtYnk6IFZhZGltIEZlZG9yZW5rbyA8dmZlZG9yZW5rb0Bu b3Zlay5ydT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIG5ldC9pcHY0L2lwaXAuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2Vy dGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2lwaXAuYyBiL25l dC9pcHY0L2lwaXAuYwppbmRleCAyZjAxY2Y2ZmEwZGUuLjY3ODU3NWFkYWYzYiAxMDA2NDQKLS0t IGEvbmV0L2lwdjQvaXBpcC5jCisrKyBiL25ldC9pcHY0L2lwaXAuYwpAQCAtNjk4LDcgKzY5OCw3 IEBAIHN0YXRpYyBpbnQgX19pbml0IGlwaXBfaW5pdCh2b2lkKQogCiBydG5sX2xpbmtfZmFpbGVk OgogI2lmIElTX0VOQUJMRUQoQ09ORklHX01QTFMpCi0JeGZybTRfdHVubmVsX2RlcmVnaXN0ZXIo Jm1wbHNpcF9oYW5kbGVyLCBBRl9JTkVUKTsKKwl4ZnJtNF90dW5uZWxfZGVyZWdpc3RlcigmbXBs c2lwX2hhbmRsZXIsIEFGX01QTFMpOwogeGZybV90dW5uZWxfbXBsc2lwX2ZhaWxlZDoKIAogI2Vu ZGlmCi0tIAoyLjI2LjIKCgpGcm9tIDI2MzA2Y2NlZGQzOTk4ZDljNjYxMjIyYzQyMzgzZjJhODcy NWI3Y2MgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1vc2hlIFNoZW1lc2ggPG1vc2hl QG1lbGxhbm94LmNvbT4KRGF0ZTogRnJpLCAyNyBEZWMgMjAxOSAwNzowMTo1MyArMDIwMApTdWJq ZWN0OiBbUEFUQ0ggMDkvMjVdIG5ldC9tbHg1OiBBZGQgY29tbWFuZCBlbnRyeSBoYW5kbGluZyBj b21wbGV0aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCAxN2QwMGU4MzlkM2I1OTJkYTk2NTljMTk3N2Q0 NWY4NWI3N2Y5ODZhIF0KCldoZW4gRlcgcmVzcG9uc2UgdG8gY29tbWFuZHMgaXMgdmVyeSBzbG93 IGFuZCBhbGwgY29tbWFuZCBlbnRyaWVzIGluCnVzZSBhcmUgd2FpdGluZyBmb3IgY29tcGxldGlv biB3ZSBjYW4gaGF2ZSBhIHJhY2Ugd2hlcmUgY29tbWFuZHMgY2FuIGdldAp0aW1lb3V0IGJlZm9y ZSB0aGV5IGdldCBvdXQgb2YgdGhlIHF1ZXVlIGFuZCBoYW5kbGVkLiBUaW1lb3V0CmNvbXBsZXRp b24gb24gdW5pbml0aWFsaXplZCBjb21tYW5kIHdpbGwgY2F1c2UgcmVsZWFzaW5nIGNvbW1hbmQn cwpidWZmZXJzIGJlZm9yZSBhY2Nlc3NpbmcgaXQgZm9yIGluaXRpYWxpemF0aW9uIGFuZCB0aGVu IHdlIHdpbGwgZ2V0IE5VTEwKcG9pbnRlciBleGNlcHRpb24gd2hpbGUgdHJ5aW5nIGFjY2VzcyBp dC4gSXQgbWF5IGFsc28gY2F1c2UgcmVsZWFzaW5nCmJ1ZmZlcnMgb2YgYW5vdGhlciBjb21tYW5k IHNpbmNlIHdlIG1heSBoYXZlIHRpbWVvdXQgY29tcGxldGlvbiBiZWZvcmUKZXZlbiBhbGxvY2F0 aW5nIGVudHJ5IGluZGV4IGZvciB0aGlzIGNvbW1hbmQuCkFkZCBlbnRyeSBoYW5kbGluZyBjb21w bGV0aW9uIHRvIGF2b2lkIHRoaXMgcmFjZS4KCkZpeGVzOiBlMTI2YmE5N2RiYTkgKCJtbHg1OiBB ZGQgZHJpdmVyIGZvciBNZWxsYW5veCBDb25uZWN0LUlCIGFkYXB0ZXJzIikKU2lnbmVkLW9mZi1i eTogTW9zaGUgU2hlbWVzaCA8bW9zaGVAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBFcmFu IEJlbiBFbGlzaGEgPGVyYW5iZUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1h aGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDUvY29yZS9jbWQuYyB8IDE0ICsrKysrKysrKysrKysrCiBpbmNsdWRlL2xpbnV4 L21seDUvZHJpdmVyLmggICAgICAgICAgICAgICAgICAgfCAgMSArCiAyIGZpbGVzIGNoYW5nZWQs IDE1IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg1L2NvcmUvY21kLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvY21kLmMKaW5kZXggMDgwNDhhMmQ3MjU5Li5iNmEzMzcwMDY4ZjEgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYworKysgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMKQEAgLTg2MSw2ICs4NjEs NyBAQCBzdGF0aWMgdm9pZCBjbWRfd29ya19oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29y aykKIAlpbnQgYWxsb2NfcmV0OwogCWludCBjbWRfbW9kZTsKIAorCWNvbXBsZXRlKCZlbnQtPmhh bmRsaW5nKTsKIAlzZW0gPSBlbnQtPnBhZ2VfcXVldWUgPyAmY21kLT5wYWdlc19zZW0gOiAmY21k LT5zZW07CiAJZG93bihzZW0pOwogCWlmICghZW50LT5wYWdlX3F1ZXVlKSB7CkBAIC05NzgsNiAr OTc5LDExIEBAIHN0YXRpYyBpbnQgd2FpdF9mdW5jKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYs IHN0cnVjdCBtbHg1X2NtZF93b3JrX2VudCAqZW50KQogCXN0cnVjdCBtbHg1X2NtZCAqY21kID0g JmRldi0+Y21kOwogCWludCBlcnI7CiAKKwlpZiAoIXdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91 dCgmZW50LT5oYW5kbGluZywgdGltZW91dCkgJiYKKwkgICAgY2FuY2VsX3dvcmtfc3luYygmZW50 LT53b3JrKSkgeworCQllbnQtPnJldCA9IC1FQ0FOQ0VMRUQ7CisJCWdvdG8gb3V0X2VycjsKKwl9 CiAJaWYgKGNtZC0+bW9kZSA9PSBDTURfTU9ERV9QT0xMSU5HIHx8IGVudC0+cG9sbGluZykgewog CQl3YWl0X2Zvcl9jb21wbGV0aW9uKCZlbnQtPmRvbmUpOwogCX0gZWxzZSBpZiAoIXdhaXRfZm9y X2NvbXBsZXRpb25fdGltZW91dCgmZW50LT5kb25lLCB0aW1lb3V0KSkgewpAQCAtOTg1LDEyICs5 OTEsMTcgQEAgc3RhdGljIGludCB3YWl0X2Z1bmMoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwg c3RydWN0IG1seDVfY21kX3dvcmtfZW50ICplbnQpCiAJCW1seDVfY21kX2NvbXBfaGFuZGxlcihk ZXYsIDFVTCA8PCBlbnQtPmlkeCwgdHJ1ZSk7CiAJfQogCitvdXRfZXJyOgogCWVyciA9IGVudC0+ cmV0OwogCiAJaWYgKGVyciA9PSAtRVRJTUVET1VUKSB7CiAJCW1seDVfY29yZV93YXJuKGRldiwg IiVzKDB4JXgpIHRpbWVvdXQuIFdpbGwgY2F1c2UgYSBsZWFrIG9mIGEgY29tbWFuZCByZXNvdXJj ZVxuIiwKIAkJCSAgICAgICBtbHg1X2NvbW1hbmRfc3RyKG1zZ190b19vcGNvZGUoZW50LT5pbikp LAogCQkJICAgICAgIG1zZ190b19vcGNvZGUoZW50LT5pbikpOworCX0gZWxzZSBpZiAoZXJyID09 IC1FQ0FOQ0VMRUQpIHsKKwkJbWx4NV9jb3JlX3dhcm4oZGV2LCAiJXMoMHgleCkgY2FuY2VsZWQg b24gb3V0IG9mIHF1ZXVlIHRpbWVvdXQuXG4iLAorCQkJICAgICAgIG1seDVfY29tbWFuZF9zdHIo bXNnX3RvX29wY29kZShlbnQtPmluKSksCisJCQkgICAgICAgbXNnX3RvX29wY29kZShlbnQtPmlu KSk7CiAJfQogCW1seDVfY29yZV9kYmcoZGV2LCAiZXJyICVkLCBkZWxpdmVyeSBzdGF0dXMgJXMo JWQpXG4iLAogCQkgICAgICBlcnIsIGRlbGl2X3N0YXR1c190b19zdHIoZW50LT5zdGF0dXMpLCBl bnQtPnN0YXR1cyk7CkBAIC0xMDI2LDYgKzEwMzcsNyBAQCBzdGF0aWMgaW50IG1seDVfY21kX2lu dm9rZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9jbWRfbXNnICppbiwK IAllbnQtPnRva2VuID0gdG9rZW47CiAJZW50LT5wb2xsaW5nID0gZm9yY2VfcG9sbGluZzsKIAor CWluaXRfY29tcGxldGlvbigmZW50LT5oYW5kbGluZyk7CiAJaWYgKCFjYWxsYmFjaykKIAkJaW5p dF9jb21wbGV0aW9uKCZlbnQtPmRvbmUpOwogCkBAIC0xMDQ1LDYgKzEwNTcsOCBAQCBzdGF0aWMg aW50IG1seDVfY21kX2ludm9rZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4 NV9jbWRfbXNnICppbiwKIAllcnIgPSB3YWl0X2Z1bmMoZGV2LCBlbnQpOwogCWlmIChlcnIgPT0g LUVUSU1FRE9VVCkKIAkJZ290byBvdXQ7CisJaWYgKGVyciA9PSAtRUNBTkNFTEVEKQorCQlnb3Rv IG91dF9mcmVlOwogCiAJZHMgPSBlbnQtPnRzMiAtIGVudC0+dHMxOwogCW9wID0gTUxYNV9HRVQo bWJveF9pbiwgaW4tPmZpcnN0LmRhdGEsIG9wY29kZSk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xp bnV4L21seDUvZHJpdmVyLmggYi9pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmgKaW5kZXggM2U4 MGYwM2EzODdmLi44OTc4Mjk2NTEyMDQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbWx4NS9k cml2ZXIuaAorKysgYi9pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmgKQEAgLTc1Niw2ICs3NTYs NyBAQCBzdHJ1Y3QgbWx4NV9jbWRfd29ya19lbnQgewogCXN0cnVjdCBkZWxheWVkX3dvcmsJY2Jf dGltZW91dF93b3JrOwogCXZvaWQJCSAgICAgICAqY29udGV4dDsKIAlpbnQJCQlpZHg7CisJc3Ry dWN0IGNvbXBsZXRpb24JaGFuZGxpbmc7CiAJc3RydWN0IGNvbXBsZXRpb24JZG9uZTsKIAlzdHJ1 Y3QgbWx4NV9jbWQgICAgICAgICpjbWQ7CiAJc3RydWN0IHdvcmtfc3RydWN0CXdvcms7Ci0tIAoy LjI2LjIKCgpGcm9tIGY2NjJiMmE2MzkyMTFkY2M2OGFlZjQ4OWRhMzMyZjUxZjA3OTdkYmIgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFJ1c3NlbGwgS2luZyA8cm1rK2tlcm5lbEBhcm1s aW51eC5vcmcudWs+CkRhdGU6IFdlZCwgMjAgTWF5IDIwMjAgMTI6MjY6MzUgKzAxMDAKU3ViamVj dDogW1BBVENIIDEwLzI1XSBuZXQ6IG12cHAyOiBmaXggUlggaGFzaGluZyBmb3Igbm9uLTEwRyBw b3J0cwoKWyBVcHN0cmVhbSBjb21taXQgMzEzOGEwN2NlMjE5YWNkZTRjMGQ3ZWEwYjZkNTRiYTY0 MTUzMzI4YiBdCgpXaGVuIHJ4aGFzaCBpcyBlbmFibGVkIG9uIGFueSBldGhlcm5ldCBwb3J0IGV4 Y2VwdCB0aGUgZmlyc3QgaW4gZWFjaCBDUApibG9jaywgdHJhZmZpYyBmbG93IGlzIHByZXZlbnRl ZC4gIFRoZSBhbmFseXNpcyBpcyBiZWxvdzoKCkkndmUgYmVlbiBpbnZlc3RpZ2F0aW5nIHRoaXMg YWZ0ZXJub29uLCBhbmQgd2hhdCBJJ3ZlIGZvdW5kLCBjb21wYXJpbmcKYSBrZXJuZWwgd2l0aG91 dCA4OTU1ODZkNWRjMzIgYW5kIHdpdGggODk1NTg2ZDVkYzMyIGFwcGxpZWQgaXM6CgotIFRoZSB0 YWJsZSBwcm9ncmFtbWVkIGludG8gdGhlIGhhcmR3YXJlIHZpYSBtdnBwMjJfcnNzX2ZpbGxfdGFi bGUoKQogIGFwcGVhcnMgdG8gYmUgaWRlbnRpY2FsIHdpdGggb3Igd2l0aG91dCB0aGUgY29tbWl0 LgoKLSBXaGVuIHJ4aGFzaCBpcyBlbmFibGVkIG9uIGV0aDIsIG12cHAyX3Jzc19wb3J0X2MyX2Vu YWJsZSgpIHJlcG9ydHMKICB0aGF0IGMyLmF0dHJbMF0gYW5kIGMyLmF0dHJbMl0gYXJlIHdyaXR0 ZW4gYmFjayBjb250YWluaW5nOgoKICAgLSB3aXRoIDg5NTU4NmQ1ZGMzMiwgZmFpbGluZzogICAg MDAyMDAwMDAgNDAwMDAwMDAKICAgLSB3aXRob3V0IDg5NTU4NmQ1ZGMzMiwgd29ya2luZzogMDQw MDAwMDAgNDAwMDAwMDAKCi0gV2hlbiBkaXNhYmxpbmcgcnhoYXNoLCBjMi5hdHRyWzBdIGFuZCBj Mi5hdHRyWzJdIGFyZSB3cml0dGVuIGJhY2sgYXM6CgogICAwNDAwMDAwMCAwMDAwMDAwMAoKVGhl IHNlY29uZCB2YWx1ZSByZXByZXNlbnRzIHRoZSBNVlBQMjJfQ0xTX0MyX0FUVFIyX1JTU19FTiBi aXQsIHRoZQpmaXJzdCB2YWx1ZSBpcyB0aGUgcXVldWUgbnVtYmVyLCB3aGljaCBjb21wcmlzZXMg dHdvIGZpZWxkcy4gVGhlIGhpZ2gKNSBiaXRzIGFyZSAyNDoyOSBhbmQgdGhlIGxvdyB0aHJlZSBh cmUgMjE6MjMgaW5jbHVzaXZlLiBUaGlzIGNvbWVzCmZyb206CgogICAgICAgYzIuYXR0clswXSA9 IE1WUFAyMl9DTFNfQzJfQVRUUjBfUUhJR0gocWgpIHwKICAgICAgICAgICAgICAgICAgICAgTVZQ UDIyX0NMU19DMl9BVFRSMF9RTE9XKHFsKTsKClNvLCB0aGUgd29ya2luZyBjYXNlIGdpdmVzIGV0 aDIgYSBxdWV1ZSBpZCBvZiA0LjAsIG9yIDMyIGFzIHBlcgpwb3J0LT5maXJzdF9yeHEsIGFuZCB0 aGUgbm9uLXdvcmtpbmcgY2FzZSBhIHF1ZXVlIGlkIG9mIDAuMSwgb3IgMS4KVGhlIGFsbG9jYXRp b24gb2YgcXVldWUgSURzIHNlZW1zIHRvIGJlIGluIG12cHAyX3BvcnRfcHJvYmUoKToKCiAgICAg ICAgaWYgKHByaXYtPmh3X3ZlcnNpb24gPT0gTVZQUDIxKQogICAgICAgICAgICAgICAgcG9ydC0+ Zmlyc3RfcnhxID0gcG9ydC0+aWQgKiBwb3J0LT5ucnhxczsKICAgICAgICBlbHNlCiAgICAgICAg ICAgICAgICBwb3J0LT5maXJzdF9yeHEgPSBwb3J0LT5pZCAqIHByaXYtPm1heF9wb3J0X3J4cXM7 CgpXaGVyZToKCiAgICAgICAgaWYgKHByaXYtPmh3X3ZlcnNpb24gPT0gTVZQUDIxKQogICAgICAg ICAgICAgICAgcHJpdi0+bWF4X3BvcnRfcnhxcyA9IDg7CiAgICAgICAgZWxzZQogICAgICAgICAg ICAgICAgcHJpdi0+bWF4X3BvcnRfcnhxcyA9IDMyOwoKTWFraW5nIHRoZSBwb3J0IDAgKGV0aDAg LyBldGgxKSBoYXZlIHBvcnQtPmZpcnN0X3J4cSA9IDAsIGFuZCBwb3J0IDEKKGV0aDIpIGJlIDMy LiBJdCBzZWVtcyB0aGUgaWRlYSBpcyB0aGF0IHRoZSBmaXJzdCAzMiBxdWV1ZXMgYmVsb25nIHRv CnBvcnQgMCwgdGhlIHNlY29uZCAzMiBxdWV1ZXMgYmVsb25nIHRvIHBvcnQgMSwgZXRjLgoKbXZw cDJfcnNzX3BvcnRfYzJfZW5hYmxlKCkgZ2V0cyB0aGUgcXVldWUgbnVtYmVyIGZyb20gaXQncyBw YXJhbWV0ZXIsCidjdHgnLCB3aGljaCBjb21lcyBmcm9tIG12cHAyMl9yc3NfY3R4KHBvcnQsIDAp LiBUaGlzIHJldHVybnMKcG9ydC0+cnNzX2N0eFswXS4KCm12cHAyMl9yc3NfY29udGV4dF9jcmVh dGUoKSBpcyByZXNwb25zaWJsZSBmb3IgYWxsb2NhdGluZyB0aGF0LCB3aGljaAppdCBkb2VzIGJ5 IGxvb2tpbmcgZm9yIGFuIHVuYWxsb2NhdGVkIHByaXYtPnJzc190YWJsZXNbXSBwb2ludGVyLiBU aGlzCnRhYmxlIGlzIHNoYXJlZCBhbW9uZ3N0IGFsbCBwb3J0cyBvbiB0aGUgQ1Agc2lsaWNvbi4K CldoZW4gd2Ugd3JpdGUgdGhlIHRhYmxlcyBpbiBtdnBwMjJfcnNzX2ZpbGxfdGFibGUoKSwgdGhl IFJTUyB0YWJsZQplbnRyeSBpcyBkZWZpbmVkIGJ5OgoKICAgICAgICAgICAgICAgIHUzMiBzZWwg PSBNVlBQMjJfUlNTX0lOREVYX1RBQkxFKHJzc19jdHgpIHwKICAgICAgICAgICAgICAgICAgICAg ICAgICBNVlBQMjJfUlNTX0lOREVYX1RBQkxFX0VOVFJZKGkpOwoKd2hlcmUgcnNzX2N0eCBpcyB0 aGUgY29udGV4dCBJRCAocXVldWUgbnVtYmVyKSBhbmQgaSBpcyB0aGUgaW5kZXggaW4KdGhlIHRh YmxlLgoKSWYgd2UgbG9vayBhdCB3aGF0IGlzIHdyaXR0ZW46CgotIFRoZSBmaXJzdCB0YWJsZSB0 byBiZSB3cml0dGVuIGhhcyAic2VsIiB2YWx1ZXMgb2YgMDAwMDAwMDAuLjAwMDAwMDFmLAogIGNv bnRhaW5pbmcgdmFsdWVzIDAuLjMuIFRoaXMgYXBwZWFycyB0byBiZSBmb3IgZXRoMS4gVGhpcyBp cyB0YWJsZSAwLAogIFJYIHF1ZXVlIG51bWJlciAwLgotIFRoZSBzZWNvbmQgdGFibGUgaGFzICJz ZWwiIHZhbHVlcyBvZiAwMDAwMDEwMC4uMDAwMDAxMWYsIGFuZCBhcHBlYXJzCiAgdG8gYmUgZm9y IGV0aDIuICBUaGVzZSBjb250YWluIHZhbHVlcyAweDIwLi4weDIzLiBUaGlzIGlzIHRhYmxlIDEs CiAgUlggcXVldWUgbnVtYmVyIDAuCi0gVGhlIHRoaXJkIHRhYmxlIGhhcyAic2VsIiB2YWx1ZXMg b2YgMDAwMDAyMDAuLjAwMDAwMjFmLCBhbmQgYXBwZWFycwogIHRvIGJlIGZvciBldGgzLiAgVGhl c2UgY29udGFpbiB2YWx1ZXMgMHg0MC4uMHg0My4gVGhpcyBpcyB0YWJsZSAyLAogIFJYIHF1ZXVl IG51bWJlciAwLgoKSG93IGRvIHF1ZXVlIG51bWJlcnMgdHJhbnNsYXRlIHRvIHRoZSBSU1MgdGFi bGU/ICBUaGVyZSBpcyBhbm90aGVyCnRhYmxlIC0gdGhlIFJYUTJSU1MgdGFibGUsIGluZGV4ZWQg YnkgdGhlIE1WUFAyMl9SU1NfSU5ERVhfUVVFVUUgZmllbGQKb2YgTVZQUDIyX1JTU19JTkRFWCBh bmQgYWNjZXNzZWQgdGhyb3VnaCB0aGUgTVZQUDIyX1JYUTJSU1NfVEFCTEUKcmVnaXN0ZXIuIEJl Zm9yZSA4OTU1ODZkNWRjMzIsIGl0IHdhczoKCiAgICAgICBtdnBwMl93cml0ZShwcml2LCBNVlBQ MjJfUlNTX0lOREVYLAogICAgICAgICAgICAgICAgICAgTVZQUDIyX1JTU19JTkRFWF9RVUVVRShw b3J0LT5maXJzdF9yeHEpKTsKICAgICAgIG12cHAyX3dyaXRlKHByaXYsIE1WUFAyMl9SWFEyUlNT X1RBQkxFLAogICAgICAgICAgICAgICAgICAgTVZQUDIyX1JTU19UQUJMRV9QT0lOVEVSKHBvcnQt PmlkKSk7CgphbmQgYWZ0ZXI6CgogICAgICAgbXZwcDJfd3JpdGUocHJpdiwgTVZQUDIyX1JTU19J TkRFWCwgTVZQUDIyX1JTU19JTkRFWF9RVUVVRShjdHgpKTsKICAgICAgIG12cHAyX3dyaXRlKHBy aXYsIE1WUFAyMl9SWFEyUlNTX1RBQkxFLCBNVlBQMjJfUlNTX1RBQkxFX1BPSU5URVIoY3R4KSk7 CgpCZWZvcmUgdGhlIGNvbW1pdCwgZm9yIGV0aDIsIHRoYXQgd291bGQndmUgY29udGFpbmVkICcz MicgZm9yIHRoZQppbmRleCBhbmQgJzEnIGZvciB0aGUgdGFibGUgcG9pbnRlciAtIG1hcHBpbmcg cXVldWUgMzIgdG8gdGFibGUgMS4KUmVtZW1iZXIgdGhhdCB0aGlzIGlzIHF1ZXVlLWhpZ2gucXVl dWUtbG93IG9mIDQuMC4KCkFmdGVyIHRoZSBjb21taXQsIHdlIGFwcGVhciB0byBtYXAgcXVldWUg MSB0byB0YWJsZSAxLiBUaGF0IGFnYWluCmxvb2tzIGZpbmUgb24gdGhlIGZhY2Ugb2YgaXQuCgpT ZWN0aW9uIDkuMy4xIG9mIHRoZSBBODA0MCBtYW51YWwgc2VlbXMgaW5kaWNhdGUgdGhlIHJlYXNv biB0aGF0IHRoZQpxdWV1ZSBudW1iZXIgaXMgc2VwYXJhdGVkLiBxdWV1ZS1sb3cgc2VlbXMgdG8g YWx3YXlzIGNvbWUgZnJvbSB0aGUKY2xhc3NpZmllciwgd2hlcmVhcyBxdWV1ZS1oaWdoIGNhbiBi ZSBmcm9tIHRoZSBpbmdyZXNzIHBoeXNpY2FsIHBvcnQKbnVtYmVyIG9yIHRoZSBjbGFzc2lmaWVy IGRlcGVuZGluZyBvbiB0aGUgTVZQUDJfQ0xTX1NXRldEX1BDVFJMX1JFRy4KCldlIHNldCB0aGUg cG9ydCBiaXQgaW4gTVZQUDJfQ0xTX1NXRldEX1BDVFJMX1JFRywgbWVhbmluZyB0aGF0IHF1ZXVl LWhpZ2gKY29tZXMgZnJvbSB0aGUgTVZQUDJfQ0xTX1NXRldEX1AySFFfUkVHKCkgcmVnaXN0ZXIu Li4gYW5kIHRoaXMgc2VlbXMgdG8KYmUgd2hlcmUgb3VyIGJ1ZyBjb21lcyBmcm9tLgoKbXZwcDJf Y2xzX292ZXJzaXplX3J4cV9zZXQoKSBzZXRzIHRoaXMgdXAgYXM6CgogICAgICAgIG12cHAyX3dy aXRlKHBvcnQtPnByaXYsIE1WUFAyX0NMU19TV0ZXRF9QMkhRX1JFRyhwb3J0LT5pZCksCiAgICAg ICAgICAgICAgICAgICAgKHBvcnQtPmZpcnN0X3J4cSA+PiBNVlBQMl9DTFNfT1ZFUlNJWkVfUlhR X0xPV19CSVRTKSk7CgogICAgICAgIHZhbCA9IG12cHAyX3JlYWQocG9ydC0+cHJpdiwgTVZQUDJf Q0xTX1NXRldEX1BDVFJMX1JFRyk7CiAgICAgICAgdmFsIHw9IE1WUFAyX0NMU19TV0ZXRF9QQ1RS TF9NQVNLKHBvcnQtPmlkKTsKICAgICAgICBtdnBwMl93cml0ZShwb3J0LT5wcml2LCBNVlBQMl9D TFNfU1dGV0RfUENUUkxfUkVHLCB2YWwpOwoKU2V0dGluZyB0aGUgTVZQUDJfQ0xTX1NXRldEX1BD VFJMX01BU0sgYml0IG1lYW5zIHRoYXQgdGhlIHF1ZXVlLWhpZ2gKZm9yIGV0aDIgaXMgX2Fsd2F5 c18gNCwgc28gb25seSBxdWV1ZXMgMzIgdGhyb3VnaCAzOSBpbmNsdXNpdmUgYXJlCmF2YWlsYWJs ZSB0byBldGgyLiBZZXQsIHdlJ3JlIHRyeWluZyB0byB0ZWxsIHRoZSBjbGFzc2lmaWVyIHRvIHNl dApxdWV1ZS1oaWdoLCB3aGljaCB3aWxsIGJlIGlnbm9yZWQsIHRvIHplcm8uIEhlbmNlLCB0aGUg cXVldWUtaGlnaApmaWVsZCAoTVZQUDIyX0NMU19DMl9BVFRSMF9RSElHSCgpKSBmcm9tIHRoZSBj bGFzc2lmaWVyIHdpbGwgYmUKaWdub3JlZC4KClRoaXMgbWVhbnMgd2UgZW5kIHVwIGRpcmVjdGlu ZyB0cmFmZmljIGZyb20gZXRoMiBub3QgdG8gcXVldWUgMSwgYnV0CnRvIHF1ZXVlIDMzLCBhbmQg dGhlbiB3ZSB0ZWxsIGl0IHRvIGxvb2sgdXAgcXVldWUgMzMgaW4gdGhlIFJTUyB0YWJsZS4KSG93 ZXZlciwgUlNTIHRhYmxlIGhhcyBub3QgYmVlbiBwcm9ncmFtbWVkIGZvciBxdWV1ZSAzMywgYW5k IHNvIGl0IGVuZHMKdXAgKHByZXN1bWFibHkpIGRyb3BwaW5nIHRoZSBwYWNrZXRzLgoKSXQgc2Vl bXMgdGhhdCBtdnBwMjJfcnNzX2NvbnRleHRfY3JlYXRlKCkgZG9lc24ndCB0YWtlIGFjY291bnQg b2YgdGhlCmZhY3QgdGhhdCB0aGUgdXBwZXIgNSBiaXRzIG9mIHRoZSBxdWV1ZSBJRCBjYW4ndCBh Y3R1YWxseSBiZSBjaGFuZ2VkCmR1ZSB0byB0aGUgc2V0dGluZ3MgaW4gbXZwcDJfY2xzX292ZXJz aXplX3J4cV9zZXQoKSwgX29yXyBpdCBzZWVtcyB0aGF0Cm12cHAyX2Nsc19vdmVyc2l6ZV9yeHFf c2V0KCkgaGFzIGJlZW4gbWlzc2VkIGluIHRoaXMgY29tbWl0LiBFaXRoZXIKd2F5LCB0aGVzZSB0 d28gZnVuY3Rpb25zIG11dHVhbGx5IGRpc2FncmVlIHdpdGggd2hhdCBxdWV1ZSBudW1iZXIKc2hv dWxkIGJlIHVzZWQuCgpMb29raW5nIGRlZXBlciBpbnRvIHdoYXQgbXZwcDJfY2xzX292ZXJzaXpl X3J4cV9zZXQoKSBhbmQgdGhlIE1UVQp2YWxpZGF0aW9uIGlzIGRvaW5nLCBpdCBzZWVtcyB0aGF0 IE1WUFAyX0NMU19TV0ZXRF9QMkhRX1JFRygpIGlzIHVzZWQKZm9yIG92ZXItc2l6ZWQgcGFja2V0 cyBhdHRlbXB0aW5nIHRvIGVncmVzcyB0aHJvdWdoIHRoaXMgcG9ydC4gV2l0aAp0aGUgY2xhc3Np ZmllciBoYXZpbmcgaGFkIFJTUyBlbmFibGVkIGFuZCBkaXJlY3RpbmcgZXRoMiB0cmFmZmljIHRv CnF1ZXVlIDEsIHdlIG1heSBzdGlsbCBoYXZlIHBhY2tldHMgYXBwZWFyaW5nIG9uIHF1ZXVlIDMy IGZvciB0aGlzIHBvcnQuCgpIb3dldmVyLCB0aGUgb25seSB3YXkgd2UgbWF5IGVuZCB1cCB3aXRo IG92ZXItc2l6ZWQgcGFja2V0cyBhdHRlbXB0aW5nCnRvIGVncmVzcyB0aHJvdWdoIGV0aDIgLSBp cyBpZiB0aGUgQTgwNDAgZm9yd2FyZHMgZnJhbWVzIGJldHdlZW4gaXRzCnBvcnRzLiBGcm9tIHdo YXQgSSBjYW4gc2VlLCB3ZSBkb24ndCBzdXBwb3J0IHRoYXQgZmVhdHVyZSwgYW5kIHRoZQprZXJu ZWwgcmVzdHJpY3RzIHRoZSBlZ3Jlc3MgcGFja2V0IHNpemUgdG8gdGhlIE1UVS4gSW4gYW55IGNh c2UsIGlmIHdlCndlcmUgdG8gYXR0ZW1wdCB0byB0cmFuc21pdCBhbiBvdmVyc2l6ZWQgcGFja2V0 LCB3ZSBoYXZlIG5vIHN1cHBvcnQgaW4KdGhlIGtlcm5lbCB0byBkZWFsIHdpdGggdGhhdCBhcHBl YXJpbmcgaW4gdGhlIHBvcnQncyByZWNlaXZlIHF1ZXVlLgoKU28sIHRoaXMgcGF0Y2ggYXR0ZW1w dHMgdG8gc29sdmUgdGhlIGlzc3VlIGJ5IGNsZWFyaW5nIHRoZQpNVlBQMl9DTFNfU1dGV0RfUENU UkxfTUFTSygpIGJpdCwgYWxsb3dpbmcgTVZQUDIyX0NMU19DMl9BVFRSMF9RSElHSCgpCmZyb20g dGhlIGNsYXNzaWZpZXIgdG8gZGVmaW5lIHRoZSBxdWV1ZS1oaWdoIGZpZWxkIG9mIHRoZSBxdWV1 ZSBudW1iZXIuCgpNeSB0ZXN0aW5nIHNlZW1zIHRvIGNvbmZpcm0gbXkgZmluZGluZ3MgYWJvdmUg LSBjbGVhcmluZyB0aGlzIGJpdAptZWFucyB0aGF0IGlmIEkgZW5hYmxlIHJ4aGFzaCBvbiBldGgy LCB0aGUgaW50ZXJmYWNlIGNhbiB0aGVuIHBhc3MKdHJhZmZpYywgYXMgd2UgYXJlIG5vdyBkaXJl Y3RpbmcgdHJhZmZpYyB0byBSWCBxdWV1ZSAxIHJhdGhlciB0aGFuCnF1ZXVlIDMzLiBUcmFmZmlj IHN0aWxsIHNlZW1zIHRvIHdvcmsgd2l0aCByeGhhc2ggb2ZmIGFzIHdlbGwuCgpSZXBvcnRlZC1i eTogTWF0dGVvIENyb2NlIDxtY3JvY2VAcmVkaGF0LmNvbT4KVGVzdGVkLWJ5OiBNYXR0ZW8gQ3Jv Y2UgPG1jcm9jZUByZWRoYXQuY29tPgpGaXhlczogODk1NTg2ZDVkYzMyICgibmV0OiBtdnBwMjog Y2xzOiBVc2UgUlNTIGNvbnRleHRzIHRvIGhhbmRsZSBSU1MgdGFibGVzIikKU2lnbmVkLW9mZi1i eTogUnVzc2VsbCBLaW5nIDxybWsra2VybmVsQGFybWxpbnV4Lm9yZy51az4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0 L2V0aGVybmV0L21hcnZlbGwvbXZwcDIvbXZwcDJfY2xzLmMgfCAyICstCiAxIGZpbGUgY2hhbmdl ZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9tYXJ2ZWxsL212cHAyL212cHAyX2Nscy5jIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWFydmVsbC9tdnBwMi9tdnBwMl9jbHMuYwppbmRleCA0MzQ0YTU5YzgyM2YuLjYxMjIwNTdk NjBjMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdnBwMi9tdnBw Ml9jbHMuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212cHAyL212cHAyX2Ns cy5jCkBAIC0xMDcwLDcgKzEwNzAsNyBAQCB2b2lkIG12cHAyX2Nsc19vdmVyc2l6ZV9yeHFfc2V0 KHN0cnVjdCBtdnBwMl9wb3J0ICpwb3J0KQogCQkgICAgKHBvcnQtPmZpcnN0X3J4cSA+PiBNVlBQ Ml9DTFNfT1ZFUlNJWkVfUlhRX0xPV19CSVRTKSk7CiAKIAl2YWwgPSBtdnBwMl9yZWFkKHBvcnQt PnByaXYsIE1WUFAyX0NMU19TV0ZXRF9QQ1RSTF9SRUcpOwotCXZhbCB8PSBNVlBQMl9DTFNfU1dG V0RfUENUUkxfTUFTSyhwb3J0LT5pZCk7CisJdmFsICY9IH5NVlBQMl9DTFNfU1dGV0RfUENUUkxf TUFTSyhwb3J0LT5pZCk7CiAJbXZwcDJfd3JpdGUocG9ydC0+cHJpdiwgTVZQUDJfQ0xTX1NXRldE X1BDVFJMX1JFRywgdmFsKTsKIH0KIAotLSAKMi4yNi4yCgoKRnJvbSAwYTAxNTY5ZWFmZmI0Y2I3 ZmI2NzFjNjQ3Y2I3YjMzMzUwMGJjMmNjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBT dGVwaGVuIFdvcmxleSA8c3dvcmxleUBjdW11bHVzbmV0d29ya3MuY29tPgpEYXRlOiBUdWUsIDE5 IE1heSAyMDIwIDIxOjU3OjEyIC0wNDAwClN1YmplY3Q6IFtQQVRDSCAxMS8yNV0gbmV0OiBubG1z Z19jYW5jZWwoKSBpZiBwdXQgZmFpbHMgZm9yIG5obXNnCgpbIFVwc3RyZWFtIGNvbW1pdCBkNjkx MDBiOGVlZTI3YzJkNjBlZTUyZGY3NmUwYjgwYThkNDkyZDM0IF0KCkZpeGVzIGRhdGEgcmVtbmFu dCBzZWVuIHdoZW4gd2UgZmFpbCB0byByZXNlcnZlIHNwYWNlIGZvciBhCm5leHRob3AgZ3JvdXAg ZHVyaW5nIGEgbGFyZ2VyIGR1bXAuCgpJZiB3ZSBmYWlsIHRoZSByZXNlcnZhdGlvbiwgd2UgZ290 byBubGFfcHV0X2ZhaWx1cmUgYW5kCmNhbmNlbCB0aGUgbWVzc2FnZS4KClJlcHJvZHVjZSB3aXRo IHRoZSBmb2xsb3dpbmcgaXByb3V0ZTIgY29tbWFuZHM6Cj09PT09PT09PT09PT09PT09PT09PQpp cCBsaW5rIGFkZCBkdW1teTEgdHlwZSBkdW1teQppcCBsaW5rIGFkZCBkdW1teTIgdHlwZSBkdW1t eQppcCBsaW5rIGFkZCBkdW1teTMgdHlwZSBkdW1teQppcCBsaW5rIGFkZCBkdW1teTQgdHlwZSBk dW1teQppcCBsaW5rIGFkZCBkdW1teTUgdHlwZSBkdW1teQppcCBsaW5rIGFkZCBkdW1teTYgdHlw ZSBkdW1teQppcCBsaW5rIGFkZCBkdW1teTcgdHlwZSBkdW1teQppcCBsaW5rIGFkZCBkdW1teTgg dHlwZSBkdW1teQppcCBsaW5rIGFkZCBkdW1teTkgdHlwZSBkdW1teQppcCBsaW5rIGFkZCBkdW1t eTEwIHR5cGUgZHVtbXkKaXAgbGluayBhZGQgZHVtbXkxMSB0eXBlIGR1bW15CmlwIGxpbmsgYWRk IGR1bW15MTIgdHlwZSBkdW1teQppcCBsaW5rIGFkZCBkdW1teTEzIHR5cGUgZHVtbXkKaXAgbGlu ayBhZGQgZHVtbXkxNCB0eXBlIGR1bW15CmlwIGxpbmsgYWRkIGR1bW15MTUgdHlwZSBkdW1teQpp cCBsaW5rIGFkZCBkdW1teTE2IHR5cGUgZHVtbXkKaXAgbGluayBhZGQgZHVtbXkxNyB0eXBlIGR1 bW15CmlwIGxpbmsgYWRkIGR1bW15MTggdHlwZSBkdW1teQppcCBsaW5rIGFkZCBkdW1teTE5IHR5 cGUgZHVtbXkKaXAgbGluayBhZGQgZHVtbXkyMCB0eXBlIGR1bW15CmlwIGxpbmsgYWRkIGR1bW15 MjEgdHlwZSBkdW1teQppcCBsaW5rIGFkZCBkdW1teTIyIHR5cGUgZHVtbXkKaXAgbGluayBhZGQg ZHVtbXkyMyB0eXBlIGR1bW15CmlwIGxpbmsgYWRkIGR1bW15MjQgdHlwZSBkdW1teQppcCBsaW5r IGFkZCBkdW1teTI1IHR5cGUgZHVtbXkKaXAgbGluayBhZGQgZHVtbXkyNiB0eXBlIGR1bW15Cmlw IGxpbmsgYWRkIGR1bW15MjcgdHlwZSBkdW1teQppcCBsaW5rIGFkZCBkdW1teTI4IHR5cGUgZHVt bXkKaXAgbGluayBhZGQgZHVtbXkyOSB0eXBlIGR1bW15CmlwIGxpbmsgYWRkIGR1bW15MzAgdHlw ZSBkdW1teQppcCBsaW5rIGFkZCBkdW1teTMxIHR5cGUgZHVtbXkKaXAgbGluayBhZGQgZHVtbXkz MiB0eXBlIGR1bW15CgppcCBsaW5rIHNldCBkdW1teTEgdXAKaXAgbGluayBzZXQgZHVtbXkyIHVw CmlwIGxpbmsgc2V0IGR1bW15MyB1cAppcCBsaW5rIHNldCBkdW1teTQgdXAKaXAgbGluayBzZXQg ZHVtbXk1IHVwCmlwIGxpbmsgc2V0IGR1bW15NiB1cAppcCBsaW5rIHNldCBkdW1teTcgdXAKaXAg bGluayBzZXQgZHVtbXk4IHVwCmlwIGxpbmsgc2V0IGR1bW15OSB1cAppcCBsaW5rIHNldCBkdW1t eTEwIHVwCmlwIGxpbmsgc2V0IGR1bW15MTEgdXAKaXAgbGluayBzZXQgZHVtbXkxMiB1cAppcCBs aW5rIHNldCBkdW1teTEzIHVwCmlwIGxpbmsgc2V0IGR1bW15MTQgdXAKaXAgbGluayBzZXQgZHVt bXkxNSB1cAppcCBsaW5rIHNldCBkdW1teTE2IHVwCmlwIGxpbmsgc2V0IGR1bW15MTcgdXAKaXAg bGluayBzZXQgZHVtbXkxOCB1cAppcCBsaW5rIHNldCBkdW1teTE5IHVwCmlwIGxpbmsgc2V0IGR1 bW15MjAgdXAKaXAgbGluayBzZXQgZHVtbXkyMSB1cAppcCBsaW5rIHNldCBkdW1teTIyIHVwCmlw IGxpbmsgc2V0IGR1bW15MjMgdXAKaXAgbGluayBzZXQgZHVtbXkyNCB1cAppcCBsaW5rIHNldCBk dW1teTI1IHVwCmlwIGxpbmsgc2V0IGR1bW15MjYgdXAKaXAgbGluayBzZXQgZHVtbXkyNyB1cApp cCBsaW5rIHNldCBkdW1teTI4IHVwCmlwIGxpbmsgc2V0IGR1bW15MjkgdXAKaXAgbGluayBzZXQg ZHVtbXkzMCB1cAppcCBsaW5rIHNldCBkdW1teTMxIHVwCmlwIGxpbmsgc2V0IGR1bW15MzIgdXAK CmlwIGxpbmsgc2V0IGR1bW15MzMgdXAKaXAgbGluayBzZXQgZHVtbXkzNCB1cAoKaXAgbGluayBz ZXQgdnJmLXJlZCB1cAppcCBsaW5rIHNldCB2cmYtYmx1ZSB1cAoKaXAgbGluayBzZXQgZHVtbXlW UkZyZWQgdXAKaXAgbGluayBzZXQgZHVtbXlWUkZibHVlIHVwCgppcCBybyBhZGQgMS4xLjEuMS8z MiBkZXYgZHVtbXkxCmlwIHJvIGFkZCAxLjEuMS4yLzMyIGRldiBkdW1teTIKaXAgcm8gYWRkIDEu MS4xLjMvMzIgZGV2IGR1bW15MwppcCBybyBhZGQgMS4xLjEuNC8zMiBkZXYgZHVtbXk0CmlwIHJv IGFkZCAxLjEuMS41LzMyIGRldiBkdW1teTUKaXAgcm8gYWRkIDEuMS4xLjYvMzIgZGV2IGR1bW15 NgppcCBybyBhZGQgMS4xLjEuNy8zMiBkZXYgZHVtbXk3CmlwIHJvIGFkZCAxLjEuMS44LzMyIGRl diBkdW1teTgKaXAgcm8gYWRkIDEuMS4xLjkvMzIgZGV2IGR1bW15OQppcCBybyBhZGQgMS4xLjEu MTAvMzIgZGV2IGR1bW15MTAKaXAgcm8gYWRkIDEuMS4xLjExLzMyIGRldiBkdW1teTExCmlwIHJv IGFkZCAxLjEuMS4xMi8zMiBkZXYgZHVtbXkxMgppcCBybyBhZGQgMS4xLjEuMTMvMzIgZGV2IGR1 bW15MTMKaXAgcm8gYWRkIDEuMS4xLjE0LzMyIGRldiBkdW1teTE0CmlwIHJvIGFkZCAxLjEuMS4x NS8zMiBkZXYgZHVtbXkxNQppcCBybyBhZGQgMS4xLjEuMTYvMzIgZGV2IGR1bW15MTYKaXAgcm8g YWRkIDEuMS4xLjE3LzMyIGRldiBkdW1teTE3CmlwIHJvIGFkZCAxLjEuMS4xOC8zMiBkZXYgZHVt bXkxOAppcCBybyBhZGQgMS4xLjEuMTkvMzIgZGV2IGR1bW15MTkKaXAgcm8gYWRkIDEuMS4xLjIw LzMyIGRldiBkdW1teTIwCmlwIHJvIGFkZCAxLjEuMS4yMS8zMiBkZXYgZHVtbXkyMQppcCBybyBh ZGQgMS4xLjEuMjIvMzIgZGV2IGR1bW15MjIKaXAgcm8gYWRkIDEuMS4xLjIzLzMyIGRldiBkdW1t eTIzCmlwIHJvIGFkZCAxLjEuMS4yNC8zMiBkZXYgZHVtbXkyNAppcCBybyBhZGQgMS4xLjEuMjUv MzIgZGV2IGR1bW15MjUKaXAgcm8gYWRkIDEuMS4xLjI2LzMyIGRldiBkdW1teTI2CmlwIHJvIGFk ZCAxLjEuMS4yNy8zMiBkZXYgZHVtbXkyNwppcCBybyBhZGQgMS4xLjEuMjgvMzIgZGV2IGR1bW15 MjgKaXAgcm8gYWRkIDEuMS4xLjI5LzMyIGRldiBkdW1teTI5CmlwIHJvIGFkZCAxLjEuMS4zMC8z MiBkZXYgZHVtbXkzMAppcCBybyBhZGQgMS4xLjEuMzEvMzIgZGV2IGR1bW15MzEKaXAgcm8gYWRk IDEuMS4xLjMyLzMyIGRldiBkdW1teTMyCgppcCBuZXh0IGFkZCBpZCAxIHZpYSAxLjEuMS4xIGRl diBkdW1teTEKaXAgbmV4dCBhZGQgaWQgMiB2aWEgMS4xLjEuMiBkZXYgZHVtbXkyCmlwIG5leHQg YWRkIGlkIDMgdmlhIDEuMS4xLjMgZGV2IGR1bW15MwppcCBuZXh0IGFkZCBpZCA0IHZpYSAxLjEu MS40IGRldiBkdW1teTQKaXAgbmV4dCBhZGQgaWQgNSB2aWEgMS4xLjEuNSBkZXYgZHVtbXk1Cmlw IG5leHQgYWRkIGlkIDYgdmlhIDEuMS4xLjYgZGV2IGR1bW15NgppcCBuZXh0IGFkZCBpZCA3IHZp YSAxLjEuMS43IGRldiBkdW1teTcKaXAgbmV4dCBhZGQgaWQgOCB2aWEgMS4xLjEuOCBkZXYgZHVt bXk4CmlwIG5leHQgYWRkIGlkIDkgdmlhIDEuMS4xLjkgZGV2IGR1bW15OQppcCBuZXh0IGFkZCBp ZCAxMCB2aWEgMS4xLjEuMTAgZGV2IGR1bW15MTAKaXAgbmV4dCBhZGQgaWQgMTEgdmlhIDEuMS4x LjExIGRldiBkdW1teTExCmlwIG5leHQgYWRkIGlkIDEyIHZpYSAxLjEuMS4xMiBkZXYgZHVtbXkx MgppcCBuZXh0IGFkZCBpZCAxMyB2aWEgMS4xLjEuMTMgZGV2IGR1bW15MTMKaXAgbmV4dCBhZGQg aWQgMTQgdmlhIDEuMS4xLjE0IGRldiBkdW1teTE0CmlwIG5leHQgYWRkIGlkIDE1IHZpYSAxLjEu MS4xNSBkZXYgZHVtbXkxNQppcCBuZXh0IGFkZCBpZCAxNiB2aWEgMS4xLjEuMTYgZGV2IGR1bW15 MTYKaXAgbmV4dCBhZGQgaWQgMTcgdmlhIDEuMS4xLjE3IGRldiBkdW1teTE3CmlwIG5leHQgYWRk IGlkIDE4IHZpYSAxLjEuMS4xOCBkZXYgZHVtbXkxOAppcCBuZXh0IGFkZCBpZCAxOSB2aWEgMS4x LjEuMTkgZGV2IGR1bW15MTkKaXAgbmV4dCBhZGQgaWQgMjAgdmlhIDEuMS4xLjIwIGRldiBkdW1t eTIwCmlwIG5leHQgYWRkIGlkIDIxIHZpYSAxLjEuMS4yMSBkZXYgZHVtbXkyMQppcCBuZXh0IGFk ZCBpZCAyMiB2aWEgMS4xLjEuMjIgZGV2IGR1bW15MjIKaXAgbmV4dCBhZGQgaWQgMjMgdmlhIDEu MS4xLjIzIGRldiBkdW1teTIzCmlwIG5leHQgYWRkIGlkIDI0IHZpYSAxLjEuMS4yNCBkZXYgZHVt bXkyNAppcCBuZXh0IGFkZCBpZCAyNSB2aWEgMS4xLjEuMjUgZGV2IGR1bW15MjUKaXAgbmV4dCBh ZGQgaWQgMjYgdmlhIDEuMS4xLjI2IGRldiBkdW1teTI2CmlwIG5leHQgYWRkIGlkIDI3IHZpYSAx LjEuMS4yNyBkZXYgZHVtbXkyNwppcCBuZXh0IGFkZCBpZCAyOCB2aWEgMS4xLjEuMjggZGV2IGR1 bW15MjgKaXAgbmV4dCBhZGQgaWQgMjkgdmlhIDEuMS4xLjI5IGRldiBkdW1teTI5CmlwIG5leHQg YWRkIGlkIDMwIHZpYSAxLjEuMS4zMCBkZXYgZHVtbXkzMAppcCBuZXh0IGFkZCBpZCAzMSB2aWEg MS4xLjEuMzEgZGV2IGR1bW15MzEKaXAgbmV4dCBhZGQgaWQgMzIgdmlhIDEuMS4xLjMyIGRldiBk dW1teTMyCgppPTEwMAoKd2hpbGUgWyAkaSAtbGUgMjAwIF0KZG8KaXAgbmV4dCBhZGQgaWQgJGkg Z3JvdXAgMS8yLzMvNC81LzYvNy84LzkvMTAvMTEvMTIvMTMvMTQvMTUvMTYvMTcvMTgvMTkKCgll Y2hvICRpCgoJKChpKyspKQoKZG9uZQoKaXAgbmV4dCBhZGQgaWQgOTk5IGdyb3VwIDEvMi8zLzQv NS82CgppcCBuZXh0IGxzCgo9PT09PT09PT09PT09PT09PT09PT09PT0KCkZpeGVzOiBhYjg0YmU3 ZTU0ZmMgKCJuZXQ6IEluaXRpYWwgbmV4dGhvcCBjb2RlIikKU2lnbmVkLW9mZi1ieTogU3RlcGhl biBXb3JsZXkgPHN3b3JsZXlAY3VtdWx1c25ldHdvcmtzLmNvbT4KUmV2aWV3ZWQtYnk6IERhdmlk IEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L25leHRob3AuYyB8IDEgKwogMSBm aWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvbmV4dGhv cC5jIGIvbmV0L2lwdjQvbmV4dGhvcC5jCmluZGV4IDM3MzdkMzJhZDExYS4uZDIzNjkyOTc5MTBi IDEwMDY0NAotLS0gYS9uZXQvaXB2NC9uZXh0aG9wLmMKKysrIGIvbmV0L2lwdjQvbmV4dGhvcC5j CkBAIC0yNzcsNiArMjc3LDcgQEAgc3RhdGljIGludCBuaF9maWxsX25vZGUoc3RydWN0IHNrX2J1 ZmYgKnNrYiwgc3RydWN0IG5leHRob3AgKm5oLAogCXJldHVybiAwOwogCiBubGFfcHV0X2ZhaWx1 cmU6CisJbmxtc2dfY2FuY2VsKHNrYiwgbmxoKTsKIAlyZXR1cm4gLUVNU0dTSVpFOwogfQogCi0t IAoyLjI2LjIKCgpGcm9tIDZhNWIyMWEyM2IzYmEyOWIxY2M2MDFjZWViOGU2ZmQ1NThkMmQwZTYg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1hbml2YW5uYW4gU2FkaGFzaXZhbSA8bWFu aXZhbm5hbi5zYWRoYXNpdmFtQGxpbmFyby5vcmc+CkRhdGU6IFR1ZSwgMTkgTWF5IDIwMjAgMjM6 NDQ6MTYgKzA1MzAKU3ViamVjdDogW1BBVENIIDEyLzI1XSBuZXQ6IHFydHI6IEZpeCBwYXNzaW5n IGludmFsaWQgcmVmZXJlbmNlIHRvCiBxcnRyX2xvY2FsX2VucXVldWUoKQoKWyBVcHN0cmVhbSBj b21taXQgZDI4ZWExZmJiZjQzNzA1NGVmMzM5YWZlYzI0MTAxOWYyYzRlMmJiNiBdCgpPbmNlIHRo ZSB0cmF2ZXJzYWwgb2YgdGhlIGxpc3QgaXMgY29tcGxldGVkIHdpdGggbGlzdF9mb3JfZWFjaF9l bnRyeSgpLAp0aGUgaXRlcmF0b3IgKG5vZGUpIHdpbGwgcG9pbnQgdG8gYW4gaW52YWxpZCBvYmpl Y3QuIFNvIHBhc3NpbmcgdGhpcyB0bwpxcnRyX2xvY2FsX2VucXVldWUoKSB3aGljaCBpcyBvdXRz aWRlIG9mIHRoZSBpdGVyYXRvciBibG9jayBpcyBlcnJvbmVvdXMKZXZlbnRob3VnaCB0aGUgb2Jq ZWN0IGlzIG5vdCB1c2VkLgoKU28gZml4IHRoaXMgYnkgcGFzc2luZyBOVUxMIHRvIHFydHJfbG9j YWxfZW5xdWV1ZSgpLgoKRml4ZXM6IGJkYWJhZDNlMzYzZCAoIm5ldDogQWRkIFF1YWxjb21tIElQ QyByb3V0ZXIiKQpSZXBvcnRlZC1ieToga2J1aWxkIHRlc3Qgcm9ib3QgPGxrcEBpbnRlbC5jb20+ ClJlcG9ydGVkLWJ5OiBKdWxpYSBMYXdhbGwgPGp1bGlhLmxhd2FsbEBsaXA2LmZyPgpTaWduZWQt b2ZmLWJ5OiBNYW5pdmFubmFuIFNhZGhhc2l2YW0gPG1hbml2YW5uYW4uc2FkaGFzaXZhbUBsaW5h cm8ub3JnPgpSZXZpZXdlZC1ieTogQmpvcm4gQW5kZXJzc29uIDxiam9ybi5hbmRlcnNzb25AbGlu YXJvLm9yZz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIG5ldC9xcnRyL3FydHIuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2Vy dGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9xcnRyL3FydHIuYyBiL25l dC9xcnRyL3FydHIuYwppbmRleCA5MzBmNDhhMjA1NDYuLjJhNGQ1MGUwNDQ0MSAxMDA2NDQKLS0t IGEvbmV0L3FydHIvcXJ0ci5jCisrKyBiL25ldC9xcnRyL3FydHIuYwpAQCAtNzExLDcgKzcxMSw3 IEBAIHN0YXRpYyBpbnQgcXJ0cl9iY2FzdF9lbnF1ZXVlKHN0cnVjdCBxcnRyX25vZGUgKm5vZGUs IHN0cnVjdCBza19idWZmICpza2IsCiAJfQogCW11dGV4X3VubG9jaygmcXJ0cl9ub2RlX2xvY2sp OwogCi0JcXJ0cl9sb2NhbF9lbnF1ZXVlKG5vZGUsIHNrYiwgdHlwZSwgZnJvbSwgdG8pOworCXFy dHJfbG9jYWxfZW5xdWV1ZShOVUxMLCBza2IsIHR5cGUsIGZyb20sIHRvKTsKIAogCXJldHVybiAw OwogfQotLSAKMi4yNi4yCgoKRnJvbSAzM2NlNDI0YTM2Y2NjMzdiZjdmZjZkNzg5ODMxOWExNTcw MWY3N2U2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBZdXFpIEppbiA8amlueXVxaUBo dWF3ZWkuY29tPgpEYXRlOiBTYXQsIDE2IE1heSAyMDIwIDExOjQ2OjQ5ICswODAwClN1YmplY3Q6 IFtQQVRDSCAxMy8yNV0gbmV0OiByZXZlcnQgIm5ldDogZ2V0IHJpZCBvZiBhbiBzaWduZWQgaW50 ZWdlciBvdmVyZmxvdwogaW4gaXBfaWRlbnRzX3Jlc2VydmUoKSIKClsgVXBzdHJlYW0gY29tbWl0 IGE2MjExY2FhNjM0ZGEzOWQ4NjFhNDc0MzdmZmNkYThiMzhlZjQyMWIgXQoKQ29tbWl0IGFkYjAz MTE1ZjQ1OSAoIm5ldDogZ2V0IHJpZCBvZiBhbiBzaWduZWQgaW50ZWdlciBvdmVyZmxvdyBpbiBp cF9pZGVudHNfcmVzZXJ2ZSgpIikKdXNlZCBhdG9taWNfY21weGNoZyB0byByZXBsYWNlICJhdG9t aWNfYWRkX3JldHVybiIgaW5zaWRlIHRoZSBmdW5jdGlvbgoiaXBfaWRlbnRzX3Jlc2VydmUiLiBU aGUgcmVhc29uIHdhcyB0byBhdm9pZCBVQlNBTiB3YXJuaW5nLgpIb3dldmVyLCB0aGlzIGNoYW5n ZSBoYXMgY2F1c2VkIHBlcmZvcm1hbmNlIGRlZ3JhZGUgYW5kIGluIEdDQy04LApmbm8tc3RyaWN0 LW92ZXJmbG93IGlzIG5vdyBtYXBwZWQgdG8gLWZ3cmFwdiAtZndyYXB2LXBvaW50ZXIKYW5kIHNp Z25lZCBpbnRlZ2VyIG92ZXJmbG93IGlzIG5vdyB1bmRlZmluZWQgYnkgZGVmYXVsdCBhdCBhbGwK b3B0aW1pemF0aW9uIGxldmVsc1sxXS4gTW9yZW92ZXIsIGl0IHdhcyBhIGJ1ZyBpbiBVQlNBTiB2 cyAtZndyYXB2Ci8tZm5vLXN0cmljdC1vdmVyZmxvdywgc28gTGV0J3MgcmV2ZXJ0IGl0IHNhZmVs eS4KClsxXSBodHRwczovL2djYy5nbnUub3JnL2djYy04L2NoYW5nZXMuaHRtbAoKU3VnZ2VzdGVk LWJ5OiBQZXRlciBaaWpsc3RyYSA8cGV0ZXJ6QGluZnJhZGVhZC5vcmc+ClN1Z2dlc3RlZC1ieTog RXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpDYzogIkRhdmlkIFMuIE1pbGxlciIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+CkNjOiBBbGV4ZXkgS3V6bmV0c292IDxrdXpuZXRAbXMyLmlu ci5hYy5ydT4KQ2M6IEhpZGVha2kgWU9TSElGVUpJIDx5b3NoZnVqaUBsaW51eC1pcHY2Lm9yZz4K Q2M6IEpha3ViIEtpY2luc2tpIDxrdWJhQGtlcm5lbC5vcmc+CkNjOiBKaXJpIFBpcmtvIDxqaXJp QHJlc251bGxpLnVzPgpDYzogQXJ2aW5kIFNhbmthciA8bml2ZWRpdGFAYWx1bS5taXQuZWR1PgpD YzogUGV0ZXIgWmlqbHN0cmEgPHBldGVyekBpbmZyYWRlYWQub3JnPgpDYzogRXJpYyBEdW1hemV0 IDxlZHVtYXpldEBnb29nbGUuY29tPgpDYzogSmlvbmcgV2FuZyA8amlvbmd3YW5nQGh1YXdlaS5j b20+ClNpZ25lZC1vZmYtYnk6IFl1cWkgSmluIDxqaW55dXFpQGh1YXdlaS5jb20+ClNpZ25lZC1v ZmYtYnk6IFNoYW9rdW4gWmhhbmcgPHpoYW5nc2hhb2t1bkBoaXNpbGljb24uY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lw djQvcm91dGUuYyB8IDE0ICsrKysrKy0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRp b25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3JvdXRlLmMgYi9u ZXQvaXB2NC9yb3V0ZS5jCmluZGV4IDU1OGRkZjdhYjM5NS4uYjNhOGQzMmY3ZDhkIDEwMDY0NAot LS0gYS9uZXQvaXB2NC9yb3V0ZS5jCisrKyBiL25ldC9pcHY0L3JvdXRlLmMKQEAgLTQ5MCwxOCAr NDkwLDE2IEBAIHUzMiBpcF9pZGVudHNfcmVzZXJ2ZSh1MzIgaGFzaCwgaW50IHNlZ3MpCiAJYXRv bWljX3QgKnBfaWQgPSBpcF9pZGVudHMgKyBoYXNoICUgSVBfSURFTlRTX1NaOwogCXUzMiBvbGQg PSBSRUFEX09OQ0UoKnBfdHN0YW1wKTsKIAl1MzIgbm93ID0gKHUzMilqaWZmaWVzOwotCXUzMiBu ZXcsIGRlbHRhID0gMDsKKwl1MzIgZGVsdGEgPSAwOwogCiAJaWYgKG9sZCAhPSBub3cgJiYgY21w eGNoZyhwX3RzdGFtcCwgb2xkLCBub3cpID09IG9sZCkKIAkJZGVsdGEgPSBwcmFuZG9tX3UzMl9t YXgobm93IC0gb2xkKTsKIAotCS8qIERvIG5vdCB1c2UgYXRvbWljX2FkZF9yZXR1cm4oKSBhcyBp dCBtYWtlcyBVQlNBTiB1bmhhcHB5ICovCi0JZG8gewotCQlvbGQgPSAodTMyKWF0b21pY19yZWFk KHBfaWQpOwotCQluZXcgPSBvbGQgKyBkZWx0YSArIHNlZ3M7Ci0JfSB3aGlsZSAoYXRvbWljX2Nt cHhjaGcocF9pZCwgb2xkLCBuZXcpICE9IG9sZCk7Ci0KLQlyZXR1cm4gbmV3IC0gc2VnczsKKwkv KiBJZiBVQlNBTiByZXBvcnRzIGFuIGVycm9yIHRoZXJlLCBwbGVhc2UgbWFrZSBzdXJlIHlvdXIg Y29tcGlsZXIKKwkgKiBzdXBwb3J0cyAtZm5vLXN0cmljdC1vdmVyZmxvdyBiZWZvcmUgcmVwb3J0 aW5nIGl0IHRoYXQgd2FzIGEgYnVnCisJICogaW4gVUJTQU4sIGFuZCBpdCBoYXMgYmVlbiBmaXhl ZCBpbiBHQ0MtOC4KKwkgKi8KKwlyZXR1cm4gYXRvbWljX2FkZF9yZXR1cm4oc2VncyArIGRlbHRh LCBwX2lkKSAtIHNlZ3M7CiB9CiBFWFBPUlRfU1lNQk9MKGlwX2lkZW50c19yZXNlcnZlKTsKIAot LSAKMi4yNi4yCgoKRnJvbSBjNmM2NTI1ZWQ2NjA0N2Y3NGFmNjg1NTU1M2M0Zjg4MTdiMmMxOWQz IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSb21hbiBNYXNoYWsgPG1ydkBtb2phdGF0 dS5jb20+CkRhdGU6IFN1biwgMTcgTWF5IDIwMjAgMDg6NDY6MzEgLTA0MDAKU3ViamVjdDogW1BB VENIIDE0LzI1XSBuZXQgc2NoZWQ6IGZpeCByZXBvcnRpbmcgdGhlIGZpcnN0LXRpbWUgdXNlIHRp bWVzdGFtcAoKWyBVcHN0cmVhbSBjb21taXQgYjE1ZTYyNjMxYzVmMTlmZWE5ODk1Zjc2MzJkYWU5 YzFiMjdmZTBjZCBdCgpXaGVuIGEgbmV3IGFjdGlvbiBpcyBpbnN0YWxsZWQsIGZpcnN0dXNlIGZp ZWxkIG9mICd0Y2ZfdCcgaXMgZXhwbGljaXRseSBzZXQKdG8gMC4gVmFsdWUgb2YgemVybyBtZWFu cyAibmV3IGFjdGlvbiwgbm90IHlldCB1c2VkIjsgYXMgYSBwYWNrZXQgaGl0cyB0aGUKYWN0aW9u LCAnZmlyc3R1c2UnIGlzIHN0YW1wZWQgd2l0aCB0aGUgY3VycmVudCBqaWZmaWVzIHZhbHVlLgoK dGNmX3RtX2R1bXAoKSBzaG91bGQgcmV0dXJuIDAgZm9yIGZpcnN0dXNlIGlmIGFjdGlvbiBoYXMg bm90IHlldCBiZWVuIGhpdC4KCkZpeGVzOiA0OGQ4ZWUxNjk0ZGQgKCJuZXQgc2NoZWQgYWN0aW9u czogYWdncmVnYXRlIGR1bXBpbmcgb2YgYWN0aW9ucyB0aW1laW5mbyIpCkNjOiBKYW1hbCBIYWRp IFNhbGltIDxqaHNAbW9qYXRhdHUuY29tPgpTaWduZWQtb2ZmLWJ5OiBSb21hbiBNYXNoYWsgPG1y dkBtb2phdGF0dS5jb20+CkFja2VkLWJ5OiBKYW1hbCBIYWRpIFNhbGltIDxqaHNAbW9qYXRhdHUu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogaW5jbHVkZS9uZXQvYWN0X2FwaS5oIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGlu c2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9hY3Rf YXBpLmggYi9pbmNsdWRlL25ldC9hY3RfYXBpLmgKaW5kZXggYjE4YzY5OTY4MWNhLi41OWQwNWZl ZWNmYjggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2FjdF9hcGkuaAorKysgYi9pbmNsdWRlL25l dC9hY3RfYXBpLmgKQEAgLTY5LDcgKzY5LDggQEAgc3RhdGljIGlubGluZSB2b2lkIHRjZl90bV9k dW1wKHN0cnVjdCB0Y2ZfdCAqZHRtLCBjb25zdCBzdHJ1Y3QgdGNmX3QgKnN0bSkKIHsKIAlkdG0t Pmluc3RhbGwgPSBqaWZmaWVzX3RvX2Nsb2NrX3QoamlmZmllcyAtIHN0bS0+aW5zdGFsbCk7CiAJ ZHRtLT5sYXN0dXNlID0gamlmZmllc190b19jbG9ja190KGppZmZpZXMgLSBzdG0tPmxhc3R1c2Up OwotCWR0bS0+Zmlyc3R1c2UgPSBqaWZmaWVzX3RvX2Nsb2NrX3QoamlmZmllcyAtIHN0bS0+Zmly c3R1c2UpOworCWR0bS0+Zmlyc3R1c2UgPSBzdG0tPmZpcnN0dXNlID8KKwkJamlmZmllc190b19j bG9ja190KGppZmZpZXMgLSBzdG0tPmZpcnN0dXNlKSA6IDA7CiAJZHRtLT5leHBpcmVzID0gamlm Zmllc190b19jbG9ja190KHN0bS0+ZXhwaXJlcyk7CiB9CiAKLS0gCjIuMjYuMgoKCkZyb20gZDBj YjAxNjMyMWMxNzQzMTAwZjg3MWIzNjRlMmJiODgyMzQ2YzBhZSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogVmluYXkgS3VtYXIgWWFkYXYgPHZpbmF5LnlhZGF2QGNoZWxzaW8uY29tPgpE YXRlOiBTYXQsIDIzIE1heSAyMDIwIDAxOjQwOjMxICswNTMwClN1YmplY3Q6IFtQQVRDSCAxNS8y NV0gbmV0L3RsczogZml4IHJhY2UgY29uZGl0aW9uIGNhdXNpbmcga2VybmVsIHBhbmljCgpbIFVw c3RyZWFtIGNvbW1pdCAwY2FkYTMzMjQxZDlkZTIwNTUyMmUzODU4YjE4ZTUwNmNhNWNjZTJjIF0K CnRsc19zd19yZWN2bXNnKCkgYW5kIHRsc19kZWNyeXB0X2RvbmUoKSBjYW4gYmUgcnVuIGNvbmN1 cnJlbnRseS4KLy8gdGxzX3N3X3JlY3Ztc2coKQoJaWYgKGF0b21pY19yZWFkKCZjdHgtPmRlY3J5 cHRfcGVuZGluZykpCgkJY3J5cHRvX3dhaXRfcmVxKC1FSU5QUk9HUkVTUywgJmN0eC0+YXN5bmNf d2FpdCk7CgllbHNlCgkJcmVpbml0X2NvbXBsZXRpb24oJmN0eC0+YXN5bmNfd2FpdC5jb21wbGV0 aW9uKTsKCi8vdGxzX2RlY3J5cHRfZG9uZSgpCiAgCXBlbmRpbmcgPSBhdG9taWNfZGVjX3JldHVy bigmY3R4LT5kZWNyeXB0X3BlbmRpbmcpOwoKICAJaWYgKCFwZW5kaW5nICYmIFJFQURfT05DRShj dHgtPmFzeW5jX25vdGlmeSkpCiAgCQljb21wbGV0ZSgmY3R4LT5hc3luY193YWl0LmNvbXBsZXRp b24pOwoKQ29uc2lkZXIgdGhlIHNjZW5hcmlvIHRsc19kZWNyeXB0X2RvbmUoKSBpcyBhYm91dCB0 byBydW4gY29tcGxldGUoKQoKCWlmICghcGVuZGluZyAmJiBSRUFEX09OQ0UoY3R4LT5hc3luY19u b3RpZnkpKQoKYW5kIHRsc19zd19yZWN2bXNnKCkgcmVhZHMgZGVjcnlwdF9wZW5kaW5nID09IDAs IGRvZXMgcmVpbml0X2NvbXBsZXRpb24oKSwKdGhlbiB0bHNfZGVjcnlwdF9kb25lKCkgcnVucyBj b21wbGV0ZSgpLiBUaGlzIHNlcXVlbmNlIG9mIGV4ZWN1dGlvbgpyZXN1bHRzIGluIHdyb25nIGNv bXBsZXRpb24uIENvbnNlcXVlbnRseSwgZm9yIG5leHQgZGVjcnlwdCByZXF1ZXN0LAppdCB3aWxs IG5vdCB3YWl0IGZvciBjb21wbGV0aW9uLCBldmVudHVhbGx5IG9uIGNvbm5lY3Rpb24gY2xvc2Us IGNyeXB0bwpyZXNvdXJjZXMgZnJlZWQsIHRoZXJlIGlzIG5vIHdheSB0byBoYW5kbGUgcGVuZGlu ZyBkZWNyeXB0IHJlc3BvbnNlLgoKVGhpcyByYWNlIGNvbmRpdGlvbiBjYW4gYmUgYXZvaWRlZCBi eSBoYXZpbmcgYXRvbWljX3JlYWQoKSBtdXR1YWxseQpleGNsdXNpdmUgd2l0aCBhdG9taWNfZGVj X3JldHVybigpLGNvbXBsZXRlKCkuSW50b2R1Y2VkIHNwaW4gbG9jayB0bwplbnN1cmUgdGhlIG11 dHVhbCBleGNsdXRpb24uCgpBZGRyZXNzZWQgc2ltaWxhciBwcm9ibGVtIGluIHR4IGRpcmVjdGlv bi4KCnYxLT52MjoKLSBNb3JlIHJlYWRhYmxlIGNvbW1pdCBtZXNzYWdlLgotIENvcnJlY3RlZCB0 aGUgbG9jayB0byBmaXggbmV3IHJhY2Ugc2NlbmFyaW8uCi0gUmVtb3ZlZCBiYXJyaWVyIHdoaWNo IGlzIG5vdCBuZWVkZWQgbm93LgoKRml4ZXM6IGE0MjA1NWU4ZDJjMyAoIm5ldC90bHM6IEFkZCBz dXBwb3J0IGZvciBhc3luYyBlbmNyeXB0aW9uIG9mIHJlY29yZHMgZm9yIHBlcmZvcm1hbmNlIikK U2lnbmVkLW9mZi1ieTogVmluYXkgS3VtYXIgWWFkYXYgPHZpbmF5LnlhZGF2QGNoZWxzaW8uY29t PgpSZXZpZXdlZC1ieTogSmFrdWIgS2ljaW5za2kgPGt1YmFAa2VybmVsLm9yZz4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUv bmV0L3Rscy5oIHwgIDQgKysrKwogbmV0L3Rscy90bHNfc3cuYyAgfCAzMyArKysrKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMzEgaW5zZXJ0aW9ucygrKSwg NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC90bHMuaCBiL2luY2x1ZGUv bmV0L3Rscy5oCmluZGV4IDA5M2FiYjVhM2RmZi4uZGIyNmUzZWM5MThmIDEwMDY0NAotLS0gYS9p bmNsdWRlL25ldC90bHMuaAorKysgYi9pbmNsdWRlL25ldC90bHMuaApAQCAtMTU3LDYgKzE1Nyw4 IEBAIHN0cnVjdCB0bHNfc3dfY29udGV4dF90eCB7CiAJc3RydWN0IHRsc19yZWMgKm9wZW5fcmVj OwogCXN0cnVjdCBsaXN0X2hlYWQgdHhfbGlzdDsKIAlhdG9taWNfdCBlbmNyeXB0X3BlbmRpbmc7 CisJLyogcHJvdGVjdCBjcnlwdG9fd2FpdCB3aXRoIGVuY3J5cHRfcGVuZGluZyAqLworCXNwaW5s b2NrX3QgZW5jcnlwdF9jb21wbF9sb2NrOwogCWludCBhc3luY19ub3RpZnk7CiAJaW50IGFzeW5j X2NhcGFibGU7CiAKQEAgLTE3Nyw2ICsxNzksOCBAQCBzdHJ1Y3QgdGxzX3N3X2NvbnRleHRfcngg ewogCWludCBhc3luY19jYXBhYmxlOwogCWJvb2wgZGVjcnlwdGVkOwogCWF0b21pY190IGRlY3J5 cHRfcGVuZGluZzsKKwkvKiBwcm90ZWN0IGNyeXB0b193YWl0IHdpdGggZGVjcnlwdF9wZW5kaW5n Ki8KKwlzcGlubG9ja190IGRlY3J5cHRfY29tcGxfbG9jazsKIAlib29sIGFzeW5jX25vdGlmeTsK IH07CiAKZGlmZiAtLWdpdCBhL25ldC90bHMvdGxzX3N3LmMgYi9uZXQvdGxzL3Rsc19zdy5jCmlu ZGV4IDU1MTNhMDhhNDMwOC4uNmEyZTk0ZmQ4Y2YyIDEwMDY0NAotLS0gYS9uZXQvdGxzL3Rsc19z dy5jCisrKyBiL25ldC90bHMvdGxzX3N3LmMKQEAgLTIwMywxMCArMjAzLDEyIEBAIHN0YXRpYyB2 b2lkIHRsc19kZWNyeXB0X2RvbmUoc3RydWN0IGNyeXB0b19hc3luY19yZXF1ZXN0ICpyZXEsIGlu dCBlcnIpCiAKIAlrZnJlZShhZWFkX3JlcSk7CiAKKwlzcGluX2xvY2tfYmgoJmN0eC0+ZGVjcnlw dF9jb21wbF9sb2NrKTsKIAlwZW5kaW5nID0gYXRvbWljX2RlY19yZXR1cm4oJmN0eC0+ZGVjcnlw dF9wZW5kaW5nKTsKIAotCWlmICghcGVuZGluZyAmJiBSRUFEX09OQ0UoY3R4LT5hc3luY19ub3Rp ZnkpKQorCWlmICghcGVuZGluZyAmJiBjdHgtPmFzeW5jX25vdGlmeSkKIAkJY29tcGxldGUoJmN0 eC0+YXN5bmNfd2FpdC5jb21wbGV0aW9uKTsKKwlzcGluX3VubG9ja19iaCgmY3R4LT5kZWNyeXB0 X2NvbXBsX2xvY2spOwogfQogCiBzdGF0aWMgaW50IHRsc19kb19kZWNyeXB0aW9uKHN0cnVjdCBz b2NrICpzaywKQEAgLTQ2NCwxMCArNDY2LDEyIEBAIHN0YXRpYyB2b2lkIHRsc19lbmNyeXB0X2Rv bmUoc3RydWN0IGNyeXB0b19hc3luY19yZXF1ZXN0ICpyZXEsIGludCBlcnIpCiAJCQlyZWFkeSA9 IHRydWU7CiAJfQogCisJc3Bpbl9sb2NrX2JoKCZjdHgtPmVuY3J5cHRfY29tcGxfbG9jayk7CiAJ cGVuZGluZyA9IGF0b21pY19kZWNfcmV0dXJuKCZjdHgtPmVuY3J5cHRfcGVuZGluZyk7CiAKLQlp ZiAoIXBlbmRpbmcgJiYgUkVBRF9PTkNFKGN0eC0+YXN5bmNfbm90aWZ5KSkKKwlpZiAoIXBlbmRp bmcgJiYgY3R4LT5hc3luY19ub3RpZnkpCiAJCWNvbXBsZXRlKCZjdHgtPmFzeW5jX3dhaXQuY29t cGxldGlvbik7CisJc3Bpbl91bmxvY2tfYmgoJmN0eC0+ZW5jcnlwdF9jb21wbF9sb2NrKTsKIAog CWlmICghcmVhZHkpCiAJCXJldHVybjsKQEAgLTkyMyw2ICs5MjcsNyBAQCBpbnQgdGxzX3N3X3Nl bmRtc2coc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbXNnaGRyICptc2csIHNpemVfdCBzaXplKQog CWludCBudW1femMgPSAwOwogCWludCBvcmlnX3NpemU7CiAJaW50IHJldCA9IDA7CisJaW50IHBl bmRpbmc7CiAKIAlpZiAobXNnLT5tc2dfZmxhZ3MgJiB+KE1TR19NT1JFIHwgTVNHX0RPTlRXQUlU IHwgTVNHX05PU0lHTkFMKSkKIAkJcmV0dXJuIC1FT1BOT1RTVVBQOwpAQCAtMTA4OSwxMyArMTA5 NCwxOSBAQCBpbnQgdGxzX3N3X3NlbmRtc2coc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbXNnaGRy ICptc2csIHNpemVfdCBzaXplKQogCQlnb3RvIHNlbmRfZW5kOwogCX0gZWxzZSBpZiAobnVtX3pj KSB7CiAJCS8qIFdhaXQgZm9yIHBlbmRpbmcgZW5jcnlwdGlvbnMgdG8gZ2V0IGNvbXBsZXRlZCAq LwotCQlzbXBfc3RvcmVfbWIoY3R4LT5hc3luY19ub3RpZnksIHRydWUpOworCQlzcGluX2xvY2tf YmgoJmN0eC0+ZW5jcnlwdF9jb21wbF9sb2NrKTsKKwkJY3R4LT5hc3luY19ub3RpZnkgPSB0cnVl OwogCi0JCWlmIChhdG9taWNfcmVhZCgmY3R4LT5lbmNyeXB0X3BlbmRpbmcpKQorCQlwZW5kaW5n ID0gYXRvbWljX3JlYWQoJmN0eC0+ZW5jcnlwdF9wZW5kaW5nKTsKKwkJc3Bpbl91bmxvY2tfYmgo JmN0eC0+ZW5jcnlwdF9jb21wbF9sb2NrKTsKKwkJaWYgKHBlbmRpbmcpCiAJCQljcnlwdG9fd2Fp dF9yZXEoLUVJTlBST0dSRVNTLCAmY3R4LT5hc3luY193YWl0KTsKIAkJZWxzZQogCQkJcmVpbml0 X2NvbXBsZXRpb24oJmN0eC0+YXN5bmNfd2FpdC5jb21wbGV0aW9uKTsKIAorCQkvKiBUaGVyZSBj YW4gYmUgbm8gY29uY3VycmVudCBhY2Nlc3Nlcywgc2luY2Ugd2UgaGF2ZSBubworCQkgKiBwZW5k aW5nIGVuY3J5cHQgb3BlcmF0aW9ucworCQkgKi8KIAkJV1JJVEVfT05DRShjdHgtPmFzeW5jX25v dGlmeSwgZmFsc2UpOwogCiAJCWlmIChjdHgtPmFzeW5jX3dhaXQuZXJyKSB7CkBAIC0xNzI0LDYg KzE3MzUsNyBAQCBpbnQgdGxzX3N3X3JlY3Ztc2coc3RydWN0IHNvY2sgKnNrLAogCWJvb2wgaXNf a3ZlYyA9IGlvdl9pdGVyX2lzX2t2ZWMoJm1zZy0+bXNnX2l0ZXIpOwogCWJvb2wgaXNfcGVlayA9 IGZsYWdzICYgTVNHX1BFRUs7CiAJaW50IG51bV9hc3luYyA9IDA7CisJaW50IHBlbmRpbmc7CiAK IAlmbGFncyB8PSBub25ibG9jazsKIApAQCAtMTg4Niw4ICsxODk4LDExIEBAIGludCB0bHNfc3df cmVjdm1zZyhzdHJ1Y3Qgc29jayAqc2ssCiByZWN2X2VuZDoKIAlpZiAobnVtX2FzeW5jKSB7CiAJ CS8qIFdhaXQgZm9yIGFsbCBwcmV2aW91c2x5IHN1Ym1pdHRlZCByZWNvcmRzIHRvIGJlIGRlY3J5 cHRlZCAqLwotCQlzbXBfc3RvcmVfbWIoY3R4LT5hc3luY19ub3RpZnksIHRydWUpOwotCQlpZiAo YXRvbWljX3JlYWQoJmN0eC0+ZGVjcnlwdF9wZW5kaW5nKSkgeworCQlzcGluX2xvY2tfYmgoJmN0 eC0+ZGVjcnlwdF9jb21wbF9sb2NrKTsKKwkJY3R4LT5hc3luY19ub3RpZnkgPSB0cnVlOworCQlw ZW5kaW5nID0gYXRvbWljX3JlYWQoJmN0eC0+ZGVjcnlwdF9wZW5kaW5nKTsKKwkJc3Bpbl91bmxv Y2tfYmgoJmN0eC0+ZGVjcnlwdF9jb21wbF9sb2NrKTsKKwkJaWYgKHBlbmRpbmcpIHsKIAkJCWVy ciA9IGNyeXB0b193YWl0X3JlcSgtRUlOUFJPR1JFU1MsICZjdHgtPmFzeW5jX3dhaXQpOwogCQkJ aWYgKGVycikgewogCQkJCS8qIG9uZSBvZiBhc3luYyBkZWNyeXB0IGZhaWxlZCAqLwpAQCAtMTg5 OSw2ICsxOTE0LDEwIEBAIGludCB0bHNfc3dfcmVjdm1zZyhzdHJ1Y3Qgc29jayAqc2ssCiAJCX0g ZWxzZSB7CiAJCQlyZWluaXRfY29tcGxldGlvbigmY3R4LT5hc3luY193YWl0LmNvbXBsZXRpb24p OwogCQl9CisKKwkJLyogVGhlcmUgY2FuIGJlIG5vIGNvbmN1cnJlbnQgYWNjZXNzZXMsIHNpbmNl IHdlIGhhdmUgbm8KKwkJICogcGVuZGluZyBkZWNyeXB0IG9wZXJhdGlvbnMKKwkJICovCiAJCVdS SVRFX09OQ0UoY3R4LT5hc3luY19ub3RpZnksIGZhbHNlKTsKIAogCQkvKiBEcmFpbiByZWNvcmRz IGZyb20gdGhlIHJ4X2xpc3QgJiBjb3B5IGlmIHJlcXVpcmVkICovCkBAIC0yMjg1LDYgKzIzMDQs NyBAQCBpbnQgdGxzX3NldF9zd19vZmZsb2FkKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHRsc19j b250ZXh0ICpjdHgsIGludCB0eCkKIAogCWlmICh0eCkgewogCQljcnlwdG9faW5pdF93YWl0KCZz d19jdHhfdHgtPmFzeW5jX3dhaXQpOworCQlzcGluX2xvY2tfaW5pdCgmc3dfY3R4X3R4LT5lbmNy eXB0X2NvbXBsX2xvY2spOwogCQljcnlwdG9faW5mbyA9ICZjdHgtPmNyeXB0b19zZW5kLmluZm87 CiAJCWNjdHggPSAmY3R4LT50eDsKIAkJYWVhZCA9ICZzd19jdHhfdHgtPmFlYWRfc2VuZDsKQEAg LTIyOTMsNiArMjMxMyw3IEBAIGludCB0bHNfc2V0X3N3X29mZmxvYWQoc3RydWN0IHNvY2sgKnNr LCBzdHJ1Y3QgdGxzX2NvbnRleHQgKmN0eCwgaW50IHR4KQogCQlzd19jdHhfdHgtPnR4X3dvcmsu c2sgPSBzazsKIAl9IGVsc2UgewogCQljcnlwdG9faW5pdF93YWl0KCZzd19jdHhfcngtPmFzeW5j X3dhaXQpOworCQlzcGluX2xvY2tfaW5pdCgmc3dfY3R4X3J4LT5kZWNyeXB0X2NvbXBsX2xvY2sp OwogCQljcnlwdG9faW5mbyA9ICZjdHgtPmNyeXB0b19yZWN2LmluZm87CiAJCWNjdHggPSAmY3R4 LT5yeDsKIAkJc2tiX3F1ZXVlX2hlYWRfaW5pdCgmc3dfY3R4X3J4LT5yeF9saXN0KTsKLS0gCjIu MjYuMgoKCkZyb20gN2UyYjQzOGQyNDY3YWNjYTgxMzgzYTAwZjQ0OTkwYmUyMjFhZmJhYyBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29t PgpEYXRlOiBTdW4sIDE3IE1heSAyMDIwIDExOjI2OjMyIC0wNjAwClN1YmplY3Q6IFtQQVRDSCAx Ni8yNV0gbmV4dGhvcDogRml4IGF0dHJpYnV0ZSBjaGVja2luZyBmb3IgZ3JvdXBzCgpbIFVwc3Ry ZWFtIGNvbW1pdCA4NGJlNjliODY5YTVhNDk2YTZjZmRlOWIzYzI5NTA5MjA3YTFmMWZhIF0KCkZv ciBuZXh0aG9wIGdyb3VwcywgYXR0cmlidXRlcyBhZnRlciBOSEFfR1JPVVBfVFlQRSBhcmUgaW52 YWxpZCwgYnV0Cm5oX2NoZWNrX2F0dHJfZ3JvdXAgc3RhcnRzIGNoZWNraW5nIGF0IE5IQV9HUk9V UC4gVGhlIGdyb3VwIHR5cGUgZGVmYXVsdHMKdG8gbXVsdGlwYXRoIGFuZCB0aGUgTkhBX0dST1VQ X1RZUEUgaXMgY3VycmVudGx5IG9wdGlvbmFsIHNvIHRoaXMgaGFzCnNsaXBwZWQgdGhyb3VnaCBz byBmYXIuIEZpeCB0aGUgYXR0cmlidXRlIGNoZWNraW5nIHRvIGhhbmRsZSBzdXBwb3J0IG9mCm5l dyBncm91cCB0eXBlcy4KCkZpeGVzOiA0MzBhMDQ5MTkwZGUgKCJuZXh0aG9wOiBBZGQgc3VwcG9y dCBmb3IgbmV4dGhvcCBncm91cHMiKQpTaWduZWQtb2ZmLWJ5OiBBU1NPR0JBIEVtZXJ5IDxhc3Nv Z2JhLmVtZXJ5QGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgQWhlcm4gPGRzYWhlcm5A Z21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogbmV0L2lwdjQvbmV4dGhvcC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEg aW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvbmV4dGhv cC5jIGIvbmV0L2lwdjQvbmV4dGhvcC5jCmluZGV4IGQyMzY5Mjk3OTEwYi4uNGQxNTMxYzQ3ODBj IDEwMDY0NAotLS0gYS9uZXQvaXB2NC9uZXh0aG9wLmMKKysrIGIvbmV0L2lwdjQvbmV4dGhvcC5j CkBAIC00MzUsNyArNDM1LDcgQEAgc3RhdGljIGludCBuaF9jaGVja19hdHRyX2dyb3VwKHN0cnVj dCBuZXQgKm5ldCwgc3RydWN0IG5sYXR0ciAqdGJbXSwKIAkJaWYgKCF2YWxpZF9ncm91cF9uaChu aCwgbGVuLCBleHRhY2spKQogCQkJcmV0dXJuIC1FSU5WQUw7CiAJfQotCWZvciAoaSA9IE5IQV9H Uk9VUCArIDE7IGkgPCBfX05IQV9NQVg7ICsraSkgeworCWZvciAoaSA9IE5IQV9HUk9VUF9UWVBF ICsgMTsgaSA8IF9fTkhBX01BWDsgKytpKSB7CiAJCWlmICghdGJbaV0pCiAJCQljb250aW51ZTsK IAotLSAKMi4yNi4yCgoKRnJvbSBjNTIwNzBhMDEzYzE1ZjMyM2VjYmNmMTRhOGE1YmI1YTc4N2I5 YjRjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJjIFBheW5lIDxtYXJjLnBheW5l QG1kcHN5cy5jby51az4KRGF0ZTogVHVlLCAxOSBNYXkgMjAyMCAxOTowMTo0NiArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggMTcvMjVdIHI4MTUyOiBzdXBwb3J0IGFkZGl0aW9uYWwgTWljcm9zb2Z0IFN1 cmZhY2UgRXRoZXJuZXQKIEFkYXB0ZXIgdmFyaWFudAoKWyBVcHN0cmVhbSBjb21taXQgYzI3YTIw NDM4MzYxNmVmYmE1YTQxOTQwNzVlOTA4MTk5NjFmZjY2YSBdCgpEZXZpY2UgaWQgMDkyNyBpcyB0 aGUgUlRMODE1M0ItYmFzZWQgY29tcG9uZW50IG9mIHRoZSAnU3VyZmFjZSBVU0ItQyB0bwpFdGhl cm5ldCBhbmQgVVNCIEFkYXB0ZXInIGFuZCBtYXkgYmUgdXNlZCBhcyBhIGNvbXBvbmVudCBvZiBv dGhlciBkZXZpY2VzCmluIGZ1dHVyZS4gVGVzdGVkIGFuZCB3b3JraW5nIHdpdGggdGhlIHI4MTUy IGRyaXZlci4KClVwZGF0ZSB0aGUgY2RjX2V0aGVyIGJsYWNrbGlzdCBkdWUgdG8gdGhlIFJUTDgx NTMgJ25ldHdvcmsgamFtIG9uIHN1c3BlbmQnCmlzc3VlIHdoaWNoIHRoaXMgZGV2aWNlIHdpbGwg Y2F1c2UgKHBlcnNvbmFsbHkgY29uZmlybWVkKS4KClNpZ25lZC1vZmYtYnk6IE1hcmMgUGF5bmUg PG1hcmMucGF5bmVAbWRwc3lzLmNvLnVrPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdXNiL2NkY19ldGhlci5jIHwg MTEgKysrKysrKysrLS0KIGRyaXZlcnMvbmV0L3VzYi9yODE1Mi5jICAgICB8ICAxICsKIDIgZmls ZXMgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC91c2IvY2RjX2V0aGVyLmMgYi9kcml2ZXJzL25ldC91c2IvY2RjX2V0aGVy LmMKaW5kZXggZmU2MzA0MzhmNjdiLi45YmIzN2FjOTlhMTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L3VzYi9jZGNfZXRoZXIuYworKysgYi9kcml2ZXJzL25ldC91c2IvY2RjX2V0aGVyLmMKQEAg LTgwOCwxNCArODA4LDIxIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZAlwcm9k dWN0c1tdID0gewogCS5kcml2ZXJfaW5mbyA9IDAsCiB9LAogCi0vKiBNaWNyb3NvZnQgU3VyZmFj ZSAzIGRvY2sgKGJhc2VkIG9uIFJlYWx0ZWsgUlRMODE1MykgKi8KKy8qIE1pY3Jvc29mdCBTdXJm YWNlIEV0aGVybmV0IEFkYXB0ZXIgKGJhc2VkIG9uIFJlYWx0ZWsgUlRMODE1MykgKi8KIHsKIAlV U0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhNSUNST1NPRlRfVkVORE9SX0lELCAweDA3YzYs IFVTQl9DTEFTU19DT01NLAogCQkJVVNCX0NEQ19TVUJDTEFTU19FVEhFUk5FVCwgVVNCX0NEQ19Q Uk9UT19OT05FKSwKIAkuZHJpdmVyX2luZm8gPSAwLAogfSwKIAotCS8qIFRQLUxJTksgVUUzMDAg VVNCIDMuMCBFdGhlcm5ldCBBZGFwdGVycyAoYmFzZWQgb24gUmVhbHRlayBSVEw4MTUzKSAqLwor LyogTWljcm9zb2Z0IFN1cmZhY2UgRXRoZXJuZXQgQWRhcHRlciAoYmFzZWQgb24gUmVhbHRlayBS VEw4MTUzQikgKi8KK3sKKwlVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhNSUNST1NPRlRf VkVORE9SX0lELCAweDA5MjcsIFVTQl9DTEFTU19DT01NLAorCQkJVVNCX0NEQ19TVUJDTEFTU19F VEhFUk5FVCwgVVNCX0NEQ19QUk9UT19OT05FKSwKKwkuZHJpdmVyX2luZm8gPSAwLAorfSwKKwor LyogVFAtTElOSyBVRTMwMCBVU0IgMy4wIEV0aGVybmV0IEFkYXB0ZXJzIChiYXNlZCBvbiBSZWFs dGVrIFJUTDgxNTMpICovCiB7CiAJVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oVFBMSU5L X1ZFTkRPUl9JRCwgMHgwNjAxLCBVU0JfQ0xBU1NfQ09NTSwKIAkJCVVTQl9DRENfU1VCQ0xBU1Nf RVRIRVJORVQsIFVTQl9DRENfUFJPVE9fTk9ORSksCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC91 c2IvcjgxNTIuYyBiL2RyaXZlcnMvbmV0L3VzYi9yODE1Mi5jCmluZGV4IDQ0ZWE1ZGNjNDNmZC4u Y2QxYTA3MTc1ZTExIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC91c2IvcjgxNTIuYworKysgYi9k cml2ZXJzL25ldC91c2IvcjgxNTIuYwpAQCAtNTgzNyw2ICs1ODM3LDcgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHJ0bDgxNTJfdGFibGVbXSA9IHsKIAl7UkVBTFRFS19VU0Jf REVWSUNFKFZFTkRPUl9JRF9SRUFMVEVLLCAweDgxNTMpfSwKIAl7UkVBTFRFS19VU0JfREVWSUNF KFZFTkRPUl9JRF9NSUNST1NPRlQsIDB4MDdhYil9LAogCXtSRUFMVEVLX1VTQl9ERVZJQ0UoVkVO RE9SX0lEX01JQ1JPU09GVCwgMHgwN2M2KX0sCisJe1JFQUxURUtfVVNCX0RFVklDRShWRU5ET1Jf SURfTUlDUk9TT0ZULCAweDA5MjcpfSwKIAl7UkVBTFRFS19VU0JfREVWSUNFKFZFTkRPUl9JRF9T QU1TVU5HLCAweGExMDEpfSwKIAl7UkVBTFRFS19VU0JfREVWSUNFKFZFTkRPUl9JRF9MRU5PVk8s ICAweDMwNGYpfSwKIAl7UkVBTFRFS19VU0JfREVWSUNFKFZFTkRPUl9JRF9MRU5PVk8sICAweDMw NjIpfSwKLS0gCjIuMjYuMgoKCkZyb20gOWY5ODViYzMwNWEyM2Q2NTU0MmIxMTYzZmM4Nzk3NjA0 YmUyMjk2NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTmVpbCBIb3JtYW4gPG5ob3Jt YW5AdHV4ZHJpdmVyLmNvbT4KRGF0ZTogVHVlLCAxOSBNYXkgMjAyMCAxNjowNDowNSAtMDQwMApT dWJqZWN0OiBbUEFUQ0ggMTgvMjVdIHNjdHA6IERvbid0IGFkZCB0aGUgc2h1dGRvd24gdGltZXIg aWYgaXRzIGFscmVhZHkgYmVlbgogYWRkZWQKClsgVXBzdHJlYW0gY29tbWl0IDIwYTc4NWFhNTJj ODIyNDYwNTVhMDg5ZTU1ZGY5ZGFjNDdkNjdkYTEgXQoKVGhpcyBCVUcgaGFsdCB3YXMgcmVwb3J0 ZWQgYSB3aGlsZSBiYWNrLCBidXQgdGhlIHBhdGNoIHNvbWVob3cgZ290Cm1pc3NlZDoKClBJRDog Mjg3OSAgIFRBU0s6IGMxNmFkYWEwICBDUFU6IDEgICBDT01NQU5EOiAic2N0cG4iCiAjMCBbZjQx OGRkMjhdIGNyYXNoX2tleGVjIGF0IGMwNGE3ZDhjCiAjMSBbZjQxOGRkN2NdIG9vcHNfZW5kIGF0 IGMwODYzZTAyCiAjMiBbZjQxOGRkOTBdIGRvX2ludmFsaWRfb3AgYXQgYzA0MGFhY2EKICMzIFtm NDE4ZGUyOF0gZXJyb3JfY29kZSAodmlhIGludmFsaWRfb3ApIGF0IGMwODYzMWE1CiAgICBFQVg6 IGYzNGJhYWMwICBFQlg6IDAwMDAwMDkwICBFQ1g6IGY0MThkZWIwICBFRFg6IGY1NTQyOTUwICBF QlA6IDAwMDAwMDAwCiAgICBEUzogIDAwN2IgICAgICBFU0k6IGYzNGJhODAwICBFUzogIDAwN2Ig ICAgICBFREk6IGY0MThkZWEwICBHUzogIDAwZTAKICAgIENTOiAgMDA2MCAgICAgIEVJUDogYzA0 NmZhNWUgIEVSUjogZmZmZmZmZmYgIEVGTEFHUzogMDAwMTAyODYKICM0IFtmNDE4ZGU1Y10gYWRk X3RpbWVyIGF0IGMwNDZmYTVlCiAjNSBbZjQxOGRlNjhdIHNjdHBfZG9fc20gYXQgZjhkYjhjNzcg W3NjdHBdCiAjNiBbZjQxOGRmMzBdIHNjdHBfcHJpbWl0aXZlX1NIVVRET1dOIGF0IGY4ZGNjMWI1 IFtzY3RwXQogIzcgW2Y0MThkZjQ4XSBpbmV0X3NodXRkb3duIGF0IGMwODBiYWY5CiAjOCBbZjQx OGRmNWNdIHN5c19zaHV0ZG93biBhdCBjMDc5ZWVkZgogIzkgW2Y0MThkZjcwXSBzeXNfc29ja2V0 Y2FsbCBhdCBjMDc5ZmU4OAogICAgRUFYOiBmZmZmZmZkYSAgRUJYOiAwMDAwMDAwZCAgRUNYOiBi ZmNlZWE5MCAgRURYOiAwOTM3YWY5OAogICAgRFM6ICAwMDdiICAgICAgRVNJOiAwMDAwMDAwYyAg RVM6ICAwMDdiICAgICAgRURJOiBiNzE1MGFlNAogICAgU1M6ICAwMDdiICAgICAgRVNQOiBiZmNl ZWE3YyAgRUJQOiBiZmNlZWFhOCAgR1M6ICAwMDMzCiAgICBDUzogIDAwNzMgICAgICBFSVA6IGI3 NzVjNDI0ICBFUlI6IDAwMDAwMDY2ICBFRkxBR1M6IDAwMDAwMjgyCgpJdCBhcHBlYXJzIHRoYXQg dGhlIHNpZGUgZWZmZWN0IHRoYXQgc3RhcnRzIHRoZSBzaHV0ZG93biB0aW1lciB3YXMgcHJvY2Vz c2VkCm11bHRpcGxlIHRpbWVzLCB3aGljaCBjYW4gaGFwcGVuIGFzIG11bHRpcGxlIHBhdGhzIGNh biB0cmlnZ2VyIGl0LiAgVGhpcyBvZgpjb3Vyc2UgbGVhZHMgdG8gdGhlIEJVRyBoYWx0IGluIGFk ZF90aW1lciBnZXR0aW5nIGNhbGxlZC4KCkZpeCBzZWVtcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJk LCBqdXN0IGNoZWNrIGJlZm9yZSB0aGUgdGltZXIgaXMgYWRkZWQgaWYgaXRzCmFscmVhZHkgYmVl biBzdGFydGVkLiAgSWYgaXQgaGFzIG1vZCB0aGUgdGltZXIgaW5zdGVhZCB0byBtaW4oY3VycmVu dApleHBpcmF0aW9uLCBuZXcgZXhwaXJhdGlvbikKCkl0cyBiZWVuIHRlc3RlZCBidXQgbm90IGNv bmZpcm1lZCB0byBmaXggdGhlIHByb2JsZW0sIGFzIHRoZSBpc3N1ZSBoYXMgb25seQpvY2N1cmVk IGluIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRzIHdoZXJlIHRlc3Qga2VybmVscyBhcmUgZW5qb2lu ZWQgZnJvbSBiZWluZwppbnN0YWxsZWQuICBJdCBhcHBlYXJzIHRvIGJlIGEgc2FuZSBmaXggdG8g bWUgdGhvdWdoLiAgQWxzbywgcmVjZW50ZWx5LApKZXJlIGZvdW5kIGEgcmVwcm9kdWNlciBwb3N0 ZWQgb24gbGlzdCB0byBjb25maXJtIHRoYXQgdGhpcyByZXNvbHZlcyB0aGUKaXNzdWVzCgpTaWdu ZWQtb2ZmLWJ5OiBOZWlsIEhvcm1hbiA8bmhvcm1hbkB0dXhkcml2ZXIuY29tPgpDQzogVmxhZCBZ YXNldmljaCA8dnlhc2V2aWNoQGdtYWlsLmNvbT4KQ0M6ICJEYXZpZCBTLiBNaWxsZXIiIDxkYXZl bUBkYXZlbWxvZnQubmV0PgpDQzogamVyZS5sZXBwYW5lbkBub2tpYS5jb20KQ0M6IG1hcmNlbG8u bGVpdG5lckBnbWFpbC5jb20KQ0M6IG5ldGRldkB2Z2VyLmtlcm5lbC5vcmcKQWNrZWQtYnk6IE1h cmNlbG8gUmljYXJkbyBMZWl0bmVyIDxtYXJjZWxvLmxlaXRuZXJAZ21haWwuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3Nj dHAvc21fc2lkZWVmZmVjdC5jIHwgMTQgKysrKysrKysrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAx MSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9zY3RwL3Nt X3NpZGVlZmZlY3QuYyBiL25ldC9zY3RwL3NtX3NpZGVlZmZlY3QuYwppbmRleCBiMDZjYWU1MDgx NTguLjY5MjdiNjU4ZGFkMyAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvc21fc2lkZWVmZmVjdC5jCisr KyBiL25ldC9zY3RwL3NtX3NpZGVlZmZlY3QuYwpAQCAtMTUyMiw5ICsxNTIyLDE3IEBAIHN0YXRp YyBpbnQgc2N0cF9jbWRfaW50ZXJwcmV0ZXIoZW51bSBzY3RwX2V2ZW50X3R5cGUgZXZlbnRfdHlw ZSwKIAkJCXRpbWVvdXQgPSBhc29jLT50aW1lb3V0c1tjbWQtPm9iai50b107CiAJCQlCVUdfT04o IXRpbWVvdXQpOwogCi0JCQl0aW1lci0+ZXhwaXJlcyA9IGppZmZpZXMgKyB0aW1lb3V0OwotCQkJ c2N0cF9hc3NvY2lhdGlvbl9ob2xkKGFzb2MpOwotCQkJYWRkX3RpbWVyKHRpbWVyKTsKKwkJCS8q CisJCQkgKiBTQ1RQIGhhcyBhIGhhcmQgdGltZSB3aXRoIHRpbWVyIHN0YXJ0cy4gIEJlY2F1c2Ug d2UgcHJvY2VzcworCQkJICogdGltZXIgc3RhcnRzIGFzIHNpZGUgZWZmZWN0cywgaXQgY2FuIGJl IGhhcmQgdG8gdGVsbCBpZiB3ZQorCQkJICogaGF2ZSBhbHJlYWR5IHN0YXJ0ZWQgYSB0aW1lciBv ciBub3QsIHdoaWNoIGxlYWRzIHRvIEJVRworCQkJICogaGFsdHMgd2hlbiB3ZSBjYWxsIGFkZF90 aW1lci4gU28gaGVyZSwgaW5zdGVhZCBvZiBqdXN0IHN0YXJ0aW5nCisJCQkgKiBhIHRpbWVyLCBp ZiB0aGUgdGltZXIgaXMgYWxyZWFkeSBzdGFydGVkLCBhbmQganVzdCBtb2QKKwkJCSAqIHRoZSB0 aW1lciB3aXRoIHRoZSBzaG9ydGVyIG9mIHRoZSB0d28gZXhwaXJhdGlvbiB0aW1lcworCQkJICov CisJCQlpZiAoIXRpbWVyX3BlbmRpbmcodGltZXIpKQorCQkJCXNjdHBfYXNzb2NpYXRpb25faG9s ZChhc29jKTsKKwkJCXRpbWVyX3JlZHVjZSh0aW1lciwgamlmZmllcyArIHRpbWVvdXQpOwogCQkJ YnJlYWs7CiAKIAkJY2FzZSBTQ1RQX0NNRF9USU1FUl9SRVNUQVJUOgotLSAKMi4yNi4yCgoKRnJv bSAwYzczNGI2MDA3ZGYyMjcyYTkwMDljNWE0N2RmNjI5ODIzNDA5M2NmIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/SmVyZT0yMExlcHA9QzM9QTRuZW4/PSA8amVyZS5s ZXBwYW5lbkBub2tpYS5jb20+CkRhdGU6IFdlZCwgMjAgTWF5IDIwMjAgMTg6MTU6MzEgKzAzMDAK U3ViamVjdDogW1BBVENIIDE5LzI1XSBzY3RwOiBTdGFydCBzaHV0ZG93biBvbiBhc3NvY2lhdGlv biByZXN0YXJ0IGlmIGluCiBTSFVURE9XTi1TRU5UIHN0YXRlIGFuZCBzb2NrZXQgaXMgY2xvc2Vk Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYt OApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpbIFVwc3RyZWFtIGNvbW1pdCBkM2U4 ZTRjMTE4NzA0MTM3ODlmMDI5YTcxZTcyYWU2ZTk3MWZlNjc4IF0KCkNvbW1pdCBiZGY2ZmE1MmYw MWIgKCJzY3RwOiBoYW5kbGUgYXNzb2NpYXRpb24gcmVzdGFydHMgd2hlbiB0aGUKc29ja2V0IGlz IGNsb3NlZC4iKSBzdGFydHMgc2h1dGRvd24gd2hlbiBhbiBhc3NvY2lhdGlvbiBpcyByZXN0YXJ0 ZWQsCmlmIGluIFNIVVRET1dOLVBFTkRJTkcgc3RhdGUgYW5kIHRoZSBzb2NrZXQgaXMgY2xvc2Vk LiBIb3dldmVyLCB0aGUKcmF0aW9uYWxlIHN0YXRlZCBpbiB0aGF0IGNvbW1pdCBhcHBsaWVzIGFs c28gd2hlbiBpbiBTSFVURE9XTi1TRU5UCnN0YXRlIC0gd2UgZG9uJ3Qgd2FudCB0byBtb3ZlIGFu IGFzc29jaWF0aW9uIHRvIEVTVEFCTElTSEVEIHN0YXRlIHdoZW4KdGhlIHNvY2tldCBoYXMgYmVl biBjbG9zZWQsIGJlY2F1c2UgdGhhdCByZXN1bHRzIGluIGFuIGFzc29jaWF0aW9uCnRoYXQgaXMg dW5yZWFjaGFibGUgZnJvbSB1c2VyIHNwYWNlLgoKVGhlIHByb2JsZW0gc2NlbmFyaW86CgoxLiAg Q2xpZW50IGNyYXNoZXMgYW5kL29yIHJlc3RhcnRzLgoKMi4gIFNlcnZlciAodXNpbmcgb25lLXRv LW9uZSBzb2NrZXQpIGNhbGxzIGNsb3NlKCkuIFNIVVRET1dOIGlzIGxvc3QuCgozLiAgQ2xpZW50 IHJlY29ubmVjdHMgdXNpbmcgdGhlIHNhbWUgYWRkcmVzc2VzIGFuZCBwb3J0cy4KCjQuICBTZXJ2 ZXIncyBhc3NvY2lhdGlvbiBpcyByZXN0YXJ0ZWQuIFRoZSBhc3NvY2lhdGlvbiBhbmQgdGhlIHNv Y2tldAogICAgbW92ZSB0byBFU1RBQkxJU0hFRCBzdGF0ZSwgZXZlbiB0aG91Z2ggdGhlIHNlcnZl ciBwcm9jZXNzIGhhcwogICAgY2xvc2VkIGl0cyBkZXNjcmlwdG9yLgoKQWxzbywgYWZ0ZXIgc3Rl cCA0IHdoZW4gdGhlIHNlcnZlciBwcm9jZXNzIGV4aXRzLCBzb21lIHJlc291cmNlcyBhcmUKbGVh a2VkIGluIGFuIGF0dGVtcHQgdG8gcmVsZWFzZSB0aGUgdW5kZXJseWluZyBpbmV0IHNvY2sgc3Ry dWN0dXJlIGluCkVTVEFCTElTSEVEIHN0YXRlOgoKICAgIElQdjQ6IEF0dGVtcHQgdG8gcmVsZWFz ZSBUQ1Agc29ja2V0IGluIHN0YXRlIDEgMDAwMDAwMDAzNzcyODhjNwoKRml4IGJ5IGFjdGluZyB0 aGUgc2FtZSB3YXkgYXMgaW4gU0hVVERPV04tUEVORElORyBzdGF0ZS4gVGhhdCBpcywgaWYKYW4g YXNzb2NpYXRpb24gaXMgcmVzdGFydGVkIGluIFNIVVRET1dOLVNFTlQgc3RhdGUgYW5kIHRoZSBz b2NrZXQgaXMKY2xvc2VkLCB0aGVuIHN0YXJ0IHNodXRkb3duIGFuZCBkb24ndCBtb3ZlIHRoZSBh c3NvY2lhdGlvbiBvciB0aGUKc29ja2V0IHRvIEVTVEFCTElTSEVEIHN0YXRlLgoKRml4ZXM6IGJk ZjZmYTUyZjAxYiAoInNjdHA6IGhhbmRsZSBhc3NvY2lhdGlvbiByZXN0YXJ0cyB3aGVuIHRoZSBz b2NrZXQgaXMgY2xvc2VkLiIpClNpZ25lZC1vZmYtYnk6IEplcmUgTGVwcMOkbmVuIDxqZXJlLmxl cHBhbmVuQG5va2lhLmNvbT4KQWNrZWQtYnk6IE1hcmNlbG8gUmljYXJkbyBMZWl0bmVyIDxtYXJj ZWxvLmxlaXRuZXJAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjdHAvc21fc3RhdGVmdW5zLmMgfCA5ICsrKysr LS0tLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYyBiL25ldC9zY3RwL3NtX3N0YXRlZnVu cy5jCmluZGV4IDU2MjVhOTUwMGYyMS4uODQxMzhhMDdlOTM2IDEwMDY0NAotLS0gYS9uZXQvc2N0 cC9zbV9zdGF0ZWZ1bnMuYworKysgYi9uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYwpAQCAtMTg1Niwx MiArMTg1NiwxMyBAQCBzdGF0aWMgZW51bSBzY3RwX2Rpc3Bvc2l0aW9uIHNjdHBfc2ZfZG9fZHVw Y29va19hKAogCS8qIFVwZGF0ZSB0aGUgY29udGVudCBvZiBjdXJyZW50IGFzc29jaWF0aW9uLiAq LwogCXNjdHBfYWRkX2NtZF9zZihjb21tYW5kcywgU0NUUF9DTURfVVBEQVRFX0FTU09DLCBTQ1RQ X0FTT0MobmV3X2Fzb2MpKTsKIAlzY3RwX2FkZF9jbWRfc2YoY29tbWFuZHMsIFNDVFBfQ01EX0VW RU5UX1VMUCwgU0NUUF9VTFBFVkVOVChldikpOwotCWlmIChzY3RwX3N0YXRlKGFzb2MsIFNIVVRE T1dOX1BFTkRJTkcpICYmCisJaWYgKChzY3RwX3N0YXRlKGFzb2MsIFNIVVRET1dOX1BFTkRJTkcp IHx8CisJICAgICBzY3RwX3N0YXRlKGFzb2MsIFNIVVRET1dOX1NFTlQpKSAmJgogCSAgICAoc2N0 cF9zc3RhdGUoYXNvYy0+YmFzZS5zaywgQ0xPU0lORykgfHwKIAkgICAgIHNvY2tfZmxhZyhhc29j LT5iYXNlLnNrLCBTT0NLX0RFQUQpKSkgewotCQkvKiBpZiB3ZXJlIGN1cnJlbnRseSBpbiBTSFVU RE9XTl9QRU5ESU5HLCBidXQgdGhlIHNvY2tldAotCQkgKiBoYXMgYmVlbiBjbG9zZWQgYnkgdXNl ciwgZG9uJ3QgdHJhbnNpdGlvbiB0byBFU1RBQkxJU0hFRC4KLQkJICogSW5zdGVhZCB0cmlnZ2Vy IFNIVVRET1dOIGJ1bmRsZWQgd2l0aCBDT09LSUVfQUNLLgorCQkvKiBJZiB0aGUgc29ja2V0IGhh cyBiZWVuIGNsb3NlZCBieSB1c2VyLCBkb24ndAorCQkgKiB0cmFuc2l0aW9uIHRvIEVTVEFCTElT SEVELiBJbnN0ZWFkIHRyaWdnZXIgU0hVVERPV04KKwkJICogYnVuZGxlZCB3aXRoIENPT0tJRV9B Q0suCiAJCSAqLwogCQlzY3RwX2FkZF9jbWRfc2YoY29tbWFuZHMsIFNDVFBfQ01EX1JFUExZLCBT Q1RQX0NIVU5LKHJlcGwpKTsKIAkJcmV0dXJuIHNjdHBfc2ZfZG9fOV8yX3N0YXJ0X3NodXRkb3du KG5ldCwgZXAsIGFzb2MsCi0tIAoyLjI2LjIKCgpGcm9tIDVhM2QyMjAzMzdjYTNhMDkzY2Q3YTJj YWY0MzZlY2RjNWZhNmYxMjAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVt YXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogVGh1LCAyMSBNYXkgMjAyMCAxMToyOTo1 OCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMjAvMjVdIHRpcGM6IGJsb2NrIEJIIGJlZm9yZSB1c2lu ZyBkc3RfY2FjaGUKClsgVXBzdHJlYW0gY29tbWl0IDEzNzg4MTc0ODZkNjg2MGY2YTkyN2Y1NzM0 OTFhZmU2NTI4N2FiZjEgXQoKZHN0X2NhY2hlX2dldCgpIGRvY3VtZW50cyBpdCBtdXN0IGJlIHVz ZWQgd2l0aCBCSCBkaXNhYmxlZC4KCnN5c2JvdCByZXBvcnRlZCA6CgpCVUc6IHVzaW5nIHNtcF9w cm9jZXNzb3JfaWQoKSBpbiBwcmVlbXB0aWJsZSBbMDAwMDAwMDBdIGNvZGU6IC8yMTY5NwpjYWxs ZXIgaXMgZHN0X2NhY2hlX2dldCsweDNhLzB4YjAgbmV0L2NvcmUvZHN0X2NhY2hlLmM6NjgKQ1BV OiAwIFBJRDogMjE2OTcgQ29tbTogIE5vdCB0YWludGVkIDUuNy4wLXJjNi1zeXprYWxsZXIgIzAK SGFyZHdhcmUgbmFtZTogR29vZ2xlIEdvb2dsZSBDb21wdXRlIEVuZ2luZS9Hb29nbGUgQ29tcHV0 ZSBFbmdpbmUsIEJJT1MgR29vZ2xlIDAxLzAxLzIwMTEKQ2FsbCBUcmFjZToKIF9fZHVtcF9zdGFj ayBsaWIvZHVtcF9zdGFjay5jOjc3IFtpbmxpbmVdCiBkdW1wX3N0YWNrKzB4MTg4LzB4MjBkIGxp Yi9kdW1wX3N0YWNrLmM6MTE4CiBjaGVja19wcmVlbXB0aW9uX2Rpc2FibGVkIGxpYi9zbXBfcHJv Y2Vzc29yX2lkLmM6NDcgW2lubGluZV0KIGRlYnVnX3NtcF9wcm9jZXNzb3JfaWQuY29sZCsweDg4 LzB4OWIgbGliL3NtcF9wcm9jZXNzb3JfaWQuYzo1NwogZHN0X2NhY2hlX2dldCsweDNhLzB4YjAg bmV0L2NvcmUvZHN0X2NhY2hlLmM6NjgKIHRpcGNfdWRwX3htaXQuaXNyYS4wKzB4YjkvMHhhZDAg bmV0L3RpcGMvdWRwX21lZGlhLmM6MTY0CiB0aXBjX3VkcF9zZW5kX21zZysweDNlNi8weDQ5MCBu ZXQvdGlwYy91ZHBfbWVkaWEuYzoyNDQKIHRpcGNfYmVhcmVyX3htaXRfc2tiKzB4MWRlLzB4M2Yw IG5ldC90aXBjL2JlYXJlci5jOjUyNgogdGlwY19lbmFibGVfYmVhcmVyKzB4YjJmLzB4ZDYwIG5l dC90aXBjL2JlYXJlci5jOjMzMQogX190aXBjX25sX2JlYXJlcl9lbmFibGUrMHgyYmYvMHgzOTAg bmV0L3RpcGMvYmVhcmVyLmM6OTk1CiB0aXBjX25sX2JlYXJlcl9lbmFibGUrMHgxZS8weDMwIG5l dC90aXBjL2JlYXJlci5jOjEwMDMKIGdlbmxfZmFtaWx5X3Jjdl9tc2dfZG9pdCBuZXQvbmV0bGlu ay9nZW5ldGxpbmsuYzo2NzMgW2lubGluZV0KIGdlbmxfZmFtaWx5X3Jjdl9tc2cgbmV0L25ldGxp bmsvZ2VuZXRsaW5rLmM6NzE4IFtpbmxpbmVdCiBnZW5sX3Jjdl9tc2crMHg2MjcvMHhkZjAgbmV0 L25ldGxpbmsvZ2VuZXRsaW5rLmM6NzM1CiBuZXRsaW5rX3Jjdl9za2IrMHgxNWEvMHg0MTAgbmV0 L25ldGxpbmsvYWZfbmV0bGluay5jOjI0NjkKIGdlbmxfcmN2KzB4MjQvMHg0MCBuZXQvbmV0bGlu ay9nZW5ldGxpbmsuYzo3NDYKIG5ldGxpbmtfdW5pY2FzdF9rZXJuZWwgbmV0L25ldGxpbmsvYWZf bmV0bGluay5jOjEzMDMgW2lubGluZV0KIG5ldGxpbmtfdW5pY2FzdCsweDUzNy8weDc0MCBuZXQv bmV0bGluay9hZl9uZXRsaW5rLmM6MTMyOQogbmV0bGlua19zZW5kbXNnKzB4ODgyLzB4ZTEwIG5l dC9uZXRsaW5rL2FmX25ldGxpbmsuYzoxOTE4CiBzb2NrX3NlbmRtc2dfbm9zZWMgbmV0L3NvY2tl dC5jOjY1MiBbaW5saW5lXQogc29ja19zZW5kbXNnKzB4Y2YvMHgxMjAgbmV0L3NvY2tldC5jOjY3 MgogX19fX3N5c19zZW5kbXNnKzB4NmJmLzB4N2UwIG5ldC9zb2NrZXQuYzoyMzYyCiBfX19zeXNf c2VuZG1zZysweDEwMC8weDE3MCBuZXQvc29ja2V0LmM6MjQxNgogX19zeXNfc2VuZG1zZysweGVj LzB4MWIwIG5ldC9zb2NrZXQuYzoyNDQ5CiBkb19zeXNjYWxsXzY0KzB4ZjYvMHg3ZDAgYXJjaC94 ODYvZW50cnkvY29tbW9uLmM6Mjk1CiBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0 OS8weGIzClJJUDogMDAzMzoweDQ1Y2EyOQoKRml4ZXM6IGU5YzFhNzkzMjEwZiAoInRpcGM6IGFk ZCBkc3RfY2FjaGUgc3VwcG9ydCBmb3IgdWRwIG1lZGlhIikKQ2M6IFhpbiBMb25nIDxsdWNpZW4u eGluQGdtYWlsLmNvbT4KQ2M6IEpvbiBNYWxveSA8am9uLm1hbG95QGVyaWNzc29uLmNvbT4KU2ln bmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpSZXBvcnRlZC1i eTogc3l6Ym90IDxzeXprYWxsZXJAZ29vZ2xlZ3JvdXBzLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC90aXBjL3VkcF9tZWRp YS5jIHwgNiArKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDEgZGVsZXRp b24oLSkKCmRpZmYgLS1naXQgYS9uZXQvdGlwYy91ZHBfbWVkaWEuYyBiL25ldC90aXBjL3VkcF9t ZWRpYS5jCmluZGV4IDE4NmM3ODQzMTIxNy4uOGYwOTc3YTlkNDIzIDEwMDY0NAotLS0gYS9uZXQv dGlwYy91ZHBfbWVkaWEuYworKysgYi9uZXQvdGlwYy91ZHBfbWVkaWEuYwpAQCAtMTYxLDkgKzE2 MSwxMSBAQCBzdGF0aWMgaW50IHRpcGNfdWRwX3htaXQoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qg c2tfYnVmZiAqc2tiLAogCQkJIHN0cnVjdCB1ZHBfYmVhcmVyICp1Yiwgc3RydWN0IHVkcF9tZWRp YV9hZGRyICpzcmMsCiAJCQkgc3RydWN0IHVkcF9tZWRpYV9hZGRyICpkc3QsIHN0cnVjdCBkc3Rf Y2FjaGUgKmNhY2hlKQogewotCXN0cnVjdCBkc3RfZW50cnkgKm5kc3QgPSBkc3RfY2FjaGVfZ2V0 KGNhY2hlKTsKKwlzdHJ1Y3QgZHN0X2VudHJ5ICpuZHN0OwogCWludCB0dGwsIGVyciA9IDA7CiAK Kwlsb2NhbF9iaF9kaXNhYmxlKCk7CisJbmRzdCA9IGRzdF9jYWNoZV9nZXQoY2FjaGUpOwogCWlm IChkc3QtPnByb3RvID09IGh0b25zKEVUSF9QX0lQKSkgewogCQlzdHJ1Y3QgcnRhYmxlICpydCA9 IChzdHJ1Y3QgcnRhYmxlICopbmRzdDsKIApAQCAtMjEwLDkgKzIxMiwxMSBAQCBzdGF0aWMgaW50 IHRpcGNfdWRwX3htaXQoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJ CQkgICBzcmMtPnBvcnQsIGRzdC0+cG9ydCwgZmFsc2UpOwogI2VuZGlmCiAJfQorCWxvY2FsX2Jo X2VuYWJsZSgpOwogCXJldHVybiBlcnI7CiAKIHR4X2Vycm9yOgorCWxvY2FsX2JoX2VuYWJsZSgp OwogCWtmcmVlX3NrYihza2IpOwogCXJldHVybiBlcnI7CiB9Ci0tIAoyLjI2LjIKCgpGcm9tIDA2 ZTQzYTczODlhYjI2Yjk3MGRkYzM5NTVjNGNjZWFhNTI2MmNhYjIgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IFRhcmlxIFRvdWthbiA8dGFyaXF0QG1lbGxhbm94LmNvbT4KRGF0ZTogTW9u LCAyNyBBcHIgMjAyMCAxNjo1Njo1OSArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMjEvMjVdIG5ldC9t bHg1ZToga1RMUywgRGVzdHJveSBrZXkgb2JqZWN0IGFmdGVyIGRlc3Ryb3lpbmcKIHRoZSBUSVMK ClsgVXBzdHJlYW0gY29tbWl0IDE2NzM2ZTExZjQzYjgwYTM4Zjk4ZjZhZGQ1NGZhYjNiOGMyOTdk ZjMgXQoKVGhlIFRMUyBUSVMgb2JqZWN0IGNvbnRhaW5zIHRoZSBkZWsva2V5IElELgpCeSBkZXN0 cm95aW5nIHRoZSBrZXkgZmlyc3QsIHRoZSBUSVMgd291bGQgY29udGFpbiBhbiBpbnZhbGlkCm5v bi1leGlzdGluZyBrZXkgSUQuClJldmVyc2UgdGhlIGRlc3Ryb3kgb3JkZXIsIHRoaXMgYWxzbyBh Y2hlaXZlcyB0aGUgZGVzaXJlZCBhc3N5bWV0cnkKYmV0d2VlbiB0aGUgZGVzdHJveSBhbmQgdGhl IGNyZWF0ZSBmbG93cy4KCkZpeGVzOiBkMmVhZDFmMzYwZTggKCJuZXQvbWx4NWU6IEFkZCBrVExT IFRYIEhXIG9mZmxvYWQgc3VwcG9ydCIpClNpZ25lZC1vZmYtYnk6IFRhcmlxIFRvdWthbiA8dGFy aXF0QG1lbGxhbm94LmNvbT4KUmV2aWV3ZWQtYnk6IEJvcmlzIFBpc21lbm55IDxib3Jpc3BAbWVs bGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94 LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNj ZWwva3Rscy5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0 aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2VuX2FjY2VsL2t0bHMuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUv Y29yZS9lbl9hY2NlbC9rdGxzLmMKaW5kZXggNDY3MjVjZDc0M2EzLi43ZDE5ODVmYTBkNGYgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2Nl bC9rdGxzLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vu X2FjY2VsL2t0bHMuYwpAQCAtNjksOCArNjksOCBAQCBzdGF0aWMgdm9pZCBtbHg1ZV9rdGxzX2Rl bChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LAogCXN0cnVjdCBtbHg1ZV9rdGxzX29mZmxvYWRf Y29udGV4dF90eCAqdHhfcHJpdiA9CiAJCW1seDVlX2dldF9rdGxzX3R4X3ByaXZfY3R4KHRsc19j dHgpOwogCi0JbWx4NV9rdGxzX2Rlc3Ryb3lfa2V5KHByaXYtPm1kZXYsIHR4X3ByaXYtPmtleV9p ZCk7CiAJbWx4NWVfZGVzdHJveV90aXMocHJpdi0+bWRldiwgdHhfcHJpdi0+dGlzbik7CisJbWx4 NV9rdGxzX2Rlc3Ryb3lfa2V5KHByaXYtPm1kZXYsIHR4X3ByaXYtPmtleV9pZCk7CiAJa3ZmcmVl KHR4X3ByaXYpOwogfQogCi0tIAoyLjI2LjIKCgpGcm9tIDkzZjRlZjdmMTliMGNhNmY2NjM1MTU3 MTg3NzhiZjY5NGQ3NjVjZTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFJvaSBEYXlh biA8cm9pZEBtZWxsYW5veC5jb20+CkRhdGU6IFRodSwgMzAgQXByIDIwMjAgMDk6MTY6MDEgKzAz MDAKU3ViamVjdDogW1BBVENIIDIyLzI1XSBuZXQvbWx4NWU6IEZpeCBpbm5lciB0aXJzIGhhbmRs aW5nCgpbIFVwc3RyZWFtIGNvbW1pdCBhMTZiOGUwZGNmNzA0M2JlZTQ2MTc0YmVkMDU1M2NjOWUz NmI2M2E1IF0KCkluIHRoZSBjaXRlZCBjb21taXQgaW5uZXJfdGlycyBhcmd1bWVudCB3YXMgYWRk ZWQgdG8gY3JlYXRlIGFuZCBkZXN0cm95CmlubmVyIHRpcnMsIGFuZCBubyBpbmRpY2F0aW9uIHdh cyBhZGRlZCB0byBtbHg1ZV9tb2RpZnlfdGlyc19oYXNoKCkKZnVuY3Rpb24uIEluIG9yZGVyIHRv IGhhdmUgYSBjb25zaXN0ZW50IGhhbmRsaW5nLCB1c2UKaW5uZXJfaW5kaXJfdGlyWzBdLnRpcm4g aW4gdGlycyBkZXN0cm95L21vZGlmeSBmdW5jdGlvbiBhcyBhbiBpbmRpY2F0aW9uCnRvIHdoZXRo ZXIgaW5uZXIgdGlycyBhcmUgY3JlYXRlZC4KSW5uZXIgdGlycyBhcmUgbm90IGNyZWF0ZWQgZm9y IHJlcHJlc2VudG9ycyBhbmQgYmVmb3JlIHRoaXMgY29tbWl0LAphIGNhbGwgdG8gbWx4NWVfbW9k aWZ5X3RpcnNfaGFzaCgpIHdhcyBzZW5kaW5nIEhXIGNvbW1hbmRzIHRvCm1vZGlmeSBub24tZXhp c3RlbnQgaW5uZXIgdGlycy4KCkZpeGVzOiA0NmRjOTMzY2VlODIgKCJuZXQvbWx4NWU6IFByb3Zp ZGUgZXhwbGljaXQgZGlyZWN0aXZlIGlmIHRvIGNyZWF0ZSBpbm5lciBpbmRpcmVjdCB0aXJzIikK U2lnbmVkLW9mZi1ieTogUm9pIERheWFuIDxyb2lkQG1lbGxhbm94LmNvbT4KUmV2aWV3ZWQtYnk6 IFZsYWQgQnVzbG92IDx2bGFkYnVAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBN YWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvZW4uaCAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMgICAgfCAxMiArKysrKysrLS0tLS0KIGRy aXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9yZXAuYyAgICAgfCAgNCAr Ky0tCiAuLi4vbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9pcG9pYi9pcG9pYi5jICAg IHwgIDQgKystLQogNCBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvZW4uaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oCmlu ZGV4IDM4YWE1NTYzOGJiZS4uOTgzMDRjNDJlNDk1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaAorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaApAQCAtMTEwMyw3ICsxMTAzLDcgQEAgdm9pZCBtbHg1 ZV9jbG9zZV9kcm9wX3JxKHN0cnVjdCBtbHg1ZV9ycSAqZHJvcF9ycSk7CiBpbnQgbWx4NWVfY3Jl YXRlX2luZGlyZWN0X3JxdChzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdik7CiAKIGludCBtbHg1ZV9j cmVhdGVfaW5kaXJlY3RfdGlycyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwgYm9vbCBpbm5lcl90 dGMpOwotdm9pZCBtbHg1ZV9kZXN0cm95X2luZGlyZWN0X3RpcnMoc3RydWN0IG1seDVlX3ByaXYg KnByaXYsIGJvb2wgaW5uZXJfdHRjKTsKK3ZvaWQgbWx4NWVfZGVzdHJveV9pbmRpcmVjdF90aXJz KHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2KTsKIAogaW50IG1seDVlX2NyZWF0ZV9kaXJlY3RfcnF0 cyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwgc3RydWN0IG1seDVlX3RpciAqdGlycyk7CiB2b2lk IG1seDVlX2Rlc3Ryb3lfZGlyZWN0X3JxdHMoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsIHN0cnVj dCBtbHg1ZV90aXIgKnRpcnMpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL2VuX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9lbl9tYWluLmMKaW5kZXggMGUzNDA4OTNjYTAwLi5jMTMzYmViNmE3YTUgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWlu LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4u YwpAQCAtMjc1OCw3ICsyNzU4LDggQEAgdm9pZCBtbHg1ZV9tb2RpZnlfdGlyc19oYXNoKHN0cnVj dCBtbHg1ZV9wcml2ICpwcml2LCB2b2lkICppbiwgaW50IGlubGVuKQogCQltbHg1X2NvcmVfbW9k aWZ5X3RpcihtZGV2LCBwcml2LT5pbmRpcl90aXJbdHRdLnRpcm4sIGluLCBpbmxlbik7CiAJfQog Ci0JaWYgKCFtbHg1ZV90dW5uZWxfaW5uZXJfZnRfc3VwcG9ydGVkKHByaXYtPm1kZXYpKQorCS8q IFZlcmlmeSBpbm5lciB0aXJzIHJlc291cmNlcyBhbGxvY2F0ZWQgKi8KKwlpZiAoIXByaXYtPmlu bmVyX2luZGlyX3RpclswXS50aXJuKQogCQlyZXR1cm47CiAKIAlmb3IgKHR0ID0gMDsgdHQgPCBN TFg1RV9OVU1fSU5ESVJfVElSUzsgdHQrKykgewpAQCAtMzQwNSwxNCArMzQwNiwxNSBAQCBpbnQg bWx4NWVfY3JlYXRlX2RpcmVjdF90aXJzKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LCBzdHJ1Y3Qg bWx4NWVfdGlyICp0aXJzKQogCXJldHVybiBlcnI7CiB9CiAKLXZvaWQgbWx4NWVfZGVzdHJveV9p bmRpcmVjdF90aXJzKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LCBib29sIGlubmVyX3R0YykKK3Zv aWQgbWx4NWVfZGVzdHJveV9pbmRpcmVjdF90aXJzKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2KQog ewogCWludCBpOwogCiAJZm9yIChpID0gMDsgaSA8IE1MWDVFX05VTV9JTkRJUl9USVJTOyBpKysp CiAJCW1seDVlX2Rlc3Ryb3lfdGlyKHByaXYtPm1kZXYsICZwcml2LT5pbmRpcl90aXJbaV0pOwog Ci0JaWYgKCFpbm5lcl90dGMgfHwgIW1seDVlX3R1bm5lbF9pbm5lcl9mdF9zdXBwb3J0ZWQocHJp di0+bWRldikpCisJLyogVmVyaWZ5IGlubmVyIHRpcnMgcmVzb3VyY2VzIGFsbG9jYXRlZCAqLwor CWlmICghcHJpdi0+aW5uZXJfaW5kaXJfdGlyWzBdLnRpcm4pCiAJCXJldHVybjsKIAogCWZvciAo aSA9IDA7IGkgPCBNTFg1RV9OVU1fSU5ESVJfVElSUzsgaSsrKQpAQCAtNTExOSw3ICs1MTIxLDcg QEAgc3RhdGljIGludCBtbHg1ZV9pbml0X25pY19yeChzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdikK IGVycl9kZXN0cm95X2RpcmVjdF90aXJzOgogCW1seDVlX2Rlc3Ryb3lfZGlyZWN0X3RpcnMocHJp diwgcHJpdi0+ZGlyZWN0X3Rpcik7CiBlcnJfZGVzdHJveV9pbmRpcmVjdF90aXJzOgotCW1seDVl X2Rlc3Ryb3lfaW5kaXJlY3RfdGlycyhwcml2LCB0cnVlKTsKKwltbHg1ZV9kZXN0cm95X2luZGly ZWN0X3RpcnMocHJpdik7CiBlcnJfZGVzdHJveV9kaXJlY3RfcnF0czoKIAltbHg1ZV9kZXN0cm95 X2RpcmVjdF9ycXRzKHByaXYsIHByaXYtPmRpcmVjdF90aXIpOwogZXJyX2Rlc3Ryb3lfaW5kaXJl Y3RfcnF0czoKQEAgLTUxMzgsNyArNTE0MCw3IEBAIHN0YXRpYyB2b2lkIG1seDVlX2NsZWFudXBf bmljX3J4KHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2KQogCW1seDVlX2Rlc3Ryb3lfZGlyZWN0X3Rp cnMocHJpdiwgcHJpdi0+eHNrX3Rpcik7CiAJbWx4NWVfZGVzdHJveV9kaXJlY3RfcnF0cyhwcml2 LCBwcml2LT54c2tfdGlyKTsKIAltbHg1ZV9kZXN0cm95X2RpcmVjdF90aXJzKHByaXYsIHByaXYt PmRpcmVjdF90aXIpOwotCW1seDVlX2Rlc3Ryb3lfaW5kaXJlY3RfdGlycyhwcml2LCB0cnVlKTsK KwltbHg1ZV9kZXN0cm95X2luZGlyZWN0X3RpcnMocHJpdik7CiAJbWx4NWVfZGVzdHJveV9kaXJl Y3RfcnF0cyhwcml2LCBwcml2LT5kaXJlY3RfdGlyKTsKIAltbHg1ZV9kZXN0cm95X3JxdChwcml2 LCAmcHJpdi0+aW5kaXJfcnF0KTsKIAltbHg1ZV9jbG9zZV9kcm9wX3JxKCZwcml2LT5kcm9wX3Jx KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9l bl9yZXAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9yZXAu YwppbmRleCBmZGRmNjQ0YmEzNDkuLjliMjMyZWYzNmQ1MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3JlcC5jCisrKyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9yZXAuYwpAQCAtMTU5Nyw3ICsxNTk3LDcg QEAgc3RhdGljIGludCBtbHg1ZV9pbml0X3JlcF9yeChzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdikK IGVycl9kZXN0cm95X2RpcmVjdF90aXJzOgogCW1seDVlX2Rlc3Ryb3lfZGlyZWN0X3RpcnMocHJp diwgcHJpdi0+ZGlyZWN0X3Rpcik7CiBlcnJfZGVzdHJveV9pbmRpcmVjdF90aXJzOgotCW1seDVl X2Rlc3Ryb3lfaW5kaXJlY3RfdGlycyhwcml2LCBmYWxzZSk7CisJbWx4NWVfZGVzdHJveV9pbmRp cmVjdF90aXJzKHByaXYpOwogZXJyX2Rlc3Ryb3lfZGlyZWN0X3JxdHM6CiAJbWx4NWVfZGVzdHJv eV9kaXJlY3RfcnF0cyhwcml2LCBwcml2LT5kaXJlY3RfdGlyKTsKIGVycl9kZXN0cm95X2luZGly ZWN0X3JxdHM6CkBAIC0xNjE0LDcgKzE2MTQsNyBAQCBzdGF0aWMgdm9pZCBtbHg1ZV9jbGVhbnVw X3JlcF9yeChzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdikKIAltbHg1X2RlbF9mbG93X3J1bGVzKHJw cml2LT52cG9ydF9yeF9ydWxlKTsKIAltbHg1ZV9kZXN0cm95X3R0Y190YWJsZShwcml2LCAmcHJp di0+ZnMudHRjKTsKIAltbHg1ZV9kZXN0cm95X2RpcmVjdF90aXJzKHByaXYsIHByaXYtPmRpcmVj dF90aXIpOwotCW1seDVlX2Rlc3Ryb3lfaW5kaXJlY3RfdGlycyhwcml2LCBmYWxzZSk7CisJbWx4 NWVfZGVzdHJveV9pbmRpcmVjdF90aXJzKHByaXYpOwogCW1seDVlX2Rlc3Ryb3lfZGlyZWN0X3Jx dHMocHJpdiwgcHJpdi0+ZGlyZWN0X3Rpcik7CiAJbWx4NWVfZGVzdHJveV9ycXQocHJpdiwgJnBy aXYtPmluZGlyX3JxdCk7CiAJbWx4NWVfY2xvc2VfZHJvcF9ycSgmcHJpdi0+ZHJvcF9ycSk7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvaXBvaWIv aXBvaWIuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9pcG9pYi9p cG9pYi5jCmluZGV4IDNlZDhhYjJkNzAzZC4uMGZlZDI0MTk2MjNkIDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvaXBvaWIvaXBvaWIuYworKysgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvaXBvaWIvaXBvaWIuYwpAQCAt Mzk2LDcgKzM5Niw3IEBAIHN0YXRpYyBpbnQgbWx4NWlfaW5pdF9yeChzdHJ1Y3QgbWx4NWVfcHJp diAqcHJpdikKIGVycl9kZXN0cm95X2RpcmVjdF90aXJzOgogCW1seDVlX2Rlc3Ryb3lfZGlyZWN0 X3RpcnMocHJpdiwgcHJpdi0+ZGlyZWN0X3Rpcik7CiBlcnJfZGVzdHJveV9pbmRpcmVjdF90aXJz OgotCW1seDVlX2Rlc3Ryb3lfaW5kaXJlY3RfdGlycyhwcml2LCB0cnVlKTsKKwltbHg1ZV9kZXN0 cm95X2luZGlyZWN0X3RpcnMocHJpdik7CiBlcnJfZGVzdHJveV9kaXJlY3RfcnF0czoKIAltbHg1 ZV9kZXN0cm95X2RpcmVjdF9ycXRzKHByaXYsIHByaXYtPmRpcmVjdF90aXIpOwogZXJyX2Rlc3Ry b3lfaW5kaXJlY3RfcnF0czoKQEAgLTQxMiw3ICs0MTIsNyBAQCBzdGF0aWMgdm9pZCBtbHg1aV9j bGVhbnVwX3J4KHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2KQogewogCW1seDVpX2Rlc3Ryb3lfZmxv d19zdGVlcmluZyhwcml2KTsKIAltbHg1ZV9kZXN0cm95X2RpcmVjdF90aXJzKHByaXYsIHByaXYt PmRpcmVjdF90aXIpOwotCW1seDVlX2Rlc3Ryb3lfaW5kaXJlY3RfdGlycyhwcml2LCB0cnVlKTsK KwltbHg1ZV9kZXN0cm95X2luZGlyZWN0X3RpcnMocHJpdik7CiAJbWx4NWVfZGVzdHJveV9kaXJl Y3RfcnF0cyhwcml2LCBwcml2LT5kaXJlY3RfdGlyKTsKIAltbHg1ZV9kZXN0cm95X3JxdChwcml2 LCAmcHJpdi0+aW5kaXJfcnF0KTsKIAltbHg1ZV9jbG9zZV9kcm9wX3JxKCZwcml2LT5kcm9wX3Jx KTsKLS0gCjIuMjYuMgoKCkZyb20gOWViNGQ1MGYwZDFiNjc2YmVjYzAzZDkyOWQ3YTMzODg5NDZh YTMyNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTW9zaGUgU2hlbWVzaCA8bW9zaGVA bWVsbGFub3guY29tPgpEYXRlOiBXZWQsIDI5IEFwciAyMDIwIDIzOjU2OjU4ICswMzAwClN1Ympl Y3Q6IFtQQVRDSCAyMy8yNV0gbmV0L21seDU6IEZpeCBtZW1vcnkgbGVhayBpbiBtbHg1X2V2ZW50 c19pbml0CgpbIFVwc3RyZWFtIGNvbW1pdCBkZjE0YWQxZWNjYjA0YTRhMjhjOTAzODkyMTRkYmFj YWIwODViMjQ0IF0KCkZpeCBtZW1vcnkgbGVhayBpbiBtbHg1X2V2ZW50c19pbml0KCksIGluIGNh c2UKY3JlYXRlX3NpbmdsZV90aHJlYWRfd29ya3F1ZXVlKCkgZmFpbHMsIGV2ZW50cwpzdHJ1Y3Qg c2hvdWxkIGJlIGZyZWVkLgoKRml4ZXM6IDVkM2M1MzdmOTA3MCAoIm5ldC9tbHg1OiBIYW5kbGUg ZXZlbnQgb2YgcG93ZXIgZGV0ZWN0aW9uIGluIHRoZSBQQ0lFIHNsb3QiKQpTaWduZWQtb2ZmLWJ5 OiBNb3NoZSBTaGVtZXNoIDxtb3NoZUBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBUYXJpcSBU b3VrYW4gPHRhcmlxdEBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVk IDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9ldmVudHMuYyB8IDQgKysrLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9u cygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDUvY29yZS9ldmVudHMuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9ldmVudHMuYwppbmRleCA4YmNmMzQyNmI5YzYuLjNjZTE3YzNkN2EwMCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2V2ZW50cy5j CisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9ldmVudHMuYwpA QCAtMzQ2LDggKzM0NiwxMCBAQCBpbnQgbWx4NV9ldmVudHNfaW5pdChzdHJ1Y3QgbWx4NV9jb3Jl X2RldiAqZGV2KQogCWV2ZW50cy0+ZGV2ID0gZGV2OwogCWRldi0+cHJpdi5ldmVudHMgPSBldmVu dHM7CiAJZXZlbnRzLT53cSA9IGNyZWF0ZV9zaW5nbGV0aHJlYWRfd29ya3F1ZXVlKCJtbHg1X2V2 ZW50cyIpOwotCWlmICghZXZlbnRzLT53cSkKKwlpZiAoIWV2ZW50cy0+d3EpIHsKKwkJa2ZyZWUo ZXZlbnRzKTsKIAkJcmV0dXJuIC1FTk9NRU07CisJfQogCUlOSVRfV09SSygmZXZlbnRzLT5wY2ll X2NvcmVfd29yaywgbWx4NV9wY2llX2V2ZW50KTsKIAogCXJldHVybiAwOwotLSAKMi4yNi4yCgoK RnJvbSBkMTAxMjYzYTRiMTljMDU4MjczZWNiYzU5N2UzNjc0N2MyNWFmYjQ1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNb3NoZSBTaGVtZXNoIDxtb3NoZUBtZWxsYW5veC5jb20+CkRh dGU6IFR1ZSwgNyBBcHIgMjAyMCAxNzozODoyOCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMjQvMjVd IG5ldC9tbHg1ZTogVXBkYXRlIG5ldGRldiB0eHEgb24gY29tcGxldGlvbnMgZHVyaW5nCiBjbG9z dXJlCgpbIFVwc3RyZWFtIGNvbW1pdCA1ZTkxMWUyYzA2YmQ4YzE3ZGYyOTE0N2E1ZTJkNGIxN2Zh ZmRhMDI0IF0KCk9uIHNxIGNsb3N1cmUgd2hlbiB3ZSBmcmVlIGl0cyBkZXNjcmlwdG9ycywgd2Ug c2hvdWxkIGFsc28gdXBkYXRlIG5ldGRldgp0eHEgb24gY29tcGxldGlvbnMgd2hpY2ggd291bGQg bm90IGFycml2ZS4gT3RoZXJ3aXNlIGlmIHdlIHJlb3BlbiBzcXMKYW5kIGF0dGFjaCB0aGVtIGJh Y2ssIGZvciBleGFtcGxlIG9uIGZ3IGZhdGFsIHJlY292ZXJ5IGZsb3csIHdlIG1heSBnZXQKdHgg dGltZW91dC4KCkZpeGVzOiAyOTQyOWYzMzAwYTMgKCJuZXQvbWx4NWU6IFRpbWVvdXQgaWYgU1Eg ZG9lc24ndCBmbHVzaCBkdXJpbmcgY2xvc2UiKQpTaWduZWQtb2ZmLWJ5OiBNb3NoZSBTaGVtZXNo IDxtb3NoZUBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBUYXJpcSBUb3VrYW4gPHRhcmlxdEBt ZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFu b3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90 eC5jIHwgOSArKysrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDMgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 NS9jb3JlL2VuX3R4LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUv ZW5fdHguYwppbmRleCBkZWUxMmYxN2Y5YzIuLmQ5ZTBmYzE0Njc0MSAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3R4LmMKKysrIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3R4LmMKQEAgLTUzNywxMCArNTM3 LDkgQEAgYm9vbCBtbHg1ZV9wb2xsX3R4X2NxKHN0cnVjdCBtbHg1ZV9jcSAqY3EsIGludCBuYXBp X2J1ZGdldCkKIHZvaWQgbWx4NWVfZnJlZV90eHFzcV9kZXNjcyhzdHJ1Y3QgbWx4NWVfdHhxc3Eg KnNxKQogewogCXN0cnVjdCBtbHg1ZV90eF93cWVfaW5mbyAqd2k7CisJdTMyIGRtYV9maWZvX2Nj LCBuYnl0ZXMgPSAwOworCXUxNiBjaSwgc3FjYywgbnBrdHMgPSAwOwogCXN0cnVjdCBza19idWZm ICpza2I7Ci0JdTMyIGRtYV9maWZvX2NjOwotCXUxNiBzcWNjOwotCXUxNiBjaTsKIAlpbnQgaTsK IAogCXNxY2MgPSBzcS0+Y2M7CkBAIC01NjUsMTEgKzU2NCwxNSBAQCB2b2lkIG1seDVlX2ZyZWVf dHhxc3FfZGVzY3Moc3RydWN0IG1seDVlX3R4cXNxICpzcSkKIAkJfQogCiAJCWRldl9rZnJlZV9z a2JfYW55KHNrYik7CisJCW5wa3RzKys7CisJCW5ieXRlcyArPSB3aS0+bnVtX2J5dGVzOwogCQlz cWNjICs9IHdpLT5udW1fd3FlYmJzOwogCX0KIAogCXNxLT5kbWFfZmlmb19jYyA9IGRtYV9maWZv X2NjOwogCXNxLT5jYyA9IHNxY2M7CisKKwluZXRkZXZfdHhfY29tcGxldGVkX3F1ZXVlKHNxLT50 eHEsIG5wa3RzLCBuYnl0ZXMpOwogfQogCiAjaWZkZWYgQ09ORklHX01MWDVfQ09SRV9JUE9JQgot LSAKMi4yNi4yCgoKRnJvbSA1YThhMmM5ZGNhMDA2OWJlYzE4MzMwYmFhN2FiMjYxMjM3YzhiZjBm IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTaGF5IERyb3J5IDxzaGF5ZEBtZWxsYW5v eC5jb20+CkRhdGU6IFdlZCwgNiBNYXkgMjAyMCAxNDo1MjowNCArMDMwMApTdWJqZWN0OiBbUEFU Q0ggMjUvMjVdIG5ldC9tbHg1OiBGaXggZXJyb3IgZmxvdyBpbiBjYXNlIG9mIGZ1bmN0aW9uX3Nl dHVwCiBmYWlsdXJlCgpbIFVwc3RyZWFtIGNvbW1pdCA0Zjc0MDBkNWNiYWVmNjc2ZTAwY2RmZmIw NTY1YmY3MzFjNmJiMDllIF0KCkN1cnJlbnRseSwgaWYgYW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5n IG1seDVfZnVuY3Rpb25fc2V0dXAoKSwgd2UKa2VlcCBkZXYtPnN0YXRlIGFzIERFVklDRV9TVEFU RV9VUC4KRml4aW5nIGl0IGJ5IGFkZGluZyBhIGdvdG8gbGFiZWwuCgpGaXhlczogZTE2MTEwNWU1 OGRhICgibmV0L21seDU6IEZ1bmN0aW9uIHNldHVwL3RlYXJkb3duIHByb2NlZHVyZXMiKQpTaWdu ZWQtb2ZmLWJ5OiBTaGF5IERyb3J5IDxzaGF5ZEBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBN b3NoZSBTaGVtZXNoIDxtb3NoZUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1h aGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDUvY29yZS9tYWluLmMgfCAzICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDUvY29yZS9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg1L2NvcmUvbWFpbi5jCmluZGV4IGM5NmEwZTUwMTAwNy4uN2RjZGRhOWNhMzUxIDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbWFpbi5jCisr KyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9tYWluLmMKQEAgLTEx ODMsNyArMTE4Myw3IEBAIHN0YXRpYyBpbnQgbWx4NV9sb2FkX29uZShzdHJ1Y3QgbWx4NV9jb3Jl X2RldiAqZGV2LCBib29sIGJvb3QpCiAKIAllcnIgPSBtbHg1X2Z1bmN0aW9uX3NldHVwKGRldiwg Ym9vdCk7CiAJaWYgKGVycikKLQkJZ290byBvdXQ7CisJCWdvdG8gZXJyX2Z1bmN0aW9uOwogCiAJ aWYgKGJvb3QpIHsKIAkJZXJyID0gbWx4NV9pbml0X29uY2UoZGV2KTsKQEAgLTEyMjksNiArMTIy OSw3IEBAIHN0YXRpYyBpbnQgbWx4NV9sb2FkX29uZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2 LCBib29sIGJvb3QpCiAJCW1seDVfY2xlYW51cF9vbmNlKGRldik7CiBmdW5jdGlvbl90ZWFyZG93 bjoKIAltbHg1X2Z1bmN0aW9uX3RlYXJkb3duKGRldiwgYm9vdCk7CitlcnJfZnVuY3Rpb246CiAJ ZGV2LT5zdGF0ZSA9IE1MWDVfREVWSUNFX1NUQVRFX0lOVEVSTkFMX0VSUk9SOwogCW11dGV4X3Vu bG9jaygmZGV2LT5pbnRmX3N0YXRlX211dGV4KTsKIAotLSAKMi4yNi4yCgo= ----Next_Part(Tue_May_26_23_16_52_2020_574)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_56.mbox" RnJvbSBiMDljOGNjY2MxYTRhYjIwNjRlNTMyZDkwYzEwNGZjMmEwZjRhNDU0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRh dGU6IFR1ZSwgMTkgTWF5IDIwMjAgMTg6MjQ6NDMgLTA3MDAKU3ViamVjdDogW1BBVENIIDAxLzMz XSBheDI1OiBmaXggc2V0c29ja29wdChTT19CSU5EVE9ERVZJQ0UpCgpbIFVwc3RyZWFtIGNvbW1p dCA2ODc3NzVjZWMwNTZiMzhhNGM4ZjMyOTFlMGRkN2E5MTQ1ZjdiNjY3IF0KCnN5emJvdCB3YXMg YWJsZSB0byB0cmlnZ2VyIHRoaXMgdHJhY2UgWzFdLCBwcm9iYWJseSBieSB1c2luZwphIHplcm8g b3B0bGVuLgoKV2hpbGUgd2UgYXJlIGF0IGl0LCBjYXAgb3B0bGVuIHRvIElGTkFNU0laIC0gMSBp bnN0ZWFkIG9mIElGTkFNU0laLgoKWzFdCkJVRzogS01TQU46IHVuaW5pdC12YWx1ZSBpbiBzdHJu bGVuKzB4ZjkvMHgxNzAgbGliL3N0cmluZy5jOjU2OQpDUFU6IDAgUElEOiA4ODA3IENvbW06IHN5 ei1leGVjdXRvcjQ4MyBOb3QgdGFpbnRlZCA1LjcuMC1yYzQtc3l6a2FsbGVyICMwCkhhcmR3YXJl IG5hbWU6IEdvb2dsZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUvR29vZ2xlIENvbXB1dGUgRW5naW5l LCBCSU9TIEdvb2dsZSAwMS8wMS8yMDExCkNhbGwgVHJhY2U6CiBfX2R1bXBfc3RhY2sgbGliL2R1 bXBfc3RhY2suYzo3NyBbaW5saW5lXQogZHVtcF9zdGFjaysweDFjOS8weDIyMCBsaWIvZHVtcF9z dGFjay5jOjExOAoga21zYW5fcmVwb3J0KzB4ZjcvMHgxZTAgbW0va21zYW4va21zYW5fcmVwb3J0 LmM6MTIxCiBfX21zYW5fd2FybmluZysweDU4LzB4YTAgbW0va21zYW4va21zYW5faW5zdHIuYzoy MTUKIHN0cm5sZW4rMHhmOS8weDE3MCBsaWIvc3RyaW5nLmM6NTY5CiBkZXZfbmFtZV9oYXNoIG5l dC9jb3JlL2Rldi5jOjIwNyBbaW5saW5lXQogbmV0ZGV2X25hbWVfbm9kZV9sb29rdXAgbmV0L2Nv cmUvZGV2LmM6Mjc3IFtpbmxpbmVdCiBfX2Rldl9nZXRfYnlfbmFtZSsweDc1LzB4MmIwIG5ldC9j b3JlL2Rldi5jOjc3OAogYXgyNV9zZXRzb2Nrb3B0KzB4ZmEzLzB4MTE3MCBuZXQvYXgyNS9hZl9h eDI1LmM6NjU0CiBfX2NvbXBhdF9zeXNfc2V0c29ja29wdCsweDRlZC8weDkxMCBuZXQvY29tcGF0 LmM6NDAzCiBfX2RvX2NvbXBhdF9zeXNfc2V0c29ja29wdCBuZXQvY29tcGF0LmM6NDEzIFtpbmxp bmVdCiBfX3NlX2NvbXBhdF9zeXNfc2V0c29ja29wdCsweGRkLzB4MTAwIG5ldC9jb21wYXQuYzo0 MTAKIF9faWEzMl9jb21wYXRfc3lzX3NldHNvY2tvcHQrMHg2Mi8weDgwIG5ldC9jb21wYXQuYzo0 MTAKIGRvX3N5c2NhbGxfMzJfaXJxc19vbiBhcmNoL3g4Ni9lbnRyeS9jb21tb24uYzozMzkgW2lu bGluZV0KIGRvX2Zhc3Rfc3lzY2FsbF8zMisweDNiZi8weDZkMCBhcmNoL3g4Ni9lbnRyeS9jb21t b24uYzozOTgKIGVudHJ5X1NZU0VOVEVSX2NvbXBhdCsweDY4LzB4NzcgYXJjaC94ODYvZW50cnkv ZW50cnlfNjRfY29tcGF0LlM6MTM5ClJJUDogMDAyMzoweGY3ZjU3ZGQ5CkNvZGU6IDkwIGU4IDBi IDAwIDAwIDAwIGYzIDkwIDBmIGFlIGU4IGViIGY5IDhkIDc0IDI2IDAwIDg5IDNjIDI0IGMzIDkw IDkwIDkwIDkwIDkwIDkwIDkwIDkwIDkwIDkwIDkwIDkwIDUxIDUyIDU1IDg5IGU1IDBmIDM0IGNk IDgwIDw1ZD4gNWEgNTkgYzMgOTAgOTAgOTAgOTAgZWIgMGQgOTAgOTAgOTAgOTAgOTAgOTAgOTAg OTAgOTAgOTAgOTAgOTAKUlNQOiAwMDJiOjAwMDAwMDAwZmZhZThjMWMgRUZMQUdTOiAwMDAwMDIx NyBPUklHX1JBWDogMDAwMDAwMDAwMDAwMDE2ZQpSQVg6IGZmZmZmZmZmZmZmZmZmZGEgUkJYOiAw MDAwMDAwMDAwMDAwMDAzIFJDWDogMDAwMDAwMDAwMDAwMDEwMQpSRFg6IDAwMDAwMDAwMDAwMDAw MTkgUlNJOiAwMDAwMDAwMDIwMDAwMDAwIFJESTogMDAwMDAwMDAwMDAwMDAwNApSQlA6IDAwMDAw MDAwMDAwMDAwMTIgUjA4OiAwMDAwMDAwMDAwMDAwMDAwIFIwOTogMDAwMDAwMDAwMDAwMDAwMApS MTA6IDAwMDAwMDAwMDAwMDAwMDAgUjExOiAwMDAwMDAwMDAwMDAwMDAwIFIxMjogMDAwMDAwMDAw MDAwMDAwMApSMTM6IDAwMDAwMDAwMDAwMDAwMDAgUjE0OiAwMDAwMDAwMDAwMDAwMDAwIFIxNTog MDAwMDAwMDAwMDAwMDAwMAoKTG9jYWwgdmFyaWFibGUgLS0tLWRldm5hbWVAYXgyNV9zZXRzb2Nr b3B0IGNyZWF0ZWQgYXQ6CiBheDI1X3NldHNvY2tvcHQrMHhlNi8weDExNzAgbmV0L2F4MjUvYWZf YXgyNS5jOjUzNgogYXgyNV9zZXRzb2Nrb3B0KzB4ZTYvMHgxMTcwIG5ldC9heDI1L2FmX2F4MjUu Yzo1MzYKCkZpeGVzOiAxZGExNzdlNGMzZjQgKCJMaW51eC0yLjYuMTItcmMyIikKU2lnbmVkLW9m Zi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpSZXBvcnRlZC1ieTogc3l6 Ym90IDxzeXprYWxsZXJAZ29vZ2xlZ3JvdXBzLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9heDI1L2FmX2F4MjUuYyB8IDYg KysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL25ldC9heDI1L2FmX2F4MjUuYyBiL25ldC9heDI1L2FmX2F4MjUuYwppbmRl eCBmZjU3ZWE4OWMyN2UuLmZkOTFjZDM0ZjI1ZSAxMDA2NDQKLS0tIGEvbmV0L2F4MjUvYWZfYXgy NS5jCisrKyBiL25ldC9heDI1L2FmX2F4MjUuYwpAQCAtNjM1LDggKzYzNSwxMCBAQCBzdGF0aWMg aW50IGF4MjVfc2V0c29ja29wdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgbGV2ZWwsIGludCBv cHRuYW1lLAogCQlicmVhazsKIAogCWNhc2UgU09fQklORFRPREVWSUNFOgotCQlpZiAob3B0bGVu ID4gSUZOQU1TSVopCi0JCQlvcHRsZW4gPSBJRk5BTVNJWjsKKwkJaWYgKG9wdGxlbiA+IElGTkFN U0laIC0gMSkKKwkJCW9wdGxlbiA9IElGTkFNU0laIC0gMTsKKworCQltZW1zZXQoZGV2bmFtZSwg MCwgc2l6ZW9mKGRldm5hbWUpKTsKIAogCQlpZiAoY29weV9mcm9tX3VzZXIoZGV2bmFtZSwgb3B0 dmFsLCBvcHRsZW4pKSB7CiAJCQlyZXMgPSAtRUZBVUxUOwotLSAKMi4yNi4yCgoKRnJvbSAzYzI3 ZTIzNWViOGExODFkNDVkNWI5NGIyZjBjZmI2YTYxMWM0M2FiIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBWbGFkaW1pciBPbHRlYW4gPHZsYWRpbWlyLm9sdGVhbkBueHAuY29tPgpEYXRl OiBNb24sIDI1IE1heSAyMDIwIDAwOjIyOjUxICswMzAwClN1YmplY3Q6IFtQQVRDSCAwMi8zM10g ZHBhYV9ldGg6IGZpeCB1c2FnZSBhcyBEU0EgbWFzdGVyLCB0cnkgMwoKWyBVcHN0cmVhbSBjb21t aXQgNWQxNGMzMDRiZmMxNGI0ZmQwNTJkYzgzZDUyMjQzNzZiNDhmNTJmMCBdCgpUaGUgZHBhYS1l dGggZHJpdmVyIHByb2JlcyBvbiBjb21wYXRpYmxlIHN0cmluZyBmb3IgdGhlIE1BQyBub2RlLCBh bmQKdGhlIGZtYW4vbWFjLmMgZHJpdmVyIGFsbG9jYXRlcyBhIGRwYWEtZXRoZXJuZXQgcGxhdGZv cm0gZGV2aWNlIHRoYXQKdHJpZ2dlcnMgdGhlIHByb2Jpbmcgb2YgdGhlIGRwYWEtZXRoIG5ldCBk ZXZpY2UgZHJpdmVyLgoKQWxsIG9mIHRoaXMgaXMgZmluZSwgYnV0IHRoZSBwcm9ibGVtIGlzIHRo YXQgdGhlIHN0cnVjdCBkZXZpY2Ugb2YgdGhlCmRwYWFfZXRoIG5ldF9kZXZpY2UgaXMgMiBwYXJl bnRzIGF3YXkgZnJvbSB0aGUgTUFDIHdoaWNoIGNhbiBiZQpyZWZlcmVuY2VkIHZpYSBvZl9ub2Rl LiBTbyBvZl9maW5kX25ldF9kZXZpY2VfYnlfbm9kZSBjYW4ndCBmaW5kIGl0LCBhbmQKRFNBIHN3 aXRjaGVzIHdvbid0IGJlIGFibGUgdG8gcHJvYmUgb24gdG9wIG9mIEZNYW4gcG9ydHMuCgpJdCB3 b3VsZCBiZSBhIGJpdCBzaWxseSB0byBtb2RpZnkgYSBjb3JlIGZ1bmN0aW9uCihvZl9maW5kX25l dF9kZXZpY2VfYnlfbm9kZSkgdG8gbG9vayBmb3IgZGV2LT5wYXJlbnQtPnBhcmVudC0+b2Zfbm9k ZQpqdXN0IGZvciBvbmUgZHJpdmVyLiBXZSdyZSBqdXN0IDEgc3RlcCBhd2F5IGZyb20gaW1wbGVt ZW50aW5nIGZ1bGwKcmVjdXJzaW9uLgoKQWN0dWFsbHkgdGhlcmUgaGF2ZSBhbHJlYWR5IGJlZW4g YXQgbGVhc3QgMiBwcmV2aW91cyBhdHRlbXB0cyB0byBtYWtlCnRoaXMgd29yazoKLSBDb21taXQg YTFhNTBjOGU0YzI0ICgiZnNsL21hbjogSW5oZXJpdCBwYXJlbnQgZGV2aWNlIGFuZCBvZl9ub2Rl IikKLSBPbmUgb3IgbW9yZSBvZiB0aGUgcGF0Y2hlcyBpbiAiW3YzLDAvNl0gYWRhcHQgRFBBQSBk cml2ZXJzIGZvciBEU0EiOgogIGh0dHBzOi8vcGF0Y2h3b3JrLm96bGFicy5vcmcvcHJvamVjdC9u ZXRkZXYvY292ZXIvMTUwODE3ODk3MC0yODk0NS0xLWdpdC1zZW5kLWVtYWlsLW1hZGFsaW4uYnVj dXJAbnhwLmNvbS8KICAoSSBjb3VsZG4ndCByZWFsbHkgZmlndXJlIG91dCB3aGljaCBvbmUgd2Fz IHN1cHBvc2VkIHRvIHNvbHZlIHRoZQogIHByb2JsZW0gYW5kIGhvdykuCgpQb2ludCBiZWluZywg aXQgbG9va3MgbGlrZSB0aGlzIGlzIHN0aWxsIHByZXR0eSBtdWNoIGEgcHJvYmxlbSB0b2RheS4K T24gVDEwNDAsIHRoZSAvc3lzL2NsYXNzL25ldC9ldGgwIHN5bWxpbmsgY3VycmVudGx5IHBvaW50 cyB0bwoKLi4vLi4vZGV2aWNlcy9wbGF0Zm9ybS9mZmUwMDAwMDAuc29jL2ZmZTQwMDAwMC5mbWFu L2ZmZTRlNjAwMC5ldGhlcm5ldC9kcGFhLWV0aGVybmV0LjAvbmV0L2V0aDAKCndoaWNoIHByZXR0 eSBtdWNoIGlsbHVzdHJhdGVzIHRoZSBwcm9ibGVtLiBUaGUgY2xvc2VzdCBvZl9ub2RlIHdlJ3Zl IGdvdAppcyB0aGUgImZzbCxmbWFuLW1lbWFjIiBhdCAvc29jQGZmZTAwMDAwMC9mbWFuQDQwMDAw MC9ldGhlcm5ldEBlNjAwMCwKd2hpY2ggaXMgd2hhdCB3ZSdkIGxpa2UgdG8gYmUgYWJsZSB0byBy ZWZlcmVuY2UgZnJvbSBEU0EgYXMgaG9zdCBwb3J0LgoKRm9yIG9mX2ZpbmRfbmV0X2RldmljZV9i eV9ub2RlIHRvIGZpbmQgdGhlIGV0aDAgcG9ydCwgd2Ugd291bGQgbmVlZCB0aGUKcGFyZW50IG9m IHRoZSBldGgwIG5ldF9kZXZpY2UgdG8gbm90IGJlIHRoZSAiZHBhYS1ldGhlcm5ldCIgcGxhdGZv cm0KZGV2aWNlLCBidXQgdG8gcG9pbnQgMSBsZXZlbCBoaWdoZXIsIGFrYSB0aGUgImZzbCxmbWFu LW1lbWFjIiBub2RlCmRpcmVjdGx5LiBUaGUgbmV3IHN5c2ZzIHBhdGggd291bGQgbG9vayBsaWtl IHRoaXM6CgouLi8uLi9kZXZpY2VzL3BsYXRmb3JtL2ZmZTAwMDAwMC5zb2MvZmZlNDAwMDAwLmZt YW4vZmZlNGU2MDAwLmV0aGVybmV0L25ldC9ldGgwCgpBbmQgdGhpcyBpcyBleGFjdGx5IHdoYXQg U0VUX05FVERFVl9ERVYgZG9lcy4gSXQgc2V0cyB0aGUgcGFyZW50IG9mIHRoZQpuZXRfZGV2aWNl LiBUaGUgbmV3IHBhcmVudCBoYXMgYW4gb2Zfbm9kZSBhc3NvY2lhdGVkIHdpdGggaXQsIGFuZApv Zl9kZXZfbm9kZV9tYXRjaCBhbHJlYWR5IGNoZWNrcyBmb3IgdGhlIG9mX25vZGUgb2YgdGhlIGRl dmljZSBvciBvZiBpdHMKcGFyZW50LgoKRml4ZXM6IGExYTUwYzhlNGMyNCAoImZzbC9tYW46IElu aGVyaXQgcGFyZW50IGRldmljZSBhbmQgb2Zfbm9kZSIpCkZpeGVzOiBjNmUyNmVhOGM4OTMgKCJk cGFhX2V0aDogY2hhbmdlIGRldmljZSB1c2VkIikKU2lnbmVkLW9mZi1ieTogVmxhZGltaXIgT2x0 ZWFuIDx2bGFkaW1pci5vbHRlYW5AbnhwLmNvbT4KUmV2aWV3ZWQtYnk6IEZsb3JpYW4gRmFpbmVs bGkgPGYuZmFpbmVsbGlAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxl L2RwYWEvZHBhYV9ldGguYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwg MSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2Fs ZS9kcGFhL2RwYWFfZXRoLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYS9k cGFhX2V0aC5jCmluZGV4IGNhNzRhNjg0YTkwNC4uYWIzMzc2MzI3OTNiIDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYS9kcGFhX2V0aC5jCisrKyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhL2RwYWFfZXRoLmMKQEAgLTI5MDIsNyArMjkw Miw3IEBAIHN0YXRpYyBpbnQgZHBhYV9ldGhfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldikKIAl9CiAKIAkvKiBEbyB0aGlzIGhlcmUsIHNvIHdlIGNhbiBiZSB2ZXJib3NlIGVhcmx5 ICovCi0JU0VUX05FVERFVl9ERVYobmV0X2RldiwgZGV2KTsKKwlTRVRfTkVUREVWX0RFVihuZXRf ZGV2LCBkZXYtPnBhcmVudCk7CiAJZGV2X3NldF9kcnZkYXRhKGRldiwgbmV0X2Rldik7CiAKIAlw cml2ID0gbmV0ZGV2X3ByaXYobmV0X2Rldik7Ci0tIAoyLjI2LjIKCgpGcm9tIDgyNjliNThkMDRk YWY0YWU0ZjVhOGUyNzA5NmI2YWE2NGY2N2IxNzIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IE1pY2hhbCBLdWJlY2VrIDxta3ViZWNla0BzdXNlLmN6PgpEYXRlOiBTdW4sIDEwIE1heSAy MDIwIDIxOjA0OjA5ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMy8zM10gZXRodG9vbDogY291bnQg aGVhZGVyIHNpemUgaW4gcmVwbHkgc2l6ZSBlc3RpbWF0ZQoKWyBVcHN0cmVhbSBjb21taXQgN2M4 N2UzMmQyZTM4MDIyOGFkYTc5ZDIwYWM1Yjc2NzQ3MThlZjA5NyBdCgpBcyBldGhubF9yZXF1ZXN0 X29wczo6cmVwbHlfc2l6ZSBoYW5kbGVycyBkbyBub3QgaW5jbHVkZSBjb21tb24gaGVhZGVyCnNp emUgaW50byBjYWxjdWxhdGVkL2VzdGltYXRlZCByZXBseSBzaXplLCBpdCBuZWVkcyB0byBiZSBh ZGRlZCBpbgpldGhubF9kZWZhdWx0X2RvaXQoKSBhbmQgZXRobmxfZGVmYXVsdF9ub3RpZnkoKSBi ZWZvcmUgYWxsb2NhdGluZyB0aGUKbWVzc2FnZS4gT24gdGhlIG90aGVyIGhhbmQsIHN0cnNldF9y ZXBseV9zaXplKCkgc2hvdWxkIG5vdCBhZGQgY29tbW9uCmhlYWRlciBzaXplLgoKRml4ZXM6IDcy ODQ4MGYxMjQ0MiAoImV0aHRvb2w6IGRlZmF1bHQgaGFuZGxlcnMgZm9yIEdFVCByZXF1ZXN0cyIp ClJlcG9ydGVkLWJ5OiBPbGVrc2lqIFJlbXBlbCA8by5yZW1wZWxAcGVuZ3V0cm9uaXguZGU+ClNp Z25lZC1vZmYtYnk6IE1pY2hhbCBLdWJlY2VrIDxta3ViZWNla0BzdXNlLmN6PgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2V0aHRv b2wvbmV0bGluay5jIHwgNCArKy0tCiBuZXQvZXRodG9vbC9zdHJzZXQuYyAgfCAxIC0KIDIgZmls ZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L25ldC9ldGh0b29sL25ldGxpbmsuYyBiL25ldC9ldGh0b29sL25ldGxpbmsuYwppbmRleCBmYzll MGI4MDY4ODkuLmQ4NjNkZmZiZTUzYyAxMDA2NDQKLS0tIGEvbmV0L2V0aHRvb2wvbmV0bGluay5j CisrKyBiL25ldC9ldGh0b29sL25ldGxpbmsuYwpAQCAtMzM0LDcgKzMzNCw3IEBAIHN0YXRpYyBp bnQgZXRobmxfZGVmYXVsdF9kb2l0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2lu Zm8gKmluZm8pCiAJcmV0ID0gb3BzLT5yZXBseV9zaXplKHJlcV9pbmZvLCByZXBseV9kYXRhKTsK IAlpZiAocmV0IDwgMCkKIAkJZ290byBlcnJfY2xlYW51cDsKLQlyZXBseV9sZW4gPSByZXQ7CisJ cmVwbHlfbGVuID0gcmV0ICsgZXRobmxfcmVwbHlfaGVhZGVyX3NpemUoKTsKIAlyZXQgPSAtRU5P TUVNOwogCXJza2IgPSBldGhubF9yZXBseV9pbml0KHJlcGx5X2xlbiwgcmVxX2luZm8tPmRldiwg b3BzLT5yZXBseV9jbWQsCiAJCQkJb3BzLT5oZHJfYXR0ciwgaW5mbywgJnJlcGx5X3BheWxvYWQp OwpAQCAtNTczLDcgKzU3Myw3IEBAIHN0YXRpYyB2b2lkIGV0aG5sX2RlZmF1bHRfbm90aWZ5KHN0 cnVjdCBuZXRfZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBjbWQsCiAJcmV0ID0gb3BzLT5yZXBs eV9zaXplKHJlcV9pbmZvLCByZXBseV9kYXRhKTsKIAlpZiAocmV0IDwgMCkKIAkJZ290byBlcnJf Y2xlYW51cDsKLQlyZXBseV9sZW4gPSByZXQ7CisJcmVwbHlfbGVuID0gcmV0ICsgZXRobmxfcmVw bHlfaGVhZGVyX3NpemUoKTsKIAlyZXQgPSAtRU5PTUVNOwogCXNrYiA9IGdlbmxtc2dfbmV3KHJl cGx5X2xlbiwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFza2IpCmRpZmYgLS1naXQgYS9uZXQvZXRodG9v bC9zdHJzZXQuYyBiL25ldC9ldGh0b29sL3N0cnNldC5jCmluZGV4IDhlNTkxMTg4N2I0Yy4uZmI3 YjM1ODU0NThkIDEwMDY0NAotLS0gYS9uZXQvZXRodG9vbC9zdHJzZXQuYworKysgYi9uZXQvZXRo dG9vbC9zdHJzZXQuYwpAQCAtMzA5LDcgKzMwOSw2IEBAIHN0YXRpYyBpbnQgc3Ryc2V0X3JlcGx5 X3NpemUoY29uc3Qgc3RydWN0IGV0aG5sX3JlcV9pbmZvICpyZXFfYmFzZSwKIAlpbnQgbGVuID0g MDsKIAlpbnQgcmV0OwogCi0JbGVuICs9IGV0aG5sX3JlcGx5X2hlYWRlcl9zaXplKCk7CiAJZm9y IChpID0gMDsgaSA8IEVUSF9TU19DT1VOVDsgaSsrKSB7CiAJCWNvbnN0IHN0cnVjdCBzdHJzZXRf aW5mbyAqc2V0X2luZm8gPSAmZGF0YS0+c2V0c1tpXTsKIAotLSAKMi4yNi4yCgoKRnJvbSA1ZWEz MzJjZTA1YjIwYTBjODA3MTBkNWJhNWIyYTczZjg5MTNhNmY2IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBDbGF1ZGl1IE1hbm9pbCA8Y2xhdWRpdS5tYW5vaWxAbnhwLmNvbT4KRGF0ZTog RnJpLCAyMiBNYXkgMjAyMCAxMTo1NDozNCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMDQvMzNdIGZl bGl4OiBGaXggaW5pdGlhbGl6YXRpb24gb2YgaW9yZW1hcCByZXNvdXJjZXMKClsgVXBzdHJlYW0g Y29tbWl0IGI0MDI0YzllNWM1NzkwMjE1NWQzYjVlN2RlNDgyZTI0NWY0OTJiZmYgXQoKVGhlIGNh bGxlciBvZiBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoKSwgZWl0aGVyIGFjY2lkZW50YWxseQpvciBi eSB3cm9uZyBhc3N1bXB0aW9uLCBpcyB3cml0aW5nIGJhY2sgZGVyaXZlZCByZXNvdXJjZSBkYXRh CnRvIGdsb2JhbCBzdGF0aWMgcmVzb3VyY2UgaW5pdGlhbGl6YXRpb24gdGFibGVzIHRoYXQgc2hv dWxkCmhhdmUgYmVlbiBjb25zdGFudC4gIE1lYW5pbmcgdGhhdCBhZnRlciBpdCBjb21wdXRlcyB0 aGUgZmluYWwKcGh5c2ljYWwgc3RhcnQgYWRkcmVzcyBpdCBzYXZlcyB0aGUgYWRkcmVzcyBmb3Ig bm8gcmVhc29uCmluIHRoZSBzdGF0aWMgdGFibGVzLiAgVGhpcyBkb2Vzbid0IGFmZmVjdCB0aGUg Zmlyc3QgZHJpdmVyCnByb2JpbmcgYWZ0ZXIgcmVib290LCBidXQgaXQgYnJlYWtzIGNvbnNlY3V0 aXZlIGRyaXZlciByZWxvYWRzCihpLmUuIGRyaXZlciB1bmJpbmQgJiBiaW5kKSBiZWNhdXNlIHRo ZSBpbml0aWFsaXphdGlvbiB0YWJsZXMKbm8gbG9uZ2VyIGhhdmUgdGhlIGNvcnJlY3QgaW5pdGlh bCB2YWx1ZXMuICBTbyB0aGUgbmV4dCBwcm9iZSgpCndpbGwgbWFwIHRoZSBkZXZpY2UgcmVnaXN0 ZXJzIHRvIHdyb25nIHBoeXNpY2FsIGFkZHJlc3NlcywKY2F1c2luZyBBUk0gU0Vycm9yIGFzeW5j IGV4Y2VwdGlvbnMuClRoaXMgcGF0Y2ggZml4ZXMgYWxsIG9mIHRoZSBhYm92ZS4KCkZpeGVzOiA1 NjA1MTk0ODc3M2UgKCJuZXQ6IGRzYTogb2NlbG90OiBhZGQgZHJpdmVyIGZvciBGZWxpeCBzd2l0 Y2ggZmFtaWx5IikKU2lnbmVkLW9mZi1ieTogQ2xhdWRpdSBNYW5vaWwgPGNsYXVkaXUubWFub2ls QG54cC5jb20+ClJldmlld2VkLWJ5OiBWbGFkaW1pciBPbHRlYW4gPHZsYWRpbWlyLm9sdGVhbkBu eHAuY29tPgpUZXN0ZWQtYnk6IFZsYWRpbWlyIE9sdGVhbiA8dmxhZGltaXIub2x0ZWFuQG54cC5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBkcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4LmMgICAgICAgICB8IDIzICsrKysrKysr KysrLS0tLS0tLS0tLS0tCiBkcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4LmggICAgICAgICB8 ICA2ICsrKy0tLQogZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeF92c2M5OTU5LmMgfCAyMiAr KysrKysrKysrLS0tLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDI0IGluc2VydGlvbnMoKyks IDI3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVs aXguYyBiL2RyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguYwppbmRleCBhNzc4MGMwNmZhNjUu LmI3NDU4MGU4N2JlOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeC5j CisrKyBiL2RyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguYwpAQCAtMzg1LDYgKzM4NSw3IEBA IHN0YXRpYyBpbnQgZmVsaXhfaW5pdF9zdHJ1Y3RzKHN0cnVjdCBmZWxpeCAqZmVsaXgsIGludCBu dW1fcGh5c19wb3J0cykKIAlzdHJ1Y3Qgb2NlbG90ICpvY2Vsb3QgPSAmZmVsaXgtPm9jZWxvdDsK IAlwaHlfaW50ZXJmYWNlX3QgKnBvcnRfcGh5X21vZGVzOwogCXJlc291cmNlX3NpemVfdCBzd2l0 Y2hfYmFzZTsKKwlzdHJ1Y3QgcmVzb3VyY2UgcmVzOwogCWludCBwb3J0LCBpLCBlcnI7CiAKIAlv Y2Vsb3QtPm51bV9waHlzX3BvcnRzID0gbnVtX3BoeXNfcG9ydHM7CkBAIC00MTYsMTcgKzQxNywx NiBAQCBzdGF0aWMgaW50IGZlbGl4X2luaXRfc3RydWN0cyhzdHJ1Y3QgZmVsaXggKmZlbGl4LCBp bnQgbnVtX3BoeXNfcG9ydHMpCiAKIAlmb3IgKGkgPSAwOyBpIDwgVEFSR0VUX01BWDsgaSsrKSB7 CiAJCXN0cnVjdCByZWdtYXAgKnRhcmdldDsKLQkJc3RydWN0IHJlc291cmNlICpyZXM7CiAKIAkJ aWYgKCFmZWxpeC0+aW5mby0+dGFyZ2V0X2lvX3Jlc1tpXS5uYW1lKQogCQkJY29udGludWU7CiAK LQkJcmVzID0gJmZlbGl4LT5pbmZvLT50YXJnZXRfaW9fcmVzW2ldOwotCQlyZXMtPmZsYWdzID0g SU9SRVNPVVJDRV9NRU07Ci0JCXJlcy0+c3RhcnQgKz0gc3dpdGNoX2Jhc2U7Ci0JCXJlcy0+ZW5k ICs9IHN3aXRjaF9iYXNlOworCQltZW1jcHkoJnJlcywgJmZlbGl4LT5pbmZvLT50YXJnZXRfaW9f cmVzW2ldLCBzaXplb2YocmVzKSk7CisJCXJlcy5mbGFncyA9IElPUkVTT1VSQ0VfTUVNOworCQly ZXMuc3RhcnQgKz0gc3dpdGNoX2Jhc2U7CisJCXJlcy5lbmQgKz0gc3dpdGNoX2Jhc2U7CiAKLQkJ dGFyZ2V0ID0gb2NlbG90X3JlZ21hcF9pbml0KG9jZWxvdCwgcmVzKTsKKwkJdGFyZ2V0ID0gb2Nl bG90X3JlZ21hcF9pbml0KG9jZWxvdCwgJnJlcyk7CiAJCWlmIChJU19FUlIodGFyZ2V0KSkgewog CQkJZGV2X2VycihvY2Vsb3QtPmRldiwKIAkJCQkiRmFpbGVkIHRvIG1hcCBkZXZpY2UgbWVtb3J5 IHNwYWNlXG4iKTsKQEAgLTQ0Nyw3ICs0NDcsNiBAQCBzdGF0aWMgaW50IGZlbGl4X2luaXRfc3Ry dWN0cyhzdHJ1Y3QgZmVsaXggKmZlbGl4LCBpbnQgbnVtX3BoeXNfcG9ydHMpCiAJZm9yIChwb3J0 ID0gMDsgcG9ydCA8IG51bV9waHlzX3BvcnRzOyBwb3J0KyspIHsKIAkJc3RydWN0IG9jZWxvdF9w b3J0ICpvY2Vsb3RfcG9ydDsKIAkJdm9pZCBfX2lvbWVtICpwb3J0X3JlZ3M7Ci0JCXN0cnVjdCBy ZXNvdXJjZSAqcmVzOwogCiAJCW9jZWxvdF9wb3J0ID0gZGV2bV9remFsbG9jKG9jZWxvdC0+ZGV2 LAogCQkJCQkgICBzaXplb2Yoc3RydWN0IG9jZWxvdF9wb3J0KSwKQEAgLTQ1OSwxMiArNDU4LDEy IEBAIHN0YXRpYyBpbnQgZmVsaXhfaW5pdF9zdHJ1Y3RzKHN0cnVjdCBmZWxpeCAqZmVsaXgsIGlu dCBudW1fcGh5c19wb3J0cykKIAkJCXJldHVybiAtRU5PTUVNOwogCQl9CiAKLQkJcmVzID0gJmZl bGl4LT5pbmZvLT5wb3J0X2lvX3Jlc1twb3J0XTsKLQkJcmVzLT5mbGFncyA9IElPUkVTT1VSQ0Vf TUVNOwotCQlyZXMtPnN0YXJ0ICs9IHN3aXRjaF9iYXNlOwotCQlyZXMtPmVuZCArPSBzd2l0Y2hf YmFzZTsKKwkJbWVtY3B5KCZyZXMsICZmZWxpeC0+aW5mby0+cG9ydF9pb19yZXNbcG9ydF0sIHNp emVvZihyZXMpKTsKKwkJcmVzLmZsYWdzID0gSU9SRVNPVVJDRV9NRU07CisJCXJlcy5zdGFydCAr PSBzd2l0Y2hfYmFzZTsKKwkJcmVzLmVuZCArPSBzd2l0Y2hfYmFzZTsKIAotCQlwb3J0X3JlZ3Mg PSBkZXZtX2lvcmVtYXBfcmVzb3VyY2Uob2NlbG90LT5kZXYsIHJlcyk7CisJCXBvcnRfcmVncyA9 IGRldm1faW9yZW1hcF9yZXNvdXJjZShvY2Vsb3QtPmRldiwgJnJlcyk7CiAJCWlmIChJU19FUlIo cG9ydF9yZWdzKSkgewogCQkJZGV2X2VycihvY2Vsb3QtPmRldiwKIAkJCQkiZmFpbGVkIHRvIG1h cCByZWdpc3RlcnMgZm9yIHBvcnQgJWRcbiIsIHBvcnQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvZHNhL29jZWxvdC9mZWxpeC5oIGIvZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeC5oCmlu ZGV4IDg3NzFkNDAzMjRmMS4uMmMwMjRjYzkwMWQ0IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9k c2Evb2NlbG90L2ZlbGl4LmgKKysrIGIvZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeC5oCkBA IC04LDkgKzgsOSBAQAogCiAvKiBQbGF0Zm9ybS1zcGVjaWZpYyBpbmZvcm1hdGlvbiAqLwogc3Ry dWN0IGZlbGl4X2luZm8gewotCXN0cnVjdCByZXNvdXJjZQkJCSp0YXJnZXRfaW9fcmVzOwotCXN0 cnVjdCByZXNvdXJjZQkJCSpwb3J0X2lvX3JlczsKLQlzdHJ1Y3QgcmVzb3VyY2UJCQkqaW1kaW9f cmVzOworCWNvbnN0IHN0cnVjdCByZXNvdXJjZQkJKnRhcmdldF9pb19yZXM7CisJY29uc3Qgc3Ry dWN0IHJlc291cmNlCQkqcG9ydF9pb19yZXM7CisJY29uc3Qgc3RydWN0IHJlc291cmNlCQkqaW1k aW9fcmVzOwogCWNvbnN0IHN0cnVjdCByZWdfZmllbGQJCSpyZWdmaWVsZHM7CiAJY29uc3QgdTMy ICpjb25zdAkJKm1hcDsKIAljb25zdCBzdHJ1Y3Qgb2NlbG90X29wcwkJKm9wczsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXhfdnNjOTk1OS5jIGIvZHJpdmVycy9uZXQv ZHNhL29jZWxvdC9mZWxpeF92c2M5OTU5LmMKaW5kZXggZWRjMWE2N2MwMDJiLi41MDA3NGRhM2Ex YTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXhfdnNjOTk1OS5jCisr KyBiL2RyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXhfdnNjOTk1OS5jCkBAIC0zMjgsMTAgKzMy OCw4IEBAIHN0YXRpYyBjb25zdCB1MzIgKnZzYzk5NTlfcmVnbWFwW10gPSB7CiAJW0dDQl0JPSB2 c2M5OTU5X2djYl9yZWdtYXAsCiB9OwogCi0vKiBBZGRyZXNzZXMgYXJlIHJlbGF0aXZlIHRvIHRo ZSBQQ0kgZGV2aWNlJ3MgYmFzZSBhZGRyZXNzIGFuZAotICogd2lsbCBiZSBmaXhlZCB1cCBhdCBp b3JlbWFwIHRpbWUuCi0gKi8KLXN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgdnNjOTk1OV90YXJnZXRf aW9fcmVzW10gPSB7CisvKiBBZGRyZXNzZXMgYXJlIHJlbGF0aXZlIHRvIHRoZSBQQ0kgZGV2aWNl J3MgYmFzZSBhZGRyZXNzICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHJlc291cmNlIHZzYzk5NTlf dGFyZ2V0X2lvX3Jlc1tdID0gewogCVtBTkFdID0gewogCQkuc3RhcnQJPSAweDAyODAwMDAsCiAJ CS5lbmQJPSAweDAyOGZmZmYsCkBAIC0zNzQsNyArMzcyLDcgQEAgc3RhdGljIHN0cnVjdCByZXNv dXJjZSB2c2M5OTU5X3RhcmdldF9pb19yZXNbXSA9IHsKIAl9LAogfTsKIAotc3RhdGljIHN0cnVj dCByZXNvdXJjZSB2c2M5OTU5X3BvcnRfaW9fcmVzW10gPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0 IHJlc291cmNlIHZzYzk5NTlfcG9ydF9pb19yZXNbXSA9IHsKIAl7CiAJCS5zdGFydAk9IDB4MDEw MDAwMCwKIAkJLmVuZAk9IDB4MDEwZmZmZiwKQEAgLTQxMCw3ICs0MDgsNyBAQCBzdGF0aWMgc3Ry dWN0IHJlc291cmNlIHZzYzk5NTlfcG9ydF9pb19yZXNbXSA9IHsKIC8qIFBvcnQgTUFDIDAgSW50 ZXJuYWwgTURJTyBidXMgdGhyb3VnaCB3aGljaCB0aGUgU2VyRGVzIGFjdGluZyBhcyBhbgogICog U0dNSUkvUVNHTUlJIE1BQyBQQ1MgY2FuIGJlIGZvdW5kLgogICovCi1zdGF0aWMgc3RydWN0IHJl c291cmNlIHZzYzk5NTlfaW1kaW9fcmVzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCByZXNvdXJj ZSB2c2M5OTU5X2ltZGlvX3JlcyA9IHsKIAkuc3RhcnQJCT0gMHg4MDMwLAogCS5lbmQJCT0gMHg4 MDQwLAogCS5uYW1lCQk9ICJpbWRpbyIsCkBAIC05ODQsNyArOTgyLDcgQEAgc3RhdGljIGludCB2 c2M5OTU5X21kaW9fYnVzX2FsbG9jKHN0cnVjdCBvY2Vsb3QgKm9jZWxvdCkKIAlzdHJ1Y3QgZGV2 aWNlICpkZXYgPSBvY2Vsb3QtPmRldjsKIAlyZXNvdXJjZV9zaXplX3QgaW1kaW9fYmFzZTsKIAl2 b2lkIF9faW9tZW0gKmltZGlvX3JlZ3M7Ci0Jc3RydWN0IHJlc291cmNlICpyZXM7CisJc3RydWN0 IHJlc291cmNlIHJlczsKIAlzdHJ1Y3QgZW5ldGNfaHcgKmh3OwogCXN0cnVjdCBtaWlfYnVzICpi dXM7CiAJaW50IHBvcnQ7CkBAIC0xMDAxLDEyICs5OTksMTIgQEAgc3RhdGljIGludCB2c2M5OTU5 X21kaW9fYnVzX2FsbG9jKHN0cnVjdCBvY2Vsb3QgKm9jZWxvdCkKIAlpbWRpb19iYXNlID0gcGNp X3Jlc291cmNlX3N0YXJ0KGZlbGl4LT5wZGV2LAogCQkJCQlmZWxpeC0+aW5mby0+aW1kaW9fcGNp X2Jhcik7CiAKLQlyZXMgPSBmZWxpeC0+aW5mby0+aW1kaW9fcmVzOwotCXJlcy0+ZmxhZ3MgPSBJ T1JFU09VUkNFX01FTTsKLQlyZXMtPnN0YXJ0ICs9IGltZGlvX2Jhc2U7Ci0JcmVzLT5lbmQgKz0g aW1kaW9fYmFzZTsKKwltZW1jcHkoJnJlcywgZmVsaXgtPmluZm8tPmltZGlvX3Jlcywgc2l6ZW9m KHJlcykpOworCXJlcy5mbGFncyA9IElPUkVTT1VSQ0VfTUVNOworCXJlcy5zdGFydCArPSBpbWRp b19iYXNlOworCXJlcy5lbmQgKz0gaW1kaW9fYmFzZTsKIAotCWltZGlvX3JlZ3MgPSBkZXZtX2lv cmVtYXBfcmVzb3VyY2UoZGV2LCByZXMpOworCWltZGlvX3JlZ3MgPSBkZXZtX2lvcmVtYXBfcmVz b3VyY2UoZGV2LCAmcmVzKTsKIAlpZiAoSVNfRVJSKGltZGlvX3JlZ3MpKSB7CiAJCWRldl9lcnIo ZGV2LCAiZmFpbGVkIHRvIG1hcCBpbnRlcm5hbCBNRElPIHJlZ2lzdGVyc1xuIik7CiAJCXJldHVy biBQVFJfRVJSKGltZGlvX3JlZ3MpOwotLSAKMi4yNi4yCgoKRnJvbSA5Y2M0OTc5N2M3ODlkODg5 MTdhYzU1MjI0NGE4YWRiNjg0ZmE4NzcwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBT YWJyaW5hIER1YnJvY2EgPHNkQHF1ZWFzeXNuYWlsLm5ldD4KRGF0ZTogV2VkLCAyMCBNYXkgMjAy MCAxMToxNTo0NiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDUvMzNdIG5ldDogZG9uJ3QgcmV0dXJu IGludmFsaWQgdGFibGUgaWQgZXJyb3Igd2hlbiB3ZSBmYWxsCiBiYWNrIHRvIFBGX1VOU1BFQwoK WyBVcHN0cmVhbSBjb21taXQgNDFiNGJkOTg2Zjg2MzMxZWZjNTk5YjlhM2Y1ZmI4NmFkOTJlOWFm OSBdCgpJbiBjYXNlIHdlIGNhbid0IGZpbmQgYSAtPmR1bXBpdCBjYWxsYmFjayBmb3IgdGhlIHJl cXVlc3RlZAooZmFtaWx5LHR5cGUpIHBhaXIsIHdlIGZhbGwgYmFjayB0byAoUEZfVU5TUEVDLHR5 cGUpLiBJbiBlZmZlY3QsIHdlJ3JlCmluIHRoZSBzYW1lIHNpdHVhdGlvbiBhcyBpZiB1c2Vyc3Bh Y2UgaGFkIHJlcXVlc3RlZCBhIFBGX1VOU1BFQwpkdW1wLiBGb3IgUlRNX0dFVFJPVVRFLCB0aGF0 IGhhbmRsZXIgaXMgcnRubF9kdW1wX2FsbCwgd2hpY2ggY2FsbHMgYWxsCnRoZSByZWdpc3RlcmVk IFJUTV9HRVRST1VURSBoYW5kbGVycy4KClRoZSByZXF1ZXN0ZWQgdGFibGUgaWQgbWF5IG9yIG1h eSBub3QgZXhpc3QgZm9yIGFsbCBvZiB0aG9zZQpmYW1pbGllcy4gY29tbWl0IGFlNjc3YmJiNDQ0 MSAoIm5ldDogRG9uJ3QgcmV0dXJuIGludmFsaWQgdGFibGUgaWQKZXJyb3Igd2hlbiBkdW1waW5n IGFsbCBmYW1pbGllcyIpIGZpeGVkIHRoZSBwcm9ibGVtIHdoZW4gdXNlcnNwYWNlCmV4cGxpY2l0 bHkgcmVxdWVzdHMgYSBQRl9VTlNQRUMgZHVtcCwgYnV0IG1pc3NlZCB0aGUgZmFsbGJhY2sgY2Fz ZS4KCkZvciBleGFtcGxlLCB3aGVuIHdlIHBhc3MgaXB2Ni5kaXNhYmxlPTEgdG8gYSBrZXJuZWwg d2l0aApDT05GSUdfSVBfTVJPVVRFPXkgYW5kIENPTkZJR19JUF9NUk9VVEVfTVVMVElQTEVfVEFC TEVTPXksCnRoZSAoUEZfSU5FVDYsIFJUTV9HRVRST1VURSkgaGFuZGxlciBpc24ndCByZWdpc3Rl cmVkLCBzbyB3ZSBlbmQgdXAgaW4KcnRubF9kdW1wX2FsbCwgYW5kIGxpc3RpbmcgSVB2NiByb3V0 ZXMgd2lsbCB1bmV4cGVjdGVkbHkgcHJpbnQ6CgogICMgaXAgLTYgcgogIEVycm9yOiBpcHY0OiBN UiB0YWJsZSBkb2VzIG5vdCBleGlzdC4KICBEdW1wIHRlcm1pbmF0ZWQKCmNvbW1pdCBhZTY3N2Ji YjQ0NDEgaW50cm9kdWNlZCB0aGUgZHVtcF9hbGxfZmFtaWxpZXMgdmFyaWFibGUsIHdoaWNoCmdl dHMgc2V0IHdoZW4gdXNlcnNwYWNlIHJlcXVlc3RzIGEgUEZfVU5TUEVDIGR1bXAuIEhvd2V2ZXIs IHdlIGNhbid0CnNpbXBseSBzZXQgdGhlIGZhbWlseSB0byBQRl9VTlNQRUMgaW4gcnRuZXRsaW5r X3Jjdl9tc2cgaW4gdGhlCmZhbGxiYWNrIGNhc2UgdG8gZ2V0IGR1bXBfYWxsX2ZhbWlsaWVzID09 IHRydWUsIGJlY2F1c2Ugc29tZSBtZXNzYWdlcwp0eXBlcyAoZm9yIGV4YW1wbGUgUlRNX0dFVFJV TEUgYW5kIFJUTV9HRVRORUlHSCkgb25seSByZWdpc3RlciB0aGUKUEZfVU5TUEVDIGhhbmRsZXIg YW5kIHVzZSB0aGUgZmFtaWx5IHRvIGZpbHRlciBpbiB0aGUga2VybmVsIHdoYXQgaXMKZHVtcGVk IHRvIHVzZXJzcGFjZS4gV2Ugd291bGQgdGhlbiBleHBvcnQgbW9yZSBlbnRyaWVzLCB0aGF0IHVz ZXJzcGFjZQp3b3VsZCBoYXZlIHRvIGZpbHRlci4gaXByb3V0ZSBkb2VzIHRoYXQsIGJ1dCBvdGhl ciBwcm9ncmFtcyBtYXkgbm90LgoKSW5zdGVhZCwgdGhpcyBwYXRjaCByZW1vdmVzIGR1bXBfYWxs X2ZhbWlsaWVzIGFuZCB1cGRhdGVzIHRoZQpSVE1fR0VUUk9VVEUgaGFuZGxlcnMgdG8gY2hlY2sg aWYgdGhlIGZhbWlseSB0aGF0IGlzIGJlaW5nIGR1bXBlZCBpcwp0aGVpciBvd24uIFdoZW4gaXQn cyBub3QsIHdoaWNoIGNvdmVycyBib3RoIHRoZSBpbnRlbnRpb25hbCBQRl9VTlNQRUMKZHVtcHMg KGFzIGR1bXBfYWxsX2ZhbWlsaWVzIGRpZCkgYW5kIHRoZSBmYWxsYmFjayBjYXNlLCBpZ25vcmUg dGhlCm1pc3NpbmcgdGFibGUgaWQgZXJyb3IuCgpGaXhlczogY2IxNjc4OTNmNDFlICgibmV0OiBQ bHVtYiBzdXBwb3J0IGZvciBmaWx0ZXJpbmcgaXB2NCBhbmQgaXB2NiBtdWx0aWNhc3Qgcm91dGUg ZHVtcHMiKQpTaWduZWQtb2ZmLWJ5OiBTYWJyaW5hIER1YnJvY2EgPHNkQHF1ZWFzeXNuYWlsLm5l dD4KUmV2aWV3ZWQtYnk6IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUv bmV0L2lwX2ZpYi5oICAgIHwgMSAtCiBuZXQvaXB2NC9maWJfZnJvbnRlbmQuYyB8IDMgKy0tCiBu ZXQvaXB2NC9pcG1yLmMgICAgICAgICB8IDIgKy0KIG5ldC9pcHY2L2lwNl9maWIuYyAgICAgIHwg MiArLQogbmV0L2lwdjYvaXA2bXIuYyAgICAgICAgfCAyICstCiA1IGZpbGVzIGNoYW5nZWQsIDQg aW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9p cF9maWIuaCBiL2luY2x1ZGUvbmV0L2lwX2ZpYi5oCmluZGV4IDZhMWFlNDk4MDlkZS4uYTg5YzA4 ODVmZDJhIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9pcF9maWIuaAorKysgYi9pbmNsdWRlL25l dC9pcF9maWIuaApAQCAtMjU3LDcgKzI1Nyw2IEBAIHN0cnVjdCBmaWJfZHVtcF9maWx0ZXIgewog CXUzMgkJCXRhYmxlX2lkOwogCS8qIGZpbHRlcl9zZXQgaXMgYW4gb3B0aW1pemF0aW9uIHRoYXQg YW4gZW50cnkgaXMgc2V0ICovCiAJYm9vbAkJCWZpbHRlcl9zZXQ7Ci0JYm9vbAkJCWR1bXBfYWxs X2ZhbWlsaWVzOwogCWJvb2wJCQlkdW1wX3JvdXRlczsKIAlib29sCQkJZHVtcF9leGNlcHRpb25z OwogCXVuc2lnbmVkIGNoYXIJCXByb3RvY29sOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvZmliX2Zy b250ZW5kLmMgYi9uZXQvaXB2NC9maWJfZnJvbnRlbmQuYwppbmRleCAyMTNiZTljMDUwYWQuLjFi ZjlkYTNhNzVmOSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvZmliX2Zyb250ZW5kLmMKKysrIGIvbmV0 L2lwdjQvZmliX2Zyb250ZW5kLmMKQEAgLTkxOCw3ICs5MTgsNiBAQCBpbnQgaXBfdmFsaWRfZmli X2R1bXBfcmVxKHN0cnVjdCBuZXQgKm5ldCwgY29uc3Qgc3RydWN0IG5sbXNnaGRyICpubGgsCiAJ ZWxzZQogCQlmaWx0ZXItPmR1bXBfZXhjZXB0aW9ucyA9IGZhbHNlOwogCi0JZmlsdGVyLT5kdW1w X2FsbF9mYW1pbGllcyA9IChydG0tPnJ0bV9mYW1pbHkgPT0gQUZfVU5TUEVDKTsKIAlmaWx0ZXIt PmZsYWdzICAgID0gcnRtLT5ydG1fZmxhZ3M7CiAJZmlsdGVyLT5wcm90b2NvbCA9IHJ0bS0+cnRt X3Byb3RvY29sOwogCWZpbHRlci0+cnRfdHlwZSAgPSBydG0tPnJ0bV90eXBlOwpAQCAtOTkwLDcg Kzk4OSw3IEBAIHN0YXRpYyBpbnQgaW5ldF9kdW1wX2ZpYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBz dHJ1Y3QgbmV0bGlua19jYWxsYmFjayAqY2IpCiAJaWYgKGZpbHRlci50YWJsZV9pZCkgewogCQl0 YiA9IGZpYl9nZXRfdGFibGUobmV0LCBmaWx0ZXIudGFibGVfaWQpOwogCQlpZiAoIXRiKSB7Ci0J CQlpZiAoZmlsdGVyLmR1bXBfYWxsX2ZhbWlsaWVzKQorCQkJaWYgKHJ0bmxfbXNnX2ZhbWlseShj Yi0+bmxoKSAhPSBQRl9JTkVUKQogCQkJCXJldHVybiBza2ItPmxlbjsKIAogCQkJTkxfU0VUX0VS Ul9NU0coY2ItPmV4dGFjaywgImlwdjQ6IEZJQiB0YWJsZSBkb2VzIG5vdCBleGlzdCIpOwpkaWZm IC0tZ2l0IGEvbmV0L2lwdjQvaXBtci5jIGIvbmV0L2lwdjQvaXBtci5jCmluZGV4IDZlNjhkZWY2 NjgyMi4uMjUwOGI0YzM3YWYzIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9pcG1yLmMKKysrIGIvbmV0 L2lwdjQvaXBtci5jCkBAIC0yNjExLDcgKzI2MTEsNyBAQCBzdGF0aWMgaW50IGlwbXJfcnRtX2R1 bXByb3V0ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0bGlua19jYWxsYmFjayAqY2Ip CiAKIAkJbXJ0ID0gaXBtcl9nZXRfdGFibGUoc29ja19uZXQoc2tiLT5zayksIGZpbHRlci50YWJs ZV9pZCk7CiAJCWlmICghbXJ0KSB7Ci0JCQlpZiAoZmlsdGVyLmR1bXBfYWxsX2ZhbWlsaWVzKQor CQkJaWYgKHJ0bmxfbXNnX2ZhbWlseShjYi0+bmxoKSAhPSBSVE5MX0ZBTUlMWV9JUE1SKQogCQkJ CXJldHVybiBza2ItPmxlbjsKIAogCQkJTkxfU0VUX0VSUl9NU0coY2ItPmV4dGFjaywgImlwdjQ6 IE1SIHRhYmxlIGRvZXMgbm90IGV4aXN0Iik7CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfZmli LmMgYi9uZXQvaXB2Ni9pcDZfZmliLmMKaW5kZXggNzJhYmY4OTIzMDJmLi45YTUzNTkwZWY3OWMg MTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2lwNl9maWIuYworKysgYi9uZXQvaXB2Ni9pcDZfZmliLmMK QEAgLTY2NCw3ICs2NjQsNyBAQCBzdGF0aWMgaW50IGluZXQ2X2R1bXBfZmliKHN0cnVjdCBza19i dWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYikKIAlpZiAoYXJnLmZpbHRlci50 YWJsZV9pZCkgewogCQl0YiA9IGZpYjZfZ2V0X3RhYmxlKG5ldCwgYXJnLmZpbHRlci50YWJsZV9p ZCk7CiAJCWlmICghdGIpIHsKLQkJCWlmIChhcmcuZmlsdGVyLmR1bXBfYWxsX2ZhbWlsaWVzKQor CQkJaWYgKHJ0bmxfbXNnX2ZhbWlseShjYi0+bmxoKSAhPSBQRl9JTkVUNikKIAkJCQlnb3RvIG91 dDsKIAogCQkJTkxfU0VUX0VSUl9NU0dfTU9EKGNiLT5leHRhY2ssICJGSUIgdGFibGUgZG9lcyBu b3QgZXhpc3QiKTsKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNm1yLmMgYi9uZXQvaXB2Ni9pcDZt ci5jCmluZGV4IGJmYTQ5ZmY3MDUzMS4uMmRkYjdjNTEzZTU0IDEwMDY0NAotLS0gYS9uZXQvaXB2 Ni9pcDZtci5jCisrKyBiL25ldC9pcHY2L2lwNm1yLmMKQEAgLTI1MDEsNyArMjUwMSw3IEBAIHN0 YXRpYyBpbnQgaXA2bXJfcnRtX2R1bXByb3V0ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qg bmV0bGlua19jYWxsYmFjayAqY2IpCiAKIAkJbXJ0ID0gaXA2bXJfZ2V0X3RhYmxlKHNvY2tfbmV0 KHNrYi0+c2spLCBmaWx0ZXIudGFibGVfaWQpOwogCQlpZiAoIW1ydCkgewotCQkJaWYgKGZpbHRl ci5kdW1wX2FsbF9mYW1pbGllcykKKwkJCWlmIChydG5sX21zZ19mYW1pbHkoY2ItPm5saCkgIT0g UlROTF9GQU1JTFlfSVA2TVIpCiAJCQkJcmV0dXJuIHNrYi0+bGVuOwogCiAJCQlOTF9TRVRfRVJS X01TR19NT0QoY2ItPmV4dGFjaywgIk1SIHRhYmxlIGRvZXMgbm90IGV4aXN0Iik7Ci0tIAoyLjI2 LjIKCgpGcm9tIDM5ODY5OGExNGE5YTM3ZDA4OGFiZDM2OTA4OTU5YmE4ZmU3ZTVlODAgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IERFTkcgUWluZ2ZhbmcgPGRxZmV4dEBnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMTMgTWF5IDIwMjAgMjM6MTA6MTYgKzA4MDAKU3ViamVjdDogW1BBVENIIDA2 LzMzXSBuZXQ6IGRzYTogbXQ3NTMwOiBmaXggcm9hbWluZyBmcm9tIERTQSB1c2VyIHBvcnRzCgpb IFVwc3RyZWFtIGNvbW1pdCA1ZTU1MDJlMDEyYjgxMjllMTFiZTYxNmFjYjBmOWMzNGJjOGY4YWRi IF0KCldoZW4gYSBjbGllbnQgbW92ZXMgZnJvbSBhIERTQSB1c2VyIHBvcnQgdG8gYSBzb2Z0d2Fy ZSBwb3J0IGluIGEgYnJpZGdlLAppdCBjYW5ub3QgcmVhY2ggYW55IG90aGVyIGNsaWVudHMgdGhh dCBjb25uZWN0ZWQgdG8gdGhlIERTQSB1c2VyIHBvcnRzLgpUaGF0IGlzIGJlY2F1c2UgU0EgbGVh cm5pbmcgb24gdGhlIENQVSBwb3J0IGlzIGRpc2FibGVkLCBzbyB0aGUgc3dpdGNoCmlnbm9yZXMg dGhlIGNsaWVudCdzIGZyYW1lcyBmcm9tIHRoZSBDUFUgcG9ydCBhbmQgc3RpbGwgdGhpbmtzIGl0 IGlzIGF0CnRoZSB1c2VyIHBvcnQuCgpGaXggaXQgYnkgZW5hYmxpbmcgU0EgbGVhcm5pbmcgb24g dGhlIENQVSBwb3J0LgoKVG8gcHJldmVudCB0aGUgc3dpdGNoIGZyb20gbGVhcm5pbmcgZnJvbSBm bG9vZGluZyBmcmFtZXMgZnJvbSB0aGUgQ1BVCnBvcnQsIHNldCBza2ItPm9mZmxvYWRfZndkX21h cmsgdG8gMSBmb3IgdW5pY2FzdCBhbmQgYnJvYWRjYXN0IGZyYW1lcywKYW5kIGxldCB0aGUgc3dp dGNoIGZsb29kIHRoZW0gaW5zdGVhZCBvZiB0cmFwcGluZyB0byB0aGUgQ1BVIHBvcnQuCk11bHRp Y2FzdCBmcmFtZXMgc3RpbGwgbmVlZCB0byBiZSB0cmFwcGVkIHRvIHRoZSBDUFUgcG9ydCBmb3Ig c25vb3BpbmcsCnNvIHNldCB0aGUgU0FfRElTIGJpdCBvZiB0aGUgTVRLIHRhZyB0byAxIHdoZW4g dHJhbnNtaXR0aW5nIHRob3NlIGZyYW1lcwp0byBkaXNhYmxlIFNBIGxlYXJuaW5nLgoKRml4ZXM6 IGI4ZjEyNmE4ZDU0MyAoIm5ldC1uZXh0OiBkc2E6IGFkZCBkc2Egc3VwcG9ydCBmb3IgTWVkaWF0 ZWsgTVQ3NTMwIHN3aXRjaCIpClNpZ25lZC1vZmYtYnk6IERFTkcgUWluZ2ZhbmcgPGRxZmV4dEBn bWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMgfCAgOSArKy0tLS0tLS0KIGRyaXZl cnMvbmV0L2RzYS9tdDc1MzAuaCB8ICAxICsKIG5ldC9kc2EvdGFnX210ay5jICAgICAgICB8IDE1 ICsrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAxOCBpbnNlcnRpb25zKCspLCA3IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYyBiL2RyaXZl cnMvbmV0L2RzYS9tdDc1MzAuYwppbmRleCAwMTIzNDk4MjQyYjkuLmI5NTQyNWE2M2ExMyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9uZXQvZHNhL210NzUzMC5jCisrKyBiL2RyaXZlcnMvbmV0L2RzYS9t dDc1MzAuYwpAQCAtNjM5LDExICs2MzksOCBAQCBtdDc1MzBfY3B1X3BvcnRfZW5hYmxlKHN0cnVj dCBtdDc1MzBfcHJpdiAqcHJpdiwKIAltdDc1MzBfd3JpdGUocHJpdiwgTVQ3NTMwX1BWQ19QKHBv cnQpLAogCQkgICAgIFBPUlRfU1BFQ19UQUcpOwogCi0JLyogRGlzYWJsZSBhdXRvIGxlYXJuaW5n IG9uIHRoZSBjcHUgcG9ydCAqLwotCW10NzUzMF9zZXQocHJpdiwgTVQ3NTMwX1BTQ19QKHBvcnQp LCBTQV9ESVMpOwotCi0JLyogVW5rbm93biB1bmljYXN0IGZyYW1lIGZvcmR3YXJkaW5nIHRvIHRo ZSBjcHUgcG9ydCAqLwotCW10NzUzMF9zZXQocHJpdiwgTVQ3NTMwX01GQywgVU5VX0ZGUChCSVQo cG9ydCkpKTsKKwkvKiBVbmtub3duIG11bHRpY2FzdCBmcmFtZSBmb3J3YXJkaW5nIHRvIHRoZSBj cHUgcG9ydCAqLworCW10NzUzMF9ybXcocHJpdiwgTVQ3NTMwX01GQywgVU5NX0ZGUF9NQVNLLCBV Tk1fRkZQKEJJVChwb3J0KSkpOwogCiAJLyogU2V0IENQVSBwb3J0IG51bWJlciAqLwogCWlmIChw cml2LT5pZCA9PSBJRF9NVDc2MjEpCkBAIC0xMjQ3LDggKzEyNDQsNiBAQCBtdDc1MzBfc2V0dXAo c3RydWN0IGRzYV9zd2l0Y2ggKmRzKQogCS8qIEVuYWJsZSBhbmQgcmVzZXQgTUlCIGNvdW50ZXJz ICovCiAJbXQ3NTMwX21pYl9yZXNldChkcyk7CiAKLQltdDc1MzBfY2xlYXIocHJpdiwgTVQ3NTMw X01GQywgVU5VX0ZGUF9NQVNLKTsKLQogCWZvciAoaSA9IDA7IGkgPCBNVDc1MzBfTlVNX1BPUlRT OyBpKyspIHsKIAkJLyogRGlzYWJsZSBmb3J3YXJkaW5nIGJ5IGRlZmF1bHQgb24gYWxsIHBvcnRz ICovCiAJCW10NzUzMF9ybXcocHJpdiwgTVQ3NTMwX1BDUl9QKGkpLCBQQ1JfTUFUUklYX01BU0ss CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmggYi9kcml2ZXJzL25ldC9kc2Ev bXQ3NTMwLmgKaW5kZXggNzU2MTQwYjdkZmQ1Li4wZTdlMzZkOGY5OTQgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbmV0L2RzYS9tdDc1MzAuaAorKysgYi9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmgKQEAg LTMxLDYgKzMxLDcgQEAgZW51bSB7CiAjZGVmaW5lIE1UNzUzMF9NRkMJCQkweDEwCiAjZGVmaW5l ICBCQ19GRlAoeCkJCQkoKCh4KSAmIDB4ZmYpIDw8IDI0KQogI2RlZmluZSAgVU5NX0ZGUCh4KQkJ CSgoKHgpICYgMHhmZikgPDwgMTYpCisjZGVmaW5lICBVTk1fRkZQX01BU0sJCQlVTk1fRkZQKH4w KQogI2RlZmluZSAgVU5VX0ZGUCh4KQkJCSgoKHgpICYgMHhmZikgPDwgOCkKICNkZWZpbmUgIFVO VV9GRlBfTUFTSwkJCVVOVV9GRlAofjApCiAjZGVmaW5lICBDUFVfRU4JCQkJQklUKDcpCmRpZmYg LS1naXQgYS9uZXQvZHNhL3RhZ19tdGsuYyBiL25ldC9kc2EvdGFnX210ay5jCmluZGV4IGI1NzA1 Y2JhODMxOC4uZDY2MTllZGQ1M2U1IDEwMDY0NAotLS0gYS9uZXQvZHNhL3RhZ19tdGsuYworKysg Yi9uZXQvZHNhL3RhZ19tdGsuYwpAQCAtMTUsNiArMTUsNyBAQAogI2RlZmluZSBNVEtfSERSX1hN SVRfVEFHR0VEX1RQSURfODEwMAkxCiAjZGVmaW5lIE1US19IRFJfUkVDVl9TT1VSQ0VfUE9SVF9N QVNLCUdFTk1BU0soMiwgMCkKICNkZWZpbmUgTVRLX0hEUl9YTUlUX0RQX0JJVF9NQVNLCUdFTk1B U0soNSwgMCkKKyNkZWZpbmUgTVRLX0hEUl9YTUlUX1NBX0RJUwkJQklUKDYpCiAKIHN0YXRpYyBz dHJ1Y3Qgc2tfYnVmZiAqbXRrX3RhZ194bWl0KHN0cnVjdCBza19idWZmICpza2IsCiAJCQkJICAg IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCkBAIC0yMiw2ICsyMyw5IEBAIHN0YXRpYyBzdHJ1Y3Qg c2tfYnVmZiAqbXRrX3RhZ194bWl0KHN0cnVjdCBza19idWZmICpza2IsCiAJc3RydWN0IGRzYV9w b3J0ICpkcCA9IGRzYV9zbGF2ZV90b19wb3J0KGRldik7CiAJdTggKm10a190YWc7CiAJYm9vbCBp c192bGFuX3NrYiA9IHRydWU7CisJdW5zaWduZWQgY2hhciAqZGVzdCA9IGV0aF9oZHIoc2tiKS0+ aF9kZXN0OworCWJvb2wgaXNfbXVsdGljYXN0X3NrYiA9IGlzX211bHRpY2FzdF9ldGhlcl9hZGRy KGRlc3QpICYmCisJCQkJIWlzX2Jyb2FkY2FzdF9ldGhlcl9hZGRyKGRlc3QpOwogCiAJLyogQnVp bGQgdGhlIHNwZWNpYWwgdGFnIGFmdGVyIHRoZSBNQUMgU291cmNlIEFkZHJlc3MuIElmIFZMQU4g aGVhZGVyCiAJICogaXMgcHJlc2VudCwgaXQncyByZXF1aXJlZCB0aGF0IFZMQU4gaGVhZGVyIGFu ZCBzcGVjaWFsIHRhZyBpcwpAQCAtNDcsNiArNTEsMTAgQEAgc3RhdGljIHN0cnVjdCBza19idWZm ICptdGtfdGFnX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJICAgICBNVEtfSERSX1hNSVRf VU5UQUdHRUQ7CiAJbXRrX3RhZ1sxXSA9ICgxIDw8IGRwLT5pbmRleCkgJiBNVEtfSERSX1hNSVRf RFBfQklUX01BU0s7CiAKKwkvKiBEaXNhYmxlIFNBIGxlYXJuaW5nIGZvciBtdWx0aWNhc3QgZnJh bWVzICovCisJaWYgKHVubGlrZWx5KGlzX211bHRpY2FzdF9za2IpKQorCQltdGtfdGFnWzFdIHw9 IE1US19IRFJfWE1JVF9TQV9ESVM7CisKIAkvKiBUYWcgY29udHJvbCBpbmZvcm1hdGlvbiBpcyBr ZXB0IGZvciA4MDIuMVEgKi8KIAlpZiAoIWlzX3ZsYW5fc2tiKSB7CiAJCW10a190YWdbMl0gPSAw OwpAQCAtNjEsNiArNjksOSBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKm10a190YWdfcmN2KHN0 cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiB7CiAJaW50IHBvcnQ7 CiAJX19iZTE2ICpwaGRyLCBoZHI7CisJdW5zaWduZWQgY2hhciAqZGVzdCA9IGV0aF9oZHIoc2ti KS0+aF9kZXN0OworCWJvb2wgaXNfbXVsdGljYXN0X3NrYiA9IGlzX211bHRpY2FzdF9ldGhlcl9h ZGRyKGRlc3QpICYmCisJCQkJIWlzX2Jyb2FkY2FzdF9ldGhlcl9hZGRyKGRlc3QpOwogCiAJaWYg KHVubGlrZWx5KCFwc2tiX21heV9wdWxsKHNrYiwgTVRLX0hEUl9MRU4pKSkKIAkJcmV0dXJuIE5V TEw7CkBAIC04Niw2ICs5NywxMCBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKm10a190YWdfcmN2 KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJaWYgKCFza2It PmRldikKIAkJcmV0dXJuIE5VTEw7CiAKKwkvKiBPbmx5IHVuaWNhc3Qgb3IgYnJvYWRjYXN0IGZy YW1lcyBhcmUgb2ZmbG9hZGVkICovCisJaWYgKGxpa2VseSghaXNfbXVsdGljYXN0X3NrYikpCisJ CXNrYi0+b2ZmbG9hZF9md2RfbWFyayA9IDE7CisKIAlyZXR1cm4gc2tiOwogfQogCi0tIAoyLjI2 LjIKCgpGcm9tIGVkODlmYzc1MDlhNGViOTFiZmRjNDAwYWYzNDY2MzNiZjZjOTdmODUgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEdyeWdvcmlpIFN0cmFzaGtvIDxncnlnb3JpaS5zdHJh c2hrb0B0aS5jb20+CkRhdGU6IEZyaSwgMjIgTWF5IDIwMjAgMjA6MDk6MjggKzAzMDAKU3ViamVj dDogW1BBVENIIDA3LzMzXSBuZXQ6IGV0aGVybmV0OiB0aTogY3BzdzogZml4IEFTU0VSVF9SVE5M KCkgd2FybmluZwogZHVyaW5nIHN1c3BlbmQKClsgVXBzdHJlYW0gY29tbWl0IDRjNjRiODNkMDNm NGFhZmNkZjcxMGNhYWQ5OTRjYmM4NTU4MDJlNzQgXQoKdmxhbl9mb3JfZWFjaCgpIGFyZSByZXF1 aXJlZCB0byBiZSBjYWxsZWQgd2l0aCBydG5sX2xvY2sgdGFrZW4sIG90aGVyd2lzZQpBU1NFUlRf UlROTCgpIHdhcm5pbmcgd2lsbCBiZSB0cmlnZ2VyZWQgLSB3aGljaCBoYXBwZW5zIG5vdyBkdXJp bmcgU3lzdGVtCnJlc3VtZSBmcm9tIHN1c3BlbmQ6CiAgY3Bzd19zdXNwZW5kKCkKICB8LSBjcHN3 X25kb19zdG9wKCkKICAgIHwtIF9faHdfYWRkcl9yZWZfdW5zeW5jX2RldigpCiAgICAgIHwtIGNw c3dfcHVyZ2VfYWxsX21jKCkKICAgICAgICAgfC0gdmxhbl9mb3JfZWFjaCgpCiAgICAgICAgICAg IHwtIEFTU0VSVF9SVE5MKCk7CgpIZW5jZSwgZml4IGl0IGJ5IHN1cnJvdW5kaW5nIGNwc3dfbmRv X3N0b3AoKSBieSBydG5sX2xvY2svdW5sb2NrKCkgY2FsbHMuCgpGaXhlczogMTUxODBlY2E1Njli ICgibmV0OiBldGhlcm5ldDogdGk6IGNwc3c6IGZpeCB2bGFuIG1jYXN0IikKU2lnbmVkLW9mZi1i eTogR3J5Z29yaWkgU3RyYXNoa28gPGdyeWdvcmlpLnN0cmFzaGtvQHRpLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMv bmV0L2V0aGVybmV0L3RpL2Nwc3cuYyB8IDQgKysrKwogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0 aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3RpL2Nwc3cuYyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L3RpL2Nwc3cuYwppbmRleCA2YWU0YTcyZTZmNDMuLjU1NzdmZjBi NzY2MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvY3Bzdy5jCisrKyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L3RpL2Nwc3cuYwpAQCAtMTc1MiwxMSArMTc1MiwxNSBAQCBzdGF0 aWMgaW50IGNwc3dfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJc3RydWN0IGNwc3dfY29t bW9uICpjcHN3ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CiAJaW50IGk7CiAKKwlydG5sX2xvY2so KTsKKwogCWZvciAoaSA9IDA7IGkgPCBjcHN3LT5kYXRhLnNsYXZlczsgaSsrKQogCQlpZiAoY3Bz dy0+c2xhdmVzW2ldLm5kZXYpCiAJCQlpZiAobmV0aWZfcnVubmluZyhjcHN3LT5zbGF2ZXNbaV0u bmRldikpCiAJCQkJY3Bzd19uZG9fc3RvcChjcHN3LT5zbGF2ZXNbaV0ubmRldik7CiAKKwlydG5s X3VubG9jaygpOworCiAJLyogU2VsZWN0IHNsZWVwIHBpbiBzdGF0ZSAqLwogCXBpbmN0cmxfcG1f c2VsZWN0X3NsZWVwX3N0YXRlKGRldik7CiAKLS0gCjIuMjYuMgoKCkZyb20gYWRlNjJhYzg5MTli ZDQzN2Q1ZTcxOWM4ZDQyOWYxYzdkMjk4ZDU4YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogQm9yaXMgU3VraG9saXRrbyA8Ym9yaXMuc3VraG9saXRrb0Bicm9hZGNvbS5jb20+CkRhdGU6 IFR1ZSwgMTkgTWF5IDIwMjAgMTA6MzI6MzcgKzAzMDAKU3ViamVjdDogW1BBVENIIDA4LzMzXSBf X25ldGlmX3JlY2VpdmVfc2tiX2NvcmU6IHBhc3Mgc2tiIGJ5IHJlZmVyZW5jZQoKWyBVcHN0cmVh bSBjb21taXQgYzBiYmJkYzMyZmViZDRmMDM0ZWNiZjNlYTE3ODY1Nzg1YjJjMDY1MiBdCgpfX25l dGlmX3JlY2VpdmVfc2tiX2NvcmUgbWF5IGNoYW5nZSB0aGUgc2tiIHBvaW50ZXIgcGFzc2VkIGlu dG8gaXQgKGUuZy4KaW4gcnhfaGFuZGxlcikuIFRoZSBvcmlnaW5hbCBza2IgbWF5IGJlIGZyZWVk IGFzIGEgcmVzdWx0IG9mIHRoaXMKb3BlcmF0aW9uLgoKVGhlIGNhbGxlcnMgb2YgX19uZXRpZl9y ZWNlaXZlX3NrYl9jb3JlIG1heSBmdXJ0aGVyIHByb2Nlc3Mgb3JpZ2luYWwgc2tiCmJ5IHVzaW5n IHB0X3ByZXYgcG9pbnRlciByZXR1cm5lZCBieSBfX25ldGlmX3JlY2VpdmVfc2tiX2NvcmUgdGh1 cwpsZWFkaW5nIHRvIHVucGxlYXNhbnQgZWZmZWN0cy4KClRoZSBzb2x1dGlvbiBpcyB0byBwYXNz IHNrYiBieSByZWZlcmVuY2UgaW50byBfX25ldGlmX3JlY2VpdmVfc2tiX2NvcmUuCgp2MjogQWRk ZWQgRml4ZXMgdGFnIGFuZCBjb21tZW50IHJlZ2FyZGluZyBwcHRfcHJldiBhbmQgc2tiIGludmFy aWFudC4KCkZpeGVzOiA4OGViMTk0NGUxOGMgKCJuZXQ6IGNvcmU6IHByb3BhZ2F0ZSBTS0IgbGlz dHMgdGhyb3VnaCBwYWNrZXRfdHlwZSBsb29rdXAiKQpTaWduZWQtb2ZmLWJ5OiBCb3JpcyBTdWto b2xpdGtvIDxib3Jpcy5zdWtob2xpdGtvQGJyb2FkY29tLmNvbT4KQWNrZWQtYnk6IEVkd2FyZCBD cmVlIDxlY3JlZUBzb2xhcmZsYXJlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL2Rldi5jIHwgMjAgKysrKysrKysr KysrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2Rldi5jIGIvbmV0L2NvcmUvZGV2LmMKaW5kZXgg YzcwNDdiNDBmNTY5Li44N2ZkNTQyNGUyMDUgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2Rldi5jCisr KyBiL25ldC9jb3JlL2Rldi5jCkBAIC00OTg4LDExICs0OTg4LDEyIEBAIHN0YXRpYyBpbmxpbmUg aW50IG5mX2luZ3Jlc3Moc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHBhY2tldF90eXBlICoq cHRfcHJldiwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBfX25ldGlmX3JlY2VpdmVfc2ti X2NvcmUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgYm9vbCBwZm1lbWFsbG9jLAorc3RhdGljIGludCBf X25ldGlmX3JlY2VpdmVfc2tiX2NvcmUoc3RydWN0IHNrX2J1ZmYgKipwc2tiLCBib29sIHBmbWVt YWxsb2MsCiAJCQkJICAgIHN0cnVjdCBwYWNrZXRfdHlwZSAqKnBwdF9wcmV2KQogewogCXN0cnVj dCBwYWNrZXRfdHlwZSAqcHR5cGUsICpwdF9wcmV2OwogCXJ4X2hhbmRsZXJfZnVuY190ICpyeF9o YW5kbGVyOworCXN0cnVjdCBza19idWZmICpza2IgPSAqcHNrYjsKIAlzdHJ1Y3QgbmV0X2Rldmlj ZSAqb3JpZ19kZXY7CiAJYm9vbCBkZWxpdmVyX2V4YWN0ID0gZmFsc2U7CiAJaW50IHJldCA9IE5F VF9SWF9EUk9QOwpAQCAtNTAyMyw4ICs1MDI0LDEwIEBAIHN0YXRpYyBpbnQgX19uZXRpZl9yZWNl aXZlX3NrYl9jb3JlKHN0cnVjdCBza19idWZmICpza2IsIGJvb2wgcGZtZW1hbGxvYywKIAkJcmV0 MiA9IGRvX3hkcF9nZW5lcmljKHJjdV9kZXJlZmVyZW5jZShza2ItPmRldi0+eGRwX3Byb2cpLCBz a2IpOwogCQlwcmVlbXB0X2VuYWJsZSgpOwogCi0JCWlmIChyZXQyICE9IFhEUF9QQVNTKQotCQkJ cmV0dXJuIE5FVF9SWF9EUk9QOworCQlpZiAocmV0MiAhPSBYRFBfUEFTUykgeworCQkJcmV0ID0g TkVUX1JYX0RST1A7CisJCQlnb3RvIG91dDsKKwkJfQogCQlza2JfcmVzZXRfbWFjX2xlbihza2Ip OwogCX0KIApAQCAtNTE3NCw2ICs1MTc3LDEzIEBAIHN0YXRpYyBpbnQgX19uZXRpZl9yZWNlaXZl X3NrYl9jb3JlKHN0cnVjdCBza19idWZmICpza2IsIGJvb2wgcGZtZW1hbGxvYywKIAl9CiAKIG91 dDoKKwkvKiBUaGUgaW52YXJpYW50IGhlcmUgaXMgdGhhdCBpZiAqcHB0X3ByZXYgaXMgbm90IE5V TEwKKwkgKiB0aGVuIHNrYiBzaG91bGQgYWxzbyBiZSBub24tTlVMTC4KKwkgKgorCSAqIEFwcGFy ZW50bHkgKnBwdF9wcmV2IGFzc2lnbm1lbnQgYWJvdmUgaG9sZHMgdGhpcyBpbnZhcmlhbnQgZHVl IHRvCisJICogc2tiIGRlcmVmZXJlbmNpbmcgbmVhciBpdC4KKwkgKi8KKwkqcHNrYiA9IHNrYjsK IAlyZXR1cm4gcmV0OwogfQogCkBAIC01MTgzLDcgKzUxOTMsNyBAQCBzdGF0aWMgaW50IF9fbmV0 aWZfcmVjZWl2ZV9za2Jfb25lX2NvcmUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgYm9vbCBwZm1lbWFs bG9jKQogCXN0cnVjdCBwYWNrZXRfdHlwZSAqcHRfcHJldiA9IE5VTEw7CiAJaW50IHJldDsKIAot CXJldCA9IF9fbmV0aWZfcmVjZWl2ZV9za2JfY29yZShza2IsIHBmbWVtYWxsb2MsICZwdF9wcmV2 KTsKKwlyZXQgPSBfX25ldGlmX3JlY2VpdmVfc2tiX2NvcmUoJnNrYiwgcGZtZW1hbGxvYywgJnB0 X3ByZXYpOwogCWlmIChwdF9wcmV2KQogCQlyZXQgPSBJTkRJUkVDVF9DQUxMX0lORVQocHRfcHJl di0+ZnVuYywgaXB2Nl9yY3YsIGlwX3Jjdiwgc2tiLAogCQkJCQkgc2tiLT5kZXYsIHB0X3ByZXYs IG9yaWdfZGV2KTsKQEAgLTUyNjEsNyArNTI3MSw3IEBAIHN0YXRpYyB2b2lkIF9fbmV0aWZfcmVj ZWl2ZV9za2JfbGlzdF9jb3JlKHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQsIGJvb2wgcGZtZW1hbGxv CiAJCXN0cnVjdCBwYWNrZXRfdHlwZSAqcHRfcHJldiA9IE5VTEw7CiAKIAkJc2tiX2xpc3RfZGVs X2luaXQoc2tiKTsKLQkJX19uZXRpZl9yZWNlaXZlX3NrYl9jb3JlKHNrYiwgcGZtZW1hbGxvYywg JnB0X3ByZXYpOworCQlfX25ldGlmX3JlY2VpdmVfc2tiX2NvcmUoJnNrYiwgcGZtZW1hbGxvYywg JnB0X3ByZXYpOwogCQlpZiAoIXB0X3ByZXYpCiAJCQljb250aW51ZTsKIAkJaWYgKHB0X2N1cnIg IT0gcHRfcHJldiB8fCBvZF9jdXJyICE9IG9yaWdfZGV2KSB7Ci0tIAoyLjI2LjIKCgpGcm9tIDll MjAwZjI5NzMzNjg4OGVlODllODUxM2QyMWQ4OGU4NDhmZWRiYjggTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IE1hcnRpbiBLYUZhaSBMYXUgPGthZmFpQGZiLmNvbT4KRGF0ZTogTW9uLCAx OCBNYXkgMjAyMCAxNzoxMzozNCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDkvMzNdIG5ldDogaW5l dF9jc2s6IEZpeCBzb19yZXVzZXBvcnQgYmluZC1hZGRyZXNzIGNhY2hlIGluCiB0Yi0+ZmFzdCoK ClsgVXBzdHJlYW0gY29tbWl0IDg4ZDdmY2ZhM2IxZmU2NzBmMDQxMmI5NWJlNzg1YWFmY2E2MzM1 MmIgXQoKVGhlIGNvbW1pdCA2MzdiYzhiYmU2YzAgKCJpbmV0OiByZXNldCB0Yi0+ZmFzdHJldXNl cG9ydCB3aGVuIGFkZGluZyBhIHJldXNlcG9ydCBzayIpCmFkZGVkIGEgYmluZC1hZGRyZXNzIGNh Y2hlIGluIHRiLT5mYXN0Ki4gIFRoZSB0Yi0+ZmFzdCogY2FjaGVzIHRoZSBhZGRyZXNzCm9mIGEg c2sgd2hpY2ggaGFzIHN1Y2Nlc3NmdWxseSBiZWVuIGJpbmRlZCB3aXRoIFNPX1JFVVNFUE9SVCBP Ti4gIFRoZSBpZGVhCmlzIHRvIGF2b2lkIHRoZSBleHBlbnNpdmUgY29uZmxpY3Qgc2VhcmNoIGlu IGluZXRfY3NrX2JpbmRfY29uZmxpY3QoKS4KClRoZXJlIGlzIGFuIGlzc3VlIHdpdGggd2lsZGNh cmQgbWF0Y2hpbmcgd2hlcmUgc2tfcmV1c2Vwb3J0X21hdGNoKCkgc2hvdWxkCmhhdmUgcmV0dXJu ZWQgZmFsc2UgYnV0IGl0IGlzIGN1cnJlbnRseSByZXR1cm5pbmcgdHJ1ZS4gIEl0IGVuZHMgdXAK aGlkaW5nIGJpbmQgY29uZmxpY3QuICBGb3IgZXhhbXBsZSwKCmJpbmQoIls6OjFdOjQ0MyIpOyAv KiB3aXRob3V0IFNPX1JFVVNFUE9SVC4gU3VjY2VlZC4gKi8KYmluZCgiWzo6Ml06NDQzIik7IC8q IHdpdGggICAgU09fUkVVU0VQT1JULiBTdWNjZWVkLiAqLwpiaW5kKCJbOjpdOjQ0MyIpOyAgLyog d2l0aCAgICBTT19SRVVTRVBPUlQuIFN0aWxsIFN1Y2NlZWQgd2hlcmUgaXQgc2hvdWxkbid0ICov CgpUaGUgbGFzdCBiaW5kKCJbOjpdOjQ0MyIpIHdpdGggU09fUkVVU0VQT1JUIG9uIHNob3VsZCBo YXZlIGZhaWxlZCBiZWNhdXNlCml0IHNob3VsZCBoYXZlIGEgY29uZmxpY3Qgd2l0aCB0aGUgdmVy eSBmaXJzdCBiaW5kKCJbOjoxXTo0NDMiKSB3aGljaApoYXMgU09fUkVVU0VQT1JUIG9mZi4gIEhv d2V2ZXIsIHRoZSBhZGRyZXNzICJbOjoyXSIgaXMgY2FjaGVkIGluCnRiLT5mYXN0KiBpbiB0aGUg c2Vjb25kIGJpbmQuIEluIHRoZSBsYXN0IGJpbmQsIHRoZSBza19yZXVzZXBvcnRfbWF0Y2goKQpy ZXR1cm5zIHRydWUgYmVjYXVzZSB0aGUgYmluZGluZyBzaydzIHdpbGRjYXJkIGFkZHIgIls6Ol0i IG1hdGNoZXMgd2l0aAp0aGUgIls6OjJdIiBjYWNoZWQgaW4gdGItPmZhc3QqLgoKVGhlIGNvcnJl Y3QgYmluZCBjb25mbGljdCBpcyByZXBvcnRlZCBieSByZW1vdmluZyB0aGUgc2Vjb25kCmJpbmQg c3VjaCB0aGF0IHRiLT5mYXN0KiBjYWNoZSBpcyBub3QgaW52b2x2ZWQgYW5kIGZvcmNlcyB0aGUK YmluZCgiWzo6XTo0NDMiKSB0byBnbyB0aHJvdWdoIHRoZSBpbmV0X2Nza19iaW5kX2NvbmZsaWN0 KCk6CgpiaW5kKCJbOjoxXTo0NDMiKTsgLyogd2l0aG91dCBTT19SRVVTRVBPUlQuIFN1Y2NlZWQu ICovCmJpbmQoIls6Ol06NDQzIik7ICAvKiB3aXRoICAgIFNPX1JFVVNFUE9SVC4gLUVBRERSSU5V U0UgKi8KClRoZSBleHBlY3RlZCBiZWhhdmlvciBmb3Igc2tfcmV1c2Vwb3J0X21hdGNoKCkgaXMs IGl0IHNob3VsZCBvbmx5IGFsbG93CnRoZSAiY2FjaGVkIiB0Yi0+ZmFzdCogYWRkcmVzcyB0byBi ZSB1c2VkIGFzIGEgd2lsZGNhcmQgbWF0Y2ggYnV0IG5vdAp0aGUgYWRkcmVzcyBvZiB0aGUgYmlu ZGluZyBzay4gIFRvIGRvIHRoYXQsIHRoZSBjdXJyZW50CiJib29sIG1hdGNoX3dpbGRjYXJkIiBh cmcgaXMgc3BsaXQgaW50bwoiYm9vbCBtYXRjaF9zazFfd2lsZGNhcmQiIGFuZCAiYm9vbCBtYXRj aF9zazJfd2lsZGNhcmQiLgoKVGhpcyBjaGFuZ2Ugb25seSBhZmZlY3RzIHRoZSBza19yZXVzZXBv cnRfbWF0Y2goKSB3aGljaCBpcyBvbmx5CnVzZWQgYnkgaW5ldF9jc2sgKGUuZy4gVENQKS4KVGhl IG90aGVyIHVzZSBjYXNlcyBhcmUgY2FsbGluZyBpbmV0X3Jjdl9zYWRkcl9lcXVhbCgpIGFuZAp0 aGlzIHBhdGNoIG1ha2VzIGl0IHBhc3MgdGhlIHNhbWUgIm1hdGNoX3dpbGRjYXJkIiBhcmcgdHdp Y2UgdG8KdGhlICJpcHZbNDZdX3Jjdl9zYWRkcl9lcXVhbCguLi4sIG1hdGNoX3dpbGRjYXJkLCBt YXRjaF93aWxkY2FyZCkiLgoKQ2M6IEpvc2VmIEJhY2lrIDxqYmFjaWtAZmIuY29tPgpGaXhlczog NjM3YmM4YmJlNmMwICgiaW5ldDogcmVzZXQgdGItPmZhc3RyZXVzZXBvcnQgd2hlbiBhZGRpbmcg YSByZXVzZXBvcnQgc2siKQpTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS2FGYWkgTGF1IDxrYWZhaUBm Yi5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBuZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jIHwgNDMgKysrKysrKysrKysr KysrKysrLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjQgaW5zZXJ0aW9ucygrKSwg MTkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3Nv Y2suYyBiL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMKaW5kZXggZDU0NWZiOTlhOGEx Li43NmFmZTkzOTA0ZDUgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2Nr LmMKKysrIGIvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYwpAQCAtMjQsMTcgKzI0LDE5 IEBACiAjaW5jbHVkZSA8bmV0L2FkZHJjb25mLmg+CiAKICNpZiBJU19FTkFCTEVEKENPTkZJR19J UFY2KQotLyogbWF0Y2hfd2lsZGNhcmQgPT0gdHJ1ZTogIElQVjZfQUREUl9BTlkgZXF1YWxzIHRv IGFueSBJUHY2IGFkZHJlc3NlcyBpZiBJUHY2Ci0gKiAgICAgICAgICAgICAgICAgICAgICAgICAg b25seSwgYW5kIGFueSBJUHY0IGFkZHJlc3NlcyBpZiBub3QgSVB2NiBvbmx5Ci0gKiBtYXRjaF93 aWxkY2FyZCA9PSBmYWxzZTogYWRkcmVzc2VzIG11c3QgYmUgZXhhY3RseSB0aGUgc2FtZSwgaS5l LgotICogICAgICAgICAgICAgICAgICAgICAgICAgIElQVjZfQUREUl9BTlkgb25seSBlcXVhbHMg dG8gSVBWNl9BRERSX0FOWSwKLSAqICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgMC4wLjAu MCBlcXVhbHMgdG8gMC4wLjAuMCBvbmx5CisvKiBtYXRjaF9zaypfd2lsZGNhcmQgPT0gdHJ1ZTog IElQVjZfQUREUl9BTlkgZXF1YWxzIHRvIGFueSBJUHY2IGFkZHJlc3NlcworICoJCQkJaWYgSVB2 NiBvbmx5LCBhbmQgYW55IElQdjQgYWRkcmVzc2VzCisgKgkJCQlpZiBub3QgSVB2NiBvbmx5Cisg KiBtYXRjaF9zaypfd2lsZGNhcmQgPT0gZmFsc2U6IGFkZHJlc3NlcyBtdXN0IGJlIGV4YWN0bHkg dGhlIHNhbWUsIGkuZS4KKyAqCQkJCUlQVjZfQUREUl9BTlkgb25seSBlcXVhbHMgdG8gSVBWNl9B RERSX0FOWSwKKyAqCQkJCWFuZCAwLjAuMC4wIGVxdWFscyB0byAwLjAuMC4wIG9ubHkKICAqLwog c3RhdGljIGJvb2wgaXB2Nl9yY3Zfc2FkZHJfZXF1YWwoY29uc3Qgc3RydWN0IGluNl9hZGRyICpz azFfcmN2X3NhZGRyNiwKIAkJCQkgY29uc3Qgc3RydWN0IGluNl9hZGRyICpzazJfcmN2X3NhZGRy NiwKIAkJCQkgX19iZTMyIHNrMV9yY3Zfc2FkZHIsIF9fYmUzMiBzazJfcmN2X3NhZGRyLAogCQkJ CSBib29sIHNrMV9pcHY2b25seSwgYm9vbCBzazJfaXB2Nm9ubHksCi0JCQkJIGJvb2wgbWF0Y2hf d2lsZGNhcmQpCisJCQkJIGJvb2wgbWF0Y2hfc2sxX3dpbGRjYXJkLAorCQkJCSBib29sIG1hdGNo X3NrMl93aWxkY2FyZCkKIHsKIAlpbnQgYWRkcl90eXBlID0gaXB2Nl9hZGRyX3R5cGUoc2sxX3Jj dl9zYWRkcjYpOwogCWludCBhZGRyX3R5cGUyID0gc2syX3Jjdl9zYWRkcjYgPyBpcHY2X2FkZHJf dHlwZShzazJfcmN2X3NhZGRyNikgOiBJUFY2X0FERFJfTUFQUEVEOwpAQCAtNDQsOCArNDYsOCBA QCBzdGF0aWMgYm9vbCBpcHY2X3Jjdl9zYWRkcl9lcXVhbChjb25zdCBzdHJ1Y3QgaW42X2FkZHIg KnNrMV9yY3Zfc2FkZHI2LAogCQlpZiAoIXNrMl9pcHY2b25seSkgewogCQkJaWYgKHNrMV9yY3Zf c2FkZHIgPT0gc2syX3Jjdl9zYWRkcikKIAkJCQlyZXR1cm4gdHJ1ZTsKLQkJCWlmICghc2sxX3Jj dl9zYWRkciB8fCAhc2syX3Jjdl9zYWRkcikKLQkJCQlyZXR1cm4gbWF0Y2hfd2lsZGNhcmQ7CisJ CQlyZXR1cm4gKG1hdGNoX3NrMV93aWxkY2FyZCAmJiAhc2sxX3Jjdl9zYWRkcikgfHwKKwkJCQko bWF0Y2hfc2syX3dpbGRjYXJkICYmICFzazJfcmN2X3NhZGRyKTsKIAkJfQogCQlyZXR1cm4gZmFs c2U7CiAJfQpAQCAtNTMsMTEgKzU1LDExIEBAIHN0YXRpYyBib29sIGlwdjZfcmN2X3NhZGRyX2Vx dWFsKGNvbnN0IHN0cnVjdCBpbjZfYWRkciAqc2sxX3Jjdl9zYWRkcjYsCiAJaWYgKGFkZHJfdHlw ZSA9PSBJUFY2X0FERFJfQU5ZICYmIGFkZHJfdHlwZTIgPT0gSVBWNl9BRERSX0FOWSkKIAkJcmV0 dXJuIHRydWU7CiAKLQlpZiAoYWRkcl90eXBlMiA9PSBJUFY2X0FERFJfQU5ZICYmIG1hdGNoX3dp bGRjYXJkICYmCisJaWYgKGFkZHJfdHlwZTIgPT0gSVBWNl9BRERSX0FOWSAmJiBtYXRjaF9zazJf d2lsZGNhcmQgJiYKIAkgICAgIShzazJfaXB2Nm9ubHkgJiYgYWRkcl90eXBlID09IElQVjZfQURE Ul9NQVBQRUQpKQogCQlyZXR1cm4gdHJ1ZTsKIAotCWlmIChhZGRyX3R5cGUgPT0gSVBWNl9BRERS X0FOWSAmJiBtYXRjaF93aWxkY2FyZCAmJgorCWlmIChhZGRyX3R5cGUgPT0gSVBWNl9BRERSX0FO WSAmJiBtYXRjaF9zazFfd2lsZGNhcmQgJiYKIAkgICAgIShzazFfaXB2Nm9ubHkgJiYgYWRkcl90 eXBlMiA9PSBJUFY2X0FERFJfTUFQUEVEKSkKIAkJcmV0dXJuIHRydWU7CiAKQEAgLTY5LDE4ICs3 MSwxOSBAQCBzdGF0aWMgYm9vbCBpcHY2X3Jjdl9zYWRkcl9lcXVhbChjb25zdCBzdHJ1Y3QgaW42 X2FkZHIgKnNrMV9yY3Zfc2FkZHI2LAogfQogI2VuZGlmCiAKLS8qIG1hdGNoX3dpbGRjYXJkID09 IHRydWU6ICAwLjAuMC4wIGVxdWFscyB0byBhbnkgSVB2NCBhZGRyZXNzZXMKLSAqIG1hdGNoX3dp bGRjYXJkID09IGZhbHNlOiBhZGRyZXNzZXMgbXVzdCBiZSBleGFjdGx5IHRoZSBzYW1lLCBpLmUu Ci0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgMC4wLjAuMCBvbmx5IGVxdWFscyB0byAwLjAu MC4wCisvKiBtYXRjaF9zaypfd2lsZGNhcmQgPT0gdHJ1ZTogIDAuMC4wLjAgZXF1YWxzIHRvIGFu eSBJUHY0IGFkZHJlc3NlcworICogbWF0Y2hfc2sqX3dpbGRjYXJkID09IGZhbHNlOiBhZGRyZXNz ZXMgbXVzdCBiZSBleGFjdGx5IHRoZSBzYW1lLCBpLmUuCisgKgkJCQkwLjAuMC4wIG9ubHkgZXF1 YWxzIHRvIDAuMC4wLjAKICAqLwogc3RhdGljIGJvb2wgaXB2NF9yY3Zfc2FkZHJfZXF1YWwoX19i ZTMyIHNrMV9yY3Zfc2FkZHIsIF9fYmUzMiBzazJfcmN2X3NhZGRyLAotCQkJCSBib29sIHNrMl9p cHY2b25seSwgYm9vbCBtYXRjaF93aWxkY2FyZCkKKwkJCQkgYm9vbCBzazJfaXB2Nm9ubHksIGJv b2wgbWF0Y2hfc2sxX3dpbGRjYXJkLAorCQkJCSBib29sIG1hdGNoX3NrMl93aWxkY2FyZCkKIHsK IAlpZiAoIXNrMl9pcHY2b25seSkgewogCQlpZiAoc2sxX3Jjdl9zYWRkciA9PSBzazJfcmN2X3Nh ZGRyKQogCQkJcmV0dXJuIHRydWU7Ci0JCWlmICghc2sxX3Jjdl9zYWRkciB8fCAhc2syX3Jjdl9z YWRkcikKLQkJCXJldHVybiBtYXRjaF93aWxkY2FyZDsKKwkJcmV0dXJuIChtYXRjaF9zazFfd2ls ZGNhcmQgJiYgIXNrMV9yY3Zfc2FkZHIpIHx8CisJCQkobWF0Y2hfc2syX3dpbGRjYXJkICYmICFz azJfcmN2X3NhZGRyKTsKIAl9CiAJcmV0dXJuIGZhbHNlOwogfQpAQCAtOTYsMTAgKzk5LDEyIEBA IGJvb2wgaW5ldF9yY3Zfc2FkZHJfZXF1YWwoY29uc3Qgc3RydWN0IHNvY2sgKnNrLCBjb25zdCBz dHJ1Y3Qgc29jayAqc2syLAogCQkJCQkgICAgc2syLT5za19yY3Zfc2FkZHIsCiAJCQkJCSAgICBp cHY2X29ubHlfc29jayhzayksCiAJCQkJCSAgICBpcHY2X29ubHlfc29jayhzazIpLAorCQkJCQkg ICAgbWF0Y2hfd2lsZGNhcmQsCiAJCQkJCSAgICBtYXRjaF93aWxkY2FyZCk7CiAjZW5kaWYKIAly ZXR1cm4gaXB2NF9yY3Zfc2FkZHJfZXF1YWwoc2stPnNrX3Jjdl9zYWRkciwgc2syLT5za19yY3Zf c2FkZHIsCi0JCQkJICAgIGlwdjZfb25seV9zb2NrKHNrMiksIG1hdGNoX3dpbGRjYXJkKTsKKwkJ CQkgICAgaXB2Nl9vbmx5X3NvY2soc2syKSwgbWF0Y2hfd2lsZGNhcmQsCisJCQkJICAgIG1hdGNo X3dpbGRjYXJkKTsKIH0KIEVYUE9SVF9TWU1CT0woaW5ldF9yY3Zfc2FkZHJfZXF1YWwpOwogCkBA IC0yNzMsMTAgKzI3OCwxMCBAQCBzdGF0aWMgaW5saW5lIGludCBza19yZXVzZXBvcnRfbWF0Y2go c3RydWN0IGluZXRfYmluZF9idWNrZXQgKnRiLAogCQkJCQkgICAgdGItPmZhc3RfcmN2X3NhZGRy LAogCQkJCQkgICAgc2stPnNrX3Jjdl9zYWRkciwKIAkJCQkJICAgIHRiLT5mYXN0X2lwdjZfb25s eSwKLQkJCQkJICAgIGlwdjZfb25seV9zb2NrKHNrKSwgdHJ1ZSk7CisJCQkJCSAgICBpcHY2X29u bHlfc29jayhzayksIHRydWUsIGZhbHNlKTsKICNlbmRpZgogCXJldHVybiBpcHY0X3Jjdl9zYWRk cl9lcXVhbCh0Yi0+ZmFzdF9yY3Zfc2FkZHIsIHNrLT5za19yY3Zfc2FkZHIsCi0JCQkJICAgIGlw djZfb25seV9zb2NrKHNrKSwgdHJ1ZSk7CisJCQkJICAgIGlwdjZfb25seV9zb2NrKHNrKSwgdHJ1 ZSwgZmFsc2UpOwogfQogCiAvKiBPYnRhaW4gYSByZWZlcmVuY2UgdG8gYSBsb2NhbCBwb3J0IGZv ciB0aGUgZ2l2ZW4gc29jaywKLS0gCjIuMjYuMgoKCkZyb20gYmZlZDQ1NDNiMzU3OWNlOWRmMGRm MTJmYTliZTI3MDNhYTExOGM1YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVmFkaW0g RmVkb3JlbmtvIDx2ZmVkb3JlbmtvQG5vdmVrLnJ1PgpEYXRlOiBXZWQsIDIwIE1heSAyMDIwIDEx OjUwOjQ4ICswMzAwClN1YmplY3Q6IFtQQVRDSCAxMC8zM10gbmV0OiBpcGlwOiBmaXggd3Jvbmcg YWRkcmVzcyBmYW1pbHkgaW4gaW5pdCBlcnJvciBwYXRoCgpbIFVwc3RyZWFtIGNvbW1pdCA1N2Vi YzhmMDg1MDRmMTc2ZWIwZjI1YjNlMGZkZTUxN2RlYzYxYTRmIF0KCkluIGNhc2Ugb2YgZXJyb3Ig d2l0aCBNUExTIHN1cHBvcnQgdGhlIGNvZGUgaXMgbWlzdXNpbmcgQUZfSU5FVAppbnN0ZWFkIG9m IEFGX01QTFMuCgpGaXhlczogMWI2OWU3ZTZjNGRhICgiaXBpcDogc3VwcG9ydCBNUExTIG92ZXIg SVB2NCIpClNpZ25lZC1vZmYtYnk6IFZhZGltIEZlZG9yZW5rbyA8dmZlZG9yZW5rb0Bub3Zlay5y dT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIG5ldC9pcHY0L2lwaXAuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2lwaXAuYyBiL25ldC9pcHY0 L2lwaXAuYwppbmRleCAyZjAxY2Y2ZmEwZGUuLjY3ODU3NWFkYWYzYiAxMDA2NDQKLS0tIGEvbmV0 L2lwdjQvaXBpcC5jCisrKyBiL25ldC9pcHY0L2lwaXAuYwpAQCAtNjk4LDcgKzY5OCw3IEBAIHN0 YXRpYyBpbnQgX19pbml0IGlwaXBfaW5pdCh2b2lkKQogCiBydG5sX2xpbmtfZmFpbGVkOgogI2lm IElTX0VOQUJMRUQoQ09ORklHX01QTFMpCi0JeGZybTRfdHVubmVsX2RlcmVnaXN0ZXIoJm1wbHNp cF9oYW5kbGVyLCBBRl9JTkVUKTsKKwl4ZnJtNF90dW5uZWxfZGVyZWdpc3RlcigmbXBsc2lwX2hh bmRsZXIsIEFGX01QTFMpOwogeGZybV90dW5uZWxfbXBsc2lwX2ZhaWxlZDoKIAogI2VuZGlmCi0t IAoyLjI2LjIKCgpGcm9tIGFmZDhhYjRiMDYwNzBlMjQ4ODc5N2ExYjFkYmE3Y2QzZmRhZDg4ZjEg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1vc2hlIFNoZW1lc2ggPG1vc2hlQG1lbGxh bm94LmNvbT4KRGF0ZTogRnJpLCAyNyBEZWMgMjAxOSAwNzowMTo1MyArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMTEvMzNdIG5ldC9tbHg1OiBBZGQgY29tbWFuZCBlbnRyeSBoYW5kbGluZyBjb21wbGV0 aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCAxN2QwMGU4MzlkM2I1OTJkYTk2NTljMTk3N2Q0NWY4NWI3 N2Y5ODZhIF0KCldoZW4gRlcgcmVzcG9uc2UgdG8gY29tbWFuZHMgaXMgdmVyeSBzbG93IGFuZCBh bGwgY29tbWFuZCBlbnRyaWVzIGluCnVzZSBhcmUgd2FpdGluZyBmb3IgY29tcGxldGlvbiB3ZSBj YW4gaGF2ZSBhIHJhY2Ugd2hlcmUgY29tbWFuZHMgY2FuIGdldAp0aW1lb3V0IGJlZm9yZSB0aGV5 IGdldCBvdXQgb2YgdGhlIHF1ZXVlIGFuZCBoYW5kbGVkLiBUaW1lb3V0CmNvbXBsZXRpb24gb24g dW5pbml0aWFsaXplZCBjb21tYW5kIHdpbGwgY2F1c2UgcmVsZWFzaW5nIGNvbW1hbmQncwpidWZm ZXJzIGJlZm9yZSBhY2Nlc3NpbmcgaXQgZm9yIGluaXRpYWxpemF0aW9uIGFuZCB0aGVuIHdlIHdp bGwgZ2V0IE5VTEwKcG9pbnRlciBleGNlcHRpb24gd2hpbGUgdHJ5aW5nIGFjY2VzcyBpdC4gSXQg bWF5IGFsc28gY2F1c2UgcmVsZWFzaW5nCmJ1ZmZlcnMgb2YgYW5vdGhlciBjb21tYW5kIHNpbmNl IHdlIG1heSBoYXZlIHRpbWVvdXQgY29tcGxldGlvbiBiZWZvcmUKZXZlbiBhbGxvY2F0aW5nIGVu dHJ5IGluZGV4IGZvciB0aGlzIGNvbW1hbmQuCkFkZCBlbnRyeSBoYW5kbGluZyBjb21wbGV0aW9u IHRvIGF2b2lkIHRoaXMgcmFjZS4KCkZpeGVzOiBlMTI2YmE5N2RiYTkgKCJtbHg1OiBBZGQgZHJp dmVyIGZvciBNZWxsYW5veCBDb25uZWN0LUlCIGFkYXB0ZXJzIikKU2lnbmVkLW9mZi1ieTogTW9z aGUgU2hlbWVzaCA8bW9zaGVAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBFcmFuIEJlbiBF bGlzaGEgPGVyYW5iZUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVk IDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9jbWQuYyB8IDE0ICsrKysrKysrKysrKysrCiBpbmNsdWRlL2xpbnV4L21seDUv ZHJpdmVyLmggICAgICAgICAgICAgICAgICAgfCAgMSArCiAyIGZpbGVzIGNoYW5nZWQsIDE1IGlu c2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvY21kLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUv Y21kLmMKaW5kZXggY2VkZTViZGZkNTk4Li5kNjk1Yjc1YmMwYWYgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYworKysgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMKQEAgLTg2MSw2ICs4NjEsNyBAQCBz dGF0aWMgdm9pZCBjbWRfd29ya19oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAlp bnQgYWxsb2NfcmV0OwogCWludCBjbWRfbW9kZTsKIAorCWNvbXBsZXRlKCZlbnQtPmhhbmRsaW5n KTsKIAlzZW0gPSBlbnQtPnBhZ2VfcXVldWUgPyAmY21kLT5wYWdlc19zZW0gOiAmY21kLT5zZW07 CiAJZG93bihzZW0pOwogCWlmICghZW50LT5wYWdlX3F1ZXVlKSB7CkBAIC05NzgsNiArOTc5LDEx IEBAIHN0YXRpYyBpbnQgd2FpdF9mdW5jKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVj dCBtbHg1X2NtZF93b3JrX2VudCAqZW50KQogCXN0cnVjdCBtbHg1X2NtZCAqY21kID0gJmRldi0+ Y21kOwogCWludCBlcnI7CiAKKwlpZiAoIXdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmZW50 LT5oYW5kbGluZywgdGltZW91dCkgJiYKKwkgICAgY2FuY2VsX3dvcmtfc3luYygmZW50LT53b3Jr KSkgeworCQllbnQtPnJldCA9IC1FQ0FOQ0VMRUQ7CisJCWdvdG8gb3V0X2VycjsKKwl9CiAJaWYg KGNtZC0+bW9kZSA9PSBDTURfTU9ERV9QT0xMSU5HIHx8IGVudC0+cG9sbGluZykgewogCQl3YWl0 X2Zvcl9jb21wbGV0aW9uKCZlbnQtPmRvbmUpOwogCX0gZWxzZSBpZiAoIXdhaXRfZm9yX2NvbXBs ZXRpb25fdGltZW91dCgmZW50LT5kb25lLCB0aW1lb3V0KSkgewpAQCAtOTg1LDEyICs5OTEsMTcg QEAgc3RhdGljIGludCB3YWl0X2Z1bmMoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0 IG1seDVfY21kX3dvcmtfZW50ICplbnQpCiAJCW1seDVfY21kX2NvbXBfaGFuZGxlcihkZXYsIDFV TCA8PCBlbnQtPmlkeCwgdHJ1ZSk7CiAJfQogCitvdXRfZXJyOgogCWVyciA9IGVudC0+cmV0Owog CiAJaWYgKGVyciA9PSAtRVRJTUVET1VUKSB7CiAJCW1seDVfY29yZV93YXJuKGRldiwgIiVzKDB4 JXgpIHRpbWVvdXQuIFdpbGwgY2F1c2UgYSBsZWFrIG9mIGEgY29tbWFuZCByZXNvdXJjZVxuIiwK IAkJCSAgICAgICBtbHg1X2NvbW1hbmRfc3RyKG1zZ190b19vcGNvZGUoZW50LT5pbikpLAogCQkJ ICAgICAgIG1zZ190b19vcGNvZGUoZW50LT5pbikpOworCX0gZWxzZSBpZiAoZXJyID09IC1FQ0FO Q0VMRUQpIHsKKwkJbWx4NV9jb3JlX3dhcm4oZGV2LCAiJXMoMHgleCkgY2FuY2VsZWQgb24gb3V0 IG9mIHF1ZXVlIHRpbWVvdXQuXG4iLAorCQkJICAgICAgIG1seDVfY29tbWFuZF9zdHIobXNnX3Rv X29wY29kZShlbnQtPmluKSksCisJCQkgICAgICAgbXNnX3RvX29wY29kZShlbnQtPmluKSk7CiAJ fQogCW1seDVfY29yZV9kYmcoZGV2LCAiZXJyICVkLCBkZWxpdmVyeSBzdGF0dXMgJXMoJWQpXG4i LAogCQkgICAgICBlcnIsIGRlbGl2X3N0YXR1c190b19zdHIoZW50LT5zdGF0dXMpLCBlbnQtPnN0 YXR1cyk7CkBAIC0xMDI2LDYgKzEwMzcsNyBAQCBzdGF0aWMgaW50IG1seDVfY21kX2ludm9rZShz dHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9jbWRfbXNnICppbiwKIAllbnQt PnRva2VuID0gdG9rZW47CiAJZW50LT5wb2xsaW5nID0gZm9yY2VfcG9sbGluZzsKIAorCWluaXRf Y29tcGxldGlvbigmZW50LT5oYW5kbGluZyk7CiAJaWYgKCFjYWxsYmFjaykKIAkJaW5pdF9jb21w bGV0aW9uKCZlbnQtPmRvbmUpOwogCkBAIC0xMDQ1LDYgKzEwNTcsOCBAQCBzdGF0aWMgaW50IG1s eDVfY21kX2ludm9rZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9jbWRf bXNnICppbiwKIAllcnIgPSB3YWl0X2Z1bmMoZGV2LCBlbnQpOwogCWlmIChlcnIgPT0gLUVUSU1F RE9VVCkKIAkJZ290byBvdXQ7CisJaWYgKGVyciA9PSAtRUNBTkNFTEVEKQorCQlnb3RvIG91dF9m cmVlOwogCiAJZHMgPSBlbnQtPnRzMiAtIGVudC0+dHMxOwogCW9wID0gTUxYNV9HRVQobWJveF9p biwgaW4tPmZpcnN0LmRhdGEsIG9wY29kZSk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21s eDUvZHJpdmVyLmggYi9pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmgKaW5kZXggMjc3YTUxZDNl YzQwLi5iNTk2MzUzYTNhMTIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbWx4NS9kcml2ZXIu aAorKysgYi9pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmgKQEAgLTc2MSw2ICs3NjEsNyBAQCBz dHJ1Y3QgbWx4NV9jbWRfd29ya19lbnQgewogCXN0cnVjdCBkZWxheWVkX3dvcmsJY2JfdGltZW91 dF93b3JrOwogCXZvaWQJCSAgICAgICAqY29udGV4dDsKIAlpbnQJCQlpZHg7CisJc3RydWN0IGNv bXBsZXRpb24JaGFuZGxpbmc7CiAJc3RydWN0IGNvbXBsZXRpb24JZG9uZTsKIAlzdHJ1Y3QgbWx4 NV9jbWQgICAgICAgICpjbWQ7CiAJc3RydWN0IHdvcmtfc3RydWN0CXdvcms7Ci0tIAoyLjI2LjIK CgpGcm9tIDMzMzkwZDMzMTk0NjE5YmUxYTFjZDNkMTc2MGRhN2ZmYjIwZjNjNDggTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IFJ1c3NlbGwgS2luZyA8cm1rK2tlcm5lbEBhcm1saW51eC5v cmcudWs+CkRhdGU6IFdlZCwgMjAgTWF5IDIwMjAgMTI6MjY6MzUgKzAxMDAKU3ViamVjdDogW1BB VENIIDEyLzMzXSBuZXQ6IG12cHAyOiBmaXggUlggaGFzaGluZyBmb3Igbm9uLTEwRyBwb3J0cwoK WyBVcHN0cmVhbSBjb21taXQgMzEzOGEwN2NlMjE5YWNkZTRjMGQ3ZWEwYjZkNTRiYTY0MTUzMzI4 YiBdCgpXaGVuIHJ4aGFzaCBpcyBlbmFibGVkIG9uIGFueSBldGhlcm5ldCBwb3J0IGV4Y2VwdCB0 aGUgZmlyc3QgaW4gZWFjaCBDUApibG9jaywgdHJhZmZpYyBmbG93IGlzIHByZXZlbnRlZC4gIFRo ZSBhbmFseXNpcyBpcyBiZWxvdzoKCkkndmUgYmVlbiBpbnZlc3RpZ2F0aW5nIHRoaXMgYWZ0ZXJu b29uLCBhbmQgd2hhdCBJJ3ZlIGZvdW5kLCBjb21wYXJpbmcKYSBrZXJuZWwgd2l0aG91dCA4OTU1 ODZkNWRjMzIgYW5kIHdpdGggODk1NTg2ZDVkYzMyIGFwcGxpZWQgaXM6CgotIFRoZSB0YWJsZSBw cm9ncmFtbWVkIGludG8gdGhlIGhhcmR3YXJlIHZpYSBtdnBwMjJfcnNzX2ZpbGxfdGFibGUoKQog IGFwcGVhcnMgdG8gYmUgaWRlbnRpY2FsIHdpdGggb3Igd2l0aG91dCB0aGUgY29tbWl0LgoKLSBX aGVuIHJ4aGFzaCBpcyBlbmFibGVkIG9uIGV0aDIsIG12cHAyX3Jzc19wb3J0X2MyX2VuYWJsZSgp IHJlcG9ydHMKICB0aGF0IGMyLmF0dHJbMF0gYW5kIGMyLmF0dHJbMl0gYXJlIHdyaXR0ZW4gYmFj ayBjb250YWluaW5nOgoKICAgLSB3aXRoIDg5NTU4NmQ1ZGMzMiwgZmFpbGluZzogICAgMDAyMDAw MDAgNDAwMDAwMDAKICAgLSB3aXRob3V0IDg5NTU4NmQ1ZGMzMiwgd29ya2luZzogMDQwMDAwMDAg NDAwMDAwMDAKCi0gV2hlbiBkaXNhYmxpbmcgcnhoYXNoLCBjMi5hdHRyWzBdIGFuZCBjMi5hdHRy WzJdIGFyZSB3cml0dGVuIGJhY2sgYXM6CgogICAwNDAwMDAwMCAwMDAwMDAwMAoKVGhlIHNlY29u ZCB2YWx1ZSByZXByZXNlbnRzIHRoZSBNVlBQMjJfQ0xTX0MyX0FUVFIyX1JTU19FTiBiaXQsIHRo ZQpmaXJzdCB2YWx1ZSBpcyB0aGUgcXVldWUgbnVtYmVyLCB3aGljaCBjb21wcmlzZXMgdHdvIGZp ZWxkcy4gVGhlIGhpZ2gKNSBiaXRzIGFyZSAyNDoyOSBhbmQgdGhlIGxvdyB0aHJlZSBhcmUgMjE6 MjMgaW5jbHVzaXZlLiBUaGlzIGNvbWVzCmZyb206CgogICAgICAgYzIuYXR0clswXSA9IE1WUFAy Ml9DTFNfQzJfQVRUUjBfUUhJR0gocWgpIHwKICAgICAgICAgICAgICAgICAgICAgTVZQUDIyX0NM U19DMl9BVFRSMF9RTE9XKHFsKTsKClNvLCB0aGUgd29ya2luZyBjYXNlIGdpdmVzIGV0aDIgYSBx dWV1ZSBpZCBvZiA0LjAsIG9yIDMyIGFzIHBlcgpwb3J0LT5maXJzdF9yeHEsIGFuZCB0aGUgbm9u LXdvcmtpbmcgY2FzZSBhIHF1ZXVlIGlkIG9mIDAuMSwgb3IgMS4KVGhlIGFsbG9jYXRpb24gb2Yg cXVldWUgSURzIHNlZW1zIHRvIGJlIGluIG12cHAyX3BvcnRfcHJvYmUoKToKCiAgICAgICAgaWYg KHByaXYtPmh3X3ZlcnNpb24gPT0gTVZQUDIxKQogICAgICAgICAgICAgICAgcG9ydC0+Zmlyc3Rf cnhxID0gcG9ydC0+aWQgKiBwb3J0LT5ucnhxczsKICAgICAgICBlbHNlCiAgICAgICAgICAgICAg ICBwb3J0LT5maXJzdF9yeHEgPSBwb3J0LT5pZCAqIHByaXYtPm1heF9wb3J0X3J4cXM7CgpXaGVy ZToKCiAgICAgICAgaWYgKHByaXYtPmh3X3ZlcnNpb24gPT0gTVZQUDIxKQogICAgICAgICAgICAg ICAgcHJpdi0+bWF4X3BvcnRfcnhxcyA9IDg7CiAgICAgICAgZWxzZQogICAgICAgICAgICAgICAg cHJpdi0+bWF4X3BvcnRfcnhxcyA9IDMyOwoKTWFraW5nIHRoZSBwb3J0IDAgKGV0aDAgLyBldGgx KSBoYXZlIHBvcnQtPmZpcnN0X3J4cSA9IDAsIGFuZCBwb3J0IDEKKGV0aDIpIGJlIDMyLiBJdCBz ZWVtcyB0aGUgaWRlYSBpcyB0aGF0IHRoZSBmaXJzdCAzMiBxdWV1ZXMgYmVsb25nIHRvCnBvcnQg MCwgdGhlIHNlY29uZCAzMiBxdWV1ZXMgYmVsb25nIHRvIHBvcnQgMSwgZXRjLgoKbXZwcDJfcnNz X3BvcnRfYzJfZW5hYmxlKCkgZ2V0cyB0aGUgcXVldWUgbnVtYmVyIGZyb20gaXQncyBwYXJhbWV0 ZXIsCidjdHgnLCB3aGljaCBjb21lcyBmcm9tIG12cHAyMl9yc3NfY3R4KHBvcnQsIDApLiBUaGlz IHJldHVybnMKcG9ydC0+cnNzX2N0eFswXS4KCm12cHAyMl9yc3NfY29udGV4dF9jcmVhdGUoKSBp cyByZXNwb25zaWJsZSBmb3IgYWxsb2NhdGluZyB0aGF0LCB3aGljaAppdCBkb2VzIGJ5IGxvb2tp bmcgZm9yIGFuIHVuYWxsb2NhdGVkIHByaXYtPnJzc190YWJsZXNbXSBwb2ludGVyLiBUaGlzCnRh YmxlIGlzIHNoYXJlZCBhbW9uZ3N0IGFsbCBwb3J0cyBvbiB0aGUgQ1Agc2lsaWNvbi4KCldoZW4g d2Ugd3JpdGUgdGhlIHRhYmxlcyBpbiBtdnBwMjJfcnNzX2ZpbGxfdGFibGUoKSwgdGhlIFJTUyB0 YWJsZQplbnRyeSBpcyBkZWZpbmVkIGJ5OgoKICAgICAgICAgICAgICAgIHUzMiBzZWwgPSBNVlBQ MjJfUlNTX0lOREVYX1RBQkxFKHJzc19jdHgpIHwKICAgICAgICAgICAgICAgICAgICAgICAgICBN VlBQMjJfUlNTX0lOREVYX1RBQkxFX0VOVFJZKGkpOwoKd2hlcmUgcnNzX2N0eCBpcyB0aGUgY29u dGV4dCBJRCAocXVldWUgbnVtYmVyKSBhbmQgaSBpcyB0aGUgaW5kZXggaW4KdGhlIHRhYmxlLgoK SWYgd2UgbG9vayBhdCB3aGF0IGlzIHdyaXR0ZW46CgotIFRoZSBmaXJzdCB0YWJsZSB0byBiZSB3 cml0dGVuIGhhcyAic2VsIiB2YWx1ZXMgb2YgMDAwMDAwMDAuLjAwMDAwMDFmLAogIGNvbnRhaW5p bmcgdmFsdWVzIDAuLjMuIFRoaXMgYXBwZWFycyB0byBiZSBmb3IgZXRoMS4gVGhpcyBpcyB0YWJs ZSAwLAogIFJYIHF1ZXVlIG51bWJlciAwLgotIFRoZSBzZWNvbmQgdGFibGUgaGFzICJzZWwiIHZh bHVlcyBvZiAwMDAwMDEwMC4uMDAwMDAxMWYsIGFuZCBhcHBlYXJzCiAgdG8gYmUgZm9yIGV0aDIu ICBUaGVzZSBjb250YWluIHZhbHVlcyAweDIwLi4weDIzLiBUaGlzIGlzIHRhYmxlIDEsCiAgUlgg cXVldWUgbnVtYmVyIDAuCi0gVGhlIHRoaXJkIHRhYmxlIGhhcyAic2VsIiB2YWx1ZXMgb2YgMDAw MDAyMDAuLjAwMDAwMjFmLCBhbmQgYXBwZWFycwogIHRvIGJlIGZvciBldGgzLiAgVGhlc2UgY29u dGFpbiB2YWx1ZXMgMHg0MC4uMHg0My4gVGhpcyBpcyB0YWJsZSAyLAogIFJYIHF1ZXVlIG51bWJl ciAwLgoKSG93IGRvIHF1ZXVlIG51bWJlcnMgdHJhbnNsYXRlIHRvIHRoZSBSU1MgdGFibGU/ICBU aGVyZSBpcyBhbm90aGVyCnRhYmxlIC0gdGhlIFJYUTJSU1MgdGFibGUsIGluZGV4ZWQgYnkgdGhl IE1WUFAyMl9SU1NfSU5ERVhfUVVFVUUgZmllbGQKb2YgTVZQUDIyX1JTU19JTkRFWCBhbmQgYWNj ZXNzZWQgdGhyb3VnaCB0aGUgTVZQUDIyX1JYUTJSU1NfVEFCTEUKcmVnaXN0ZXIuIEJlZm9yZSA4 OTU1ODZkNWRjMzIsIGl0IHdhczoKCiAgICAgICBtdnBwMl93cml0ZShwcml2LCBNVlBQMjJfUlNT X0lOREVYLAogICAgICAgICAgICAgICAgICAgTVZQUDIyX1JTU19JTkRFWF9RVUVVRShwb3J0LT5m aXJzdF9yeHEpKTsKICAgICAgIG12cHAyX3dyaXRlKHByaXYsIE1WUFAyMl9SWFEyUlNTX1RBQkxF LAogICAgICAgICAgICAgICAgICAgTVZQUDIyX1JTU19UQUJMRV9QT0lOVEVSKHBvcnQtPmlkKSk7 CgphbmQgYWZ0ZXI6CgogICAgICAgbXZwcDJfd3JpdGUocHJpdiwgTVZQUDIyX1JTU19JTkRFWCwg TVZQUDIyX1JTU19JTkRFWF9RVUVVRShjdHgpKTsKICAgICAgIG12cHAyX3dyaXRlKHByaXYsIE1W UFAyMl9SWFEyUlNTX1RBQkxFLCBNVlBQMjJfUlNTX1RBQkxFX1BPSU5URVIoY3R4KSk7CgpCZWZv cmUgdGhlIGNvbW1pdCwgZm9yIGV0aDIsIHRoYXQgd291bGQndmUgY29udGFpbmVkICczMicgZm9y IHRoZQppbmRleCBhbmQgJzEnIGZvciB0aGUgdGFibGUgcG9pbnRlciAtIG1hcHBpbmcgcXVldWUg MzIgdG8gdGFibGUgMS4KUmVtZW1iZXIgdGhhdCB0aGlzIGlzIHF1ZXVlLWhpZ2gucXVldWUtbG93 IG9mIDQuMC4KCkFmdGVyIHRoZSBjb21taXQsIHdlIGFwcGVhciB0byBtYXAgcXVldWUgMSB0byB0 YWJsZSAxLiBUaGF0IGFnYWluCmxvb2tzIGZpbmUgb24gdGhlIGZhY2Ugb2YgaXQuCgpTZWN0aW9u IDkuMy4xIG9mIHRoZSBBODA0MCBtYW51YWwgc2VlbXMgaW5kaWNhdGUgdGhlIHJlYXNvbiB0aGF0 IHRoZQpxdWV1ZSBudW1iZXIgaXMgc2VwYXJhdGVkLiBxdWV1ZS1sb3cgc2VlbXMgdG8gYWx3YXlz IGNvbWUgZnJvbSB0aGUKY2xhc3NpZmllciwgd2hlcmVhcyBxdWV1ZS1oaWdoIGNhbiBiZSBmcm9t IHRoZSBpbmdyZXNzIHBoeXNpY2FsIHBvcnQKbnVtYmVyIG9yIHRoZSBjbGFzc2lmaWVyIGRlcGVu ZGluZyBvbiB0aGUgTVZQUDJfQ0xTX1NXRldEX1BDVFJMX1JFRy4KCldlIHNldCB0aGUgcG9ydCBi aXQgaW4gTVZQUDJfQ0xTX1NXRldEX1BDVFJMX1JFRywgbWVhbmluZyB0aGF0IHF1ZXVlLWhpZ2gK Y29tZXMgZnJvbSB0aGUgTVZQUDJfQ0xTX1NXRldEX1AySFFfUkVHKCkgcmVnaXN0ZXIuLi4gYW5k IHRoaXMgc2VlbXMgdG8KYmUgd2hlcmUgb3VyIGJ1ZyBjb21lcyBmcm9tLgoKbXZwcDJfY2xzX292 ZXJzaXplX3J4cV9zZXQoKSBzZXRzIHRoaXMgdXAgYXM6CgogICAgICAgIG12cHAyX3dyaXRlKHBv cnQtPnByaXYsIE1WUFAyX0NMU19TV0ZXRF9QMkhRX1JFRyhwb3J0LT5pZCksCiAgICAgICAgICAg ICAgICAgICAgKHBvcnQtPmZpcnN0X3J4cSA+PiBNVlBQMl9DTFNfT1ZFUlNJWkVfUlhRX0xPV19C SVRTKSk7CgogICAgICAgIHZhbCA9IG12cHAyX3JlYWQocG9ydC0+cHJpdiwgTVZQUDJfQ0xTX1NX RldEX1BDVFJMX1JFRyk7CiAgICAgICAgdmFsIHw9IE1WUFAyX0NMU19TV0ZXRF9QQ1RSTF9NQVNL KHBvcnQtPmlkKTsKICAgICAgICBtdnBwMl93cml0ZShwb3J0LT5wcml2LCBNVlBQMl9DTFNfU1dG V0RfUENUUkxfUkVHLCB2YWwpOwoKU2V0dGluZyB0aGUgTVZQUDJfQ0xTX1NXRldEX1BDVFJMX01B U0sgYml0IG1lYW5zIHRoYXQgdGhlIHF1ZXVlLWhpZ2gKZm9yIGV0aDIgaXMgX2Fsd2F5c18gNCwg c28gb25seSBxdWV1ZXMgMzIgdGhyb3VnaCAzOSBpbmNsdXNpdmUgYXJlCmF2YWlsYWJsZSB0byBl dGgyLiBZZXQsIHdlJ3JlIHRyeWluZyB0byB0ZWxsIHRoZSBjbGFzc2lmaWVyIHRvIHNldApxdWV1 ZS1oaWdoLCB3aGljaCB3aWxsIGJlIGlnbm9yZWQsIHRvIHplcm8uIEhlbmNlLCB0aGUgcXVldWUt aGlnaApmaWVsZCAoTVZQUDIyX0NMU19DMl9BVFRSMF9RSElHSCgpKSBmcm9tIHRoZSBjbGFzc2lm aWVyIHdpbGwgYmUKaWdub3JlZC4KClRoaXMgbWVhbnMgd2UgZW5kIHVwIGRpcmVjdGluZyB0cmFm ZmljIGZyb20gZXRoMiBub3QgdG8gcXVldWUgMSwgYnV0CnRvIHF1ZXVlIDMzLCBhbmQgdGhlbiB3 ZSB0ZWxsIGl0IHRvIGxvb2sgdXAgcXVldWUgMzMgaW4gdGhlIFJTUyB0YWJsZS4KSG93ZXZlciwg UlNTIHRhYmxlIGhhcyBub3QgYmVlbiBwcm9ncmFtbWVkIGZvciBxdWV1ZSAzMywgYW5kIHNvIGl0 IGVuZHMKdXAgKHByZXN1bWFibHkpIGRyb3BwaW5nIHRoZSBwYWNrZXRzLgoKSXQgc2VlbXMgdGhh dCBtdnBwMjJfcnNzX2NvbnRleHRfY3JlYXRlKCkgZG9lc24ndCB0YWtlIGFjY291bnQgb2YgdGhl CmZhY3QgdGhhdCB0aGUgdXBwZXIgNSBiaXRzIG9mIHRoZSBxdWV1ZSBJRCBjYW4ndCBhY3R1YWxs eSBiZSBjaGFuZ2VkCmR1ZSB0byB0aGUgc2V0dGluZ3MgaW4gbXZwcDJfY2xzX292ZXJzaXplX3J4 cV9zZXQoKSwgX29yXyBpdCBzZWVtcyB0aGF0Cm12cHAyX2Nsc19vdmVyc2l6ZV9yeHFfc2V0KCkg aGFzIGJlZW4gbWlzc2VkIGluIHRoaXMgY29tbWl0LiBFaXRoZXIKd2F5LCB0aGVzZSB0d28gZnVu Y3Rpb25zIG11dHVhbGx5IGRpc2FncmVlIHdpdGggd2hhdCBxdWV1ZSBudW1iZXIKc2hvdWxkIGJl IHVzZWQuCgpMb29raW5nIGRlZXBlciBpbnRvIHdoYXQgbXZwcDJfY2xzX292ZXJzaXplX3J4cV9z ZXQoKSBhbmQgdGhlIE1UVQp2YWxpZGF0aW9uIGlzIGRvaW5nLCBpdCBzZWVtcyB0aGF0IE1WUFAy X0NMU19TV0ZXRF9QMkhRX1JFRygpIGlzIHVzZWQKZm9yIG92ZXItc2l6ZWQgcGFja2V0cyBhdHRl bXB0aW5nIHRvIGVncmVzcyB0aHJvdWdoIHRoaXMgcG9ydC4gV2l0aAp0aGUgY2xhc3NpZmllciBo YXZpbmcgaGFkIFJTUyBlbmFibGVkIGFuZCBkaXJlY3RpbmcgZXRoMiB0cmFmZmljIHRvCnF1ZXVl IDEsIHdlIG1heSBzdGlsbCBoYXZlIHBhY2tldHMgYXBwZWFyaW5nIG9uIHF1ZXVlIDMyIGZvciB0 aGlzIHBvcnQuCgpIb3dldmVyLCB0aGUgb25seSB3YXkgd2UgbWF5IGVuZCB1cCB3aXRoIG92ZXIt c2l6ZWQgcGFja2V0cyBhdHRlbXB0aW5nCnRvIGVncmVzcyB0aHJvdWdoIGV0aDIgLSBpcyBpZiB0 aGUgQTgwNDAgZm9yd2FyZHMgZnJhbWVzIGJldHdlZW4gaXRzCnBvcnRzLiBGcm9tIHdoYXQgSSBj YW4gc2VlLCB3ZSBkb24ndCBzdXBwb3J0IHRoYXQgZmVhdHVyZSwgYW5kIHRoZQprZXJuZWwgcmVz dHJpY3RzIHRoZSBlZ3Jlc3MgcGFja2V0IHNpemUgdG8gdGhlIE1UVS4gSW4gYW55IGNhc2UsIGlm IHdlCndlcmUgdG8gYXR0ZW1wdCB0byB0cmFuc21pdCBhbiBvdmVyc2l6ZWQgcGFja2V0LCB3ZSBo YXZlIG5vIHN1cHBvcnQgaW4KdGhlIGtlcm5lbCB0byBkZWFsIHdpdGggdGhhdCBhcHBlYXJpbmcg aW4gdGhlIHBvcnQncyByZWNlaXZlIHF1ZXVlLgoKU28sIHRoaXMgcGF0Y2ggYXR0ZW1wdHMgdG8g c29sdmUgdGhlIGlzc3VlIGJ5IGNsZWFyaW5nIHRoZQpNVlBQMl9DTFNfU1dGV0RfUENUUkxfTUFT SygpIGJpdCwgYWxsb3dpbmcgTVZQUDIyX0NMU19DMl9BVFRSMF9RSElHSCgpCmZyb20gdGhlIGNs YXNzaWZpZXIgdG8gZGVmaW5lIHRoZSBxdWV1ZS1oaWdoIGZpZWxkIG9mIHRoZSBxdWV1ZSBudW1i ZXIuCgpNeSB0ZXN0aW5nIHNlZW1zIHRvIGNvbmZpcm0gbXkgZmluZGluZ3MgYWJvdmUgLSBjbGVh cmluZyB0aGlzIGJpdAptZWFucyB0aGF0IGlmIEkgZW5hYmxlIHJ4aGFzaCBvbiBldGgyLCB0aGUg aW50ZXJmYWNlIGNhbiB0aGVuIHBhc3MKdHJhZmZpYywgYXMgd2UgYXJlIG5vdyBkaXJlY3Rpbmcg dHJhZmZpYyB0byBSWCBxdWV1ZSAxIHJhdGhlciB0aGFuCnF1ZXVlIDMzLiBUcmFmZmljIHN0aWxs IHNlZW1zIHRvIHdvcmsgd2l0aCByeGhhc2ggb2ZmIGFzIHdlbGwuCgpSZXBvcnRlZC1ieTogTWF0 dGVvIENyb2NlIDxtY3JvY2VAcmVkaGF0LmNvbT4KVGVzdGVkLWJ5OiBNYXR0ZW8gQ3JvY2UgPG1j cm9jZUByZWRoYXQuY29tPgpGaXhlczogODk1NTg2ZDVkYzMyICgibmV0OiBtdnBwMjogY2xzOiBV c2UgUlNTIGNvbnRleHRzIHRvIGhhbmRsZSBSU1MgdGFibGVzIikKU2lnbmVkLW9mZi1ieTogUnVz c2VsbCBLaW5nIDxybWsra2VybmVsQGFybWxpbnV4Lm9yZy51az4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVy bmV0L21hcnZlbGwvbXZwcDIvbXZwcDJfY2xzLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBp bnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9tYXJ2ZWxsL212cHAyL212cHAyX2Nscy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFy dmVsbC9tdnBwMi9tdnBwMl9jbHMuYwppbmRleCA0MzQ0YTU5YzgyM2YuLjYxMjIwNTdkNjBjMCAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdnBwMi9tdnBwMl9jbHMu YworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212cHAyL212cHAyX2Nscy5jCkBA IC0xMDcwLDcgKzEwNzAsNyBAQCB2b2lkIG12cHAyX2Nsc19vdmVyc2l6ZV9yeHFfc2V0KHN0cnVj dCBtdnBwMl9wb3J0ICpwb3J0KQogCQkgICAgKHBvcnQtPmZpcnN0X3J4cSA+PiBNVlBQMl9DTFNf T1ZFUlNJWkVfUlhRX0xPV19CSVRTKSk7CiAKIAl2YWwgPSBtdnBwMl9yZWFkKHBvcnQtPnByaXYs IE1WUFAyX0NMU19TV0ZXRF9QQ1RSTF9SRUcpOwotCXZhbCB8PSBNVlBQMl9DTFNfU1dGV0RfUENU UkxfTUFTSyhwb3J0LT5pZCk7CisJdmFsICY9IH5NVlBQMl9DTFNfU1dGV0RfUENUUkxfTUFTSyhw b3J0LT5pZCk7CiAJbXZwcDJfd3JpdGUocG9ydC0+cHJpdiwgTVZQUDJfQ0xTX1NXRldEX1BDVFJM X1JFRywgdmFsKTsKIH0KIAotLSAKMi4yNi4yCgoKRnJvbSBkYzFkMDc4MjU5OWRkN2JhNjg5NjEy ZmZkNzNjNTM4ODYxMTlkMWQwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVwaGVu IFdvcmxleSA8c3dvcmxleUBjdW11bHVzbmV0d29ya3MuY29tPgpEYXRlOiBUdWUsIDE5IE1heSAy MDIwIDIxOjU3OjEyIC0wNDAwClN1YmplY3Q6IFtQQVRDSCAxMy8zM10gbmV0OiBubG1zZ19jYW5j ZWwoKSBpZiBwdXQgZmFpbHMgZm9yIG5obXNnCgpbIFVwc3RyZWFtIGNvbW1pdCBkNjkxMDBiOGVl ZTI3YzJkNjBlZTUyZGY3NmUwYjgwYThkNDkyZDM0IF0KCkZpeGVzIGRhdGEgcmVtbmFudCBzZWVu IHdoZW4gd2UgZmFpbCB0byByZXNlcnZlIHNwYWNlIGZvciBhCm5leHRob3AgZ3JvdXAgZHVyaW5n IGEgbGFyZ2VyIGR1bXAuCgpJZiB3ZSBmYWlsIHRoZSByZXNlcnZhdGlvbiwgd2UgZ290byBubGFf cHV0X2ZhaWx1cmUgYW5kCmNhbmNlbCB0aGUgbWVzc2FnZS4KClJlcHJvZHVjZSB3aXRoIHRoZSBm b2xsb3dpbmcgaXByb3V0ZTIgY29tbWFuZHM6Cj09PT09PT09PT09PT09PT09PT09PQppcCBsaW5r IGFkZCBkdW1teTEgdHlwZSBkdW1teQppcCBsaW5rIGFkZCBkdW1teTIgdHlwZSBkdW1teQppcCBs aW5rIGFkZCBkdW1teTMgdHlwZSBkdW1teQppcCBsaW5rIGFkZCBkdW1teTQgdHlwZSBkdW1teQpp cCBsaW5rIGFkZCBkdW1teTUgdHlwZSBkdW1teQppcCBsaW5rIGFkZCBkdW1teTYgdHlwZSBkdW1t eQppcCBsaW5rIGFkZCBkdW1teTcgdHlwZSBkdW1teQppcCBsaW5rIGFkZCBkdW1teTggdHlwZSBk dW1teQppcCBsaW5rIGFkZCBkdW1teTkgdHlwZSBkdW1teQppcCBsaW5rIGFkZCBkdW1teTEwIHR5 cGUgZHVtbXkKaXAgbGluayBhZGQgZHVtbXkxMSB0eXBlIGR1bW15CmlwIGxpbmsgYWRkIGR1bW15 MTIgdHlwZSBkdW1teQppcCBsaW5rIGFkZCBkdW1teTEzIHR5cGUgZHVtbXkKaXAgbGluayBhZGQg ZHVtbXkxNCB0eXBlIGR1bW15CmlwIGxpbmsgYWRkIGR1bW15MTUgdHlwZSBkdW1teQppcCBsaW5r IGFkZCBkdW1teTE2IHR5cGUgZHVtbXkKaXAgbGluayBhZGQgZHVtbXkxNyB0eXBlIGR1bW15Cmlw IGxpbmsgYWRkIGR1bW15MTggdHlwZSBkdW1teQppcCBsaW5rIGFkZCBkdW1teTE5IHR5cGUgZHVt bXkKaXAgbGluayBhZGQgZHVtbXkyMCB0eXBlIGR1bW15CmlwIGxpbmsgYWRkIGR1bW15MjEgdHlw ZSBkdW1teQppcCBsaW5rIGFkZCBkdW1teTIyIHR5cGUgZHVtbXkKaXAgbGluayBhZGQgZHVtbXky MyB0eXBlIGR1bW15CmlwIGxpbmsgYWRkIGR1bW15MjQgdHlwZSBkdW1teQppcCBsaW5rIGFkZCBk dW1teTI1IHR5cGUgZHVtbXkKaXAgbGluayBhZGQgZHVtbXkyNiB0eXBlIGR1bW15CmlwIGxpbmsg YWRkIGR1bW15MjcgdHlwZSBkdW1teQppcCBsaW5rIGFkZCBkdW1teTI4IHR5cGUgZHVtbXkKaXAg bGluayBhZGQgZHVtbXkyOSB0eXBlIGR1bW15CmlwIGxpbmsgYWRkIGR1bW15MzAgdHlwZSBkdW1t eQppcCBsaW5rIGFkZCBkdW1teTMxIHR5cGUgZHVtbXkKaXAgbGluayBhZGQgZHVtbXkzMiB0eXBl IGR1bW15CgppcCBsaW5rIHNldCBkdW1teTEgdXAKaXAgbGluayBzZXQgZHVtbXkyIHVwCmlwIGxp bmsgc2V0IGR1bW15MyB1cAppcCBsaW5rIHNldCBkdW1teTQgdXAKaXAgbGluayBzZXQgZHVtbXk1 IHVwCmlwIGxpbmsgc2V0IGR1bW15NiB1cAppcCBsaW5rIHNldCBkdW1teTcgdXAKaXAgbGluayBz ZXQgZHVtbXk4IHVwCmlwIGxpbmsgc2V0IGR1bW15OSB1cAppcCBsaW5rIHNldCBkdW1teTEwIHVw CmlwIGxpbmsgc2V0IGR1bW15MTEgdXAKaXAgbGluayBzZXQgZHVtbXkxMiB1cAppcCBsaW5rIHNl dCBkdW1teTEzIHVwCmlwIGxpbmsgc2V0IGR1bW15MTQgdXAKaXAgbGluayBzZXQgZHVtbXkxNSB1 cAppcCBsaW5rIHNldCBkdW1teTE2IHVwCmlwIGxpbmsgc2V0IGR1bW15MTcgdXAKaXAgbGluayBz ZXQgZHVtbXkxOCB1cAppcCBsaW5rIHNldCBkdW1teTE5IHVwCmlwIGxpbmsgc2V0IGR1bW15MjAg dXAKaXAgbGluayBzZXQgZHVtbXkyMSB1cAppcCBsaW5rIHNldCBkdW1teTIyIHVwCmlwIGxpbmsg c2V0IGR1bW15MjMgdXAKaXAgbGluayBzZXQgZHVtbXkyNCB1cAppcCBsaW5rIHNldCBkdW1teTI1 IHVwCmlwIGxpbmsgc2V0IGR1bW15MjYgdXAKaXAgbGluayBzZXQgZHVtbXkyNyB1cAppcCBsaW5r IHNldCBkdW1teTI4IHVwCmlwIGxpbmsgc2V0IGR1bW15MjkgdXAKaXAgbGluayBzZXQgZHVtbXkz MCB1cAppcCBsaW5rIHNldCBkdW1teTMxIHVwCmlwIGxpbmsgc2V0IGR1bW15MzIgdXAKCmlwIGxp bmsgc2V0IGR1bW15MzMgdXAKaXAgbGluayBzZXQgZHVtbXkzNCB1cAoKaXAgbGluayBzZXQgdnJm LXJlZCB1cAppcCBsaW5rIHNldCB2cmYtYmx1ZSB1cAoKaXAgbGluayBzZXQgZHVtbXlWUkZyZWQg dXAKaXAgbGluayBzZXQgZHVtbXlWUkZibHVlIHVwCgppcCBybyBhZGQgMS4xLjEuMS8zMiBkZXYg ZHVtbXkxCmlwIHJvIGFkZCAxLjEuMS4yLzMyIGRldiBkdW1teTIKaXAgcm8gYWRkIDEuMS4xLjMv MzIgZGV2IGR1bW15MwppcCBybyBhZGQgMS4xLjEuNC8zMiBkZXYgZHVtbXk0CmlwIHJvIGFkZCAx LjEuMS41LzMyIGRldiBkdW1teTUKaXAgcm8gYWRkIDEuMS4xLjYvMzIgZGV2IGR1bW15NgppcCBy byBhZGQgMS4xLjEuNy8zMiBkZXYgZHVtbXk3CmlwIHJvIGFkZCAxLjEuMS44LzMyIGRldiBkdW1t eTgKaXAgcm8gYWRkIDEuMS4xLjkvMzIgZGV2IGR1bW15OQppcCBybyBhZGQgMS4xLjEuMTAvMzIg ZGV2IGR1bW15MTAKaXAgcm8gYWRkIDEuMS4xLjExLzMyIGRldiBkdW1teTExCmlwIHJvIGFkZCAx LjEuMS4xMi8zMiBkZXYgZHVtbXkxMgppcCBybyBhZGQgMS4xLjEuMTMvMzIgZGV2IGR1bW15MTMK aXAgcm8gYWRkIDEuMS4xLjE0LzMyIGRldiBkdW1teTE0CmlwIHJvIGFkZCAxLjEuMS4xNS8zMiBk ZXYgZHVtbXkxNQppcCBybyBhZGQgMS4xLjEuMTYvMzIgZGV2IGR1bW15MTYKaXAgcm8gYWRkIDEu MS4xLjE3LzMyIGRldiBkdW1teTE3CmlwIHJvIGFkZCAxLjEuMS4xOC8zMiBkZXYgZHVtbXkxOApp cCBybyBhZGQgMS4xLjEuMTkvMzIgZGV2IGR1bW15MTkKaXAgcm8gYWRkIDEuMS4xLjIwLzMyIGRl diBkdW1teTIwCmlwIHJvIGFkZCAxLjEuMS4yMS8zMiBkZXYgZHVtbXkyMQppcCBybyBhZGQgMS4x LjEuMjIvMzIgZGV2IGR1bW15MjIKaXAgcm8gYWRkIDEuMS4xLjIzLzMyIGRldiBkdW1teTIzCmlw IHJvIGFkZCAxLjEuMS4yNC8zMiBkZXYgZHVtbXkyNAppcCBybyBhZGQgMS4xLjEuMjUvMzIgZGV2 IGR1bW15MjUKaXAgcm8gYWRkIDEuMS4xLjI2LzMyIGRldiBkdW1teTI2CmlwIHJvIGFkZCAxLjEu MS4yNy8zMiBkZXYgZHVtbXkyNwppcCBybyBhZGQgMS4xLjEuMjgvMzIgZGV2IGR1bW15MjgKaXAg cm8gYWRkIDEuMS4xLjI5LzMyIGRldiBkdW1teTI5CmlwIHJvIGFkZCAxLjEuMS4zMC8zMiBkZXYg ZHVtbXkzMAppcCBybyBhZGQgMS4xLjEuMzEvMzIgZGV2IGR1bW15MzEKaXAgcm8gYWRkIDEuMS4x LjMyLzMyIGRldiBkdW1teTMyCgppcCBuZXh0IGFkZCBpZCAxIHZpYSAxLjEuMS4xIGRldiBkdW1t eTEKaXAgbmV4dCBhZGQgaWQgMiB2aWEgMS4xLjEuMiBkZXYgZHVtbXkyCmlwIG5leHQgYWRkIGlk IDMgdmlhIDEuMS4xLjMgZGV2IGR1bW15MwppcCBuZXh0IGFkZCBpZCA0IHZpYSAxLjEuMS40IGRl diBkdW1teTQKaXAgbmV4dCBhZGQgaWQgNSB2aWEgMS4xLjEuNSBkZXYgZHVtbXk1CmlwIG5leHQg YWRkIGlkIDYgdmlhIDEuMS4xLjYgZGV2IGR1bW15NgppcCBuZXh0IGFkZCBpZCA3IHZpYSAxLjEu MS43IGRldiBkdW1teTcKaXAgbmV4dCBhZGQgaWQgOCB2aWEgMS4xLjEuOCBkZXYgZHVtbXk4Cmlw IG5leHQgYWRkIGlkIDkgdmlhIDEuMS4xLjkgZGV2IGR1bW15OQppcCBuZXh0IGFkZCBpZCAxMCB2 aWEgMS4xLjEuMTAgZGV2IGR1bW15MTAKaXAgbmV4dCBhZGQgaWQgMTEgdmlhIDEuMS4xLjExIGRl diBkdW1teTExCmlwIG5leHQgYWRkIGlkIDEyIHZpYSAxLjEuMS4xMiBkZXYgZHVtbXkxMgppcCBu ZXh0IGFkZCBpZCAxMyB2aWEgMS4xLjEuMTMgZGV2IGR1bW15MTMKaXAgbmV4dCBhZGQgaWQgMTQg dmlhIDEuMS4xLjE0IGRldiBkdW1teTE0CmlwIG5leHQgYWRkIGlkIDE1IHZpYSAxLjEuMS4xNSBk ZXYgZHVtbXkxNQppcCBuZXh0IGFkZCBpZCAxNiB2aWEgMS4xLjEuMTYgZGV2IGR1bW15MTYKaXAg bmV4dCBhZGQgaWQgMTcgdmlhIDEuMS4xLjE3IGRldiBkdW1teTE3CmlwIG5leHQgYWRkIGlkIDE4 IHZpYSAxLjEuMS4xOCBkZXYgZHVtbXkxOAppcCBuZXh0IGFkZCBpZCAxOSB2aWEgMS4xLjEuMTkg ZGV2IGR1bW15MTkKaXAgbmV4dCBhZGQgaWQgMjAgdmlhIDEuMS4xLjIwIGRldiBkdW1teTIwCmlw IG5leHQgYWRkIGlkIDIxIHZpYSAxLjEuMS4yMSBkZXYgZHVtbXkyMQppcCBuZXh0IGFkZCBpZCAy MiB2aWEgMS4xLjEuMjIgZGV2IGR1bW15MjIKaXAgbmV4dCBhZGQgaWQgMjMgdmlhIDEuMS4xLjIz IGRldiBkdW1teTIzCmlwIG5leHQgYWRkIGlkIDI0IHZpYSAxLjEuMS4yNCBkZXYgZHVtbXkyNApp cCBuZXh0IGFkZCBpZCAyNSB2aWEgMS4xLjEuMjUgZGV2IGR1bW15MjUKaXAgbmV4dCBhZGQgaWQg MjYgdmlhIDEuMS4xLjI2IGRldiBkdW1teTI2CmlwIG5leHQgYWRkIGlkIDI3IHZpYSAxLjEuMS4y NyBkZXYgZHVtbXkyNwppcCBuZXh0IGFkZCBpZCAyOCB2aWEgMS4xLjEuMjggZGV2IGR1bW15MjgK aXAgbmV4dCBhZGQgaWQgMjkgdmlhIDEuMS4xLjI5IGRldiBkdW1teTI5CmlwIG5leHQgYWRkIGlk IDMwIHZpYSAxLjEuMS4zMCBkZXYgZHVtbXkzMAppcCBuZXh0IGFkZCBpZCAzMSB2aWEgMS4xLjEu MzEgZGV2IGR1bW15MzEKaXAgbmV4dCBhZGQgaWQgMzIgdmlhIDEuMS4xLjMyIGRldiBkdW1teTMy CgppPTEwMAoKd2hpbGUgWyAkaSAtbGUgMjAwIF0KZG8KaXAgbmV4dCBhZGQgaWQgJGkgZ3JvdXAg MS8yLzMvNC81LzYvNy84LzkvMTAvMTEvMTIvMTMvMTQvMTUvMTYvMTcvMTgvMTkKCgllY2hvICRp CgoJKChpKyspKQoKZG9uZQoKaXAgbmV4dCBhZGQgaWQgOTk5IGdyb3VwIDEvMi8zLzQvNS82Cgpp cCBuZXh0IGxzCgo9PT09PT09PT09PT09PT09PT09PT09PT0KCkZpeGVzOiBhYjg0YmU3ZTU0ZmMg KCJuZXQ6IEluaXRpYWwgbmV4dGhvcCBjb2RlIikKU2lnbmVkLW9mZi1ieTogU3RlcGhlbiBXb3Js ZXkgPHN3b3JsZXlAY3VtdWx1c25ldHdvcmtzLmNvbT4KUmV2aWV3ZWQtYnk6IERhdmlkIEFoZXJu IDxkc2FoZXJuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L25leHRob3AuYyB8IDEgKwogMSBmaWxlIGNo YW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvbmV4dGhvcC5jIGIv bmV0L2lwdjQvbmV4dGhvcC5jCmluZGV4IGQwNzJjMzI2ZGQ2NC4uNDg5YzI3Zjg5NGQ3IDEwMDY0 NAotLS0gYS9uZXQvaXB2NC9uZXh0aG9wLmMKKysrIGIvbmV0L2lwdjQvbmV4dGhvcC5jCkBAIC0y NzYsNiArMjc2LDcgQEAgc3RhdGljIGludCBuaF9maWxsX25vZGUoc3RydWN0IHNrX2J1ZmYgKnNr Yiwgc3RydWN0IG5leHRob3AgKm5oLAogCXJldHVybiAwOwogCiBubGFfcHV0X2ZhaWx1cmU6CisJ bmxtc2dfY2FuY2VsKHNrYiwgbmxoKTsKIAlyZXR1cm4gLUVNU0dTSVpFOwogfQogCi0tIAoyLjI2 LjIKCgpGcm9tIDNjMTM2MTc5OGVmODk1MjNlZWVkMThkODc3ZGMyOThhMTFmZDhiYmUgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1hbml2YW5uYW4gU2FkaGFzaXZhbSA8bWFuaXZhbm5h bi5zYWRoYXNpdmFtQGxpbmFyby5vcmc+CkRhdGU6IFR1ZSwgMTkgTWF5IDIwMjAgMjM6NDQ6MTYg KzA1MzAKU3ViamVjdDogW1BBVENIIDE0LzMzXSBuZXQ6IHFydHI6IEZpeCBwYXNzaW5nIGludmFs aWQgcmVmZXJlbmNlIHRvCiBxcnRyX2xvY2FsX2VucXVldWUoKQoKWyBVcHN0cmVhbSBjb21taXQg ZDI4ZWExZmJiZjQzNzA1NGVmMzM5YWZlYzI0MTAxOWYyYzRlMmJiNiBdCgpPbmNlIHRoZSB0cmF2 ZXJzYWwgb2YgdGhlIGxpc3QgaXMgY29tcGxldGVkIHdpdGggbGlzdF9mb3JfZWFjaF9lbnRyeSgp LAp0aGUgaXRlcmF0b3IgKG5vZGUpIHdpbGwgcG9pbnQgdG8gYW4gaW52YWxpZCBvYmplY3QuIFNv IHBhc3NpbmcgdGhpcyB0bwpxcnRyX2xvY2FsX2VucXVldWUoKSB3aGljaCBpcyBvdXRzaWRlIG9m IHRoZSBpdGVyYXRvciBibG9jayBpcyBlcnJvbmVvdXMKZXZlbnRob3VnaCB0aGUgb2JqZWN0IGlz IG5vdCB1c2VkLgoKU28gZml4IHRoaXMgYnkgcGFzc2luZyBOVUxMIHRvIHFydHJfbG9jYWxfZW5x dWV1ZSgpLgoKRml4ZXM6IGJkYWJhZDNlMzYzZCAoIm5ldDogQWRkIFF1YWxjb21tIElQQyByb3V0 ZXIiKQpSZXBvcnRlZC1ieToga2J1aWxkIHRlc3Qgcm9ib3QgPGxrcEBpbnRlbC5jb20+ClJlcG9y dGVkLWJ5OiBKdWxpYSBMYXdhbGwgPGp1bGlhLmxhd2FsbEBsaXA2LmZyPgpTaWduZWQtb2ZmLWJ5 OiBNYW5pdmFubmFuIFNhZGhhc2l2YW0gPG1hbml2YW5uYW4uc2FkaGFzaXZhbUBsaW5hcm8ub3Jn PgpSZXZpZXdlZC1ieTogQmpvcm4gQW5kZXJzc29uIDxiam9ybi5hbmRlcnNzb25AbGluYXJvLm9y Zz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIG5ldC9xcnRyL3FydHIuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9xcnRyL3FydHIuYyBiL25ldC9xcnRy L3FydHIuYwppbmRleCBiN2I4NTQ2MjFjMjYuLjlkMzhjMTRkMjUxYSAxMDA2NDQKLS0tIGEvbmV0 L3FydHIvcXJ0ci5jCisrKyBiL25ldC9xcnRyL3FydHIuYwpAQCAtODU1LDcgKzg1NSw3IEBAIHN0 YXRpYyBpbnQgcXJ0cl9iY2FzdF9lbnF1ZXVlKHN0cnVjdCBxcnRyX25vZGUgKm5vZGUsIHN0cnVj dCBza19idWZmICpza2IsCiAJfQogCW11dGV4X3VubG9jaygmcXJ0cl9ub2RlX2xvY2spOwogCi0J cXJ0cl9sb2NhbF9lbnF1ZXVlKG5vZGUsIHNrYiwgdHlwZSwgZnJvbSwgdG8pOworCXFydHJfbG9j YWxfZW5xdWV1ZShOVUxMLCBza2IsIHR5cGUsIGZyb20sIHRvKTsKIAogCXJldHVybiAwOwogfQot LSAKMi4yNi4yCgoKRnJvbSA2ZTNiZmNkM2Q4Yzk4YTQ3MjMzOGY1MmQzMDZkMDgzOWUyMzFiZDE4 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBZdXFpIEppbiA8amlueXVxaUBodWF3ZWku Y29tPgpEYXRlOiBTYXQsIDE2IE1heSAyMDIwIDExOjQ2OjQ5ICswODAwClN1YmplY3Q6IFtQQVRD SCAxNS8zM10gbmV0OiByZXZlcnQgIm5ldDogZ2V0IHJpZCBvZiBhbiBzaWduZWQgaW50ZWdlciBv dmVyZmxvdwogaW4gaXBfaWRlbnRzX3Jlc2VydmUoKSIKClsgVXBzdHJlYW0gY29tbWl0IGE2MjEx Y2FhNjM0ZGEzOWQ4NjFhNDc0MzdmZmNkYThiMzhlZjQyMWIgXQoKQ29tbWl0IGFkYjAzMTE1ZjQ1 OSAoIm5ldDogZ2V0IHJpZCBvZiBhbiBzaWduZWQgaW50ZWdlciBvdmVyZmxvdyBpbiBpcF9pZGVu dHNfcmVzZXJ2ZSgpIikKdXNlZCBhdG9taWNfY21weGNoZyB0byByZXBsYWNlICJhdG9taWNfYWRk X3JldHVybiIgaW5zaWRlIHRoZSBmdW5jdGlvbgoiaXBfaWRlbnRzX3Jlc2VydmUiLiBUaGUgcmVh c29uIHdhcyB0byBhdm9pZCBVQlNBTiB3YXJuaW5nLgpIb3dldmVyLCB0aGlzIGNoYW5nZSBoYXMg Y2F1c2VkIHBlcmZvcm1hbmNlIGRlZ3JhZGUgYW5kIGluIEdDQy04LApmbm8tc3RyaWN0LW92ZXJm bG93IGlzIG5vdyBtYXBwZWQgdG8gLWZ3cmFwdiAtZndyYXB2LXBvaW50ZXIKYW5kIHNpZ25lZCBp bnRlZ2VyIG92ZXJmbG93IGlzIG5vdyB1bmRlZmluZWQgYnkgZGVmYXVsdCBhdCBhbGwKb3B0aW1p emF0aW9uIGxldmVsc1sxXS4gTW9yZW92ZXIsIGl0IHdhcyBhIGJ1ZyBpbiBVQlNBTiB2cyAtZndy YXB2Ci8tZm5vLXN0cmljdC1vdmVyZmxvdywgc28gTGV0J3MgcmV2ZXJ0IGl0IHNhZmVseS4KClsx XSBodHRwczovL2djYy5nbnUub3JnL2djYy04L2NoYW5nZXMuaHRtbAoKU3VnZ2VzdGVkLWJ5OiBQ ZXRlciBaaWpsc3RyYSA8cGV0ZXJ6QGluZnJhZGVhZC5vcmc+ClN1Z2dlc3RlZC1ieTogRXJpYyBE dW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpDYzogIkRhdmlkIFMuIE1pbGxlciIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+CkNjOiBBbGV4ZXkgS3V6bmV0c292IDxrdXpuZXRAbXMyLmluci5hYy5y dT4KQ2M6IEhpZGVha2kgWU9TSElGVUpJIDx5b3NoZnVqaUBsaW51eC1pcHY2Lm9yZz4KQ2M6IEph a3ViIEtpY2luc2tpIDxrdWJhQGtlcm5lbC5vcmc+CkNjOiBKaXJpIFBpcmtvIDxqaXJpQHJlc251 bGxpLnVzPgpDYzogQXJ2aW5kIFNhbmthciA8bml2ZWRpdGFAYWx1bS5taXQuZWR1PgpDYzogUGV0 ZXIgWmlqbHN0cmEgPHBldGVyekBpbmZyYWRlYWQub3JnPgpDYzogRXJpYyBEdW1hemV0IDxlZHVt YXpldEBnb29nbGUuY29tPgpDYzogSmlvbmcgV2FuZyA8amlvbmd3YW5nQGh1YXdlaS5jb20+ClNp Z25lZC1vZmYtYnk6IFl1cWkgSmluIDxqaW55dXFpQGh1YXdlaS5jb20+ClNpZ25lZC1vZmYtYnk6 IFNoYW9rdW4gWmhhbmcgPHpoYW5nc2hhb2t1bkBoaXNpbGljb24uY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvcm91 dGUuYyB8IDE0ICsrKysrKy0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCsp LCA4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3JvdXRlLmMgYi9uZXQvaXB2 NC9yb3V0ZS5jCmluZGV4IGVmNmI3MDc3NGZlMS4uZmVhNmE4YTExMTgzIDEwMDY0NAotLS0gYS9u ZXQvaXB2NC9yb3V0ZS5jCisrKyBiL25ldC9pcHY0L3JvdXRlLmMKQEAgLTQ5MSwxOCArNDkxLDE2 IEBAIHUzMiBpcF9pZGVudHNfcmVzZXJ2ZSh1MzIgaGFzaCwgaW50IHNlZ3MpCiAJYXRvbWljX3Qg KnBfaWQgPSBpcF9pZGVudHMgKyBoYXNoICUgSVBfSURFTlRTX1NaOwogCXUzMiBvbGQgPSBSRUFE X09OQ0UoKnBfdHN0YW1wKTsKIAl1MzIgbm93ID0gKHUzMilqaWZmaWVzOwotCXUzMiBuZXcsIGRl bHRhID0gMDsKKwl1MzIgZGVsdGEgPSAwOwogCiAJaWYgKG9sZCAhPSBub3cgJiYgY21weGNoZyhw X3RzdGFtcCwgb2xkLCBub3cpID09IG9sZCkKIAkJZGVsdGEgPSBwcmFuZG9tX3UzMl9tYXgobm93 IC0gb2xkKTsKIAotCS8qIERvIG5vdCB1c2UgYXRvbWljX2FkZF9yZXR1cm4oKSBhcyBpdCBtYWtl cyBVQlNBTiB1bmhhcHB5ICovCi0JZG8gewotCQlvbGQgPSAodTMyKWF0b21pY19yZWFkKHBfaWQp OwotCQluZXcgPSBvbGQgKyBkZWx0YSArIHNlZ3M7Ci0JfSB3aGlsZSAoYXRvbWljX2NtcHhjaGco cF9pZCwgb2xkLCBuZXcpICE9IG9sZCk7Ci0KLQlyZXR1cm4gbmV3IC0gc2VnczsKKwkvKiBJZiBV QlNBTiByZXBvcnRzIGFuIGVycm9yIHRoZXJlLCBwbGVhc2UgbWFrZSBzdXJlIHlvdXIgY29tcGls ZXIKKwkgKiBzdXBwb3J0cyAtZm5vLXN0cmljdC1vdmVyZmxvdyBiZWZvcmUgcmVwb3J0aW5nIGl0 IHRoYXQgd2FzIGEgYnVnCisJICogaW4gVUJTQU4sIGFuZCBpdCBoYXMgYmVlbiBmaXhlZCBpbiBH Q0MtOC4KKwkgKi8KKwlyZXR1cm4gYXRvbWljX2FkZF9yZXR1cm4oc2VncyArIGRlbHRhLCBwX2lk KSAtIHNlZ3M7CiB9CiBFWFBPUlRfU1lNQk9MKGlwX2lkZW50c19yZXNlcnZlKTsKIAotLSAKMi4y Ni4yCgoKRnJvbSBmMGI5NDc2YWQ5NGMyY2FlNWQwMGFlZmExNzYzNjgzOWYxY2ZmYWMwIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSb21hbiBNYXNoYWsgPG1ydkBtb2phdGF0dS5jb20+ CkRhdGU6IFN1biwgMTcgTWF5IDIwMjAgMDg6NDY6MzEgLTA0MDAKU3ViamVjdDogW1BBVENIIDE2 LzMzXSBuZXQgc2NoZWQ6IGZpeCByZXBvcnRpbmcgdGhlIGZpcnN0LXRpbWUgdXNlIHRpbWVzdGFt cAoKWyBVcHN0cmVhbSBjb21taXQgYjE1ZTYyNjMxYzVmMTlmZWE5ODk1Zjc2MzJkYWU5YzFiMjdm ZTBjZCBdCgpXaGVuIGEgbmV3IGFjdGlvbiBpcyBpbnN0YWxsZWQsIGZpcnN0dXNlIGZpZWxkIG9m ICd0Y2ZfdCcgaXMgZXhwbGljaXRseSBzZXQKdG8gMC4gVmFsdWUgb2YgemVybyBtZWFucyAibmV3 IGFjdGlvbiwgbm90IHlldCB1c2VkIjsgYXMgYSBwYWNrZXQgaGl0cyB0aGUKYWN0aW9uLCAnZmly c3R1c2UnIGlzIHN0YW1wZWQgd2l0aCB0aGUgY3VycmVudCBqaWZmaWVzIHZhbHVlLgoKdGNmX3Rt X2R1bXAoKSBzaG91bGQgcmV0dXJuIDAgZm9yIGZpcnN0dXNlIGlmIGFjdGlvbiBoYXMgbm90IHll dCBiZWVuIGhpdC4KCkZpeGVzOiA0OGQ4ZWUxNjk0ZGQgKCJuZXQgc2NoZWQgYWN0aW9uczogYWdn cmVnYXRlIGR1bXBpbmcgb2YgYWN0aW9ucyB0aW1laW5mbyIpCkNjOiBKYW1hbCBIYWRpIFNhbGlt IDxqaHNAbW9qYXRhdHUuY29tPgpTaWduZWQtb2ZmLWJ5OiBSb21hbiBNYXNoYWsgPG1ydkBtb2ph dGF0dS5jb20+CkFja2VkLWJ5OiBKYW1hbCBIYWRpIFNhbGltIDxqaHNAbW9qYXRhdHUuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog aW5jbHVkZS9uZXQvYWN0X2FwaS5oIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlv bnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9hY3RfYXBpLmgg Yi9pbmNsdWRlL25ldC9hY3RfYXBpLmgKaW5kZXggNzEzNDdhOTBhOWQxLi4wNTBjMDI0NmRlZTgg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2FjdF9hcGkuaAorKysgYi9pbmNsdWRlL25ldC9hY3Rf YXBpLmgKQEAgLTY5LDcgKzY5LDggQEAgc3RhdGljIGlubGluZSB2b2lkIHRjZl90bV9kdW1wKHN0 cnVjdCB0Y2ZfdCAqZHRtLCBjb25zdCBzdHJ1Y3QgdGNmX3QgKnN0bSkKIHsKIAlkdG0tPmluc3Rh bGwgPSBqaWZmaWVzX3RvX2Nsb2NrX3QoamlmZmllcyAtIHN0bS0+aW5zdGFsbCk7CiAJZHRtLT5s YXN0dXNlID0gamlmZmllc190b19jbG9ja190KGppZmZpZXMgLSBzdG0tPmxhc3R1c2UpOwotCWR0 bS0+Zmlyc3R1c2UgPSBqaWZmaWVzX3RvX2Nsb2NrX3QoamlmZmllcyAtIHN0bS0+Zmlyc3R1c2Up OworCWR0bS0+Zmlyc3R1c2UgPSBzdG0tPmZpcnN0dXNlID8KKwkJamlmZmllc190b19jbG9ja190 KGppZmZpZXMgLSBzdG0tPmZpcnN0dXNlKSA6IDA7CiAJZHRtLT5leHBpcmVzID0gamlmZmllc190 b19jbG9ja190KHN0bS0+ZXhwaXJlcyk7CiB9CiAKLS0gCjIuMjYuMgoKCkZyb20gYzc3M2U2Njc5 ZDVmNGNlZTBlYThhOTRiYjJiZDU2MmJiMzYyZWM0MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogVmluYXkgS3VtYXIgWWFkYXYgPHZpbmF5LnlhZGF2QGNoZWxzaW8uY29tPgpEYXRlOiBT YXQsIDIzIE1heSAyMDIwIDAxOjQwOjMxICswNTMwClN1YmplY3Q6IFtQQVRDSCAxNy8zM10gbmV0 L3RsczogZml4IHJhY2UgY29uZGl0aW9uIGNhdXNpbmcga2VybmVsIHBhbmljCgpbIFVwc3RyZWFt IGNvbW1pdCAwY2FkYTMzMjQxZDlkZTIwNTUyMmUzODU4YjE4ZTUwNmNhNWNjZTJjIF0KCnRsc19z d19yZWN2bXNnKCkgYW5kIHRsc19kZWNyeXB0X2RvbmUoKSBjYW4gYmUgcnVuIGNvbmN1cnJlbnRs eS4KLy8gdGxzX3N3X3JlY3Ztc2coKQoJaWYgKGF0b21pY19yZWFkKCZjdHgtPmRlY3J5cHRfcGVu ZGluZykpCgkJY3J5cHRvX3dhaXRfcmVxKC1FSU5QUk9HUkVTUywgJmN0eC0+YXN5bmNfd2FpdCk7 CgllbHNlCgkJcmVpbml0X2NvbXBsZXRpb24oJmN0eC0+YXN5bmNfd2FpdC5jb21wbGV0aW9uKTsK Ci8vdGxzX2RlY3J5cHRfZG9uZSgpCiAgCXBlbmRpbmcgPSBhdG9taWNfZGVjX3JldHVybigmY3R4 LT5kZWNyeXB0X3BlbmRpbmcpOwoKICAJaWYgKCFwZW5kaW5nICYmIFJFQURfT05DRShjdHgtPmFz eW5jX25vdGlmeSkpCiAgCQljb21wbGV0ZSgmY3R4LT5hc3luY193YWl0LmNvbXBsZXRpb24pOwoK Q29uc2lkZXIgdGhlIHNjZW5hcmlvIHRsc19kZWNyeXB0X2RvbmUoKSBpcyBhYm91dCB0byBydW4g Y29tcGxldGUoKQoKCWlmICghcGVuZGluZyAmJiBSRUFEX09OQ0UoY3R4LT5hc3luY19ub3RpZnkp KQoKYW5kIHRsc19zd19yZWN2bXNnKCkgcmVhZHMgZGVjcnlwdF9wZW5kaW5nID09IDAsIGRvZXMg cmVpbml0X2NvbXBsZXRpb24oKSwKdGhlbiB0bHNfZGVjcnlwdF9kb25lKCkgcnVucyBjb21wbGV0 ZSgpLiBUaGlzIHNlcXVlbmNlIG9mIGV4ZWN1dGlvbgpyZXN1bHRzIGluIHdyb25nIGNvbXBsZXRp b24uIENvbnNlcXVlbnRseSwgZm9yIG5leHQgZGVjcnlwdCByZXF1ZXN0LAppdCB3aWxsIG5vdCB3 YWl0IGZvciBjb21wbGV0aW9uLCBldmVudHVhbGx5IG9uIGNvbm5lY3Rpb24gY2xvc2UsIGNyeXB0 bwpyZXNvdXJjZXMgZnJlZWQsIHRoZXJlIGlzIG5vIHdheSB0byBoYW5kbGUgcGVuZGluZyBkZWNy eXB0IHJlc3BvbnNlLgoKVGhpcyByYWNlIGNvbmRpdGlvbiBjYW4gYmUgYXZvaWRlZCBieSBoYXZp bmcgYXRvbWljX3JlYWQoKSBtdXR1YWxseQpleGNsdXNpdmUgd2l0aCBhdG9taWNfZGVjX3JldHVy bigpLGNvbXBsZXRlKCkuSW50b2R1Y2VkIHNwaW4gbG9jayB0bwplbnN1cmUgdGhlIG11dHVhbCBl eGNsdXRpb24uCgpBZGRyZXNzZWQgc2ltaWxhciBwcm9ibGVtIGluIHR4IGRpcmVjdGlvbi4KCnYx LT52MjoKLSBNb3JlIHJlYWRhYmxlIGNvbW1pdCBtZXNzYWdlLgotIENvcnJlY3RlZCB0aGUgbG9j ayB0byBmaXggbmV3IHJhY2Ugc2NlbmFyaW8uCi0gUmVtb3ZlZCBiYXJyaWVyIHdoaWNoIGlzIG5v dCBuZWVkZWQgbm93LgoKRml4ZXM6IGE0MjA1NWU4ZDJjMyAoIm5ldC90bHM6IEFkZCBzdXBwb3J0 IGZvciBhc3luYyBlbmNyeXB0aW9uIG9mIHJlY29yZHMgZm9yIHBlcmZvcm1hbmNlIikKU2lnbmVk LW9mZi1ieTogVmluYXkgS3VtYXIgWWFkYXYgPHZpbmF5LnlhZGF2QGNoZWxzaW8uY29tPgpSZXZp ZXdlZC1ieTogSmFrdWIgS2ljaW5za2kgPGt1YmFAa2VybmVsLm9yZz4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbmV0L3Rs cy5oIHwgIDQgKysrKwogbmV0L3Rscy90bHNfc3cuYyAgfCAzMyArKysrKysrKysrKysrKysrKysr KysrKysrKystLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMzEgaW5zZXJ0aW9ucygrKSwgNiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC90bHMuaCBiL2luY2x1ZGUvbmV0L3Rs cy5oCmluZGV4IGJmOWViNDgyMzkzMy4uMThjZDRmNDE4NDY0IDEwMDY0NAotLS0gYS9pbmNsdWRl L25ldC90bHMuaAorKysgYi9pbmNsdWRlL25ldC90bHMuaApAQCAtMTM1LDYgKzEzNSw4IEBAIHN0 cnVjdCB0bHNfc3dfY29udGV4dF90eCB7CiAJc3RydWN0IHRsc19yZWMgKm9wZW5fcmVjOwogCXN0 cnVjdCBsaXN0X2hlYWQgdHhfbGlzdDsKIAlhdG9taWNfdCBlbmNyeXB0X3BlbmRpbmc7CisJLyog cHJvdGVjdCBjcnlwdG9fd2FpdCB3aXRoIGVuY3J5cHRfcGVuZGluZyAqLworCXNwaW5sb2NrX3Qg ZW5jcnlwdF9jb21wbF9sb2NrOwogCWludCBhc3luY19ub3RpZnk7CiAJdTggYXN5bmNfY2FwYWJs ZToxOwogCkBAIC0xNTUsNiArMTU3LDggQEAgc3RydWN0IHRsc19zd19jb250ZXh0X3J4IHsKIAl1 OCBhc3luY19jYXBhYmxlOjE7CiAJdTggZGVjcnlwdGVkOjE7CiAJYXRvbWljX3QgZGVjcnlwdF9w ZW5kaW5nOworCS8qIHByb3RlY3QgY3J5cHRvX3dhaXQgd2l0aCBkZWNyeXB0X3BlbmRpbmcqLwor CXNwaW5sb2NrX3QgZGVjcnlwdF9jb21wbF9sb2NrOwogCWJvb2wgYXN5bmNfbm90aWZ5OwogfTsK IApkaWZmIC0tZ2l0IGEvbmV0L3Rscy90bHNfc3cuYyBiL25ldC90bHMvdGxzX3N3LmMKaW5kZXgg ZTIzZjk0YTU1NDliLi5mZmEzY2JjNTQ0OWQgMTAwNjQ0Ci0tLSBhL25ldC90bHMvdGxzX3N3LmMK KysrIGIvbmV0L3Rscy90bHNfc3cuYwpAQCAtMjA2LDEwICsyMDYsMTIgQEAgc3RhdGljIHZvaWQg dGxzX2RlY3J5cHRfZG9uZShzdHJ1Y3QgY3J5cHRvX2FzeW5jX3JlcXVlc3QgKnJlcSwgaW50IGVy cikKIAogCWtmcmVlKGFlYWRfcmVxKTsKIAorCXNwaW5fbG9ja19iaCgmY3R4LT5kZWNyeXB0X2Nv bXBsX2xvY2spOwogCXBlbmRpbmcgPSBhdG9taWNfZGVjX3JldHVybigmY3R4LT5kZWNyeXB0X3Bl bmRpbmcpOwogCi0JaWYgKCFwZW5kaW5nICYmIFJFQURfT05DRShjdHgtPmFzeW5jX25vdGlmeSkp CisJaWYgKCFwZW5kaW5nICYmIGN0eC0+YXN5bmNfbm90aWZ5KQogCQljb21wbGV0ZSgmY3R4LT5h c3luY193YWl0LmNvbXBsZXRpb24pOworCXNwaW5fdW5sb2NrX2JoKCZjdHgtPmRlY3J5cHRfY29t cGxfbG9jayk7CiB9CiAKIHN0YXRpYyBpbnQgdGxzX2RvX2RlY3J5cHRpb24oc3RydWN0IHNvY2sg KnNrLApAQCAtNDY3LDEwICs0NjksMTIgQEAgc3RhdGljIHZvaWQgdGxzX2VuY3J5cHRfZG9uZShz dHJ1Y3QgY3J5cHRvX2FzeW5jX3JlcXVlc3QgKnJlcSwgaW50IGVycikKIAkJCXJlYWR5ID0gdHJ1 ZTsKIAl9CiAKKwlzcGluX2xvY2tfYmgoJmN0eC0+ZW5jcnlwdF9jb21wbF9sb2NrKTsKIAlwZW5k aW5nID0gYXRvbWljX2RlY19yZXR1cm4oJmN0eC0+ZW5jcnlwdF9wZW5kaW5nKTsKIAotCWlmICgh cGVuZGluZyAmJiBSRUFEX09OQ0UoY3R4LT5hc3luY19ub3RpZnkpKQorCWlmICghcGVuZGluZyAm JiBjdHgtPmFzeW5jX25vdGlmeSkKIAkJY29tcGxldGUoJmN0eC0+YXN5bmNfd2FpdC5jb21wbGV0 aW9uKTsKKwlzcGluX3VubG9ja19iaCgmY3R4LT5lbmNyeXB0X2NvbXBsX2xvY2spOwogCiAJaWYg KCFyZWFkeSkKIAkJcmV0dXJuOwpAQCAtOTI2LDYgKzkzMCw3IEBAIGludCB0bHNfc3dfc2VuZG1z ZyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBtc2doZHIgKm1zZywgc2l6ZV90IHNpemUpCiAJaW50 IG51bV96YyA9IDA7CiAJaW50IG9yaWdfc2l6ZTsKIAlpbnQgcmV0ID0gMDsKKwlpbnQgcGVuZGlu ZzsKIAogCWlmIChtc2ctPm1zZ19mbGFncyAmIH4oTVNHX01PUkUgfCBNU0dfRE9OVFdBSVQgfCBN U0dfTk9TSUdOQUwpKQogCQlyZXR1cm4gLUVPUE5PVFNVUFA7CkBAIC0xMDkyLDEzICsxMDk3LDE5 IEBAIGludCB0bHNfc3dfc2VuZG1zZyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBtc2doZHIgKm1z Zywgc2l6ZV90IHNpemUpCiAJCWdvdG8gc2VuZF9lbmQ7CiAJfSBlbHNlIGlmIChudW1femMpIHsK IAkJLyogV2FpdCBmb3IgcGVuZGluZyBlbmNyeXB0aW9ucyB0byBnZXQgY29tcGxldGVkICovCi0J CXNtcF9zdG9yZV9tYihjdHgtPmFzeW5jX25vdGlmeSwgdHJ1ZSk7CisJCXNwaW5fbG9ja19iaCgm Y3R4LT5lbmNyeXB0X2NvbXBsX2xvY2spOworCQljdHgtPmFzeW5jX25vdGlmeSA9IHRydWU7CiAK LQkJaWYgKGF0b21pY19yZWFkKCZjdHgtPmVuY3J5cHRfcGVuZGluZykpCisJCXBlbmRpbmcgPSBh dG9taWNfcmVhZCgmY3R4LT5lbmNyeXB0X3BlbmRpbmcpOworCQlzcGluX3VubG9ja19iaCgmY3R4 LT5lbmNyeXB0X2NvbXBsX2xvY2spOworCQlpZiAocGVuZGluZykKIAkJCWNyeXB0b193YWl0X3Jl cSgtRUlOUFJPR1JFU1MsICZjdHgtPmFzeW5jX3dhaXQpOwogCQllbHNlCiAJCQlyZWluaXRfY29t cGxldGlvbigmY3R4LT5hc3luY193YWl0LmNvbXBsZXRpb24pOwogCisJCS8qIFRoZXJlIGNhbiBi ZSBubyBjb25jdXJyZW50IGFjY2Vzc2VzLCBzaW5jZSB3ZSBoYXZlIG5vCisJCSAqIHBlbmRpbmcg ZW5jcnlwdCBvcGVyYXRpb25zCisJCSAqLwogCQlXUklURV9PTkNFKGN0eC0+YXN5bmNfbm90aWZ5 LCBmYWxzZSk7CiAKIAkJaWYgKGN0eC0+YXN5bmNfd2FpdC5lcnIpIHsKQEAgLTE3MjksNiArMTc0 MCw3IEBAIGludCB0bHNfc3dfcmVjdm1zZyhzdHJ1Y3Qgc29jayAqc2ssCiAJYm9vbCBpc19rdmVj ID0gaW92X2l0ZXJfaXNfa3ZlYygmbXNnLT5tc2dfaXRlcik7CiAJYm9vbCBpc19wZWVrID0gZmxh Z3MgJiBNU0dfUEVFSzsKIAlpbnQgbnVtX2FzeW5jID0gMDsKKwlpbnQgcGVuZGluZzsKIAogCWZs YWdzIHw9IG5vbmJsb2NrOwogCkBAIC0xODkxLDggKzE5MDMsMTEgQEAgaW50IHRsc19zd19yZWN2 bXNnKHN0cnVjdCBzb2NrICpzaywKIHJlY3ZfZW5kOgogCWlmIChudW1fYXN5bmMpIHsKIAkJLyog V2FpdCBmb3IgYWxsIHByZXZpb3VzbHkgc3VibWl0dGVkIHJlY29yZHMgdG8gYmUgZGVjcnlwdGVk ICovCi0JCXNtcF9zdG9yZV9tYihjdHgtPmFzeW5jX25vdGlmeSwgdHJ1ZSk7Ci0JCWlmIChhdG9t aWNfcmVhZCgmY3R4LT5kZWNyeXB0X3BlbmRpbmcpKSB7CisJCXNwaW5fbG9ja19iaCgmY3R4LT5k ZWNyeXB0X2NvbXBsX2xvY2spOworCQljdHgtPmFzeW5jX25vdGlmeSA9IHRydWU7CisJCXBlbmRp bmcgPSBhdG9taWNfcmVhZCgmY3R4LT5kZWNyeXB0X3BlbmRpbmcpOworCQlzcGluX3VubG9ja19i aCgmY3R4LT5kZWNyeXB0X2NvbXBsX2xvY2spOworCQlpZiAocGVuZGluZykgewogCQkJZXJyID0g Y3J5cHRvX3dhaXRfcmVxKC1FSU5QUk9HUkVTUywgJmN0eC0+YXN5bmNfd2FpdCk7CiAJCQlpZiAo ZXJyKSB7CiAJCQkJLyogb25lIG9mIGFzeW5jIGRlY3J5cHQgZmFpbGVkICovCkBAIC0xOTA0LDYg KzE5MTksMTAgQEAgaW50IHRsc19zd19yZWN2bXNnKHN0cnVjdCBzb2NrICpzaywKIAkJfSBlbHNl IHsKIAkJCXJlaW5pdF9jb21wbGV0aW9uKCZjdHgtPmFzeW5jX3dhaXQuY29tcGxldGlvbik7CiAJ CX0KKworCQkvKiBUaGVyZSBjYW4gYmUgbm8gY29uY3VycmVudCBhY2Nlc3Nlcywgc2luY2Ugd2Ug aGF2ZSBubworCQkgKiBwZW5kaW5nIGRlY3J5cHQgb3BlcmF0aW9ucworCQkgKi8KIAkJV1JJVEVf T05DRShjdHgtPmFzeW5jX25vdGlmeSwgZmFsc2UpOwogCiAJCS8qIERyYWluIHJlY29yZHMgZnJv bSB0aGUgcnhfbGlzdCAmIGNvcHkgaWYgcmVxdWlyZWQgKi8KQEAgLTIyOTAsNiArMjMwOSw3IEBA IGludCB0bHNfc2V0X3N3X29mZmxvYWQoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgdGxzX2NvbnRl eHQgKmN0eCwgaW50IHR4KQogCiAJaWYgKHR4KSB7CiAJCWNyeXB0b19pbml0X3dhaXQoJnN3X2N0 eF90eC0+YXN5bmNfd2FpdCk7CisJCXNwaW5fbG9ja19pbml0KCZzd19jdHhfdHgtPmVuY3J5cHRf Y29tcGxfbG9jayk7CiAJCWNyeXB0b19pbmZvID0gJmN0eC0+Y3J5cHRvX3NlbmQuaW5mbzsKIAkJ Y2N0eCA9ICZjdHgtPnR4OwogCQlhZWFkID0gJnN3X2N0eF90eC0+YWVhZF9zZW5kOwpAQCAtMjI5 OCw2ICsyMzE4LDcgQEAgaW50IHRsc19zZXRfc3dfb2ZmbG9hZChzdHJ1Y3Qgc29jayAqc2ssIHN0 cnVjdCB0bHNfY29udGV4dCAqY3R4LCBpbnQgdHgpCiAJCXN3X2N0eF90eC0+dHhfd29yay5zayA9 IHNrOwogCX0gZWxzZSB7CiAJCWNyeXB0b19pbml0X3dhaXQoJnN3X2N0eF9yeC0+YXN5bmNfd2Fp dCk7CisJCXNwaW5fbG9ja19pbml0KCZzd19jdHhfcngtPmRlY3J5cHRfY29tcGxfbG9jayk7CiAJ CWNyeXB0b19pbmZvID0gJmN0eC0+Y3J5cHRvX3JlY3YuaW5mbzsKIAkJY2N0eCA9ICZjdHgtPnJ4 OwogCQlza2JfcXVldWVfaGVhZF9pbml0KCZzd19jdHhfcngtPnJ4X2xpc3QpOwotLSAKMi4yNi4y CgoKRnJvbSA0MzQwODEwM2Q0M2Q0Nzc3NDkzNTY1ZjgxMGFkZjBmNTUxZDE2NGNmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5jb20+CkRh dGU6IFN1biwgMTcgTWF5IDIwMjAgMTE6MjY6MzIgLTA2MDAKU3ViamVjdDogW1BBVENIIDE4LzMz XSBuZXh0aG9wOiBGaXggYXR0cmlidXRlIGNoZWNraW5nIGZvciBncm91cHMKClsgVXBzdHJlYW0g Y29tbWl0IDg0YmU2OWI4NjlhNWE0OTZhNmNmZGU5YjNjMjk1MDkyMDdhMWYxZmEgXQoKRm9yIG5l eHRob3AgZ3JvdXBzLCBhdHRyaWJ1dGVzIGFmdGVyIE5IQV9HUk9VUF9UWVBFIGFyZSBpbnZhbGlk LCBidXQKbmhfY2hlY2tfYXR0cl9ncm91cCBzdGFydHMgY2hlY2tpbmcgYXQgTkhBX0dST1VQLiBU aGUgZ3JvdXAgdHlwZSBkZWZhdWx0cwp0byBtdWx0aXBhdGggYW5kIHRoZSBOSEFfR1JPVVBfVFlQ RSBpcyBjdXJyZW50bHkgb3B0aW9uYWwgc28gdGhpcyBoYXMKc2xpcHBlZCB0aHJvdWdoIHNvIGZh ci4gRml4IHRoZSBhdHRyaWJ1dGUgY2hlY2tpbmcgdG8gaGFuZGxlIHN1cHBvcnQgb2YKbmV3IGdy b3VwIHR5cGVzLgoKRml4ZXM6IDQzMGEwNDkxOTBkZSAoIm5leHRob3A6IEFkZCBzdXBwb3J0IGZv ciBuZXh0aG9wIGdyb3VwcyIpClNpZ25lZC1vZmYtYnk6IEFTU09HQkEgRW1lcnkgPGFzc29nYmEu ZW1lcnlAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBBaGVybiA8ZHNhaGVybkBnbWFp bC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBuZXQvaXB2NC9uZXh0aG9wLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNl cnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9uZXh0aG9wLmMg Yi9uZXQvaXB2NC9uZXh0aG9wLmMKaW5kZXggNDg5YzI3Zjg5NGQ3Li5iMDNlYTcyOGQ5YTMgMTAw NjQ0Ci0tLSBhL25ldC9pcHY0L25leHRob3AuYworKysgYi9uZXQvaXB2NC9uZXh0aG9wLmMKQEAg LTQzNCw3ICs0MzQsNyBAQCBzdGF0aWMgaW50IG5oX2NoZWNrX2F0dHJfZ3JvdXAoc3RydWN0IG5l dCAqbmV0LCBzdHJ1Y3QgbmxhdHRyICp0YltdLAogCQlpZiAoIXZhbGlkX2dyb3VwX25oKG5oLCBs ZW4sIGV4dGFjaykpCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAl9Ci0JZm9yIChpID0gTkhBX0dST1VQ ICsgMTsgaSA8IF9fTkhBX01BWDsgKytpKSB7CisJZm9yIChpID0gTkhBX0dST1VQX1RZUEUgKyAx OyBpIDwgX19OSEFfTUFYOyArK2kpIHsKIAkJaWYgKCF0YltpXSkKIAkJCWNvbnRpbnVlOwogCi0t IAoyLjI2LjIKCgpGcm9tIDU3MDYxMmI0ZTRlNzQzMDMxNTQ3MTllOWE1Zjc4NmE2YzY5MmEyZDUg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1hcmMgUGF5bmUgPG1hcmMucGF5bmVAbWRw c3lzLmNvLnVrPgpEYXRlOiBUdWUsIDE5IE1heSAyMDIwIDE5OjAxOjQ2ICswMTAwClN1YmplY3Q6 IFtQQVRDSCAxOS8zM10gcjgxNTI6IHN1cHBvcnQgYWRkaXRpb25hbCBNaWNyb3NvZnQgU3VyZmFj ZSBFdGhlcm5ldAogQWRhcHRlciB2YXJpYW50CgpbIFVwc3RyZWFtIGNvbW1pdCBjMjdhMjA0Mzgz NjE2ZWZiYTVhNDE5NDA3NWU5MDgxOTk2MWZmNjZhIF0KCkRldmljZSBpZCAwOTI3IGlzIHRoZSBS VEw4MTUzQi1iYXNlZCBjb21wb25lbnQgb2YgdGhlICdTdXJmYWNlIFVTQi1DIHRvCkV0aGVybmV0 IGFuZCBVU0IgQWRhcHRlcicgYW5kIG1heSBiZSB1c2VkIGFzIGEgY29tcG9uZW50IG9mIG90aGVy IGRldmljZXMKaW4gZnV0dXJlLiBUZXN0ZWQgYW5kIHdvcmtpbmcgd2l0aCB0aGUgcjgxNTIgZHJp dmVyLgoKVXBkYXRlIHRoZSBjZGNfZXRoZXIgYmxhY2tsaXN0IGR1ZSB0byB0aGUgUlRMODE1MyAn bmV0d29yayBqYW0gb24gc3VzcGVuZCcKaXNzdWUgd2hpY2ggdGhpcyBkZXZpY2Ugd2lsbCBjYXVz ZSAocGVyc29uYWxseSBjb25maXJtZWQpLgoKU2lnbmVkLW9mZi1ieTogTWFyYyBQYXluZSA8bWFy Yy5wYXluZUBtZHBzeXMuY28udWs+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC91c2IvY2RjX2V0aGVyLmMgfCAxMSAr KysrKysrKystLQogZHJpdmVycy9uZXQvdXNiL3I4MTUyLmMgICAgIHwgIDEgKwogMiBmaWxlcyBj aGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L3VzYi9jZGNfZXRoZXIuYyBiL2RyaXZlcnMvbmV0L3VzYi9jZGNfZXRoZXIuYwpp bmRleCAwY2RiMmNlNDc2NDUuLmE2NTc5NDNjOWYwMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv dXNiL2NkY19ldGhlci5jCisrKyBiL2RyaXZlcnMvbmV0L3VzYi9jZGNfZXRoZXIuYwpAQCAtODE1 LDE0ICs4MTUsMjEgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkCXByb2R1Y3Rz W10gPSB7CiAJLmRyaXZlcl9pbmZvID0gMCwKIH0sCiAKLS8qIE1pY3Jvc29mdCBTdXJmYWNlIDMg ZG9jayAoYmFzZWQgb24gUmVhbHRlayBSVEw4MTUzKSAqLworLyogTWljcm9zb2Z0IFN1cmZhY2Ug RXRoZXJuZXQgQWRhcHRlciAoYmFzZWQgb24gUmVhbHRlayBSVEw4MTUzKSAqLwogewogCVVTQl9E RVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKE1JQ1JPU09GVF9WRU5ET1JfSUQsIDB4MDdjNiwgVVNC X0NMQVNTX0NPTU0sCiAJCQlVU0JfQ0RDX1NVQkNMQVNTX0VUSEVSTkVULCBVU0JfQ0RDX1BST1RP X05PTkUpLAogCS5kcml2ZXJfaW5mbyA9IDAsCiB9LAogCi0JLyogVFAtTElOSyBVRTMwMCBVU0Ig My4wIEV0aGVybmV0IEFkYXB0ZXJzIChiYXNlZCBvbiBSZWFsdGVrIFJUTDgxNTMpICovCisvKiBN aWNyb3NvZnQgU3VyZmFjZSBFdGhlcm5ldCBBZGFwdGVyIChiYXNlZCBvbiBSZWFsdGVrIFJUTDgx NTNCKSAqLworeworCVVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKE1JQ1JPU09GVF9WRU5E T1JfSUQsIDB4MDkyNywgVVNCX0NMQVNTX0NPTU0sCisJCQlVU0JfQ0RDX1NVQkNMQVNTX0VUSEVS TkVULCBVU0JfQ0RDX1BST1RPX05PTkUpLAorCS5kcml2ZXJfaW5mbyA9IDAsCit9LAorCisvKiBU UC1MSU5LIFVFMzAwIFVTQiAzLjAgRXRoZXJuZXQgQWRhcHRlcnMgKGJhc2VkIG9uIFJlYWx0ZWsg UlRMODE1MykgKi8KIHsKIAlVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhUUExJTktfVkVO RE9SX0lELCAweDA2MDEsIFVTQl9DTEFTU19DT01NLAogCQkJVVNCX0NEQ19TVUJDTEFTU19FVEhF Uk5FVCwgVVNCX0NEQ19QUk9UT19OT05FKSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3VzYi9y ODE1Mi5jIGIvZHJpdmVycy9uZXQvdXNiL3I4MTUyLmMKaW5kZXggOTViMTljZTk2NTEzLi43Yzhj NDU5ODRhNWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3VzYi9yODE1Mi5jCisrKyBiL2RyaXZl cnMvbmV0L3VzYi9yODE1Mi5jCkBAIC02OTAxLDYgKzY5MDEsNyBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IHVzYl9kZXZpY2VfaWQgcnRsODE1Ml90YWJsZVtdID0gewogCXtSRUFMVEVLX1VTQl9ERVZJ Q0UoVkVORE9SX0lEX1JFQUxURUssIDB4ODE1Myl9LAogCXtSRUFMVEVLX1VTQl9ERVZJQ0UoVkVO RE9SX0lEX01JQ1JPU09GVCwgMHgwN2FiKX0sCiAJe1JFQUxURUtfVVNCX0RFVklDRShWRU5ET1Jf SURfTUlDUk9TT0ZULCAweDA3YzYpfSwKKwl7UkVBTFRFS19VU0JfREVWSUNFKFZFTkRPUl9JRF9N SUNST1NPRlQsIDB4MDkyNyl9LAogCXtSRUFMVEVLX1VTQl9ERVZJQ0UoVkVORE9SX0lEX1NBTVNV TkcsIDB4YTEwMSl9LAogCXtSRUFMVEVLX1VTQl9ERVZJQ0UoVkVORE9SX0lEX0xFTk9WTywgIDB4 MzA0Zil9LAogCXtSRUFMVEVLX1VTQl9ERVZJQ0UoVkVORE9SX0lEX0xFTk9WTywgIDB4MzA2Mil9 LAotLSAKMi4yNi4yCgoKRnJvbSA3Y2ViNmRjNjU1NjdlMGZmODViZTI0NWU3YzMxNjE5NzU5M2M3 ZmY4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOZWlsIEhvcm1hbiA8bmhvcm1hbkB0 dXhkcml2ZXIuY29tPgpEYXRlOiBUdWUsIDE5IE1heSAyMDIwIDE2OjA0OjA1IC0wNDAwClN1Ympl Y3Q6IFtQQVRDSCAyMC8zM10gc2N0cDogRG9uJ3QgYWRkIHRoZSBzaHV0ZG93biB0aW1lciBpZiBp dHMgYWxyZWFkeSBiZWVuCiBhZGRlZAoKWyBVcHN0cmVhbSBjb21taXQgMjBhNzg1YWE1MmM4MjI0 NjA1NWEwODllNTVkZjlkYWM0N2Q2N2RhMSBdCgpUaGlzIEJVRyBoYWx0IHdhcyByZXBvcnRlZCBh IHdoaWxlIGJhY2ssIGJ1dCB0aGUgcGF0Y2ggc29tZWhvdyBnb3QKbWlzc2VkOgoKUElEOiAyODc5 ICAgVEFTSzogYzE2YWRhYTAgIENQVTogMSAgIENPTU1BTkQ6ICJzY3RwbiIKICMwIFtmNDE4ZGQy OF0gY3Jhc2hfa2V4ZWMgYXQgYzA0YTdkOGMKICMxIFtmNDE4ZGQ3Y10gb29wc19lbmQgYXQgYzA4 NjNlMDIKICMyIFtmNDE4ZGQ5MF0gZG9faW52YWxpZF9vcCBhdCBjMDQwYWFjYQogIzMgW2Y0MThk ZTI4XSBlcnJvcl9jb2RlICh2aWEgaW52YWxpZF9vcCkgYXQgYzA4NjMxYTUKICAgIEVBWDogZjM0 YmFhYzAgIEVCWDogMDAwMDAwOTAgIEVDWDogZjQxOGRlYjAgIEVEWDogZjU1NDI5NTAgIEVCUDog MDAwMDAwMDAKICAgIERTOiAgMDA3YiAgICAgIEVTSTogZjM0YmE4MDAgIEVTOiAgMDA3YiAgICAg IEVESTogZjQxOGRlYTAgIEdTOiAgMDBlMAogICAgQ1M6ICAwMDYwICAgICAgRUlQOiBjMDQ2ZmE1 ZSAgRVJSOiBmZmZmZmZmZiAgRUZMQUdTOiAwMDAxMDI4NgogIzQgW2Y0MThkZTVjXSBhZGRfdGlt ZXIgYXQgYzA0NmZhNWUKICM1IFtmNDE4ZGU2OF0gc2N0cF9kb19zbSBhdCBmOGRiOGM3NyBbc2N0 cF0KICM2IFtmNDE4ZGYzMF0gc2N0cF9wcmltaXRpdmVfU0hVVERPV04gYXQgZjhkY2MxYjUgW3Nj dHBdCiAjNyBbZjQxOGRmNDhdIGluZXRfc2h1dGRvd24gYXQgYzA4MGJhZjkKICM4IFtmNDE4ZGY1 Y10gc3lzX3NodXRkb3duIGF0IGMwNzllZWRmCiAjOSBbZjQxOGRmNzBdIHN5c19zb2NrZXRjYWxs IGF0IGMwNzlmZTg4CiAgICBFQVg6IGZmZmZmZmRhICBFQlg6IDAwMDAwMDBkICBFQ1g6IGJmY2Vl YTkwICBFRFg6IDA5MzdhZjk4CiAgICBEUzogIDAwN2IgICAgICBFU0k6IDAwMDAwMDBjICBFUzog IDAwN2IgICAgICBFREk6IGI3MTUwYWU0CiAgICBTUzogIDAwN2IgICAgICBFU1A6IGJmY2VlYTdj ICBFQlA6IGJmY2VlYWE4ICBHUzogIDAwMzMKICAgIENTOiAgMDA3MyAgICAgIEVJUDogYjc3NWM0 MjQgIEVSUjogMDAwMDAwNjYgIEVGTEFHUzogMDAwMDAyODIKCkl0IGFwcGVhcnMgdGhhdCB0aGUg c2lkZSBlZmZlY3QgdGhhdCBzdGFydHMgdGhlIHNodXRkb3duIHRpbWVyIHdhcyBwcm9jZXNzZWQK bXVsdGlwbGUgdGltZXMsIHdoaWNoIGNhbiBoYXBwZW4gYXMgbXVsdGlwbGUgcGF0aHMgY2FuIHRy aWdnZXIgaXQuICBUaGlzIG9mCmNvdXJzZSBsZWFkcyB0byB0aGUgQlVHIGhhbHQgaW4gYWRkX3Rp bWVyIGdldHRpbmcgY2FsbGVkLgoKRml4IHNlZW1zIHByZXR0eSBzdHJhaWdodGZvcndhcmQsIGp1 c3QgY2hlY2sgYmVmb3JlIHRoZSB0aW1lciBpcyBhZGRlZCBpZiBpdHMKYWxyZWFkeSBiZWVuIHN0 YXJ0ZWQuICBJZiBpdCBoYXMgbW9kIHRoZSB0aW1lciBpbnN0ZWFkIHRvIG1pbihjdXJyZW50CmV4 cGlyYXRpb24sIG5ldyBleHBpcmF0aW9uKQoKSXRzIGJlZW4gdGVzdGVkIGJ1dCBub3QgY29uZmly bWVkIHRvIGZpeCB0aGUgcHJvYmxlbSwgYXMgdGhlIGlzc3VlIGhhcyBvbmx5Cm9jY3VyZWQgaW4g cHJvZHVjdGlvbiBlbnZpcm9ubWVudHMgd2hlcmUgdGVzdCBrZXJuZWxzIGFyZSBlbmpvaW5lZCBm cm9tIGJlaW5nCmluc3RhbGxlZC4gIEl0IGFwcGVhcnMgdG8gYmUgYSBzYW5lIGZpeCB0byBtZSB0 aG91Z2guICBBbHNvLCByZWNlbnRlbHksCkplcmUgZm91bmQgYSByZXByb2R1Y2VyIHBvc3RlZCBv biBsaXN0IHRvIGNvbmZpcm0gdGhhdCB0aGlzIHJlc29sdmVzIHRoZQppc3N1ZXMKClNpZ25lZC1v ZmYtYnk6IE5laWwgSG9ybWFuIDxuaG9ybWFuQHR1eGRyaXZlci5jb20+CkNDOiBWbGFkIFlhc2V2 aWNoIDx2eWFzZXZpY2hAZ21haWwuY29tPgpDQzogIkRhdmlkIFMuIE1pbGxlciIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+CkNDOiBqZXJlLmxlcHBhbmVuQG5va2lhLmNvbQpDQzogbWFyY2Vsby5sZWl0 bmVyQGdtYWlsLmNvbQpDQzogbmV0ZGV2QHZnZXIua2VybmVsLm9yZwpBY2tlZC1ieTogTWFyY2Vs byBSaWNhcmRvIExlaXRuZXIgPG1hcmNlbG8ubGVpdG5lckBnbWFpbC5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2N0cC9z bV9zaWRlZWZmZWN0LmMgfCAxNCArKysrKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDExIGlu c2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvc21fc2lk ZWVmZmVjdC5jIGIvbmV0L3NjdHAvc21fc2lkZWVmZmVjdC5jCmluZGV4IDJiYzI5NDYzZTFkYy4u OWYzNmZlOTExZDA4IDEwMDY0NAotLS0gYS9uZXQvc2N0cC9zbV9zaWRlZWZmZWN0LmMKKysrIGIv bmV0L3NjdHAvc21fc2lkZWVmZmVjdC5jCkBAIC0xNTIzLDkgKzE1MjMsMTcgQEAgc3RhdGljIGlu dCBzY3RwX2NtZF9pbnRlcnByZXRlcihlbnVtIHNjdHBfZXZlbnRfdHlwZSBldmVudF90eXBlLAog CQkJdGltZW91dCA9IGFzb2MtPnRpbWVvdXRzW2NtZC0+b2JqLnRvXTsKIAkJCUJVR19PTighdGlt ZW91dCk7CiAKLQkJCXRpbWVyLT5leHBpcmVzID0gamlmZmllcyArIHRpbWVvdXQ7Ci0JCQlzY3Rw X2Fzc29jaWF0aW9uX2hvbGQoYXNvYyk7Ci0JCQlhZGRfdGltZXIodGltZXIpOworCQkJLyoKKwkJ CSAqIFNDVFAgaGFzIGEgaGFyZCB0aW1lIHdpdGggdGltZXIgc3RhcnRzLiAgQmVjYXVzZSB3ZSBw cm9jZXNzCisJCQkgKiB0aW1lciBzdGFydHMgYXMgc2lkZSBlZmZlY3RzLCBpdCBjYW4gYmUgaGFy ZCB0byB0ZWxsIGlmIHdlCisJCQkgKiBoYXZlIGFscmVhZHkgc3RhcnRlZCBhIHRpbWVyIG9yIG5v dCwgd2hpY2ggbGVhZHMgdG8gQlVHCisJCQkgKiBoYWx0cyB3aGVuIHdlIGNhbGwgYWRkX3RpbWVy LiBTbyBoZXJlLCBpbnN0ZWFkIG9mIGp1c3Qgc3RhcnRpbmcKKwkJCSAqIGEgdGltZXIsIGlmIHRo ZSB0aW1lciBpcyBhbHJlYWR5IHN0YXJ0ZWQsIGFuZCBqdXN0IG1vZAorCQkJICogdGhlIHRpbWVy IHdpdGggdGhlIHNob3J0ZXIgb2YgdGhlIHR3byBleHBpcmF0aW9uIHRpbWVzCisJCQkgKi8KKwkJ CWlmICghdGltZXJfcGVuZGluZyh0aW1lcikpCisJCQkJc2N0cF9hc3NvY2lhdGlvbl9ob2xkKGFz b2MpOworCQkJdGltZXJfcmVkdWNlKHRpbWVyLCBqaWZmaWVzICsgdGltZW91dCk7CiAJCQlicmVh azsKIAogCQljYXNlIFNDVFBfQ01EX1RJTUVSX1JFU1RBUlQ6Ci0tIAoyLjI2LjIKCgpGcm9tIDZl NGE1YmQ5ODFlNmRmZWIzYmQ0MmYxZDUwMzhlMjE3YmRjNTY1MzUgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206ID0/VVRGLTg/cT9KZXJlPTIwTGVwcD1DMz1BNG5lbj89IDxqZXJlLmxlcHBh bmVuQG5va2lhLmNvbT4KRGF0ZTogV2VkLCAyMCBNYXkgMjAyMCAxODoxNTozMSArMDMwMApTdWJq ZWN0OiBbUEFUQ0ggMjEvMzNdIHNjdHA6IFN0YXJ0IHNodXRkb3duIG9uIGFzc29jaWF0aW9uIHJl c3RhcnQgaWYgaW4KIFNIVVRET1dOLVNFTlQgc3RhdGUgYW5kIHNvY2tldCBpcyBjbG9zZWQKTUlN RS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNv bnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IGQzZThlNGMx MTg3MDQxMzc4OWYwMjlhNzFlNzJhZTZlOTcxZmU2NzggXQoKQ29tbWl0IGJkZjZmYTUyZjAxYiAo InNjdHA6IGhhbmRsZSBhc3NvY2lhdGlvbiByZXN0YXJ0cyB3aGVuIHRoZQpzb2NrZXQgaXMgY2xv c2VkLiIpIHN0YXJ0cyBzaHV0ZG93biB3aGVuIGFuIGFzc29jaWF0aW9uIGlzIHJlc3RhcnRlZCwK aWYgaW4gU0hVVERPV04tUEVORElORyBzdGF0ZSBhbmQgdGhlIHNvY2tldCBpcyBjbG9zZWQuIEhv d2V2ZXIsIHRoZQpyYXRpb25hbGUgc3RhdGVkIGluIHRoYXQgY29tbWl0IGFwcGxpZXMgYWxzbyB3 aGVuIGluIFNIVVRET1dOLVNFTlQKc3RhdGUgLSB3ZSBkb24ndCB3YW50IHRvIG1vdmUgYW4gYXNz b2NpYXRpb24gdG8gRVNUQUJMSVNIRUQgc3RhdGUgd2hlbgp0aGUgc29ja2V0IGhhcyBiZWVuIGNs b3NlZCwgYmVjYXVzZSB0aGF0IHJlc3VsdHMgaW4gYW4gYXNzb2NpYXRpb24KdGhhdCBpcyB1bnJl YWNoYWJsZSBmcm9tIHVzZXIgc3BhY2UuCgpUaGUgcHJvYmxlbSBzY2VuYXJpbzoKCjEuICBDbGll bnQgY3Jhc2hlcyBhbmQvb3IgcmVzdGFydHMuCgoyLiAgU2VydmVyICh1c2luZyBvbmUtdG8tb25l IHNvY2tldCkgY2FsbHMgY2xvc2UoKS4gU0hVVERPV04gaXMgbG9zdC4KCjMuICBDbGllbnQgcmVj b25uZWN0cyB1c2luZyB0aGUgc2FtZSBhZGRyZXNzZXMgYW5kIHBvcnRzLgoKNC4gIFNlcnZlcidz IGFzc29jaWF0aW9uIGlzIHJlc3RhcnRlZC4gVGhlIGFzc29jaWF0aW9uIGFuZCB0aGUgc29ja2V0 CiAgICBtb3ZlIHRvIEVTVEFCTElTSEVEIHN0YXRlLCBldmVuIHRob3VnaCB0aGUgc2VydmVyIHBy b2Nlc3MgaGFzCiAgICBjbG9zZWQgaXRzIGRlc2NyaXB0b3IuCgpBbHNvLCBhZnRlciBzdGVwIDQg d2hlbiB0aGUgc2VydmVyIHByb2Nlc3MgZXhpdHMsIHNvbWUgcmVzb3VyY2VzIGFyZQpsZWFrZWQg aW4gYW4gYXR0ZW1wdCB0byByZWxlYXNlIHRoZSB1bmRlcmx5aW5nIGluZXQgc29jayBzdHJ1Y3R1 cmUgaW4KRVNUQUJMSVNIRUQgc3RhdGU6CgogICAgSVB2NDogQXR0ZW1wdCB0byByZWxlYXNlIFRD UCBzb2NrZXQgaW4gc3RhdGUgMSAwMDAwMDAwMDM3NzI4OGM3CgpGaXggYnkgYWN0aW5nIHRoZSBz YW1lIHdheSBhcyBpbiBTSFVURE9XTi1QRU5ESU5HIHN0YXRlLiBUaGF0IGlzLCBpZgphbiBhc3Nv Y2lhdGlvbiBpcyByZXN0YXJ0ZWQgaW4gU0hVVERPV04tU0VOVCBzdGF0ZSBhbmQgdGhlIHNvY2tl dCBpcwpjbG9zZWQsIHRoZW4gc3RhcnQgc2h1dGRvd24gYW5kIGRvbid0IG1vdmUgdGhlIGFzc29j aWF0aW9uIG9yIHRoZQpzb2NrZXQgdG8gRVNUQUJMSVNIRUQgc3RhdGUuCgpGaXhlczogYmRmNmZh NTJmMDFiICgic2N0cDogaGFuZGxlIGFzc29jaWF0aW9uIHJlc3RhcnRzIHdoZW4gdGhlIHNvY2tl dCBpcyBjbG9zZWQuIikKU2lnbmVkLW9mZi1ieTogSmVyZSBMZXBww6RuZW4gPGplcmUubGVwcGFu ZW5Abm9raWEuY29tPgpBY2tlZC1ieTogTWFyY2VsbyBSaWNhcmRvIExlaXRuZXIgPG1hcmNlbG8u bGVpdG5lckBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYyB8IDkgKysrKystLS0t CiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jIGIvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmMK aW5kZXggMjY3ODhmNGEzYjllLi5lODY2MjBmYmQ5MGYgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3Nt X3N0YXRlZnVucy5jCisrKyBiL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jCkBAIC0xODU2LDEyICsx ODU2LDEzIEBAIHN0YXRpYyBlbnVtIHNjdHBfZGlzcG9zaXRpb24gc2N0cF9zZl9kb19kdXBjb29r X2EoCiAJLyogVXBkYXRlIHRoZSBjb250ZW50IG9mIGN1cnJlbnQgYXNzb2NpYXRpb24uICovCiAJ c2N0cF9hZGRfY21kX3NmKGNvbW1hbmRzLCBTQ1RQX0NNRF9VUERBVEVfQVNTT0MsIFNDVFBfQVNP QyhuZXdfYXNvYykpOwogCXNjdHBfYWRkX2NtZF9zZihjb21tYW5kcywgU0NUUF9DTURfRVZFTlRf VUxQLCBTQ1RQX1VMUEVWRU5UKGV2KSk7Ci0JaWYgKHNjdHBfc3RhdGUoYXNvYywgU0hVVERPV05f UEVORElORykgJiYKKwlpZiAoKHNjdHBfc3RhdGUoYXNvYywgU0hVVERPV05fUEVORElORykgfHwK KwkgICAgIHNjdHBfc3RhdGUoYXNvYywgU0hVVERPV05fU0VOVCkpICYmCiAJICAgIChzY3RwX3Nz dGF0ZShhc29jLT5iYXNlLnNrLCBDTE9TSU5HKSB8fAogCSAgICAgc29ja19mbGFnKGFzb2MtPmJh c2Uuc2ssIFNPQ0tfREVBRCkpKSB7Ci0JCS8qIGlmIHdlcmUgY3VycmVudGx5IGluIFNIVVRET1dO X1BFTkRJTkcsIGJ1dCB0aGUgc29ja2V0Ci0JCSAqIGhhcyBiZWVuIGNsb3NlZCBieSB1c2VyLCBk b24ndCB0cmFuc2l0aW9uIHRvIEVTVEFCTElTSEVELgotCQkgKiBJbnN0ZWFkIHRyaWdnZXIgU0hV VERPV04gYnVuZGxlZCB3aXRoIENPT0tJRV9BQ0suCisJCS8qIElmIHRoZSBzb2NrZXQgaGFzIGJl ZW4gY2xvc2VkIGJ5IHVzZXIsIGRvbid0CisJCSAqIHRyYW5zaXRpb24gdG8gRVNUQUJMSVNIRUQu IEluc3RlYWQgdHJpZ2dlciBTSFVURE9XTgorCQkgKiBidW5kbGVkIHdpdGggQ09PS0lFX0FDSy4K IAkJICovCiAJCXNjdHBfYWRkX2NtZF9zZihjb21tYW5kcywgU0NUUF9DTURfUkVQTFksIFNDVFBf Q0hVTksocmVwbCkpOwogCQlyZXR1cm4gc2N0cF9zZl9kb185XzJfc3RhcnRfc2h1dGRvd24obmV0 LCBlcCwgYXNvYywKLS0gCjIuMjYuMgoKCkZyb20gNmFjODJhZGY1OGRhZjgxYjQyYzY1ZWM2Njhj MzAxOGFiZjI4Y2FjMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0 IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBUaHUsIDIxIE1heSAyMDIwIDExOjI5OjU4IC0w NzAwClN1YmplY3Q6IFtQQVRDSCAyMi8zM10gdGlwYzogYmxvY2sgQkggYmVmb3JlIHVzaW5nIGRz dF9jYWNoZQoKWyBVcHN0cmVhbSBjb21taXQgMTM3ODgxNzQ4NmQ2ODYwZjZhOTI3ZjU3MzQ5MWFm ZTY1Mjg3YWJmMSBdCgpkc3RfY2FjaGVfZ2V0KCkgZG9jdW1lbnRzIGl0IG11c3QgYmUgdXNlZCB3 aXRoIEJIIGRpc2FibGVkLgoKc3lzYm90IHJlcG9ydGVkIDoKCkJVRzogdXNpbmcgc21wX3Byb2Nl c3Nvcl9pZCgpIGluIHByZWVtcHRpYmxlIFswMDAwMDAwMF0gY29kZTogLzIxNjk3CmNhbGxlciBp cyBkc3RfY2FjaGVfZ2V0KzB4M2EvMHhiMCBuZXQvY29yZS9kc3RfY2FjaGUuYzo2OApDUFU6IDAg UElEOiAyMTY5NyBDb21tOiAgTm90IHRhaW50ZWQgNS43LjAtcmM2LXN5emthbGxlciAjMApIYXJk d2FyZSBuYW1lOiBHb29nbGUgR29vZ2xlIENvbXB1dGUgRW5naW5lL0dvb2dsZSBDb21wdXRlIEVu Z2luZSwgQklPUyBHb29nbGUgMDEvMDEvMjAxMQpDYWxsIFRyYWNlOgogX19kdW1wX3N0YWNrIGxp Yi9kdW1wX3N0YWNrLmM6NzcgW2lubGluZV0KIGR1bXBfc3RhY2srMHgxODgvMHgyMGQgbGliL2R1 bXBfc3RhY2suYzoxMTgKIGNoZWNrX3ByZWVtcHRpb25fZGlzYWJsZWQgbGliL3NtcF9wcm9jZXNz b3JfaWQuYzo0NyBbaW5saW5lXQogZGVidWdfc21wX3Byb2Nlc3Nvcl9pZC5jb2xkKzB4ODgvMHg5 YiBsaWIvc21wX3Byb2Nlc3Nvcl9pZC5jOjU3CiBkc3RfY2FjaGVfZ2V0KzB4M2EvMHhiMCBuZXQv Y29yZS9kc3RfY2FjaGUuYzo2OAogdGlwY191ZHBfeG1pdC5pc3JhLjArMHhiOS8weGFkMCBuZXQv dGlwYy91ZHBfbWVkaWEuYzoxNjQKIHRpcGNfdWRwX3NlbmRfbXNnKzB4M2U2LzB4NDkwIG5ldC90 aXBjL3VkcF9tZWRpYS5jOjI0NAogdGlwY19iZWFyZXJfeG1pdF9za2IrMHgxZGUvMHgzZjAgbmV0 L3RpcGMvYmVhcmVyLmM6NTI2CiB0aXBjX2VuYWJsZV9iZWFyZXIrMHhiMmYvMHhkNjAgbmV0L3Rp cGMvYmVhcmVyLmM6MzMxCiBfX3RpcGNfbmxfYmVhcmVyX2VuYWJsZSsweDJiZi8weDM5MCBuZXQv dGlwYy9iZWFyZXIuYzo5OTUKIHRpcGNfbmxfYmVhcmVyX2VuYWJsZSsweDFlLzB4MzAgbmV0L3Rp cGMvYmVhcmVyLmM6MTAwMwogZ2VubF9mYW1pbHlfcmN2X21zZ19kb2l0IG5ldC9uZXRsaW5rL2dl bmV0bGluay5jOjY3MyBbaW5saW5lXQogZ2VubF9mYW1pbHlfcmN2X21zZyBuZXQvbmV0bGluay9n ZW5ldGxpbmsuYzo3MTggW2lubGluZV0KIGdlbmxfcmN2X21zZysweDYyNy8weGRmMCBuZXQvbmV0 bGluay9nZW5ldGxpbmsuYzo3MzUKIG5ldGxpbmtfcmN2X3NrYisweDE1YS8weDQxMCBuZXQvbmV0 bGluay9hZl9uZXRsaW5rLmM6MjQ2OQogZ2VubF9yY3YrMHgyNC8weDQwIG5ldC9uZXRsaW5rL2dl bmV0bGluay5jOjc0NgogbmV0bGlua191bmljYXN0X2tlcm5lbCBuZXQvbmV0bGluay9hZl9uZXRs aW5rLmM6MTMwMyBbaW5saW5lXQogbmV0bGlua191bmljYXN0KzB4NTM3LzB4NzQwIG5ldC9uZXRs aW5rL2FmX25ldGxpbmsuYzoxMzI5CiBuZXRsaW5rX3NlbmRtc2crMHg4ODIvMHhlMTAgbmV0L25l dGxpbmsvYWZfbmV0bGluay5jOjE5MTgKIHNvY2tfc2VuZG1zZ19ub3NlYyBuZXQvc29ja2V0LmM6 NjUyIFtpbmxpbmVdCiBzb2NrX3NlbmRtc2crMHhjZi8weDEyMCBuZXQvc29ja2V0LmM6NjcyCiBf X19fc3lzX3NlbmRtc2crMHg2YmYvMHg3ZTAgbmV0L3NvY2tldC5jOjIzNjIKIF9fX3N5c19zZW5k bXNnKzB4MTAwLzB4MTcwIG5ldC9zb2NrZXQuYzoyNDE2CiBfX3N5c19zZW5kbXNnKzB4ZWMvMHgx YjAgbmV0L3NvY2tldC5jOjI0NDkKIGRvX3N5c2NhbGxfNjQrMHhmNi8weDdkMCBhcmNoL3g4Ni9l bnRyeS9jb21tb24uYzoyOTUKIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsweDQ5LzB4 YjMKUklQOiAwMDMzOjB4NDVjYTI5CgpGaXhlczogZTljMWE3OTMyMTBmICgidGlwYzogYWRkIGRz dF9jYWNoZSBzdXBwb3J0IGZvciB1ZHAgbWVkaWEiKQpDYzogWGluIExvbmcgPGx1Y2llbi54aW5A Z21haWwuY29tPgpDYzogSm9uIE1hbG95IDxqb24ubWFsb3lAZXJpY3Nzb24uY29tPgpTaWduZWQt b2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBz eXpib3QgPHN5emthbGxlckBnb29nbGVncm91cHMuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3RpcGMvdWRwX21lZGlhLmMg fCA2ICsrKysrLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigt KQoKZGlmZiAtLWdpdCBhL25ldC90aXBjL3VkcF9tZWRpYS5jIGIvbmV0L3RpcGMvdWRwX21lZGlh LmMKaW5kZXggZDY2MjBhZDUzNTQ2Li4yOGEyODNmMjZhOGQgMTAwNjQ0Ci0tLSBhL25ldC90aXBj L3VkcF9tZWRpYS5jCisrKyBiL25ldC90aXBjL3VkcF9tZWRpYS5jCkBAIC0xNjEsOSArMTYxLDEx IEBAIHN0YXRpYyBpbnQgdGlwY191ZHBfeG1pdChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19i dWZmICpza2IsCiAJCQkgc3RydWN0IHVkcF9iZWFyZXIgKnViLCBzdHJ1Y3QgdWRwX21lZGlhX2Fk ZHIgKnNyYywKIAkJCSBzdHJ1Y3QgdWRwX21lZGlhX2FkZHIgKmRzdCwgc3RydWN0IGRzdF9jYWNo ZSAqY2FjaGUpCiB7Ci0Jc3RydWN0IGRzdF9lbnRyeSAqbmRzdCA9IGRzdF9jYWNoZV9nZXQoY2Fj aGUpOworCXN0cnVjdCBkc3RfZW50cnkgKm5kc3Q7CiAJaW50IHR0bCwgZXJyID0gMDsKIAorCWxv Y2FsX2JoX2Rpc2FibGUoKTsKKwluZHN0ID0gZHN0X2NhY2hlX2dldChjYWNoZSk7CiAJaWYgKGRz dC0+cHJvdG8gPT0gaHRvbnMoRVRIX1BfSVApKSB7CiAJCXN0cnVjdCBydGFibGUgKnJ0ID0gKHN0 cnVjdCBydGFibGUgKiluZHN0OwogCkBAIC0yMTAsOSArMjEyLDExIEBAIHN0YXRpYyBpbnQgdGlw Y191ZHBfeG1pdChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmICpza2IsCiAJCQkJCSAg IHNyYy0+cG9ydCwgZHN0LT5wb3J0LCBmYWxzZSk7CiAjZW5kaWYKIAl9CisJbG9jYWxfYmhfZW5h YmxlKCk7CiAJcmV0dXJuIGVycjsKIAogdHhfZXJyb3I6CisJbG9jYWxfYmhfZW5hYmxlKCk7CiAJ a2ZyZWVfc2tiKHNrYik7CiAJcmV0dXJuIGVycjsKIH0KLS0gCjIuMjYuMgoKCkZyb20gNjhiNTYy ZjliYWYwNDg0MGM0YTgxNDJjYzQ3NWEwMmRhN2VmNTk3MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogVGFyaXEgVG91a2FuIDx0YXJpcXRAbWVsbGFub3guY29tPgpEYXRlOiBNb24sIDI3 IEFwciAyMDIwIDE2OjU2OjU5ICswMzAwClN1YmplY3Q6IFtQQVRDSCAyMy8zM10gbmV0L21seDVl OiBrVExTLCBEZXN0cm95IGtleSBvYmplY3QgYWZ0ZXIgZGVzdHJveWluZwogdGhlIFRJUwoKWyBV cHN0cmVhbSBjb21taXQgMTY3MzZlMTFmNDNiODBhMzhmOThmNmFkZDU0ZmFiM2I4YzI5N2RmMyBd CgpUaGUgVExTIFRJUyBvYmplY3QgY29udGFpbnMgdGhlIGRlay9rZXkgSUQuCkJ5IGRlc3Ryb3lp bmcgdGhlIGtleSBmaXJzdCwgdGhlIFRJUyB3b3VsZCBjb250YWluIGFuIGludmFsaWQKbm9uLWV4 aXN0aW5nIGtleSBJRC4KUmV2ZXJzZSB0aGUgZGVzdHJveSBvcmRlciwgdGhpcyBhbHNvIGFjaGVp dmVzIHRoZSBkZXNpcmVkIGFzc3ltZXRyeQpiZXR3ZWVuIHRoZSBkZXN0cm95IGFuZCB0aGUgY3Jl YXRlIGZsb3dzLgoKRml4ZXM6IGQyZWFkMWYzNjBlOCAoIm5ldC9tbHg1ZTogQWRkIGtUTFMgVFgg SFcgb2ZmbG9hZCBzdXBwb3J0IikKU2lnbmVkLW9mZi1ieTogVGFyaXEgVG91a2FuIDx0YXJpcXRA bWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogQm9yaXMgUGlzbWVubnkgPGJvcmlzcEBtZWxsYW5v eC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29t PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9r dGxzLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24o LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUv ZW5fYWNjZWwva3Rscy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L2VuX2FjY2VsL2t0bHMuYwppbmRleCA0NjcyNWNkNzQzYTMuLjdkMTk4NWZhMGQ0ZiAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2t0 bHMuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNj ZWwva3Rscy5jCkBAIC02OSw4ICs2OSw4IEBAIHN0YXRpYyB2b2lkIG1seDVlX2t0bHNfZGVsKHN0 cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsCiAJc3RydWN0IG1seDVlX2t0bHNfb2ZmbG9hZF9jb250 ZXh0X3R4ICp0eF9wcml2ID0KIAkJbWx4NWVfZ2V0X2t0bHNfdHhfcHJpdl9jdHgodGxzX2N0eCk7 CiAKLQltbHg1X2t0bHNfZGVzdHJveV9rZXkocHJpdi0+bWRldiwgdHhfcHJpdi0+a2V5X2lkKTsK IAltbHg1ZV9kZXN0cm95X3Rpcyhwcml2LT5tZGV2LCB0eF9wcml2LT50aXNuKTsKKwltbHg1X2t0 bHNfZGVzdHJveV9rZXkocHJpdi0+bWRldiwgdHhfcHJpdi0+a2V5X2lkKTsKIAlrdmZyZWUodHhf cHJpdik7CiB9CiAKLS0gCjIuMjYuMgoKCkZyb20gNmY2MjVlNTQyZTMwOTBmOGYyZTQwY2RmNzI5 ZjJkNzI4MDc2M2E4MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUm9pIERheWFuIDxy b2lkQG1lbGxhbm94LmNvbT4KRGF0ZTogVGh1LCAzMCBBcHIgMjAyMCAwOToxNjowMSArMDMwMApT dWJqZWN0OiBbUEFUQ0ggMjQvMzNdIG5ldC9tbHg1ZTogRml4IGlubmVyIHRpcnMgaGFuZGxpbmcK ClsgVXBzdHJlYW0gY29tbWl0IGExNmI4ZTBkY2Y3MDQzYmVlNDYxNzRiZWQwNTUzY2M5ZTM2YjYz YTUgXQoKSW4gdGhlIGNpdGVkIGNvbW1pdCBpbm5lcl90aXJzIGFyZ3VtZW50IHdhcyBhZGRlZCB0 byBjcmVhdGUgYW5kIGRlc3Ryb3kKaW5uZXIgdGlycywgYW5kIG5vIGluZGljYXRpb24gd2FzIGFk ZGVkIHRvIG1seDVlX21vZGlmeV90aXJzX2hhc2goKQpmdW5jdGlvbi4gSW4gb3JkZXIgdG8gaGF2 ZSBhIGNvbnNpc3RlbnQgaGFuZGxpbmcsIHVzZQppbm5lcl9pbmRpcl90aXJbMF0udGlybiBpbiB0 aXJzIGRlc3Ryb3kvbW9kaWZ5IGZ1bmN0aW9uIGFzIGFuIGluZGljYXRpb24KdG8gd2hldGhlciBp bm5lciB0aXJzIGFyZSBjcmVhdGVkLgpJbm5lciB0aXJzIGFyZSBub3QgY3JlYXRlZCBmb3IgcmVw cmVzZW50b3JzIGFuZCBiZWZvcmUgdGhpcyBjb21taXQsCmEgY2FsbCB0byBtbHg1ZV9tb2RpZnlf dGlyc19oYXNoKCkgd2FzIHNlbmRpbmcgSFcgY29tbWFuZHMgdG8KbW9kaWZ5IG5vbi1leGlzdGVu dCBpbm5lciB0aXJzLgoKRml4ZXM6IDQ2ZGM5MzNjZWU4MiAoIm5ldC9tbHg1ZTogUHJvdmlkZSBl eHBsaWNpdCBkaXJlY3RpdmUgaWYgdG8gY3JlYXRlIGlubmVyIGluZGlyZWN0IHRpcnMiKQpTaWdu ZWQtb2ZmLWJ5OiBSb2kgRGF5YW4gPHJvaWRAbWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogVmxh ZCBCdXNsb3YgPHZsYWRidUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFt ZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDUvY29yZS9lbi5oICAgICAgICAgfCAgMiArLQogZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYyAgICB8IDEyICsrKysrKystLS0tLQogZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3JlcC5jICAgICB8ICA0ICsrLS0K IC4uLi9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2lwb2liL2lwb2liLmMgICAgfCAg NCArKy0tCiA0IGZpbGVzIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9l bi5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgKaW5kZXgg NWE1ZTZhMjFjNmUxLi44MGM1Nzk5NDgxNTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDUvY29yZS9lbi5oCkBAIC0xMTA0LDcgKzExMDQsNyBAQCB2b2lkIG1seDVlX2Ns b3NlX2Ryb3BfcnEoc3RydWN0IG1seDVlX3JxICpkcm9wX3JxKTsKIGludCBtbHg1ZV9jcmVhdGVf aW5kaXJlY3RfcnF0KHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2KTsKIAogaW50IG1seDVlX2NyZWF0 ZV9pbmRpcmVjdF90aXJzKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LCBib29sIGlubmVyX3R0Yyk7 Ci12b2lkIG1seDVlX2Rlc3Ryb3lfaW5kaXJlY3RfdGlycyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJp diwgYm9vbCBpbm5lcl90dGMpOwordm9pZCBtbHg1ZV9kZXN0cm95X2luZGlyZWN0X3RpcnMoc3Ry dWN0IG1seDVlX3ByaXYgKnByaXYpOwogCiBpbnQgbWx4NWVfY3JlYXRlX2RpcmVjdF9ycXRzKHN0 cnVjdCBtbHg1ZV9wcml2ICpwcml2LCBzdHJ1Y3QgbWx4NWVfdGlyICp0aXJzKTsKIHZvaWQgbWx4 NWVfZGVzdHJveV9kaXJlY3RfcnF0cyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwgc3RydWN0IG1s eDVlX3RpciAqdGlycyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg1L2NvcmUvZW5fbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 NS9jb3JlL2VuX21haW4uYwppbmRleCBkMDJkYjVhZWJhYzQuLjRmZWY3NTg3MTY1YyAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYwor KysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jCkBA IC0yNzQ3LDcgKzI3NDcsOCBAQCB2b2lkIG1seDVlX21vZGlmeV90aXJzX2hhc2goc3RydWN0IG1s eDVlX3ByaXYgKnByaXYsIHZvaWQgKmluLCBpbnQgaW5sZW4pCiAJCW1seDVfY29yZV9tb2RpZnlf dGlyKG1kZXYsIHByaXYtPmluZGlyX3Rpclt0dF0udGlybiwgaW4sIGlubGVuKTsKIAl9CiAKLQlp ZiAoIW1seDVlX3R1bm5lbF9pbm5lcl9mdF9zdXBwb3J0ZWQocHJpdi0+bWRldikpCisJLyogVmVy aWZ5IGlubmVyIHRpcnMgcmVzb3VyY2VzIGFsbG9jYXRlZCAqLworCWlmICghcHJpdi0+aW5uZXJf aW5kaXJfdGlyWzBdLnRpcm4pCiAJCXJldHVybjsKIAogCWZvciAodHQgPSAwOyB0dCA8IE1MWDVF X05VTV9JTkRJUl9USVJTOyB0dCsrKSB7CkBAIC0zMzk0LDE0ICszMzk1LDE1IEBAIGludCBtbHg1 ZV9jcmVhdGVfZGlyZWN0X3RpcnMoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsIHN0cnVjdCBtbHg1 ZV90aXIgKnRpcnMpCiAJcmV0dXJuIGVycjsKIH0KIAotdm9pZCBtbHg1ZV9kZXN0cm95X2luZGly ZWN0X3RpcnMoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsIGJvb2wgaW5uZXJfdHRjKQordm9pZCBt bHg1ZV9kZXN0cm95X2luZGlyZWN0X3RpcnMoc3RydWN0IG1seDVlX3ByaXYgKnByaXYpCiB7CiAJ aW50IGk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgTUxYNUVfTlVNX0lORElSX1RJUlM7IGkrKykKIAkJ bWx4NWVfZGVzdHJveV90aXIocHJpdi0+bWRldiwgJnByaXYtPmluZGlyX3RpcltpXSk7CiAKLQlp ZiAoIWlubmVyX3R0YyB8fCAhbWx4NWVfdHVubmVsX2lubmVyX2Z0X3N1cHBvcnRlZChwcml2LT5t ZGV2KSkKKwkvKiBWZXJpZnkgaW5uZXIgdGlycyByZXNvdXJjZXMgYWxsb2NhdGVkICovCisJaWYg KCFwcml2LT5pbm5lcl9pbmRpcl90aXJbMF0udGlybikKIAkJcmV0dXJuOwogCiAJZm9yIChpID0g MDsgaSA8IE1MWDVFX05VTV9JTkRJUl9USVJTOyBpKyspCkBAIC01MTA3LDcgKzUxMDksNyBAQCBz dGF0aWMgaW50IG1seDVlX2luaXRfbmljX3J4KHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2KQogZXJy X2Rlc3Ryb3lfZGlyZWN0X3RpcnM6CiAJbWx4NWVfZGVzdHJveV9kaXJlY3RfdGlycyhwcml2LCBw cml2LT5kaXJlY3RfdGlyKTsKIGVycl9kZXN0cm95X2luZGlyZWN0X3RpcnM6Ci0JbWx4NWVfZGVz dHJveV9pbmRpcmVjdF90aXJzKHByaXYsIHRydWUpOworCW1seDVlX2Rlc3Ryb3lfaW5kaXJlY3Rf dGlycyhwcml2KTsKIGVycl9kZXN0cm95X2RpcmVjdF9ycXRzOgogCW1seDVlX2Rlc3Ryb3lfZGly ZWN0X3JxdHMocHJpdiwgcHJpdi0+ZGlyZWN0X3Rpcik7CiBlcnJfZGVzdHJveV9pbmRpcmVjdF9y cXRzOgpAQCAtNTEyNiw3ICs1MTI4LDcgQEAgc3RhdGljIHZvaWQgbWx4NWVfY2xlYW51cF9uaWNf cngoc3RydWN0IG1seDVlX3ByaXYgKnByaXYpCiAJbWx4NWVfZGVzdHJveV9kaXJlY3RfdGlycyhw cml2LCBwcml2LT54c2tfdGlyKTsKIAltbHg1ZV9kZXN0cm95X2RpcmVjdF9ycXRzKHByaXYsIHBy aXYtPnhza190aXIpOwogCW1seDVlX2Rlc3Ryb3lfZGlyZWN0X3RpcnMocHJpdiwgcHJpdi0+ZGly ZWN0X3Rpcik7Ci0JbWx4NWVfZGVzdHJveV9pbmRpcmVjdF90aXJzKHByaXYsIHRydWUpOworCW1s eDVlX2Rlc3Ryb3lfaW5kaXJlY3RfdGlycyhwcml2KTsKIAltbHg1ZV9kZXN0cm95X2RpcmVjdF9y cXRzKHByaXYsIHByaXYtPmRpcmVjdF90aXIpOwogCW1seDVlX2Rlc3Ryb3lfcnF0KHByaXYsICZw cml2LT5pbmRpcl9ycXQpOwogCW1seDVlX2Nsb3NlX2Ryb3BfcnEoJnByaXYtPmRyb3BfcnEpOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3Jl cC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3JlcC5jCmlu ZGV4IDJhZDBkMDljYzliZC4uYzNjM2Q4OWQ5MTUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fcmVwLmMKKysrIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3JlcC5jCkBAIC0xNjY3LDcgKzE2NjcsNyBAQCBz dGF0aWMgaW50IG1seDVlX2luaXRfcmVwX3J4KHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2KQogZXJy X2Rlc3Ryb3lfZGlyZWN0X3RpcnM6CiAJbWx4NWVfZGVzdHJveV9kaXJlY3RfdGlycyhwcml2LCBw cml2LT5kaXJlY3RfdGlyKTsKIGVycl9kZXN0cm95X2luZGlyZWN0X3RpcnM6Ci0JbWx4NWVfZGVz dHJveV9pbmRpcmVjdF90aXJzKHByaXYsIGZhbHNlKTsKKwltbHg1ZV9kZXN0cm95X2luZGlyZWN0 X3RpcnMocHJpdik7CiBlcnJfZGVzdHJveV9kaXJlY3RfcnF0czoKIAltbHg1ZV9kZXN0cm95X2Rp cmVjdF9ycXRzKHByaXYsIHByaXYtPmRpcmVjdF90aXIpOwogZXJyX2Rlc3Ryb3lfaW5kaXJlY3Rf cnF0czoKQEAgLTE2ODQsNyArMTY4NCw3IEBAIHN0YXRpYyB2b2lkIG1seDVlX2NsZWFudXBfcmVw X3J4KHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2KQogCW1seDVfZGVsX2Zsb3dfcnVsZXMocnByaXYt PnZwb3J0X3J4X3J1bGUpOwogCW1seDVlX2Rlc3Ryb3lfdHRjX3RhYmxlKHByaXYsICZwcml2LT5m cy50dGMpOwogCW1seDVlX2Rlc3Ryb3lfZGlyZWN0X3RpcnMocHJpdiwgcHJpdi0+ZGlyZWN0X3Rp cik7Ci0JbWx4NWVfZGVzdHJveV9pbmRpcmVjdF90aXJzKHByaXYsIGZhbHNlKTsKKwltbHg1ZV9k ZXN0cm95X2luZGlyZWN0X3RpcnMocHJpdik7CiAJbWx4NWVfZGVzdHJveV9kaXJlY3RfcnF0cyhw cml2LCBwcml2LT5kaXJlY3RfdGlyKTsKIAltbHg1ZV9kZXN0cm95X3JxdChwcml2LCAmcHJpdi0+ aW5kaXJfcnF0KTsKIAltbHg1ZV9jbG9zZV9kcm9wX3JxKCZwcml2LT5kcm9wX3JxKTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9pcG9pYi9pcG9p Yi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2lwb2liL2lwb2li LmMKaW5kZXggNTYwNzhiMjNmMWEwLi4wYTMzNGNlYmE3YjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9pcG9pYi9pcG9pYi5jCisrKyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9pcG9pYi9pcG9pYi5jCkBAIC0zOTYs NyArMzk2LDcgQEAgc3RhdGljIGludCBtbHg1aV9pbml0X3J4KHN0cnVjdCBtbHg1ZV9wcml2ICpw cml2KQogZXJyX2Rlc3Ryb3lfZGlyZWN0X3RpcnM6CiAJbWx4NWVfZGVzdHJveV9kaXJlY3RfdGly cyhwcml2LCBwcml2LT5kaXJlY3RfdGlyKTsKIGVycl9kZXN0cm95X2luZGlyZWN0X3RpcnM6Ci0J bWx4NWVfZGVzdHJveV9pbmRpcmVjdF90aXJzKHByaXYsIHRydWUpOworCW1seDVlX2Rlc3Ryb3lf aW5kaXJlY3RfdGlycyhwcml2KTsKIGVycl9kZXN0cm95X2RpcmVjdF9ycXRzOgogCW1seDVlX2Rl c3Ryb3lfZGlyZWN0X3JxdHMocHJpdiwgcHJpdi0+ZGlyZWN0X3Rpcik7CiBlcnJfZGVzdHJveV9p bmRpcmVjdF9ycXRzOgpAQCAtNDEyLDcgKzQxMiw3IEBAIHN0YXRpYyB2b2lkIG1seDVpX2NsZWFu dXBfcngoc3RydWN0IG1seDVlX3ByaXYgKnByaXYpCiB7CiAJbWx4NWlfZGVzdHJveV9mbG93X3N0 ZWVyaW5nKHByaXYpOwogCW1seDVlX2Rlc3Ryb3lfZGlyZWN0X3RpcnMocHJpdiwgcHJpdi0+ZGly ZWN0X3Rpcik7Ci0JbWx4NWVfZGVzdHJveV9pbmRpcmVjdF90aXJzKHByaXYsIHRydWUpOworCW1s eDVlX2Rlc3Ryb3lfaW5kaXJlY3RfdGlycyhwcml2KTsKIAltbHg1ZV9kZXN0cm95X2RpcmVjdF9y cXRzKHByaXYsIHByaXYtPmRpcmVjdF90aXIpOwogCW1seDVlX2Rlc3Ryb3lfcnF0KHByaXYsICZw cml2LT5pbmRpcl9ycXQpOwogCW1seDVlX2Nsb3NlX2Ryb3BfcnEoJnByaXYtPmRyb3BfcnEpOwot LSAKMi4yNi4yCgoKRnJvbSAzMTMxNjFmNTcwNjFiZjQzZTQ1MTFlNzkxYzQ1OGY5NTVjMTAwN2My IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNb3NoZSBTaGVtZXNoIDxtb3NoZUBtZWxs YW5veC5jb20+CkRhdGU6IFdlZCwgMjkgQXByIDIwMjAgMjM6NTY6NTggKzAzMDAKU3ViamVjdDog W1BBVENIIDI1LzMzXSBuZXQvbWx4NTogRml4IG1lbW9yeSBsZWFrIGluIG1seDVfZXZlbnRzX2lu aXQKClsgVXBzdHJlYW0gY29tbWl0IGRmMTRhZDFlY2NiMDRhNGEyOGM5MDM4OTIxNGRiYWNhYjA4 NWIyNDQgXQoKRml4IG1lbW9yeSBsZWFrIGluIG1seDVfZXZlbnRzX2luaXQoKSwgaW4gY2FzZQpj cmVhdGVfc2luZ2xlX3RocmVhZF93b3JrcXVldWUoKSBmYWlscywgZXZlbnRzCnN0cnVjdCBzaG91 bGQgYmUgZnJlZWQuCgpGaXhlczogNWQzYzUzN2Y5MDcwICgibmV0L21seDU6IEhhbmRsZSBldmVu dCBvZiBwb3dlciBkZXRlY3Rpb24gaW4gdGhlIFBDSUUgc2xvdCIpClNpZ25lZC1vZmYtYnk6IE1v c2hlIFNoZW1lc2ggPG1vc2hlQG1lbGxhbm94LmNvbT4KUmV2aWV3ZWQtYnk6IFRhcmlxIFRvdWth biA8dGFyaXF0QG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNh ZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 NS9jb3JlL2V2ZW50cy5jIHwgNCArKystCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCsp LCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4NS9jb3JlL2V2ZW50cy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 NS9jb3JlL2V2ZW50cy5jCmluZGV4IDhiY2YzNDI2YjljNi4uM2NlMTdjM2Q3YTAwIDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXZlbnRzLmMKKysr IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2V2ZW50cy5jCkBAIC0z NDYsOCArMzQ2LDEwIEBAIGludCBtbHg1X2V2ZW50c19pbml0KHN0cnVjdCBtbHg1X2NvcmVfZGV2 ICpkZXYpCiAJZXZlbnRzLT5kZXYgPSBkZXY7CiAJZGV2LT5wcml2LmV2ZW50cyA9IGV2ZW50czsK IAlldmVudHMtPndxID0gY3JlYXRlX3NpbmdsZXRocmVhZF93b3JrcXVldWUoIm1seDVfZXZlbnRz Iik7Ci0JaWYgKCFldmVudHMtPndxKQorCWlmICghZXZlbnRzLT53cSkgeworCQlrZnJlZShldmVu dHMpOwogCQlyZXR1cm4gLUVOT01FTTsKKwl9CiAJSU5JVF9XT1JLKCZldmVudHMtPnBjaWVfY29y ZV93b3JrLCBtbHg1X3BjaWVfZXZlbnQpOwogCiAJcmV0dXJuIDA7Ci0tIAoyLjI2LjIKCgpGcm9t IGI5YTM0MzljZjJlMDk5N2I3YWVkZTMyMzVmZmRjMzY3NDU3MjcxOWYgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IE1vc2hlIFNoZW1lc2ggPG1vc2hlQG1lbGxhbm94LmNvbT4KRGF0ZTog VHVlLCA3IEFwciAyMDIwIDE3OjM4OjI4ICswMzAwClN1YmplY3Q6IFtQQVRDSCAyNi8zM10gbmV0 L21seDVlOiBVcGRhdGUgbmV0ZGV2IHR4cSBvbiBjb21wbGV0aW9ucyBkdXJpbmcKIGNsb3N1cmUK ClsgVXBzdHJlYW0gY29tbWl0IDVlOTExZTJjMDZiZDhjMTdkZjI5MTQ3YTVlMmQ0YjE3ZmFmZGEw MjQgXQoKT24gc3EgY2xvc3VyZSB3aGVuIHdlIGZyZWUgaXRzIGRlc2NyaXB0b3JzLCB3ZSBzaG91 bGQgYWxzbyB1cGRhdGUgbmV0ZGV2CnR4cSBvbiBjb21wbGV0aW9ucyB3aGljaCB3b3VsZCBub3Qg YXJyaXZlLiBPdGhlcndpc2UgaWYgd2UgcmVvcGVuIHNxcwphbmQgYXR0YWNoIHRoZW0gYmFjaywg Zm9yIGV4YW1wbGUgb24gZncgZmF0YWwgcmVjb3ZlcnkgZmxvdywgd2UgbWF5IGdldAp0eCB0aW1l b3V0LgoKRml4ZXM6IDI5NDI5ZjMzMDBhMyAoIm5ldC9tbHg1ZTogVGltZW91dCBpZiBTUSBkb2Vz bid0IGZsdXNoIGR1cmluZyBjbG9zZSIpClNpZ25lZC1vZmYtYnk6IE1vc2hlIFNoZW1lc2ggPG1v c2hlQG1lbGxhbm94LmNvbT4KUmV2aWV3ZWQtYnk6IFRhcmlxIFRvdWthbiA8dGFyaXF0QG1lbGxh bm94LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5j b20+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3R4LmMg fCA5ICsrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvZW5fdHguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90 eC5jCmluZGV4IGVlNjAzODNhZGM1Yi4uYzJiODAxYjQzNWNmIDEwMDY0NAotLS0gYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHguYworKysgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHguYwpAQCAtNTM4LDEwICs1MzgsOSBA QCBib29sIG1seDVlX3BvbGxfdHhfY3Eoc3RydWN0IG1seDVlX2NxICpjcSwgaW50IG5hcGlfYnVk Z2V0KQogdm9pZCBtbHg1ZV9mcmVlX3R4cXNxX2Rlc2NzKHN0cnVjdCBtbHg1ZV90eHFzcSAqc3Ep CiB7CiAJc3RydWN0IG1seDVlX3R4X3dxZV9pbmZvICp3aTsKKwl1MzIgZG1hX2ZpZm9fY2MsIG5i eXRlcyA9IDA7CisJdTE2IGNpLCBzcWNjLCBucGt0cyA9IDA7CiAJc3RydWN0IHNrX2J1ZmYgKnNr YjsKLQl1MzIgZG1hX2ZpZm9fY2M7Ci0JdTE2IHNxY2M7Ci0JdTE2IGNpOwogCWludCBpOwogCiAJ c3FjYyA9IHNxLT5jYzsKQEAgLTU2NiwxMSArNTY1LDE1IEBAIHZvaWQgbWx4NWVfZnJlZV90eHFz cV9kZXNjcyhzdHJ1Y3QgbWx4NWVfdHhxc3EgKnNxKQogCQl9CiAKIAkJZGV2X2tmcmVlX3NrYl9h bnkoc2tiKTsKKwkJbnBrdHMrKzsKKwkJbmJ5dGVzICs9IHdpLT5udW1fYnl0ZXM7CiAJCXNxY2Mg Kz0gd2ktPm51bV93cWViYnM7CiAJfQogCiAJc3EtPmRtYV9maWZvX2NjID0gZG1hX2ZpZm9fY2M7 CiAJc3EtPmNjID0gc3FjYzsKKworCW5ldGRldl90eF9jb21wbGV0ZWRfcXVldWUoc3EtPnR4cSwg bnBrdHMsIG5ieXRlcyk7CiB9CiAKICNpZmRlZiBDT05GSUdfTUxYNV9DT1JFX0lQT0lCCi0tIAoy LjI2LjIKCgpGcm9tIDc1MGIwZTA1NWZlYjU0NmZlZDVmZmI3NjQ5ZjMyY2IyNTRlNzI1NjcgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFNoYXkgRHJvcnkgPHNoYXlkQG1lbGxhbm94LmNv bT4KRGF0ZTogV2VkLCA2IE1heSAyMDIwIDE0OjUyOjA0ICswMzAwClN1YmplY3Q6IFtQQVRDSCAy Ny8zM10gbmV0L21seDU6IEZpeCBlcnJvciBmbG93IGluIGNhc2Ugb2YgZnVuY3Rpb25fc2V0dXAK IGZhaWx1cmUKClsgVXBzdHJlYW0gY29tbWl0IDRmNzQwMGQ1Y2JhZWY2NzZlMDBjZGZmYjA1NjVi ZjczMWM2YmIwOWUgXQoKQ3VycmVudGx5LCBpZiBhbiBlcnJvciBvY2N1cnJlZCBkdXJpbmcgbWx4 NV9mdW5jdGlvbl9zZXR1cCgpLCB3ZQprZWVwIGRldi0+c3RhdGUgYXMgREVWSUNFX1NUQVRFX1VQ LgpGaXhpbmcgaXQgYnkgYWRkaW5nIGEgZ290byBsYWJlbC4KCkZpeGVzOiBlMTYxMTA1ZTU4ZGEg KCJuZXQvbWx4NTogRnVuY3Rpb24gc2V0dXAvdGVhcmRvd24gcHJvY2VkdXJlcyIpClNpZ25lZC1v ZmYtYnk6IFNoYXkgRHJvcnkgPHNoYXlkQG1lbGxhbm94LmNvbT4KUmV2aWV3ZWQtYnk6IE1vc2hl IFNoZW1lc2ggPG1vc2hlQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1l ZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4NS9jb3JlL21haW4uYyB8IDMgKystCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDUvY29yZS9tYWluLmMKaW5kZXggZjU1NGNmZGRjZjRlLi43ZDY3MjY4ZmY2ODYgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9tYWluLmMKKysrIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4uYwpAQCAtMTE3OSw3 ICsxMTc5LDcgQEAgaW50IG1seDVfbG9hZF9vbmUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwg Ym9vbCBib290KQogCiAJZXJyID0gbWx4NV9mdW5jdGlvbl9zZXR1cChkZXYsIGJvb3QpOwogCWlm IChlcnIpCi0JCWdvdG8gb3V0OworCQlnb3RvIGVycl9mdW5jdGlvbjsKIAogCWlmIChib290KSB7 CiAJCWVyciA9IG1seDVfaW5pdF9vbmNlKGRldik7CkBAIC0xMjI1LDYgKzEyMjUsNyBAQCBpbnQg bWx4NV9sb2FkX29uZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBib29sIGJvb3QpCiAJCW1s eDVfY2xlYW51cF9vbmNlKGRldik7CiBmdW5jdGlvbl90ZWFyZG93bjoKIAltbHg1X2Z1bmN0aW9u X3RlYXJkb3duKGRldiwgYm9vdCk7CitlcnJfZnVuY3Rpb246CiAJZGV2LT5zdGF0ZSA9IE1MWDVf REVWSUNFX1NUQVRFX0lOVEVSTkFMX0VSUk9SOwogCW11dGV4X3VubG9jaygmZGV2LT5pbnRmX3N0 YXRlX211dGV4KTsKIAotLSAKMi4yNi4yCgoKRnJvbSAzODI1OTY5ODkyZmQzOWQwNWZmYzdlOTcw YjIyNTViNWUxMzRjNjU5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiSmFzb24gQS4g RG9uZW5mZWxkIiA8SmFzb25AengyYzQuY29tPgpEYXRlOiBUdWUsIDE5IE1heSAyMDIwIDIyOjQ5 OjI4IC0wNjAwClN1YmplY3Q6IFtQQVRDSCAyOC8zM10gd2lyZWd1YXJkOiBub2lzZTogcmVhZCBw cmVzaGFyZWQga2V5IHdoaWxlIHRha2luZyBsb2NrCgpbIFVwc3RyZWFtIGNvbW1pdCBiYzY3ZDM3 MTI1NmY1YzQ3ZDgyNGUyZWVjNTFlNDZjOGQ2MmQwMjJlIF0KClByaW9yIHdlIHJlYWQgdGhlIHBy ZXNoYXJlZCBrZXkgYWZ0ZXIgZHJvcHBpbmcgdGhlIGhhbmRzaGFrZSBsb2NrLCB3aGljaAppc24n dCBhbiBhY3R1YWwgY3J5cHRvIGlzc3VlIGlmIGl0IHJhY2VzLCBidXQgaXQncyBzdGlsbCBub3Qg cXVpdGUKY29ycmVjdC4gU28gY29weSB0aGF0IHBhcnQgb2YgdGhlIHN0YXRlIGludG8gYSB0ZW1w b3JhcnkgbGlrZSB3ZSBkbyB3aXRoCnRoZSByZXN0IG9mIHRoZSBoYW5kc2hha2Ugc3RhdGUgdmFy aWFibGVzLiBUaGVuIHdlIGNhbiByZWxlYXNlIHRoZSBsb2NrLApvcGVyYXRlIG9uIHRoZSB0ZW1w b3JhcnksIGFuZCB6ZXJvIGl0IG91dCBhdCB0aGUgZW5kIG9mIHRoZSBmdW5jdGlvbi4gSW4KcGVy Zm9ybWFuY2UgdGVzdHMsIHRoZSBpbXBhY3Qgb2YgdGhpcyB3YXMgZW50aXJlbHkgdW5ub3RpY2Fi bGUsIHByb2JhYmx5CmJlY2F1c2UgdGhvc2UgYnl0ZXMgYXJlIGNvbWluZyBmcm9tIHRoZSBzYW1l IGNhY2hlbGluZSBhcyBvdGhlciB0aGluZ3MKdGhhdCBhcmUgYmVpbmcgY29waWVkIG91dCBpbiB0 aGUgc2FtZSBtYW5uZXIuCgpSZXBvcnRlZC1ieTogTWF0dCBEdW53b29kaWUgPG5jb25Abm9jb25y b3kubmV0PgpGaXhlczogZTcwOTZjMTMxZTUxICgibmV0OiBXaXJlR3VhcmQgc2VjdXJlIG5ldHdv cmsgdHVubmVsIikKU2lnbmVkLW9mZi1ieTogSmFzb24gQS4gRG9uZW5mZWxkIDxKYXNvbkB6eDJj NC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBkcml2ZXJzL25ldC93aXJlZ3VhcmQvbm9pc2UuYyB8IDYgKysrKystCiAxIGZpbGUg Y2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvd2lyZWd1YXJkL25vaXNlLmMgYi9kcml2ZXJzL25ldC93aXJlZ3VhcmQvbm9pc2Uu YwppbmRleCA3MDhkYzYxYzk3NGYuLjA3ZWI0MzhhNmRlZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9u ZXQvd2lyZWd1YXJkL25vaXNlLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWd1YXJkL25vaXNlLmMK QEAgLTcxNSw2ICs3MTUsNyBAQCB3Z19ub2lzZV9oYW5kc2hha2VfY29uc3VtZV9yZXNwb25zZShz dHJ1Y3QgbWVzc2FnZV9oYW5kc2hha2VfcmVzcG9uc2UgKnNyYywKIAl1OCBlW05PSVNFX1BVQkxJ Q19LRVlfTEVOXTsKIAl1OCBlcGhlbWVyYWxfcHJpdmF0ZVtOT0lTRV9QVUJMSUNfS0VZX0xFTl07 CiAJdTggc3RhdGljX3ByaXZhdGVbTk9JU0VfUFVCTElDX0tFWV9MRU5dOworCXU4IHByZXNoYXJl ZF9rZXlbTk9JU0VfU1lNTUVUUklDX0tFWV9MRU5dOwogCiAJZG93bl9yZWFkKCZ3Zy0+c3RhdGlj X2lkZW50aXR5LmxvY2spOwogCkBAIC03MzMsNiArNzM0LDggQEAgd2dfbm9pc2VfaGFuZHNoYWtl X2NvbnN1bWVfcmVzcG9uc2Uoc3RydWN0IG1lc3NhZ2VfaGFuZHNoYWtlX3Jlc3BvbnNlICpzcmMs CiAJbWVtY3B5KGNoYWluaW5nX2tleSwgaGFuZHNoYWtlLT5jaGFpbmluZ19rZXksIE5PSVNFX0hB U0hfTEVOKTsKIAltZW1jcHkoZXBoZW1lcmFsX3ByaXZhdGUsIGhhbmRzaGFrZS0+ZXBoZW1lcmFs X3ByaXZhdGUsCiAJICAgICAgIE5PSVNFX1BVQkxJQ19LRVlfTEVOKTsKKwltZW1jcHkocHJlc2hh cmVkX2tleSwgaGFuZHNoYWtlLT5wcmVzaGFyZWRfa2V5LAorCSAgICAgICBOT0lTRV9TWU1NRVRS SUNfS0VZX0xFTik7CiAJdXBfcmVhZCgmaGFuZHNoYWtlLT5sb2NrKTsKIAogCWlmIChzdGF0ZSAh PSBIQU5EU0hBS0VfQ1JFQVRFRF9JTklUSUFUSU9OKQpAQCAtNzUwLDcgKzc1Myw3IEBAIHdnX25v aXNlX2hhbmRzaGFrZV9jb25zdW1lX3Jlc3BvbnNlKHN0cnVjdCBtZXNzYWdlX2hhbmRzaGFrZV9y ZXNwb25zZSAqc3JjLAogCQlnb3RvIGZhaWw7CiAKIAkvKiBwc2sgKi8KLQltaXhfcHNrKGNoYWlu aW5nX2tleSwgaGFzaCwga2V5LCBoYW5kc2hha2UtPnByZXNoYXJlZF9rZXkpOworCW1peF9wc2so Y2hhaW5pbmdfa2V5LCBoYXNoLCBrZXksIHByZXNoYXJlZF9rZXkpOwogCiAJLyoge30gKi8KIAlp ZiAoIW1lc3NhZ2VfZGVjcnlwdChOVUxMLCBzcmMtPmVuY3J5cHRlZF9ub3RoaW5nLApAQCAtNzgz LDYgKzc4Niw3IEBAIHdnX25vaXNlX2hhbmRzaGFrZV9jb25zdW1lX3Jlc3BvbnNlKHN0cnVjdCBt ZXNzYWdlX2hhbmRzaGFrZV9yZXNwb25zZSAqc3JjLAogCW1lbXplcm9fZXhwbGljaXQoY2hhaW5p bmdfa2V5LCBOT0lTRV9IQVNIX0xFTik7CiAJbWVtemVyb19leHBsaWNpdChlcGhlbWVyYWxfcHJp dmF0ZSwgTk9JU0VfUFVCTElDX0tFWV9MRU4pOwogCW1lbXplcm9fZXhwbGljaXQoc3RhdGljX3By aXZhdGUsIE5PSVNFX1BVQkxJQ19LRVlfTEVOKTsKKwltZW16ZXJvX2V4cGxpY2l0KHByZXNoYXJl ZF9rZXksIE5PSVNFX1NZTU1FVFJJQ19LRVlfTEVOKTsKIAl1cF9yZWFkKCZ3Zy0+c3RhdGljX2lk ZW50aXR5LmxvY2spOwogCXJldHVybiByZXRfcGVlcjsKIH0KLS0gCjIuMjYuMgoKCkZyb20gMWM2 YzE3YTMzNTRkNGZlODE4MTQxNmM2MWYxOWRiZGZmMWFhMjc2NCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogIkphc29uIEEuIERvbmVuZmVsZCIgPEphc29uQHp4MmM0LmNvbT4KRGF0ZTog VHVlLCAxOSBNYXkgMjAyMCAyMjo0OToyOSAtMDYwMApTdWJqZWN0OiBbUEFUQ0ggMjkvMzNdIHdp cmVndWFyZDogcXVldWVpbmc6IHByZXNlcnZlIGZsb3cgaGFzaCBhY3Jvc3MgcGFja2V0CiBzY3J1 YmJpbmcKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0 PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0 IGM3OGEwYjRhNzg4MzlkNTcyZDhhODBmNmE2MjIyMWMwZDc4NDMxMzUgXQoKSXQncyBpbXBvcnRh bnQgdGhhdCB3ZSBjbGVhciBtb3N0IGhlYWRlciBmaWVsZHMgZHVyaW5nIGVuY2Fwc3VsYXRpb24g YW5kCmRlY2Fwc3VsYXRpb24sIGJlY2F1c2UgdGhlIHBhY2tldCBpcyBzdWJzdGFudGlhbGx5IGNo YW5nZWQsIGFuZCB3ZSBkb24ndAp3YW50IGFueSBpbmZvIGxlYWsgb3IgbG9naWMgYnVnIGR1ZSB0 byBhbiBhY2NpZGVudGFsIGNvcnJlbGF0aW9uLiBCdXQsCmZvciBlbmNhcHN1bGF0aW9uLCBpdCdz IHdyb25nIHRvIGNsZWFyIHNrYi0+aGFzaCwgc2luY2UgaXQncyB1c2VkIGJ5CmZxX2NvZGVsIGFu ZCBmbG93IGRpc3NlY3Rpb24gaW4gZ2VuZXJhbC4gV2l0aG91dCBpdCwgY2xhc3NpZmljYXRpb24g ZG9lcwpub3QgcHJvY2VlZCBhcyB1c3VhbC4gVGhpcyBjaGFuZ2UgbWlnaHQgbWFrZSBpdCBlYXNp ZXIgdG8gZXN0aW1hdGUgdGhlCm51bWJlciBvZiBpbm5lcmZsb3dzIGJ5IGV4YW1pbmluZyBjbHVz dGVyaW5nIG9mIG91dCBvZiBvcmRlciBwYWNrZXRzLApidXQgdGhpcyBzaG91bGRuJ3Qgb3BlbiB1 cCBhbnl0aGluZyB0aGF0IGNhbid0IGFscmVhZHkgYmUgaW5mZXJyZWQKb3RoZXJ3aXNlIChlLmcu IHN5biBwYWNrZXQgc2l6ZSBpbmZlcmVuY2UpLCBhbmQgZnFfY29kZWwgY2FuIGJlIGRpc2FibGVk CmFueXdheS4KCkZ1cnRoZXJtb3JlLCBpdCBtaWdodCBiZSB0aGUgY2FzZSB0aGF0IHRoZSBoYXNo IGlzbid0IHVzZWQgb3IgcXVlcmllZCBhdAphbGwgdW50aWwgYWZ0ZXIgd2lyZWd1YXJkIHRyYW5z bWl0cyB0aGUgZW5jcnlwdGVkIFVEUCBwYWNrZXQsIHdoaWNoCm1lYW5zIHNrYi0+aGFzaCBtaWdo dCBzdGlsbCBiZSB6ZXJvIGF0IHRoaXMgcG9pbnQsIGFuZCB0aHVzIG5vIGhhc2gKdGFrZW4gb3Zl ciB0aGUgaW5uZXIgcGFja2V0IGRhdGEuIEluIG9yZGVyIHRvIGFkZHJlc3MgdGhpcyBzaXR1YXRp b24sIHdlCmZvcmNlIGEgY2FsY3VsYXRpb24gb2Ygc2tiLT5oYXNoIGJlZm9yZSBlbmNyeXB0aW5n IHBhY2tldCBkYXRhLgoKT2YgY291cnNlIHRoaXMgbWVhbnMgdGhhdCBmcV9jb2RlbCBtaWdodCB0 cmFuc21pdCBwYWNrZXRzIHNsaWdodGx5IG1vcmUKb3V0IG9mIG9yZGVyIHRoYW4gdXN1YWwuIFRv a2UgZGlkIHNvbWUgdGVzdGluZyBvbiBiZWVmeSBtYWNoaW5lcyB3aXRoCmhpZ2ggcXVhbnRpdGll cyBvZiBwYXJhbGxlbCBmbG93cyBhbmQgZm91bmQgdGhhdCBpbmNyZWFzaW5nIHRoZQpyZXBseS1h dHRhY2sgY291bnRlciB0byA4MTkyIHRha2VzIGNhcmUgb2YgdGhlIG1vc3QgcGF0aG9sb2dpY2Fs IGNhc2VzCnByZXR0eSB3ZWxsLgoKUmVwb3J0ZWQtYnk6IERhdmUgVGFodCA8ZGF2ZS50YWh0QGdt YWlsLmNvbT4KUmV2aWV3ZWQtYW5kLXRlc3RlZC1ieTogVG9rZSBIw7hpbGFuZC1Kw7hyZ2Vuc2Vu IDx0b2tlQHRva2UuZGs+CkZpeGVzOiBlNzA5NmMxMzFlNTEgKCJuZXQ6IFdpcmVHdWFyZCBzZWN1 cmUgbmV0d29yayB0dW5uZWwiKQpTaWduZWQtb2ZmLWJ5OiBKYXNvbiBBLiBEb25lbmZlbGQgPEph c29uQHp4MmM0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3dpcmVndWFyZC9tZXNzYWdlcy5oIHwgIDIgKy0K IGRyaXZlcnMvbmV0L3dpcmVndWFyZC9xdWV1ZWluZy5oIHwgMTAgKysrKysrKysrLQogZHJpdmVy cy9uZXQvd2lyZWd1YXJkL3JlY2VpdmUuYyAgfCAgMiArLQogZHJpdmVycy9uZXQvd2lyZWd1YXJk L3NlbmQuYyAgICAgfCAgNyArKysrKystCiA0IGZpbGVzIGNoYW5nZWQsIDE3IGluc2VydGlvbnMo KyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWd1YXJkL21l c3NhZ2VzLmggYi9kcml2ZXJzL25ldC93aXJlZ3VhcmQvbWVzc2FnZXMuaAppbmRleCBiOGE3Yjlj ZTMyYmEuLjIwOGRhNzI2NzNmYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWd1YXJkL21l c3NhZ2VzLmgKKysrIGIvZHJpdmVycy9uZXQvd2lyZWd1YXJkL21lc3NhZ2VzLmgKQEAgLTMyLDcg KzMyLDcgQEAgZW51bSBjb29raWVfdmFsdWVzIHsKIH07CiAKIGVudW0gY291bnRlcl92YWx1ZXMg ewotCUNPVU5URVJfQklUU19UT1RBTCA9IDIwNDgsCisJQ09VTlRFUl9CSVRTX1RPVEFMID0gODE5 MiwKIAlDT1VOVEVSX1JFRFVOREFOVF9CSVRTID0gQklUU19QRVJfTE9ORywKIAlDT1VOVEVSX1dJ TkRPV19TSVpFID0gQ09VTlRFUl9CSVRTX1RPVEFMIC0gQ09VTlRFUl9SRURVTkRBTlRfQklUUwog fTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVndWFyZC9xdWV1ZWluZy5oIGIvZHJpdmVy cy9uZXQvd2lyZWd1YXJkL3F1ZXVlaW5nLmgKaW5kZXggMzQzMjIzMmFmZTA2Li5jNThkZjQzOWRi YmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVndWFyZC9xdWV1ZWluZy5oCisrKyBiL2Ry aXZlcnMvbmV0L3dpcmVndWFyZC9xdWV1ZWluZy5oCkBAIC04NywxMiArODcsMjAgQEAgc3RhdGlj IGlubGluZSBib29sIHdnX2NoZWNrX3BhY2tldF9wcm90b2NvbChzdHJ1Y3Qgc2tfYnVmZiAqc2ti KQogCXJldHVybiByZWFsX3Byb3RvY29sICYmIHNrYi0+cHJvdG9jb2wgPT0gcmVhbF9wcm90b2Nv bDsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIHdnX3Jlc2V0X3BhY2tldChzdHJ1Y3Qgc2tfYnVm ZiAqc2tiKQorc3RhdGljIGlubGluZSB2b2lkIHdnX3Jlc2V0X3BhY2tldChzdHJ1Y3Qgc2tfYnVm ZiAqc2tiLCBib29sIGVuY2Fwc3VsYXRpbmcpCiB7CisJdTggbDRfaGFzaCA9IHNrYi0+bDRfaGFz aDsKKwl1OCBzd19oYXNoID0gc2tiLT5zd19oYXNoOworCXUzMiBoYXNoID0gc2tiLT5oYXNoOwog CXNrYl9zY3J1Yl9wYWNrZXQoc2tiLCB0cnVlKTsKIAltZW1zZXQoJnNrYi0+aGVhZGVyc19zdGFy dCwgMCwKIAkgICAgICAgb2Zmc2V0b2Yoc3RydWN0IHNrX2J1ZmYsIGhlYWRlcnNfZW5kKSAtCiAJ CSAgICAgICBvZmZzZXRvZihzdHJ1Y3Qgc2tfYnVmZiwgaGVhZGVyc19zdGFydCkpOworCWlmIChl bmNhcHN1bGF0aW5nKSB7CisJCXNrYi0+bDRfaGFzaCA9IGw0X2hhc2g7CisJCXNrYi0+c3dfaGFz aCA9IHN3X2hhc2g7CisJCXNrYi0+aGFzaCA9IGhhc2g7CisJfQogCXNrYi0+cXVldWVfbWFwcGlu ZyA9IDA7CiAJc2tiLT5ub2hkciA9IDA7CiAJc2tiLT5wZWVrZWQgPSAwOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvd2lyZWd1YXJkL3JlY2VpdmUuYyBiL2RyaXZlcnMvbmV0L3dpcmVndWFyZC9y ZWNlaXZlLmMKaW5kZXggMjU2NmUxM2EyOTJkLi43NThkNmEwMTkxODQgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbmV0L3dpcmVndWFyZC9yZWNlaXZlLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWd1YXJk L3JlY2VpdmUuYwpAQCAtNDg1LDcgKzQ4NSw3IEBAIGludCB3Z19wYWNrZXRfcnhfcG9sbChzdHJ1 Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpCiAJCWlmICh1bmxpa2VseSh3Z19zb2Nr ZXRfZW5kcG9pbnRfZnJvbV9za2IoJmVuZHBvaW50LCBza2IpKSkKIAkJCWdvdG8gbmV4dDsKIAot CQl3Z19yZXNldF9wYWNrZXQoc2tiKTsKKwkJd2dfcmVzZXRfcGFja2V0KHNrYiwgZmFsc2UpOwog CQl3Z19wYWNrZXRfY29uc3VtZV9kYXRhX2RvbmUocGVlciwgc2tiLCAmZW5kcG9pbnQpOwogCQlm cmVlID0gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVndWFyZC9zZW5kLmMg Yi9kcml2ZXJzL25ldC93aXJlZ3VhcmQvc2VuZC5jCmluZGV4IGU4YTdkMGEwY2I4OC4uMGQ2NGE3 NTMxZjY0IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlZ3VhcmQvc2VuZC5jCisrKyBiL2Ry aXZlcnMvbmV0L3dpcmVndWFyZC9zZW5kLmMKQEAgLTE3MCw2ICsxNzAsMTEgQEAgc3RhdGljIGJv b2wgZW5jcnlwdF9wYWNrZXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5vaXNlX2tleXBh aXIgKmtleXBhaXIpCiAJc3RydWN0IHNrX2J1ZmYgKnRyYWlsZXI7CiAJaW50IG51bV9mcmFnczsK IAorCS8qIEZvcmNlIGhhc2ggY2FsY3VsYXRpb24gYmVmb3JlIGVuY3J5cHRpb24gc28gdGhhdCBm bG93IGFuYWx5c2lzIGlzCisJICogY29uc2lzdGVudCBvdmVyIHRoZSBpbm5lciBwYWNrZXQuCisJ ICovCisJc2tiX2dldF9oYXNoKHNrYik7CisKIAkvKiBDYWxjdWxhdGUgbGVuZ3Rocy4gKi8KIAlw YWRkaW5nX2xlbiA9IGNhbGN1bGF0ZV9za2JfcGFkZGluZyhza2IpOwogCXRyYWlsZXJfbGVuID0g cGFkZGluZ19sZW4gKyBub2lzZV9lbmNyeXB0ZWRfbGVuKDApOwpAQCAtMjk4LDcgKzMwMyw3IEBA IHZvaWQgd2dfcGFja2V0X2VuY3J5cHRfd29ya2VyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykK IAkJc2tiX2xpc3Rfd2Fsa19zYWZlKGZpcnN0LCBza2IsIG5leHQpIHsKIAkJCWlmIChsaWtlbHko ZW5jcnlwdF9wYWNrZXQoc2tiLAogCQkJCQlQQUNLRVRfQ0IoZmlyc3QpLT5rZXlwYWlyKSkpIHsK LQkJCQl3Z19yZXNldF9wYWNrZXQoc2tiKTsKKwkJCQl3Z19yZXNldF9wYWNrZXQoc2tiLCB0cnVl KTsKIAkJCX0gZWxzZSB7CiAJCQkJc3RhdGUgPSBQQUNLRVRfU1RBVEVfREVBRDsKIAkJCQlicmVh azsKLS0gCjIuMjYuMgoKCkZyb20gZWJhZTQxNDgwMThjZTZmYjMxNDVmMWY2OTcxODY5NDUwZDk2 MWRjOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogIkphc29uIEEuIERvbmVuZmVsZCIg PEphc29uQHp4MmM0LmNvbT4KRGF0ZTogVHVlLCAxOSBNYXkgMjAyMCAyMjo0OTozMCAtMDYwMApT dWJqZWN0OiBbUEFUQ0ggMzAvMzNdIHdpcmVndWFyZDogbm9pc2U6IHNlcGFyYXRlIHJlY2VpdmUg Y291bnRlciBmcm9tIHNlbmQKIGNvdW50ZXIKClsgVXBzdHJlYW0gY29tbWl0IGE5ZTkwZDk5MzFm M2E0NzRmMDRiYWI3ODJjY2Q5ZDc3OTA0OTQxZTkgXQoKSW4gIndpcmVndWFyZDogcXVldWVpbmc6 IHByZXNlcnZlIGZsb3cgaGFzaCBhY3Jvc3MgcGFja2V0IHNjcnViYmluZyIsIHdlCndlcmUgcmVx dWlyZWQgdG8gc2xpZ2h0bHkgaW5jcmVhc2UgdGhlIHNpemUgb2YgdGhlIHJlY2VpdmUgcmVwbGF5 CmNvdW50ZXIgdG8gc29tZXRoaW5nIHN0aWxsIGZhaXJseSBzbWFsbCwgYnV0IGFuIGluY3JlYXNl IG5vbmV0aGVsZXNzLgpJdCB0dXJucyBvdXQgdGhhdCB3ZSBjYW4gcmVjb3VwIHNvbWUgb2YgdGhl IGFkZGl0aW9uYWwgbWVtb3J5IG92ZXJoZWFkCmJ5IHNwbGl0dGluZyB1cCB0aGUgcHJpb3IgdW5p b24gdHlwZSBpbnRvIHR3byBkaXN0aW5jdCB0eXBlcy4gQmVmb3JlLCB3ZQp1c2VkIHRoZSBzYW1l ICJub2lzZV9jb3VudGVyIiB1bmlvbiBmb3IgYm90aCBzZW5kaW5nIGFuZCByZWNlaXZpbmcsIHdp dGgKc2VuZGluZyBqdXN0IHVzaW5nIGEgc2ltcGxlIGF0b21pYzY0X3QsIHdoaWxlIHJlY2Vpdmlu ZyB1c2VkIHRoZSBmdWxsCnJlcGxheSBjb3VudGVyIGNoZWNrZXIuIFRoaXMgbWVhbnQgdGhhdCBt b3N0IG9mIHRoZSBtZW1vcnkgYmVpbmcKYWxsb2NhdGVkIGZvciB0aGUgc2VuZGluZyBjb3VudGVy IHdhcyBiZWluZyB3YXN0ZWQuIFNpbmNlIHRoZSBvbGQKIm5vaXNlX2NvdW50ZXIiIHR5cGUgaW5j cmVhc2VkIGluIHNpemUgaW4gdGhlIHByaW9yIGNvbW1pdCwgbm93IGlzIGEKZ29vZCB0aW1lIHRv IHNwbGl0IHVwIHRoYXQgdW5pb24gdHlwZSBpbnRvIGEgZGlzdGluY3QgIm5vaXNlX3JlcGxheV8K Y291bnRlciIgZm9yIHJlY2VpdmluZyBhbmQgYSBib3JpbmcgYXRvbWljNjRfdCBmb3Igc2VuZGlu ZywgZWFjaCB1c2luZwpuZWl0aGVyIG1vcmUgbm9yIGxlc3MgbWVtb3J5IHRoYW4gcmVxdWlyZWQu CgpBbHNvLCBzaW5jZSBzb21ldGltZXMgdGhlIHJlcGxheSBjb3VudGVyIGlzIGFjY2Vzc2VkIHdp dGhvdXQKbmVjZXNzaXRhdGluZyBhZGRpdGlvbmFsIGFjY2Vzc2VzIHRvIHRoZSBiaXRtYXAsIHdl IGNhbiByZWR1Y2UgY2FjaGUKbWlzc2VzIGJ5IGhvaXN0aW5nIHRoZSBhbHdheXMtbmVjZXNzYXJ5 IGxvY2sgYWJvdmUgdGhlIGJpdG1hcCBpbiB0aGUKc3RydWN0IGxheW91dC4gV2UgYWxzbyBjaGFu Z2UgYSAibm9pc2VfcmVwbGF5X2NvdW50ZXIiIHN0YWNrIGFsbG9jYXRpb24KdG8ga21hbGxvYyBp biBhIC1EREVCVUcgc2VsZnRlc3Qgc28gdGhhdCBLQVNBTiBkb2Vzbid0IHRyaWdnZXIgYSBzdGFj awpmcmFtZSB3YXJuaW5nLgoKQWxsIGFuZCBhbGwsIHJlbW92aW5nIGEgYml0IG9mIGFic3RyYWN0 aW9uIGluIHRoaXMgY29tbWl0IG1ha2VzIHRoZSBjb2RlCnNpbXBsZXIgYW5kIHNtYWxsZXIsIGlu IGFkZGl0aW9uIHRvIHRoZSBtb3RpdmF0aW5nIG1lbW9yeSB1c2FnZQpyZWN1cGVyYXRpb24uIEZv ciBleGFtcGxlLCBwYXNzaW5nIGFyb3VuZCByYXcgIm5vaXNlX3N5bW1ldHJpY19rZXkiCnN0cnVj dHMgaXMgc29tZXRoaW5nIHRoYXQgcmVhbGx5IG9ubHkgbWFrZXMgc2Vuc2Ugd2l0aGluIG5vaXNl LmMsIGluIHRoZQpvbmUgcGxhY2Ugd2hlcmUgdGhlIHNlbmRpbmcgYW5kIHJlY2VpdmluZyBrZXlz IGNhbiBzYWZlbHkgYmUgdGhvdWdodCBvZgphcyB0aGUgc2FtZSB0eXBlIG9mIG9iamVjdDsgc3Vi c2VxdWVudCB0byB0aGF0LCBpdCdzIGltcG9ydGFudCB0aGF0IHdlCnVuaWZvcm1seSBhY2Nlc3Mg dGhlc2UgdGhyb3VnaCBrZXlwYWlyLT57c2VuZGluZyxyZWNlaXZpbmd9LCB3aGVyZSB0aGVpcgpk aXN0aW5jdCByb2xlcyBhcmUgYWx3YXlzIG1hZGUgZXhwbGljaXQuIFNvIHRoaXMgcGF0Y2ggYWxs b3dzIHVzIHRvIGRyYXcKdGhhdCBkaXN0aW5jdGlvbiBjbGVhcmx5IGFzIHdlbGwuCgpGaXhlczog ZTcwOTZjMTMxZTUxICgibmV0OiBXaXJlR3VhcmQgc2VjdXJlIG5ldHdvcmsgdHVubmVsIikKU2ln bmVkLW9mZi1ieTogSmFzb24gQS4gRG9uZW5mZWxkIDxKYXNvbkB6eDJjNC5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJz L25ldC93aXJlZ3VhcmQvbm9pc2UuYyAgICAgICAgICAgIHwgMTYgKysrLS0tLS0tCiBkcml2ZXJz L25ldC93aXJlZ3VhcmQvbm9pc2UuaCAgICAgICAgICAgIHwgMTQgKysrKy0tLS0KIGRyaXZlcnMv bmV0L3dpcmVndWFyZC9yZWNlaXZlLmMgICAgICAgICAgfCA0MiArKysrKysrKysrKystLS0tLS0t LS0tLS0KIGRyaXZlcnMvbmV0L3dpcmVndWFyZC9zZWxmdGVzdC9jb3VudGVyLmMgfCAxNyArKysr KysrLS0tCiBkcml2ZXJzL25ldC93aXJlZ3VhcmQvc2VuZC5jICAgICAgICAgICAgIHwgMTIgKysr LS0tLQogNSBmaWxlcyBjaGFuZ2VkLCA0OCBpbnNlcnRpb25zKCspLCA1MyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlZ3VhcmQvbm9pc2UuYyBiL2RyaXZlcnMvbmV0 L3dpcmVndWFyZC9ub2lzZS5jCmluZGV4IDA3ZWI0MzhhNmRlZS4uNjI2NDMzNjkwYWJiIDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC93aXJlZ3VhcmQvbm9pc2UuYworKysgYi9kcml2ZXJzL25ldC93 aXJlZ3VhcmQvbm9pc2UuYwpAQCAtMTA0LDYgKzEwNCw3IEBAIHN0YXRpYyBzdHJ1Y3Qgbm9pc2Vf a2V5cGFpciAqa2V5cGFpcl9jcmVhdGUoc3RydWN0IHdnX3BlZXIgKnBlZXIpCiAKIAlpZiAodW5s aWtlbHkoIWtleXBhaXIpKQogCQlyZXR1cm4gTlVMTDsKKwlzcGluX2xvY2tfaW5pdCgma2V5cGFp ci0+cmVjZWl2aW5nX2NvdW50ZXIubG9jayk7CiAJa2V5cGFpci0+aW50ZXJuYWxfaWQgPSBhdG9t aWM2NF9pbmNfcmV0dXJuKCZrZXlwYWlyX2NvdW50ZXIpOwogCWtleXBhaXItPmVudHJ5LnR5cGUg PSBJTkRFWF9IQVNIVEFCTEVfS0VZUEFJUjsKIAlrZXlwYWlyLT5lbnRyeS5wZWVyID0gcGVlcjsK QEAgLTM1OCwyNSArMzU5LDE2IEBAIHN0YXRpYyB2b2lkIGtkZih1OCAqZmlyc3RfZHN0LCB1OCAq c2Vjb25kX2RzdCwgdTggKnRoaXJkX2RzdCwgY29uc3QgdTggKmRhdGEsCiAJbWVtemVyb19leHBs aWNpdChvdXRwdXQsIEJMQUtFMlNfSEFTSF9TSVpFICsgMSk7CiB9CiAKLXN0YXRpYyB2b2lkIHN5 bW1ldHJpY19rZXlfaW5pdChzdHJ1Y3Qgbm9pc2Vfc3ltbWV0cmljX2tleSAqa2V5KQotewotCXNw aW5fbG9ja19pbml0KCZrZXktPmNvdW50ZXIucmVjZWl2ZS5sb2NrKTsKLQlhdG9taWM2NF9zZXQo JmtleS0+Y291bnRlci5jb3VudGVyLCAwKTsKLQltZW1zZXQoa2V5LT5jb3VudGVyLnJlY2VpdmUu YmFja3RyYWNrLCAwLAotCSAgICAgICBzaXplb2Yoa2V5LT5jb3VudGVyLnJlY2VpdmUuYmFja3Ry YWNrKSk7Ci0Ja2V5LT5iaXJ0aGRhdGUgPSBrdGltZV9nZXRfY29hcnNlX2Jvb3R0aW1lX25zKCk7 Ci0Ja2V5LT5pc192YWxpZCA9IHRydWU7Ci19Ci0KIHN0YXRpYyB2b2lkIGRlcml2ZV9rZXlzKHN0 cnVjdCBub2lzZV9zeW1tZXRyaWNfa2V5ICpmaXJzdF9kc3QsCiAJCQlzdHJ1Y3Qgbm9pc2Vfc3lt bWV0cmljX2tleSAqc2Vjb25kX2RzdCwKIAkJCWNvbnN0IHU4IGNoYWluaW5nX2tleVtOT0lTRV9I QVNIX0xFTl0pCiB7CisJdTY0IGJpcnRoZGF0ZSA9IGt0aW1lX2dldF9jb2Fyc2VfYm9vdHRpbWVf bnMoKTsKIAlrZGYoZmlyc3RfZHN0LT5rZXksIHNlY29uZF9kc3QtPmtleSwgTlVMTCwgTlVMTCwK IAkgICAgTk9JU0VfU1lNTUVUUklDX0tFWV9MRU4sIE5PSVNFX1NZTU1FVFJJQ19LRVlfTEVOLCAw LCAwLAogCSAgICBjaGFpbmluZ19rZXkpOwotCXN5bW1ldHJpY19rZXlfaW5pdChmaXJzdF9kc3Qp OwotCXN5bW1ldHJpY19rZXlfaW5pdChzZWNvbmRfZHN0KTsKKwlmaXJzdF9kc3QtPmJpcnRoZGF0 ZSA9IHNlY29uZF9kc3QtPmJpcnRoZGF0ZSA9IGJpcnRoZGF0ZTsKKwlmaXJzdF9kc3QtPmlzX3Zh bGlkID0gc2Vjb25kX2RzdC0+aXNfdmFsaWQgPSB0cnVlOwogfQogCiBzdGF0aWMgYm9vbCBfX211 c3RfY2hlY2sgbWl4X2RoKHU4IGNoYWluaW5nX2tleVtOT0lTRV9IQVNIX0xFTl0sCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC93aXJlZ3VhcmQvbm9pc2UuaCBiL2RyaXZlcnMvbmV0L3dpcmVndWFy ZC9ub2lzZS5oCmluZGV4IGY1MzJkNTlkM2YxOS4uYzUyNzI1M2RiYTgwIDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC93aXJlZ3VhcmQvbm9pc2UuaAorKysgYi9kcml2ZXJzL25ldC93aXJlZ3VhcmQv bm9pc2UuaApAQCAtMTUsMTggKzE1LDE0IEBACiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KICNp bmNsdWRlIDxsaW51eC9rcmVmLmg+CiAKLXVuaW9uIG5vaXNlX2NvdW50ZXIgewotCXN0cnVjdCB7 Ci0JCXU2NCBjb3VudGVyOwotCQl1bnNpZ25lZCBsb25nIGJhY2t0cmFja1tDT1VOVEVSX0JJVFNf VE9UQUwgLyBCSVRTX1BFUl9MT05HXTsKLQkJc3BpbmxvY2tfdCBsb2NrOwotCX0gcmVjZWl2ZTsK LQlhdG9taWM2NF90IGNvdW50ZXI7CitzdHJ1Y3Qgbm9pc2VfcmVwbGF5X2NvdW50ZXIgeworCXU2 NCBjb3VudGVyOworCXNwaW5sb2NrX3QgbG9jazsKKwl1bnNpZ25lZCBsb25nIGJhY2t0cmFja1tD T1VOVEVSX0JJVFNfVE9UQUwgLyBCSVRTX1BFUl9MT05HXTsKIH07CiAKIHN0cnVjdCBub2lzZV9z eW1tZXRyaWNfa2V5IHsKIAl1OCBrZXlbTk9JU0VfU1lNTUVUUklDX0tFWV9MRU5dOwotCXVuaW9u IG5vaXNlX2NvdW50ZXIgY291bnRlcjsKIAl1NjQgYmlydGhkYXRlOwogCWJvb2wgaXNfdmFsaWQ7 CiB9OwpAQCAtMzQsNyArMzAsOSBAQCBzdHJ1Y3Qgbm9pc2Vfc3ltbWV0cmljX2tleSB7CiBzdHJ1 Y3Qgbm9pc2Vfa2V5cGFpciB7CiAJc3RydWN0IGluZGV4X2hhc2h0YWJsZV9lbnRyeSBlbnRyeTsK IAlzdHJ1Y3Qgbm9pc2Vfc3ltbWV0cmljX2tleSBzZW5kaW5nOworCWF0b21pYzY0X3Qgc2VuZGlu Z19jb3VudGVyOwogCXN0cnVjdCBub2lzZV9zeW1tZXRyaWNfa2V5IHJlY2VpdmluZzsKKwlzdHJ1 Y3Qgbm9pc2VfcmVwbGF5X2NvdW50ZXIgcmVjZWl2aW5nX2NvdW50ZXI7CiAJX19sZTMyIHJlbW90 ZV9pbmRleDsKIAlib29sIGlfYW1fdGhlX2luaXRpYXRvcjsKIAlzdHJ1Y3Qga3JlZiByZWZjb3Vu dDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVndWFyZC9yZWNlaXZlLmMgYi9kcml2ZXJz L25ldC93aXJlZ3VhcmQvcmVjZWl2ZS5jCmluZGV4IDc1OGQ2YTAxOTE4NC4uNDc0YmI2OWYwZTFi IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlZ3VhcmQvcmVjZWl2ZS5jCisrKyBiL2RyaXZl cnMvbmV0L3dpcmVndWFyZC9yZWNlaXZlLmMKQEAgLTI0NiwyMCArMjQ2LDIwIEBAIHN0YXRpYyB2 b2lkIGtlZXBfa2V5X2ZyZXNoKHN0cnVjdCB3Z19wZWVyICpwZWVyKQogCX0KIH0KIAotc3RhdGlj IGJvb2wgZGVjcnlwdF9wYWNrZXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5vaXNlX3N5 bW1ldHJpY19rZXkgKmtleSkKK3N0YXRpYyBib29sIGRlY3J5cHRfcGFja2V0KHN0cnVjdCBza19i dWZmICpza2IsIHN0cnVjdCBub2lzZV9rZXlwYWlyICprZXlwYWlyKQogewogCXN0cnVjdCBzY2F0 dGVybGlzdCBzZ1tNQVhfU0tCX0ZSQUdTICsgOF07CiAJc3RydWN0IHNrX2J1ZmYgKnRyYWlsZXI7 CiAJdW5zaWduZWQgaW50IG9mZnNldDsKIAlpbnQgbnVtX2ZyYWdzOwogCi0JaWYgKHVubGlrZWx5 KCFrZXkpKQorCWlmICh1bmxpa2VseSgha2V5cGFpcikpCiAJCXJldHVybiBmYWxzZTsKIAotCWlm ICh1bmxpa2VseSghUkVBRF9PTkNFKGtleS0+aXNfdmFsaWQpIHx8Ci0JCSAgd2dfYmlydGhkYXRl X2hhc19leHBpcmVkKGtleS0+YmlydGhkYXRlLCBSRUpFQ1RfQUZURVJfVElNRSkgfHwKLQkJICBr ZXktPmNvdW50ZXIucmVjZWl2ZS5jb3VudGVyID49IFJFSkVDVF9BRlRFUl9NRVNTQUdFUykpIHsK LQkJV1JJVEVfT05DRShrZXktPmlzX3ZhbGlkLCBmYWxzZSk7CisJaWYgKHVubGlrZWx5KCFSRUFE X09OQ0Uoa2V5cGFpci0+cmVjZWl2aW5nLmlzX3ZhbGlkKSB8fAorCQkgIHdnX2JpcnRoZGF0ZV9o YXNfZXhwaXJlZChrZXlwYWlyLT5yZWNlaXZpbmcuYmlydGhkYXRlLCBSRUpFQ1RfQUZURVJfVElN RSkgfHwKKwkJICBrZXlwYWlyLT5yZWNlaXZpbmdfY291bnRlci5jb3VudGVyID49IFJFSkVDVF9B RlRFUl9NRVNTQUdFUykpIHsKKwkJV1JJVEVfT05DRShrZXlwYWlyLT5yZWNlaXZpbmcuaXNfdmFs aWQsIGZhbHNlKTsKIAkJcmV0dXJuIGZhbHNlOwogCX0KIApAQCAtMjg0LDcgKzI4NCw3IEBAIHN0 YXRpYyBib29sIGRlY3J5cHRfcGFja2V0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBub2lz ZV9zeW1tZXRyaWNfa2V5ICprZXkpCiAKIAlpZiAoIWNoYWNoYTIwcG9seTEzMDVfZGVjcnlwdF9z Z19pbnBsYWNlKHNnLCBza2ItPmxlbiwgTlVMTCwgMCwKIAkJCQkJICAgICAgICAgUEFDS0VUX0NC KHNrYiktPm5vbmNlLAotCQkJCQkJIGtleS0+a2V5KSkKKwkJCQkJCSBrZXlwYWlyLT5yZWNlaXZp bmcua2V5KSkKIAkJcmV0dXJuIGZhbHNlOwogCiAJLyogQW5vdGhlciB1Z2x5IHNpdHVhdGlvbiBv ZiBwdXNoaW5nIGFuZCBwdWxsaW5nIHRoZSBoZWFkZXIgc28gYXMgdG8KQEAgLTI5OSw0MSArMjk5 LDQxIEBAIHN0YXRpYyBib29sIGRlY3J5cHRfcGFja2V0KHN0cnVjdCBza19idWZmICpza2IsIHN0 cnVjdCBub2lzZV9zeW1tZXRyaWNfa2V5ICprZXkpCiB9CiAKIC8qIFRoaXMgaXMgUkZDNjQ3OSwg YSByZXBsYXkgZGV0ZWN0aW9uIGJpdG1hcCBhbGdvcml0aG0gdGhhdCBhdm9pZHMgYml0c2hpZnRz ICovCi1zdGF0aWMgYm9vbCBjb3VudGVyX3ZhbGlkYXRlKHVuaW9uIG5vaXNlX2NvdW50ZXIgKmNv dW50ZXIsIHU2NCB0aGVpcl9jb3VudGVyKQorc3RhdGljIGJvb2wgY291bnRlcl92YWxpZGF0ZShz dHJ1Y3Qgbm9pc2VfcmVwbGF5X2NvdW50ZXIgKmNvdW50ZXIsIHU2NCB0aGVpcl9jb3VudGVyKQog ewogCXVuc2lnbmVkIGxvbmcgaW5kZXgsIGluZGV4X2N1cnJlbnQsIHRvcCwgaTsKIAlib29sIHJl dCA9IGZhbHNlOwogCi0Jc3Bpbl9sb2NrX2JoKCZjb3VudGVyLT5yZWNlaXZlLmxvY2spOworCXNw aW5fbG9ja19iaCgmY291bnRlci0+bG9jayk7CiAKLQlpZiAodW5saWtlbHkoY291bnRlci0+cmVj ZWl2ZS5jb3VudGVyID49IFJFSkVDVF9BRlRFUl9NRVNTQUdFUyArIDEgfHwKKwlpZiAodW5saWtl bHkoY291bnRlci0+Y291bnRlciA+PSBSRUpFQ1RfQUZURVJfTUVTU0FHRVMgKyAxIHx8CiAJCSAg ICAgdGhlaXJfY291bnRlciA+PSBSRUpFQ1RfQUZURVJfTUVTU0FHRVMpKQogCQlnb3RvIG91dDsK IAogCSsrdGhlaXJfY291bnRlcjsKIAogCWlmICh1bmxpa2VseSgoQ09VTlRFUl9XSU5ET1dfU0la RSArIHRoZWlyX2NvdW50ZXIpIDwKLQkJICAgICBjb3VudGVyLT5yZWNlaXZlLmNvdW50ZXIpKQor CQkgICAgIGNvdW50ZXItPmNvdW50ZXIpKQogCQlnb3RvIG91dDsKIAogCWluZGV4ID0gdGhlaXJf Y291bnRlciA+PiBpbG9nMihCSVRTX1BFUl9MT05HKTsKIAotCWlmIChsaWtlbHkodGhlaXJfY291 bnRlciA+IGNvdW50ZXItPnJlY2VpdmUuY291bnRlcikpIHsKLQkJaW5kZXhfY3VycmVudCA9IGNv dW50ZXItPnJlY2VpdmUuY291bnRlciA+PiBpbG9nMihCSVRTX1BFUl9MT05HKTsKKwlpZiAobGlr ZWx5KHRoZWlyX2NvdW50ZXIgPiBjb3VudGVyLT5jb3VudGVyKSkgeworCQlpbmRleF9jdXJyZW50 ID0gY291bnRlci0+Y291bnRlciA+PiBpbG9nMihCSVRTX1BFUl9MT05HKTsKIAkJdG9wID0gbWlu X3QodW5zaWduZWQgbG9uZywgaW5kZXggLSBpbmRleF9jdXJyZW50LAogCQkJICAgIENPVU5URVJf QklUU19UT1RBTCAvIEJJVFNfUEVSX0xPTkcpOwogCQlmb3IgKGkgPSAxOyBpIDw9IHRvcDsgKytp KQotCQkJY291bnRlci0+cmVjZWl2ZS5iYWNrdHJhY2tbKGkgKyBpbmRleF9jdXJyZW50KSAmCisJ CQljb3VudGVyLT5iYWNrdHJhY2tbKGkgKyBpbmRleF9jdXJyZW50KSAmCiAJCQkJKChDT1VOVEVS X0JJVFNfVE9UQUwgLyBCSVRTX1BFUl9MT05HKSAtIDEpXSA9IDA7Ci0JCWNvdW50ZXItPnJlY2Vp dmUuY291bnRlciA9IHRoZWlyX2NvdW50ZXI7CisJCWNvdW50ZXItPmNvdW50ZXIgPSB0aGVpcl9j b3VudGVyOwogCX0KIAogCWluZGV4ICY9IChDT1VOVEVSX0JJVFNfVE9UQUwgLyBCSVRTX1BFUl9M T05HKSAtIDE7CiAJcmV0ID0gIXRlc3RfYW5kX3NldF9iaXQodGhlaXJfY291bnRlciAmIChCSVRT X1BFUl9MT05HIC0gMSksCi0JCQkJJmNvdW50ZXItPnJlY2VpdmUuYmFja3RyYWNrW2luZGV4XSk7 CisJCQkJJmNvdW50ZXItPmJhY2t0cmFja1tpbmRleF0pOwogCiBvdXQ6Ci0Jc3Bpbl91bmxvY2tf YmgoJmNvdW50ZXItPnJlY2VpdmUubG9jayk7CisJc3Bpbl91bmxvY2tfYmgoJmNvdW50ZXItPmxv Y2spOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTQ3MywxMiArNDczLDEyIEBAIGludCB3Z19wYWNr ZXRfcnhfcG9sbChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpCiAJCWlmICh1 bmxpa2VseShzdGF0ZSAhPSBQQUNLRVRfU1RBVEVfQ1JZUFRFRCkpCiAJCQlnb3RvIG5leHQ7CiAK LQkJaWYgKHVubGlrZWx5KCFjb3VudGVyX3ZhbGlkYXRlKCZrZXlwYWlyLT5yZWNlaXZpbmcuY291 bnRlciwKKwkJaWYgKHVubGlrZWx5KCFjb3VudGVyX3ZhbGlkYXRlKCZrZXlwYWlyLT5yZWNlaXZp bmdfY291bnRlciwKIAkJCQkJICAgICAgIFBBQ0tFVF9DQihza2IpLT5ub25jZSkpKSB7CiAJCQlu ZXRfZGJnX3JhdGVsaW1pdGVkKCIlczogUGFja2V0IGhhcyBpbnZhbGlkIG5vbmNlICVsbHUgKG1h eCAlbGx1KVxuIiwKIAkJCQkJICAgIHBlZXItPmRldmljZS0+ZGV2LT5uYW1lLAogCQkJCQkgICAg UEFDS0VUX0NCKHNrYiktPm5vbmNlLAotCQkJCQkgICAga2V5cGFpci0+cmVjZWl2aW5nLmNvdW50 ZXIucmVjZWl2ZS5jb3VudGVyKTsKKwkJCQkJICAgIGtleXBhaXItPnJlY2VpdmluZ19jb3VudGVy LmNvdW50ZXIpOwogCQkJZ290byBuZXh0OwogCQl9CiAKQEAgLTUxMiw4ICs1MTIsOCBAQCB2b2lk IHdnX3BhY2tldF9kZWNyeXB0X3dvcmtlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJc3Ry dWN0IHNrX2J1ZmYgKnNrYjsKIAogCXdoaWxlICgoc2tiID0gcHRyX3JpbmdfY29uc3VtZV9iaCgm cXVldWUtPnJpbmcpKSAhPSBOVUxMKSB7Ci0JCWVudW0gcGFja2V0X3N0YXRlIHN0YXRlID0gbGlr ZWx5KGRlY3J5cHRfcGFja2V0KHNrYiwKLQkJCQkmUEFDS0VUX0NCKHNrYiktPmtleXBhaXItPnJl Y2VpdmluZykpID8KKwkJZW51bSBwYWNrZXRfc3RhdGUgc3RhdGUgPQorCQkJbGlrZWx5KGRlY3J5 cHRfcGFja2V0KHNrYiwgUEFDS0VUX0NCKHNrYiktPmtleXBhaXIpKSA/CiAJCQkJUEFDS0VUX1NU QVRFX0NSWVBURUQgOiBQQUNLRVRfU1RBVEVfREVBRDsKIAkJd2dfcXVldWVfZW5xdWV1ZV9wZXJf cGVlcl9uYXBpKHNrYiwgc3RhdGUpOwogCQlpZiAobmVlZF9yZXNjaGVkKCkpCmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC93aXJlZ3VhcmQvc2VsZnRlc3QvY291bnRlci5jIGIvZHJpdmVycy9uZXQv d2lyZWd1YXJkL3NlbGZ0ZXN0L2NvdW50ZXIuYwppbmRleCBmNGZiYjkwNzJlZDcuLmVjM2MxNTZi ZjkxYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWd1YXJkL3NlbGZ0ZXN0L2NvdW50ZXIu YworKysgYi9kcml2ZXJzL25ldC93aXJlZ3VhcmQvc2VsZnRlc3QvY291bnRlci5jCkBAIC02LDE4 ICs2LDI0IEBACiAjaWZkZWYgREVCVUcKIGJvb2wgX19pbml0IHdnX3BhY2tldF9jb3VudGVyX3Nl bGZ0ZXN0KHZvaWQpCiB7CisJc3RydWN0IG5vaXNlX3JlcGxheV9jb3VudGVyICpjb3VudGVyOwog CXVuc2lnbmVkIGludCB0ZXN0X251bSA9IDAsIGk7Ci0JdW5pb24gbm9pc2VfY291bnRlciBjb3Vu dGVyOwogCWJvb2wgc3VjY2VzcyA9IHRydWU7CiAKLSNkZWZpbmUgVF9JTklUIGRvIHsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLQkJbWVtc2V0KCZjb3Vu dGVyLCAwLCBzaXplb2YodW5pb24gbm9pc2VfY291bnRlcikpOyBcCi0JCXNwaW5fbG9ja19pbml0 KCZjb3VudGVyLnJlY2VpdmUubG9jayk7ICAgICAgICAgICAgXAorCWNvdW50ZXIgPSBrbWFsbG9j KHNpemVvZigqY291bnRlciksIEdGUF9LRVJORUwpOworCWlmICh1bmxpa2VseSghY291bnRlcikp IHsKKwkJcHJfZXJyKCJub25jZSBjb3VudGVyIHNlbGYtdGVzdCBtYWxsb2M6IEZBSUxcbiIpOwor CQlyZXR1cm4gZmFsc2U7CisJfQorCisjZGVmaW5lIFRfSU5JVCBkbyB7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorCQltZW1zZXQoY291bnRlciwgMCwgc2l6ZW9mKCpjb3Vu dGVyKSk7ICBcCisJCXNwaW5fbG9ja19pbml0KCZjb3VudGVyLT5sb2NrKTsgICAgICAgIFwKIAl9 IHdoaWxlICgwKQogI2RlZmluZSBUX0xJTSAoQ09VTlRFUl9XSU5ET1dfU0laRSArIDEpCiAjZGVm aW5lIFQobiwgdikgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAogCQkrK3Rlc3RfbnVtOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCi0JCWlmIChjb3VudGVyX3ZhbGlkYXRlKCZjb3VudGVyLCBuKSAhPSAodikp IHsgICAgICAgICAgIFwKKwkJaWYgKGNvdW50ZXJfdmFsaWRhdGUoY291bnRlciwgbikgIT0gKHYp KSB7ICAgICAgICAgICAgXAogCQkJcHJfZXJyKCJub25jZSBjb3VudGVyIHNlbGYtdGVzdCAldTog RkFJTFxuIiwgIFwKIAkJCSAgICAgICB0ZXN0X251bSk7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCiAJCQlzdWNjZXNzID0gZmFsc2U7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XApAQCAtOTksNiArMTA1LDcgQEAgYm9vbCBfX2luaXQgd2dfcGFja2V0X2NvdW50ZXJfc2VsZnRl c3Qodm9pZCkKIAogCWlmIChzdWNjZXNzKQogCQlwcl9pbmZvKCJub25jZSBjb3VudGVyIHNlbGYt dGVzdHM6IHBhc3NcbiIpOworCWtmcmVlKGNvdW50ZXIpOwogCXJldHVybiBzdWNjZXNzOwogfQog I2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlZ3VhcmQvc2VuZC5jIGIvZHJpdmVy cy9uZXQvd2lyZWd1YXJkL3NlbmQuYwppbmRleCAwZDY0YTc1MzFmNjQuLjQ4NWQ1ZDdhMjE3YiAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWd1YXJkL3NlbmQuYworKysgYi9kcml2ZXJzL25l dC93aXJlZ3VhcmQvc2VuZC5jCkBAIC0xMjksNyArMTI5LDcgQEAgc3RhdGljIHZvaWQga2VlcF9r ZXlfZnJlc2goc3RydWN0IHdnX3BlZXIgKnBlZXIpCiAJcmN1X3JlYWRfbG9ja19iaCgpOwogCWtl eXBhaXIgPSByY3VfZGVyZWZlcmVuY2VfYmgocGVlci0+a2V5cGFpcnMuY3VycmVudF9rZXlwYWly KTsKIAlpZiAobGlrZWx5KGtleXBhaXIgJiYgUkVBRF9PTkNFKGtleXBhaXItPnNlbmRpbmcuaXNf dmFsaWQpKSAmJgotCSAgICAodW5saWtlbHkoYXRvbWljNjRfcmVhZCgma2V5cGFpci0+c2VuZGlu Zy5jb3VudGVyLmNvdW50ZXIpID4KKwkgICAgKHVubGlrZWx5KGF0b21pYzY0X3JlYWQoJmtleXBh aXItPnNlbmRpbmdfY291bnRlcikgPgogCQkgICAgICBSRUtFWV9BRlRFUl9NRVNTQUdFUykgfHwK IAkgICAgIChrZXlwYWlyLT5pX2FtX3RoZV9pbml0aWF0b3IgJiYKIAkgICAgICB1bmxpa2VseSh3 Z19iaXJ0aGRhdGVfaGFzX2V4cGlyZWQoa2V5cGFpci0+c2VuZGluZy5iaXJ0aGRhdGUsCkBAIC0z NTMsNyArMzUzLDYgQEAgdm9pZCB3Z19wYWNrZXRfcHVyZ2Vfc3RhZ2VkX3BhY2tldHMoc3RydWN0 IHdnX3BlZXIgKnBlZXIpCiAKIHZvaWQgd2dfcGFja2V0X3NlbmRfc3RhZ2VkX3BhY2tldHMoc3Ry dWN0IHdnX3BlZXIgKnBlZXIpCiB7Ci0Jc3RydWN0IG5vaXNlX3N5bW1ldHJpY19rZXkgKmtleTsK IAlzdHJ1Y3Qgbm9pc2Vfa2V5cGFpciAqa2V5cGFpcjsKIAlzdHJ1Y3Qgc2tfYnVmZl9oZWFkIHBh Y2tldHM7CiAJc3RydWN0IHNrX2J1ZmYgKnNrYjsKQEAgLTM3MywxMCArMzcyLDkgQEAgdm9pZCB3 Z19wYWNrZXRfc2VuZF9zdGFnZWRfcGFja2V0cyhzdHJ1Y3Qgd2dfcGVlciAqcGVlcikKIAlyY3Vf cmVhZF91bmxvY2tfYmgoKTsKIAlpZiAodW5saWtlbHkoIWtleXBhaXIpKQogCQlnb3RvIG91dF9u b2tleTsKLQlrZXkgPSAma2V5cGFpci0+c2VuZGluZzsKLQlpZiAodW5saWtlbHkoIVJFQURfT05D RShrZXktPmlzX3ZhbGlkKSkpCisJaWYgKHVubGlrZWx5KCFSRUFEX09OQ0Uoa2V5cGFpci0+c2Vu ZGluZy5pc192YWxpZCkpKQogCQlnb3RvIG91dF9ub2tleTsKLQlpZiAodW5saWtlbHkod2dfYmly dGhkYXRlX2hhc19leHBpcmVkKGtleS0+YmlydGhkYXRlLAorCWlmICh1bmxpa2VseSh3Z19iaXJ0 aGRhdGVfaGFzX2V4cGlyZWQoa2V5cGFpci0+c2VuZGluZy5iaXJ0aGRhdGUsCiAJCQkJCSAgICAg IFJFSkVDVF9BRlRFUl9USU1FKSkpCiAJCWdvdG8gb3V0X2ludmFsaWQ7CiAKQEAgLTM5MSw3ICsz ODksNyBAQCB2b2lkIHdnX3BhY2tldF9zZW5kX3N0YWdlZF9wYWNrZXRzKHN0cnVjdCB3Z19wZWVy ICpwZWVyKQogCQkgKi8KIAkJUEFDS0VUX0NCKHNrYiktPmRzID0gaXBfdHVubmVsX2Vjbl9lbmNh cCgwLCBpcF9oZHIoc2tiKSwgc2tiKTsKIAkJUEFDS0VUX0NCKHNrYiktPm5vbmNlID0KLQkJCQlh dG9taWM2NF9pbmNfcmV0dXJuKCZrZXktPmNvdW50ZXIuY291bnRlcikgLSAxOworCQkJCWF0b21p YzY0X2luY19yZXR1cm4oJmtleXBhaXItPnNlbmRpbmdfY291bnRlcikgLSAxOwogCQlpZiAodW5s aWtlbHkoUEFDS0VUX0NCKHNrYiktPm5vbmNlID49IFJFSkVDVF9BRlRFUl9NRVNTQUdFUykpCiAJ CQlnb3RvIG91dF9pbnZhbGlkOwogCX0KQEAgLTQwMyw3ICs0MDEsNyBAQCB2b2lkIHdnX3BhY2tl dF9zZW5kX3N0YWdlZF9wYWNrZXRzKHN0cnVjdCB3Z19wZWVyICpwZWVyKQogCXJldHVybjsKIAog b3V0X2ludmFsaWQ6Ci0JV1JJVEVfT05DRShrZXktPmlzX3ZhbGlkLCBmYWxzZSk7CisJV1JJVEVf T05DRShrZXlwYWlyLT5zZW5kaW5nLmlzX3ZhbGlkLCBmYWxzZSk7CiBvdXRfbm9rZXk6CiAJd2df bm9pc2Vfa2V5cGFpcl9wdXQoa2V5cGFpciwgZmFsc2UpOwogCi0tIAoyLjI2LjIKCgpGcm9tIGYy Y2I5MDFlZWJiODBkZjNhNWE4MTFiYzJkOWNlYTNlODQ3Mzk4M2EgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IEhlaW5lciBLYWxsd2VpdCA8aGthbGx3ZWl0MUBnbWFpbC5jb20+CkRhdGU6 IFRodSwgMjEgTWF5IDIwMjAgMjI6MDM6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDMxLzMzXSBy ODE2OTogZml4IE9DUCBhY2Nlc3Mgb24gUlRMODExNwoKWyBVcHN0cmVhbSBjb21taXQgNTYxNTM1 YjBmMjM5NjFjZWQwNzFiODI1NzVkNWU4M2U2MzUxYTgxNCBdCgpBY2NvcmRpbmcgdG8gcjgxNjgg dmVuZG9yIGRyaXZlciBEQVNIdjMgY2hpcHMgbGlrZSBSVEw4MTY4ZnAvUlRMODExNwpuZWVkIGEg c3BlY2lhbCBhZGRyZXNzaW5nIGZvciBPQ1AgYWNjZXNzLgpGaXggaXMgY29tcGlsZS10ZXN0ZWQg b25seSBkdWUgdG8gbWlzc2luZyB0ZXN0IGhhcmR3YXJlLgoKRml4ZXM6IDEyODc3MjNhYTEzOSAo InI4MTY5OiBhZGQgc3VwcG9ydCBmb3IgUlRMODExNyIpClNpZ25lZC1vZmYtYnk6IEhlaW5lciBL YWxsd2VpdCA8aGthbGx3ZWl0MUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9yZWFs dGVrL3I4MTY5X21haW4uYyB8IDE3ICsrKysrKysrKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwg MTUgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9yZWFsdGVrL3I4MTY5X21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Jl YWx0ZWsvcjgxNjlfbWFpbi5jCmluZGV4IDA3YTZiNjA5Zjc0MS4uNmU0ZmUyNTY2ZjZiIDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9yZWFsdGVrL3I4MTY5X21haW4uYworKysgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9yZWFsdGVrL3I4MTY5X21haW4uYwpAQCAtMTA0NCw2ICsxMDQ0 LDEzIEBAIHN0YXRpYyB1MTYgcnRsX2VwaHlfcmVhZChzdHJ1Y3QgcnRsODE2OV9wcml2YXRlICp0 cCwgaW50IHJlZ19hZGRyKQogCQlSVExfUjMyKHRwLCBFUEhZQVIpICYgRVBIWUFSX0RBVEFfTUFT SyA6IH4wOwogfQogCitzdGF0aWMgdm9pZCByODE2OGZwX2FkanVzdF9vY3BfY21kKHN0cnVjdCBy dGw4MTY5X3ByaXZhdGUgKnRwLCB1MzIgKmNtZCwgaW50IHR5cGUpCit7CisJLyogYmFzZWQgb24g UlRMODE2OEZQX09PQk1BQ19CQVNFIGluIHZlbmRvciBkcml2ZXIgKi8KKwlpZiAodHAtPm1hY192 ZXJzaW9uID09IFJUTF9HSUdBX01BQ19WRVJfNTIgJiYgdHlwZSA9PSBFUklBUl9PT0IpCisJCSpj bWQgfD0gMHg3ZjAgPDwgMTg7Cit9CisKIERFQ0xBUkVfUlRMX0NPTkQocnRsX2VyaWFyX2NvbmQp CiB7CiAJcmV0dXJuIFJUTF9SMzIodHAsIEVSSUFSKSAmIEVSSUFSX0ZMQUc7CkBAIC0xMDUyLDkg KzEwNTksMTIgQEAgREVDTEFSRV9SVExfQ09ORChydGxfZXJpYXJfY29uZCkKIHN0YXRpYyB2b2lk IF9ydGxfZXJpX3dyaXRlKHN0cnVjdCBydGw4MTY5X3ByaXZhdGUgKnRwLCBpbnQgYWRkciwgdTMy IG1hc2ssCiAJCQkgICB1MzIgdmFsLCBpbnQgdHlwZSkKIHsKKwl1MzIgY21kID0gRVJJQVJfV1JJ VEVfQ01EIHwgdHlwZSB8IG1hc2sgfCBhZGRyOworCiAJQlVHX09OKChhZGRyICYgMykgfHwgKG1h c2sgPT0gMCkpOwogCVJUTF9XMzIodHAsIEVSSURSLCB2YWwpOwotCVJUTF9XMzIodHAsIEVSSUFS LCBFUklBUl9XUklURV9DTUQgfCB0eXBlIHwgbWFzayB8IGFkZHIpOworCXI4MTY4ZnBfYWRqdXN0 X29jcF9jbWQodHAsICZjbWQsIHR5cGUpOworCVJUTF9XMzIodHAsIEVSSUFSLCBjbWQpOwogCiAJ cnRsX3VkZWxheV9sb29wX3dhaXRfbG93KHRwLCAmcnRsX2VyaWFyX2NvbmQsIDEwMCwgMTAwKTsK IH0KQEAgLTEwNjcsNyArMTA3NywxMCBAQCBzdGF0aWMgdm9pZCBydGxfZXJpX3dyaXRlKHN0cnVj dCBydGw4MTY5X3ByaXZhdGUgKnRwLCBpbnQgYWRkciwgdTMyIG1hc2ssCiAKIHN0YXRpYyB1MzIg X3J0bF9lcmlfcmVhZChzdHJ1Y3QgcnRsODE2OV9wcml2YXRlICp0cCwgaW50IGFkZHIsIGludCB0 eXBlKQogewotCVJUTF9XMzIodHAsIEVSSUFSLCBFUklBUl9SRUFEX0NNRCB8IHR5cGUgfCBFUklB Ul9NQVNLXzExMTEgfCBhZGRyKTsKKwl1MzIgY21kID0gRVJJQVJfUkVBRF9DTUQgfCB0eXBlIHwg RVJJQVJfTUFTS18xMTExIHwgYWRkcjsKKworCXI4MTY4ZnBfYWRqdXN0X29jcF9jbWQodHAsICZj bWQsIHR5cGUpOworCVJUTF9XMzIodHAsIEVSSUFSLCBjbWQpOwogCiAJcmV0dXJuIHJ0bF91ZGVs YXlfbG9vcF93YWl0X2hpZ2godHAsICZydGxfZXJpYXJfY29uZCwgMTAwLCAxMDApID8KIAkJUlRM X1IzMih0cCwgRVJJRFIpIDogfjA7Ci0tIAoyLjI2LjIKCgpGcm9tIDRmODc3NGYzZjFjZDY0OWZh Yzg5OTQxOGIwMzE1YjU3OTFlMmFhM2UgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVy YW4gQmVuIEVsaXNoYSA8ZXJhbmJlQG1lbGxhbm94LmNvbT4KRGF0ZTogV2VkLCAxOCBNYXIgMjAy MCAyMTo0NDozMiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMzIvMzNdIG5ldC9tbHg1OiBGaXggYSBy YWNlIHdoZW4gbW92aW5nIGNvbW1hbmQgaW50ZXJmYWNlIHRvCiBldmVudHMgbW9kZQoKWyBVcHN0 cmVhbSBjb21taXQgZDQzYjcwMDdkYmQxMTk1YTViNmI4MzIxM2U0OWIxNTE2YWFmNmY1ZSBdCgpB ZnRlciBkcml2ZXIgY3JlYXRlcyAodmlhIEZXIGNvbW1hbmQpIGFuIEVRIGZvciBjb21tYW5kcywg dGhlIGRyaXZlciB3aWxsCmJlIGluZm9ybWVkIG9uIG5ldyBjb21tYW5kcyBjb21wbGV0aW9uIGJ5 IEVRRS4gSG93ZXZlciwgZHVlIHRvIGEgcmFjZSBpbgpkcml2ZXIncyBpbnRlcm5hbCBjb21tYW5k IG1vZGUgbWV0YWRhdGEgdXBkYXRlLCBzb21lIG5ldyBjb21tYW5kcyB3aWxsCnN0aWxsIGJlIG1p c3MtaGFuZGxlZCBieSBkcml2ZXIgYXMgaWYgd2UgYXJlIGluIHBvbGxpbmcgbW9kZS4gU3VjaCBj b21tYW5kcwpjYW4gZ2V0IHR3byBub24gZm9yY2VkIGNvbXBsZXRpb24sIGxlYWRpbmcgdG8gYWxy ZWFkeSBmcmVlZCBjb21tYW5kIGVudHJ5CmFjY2Vzcy4KCkNSRUFURV9FUSBjb21tYW5kLCB0aGF0 IG1hcHMgRVEgdG8gdGhlIGNvbW1hbmQgcXVldWUgbXVzdCBiZSBwb3N0ZWQgdG8gdGhlCmNvbW1h bmQgcXVldWUgd2hpbGUgaXQgaXMgZW1wdHkgYW5kIG5vIG90aGVyIGNvbW1hbmQgc2hvdWxkIGJl IHBvc3RlZC4KCkFkZCBTVyBtZWNoYW5pc20gdGhhdCBvbmNlIHRoZSBDUkVBVEVfRVEgY29tbWFu ZCBpcyBhYm91dCB0byBiZSBleGVjdXRlZCwKYWxsIG90aGVyIGNvbW1hbmRzIHdpbGwgcmV0dXJu IGVycm9yIHdpdGhvdXQgYmVpbmcgc2VudCB0byB0aGUgRlcuIEFsbG93CnNlbmRpbmcgb3RoZXIg Y29tbWFuZHMgb25seSBhZnRlciBzdWNjZXNzZnVsbHkgY2hhbmdpbmcgdGhlIGRyaXZlcidzCmlu dGVybmFsIGNvbW1hbmQgbW9kZSBtZXRhZGF0YS4KV2UgY2FuIHNhZmVseSByZXR1cm4gZXJyb3Ig dG8gYWxsIG90aGVyIGNvbW1hbmRzIHdoaWxlIGNyZWF0aW5nIHRoZSBjb21tYW5kCkVRLCBhcyBh bGwgb3RoZXIgY29tbWFuZHMgbWlnaHQgYmUgc2VudCBmcm9tIHRoZSB1c2VyL2FwcGxpY2F0aW9u IGR1cmluZwpkcml2ZXIgbG9hZC4gQXBwbGljYXRpb24gY2FuIHJlcnVuIHRoZW0gbGF0ZXIgYWZ0 ZXIgZHJpdmVyJ3MgbG9hZCB3YXMKZmluaXNoZWQuCgpGaXhlczogZTEyNmJhOTdkYmE5ICgibWx4 NTogQWRkIGRyaXZlciBmb3IgTWVsbGFub3ggQ29ubmVjdC1JQiBhZGFwdGVycyIpClNpZ25lZC1v ZmYtYnk6IEVyYW4gQmVuIEVsaXNoYSA8ZXJhbmJlQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1i eTogTW9zaGUgU2hlbWVzaCA8bW9zaGVAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVl ZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMgfCAzNSArKysrKysrKysrKysrKysrLS0tCiBkcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXEuYyAgfCAgMyArKwogaW5jbHVk ZS9saW51eC9tbHg1L2RyaXZlci5oICAgICAgICAgICAgICAgICAgIHwgIDYgKysrKwogMyBmaWxl cyBjaGFuZ2VkLCA0MCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYwppbmRleCBkNjk1Yjc1YmMwYWYu LjJmM2NhZmRjM2IxZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4NS9jb3JlL2NtZC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUv Y29yZS9jbWQuYwpAQCAtODQ4LDYgKzg0OCwxNCBAQCBzdGF0aWMgdm9pZCBmcmVlX21zZyhzdHJ1 Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9jbWRfbXNnICptc2cpOwogc3RhdGlj IHZvaWQgbWx4NV9mcmVlX2NtZF9tc2coc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwKIAkJCSAg ICAgIHN0cnVjdCBtbHg1X2NtZF9tc2cgKm1zZyk7CiAKK3N0YXRpYyBib29sIG9wY29kZV9hbGxv d2VkKHN0cnVjdCBtbHg1X2NtZCAqY21kLCB1MTYgb3Bjb2RlKQoreworCWlmIChjbWQtPmFsbG93 ZWRfb3Bjb2RlID09IENNRF9BTExPV0VEX09QQ09ERV9BTEwpCisJCXJldHVybiB0cnVlOworCisJ cmV0dXJuIGNtZC0+YWxsb3dlZF9vcGNvZGUgPT0gb3Bjb2RlOworfQorCiBzdGF0aWMgdm9pZCBj bWRfd29ya19oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIHsKIAlzdHJ1Y3QgbWx4 NV9jbWRfd29ya19lbnQgKmVudCA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgbWx4NV9jbWRf d29ya19lbnQsIHdvcmspOwpAQCAtOTE0LDcgKzkyMiw4IEBAIHN0YXRpYyB2b2lkIGNtZF93b3Jr X2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCiAJLyogU2tpcCBzZW5kaW5nIGNv bW1hbmQgdG8gZncgaWYgaW50ZXJuYWwgZXJyb3IgKi8KIAlpZiAocGNpX2NoYW5uZWxfb2ZmbGlu ZShkZXYtPnBkZXYpIHx8Ci0JICAgIGRldi0+c3RhdGUgPT0gTUxYNV9ERVZJQ0VfU1RBVEVfSU5U RVJOQUxfRVJST1IpIHsKKwkgICAgZGV2LT5zdGF0ZSA9PSBNTFg1X0RFVklDRV9TVEFURV9JTlRF Uk5BTF9FUlJPUiB8fAorCSAgICAhb3Bjb2RlX2FsbG93ZWQoJmRldi0+Y21kLCBlbnQtPm9wKSkg ewogCQl1OCBzdGF0dXMgPSAwOwogCQl1MzIgZHJ2X3N5bmQ7CiAKQEAgLTE0MDUsNiArMTQxNCwy MiBAQCBzdGF0aWMgdm9pZCBjcmVhdGVfZGVidWdmc19maWxlcyhzdHJ1Y3QgbWx4NV9jb3JlX2Rl diAqZGV2KQogCW1seDVfY21kaWZfZGVidWdmc19pbml0KGRldik7CiB9CiAKK3ZvaWQgbWx4NV9j bWRfYWxsb3dlZF9vcGNvZGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IG9wY29kZSkK K3sKKwlzdHJ1Y3QgbWx4NV9jbWQgKmNtZCA9ICZkZXYtPmNtZDsKKwlpbnQgaTsKKworCWZvciAo aSA9IDA7IGkgPCBjbWQtPm1heF9yZWdfY21kczsgaSsrKQorCQlkb3duKCZjbWQtPnNlbSk7CisJ ZG93bigmY21kLT5wYWdlc19zZW0pOworCisJY21kLT5hbGxvd2VkX29wY29kZSA9IG9wY29kZTsK KworCXVwKCZjbWQtPnBhZ2VzX3NlbSk7CisJZm9yIChpID0gMDsgaSA8IGNtZC0+bWF4X3JlZ19j bWRzOyBpKyspCisJCXVwKCZjbWQtPnNlbSk7Cit9CisKIHN0YXRpYyB2b2lkIG1seDVfY21kX2No YW5nZV9tb2Qoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgaW50IG1vZGUpCiB7CiAJc3RydWN0 IG1seDVfY21kICpjbWQgPSAmZGV2LT5jbWQ7CkBAIC0xNjgxLDEyICsxNzA2LDEzIEBAIHN0YXRp YyBpbnQgY21kX2V4ZWMoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdm9pZCAqaW4sIGludCBp bl9zaXplLCB2b2lkICpvdXQsCiAJaW50IGVycjsKIAl1OCBzdGF0dXMgPSAwOwogCXUzMiBkcnZf c3luZDsKKwl1MTYgb3Bjb2RlOwogCXU4IHRva2VuOwogCisJb3Bjb2RlID0gTUxYNV9HRVQobWJv eF9pbiwgaW4sIG9wY29kZSk7CiAJaWYgKHBjaV9jaGFubmVsX29mZmxpbmUoZGV2LT5wZGV2KSB8 fAotCSAgICBkZXYtPnN0YXRlID09IE1MWDVfREVWSUNFX1NUQVRFX0lOVEVSTkFMX0VSUk9SKSB7 Ci0JCXUxNiBvcGNvZGUgPSBNTFg1X0dFVChtYm94X2luLCBpbiwgb3Bjb2RlKTsKLQorCSAgICBk ZXYtPnN0YXRlID09IE1MWDVfREVWSUNFX1NUQVRFX0lOVEVSTkFMX0VSUk9SIHx8CisJICAgICFv cGNvZGVfYWxsb3dlZCgmZGV2LT5jbWQsIG9wY29kZSkpIHsKIAkJZXJyID0gbWx4NV9pbnRlcm5h bF9lcnJfcmV0X3ZhbHVlKGRldiwgb3Bjb2RlLCAmZHJ2X3N5bmQsICZzdGF0dXMpOwogCQlNTFg1 X1NFVChtYm94X291dCwgb3V0LCBzdGF0dXMsIHN0YXR1cyk7CiAJCU1MWDVfU0VUKG1ib3hfb3V0 LCBvdXQsIHN5bmRyb21lLCBkcnZfc3luZCk7CkBAIC0xOTg4LDYgKzIwMTQsNyBAQCBpbnQgbWx4 NV9jbWRfaW5pdChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KQogCW1seDVfY29yZV9kYmcoZGV2 LCAiZGVzY3JpcHRvciBhdCBkbWEgMHglbGx4XG4iLCAodW5zaWduZWQgbG9uZyBsb25nKShjbWQt PmRtYSkpOwogCiAJY21kLT5tb2RlID0gQ01EX01PREVfUE9MTElORzsKKwljbWQtPmFsbG93ZWRf b3Bjb2RlID0gQ01EX0FMTE9XRURfT1BDT0RFX0FMTDsKIAogCWNyZWF0ZV9tc2dfY2FjaGUoZGV2 KTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L2VxLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXEuYwppbmRl eCBjY2NlYTNhOGVkZGQuLmNlNmM2MjFhZjA0MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VxLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NS9jb3JlL2VxLmMKQEAgLTYxMSwxMSArNjExLDEzIEBAIHN0YXRpYyBpbnQg Y3JlYXRlX2FzeW5jX2VxcyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KQogCQkubmVudCA9IE1M WDVfTlVNX0NNRF9FUUUsCiAJCS5tYXNrWzBdID0gMXVsbCA8PCBNTFg1X0VWRU5UX1RZUEVfQ01E LAogCX07CisJbWx4NV9jbWRfYWxsb3dlZF9vcGNvZGUoZGV2LCBNTFg1X0NNRF9PUF9DUkVBVEVf RVEpOwogCWVyciA9IHNldHVwX2FzeW5jX2VxKGRldiwgJnRhYmxlLT5jbWRfZXEsICZwYXJhbSwg ImNtZCIpOwogCWlmIChlcnIpCiAJCWdvdG8gZXJyMTsKIAogCW1seDVfY21kX3VzZV9ldmVudHMo ZGV2KTsKKwltbHg1X2NtZF9hbGxvd2VkX29wY29kZShkZXYsIENNRF9BTExPV0VEX09QQ09ERV9B TEwpOwogCiAJcGFyYW0gPSAoc3RydWN0IG1seDVfZXFfcGFyYW0pIHsKIAkJLmlycV9pbmRleCA9 IDAsCkBAIC02NDUsNiArNjQ3LDcgQEAgc3RhdGljIGludCBjcmVhdGVfYXN5bmNfZXFzKHN0cnVj dCBtbHg1X2NvcmVfZGV2ICpkZXYpCiAJbWx4NV9jbWRfdXNlX3BvbGxpbmcoZGV2KTsKIAljbGVh bnVwX2FzeW5jX2VxKGRldiwgJnRhYmxlLT5jbWRfZXEsICJjbWQiKTsKIGVycjE6CisJbWx4NV9j bWRfYWxsb3dlZF9vcGNvZGUoZGV2LCBDTURfQUxMT1dFRF9PUENPREVfQUxMKTsKIAltbHg1X2Vx X25vdGlmaWVyX3VucmVnaXN0ZXIoZGV2LCAmdGFibGUtPmNxX2Vycl9uYik7CiAJcmV0dXJuIGVy cjsKIH0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbWx4NS9kcml2ZXIuaCBiL2luY2x1ZGUv bGludXgvbWx4NS9kcml2ZXIuaAppbmRleCBiNTk2MzUzYTNhMTIuLjYwNTAyNjRlYmRlMSAxMDA2 NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tbHg1L2RyaXZlci5oCisrKyBiL2luY2x1ZGUvbGludXgv bWx4NS9kcml2ZXIuaApAQCAtMzAxLDYgKzMwMSw3IEBAIHN0cnVjdCBtbHg1X2NtZCB7CiAJc3Ry dWN0IHNlbWFwaG9yZSBzZW07CiAJc3RydWN0IHNlbWFwaG9yZSBwYWdlc19zZW07CiAJaW50CW1v ZGU7CisJdTE2ICAgICBhbGxvd2VkX29wY29kZTsKIAlzdHJ1Y3QgbWx4NV9jbWRfd29ya19lbnQg KmVudF9hcnJbTUxYNV9NQVhfQ09NTUFORFNdOwogCXN0cnVjdCBkbWFfcG9vbCAqcG9vbDsKIAlz dHJ1Y3QgbWx4NV9jbWRfZGVidWcgZGJnOwpAQCAtODkzLDEwICs4OTQsMTUgQEAgbWx4NV9mcmFn X2J1Zl9nZXRfaWR4X2xhc3RfY29udGlnX3N0cmlkZShzdHJ1Y3QgbWx4NV9mcmFnX2J1Zl9jdHJs ICpmYmMsIHUzMiBpeCkKIAlyZXR1cm4gbWluX3QodTMyLCBsYXN0X2ZyYWdfc3RyaWRlX2lkeCAt IGZiYy0+c3RyaWRlc19vZmZzZXQsIGZiYy0+c3pfbTEpOwogfQogCitlbnVtIHsKKwlDTURfQUxM T1dFRF9PUENPREVfQUxMLAorfTsKKwogaW50IG1seDVfY21kX2luaXQoc3RydWN0IG1seDVfY29y ZV9kZXYgKmRldik7CiB2b2lkIG1seDVfY21kX2NsZWFudXAoc3RydWN0IG1seDVfY29yZV9kZXYg KmRldik7CiB2b2lkIG1seDVfY21kX3VzZV9ldmVudHMoc3RydWN0IG1seDVfY29yZV9kZXYgKmRl dik7CiB2b2lkIG1seDVfY21kX3VzZV9wb2xsaW5nKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYp Owordm9pZCBtbHg1X2NtZF9hbGxvd2VkX29wY29kZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2 LCB1MTYgb3Bjb2RlKTsKIAogc3RydWN0IG1seDVfYXN5bmNfY3R4IHsKIAlzdHJ1Y3QgbWx4NV9j b3JlX2RldiAqZGV2OwotLSAKMi4yNi4yCgoKRnJvbSBjOTJkOWJiYzgyZmI3MTMyNjJhMzk4NTgx NTRlMjQyYjU0ZjgwMTdjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSb2kgRGF5YW4g PHJvaWRAbWVsbGFub3guY29tPgpEYXRlOiBNb24sIDExIE1heSAyMDIwIDE2OjMyOjA5ICswMzAw ClN1YmplY3Q6IFtQQVRDSCAzMy8zM10gbmV0L21seDU6IEZpeCBjbGVhbmluZyB1bm1hbmFnZWQg ZmxvdyB0YWJsZXMKClsgVXBzdHJlYW0gY29tbWl0IGFlZTM3ZjNkOTQwY2E3MzJkZjcxYzNkZjQ5 MzQ3YmNjYWFmYzBiMjQgXQoKVW5tYW5hZ2VkIGZsb3cgdGFibGVzIGRvZXNuJ3QgaGF2ZSBhIHBh cmVudCBhbmQgdHJlZV9wdXRfbm9kZSgpCmFzc3VtZSB0aGVyZSBpcyBhbHdheXMgYSBwYXJlbnQg aWYgY2xlYW5pbmcgaXMgbmVlZGVkLiBmaXggdGhhdC4KCkZpeGVzOiA1MjgxYTBjOTA5MTkgKCJu ZXQvbWx4NTogZnNfY29yZTogSW50cm9kdWNlIHVubWFuYWdlZCBmbG93IHRhYmxlcyIpClNpZ25l ZC1vZmYtYnk6IFJvaSBEYXlhbiA8cm9pZEBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBNYXJr IEJsb2NoIDxtYXJrYkBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBQYXVsIEJsYWtleSA8cGF1 bGJAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1l bGxhbm94LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUv ZnNfY29yZS5jIHwgMTEgKysrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMo KyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9mc19jb3JlLmMKaW5kZXggOWRjMjQyNDFkYzkxLi5jZGM1NjY3NjhhMDcgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3Jl LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUu YwpAQCAtMzIzLDE0ICszMjMsMTMgQEAgc3RhdGljIHZvaWQgdHJlZV9wdXRfbm9kZShzdHJ1Y3Qg ZnNfbm9kZSAqbm9kZSwgYm9vbCBsb2NrZWQpCiAJCWlmIChub2RlLT5kZWxfaHdfZnVuYykKIAkJ CW5vZGUtPmRlbF9od19mdW5jKG5vZGUpOwogCQlpZiAocGFyZW50X25vZGUpIHsKLQkJCS8qIE9u bHkgcm9vdCBuYW1lc3BhY2UgZG9lc24ndCBoYXZlIHBhcmVudCBhbmQgd2UganVzdAotCQkJICog bmVlZCB0byBmcmVlIGl0cyBub2RlLgotCQkJICovCiAJCQlkb3duX3dyaXRlX3JlZl9ub2RlKHBh cmVudF9ub2RlLCBsb2NrZWQpOwogCQkJbGlzdF9kZWxfaW5pdCgmbm9kZS0+bGlzdCk7CiAJCQlp ZiAobm9kZS0+ZGVsX3N3X2Z1bmMpCiAJCQkJbm9kZS0+ZGVsX3N3X2Z1bmMobm9kZSk7CiAJCQl1 cF93cml0ZV9yZWZfbm9kZShwYXJlbnRfbm9kZSwgbG9ja2VkKTsKKwkJfSBlbHNlIGlmIChub2Rl LT5kZWxfc3dfZnVuYykgeworCQkJbm9kZS0+ZGVsX3N3X2Z1bmMobm9kZSk7CiAJCX0gZWxzZSB7 CiAJCQlrZnJlZShub2RlKTsKIAkJfQpAQCAtNDQ3LDggKzQ0NiwxMCBAQCBzdGF0aWMgdm9pZCBk ZWxfc3dfZmxvd190YWJsZShzdHJ1Y3QgZnNfbm9kZSAqbm9kZSkKIAlmc19nZXRfb2JqKGZ0LCBu b2RlKTsKIAogCXJobHRhYmxlX2Rlc3Ryb3koJmZ0LT5mZ3NfaGFzaCk7Ci0JZnNfZ2V0X29iaihw cmlvLCBmdC0+bm9kZS5wYXJlbnQpOwotCXByaW8tPm51bV9mdC0tOworCWlmIChmdC0+bm9kZS5w YXJlbnQpIHsKKwkJZnNfZ2V0X29iaihwcmlvLCBmdC0+bm9kZS5wYXJlbnQpOworCQlwcmlvLT5u dW1fZnQtLTsKKwl9CiAJa2ZyZWUoZnQpOwogfQogCi0tIAoyLjI2LjIKCg== ----Next_Part(Tue_May_26_23_16_52_2020_574)----