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 BBE2BC76186 for ; Thu, 25 Jul 2019 01:55:52 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 393CE2238C for ; Thu, 25 Jul 2019 01:55:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388084AbfGYBzv (ORCPT ); Wed, 24 Jul 2019 21:55:51 -0400 Received: from shards.monkeyblade.net ([23.128.96.9]:54972 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387820AbfGYBzv (ORCPT ); Wed, 24 Jul 2019 21:55:51 -0400 Received: from localhost (unknown [IPv6:2601:601:9f80:35cd::d71]) (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 45AFA1264FD69 for ; Wed, 24 Jul 2019 18:55:45 -0700 (PDT) Date: Wed, 24 Jul 2019 18:55:42 -0700 (PDT) Message-Id: <20190724.185542.1419407175465140099.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller X-Mailer: Mew version 6.8 on Emacs 26.1 Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Wed_Jul_24_18_55_42_2019_963)--" 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]); Wed, 24 Jul 2019 18:55:47 -0700 (PDT) Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org ----Next_Part(Wed_Jul_24_18_55_42_2019_963)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for v5.1 and v5.2 -stable, respectively. Thank you. ----Next_Part(Wed_Jul_24_18_55_42_2019_963)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_51.mbox" RnJvbSA1MWM1Y2IzYzk0Mzg1MjIyMWQwNzNjN2NkZGYwYjJiZDIyZDU2ZWU3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCcmlhbiBLaW5nIDxicmtpbmdAbGludXgudm5ldC5pYm0uY29t PgpEYXRlOiBNb24sIDE1IEp1bCAyMDE5IDE2OjQxOjUwIC0wNTAwClN1YmplY3Q6IFtQQVRDSCAw MS80NV0gYm54Mng6IFByZXZlbnQgbG9hZCByZW9yZGVyaW5nIGluIHR4IGNvbXBsZXRpb24KIHBy b2Nlc3NpbmcKClsgVXBzdHJlYW0gY29tbWl0IGVhODExYjc5NWRmMjQ2NDRhOGViNzYwYjQ5M2M0 M2ZiYTQ0NTA2NzcgXQoKVGhpcyBwYXRjaCBmaXhlcyBhbiBpc3N1ZSBzZWVuIG9uIFBvd2VyIHN5 c3RlbXMgd2l0aCBibngyeCB3aGljaCByZXN1bHRzCmluIHRoZSBza2IgaXMgTlVMTCBXQVJOX09O IGluIGJueDJ4X2ZyZWVfdHhfcGt0IGZpcmluZyBkdWUgdG8gdGhlIHNrYgpwb2ludGVyIGdldHRp bmcgbG9hZGVkIGluIGJueDJ4X2ZyZWVfdHhfcGt0IHByaW9yIHRvIHRoZSBod19jb25zCmxvYWQg aW4gYm54MnhfdHhfaW50LiBBZGRpbmcgYSByZWFkIG1lbW9yeSBiYXJyaWVyIHJlc29sdmVzIHRo ZSBpc3N1ZS4KClNpZ25lZC1vZmYtYnk6IEJyaWFuIEtpbmcgPGJya2luZ0BsaW51eC52bmV0Lmli bS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibngyeC9ibngyeF9jbW4uYyB8 IDMgKysrCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54MngvYm54MnhfY21uLmMgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9icm9hZGNvbS9ibngyeC9ibngyeF9jbW4uYwppbmRleCBlY2IxYmQ3ZWI1MDgu LjUyODUxMjE3ZGQ5OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20v Ym54MngvYm54MnhfY21uLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54 MngvYm54MnhfY21uLmMKQEAgLTI4NSw2ICsyODUsOSBAQCBpbnQgYm54MnhfdHhfaW50KHN0cnVj dCBibngyeCAqYnAsIHN0cnVjdCBibngyeF9mcF90eGRhdGEgKnR4ZGF0YSkKIAlod19jb25zID0g bGUxNl90b19jcHUoKnR4ZGF0YS0+dHhfY29uc19zYik7CiAJc3dfY29ucyA9IHR4ZGF0YS0+dHhf cGt0X2NvbnM7CiAKKwkvKiBFbnN1cmUgc3Vic2VxdWVudCBsb2FkcyBvY2N1ciBhZnRlciBod19j b25zICovCisJc21wX3JtYigpOworCiAJd2hpbGUgKHN3X2NvbnMgIT0gaHdfY29ucykgewogCQl1 MTYgcGt0X2NvbnM7CiAKLS0gCjIuMjAuMQoKCkZyb20gMzFhMzA4MGM5NTZhYWNjYzhjMTUyY2I4 Y2RiNDdmNWZiZTFlYTRiZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogIkd1aWxoZXJt ZSBHLiBQaWNjb2xpIiA8Z3BpY2NvbGlAY2Fub25pY2FsLmNvbT4KRGF0ZTogVGh1LCAyNyBKdW4g MjAxOSAxMzozMTozMyAtMDMwMApTdWJqZWN0OiBbUEFUQ0ggMDIvNDVdIGJueDJ4OiBQcmV2ZW50 IHB0cF90YXNrIHRvIGJlIHJlc2NoZWR1bGVkIGluZGVmaW5pdGVseQoKWyBVcHN0cmVhbSBjb21t aXQgM2M5MWYyNWMyZjcyYmE2MDAxNzc1YTU5MzI4NTdjMWQyMTMxYzUzMSBdCgpDdXJyZW50bHkg Ym54MnggcHRwIHdvcmtlciB0cmllcyB0byByZWFkIGEgcmVnaXN0ZXIgd2l0aCB0aW1lc3RhbXAK aW5mb3JtYXRpb24gaW4gY2FzZSBvZiBUWCBwYWNrZXQgdGltZXN0YW1waW5nIGFuZCBpbiBjYXNl IGl0IGZhaWxzLAp0aGUgcm91dGluZSByZXNjaGVkdWxlcyBpdHNlbGYgaW5kZWZpbml0ZWx5LiBU aGlzIHdhcyByZXBvcnRlZCBhcyBhCmt3b3JrZXIgYWx3YXlzIGF0IDEwMCUgb2YgQ1BVIHVzYWdl LCB3aGljaCB3YXMgbmFycm93ZWQgZG93biB0byBiZQpibngyeCBwdHBfdGFzay4KCkJ5IGZvbGxv d2luZyB0aGUgaW9jdGwgaGFuZGxlciwgd2UgY291bGQgbmFycm93IGRvd24gdGhlIHByb2JsZW0g dG8KYW4gTlRQIHRvb2wgKGNocm9ueSkgcmVxdWVzdGluZyBIVyB0aW1lc3RhbXBpbmcgZnJvbSBi bngyeCBOSUMgd2l0aApSWCBmaWx0ZXIgemVyb2VkOyB0aGlzIGlzbid0IHJlcHJvZHVjaWJsZSBm b3IgZXhhbXBsZSB3aXRoIHB0cDRsCihmcm9tIGxpbnV4cHRwKSBzaW5jZSB0aGlzIHRvb2wgcmVx dWVzdHMgYSBzdXBwb3J0ZWQgUlggZmlsdGVyLgpJdCBzZWVtcyBOSUMgRlcgdGltZXN0YW1wIG1l Y2hhbmlzbSBjYW5ub3Qgd29yayB3ZWxsIHdpdGgKUlhfRklMVEVSX05PTkUgLSBkcml2ZXIncyBQ VFAgZmlsdGVyIGluaXQgcm91dGluZSBza2lwcyBhIHJlZ2lzdGVyCndyaXRlIHRvIHRoZSBhZGFw dGVyIGlmIHRoZXJlJ3Mgbm90IGEgc3VwcG9ydGVkIGZpbHRlciByZXF1ZXN0LgoKVGhpcyBwYXRj aCBhZGRyZXNzZXMgdGhlIHByb2JsZW0gb2YgYm54MnggcHRwIHRocmVhZCdzIGV2ZXJsYXN0aW5n CnJlc2NoZWR1bGUgYnkgcmV0cnlpbmcgdGhlIHJlZ2lzdGVyIHJlYWQgMTAgdGltZXM7IGJldHdl ZW4gdGhlIHJlYWQKYXR0ZW1wdHMgdGhlIHRocmVhZCBzbGVlcHMgZm9yIGFuIGluY3JlYXNpbmcg YW1vdW50IG9mIHRpbWUgc3RhcnRpbmcKaW4gMW1zIHRvIGdpdmUgRlcgc29tZSB0aW1lIHRvIHBl cmZvcm0gdGhlIHRpbWVzdGFtcGluZy4gSWYgaXQgc3RpbGwKZmFpbHMgYWZ0ZXIgYWxsIHJldHJp ZXMsIHdlIGJhaWwgb3V0IGluIG9yZGVyIHRvIHByZXZlbnQgYW4gdW5ib3VuZApyZXNvdXJjZSBj b25zdW1wdGlvbiBmcm9tIGJueDJ4LgoKVGhlIHBhdGNoIGFsc28gYWRkcyBhbiBldGh0b29sIHN0 YXRpc3RpYyBmb3IgYWNjb3VudGluZyB0aGUgc2tpcHBlZApUWCB0aW1lc3RhbXAgcGFja2V0cyBh bmQgaXQgcmVkdWNlcyB0aGUgcHJpb3JpdHkgb2YgdGltZXN0YW1waW5nCmVycm9yIG1lc3NhZ2Vz IHRvIHByZXZlbnQgbG9nIGZsb29kaW5nLiBUaGUgY29kZSB3YXMgdGVzdGVkIHVzaW5nCmJvdGgg bGludXhwdHAgYW5kIGNocm9ueS4KClJlcG9ydGVkLWFuZC10ZXN0ZWQtYnk6IFByemVteXNsYXcg SGF1c21hbiA8cHJ6ZW15c2xhdy5oYXVzbWFuQGNhbm9uaWNhbC5jb20+ClN1Z2dlc3RlZC1ieTog U3VkYXJzYW5hIFJlZGR5IEthbGx1cnUgPHNrYWxsdXJ1QG1hcnZlbGwuY29tPgpTaWduZWQtb2Zm LWJ5OiBHdWlsaGVybWUgRy4gUGljY29saSA8Z3BpY2NvbGlAY2Fub25pY2FsLmNvbT4KQWNrZWQt Ynk6IFN1ZGFyc2FuYSBSZWRkeSBLYWxsdXJ1IDxza2FsbHVydUBtYXJ2ZWxsLmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIC4uLi9u ZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54MngvYm54MnhfY21uLmMgICB8ICA1ICsrLQogLi4uL2V0 aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X2V0aHRvb2wuYyAgIHwgIDQgKystCiAuLi4vbmV0 L2V0aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X21haW4uYyAgfCAzMyArKysrKysrKysrKysr Ky0tLS0tCiAuLi4vbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X3N0YXRzLmggfCAg MyArKwogNCBmaWxlcyBjaGFuZ2VkLCAzNCBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibngyeC9ibngyeF9j bW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X2Ntbi5jCmlu ZGV4IDUyODUxMjE3ZGQ5OS4uOWYwN2I4NTA5MWYzIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9icm9hZGNvbS9ibngyeC9ibngyeF9jbW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9icm9hZGNvbS9ibngyeC9ibngyeF9jbW4uYwpAQCAtMzg2MSw5ICszODYxLDEyIEBAIG5l dGRldl90eF90IGJueDJ4X3N0YXJ0X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5l dF9kZXZpY2UgKmRldikKIAogCWlmICh1bmxpa2VseShza2Jfc2hpbmZvKHNrYiktPnR4X2ZsYWdz ICYgU0tCVFhfSFdfVFNUQU1QKSkgewogCQlpZiAoIShicC0+ZmxhZ3MgJiBUWF9USU1FU1RBTVBJ TkdfRU4pKSB7CisJCQlicC0+ZXRoX3N0YXRzLnB0cF9za2lwX3R4X3RzKys7CiAJCQlCTlgyWF9F UlIoIlR4IHRpbWVzdGFtcGluZyB3YXMgbm90IGVuYWJsZWQsIHRoaXMgcGFja2V0IHdpbGwgbm90 IGJlIHRpbWVzdGFtcGVkXG4iKTsKIAkJfSBlbHNlIGlmIChicC0+cHRwX3R4X3NrYikgewotCQkJ Qk5YMlhfRVJSKCJUaGUgZGV2aWNlIHN1cHBvcnRzIG9ubHkgYSBzaW5nbGUgb3V0c3RhbmRpbmcg cGFja2V0IHRvIHRpbWVzdGFtcCwgdGhpcyBwYWNrZXQgd2lsbCBub3QgYmUgdGltZXN0YW1wZWRc biIpOworCQkJYnAtPmV0aF9zdGF0cy5wdHBfc2tpcF90eF90cysrOworCQkJbmV0ZGV2X2Vycl9v bmNlKGJwLT5kZXYsCisJCQkJCSJEZXZpY2Ugc3VwcG9ydHMgb25seSBhIHNpbmdsZSBvdXRzdGFu ZGluZyBwYWNrZXQgdG8gdGltZXN0YW1wLCB0aGlzIHBhY2tldCB3b24ndCBiZSB0aW1lc3RhbXBl ZFxuIik7CiAJCX0gZWxzZSB7CiAJCQlza2Jfc2hpbmZvKHNrYiktPnR4X2ZsYWdzIHw9IFNLQlRY X0lOX1BST0dSRVNTOwogCQkJLyogc2NoZWR1bGUgY2hlY2sgZm9yIFR4IHRpbWVzdGFtcCAqLwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54MngvYm54MnhfZXRo dG9vbC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54MngvYm54MnhfZXRodG9v bC5jCmluZGV4IDU5ZjIyN2ZjYzY4Yi4uMGUxYjg4NGE1MzQ0IDEwMDY0NAotLS0gYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibngyeC9ibngyeF9ldGh0b29sLmMKKysrIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54MngvYm54MnhfZXRodG9vbC5jCkBAIC0xODIsNyAr MTgyLDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7CiAJeyBTVEFUU19PRkZTRVQzMihkcml2ZXJf ZmlsdGVyZWRfdHhfcGt0KSwKIAkJCQk0LCBmYWxzZSwgImRyaXZlcl9maWx0ZXJlZF90eF9wa3Qi IH0sCiAJeyBTVEFUU19PRkZTRVQzMihlZWVfdHhfbHBpKSwKLQkJCQk0LCB0cnVlLCAiVHggTFBJ IGVudHJ5IGNvdW50In0KKwkJCQk0LCB0cnVlLCAiVHggTFBJIGVudHJ5IGNvdW50In0sCisJeyBT VEFUU19PRkZTRVQzMihwdHBfc2tpcF90eF90cyksCisJCQkJNCwgZmFsc2UsICJwdHBfc2tpcHBl ZF90eF90c3RhbXAiIH0sCiB9OwogCiAjZGVmaW5lIEJOWDJYX05VTV9TVEFUUwkJQVJSQVlfU0la RShibngyeF9zdGF0c19hcnIpCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9h ZGNvbS9ibngyeC9ibngyeF9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9i bngyeC9ibngyeF9tYWluLmMKaW5kZXggNjI2YjQ5MWY3Njc0Li43YTA3NWYxZjEyNDIgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X21haW4uYwor KysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibngyeC9ibngyeF9tYWluLmMKQEAg LTE1MjQzLDExICsxNTI0MywyNCBAQCBzdGF0aWMgdm9pZCBibngyeF9wdHBfdGFzayhzdHJ1Y3Qg d29ya19zdHJ1Y3QgKndvcmspCiAJdTMyIHZhbF9zZXE7CiAJdTY0IHRpbWVzdGFtcCwgbnM7CiAJ c3RydWN0IHNrYl9zaGFyZWRfaHd0c3RhbXBzIHNoaHd0c3RhbXBzOworCWJvb2wgYmFpbCA9IHRy dWU7CisJaW50IGk7CisKKwkvKiBGVyBtYXkgdGFrZSBhIHdoaWxlIHRvIGNvbXBsZXRlIHRpbWVz dGFtcGluZzsgdHJ5IGEgYml0IGFuZCBpZiBpdCdzCisJICogc3RpbGwgbm90IGNvbXBsZXRlLCBt YXkgaW5kaWNhdGUgYW4gZXJyb3Igc3RhdGUgLSBiYWlsIG91dCB0aGVuLgorCSAqLworCWZvciAo aSA9IDA7IGkgPCAxMDsgaSsrKSB7CisJCS8qIFJlYWQgVHggdGltZXN0YW1wIHJlZ2lzdGVycyAq LworCQl2YWxfc2VxID0gUkVHX1JEKGJwLCBwb3J0ID8gTklHX1JFR19QMV9UTExIX1BUUF9CVUZf U0VRSUQgOgorCQkJCSBOSUdfUkVHX1AwX1RMTEhfUFRQX0JVRl9TRVFJRCk7CisJCWlmICh2YWxf c2VxICYgMHgxMDAwMCkgeworCQkJYmFpbCA9IGZhbHNlOworCQkJYnJlYWs7CisJCX0KKwkJbXNs ZWVwKDEgPDwgaSk7CisJfQogCi0JLyogUmVhZCBUeCB0aW1lc3RhbXAgcmVnaXN0ZXJzICovCi0J dmFsX3NlcSA9IFJFR19SRChicCwgcG9ydCA/IE5JR19SRUdfUDFfVExMSF9QVFBfQlVGX1NFUUlE IDoKLQkJCSBOSUdfUkVHX1AwX1RMTEhfUFRQX0JVRl9TRVFJRCk7Ci0JaWYgKHZhbF9zZXEgJiAw eDEwMDAwKSB7CisJaWYgKCFiYWlsKSB7CiAJCS8qIFRoZXJlIGlzIGEgdmFsaWQgdGltZXN0YW1w IHZhbHVlICovCiAJCXRpbWVzdGFtcCA9IFJFR19SRChicCwgcG9ydCA/IE5JR19SRUdfUDFfVExM SF9QVFBfQlVGX1RTX01TQiA6CiAJCQkJICAgTklHX1JFR19QMF9UTExIX1BUUF9CVUZfVFNfTVNC KTsKQEAgLTE1MjYyLDE2ICsxNTI3NSwxOCBAQCBzdGF0aWMgdm9pZCBibngyeF9wdHBfdGFzayhz dHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJCW1lbXNldCgmc2hod3RzdGFtcHMsIDAsIHNpemVv ZihzaGh3dHN0YW1wcykpOwogCQlzaGh3dHN0YW1wcy5od3RzdGFtcCA9IG5zX3RvX2t0aW1lKG5z KTsKIAkJc2tiX3RzdGFtcF90eChicC0+cHRwX3R4X3NrYiwgJnNoaHd0c3RhbXBzKTsKLQkJZGV2 X2tmcmVlX3NrYl9hbnkoYnAtPnB0cF90eF9za2IpOwotCQlicC0+cHRwX3R4X3NrYiA9IE5VTEw7 CiAKIAkJRFAoQk5YMlhfTVNHX1BUUCwgIlR4IHRpbWVzdGFtcCwgdGltZXN0YW1wIGN5Y2xlcyA9 ICVsbHUsIG5zID0gJWxsdVxuIiwKIAkJICAgdGltZXN0YW1wLCBucyk7CiAJfSBlbHNlIHsKLQkJ RFAoQk5YMlhfTVNHX1BUUCwgIlRoZXJlIGlzIG5vIHZhbGlkIFR4IHRpbWVzdGFtcCB5ZXRcbiIp OwotCQkvKiBSZXNjaGVkdWxlIHRvIGtlZXAgY2hlY2tpbmcgZm9yIGEgdmFsaWQgdGltZXN0YW1w IHZhbHVlICovCi0JCXNjaGVkdWxlX3dvcmsoJmJwLT5wdHBfdGFzayk7CisJCURQKEJOWDJYX01T R19QVFAsCisJCSAgICJUeCB0aW1lc3RhbXAgaXMgbm90IHJlY29yZGVkIChyZWdpc3RlciByZWFk PSV1KVxuIiwKKwkJICAgdmFsX3NlcSk7CisJCWJwLT5ldGhfc3RhdHMucHRwX3NraXBfdHhfdHMr KzsKIAl9CisKKwlkZXZfa2ZyZWVfc2tiX2FueShicC0+cHRwX3R4X3NrYik7CisJYnAtPnB0cF90 eF9za2IgPSBOVUxMOwogfQogCiB2b2lkIGJueDJ4X3NldF9yeF90cyhzdHJ1Y3QgYm54MnggKmJw LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv YnJvYWRjb20vYm54MngvYm54Mnhfc3RhdHMuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2Fk Y29tL2JueDJ4L2JueDJ4X3N0YXRzLmgKaW5kZXggYjI2NDRlZDEzZDA2Li5kNTVlNjM2OTJjZjMg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X3N0 YXRzLmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54MngvYm54Mnhfc3Rh dHMuaApAQCAtMjA3LDYgKzIwNyw5IEBAIHN0cnVjdCBibngyeF9ldGhfc3RhdHMgewogCXUzMiBk cml2ZXJfZmlsdGVyZWRfdHhfcGt0OwogCS8qIHNyYzogQ2xlYXItb24tUmVhZCByZWdpc3Rlcjsg V2lsbCBub3Qgc3Vydml2ZSBQTUYgTWlncmF0aW9uICovCiAJdTMyIGVlZV90eF9scGk7CisKKwkv KiBQVFAgKi8KKwl1MzIgcHRwX3NraXBfdHhfdHM7CiB9OwogCiBzdHJ1Y3QgYm54MnhfZXRoX3Ff c3RhdHMgewotLSAKMi4yMC4xCgoKRnJvbSBmNjQyNWE5NGU1YzFmMTM0OWMxODU3NDMzMDRmYjMy ODU1ZDI4ZTliIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDb25nIFdhbmcgPHhpeW91 Lndhbmdjb25nQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAxIEp1bCAyMDE5IDIwOjQwOjI0IC0wNzAw ClN1YmplY3Q6IFtQQVRDSCAwMy80NV0gYm9uZGluZzogdmFsaWRhdGUgaXAgaGVhZGVyIGJlZm9y ZSBjaGVjayBJUFBST1RPX0lHTVAKClsgVXBzdHJlYW0gY29tbWl0IDlkMWJjMjRiNTJmYjhjNWQ4 NTlmOWE0NzA4NGJmMTE3OTQ3MGUwNGMgXQoKYm9uZF94bWl0X3JvdW5kcm9iaW4oKSBjaGVja3Mg Zm9yIElHTVAgcGFja2V0cyBidXQgaXQgcGFyc2VzCnRoZSBJUCBoZWFkZXIgZXZlbiBiZWZvcmUg Y2hlY2tpbmcgc2tiLT5wcm90b2NvbC4KCldlIHNob3VsZCB2YWxpZGF0ZSB0aGUgSVAgaGVhZGVy IHdpdGggcHNrYl9tYXlfcHVsbCgpIGJlZm9yZQp1c2luZyBpcGgtPnByb3RvY29sLgoKUmVwb3J0 ZWQtYW5kLXRlc3RlZC1ieTogc3l6Ym90K2U1YmUxNmFhMzlhZDZlNzU1MzkxQHN5emthbGxlci5h cHBzcG90bWFpbC5jb20KRml4ZXM6IGEyZmQ5NDBmNGNmZiAoImJvbmRpbmc6IGZpeCBicm9rZW4g bXVsdGljYXN0IHdpdGggcm91bmQtcm9iaW4gbW9kZSIpCkNjOiBKYXkgVm9zYnVyZ2ggPGoudm9z YnVyZ2hAZ21haWwuY29tPgpDYzogVmVhY2VzbGF2IEZhbGljbyA8dmZhbGljb0BnbWFpbC5jb20+ CkNjOiBBbmR5IEdvc3BvZGFyZWsgPGFuZHlAZ3JleWhvdXNlLm5ldD4KU2lnbmVkLW9mZi1ieTog Q29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ib25kaW5n L2JvbmRfbWFpbi5jIHwgMzcgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCiAxIGZp bGUgY2hhbmdlZCwgMjMgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4uYyBiL2RyaXZlcnMvbmV0L2JvbmRpbmcv Ym9uZF9tYWluLmMKaW5kZXggNTllOTE5YjkyODczLi43YjlhMThlMzZhOTMgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvYm9uZGlu Zy9ib25kX21haW4uYwpAQCAtMzg2Niw4ICszODY2LDggQEAgc3RhdGljIG5ldGRldl90eF90IGJv bmRfeG1pdF9yb3VuZHJvYmluKHN0cnVjdCBza19idWZmICpza2IsCiAJCQkJCXN0cnVjdCBuZXRf ZGV2aWNlICpib25kX2RldikKIHsKIAlzdHJ1Y3QgYm9uZGluZyAqYm9uZCA9IG5ldGRldl9wcml2 KGJvbmRfZGV2KTsKLQlzdHJ1Y3QgaXBoZHIgKmlwaCA9IGlwX2hkcihza2IpOwogCXN0cnVjdCBz bGF2ZSAqc2xhdmU7CisJaW50IHNsYXZlX2NudDsKIAl1MzIgc2xhdmVfaWQ7CiAKIAkvKiBTdGFy dCB3aXRoIHRoZSBjdXJyX2FjdGl2ZV9zbGF2ZSB0aGF0IGpvaW5lZCB0aGUgYm9uZCBhcyB0aGUK QEAgLTM4NzYsMjMgKzM4NzYsMzIgQEAgc3RhdGljIG5ldGRldl90eF90IGJvbmRfeG1pdF9yb3Vu ZHJvYmluKHN0cnVjdCBza19idWZmICpza2IsCiAJICogc2VuZCB0aGUgam9pbi9tZW1iZXJzaGlw IHJlcG9ydHMuICBUaGUgY3Vycl9hY3RpdmVfc2xhdmUgZm91bmQKIAkgKiB3aWxsIHNlbmQgYWxs IG9mIHRoaXMgdHlwZSBvZiB0cmFmZmljLgogCSAqLwotCWlmIChpcGgtPnByb3RvY29sID09IElQ UFJPVE9fSUdNUCAmJiBza2ItPnByb3RvY29sID09IGh0b25zKEVUSF9QX0lQKSkgewotCQlzbGF2 ZSA9IHJjdV9kZXJlZmVyZW5jZShib25kLT5jdXJyX2FjdGl2ZV9zbGF2ZSk7Ci0JCWlmIChzbGF2 ZSkKLQkJCWJvbmRfZGV2X3F1ZXVlX3htaXQoYm9uZCwgc2tiLCBzbGF2ZS0+ZGV2KTsKLQkJZWxz ZQotCQkJYm9uZF94bWl0X3NsYXZlX2lkKGJvbmQsIHNrYiwgMCk7Ci0JfSBlbHNlIHsKLQkJaW50 IHNsYXZlX2NudCA9IFJFQURfT05DRShib25kLT5zbGF2ZV9jbnQpOworCWlmIChza2ItPnByb3Rv Y29sID09IGh0b25zKEVUSF9QX0lQKSkgeworCQlpbnQgbm9mZiA9IHNrYl9uZXR3b3JrX29mZnNl dChza2IpOworCQlzdHJ1Y3QgaXBoZHIgKmlwaDsKIAotCQlpZiAobGlrZWx5KHNsYXZlX2NudCkp IHsKLQkJCXNsYXZlX2lkID0gYm9uZF9ycl9nZW5fc2xhdmVfaWQoYm9uZCk7Ci0JCQlib25kX3ht aXRfc2xhdmVfaWQoYm9uZCwgc2tiLCBzbGF2ZV9pZCAlIHNsYXZlX2NudCk7Ci0JCX0gZWxzZSB7 Ci0JCQlib25kX3R4X2Ryb3AoYm9uZF9kZXYsIHNrYik7CisJCWlmICh1bmxpa2VseSghcHNrYl9t YXlfcHVsbChza2IsIG5vZmYgKyBzaXplb2YoKmlwaCkpKSkKKwkJCWdvdG8gbm9uX2lnbXA7CisK KwkJaXBoID0gaXBfaGRyKHNrYik7CisJCWlmIChpcGgtPnByb3RvY29sID09IElQUFJPVE9fSUdN UCkgeworCQkJc2xhdmUgPSByY3VfZGVyZWZlcmVuY2UoYm9uZC0+Y3Vycl9hY3RpdmVfc2xhdmUp OworCQkJaWYgKHNsYXZlKQorCQkJCWJvbmRfZGV2X3F1ZXVlX3htaXQoYm9uZCwgc2tiLCBzbGF2 ZS0+ZGV2KTsKKwkJCWVsc2UKKwkJCQlib25kX3htaXRfc2xhdmVfaWQoYm9uZCwgc2tiLCAwKTsK KwkJCXJldHVybiBORVRERVZfVFhfT0s7CiAJCX0KIAl9CiAKK25vbl9pZ21wOgorCXNsYXZlX2Nu dCA9IFJFQURfT05DRShib25kLT5zbGF2ZV9jbnQpOworCWlmIChsaWtlbHkoc2xhdmVfY250KSkg eworCQlzbGF2ZV9pZCA9IGJvbmRfcnJfZ2VuX3NsYXZlX2lkKGJvbmQpOworCQlib25kX3htaXRf c2xhdmVfaWQoYm9uZCwgc2tiLCBzbGF2ZV9pZCAlIHNsYXZlX2NudCk7CisJfSBlbHNlIHsKKwkJ Ym9uZF90eF9kcm9wKGJvbmRfZGV2LCBza2IpOworCX0KIAlyZXR1cm4gTkVUREVWX1RYX09LOwog fQogCi0tIAoyLjIwLjEKCgpGcm9tIDBkYzY1ZWJiN2NjZmE0MjgzMWVkNGFiZWQ3MTNmNjA4MjA0 MGJjNjUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFRhZWhlZSBZb28gPGFwNDIwMDcz QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAxNSBKdWwgMjAxOSAxNDoxMDoxNyArMDkwMApTdWJqZWN0 OiBbUEFUQ0ggMDQvNDVdIGNhaWYtaHNpOiBmaXggcG9zc2libGUgZGVhZGxvY2sgaW4gY2Zoc2lf ZXhpdF9tb2R1bGUoKQoKWyBVcHN0cmVhbSBjb21taXQgZmRkMjU4ZDQ5ZTg4YTllMGI0OWVmMDRh NTA2YTc5NmYxYzc2OGE4ZSBdCgpjZmhzaV9leGl0X21vZHVsZSgpIGNhbGxzIHVucmVnaXN0ZXJf bmV0ZGV2KCkgdW5kZXIgcnRubF9sb2NrKCkuCmJ1dCB1bnJlZ2lzdGVyX25ldGRldigpIGludGVy bmFsbHkgY2FsbHMgcnRubF9sb2NrKCkuClNvIGRlYWRsb2NrIHdvdWxkIG9jY3VyLgoKRml4ZXM6 IGM0MTI1NDAwNjM3NyAoImNhaWYtaHNpOiBBZGQgcnRubCBzdXBwb3J0IikKU2lnbmVkLW9mZi1i eTogVGFlaGVlIFlvbyA8YXA0MjAwNzNAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvY2FpZi9jYWlm X2hzaS5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9u KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvY2FpZi9jYWlmX2hzaS5jIGIvZHJpdmVycy9u ZXQvY2FpZi9jYWlmX2hzaS5jCmluZGV4IDQzM2ExNGI5ZjczMS4uMjUzYTFiYmUzN2U4IDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9jYWlmL2NhaWZfaHNpLmMKKysrIGIvZHJpdmVycy9uZXQvY2Fp Zi9jYWlmX2hzaS5jCkBAIC0xNDU1LDcgKzE0NTUsNyBAQCBzdGF0aWMgdm9pZCBfX2V4aXQgY2Zo c2lfZXhpdF9tb2R1bGUodm9pZCkKIAlydG5sX2xvY2soKTsKIAlsaXN0X2Zvcl9lYWNoX3NhZmUo bGlzdF9ub2RlLCBuLCAmY2Zoc2lfbGlzdCkgewogCQljZmhzaSA9IGxpc3RfZW50cnkobGlzdF9u b2RlLCBzdHJ1Y3QgY2Zoc2ksIGxpc3QpOwotCQl1bnJlZ2lzdGVyX25ldGRldihjZmhzaS0+bmRl dik7CisJCXVucmVnaXN0ZXJfbmV0ZGV2aWNlKGNmaHNpLT5uZGV2KTsKIAl9CiAJcnRubF91bmxv Y2soKTsKIH0KLS0gCjIuMjAuMQoKCkZyb20gYjlhOTNkMmQ5MWFiNTY2NDBiMzFhYTY5OWMzOTNj NDRmYTdjOTkxOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSGFpeWFuZyBaaGFuZyA8 aGFpeWFuZ3pAbWljcm9zb2Z0LmNvbT4KRGF0ZTogRnJpLCAxOSBKdWwgMjAxOSAxNzozMzo1MSAr MDAwMApTdWJqZWN0OiBbUEFUQ0ggMDUvNDVdIGh2X25ldHZzYzogRml4IGV4dHJhIHJjdV9yZWFk X3VubG9jayBpbgogbmV0dnNjX3JlY3ZfY2FsbGJhY2soKQoKWyBVcHN0cmVhbSBjb21taXQgYmU0 MzYzYmRmMGNlOTUzMGYxNWFhMGEwM2QxMDYwMzA0ZDExNmIxNSBdCgpUaGVyZSBpcyBhbiBleHRy YSByY3VfcmVhZF91bmxvY2sgbGVmdCBpbiBuZXR2c2NfcmVjdl9jYWxsYmFjaygpLAphZnRlciBh IHByZXZpb3VzIHBhdGNoIHRoYXQgcmVtb3ZlcyBSQ1UgZnJvbSB0aGlzIGZ1bmN0aW9uLgpUaGlz IHBhdGNoIHJlbW92ZXMgdGhlIGV4dHJhIFJDVSB1bmxvY2suCgpGaXhlczogMzQ1YWMwODk5MGI4 ICgiaHZfbmV0dnNjOiBwYXNzIG5ldHZzY19kZXZpY2UgdG8gcmVjZWl2ZSBjYWxsYmFjayIpClNp Z25lZC1vZmYtYnk6IEhhaXlhbmcgWmhhbmcgPGhhaXlhbmd6QG1pY3Jvc29mdC5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2 ZXJzL25ldC9oeXBlcnYvbmV0dnNjX2Rydi5jIHwgMSAtCiAxIGZpbGUgY2hhbmdlZCwgMSBkZWxl dGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMgYi9k cml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjX2Rydi5jCmluZGV4IGU3ZDg4ODRiMWExMC4uZTYwYTYy MGY5ZTMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjX2Rydi5jCisrKyBi L2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMKQEAgLTg0OSw3ICs4NDksNiBAQCBpbnQg bmV0dnNjX3JlY3ZfY2FsbGJhY2soc3RydWN0IG5ldF9kZXZpY2UgKm5ldCwKIAogCWlmICh1bmxp a2VseSghc2tiKSkgewogCQkrK25ldF9kZXZpY2VfY3R4LT5ldGhfc3RhdHMucnhfbm9fbWVtb3J5 OwotCQlyY3VfcmVhZF91bmxvY2soKTsKIAkJcmV0dXJuIE5WU1BfU1RBVF9GQUlMOwogCX0KIAot LSAKMi4yMC4xCgoKRnJvbSA3N2NiNDExZGY0MmZlMmExYTg3Mjg1YzgyY2I2MmRmZmRlZDIzZjA0 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdv b2dsZS5jb20+CkRhdGU6IFRodSwgMjcgSnVuIDIwMTkgMDE6Mjc6MDEgLTA3MDAKU3ViamVjdDog W1BBVENIIDA2LzQ1XSBpZ21wOiBmaXggbWVtb3J5IGxlYWsgaW4gaWdtcHYzX2RlbF9kZWxyZWMo KQoKWyBVcHN0cmVhbSBjb21taXQgZTViMWM2YzYyNzdkNWEyODMyOTBhOGMwMzNjNzI1NDQ3NDZm OWI1YiBdCgppbS0+dG9tYiBhbmQvb3IgaW0tPnNvdXJjZXMgbWlnaHQgbm90IGJlIE5VTEwsIGJ1 dCB3ZQpjdXJyZW50bHkgb3ZlcndyaXRlIHRoZWlyIHZhbHVlcyBibGluZGx5LgoKVXNpbmcgc3dh cCgpIHdpbGwgbWFrZSBzdXJlIHRoZSBmb2xsb3dpbmcgY2FsbCB0byBrZnJlZV9wbWMocG1jKQp3 aWxsIHByb3Blcmx5IGZyZWUgdGhlIHBzZiBzdHJ1Y3R1cmVzLgoKVGVzdGVkIHdpdGggdGhlIEMg cmVwcm8gcHJvdmlkZWQgYnkgc3l6Ym90LCB3aGljaCBiYXNpY2FsbHkgZG9lcyA6Cgogc29ja2V0 KFBGX0lORVQsIFNPQ0tfREdSQU0sIElQUFJPVE9fSVApID0gMwogc2V0c29ja29wdCgzLCBTT0xf SVAsIElQX0FERF9NRU1CRVJTSElQLCAiXDM0MFwwXDBcMlwxNzdcMFwwXDFcMFwwXDBcMCIsIDEy KSA9IDAKIGlvY3RsKDMsIFNJT0NTSUZGTEFHUywge2lmcl9uYW1lPSJsbyIsIGlmcl9mbGFncz0w fSkgPSAwCiBzZXRzb2Nrb3B0KDMsIFNPTF9JUCwgSVBfTVNGSUxURVIsICJcMzQwXDBcMFwyXDE3 N1wwXDBcMVwxXDBcMFwwXDFcMFwwXDBcMzc3XDM3N1wzNzdcMzc3IiwgMjApID0gMAogaW9jdGwo MywgU0lPQ1NJRkZMQUdTLCB7aWZyX25hbWU9ImxvIiwgaWZyX2ZsYWdzPUlGRl9VUH0pID0gMAog ZXhpdF9ncm91cCgwKSAgICAgICAgICAgICAgICAgICAgPSA/CgpCVUc6IG1lbW9yeSBsZWFrCnVu cmVmZXJlbmNlZCBvYmplY3QgMHhmZmZmODg4MTE0NTBmMTQwIChzaXplIDY0KToKICBjb21tICJz b2Z0aXJxIiwgcGlkIDAsIGppZmZpZXMgNDI5NDk0MjQ0OCAoYWdlIDMyLjA3MHMpCiAgaGV4IGR1 bXAgKGZpcnN0IDMyIGJ5dGVzKToKICAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIGZmIGZmIGZm IGZmIDAwIDAwIDAwIDAwICAuLi4uLi4uLi4uLi4uLi4uCiAgICAwMCAwMCAwMCAwMCAwMCAwMCAw MCAwMCAwMSAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgLi4uLi4uLi4uLi4uLi4uLgogIGJhY2t0cmFj ZToKICAgIFs8MDAwMDAwMDBjN2JhZDA4Mz5dIGttZW1sZWFrX2FsbG9jX3JlY3Vyc2l2ZSBpbmNs dWRlL2xpbnV4L2ttZW1sZWFrLmg6NDMgW2lubGluZV0KICAgIFs8MDAwMDAwMDBjN2JhZDA4Mz5d IHNsYWJfcG9zdF9hbGxvY19ob29rIG1tL3NsYWIuaDo0MzkgW2lubGluZV0KICAgIFs8MDAwMDAw MDBjN2JhZDA4Mz5dIHNsYWJfYWxsb2MgbW0vc2xhYi5jOjMzMjYgW2lubGluZV0KICAgIFs8MDAw MDAwMDBjN2JhZDA4Mz5dIGttZW1fY2FjaGVfYWxsb2NfdHJhY2UrMHgxM2QvMHgyODAgbW0vc2xh Yi5jOjM1NTMKICAgIFs8MDAwMDAwMDA5YWNjNDE1MT5dIGttYWxsb2MgaW5jbHVkZS9saW51eC9z bGFiLmg6NTQ3IFtpbmxpbmVdCiAgICBbPDAwMDAwMDAwOWFjYzQxNTE+XSBremFsbG9jIGluY2x1 ZGUvbGludXgvc2xhYi5oOjc0MiBbaW5saW5lXQogICAgWzwwMDAwMDAwMDlhY2M0MTUxPl0gaXBf bWNfYWRkMV9zcmMgbmV0L2lwdjQvaWdtcC5jOjE5NzYgW2lubGluZV0KICAgIFs8MDAwMDAwMDA5 YWNjNDE1MT5dIGlwX21jX2FkZF9zcmMrMHgzNmIvMHg0MDAgbmV0L2lwdjQvaWdtcC5jOjIxMDAK ICAgIFs8MDAwMDAwMDA0YWMxNDU2Nj5dIGlwX21jX21zZmlsdGVyKzB4MjJkLzB4MzEwIG5ldC9p cHY0L2lnbXAuYzoyNDg0CiAgICBbPDAwMDAwMDAwNTJkOGY5OTU+XSBkb19pcF9zZXRzb2Nrb3B0 LmlzcmEuMCsweDE3OTUvMHgxOTMwIG5ldC9pcHY0L2lwX3NvY2tnbHVlLmM6OTU5CiAgICBbPDAw MDAwMDAwNGVlMWUyMWY+XSBpcF9zZXRzb2Nrb3B0KzB4M2IvMHhiMCBuZXQvaXB2NC9pcF9zb2Nr Z2x1ZS5jOjEyNDgKICAgIFs8MDAwMDAwMDA2NmNkZmU3ND5dIHVkcF9zZXRzb2Nrb3B0KzB4NGUv MHg5MCBuZXQvaXB2NC91ZHAuYzoyNjE4CiAgICBbPDAwMDAwMDAwOTM4M2E3ODY+XSBzb2NrX2Nv bW1vbl9zZXRzb2Nrb3B0KzB4MzgvMHg1MCBuZXQvY29yZS9zb2NrLmM6MzEyNgogICAgWzwwMDAw MDAwMGQ4YWMwYzk0Pl0gX19zeXNfc2V0c29ja29wdCsweDk4LzB4MTIwIG5ldC9zb2NrZXQuYzoy MDcyCiAgICBbPDAwMDAwMDAwMWIxZTk2NjY+XSBfX2RvX3N5c19zZXRzb2Nrb3B0IG5ldC9zb2Nr ZXQuYzoyMDgzIFtpbmxpbmVdCiAgICBbPDAwMDAwMDAwMWIxZTk2NjY+XSBfX3NlX3N5c19zZXRz b2Nrb3B0IG5ldC9zb2NrZXQuYzoyMDgwIFtpbmxpbmVdCiAgICBbPDAwMDAwMDAwMWIxZTk2NjY+ XSBfX3g2NF9zeXNfc2V0c29ja29wdCsweDI2LzB4MzAgbmV0L3NvY2tldC5jOjIwODAKICAgIFs8 MDAwMDAwMDA0MjBkMzk1ZT5dIGRvX3N5c2NhbGxfNjQrMHg3Ni8weDFhMCBhcmNoL3g4Ni9lbnRy eS9jb21tb24uYzozMDEKICAgIFs8MDAwMDAwMDA3ZmQ4M2E0Yj5dIGVudHJ5X1NZU0NBTExfNjRf YWZ0ZXJfaHdmcmFtZSsweDQ0LzB4YTkKCkZpeGVzOiAyNDgwM2YzOGE1YzAgKCJpZ21wOiBkbyBu b3QgcmVtb3ZlIGlnbXAgc291Y2UgbGlzdCBpbmZvIHdoZW4gc2V0IGxpbmsgZG93biIpClNpZ25l ZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQ2M6IEhhbmdiaW4g TGl1IDxsaXVoYW5nYmluQGdtYWlsLmNvbT4KUmVwb3J0ZWQtYnk6IHN5emJvdCs2Y2ExYWJkMGRi NjhiNTE3M2E0ZkBzeXprYWxsZXIuYXBwc3BvdG1haWwuY29tClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC9pZ21wLmMgfCA4 ICsrLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2lnbXAuYyBiL25ldC9pcHY0L2lnbXAuYwppbmRleCBl YjAzMTUzZGZlMTIuLjc5MmQxNmY3YjYyZCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaWdtcC5jCisr KyBiL25ldC9pcHY0L2lnbXAuYwpAQCAtMTIzMiwxMiArMTIzMiw4IEBAIHN0YXRpYyB2b2lkIGln bXB2M19kZWxfZGVscmVjKHN0cnVjdCBpbl9kZXZpY2UgKmluX2Rldiwgc3RydWN0IGlwX21jX2xp c3QgKmltKQogCWlmIChwbWMpIHsKIAkJaW0tPmludGVyZmFjZSA9IHBtYy0+aW50ZXJmYWNlOwog CQlpZiAoaW0tPnNmbW9kZSA9PSBNQ0FTVF9JTkNMVURFKSB7Ci0JCQlpbS0+dG9tYiA9IHBtYy0+ dG9tYjsKLQkJCXBtYy0+dG9tYiA9IE5VTEw7Ci0KLQkJCWltLT5zb3VyY2VzID0gcG1jLT5zb3Vy Y2VzOwotCQkJcG1jLT5zb3VyY2VzID0gTlVMTDsKLQorCQkJc3dhcChpbS0+dG9tYiwgcG1jLT50 b21iKTsKKwkJCXN3YXAoaW0tPnNvdXJjZXMsIHBtYy0+c291cmNlcyk7CiAJCQlmb3IgKHBzZiA9 IGltLT5zb3VyY2VzOyBwc2Y7IHBzZiA9IHBzZi0+c2ZfbmV4dCkKIAkJCQlwc2YtPnNmX2NyY291 bnQgPSBpbl9kZXYtPm1yX3FydiA/OiBuZXQtPmlwdjQuc3lzY3RsX2lnbXBfcXJ2OwogCQl9IGVs c2UgewotLSAKMi4yMC4xCgoKRnJvbSA3ZTQ3MWFjN2FmM2NlYzI1OTQzMDg5NDRhNmQ4NWNmMTAx MjI4MGVhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXR0ZW8gQ3JvY2UgPG1jcm9j ZUByZWRoYXQuY29tPgpEYXRlOiBNb24sIDEgSnVsIDIwMTkgMTk6MDE6NTUgKzAyMDAKU3ViamVj dDogW1BBVENIIDA3LzQ1XSBpcHY0OiBkb24ndCBzZXQgSVB2NiBvbmx5IGZsYWdzIHRvIElQdjQg YWRkcmVzc2VzCgpbIFVwc3RyZWFtIGNvbW1pdCAyZTYwNTQ2MzY4MTY1YzI0NDk1NjRkNzFmNjAw NWRkYTkyMDViNWZiIF0KCkF2b2lkIHRoZSBzaXR1YXRpb24gd2hlcmUgYW4gSVBWNiBvbmx5IGZs YWcgaXMgYXBwbGllZCB0byBhbiBJUHY0IGFkZHJlc3M6CgogICAgIyBpcCBhZGRyIGFkZCAxOTIu MC4yLjEvMjQgZGV2IGR1bW15MCBub2RhZCBob21lIG1uZ3RtcGFkZHIgbm9wcmVmaXhyb3V0ZQog ICAgIyBpcCAtNCBhZGRyIHNob3cgZGV2IGR1bW15MAogICAgMjogZHVtbXkwOiA8QlJPQURDQVNU LE5PQVJQLFVQLExPV0VSX1VQPiBtdHUgMTUwMCBxZGlzYyBub3F1ZXVlIHN0YXRlIFVOS05PV04g Z3JvdXAgZGVmYXVsdCBxbGVuIDEwMDAKICAgICAgICBpbmV0IDE5Mi4wLjIuMS8yNCBzY29wZSBn bG9iYWwgbm9wcmVmaXhyb3V0ZSBkdW1teTAKICAgICAgICAgICB2YWxpZF9sZnQgZm9yZXZlciBw cmVmZXJyZWRfbGZ0IGZvcmV2ZXIKCk9yIHdvcnNlLCBieSBzZW5kaW5nIGEgbWFsaWNpb3VzIG5l dGxpbmsgY29tbWFuZDoKCiAgICAjIGlwIC00IGFkZHIgc2hvdyBkZXYgZHVtbXkwCiAgICAyOiBk dW1teTA6IDxCUk9BRENBU1QsTk9BUlAsVVAsTE9XRVJfVVA+IG10dSAxNTAwIHFkaXNjIG5vcXVl dWUgc3RhdGUgVU5LTk9XTiBncm91cCBkZWZhdWx0IHFsZW4gMTAwMAogICAgICAgIGluZXQgMTky LjAuMi4xLzI0IHNjb3BlIGdsb2JhbCBub2RhZCBvcHRpbWlzdGljIGRhZGZhaWxlZCBob21lIHRl bnRhdGl2ZSBtbmd0bXBhZGRyIG5vcHJlZml4cm91dGUgc3RhYmxlLXByaXZhY3kgZHVtbXkwCiAg ICAgICAgICAgdmFsaWRfbGZ0IGZvcmV2ZXIgcHJlZmVycmVkX2xmdCBmb3JldmVyCgpTaWduZWQt b2ZmLWJ5OiBNYXR0ZW8gQ3JvY2UgPG1jcm9jZUByZWRoYXQuY29tPgpSZXZpZXdlZC1ieTogRGF2 aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvZGV2aW5ldC5jIHwgOCArKysr KysrKwogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9p cHY0L2RldmluZXQuYyBiL25ldC9pcHY0L2RldmluZXQuYwppbmRleCBlYjUxNGYzMTJlNmYuLjgz OTQ0Yjc0ODBjOCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvZGV2aW5ldC5jCisrKyBiL25ldC9pcHY0 L2RldmluZXQuYwpAQCAtNjYsNiArNjYsMTEgQEAKICNpbmNsdWRlIDxuZXQvbmV0X25hbWVzcGFj ZS5oPgogI2luY2x1ZGUgPG5ldC9hZGRyY29uZi5oPgogCisjZGVmaW5lIElQVjZPTkxZX0ZMQUdT CVwKKwkJKElGQV9GX05PREFEIHwgSUZBX0ZfT1BUSU1JU1RJQyB8IElGQV9GX0RBREZBSUxFRCB8 IFwKKwkJIElGQV9GX0hPTUVBRERSRVNTIHwgSUZBX0ZfVEVOVEFUSVZFIHwgXAorCQkgSUZBX0Zf TUFOQUdFVEVNUEFERFIgfCBJRkFfRl9TVEFCTEVfUFJJVkFDWSkKKwogc3RhdGljIHN0cnVjdCBp cHY0X2RldmNvbmYgaXB2NF9kZXZjb25mID0gewogCS5kYXRhID0gewogCQlbSVBWNF9ERVZDT05G X0FDQ0VQVF9SRURJUkVDVFMgLSAxXSA9IDEsCkBAIC00NzIsNiArNDc3LDkgQEAgc3RhdGljIGlu dCBfX2luZXRfaW5zZXJ0X2lmYShzdHJ1Y3QgaW5faWZhZGRyICppZmEsIHN0cnVjdCBubG1zZ2hk ciAqbmxoLAogCWlmYS0+aWZhX2ZsYWdzICY9IH5JRkFfRl9TRUNPTkRBUlk7CiAJbGFzdF9wcmlt YXJ5ID0gJmluX2Rldi0+aWZhX2xpc3Q7CiAKKwkvKiBEb24ndCBzZXQgSVB2NiBvbmx5IGZsYWdz IHRvIElQdjQgYWRkcmVzc2VzICovCisJaWZhLT5pZmFfZmxhZ3MgJj0gfklQVjZPTkxZX0ZMQUdT OworCiAJZm9yIChpZmFwID0gJmluX2Rldi0+aWZhX2xpc3Q7IChpZmExID0gKmlmYXApICE9IE5V TEw7CiAJICAgICBpZmFwID0gJmlmYTEtPmlmYV9uZXh0KSB7CiAJCWlmICghKGlmYTEtPmlmYV9m bGFncyAmIElGQV9GX1NFQ09OREFSWSkgJiYKLS0gCjIuMjAuMQoKCkZyb20gMDg0ZTIwNTFiYTk0 NjhmMDM4NWFhZmNmMTUxNzRjM2Y5ZDcyMDQ3NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpEYXRlOiBXZWQsIDE3IEp1bCAyMDE5 IDE1OjA4OjQzIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwOC80NV0gaXB2NjogcnQ2X2NoZWNrIHNo b3VsZCByZXR1cm4gTlVMTCBpZiAnZnJvbScgaXMgTlVMTAoKWyBVcHN0cmVhbSBjb21taXQgNDlk MDVmZTJjOWQxYjRhMjc3NjFjOTgwN2ZlYzM5YjgxNTViZWY5ZSBdCgpQYXVsIHJlcG9ydGVkIHRo YXQgbDJ0cCBzZXNzaW9ucyB3ZXJlIGJyb2tlbiBhZnRlciB0aGUgY29tbWl0IHJlZmVyZW5jZWQK aW4gdGhlIEZpeGVzIHRhZy4gUHJpb3IgdG8gdGhpcyBjb21taXQgcnQ2X2NoZWNrIHJldHVybmVk IE5VTEwgaWYgdGhlCnJ0Nl9pbmZvICdmcm9tJyB3YXMgTlVMTCAtIGllLiwgdGhlIGRzdF9lbnRy eSB3YXMgZGlzY29ubmVjdGVkIGZyb20gYSBGSUIKZW50cnkuIFJlc3RvcmUgdGhhdCBiZWhhdmlv ci4KCkZpeGVzOiA5MzUzMWM2NzQzMTUgKCJuZXQvaXB2Njogc2VwYXJhdGUgaGFuZGxpbmcgb2Yg RklCIGVudHJpZXMgZnJvbSBkc3QgYmFzZWQgcm91dGVzIikKUmVwb3J0ZWQtYnk6IFBhdWwgRG9u b2h1ZSA8bGludXgta2VybmVsQFBhdWxTRC5jb20+ClRlc3RlZC1ieTogUGF1bCBEb25vaHVlIDxs aW51eC1rZXJuZWxAUGF1bFNELmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgQWhlcm4gPGRzYWhl cm5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvcm91dGUuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAx IGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L3JvdXRl LmMgYi9uZXQvaXB2Ni9yb3V0ZS5jCmluZGV4IGFiMzQ4NDg5YmQ4YS4uOWZjMmQ4MDNjNjg0IDEw MDY0NAotLS0gYS9uZXQvaXB2Ni9yb3V0ZS5jCisrKyBiL25ldC9pcHY2L3JvdXRlLmMKQEAgLTIx ODMsNyArMjE4Myw3IEBAIHN0YXRpYyBzdHJ1Y3QgZHN0X2VudHJ5ICpydDZfY2hlY2soc3RydWN0 IHJ0Nl9pbmZvICpydCwKIHsKIAl1MzIgcnRfY29va2llID0gMDsKIAotCWlmICgoZnJvbSAmJiAh ZmliNl9nZXRfY29va2llX3NhZmUoZnJvbSwgJnJ0X2Nvb2tpZSkpIHx8CisJaWYgKCFmcm9tIHx8 ICFmaWI2X2dldF9jb29raWVfc2FmZShmcm9tLCAmcnRfY29va2llKSB8fAogCSAgICBydF9jb29r aWUgIT0gY29va2llKQogCQlyZXR1cm4gTlVMTDsKIAotLSAKMi4yMC4xCgoKRnJvbSBlNmMyM2Vl NWZhNzc1MTAzZDc1NjI4OWY5ZTAzNzg2OGU3YzFiMjg0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBJZG8gU2NoaW1tZWwgPGlkb3NjaEBtZWxsYW5veC5jb20+CkRhdGU6IFdlZCwgMTcg SnVsIDIwMTkgMjM6Mzk6MzMgKzAzMDAKU3ViamVjdDogW1BBVENIIDA5LzQ1XSBpcHY2OiBVbmxp bmsgc2libGluZyByb3V0ZSBpbiBjYXNlIG9mIGZhaWx1cmUKClsgVXBzdHJlYW0gY29tbWl0IDU0 ODUxYWE5MGNmMjcwNDFkNjRiMTJmNjVhYzcyZTlmOTdiZDkwZmQgXQoKV2hlbiBhIHJvdXRlIG5l ZWRzIHRvIGJlIGFwcGVuZGVkIHRvIGFuIGV4aXN0aW5nIG11bHRpcGF0aCByb3V0ZSwKZmliNl9h ZGRfcnQybm9kZSgpIGZpcnN0IGFwcGVuZHMgaXQgdG8gdGhlIHNpYmxpbmdzIGxpc3QgYW5kIGlu Y3JlbWVudHMKdGhlIG51bWJlciBvZiBzaWJsaW5nIHJvdXRlcyBvbiBlYWNoIHNpYmxpbmcuCgpM YXRlciwgdGhlIGZ1bmN0aW9uIG5vdGlmaWVzIHRoZSByb3V0ZSB2aWEgY2FsbF9maWI2X2VudHJ5 X25vdGlmaWVycygpLgpJbiBjYXNlIHRoZSBub3RpZmljYXRpb24gaXMgdmV0b2VkLCB0aGUgcm91 dGUgaXMgbm90IHVubGlua2VkIGZyb20gdGhlCnNpYmxpbmdzIGxpc3QsIHdoaWNoIGNhbiByZXN1 bHQgaW4gYSB1c2UtYWZ0ZXItZnJlZS4KCkZpeCB0aGlzIGJ5IHVubGlua2luZyB0aGUgcm91dGUg ZnJvbSB0aGUgc2libGluZ3MgbGlzdCBiZWZvcmUgcmV0dXJuaW5nCmFuIGVycm9yLgoKQXVkaXRl ZCB0aGUgcmVzdCBvZiB0aGUgY2FsbCBzaXRlcyBmcm9tIHdoaWNoIHRoZSBGSUIgbm90aWZpY2F0 aW9uIGNoYWluCmlzIGNhbGxlZCBhbmQgY291bGQgbm90IGZpbmQgbW9yZSBwcm9ibGVtcy4KCkZp eGVzOiAyMjMzMDAwY2JhNDAgKCJuZXQvaXB2NjogTW92ZSBjYWxsX2ZpYjZfZW50cnlfbm90aWZp ZXJzIHVwIGZvciByb3V0ZSBhZGRzIikKU2lnbmVkLW9mZi1ieTogSWRvIFNjaGltbWVsIDxpZG9z Y2hAbWVsbGFub3guY29tPgpSZXBvcnRlZC1ieTogQWxleGFuZGVyIFBldHJvdnNraXkgPGFsZXhw ZUBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBEYXZpZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBuZXQvaXB2Ni9pcDZfZmliLmMgfCAxOCArKysrKysrKysrKysrKysrKy0KIDEgZmlsZSBj aGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0 L2lwdjYvaXA2X2ZpYi5jIGIvbmV0L2lwdjYvaXA2X2ZpYi5jCmluZGV4IDk5MTVmNjRiMzhhMC4u NGIxYTg5ODk4MmQwIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9pcDZfZmliLmMKKysrIGIvbmV0L2lw djYvaXA2X2ZpYi5jCkBAIC0xMTEzLDggKzExMTMsMjQgQEAgc3RhdGljIGludCBmaWI2X2FkZF9y dDJub2RlKHN0cnVjdCBmaWI2X25vZGUgKmZuLCBzdHJ1Y3QgZmliNl9pbmZvICpydCwKIAkJZXJy ID0gY2FsbF9maWI2X2VudHJ5X25vdGlmaWVycyhpbmZvLT5ubF9uZXQsCiAJCQkJCQlGSUJfRVZF TlRfRU5UUllfQURELAogCQkJCQkJcnQsIGV4dGFjayk7Ci0JCWlmIChlcnIpCisJCWlmIChlcnIp IHsKKwkJCXN0cnVjdCBmaWI2X2luZm8gKnNpYmxpbmcsICpuZXh0X3NpYmxpbmc7CisKKwkJCS8q IElmIHRoZSByb3V0ZSBoYXMgc2libGluZ3MsIHRoZW4gaXQgZmlyc3QKKwkJCSAqIG5lZWRzIHRv IGJlIHVubGlua2VkIGZyb20gdGhlbS4KKwkJCSAqLworCQkJaWYgKCFydC0+ZmliNl9uc2libGlu Z3MpCisJCQkJcmV0dXJuIGVycjsKKworCQkJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHNpYmxp bmcsIG5leHRfc2libGluZywKKwkJCQkJCSAmcnQtPmZpYjZfc2libGluZ3MsCisJCQkJCQkgZmli Nl9zaWJsaW5ncykKKwkJCQlzaWJsaW5nLT5maWI2X25zaWJsaW5ncy0tOworCQkJcnQtPmZpYjZf bnNpYmxpbmdzID0gMDsKKwkJCWxpc3RfZGVsX2luaXQoJnJ0LT5maWI2X3NpYmxpbmdzKTsKKwkJ CXJ0Nl9tdWx0aXBhdGhfcmViYWxhbmNlKG5leHRfc2libGluZyk7CiAJCQlyZXR1cm4gZXJyOwor CQl9CiAKIAkJcmN1X2Fzc2lnbl9wb2ludGVyKHJ0LT5maWI2X25leHQsIGl0ZXIpOwogCQlhdG9t aWNfaW5jKCZydC0+ZmliNl9yZWYpOwotLSAKMi4yMC4xCgoKRnJvbSA1YTgzNjQ4MzFkMWY0MmZj MzZkMzUwMzlkZjczYmJhODZkYzJiOWNmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBK dXN0aW4gQ2hlbiA8anVzdGlucG9wbzZAZ21haWwuY29tPgpEYXRlOiBXZWQsIDE3IEp1bCAyMDE5 IDE0OjU4OjUzIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxMC80NV0gbmV0OiBiY21nZW5ldDogdXNl IHByb21pc2MgZm9yIHVuc3VwcG9ydGVkIGZpbHRlcnMKClsgVXBzdHJlYW0gY29tbWl0IDM1Y2Jl Zjk4NjM2NDBmMDYxMDcxNDQ2ODdiZDEzMTUxYmMyZThjZTMgXQoKQ3VycmVudGx5IHdlIHNpbGVu dGx5IGlnbm9yZSBmaWx0ZXJzIGlmIHdlIGNhbm5vdCBtZWV0IHRoZSBmaWx0ZXIKcmVxdWlyZW1l bnRzLiBUaGlzIHdpbGwgbGVhZCB0byB0aGUgTUFDIGRyb3BwaW5nIHBhY2tldHMgdGhhdCBhcmUK ZXhwZWN0ZWQgdG8gcGFzcy4gQSBiZXR0ZXIgc29sdXRpb24gd291bGQgYmUgdG8gc2V0IHRoZSBO SUMgdG8gcHJvbWlzYwptb2RlIHdoZW4gdGhlIHJlcXVpcmVkIGZpbHRlcnMgY2Fubm90IGJlIG1l dC4KCkFsc28gY29ycmVjdCB0aGUgbnVtYmVyIG9mIE1ERiBmaWx0ZXJzIHN1cHBvcnRlZC4gSXQg c2hvdWxkIGJlIDE3LApub3QgMTYuCgpTaWduZWQtb2ZmLWJ5OiBKdXN0aW4gQ2hlbiA8anVzdGlu cG9wbzZAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogRmxvcmlhbiBGYWluZWxsaSA8Zi5mYWluZWxs aUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiAuLi4vbmV0L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0L2JjbWdlbmV0LmMg ICAgfCA1NyArKysrKysrKystLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjYgaW5zZXJ0aW9u cygrKSwgMzEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv YnJvYWRjb20vZ2VuZXQvYmNtZ2VuZXQuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29t L2dlbmV0L2JjbWdlbmV0LmMKaW5kZXggOTgzMjQ1YzA4NjdjLi4yYjc5ZWYxN2U4NDYgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0L2JjbWdlbmV0LmMKKysr IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtZ2VuZXQuYwpAQCAtMzA4 NiwzOSArMzA4Niw0MiBAQCBzdGF0aWMgdm9pZCBiY21nZW5ldF90aW1lb3V0KHN0cnVjdCBuZXRf ZGV2aWNlICpkZXYpCiAJbmV0aWZfdHhfd2FrZV9hbGxfcXVldWVzKGRldik7CiB9CiAKLSNkZWZp bmUgTUFYX01DX0NPVU5UCTE2CisjZGVmaW5lIE1BWF9NREZfRklMVEVSCTE3CiAKIHN0YXRpYyBp bmxpbmUgdm9pZCBiY21nZW5ldF9zZXRfbWRmX2FkZHIoc3RydWN0IGJjbWdlbmV0X3ByaXYgKnBy aXYsCiAJCQkJCSB1bnNpZ25lZCBjaGFyICphZGRyLAotCQkJCQkgaW50ICppLAotCQkJCQkgaW50 ICptYykKKwkJCQkJIGludCAqaSkKIHsKLQl1MzIgcmVnOwotCiAJYmNtZ2VuZXRfdW1hY193cml0 ZWwocHJpdiwgYWRkclswXSA8PCA4IHwgYWRkclsxXSwKIAkJCSAgICAgVU1BQ19NREZfQUREUiAr ICgqaSAqIDQpKTsKIAliY21nZW5ldF91bWFjX3dyaXRlbChwcml2LCBhZGRyWzJdIDw8IDI0IHwg YWRkclszXSA8PCAxNiB8CiAJCQkgICAgIGFkZHJbNF0gPDwgOCB8IGFkZHJbNV0sCiAJCQkgICAg IFVNQUNfTURGX0FERFIgKyAoKCppICsgMSkgKiA0KSk7Ci0JcmVnID0gYmNtZ2VuZXRfdW1hY19y ZWFkbChwcml2LCBVTUFDX01ERl9DVFJMKTsKLQlyZWcgfD0gKDEgPDwgKE1BWF9NQ19DT1VOVCAt ICptYykpOwotCWJjbWdlbmV0X3VtYWNfd3JpdGVsKHByaXYsIHJlZywgVU1BQ19NREZfQ1RSTCk7 CiAJKmkgKz0gMjsKLQkoKm1jKSsrOwogfQogCiBzdGF0aWMgdm9pZCBiY21nZW5ldF9zZXRfcnhf bW9kZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogewogCXN0cnVjdCBiY21nZW5ldF9wcml2ICpw cml2ID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAlzdHJ1Y3QgbmV0ZGV2X2h3X2FkZHIgKmhhOwotCWlu dCBpLCBtYzsKKwlpbnQgaSwgbmZpbHRlcjsKIAl1MzIgcmVnOwogCiAJbmV0aWZfZGJnKHByaXYs IGh3LCBkZXYsICIlczogJTA4WFxuIiwgX19mdW5jX18sIGRldi0+ZmxhZ3MpOwogCi0JLyogUHJv bWlzY3VvdXMgbW9kZSAqLworCS8qIE51bWJlciBvZiBmaWx0ZXJzIG5lZWRlZCAqLworCW5maWx0 ZXIgPSBuZXRkZXZfdWNfY291bnQoZGV2KSArIG5ldGRldl9tY19jb3VudChkZXYpICsgMjsKKwor CS8qCisJICogVHVybiBvbiBwcm9taWN1b3VzIG1vZGUgZm9yIHRocmVlIHNjZW5hcmlvcworCSAq IDEuIElGRl9QUk9NSVNDIGZsYWcgaXMgc2V0CisJICogMi4gSUZGX0FMTE1VTFRJIGZsYWcgaXMg c2V0CisJICogMy4gVGhlIG51bWJlciBvZiBmaWx0ZXJzIG5lZWRlZCBleGNlZWRzIHRoZSBudW1i ZXIgZmlsdGVycworCSAqICAgIHN1cHBvcnRlZCBieSB0aGUgaGFyZHdhcmUuCisJKi8KIAlyZWcg PSBiY21nZW5ldF91bWFjX3JlYWRsKHByaXYsIFVNQUNfQ01EKTsKLQlpZiAoZGV2LT5mbGFncyAm IElGRl9QUk9NSVNDKSB7CisJaWYgKChkZXYtPmZsYWdzICYgKElGRl9QUk9NSVNDIHwgSUZGX0FM TE1VTFRJKSkgfHwKKwkgICAgKG5maWx0ZXIgPiBNQVhfTURGX0ZJTFRFUikpIHsKIAkJcmVnIHw9 IENNRF9QUk9NSVNDOwogCQliY21nZW5ldF91bWFjX3dyaXRlbChwcml2LCByZWcsIFVNQUNfQ01E KTsKIAkJYmNtZ2VuZXRfdW1hY193cml0ZWwocHJpdiwgMCwgVU1BQ19NREZfQ1RSTCk7CkBAIC0z MTI4LDMyICszMTMxLDI0IEBAIHN0YXRpYyB2b2lkIGJjbWdlbmV0X3NldF9yeF9tb2RlKHN0cnVj dCBuZXRfZGV2aWNlICpkZXYpCiAJCWJjbWdlbmV0X3VtYWNfd3JpdGVsKHByaXYsIHJlZywgVU1B Q19DTUQpOwogCX0KIAotCS8qIFVuaU1hYyBkb2Vzbid0IHN1cHBvcnQgQUxMTVVMVEkgKi8KLQlp ZiAoZGV2LT5mbGFncyAmIElGRl9BTExNVUxUSSkgewotCQluZXRkZXZfd2FybihkZXYsICJBTExN VUxUSSBpcyBub3Qgc3VwcG9ydGVkXG4iKTsKLQkJcmV0dXJuOwotCX0KLQogCS8qIHVwZGF0ZSBN REYgZmlsdGVyICovCiAJaSA9IDA7Ci0JbWMgPSAwOwogCS8qIEJyb2FkY2FzdCAqLwotCWJjbWdl bmV0X3NldF9tZGZfYWRkcihwcml2LCBkZXYtPmJyb2FkY2FzdCwgJmksICZtYyk7CisJYmNtZ2Vu ZXRfc2V0X21kZl9hZGRyKHByaXYsIGRldi0+YnJvYWRjYXN0LCAmaSk7CiAJLyogbXkgb3duIGFk ZHJlc3MuKi8KLQliY21nZW5ldF9zZXRfbWRmX2FkZHIocHJpdiwgZGV2LT5kZXZfYWRkciwgJmks ICZtYyk7Ci0JLyogVW5pY2FzdCBsaXN0Ki8KLQlpZiAobmV0ZGV2X3VjX2NvdW50KGRldikgPiAo TUFYX01DX0NPVU5UIC0gbWMpKQotCQlyZXR1cm47CisJYmNtZ2VuZXRfc2V0X21kZl9hZGRyKHBy aXYsIGRldi0+ZGV2X2FkZHIsICZpKTsKIAotCWlmICghbmV0ZGV2X3VjX2VtcHR5KGRldikpCi0J CW5ldGRldl9mb3JfZWFjaF91Y19hZGRyKGhhLCBkZXYpCi0JCQliY21nZW5ldF9zZXRfbWRmX2Fk ZHIocHJpdiwgaGEtPmFkZHIsICZpLCAmbWMpOwotCS8qIE11bHRpY2FzdCAqLwotCWlmIChuZXRk ZXZfbWNfZW1wdHkoZGV2KSB8fCBuZXRkZXZfbWNfY291bnQoZGV2KSA+PSAoTUFYX01DX0NPVU5U IC0gbWMpKQotCQlyZXR1cm47CisJLyogVW5pY2FzdCAqLworCW5ldGRldl9mb3JfZWFjaF91Y19h ZGRyKGhhLCBkZXYpCisJCWJjbWdlbmV0X3NldF9tZGZfYWRkcihwcml2LCBoYS0+YWRkciwgJmkp OwogCisJLyogTXVsdGljYXN0ICovCiAJbmV0ZGV2X2Zvcl9lYWNoX21jX2FkZHIoaGEsIGRldikK LQkJYmNtZ2VuZXRfc2V0X21kZl9hZGRyKHByaXYsIGhhLT5hZGRyLCAmaSwgJm1jKTsKKwkJYmNt Z2VuZXRfc2V0X21kZl9hZGRyKHByaXYsIGhhLT5hZGRyLCAmaSk7CisKKwkvKiBFbmFibGUgZmls dGVycyAqLworCXJlZyA9IEdFTk1BU0soTUFYX01ERl9GSUxURVIgLSAxLCBNQVhfTURGX0ZJTFRF UiAtIG5maWx0ZXIpOworCWJjbWdlbmV0X3VtYWNfd3JpdGVsKHByaXYsIHJlZywgVU1BQ19NREZf Q1RSTCk7CiB9CiAKIC8qIFNldCB0aGUgaGFyZHdhcmUgTUFDIGFkZHJlc3MuICovCi0tIAoyLjIw LjEKCgpGcm9tIDkyODQ4YTI2MGJhMTZlODkxN2I5MTQwYzg3ZjU1NWY0NTNjMmQxZjAgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEJhcnVjaCBTaWFjaCA8YmFydWNoQHRrb3MuY28uaWw+ CkRhdGU6IFRodSwgMjcgSnVuIDIwMTkgMjE6MTc6MzkgKzAzMDAKU3ViamVjdDogW1BBVENIIDEx LzQ1XSBuZXQ6IGRzYTogbXY4OGU2eHh4OiB3YWl0IGFmdGVyIHJlc2V0IGRlYWN0aXZhdGlvbgoK WyBVcHN0cmVhbSBjb21taXQgN2I3NWU0OWRlNDI0Y2ViNTNkMTNlNjBmMzVkMGE3Mzc2NTYyNmZk YSBdCgpBZGQgYSAxbXMgZGVsYXkgYWZ0ZXIgcmVzZXQgZGVhY3RpdmF0aW9uLiBPdGhlcndpc2Ug dGhlIGNoaXAgcmV0dXJucwpib2d1cyBJRCB2YWx1ZS4gVGhpcyBpcyBvYnNlcnZlZCB3aXRoIDg4 RTYzOTAgKFBlcmlkb3QpIGNoaXAuCgpTaWduZWQtb2ZmLWJ5OiBCYXJ1Y2ggU2lhY2ggPGJhcnVj aEB0a29zLmNvLmlsPgpSZXZpZXdlZC1ieTogQW5kcmV3IEx1bm4gPGFuZHJld0BsdW5uLmNoPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog ZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMgfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwg MiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9j aGlwLmMgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYwppbmRleCBhZTc1MGFiOWE0 ZDcuLjVmODFkOWEzYTJhNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9j aGlwLmMKKysrIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMKQEAgLTQ5MTAsNiAr NDkxMCw4IEBAIHN0YXRpYyBpbnQgbXY4OGU2eHh4X3Byb2JlKHN0cnVjdCBtZGlvX2RldmljZSAq bWRpb2RldikKIAkJZXJyID0gUFRSX0VSUihjaGlwLT5yZXNldCk7CiAJCWdvdG8gb3V0OwogCX0K KwlpZiAoY2hpcC0+cmVzZXQpCisJCXVzbGVlcF9yYW5nZSgxMDAwLCAyMDAwKTsKIAogCWVyciA9 IG12ODhlNnh4eF9kZXRlY3QoY2hpcCk7CiAJaWYgKGVycikKLS0gCjIuMjAuMQoKCkZyb20gOWFk YzQxOWRiZGY2NzhhMDM4ZjQxNTlkOTY0Mzg5ODYyYmNkNGFkZCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRmxvcmlhbiBXZXN0cGhhbCA8ZndAc3RybGVuLmRlPgpEYXRlOiBXZWQsIDI2 IEp1biAyMDE5IDIwOjQwOjQ1ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMi80NV0gbmV0OiBtYWtl IHNrYl9kc3RfZm9yY2UgcmV0dXJuIHRydWUgd2hlbiBkc3QgaXMKIHJlZmNvdW50ZWQKClsgVXBz dHJlYW0gY29tbWl0IGI2MGE3NzM4NmIxZDQ4NjhmNzJmNjM1M2QzNWRhYmU1ZmJlOTgxZjIgXQoK bmV0ZmlsdGVyIGRpZCBub3QgZXhwZWN0IHRoYXQgc2tiX2RzdF9mb3JjZSgpIGNhbiBjYXVzZSBz a2IgdG8gbG9zZSBpdHMKZHN0IGVudHJ5LgoKSSBnb3QgYSBidWcgcmVwb3J0IHdpdGggYSBza2It PmRzdCBOVUxMIGRlcmVmZXJlbmNlIGluIG5ldGZpbHRlcgpvdXRwdXQgcGF0aC4gIFRoZSBiYWNr dHJhY2UgY29udGFpbnMgbmZfcmVpbmplY3QoKSwgc28gdGhlIGRzdCBtaWdodCBoYXZlCmJlZW4g Y2xlYXJlZCB3aGVuIHNrYiBnb3QgcXVldWVkIHRvIHVzZXJzcGFjZS4KCk90aGVyIHVzZXJzIHdl cmUgZml4ZWQgdmlhCmlmIChza2JfZHN0KHNrYikpIHsKCXNrYl9kc3RfZm9yY2Uoc2tiKTsKCWlm ICghc2tiX2RzdChza2IpKQoJCWdvdG8gaGFuZGxlX2VycjsKfQoKQnV0IEkgdGhpbmsgaXRzIHBy ZWZlcmFibGUgdG8gbWFrZSB0aGUgJ2RzdCBtaWdodCBiZSBjbGVhcmVkJyBwYXJ0Cm9mIHRoZSBm dW5jdGlvbiBleHBsaWNpdC4KCkluIG5ldGZpbHRlciBjYXNlLCBza2Igd2l0aCBhIG51bGwgZHN0 IGlzIGV4cGVjdGVkIHdoZW4gcXVldWVpbmcgaW4KcHJlcm91dGluZyBob29rLCBzbyBkcm9wIHNr YiBmb3IgdGhlIG90aGVyIGhvb2tzLgoKdjI6CiB2MSBvZiB0aGlzIHBhdGNoIHJldHVybmVkIHRy dWUgaW4gY2FzZSBza2IgaGFkIG5vIGRzdCBlbnRyeS4KIEVyaWMgc2FpZDoKICAgU2F5IGlmIHdl IGhhdmUgdHdvIHNrYl9kc3RfZm9yY2UoKSBjYWxscyBmb3Igc29tZSByZWFzb24KICAgb24gdGhl IHNhbWUgc2tiLCBvbmx5IHRoZSBmaXJzdCBvbmUgd2lsbCByZXR1cm4gZmFsc2UuCgogVGhpcyBu b3cgcmV0dXJucyBmYWxzZSBldmVuIHdoZW4gc2tiIGhhZCBubyBkc3QsIGFzIHBlciBFcmljcwog c3VnZ2VzdGlvbiwgc28gY2FsbGVycyBtaWdodCBuZWVkIHRvIGNoZWNrIHNrYl9kc3QoKSBmaXJz dCBiZWZvcmUKIHNrYl9kc3RfZm9yY2UoKS4KClNpZ25lZC1vZmYtYnk6IEZsb3JpYW4gV2VzdHBo YWwgPGZ3QHN0cmxlbi5kZT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbmV0L2RzdC5oICAgICAgICB8IDUgKysrKy0KIG5l dC9uZXRmaWx0ZXIvbmZfcXVldWUuYyB8IDYgKysrKystCiAyIGZpbGVzIGNoYW5nZWQsIDkgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9kc3Qu aCBiL2luY2x1ZGUvbmV0L2RzdC5oCmluZGV4IDZjZjA4NzA0MTRjNy4uZmZjOGVlMGVhNWU1IDEw MDY0NAotLS0gYS9pbmNsdWRlL25ldC9kc3QuaAorKysgYi9pbmNsdWRlL25ldC9kc3QuaApAQCAt MzEzLDggKzMxMyw5IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBkc3RfaG9sZF9zYWZlKHN0cnVjdCBk c3RfZW50cnkgKmRzdCkKICAqIEBza2I6IGJ1ZmZlcgogICoKICAqIElmIGRzdCBpcyBub3QgeWV0 IHJlZmNvdW50ZWQgYW5kIG5vdCBkZXN0cm95ZWQsIGdyYWIgYSByZWYgb24gaXQuCisgKiBSZXR1 cm5zIHRydWUgaWYgZHN0IGlzIHJlZmNvdW50ZWQuCiAgKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCBz a2JfZHN0X2ZvcmNlKHN0cnVjdCBza19idWZmICpza2IpCitzdGF0aWMgaW5saW5lIGJvb2wgc2ti X2RzdF9mb3JjZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewogCWlmIChza2JfZHN0X2lzX25vcmVm KHNrYikpIHsKIAkJc3RydWN0IGRzdF9lbnRyeSAqZHN0ID0gc2tiX2RzdChza2IpOwpAQCAtMzI1 LDYgKzMyNiw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBza2JfZHN0X2ZvcmNlKHN0cnVjdCBza19i dWZmICpza2IpCiAKIAkJc2tiLT5fc2tiX3JlZmRzdCA9ICh1bnNpZ25lZCBsb25nKWRzdDsKIAl9 CisKKwlyZXR1cm4gc2tiLT5fc2tiX3JlZmRzdCAhPSAwVUw7CiB9CiAKIApkaWZmIC0tZ2l0IGEv bmV0L25ldGZpbHRlci9uZl9xdWV1ZS5jIGIvbmV0L25ldGZpbHRlci9uZl9xdWV1ZS5jCmluZGV4 IDViODY1NzRlN2I4OS4uMTJhMDA4Y2Y4ODY1IDEwMDY0NAotLS0gYS9uZXQvbmV0ZmlsdGVyL25m X3F1ZXVlLmMKKysrIGIvbmV0L25ldGZpbHRlci9uZl9xdWV1ZS5jCkBAIC0xOTAsNiArMTkwLDEx IEBAIHN0YXRpYyBpbnQgX19uZl9xdWV1ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1 Y3QgbmZfaG9va19zdGF0ZSAqc3RhdGUsCiAJCWdvdG8gZXJyOwogCX0KIAorCWlmICghc2tiX2Rz dF9mb3JjZShza2IpICYmIHN0YXRlLT5ob29rICE9IE5GX0lORVRfUFJFX1JPVVRJTkcpIHsKKwkJ c3RhdHVzID0gLUVORVRET1dOOworCQlnb3RvIGVycjsKKwl9CisKIAkqZW50cnkgPSAoc3RydWN0 IG5mX3F1ZXVlX2VudHJ5KSB7CiAJCS5za2IJPSBza2IsCiAJCS5zdGF0ZQk9ICpzdGF0ZSwKQEAg LTE5OCw3ICsyMDMsNiBAQCBzdGF0aWMgaW50IF9fbmZfcXVldWUoc3RydWN0IHNrX2J1ZmYgKnNr YiwgY29uc3Qgc3RydWN0IG5mX2hvb2tfc3RhdGUgKnN0YXRlLAogCX07CiAKIAluZl9xdWV1ZV9l bnRyeV9nZXRfcmVmcyhlbnRyeSk7Ci0Jc2tiX2RzdF9mb3JjZShza2IpOwogCiAJc3dpdGNoIChl bnRyeS0+c3RhdGUucGYpIHsKIAljYXNlIEFGX0lORVQ6Ci0tIAoyLjIwLjEKCgpGcm9tIDBkODI5 Y2ZlZWI1ZDZiNmExYWI4OWY1NjYyZWM3ZjRlNTAyMzM5OGEgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IExvcmVuem8gQmlhbmNvbmkgPGxvcmVuem8uYmlhbmNvbmlAcmVkaGF0LmNvbT4K RGF0ZTogU3VuLCAxNCBKdWwgMjAxOSAyMzozNjoxMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTMv NDVdIG5ldDogbmVpZ2g6IGZpeCBtdWx0aXBsZSBuZWlnaCB0aW1lciBzY2hlZHVsaW5nCgpbIFVw c3RyZWFtIGNvbW1pdCAwNzFjMzc5ODNkOTlkYTA3Nzk3Mjk0ZWE3OGU5ZGExYTZlMjg3MTQ0IF0K Ck5laWdoIHRpbWVyIGNhbiBiZSBzY2hlZHVsZWQgbXVsdGlwbGUgdGltZXMgZnJvbSB1c2Vyc3Bh Y2UgYWRkaW5nCm11bHRpcGxlIG5laWdoIGVudHJpZXMgYW5kIGZvcmNpbmcgdGhlIG5laWdoIHRp bWVyIHNjaGVkdWxpbmcgcGFzc2luZwpOVEZfVVNFIGluIHRoZSBuZXRsaW5rIHJlcXVlc3RzLgpU aGlzIHdpbGwgcmVzdWx0IGluIGEgcmVmY291bnQgbGVhayBhbmQgaW4gdGhlIGZvbGxvd2luZyBk dW1wIHN0YWNrOgoKWyAgIDMyLjQ2NTI5NV0gTkVJR0g6IEJVRywgZG91YmxlIHRpbWVyIGFkZCwg c3RhdGUgaXMgOApbICAgMzIuNDY1MzA4XSBDUFU6IDAgUElEOiA0MTYgQ29tbTogZG91YmxlX3Rp bWVyX2FkIE5vdCB0YWludGVkIDUuMi4wKyAjNjUKWyAgIDMyLjQ2NTMxMV0gSGFyZHdhcmUgbmFt ZTogUUVNVSBTdGFuZGFyZCBQQyAoUTM1ICsgSUNIOSwgMjAwOSksIEJJT1MgMS4xMi4wLTIuZmMz MCAwNC8wMS8yMDE0ClsgICAzMi40NjUzMTNdIENhbGwgVHJhY2U6ClsgICAzMi40NjUzMThdICBk dW1wX3N0YWNrKzB4N2MvMHhjMApbICAgMzIuNDY1MzIzXSAgX19uZWlnaF9ldmVudF9zZW5kKzB4 MjBjLzB4ODgwClsgICAzMi40NjUzMjZdICA/IF9fX25laWdoX2NyZWF0ZSsweDg0Ni8weGZiMApb ICAgMzIuNDY1MzI5XSAgPyBuZWlnaF9sb29rdXArMHgyYTkvMHg0MTAKWyAgIDMyLjQ2NTMzMl0g ID8gbmVpZ2h0YmxfZmlsbF9pbmZvLmNvbnN0cHJvcC4wKzB4ODAwLzB4ODAwClsgICAzMi40NjUz MzRdICBuZWlnaF9hZGQrMHg0ZjgvMHg1ZTAKWyAgIDMyLjQ2NTMzN10gID8gbmVpZ2hfeG1pdCsw eDYyMC8weDYyMApbICAgMzIuNDY1MzQxXSAgPyBmaW5kX2hlbGRfbG9jaysweDg1LzB4YTAKWyAg IDMyLjQ2NTM0NV0gIHJ0bmV0bGlua19yY3ZfbXNnKzB4MjA0LzB4NTcwClsgICAzMi40NjUzNDhd ICA/IHJ0bmxfZGVsbGluaysweDQ1MC8weDQ1MApbICAgMzIuNDY1MzUxXSAgPyBtYXJrX2hlbGRf bG9ja3MrMHg5MC8weDkwClsgICAzMi40NjUzNTRdICA/IG1hdGNoX2hlbGRfbG9jaysweDFiLzB4 MjMwClsgICAzMi40NjUzNTddICBuZXRsaW5rX3Jjdl9za2IrMHhjNC8weDFkMApbICAgMzIuNDY1 MzYwXSAgPyBydG5sX2RlbGxpbmsrMHg0NTAvMHg0NTAKWyAgIDMyLjQ2NTM2M10gID8gbmV0bGlu a19hY2srMHg0MjAvMHg0MjAKWyAgIDMyLjQ2NTM2Nl0gID8gbmV0bGlua19kZWxpdmVyX3RhcCsw eDExNS8weDU2MApbICAgMzIuNDY1MzY5XSAgPyBfX2FsbG9jX3NrYisweGM5LzB4MmYwClsgICAz Mi40NjUzNzJdICBuZXRsaW5rX3VuaWNhc3QrMHgyNzAvMHgzMzAKWyAgIDMyLjQ2NTM3NV0gID8g bmV0bGlua19hdHRhY2hza2IrMHgyZjAvMHgyZjAKWyAgIDMyLjQ2NTM3OF0gIG5ldGxpbmtfc2Vu ZG1zZysweDM0Zi8weDVhMApbICAgMzIuNDY1MzgxXSAgPyBuZXRsaW5rX3VuaWNhc3QrMHgzMzAv MHgzMzAKWyAgIDMyLjQ2NTM4NV0gID8gbW92ZV9hZGRyX3RvX2tlcm5lbC5wYXJ0LjArMHgyMC8w eDIwClsgICAzMi40NjUzODhdICA/IG5ldGxpbmtfdW5pY2FzdCsweDMzMC8weDMzMApbICAgMzIu NDY1MzkxXSAgc29ja19zZW5kbXNnKzB4OTEvMHhhMApbICAgMzIuNDY1Mzk0XSAgX19fc3lzX3Nl bmRtc2crMHg0MDcvMHg0ODAKWyAgIDMyLjQ2NTM5N10gID8gY29weV9tc2doZHJfZnJvbV91c2Vy KzB4MjAwLzB4MjAwClsgICAzMi40NjU0MDFdICA/IF9yYXdfc3Bpbl91bmxvY2tfaXJxcmVzdG9y ZSsweDM3LzB4NDAKWyAgIDMyLjQ2NTQwNF0gID8gbG9ja2RlcF9oYXJkaXJxc19vbisweDE3ZC8w eDI1MApbICAgMzIuNDY1NDA3XSAgPyBfX3dha2VfdXBfY29tbW9uX2xvY2srMHhjYi8weDExMApb ICAgMzIuNDY1NDEwXSAgPyBfX3dha2VfdXBfY29tbW9uKzB4MjMwLzB4MjMwClsgICAzMi40NjU0 MTNdICA/IG5ldGxpbmtfYmluZCsweDNlMS8weDQ5MApbICAgMzIuNDY1NDE2XSAgPyBuZXRsaW5r X3NldHNvY2tvcHQrMHg1NDAvMHg1NDAKWyAgIDMyLjQ2NTQyMF0gID8gX19mZ2V0X2xpZ2h0KzB4 OWMvMHhmMApbICAgMzIuNDY1NDIzXSAgPyBzb2NrZmRfbG9va3VwX2xpZ2h0KzB4OGMvMHhiMApb ICAgMzIuNDY1NDI2XSAgX19zeXNfc2VuZG1zZysweGE1LzB4MTEwClsgICAzMi40NjU0MjldICA/ IF9faWEzMl9zeXNfc2h1dGRvd24rMHgzMC8weDMwClsgICAzMi40NjU0MzJdICA/IF9fZmRfaW5z dGFsbCsweGUxLzB4MmMwClsgICAzMi40NjU0MzVdICA/IGxvY2tkZXBfaGFyZGlycXNfb2ZmKzB4 YjUvMHgxMDAKWyAgIDMyLjQ2NTQzOF0gID8gbWFya19oZWxkX2xvY2tzKzB4MjQvMHg5MApbICAg MzIuNDY1NDQxXSAgPyBkb19zeXNjYWxsXzY0KzB4Zi8weDI3MApbICAgMzIuNDY1NDQ0XSAgZG9f c3lzY2FsbF82NCsweDYzLzB4MjcwClsgICAzMi40NjU0NDhdICBlbnRyeV9TWVNDQUxMXzY0X2Fm dGVyX2h3ZnJhbWUrMHg0OS8weGJlCgpGaXggdGhlIGlzc3VlIHVuc2NoZWR1bGluZyBuZWlnaF90 aW1lciBpZiBzZWxlY3RlZCBlbnRyeSBpcyBpbiAnSU5fVElNRVInCnJlY2VpdmluZyBhIG5ldGxp bmsgcmVxdWVzdCB3aXRoIE5URl9VU0UgZmxhZyBzZXQKClJlcG9ydGVkLWJ5OiBNYXJlayBNYWpr b3dza2kgPG1hcmVrQGNsb3VkZmxhcmUuY29tPgpGaXhlczogMGM1YzJkMzA4OTA2ICgibmVpZ2g6 IEFsbG93IGZvciB1c2VyIHNwYWNlIHVzZXJzIG9mIHRoZSBuZWlnaGJvdXIgdGFibGUiKQpTaWdu ZWQtb2ZmLWJ5OiBMb3JlbnpvIEJpYW5jb25pIDxsb3JlbnpvLmJpYW5jb25pQHJlZGhhdC5jb20+ ClJldmlld2VkLWJ5OiBEYXZpZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9u ZWlnaGJvdXIuYyB8IDIgKysKIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKCmRpZmYg LS1naXQgYS9uZXQvY29yZS9uZWlnaGJvdXIuYyBiL25ldC9jb3JlL25laWdoYm91ci5jCmluZGV4 IGNjZTRmYmNkN2RjYi4uMmY2OTNmMTE2OGUxIDEwMDY0NAotLS0gYS9uZXQvY29yZS9uZWlnaGJv dXIuYworKysgYi9uZXQvY29yZS9uZWlnaGJvdXIuYwpAQCAtMTEyNiw2ICsxMTI2LDcgQEAgaW50 IF9fbmVpZ2hfZXZlbnRfc2VuZChzdHJ1Y3QgbmVpZ2hib3VyICpuZWlnaCwgc3RydWN0IHNrX2J1 ZmYgKnNrYikKIAogCQkJYXRvbWljX3NldCgmbmVpZ2gtPnByb2JlcywKIAkJCQkgICBORUlHSF9W QVIobmVpZ2gtPnBhcm1zLCBVQ0FTVF9QUk9CRVMpKTsKKwkJCW5laWdoX2RlbF90aW1lcihuZWln aCk7CiAJCQluZWlnaC0+bnVkX3N0YXRlICAgICA9IE5VRF9JTkNPTVBMRVRFOwogCQkJbmVpZ2gt PnVwZGF0ZWQgPSBub3c7CiAJCQluZXh0ID0gbm93ICsgbWF4KE5FSUdIX1ZBUihuZWlnaC0+cGFy bXMsIFJFVFJBTlNfVElNRSksCkBAIC0xMTQyLDYgKzExNDMsNyBAQCBpbnQgX19uZWlnaF9ldmVu dF9zZW5kKHN0cnVjdCBuZWlnaGJvdXIgKm5laWdoLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCQl9 CiAJfSBlbHNlIGlmIChuZWlnaC0+bnVkX3N0YXRlICYgTlVEX1NUQUxFKSB7CiAJCW5laWdoX2Ri ZygyLCAibmVpZ2ggJXAgaXMgZGVsYXllZFxuIiwgbmVpZ2gpOworCQluZWlnaF9kZWxfdGltZXIo bmVpZ2gpOwogCQluZWlnaC0+bnVkX3N0YXRlID0gTlVEX0RFTEFZOwogCQluZWlnaC0+dXBkYXRl ZCA9IGppZmZpZXM7CiAJCW5laWdoX2FkZF90aW1lcihuZWlnaCwgamlmZmllcyArCi0tIAoyLjIw LjEKCgpGcm9tIDUyYjE2ZWZlY2I2ZGE0NTM1NzdlM2MyNzlhNTY5ZWFmMWRlY2U4YzggTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvaG4gSHVybGV5IDxqb2huLmh1cmxleUBuZXRyb25v bWUuY29tPgpEYXRlOiBUaHUsIDI3IEp1biAyMDE5IDE0OjM3OjMwICswMTAwClN1YmplY3Q6IFtQ QVRDSCAxNC80NV0gbmV0OiBvcGVudnN3aXRjaDogZml4IGNzdW0gdXBkYXRlcyBmb3IgTVBMUyBh Y3Rpb25zCgpbIFVwc3RyZWFtIGNvbW1pdCAwZTMxODNjZDJhNjQ4NDNhOTViNjJmOGJkNGE4MzYw NWE0Y2YwNjE1IF0KClNrYnMgbWF5IGhhdmUgdGhlaXIgY2hlY2tzdW0gdmFsdWUgcG9wdWxhdGVk IGJ5IEhXLiBJZiB0aGlzIGlzIGEgY2hlY2tzdW0KY2FsY3VsYXRlZCBvdmVyIHRoZSBlbnRpcmUg cGFja2V0IHRoZW4gdGhlIENIRUNLU1VNX0NPTVBMRVRFIGZpZWxkIGlzCm1hcmtlZC4gQ2hhbmdl cyB0byB0aGUgZGF0YSBwb2ludGVyIG9uIHRoZSBza2IgdGhyb3VnaG91dCB0aGUgbmV0d29yawpz dGFjayBzdGlsbCB0cnkgdG8gbWFpbnRhaW4gdGhpcyBjb21wbGV0ZSBjc3VtIHZhbHVlIGlmIGl0 IGlzIHJlcXVpcmVkCnRocm91Z2ggZnVuY3Rpb25zIHN1Y2ggYXMgc2tiX3Bvc3RwdXNoX3Jjc3Vt LgoKVGhlIE1QTFMgYWN0aW9ucyBpbiBPcGVuIHZTd2l0Y2ggbW9kaWZ5IGEgQ0hFQ0tTVU1fQ09N UExFVEUgdmFsdWUgd2hlbgpjaGFuZ2VzIGFyZSBtYWRlIHRvIHBhY2tldCBkYXRhIHdpdGhvdXQg YSBwdXNoIG9yIGEgcHVsbC4gVGhpcyBvY2N1cnMgd2hlbgp0aGUgZXRoZXJ0eXBlIG9mIHRoZSBN QUMgaGVhZGVyIGlzIGNoYW5nZWQgb3Igd2hlbiBNUExTIGxzZSBmaWVsZHMgYXJlCm1vZGlmaWVk LgoKVGhlIG1vZGlmaWNhdGlvbiBpcyBjYXJyaWVkIG91dCB1c2luZyB0aGUgY3N1bV9wYXJ0aWFs IGZ1bmN0aW9uIHRvIGdldCB0aGUKY3N1bSBvZiBhIGJ1ZmZlciBhbmQgYWRkIGl0IGludG8gdGhl IGxhcmdlciBjaGVja3N1bS4gVGhlIGJ1ZmZlciBpcyBhbgppbnZlcnNpb24gb2YgdGhlIGRhdGEg dG8gYmUgcmVtb3ZlZCBmb2xsb3dlZCBieSB0aGUgbmV3IGRhdGEuIEJlY2F1c2UgdGhlCmNzdW0g aXMgY2FsY3VsYXRlZCBvdmVyIDE2IGJpdHMgYW5kIHRoZXNlIHZhbHVlcyBhbGlnbiB3aXRoIDE2 IGJpdHMsIHRoZQplZmZlY3QgaXMgdGhlIHJlbW92YWwgb2YgdGhlIG9sZCB2YWx1ZSBmcm9tIHRo ZSBDSEVDS1NVTV9DT01QTEVURSBhbmQKYWRkaXRpb24gb2YgdGhlIG5ldyB2YWx1ZS4KCkhvd2V2 ZXIsIHRoZSBjc3VtIGZlZCBpbnRvIHRoZSBmdW5jdGlvbiBhbmQgdGhlIG91dGNvbWUgb2YgdGhl CmNhbGN1bGF0aW9uIGFyZSBhbHNvIGludmVydGVkLiBUaGlzIHdvdWxkIG9ubHkgbWFrZSBzZW5z ZSBpZiBpdCB3YXMgdGhlCm5ldyB2YWx1ZSByYXRoZXIgdGhhbiB0aGUgb2xkIHRoYXQgd2FzIGlu dmVydGVkIGluIHRoZSBpbnB1dCBidWZmZXIuCgpGaXggdGhlIGlzc3VlIGJ5IHJlbW92aW5nIHRo ZSBiaXQgaW52ZXJ0cyBpbiB0aGUgY3N1bV9wYXJ0aWFsIGNhbGN1bGF0aW9uLgoKVGhlIGJ1ZyB3 YXMgdmVyaWZpZWQgYW5kIHRoZSBmaXggdGVzdGVkIGJ5IGNvbXBhcmluZyB0aGUgZm9sZGVkIHZh bHVlIG9mCnRoZSB1cGRhdGVkIENIRUNLU1VNX0NPTVBMRVRFIHZhbHVlIHdpdGggdGhlIGZvbGRl ZCB2YWx1ZSBvZiBhIGZ1bGwKc29mdHdhcmUgY2hlY2tzdW0gY2FsY3VsYXRpb24gKHJlc2V0IHNr Yi0+Y3N1bSB0byAwIGFuZCBydW4Kc2tiX2NoZWNrc3VtX2NvbXBsZXRlKHNrYikpLiBQcmlvciB0 byB0aGUgZml4IHRoZSBvdXRjb21lcyBkaWZmZXJlZCBidXQKYWZ0ZXIgdGhleSBwcm9kdWNlIHRo ZSBzYW1lIHJlc3VsdC4KCkZpeGVzOiAyNWNkOWJhMGFiYzAgKCJvcGVudnN3aXRjaDogQWRkIGJh c2ljIE1QTFMgc3VwcG9ydCB0byBrZXJuZWwiKQpGaXhlczogYmM3Y2M1OTk5ZmQzICgib3BlbnZz d2l0Y2g6IHVwZGF0ZSBjaGVja3N1bSBpbiB7cHVzaCxwb3B9X21wbHMiKQpTaWduZWQtb2ZmLWJ5 OiBKb2huIEh1cmxleSA8am9obi5odXJsZXlAbmV0cm9ub21lLmNvbT4KUmV2aWV3ZWQtYnk6IEph a3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUuY29tPgpSZXZpZXdlZC1ieTog U2ltb24gSG9ybWFuIDxzaW1vbi5ob3JtYW5AbmV0cm9ub21lLmNvbT4KQWNrZWQtYnk6IFByYXZp biBCIFNoZWxhciA8cHNoZWxhckBvdm4ub3JnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L29wZW52c3dpdGNoL2FjdGlvbnMuYyB8 IDYgKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL25ldC9vcGVudnN3aXRjaC9hY3Rpb25zLmMgYi9uZXQvb3BlbnZzd2l0 Y2gvYWN0aW9ucy5jCmluZGV4IGU0N2ViYmJlNzFiOC4uYjg1YjM3NTE4ZmM1IDEwMDY0NAotLS0g YS9uZXQvb3BlbnZzd2l0Y2gvYWN0aW9ucy5jCisrKyBiL25ldC9vcGVudnN3aXRjaC9hY3Rpb25z LmMKQEAgLTE3NSw4ICsxNzUsNyBAQCBzdGF0aWMgdm9pZCB1cGRhdGVfZXRoZXJ0eXBlKHN0cnVj dCBza19idWZmICpza2IsIHN0cnVjdCBldGhoZHIgKmhkciwKIAlpZiAoc2tiLT5pcF9zdW1tZWQg PT0gQ0hFQ0tTVU1fQ09NUExFVEUpIHsKIAkJX19iZTE2IGRpZmZbXSA9IHsgfihoZHItPmhfcHJv dG8pLCBldGhlcnR5cGUgfTsKIAotCQlza2ItPmNzdW0gPSB+Y3N1bV9wYXJ0aWFsKChjaGFyICop ZGlmZiwgc2l6ZW9mKGRpZmYpLAotCQkJCQl+c2tiLT5jc3VtKTsKKwkJc2tiLT5jc3VtID0gY3N1 bV9wYXJ0aWFsKChjaGFyICopZGlmZiwgc2l6ZW9mKGRpZmYpLCBza2ItPmNzdW0pOwogCX0KIAog CWhkci0+aF9wcm90byA9IGV0aGVydHlwZTsKQEAgLTI2OCw4ICsyNjcsNyBAQCBzdGF0aWMgaW50 IHNldF9tcGxzKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzd19mbG93X2tleSAqZmxvd19r ZXksCiAJaWYgKHNrYi0+aXBfc3VtbWVkID09IENIRUNLU1VNX0NPTVBMRVRFKSB7CiAJCV9fYmUz MiBkaWZmW10gPSB7IH4oc3RhY2stPmxhYmVsX3N0YWNrX2VudHJ5KSwgbHNlIH07CiAKLQkJc2ti LT5jc3VtID0gfmNzdW1fcGFydGlhbCgoY2hhciAqKWRpZmYsIHNpemVvZihkaWZmKSwKLQkJCQkJ ICB+c2tiLT5jc3VtKTsKKwkJc2tiLT5jc3VtID0gY3N1bV9wYXJ0aWFsKChjaGFyICopZGlmZiwg c2l6ZW9mKGRpZmYpLCBza2ItPmNzdW0pOwogCX0KIAogCXN0YWNrLT5sYWJlbF9zdGFja19lbnRy eSA9IGxzZTsKLS0gCjIuMjAuMQoKCkZyb20gMjJkMzI0MzdhNjA4NzBkNTM4NzJjMGE1YmI5M2Zj MzgxZmJlYTRlMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQW5kcmV3IEx1bm4gPGFu ZHJld0BsdW5uLmNoPgpEYXRlOiBTdW4sIDIxIEp1bCAyMDE5IDE4OjUwOjA4ICswMjAwClN1Ympl Y3Q6IFtQQVRDSCAxNS80NV0gbmV0OiBwaHk6IHNmcDogaHdtb246IEZpeCBzY2FsaW5nIG9mIFJY IHBvd2VyCgpbIFVwc3RyZWFtIGNvbW1pdCAwY2VhMGUxMTQ4ZmUxMzRhNGEzYWFmMGIxNDk2ZjA5 MjQxZmI5NDNhIF0KClRoZSBSWCBwb3dlciByZWFkIGZyb20gdGhlIFNGUCB1c2VzIHVuaXRzIG9m IDAuMXVXLiBUaGlzIG11c3QgYmUKc2NhbGVkIHRvIHVuaXRzIG9mIHVXIGZvciBIV01PTi4gVGhp cyByZXF1aXJlcyBhIGRpdmlkZSBieSAxMCwgbm90IHRoZQpjdXJyZW50IDEwMC4KCldpdGggdGhp cyBjaGFuZ2UgaW4gcGxhY2UsIHNlbnNvcnMoMSkgYW5kIGV0aHRvb2wgLW0gYWdyZWU6CgpzZmYy LWlzYS0wMDAwCkFkYXB0ZXI6IElTQSBhZGFwdGVyCmluMDogICAgICAgICAgKzMuMjMgVgp0ZW1w MTogICAgICAgICszMy4xIEMKcG93ZXIxOiAgICAgIDI3MC4wMCB1Vwpwb3dlcjI6ICAgICAgMjAw LjAwIHVXCmN1cnIxOiAgICAgICAgKzAuMDEgQQoKICAgICAgICBMYXNlciBvdXRwdXQgcG93ZXIg ICAgICAgICAgICAgICAgICAgICAgICA6IDAuMjc0MyBtVyAvIC01LjYyIGRCbQogICAgICAgIFJl Y2VpdmVyIHNpZ25hbCBhdmVyYWdlIG9wdGljYWwgcG93ZXIgICAgIDogMC4yMDE0IG1XIC8gLTYu OTYgZEJtCgpSZXBvcnRlZC1ieTogY2hyaXMuaGVhbHlAemlpLmFlcm8KU2lnbmVkLW9mZi1ieTog QW5kcmV3IEx1bm4gPGFuZHJld0BsdW5uLmNoPgpGaXhlczogMTMyMzA2MWEwMThhICgibmV0OiBw aHk6IHNmcDogQWRkIEhXTU9OIHN1cHBvcnQgZm9yIG1vZHVsZSBzZW5zb3JzIikKU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMv bmV0L3BoeS9zZnAuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBk ZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9zZnAuYyBiL2RyaXZlcnMv bmV0L3BoeS9zZnAuYwppbmRleCA3MTgxMmJlMGFjNjQuLjgyNTg1N2VmY2M0ZSAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvcGh5L3NmcC5jCisrKyBiL2RyaXZlcnMvbmV0L3BoeS9zZnAuYwpAQCAt NTE0LDcgKzUxNCw3IEBAIHN0YXRpYyBpbnQgc2ZwX2h3bW9uX3JlYWRfc2Vuc29yKHN0cnVjdCBz ZnAgKnNmcCwgaW50IHJlZywgbG9uZyAqdmFsdWUpCiAKIHN0YXRpYyB2b2lkIHNmcF9od21vbl90 b19yeF9wb3dlcihsb25nICp2YWx1ZSkKIHsKLQkqdmFsdWUgPSBESVZfUk9VTkRfQ0xPU0VTVCgq dmFsdWUsIDEwMCk7CisJKnZhbHVlID0gRElWX1JPVU5EX0NMT1NFU1QoKnZhbHVlLCAxMCk7CiB9 CiAKIHN0YXRpYyB2b2lkIHNmcF9od21vbl9jYWxpYnJhdGUoc3RydWN0IHNmcCAqc2ZwLCB1bnNp Z25lZCBpbnQgc2xvcGUsIGludCBvZmZzZXQsCi0tIAoyLjIwLjEKCgpGcm9tIGUyYjdlMzVjNzQy MTFmMzE4OTM5MTA0OTRjZWUzZWUxODYzNTE5M2EgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpEYXRlOiBUdWUsIDE2IEp1 bCAyMDE5IDEzOjU3OjMwIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxNi80NV0gbmV0X3NjaGVkOiB1 bnNldCBUQ1FfRl9DQU5fQllQQVNTIHdoZW4gYWRkaW5nIGZpbHRlcnMKClsgVXBzdHJlYW0gY29t bWl0IDNmMDVlNjg4NmE1OTVjOWEyOWEzMDljNTJmNDUzMjZiZTkxNzgyM2MgXQoKRm9yIHFkaXNj J3MgdGhhdCBzdXBwb3J0IFRDIGZpbHRlcnMgYW5kIHNldCBUQ1FfRl9DQU5fQllQQVNTLApub3Rh Ymx5IGZxX2NvZGVsLCBpdCBtYWtlcyBubyBzZW5zZSB0byBsZXQgcGFja2V0cyBieXBhc3MgdGhl IFRDCmZpbHRlcnMgd2Ugc2V0dXAgaW4gYW55IHNjZW5hcmlvLCBvdGhlcndpc2Ugb3VyIHBhY2tl dHMgc3RlZXJpbmcKcG9saWN5IGNvdWxkIG5vdCBiZSBlbmZvcmNlZC4KClRoaXMgY2FuIGJlIHJl cHJvZHVjZWQgZWFzaWx5IHdpdGggdGhlIGZvbGxvd2luZyBzY3JpcHQ6CgogaXAgbGkgYWRkIGRl diBkdW1teTAgdHlwZSBkdW1teQogaWZjb25maWcgZHVtbXkwIHVwCiB0YyBxZCBhZGQgZGV2IGR1 bW15MCByb290IGZxX2NvZGVsCiB0YyBmaWx0ZXIgYWRkIGRldiBkdW1teTAgcGFyZW50IDgwMDE6 IHByb3RvY29sIGFycCBiYXNpYyBhY3Rpb24gbWlycmVkIGVncmVzcyByZWRpcmVjdCBkZXYgbG8K IHRjIGZpbHRlciBhZGQgZGV2IGR1bW15MCBwYXJlbnQgODAwMTogcHJvdG9jb2wgaXAgYmFzaWMg YWN0aW9uIG1pcnJlZCBlZ3Jlc3MgcmVkaXJlY3QgZGV2IGxvCiBwaW5nIC1JIGR1bW15MCAxOTIu MTY4LjExMi4xCgpXaXRob3V0IHRoaXMgcGF0Y2gsIHBhY2tldHMgYXJlIHNlbnQgZGlyZWN0bHkg dG8gZHVtbXkwIHdpdGhvdXQKaGl0dGluZyBhbnkgb2YgdGhlIGZpbHRlcnMuIFdpdGggdGhpcyBw YXRjaCwgcGFja2V0cyBhcmUgcmVkaXJlY3RlZAp0byBsb29wYmFjayBhcyBleHBlY3RlZC4KClRo aXMgZml4IGlzIG5vdCBwZXJmZWN0LCBpdCBvbmx5IHVuc2V0cyB0aGUgZmxhZyBidXQgZG9lcyBu b3Qgc2V0IGl0IGJhY2sKYmVjYXVzZSB3ZSBoYXZlIHRvIHNhdmUgdGhlIGluZm9ybWF0aW9uIHNv bWV3aGVyZSBpbiB0aGUgcWRpc2MgaWYgd2UKcmVhbGx5IHdhbnQgdGhhdC4gTm90ZSwgYm90aCBm cV9jb2RlbCBhbmQgc2ZxIGNsZWFyIHRoaXMgZmxhZyBpbiB0aGVpcgotPmJpbmRfdGNmKCkgYnV0 IHRoaXMgaXMgY2xlYXJseSBub3Qgc3VmZmljaWVudCB3aGVuIHdlIGRvbid0IHVzZSBhbnkKY2xh c3MgSUQuCgpGaXhlczogMjM2MjQ5MzVlMGM0ICgibmV0X3NjaGVkOiBUQ1FfRl9DQU5fQllQQVNT IGdlbmVyYWxpemF0aW9uIikKQ2M6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4K U2lnbmVkLW9mZi1ieTogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+ClJldmll d2VkLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2NoZWQvY2xz X2FwaS5jICAgICAgfCAxICsKIG5ldC9zY2hlZC9zY2hfZnFfY29kZWwuYyB8IDIgLS0KIG5ldC9z Y2hlZC9zY2hfc2ZxLmMgICAgICB8IDIgLS0KIDMgZmlsZXMgY2hhbmdlZCwgMSBpbnNlcnRpb24o KyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL2Nsc19hcGkuYyBiL25l dC9zY2hlZC9jbHNfYXBpLmMKaW5kZXggOTlhZTMwYzE3N2M3Li45MzkxMmE2MDAxZGMgMTAwNjQ0 Ci0tLSBhL25ldC9zY2hlZC9jbHNfYXBpLmMKKysrIGIvbmV0L3NjaGVkL2Nsc19hcGkuYwpAQCAt MjE2Miw2ICsyMTYyLDcgQEAgc3RhdGljIGludCB0Y19uZXdfdGZpbHRlcihzdHJ1Y3Qgc2tfYnVm ZiAqc2tiLCBzdHJ1Y3Qgbmxtc2doZHIgKm4sCiAJCXRmaWx0ZXJfbm90aWZ5KG5ldCwgc2tiLCBu LCB0cCwgYmxvY2ssIHEsIHBhcmVudCwgZmgsCiAJCQkgICAgICAgUlRNX05FV1RGSUxURVIsIGZh bHNlLCBydG5sX2hlbGQpOwogCQl0ZmlsdGVyX3B1dCh0cCwgZmgpOworCQlxLT5mbGFncyAmPSB+ VENRX0ZfQ0FOX0JZUEFTUzsKIAl9CiAKIGVycm91dDoKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9z Y2hfZnFfY29kZWwuYyBiL25ldC9zY2hlZC9zY2hfZnFfY29kZWwuYwppbmRleCBjZDA0ZDQwYzMw YjYuLjE5NzFmM2EyOTczMCAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9mcV9jb2RlbC5jCisr KyBiL25ldC9zY2hlZC9zY2hfZnFfY29kZWwuYwpAQCAtNjAwLDggKzYwMCw2IEBAIHN0YXRpYyB1 bnNpZ25lZCBsb25nIGZxX2NvZGVsX2ZpbmQoc3RydWN0IFFkaXNjICpzY2gsIHUzMiBjbGFzc2lk KQogc3RhdGljIHVuc2lnbmVkIGxvbmcgZnFfY29kZWxfYmluZChzdHJ1Y3QgUWRpc2MgKnNjaCwg dW5zaWduZWQgbG9uZyBwYXJlbnQsCiAJCQkgICAgICB1MzIgY2xhc3NpZCkKIHsKLQkvKiB3ZSBj YW5ub3QgYnlwYXNzIHF1ZXVlIGRpc2NpcGxpbmUgYW55bW9yZSAqLwotCXNjaC0+ZmxhZ3MgJj0g flRDUV9GX0NBTl9CWVBBU1M7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL25ldC9zY2hl ZC9zY2hfc2ZxLmMgYi9uZXQvc2NoZWQvc2NoX3NmcS5jCmluZGV4IDJmMjY3ODE5Nzc2MC4uNjUw ZjIxNDYzODUzIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2NoX3NmcS5jCisrKyBiL25ldC9zY2hl ZC9zY2hfc2ZxLmMKQEAgLTgyOCw4ICs4MjgsNiBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBzZnFf ZmluZChzdHJ1Y3QgUWRpc2MgKnNjaCwgdTMyIGNsYXNzaWQpCiBzdGF0aWMgdW5zaWduZWQgbG9u ZyBzZnFfYmluZChzdHJ1Y3QgUWRpc2MgKnNjaCwgdW5zaWduZWQgbG9uZyBwYXJlbnQsCiAJCQkg ICAgICB1MzIgY2xhc3NpZCkKIHsKLQkvKiB3ZSBjYW5ub3QgYnlwYXNzIHF1ZXVlIGRpc2NpcGxp bmUgYW55bW9yZSAqLwotCXNjaC0+ZmxhZ3MgJj0gflRDUV9GX0NBTl9CWVBBU1M7CiAJcmV0dXJu IDA7CiB9CiAKLS0gCjIuMjAuMQoKCkZyb20gZDA0MmI0YmY4MDliNzkwZDFhMWI2NzYyMDZkOWU4 MTFkNzA3YjA0ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9zZSBBYnJldSA8Sm9z ZS5BYnJldUBzeW5vcHN5cy5jb20+CkRhdGU6IE1vbiwgOCBKdWwgMjAxOSAxNDoyNjoyOCArMDIw MApTdWJqZWN0OiBbUEFUQ0ggMTcvNDVdIG5ldDogc3RtbWFjOiBSZS13b3JrIHRoZSBxdWV1ZSBz ZWxlY3Rpb24gZm9yIFRTTwogcGFja2V0cwoKWyBVcHN0cmVhbSBjb21taXQgNDk5M2U1YjM3ZThi Y2I1NWFjOTBmNzZlYjZkMjQzMjY0NzI3Mzc0NyBdCgpCZW4gSHV0Y2hpbmdzIHNheXM6CgkiVGhp cyBpcyB0aGUgd3JvbmcgcGxhY2UgdG8gY2hhbmdlIHRoZSBxdWV1ZSBtYXBwaW5nLgoJc3RtbWFj X3htaXQoKSBpcyBjYWxsZWQgd2l0aCBhIHNwZWNpZmljIFRYIHF1ZXVlIGxvY2tlZCwKCWFuZCBh Y2Nlc3NpbmcgYSBkaWZmZXJlbnQgVFggcXVldWUgcmVzdWx0cyBpbiBhIGRhdGEgcmFjZQoJZm9y IGFsbCBvZiB0aGF0IHF1ZXVlJ3Mgc3RhdGUuCgoJSSB0aGluayB0aGlzIGNvbW1pdCBzaG91bGQg YmUgcmV2ZXJ0ZWQgdXBzdHJlYW0gYW5kIGluIGFsbAoJc3RhYmxlIGJyYW5jaGVzLiAgSW5zdGVh ZCwgdGhlIGRyaXZlciBzaG91bGQgaW1wbGVtZW50IHRoZQoJbmRvX3NlbGVjdF9xdWV1ZSBvcGVy YXRpb24gYW5kIG92ZXJyaWRlIHRoZSBxdWV1ZSBtYXBwaW5nIHRoZXJlLiIKCkZpeGVzOiBjNWFj ZGJlZTIyYTEgKCJuZXQ6IHN0bW1hYzogU2VuZCBUU08gcGFja2V0cyBhbHdheXMgZnJvbSBRdWV1 ZSAwIikKU3VnZ2VzdGVkLWJ5OiBCZW4gSHV0Y2hpbmdzIDxiZW5AZGVjYWRlbnQub3JnLnVrPgpT aWduZWQtb2ZmLWJ5OiBKb3NlIEFicmV1IDxqb2FicmV1QHN5bm9wc3lzLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIC4uLi9uZXQv ZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYyB8IDI5ICsrKysrKysrKysrKy0t LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNf bWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4u YwppbmRleCBhNjM0MDU0ZGNiMTEuLmJhNDIzYjg1MmZkNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYworKysgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jCkBAIC0zMDU1LDE3ICszMDU1 LDggQEAgc3RhdGljIG5ldGRldl90eF90IHN0bW1hY194bWl0KHN0cnVjdCBza19idWZmICpza2Is IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAKIAkvKiBNYW5hZ2Ugb3ZlcnNpemVkIFRDUCBmcmFt ZXMgZm9yIEdNQUM0IGRldmljZSAqLwogCWlmIChza2JfaXNfZ3NvKHNrYikgJiYgcHJpdi0+dHNv KSB7Ci0JCWlmIChza2Jfc2hpbmZvKHNrYiktPmdzb190eXBlICYgKFNLQl9HU09fVENQVjQgfCBT S0JfR1NPX1RDUFY2KSkgewotCQkJLyoKLQkJCSAqIFRoZXJlIGlzIG5vIHdheSB0byBkZXRlcm1p bmUgdGhlIG51bWJlciBvZiBUU08KLQkJCSAqIGNhcGFibGUgUXVldWVzLiBMZXQncyB1c2UgYWx3 YXlzIHRoZSBRdWV1ZSAwCi0JCQkgKiBiZWNhdXNlIGlmIFRTTyBpcyBzdXBwb3J0ZWQgdGhlbiBh dCBsZWFzdCB0aGlzCi0JCQkgKiBvbmUgd2lsbCBiZSBjYXBhYmxlLgotCQkJICovCi0JCQlza2Jf c2V0X3F1ZXVlX21hcHBpbmcoc2tiLCAwKTsKLQorCQlpZiAoc2tiX3NoaW5mbyhza2IpLT5nc29f dHlwZSAmIChTS0JfR1NPX1RDUFY0IHwgU0tCX0dTT19UQ1BWNikpCiAJCQlyZXR1cm4gc3RtbWFj X3Rzb194bWl0KHNrYiwgZGV2KTsKLQkJfQogCX0KIAogCWlmICh1bmxpa2VseShzdG1tYWNfdHhf YXZhaWwocHJpdiwgcXVldWUpIDwgbmZyYWdzICsgMSkpIHsKQEAgLTM4ODIsNiArMzg3MywyMyBA QCBzdGF0aWMgaW50IHN0bW1hY19zZXR1cF90YyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgZW51 bSB0Y19zZXR1cF90eXBlIHR5cGUsCiAJfQogfQogCitzdGF0aWMgdTE2IHN0bW1hY19zZWxlY3Rf cXVldWUoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYiwKKwkJCSAg ICAgICBzdHJ1Y3QgbmV0X2RldmljZSAqc2JfZGV2LAorCQkJICAgICAgIHNlbGVjdF9xdWV1ZV9m YWxsYmFja190IGZhbGxiYWNrKQoreworCWlmIChza2Jfc2hpbmZvKHNrYiktPmdzb190eXBlICYg KFNLQl9HU09fVENQVjQgfCBTS0JfR1NPX1RDUFY2KSkgeworCQkvKgorCQkgKiBUaGVyZSBpcyBu byB3YXkgdG8gZGV0ZXJtaW5lIHRoZSBudW1iZXIgb2YgVFNPCisJCSAqIGNhcGFibGUgUXVldWVz LiBMZXQncyB1c2UgYWx3YXlzIHRoZSBRdWV1ZSAwCisJCSAqIGJlY2F1c2UgaWYgVFNPIGlzIHN1 cHBvcnRlZCB0aGVuIGF0IGxlYXN0IHRoaXMKKwkJICogb25lIHdpbGwgYmUgY2FwYWJsZS4KKwkJ ICovCisJCXJldHVybiAwOworCX0KKworCXJldHVybiBmYWxsYmFjayhkZXYsIHNrYiwgTlVMTCkg JSBkZXYtPnJlYWxfbnVtX3R4X3F1ZXVlczsKK30KKwogc3RhdGljIGludCBzdG1tYWNfc2V0X21h Y19hZGRyZXNzKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCB2b2lkICphZGRyKQogewogCXN0cnVj dCBzdG1tYWNfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KG5kZXYpOwpAQCAtNDA5OCw2ICs0MTA2 LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyBzdG1tYWNfbmV0ZGV2X29w cyA9IHsKIAkubmRvX3R4X3RpbWVvdXQgPSBzdG1tYWNfdHhfdGltZW91dCwKIAkubmRvX2RvX2lv Y3RsID0gc3RtbWFjX2lvY3RsLAogCS5uZG9fc2V0dXBfdGMgPSBzdG1tYWNfc2V0dXBfdGMsCisJ Lm5kb19zZWxlY3RfcXVldWUgPSBzdG1tYWNfc2VsZWN0X3F1ZXVlLAogI2lmZGVmIENPTkZJR19O RVRfUE9MTF9DT05UUk9MTEVSCiAJLm5kb19wb2xsX2NvbnRyb2xsZXIgPSBzdG1tYWNfcG9sbF9j b250cm9sbGVyLAogI2VuZGlmCi0tIAoyLjIwLjEKCgpGcm9tIDVmYWQ1OTJlMGJlM2I5ZjkxMmM5 Mzk3ZjllMWJkMDljNWQzZjBjN2EgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpha3Vi IEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUuY29tPgpEYXRlOiBGcmksIDI4IEp1 biAyMDE5IDE2OjExOjM5IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxOC80NV0gbmV0L3RsczogbWFr ZSBzdXJlIG9mZmxvYWQgYWxzbyBnZXRzIHRoZSBrZXlzIHdpcGVkCgpbIFVwc3RyZWFtIGNvbW1p dCBhY2QzZTk2ZDUzYTI0ZDIxOWY3MjBlZDQwMTJiNjI3MjNhZTA1ZGExIF0KCkNvbW1pdCA4NjAy OWQxMGFmMTggKCJ0bHM6IHplcm8gdGhlIGNyeXB0byBpbmZvcm1hdGlvbiBmcm9tIHRsc19jb250 ZXh0CmJlZm9yZSBmcmVlaW5nIikgYWRkZWQgbWVtemVyb19leHBsaWNpdCgpIGNhbGxzIHRvIGNs ZWFyIHRoZSBrZXkgbWF0ZXJpYWwKYmVmb3JlIGZyZWVpbmcgc3RydWN0IHRsc19jb250ZXh0LCBi dXQgaXQgbWlzc2VkIHRsc19kZXZpY2UuYyBoYXMgaXRzCm93biB3YXkgb2YgZnJlZWluZyB0aGlz IHN0cnVjdHVyZS4gUmVwbGFjZSB0aGUgbWlzc2luZyBmcmVlLgoKRml4ZXM6IDg2MDI5ZDEwYWYx OCAoInRsczogemVybyB0aGUgY3J5cHRvIGluZm9ybWF0aW9uIGZyb20gdGxzX2NvbnRleHQgYmVm b3JlIGZyZWVpbmciKQpTaWduZWQtb2ZmLWJ5OiBKYWt1YiBLaWNpbnNraSA8amFrdWIua2ljaW5z a2lAbmV0cm9ub21lLmNvbT4KUmV2aWV3ZWQtYnk6IERpcmsgdmFuIGRlciBNZXJ3ZSA8ZGlyay52 YW5kZXJtZXJ3ZUBuZXRyb25vbWUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQvdGxzLmggICAgfCAxICsKIG5l dC90bHMvdGxzX2RldmljZS5jIHwgMiArLQogbmV0L3Rscy90bHNfbWFpbi5jICAgfCA0ICsrLS0K IDMgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2luY2x1ZGUvbmV0L3Rscy5oIGIvaW5jbHVkZS9uZXQvdGxzLmgKaW5kZXggYTY3YWQ3 ZDU2ZmYyLi4yMmRlMGYwNmQ0NTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L3Rscy5oCisrKyBi L2luY2x1ZGUvbmV0L3Rscy5oCkBAIC0yODUsNiArMjg1LDcgQEAgc3RydWN0IHRsc19vZmZsb2Fk X2NvbnRleHRfcnggewogCShBTElHTihzaXplb2Yoc3RydWN0IHRsc19vZmZsb2FkX2NvbnRleHRf cngpLCBzaXplb2Yodm9pZCAqKSkgKyBcCiAJIFRMU19EUklWRVJfU1RBVEVfU0laRSkKIAordm9p ZCB0bHNfY3R4X2ZyZWUoc3RydWN0IHRsc19jb250ZXh0ICpjdHgpOwogaW50IHdhaXRfb25fcGVu ZGluZ193cml0ZXIoc3RydWN0IHNvY2sgKnNrLCBsb25nICp0aW1lbyk7CiBpbnQgdGxzX3NrX3F1 ZXJ5KHN0cnVjdCBzb2NrICpzaywgaW50IG9wdG5hbWUsIGNoYXIgX191c2VyICpvcHR2YWwsCiAJ CWludCBfX3VzZXIgKm9wdGxlbik7CmRpZmYgLS1naXQgYS9uZXQvdGxzL3Rsc19kZXZpY2UuYyBi L25ldC90bHMvdGxzX2RldmljZS5jCmluZGV4IDEyNDU0ZjBkNWE2My4uZjZlMjU4ZTM3NjExIDEw MDY0NAotLS0gYS9uZXQvdGxzL3Rsc19kZXZpY2UuYworKysgYi9uZXQvdGxzL3Rsc19kZXZpY2Uu YwpAQCAtNjEsNyArNjEsNyBAQCBzdGF0aWMgdm9pZCB0bHNfZGV2aWNlX2ZyZWVfY3R4KHN0cnVj dCB0bHNfY29udGV4dCAqY3R4KQogCWlmIChjdHgtPnJ4X2NvbmYgPT0gVExTX0hXKQogCQlrZnJl ZSh0bHNfb2ZmbG9hZF9jdHhfcngoY3R4KSk7CiAKLQlrZnJlZShjdHgpOworCXRsc19jdHhfZnJl ZShjdHgpOwogfQogCiBzdGF0aWMgdm9pZCB0bHNfZGV2aWNlX2djX3Rhc2soc3RydWN0IHdvcmtf c3RydWN0ICp3b3JrKQpkaWZmIC0tZ2l0IGEvbmV0L3Rscy90bHNfbWFpbi5jIGIvbmV0L3Rscy90 bHNfbWFpbi5jCmluZGV4IGY0ZjYzMjgyNDI0Ny4uMGMyMmFmN2IxMTNmIDEwMDY0NAotLS0gYS9u ZXQvdGxzL3Rsc19tYWluLmMKKysrIGIvbmV0L3Rscy90bHNfbWFpbi5jCkBAIC0yNTEsNyArMjUx LDcgQEAgc3RhdGljIHZvaWQgdGxzX3dyaXRlX3NwYWNlKHN0cnVjdCBzb2NrICpzaykKIAljdHgt PnNrX3dyaXRlX3NwYWNlKHNrKTsKIH0KIAotc3RhdGljIHZvaWQgdGxzX2N0eF9mcmVlKHN0cnVj dCB0bHNfY29udGV4dCAqY3R4KQordm9pZCB0bHNfY3R4X2ZyZWUoc3RydWN0IHRsc19jb250ZXh0 ICpjdHgpCiB7CiAJaWYgKCFjdHgpCiAJCXJldHVybjsKQEAgLTYzOCw3ICs2MzgsNyBAQCBzdGF0 aWMgdm9pZCB0bHNfaHdfc2tfZGVzdHJ1Y3Qoc3RydWN0IHNvY2sgKnNrKQogCiAJY3R4LT5za19k ZXN0cnVjdChzayk7CiAJLyogRnJlZSBjdHggKi8KLQlrZnJlZShjdHgpOworCXRsc19jdHhfZnJl ZShjdHgpOwogCWljc2stPmljc2tfdWxwX2RhdGEgPSBOVUxMOwogfQogCi0tIAoyLjIwLjEKCgpG cm9tIDFjNjQ5NjE5ZTFiNTQ5NmNjZDcyZTI4OTNlYTM2ZTZmZTQ5N2E3NzUgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IFlhbmcgV2VpIDxhbGJpbl95YW5nQDE2My5jb20+CkRhdGU6IE1v biwgOCBKdWwgMjAxOSAyMjo1NzozOSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTkvNDVdIG5mYzog Zml4IHBvdGVudGlhbCBpbGxlZ2FsIG1lbW9yeSBhY2Nlc3MKClsgVXBzdHJlYW0gY29tbWl0IGRk MDA2ZmM0MzRlMTA3ZWY5MGY3ZGUwZGI5OTA3Y2JjMWM1MjE2NDUgXQoKVGhlIGZyYWdzX3EgaXMg bm90IHByb3Blcmx5IGluaXRpYWxpemVkLCBpdCBtYXkgcmVzdWx0IGluIGlsbGVnYWwgbWVtb3J5 CmFjY2VzcyB3aGVuIGNvbm5faW5mbyBpcyBOVUxMLgpUaGUgImdvdG8gZnJlZV9leGl0IiBzaG91 bGQgYmUgcmVwbGFjZWQgYnkgImdvdG8gZXhpdCIuCgpTaWduZWQtb2ZmLWJ5OiBZYW5nIFdlaSA8 YWxiaW5feWFuZ0AxNjMuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L25mYy9uY2kvZGF0YS5jIHwgMiArLQogMSBmaWxlIGNo YW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L25m Yy9uY2kvZGF0YS5jIGIvbmV0L25mYy9uY2kvZGF0YS5jCmluZGV4IDkwOGYyNWUzNzczZS4uNTQw NWQwNzM4MDRjIDEwMDY0NAotLS0gYS9uZXQvbmZjL25jaS9kYXRhLmMKKysrIGIvbmV0L25mYy9u Y2kvZGF0YS5jCkBAIC0xMTksNyArMTE5LDcgQEAgc3RhdGljIGludCBuY2lfcXVldWVfdHhfZGF0 YV9mcmFncyhzdHJ1Y3QgbmNpX2RldiAqbmRldiwKIAljb25uX2luZm8gPSBuY2lfZ2V0X2Nvbm5f aW5mb19ieV9jb25uX2lkKG5kZXYsIGNvbm5faWQpOwogCWlmICghY29ubl9pbmZvKSB7CiAJCXJj ID0gLUVQUk9UTzsKLQkJZ290byBmcmVlX2V4aXQ7CisJCWdvdG8gZXhpdDsKIAl9CiAKIAlfX3Nr Yl9xdWV1ZV9oZWFkX2luaXQoJmZyYWdzX3EpOwotLSAKMi4yMC4xCgoKRnJvbSBjZGQ0YzViYWVk MzlkOWFhYTVlMjJmYTczZDY3YjcxN2NlMjQ3ZWNhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBIZWluZXIgS2FsbHdlaXQgPGhrYWxsd2VpdDFAZ21haWwuY29tPgpEYXRlOiBTYXQsIDEz IEp1bCAyMDE5IDEzOjQ1OjQ3ICswMjAwClN1YmplY3Q6IFtQQVRDSCAyMC80NV0gcjgxNjk6IGZp eCBpc3N1ZSB3aXRoIGNvbmZ1c2VkIFJYIHVuaXQgYWZ0ZXIgUEhZCiBwb3dlci1kb3duIG9uIFJU TDg0MTFiCgpbIFVwc3RyZWFtIGNvbW1pdCBmZTRlOGRiMDM5MmE2YzJlNzk1ZWI4OWVmNWZjZDg2 NTIyZTY2MjQ4IF0KCk9uIFJUTDg0MTFiIHRoZSBSWCB1bml0IGdldHMgY29uZnVzZWQgaWYgdGhl IFBIWSBpcyBwb3dlcmVkLWRvd24uClRoaXMgd2FzIHJlcG9ydGVkIGluIFswXSBhbmQgY29uZmly bWVkIGJ5IFJlYWx0ZWsuIFJlYWx0ZWsgcHJvdmlkZWQKYSBzZXF1ZW5jZSB0byBmaXggdGhlIFJY IHVuaXQgYWZ0ZXIgUEhZIHdha2V1cC4KClRoZSBpc3N1ZSBpdHNlbGYgc2VlbXMgdG8gaGF2ZSBi ZWVuIHRoZXJlIGxvbmdlciwgdGhlIEZpeGVzIHRhZwpyZWZlcnMgdG8gd2hlcmUgdGhlIGZpeCBh cHBsaWVzIHByb3Blcmx5LgoKWzBdIGh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1 Zy5jZ2k/aWQ9MTY5MjA3NQoKRml4ZXM6IGE5OTc5MGJmNWM3ZiAoInI4MTY5OiBSZWluc3RhdGUg QVNQTSBTdXBwb3J0IikKVGVzdGVkLWJ5OiBJb251dCBSYWR1IDxpb251dC5yYWR1QGdtYWlsLmNv bT4KU2lnbmVkLW9mZi1ieTogSGVpbmVyIEthbGx3ZWl0IDxoa2FsbHdlaXQxQGdtYWlsLmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IGRyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYyB8IDEzNyArKysrKysrKysrKysr KysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxMzcgaW5zZXJ0aW9ucygrKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYwppbmRleCA2ZDE3NmJlNTFhNmIuLjMwOTQwMGZiZjY5 ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OS5jCisrKyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYwpAQCAtNTI0MSw2ICs1MjQxLDE0 MyBAQCBzdGF0aWMgdm9pZCBydGxfaHdfc3RhcnRfODQxMV8yKHN0cnVjdCBydGw4MTY5X3ByaXZh dGUgKnRwKQogCS8qIGRpc2FibGUgYXNwbSBhbmQgY2xvY2sgcmVxdWVzdCBiZWZvcmUgYWNjZXNz IGVwaHkgKi8KIAlydGxfaHdfYXNwbV9jbGtyZXFfZW5hYmxlKHRwLCBmYWxzZSk7CiAJcnRsX2Vw aHlfaW5pdCh0cCwgZV9pbmZvXzg0MTFfMiwgQVJSQVlfU0laRShlX2luZm9fODQxMV8yKSk7CisK KwkvKiBUaGUgZm9sbG93aW5nIFJlYWx0ZWstcHJvdmlkZWQgbWFnaWMgZml4ZXMgYW4gaXNzdWUg d2l0aCB0aGUgUlggdW5pdAorCSAqIGdldHRpbmcgY29uZnVzZWQgYWZ0ZXIgdGhlIFBIWSBoYXZp bmcgYmVlbiBwb3dlcmVkLWRvd24uCisJICovCisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhG QzI4LCAweDAwMDApOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4RkMyQSwgMHgwMDAwKTsK KwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEZDMkMsIDB4MDAwMCk7CisJcjgxNjhfbWFjX29j cF93cml0ZSh0cCwgMHhGQzJFLCAweDAwMDApOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4 RkMzMCwgMHgwMDAwKTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEZDMzIsIDB4MDAwMCk7 CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGQzM0LCAweDAwMDApOworCXI4MTY4X21hY19v Y3Bfd3JpdGUodHAsIDB4RkMzNiwgMHgwMDAwKTsKKwltZGVsYXkoMyk7CisJcjgxNjhfbWFjX29j cF93cml0ZSh0cCwgMHhGQzI2LCAweDAwMDApOworCisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwg MHhGODAwLCAweEUwMDgpOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4RjgwMiwgMHhFMDBB KTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4MDQsIDB4RTAwQyk7CisJcjgxNjhfbWFj X29jcF93cml0ZSh0cCwgMHhGODA2LCAweEUwMEUpOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAs IDB4RjgwOCwgMHhFMDI3KTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4MEEsIDB4RTA0 Rik7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGODBDLCAweEUwNUUpOworCXI4MTY4X21h Y19vY3Bfd3JpdGUodHAsIDB4RjgwRSwgMHhFMDY1KTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRw LCAweEY4MTAsIDB4QzYwMik7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGODEyLCAweEJF MDApOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4RjgxNCwgMHgwMDAwKTsKKwlyODE2OF9t YWNfb2NwX3dyaXRlKHRwLCAweEY4MTYsIDB4QzUwMik7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0 cCwgMHhGODE4LCAweEJEMDApOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4RjgxQSwgMHgw NzRDKTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4MUMsIDB4QzMwMik7CisJcjgxNjhf bWFjX29jcF93cml0ZSh0cCwgMHhGODFFLCAweEJCMDApOworCXI4MTY4X21hY19vY3Bfd3JpdGUo dHAsIDB4RjgyMCwgMHgwODBBKTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4MjIsIDB4 NjQyMCk7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGODI0LCAweDQ4QzIpOworCXI4MTY4 X21hY19vY3Bfd3JpdGUodHAsIDB4RjgyNiwgMHg4QzIwKTsKKwlyODE2OF9tYWNfb2NwX3dyaXRl KHRwLCAweEY4MjgsIDB4QzUxNik7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGODJBLCAw eDY0QTQpOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4RjgyQywgMHg0OUMwKTsKKwlyODE2 OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4MkUsIDB4RjAwOSk7CisJcjgxNjhfbWFjX29jcF93cml0 ZSh0cCwgMHhGODMwLCAweDc0QTIpOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4RjgzMiwg MHg4Q0E1KTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4MzQsIDB4NzRBMCk7CisJcjgx NjhfbWFjX29jcF93cml0ZSh0cCwgMHhGODM2LCAweEM1MEUpOworCXI4MTY4X21hY19vY3Bfd3Jp dGUodHAsIDB4RjgzOCwgMHg5Q0EyKTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4M0Es IDB4MUMxMSk7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGODNDLCAweDlDQTApOworCXI4 MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4RjgzRSwgMHhFMDA2KTsKKwlyODE2OF9tYWNfb2NwX3dy aXRlKHRwLCAweEY4NDAsIDB4NzRGOCk7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGODQy LCAweDQ4QzQpOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4Rjg0NCwgMHg4Q0Y4KTsKKwly ODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4NDYsIDB4QzQwNCk7CisJcjgxNjhfbWFjX29jcF93 cml0ZSh0cCwgMHhGODQ4LCAweEJDMDApOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4Rjg0 QSwgMHhDNDAzKTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4NEMsIDB4QkMwMCk7CisJ cjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGODRFLCAweDBCRjIpOworCXI4MTY4X21hY19vY3Bf d3JpdGUodHAsIDB4Rjg1MCwgMHgwQzBBKTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4 NTIsIDB4RTQzNCk7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGODU0LCAweEQzQzApOwor CXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4Rjg1NiwgMHg0OUQ5KTsKKwlyODE2OF9tYWNfb2Nw X3dyaXRlKHRwLCAweEY4NTgsIDB4RjAxRik7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhG ODVBLCAweEM1MjYpOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4Rjg1QywgMHg2NEE1KTsK KwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4NUUsIDB4MTQwMCk7CisJcjgxNjhfbWFjX29j cF93cml0ZSh0cCwgMHhGODYwLCAweEYwMDcpOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4 Rjg2MiwgMHgwQzAxKTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4NjQsIDB4OENBNSk7 CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGODY2LCAweDFDMTUpOworCXI4MTY4X21hY19v Y3Bfd3JpdGUodHAsIDB4Rjg2OCwgMHhDNTFCKTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAw eEY4NkEsIDB4OUNBMCk7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGODZDLCAweEUwMTMp OworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4Rjg2RSwgMHhDNTE5KTsKKwlyODE2OF9tYWNf b2NwX3dyaXRlKHRwLCAweEY4NzAsIDB4NzRBMCk7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwg MHhGODcyLCAweDQ4QzQpOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4Rjg3NCwgMHg4Q0Ew KTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4NzYsIDB4QzUxNik7CisJcjgxNjhfbWFj X29jcF93cml0ZSh0cCwgMHhGODc4LCAweDc0QTQpOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAs IDB4Rjg3QSwgMHg0OEM4KTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4N0MsIDB4NDhD QSk7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGODdFLCAweDlDQTQpOworCXI4MTY4X21h Y19vY3Bfd3JpdGUodHAsIDB4Rjg4MCwgMHhDNTEyKTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRw LCAweEY4ODIsIDB4MUIwMCk7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGODg0LCAweDlC QTApOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4Rjg4NiwgMHgxQjFDKTsKKwlyODE2OF9t YWNfb2NwX3dyaXRlKHRwLCAweEY4ODgsIDB4NDgzRik7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0 cCwgMHhGODhBLCAweDlCQTIpOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4Rjg4QywgMHgx QjA0KTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4OEUsIDB4QzUwOCk7CisJcjgxNjhf bWFjX29jcF93cml0ZSh0cCwgMHhGODkwLCAweDlCQTApOworCXI4MTY4X21hY19vY3Bfd3JpdGUo dHAsIDB4Rjg5MiwgMHhDNTA1KTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4OTQsIDB4 QkQwMCk7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGODk2LCAweEM1MDIpOworCXI4MTY4 X21hY19vY3Bfd3JpdGUodHAsIDB4Rjg5OCwgMHhCRDAwKTsKKwlyODE2OF9tYWNfb2NwX3dyaXRl KHRwLCAweEY4OUEsIDB4MDMwMCk7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGODlDLCAw eDA1MUUpOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4Rjg5RSwgMHhFNDM0KTsKKwlyODE2 OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4QTAsIDB4RTAxOCk7CisJcjgxNjhfbWFjX29jcF93cml0 ZSh0cCwgMHhGOEEyLCAweEUwOTIpOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4RjhBNCwg MHhERTIwKTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4QTYsIDB4RDNDMCk7CisJcjgx NjhfbWFjX29jcF93cml0ZSh0cCwgMHhGOEE4LCAweEM1MEYpOworCXI4MTY4X21hY19vY3Bfd3Jp dGUodHAsIDB4RjhBQSwgMHg3NkE0KTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4QUMs IDB4NDlFMyk7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGOEFFLCAweEYwMDcpOworCXI4 MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4RjhCMCwgMHg0OUMwKTsKKwlyODE2OF9tYWNfb2NwX3dy aXRlKHRwLCAweEY4QjIsIDB4RjEwMyk7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGOEI0 LCAweEM2MDcpOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4RjhCNiwgMHhCRTAwKTsKKwly ODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4QjgsIDB4QzYwNik7CisJcjgxNjhfbWFjX29jcF93 cml0ZSh0cCwgMHhGOEJBLCAweEJFMDApOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4RjhC QywgMHhDNjAyKTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4QkUsIDB4QkUwMCk7CisJ cjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGOEMwLCAweDBDNEMpOworCXI4MTY4X21hY19vY3Bf d3JpdGUodHAsIDB4RjhDMiwgMHgwQzI4KTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4 QzQsIDB4MEMyQyk7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGOEM2LCAweERDMDApOwor CXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4RjhDOCwgMHhDNzA3KTsKKwlyODE2OF9tYWNfb2Nw X3dyaXRlKHRwLCAweEY4Q0EsIDB4MUQwMCk7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhG OENDLCAweDhERTIpOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4RjhDRSwgMHg0OEMxKTsK KwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4RDAsIDB4QzUwMik7CisJcjgxNjhfbWFjX29j cF93cml0ZSh0cCwgMHhGOEQyLCAweEJEMDApOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4 RjhENCwgMHgwMEFBKTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4RDYsIDB4RTBDMCk7 CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGOEQ4LCAweEM1MDIpOworCXI4MTY4X21hY19v Y3Bfd3JpdGUodHAsIDB4RjhEQSwgMHhCRDAwKTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAw eEY4REMsIDB4MDEzMik7CisKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEZDMjYsIDB4ODAw MCk7CisKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEZDMkEsIDB4MDc0Myk7CisJcjgxNjhf bWFjX29jcF93cml0ZSh0cCwgMHhGQzJDLCAweDA4MDEpOworCXI4MTY4X21hY19vY3Bfd3JpdGUo dHAsIDB4RkMyRSwgMHgwQkU5KTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEZDMzAsIDB4 MDJGRCk7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGQzMyLCAweDBDMjUpOworCXI4MTY4 X21hY19vY3Bfd3JpdGUodHAsIDB4RkMzNCwgMHgwMEE5KTsKKwlyODE2OF9tYWNfb2NwX3dyaXRl KHRwLCAweEZDMzYsIDB4MDEyRCk7CisKIAlydGxfaHdfYXNwbV9jbGtyZXFfZW5hYmxlKHRwLCB0 cnVlKTsKIH0KIAotLSAKMi4yMC4xCgoKRnJvbSBlODk0ZWJhNmZjMDQwZTcwMmM3MjI5YjBjZmY5 YjI5NzkzN2FmZmYzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBIb3dlbGxz IDxkaG93ZWxsc0ByZWRoYXQuY29tPgpEYXRlOiBUdWUsIDIgSnVsIDIwMTkgMTU6NTk6MTIgKzAx MDAKU3ViamVjdDogW1BBVENIIDIxLzQ1XSByeHJwYzogRml4IHNlbmQgb24gYSBjb25uZWN0ZWQs IGJ1dCB1bmJvdW5kIHNvY2tldAoKWyBVcHN0cmVhbSBjb21taXQgZTgzNWFkYTA3MDkxZjQwZGNm YjFiYzczNTA4MmJkMGE3YzAwNWU1OSBdCgpJZiBzZW5kbXNnKCkgb3Igc2VuZG1tc2coKSBpcyBj YWxsZWQgb24gYSBjb25uZWN0ZWQgc29ja2V0IHRoYXQgaGFzbid0IGhhZApiaW5kKCkgY2FsbGVk IG9uIGl0LCB0aGVuIGFuIG9vcHMgd2lsbCBvY2N1ciB3aGVuIHRoZSBrZXJuZWwgdHJpZXMgdG8K Y29ubmVjdCB0aGUgY2FsbCBiZWNhdXNlIG5vIGxvY2FsIGVuZHBvaW50IGhhcyBiZWVuIGFsbG9j YXRlZC4KCkZpeCB0aGlzIGJ5IGltcGxpY2l0bHkgYmluZGluZyB0aGUgc29ja2V0IGlmIGl0IGlz IGluIHRoZQpSWFJQQ19DTElFTlRfVU5CT1VORCBzdGF0ZSwganVzdCBsaWtlIGl0IGRvZXMgZm9y IHRoZSBSWFJQQ19VTkJPVU5EIHN0YXRlLgoKRnVydGhlciwgdGhlIHN0YXRlIHNob3VsZCBiZSB0 cmFuc2l0aW9uZWQgdG8gUlhSUENfQ0xJRU5UX0JPVU5EIGFmdGVyIHRoaXMKdG8gcHJldmVudCBm dXJ0aGVyIGF0dGVtcHRzIHRvIGJpbmQgaXQuCgpUaGlzIGNhbiBiZSB0ZXN0ZWQgd2l0aDoKCgkj aW5jbHVkZSA8c3RkaW8uaD4KCSNpbmNsdWRlIDxzdGRsaWIuaD4KCSNpbmNsdWRlIDxzdHJpbmcu aD4KCSNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CgkjaW5jbHVkZSA8YXJwYS9pbmV0Lmg+CgkjaW5j bHVkZSA8bGludXgvcnhycGMuaD4KCXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGluZXQ2X2Fk ZHJbMTZdID0gewoJCTAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIC0xLCAtMSwgMHhhYywg MHgxNCwgMHgxNCwgMHhhYQoJfTsKCWludCBtYWluKHZvaWQpCgl7CgkJc3RydWN0IHNvY2thZGRy X3J4cnBjIHNyeDsKCQlzdHJ1Y3QgY21zZ2hkciAqY207CgkJc3RydWN0IG1zZ2hkciBtc2c7CgkJ dW5zaWduZWQgY2hhciBjb250cm9sWzE2XTsKCQlpbnQgZmQ7CgkJbWVtc2V0KCZzcngsIDAsIHNp emVvZihzcngpKTsKCQlzcnguc3J4X2ZhbWlseSA9IDB4MjE7CgkJc3J4LnNyeF9zZXJ2aWNlID0g MDsKCQlzcngudHJhbnNwb3J0X3R5cGUgPSBBRl9JTkVUOwoJCXNyeC50cmFuc3BvcnRfbGVuID0g MHgxYzsKCQlzcngudHJhbnNwb3J0LnNpbjYuc2luNl9mYW1pbHkgPSBBRl9JTkVUNjsKCQlzcngu dHJhbnNwb3J0LnNpbjYuc2luNl9wb3J0ID0gaHRvbnMoMHg0ZTIyKTsKCQlzcngudHJhbnNwb3J0 LnNpbjYuc2luNl9mbG93aW5mbyA9IGh0b25zKDB4NGUyMik7CgkJc3J4LnRyYW5zcG9ydC5zaW42 LnNpbjZfc2NvcGVfaWQgPSBodG9ucygweGFhM2IpOwoJCW1lbWNweSgmc3J4LnRyYW5zcG9ydC5z aW42LnNpbjZfYWRkciwgaW5ldDZfYWRkciwgMTYpOwoJCWNtID0gKHN0cnVjdCBjbXNnaGRyICop Y29udHJvbDsKCQljbS0+Y21zZ19sZW4JPSBDTVNHX0xFTihzaXplb2YodW5zaWduZWQgbG9uZykp OwoJCWNtLT5jbXNnX2xldmVsCT0gU09MX1JYUlBDOwoJCWNtLT5jbXNnX3R5cGUJPSBSWFJQQ19V U0VSX0NBTExfSUQ7CgkJKih1bnNpZ25lZCBsb25nICopQ01TR19EQVRBKGNtKSA9IDA7CgkJbXNn Lm1zZ19uYW1lID0gTlVMTDsKCQltc2cubXNnX25hbWVsZW4gPSAwOwoJCW1zZy5tc2dfaW92ID0g TlVMTDsKCQltc2cubXNnX2lvdmxlbiA9IDA7CgkJbXNnLm1zZ19jb250cm9sID0gY29udHJvbDsK CQltc2cubXNnX2NvbnRyb2xsZW4gPSBjbS0+Y21zZ19sZW47CgkJbXNnLm1zZ19mbGFncyA9IDA7 CgkJZmQgPSBzb2NrZXQoQUZfUlhSUEMsIFNPQ0tfREdSQU0sIEFGX0lORVQpOwoJCWNvbm5lY3Qo ZmQsIChzdHJ1Y3Qgc29ja2FkZHIgKikmc3J4LCBzaXplb2Yoc3J4KSk7CgkJc2VuZG1zZyhmZCwg Jm1zZywgMCk7CgkJcmV0dXJuIDA7Cgl9CgpMZWFkaW5nIHRvIHRoZSBmb2xsb3dpbmcgb29wczoK CglCVUc6IGtlcm5lbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UsIGFkZHJlc3M6IDAwMDAwMDAw MDAwMDAwMTgKCSNQRjogc3VwZXJ2aXNvciByZWFkIGFjY2VzcyBpbiBrZXJuZWwgbW9kZQoJI1BG OiBlcnJvcl9jb2RlKDB4MDAwMCkgLSBub3QtcHJlc2VudCBwYWdlCgkuLi4KCVJJUDogMDAxMDpy eHJwY19jb25uZWN0X2NhbGwrMHg0Mi8weGEwMQoJLi4uCglDYWxsIFRyYWNlOgoJID8gbWFya19o ZWxkX2xvY2tzKzB4NDcvMHg1OQoJID8gX19sb2NhbF9iaF9lbmFibGVfaXArMHhiNi8weGJhCgkg cnhycGNfbmV3X2NsaWVudF9jYWxsKzB4M2IxLzB4NzYyCgkgPyByeHJwY19kb19zZW5kbXNnKzB4 M2MwLzB4OTJlCgkgcnhycGNfZG9fc2VuZG1zZysweDNjMC8weDkyZQoJIHJ4cnBjX3NlbmRtc2cr MHgxNmIvMHgxYjUKCSBzb2NrX3NlbmRtc2crMHgyZC8weDM5CgkgX19fc3lzX3NlbmRtc2crMHgx YTQvMHgyMmEKCSA/IHJlbGVhc2Vfc29jaysweDE5LzB4OWUKCSA/IHJlYWNxdWlyZV9oZWxkX2xv Y2tzKzB4MTM2LzB4MTYwCgkgPyByZWxlYXNlX3NvY2srMHgxOS8weDllCgkgPyBmaW5kX2hlbGRf bG9jaysweDJiLzB4NmUKCSA/IF9fbG9ja19hY3F1aXJlKzB4MjY4LzB4ZjczCgkgPyByeHJwY19j b25uZWN0KzB4ZGQvMHhlNAoJID8gX19sb2NhbF9iaF9lbmFibGVfaXArMHhiNi8weGJhCgkgX19z eXNfc2VuZG1zZysweDVlLzB4OTQKCSBkb19zeXNjYWxsXzY0KzB4N2QvMHgxYmYKCSBlbnRyeV9T WVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0OS8weGJlCgpGaXhlczogMjM0MWUwNzc1NzQ3ICgi cnhycGM6IFNpbXBsaWZ5IGNvbm5lY3QoKSBpbXBsZW1lbnRhdGlvbiBhbmQgc2ltcGxpZnkgc2Vu ZG1zZygpIG9wIikKUmVwb3J0ZWQtYnk6IHN5emJvdCs3OTY2ZjJhMGIyYzdkYTg5MzliNEBzeXpr YWxsZXIuYXBwc3BvdG1haWwuY29tClNpZ25lZC1vZmYtYnk6IERhdmlkIEhvd2VsbHMgPGRob3dl bGxzQHJlZGhhdC5jb20+ClJldmlld2VkLWJ5OiBNYXJjIERpb25uZSA8bWFyYy5kaW9ubmVAYXVy aXN0b3IuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogbmV0L3J4cnBjL2FmX3J4cnBjLmMgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2Vk LCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3J4cnBj L2FmX3J4cnBjLmMgYi9uZXQvcnhycGMvYWZfcnhycGMuYwppbmRleCBhZThjNWQ3ZjNiZjEuLmM3 NzQ3NjI3MzE3OSAxMDA2NDQKLS0tIGEvbmV0L3J4cnBjL2FmX3J4cnBjLmMKKysrIGIvbmV0L3J4 cnBjL2FmX3J4cnBjLmMKQEAgLTUyMSw2ICs1MjEsNyBAQCBzdGF0aWMgaW50IHJ4cnBjX3NlbmRt c2coc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IG1zZ2hkciAqbSwgc2l6ZV90IGxlbikKIAog CXN3aXRjaCAocngtPnNrLnNrX3N0YXRlKSB7CiAJY2FzZSBSWFJQQ19VTkJPVU5EOgorCWNhc2Ug UlhSUENfQ0xJRU5UX1VOQk9VTkQ6CiAJCXJ4LT5zcnguc3J4X2ZhbWlseSA9IEFGX1JYUlBDOwog CQlyeC0+c3J4LnNyeF9zZXJ2aWNlID0gMDsKIAkJcngtPnNyeC50cmFuc3BvcnRfdHlwZSA9IFNP Q0tfREdSQU07CkBAIC01NDUsMTAgKzU0Niw5IEBAIHN0YXRpYyBpbnQgcnhycGNfc2VuZG1zZyhz dHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3QgbXNnaGRyICptLCBzaXplX3QgbGVuKQogCQl9CiAK IAkJcngtPmxvY2FsID0gbG9jYWw7Ci0JCXJ4LT5zay5za19zdGF0ZSA9IFJYUlBDX0NMSUVOVF9V TkJPVU5EOworCQlyeC0+c2suc2tfc3RhdGUgPSBSWFJQQ19DTElFTlRfQk9VTkQ7CiAJCS8qIEZh bGwgdGhyb3VnaCAqLwogCi0JY2FzZSBSWFJQQ19DTElFTlRfVU5CT1VORDoKIAljYXNlIFJYUlBD X0NMSUVOVF9CT1VORDoKIAkJaWYgKCFtLT5tc2dfbmFtZSAmJgogCQkgICAgdGVzdF9iaXQoUlhS UENfU09DS19DT05ORUNURUQsICZyeC0+ZmxhZ3MpKSB7Ci0tIAoyLjIwLjEKCgpGcm9tIDYzMTM1 MzM2NmU5YzIwYTlkODczNGJjMGU4YmRmZDYzYjEwMzMzYjEgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IE1hcmNlbG8gUmljYXJkbyBMZWl0bmVyIDxtYXJjZWxvLmxlaXRuZXJAZ21haWwu Y29tPgpEYXRlOiBUaHUsIDI3IEp1biAyMDE5IDE5OjQ4OjEwIC0wMzAwClN1YmplY3Q6IFtQQVRD SCAyMi80NV0gc2N0cDogZml4IGVycm9yIGhhbmRsaW5nIG9uIHN0cmVhbSBzY2hlZHVsZXIKIGlu aXRpYWxpemF0aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCA0ZDE0MTU4MTFlNDkyZDlhODIzOGY4YTky ZGQwZDUxNjEyYzc4OGU5IF0KCkl0IGFsbG9jYXRlcyB0aGUgZXh0ZW5kZWQgYXJlYSBmb3Igb3V0 Ym91bmQgc3RyZWFtcyBvbmx5IG9uIHNlbmRtc2cKY2FsbHMsIGlmIHRoZXkgYXJlIG5vdCB5ZXQg YWxsb2NhdGVkLiAgV2hlbiB1c2luZyB0aGUgcHJpb3JpdHkKc3RyZWFtIHNjaGVkdWxlciwgdGhp cyBpbml0aWFsaXphdGlvbiBtYXkgaW1wbHkgaW50byBhIHN1YnNlcXVlbnQKYWxsb2NhdGlvbiwg d2hpY2ggbWF5IGZhaWwuICBJbiB0aGlzIGNhc2UsIGl0IHdhcyBhYm9ydGluZyB0aGUgc3RyZWFt CnNjaGVkdWxlciBpbml0aWFsaXphdGlvbiBidXQgbGVhdmluZyB0aGUgLT5leHQgcG9pbnRlciAo YWxsb2NhdGVkKSBpbgp0aGVyZSwgdGh1cyBpbiBhIHBhcnRpYWxseSBpbml0aWFsaXplZCBzdGF0 ZS4gIE9uIGEgc3Vic2VxdWVudCBjYWxsIHRvCnNlbmRtc2csIGl0IHdvdWxkIG5vdGljZSB0aGUg LT5leHQgcG9pbnRlciBpbiB0aGVyZSwgYW5kIHRyaXAgb24KdW5pbml0aWFsaXplZCBzdHVmZiB3 aGVuIHRyeWluZyB0byBzY2hlZHVsZSB0aGUgZGF0YSBjaHVuay4KClRoZSBmaXggaXMgdW5kbyB0 aGUgLT5leHQgaW5pdGlhbGl6YXRpb24gaWYgdGhlIHN0cmVhbSBzY2hlZHVsZXIKaW5pdGlhbGl6 YXRpb24gZmFpbHMgYW5kIGF2b2lkIHRoZSBwYXJ0aWFsbHkgaW5pdGlhbGl6ZWQgc3RhdGUuCgpB bHRob3VnaCBzeXprYWxsZXIgYmlzZWN0ZWQgdGhpcyB0byBjb21taXQgNGZmNDBiODYyNjJiICgi c2N0cDogc2V0CmNodW5rIHRyYW5zcG9ydCBjb3JyZWN0bHkgd2hlbiBpdCdzIGEgbmV3IGFzb2Mi KSwgdGhpcyBidWcgd2FzIGFjdHVhbGx5CmludHJvZHVjZWQgb24gdGhlIGNvbW1pdCBJIG1hcmtl ZCBiZWxvdy4KClJlcG9ydGVkLWJ5OiBzeXpib3QrYzFhMzgwZDQyYjE5MGFkMWU1NTlAc3l6a2Fs bGVyLmFwcHNwb3RtYWlsLmNvbQpGaXhlczogNWJiYmJlMzJhNDMxICgic2N0cDogaW50cm9kdWNl IHN0cmVhbSBzY2hlZHVsZXIgZm91bmRhdGlvbnMiKQpUZXN0ZWQtYnk6IFhpbiBMb25nIDxsdWNp ZW4ueGluQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogTWFyY2VsbyBSaWNhcmRvIExlaXRuZXIg PG1hcmNlbG8ubGVpdG5lckBnbWFpbC5jb20+CkFja2VkLWJ5OiBOZWlsIEhvcm1hbiA8bmhvcm1h bkByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogbmV0L3NjdHAvc3RyZWFtLmMgfCA5ICsrKysrKysrLQogMSBmaWxlIGNo YW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9z Y3RwL3N0cmVhbS5jIGIvbmV0L3NjdHAvc3RyZWFtLmMKaW5kZXggYjZiYjY4YWRhYzZlLi5mNzJk ZmRhNDAyNWQgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3N0cmVhbS5jCisrKyBiL25ldC9zY3RwL3N0 cmVhbS5jCkBAIC0xNjgsMTMgKzE2OCwyMCBAQCBpbnQgc2N0cF9zdHJlYW1faW5pdChzdHJ1Y3Qg c2N0cF9zdHJlYW0gKnN0cmVhbSwgX191MTYgb3V0Y250LCBfX3UxNiBpbmNudCwKIGludCBzY3Rw X3N0cmVhbV9pbml0X2V4dChzdHJ1Y3Qgc2N0cF9zdHJlYW0gKnN0cmVhbSwgX191MTYgc2lkKQog ewogCXN0cnVjdCBzY3RwX3N0cmVhbV9vdXRfZXh0ICpzb3V0ZTsKKwlpbnQgcmV0OwogCiAJc291 dGUgPSBremFsbG9jKHNpemVvZigqc291dGUpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXNvdXRlKQog CQlyZXR1cm4gLUVOT01FTTsKIAlTQ1RQX1NPKHN0cmVhbSwgc2lkKS0+ZXh0ID0gc291dGU7CiAK LQlyZXR1cm4gc2N0cF9zY2hlZF9pbml0X3NpZChzdHJlYW0sIHNpZCwgR0ZQX0tFUk5FTCk7CisJ cmV0ID0gc2N0cF9zY2hlZF9pbml0X3NpZChzdHJlYW0sIHNpZCwgR0ZQX0tFUk5FTCk7CisJaWYg KHJldCkgeworCQlrZnJlZShTQ1RQX1NPKHN0cmVhbSwgc2lkKS0+ZXh0KTsKKwkJU0NUUF9TTyhz dHJlYW0sIHNpZCktPmV4dCA9IE5VTEw7CisJfQorCisJcmV0dXJuIHJldDsKIH0KIAogdm9pZCBz Y3RwX3N0cmVhbV9mcmVlKHN0cnVjdCBzY3RwX3N0cmVhbSAqc3RyZWFtKQotLSAKMi4yMC4xCgoK RnJvbSBmMzg1ZjFiMDIwY2YwNjMxOTZjOGJlNWMyYWZlMGViOGQ1NGM1MDUxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkRhdGU6 IFdlZCwgMjYgSnVuIDIwMTkgMTY6MzE6MzkgKzA4MDAKU3ViamVjdDogW1BBVENIIDIzLzQ1XSBz Y3RwOiBub3QgYmluZCB0aGUgc29ja2V0IGluIHNjdHBfY29ubmVjdAoKWyBVcHN0cmVhbSBjb21t aXQgOWI2YzA4ODc4ZTIzYWRiN2NjODRiZGNhOTRkOGE5NDRiMDNmMDk5ZSBdCgpOb3cgd2hlbiBz Y3RwX2Nvbm5lY3QoKSBpcyBjYWxsZWQgd2l0aCBhIHdyb25nIHNhX2ZhbWlseSwgaXQgYmluZHMK dG8gYSBwb3J0IGJ1dCBkb2Vzbid0IHNldCBicC0+cG9ydCwgdGhlbiBzY3RwX2dldF9hZl9zcGVj aWZpYyB3aWxsCnJldHVybiBOVUxMIGFuZCBzY3RwX2Nvbm5lY3QoKSByZXR1cm5zIC1FSU5WQUwu CgpUaGVuIGlmIHNjdHBfYmluZCgpIGlzIGNhbGxlZCB0byBiaW5kIHRvIGFub3RoZXIgcG9ydCwg dGhlIGxhc3QKcG9ydCBpdCBoYXMgYm91bmQgd2lsbCBsZWFrIGR1ZSB0byBicC0+cG9ydCBpcyBO VUxMIGJ5IHRoZW4uCgpzY3RwX2Nvbm5lY3QoKSBkb2Vzbid0IG5lZWQgdG8gYmluZCBwb3J0cywg YXMgbGF0ZXIgX19zY3RwX2Nvbm5lY3QKd2lsbCBkbyBpdCBpZiBicC0+cG9ydCBpcyBOVUxMLiBT byByZW1vdmUgaXQgZnJvbSBzY3RwX2Nvbm5lY3QoKS4KV2hpbGUgYXQgaXQsIHJlbW92ZSB0aGUg dW5uZWNlc3Nhcnkgc29ja2FkZHIuc2FfZmFtaWx5IGxlbiBjaGVjawphcyBpdCdzIGFscmVhZHkg ZG9uZSBpbiBzY3RwX2luZXRfY29ubmVjdC4KCkZpeGVzOiA2NDRmYmRlYWNmMWQgKCJzY3RwOiBm aXggdGhlIGlzc3VlIHRoYXQgZmxhZ3MgYXJlIGlnbm9yZWQgd2hlbiB1c2luZyBrZXJuZWxfY29u bmVjdCIpClJlcG9ydGVkLWJ5OiBzeXpib3QrMDc5YmYzMjZiMzgwNzJmODQ5ZDlAc3l6a2FsbGVy LmFwcHNwb3RtYWlsLmNvbQpTaWduZWQtb2ZmLWJ5OiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFp bC5jb20+CkFja2VkLWJ5OiBNYXJjZWxvIFJpY2FyZG8gTGVpdG5lciA8bWFyY2Vsby5sZWl0bmVy QGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIG5ldC9zY3RwL3NvY2tldC5jIHwgMjQgKysrLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9uZXQvc2N0cC9zb2NrZXQuYyBiL25ldC9zY3RwL3NvY2tldC5jCmluZGV4IDQ1 ODNmYTkxNGU2Mi4uZTMzMzgyYjNmODJhIDEwMDY0NAotLS0gYS9uZXQvc2N0cC9zb2NrZXQuYwor KysgYi9uZXQvc2N0cC9zb2NrZXQuYwpAQCAtNDgyOCwzNSArNDgyOCwxNyBAQCBzdGF0aWMgaW50 IHNjdHBfc2V0c29ja29wdChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZXZlbCwgaW50IG9wdG5hbWUs CiBzdGF0aWMgaW50IHNjdHBfY29ubmVjdChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2NrYWRk ciAqYWRkciwKIAkJCWludCBhZGRyX2xlbiwgaW50IGZsYWdzKQogewotCXN0cnVjdCBpbmV0X3Nv Y2sgKmluZXQgPSBpbmV0X3NrKHNrKTsKIAlzdHJ1Y3Qgc2N0cF9hZiAqYWY7Ci0JaW50IGVyciA9 IDA7CisJaW50IGVyciA9IC1FSU5WQUw7CiAKIAlsb2NrX3NvY2soc2spOwotCiAJcHJfZGVidWco IiVzOiBzazolcCwgc29ja2FkZHI6JXAsIGFkZHJfbGVuOiVkXG4iLCBfX2Z1bmNfXywgc2ssCiAJ CSBhZGRyLCBhZGRyX2xlbik7CiAKLQkvKiBXZSBtYXkgbmVlZCB0byBiaW5kIHRoZSBzb2NrZXQu ICovCi0JaWYgKCFpbmV0LT5pbmV0X251bSkgewotCQlpZiAoc2stPnNrX3Byb3QtPmdldF9wb3J0 KHNrLCAwKSkgewotCQkJcmVsZWFzZV9zb2NrKHNrKTsKLQkJCXJldHVybiAtRUFHQUlOOwotCQl9 Ci0JCWluZXQtPmluZXRfc3BvcnQgPSBodG9ucyhpbmV0LT5pbmV0X251bSk7Ci0JfQotCiAJLyog VmFsaWRhdGUgYWRkcl9sZW4gYmVmb3JlIGNhbGxpbmcgY29tbW9uIGNvbm5lY3QvY29ubmVjdHgg cm91dGluZS4gKi8KLQlhZiA9IGFkZHJfbGVuIDwgb2Zmc2V0b2ZlbmQoc3RydWN0IHNvY2thZGRy LCBzYV9mYW1pbHkpID8gTlVMTCA6Ci0JCXNjdHBfZ2V0X2FmX3NwZWNpZmljKGFkZHItPnNhX2Zh bWlseSk7Ci0JaWYgKCFhZiB8fCBhZGRyX2xlbiA8IGFmLT5zb2NrYWRkcl9sZW4pIHsKLQkJZXJy ID0gLUVJTlZBTDsKLQl9IGVsc2UgewotCQkvKiBQYXNzIGNvcnJlY3QgYWRkciBsZW4gdG8gY29t bW9uIHJvdXRpbmUgKHNvIGl0IGtub3dzIHRoZXJlCi0JCSAqIGlzIG9ubHkgb25lIGFkZHJlc3Mg YmVpbmcgcGFzc2VkLgotCQkgKi8KKwlhZiA9IHNjdHBfZ2V0X2FmX3NwZWNpZmljKGFkZHItPnNh X2ZhbWlseSk7CisJaWYgKGFmICYmIGFkZHJfbGVuID49IGFmLT5zb2NrYWRkcl9sZW4pCiAJCWVy ciA9IF9fc2N0cF9jb25uZWN0KHNrLCBhZGRyLCBhZi0+c29ja2FkZHJfbGVuLCBmbGFncywgTlVM TCk7Ci0JfQogCiAJcmVsZWFzZV9zb2NrKHNrKTsKIAlyZXR1cm4gZXJyOwotLSAKMi4yMC4xCgoK RnJvbSAyNmJlNDlmNmY4OWY0Mjc1ZTA0MGY4NWMwYjczOGU1MDc4NWQ0NWNiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYWthc2hpIEl3YWkgPHRpd2FpQHN1c2UuZGU+CkRhdGU6IFR1 ZSwgMjMgSnVsIDIwMTkgMTc6MTU6MjUgKzAyMDAKU3ViamVjdDogW1BBVENIIDI0LzQ1XSBza3ky OiBEaXNhYmxlIE1TSSBvbiBBU1VTIFA2VAoKWyBVcHN0cmVhbSBjb21taXQgYTI2MWUzNzk3NTA2 YmQ1NjE3MDBiZTY0M2ZlMWE4NWJmODFlOTY2MSBdCgpUaGUgb25ib2FyZCBza3kyIE5JQyBvbiBB U1VTIFA2VCBXUyBQUk8gZG9lc24ndCB3b3JrIGFmdGVyIFBNIHJlc3VtZQpkdWUgdG8gdGhlIGlu ZmFtb3VzIElSUSBwcm9ibGVtLiAgRGlzYWJsaW5nIE1TSSB3b3JrcyBhcm91bmQgaXQsIHNvCmxl dCdzIGFkZCBpdCB0byB0aGUgYmxhY2tsaXN0LgoKVW5mb3J0dW5hdGVseSB0aGUgQklPUyBvbiB0 aGUgbWFjaGluZSBkb2Vzbid0IGZpbGwgdGhlIHN0YW5kYXJkCkRNSV9TWVNfKiBlbnRyeSwgc28g d2UgcGljayB1cCBETUlfQk9BUkRfKiBlbnRyaWVzIGluc3RlYWQuCgpCdWdMaW5rOiBodHRwczov L2J1Z3ppbGxhLnN1c2UuY29tL3Nob3dfYnVnLmNnaT9pZD0xMTQyNDk2ClJlcG9ydGVkLWFuZC10 ZXN0ZWQtYnk6IE1hcmN1cyBTZXlmYXJ0aCA8bS5zZXlmYXJ0aEBnbWFpbC5jb20+ClNpZ25lZC1v ZmYtYnk6IFRha2FzaGkgSXdhaSA8dGl3YWlAc3VzZS5kZT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0 L21hcnZlbGwvc2t5Mi5jIHwgNyArKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25z KCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9za3kyLmMgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3NreTIuYwppbmRleCA4YjM0OTVlZTJiNmUuLmQw OTc1MzBhZjc4YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9za3ky LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9za3kyLmMKQEAgLTQ5MzMsNiAr NDkzMywxMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRtaV9zeXN0ZW1faWQgbXNpX2JsYWNrbGlz dFtdID0gewogCQkJRE1JX01BVENIKERNSV9QUk9EVUNUX05BTUUsICJQLTc5IiksCiAJCX0sCiAJ fSwKKwl7CisJCS5pZGVudCA9ICJBU1VTIFA2VCIsCisJCS5tYXRjaGVzID0geworCQkJRE1JX01B VENIKERNSV9CT0FSRF9WRU5ET1IsICJBU1VTVGVLIENvbXB1dGVyIElOQy4iKSwKKwkJCURNSV9N QVRDSChETUlfQk9BUkRfTkFNRSwgIlA2VCIpLAorCQl9LAorCX0sCiAJe30KIH07CiAKLS0gCjIu MjAuMQoKCkZyb20gYTk0YmMxNzg4MGY0NTQzZjY1NmY5MDRmYzI0MmNmMjg5YmE1YzRiZCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUu Y29tPgpEYXRlOiBGcmksIDE5IEp1bCAyMDE5IDExOjUyOjMzIC0wNzAwClN1YmplY3Q6IFtQQVRD SCAyNS80NV0gdGNwOiBiZSBtb3JlIGNhcmVmdWwgaW4gdGNwX2ZyYWdtZW50KCkKClsgVXBzdHJl YW0gY29tbWl0IGI2MTcxNThkYzA5NjcwOWQ4NjAwYzUzYjYwNTIxNDRkMTJiODlmYWIgXQoKU29t ZSBhcHBsaWNhdGlvbnMgc2V0IHRpbnkgU09fU05EQlVGIHZhbHVlcyBhbmQgZXhwZWN0ClRDUCB0 byBqdXN0IHdvcmsuIFJlY2VudCBwYXRjaGVzIHRvIGFkZHJlc3MgQ1ZFLTIwMTktMTE0NzgKYnJv a2UgdGhlbSBpbiBjYXNlIG9mIGxvc3Nlcywgc2luY2UgcmV0cmFuc21pdHMgbWlnaHQKYmUgcHJl dmVudGVkLgoKV2Ugc2hvdWxkIGFsbG93IHRoZXNlIGZsb3dzIHRvIG1ha2UgcHJvZ3Jlc3MuCgpU aGlzIHBhdGNoIGFsbG93cyB0aGUgZmlyc3QgYW5kIGxhc3Qgc2tiIGluIHJldHJhbnNtaXQgcXVl dWUKdG8gYmUgc3BsaXQgZXZlbiBpZiBtZW1vcnkgbGltaXRzIGFyZSBoaXQuCgpJdCBhbHNvIGFk ZHMgdGhlIHNvbWUgcm9vbSBkdWUgdG8gdGhlIGZhY3QgdGhhdCB0Y3Bfc2VuZG1zZygpCmFuZCB0 Y3Bfc2VuZHBhZ2UoKSBtaWdodCBvdmVyc2hvb3Qgc2tfd21lbV9xdWV1ZWQgYnkgYWJvdXQgb25l IGZ1bGwKVFNPIHNrYiAoNjRLQiBzaXplKS4gTm90ZSB0aGlzIGFsbG93YW5jZSB3YXMgYWxyZWFk eSBwcmVzZW50CmluIHN0YWJsZSBiYWNrcG9ydHMgZm9yIGtlcm5lbHMgPCA0LjE1CgpOb3RlIGZv ciA8IDQuMTUgYmFja3BvcnRzIDoKIHRjcF9ydHhfcXVldWVfdGFpbCgpIHdpbGwgcHJvYmFibHkg bG9vayBsaWtlIDoKCnN0YXRpYyBpbmxpbmUgc3RydWN0IHNrX2J1ZmYgKnRjcF9ydHhfcXVldWVf dGFpbChjb25zdCBzdHJ1Y3Qgc29jayAqc2spCnsKCXN0cnVjdCBza19idWZmICpza2IgPSB0Y3Bf c2VuZF9oZWFkKHNrKTsKCglyZXR1cm4gc2tiID8gdGNwX3dyaXRlX3F1ZXVlX3ByZXYoc2ssIHNr YikgOiB0Y3Bfd3JpdGVfcXVldWVfdGFpbChzayk7Cn0KCkZpeGVzOiBmMDcwZWYyYWM2NjcgKCJ0 Y3A6IHRjcF9mcmFnbWVudCgpIHNob3VsZCBhcHBseSBzYW5lIG1lbW9yeSBsaW1pdHMiKQpTaWdu ZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5 OiBBbmRyZXcgUHJvdXQgPGFwcm91dEBsbC5taXQuZWR1PgpUZXN0ZWQtYnk6IEFuZHJldyBQcm91 dCA8YXByb3V0QGxsLm1pdC5lZHU+ClRlc3RlZC1ieTogSm9uYXRoYW4gTGVtb24gPGpvbmF0aGFu LmxlbW9uQGdtYWlsLmNvbT4KVGVzdGVkLWJ5OiBNaWNoYWwgS3ViZWNlayA8bWt1YmVjZWtAc3Vz ZS5jej4KQWNrZWQtYnk6IE5lYWwgQ2FyZHdlbGwgPG5jYXJkd2VsbEBnb29nbGUuY29tPgpBY2tl ZC1ieTogWXVjaHVuZyBDaGVuZyA8eWNoZW5nQGdvb2dsZS5jb20+CkFja2VkLWJ5OiBDaHJpc3Rv cGggUGFhc2NoIDxjcGFhc2NoQGFwcGxlLmNvbT4KQ2M6IEpvbmF0aGFuIExvb25leSA8anRsQG5l dGZsaXguY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQvdGNwLmggICAgIHwgIDUgKysrKysKIG5ldC9pcHY0L3Rj cF9vdXRwdXQuYyB8IDEzICsrKysrKysrKysrLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTYgaW5zZXJ0 aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC90Y3AuaCBi L2luY2x1ZGUvbmV0L3RjcC5oCmluZGV4IDM2ZmNkMGFkMDUxNS4uMjFhOTBmZDE3ODUzIDEwMDY0 NAotLS0gYS9pbmNsdWRlL25ldC90Y3AuaAorKysgYi9pbmNsdWRlL25ldC90Y3AuaApAQCAtMTY3 OSw2ICsxNjc5LDExIEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHNrX2J1ZmYgKnRjcF9ydHhfcXVl dWVfaGVhZChjb25zdCBzdHJ1Y3Qgc29jayAqc2spCiAJcmV0dXJuIHNrYl9yYl9maXJzdCgmc2st PnRjcF9ydHhfcXVldWUpOwogfQogCitzdGF0aWMgaW5saW5lIHN0cnVjdCBza19idWZmICp0Y3Bf cnR4X3F1ZXVlX3RhaWwoY29uc3Qgc3RydWN0IHNvY2sgKnNrKQoreworCXJldHVybiBza2JfcmJf bGFzdCgmc2stPnRjcF9ydHhfcXVldWUpOworfQorCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBza19i dWZmICp0Y3Bfd3JpdGVfcXVldWVfaGVhZChjb25zdCBzdHJ1Y3Qgc29jayAqc2spCiB7CiAJcmV0 dXJuIHNrYl9wZWVrKCZzay0+c2tfd3JpdGVfcXVldWUpOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQv dGNwX291dHB1dC5jIGIvbmV0L2lwdjQvdGNwX291dHB1dC5jCmluZGV4IGI4YjRhZTU1NWUzNC4u MzJiZDUyZTA2ZWYxIDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMKKysrIGIvbmV0 L2lwdjQvdGNwX291dHB1dC5jCkBAIC0xMjg5LDYgKzEyODksNyBAQCBpbnQgdGNwX2ZyYWdtZW50 KHN0cnVjdCBzb2NrICpzaywgZW51bSB0Y3BfcXVldWUgdGNwX3F1ZXVlLAogCXN0cnVjdCB0Y3Bf c29jayAqdHAgPSB0Y3Bfc2soc2spOwogCXN0cnVjdCBza19idWZmICpidWZmOwogCWludCBuc2l6 ZSwgb2xkX2ZhY3RvcjsKKwlsb25nIGxpbWl0OwogCWludCBubGVuOwogCXU4IGZsYWdzOwogCkBA IC0xMjk5LDggKzEzMDAsMTYgQEAgaW50IHRjcF9mcmFnbWVudChzdHJ1Y3Qgc29jayAqc2ssIGVu dW0gdGNwX3F1ZXVlIHRjcF9xdWV1ZSwKIAlpZiAobnNpemUgPCAwKQogCQluc2l6ZSA9IDA7CiAK LQlpZiAodW5saWtlbHkoKHNrLT5za193bWVtX3F1ZXVlZCA+PiAxKSA+IHNrLT5za19zbmRidWYg JiYKLQkJICAgICB0Y3BfcXVldWUgIT0gVENQX0ZSQUdfSU5fV1JJVEVfUVVFVUUpKSB7CisJLyog dGNwX3NlbmRtc2coKSBjYW4gb3ZlcnNob290IHNrX3dtZW1fcXVldWVkIGJ5IG9uZSBmdWxsIHNp emUgc2tiLgorCSAqIFdlIG5lZWQgc29tZSBhbGxvd2FuY2UgdG8gbm90IHBlbmFsaXplIGFwcGxp Y2F0aW9ucyBzZXR0aW5nIHNtYWxsCisJICogU09fU05EQlVGIHZhbHVlcy4KKwkgKiBBbHNvIGFs bG93IGZpcnN0IGFuZCBsYXN0IHNrYiBpbiByZXRyYW5zbWl0IHF1ZXVlIHRvIGJlIHNwbGl0Lgor CSAqLworCWxpbWl0ID0gc2stPnNrX3NuZGJ1ZiArIDIgKiBTS0JfVFJVRVNJWkUoR1NPX01BWF9T SVpFKTsKKwlpZiAodW5saWtlbHkoKHNrLT5za193bWVtX3F1ZXVlZCA+PiAxKSA+IGxpbWl0ICYm CisJCSAgICAgdGNwX3F1ZXVlICE9IFRDUF9GUkFHX0lOX1dSSVRFX1FVRVVFICYmCisJCSAgICAg c2tiICE9IHRjcF9ydHhfcXVldWVfaGVhZChzaykgJiYKKwkJICAgICBza2IgIT0gdGNwX3J0eF9x dWV1ZV90YWlsKHNrKSkpIHsKIAkJTkVUX0lOQ19TVEFUUyhzb2NrX25ldChzayksIExJTlVYX01J Ql9UQ1BXUVVFVUVUT09CSUcpOwogCQlyZXR1cm4gLUVOT01FTTsKIAl9Ci0tIAoyLjIwLjEKCgpG cm9tIGFkM2M0MzE2MWUyYjU4ZjRhZDQwMzIyOWY5OWExZTVkYTdlODk4ODcgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0 ZTogVGh1LCAxOCBKdWwgMjAxOSAxOToyODoxNCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMjYvNDVd IHRjcDogZml4IHRjcF9zZXRfY29uZ2VzdGlvbl9jb250cm9sKCkgdXNlIGZyb20gYnBmIGhvb2sK ClsgVXBzdHJlYW0gY29tbWl0IDhkNjUwY2RlZGFhYmIzM2U4NWU5YjdjNTE3YzBjNzFmY2VjYzFk ZTkgXQoKTmVhbCByZXBvcnRlZCBpbmNvcnJlY3QgdXNlIG9mIG5zX2NhcGFibGUoKSBmcm9tIGJw ZiBob29rLgoKYnBmX3NldHNvY2tvcHQoLi4uVENQX0NPTkdFU1RJT04uLi4pCiAgLT4gdGNwX3Nl dF9jb25nZXN0aW9uX2NvbnRyb2woKQogICAtPiBuc19jYXBhYmxlKHNvY2tfbmV0KHNrKS0+dXNl cl9ucywgQ0FQX05FVF9BRE1JTikKICAgIC0+IG5zX2NhcGFibGVfY29tbW9uKCkKICAgICAtPiBj dXJyZW50X2NyZWQoKQogICAgICAtPiByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKGN1cnJlbnQt PmNyZWQsIDEpCgpBY2Nlc3NpbmcgJ2N1cnJlbnQnIGluIGJwZiBjb250ZXh0IG1ha2VzIG5vIHNl bnNlLCBzaW5jZSBwYWNrZXRzCmFyZSBwcm9jZXNzZWQgZnJvbSBzb2Z0aXJxIGNvbnRleHQuCgpB cyBOZWFsIHN0YXRlZCA6IFRoZSBjYXBhYmlsaXR5IGNoZWNrIGluIHRjcF9zZXRfY29uZ2VzdGlv bl9jb250cm9sKCkKd2FzIHdyaXR0ZW4gYXNzdW1pbmcgYSBzeXN0ZW0gY2FsbCBjb250ZXh0LCBh bmQgdGhlbiB3YXMgcmV1c2VkIGZyb20KYSBCUEYgY2FsbCBzaXRlLgoKVGhlIGZpeCBpcyB0byBh ZGQgYSBuZXcgcGFyYW1ldGVyIHRvIHRjcF9zZXRfY29uZ2VzdGlvbl9jb250cm9sKCksCnNvIHRo YXQgdGhlIG5zX2NhcGFibGUoKSBjYWxsIGlzIG9ubHkgcGVyZm9ybWVkIHVuZGVyIHRoZSByaWdo dApjb250ZXh0LgoKRml4ZXM6IDkxYjViMjFjN2MxNiAoImJwZjogQWRkIHN1cHBvcnQgZm9yIGNo YW5naW5nIGNvbmdlc3Rpb24gY29udHJvbCIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8 ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQ2M6IExhd3JlbmNlIEJyYWttbyA8YnJha21vQGZiLmNvbT4K UmVwb3J0ZWQtYnk6IE5lYWwgQ2FyZHdlbGwgPG5jYXJkd2VsbEBnb29nbGUuY29tPgpBY2tlZC1i eTogTmVhbCBDYXJkd2VsbCA8bmNhcmR3ZWxsQGdvb2dsZS5jb20+CkFja2VkLWJ5OiBMYXdyZW5j ZSBCcmFrbW8gPGJyYWttb0BmYi5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC90Y3AuaCAgIHwgMyArKy0KIG5l dC9jb3JlL2ZpbHRlci5jICAgfCAyICstCiBuZXQvaXB2NC90Y3AuYyAgICAgIHwgNCArKystCiBu ZXQvaXB2NC90Y3BfY29uZy5jIHwgNiArKystLS0KIDQgZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRp b25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3RjcC5oIGIv aW5jbHVkZS9uZXQvdGNwLmgKaW5kZXggMjFhOTBmZDE3ODUzLi41MWYwN2Y1N2ZmYTQgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvbmV0L3RjcC5oCisrKyBiL2luY2x1ZGUvbmV0L3RjcC5oCkBAIC0xMDY3 LDcgKzEwNjcsOCBAQCB2b2lkIHRjcF9nZXRfZGVmYXVsdF9jb25nZXN0aW9uX2NvbnRyb2woc3Ry dWN0IG5ldCAqbmV0LCBjaGFyICpuYW1lKTsKIHZvaWQgdGNwX2dldF9hdmFpbGFibGVfY29uZ2Vz dGlvbl9jb250cm9sKGNoYXIgKmJ1Ziwgc2l6ZV90IGxlbik7CiB2b2lkIHRjcF9nZXRfYWxsb3dl ZF9jb25nZXN0aW9uX2NvbnRyb2woY2hhciAqYnVmLCBzaXplX3QgbGVuKTsKIGludCB0Y3Bfc2V0 X2FsbG93ZWRfY29uZ2VzdGlvbl9jb250cm9sKGNoYXIgKmFsbG93ZWQpOwotaW50IHRjcF9zZXRf Y29uZ2VzdGlvbl9jb250cm9sKHN0cnVjdCBzb2NrICpzaywgY29uc3QgY2hhciAqbmFtZSwgYm9v bCBsb2FkLCBib29sIHJlaW5pdCk7CitpbnQgdGNwX3NldF9jb25nZXN0aW9uX2NvbnRyb2woc3Ry dWN0IHNvY2sgKnNrLCBjb25zdCBjaGFyICpuYW1lLCBib29sIGxvYWQsCisJCQkgICAgICAgYm9v bCByZWluaXQsIGJvb2wgY2FwX25ldF9hZG1pbik7CiB1MzIgdGNwX3Nsb3dfc3RhcnQoc3RydWN0 IHRjcF9zb2NrICp0cCwgdTMyIGFja2VkKTsKIHZvaWQgdGNwX2NvbmdfYXZvaWRfYWkoc3RydWN0 IHRjcF9zb2NrICp0cCwgdTMyIHcsIHUzMiBhY2tlZCk7CiAKZGlmZiAtLWdpdCBhL25ldC9jb3Jl L2ZpbHRlci5jIGIvbmV0L2NvcmUvZmlsdGVyLmMKaW5kZXggYjc2ZjE0MTk3MTI4Li5iODg5MzU2 NjMzOWYgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2ZpbHRlci5jCisrKyBiL25ldC9jb3JlL2ZpbHRl ci5jCkBAIC00MjExLDcgKzQyMTEsNyBAQCBCUEZfQ0FMTF81KGJwZl9zZXRzb2Nrb3B0LCBzdHJ1 Y3QgYnBmX3NvY2tfb3BzX2tlcm4gKiwgYnBmX3NvY2ssCiAJCQkJCQkgICAgVENQX0NBX05BTUVf TUFYLTEpKTsKIAkJCW5hbWVbVENQX0NBX05BTUVfTUFYLTFdID0gMDsKIAkJCXJldCA9IHRjcF9z ZXRfY29uZ2VzdGlvbl9jb250cm9sKHNrLCBuYW1lLCBmYWxzZSwKLQkJCQkJCQkgcmVpbml0KTsK KwkJCQkJCQkgcmVpbml0LCB0cnVlKTsKIAkJfSBlbHNlIHsKIAkJCXN0cnVjdCB0Y3Bfc29jayAq dHAgPSB0Y3Bfc2soc2spOwogCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3AuYyBiL25ldC9pcHY0 L3RjcC5jCmluZGV4IDM2NWM4NDkwYjM0Yi4uMDVmYTdiN2FlZTFlIDEwMDY0NAotLS0gYS9uZXQv aXB2NC90Y3AuYworKysgYi9uZXQvaXB2NC90Y3AuYwpAQCAtMjc4NCw3ICsyNzg0LDkgQEAgc3Rh dGljIGludCBkb190Y3Bfc2V0c29ja29wdChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZXZlbCwKIAkJ bmFtZVt2YWxdID0gMDsKIAogCQlsb2NrX3NvY2soc2spOwotCQllcnIgPSB0Y3Bfc2V0X2Nvbmdl c3Rpb25fY29udHJvbChzaywgbmFtZSwgdHJ1ZSwgdHJ1ZSk7CisJCWVyciA9IHRjcF9zZXRfY29u Z2VzdGlvbl9jb250cm9sKHNrLCBuYW1lLCB0cnVlLCB0cnVlLAorCQkJCQkJIG5zX2NhcGFibGUo c29ja19uZXQoc2spLT51c2VyX25zLAorCQkJCQkJCSAgICBDQVBfTkVUX0FETUlOKSk7CiAJCXJl bGVhc2Vfc29jayhzayk7CiAJCXJldHVybiBlcnI7CiAJfQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQv dGNwX2NvbmcuYyBiL25ldC9pcHY0L3RjcF9jb25nLmMKaW5kZXggYmM2YzAyZjE2MjQzLi40OGY3 OWRiNDQ2YTAgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9jb25nLmMKKysrIGIvbmV0L2lwdjQv dGNwX2NvbmcuYwpAQCAtMzMyLDcgKzMzMiw4IEBAIGludCB0Y3Bfc2V0X2FsbG93ZWRfY29uZ2Vz dGlvbl9jb250cm9sKGNoYXIgKnZhbCkKICAqIHRjcF9yZWluaXRfY29uZ2VzdGlvbl9jb250cm9s IChpZiB0aGUgY3VycmVudCBjb25nZXN0aW9uIGNvbnRyb2wgd2FzCiAgKiBhbHJlYWR5IGluaXRp YWxpemVkLgogICovCi1pbnQgdGNwX3NldF9jb25nZXN0aW9uX2NvbnRyb2woc3RydWN0IHNvY2sg KnNrLCBjb25zdCBjaGFyICpuYW1lLCBib29sIGxvYWQsIGJvb2wgcmVpbml0KQoraW50IHRjcF9z ZXRfY29uZ2VzdGlvbl9jb250cm9sKHN0cnVjdCBzb2NrICpzaywgY29uc3QgY2hhciAqbmFtZSwg Ym9vbCBsb2FkLAorCQkJICAgICAgIGJvb2wgcmVpbml0LCBib29sIGNhcF9uZXRfYWRtaW4pCiB7 CiAJc3RydWN0IGluZXRfY29ubmVjdGlvbl9zb2NrICppY3NrID0gaW5ldF9jc2soc2spOwogCWNv bnN0IHN0cnVjdCB0Y3BfY29uZ2VzdGlvbl9vcHMgKmNhOwpAQCAtMzY4LDggKzM2OSw3IEBAIGlu dCB0Y3Bfc2V0X2Nvbmdlc3Rpb25fY29udHJvbChzdHJ1Y3Qgc29jayAqc2ssIGNvbnN0IGNoYXIg Km5hbWUsIGJvb2wgbG9hZCwgYm9vCiAJCX0gZWxzZSB7CiAJCQllcnIgPSAtRUJVU1k7CiAJCX0K LQl9IGVsc2UgaWYgKCEoKGNhLT5mbGFncyAmIFRDUF9DT05HX05PTl9SRVNUUklDVEVEKSB8fAot CQkgICAgIG5zX2NhcGFibGUoc29ja19uZXQoc2spLT51c2VyX25zLCBDQVBfTkVUX0FETUlOKSkp IHsKKwl9IGVsc2UgaWYgKCEoKGNhLT5mbGFncyAmIFRDUF9DT05HX05PTl9SRVNUUklDVEVEKSB8 fCBjYXBfbmV0X2FkbWluKSkgewogCQllcnIgPSAtRVBFUk07CiAJfSBlbHNlIGlmICghdHJ5X21v ZHVsZV9nZXQoY2EtPm93bmVyKSkgewogCQllcnIgPSAtRUJVU1k7Ci0tIAoyLjIwLjEKCgpGcm9t IGYzMjJhNjM1OTk1MTNhZWMxYWRmMGYzOWIzOWQ3MGI2NGQ3ZjczN2IgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IENocmlzdG9waCBQYWFzY2ggPGNwYWFzY2hAYXBwbGUuY29tPgpEYXRl OiBTYXQsIDYgSnVsIDIwMTkgMTY6MTM6MDcgLTA3MDAKU3ViamVjdDogW1BBVENIIDI3LzQ1XSB0 Y3A6IFJlc2V0IGJ5dGVzX2Fja2VkIGFuZCBieXRlc19yZWNlaXZlZCB3aGVuCiBkaXNjb25uZWN0 aW5nCgpbIFVwc3RyZWFtIGNvbW1pdCBlODU4ZmFmNTU2ZDRlMTRjNzUwYmExZTg4NTI3ODNjNmY5 NTIwYTBlIF0KCklmIGFuIGFwcCBpcyBwbGF5aW5nIHRyaWNrcyB0byByZXVzZSBhIHNvY2tldCB2 aWEgdGNwX2Rpc2Nvbm5lY3QoKSwKYnl0ZXNfYWNrZWQvcmVjZWl2ZWQgbmVlZHMgdG8gYmUgcmVz ZXQgdG8gMC4gT3RoZXJ3aXNlIHRjcF9pbmZvIHdpbGwKcmVwb3J0IHRoZSBzdW0gb2YgdGhlIGN1 cnJlbnQgYW5kIHRoZSBvbGQgY29ubmVjdGlvbi4uCgpDYzogRXJpYyBEdW1hemV0IDxlZHVtYXpl dEBnb29nbGUuY29tPgpGaXhlczogMGRmNDhjMjZkODQxICgidGNwOiBhZGQgdGNwaV9ieXRlc19h Y2tlZCB0byB0Y3BfaW5mbyIpCkZpeGVzOiBiZGQxZjllZGFjYjUgKCJ0Y3A6IGFkZCB0Y3BpX2J5 dGVzX3JlY2VpdmVkIHRvIHRjcF9pbmZvIikKU2lnbmVkLW9mZi1ieTogQ2hyaXN0b3BoIFBhYXNj aCA8Y3BhYXNjaEBhcHBsZS5jb20+ClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6 ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3RjcC5jIHwgMiArKwogMSBmaWxlIGNoYW5nZWQsIDIg aW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcC5jIGIvbmV0L2lwdjQvdGNw LmMKaW5kZXggMDVmYTdiN2FlZTFlLi5jYWFjNTgwZTFmMWQgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0 L3RjcC5jCisrKyBiL25ldC9pcHY0L3RjcC5jCkBAIC0yNjMwLDYgKzI2MzAsOCBAQCBpbnQgdGNw X2Rpc2Nvbm5lY3Qoc3RydWN0IHNvY2sgKnNrLCBpbnQgZmxhZ3MpCiAJdGNwX3NhdmVkX3N5bl9m cmVlKHRwKTsKIAl0cC0+Y29tcHJlc3NlZF9hY2sgPSAwOwogCXRwLT5ieXRlc19zZW50ID0gMDsK Kwl0cC0+Ynl0ZXNfYWNrZWQgPSAwOworCXRwLT5ieXRlc19yZWNlaXZlZCA9IDA7CiAJdHAtPmJ5 dGVzX3JldHJhbnMgPSAwOwogCXRwLT5kdXBsaWNhdGVfc2Fja1swXS5zdGFydF9zZXEgPSAwOwog CXRwLT5kdXBsaWNhdGVfc2Fja1swXS5lbmRfc2VxID0gMDsKLS0gCjIuMjAuMQoKCkZyb20gMTgy NDRmMGRjNDYxMWMxNmUzYTVjOTllYzkzMmExNzQxOGE0OGY5OSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogUGV0ZXIgS29zeWggPHAua29zeWhAZ21haWwuY29tPgpEYXRlOiBGcmksIDE5 IEp1bCAyMDE5IDExOjExOjQ3ICswMzAwClN1YmplY3Q6IFtQQVRDSCAyOC80NV0gdnJmOiBtYWtl IHN1cmUgc2tiLT5kYXRhIGNvbnRhaW5zIGlwIGhlYWRlciB0byBtYWtlCiByb3V0aW5nCgpbIFVw c3RyZWFtIGNvbW1pdCAxMDdlNDdjYzgwZWMzN2NiMzMyYmQ0MWIyMmIxYzc3NzllMjJlMDE4IF0K CnZyZl9wcm9jZXNzX3Y0X291dGJvdW5kKCkgYW5kIHZyZl9wcm9jZXNzX3Y2X291dGJvdW5kKCkg ZG8gcm91dGluZwp1c2luZyBpcC9pcHY2IGFkZHJlc3NlcywgYnV0IGRvbid0IG1ha2Ugc3VyZSB0 aGUgaGVhZGVyIGlzIGF2YWlsYWJsZQppbiBza2ItPmRhdGFbXSAoc2tiX2hlYWRsZW4oKSBpcyBs ZXNzIHRoZW4gaGVhZGVyIHNpemUpLgoKQ2FzZToKCjEpIGlnYiBkcml2ZXIgZnJvbSBpbnRlbC4K MikgUGFja2V0IHNpemUgaXMgZ3JlYXRlciB0aGVuIDI1NS4KMykgTVBMUyBmb3J3YXJkcyB0byBW UkYgZGV2aWNlLgoKU28sIHBhdGNoIGFkZHMgcHNrYl9tYXlfcHVsbCgpIGNhbGxzIGluIHZyZl9w cm9jZXNzX3Y0L3Y2X291dGJvdW5kKCkKZnVuY3Rpb25zLgoKU2lnbmVkLW9mZi1ieTogUGV0ZXIg S29zeWggPHAua29zeWhAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogRGF2aWQgQWhlcm4gPGRzYUBj dW11bHVzbmV0d29ya3MuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdnJmLmMgfCA1OCArKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDM1IGlu c2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3Zy Zi5jIGIvZHJpdmVycy9uZXQvdnJmLmMKaW5kZXggOWVlNGQ3NDAyY2EyLi5iNGFjODdhYTA5ZmQg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3ZyZi5jCisrKyBiL2RyaXZlcnMvbmV0L3ZyZi5jCkBA IC0xNjksMjMgKzE2OSwyOSBAQCBzdGF0aWMgaW50IHZyZl9pcDZfbG9jYWxfb3V0KHN0cnVjdCBu ZXQgKm5ldCwgc3RydWN0IHNvY2sgKnNrLAogc3RhdGljIG5ldGRldl90eF90IHZyZl9wcm9jZXNz X3Y2X291dGJvdW5kKHN0cnVjdCBza19idWZmICpza2IsCiAJCQkJCSAgIHN0cnVjdCBuZXRfZGV2 aWNlICpkZXYpCiB7Ci0JY29uc3Qgc3RydWN0IGlwdjZoZHIgKmlwaCA9IGlwdjZfaGRyKHNrYik7 CisJY29uc3Qgc3RydWN0IGlwdjZoZHIgKmlwaDsKIAlzdHJ1Y3QgbmV0ICpuZXQgPSBkZXZfbmV0 KHNrYi0+ZGV2KTsKLQlzdHJ1Y3QgZmxvd2k2IGZsNiA9IHsKLQkJLyogbmVlZGVkIHRvIG1hdGNo IE9JRiBydWxlICovCi0JCS5mbG93aTZfb2lmID0gZGV2LT5pZmluZGV4LAotCQkuZmxvd2k2X2lp ZiA9IExPT1BCQUNLX0lGSU5ERVgsCi0JCS5kYWRkciA9IGlwaC0+ZGFkZHIsCi0JCS5zYWRkciA9 IGlwaC0+c2FkZHIsCi0JCS5mbG93bGFiZWwgPSBpcDZfZmxvd2luZm8oaXBoKSwKLQkJLmZsb3dp Nl9tYXJrID0gc2tiLT5tYXJrLAotCQkuZmxvd2k2X3Byb3RvID0gaXBoLT5uZXh0aGRyLAotCQku Zmxvd2k2X2ZsYWdzID0gRkxPV0lfRkxBR19TS0lQX05IX09JRiwKLQl9OworCXN0cnVjdCBmbG93 aTYgZmw2OwogCWludCByZXQgPSBORVRfWE1JVF9EUk9QOwogCXN0cnVjdCBkc3RfZW50cnkgKmRz dDsKIAlzdHJ1Y3QgZHN0X2VudHJ5ICpkc3RfbnVsbCA9ICZuZXQtPmlwdjYuaXA2X251bGxfZW50 cnktPmRzdDsKIAorCWlmICghcHNrYl9tYXlfcHVsbChza2IsIEVUSF9ITEVOICsgc2l6ZW9mKHN0 cnVjdCBpcHY2aGRyKSkpCisJCWdvdG8gZXJyOworCisJaXBoID0gaXB2Nl9oZHIoc2tiKTsKKwor CW1lbXNldCgmZmw2LCAwLCBzaXplb2YoZmw2KSk7CisJLyogbmVlZGVkIHRvIG1hdGNoIE9JRiBy dWxlICovCisJZmw2LmZsb3dpNl9vaWYgPSBkZXYtPmlmaW5kZXg7CisJZmw2LmZsb3dpNl9paWYg PSBMT09QQkFDS19JRklOREVYOworCWZsNi5kYWRkciA9IGlwaC0+ZGFkZHI7CisJZmw2LnNhZGRy ID0gaXBoLT5zYWRkcjsKKwlmbDYuZmxvd2xhYmVsID0gaXA2X2Zsb3dpbmZvKGlwaCk7CisJZmw2 LmZsb3dpNl9tYXJrID0gc2tiLT5tYXJrOworCWZsNi5mbG93aTZfcHJvdG8gPSBpcGgtPm5leHRo ZHI7CisJZmw2LmZsb3dpNl9mbGFncyA9IEZMT1dJX0ZMQUdfU0tJUF9OSF9PSUY7CisKIAlkc3Qg PSBpcDZfcm91dGVfb3V0cHV0KG5ldCwgTlVMTCwgJmZsNik7CiAJaWYgKGRzdCA9PSBkc3RfbnVs bCkKIAkJZ290byBlcnI7CkBAIC0yNDEsMjEgKzI0NywyNyBAQCBzdGF0aWMgaW50IHZyZl9pcF9s b2NhbF9vdXQoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc29jayAqc2ssCiBzdGF0aWMgbmV0ZGV2 X3R4X3QgdnJmX3Byb2Nlc3NfdjRfb3V0Ym91bmQoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJCQkJ ICAgc3RydWN0IG5ldF9kZXZpY2UgKnZyZl9kZXYpCiB7Ci0Jc3RydWN0IGlwaGRyICppcDRoID0g aXBfaGRyKHNrYik7CisJc3RydWN0IGlwaGRyICppcDRoOwogCWludCByZXQgPSBORVRfWE1JVF9E Uk9QOwotCXN0cnVjdCBmbG93aTQgZmw0ID0gewotCQkvKiBuZWVkZWQgdG8gbWF0Y2ggT0lGIHJ1 bGUgKi8KLQkJLmZsb3dpNF9vaWYgPSB2cmZfZGV2LT5pZmluZGV4LAotCQkuZmxvd2k0X2lpZiA9 IExPT1BCQUNLX0lGSU5ERVgsCi0JCS5mbG93aTRfdG9zID0gUlRfVE9TKGlwNGgtPnRvcyksCi0J CS5mbG93aTRfZmxhZ3MgPSBGTE9XSV9GTEFHX0FOWVNSQyB8IEZMT1dJX0ZMQUdfU0tJUF9OSF9P SUYsCi0JCS5mbG93aTRfcHJvdG8gPSBpcDRoLT5wcm90b2NvbCwKLQkJLmRhZGRyID0gaXA0aC0+ ZGFkZHIsCi0JCS5zYWRkciA9IGlwNGgtPnNhZGRyLAotCX07CisJc3RydWN0IGZsb3dpNCBmbDQ7 CiAJc3RydWN0IG5ldCAqbmV0ID0gZGV2X25ldCh2cmZfZGV2KTsKIAlzdHJ1Y3QgcnRhYmxlICpy dDsKIAorCWlmICghcHNrYl9tYXlfcHVsbChza2IsIEVUSF9ITEVOICsgc2l6ZW9mKHN0cnVjdCBp cGhkcikpKQorCQlnb3RvIGVycjsKKworCWlwNGggPSBpcF9oZHIoc2tiKTsKKworCW1lbXNldCgm Zmw0LCAwLCBzaXplb2YoZmw0KSk7CisJLyogbmVlZGVkIHRvIG1hdGNoIE9JRiBydWxlICovCisJ Zmw0LmZsb3dpNF9vaWYgPSB2cmZfZGV2LT5pZmluZGV4OworCWZsNC5mbG93aTRfaWlmID0gTE9P UEJBQ0tfSUZJTkRFWDsKKwlmbDQuZmxvd2k0X3RvcyA9IFJUX1RPUyhpcDRoLT50b3MpOworCWZs NC5mbG93aTRfZmxhZ3MgPSBGTE9XSV9GTEFHX0FOWVNSQyB8IEZMT1dJX0ZMQUdfU0tJUF9OSF9P SUY7CisJZmw0LmZsb3dpNF9wcm90byA9IGlwNGgtPnByb3RvY29sOworCWZsNC5kYWRkciA9IGlw NGgtPmRhZGRyOworCWZsNC5zYWRkciA9IGlwNGgtPnNhZGRyOworCiAJcnQgPSBpcF9yb3V0ZV9v dXRwdXRfZmxvdyhuZXQsICZmbDQsIE5VTEwpOwogCWlmIChJU19FUlIocnQpKQogCQlnb3RvIGVy cjsKLS0gCjIuMjAuMQoKCkZyb20gODYyYTI0MjFjYWZhOTc1YTYzYjM3ODQ1NzkzMzEwNmFjZGUw MjFhMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVGFlaGVlIFlvbyA8YXA0MjAwNzNA Z21haWwuY29tPgpEYXRlOiBGcmksIDI4IEp1biAyMDE5IDE0OjA3OjI1ICswOTAwClN1YmplY3Q6 IFtQQVRDSCAyOS80NV0gdnhsYW46IGRvIG5vdCBkZXN0cm95IGZkYiBpZiByZWdpc3Rlcl9uZXRk ZXZpY2UoKSBpcwogZmFpbGVkCgpbIFVwc3RyZWFtIGNvbW1pdCA3YzMxZTU0YWVlZTUxN2QxMzE4 ZGZjMGJkZTlmYTdkZTc1ODkzZGM2IF0KCl9fdnhsYW5fZGV2X2NyZWF0ZSgpIGRlc3Ryb3lzIEZE QiB1c2luZyBzcGVjaWZpYyBwb2ludGVyIHdoaWNoIGluZGljYXRlcwphIGZkYiB3aGVuIGVycm9y IG9jY3Vycy4KQnV0IHRoYXQgcG9pbnRlciBzaG91bGQgbm90IGJlIHVzZWQgd2hlbiByZWdpc3Rl cl9uZXRkZXZpY2UoKSBmYWlscyBiZWNhdXNlCnJlZ2lzdGVyX25ldGRldmljZSgpIGludGVybmFs bHkgZGVzdHJveXMgZmRiIHdoZW4gZXJyb3Igb2NjdXJzLgoKVGhpcyBwYXRjaCBtYWtlcyB2eGxh bl9mZGJfY3JlYXRlKCkgdG8gZG8gbm90IGxpbmsgZmRiIGVudHJ5IHRvIHZ4bGFuIGRldgppbnRl cm5hbGx5LgpJbnN0ZWFkLCBhIG5ldyBmdW5jdGlvbiB2eGxhbl9mZGJfaW5zZXJ0KCkgaXMgYWRk ZWQgdG8gbGluayBmZGIgdG8gdnhsYW4KZGV2LgoKdnhsYW5fZmRiX2luc2VydCgpIGlzIGNhbGxl ZCBhZnRlciBjYWxsaW5nIHJlZ2lzdGVyX25ldGRldmljZSgpLgpUaGlzIHJvdXRpbmUgY2FuIGF2 b2lkIHNpdHVhdGlvbiB0aGF0IC0+bmRvX3VuaW5pdCgpIGRlc3Ryb3lzIGZkYiBlbnRyeQppbiBl cnJvciBwYXRoIG9mIHJlZ2lzdGVyX25ldGRldmljZSgpLgpIZW5jZSwgZXJyb3IgcGF0aCBvZiBf X3Z4bGFuX2Rldl9jcmVhdGUoKSByb3V0aW5lIGNhbiBoYXZlIGFuIG9wcG9ydHVuaXR5CnRvIGRl c3Ryb3kgZGVmYXVsdCBmZGIgZW50cnkgYnkgaGFuZC4KClRlc3QgY29tbWFuZAogICAgaXAgbGlu ayBhZGQgYm9uZGluZ19tYXN0ZXJzIHR5cGUgdnhsYW4gaWQgMCBncm91cCAyMzkuMS4xLjEgXAoJ ICAgIGRldiBlbnAwczkgZHN0cG9ydCA0Nzg5CgpTcGxhdCBsb29rcyBsaWtlOgpbICAyMTMuMzky ODE2XSBrYXNhbjogR1BGIGNvdWxkIGJlIGNhdXNlZCBieSBOVUxMLXB0ciBkZXJlZiBvciB1c2Vy IG1lbW9yeSBhY2Nlc3MKWyAgMjEzLjQwMTI1N10gZ2VuZXJhbCBwcm90ZWN0aW9uIGZhdWx0OiAw MDAwIFsjMV0gU01QIERFQlVHX1BBR0VBTExPQyBLQVNBTiBQVEkKWyAgMjEzLjQwMjE3OF0gQ1BV OiAwIFBJRDogMTQxNCBDb21tOiBpcCBOb3QgdGFpbnRlZCA1LjIuMC1yYzUrICMyNTYKWyAgMjEz LjQwMjE3OF0gUklQOiAwMDEwOnZ4bGFuX2ZkYl9kZXN0cm95KzB4MTIwLzB4MjIwIFt2eGxhbl0K WyAgMjEzLjQwMjE3OF0gQ29kZTogZGYgNDggOGIgMmIgNDggODkgZmEgNDggYzEgZWEgMDMgODAg M2MgMDIgMDAgMGYgODUgMDYgMDEgMDAgMDAgNGMgOGIgNjMgMDggNDggYjggMDAgMDAgMDAgMDAg MDAgZmMgZApbICAyMTMuNDAyMTc4XSBSU1A6IDAwMTg6ZmZmZjg4ODEwY2I5ZjBhMCBFRkxBR1M6 IDAwMDEwMjAyClsgIDIxMy40MDIxNzhdIFJBWDogZGZmZmZjMDAwMDAwMDAwMCBSQlg6IGZmZmY4 ODgxMDFkNGE4YzggUkNYOiAwMDAwMDAwMDAwMDAwMDAwClsgIDIxMy40MDIxNzhdIFJEWDogMWJk NWEwMDAwMDAwMDA0MCBSU0k6IGZmZmY4ODgxMDFkNGE4YzggUkRJOiBmZmZmODg4MTAxZDRhOGQw ClsgIDIxMy40MDIxNzhdIFJCUDogMDAwMDAwMDAwMDAwMDAwMCBSMDg6IGZmZmZmYmZmZjIyYjcy ZDkgUjA5OiAwMDAwMDAwMDAwMDAwMDAwClsgIDIxMy40MDIxNzhdIFIxMDogMDAwMDAwMDBmZmZm ZmZlZiBSMTE6IDAwMDAwMDAwMDAwMDAwMDAgUjEyOiBkZWFkMDAwMDAwMDAwMjAwClsgIDIxMy40 MDIxNzhdIFIxMzogZmZmZjg4ODEwY2I5ZjFmOCBSMTQ6IGZmZmY4ODgxMGVmY2NkYTAgUjE1OiBm ZmZmODg4MTBlZmNjZGEwClsgIDIxMy40MDIxNzhdIEZTOiAgMDAwMDdmN2Y2NjIxYTBjMCgwMDAw KSBHUzpmZmZmODg4MTFiMDAwMDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKWyAgMjEz LjQwMjE3OF0gQ1M6ICAwMDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4MDA1MDAz MwpbICAyMTMuNDAyMTc4XSBDUjI6IDAwMDA1NTc0NmYwODA3ZDAgQ1IzOiAwMDAwMDAwMTEyM2Uw MDAwIENSNDogMDAwMDAwMDAwMDEwMDZmMApbICAyMTMuNDAyMTc4XSBDYWxsIFRyYWNlOgpbICAy MTMuNDAyMTc4XSAgX192eGxhbl9kZXZfY3JlYXRlKzB4M2E5LzB4N2QwIFt2eGxhbl0KWyAgMjEz LjQwMjE3OF0gID8gdnhsYW5fY2hhbmdlbGluaysweDc0MC8weDc0MCBbdnhsYW5dClsgIDIxMy40 MDIxNzhdICA/IHJjdV9yZWFkX3VubG9jaysweDYwLzB4NjAgW3Z4bGFuXQpbICAyMTMuNDAyMTc4 XSAgPyBfX2thc2FuX2ttYWxsb2MuY29uc3Rwcm9wLjMrMHhhMC8weGQwClsgIDIxMy40MDIxNzhd ICB2eGxhbl9uZXdsaW5rKzB4OGQvMHhjMCBbdnhsYW5dClsgIDIxMy40MDIxNzhdICA/IF9fdnhs YW5fZGV2X2NyZWF0ZSsweDdkMC8weDdkMCBbdnhsYW5dClsgIDIxMy41NTQxMTldICA/IF9fbmV0 bGlua19uc19jYXBhYmxlKzB4YzMvMHhmMApbICAyMTMuNTU0MTE5XSAgX19ydG5sX25ld2xpbmsr MHhiNzUvMHgxMTgwClsgIDIxMy41NTQxMTldICA/IHJ0bmxfbGlua191bnJlZ2lzdGVyKzB4MjMw LzB4MjMwClsgLi4uIF0KCkZpeGVzOiAwMjQxYjgzNjczMmYgKCJ2eGxhbjogZml4IGRlZmF1bHQg ZmRiIGVudHJ5IG5ldGxpbmsgbm90aWZ5IG9yZGVyaW5nIGR1cmluZyBuZXRkZXYgY3JlYXRlIikK U3VnZ2VzdGVkLWJ5OiBSb29wYSBQcmFiaHUgPHJvb3BhQGN1bXVsdXNuZXR3b3Jrcy5jb20+ClNp Z25lZC1vZmYtYnk6IFRhZWhlZSBZb28gPGFwNDIwMDczQGdtYWlsLmNvbT4KQWNrZWQtYnk6IFJv b3BhIFByYWJodSA8cm9vcGFAY3VtdWx1c25ldHdvcmtzLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3Z4bGFu LmMgfCAzNyArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCiAxIGZpbGUgY2hh bmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvdnhsYW4uYyBiL2RyaXZlcnMvbmV0L3Z4bGFuLmMKaW5kZXggMzhlY2I2NmZiM2U5 Li44MmMyNWYwNzI2MWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3Z4bGFuLmMKKysrIGIvZHJp dmVycy9uZXQvdnhsYW4uYwpAQCAtODA2LDYgKzgwNiwxNCBAQCBzdGF0aWMgc3RydWN0IHZ4bGFu X2ZkYiAqdnhsYW5fZmRiX2FsbG9jKHN0cnVjdCB2eGxhbl9kZXYgKnZ4bGFuLAogCXJldHVybiBm OwogfQogCitzdGF0aWMgdm9pZCB2eGxhbl9mZGJfaW5zZXJ0KHN0cnVjdCB2eGxhbl9kZXYgKnZ4 bGFuLCBjb25zdCB1OCAqbWFjLAorCQkJICAgICBfX2JlMzIgc3JjX3ZuaSwgc3RydWN0IHZ4bGFu X2ZkYiAqZikKK3sKKwkrK3Z4bGFuLT5hZGRyY250OworCWhsaXN0X2FkZF9oZWFkX3JjdSgmZi0+ aGxpc3QsCisJCQkgICB2eGxhbl9mZGJfaGVhZCh2eGxhbiwgbWFjLCBzcmNfdm5pKSk7Cit9CisK IHN0YXRpYyBpbnQgdnhsYW5fZmRiX2NyZWF0ZShzdHJ1Y3QgdnhsYW5fZGV2ICp2eGxhbiwKIAkJ CSAgICBjb25zdCB1OCAqbWFjLCB1bmlvbiB2eGxhbl9hZGRyICppcCwKIAkJCSAgICBfX3UxNiBz dGF0ZSwgX19iZTE2IHBvcnQsIF9fYmUzMiBzcmNfdm5pLApAQCAtODMxLDE4ICs4MzksMTMgQEAg c3RhdGljIGludCB2eGxhbl9mZGJfY3JlYXRlKHN0cnVjdCB2eGxhbl9kZXYgKnZ4bGFuLAogCQly ZXR1cm4gcmM7CiAJfQogCi0JKyt2eGxhbi0+YWRkcmNudDsKLQlobGlzdF9hZGRfaGVhZF9yY3Uo JmYtPmhsaXN0LAotCQkJICAgdnhsYW5fZmRiX2hlYWQodnhsYW4sIG1hYywgc3JjX3ZuaSkpOwot CiAJKmZkYiA9IGY7CiAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgdnhsYW5fZmRiX2Zy ZWUoc3RydWN0IHJjdV9oZWFkICpoZWFkKQorc3RhdGljIHZvaWQgX192eGxhbl9mZGJfZnJlZShz dHJ1Y3QgdnhsYW5fZmRiICpmKQogewotCXN0cnVjdCB2eGxhbl9mZGIgKmYgPSBjb250YWluZXJf b2YoaGVhZCwgc3RydWN0IHZ4bGFuX2ZkYiwgcmN1KTsKIAlzdHJ1Y3QgdnhsYW5fcmRzdCAqcmQs ICpuZDsKIAogCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShyZCwgbmQsICZmLT5yZW1vdGVzLCBs aXN0KSB7CkBAIC04NTIsNiArODU1LDEzIEBAIHN0YXRpYyB2b2lkIHZ4bGFuX2ZkYl9mcmVlKHN0 cnVjdCByY3VfaGVhZCAqaGVhZCkKIAlrZnJlZShmKTsKIH0KIAorc3RhdGljIHZvaWQgdnhsYW5f ZmRiX2ZyZWUoc3RydWN0IHJjdV9oZWFkICpoZWFkKQoreworCXN0cnVjdCB2eGxhbl9mZGIgKmYg PSBjb250YWluZXJfb2YoaGVhZCwgc3RydWN0IHZ4bGFuX2ZkYiwgcmN1KTsKKworCV9fdnhsYW5f ZmRiX2ZyZWUoZik7Cit9CisKIHN0YXRpYyB2b2lkIHZ4bGFuX2ZkYl9kZXN0cm95KHN0cnVjdCB2 eGxhbl9kZXYgKnZ4bGFuLCBzdHJ1Y3QgdnhsYW5fZmRiICpmLAogCQkJICAgICAgYm9vbCBkb19u b3RpZnksIGJvb2wgc3dkZXZfbm90aWZ5KQogewpAQCAtOTc5LDYgKzk4OSw3IEBAIHN0YXRpYyBp bnQgdnhsYW5fZmRiX3VwZGF0ZV9jcmVhdGUoc3RydWN0IHZ4bGFuX2RldiAqdnhsYW4sCiAJaWYg KHJjIDwgMCkKIAkJcmV0dXJuIHJjOwogCisJdnhsYW5fZmRiX2luc2VydCh2eGxhbiwgbWFjLCBz cmNfdm5pLCBmKTsKIAlyYyA9IHZ4bGFuX2ZkYl9ub3RpZnkodnhsYW4sIGYsIGZpcnN0X3JlbW90 ZV9ydG5sKGYpLCBSVE1fTkVXTkVJR0gsCiAJCQkgICAgICBzd2Rldl9ub3RpZnksIGV4dGFjayk7 CiAJaWYgKHJjKQpAQCAtMzU3MywxMiArMzU4NCwxNyBAQCBzdGF0aWMgaW50IF9fdnhsYW5fZGV2 X2NyZWF0ZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJaWYgKGVy cikKIAkJZ290byBlcnJvdXQ7CiAKLQkvKiBub3RpZnkgZGVmYXVsdCBmZGIgZW50cnkgKi8KIAlp ZiAoZikgeworCQl2eGxhbl9mZGJfaW5zZXJ0KHZ4bGFuLCBhbGxfemVyb3NfbWFjLAorCQkJCSB2 eGxhbi0+ZGVmYXVsdF9kc3QucmVtb3RlX3ZuaSwgZik7CisKKwkJLyogbm90aWZ5IGRlZmF1bHQg ZmRiIGVudHJ5ICovCiAJCWVyciA9IHZ4bGFuX2ZkYl9ub3RpZnkodnhsYW4sIGYsIGZpcnN0X3Jl bW90ZV9ydG5sKGYpLAogCQkJCSAgICAgICBSVE1fTkVXTkVJR0gsIHRydWUsIGV4dGFjayk7Ci0J CWlmIChlcnIpCi0JCQlnb3RvIGVycm91dDsKKwkJaWYgKGVycikgeworCQkJdnhsYW5fZmRiX2Rl c3Ryb3kodnhsYW4sIGYsIGZhbHNlLCBmYWxzZSk7CisJCQlnb3RvIHVucmVnaXN0ZXI7CisJCX0K IAl9CiAKIAlsaXN0X2FkZCgmdnhsYW4tPm5leHQsICZ2bi0+dnhsYW5fbGlzdCk7CkBAIC0zNTkw LDcgKzM2MDYsOCBAQCBzdGF0aWMgaW50IF9fdnhsYW5fZGV2X2NyZWF0ZShzdHJ1Y3QgbmV0ICpu ZXQsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJICogZGVzdHJveSB0aGUgZW50cnkgYnkgaGFu ZCBoZXJlLgogCSAqLwogCWlmIChmKQotCQl2eGxhbl9mZGJfZGVzdHJveSh2eGxhbiwgZiwgZmFs c2UsIGZhbHNlKTsKKwkJX192eGxhbl9mZGJfZnJlZShmKTsKK3VucmVnaXN0ZXI6CiAJaWYgKHVu cmVnaXN0ZXIpCiAJCXVucmVnaXN0ZXJfbmV0ZGV2aWNlKGRldik7CiAJcmV0dXJuIGVycjsKLS0g CjIuMjAuMQoKCkZyb20gZjQ3YmEyODFjYWQ4YjdmMjI0Nzk5MjAwNGZmODdjMjNhNjZmYzI1MCBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQXlhIExldmluIDxheWFsQG1lbGxhbm94LmNv bT4KRGF0ZTogU3VuLCA3IEp1bCAyMDE5IDE2OjU3OjA2ICswMzAwClN1YmplY3Q6IFtQQVRDSCAz MC80NV0gbmV0L21seDVlOiBJUG9JQiwgQWRkIGVycm9yIHBhdGggaW4gbWx4NV9yZG1hX3NldHVw X3JuCgpbIFVwc3RyZWFtIGNvbW1pdCBlZjFjZTdkN2I2N2I0NjY2MTA5MWM3Y2NjMDM5NjE4NmI3 YTI0N2VmIF0KCkNoZWNrIHJldHVybiB2YWx1ZSBmcm9tIG1seDVlX2F0dGFjaF9uZXRkZXYsIGFk ZCBlcnJvciBwYXRoIG9uIGZhaWx1cmUuCgpGaXhlczogNDg5MzViYmI3YWU4ICgibmV0L21seDVl OiBJUG9JQiwgQWRkIG5ldGRldmljZSBwcm9maWxlIHNrZWxldG9uIikKU2lnbmVkLW9mZi1ieTog QXlhIExldmluIDxheWFsQG1lbGxhbm94LmNvbT4KUmV2aWV3ZWQtYnk6IEZlcmFzIERhb3VkIDxm ZXJhc2RhQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVk bUBtZWxsYW5veC5jb20+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2lwb2liL2lwb2liLmMgfCA5ICsrKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDUvY29yZS9pcG9pYi9pcG9pYi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NS9jb3JlL2lwb2liL2lwb2liLmMKaW5kZXggNGVhYzQyNTU1YzdkLi41ZDA3 ODNlNTVmNDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUv Y29yZS9pcG9pYi9pcG9pYi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDUvY29yZS9pcG9pYi9pcG9pYi5jCkBAIC02OTgsNyArNjk4LDkgQEAgc3RhdGljIGludCBtbHg1 X3JkbWFfc2V0dXBfcm4oc3RydWN0IGliX2RldmljZSAqaWJkZXYsIHU4IHBvcnRfbnVtLAogCiAJ cHJvZi0+aW5pdChtZGV2LCBuZXRkZXYsIHByb2YsIGlwcml2KTsKIAotCW1seDVlX2F0dGFjaF9u ZXRkZXYoZXByaXYpOworCWVyciA9IG1seDVlX2F0dGFjaF9uZXRkZXYoZXByaXYpOworCWlmIChl cnIpCisJCWdvdG8gZGV0YWNoOwogCW5ldGlmX2NhcnJpZXJfb2ZmKG5ldGRldik7CiAKIAkvKiBz ZXQgcmRtYV9uZXRkZXYgZnVuYyBwb2ludGVycyAqLwpAQCAtNzE0LDYgKzcxNiwxMSBAQCBzdGF0 aWMgaW50IG1seDVfcmRtYV9zZXR1cF9ybihzdHJ1Y3QgaWJfZGV2aWNlICppYmRldiwgdTggcG9y dF9udW0sCiAKIAlyZXR1cm4gMDsKIAorZGV0YWNoOgorCXByb2YtPmNsZWFudXAoZXByaXYpOwor CWlmIChpcHJpdi0+c3ViX2ludGVyZmFjZSkKKwkJcmV0dXJuIGVycjsKKwltbHg1ZV9kZXN0cm95 X21kZXZfcmVzb3VyY2VzKG1kZXYpOwogZGVzdHJveV9odDoKIAltbHg1aV9wa2V5X3Fwbl9odF9j bGVhbnVwKG5ldGRldik7CiAJcmV0dXJuIGVycjsKLS0gCjIuMjAuMQoKCkZyb20gNmExOTUzMTAw MDM4Njc4OTgwMTMzZTcwMGYyYzcxNmMxZWQ3MmM3NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogTmlrb2xheSBBbGVrc2FuZHJvdiA8bmlrb2xheUBjdW11bHVzbmV0d29ya3MuY29tPgpE YXRlOiBUdWUsIDIgSnVsIDIwMTkgMTU6MDA6MTggKzAzMDAKU3ViamVjdDogW1BBVENIIDMxLzQ1 XSBuZXQ6IGJyaWRnZTogbWNhc3Q6IGZpeCBzdGFsZSBuc3JjcyBwb2ludGVyIGluCiBpZ21wMy9t bGQyIHJlcG9ydCBoYW5kbGluZwoKWyBVcHN0cmVhbSBjb21taXQgZTU3ZjYxODU4YjdjZjQ3OGVk NmZhMjNlZDRiMzg3NmIxYzk2MjVjNCBdCgpXZSB0YWtlIGEgcG9pbnRlciB0byBncmVjIHByaW9y IHRvIGNhbGxpbmcgcHNrYl9tYXlfcHVsbCBhbmQgdXNlIGl0CmFmdGVyd2FyZHMgdG8gZ2V0IG5z cmNzIHNvIHJlY29yZCBuc3JjcyBiZWZvcmUgdGhlIHB1bGwgd2hlbiBoYW5kbGluZwppZ21wMyBh bmQgd2UgZ2V0IGEgcG9pbnRlciB0byBuc3JjcyBhbmQgY2FsbCBwc2tiX21heV9wdWxsIHdoZW4g aGFuZGxpbmcKbWxkMiB3aGljaCBhZ2FpbiBjb3VsZCBsZWFkIHRvIHJlYWRpbmcgMiBieXRlcyBv dXQtb2YtYm91bmRzLgoKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQogQlVHOiBLQVNBTjogdXNlLWFmdGVyLWZyZWUgaW4g YnJfbXVsdGljYXN0X3JjdisweDQ4MGMvMHg0YWQwIFticmlkZ2VdCiBSZWFkIG9mIHNpemUgMiBh dCBhZGRyIGZmZmY4ODgwNDIxMzAyYjQgYnkgdGFzayBrc29mdGlycWQvMS8xNgoKIENQVTogMSBQ SUQ6IDE2IENvbW06IGtzb2Z0aXJxZC8xIFRhaW50ZWQ6IEcgICAgICAgICAgIE9FICAgICA1LjIu MC1yYzYrICMxCiBIYXJkd2FyZSBuYW1lOiBRRU1VIFN0YW5kYXJkIFBDIChpNDQwRlggKyBQSUlY LCAxOTk2KSwgQklPUyAxLjEwLjItMSAwNC8wMS8yMDE0CiBDYWxsIFRyYWNlOgogIGR1bXBfc3Rh Y2srMHg3MS8weGFiCiAgcHJpbnRfYWRkcmVzc19kZXNjcmlwdGlvbisweDZhLzB4MjgwCiAgPyBi cl9tdWx0aWNhc3RfcmN2KzB4NDgwYy8weDRhZDAgW2JyaWRnZV0KICBfX2thc2FuX3JlcG9ydCsw eDE1Mi8weDFhYQogID8gYnJfbXVsdGljYXN0X3JjdisweDQ4MGMvMHg0YWQwIFticmlkZ2VdCiAg PyBicl9tdWx0aWNhc3RfcmN2KzB4NDgwYy8weDRhZDAgW2JyaWRnZV0KICBrYXNhbl9yZXBvcnQr MHhlLzB4MjAKICBicl9tdWx0aWNhc3RfcmN2KzB4NDgwYy8weDRhZDAgW2JyaWRnZV0KICA/IGJy X211bHRpY2FzdF9kaXNhYmxlX3BvcnQrMHgxNTAvMHgxNTAgW2JyaWRnZV0KICA/IGt0aW1lX2dl dF93aXRoX29mZnNldCsweGI0LzB4MTUwCiAgPyBfX2thc2FuX2ttYWxsb2MuY29uc3Rwcm9wLjYr MHhhNi8weGYwCiAgPyBfX25ldGlmX3JlY2VpdmVfc2tiKzB4MWIwLzB4MWIwCiAgPyBicl9mZGJf dXBkYXRlKzB4MTBlLzB4NmUwIFticmlkZ2VdCiAgPyBicl9oYW5kbGVfZnJhbWVfZmluaXNoKzB4 M2M2LzB4MTFkMCBbYnJpZGdlXQogIGJyX2hhbmRsZV9mcmFtZV9maW5pc2grMHgzYzYvMHgxMWQw IFticmlkZ2VdCiAgPyBicl9wYXNzX2ZyYW1lX3VwKzB4M2EwLzB4M2EwIFticmlkZ2VdCiAgPyB2 aXJ0bmV0X3Byb2JlKzB4MWM4MC8weDFjODAgW3ZpcnRpb19uZXRdCiAgYnJfaGFuZGxlX2ZyYW1l KzB4NzMxLzB4ZDkwIFticmlkZ2VdCiAgPyBzZWxlY3RfaWRsZV9zaWJsaW5nKzB4MjUvMHg3ZDAK ICA/IGJyX2hhbmRsZV9mcmFtZV9maW5pc2grMHgxMWQwLzB4MTFkMCBbYnJpZGdlXQogIF9fbmV0 aWZfcmVjZWl2ZV9za2JfY29yZSsweGNlZC8weDJkNzAKICA/IHZpcnRxdWV1ZV9nZXRfYnVmX2N0 eCsweDIzMC8weDExMzAgW3ZpcnRpb19yaW5nXQogID8gZG9feGRwX2dlbmVyaWMrMHgyMC8weDIw CiAgPyB2aXJ0cXVldWVfbmFwaV9jb21wbGV0ZSsweDM5LzB4NzAgW3ZpcnRpb19uZXRdCiAgPyB2 aXJ0bmV0X3BvbGwrMHg5NGQvMHhjNzggW3ZpcnRpb19uZXRdCiAgPyByZWNlaXZlX2J1ZisweDUx MjAvMHg1MTIwIFt2aXJ0aW9fbmV0XQogID8gX19uZXRpZl9yZWNlaXZlX3NrYl9vbmVfY29yZSsw eDk3LzB4MWQwCiAgX19uZXRpZl9yZWNlaXZlX3NrYl9vbmVfY29yZSsweDk3LzB4MWQwCiAgPyBf X25ldGlmX3JlY2VpdmVfc2tiX2NvcmUrMHgyZDcwLzB4MmQ3MAogID8gX3Jhd193cml0ZV90cnls b2NrKzB4MTAwLzB4MTAwCiAgPyBfX3F1ZXVlX3dvcmsrMHg0MWUvMHhiZTAKICBwcm9jZXNzX2Jh Y2tsb2crMHgxOWMvMHg2NTAKICA/IF9yYXdfcmVhZF9sb2NrX2lycSsweDQwLzB4NDAKICBuZXRf cnhfYWN0aW9uKzB4NzFlLzB4YmMwCiAgPyBfX3N3aXRjaF90b19hc20rMHg0MC8weDcwCiAgPyBu YXBpX2NvbXBsZXRlX2RvbmUrMHgzNjAvMHgzNjAKICA/IF9fc3dpdGNoX3RvX2FzbSsweDM0LzB4 NzAKICA/IF9fc3dpdGNoX3RvX2FzbSsweDQwLzB4NzAKICA/IF9fc2NoZWR1bGUrMHg4NWUvMHgx NGQwCiAgX19kb19zb2Z0aXJxKzB4MWRiLzB4NWY5CiAgPyB0YWtlb3Zlcl90YXNrbGV0cysweDVm MC8weDVmMAogIHJ1bl9rc29mdGlycWQrMHgyNi8weDQwCiAgc21wYm9vdF90aHJlYWRfZm4rMHg0 NDMvMHg2ODAKICA/IHNvcnRfcmFuZ2UrMHgyMC8weDIwCiAgPyBzY2hlZHVsZSsweDk0LzB4MjEw CiAgPyBfX2t0aHJlYWRfcGFya21lKzB4NzgvMHhmMAogID8gc29ydF9yYW5nZSsweDIwLzB4MjAK ICBrdGhyZWFkKzB4MmFlLzB4M2EwCiAgPyBrdGhyZWFkX2NyZWF0ZV93b3JrZXJfb25fY3B1KzB4 YzAvMHhjMAogIHJldF9mcm9tX2ZvcmsrMHgzNS8weDQwCgogVGhlIGJ1Z2d5IGFkZHJlc3MgYmVs b25ncyB0byB0aGUgcGFnZToKIHBhZ2U6ZmZmZmVhMDAwMTA4NGMwMCByZWZjb3VudDowIG1hcGNv dW50Oi0xMjggbWFwcGluZzowMDAwMDAwMDAwMDAwMDAwIGluZGV4OjB4MAogZmxhZ3M6IDB4ZmZm ZmMwMDAwMDAwMDAoKQogcmF3OiAwMGZmZmZjMDAwMDAwMDAwIGZmZmZlYTAwMDBjZmNhMDggZmZm ZmVhMDAwMTA5ODYwOCAwMDAwMDAwMDAwMDAwMDAwCiByYXc6IDAwMDAwMDAwMDAwMDAwMDAgMDAw MDAwMDAwMDAwMDAwMyAwMDAwMDAwMGZmZmZmZjdmIDAwMDAwMDAwMDAwMDAwMDAKIHBhZ2UgZHVt cGVkIGJlY2F1c2U6IGthc2FuOiBiYWQgYWNjZXNzIGRldGVjdGVkCgogTWVtb3J5IHN0YXRlIGFy b3VuZCB0aGUgYnVnZ3kgYWRkcmVzczoKIGZmZmY4ODgwNDIxMzAxODA6IGZmIGZmIGZmIGZmIGZm IGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmCiBmZmZmODg4MDQyMTMwMjAwOiBmZiBm ZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZgogPiBmZmZmODg4MDQy MTMwMjgwOiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogZmZmZjg4ODA0MjEzMDMwMDog ZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYKIGZmZmY4ODgw NDIxMzAzODA6IGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZm CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KIERpc2FibGluZyBsb2NrIGRlYnVnZ2luZyBkdWUgdG8ga2VybmVsIHRhaW50 CgpGaXhlczogYmM4YzIwYWNhZWExICgiYnJpZGdlOiBtdWx0aWNhc3Q6IHRyZWF0IGlnbXB2MyBy ZXBvcnQgd2l0aCBJTkNMVURFIGFuZCBubyBzb3VyY2VzIGFzIGEgbGVhdmUiKQpSZXBvcnRlZC1i eTogTWFydGluIFdlaW5lbHQgPG1hcnRpbkBsaW51eGxvdW5nZS5uZXQ+ClNpZ25lZC1vZmYtYnk6 IE5pa29sYXkgQWxla3NhbmRyb3YgPG5pa29sYXlAY3VtdWx1c25ldHdvcmtzLmNvbT4KVGVzdGVk LWJ5OiBNYXJ0aW4gV2VpbmVsdCA8bWFydGluQGxpbnV4bG91bmdlLm5ldD4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9icmlkZ2Uv YnJfbXVsdGljYXN0LmMgfCAyMCArKysrKysrKysrKystLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQs IDEyIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2JyaWRn ZS9icl9tdWx0aWNhc3QuYyBiL25ldC9icmlkZ2UvYnJfbXVsdGljYXN0LmMKaW5kZXggNDVlN2Y0 MTczYmJhLi44MDVkOGU1MmQyMGIgMTAwNjQ0Ci0tLSBhL25ldC9icmlkZ2UvYnJfbXVsdGljYXN0 LmMKKysrIGIvbmV0L2JyaWRnZS9icl9tdWx0aWNhc3QuYwpAQCAtOTM0LDYgKzkzNCw3IEBAIHN0 YXRpYyBpbnQgYnJfaXA0X211bHRpY2FzdF9pZ21wM19yZXBvcnQoc3RydWN0IG5ldF9icmlkZ2Ug KmJyLAogCWludCB0eXBlOwogCWludCBlcnIgPSAwOwogCV9fYmUzMiBncm91cDsKKwl1MTYgbnNy Y3M7CiAKIAlpaCA9IGlnbXB2M19yZXBvcnRfaGRyKHNrYik7CiAJbnVtID0gbnRvaHMoaWgtPm5n cmVjKTsKQEAgLTk0Nyw4ICs5NDgsOSBAQCBzdGF0aWMgaW50IGJyX2lwNF9tdWx0aWNhc3RfaWdt cDNfcmVwb3J0KHN0cnVjdCBuZXRfYnJpZGdlICpiciwKIAkJZ3JlYyA9ICh2b2lkICopKHNrYi0+ ZGF0YSArIGxlbiAtIHNpemVvZigqZ3JlYykpOwogCQlncm91cCA9IGdyZWMtPmdyZWNfbWNhOwog CQl0eXBlID0gZ3JlYy0+Z3JlY190eXBlOworCQluc3JjcyA9IG50b2hzKGdyZWMtPmdyZWNfbnNy Y3MpOwogCi0JCWxlbiArPSBudG9ocyhncmVjLT5ncmVjX25zcmNzKSAqIDQ7CisJCWxlbiArPSBu c3JjcyAqIDQ7CiAJCWlmICghaXBfbWNfbWF5X3B1bGwoc2tiLCBsZW4pKQogCQkJcmV0dXJuIC1F SU5WQUw7CiAKQEAgLTk2OSw3ICs5NzEsNyBAQCBzdGF0aWMgaW50IGJyX2lwNF9tdWx0aWNhc3Rf aWdtcDNfcmVwb3J0KHN0cnVjdCBuZXRfYnJpZGdlICpiciwKIAkJc3JjID0gZXRoX2hkcihza2Ip LT5oX3NvdXJjZTsKIAkJaWYgKCh0eXBlID09IElHTVBWM19DSEFOR0VfVE9fSU5DTFVERSB8fAog CQkgICAgIHR5cGUgPT0gSUdNUFYzX01PREVfSVNfSU5DTFVERSkgJiYKLQkJICAgIG50b2hzKGdy ZWMtPmdyZWNfbnNyY3MpID09IDApIHsKKwkJICAgIG5zcmNzID09IDApIHsKIAkJCWJyX2lwNF9t dWx0aWNhc3RfbGVhdmVfZ3JvdXAoYnIsIHBvcnQsIGdyb3VwLCB2aWQsIHNyYyk7CiAJCX0gZWxz ZSB7CiAJCQllcnIgPSBicl9pcDRfbXVsdGljYXN0X2FkZF9ncm91cChiciwgcG9ydCwgZ3JvdXAs IHZpZCwKQEAgLTEwMDYsNyArMTAwOCw4IEBAIHN0YXRpYyBpbnQgYnJfaXA2X211bHRpY2FzdF9t bGQyX3JlcG9ydChzdHJ1Y3QgbmV0X2JyaWRnZSAqYnIsCiAJbGVuID0gc2tiX3RyYW5zcG9ydF9v ZmZzZXQoc2tiKSArIHNpemVvZigqaWNtcDZoKTsKIAogCWZvciAoaSA9IDA7IGkgPCBudW07IGkr KykgewotCQlfX2JlMTYgKm5zcmNzLCBfbnNyY3M7CisJCV9fYmUxNiAqX25zcmNzLCBfX25zcmNz OworCQl1MTYgbnNyY3M7CiAKIAkJbnNyY3Nfb2Zmc2V0ID0gbGVuICsgb2Zmc2V0b2Yoc3RydWN0 IG1sZDJfZ3JlYywgZ3JlY19uc3Jjcyk7CiAKQEAgLTEwMTQsMTIgKzEwMTcsMTMgQEAgc3RhdGlj IGludCBicl9pcDZfbXVsdGljYXN0X21sZDJfcmVwb3J0KHN0cnVjdCBuZXRfYnJpZGdlICpiciwK IAkJICAgIG5zcmNzX29mZnNldCArIHNpemVvZihfbnNyY3MpKQogCQkJcmV0dXJuIC1FSU5WQUw7 CiAKLQkJbnNyY3MgPSBza2JfaGVhZGVyX3BvaW50ZXIoc2tiLCBuc3Jjc19vZmZzZXQsCi0JCQkJ CSAgIHNpemVvZihfbnNyY3MpLCAmX25zcmNzKTsKLQkJaWYgKCFuc3JjcykKKwkJX25zcmNzID0g c2tiX2hlYWRlcl9wb2ludGVyKHNrYiwgbnNyY3Nfb2Zmc2V0LAorCQkJCQkgICAgc2l6ZW9mKF9f bnNyY3MpLCAmX19uc3Jjcyk7CisJCWlmICghX25zcmNzKQogCQkJcmV0dXJuIC1FSU5WQUw7CiAK LQkJZ3JlY19sZW4gPSBzdHJ1Y3Rfc2l6ZShncmVjLCBncmVjX3NyYywgbnRvaHMoKm5zcmNzKSk7 CisJCW5zcmNzID0gbnRvaHMoKl9uc3Jjcyk7CisJCWdyZWNfbGVuID0gc3RydWN0X3NpemUoZ3Jl YywgZ3JlY19zcmMsIG5zcmNzKTsKIAogCQlpZiAoIWlwdjZfbWNfbWF5X3B1bGwoc2tiLCBsZW4g KyBncmVjX2xlbikpCiAJCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTEwNDQsNyArMTA0OCw3IEBAIHN0 YXRpYyBpbnQgYnJfaXA2X211bHRpY2FzdF9tbGQyX3JlcG9ydChzdHJ1Y3QgbmV0X2JyaWRnZSAq YnIsCiAJCXNyYyA9IGV0aF9oZHIoc2tiKS0+aF9zb3VyY2U7CiAJCWlmICgoZ3JlYy0+Z3JlY190 eXBlID09IE1MRDJfQ0hBTkdFX1RPX0lOQ0xVREUgfHwKIAkJICAgICBncmVjLT5ncmVjX3R5cGUg PT0gTUxEMl9NT0RFX0lTX0lOQ0xVREUpICYmCi0JCSAgICBudG9ocygqbnNyY3MpID09IDApIHsK KwkJICAgIG5zcmNzID09IDApIHsKIAkJCWJyX2lwNl9tdWx0aWNhc3RfbGVhdmVfZ3JvdXAoYnIs IHBvcnQsICZncmVjLT5ncmVjX21jYSwKIAkJCQkJCSAgICAgdmlkLCBzcmMpOwogCQl9IGVsc2Ug ewotLSAKMi4yMC4xCgoKRnJvbSA4YzhkMjkwNzI5OWVmNzY1NGU5OWM3NTlmZmEwODkwNGRjNWRk ZDRlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtvbGF5IEFsZWtzYW5kcm92IDxu aWtvbGF5QGN1bXVsdXNuZXR3b3Jrcy5jb20+CkRhdGU6IFR1ZSwgMiBKdWwgMjAxOSAxNTowMDox OSArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMzIvNDVdIG5ldDogYnJpZGdlOiBtY2FzdDogZml4IHN0 YWxlIGlwdjYgaGRyIHBvaW50ZXIgd2hlbgogaGFuZGxpbmcgdjYgcXVlcnkKClsgVXBzdHJlYW0g Y29tbWl0IDNiMjZhNWQwM2QzNWQ4ZjczMmQ3NTk1MTIxODk4M2MwZjdmNjhkZmYgXQoKV2UgZ2V0 IGEgcG9pbnRlciB0byB0aGUgaXB2NiBoZHIgaW4gYnJfaXA2X211bHRpY2FzdF9xdWVyeSBidXQg d2UgbWF5CmNhbGwgcHNrYl9tYXlfcHVsbCBhZnRlcndhcmRzIGFuZCBlbmQgdXAgdXNpbmcgYSBz dGFsZSBwb2ludGVyLgpTbyB1c2UgdGhlIGhlYWRlciBkaXJlY3RseSwgaXQncyBqdXN0IDEgcGxh Y2Ugd2hlcmUgaXQncyBuZWVkZWQuCgpGaXhlczogMDhiMjAyYjY3MjY0ICgiYnJpZGdlIGJyX211 bHRpY2FzdDogSVB2NiBNTEQgc3VwcG9ydC4iKQpTaWduZWQtb2ZmLWJ5OiBOaWtvbGF5IEFsZWtz YW5kcm92IDxuaWtvbGF5QGN1bXVsdXNuZXR3b3Jrcy5jb20+ClRlc3RlZC1ieTogTWFydGluIFdl aW5lbHQgPG1hcnRpbkBsaW51eGxvdW5nZS5uZXQ+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvYnJpZGdlL2JyX211bHRpY2FzdC5j IHwgMyArLS0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9uZXQvYnJpZGdlL2JyX211bHRpY2FzdC5jIGIvbmV0L2JyaWRnZS9icl9t dWx0aWNhc3QuYwppbmRleCA4MDVkOGU1MmQyMGIuLjBlZjQwOTIyMDJkMCAxMDA2NDQKLS0tIGEv bmV0L2JyaWRnZS9icl9tdWx0aWNhc3QuYworKysgYi9uZXQvYnJpZGdlL2JyX211bHRpY2FzdC5j CkBAIC0xMzAyLDcgKzEzMDIsNiBAQCBzdGF0aWMgaW50IGJyX2lwNl9tdWx0aWNhc3RfcXVlcnko c3RydWN0IG5ldF9icmlkZ2UgKmJyLAogCQkJCSAgdTE2IHZpZCkKIHsKIAl1bnNpZ25lZCBpbnQg dHJhbnNwb3J0X2xlbiA9IGlwdjZfdHJhbnNwb3J0X2xlbihza2IpOwotCWNvbnN0IHN0cnVjdCBp cHY2aGRyICppcDZoID0gaXB2Nl9oZHIoc2tiKTsKIAlzdHJ1Y3QgbWxkX21zZyAqbWxkOwogCXN0 cnVjdCBuZXRfYnJpZGdlX21kYl9lbnRyeSAqbXA7CiAJc3RydWN0IG1sZDJfcXVlcnkgKm1sZDJx OwpAQCAtMTM0Niw3ICsxMzQ1LDcgQEAgc3RhdGljIGludCBicl9pcDZfbXVsdGljYXN0X3F1ZXJ5 KHN0cnVjdCBuZXRfYnJpZGdlICpiciwKIAogCWlmIChpc19nZW5lcmFsX3F1ZXJ5KSB7CiAJCXNh ZGRyLnByb3RvID0gaHRvbnMoRVRIX1BfSVBWNik7Ci0JCXNhZGRyLnUuaXA2ID0gaXA2aC0+c2Fk ZHI7CisJCXNhZGRyLnUuaXA2ID0gaXB2Nl9oZHIoc2tiKS0+c2FkZHI7CiAKIAkJYnJfbXVsdGlj YXN0X3F1ZXJ5X3JlY2VpdmVkKGJyLCBwb3J0LCAmYnItPmlwNl9vdGhlcl9xdWVyeSwKIAkJCQkJ ICAgICZzYWRkciwgbWF4X2RlbGF5KTsKLS0gCjIuMjAuMQoKCkZyb20gN2Q2N2ZlNzEwN2Q5MWUw YmFhZTI3ODJkYzVlMGRlZjlmNWVhNzZmZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog Tmlrb2xheSBBbGVrc2FuZHJvdiA8bmlrb2xheUBjdW11bHVzbmV0d29ya3MuY29tPgpEYXRlOiBU dWUsIDIgSnVsIDIwMTkgMTU6MDA6MjAgKzAzMDAKU3ViamVjdDogW1BBVENIIDMzLzQ1XSBuZXQ6 IGJyaWRnZTogZG9uJ3QgY2FjaGUgZXRoZXIgZGVzdCBwb2ludGVyIG9uIGlucHV0CgpbIFVwc3Ry ZWFtIGNvbW1pdCAzZDI2ZWI4YWQxZTliOTA2NDMzOTAzY2UwNWY3NzVjZjAzOGU3NDdmIF0KCldl IHdvdWxkIGNhY2hlIGV0aGVyIGRzdCBwb2ludGVyIG9uIGlucHV0IGluIGJyX2hhbmRsZV9mcmFt ZV9maW5pc2ggYnV0CmFmdGVyIHRoZSBuZWlnaCBzdXBwcmVzcyBjb2RlIHRoYXQgY291bGQgbGVh ZCB0byBhIHN0YWxlIHBvaW50ZXIgc2luY2UKYm90aCBpcHY0IGFuZCBpcHY2IHN1cHByZXNzIGNv ZGUgZG8gcHNrYl9tYXlfcHVsbC4gVGhpcyBtZWFucyB3ZSBoYXZlIHRvCmFsd2F5cyByZWxvYWQg aXQgYWZ0ZXIgdGhlIHN1cHByZXNzIGNvZGUgc28gdGhlcmUncyBubyBwb2ludCBpbiBoYXZpbmcK aXQgY2FjaGVkIGp1c3QgcmV0cmlldmUgaXQgZGlyZWN0bHkuCgpGaXhlczogMDU3NjU4Y2IzM2Zi ZiAoImJyaWRnZTogc3VwcHJlc3MgYXJwIHBrdHMgb24gQlJfTkVJR0hfU1VQUFJFU1MgcG9ydHMi KQpGaXhlczogZWQ4NDJmYWViMmJkICgiYnJpZGdlOiBzdXBwcmVzcyBuZCBwa3RzIG9uIEJSX05F SUdIX1NVUFBSRVNTIHBvcnRzIikKU2lnbmVkLW9mZi1ieTogTmlrb2xheSBBbGVrc2FuZHJvdiA8 bmlrb2xheUBjdW11bHVzbmV0d29ya3MuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2JyaWRnZS9icl9pbnB1dC5jIHwgOCAr KystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9uZXQvYnJpZGdlL2JyX2lucHV0LmMgYi9uZXQvYnJpZGdlL2JyX2lucHV0 LmMKaW5kZXggYmEzMDNlZTk5YjliLi42YTlmNDgzMjJiYjkgMTAwNjQ0Ci0tLSBhL25ldC9icmlk Z2UvYnJfaW5wdXQuYworKysgYi9uZXQvYnJpZGdlL2JyX2lucHV0LmMKQEAgLTc5LDcgKzc5LDYg QEAgaW50IGJyX2hhbmRsZV9mcmFtZV9maW5pc2goc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc29j ayAqc2ssIHN0cnVjdCBza19idWZmICpza2IKIAlzdHJ1Y3QgbmV0X2JyaWRnZV9mZGJfZW50cnkg KmRzdCA9IE5VTEw7CiAJc3RydWN0IG5ldF9icmlkZ2VfbWRiX2VudHJ5ICptZHN0OwogCWJvb2wg bG9jYWxfcmN2LCBtY2FzdF9oaXQgPSBmYWxzZTsKLQljb25zdCB1bnNpZ25lZCBjaGFyICpkZXN0 OwogCXN0cnVjdCBuZXRfYnJpZGdlICpicjsKIAl1MTYgdmlkID0gMDsKIApAQCAtOTcsMTAgKzk2 LDkgQEAgaW50IGJyX2hhbmRsZV9mcmFtZV9maW5pc2goc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qg c29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IKIAkJYnJfZmRiX3VwZGF0ZShiciwgcCwgZXRo X2hkcihza2IpLT5oX3NvdXJjZSwgdmlkLCBmYWxzZSk7CiAKIAlsb2NhbF9yY3YgPSAhIShici0+ ZGV2LT5mbGFncyAmIElGRl9QUk9NSVNDKTsKLQlkZXN0ID0gZXRoX2hkcihza2IpLT5oX2Rlc3Q7 Ci0JaWYgKGlzX211bHRpY2FzdF9ldGhlcl9hZGRyKGRlc3QpKSB7CisJaWYgKGlzX211bHRpY2Fz dF9ldGhlcl9hZGRyKGV0aF9oZHIoc2tiKS0+aF9kZXN0KSkgewogCQkvKiBieSBkZWZpbml0aW9u IHRoZSBicm9hZGNhc3QgaXMgYWxzbyBhIG11bHRpY2FzdCBhZGRyZXNzICovCi0JCWlmIChpc19i cm9hZGNhc3RfZXRoZXJfYWRkcihkZXN0KSkgeworCQlpZiAoaXNfYnJvYWRjYXN0X2V0aGVyX2Fk ZHIoZXRoX2hkcihza2IpLT5oX2Rlc3QpKSB7CiAJCQlwa3RfdHlwZSA9IEJSX1BLVF9CUk9BRENB U1Q7CiAJCQlsb2NhbF9yY3YgPSB0cnVlOwogCQl9IGVsc2UgewpAQCAtMTUwLDcgKzE0OCw3IEBA IGludCBicl9oYW5kbGVfZnJhbWVfZmluaXNoKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNvY2sg KnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiCiAJCX0KIAkJYnJlYWs7CiAJY2FzZSBCUl9QS1RfVU5J Q0FTVDoKLQkJZHN0ID0gYnJfZmRiX2ZpbmRfcmN1KGJyLCBkZXN0LCB2aWQpOworCQlkc3QgPSBi cl9mZGJfZmluZF9yY3UoYnIsIGV0aF9oZHIoc2tiKS0+aF9kZXN0LCB2aWQpOwogCWRlZmF1bHQ6 CiAJCWJyZWFrOwogCX0KLS0gCjIuMjAuMQoKCkZyb20gOGQzN2VlMGI5NDgyMTRjMGEyYzUxZmY3 ZDc4ZWYwNGQ0OGFjMWNhZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTmlrb2xheSBB bGVrc2FuZHJvdiA8bmlrb2xheUBjdW11bHVzbmV0d29ya3MuY29tPgpEYXRlOiBUdWUsIDIgSnVs IDIwMTkgMTU6MDA6MjEgKzAzMDAKU3ViamVjdDogW1BBVENIIDM0LzQ1XSBuZXQ6IGJyaWRnZTog c3RwOiBkb24ndCBjYWNoZSBldGggZGVzdCBwb2ludGVyIGJlZm9yZQogc2tiIHB1bGwKClsgVXBz dHJlYW0gY29tbWl0IDI0NDZhNjhhZTZhOGNlZTZkNDgwZTJmNWI1MmY1MDA3YzdjNDEzMTIgXQoK RG9uJ3QgY2FjaGUgZXRoIGRlc3QgcG9pbnRlciBiZWZvcmUgY2FsbGluZyBwc2tiX21heV9wdWxs LgoKRml4ZXM6IGNmMGYwMmQwNGE4MyAoIltCUklER0VdOiB1c2UgbGxjIGZvciByZWNlaXZpbmcg U1RQIHBhY2tldHMiKQpTaWduZWQtb2ZmLWJ5OiBOaWtvbGF5IEFsZWtzYW5kcm92IDxuaWtvbGF5 QGN1bXVsdXNuZXR3b3Jrcy5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvYnJpZGdlL2JyX3N0cF9icGR1LmMgfCAzICstLQog MSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL25ldC9icmlkZ2UvYnJfc3RwX2JwZHUuYyBiL25ldC9icmlkZ2UvYnJfc3RwX2JwZHUuYwpp bmRleCAxYjc1ZDZiZjEyYmQuLjM3ZGRjZWEzZmM5NiAxMDA2NDQKLS0tIGEvbmV0L2JyaWRnZS9i cl9zdHBfYnBkdS5jCisrKyBiL25ldC9icmlkZ2UvYnJfc3RwX2JwZHUuYwpAQCAtMTQ3LDcgKzE0 Nyw2IEBAIHZvaWQgYnJfc2VuZF90Y25fYnBkdShzdHJ1Y3QgbmV0X2JyaWRnZV9wb3J0ICpwKQog dm9pZCBicl9zdHBfcmN2KGNvbnN0IHN0cnVjdCBzdHBfcHJvdG8gKnByb3RvLCBzdHJ1Y3Qgc2tf YnVmZiAqc2tiLAogCQlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogewotCWNvbnN0IHVuc2lnbmVk IGNoYXIgKmRlc3QgPSBldGhfaGRyKHNrYiktPmhfZGVzdDsKIAlzdHJ1Y3QgbmV0X2JyaWRnZV9w b3J0ICpwOwogCXN0cnVjdCBuZXRfYnJpZGdlICpicjsKIAljb25zdCB1bnNpZ25lZCBjaGFyICpi dWY7CkBAIC0xNzYsNyArMTc1LDcgQEAgdm9pZCBicl9zdHBfcmN2KGNvbnN0IHN0cnVjdCBzdHBf cHJvdG8gKnByb3RvLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCWlmIChwLT5zdGF0ZSA9PSBCUl9T VEFURV9ESVNBQkxFRCkKIAkJZ290byBvdXQ7CiAKLQlpZiAoIWV0aGVyX2FkZHJfZXF1YWwoZGVz dCwgYnItPmdyb3VwX2FkZHIpKQorCWlmICghZXRoZXJfYWRkcl9lcXVhbChldGhfaGRyKHNrYikt PmhfZGVzdCwgYnItPmdyb3VwX2FkZHIpKQogCQlnb3RvIG91dDsKIAogCWlmIChwLT5mbGFncyAm IEJSX0JQRFVfR1VBUkQpIHsKLS0gCjIuMjAuMQoKCkZyb20gODI2ZTcxNGMyNWUxMWNmMjYyMmFm NDQzMWIxNjExYThmZmZkYTc3NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQW5kcmVh cyBTdGVpbm1ldHogPGFzdEBkb21kdi5kZT4KRGF0ZTogU3VuLCAzMCBKdW4gMjAxOSAyMjo0Njo0 MiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMzUvNDVdIG1hY3NlYzogZml4IHVzZS1hZnRlci1mcmVl IG9mIHNrYiBkdXJpbmcgUlgKClsgVXBzdHJlYW0gY29tbWl0IDA5NWMwMmRhODBhNDFjZjZkMzEx YzUwNGQ4OTU1ZDZkMWMyYWRkMTAgXQoKRml4IHVzZS1hZnRlci1mcmVlIG9mIHNrYiB3aGVuIHJ4 X2hhbmRsZXIgcmV0dXJucyBSWF9IQU5ETEVSX1BBU1MuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZWFz IFN0ZWlubWV0eiA8YXN0QGRvbWR2LmRlPgpBY2tlZC1ieTogV2lsbGVtIGRlIEJydWlqbiA8d2ls bGVtYkBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvbWFjc2VjLmMgfCA1ICsrLS0tCiAxIGZpbGUg Y2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L21hY3NlYy5jIGIvZHJpdmVycy9uZXQvbWFjc2VjLmMKaW5kZXggNjRhOTgyNTYz ZDU5Li5kZjg2YmNiN2JjMmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L21hY3NlYy5jCisrKyBi L2RyaXZlcnMvbmV0L21hY3NlYy5jCkBAIC0xMTAzLDEwICsxMTAzLDkgQEAgc3RhdGljIHJ4X2hh bmRsZXJfcmVzdWx0X3QgbWFjc2VjX2hhbmRsZV9mcmFtZShzdHJ1Y3Qgc2tfYnVmZiAqKnBza2Ip CiAJfQogCiAJc2tiID0gc2tiX3Vuc2hhcmUoc2tiLCBHRlBfQVRPTUlDKTsKLQlpZiAoIXNrYikg ewotCQkqcHNrYiA9IE5VTEw7CisJKnBza2IgPSBza2I7CisJaWYgKCFza2IpCiAJCXJldHVybiBS WF9IQU5ETEVSX0NPTlNVTUVEOwotCX0KIAogCXB1bGxlZF9zY2kgPSBwc2tiX21heV9wdWxsKHNr YiwgbWFjc2VjX2V4dHJhX2xlbih0cnVlKSk7CiAJaWYgKCFwdWxsZWRfc2NpKSB7Ci0tIAoyLjIw LjEKCgpGcm9tIDE2MDA4YzI4MGU1YTc4OTQ4YTY2MWFjNGY3MDFkMGQxNTk0MjUwYzQgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFuZHJlYXMgU3RlaW5tZXR6IDxhc3RAZG9tZHYuZGU+ CkRhdGU6IFN1biwgMzAgSnVuIDIwMTkgMjI6NDY6NDUgKzAyMDAKU3ViamVjdDogW1BBVENIIDM2 LzQ1XSBtYWNzZWM6IGZpeCBjaGVja3N1bW1pbmcgYWZ0ZXIgZGVjcnlwdGlvbgoKWyBVcHN0cmVh bSBjb21taXQgN2Q4YjE2YjlmYWNiMGRkODFkMTQ2OTgwOGRkOWE1NzVmYTFkNTI1YSBdCgpGaXgg Y2hlY2tzdW1taW5nIGFmdGVyIGRlY3J5cHRpb24uCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIFN0 ZWlubWV0eiA8YXN0QGRvbWR2LmRlPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvbWFjc2VjLmMgfCAxICsKIDEgZmls ZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L21hY3Nl Yy5jIGIvZHJpdmVycy9uZXQvbWFjc2VjLmMKaW5kZXggZGY4NmJjYjdiYzJlLi5iYjY1ZWFjY2Jm YWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L21hY3NlYy5jCisrKyBiL2RyaXZlcnMvbmV0L21h Y3NlYy5jCkBAIC04NjksNiArODY5LDcgQEAgc3RhdGljIHZvaWQgbWFjc2VjX3Jlc2V0X3NrYihz dHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCiBzdGF0aWMgdm9p ZCBtYWNzZWNfZmluYWxpemVfc2tiKHN0cnVjdCBza19idWZmICpza2IsIHU4IGljdl9sZW4sIHU4 IGhkcl9sZW4pCiB7CisJc2tiLT5pcF9zdW1tZWQgPSBDSEVDS1NVTV9OT05FOwogCW1lbW1vdmUo c2tiLT5kYXRhICsgaGRyX2xlbiwgc2tiLT5kYXRhLCAyICogRVRIX0FMRU4pOwogCXNrYl9wdWxs KHNrYiwgaGRyX2xlbik7CiAJcHNrYl90cmltX3VuaXF1ZShza2IsIHNrYi0+bGVuIC0gaWN2X2xl bik7Ci0tIAoyLjIwLjEKCgpGcm9tIGVhMDdiN2E5NTJjNDRmMjYxZDA5MTliNDU1NGM4NjFjZDJk Y2MxODMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENvbmcgV2FuZyA8eGl5b3Uud2Fu Z2NvbmdAZ21haWwuY29tPgpEYXRlOiBUaHUsIDI3IEp1biAyMDE5IDE0OjMwOjU4IC0wNzAwClN1 YmplY3Q6IFtQQVRDSCAzNy80NV0gbmV0cm9tOiBmaXggYSBtZW1vcnkgbGVhayBpbiBucl9yeF9m cmFtZSgpCgpbIFVwc3RyZWFtIGNvbW1pdCBjOGM4MjE4ZWM1YWY1ZDI1OTgzODE4ODNhY2JlZmJm NjA0ZTU2YjVlIF0KCldoZW4gdGhlIHNrYiBpcyBhc3NvY2lhdGVkIHdpdGggYSBuZXcgc29jaywg anVzdCBhc3NpZ25pbmcKaXQgdG8gc2tiLT5zayBpcyBub3Qgc3VmZmljaWVudCwgd2UgaGF2ZSB0 byBzZXQgaXRzIGRlc3RydWN0b3IKdG8gZnJlZSB0aGUgc29jayBwcm9wZXJseSB0b28uCgpSZXBv cnRlZC1ieTogc3l6Ym90K2Q2NjM2YTM2ZDNjMzRiZDg4OTM4QHN5emthbGxlci5hcHBzcG90bWFp bC5jb20KU2lnbmVkLW9mZi1ieTogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBuZXQvbmV0cm9tL2FmX25ldHJvbS5jIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2Vy dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvbmV0cm9tL2FmX25ldHJv bS5jIGIvbmV0L25ldHJvbS9hZl9uZXRyb20uYwppbmRleCA3MWZmZDFhNmRjN2MuLmYxMWI2NzQ3 ZTE4YyAxMDA2NDQKLS0tIGEvbmV0L25ldHJvbS9hZl9uZXRyb20uYworKysgYi9uZXQvbmV0cm9t L2FmX25ldHJvbS5jCkBAIC04NzIsNyArODcyLDcgQEAgaW50IG5yX3J4X2ZyYW1lKHN0cnVjdCBz a19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJdW5zaWduZWQgc2hvcnQgZnJh bWV0eXBlLCBmbGFncywgd2luZG93LCB0aW1lb3V0OwogCWludCByZXQ7CiAKLQlza2ItPnNrID0g TlVMTDsJCS8qIEluaXRpYWxseSB3ZSBkb24ndCBrbm93IHdobyBpdCdzIGZvciAqLworCXNrYl9v cnBoYW4oc2tiKTsKIAogCS8qCiAJICoJc2tiLT5kYXRhIHBvaW50cyB0byB0aGUgbmV0cm9tIGZy YW1lIHN0YXJ0CkBAIC05NzEsNiArOTcxLDcgQEAgaW50IG5yX3J4X2ZyYW1lKHN0cnVjdCBza19i dWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJd2luZG93ID0gc2tiLT5kYXRhWzIw XTsKIAogCXNrYi0+c2sgICAgICAgICAgICAgPSBtYWtlOworCXNrYi0+ZGVzdHJ1Y3RvciAgICAg PSBzb2NrX2VmcmVlOwogCW1ha2UtPnNrX3N0YXRlCSAgICA9IFRDUF9FU1RBQkxJU0hFRDsKIAog CS8qIEZpbGwgaW4gaGlzIGNpcmN1aXQgZGV0YWlscyAqLwotLSAKMi4yMC4xCgoKRnJvbSAyMzJj NjQ3YTFkY2VhOTFiNzY0MDc1OTJkYjFjZTgzOWM2ZmFmNzY1IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KRGF0ZTogTW9u LCAyMiBKdWwgMjAxOSAyMDo0MToyMiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMzgvNDVdIG5ldHJv bTogaG9sZCBzb2NrIHdoZW4gc2V0dGluZyBza2ItPmRlc3RydWN0b3IKClsgVXBzdHJlYW0gY29t bWl0IDQ2MzhmYWFjMDMyNzU2ZjdlYWI1NTI0YmU3YmU1NmJlZTc3ZTQyNmIgXQoKc29ja19lZnJl ZSgpIHJlbGVhc2VzIHRoZSBzb2NrIHJlZmNudCwgaWYgd2UgZG9uJ3QgaG9sZCB0aGlzIHJlZmNu dAp3aGVuIHNldHRpbmcgc2tiLT5kZXN0cnVjdG9yIHRvIGl0LCB0aGUgcmVmY250IHdvdWxkIG5v dCBiZSBiYWxhbmNlZC4KVGhpcyBsZWFkcyB0byBzZXZlcmFsIGJ1ZyByZXBvcnRzIGZyb20gc3l6 Ym90LgoKSSBoYXZlIGNoZWNrZWQgb3RoZXIgdXNlcnMgb2Ygc29ja19lZnJlZSgpLCBhbGwgb2Yg dGhlbSBob2xkIHRoZQpzb2NrIHJlZmNudC4KCkZpeGVzOiBjOGM4MjE4ZWM1YWYgKCJuZXRyb206 IGZpeCBhIG1lbW9yeSBsZWFrIGluIG5yX3J4X2ZyYW1lKCkiKQpSZXBvcnRlZC1hbmQtdGVzdGVk LWJ5OiA8c3l6Ym90KzYyMmJkYWJiMTI4YWNjMzM0MjdkQHN5emthbGxlci5hcHBzcG90bWFpbC5j b20+ClJlcG9ydGVkLWFuZC10ZXN0ZWQtYnk6IDxzeXpib3QrNmVhZWY3MTU4YjE5ZTNmZWMzYTBA c3l6a2FsbGVyLmFwcHNwb3RtYWlsLmNvbT4KUmVwb3J0ZWQtYW5kLXRlc3RlZC1ieTogPHN5emJv dCs5Mzk5YzE1OGZjYzA5YjIxZDBkMkBzeXprYWxsZXIuYXBwc3BvdG1haWwuY29tPgpSZXBvcnRl ZC1hbmQtdGVzdGVkLWJ5OiA8c3l6Ym90K2EzNGU1ZjNkMDMwMDE2M2YwYzg3QHN5emthbGxlci5h cHBzcG90bWFpbC5jb20+CkNjOiBSYWxmIEJhZWNobGUgPHJhbGZAbGludXgtbWlwcy5vcmc+ClNp Z25lZC1vZmYtYnk6IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L25l dHJvbS9hZl9uZXRyb20uYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpk aWZmIC0tZ2l0IGEvbmV0L25ldHJvbS9hZl9uZXRyb20uYyBiL25ldC9uZXRyb20vYWZfbmV0cm9t LmMKaW5kZXggZjExYjY3NDdlMThjLi40MzkxMGU1MDc1MmMgMTAwNjQ0Ci0tLSBhL25ldC9uZXRy b20vYWZfbmV0cm9tLmMKKysrIGIvbmV0L25ldHJvbS9hZl9uZXRyb20uYwpAQCAtOTcwLDYgKzk3 MCw3IEBAIGludCBucl9yeF9mcmFtZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2KQogCiAJd2luZG93ID0gc2tiLT5kYXRhWzIwXTsKIAorCXNvY2tfaG9sZChtYWtl KTsKIAlza2ItPnNrICAgICAgICAgICAgID0gbWFrZTsKIAlza2ItPmRlc3RydWN0b3IgICAgID0g c29ja19lZnJlZTsKIAltYWtlLT5za19zdGF0ZQkgICAgPSBUQ1BfRVNUQUJMSVNIRUQ7Ci0tIAoy LjIwLjEKCgpGcm9tIDc5YThmZTg0YzYyODQwYWQzMjA3YWU4ODNmYWMwOGEzY2NhN2E2ZDIgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEZyYW5rIGRlIEJyYWJhbmRlciA8ZGVicmFiYW5k ZXJAZ21haWwuY29tPgpEYXRlOiBGcmksIDUgSnVsIDIwMTkgMTM6NDM6MTQgKzAyMDAKU3ViamVj dDogW1BBVENIIDM5LzQ1XSBzZWxmdGVzdHM6IHR4cmluZ19vdmVyd3JpdGU6IGZpeCBpbmNvcnJl Y3QgdGVzdCBvZgogbW1hcCgpIHJldHVybiB2YWx1ZQoKWyBVcHN0cmVhbSBjb21taXQgY2VjYWE3 NmIyOTE5YWFjMmFhNTg0Y2U0NzZlOWZjZDViMDg0YWRkNSBdCgpJZiBtbWFwKCkgZmFpbHMgaXQg cmV0dXJucyBNQVBfRkFJTEVELCB3aGljaCBpcyBkZWZpbmVkIGFzICgodm9pZCAqKSAtMSkuClRo ZSBjdXJyZW50IGlmLXN0YXRlbWVudCBpbmNvcnJlY3RseSB0ZXN0cyBpZiAqcmluZyBpcyBOVUxM LgoKRml4ZXM6IDM1OGJlNjU2NDA2ZCAoInNlbGZ0ZXN0cy9uZXQ6IGFkZCB0eHJpbmdfb3Zlcndy aXRlIikKU2lnbmVkLW9mZi1ieTogRnJhbmsgZGUgQnJhYmFuZGVyIDxkZWJyYWJhbmRlckBnbWFp bC5jb20+CkFja2VkLWJ5OiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1iQGdvb2dsZS5jb20+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiB0 b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvdHhyaW5nX292ZXJ3cml0ZS5jIHwgMiArLQogMSBm aWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEv dG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3R4cmluZ19vdmVyd3JpdGUuYyBiL3Rvb2xzL3Rl c3Rpbmcvc2VsZnRlc3RzL25ldC90eHJpbmdfb3ZlcndyaXRlLmMKaW5kZXggZmQ4YjFjNjYzYzM5 Li43ZDllYTAzOTQ1MGEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC90 eHJpbmdfb3ZlcndyaXRlLmMKKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3R4cmlu Z19vdmVyd3JpdGUuYwpAQCAtMTEzLDcgKzExMyw3IEBAIHN0YXRpYyBpbnQgc2V0dXBfdHgoY2hh ciAqKnJpbmcpCiAKIAkqcmluZyA9IG1tYXAoMCwgcmVxLnRwX2Jsb2NrX3NpemUgKiByZXEudHBf YmxvY2tfbnIsCiAJCSAgICAgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwgTUFQX1NIQVJFRCwgZmR0 LCAwKTsKLQlpZiAoISpyaW5nKQorCWlmICgqcmluZyA9PSBNQVBfRkFJTEVEKQogCQllcnJvcigx LCBlcnJubywgIm1tYXAiKTsKIAogCXJldHVybiBmZHQ7Ci0tIAoyLjIwLjEKCgpGcm9tIGNiZWY5 YjU2NDFkNmI3YWVkYzViYmViNDEwNGJjZWMzYWM3OTdkNjcgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUuY29tPgpE YXRlOiBUaHUsIDQgSnVsIDIwMTkgMTQ6NTA6MzYgLTA3MDAKU3ViamVjdDogW1BBVENIIDQwLzQ1 XSBuZXQvdGxzOiBmaXggcG9sbCBpZ25vcmluZyBwYXJ0aWFsbHkgY29waWVkIHJlY29yZHMKClsg VXBzdHJlYW0gY29tbWl0IDEzYWVjYjE3YWNhYmMyYTkyMTg3ZDA4ZjdjYTkzYmI4YWFkNjJjNmYg XQoKRGF2aWQgcmVwb3J0cyB0aGF0IFJQQyBhcHBsaWNhdGlvbnMgd2hpY2ggdXNlIGVwb2xsKCkg b2NjYXNpb25hbGx5CmdldCBzdHVjaywgYW5kIHRoYXQgVExTIFVMUCBjYXVzZXMgdGhlIGtlcm5l bCB0byBub3Qgd2FrZSBhcHBsaWNhdGlvbnMsCmV2ZW4gdGhvdWdoIHJlYWQoKSB3aWxsIHJldHVy biBkYXRhLgoKVGhpcyBpcyBpbmRlZWQgdHJ1ZS4gVGhlIGN0eC0+cnhfbGlzdCB3aGljaCBob2xk cyBwYXJ0aWFsbHkgY29waWVkCnJlY29yZHMgaXMgbm90IGNvbnN1bHRlZCB3aGVuIGRlY2lkaW5n IHdoZXRoZXIgc29ja2V0IGlzIHJlYWRhYmxlLgoKTm90ZSB0aGF0IFNPX1JDVkxPV0FUIHdpdGgg ZXBvbGwoKSBpcyBhbmQgaGFzIGFsd2F5cyBiZWVuIGJyb2tlbiBmb3IKa2VybmVsIFRMUy4gV2Un ZCBuZWVkIHRvIHBhcnNlIGFsbCByZWNvcmRzIGZyb20gdGhlIFRDUCBsYXllciwgaW5zdGVhZApv ZiBqdXN0IHRoZSBmaXJzdCBvbmUuCgpGaXhlczogNjkyZDdiNWQxZjkxICgidGxzOiBGaXggcmVj dm1zZygpIHRvIGJlIGFibGUgdG8gcGVlayBhY3Jvc3MgbXVsdGlwbGUgcmVjb3JkcyIpClJlcG9y dGVkLWJ5OiBEYXZpZCBCZWNrZXR0IDxkYXZpZC5iZWNrZXR0QG5ldHJvbm9tZS5jb20+ClNpZ25l ZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUuY29tPgpS ZXZpZXdlZC1ieTogRGlyayB2YW4gZGVyIE1lcndlIDxkaXJrLnZhbmRlcm1lcndlQG5ldHJvbm9t ZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBuZXQvdGxzL3Rsc19zdy5jIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2Vy dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvdGxzL3Rsc19zdy5jIGIv bmV0L3Rscy90bHNfc3cuYwppbmRleCA0MWUxN2VkMGM5NGUuLmZkOTMxMjk0ZjY2ZiAxMDA2NDQK LS0tIGEvbmV0L3Rscy90bHNfc3cuYworKysgYi9uZXQvdGxzL3Rsc19zdy5jCkBAIC0xOTMxLDcg KzE5MzEsOCBAQCBib29sIHRsc19zd19zdHJlYW1fcmVhZChjb25zdCBzdHJ1Y3Qgc29jayAqc2sp CiAJCWluZ3Jlc3NfZW1wdHkgPSBsaXN0X2VtcHR5KCZwc29jay0+aW5ncmVzc19tc2cpOwogCXJj dV9yZWFkX3VubG9jaygpOwogCi0JcmV0dXJuICFpbmdyZXNzX2VtcHR5IHx8IGN0eC0+cmVjdl9w a3Q7CisJcmV0dXJuICFpbmdyZXNzX2VtcHR5IHx8IGN0eC0+cmVjdl9wa3QgfHwKKwkJIXNrYl9x dWV1ZV9lbXB0eSgmY3R4LT5yeF9saXN0KTsKIH0KIAogc3RhdGljIGludCB0bHNfcmVhZF9zaXpl KHN0cnVjdCBzdHJwYXJzZXIgKnN0cnAsIHN0cnVjdCBza19idWZmICpza2IpCi0tIAoyLjIwLjEK CgpGcm9tIDc4MDVkYmZmMjRkMDA2YzU0ZmZmMmNmOTMwM2ZkZjVmYmRiNWMwYzYgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRy b25vbWUuY29tPgpEYXRlOiBGcmksIDI4IEp1biAyMDE5IDE2OjA3OjU5IC0wNzAwClN1YmplY3Q6 IFtQQVRDSCA0MS80NV0gbmV0L3RsczogcmVqZWN0IG9mZmxvYWQgb2YgVExTIDEuMwoKWyBVcHN0 cmVhbSBjb21taXQgNjE4YmFjNDU5MzdhM2RjNjEyNmFjMDY1Mjc0NzQ4MWU5NzAwMGY5OSBdCgpO ZWl0aGVyIGRyaXZlcnMgbm9yIHRoZSB0bHMgb2ZmbG9hZCBjb2RlIGN1cnJlbnRseSBzdXBwb3J0 cyBUTFMKdmVyc2lvbiAxLjMuIENoZWNrIHRoZSBUTFMgdmVyc2lvbiB3aGVuIGluc3RhbGxpbmcg Y29ubmVjdGlvbgpzdGF0ZS4gVExTIDEuMyB3aWxsIGp1c3QgZmFsbGJhY2sgdG8gdGhlIGtlcm5l bCBjcnlwdG8gZm9yIG5vdy4KCkZpeGVzOiAxMzBiMzkyYzZjZDYgKCJuZXQ6IHRsczogQWRkIHRs cyAxLjMgc3VwcG9ydCIpClNpZ25lZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNp bnNraUBuZXRyb25vbWUuY29tPgpSZXZpZXdlZC1ieTogRGlyayB2YW4gZGVyIE1lcndlIDxkaXJr LnZhbmRlcm1lcndlQG5ldHJvbm9tZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvdGxzL3Rsc19kZXZpY2UuYyB8IDggKysr KysrKysKIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQv dGxzL3Rsc19kZXZpY2UuYyBiL25ldC90bHMvdGxzX2RldmljZS5jCmluZGV4IGY2ZTI1OGUzNzYx MS4uZmRjZjE4Yzc4YmI1IDEwMDY0NAotLS0gYS9uZXQvdGxzL3Rsc19kZXZpY2UuYworKysgYi9u ZXQvdGxzL3Rsc19kZXZpY2UuYwpAQCAtNzQ2LDYgKzc0NiwxMSBAQCBpbnQgdGxzX3NldF9kZXZp Y2Vfb2ZmbG9hZChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCB0bHNfY29udGV4dCAqY3R4KQogCX0K IAogCWNyeXB0b19pbmZvID0gJmN0eC0+Y3J5cHRvX3NlbmQuaW5mbzsKKwlpZiAoY3J5cHRvX2lu Zm8tPnZlcnNpb24gIT0gVExTXzFfMl9WRVJTSU9OKSB7CisJCXJjID0gLUVPUE5PVFNVUFA7CisJ CWdvdG8gZnJlZV9vZmZsb2FkX2N0eDsKKwl9CisKIAlzd2l0Y2ggKGNyeXB0b19pbmZvLT5jaXBo ZXJfdHlwZSkgewogCWNhc2UgVExTX0NJUEhFUl9BRVNfR0NNXzEyODoKIAkJbm9uY2Vfc2l6ZSA9 IFRMU19DSVBIRVJfQUVTX0dDTV8xMjhfSVZfU0laRTsKQEAgLTg4MCw2ICs4ODUsOSBAQCBpbnQg dGxzX3NldF9kZXZpY2Vfb2ZmbG9hZF9yeChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCB0bHNfY29u dGV4dCAqY3R4KQogCXN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXY7CiAJaW50IHJjID0gMDsKIAor CWlmIChjdHgtPmNyeXB0b19yZWN2LmluZm8udmVyc2lvbiAhPSBUTFNfMV8yX1ZFUlNJT04pCisJ CXJldHVybiAtRU9QTk9UU1VQUDsKKwogCS8qIFdlIHN1cHBvcnQgc3RhcnRpbmcgb2ZmbG9hZCBv biBtdWx0aXBsZSBzb2NrZXRzCiAJICogY29uY3VycmVudGx5LCBzbyB3ZSBvbmx5IG5lZWQgYSBy ZWFkIGxvY2sgaGVyZS4KIAkgKiBUaGlzIGxvY2sgbXVzdCBwcmVjZWRlIGdldF9uZXRkZXZfZm9y X3NvY2sgdG8gcHJldmVudCByYWNlcyBiZXR3ZWVuCi0tIAoyLjIwLjEKCgpGcm9tIDhjYzUwYTgx OTJiMzA1ZmUxYTk1ZjM5ZWYwYjQyZTE5OGVlYmY1NzUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEVsaSBCcml0c3RlaW4gPGVsaWJyQG1lbGxhbm94LmNvbT4KRGF0ZTogU3VuLCAyIEp1 biAyMDE5IDA2OjE5OjAzICswMDAwClN1YmplY3Q6IFtQQVRDSCA0Mi80NV0gbmV0L21seDVlOiBG aXggcG9ydCB0dW5uZWwgR1JFIGVudHJvcHkgY29udHJvbAoKWyBVcHN0cmVhbSBjb21taXQgOTE0 YWRiYjFiY2Y4OTQ3OGFjMTM4MzE4ZDI4YjMwMjcwNDU2NGQ1OSBdCgpHUkUgZW50cm9weSBjYWxj dWxhdGlvbiBpcyBhIHNpbmdsZSBiaXQgcGVyIGNhcmQsIGFuZCBub3QgcGVyIHBvcnQuCkZvcmNl IGRpc2FibGUgR1JFIGVudHJvcHkgY2FsY3VsYXRpb24gdXBvbiB0aGUgZmlyc3QgR1JFIGVuY2Fw IHJ1bGUsCmFuZCByZWxlYXNlIHRoZSBmb3JjZSBhdCB0aGUgbGFzdCBHUkUgZW5jYXAgcnVsZSBy ZW1vdmFsLiBUaGlzIGlzIGRvbmUKcGVyIHBvcnQuCgpGaXhlczogOTc0MTdmNjE4MmY4ICgibmV0 L21seDVlOiBGaXggR1JFIGtleSBieSBjb250cm9sbGluZyBwb3J0IHR1bm5lbCBlbnRyb3B5IGNh bGN1bGF0aW9uIikKU2lnbmVkLW9mZi1ieTogRWxpIEJyaXRzdGVpbiA8ZWxpYnJAbWVsbGFub3gu Y29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4K LS0tCiAuLi4vbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9wb3J0X3R1bi5jICAgICAgICAgfCAyMyAr KysrLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAxOSBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvbGliL3BvcnRfdHVuLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvbGliL3BvcnRfdHVuLmMKaW5kZXggNDBmNGExOWIxY2UxLi41ZTJjZWEyNmYzMzUg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIv cG9ydF90dW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUv bGliL3BvcnRfdHVuLmMKQEAgLTEwMCwyNyArMTAwLDEyIEBAIHN0YXRpYyBpbnQgbWx4NV9zZXRf ZW50cm9weShzdHJ1Y3QgbWx4NV90dW5fZW50cm9weSAqdHVuX2VudHJvcHksCiAJICovCiAJaWYg KGVudHJvcHlfZmxhZ3MuZ3JlX2NhbGNfc3VwcG9ydGVkICYmCiAJICAgIHJlZm9ybWF0X3R5cGUg PT0gTUxYNV9SRUZPUk1BVF9UWVBFX0wyX1RPX05WR1JFKSB7Ci0JCS8qIE90aGVyIGFwcGxpY2F0 aW9ucyBtYXkgY2hhbmdlIHRoZSBnbG9iYWwgRlcgZW50cm9weQotCQkgKiBjYWxjdWxhdGlvbnMg c2V0dGluZ3MuIENoZWNrIHRoYXQgdGhlIGN1cnJlbnQgZW50cm9weSB2YWx1ZQotCQkgKiBpcyB0 aGUgbmVnYXRpdmUgb2YgdGhlIHVwZGF0ZWQgdmFsdWUuCi0JCSAqLwotCQlpZiAoZW50cm9weV9m bGFncy5mb3JjZV9lbmFibGVkICYmCi0JCSAgICBlbmFibGUgPT0gZW50cm9weV9mbGFncy5ncmVf Y2FsY19lbmFibGVkKSB7Ci0JCQltbHg1X2NvcmVfd2Fybih0dW5fZW50cm9weS0+bWRldiwKLQkJ CQkgICAgICAgIlVuZXhwZWN0ZWQgR1JFIGVudHJvcHkgY2FsYyBzZXR0aW5nIC0gZXhwZWN0ZWQg JWQiLAotCQkJCSAgICAgICAhZW50cm9weV9mbGFncy5ncmVfY2FsY19lbmFibGVkKTsKLQkJCXJl dHVybiAtRU9QTk9UU1VQUDsKLQkJfQotCQllcnIgPSBtbHg1X3NldF9wb3J0X2dyZV90dW5fZW50 cm9weV9jYWxjKHR1bl9lbnRyb3B5LT5tZGV2LCBlbmFibGUsCi0JCQkJCQkJIGVudHJvcHlfZmxh Z3MuZm9yY2Vfc3VwcG9ydGVkKTsKKwkJaWYgKCFlbnRyb3B5X2ZsYWdzLmZvcmNlX3N1cHBvcnRl ZCkKKwkJCXJldHVybiAwOworCQllcnIgPSBtbHg1X3NldF9wb3J0X2dyZV90dW5fZW50cm9weV9j YWxjKHR1bl9lbnRyb3B5LT5tZGV2LAorCQkJCQkJCSBlbmFibGUsICFlbmFibGUpOwogCQlpZiAo ZXJyKQogCQkJcmV0dXJuIGVycjsKLQkJLyogaWYgd2UgdHVybiBvbiB0aGUgZW50cm9weSB3ZSBk b24ndCBuZWVkIHRvIGZvcmNlIGl0IGFueW1vcmUgKi8KLQkJaWYgKGVudHJvcHlfZmxhZ3MuZm9y Y2Vfc3VwcG9ydGVkICYmIGVuYWJsZSkgewotCQkJZXJyID0gbWx4NV9zZXRfcG9ydF9ncmVfdHVu X2VudHJvcHlfY2FsYyh0dW5fZW50cm9weS0+bWRldiwgMSwgMCk7Ci0JCQlpZiAoZXJyKQotCQkJ CXJldHVybiBlcnI7Ci0JCX0KIAl9IGVsc2UgaWYgKGVudHJvcHlfZmxhZ3MuY2FsY19zdXBwb3J0 ZWQpIHsKIAkJLyogT3RoZXIgYXBwbGljYXRpb25zIG1heSBjaGFuZ2UgdGhlIGdsb2JhbCBGVyBl bnRyb3B5CiAJCSAqIGNhbGN1bGF0aW9ucyBzZXR0aW5ncy4gQ2hlY2sgdGhhdCB0aGUgY3VycmVu dCBlbnRyb3B5IHZhbHVlCi0tIAoyLjIwLjEKCgpGcm9tIDhiMzZlNTBiYTgwNDNjMDY0ZGQ5NGE5 MDNkMTM0Y2Q4ZjIxNzRlZGIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFNhZWVkIE1h aGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgpEYXRlOiBGcmksIDMgTWF5IDIwMTkgMTM6MTQ6 NTkgLTA3MDAKU3ViamVjdDogW1BBVENIIDQzLzQ1XSBuZXQvbWx4NWU6IFJ4LCBGaXggY2hlY2tz dW0gY2FsY3VsYXRpb24gZm9yIG5ldwogaGFyZHdhcmUKClsgVXBzdHJlYW0gY29tbWl0IGRiODQ5 ZmFhOWJlZjk5M2ExMzc5ZGM1MTA2MjNmNzUwYTcyZmE3Y2UgXQoKQ1FFIGNoZWNrc3VtIGZ1bGwg bW9kZSBpbiBuZXcgSFcsIHByb3ZpZGVzIGEgZnVsbCBjaGVja3N1bSBvZiByeCBmcmFtZS4KQ292 ZXJpbmcgYnl0ZXMgc3RhcnRpbmcgZnJvbSBldGggcHJvdG9jb2wgdXAgdG8gbGFzdCBieXRlIGlu IHRoZSByZWNlaXZlZApmcmFtZSAoZnJhbWVfc2l6ZSAtIEVUSF9ITEVOKSwgYXMgZXhwZWN0ZWQg YnkgdGhlIHN0YWNrLgoKRml4aW5nIHVwIHNrYi0+Y3N1bSBieSB0aGUgZHJpdmVyIGlzIG5vdCBy ZXF1aXJlZCBpbiBzdWNoIGNhc2UuIFRoaXMgZml4CmlzIHRvIGF2b2lkIHdyb25nIGNoZWNrc3Vt IGNhbGN1bGF0aW9uIGluIGRyaXZlcnMgd2hpY2ggYWxyZWFkeSBzdXBwb3J0CnRoZSBuZXcgaGFy ZHdhcmUgd2l0aCB0aGUgbmV3IGNoZWNrc3VtIG1vZGUuCgpGaXhlczogODUzMjdhOWM0MTUwICgi bmV0L21seDU6IFVwZGF0ZSB0aGUgbGlzdCBvZiB0aGUgUENJIHN1cHBvcnRlZCBkZXZpY2VzIikK U2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQog ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmggICAgICB8IDEgKwog ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYyB8IDMgKysr CiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fcnguYyAgIHwgNyAr KysrKystCiBpbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaCAgICAgICAgICAgICAgICAgICAg IHwgMyArKy0KIDQgZmlsZXMgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUv ZW4uaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oCmluZGV4 IGE4MDAzMWIyY2ZhZi4uOWExYTIxYThhZTQ1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaAorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvZW4uaApAQCAtMjk0LDYgKzI5NCw3IEBAIGVudW0gewogCU1MWDVF X1JRX1NUQVRFX0VOQUJMRUQsCiAJTUxYNUVfUlFfU1RBVEVfQU0sCiAJTUxYNUVfUlFfU1RBVEVf Tk9fQ1NVTV9DT01QTEVURSwKKwlNTFg1RV9SUV9TVEFURV9DU1VNX0ZVTEwsIC8qIGNxZV9jc3Vt X2Z1bGwgaHcgYml0IGlzIHNldCAqLwogfTsKIAogc3RydWN0IG1seDVlX2NxIHsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jCmluZGV4IDZh OGRjNzM4NTVjOS4uMjc5M2U0MDM2OTUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMKQEAgLTk0OCw2ICs5NDgsOSBAQCBzdGF0aWMg aW50IG1seDVlX29wZW5fcnEoc3RydWN0IG1seDVlX2NoYW5uZWwgKmMsCiAJaWYgKGVycikKIAkJ Z290byBlcnJfZGVzdHJveV9ycTsKIAorCWlmIChNTFg1X0NBUF9FVEgoYy0+bWRldiwgY3FlX2No ZWNrc3VtX2Z1bGwpKQorCQlfX3NldF9iaXQoTUxYNUVfUlFfU1RBVEVfQ1NVTV9GVUxMLCAmYy0+ cnEuc3RhdGUpOworCiAJaWYgKHBhcmFtcy0+cnhfZGltX2VuYWJsZWQpCiAJCV9fc2V0X2JpdChN TFg1RV9SUV9TVEFURV9BTSwgJmMtPnJxLnN0YXRlKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4LmMgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fcnguYwppbmRleCBjM2IzMDAyZmY2MmYuLmU4YTM2 NTZkNjMxZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2VuX3J4LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L2VuX3J4LmMKQEAgLTgyOSw4ICs4MjksMTQgQEAgc3RhdGljIGlubGluZSB2b2lkIG1seDVlX2hh bmRsZV9jc3VtKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsCiAJCWlmICh1bmxpa2VseShnZXRf aXBfcHJvdG8oc2tiLCBuZXR3b3JrX2RlcHRoLCBwcm90bykgPT0gSVBQUk9UT19TQ1RQKSkKIAkJ CWdvdG8gY3N1bV91bm5lY2Vzc2FyeTsKIAorCQlzdGF0cy0+Y3N1bV9jb21wbGV0ZSsrOwogCQlz a2ItPmlwX3N1bW1lZCA9IENIRUNLU1VNX0NPTVBMRVRFOwogCQlza2ItPmNzdW0gPSBjc3VtX3Vu Zm9sZCgoX19mb3JjZSBfX3N1bTE2KWNxZS0+Y2hlY2tfc3VtKTsKKworCQlpZiAodGVzdF9iaXQo TUxYNUVfUlFfU1RBVEVfQ1NVTV9GVUxMLCAmcnEtPnN0YXRlKSkKKwkJCXJldHVybjsgLyogQ1FF IGNzdW0gY292ZXJzIGFsbCByZWNlaXZlZCBieXRlcyAqLworCisJCS8qIGNzdW0gbWlnaHQgbmVl ZCBzb21lIGZpeHVwcyAuLi4qLwogCQlpZiAobmV0d29ya19kZXB0aCA+IEVUSF9ITEVOKQogCQkJ LyogQ1FFIGNzdW0gaXMgY2FsY3VsYXRlZCBmcm9tIHRoZSBJUCBoZWFkZXIgYW5kIGRvZXMKIAkJ CSAqIG5vdCBjb3ZlciBWTEFOIGhlYWRlcnMgKGlmIHByZXNlbnQpLiBUaGlzIHdpbGwgYWRkCkBA IC04NDEsNyArODQ3LDYgQEAgc3RhdGljIGlubGluZSB2b2lkIG1seDVlX2hhbmRsZV9jc3VtKHN0 cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsCiAJCQkJCQkgc2tiLT5jc3VtKTsKIAogCQltbHg1ZV9z a2JfcGFkZGluZ19jc3VtKHNrYiwgbmV0d29ya19kZXB0aCwgcHJvdG8sIHN0YXRzKTsKLQkJc3Rh dHMtPmNzdW1fY29tcGxldGUrKzsKIAkJcmV0dXJuOwogCX0KIApkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9saW51eC9tbHg1L21seDVfaWZjLmggYi9pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaApp bmRleCAzYjgzMjg4NzQ5YzYuLmM1ZGFiYWZmMTczMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51 eC9tbHg1L21seDVfaWZjLmgKKysrIGIvaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgKQEAg LTcxNiw3ICs3MTYsOCBAQCBzdHJ1Y3QgbWx4NV9pZmNfcGVyX3Byb3RvY29sX25ldHdvcmtpbmdf b2ZmbG9hZF9jYXBzX2JpdHMgewogCXU4ICAgICAgICAgc3dwWzB4MV07CiAJdTggICAgICAgICBz d3BfY3N1bVsweDFdOwogCXU4ICAgICAgICAgc3dwX2xzb1sweDFdOwotCXU4ICAgICAgICAgcmVz ZXJ2ZWRfYXRfMjNbMHhkXTsKKwl1OCAgICAgICAgIGNxZV9jaGVja3N1bV9mdWxsWzB4MV07CisJ dTggICAgICAgICByZXNlcnZlZF9hdF8yNFsweGNdOwogCXU4ICAgICAgICAgbWF4X3Z4bGFuX3Vk cF9wb3J0c1sweDhdOwogCXU4ICAgICAgICAgcmVzZXJ2ZWRfYXRfMzhbMHg2XTsKIAl1OCAgICAg ICAgIG1heF9nZW5ldmVfb3B0X2xlblsweDFdOwotLSAKMi4yMC4xCgoKRnJvbSBkMWQxMjY5MjQ0 NTc5OGQ2MGVhOTliZWNmZGI0ODlkNDM1NDJkZjhlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBBeWEgTGV2aW4gPGF5YWxAbWVsbGFub3guY29tPgpEYXRlOiBNb24sIDE3IEp1biAyMDE5 IDEyOjAxOjQ1ICswMzAwClN1YmplY3Q6IFtQQVRDSCA0NC80NV0gbmV0L21seDVlOiBGaXggcmV0 dXJuIHZhbHVlIGZyb20gdGltZW91dCByZWNvdmVyCiBmdW5jdGlvbgoKWyBVcHN0cmVhbSBjb21t aXQgMzk4MjUzNTBhZTJhNTJmODUxMzc0MWIzNmU0MjExOGJkODBkZDY4OSBdCgpGaXggdGltZW91 dCByZWNvdmVyIGZ1bmN0aW9uIHRvIHJldHVybiBhIG1lYW5pbmdmdWwgcmV0dXJuIHZhbHVlLgpX aGVuIGFuIGludGVycnVwdCB3YXMgbm90IHNlbnQgYnkgdGhlIEZXLCByZXR1cm4gSU8gZXJyb3Ig aW5zdGVhZCBvZgondHJ1ZScuCgpGaXhlczogYzc5ODFiZWE0OGZiICgibmV0L21seDVlOiBGaXgg cmV0dXJuIHN0YXR1cyBvZiBUWCByZXBvcnRlciB0aW1lb3V0IHJlY292ZXIiKQpTaWduZWQtb2Zm LWJ5OiBBeWEgTGV2aW4gPGF5YWxAbWVsbGFub3guY29tPgpBY2tlZC1ieTogSmlyaSBQaXJrbyA8 amlyaUBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBUYXJpcSBUb3VrYW4gPHRhcmlxdEBtZWxs YW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3gu Y29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXBv cnRlcl90eC5jIHwgNiArKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDQg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4NS9jb3JlL2VuL3JlcG9ydGVyX3R4LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg1L2NvcmUvZW4vcmVwb3J0ZXJfdHguYwppbmRleCA0NzZkZDk3ZjdmMmYuLmE3NzhjMTVl NTMyNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L2VuL3JlcG9ydGVyX3R4LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 NS9jb3JlL2VuL3JlcG9ydGVyX3R4LmMKQEAgLTE0MiwyMiArMTQyLDIwIEBAIHN0YXRpYyBpbnQg bWx4NWVfdHhfcmVwb3J0ZXJfdGltZW91dF9yZWNvdmVyKHN0cnVjdCBtbHg1ZV90eHFzcSAqc3Ep CiB7CiAJc3RydWN0IG1seDVfZXFfY29tcCAqZXEgPSBzcS0+Y3EubWNxLmVxOwogCXUzMiBlcWVf Y291bnQ7Ci0JaW50IHJldDsKIAogCW5ldGRldl9lcnIoc3EtPmNoYW5uZWwtPm5ldGRldiwgIkVR IDB4JXg6IENvbnMgPSAweCV4LCBpcnFuID0gMHgleFxuIiwKIAkJICAgZXEtPmNvcmUuZXFuLCBl cS0+Y29yZS5jb25zX2luZGV4LCBlcS0+Y29yZS5pcnFuKTsKIAogCWVxZV9jb3VudCA9IG1seDVf ZXFfcG9sbF9pcnFfZGlzYWJsZWQoZXEpOwotCXJldCA9IGVxZV9jb3VudCA/IGZhbHNlIDogdHJ1 ZTsKIAlpZiAoIWVxZV9jb3VudCkgewogCQljbGVhcl9iaXQoTUxYNUVfU1FfU1RBVEVfRU5BQkxF RCwgJnNxLT5zdGF0ZSk7Ci0JCXJldHVybiByZXQ7CisJCXJldHVybiAtRUlPOwogCX0KIAogCW5l dGRldl9lcnIoc3EtPmNoYW5uZWwtPm5ldGRldiwgIlJlY292ZXIgJWQgZXFlcyBvbiBFUSAweCV4 XG4iLAogCQkgICBlcWVfY291bnQsIGVxLT5jb3JlLmVxbik7CiAJc3EtPmNoYW5uZWwtPnN0YXRz LT5lcV9yZWFybSsrOwotCXJldHVybiByZXQ7CisJcmV0dXJuIDA7CiB9CiAKIGludCBtbHg1ZV90 eF9yZXBvcnRlcl90aW1lb3V0KHN0cnVjdCBtbHg1ZV90eHFzcSAqc3EpCi0tIAoyLjIwLjEKCgpG cm9tIDE1YmMxODA2ZGRkNTY5Mjk2NDU4MmE4NTU2OTY4OGIwOTYyNjg5MGQgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IEF5YSBMZXZpbiA8YXlhbEBtZWxsYW5veC5jb20+CkRhdGU6IFN1 biwgMzAgSnVuIDIwMTkgMTE6MTE6MjYgKzAzMDAKU3ViamVjdDogW1BBVENIIDQ1LzQ1XSBuZXQv bWx4NWU6IEZpeCBlcnJvciBmbG93IGluIHR4IHJlcG9ydGVyIGRpYWdub3NlCgpbIFVwc3RyZWFt IGNvbW1pdCA5OWQzMWNiZDg5NTNjNjkyOWRhOTc4YmYwNDlhYjBmMGI0ZTUwM2Q5IF0KCkZpeCB0 eCByZXBvcnRlcidzIGRpYWdub3NlIGNhbGxiYWNrLiBQcm9wYWdhdGUgZXJyb3Igd2hlbiBmYWls aW5nIHRvCmdhdGhlciBkaWFnbm9zdGljcyBpbmZvcm1hdGlvbiBvciBmYWlsaW5nIHRvIHByaW50 IGRpYWdub3N0aWMgZGF0YSBwZXIKcXVldWUuCgpGaXhlczogZGU4NjUwYTgyMDcxICgibmV0L21s eDVlOiBBZGQgdHggcmVwb3J0ZXIgc3VwcG9ydCIpClNpZ25lZC1vZmYtYnk6IEF5YSBMZXZpbiA8 YXlhbEBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBUYXJpcSBUb3VrYW4gPHRhcmlxdEBtZWxs YW5veC5jb20+CkFja2VkLWJ5OiBKaXJpIFBpcmtvIDxqaXJpQG1lbGxhbm94LmNvbT4KU2lnbmVk LW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcG9ydGVyX3R4LmMgfCA0ICsr LS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcG9y dGVyX3R4LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVw b3J0ZXJfdHguYwppbmRleCBhNzc4YzE1ZTUzMjQuLmYzZDk4NzQ4YjIxMSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcG9ydGVyX3R4LmMK KysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcG9ydGVy X3R4LmMKQEAgLTI2MiwxMyArMjYyLDEzIEBAIHN0YXRpYyBpbnQgbWx4NWVfdHhfcmVwb3J0ZXJf ZGlhZ25vc2Uoc3RydWN0IGRldmxpbmtfaGVhbHRoX3JlcG9ydGVyICpyZXBvcnRlciwKIAogCQll cnIgPSBtbHg1X2NvcmVfcXVlcnlfc3Ffc3RhdGUocHJpdi0+bWRldiwgc3EtPnNxbiwgJnN0YXRl KTsKIAkJaWYgKGVycikKLQkJCWJyZWFrOworCQkJZ290byB1bmxvY2s7CiAKIAkJZXJyID0gbWx4 NWVfdHhfcmVwb3J0ZXJfYnVpbGRfZGlhZ25vc2Vfb3V0cHV0KGZtc2csIHNxLT5zcW4sCiAJCQkJ CQkJICAgICAgc3RhdGUsCiAJCQkJCQkJICAgICAgbmV0aWZfeG1pdF9zdG9wcGVkKHNxLT50eHEp KTsKIAkJaWYgKGVycikKLQkJCWJyZWFrOworCQkJZ290byB1bmxvY2s7CiAJfQogCWVyciA9IGRl dmxpbmtfZm1zZ19hcnJfcGFpcl9uZXN0X2VuZChmbXNnKTsKIAlpZiAoZXJyKQotLSAKMi4yMC4x Cgo= ----Next_Part(Wed_Jul_24_18_55_42_2019_963)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_52.mbox" RnJvbSA3OTM1ZjA3MGQ4YWFhMjdjYWE5OGY5NzYwMTM2NmI4MGZjNWFjMThmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCcmlhbiBLaW5nIDxicmtpbmdAbGludXgudm5ldC5pYm0uY29t PgpEYXRlOiBNb24sIDE1IEp1bCAyMDE5IDE2OjQxOjUwIC0wNTAwClN1YmplY3Q6IFtQQVRDSCAw MS80OV0gYm54Mng6IFByZXZlbnQgbG9hZCByZW9yZGVyaW5nIGluIHR4IGNvbXBsZXRpb24KIHBy b2Nlc3NpbmcKClsgVXBzdHJlYW0gY29tbWl0IGVhODExYjc5NWRmMjQ2NDRhOGViNzYwYjQ5M2M0 M2ZiYTQ0NTA2NzcgXQoKVGhpcyBwYXRjaCBmaXhlcyBhbiBpc3N1ZSBzZWVuIG9uIFBvd2VyIHN5 c3RlbXMgd2l0aCBibngyeCB3aGljaCByZXN1bHRzCmluIHRoZSBza2IgaXMgTlVMTCBXQVJOX09O IGluIGJueDJ4X2ZyZWVfdHhfcGt0IGZpcmluZyBkdWUgdG8gdGhlIHNrYgpwb2ludGVyIGdldHRp bmcgbG9hZGVkIGluIGJueDJ4X2ZyZWVfdHhfcGt0IHByaW9yIHRvIHRoZSBod19jb25zCmxvYWQg aW4gYm54MnhfdHhfaW50LiBBZGRpbmcgYSByZWFkIG1lbW9yeSBiYXJyaWVyIHJlc29sdmVzIHRo ZSBpc3N1ZS4KClNpZ25lZC1vZmYtYnk6IEJyaWFuIEtpbmcgPGJya2luZ0BsaW51eC52bmV0Lmli bS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibngyeC9ibngyeF9jbW4uYyB8 IDMgKysrCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54MngvYm54MnhfY21uLmMgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9icm9hZGNvbS9ibngyeC9ibngyeF9jbW4uYwppbmRleCAwMDhhZDBjYTg5YmEu LmRmMTY2ZmViYTBhNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20v Ym54MngvYm54MnhfY21uLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54 MngvYm54MnhfY21uLmMKQEAgLTI4NSw2ICsyODUsOSBAQCBpbnQgYm54MnhfdHhfaW50KHN0cnVj dCBibngyeCAqYnAsIHN0cnVjdCBibngyeF9mcF90eGRhdGEgKnR4ZGF0YSkKIAlod19jb25zID0g bGUxNl90b19jcHUoKnR4ZGF0YS0+dHhfY29uc19zYik7CiAJc3dfY29ucyA9IHR4ZGF0YS0+dHhf cGt0X2NvbnM7CiAKKwkvKiBFbnN1cmUgc3Vic2VxdWVudCBsb2FkcyBvY2N1ciBhZnRlciBod19j b25zICovCisJc21wX3JtYigpOworCiAJd2hpbGUgKHN3X2NvbnMgIT0gaHdfY29ucykgewogCQl1 MTYgcGt0X2NvbnM7CiAKLS0gCjIuMjAuMQoKCkZyb20gOWJmZjkxYTQyOGJjNDZlNGIwNWM2YTQ2 YTQwNWJiMzc4ZmYwMDZlOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogIkd1aWxoZXJt ZSBHLiBQaWNjb2xpIiA8Z3BpY2NvbGlAY2Fub25pY2FsLmNvbT4KRGF0ZTogVGh1LCAyNyBKdW4g MjAxOSAxMzozMTozMyAtMDMwMApTdWJqZWN0OiBbUEFUQ0ggMDIvNDldIGJueDJ4OiBQcmV2ZW50 IHB0cF90YXNrIHRvIGJlIHJlc2NoZWR1bGVkIGluZGVmaW5pdGVseQoKWyBVcHN0cmVhbSBjb21t aXQgM2M5MWYyNWMyZjcyYmE2MDAxNzc1YTU5MzI4NTdjMWQyMTMxYzUzMSBdCgpDdXJyZW50bHkg Ym54MnggcHRwIHdvcmtlciB0cmllcyB0byByZWFkIGEgcmVnaXN0ZXIgd2l0aCB0aW1lc3RhbXAK aW5mb3JtYXRpb24gaW4gY2FzZSBvZiBUWCBwYWNrZXQgdGltZXN0YW1waW5nIGFuZCBpbiBjYXNl IGl0IGZhaWxzLAp0aGUgcm91dGluZSByZXNjaGVkdWxlcyBpdHNlbGYgaW5kZWZpbml0ZWx5LiBU aGlzIHdhcyByZXBvcnRlZCBhcyBhCmt3b3JrZXIgYWx3YXlzIGF0IDEwMCUgb2YgQ1BVIHVzYWdl LCB3aGljaCB3YXMgbmFycm93ZWQgZG93biB0byBiZQpibngyeCBwdHBfdGFzay4KCkJ5IGZvbGxv d2luZyB0aGUgaW9jdGwgaGFuZGxlciwgd2UgY291bGQgbmFycm93IGRvd24gdGhlIHByb2JsZW0g dG8KYW4gTlRQIHRvb2wgKGNocm9ueSkgcmVxdWVzdGluZyBIVyB0aW1lc3RhbXBpbmcgZnJvbSBi bngyeCBOSUMgd2l0aApSWCBmaWx0ZXIgemVyb2VkOyB0aGlzIGlzbid0IHJlcHJvZHVjaWJsZSBm b3IgZXhhbXBsZSB3aXRoIHB0cDRsCihmcm9tIGxpbnV4cHRwKSBzaW5jZSB0aGlzIHRvb2wgcmVx dWVzdHMgYSBzdXBwb3J0ZWQgUlggZmlsdGVyLgpJdCBzZWVtcyBOSUMgRlcgdGltZXN0YW1wIG1l Y2hhbmlzbSBjYW5ub3Qgd29yayB3ZWxsIHdpdGgKUlhfRklMVEVSX05PTkUgLSBkcml2ZXIncyBQ VFAgZmlsdGVyIGluaXQgcm91dGluZSBza2lwcyBhIHJlZ2lzdGVyCndyaXRlIHRvIHRoZSBhZGFw dGVyIGlmIHRoZXJlJ3Mgbm90IGEgc3VwcG9ydGVkIGZpbHRlciByZXF1ZXN0LgoKVGhpcyBwYXRj aCBhZGRyZXNzZXMgdGhlIHByb2JsZW0gb2YgYm54MnggcHRwIHRocmVhZCdzIGV2ZXJsYXN0aW5n CnJlc2NoZWR1bGUgYnkgcmV0cnlpbmcgdGhlIHJlZ2lzdGVyIHJlYWQgMTAgdGltZXM7IGJldHdl ZW4gdGhlIHJlYWQKYXR0ZW1wdHMgdGhlIHRocmVhZCBzbGVlcHMgZm9yIGFuIGluY3JlYXNpbmcg YW1vdW50IG9mIHRpbWUgc3RhcnRpbmcKaW4gMW1zIHRvIGdpdmUgRlcgc29tZSB0aW1lIHRvIHBl cmZvcm0gdGhlIHRpbWVzdGFtcGluZy4gSWYgaXQgc3RpbGwKZmFpbHMgYWZ0ZXIgYWxsIHJldHJp ZXMsIHdlIGJhaWwgb3V0IGluIG9yZGVyIHRvIHByZXZlbnQgYW4gdW5ib3VuZApyZXNvdXJjZSBj b25zdW1wdGlvbiBmcm9tIGJueDJ4LgoKVGhlIHBhdGNoIGFsc28gYWRkcyBhbiBldGh0b29sIHN0 YXRpc3RpYyBmb3IgYWNjb3VudGluZyB0aGUgc2tpcHBlZApUWCB0aW1lc3RhbXAgcGFja2V0cyBh bmQgaXQgcmVkdWNlcyB0aGUgcHJpb3JpdHkgb2YgdGltZXN0YW1waW5nCmVycm9yIG1lc3NhZ2Vz IHRvIHByZXZlbnQgbG9nIGZsb29kaW5nLiBUaGUgY29kZSB3YXMgdGVzdGVkIHVzaW5nCmJvdGgg bGludXhwdHAgYW5kIGNocm9ueS4KClJlcG9ydGVkLWFuZC10ZXN0ZWQtYnk6IFByemVteXNsYXcg SGF1c21hbiA8cHJ6ZW15c2xhdy5oYXVzbWFuQGNhbm9uaWNhbC5jb20+ClN1Z2dlc3RlZC1ieTog U3VkYXJzYW5hIFJlZGR5IEthbGx1cnUgPHNrYWxsdXJ1QG1hcnZlbGwuY29tPgpTaWduZWQtb2Zm LWJ5OiBHdWlsaGVybWUgRy4gUGljY29saSA8Z3BpY2NvbGlAY2Fub25pY2FsLmNvbT4KQWNrZWQt Ynk6IFN1ZGFyc2FuYSBSZWRkeSBLYWxsdXJ1IDxza2FsbHVydUBtYXJ2ZWxsLmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIC4uLi9u ZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54MngvYm54MnhfY21uLmMgICB8ICA1ICsrLQogLi4uL2V0 aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X2V0aHRvb2wuYyAgIHwgIDQgKystCiAuLi4vbmV0 L2V0aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X21haW4uYyAgfCAzMyArKysrKysrKysrKysr Ky0tLS0tCiAuLi4vbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X3N0YXRzLmggfCAg MyArKwogNCBmaWxlcyBjaGFuZ2VkLCAzNCBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibngyeC9ibngyeF9j bW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X2Ntbi5jCmlu ZGV4IGRmMTY2ZmViYTBhNC4uYmYzOWZjODNkNTc3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9icm9hZGNvbS9ibngyeC9ibngyeF9jbW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9icm9hZGNvbS9ibngyeC9ibngyeF9jbW4uYwpAQCAtMzg2MCw5ICszODYwLDEyIEBAIG5l dGRldl90eF90IGJueDJ4X3N0YXJ0X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5l dF9kZXZpY2UgKmRldikKIAogCWlmICh1bmxpa2VseShza2Jfc2hpbmZvKHNrYiktPnR4X2ZsYWdz ICYgU0tCVFhfSFdfVFNUQU1QKSkgewogCQlpZiAoIShicC0+ZmxhZ3MgJiBUWF9USU1FU1RBTVBJ TkdfRU4pKSB7CisJCQlicC0+ZXRoX3N0YXRzLnB0cF9za2lwX3R4X3RzKys7CiAJCQlCTlgyWF9F UlIoIlR4IHRpbWVzdGFtcGluZyB3YXMgbm90IGVuYWJsZWQsIHRoaXMgcGFja2V0IHdpbGwgbm90 IGJlIHRpbWVzdGFtcGVkXG4iKTsKIAkJfSBlbHNlIGlmIChicC0+cHRwX3R4X3NrYikgewotCQkJ Qk5YMlhfRVJSKCJUaGUgZGV2aWNlIHN1cHBvcnRzIG9ubHkgYSBzaW5nbGUgb3V0c3RhbmRpbmcg cGFja2V0IHRvIHRpbWVzdGFtcCwgdGhpcyBwYWNrZXQgd2lsbCBub3QgYmUgdGltZXN0YW1wZWRc biIpOworCQkJYnAtPmV0aF9zdGF0cy5wdHBfc2tpcF90eF90cysrOworCQkJbmV0ZGV2X2Vycl9v bmNlKGJwLT5kZXYsCisJCQkJCSJEZXZpY2Ugc3VwcG9ydHMgb25seSBhIHNpbmdsZSBvdXRzdGFu ZGluZyBwYWNrZXQgdG8gdGltZXN0YW1wLCB0aGlzIHBhY2tldCB3b24ndCBiZSB0aW1lc3RhbXBl ZFxuIik7CiAJCX0gZWxzZSB7CiAJCQlza2Jfc2hpbmZvKHNrYiktPnR4X2ZsYWdzIHw9IFNLQlRY X0lOX1BST0dSRVNTOwogCQkJLyogc2NoZWR1bGUgY2hlY2sgZm9yIFR4IHRpbWVzdGFtcCAqLwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54MngvYm54MnhfZXRo dG9vbC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54MngvYm54MnhfZXRodG9v bC5jCmluZGV4IDUxZmM4NDVkZTMxYS4uNGEwYmE2ODAxYzllIDEwMDY0NAotLS0gYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibngyeC9ibngyeF9ldGh0b29sLmMKKysrIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54MngvYm54MnhfZXRodG9vbC5jCkBAIC0xODIsNyAr MTgyLDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7CiAJeyBTVEFUU19PRkZTRVQzMihkcml2ZXJf ZmlsdGVyZWRfdHhfcGt0KSwKIAkJCQk0LCBmYWxzZSwgImRyaXZlcl9maWx0ZXJlZF90eF9wa3Qi IH0sCiAJeyBTVEFUU19PRkZTRVQzMihlZWVfdHhfbHBpKSwKLQkJCQk0LCB0cnVlLCAiVHggTFBJ IGVudHJ5IGNvdW50In0KKwkJCQk0LCB0cnVlLCAiVHggTFBJIGVudHJ5IGNvdW50In0sCisJeyBT VEFUU19PRkZTRVQzMihwdHBfc2tpcF90eF90cyksCisJCQkJNCwgZmFsc2UsICJwdHBfc2tpcHBl ZF90eF90c3RhbXAiIH0sCiB9OwogCiAjZGVmaW5lIEJOWDJYX05VTV9TVEFUUwkJQVJSQVlfU0la RShibngyeF9zdGF0c19hcnIpCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9h ZGNvbS9ibngyeC9ibngyeF9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9i bngyeC9ibngyeF9tYWluLmMKaW5kZXggMDNhYzEwYjFjZDFlLi4yY2MxNGRiOGYwZWMgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X21haW4uYwor KysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibngyeC9ibngyeF9tYWluLmMKQEAg LTE1MjE0LDExICsxNTIxNCwyNCBAQCBzdGF0aWMgdm9pZCBibngyeF9wdHBfdGFzayhzdHJ1Y3Qg d29ya19zdHJ1Y3QgKndvcmspCiAJdTMyIHZhbF9zZXE7CiAJdTY0IHRpbWVzdGFtcCwgbnM7CiAJ c3RydWN0IHNrYl9zaGFyZWRfaHd0c3RhbXBzIHNoaHd0c3RhbXBzOworCWJvb2wgYmFpbCA9IHRy dWU7CisJaW50IGk7CisKKwkvKiBGVyBtYXkgdGFrZSBhIHdoaWxlIHRvIGNvbXBsZXRlIHRpbWVz dGFtcGluZzsgdHJ5IGEgYml0IGFuZCBpZiBpdCdzCisJICogc3RpbGwgbm90IGNvbXBsZXRlLCBt YXkgaW5kaWNhdGUgYW4gZXJyb3Igc3RhdGUgLSBiYWlsIG91dCB0aGVuLgorCSAqLworCWZvciAo aSA9IDA7IGkgPCAxMDsgaSsrKSB7CisJCS8qIFJlYWQgVHggdGltZXN0YW1wIHJlZ2lzdGVycyAq LworCQl2YWxfc2VxID0gUkVHX1JEKGJwLCBwb3J0ID8gTklHX1JFR19QMV9UTExIX1BUUF9CVUZf U0VRSUQgOgorCQkJCSBOSUdfUkVHX1AwX1RMTEhfUFRQX0JVRl9TRVFJRCk7CisJCWlmICh2YWxf c2VxICYgMHgxMDAwMCkgeworCQkJYmFpbCA9IGZhbHNlOworCQkJYnJlYWs7CisJCX0KKwkJbXNs ZWVwKDEgPDwgaSk7CisJfQogCi0JLyogUmVhZCBUeCB0aW1lc3RhbXAgcmVnaXN0ZXJzICovCi0J dmFsX3NlcSA9IFJFR19SRChicCwgcG9ydCA/IE5JR19SRUdfUDFfVExMSF9QVFBfQlVGX1NFUUlE IDoKLQkJCSBOSUdfUkVHX1AwX1RMTEhfUFRQX0JVRl9TRVFJRCk7Ci0JaWYgKHZhbF9zZXEgJiAw eDEwMDAwKSB7CisJaWYgKCFiYWlsKSB7CiAJCS8qIFRoZXJlIGlzIGEgdmFsaWQgdGltZXN0YW1w IHZhbHVlICovCiAJCXRpbWVzdGFtcCA9IFJFR19SRChicCwgcG9ydCA/IE5JR19SRUdfUDFfVExM SF9QVFBfQlVGX1RTX01TQiA6CiAJCQkJICAgTklHX1JFR19QMF9UTExIX1BUUF9CVUZfVFNfTVNC KTsKQEAgLTE1MjMzLDE2ICsxNTI0NiwxOCBAQCBzdGF0aWMgdm9pZCBibngyeF9wdHBfdGFzayhz dHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJCW1lbXNldCgmc2hod3RzdGFtcHMsIDAsIHNpemVv ZihzaGh3dHN0YW1wcykpOwogCQlzaGh3dHN0YW1wcy5od3RzdGFtcCA9IG5zX3RvX2t0aW1lKG5z KTsKIAkJc2tiX3RzdGFtcF90eChicC0+cHRwX3R4X3NrYiwgJnNoaHd0c3RhbXBzKTsKLQkJZGV2 X2tmcmVlX3NrYl9hbnkoYnAtPnB0cF90eF9za2IpOwotCQlicC0+cHRwX3R4X3NrYiA9IE5VTEw7 CiAKIAkJRFAoQk5YMlhfTVNHX1BUUCwgIlR4IHRpbWVzdGFtcCwgdGltZXN0YW1wIGN5Y2xlcyA9 ICVsbHUsIG5zID0gJWxsdVxuIiwKIAkJICAgdGltZXN0YW1wLCBucyk7CiAJfSBlbHNlIHsKLQkJ RFAoQk5YMlhfTVNHX1BUUCwgIlRoZXJlIGlzIG5vIHZhbGlkIFR4IHRpbWVzdGFtcCB5ZXRcbiIp OwotCQkvKiBSZXNjaGVkdWxlIHRvIGtlZXAgY2hlY2tpbmcgZm9yIGEgdmFsaWQgdGltZXN0YW1w IHZhbHVlICovCi0JCXNjaGVkdWxlX3dvcmsoJmJwLT5wdHBfdGFzayk7CisJCURQKEJOWDJYX01T R19QVFAsCisJCSAgICJUeCB0aW1lc3RhbXAgaXMgbm90IHJlY29yZGVkIChyZWdpc3RlciByZWFk PSV1KVxuIiwKKwkJICAgdmFsX3NlcSk7CisJCWJwLT5ldGhfc3RhdHMucHRwX3NraXBfdHhfdHMr KzsKIAl9CisKKwlkZXZfa2ZyZWVfc2tiX2FueShicC0+cHRwX3R4X3NrYik7CisJYnAtPnB0cF90 eF9za2IgPSBOVUxMOwogfQogCiB2b2lkIGJueDJ4X3NldF9yeF90cyhzdHJ1Y3QgYm54MnggKmJw LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv YnJvYWRjb20vYm54MngvYm54Mnhfc3RhdHMuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2Fk Y29tL2JueDJ4L2JueDJ4X3N0YXRzLmgKaW5kZXggYjI2NDRlZDEzZDA2Li5kNTVlNjM2OTJjZjMg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X3N0 YXRzLmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54MngvYm54Mnhfc3Rh dHMuaApAQCAtMjA3LDYgKzIwNyw5IEBAIHN0cnVjdCBibngyeF9ldGhfc3RhdHMgewogCXUzMiBk cml2ZXJfZmlsdGVyZWRfdHhfcGt0OwogCS8qIHNyYzogQ2xlYXItb24tUmVhZCByZWdpc3Rlcjsg V2lsbCBub3Qgc3Vydml2ZSBQTUYgTWlncmF0aW9uICovCiAJdTMyIGVlZV90eF9scGk7CisKKwkv KiBQVFAgKi8KKwl1MzIgcHRwX3NraXBfdHhfdHM7CiB9OwogCiBzdHJ1Y3QgYm54MnhfZXRoX3Ff c3RhdHMgewotLSAKMi4yMC4xCgoKRnJvbSA3MGQ5MmFkNTFlMTRiODA3MjkyMWJiMzQ3MzcxYzhm NmI4MzM1MzA2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDb25nIFdhbmcgPHhpeW91 Lndhbmdjb25nQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAxIEp1bCAyMDE5IDIwOjQwOjI0IC0wNzAw ClN1YmplY3Q6IFtQQVRDSCAwMy80OV0gYm9uZGluZzogdmFsaWRhdGUgaXAgaGVhZGVyIGJlZm9y ZSBjaGVjayBJUFBST1RPX0lHTVAKClsgVXBzdHJlYW0gY29tbWl0IDlkMWJjMjRiNTJmYjhjNWQ4 NTlmOWE0NzA4NGJmMTE3OTQ3MGUwNGMgXQoKYm9uZF94bWl0X3JvdW5kcm9iaW4oKSBjaGVja3Mg Zm9yIElHTVAgcGFja2V0cyBidXQgaXQgcGFyc2VzCnRoZSBJUCBoZWFkZXIgZXZlbiBiZWZvcmUg Y2hlY2tpbmcgc2tiLT5wcm90b2NvbC4KCldlIHNob3VsZCB2YWxpZGF0ZSB0aGUgSVAgaGVhZGVy IHdpdGggcHNrYl9tYXlfcHVsbCgpIGJlZm9yZQp1c2luZyBpcGgtPnByb3RvY29sLgoKUmVwb3J0 ZWQtYW5kLXRlc3RlZC1ieTogc3l6Ym90K2U1YmUxNmFhMzlhZDZlNzU1MzkxQHN5emthbGxlci5h cHBzcG90bWFpbC5jb20KRml4ZXM6IGEyZmQ5NDBmNGNmZiAoImJvbmRpbmc6IGZpeCBicm9rZW4g bXVsdGljYXN0IHdpdGggcm91bmQtcm9iaW4gbW9kZSIpCkNjOiBKYXkgVm9zYnVyZ2ggPGoudm9z YnVyZ2hAZ21haWwuY29tPgpDYzogVmVhY2VzbGF2IEZhbGljbyA8dmZhbGljb0BnbWFpbC5jb20+ CkNjOiBBbmR5IEdvc3BvZGFyZWsgPGFuZHlAZ3JleWhvdXNlLm5ldD4KU2lnbmVkLW9mZi1ieTog Q29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ib25kaW5n L2JvbmRfbWFpbi5jIHwgMzcgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCiAxIGZp bGUgY2hhbmdlZCwgMjMgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4uYyBiL2RyaXZlcnMvbmV0L2JvbmRpbmcv Ym9uZF9tYWluLmMKaW5kZXggNzk5ZmMzOGM1YzM0Li5iMGFhYjNhMGExYmYgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvYm9uZGlu Zy9ib25kX21haW4uYwpAQCAtMzg2Niw4ICszODY2LDggQEAgc3RhdGljIG5ldGRldl90eF90IGJv bmRfeG1pdF9yb3VuZHJvYmluKHN0cnVjdCBza19idWZmICpza2IsCiAJCQkJCXN0cnVjdCBuZXRf ZGV2aWNlICpib25kX2RldikKIHsKIAlzdHJ1Y3QgYm9uZGluZyAqYm9uZCA9IG5ldGRldl9wcml2 KGJvbmRfZGV2KTsKLQlzdHJ1Y3QgaXBoZHIgKmlwaCA9IGlwX2hkcihza2IpOwogCXN0cnVjdCBz bGF2ZSAqc2xhdmU7CisJaW50IHNsYXZlX2NudDsKIAl1MzIgc2xhdmVfaWQ7CiAKIAkvKiBTdGFy dCB3aXRoIHRoZSBjdXJyX2FjdGl2ZV9zbGF2ZSB0aGF0IGpvaW5lZCB0aGUgYm9uZCBhcyB0aGUK QEAgLTM4NzYsMjMgKzM4NzYsMzIgQEAgc3RhdGljIG5ldGRldl90eF90IGJvbmRfeG1pdF9yb3Vu ZHJvYmluKHN0cnVjdCBza19idWZmICpza2IsCiAJICogc2VuZCB0aGUgam9pbi9tZW1iZXJzaGlw IHJlcG9ydHMuICBUaGUgY3Vycl9hY3RpdmVfc2xhdmUgZm91bmQKIAkgKiB3aWxsIHNlbmQgYWxs IG9mIHRoaXMgdHlwZSBvZiB0cmFmZmljLgogCSAqLwotCWlmIChpcGgtPnByb3RvY29sID09IElQ UFJPVE9fSUdNUCAmJiBza2ItPnByb3RvY29sID09IGh0b25zKEVUSF9QX0lQKSkgewotCQlzbGF2 ZSA9IHJjdV9kZXJlZmVyZW5jZShib25kLT5jdXJyX2FjdGl2ZV9zbGF2ZSk7Ci0JCWlmIChzbGF2 ZSkKLQkJCWJvbmRfZGV2X3F1ZXVlX3htaXQoYm9uZCwgc2tiLCBzbGF2ZS0+ZGV2KTsKLQkJZWxz ZQotCQkJYm9uZF94bWl0X3NsYXZlX2lkKGJvbmQsIHNrYiwgMCk7Ci0JfSBlbHNlIHsKLQkJaW50 IHNsYXZlX2NudCA9IFJFQURfT05DRShib25kLT5zbGF2ZV9jbnQpOworCWlmIChza2ItPnByb3Rv Y29sID09IGh0b25zKEVUSF9QX0lQKSkgeworCQlpbnQgbm9mZiA9IHNrYl9uZXR3b3JrX29mZnNl dChza2IpOworCQlzdHJ1Y3QgaXBoZHIgKmlwaDsKIAotCQlpZiAobGlrZWx5KHNsYXZlX2NudCkp IHsKLQkJCXNsYXZlX2lkID0gYm9uZF9ycl9nZW5fc2xhdmVfaWQoYm9uZCk7Ci0JCQlib25kX3ht aXRfc2xhdmVfaWQoYm9uZCwgc2tiLCBzbGF2ZV9pZCAlIHNsYXZlX2NudCk7Ci0JCX0gZWxzZSB7 Ci0JCQlib25kX3R4X2Ryb3AoYm9uZF9kZXYsIHNrYik7CisJCWlmICh1bmxpa2VseSghcHNrYl9t YXlfcHVsbChza2IsIG5vZmYgKyBzaXplb2YoKmlwaCkpKSkKKwkJCWdvdG8gbm9uX2lnbXA7CisK KwkJaXBoID0gaXBfaGRyKHNrYik7CisJCWlmIChpcGgtPnByb3RvY29sID09IElQUFJPVE9fSUdN UCkgeworCQkJc2xhdmUgPSByY3VfZGVyZWZlcmVuY2UoYm9uZC0+Y3Vycl9hY3RpdmVfc2xhdmUp OworCQkJaWYgKHNsYXZlKQorCQkJCWJvbmRfZGV2X3F1ZXVlX3htaXQoYm9uZCwgc2tiLCBzbGF2 ZS0+ZGV2KTsKKwkJCWVsc2UKKwkJCQlib25kX3htaXRfc2xhdmVfaWQoYm9uZCwgc2tiLCAwKTsK KwkJCXJldHVybiBORVRERVZfVFhfT0s7CiAJCX0KIAl9CiAKK25vbl9pZ21wOgorCXNsYXZlX2Nu dCA9IFJFQURfT05DRShib25kLT5zbGF2ZV9jbnQpOworCWlmIChsaWtlbHkoc2xhdmVfY250KSkg eworCQlzbGF2ZV9pZCA9IGJvbmRfcnJfZ2VuX3NsYXZlX2lkKGJvbmQpOworCQlib25kX3htaXRf c2xhdmVfaWQoYm9uZCwgc2tiLCBzbGF2ZV9pZCAlIHNsYXZlX2NudCk7CisJfSBlbHNlIHsKKwkJ Ym9uZF90eF9kcm9wKGJvbmRfZGV2LCBza2IpOworCX0KIAlyZXR1cm4gTkVUREVWX1RYX09LOwog fQogCi0tIAoyLjIwLjEKCgpGcm9tIGJmZTYwZjQ1OWI5MmRmMGViNDM1M2FkZjZhZTg3NTE4YWVh NjVkNDIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFRhZWhlZSBZb28gPGFwNDIwMDcz QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAxNSBKdWwgMjAxOSAxNDoxMDoxNyArMDkwMApTdWJqZWN0 OiBbUEFUQ0ggMDQvNDldIGNhaWYtaHNpOiBmaXggcG9zc2libGUgZGVhZGxvY2sgaW4gY2Zoc2lf ZXhpdF9tb2R1bGUoKQoKWyBVcHN0cmVhbSBjb21taXQgZmRkMjU4ZDQ5ZTg4YTllMGI0OWVmMDRh NTA2YTc5NmYxYzc2OGE4ZSBdCgpjZmhzaV9leGl0X21vZHVsZSgpIGNhbGxzIHVucmVnaXN0ZXJf bmV0ZGV2KCkgdW5kZXIgcnRubF9sb2NrKCkuCmJ1dCB1bnJlZ2lzdGVyX25ldGRldigpIGludGVy bmFsbHkgY2FsbHMgcnRubF9sb2NrKCkuClNvIGRlYWRsb2NrIHdvdWxkIG9jY3VyLgoKRml4ZXM6 IGM0MTI1NDAwNjM3NyAoImNhaWYtaHNpOiBBZGQgcnRubCBzdXBwb3J0IikKU2lnbmVkLW9mZi1i eTogVGFlaGVlIFlvbyA8YXA0MjAwNzNAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvY2FpZi9jYWlm X2hzaS5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9u KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvY2FpZi9jYWlmX2hzaS5jIGIvZHJpdmVycy9u ZXQvY2FpZi9jYWlmX2hzaS5jCmluZGV4IGIyZjEwYjZhZDZlNS4uYmJiMjU3NWQ0NzI4IDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9jYWlmL2NhaWZfaHNpLmMKKysrIGIvZHJpdmVycy9uZXQvY2Fp Zi9jYWlmX2hzaS5jCkBAIC0xNDU1LDcgKzE0NTUsNyBAQCBzdGF0aWMgdm9pZCBfX2V4aXQgY2Zo c2lfZXhpdF9tb2R1bGUodm9pZCkKIAlydG5sX2xvY2soKTsKIAlsaXN0X2Zvcl9lYWNoX3NhZmUo bGlzdF9ub2RlLCBuLCAmY2Zoc2lfbGlzdCkgewogCQljZmhzaSA9IGxpc3RfZW50cnkobGlzdF9u b2RlLCBzdHJ1Y3QgY2Zoc2ksIGxpc3QpOwotCQl1bnJlZ2lzdGVyX25ldGRldihjZmhzaS0+bmRl dik7CisJCXVucmVnaXN0ZXJfbmV0ZGV2aWNlKGNmaHNpLT5uZGV2KTsKIAl9CiAJcnRubF91bmxv Y2soKTsKIH0KLS0gCjIuMjAuMQoKCkZyb20gNmQ2YWYyZTU4N2Y0MTY5YjE2ZTk2ZmVkZDk2ZGU5 NjJhMzJhOWExMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSGFpeWFuZyBaaGFuZyA8 aGFpeWFuZ3pAbWljcm9zb2Z0LmNvbT4KRGF0ZTogRnJpLCAxOSBKdWwgMjAxOSAxNzozMzo1MSAr MDAwMApTdWJqZWN0OiBbUEFUQ0ggMDUvNDldIGh2X25ldHZzYzogRml4IGV4dHJhIHJjdV9yZWFk X3VubG9jayBpbgogbmV0dnNjX3JlY3ZfY2FsbGJhY2soKQoKWyBVcHN0cmVhbSBjb21taXQgYmU0 MzYzYmRmMGNlOTUzMGYxNWFhMGEwM2QxMDYwMzA0ZDExNmIxNSBdCgpUaGVyZSBpcyBhbiBleHRy YSByY3VfcmVhZF91bmxvY2sgbGVmdCBpbiBuZXR2c2NfcmVjdl9jYWxsYmFjaygpLAphZnRlciBh IHByZXZpb3VzIHBhdGNoIHRoYXQgcmVtb3ZlcyBSQ1UgZnJvbSB0aGlzIGZ1bmN0aW9uLgpUaGlz IHBhdGNoIHJlbW92ZXMgdGhlIGV4dHJhIFJDVSB1bmxvY2suCgpGaXhlczogMzQ1YWMwODk5MGI4 ICgiaHZfbmV0dnNjOiBwYXNzIG5ldHZzY19kZXZpY2UgdG8gcmVjZWl2ZSBjYWxsYmFjayIpClNp Z25lZC1vZmYtYnk6IEhhaXlhbmcgWmhhbmcgPGhhaXlhbmd6QG1pY3Jvc29mdC5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2 ZXJzL25ldC9oeXBlcnYvbmV0dnNjX2Rydi5jIHwgMSAtCiAxIGZpbGUgY2hhbmdlZCwgMSBkZWxl dGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMgYi9k cml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjX2Rydi5jCmluZGV4IGFmZGNjNTY2NGVhNi4uMzU0NGUx OTkxNTc5IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjX2Rydi5jCisrKyBi L2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMKQEAgLTgzNiw3ICs4MzYsNiBAQCBpbnQg bmV0dnNjX3JlY3ZfY2FsbGJhY2soc3RydWN0IG5ldF9kZXZpY2UgKm5ldCwKIAogCWlmICh1bmxp a2VseSghc2tiKSkgewogCQkrK25ldF9kZXZpY2VfY3R4LT5ldGhfc3RhdHMucnhfbm9fbWVtb3J5 OwotCQlyY3VfcmVhZF91bmxvY2soKTsKIAkJcmV0dXJuIE5WU1BfU1RBVF9GQUlMOwogCX0KIAot LSAKMi4yMC4xCgoKRnJvbSBmZTNiMTE2MWE1MmQzMmU5Njc1MzBmMWE3YTU3NmNiMDBmYmFiMjVh IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdv b2dsZS5jb20+CkRhdGU6IFRodSwgMjcgSnVuIDIwMTkgMDE6Mjc6MDEgLTA3MDAKU3ViamVjdDog W1BBVENIIDA2LzQ5XSBpZ21wOiBmaXggbWVtb3J5IGxlYWsgaW4gaWdtcHYzX2RlbF9kZWxyZWMo KQoKWyBVcHN0cmVhbSBjb21taXQgZTViMWM2YzYyNzdkNWEyODMyOTBhOGMwMzNjNzI1NDQ3NDZm OWI1YiBdCgppbS0+dG9tYiBhbmQvb3IgaW0tPnNvdXJjZXMgbWlnaHQgbm90IGJlIE5VTEwsIGJ1 dCB3ZQpjdXJyZW50bHkgb3ZlcndyaXRlIHRoZWlyIHZhbHVlcyBibGluZGx5LgoKVXNpbmcgc3dh cCgpIHdpbGwgbWFrZSBzdXJlIHRoZSBmb2xsb3dpbmcgY2FsbCB0byBrZnJlZV9wbWMocG1jKQp3 aWxsIHByb3Blcmx5IGZyZWUgdGhlIHBzZiBzdHJ1Y3R1cmVzLgoKVGVzdGVkIHdpdGggdGhlIEMg cmVwcm8gcHJvdmlkZWQgYnkgc3l6Ym90LCB3aGljaCBiYXNpY2FsbHkgZG9lcyA6Cgogc29ja2V0 KFBGX0lORVQsIFNPQ0tfREdSQU0sIElQUFJPVE9fSVApID0gMwogc2V0c29ja29wdCgzLCBTT0xf SVAsIElQX0FERF9NRU1CRVJTSElQLCAiXDM0MFwwXDBcMlwxNzdcMFwwXDFcMFwwXDBcMCIsIDEy KSA9IDAKIGlvY3RsKDMsIFNJT0NTSUZGTEFHUywge2lmcl9uYW1lPSJsbyIsIGlmcl9mbGFncz0w fSkgPSAwCiBzZXRzb2Nrb3B0KDMsIFNPTF9JUCwgSVBfTVNGSUxURVIsICJcMzQwXDBcMFwyXDE3 N1wwXDBcMVwxXDBcMFwwXDFcMFwwXDBcMzc3XDM3N1wzNzdcMzc3IiwgMjApID0gMAogaW9jdGwo MywgU0lPQ1NJRkZMQUdTLCB7aWZyX25hbWU9ImxvIiwgaWZyX2ZsYWdzPUlGRl9VUH0pID0gMAog ZXhpdF9ncm91cCgwKSAgICAgICAgICAgICAgICAgICAgPSA/CgpCVUc6IG1lbW9yeSBsZWFrCnVu cmVmZXJlbmNlZCBvYmplY3QgMHhmZmZmODg4MTE0NTBmMTQwIChzaXplIDY0KToKICBjb21tICJz b2Z0aXJxIiwgcGlkIDAsIGppZmZpZXMgNDI5NDk0MjQ0OCAoYWdlIDMyLjA3MHMpCiAgaGV4IGR1 bXAgKGZpcnN0IDMyIGJ5dGVzKToKICAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIGZmIGZmIGZm IGZmIDAwIDAwIDAwIDAwICAuLi4uLi4uLi4uLi4uLi4uCiAgICAwMCAwMCAwMCAwMCAwMCAwMCAw MCAwMCAwMSAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgLi4uLi4uLi4uLi4uLi4uLgogIGJhY2t0cmFj ZToKICAgIFs8MDAwMDAwMDBjN2JhZDA4Mz5dIGttZW1sZWFrX2FsbG9jX3JlY3Vyc2l2ZSBpbmNs dWRlL2xpbnV4L2ttZW1sZWFrLmg6NDMgW2lubGluZV0KICAgIFs8MDAwMDAwMDBjN2JhZDA4Mz5d IHNsYWJfcG9zdF9hbGxvY19ob29rIG1tL3NsYWIuaDo0MzkgW2lubGluZV0KICAgIFs8MDAwMDAw MDBjN2JhZDA4Mz5dIHNsYWJfYWxsb2MgbW0vc2xhYi5jOjMzMjYgW2lubGluZV0KICAgIFs8MDAw MDAwMDBjN2JhZDA4Mz5dIGttZW1fY2FjaGVfYWxsb2NfdHJhY2UrMHgxM2QvMHgyODAgbW0vc2xh Yi5jOjM1NTMKICAgIFs8MDAwMDAwMDA5YWNjNDE1MT5dIGttYWxsb2MgaW5jbHVkZS9saW51eC9z bGFiLmg6NTQ3IFtpbmxpbmVdCiAgICBbPDAwMDAwMDAwOWFjYzQxNTE+XSBremFsbG9jIGluY2x1 ZGUvbGludXgvc2xhYi5oOjc0MiBbaW5saW5lXQogICAgWzwwMDAwMDAwMDlhY2M0MTUxPl0gaXBf bWNfYWRkMV9zcmMgbmV0L2lwdjQvaWdtcC5jOjE5NzYgW2lubGluZV0KICAgIFs8MDAwMDAwMDA5 YWNjNDE1MT5dIGlwX21jX2FkZF9zcmMrMHgzNmIvMHg0MDAgbmV0L2lwdjQvaWdtcC5jOjIxMDAK ICAgIFs8MDAwMDAwMDA0YWMxNDU2Nj5dIGlwX21jX21zZmlsdGVyKzB4MjJkLzB4MzEwIG5ldC9p cHY0L2lnbXAuYzoyNDg0CiAgICBbPDAwMDAwMDAwNTJkOGY5OTU+XSBkb19pcF9zZXRzb2Nrb3B0 LmlzcmEuMCsweDE3OTUvMHgxOTMwIG5ldC9pcHY0L2lwX3NvY2tnbHVlLmM6OTU5CiAgICBbPDAw MDAwMDAwNGVlMWUyMWY+XSBpcF9zZXRzb2Nrb3B0KzB4M2IvMHhiMCBuZXQvaXB2NC9pcF9zb2Nr Z2x1ZS5jOjEyNDgKICAgIFs8MDAwMDAwMDA2NmNkZmU3ND5dIHVkcF9zZXRzb2Nrb3B0KzB4NGUv MHg5MCBuZXQvaXB2NC91ZHAuYzoyNjE4CiAgICBbPDAwMDAwMDAwOTM4M2E3ODY+XSBzb2NrX2Nv bW1vbl9zZXRzb2Nrb3B0KzB4MzgvMHg1MCBuZXQvY29yZS9zb2NrLmM6MzEyNgogICAgWzwwMDAw MDAwMGQ4YWMwYzk0Pl0gX19zeXNfc2V0c29ja29wdCsweDk4LzB4MTIwIG5ldC9zb2NrZXQuYzoy MDcyCiAgICBbPDAwMDAwMDAwMWIxZTk2NjY+XSBfX2RvX3N5c19zZXRzb2Nrb3B0IG5ldC9zb2Nr ZXQuYzoyMDgzIFtpbmxpbmVdCiAgICBbPDAwMDAwMDAwMWIxZTk2NjY+XSBfX3NlX3N5c19zZXRz b2Nrb3B0IG5ldC9zb2NrZXQuYzoyMDgwIFtpbmxpbmVdCiAgICBbPDAwMDAwMDAwMWIxZTk2NjY+ XSBfX3g2NF9zeXNfc2V0c29ja29wdCsweDI2LzB4MzAgbmV0L3NvY2tldC5jOjIwODAKICAgIFs8 MDAwMDAwMDA0MjBkMzk1ZT5dIGRvX3N5c2NhbGxfNjQrMHg3Ni8weDFhMCBhcmNoL3g4Ni9lbnRy eS9jb21tb24uYzozMDEKICAgIFs8MDAwMDAwMDA3ZmQ4M2E0Yj5dIGVudHJ5X1NZU0NBTExfNjRf YWZ0ZXJfaHdmcmFtZSsweDQ0LzB4YTkKCkZpeGVzOiAyNDgwM2YzOGE1YzAgKCJpZ21wOiBkbyBu b3QgcmVtb3ZlIGlnbXAgc291Y2UgbGlzdCBpbmZvIHdoZW4gc2V0IGxpbmsgZG93biIpClNpZ25l ZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQ2M6IEhhbmdiaW4g TGl1IDxsaXVoYW5nYmluQGdtYWlsLmNvbT4KUmVwb3J0ZWQtYnk6IHN5emJvdCs2Y2ExYWJkMGRi NjhiNTE3M2E0ZkBzeXprYWxsZXIuYXBwc3BvdG1haWwuY29tClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC9pZ21wLmMgfCA4 ICsrLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2lnbXAuYyBiL25ldC9pcHY0L2lnbXAuYwppbmRleCBh NTdmMGQ2OWVhZGIuLjg1MTA3YmY4MTJmMiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaWdtcC5jCisr KyBiL25ldC9pcHY0L2lnbXAuYwpAQCAtMTIyOCwxMiArMTIyOCw4IEBAIHN0YXRpYyB2b2lkIGln bXB2M19kZWxfZGVscmVjKHN0cnVjdCBpbl9kZXZpY2UgKmluX2Rldiwgc3RydWN0IGlwX21jX2xp c3QgKmltKQogCWlmIChwbWMpIHsKIAkJaW0tPmludGVyZmFjZSA9IHBtYy0+aW50ZXJmYWNlOwog CQlpZiAoaW0tPnNmbW9kZSA9PSBNQ0FTVF9JTkNMVURFKSB7Ci0JCQlpbS0+dG9tYiA9IHBtYy0+ dG9tYjsKLQkJCXBtYy0+dG9tYiA9IE5VTEw7Ci0KLQkJCWltLT5zb3VyY2VzID0gcG1jLT5zb3Vy Y2VzOwotCQkJcG1jLT5zb3VyY2VzID0gTlVMTDsKLQorCQkJc3dhcChpbS0+dG9tYiwgcG1jLT50 b21iKTsKKwkJCXN3YXAoaW0tPnNvdXJjZXMsIHBtYy0+c291cmNlcyk7CiAJCQlmb3IgKHBzZiA9 IGltLT5zb3VyY2VzOyBwc2Y7IHBzZiA9IHBzZi0+c2ZfbmV4dCkKIAkJCQlwc2YtPnNmX2NyY291 bnQgPSBpbl9kZXYtPm1yX3FydiA/OiBuZXQtPmlwdjQuc3lzY3RsX2lnbXBfcXJ2OwogCQl9IGVs c2UgewotLSAKMi4yMC4xCgoKRnJvbSA2MjQ2NTVlMzliZDMxN2ZjMGNiOTAwOWU3MWNlYWY0NjNk ZTJhMGY3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXR0ZW8gQ3JvY2UgPG1jcm9j ZUByZWRoYXQuY29tPgpEYXRlOiBNb24sIDEgSnVsIDIwMTkgMTk6MDE6NTUgKzAyMDAKU3ViamVj dDogW1BBVENIIDA3LzQ5XSBpcHY0OiBkb24ndCBzZXQgSVB2NiBvbmx5IGZsYWdzIHRvIElQdjQg YWRkcmVzc2VzCgpbIFVwc3RyZWFtIGNvbW1pdCAyZTYwNTQ2MzY4MTY1YzI0NDk1NjRkNzFmNjAw NWRkYTkyMDViNWZiIF0KCkF2b2lkIHRoZSBzaXR1YXRpb24gd2hlcmUgYW4gSVBWNiBvbmx5IGZs YWcgaXMgYXBwbGllZCB0byBhbiBJUHY0IGFkZHJlc3M6CgogICAgIyBpcCBhZGRyIGFkZCAxOTIu MC4yLjEvMjQgZGV2IGR1bW15MCBub2RhZCBob21lIG1uZ3RtcGFkZHIgbm9wcmVmaXhyb3V0ZQog ICAgIyBpcCAtNCBhZGRyIHNob3cgZGV2IGR1bW15MAogICAgMjogZHVtbXkwOiA8QlJPQURDQVNU LE5PQVJQLFVQLExPV0VSX1VQPiBtdHUgMTUwMCBxZGlzYyBub3F1ZXVlIHN0YXRlIFVOS05PV04g Z3JvdXAgZGVmYXVsdCBxbGVuIDEwMDAKICAgICAgICBpbmV0IDE5Mi4wLjIuMS8yNCBzY29wZSBn bG9iYWwgbm9wcmVmaXhyb3V0ZSBkdW1teTAKICAgICAgICAgICB2YWxpZF9sZnQgZm9yZXZlciBw cmVmZXJyZWRfbGZ0IGZvcmV2ZXIKCk9yIHdvcnNlLCBieSBzZW5kaW5nIGEgbWFsaWNpb3VzIG5l dGxpbmsgY29tbWFuZDoKCiAgICAjIGlwIC00IGFkZHIgc2hvdyBkZXYgZHVtbXkwCiAgICAyOiBk dW1teTA6IDxCUk9BRENBU1QsTk9BUlAsVVAsTE9XRVJfVVA+IG10dSAxNTAwIHFkaXNjIG5vcXVl dWUgc3RhdGUgVU5LTk9XTiBncm91cCBkZWZhdWx0IHFsZW4gMTAwMAogICAgICAgIGluZXQgMTky LjAuMi4xLzI0IHNjb3BlIGdsb2JhbCBub2RhZCBvcHRpbWlzdGljIGRhZGZhaWxlZCBob21lIHRl bnRhdGl2ZSBtbmd0bXBhZGRyIG5vcHJlZml4cm91dGUgc3RhYmxlLXByaXZhY3kgZHVtbXkwCiAg ICAgICAgICAgdmFsaWRfbGZ0IGZvcmV2ZXIgcHJlZmVycmVkX2xmdCBmb3JldmVyCgpTaWduZWQt b2ZmLWJ5OiBNYXR0ZW8gQ3JvY2UgPG1jcm9jZUByZWRoYXQuY29tPgpSZXZpZXdlZC1ieTogRGF2 aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvZGV2aW5ldC5jIHwgOCArKysr KysrKwogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9p cHY0L2RldmluZXQuYyBiL25ldC9pcHY0L2RldmluZXQuYwppbmRleCBjNmJkMGY3YTAyMGEuLmM1 ZWJmYTE5OTc5NCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvZGV2aW5ldC5jCisrKyBiL25ldC9pcHY0 L2RldmluZXQuYwpAQCAtNjIsNiArNjIsMTEgQEAKICNpbmNsdWRlIDxuZXQvbmV0X25hbWVzcGFj ZS5oPgogI2luY2x1ZGUgPG5ldC9hZGRyY29uZi5oPgogCisjZGVmaW5lIElQVjZPTkxZX0ZMQUdT CVwKKwkJKElGQV9GX05PREFEIHwgSUZBX0ZfT1BUSU1JU1RJQyB8IElGQV9GX0RBREZBSUxFRCB8 IFwKKwkJIElGQV9GX0hPTUVBRERSRVNTIHwgSUZBX0ZfVEVOVEFUSVZFIHwgXAorCQkgSUZBX0Zf TUFOQUdFVEVNUEFERFIgfCBJRkFfRl9TVEFCTEVfUFJJVkFDWSkKKwogc3RhdGljIHN0cnVjdCBp cHY0X2RldmNvbmYgaXB2NF9kZXZjb25mID0gewogCS5kYXRhID0gewogCQlbSVBWNF9ERVZDT05G X0FDQ0VQVF9SRURJUkVDVFMgLSAxXSA9IDEsCkBAIC00NjgsNiArNDczLDkgQEAgc3RhdGljIGlu dCBfX2luZXRfaW5zZXJ0X2lmYShzdHJ1Y3QgaW5faWZhZGRyICppZmEsIHN0cnVjdCBubG1zZ2hk ciAqbmxoLAogCWlmYS0+aWZhX2ZsYWdzICY9IH5JRkFfRl9TRUNPTkRBUlk7CiAJbGFzdF9wcmlt YXJ5ID0gJmluX2Rldi0+aWZhX2xpc3Q7CiAKKwkvKiBEb24ndCBzZXQgSVB2NiBvbmx5IGZsYWdz IHRvIElQdjQgYWRkcmVzc2VzICovCisJaWZhLT5pZmFfZmxhZ3MgJj0gfklQVjZPTkxZX0ZMQUdT OworCiAJZm9yIChpZmFwID0gJmluX2Rldi0+aWZhX2xpc3Q7IChpZmExID0gKmlmYXApICE9IE5V TEw7CiAJICAgICBpZmFwID0gJmlmYTEtPmlmYV9uZXh0KSB7CiAJCWlmICghKGlmYTEtPmlmYV9m bGFncyAmIElGQV9GX1NFQ09OREFSWSkgJiYKLS0gCjIuMjAuMQoKCkZyb20gOTI0Nzk0MDg4OThh MDliYzRjMTY3YjU0ZDE2M2VjYmMyNWYwMTg0YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpEYXRlOiBXZWQsIDE3IEp1bCAyMDE5 IDE1OjA4OjQzIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwOC80OV0gaXB2NjogcnQ2X2NoZWNrIHNo b3VsZCByZXR1cm4gTlVMTCBpZiAnZnJvbScgaXMgTlVMTAoKWyBVcHN0cmVhbSBjb21taXQgNDlk MDVmZTJjOWQxYjRhMjc3NjFjOTgwN2ZlYzM5YjgxNTViZWY5ZSBdCgpQYXVsIHJlcG9ydGVkIHRo YXQgbDJ0cCBzZXNzaW9ucyB3ZXJlIGJyb2tlbiBhZnRlciB0aGUgY29tbWl0IHJlZmVyZW5jZWQK aW4gdGhlIEZpeGVzIHRhZy4gUHJpb3IgdG8gdGhpcyBjb21taXQgcnQ2X2NoZWNrIHJldHVybmVk IE5VTEwgaWYgdGhlCnJ0Nl9pbmZvICdmcm9tJyB3YXMgTlVMTCAtIGllLiwgdGhlIGRzdF9lbnRy eSB3YXMgZGlzY29ubmVjdGVkIGZyb20gYSBGSUIKZW50cnkuIFJlc3RvcmUgdGhhdCBiZWhhdmlv ci4KCkZpeGVzOiA5MzUzMWM2NzQzMTUgKCJuZXQvaXB2Njogc2VwYXJhdGUgaGFuZGxpbmcgb2Yg RklCIGVudHJpZXMgZnJvbSBkc3QgYmFzZWQgcm91dGVzIikKUmVwb3J0ZWQtYnk6IFBhdWwgRG9u b2h1ZSA8bGludXgta2VybmVsQFBhdWxTRC5jb20+ClRlc3RlZC1ieTogUGF1bCBEb25vaHVlIDxs aW51eC1rZXJuZWxAUGF1bFNELmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgQWhlcm4gPGRzYWhl cm5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvcm91dGUuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAx IGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L3JvdXRl LmMgYi9uZXQvaXB2Ni9yb3V0ZS5jCmluZGV4IDk3YTg0M2NmMTY0Yy4uNWY1YTBhNDJjZTYwIDEw MDY0NAotLS0gYS9uZXQvaXB2Ni9yb3V0ZS5jCisrKyBiL25ldC9pcHY2L3JvdXRlLmMKQEAgLTIy MTUsNyArMjIxNSw3IEBAIHN0YXRpYyBzdHJ1Y3QgZHN0X2VudHJ5ICpydDZfY2hlY2soc3RydWN0 IHJ0Nl9pbmZvICpydCwKIHsKIAl1MzIgcnRfY29va2llID0gMDsKIAotCWlmICgoZnJvbSAmJiAh ZmliNl9nZXRfY29va2llX3NhZmUoZnJvbSwgJnJ0X2Nvb2tpZSkpIHx8CisJaWYgKCFmcm9tIHx8 ICFmaWI2X2dldF9jb29raWVfc2FmZShmcm9tLCAmcnRfY29va2llKSB8fAogCSAgICBydF9jb29r aWUgIT0gY29va2llKQogCQlyZXR1cm4gTlVMTDsKIAotLSAKMi4yMC4xCgoKRnJvbSAxMzcwODg1 ZWE1NWExNzk1ZDFhNTg3ODMyZjU5NzEyMjUwODEzMWNiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBJZG8gU2NoaW1tZWwgPGlkb3NjaEBtZWxsYW5veC5jb20+CkRhdGU6IFdlZCwgMTcg SnVsIDIwMTkgMjM6Mzk6MzMgKzAzMDAKU3ViamVjdDogW1BBVENIIDA5LzQ5XSBpcHY2OiBVbmxp bmsgc2libGluZyByb3V0ZSBpbiBjYXNlIG9mIGZhaWx1cmUKClsgVXBzdHJlYW0gY29tbWl0IDU0 ODUxYWE5MGNmMjcwNDFkNjRiMTJmNjVhYzcyZTlmOTdiZDkwZmQgXQoKV2hlbiBhIHJvdXRlIG5l ZWRzIHRvIGJlIGFwcGVuZGVkIHRvIGFuIGV4aXN0aW5nIG11bHRpcGF0aCByb3V0ZSwKZmliNl9h ZGRfcnQybm9kZSgpIGZpcnN0IGFwcGVuZHMgaXQgdG8gdGhlIHNpYmxpbmdzIGxpc3QgYW5kIGlu Y3JlbWVudHMKdGhlIG51bWJlciBvZiBzaWJsaW5nIHJvdXRlcyBvbiBlYWNoIHNpYmxpbmcuCgpM YXRlciwgdGhlIGZ1bmN0aW9uIG5vdGlmaWVzIHRoZSByb3V0ZSB2aWEgY2FsbF9maWI2X2VudHJ5 X25vdGlmaWVycygpLgpJbiBjYXNlIHRoZSBub3RpZmljYXRpb24gaXMgdmV0b2VkLCB0aGUgcm91 dGUgaXMgbm90IHVubGlua2VkIGZyb20gdGhlCnNpYmxpbmdzIGxpc3QsIHdoaWNoIGNhbiByZXN1 bHQgaW4gYSB1c2UtYWZ0ZXItZnJlZS4KCkZpeCB0aGlzIGJ5IHVubGlua2luZyB0aGUgcm91dGUg ZnJvbSB0aGUgc2libGluZ3MgbGlzdCBiZWZvcmUgcmV0dXJuaW5nCmFuIGVycm9yLgoKQXVkaXRl ZCB0aGUgcmVzdCBvZiB0aGUgY2FsbCBzaXRlcyBmcm9tIHdoaWNoIHRoZSBGSUIgbm90aWZpY2F0 aW9uIGNoYWluCmlzIGNhbGxlZCBhbmQgY291bGQgbm90IGZpbmQgbW9yZSBwcm9ibGVtcy4KCkZp eGVzOiAyMjMzMDAwY2JhNDAgKCJuZXQvaXB2NjogTW92ZSBjYWxsX2ZpYjZfZW50cnlfbm90aWZp ZXJzIHVwIGZvciByb3V0ZSBhZGRzIikKU2lnbmVkLW9mZi1ieTogSWRvIFNjaGltbWVsIDxpZG9z Y2hAbWVsbGFub3guY29tPgpSZXBvcnRlZC1ieTogQWxleGFuZGVyIFBldHJvdnNraXkgPGFsZXhw ZUBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBEYXZpZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBuZXQvaXB2Ni9pcDZfZmliLmMgfCAxOCArKysrKysrKysrKysrKysrKy0KIDEgZmlsZSBj aGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0 L2lwdjYvaXA2X2ZpYi5jIGIvbmV0L2lwdjYvaXA2X2ZpYi5jCmluZGV4IDkxODBjOGI2Zjc2NC4u NDU1ZjEyOTJlNDc5IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9pcDZfZmliLmMKKysrIGIvbmV0L2lw djYvaXA2X2ZpYi5jCkBAIC0xMTA0LDggKzExMDQsMjQgQEAgc3RhdGljIGludCBmaWI2X2FkZF9y dDJub2RlKHN0cnVjdCBmaWI2X25vZGUgKmZuLCBzdHJ1Y3QgZmliNl9pbmZvICpydCwKIAkJZXJy ID0gY2FsbF9maWI2X2VudHJ5X25vdGlmaWVycyhpbmZvLT5ubF9uZXQsCiAJCQkJCQlGSUJfRVZF TlRfRU5UUllfQURELAogCQkJCQkJcnQsIGV4dGFjayk7Ci0JCWlmIChlcnIpCisJCWlmIChlcnIp IHsKKwkJCXN0cnVjdCBmaWI2X2luZm8gKnNpYmxpbmcsICpuZXh0X3NpYmxpbmc7CisKKwkJCS8q IElmIHRoZSByb3V0ZSBoYXMgc2libGluZ3MsIHRoZW4gaXQgZmlyc3QKKwkJCSAqIG5lZWRzIHRv IGJlIHVubGlua2VkIGZyb20gdGhlbS4KKwkJCSAqLworCQkJaWYgKCFydC0+ZmliNl9uc2libGlu Z3MpCisJCQkJcmV0dXJuIGVycjsKKworCQkJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHNpYmxp bmcsIG5leHRfc2libGluZywKKwkJCQkJCSAmcnQtPmZpYjZfc2libGluZ3MsCisJCQkJCQkgZmli Nl9zaWJsaW5ncykKKwkJCQlzaWJsaW5nLT5maWI2X25zaWJsaW5ncy0tOworCQkJcnQtPmZpYjZf bnNpYmxpbmdzID0gMDsKKwkJCWxpc3RfZGVsX2luaXQoJnJ0LT5maWI2X3NpYmxpbmdzKTsKKwkJ CXJ0Nl9tdWx0aXBhdGhfcmViYWxhbmNlKG5leHRfc2libGluZyk7CiAJCQlyZXR1cm4gZXJyOwor CQl9CiAKIAkJcmN1X2Fzc2lnbl9wb2ludGVyKHJ0LT5maWI2X25leHQsIGl0ZXIpOwogCQlmaWI2 X2luZm9faG9sZChydCk7Ci0tIAoyLjIwLjEKCgpGcm9tIDMwZWUwZGQyY2E4YWRhNDY3OWE5NDJm NjE1ZTNlYjAxNWI5ZWI3ZDIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEp1c3RpbiBD aGVuIDxqdXN0aW5wb3BvNkBnbWFpbC5jb20+CkRhdGU6IFdlZCwgMTcgSnVsIDIwMTkgMTQ6NTg6 NTMgLTA3MDAKU3ViamVjdDogW1BBVENIIDEwLzQ5XSBuZXQ6IGJjbWdlbmV0OiB1c2UgcHJvbWlz YyBmb3IgdW5zdXBwb3J0ZWQgZmlsdGVycwoKWyBVcHN0cmVhbSBjb21taXQgMzVjYmVmOTg2MzY0 MGYwNjEwNzE0NDY4N2JkMTMxNTFiYzJlOGNlMyBdCgpDdXJyZW50bHkgd2Ugc2lsZW50bHkgaWdu b3JlIGZpbHRlcnMgaWYgd2UgY2Fubm90IG1lZXQgdGhlIGZpbHRlcgpyZXF1aXJlbWVudHMuIFRo aXMgd2lsbCBsZWFkIHRvIHRoZSBNQUMgZHJvcHBpbmcgcGFja2V0cyB0aGF0IGFyZQpleHBlY3Rl ZCB0byBwYXNzLiBBIGJldHRlciBzb2x1dGlvbiB3b3VsZCBiZSB0byBzZXQgdGhlIE5JQyB0byBw cm9taXNjCm1vZGUgd2hlbiB0aGUgcmVxdWlyZWQgZmlsdGVycyBjYW5ub3QgYmUgbWV0LgoKQWxz byBjb3JyZWN0IHRoZSBudW1iZXIgb2YgTURGIGZpbHRlcnMgc3VwcG9ydGVkLiBJdCBzaG91bGQg YmUgMTcsCm5vdCAxNi4KClNpZ25lZC1vZmYtYnk6IEp1c3RpbiBDaGVuIDxqdXN0aW5wb3BvNkBn bWFpbC5jb20+ClJldmlld2VkLWJ5OiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWls LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIC4uLi9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtZ2VuZXQuYyAgICB8IDU3 ICsrKysrKysrKy0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyNiBpbnNlcnRpb25zKCspLCAz MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNv bS9nZW5ldC9iY21nZW5ldC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQv YmNtZ2VuZXQuYwppbmRleCA0MWI1MGU2NTcwZWEuLjIzNjliNGJkNjNlMyAxMDA2NDQKLS0tIGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtZ2VuZXQuYworKysgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21nZW5ldC5jCkBAIC0zMDgzLDM5ICsz MDgzLDQyIEBAIHN0YXRpYyB2b2lkIGJjbWdlbmV0X3RpbWVvdXQoc3RydWN0IG5ldF9kZXZpY2Ug KmRldikKIAluZXRpZl90eF93YWtlX2FsbF9xdWV1ZXMoZGV2KTsKIH0KIAotI2RlZmluZSBNQVhf TUNfQ09VTlQJMTYKKyNkZWZpbmUgTUFYX01ERl9GSUxURVIJMTcKIAogc3RhdGljIGlubGluZSB2 b2lkIGJjbWdlbmV0X3NldF9tZGZfYWRkcihzdHJ1Y3QgYmNtZ2VuZXRfcHJpdiAqcHJpdiwKIAkJ CQkJIHVuc2lnbmVkIGNoYXIgKmFkZHIsCi0JCQkJCSBpbnQgKmksCi0JCQkJCSBpbnQgKm1jKQor CQkJCQkgaW50ICppKQogewotCXUzMiByZWc7Ci0KIAliY21nZW5ldF91bWFjX3dyaXRlbChwcml2 LCBhZGRyWzBdIDw8IDggfCBhZGRyWzFdLAogCQkJICAgICBVTUFDX01ERl9BRERSICsgKCppICog NCkpOwogCWJjbWdlbmV0X3VtYWNfd3JpdGVsKHByaXYsIGFkZHJbMl0gPDwgMjQgfCBhZGRyWzNd IDw8IDE2IHwKIAkJCSAgICAgYWRkcls0XSA8PCA4IHwgYWRkcls1XSwKIAkJCSAgICAgVU1BQ19N REZfQUREUiArICgoKmkgKyAxKSAqIDQpKTsKLQlyZWcgPSBiY21nZW5ldF91bWFjX3JlYWRsKHBy aXYsIFVNQUNfTURGX0NUUkwpOwotCXJlZyB8PSAoMSA8PCAoTUFYX01DX0NPVU5UIC0gKm1jKSk7 Ci0JYmNtZ2VuZXRfdW1hY193cml0ZWwocHJpdiwgcmVnLCBVTUFDX01ERl9DVFJMKTsKIAkqaSAr PSAyOwotCSgqbWMpKys7CiB9CiAKIHN0YXRpYyB2b2lkIGJjbWdlbmV0X3NldF9yeF9tb2RlKHN0 cnVjdCBuZXRfZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGJjbWdlbmV0X3ByaXYgKnByaXYgPSBu ZXRkZXZfcHJpdihkZXYpOwogCXN0cnVjdCBuZXRkZXZfaHdfYWRkciAqaGE7Ci0JaW50IGksIG1j OworCWludCBpLCBuZmlsdGVyOwogCXUzMiByZWc7CiAKIAluZXRpZl9kYmcocHJpdiwgaHcsIGRl diwgIiVzOiAlMDhYXG4iLCBfX2Z1bmNfXywgZGV2LT5mbGFncyk7CiAKLQkvKiBQcm9taXNjdW91 cyBtb2RlICovCisJLyogTnVtYmVyIG9mIGZpbHRlcnMgbmVlZGVkICovCisJbmZpbHRlciA9IG5l dGRldl91Y19jb3VudChkZXYpICsgbmV0ZGV2X21jX2NvdW50KGRldikgKyAyOworCisJLyoKKwkg KiBUdXJuIG9uIHByb21pY3VvdXMgbW9kZSBmb3IgdGhyZWUgc2NlbmFyaW9zCisJICogMS4gSUZG X1BST01JU0MgZmxhZyBpcyBzZXQKKwkgKiAyLiBJRkZfQUxMTVVMVEkgZmxhZyBpcyBzZXQKKwkg KiAzLiBUaGUgbnVtYmVyIG9mIGZpbHRlcnMgbmVlZGVkIGV4Y2VlZHMgdGhlIG51bWJlciBmaWx0 ZXJzCisJICogICAgc3VwcG9ydGVkIGJ5IHRoZSBoYXJkd2FyZS4KKwkqLwogCXJlZyA9IGJjbWdl bmV0X3VtYWNfcmVhZGwocHJpdiwgVU1BQ19DTUQpOwotCWlmIChkZXYtPmZsYWdzICYgSUZGX1BS T01JU0MpIHsKKwlpZiAoKGRldi0+ZmxhZ3MgJiAoSUZGX1BST01JU0MgfCBJRkZfQUxMTVVMVEkp KSB8fAorCSAgICAobmZpbHRlciA+IE1BWF9NREZfRklMVEVSKSkgewogCQlyZWcgfD0gQ01EX1BS T01JU0M7CiAJCWJjbWdlbmV0X3VtYWNfd3JpdGVsKHByaXYsIHJlZywgVU1BQ19DTUQpOwogCQli Y21nZW5ldF91bWFjX3dyaXRlbChwcml2LCAwLCBVTUFDX01ERl9DVFJMKTsKQEAgLTMxMjUsMzIg KzMxMjgsMjQgQEAgc3RhdGljIHZvaWQgYmNtZ2VuZXRfc2V0X3J4X21vZGUoc3RydWN0IG5ldF9k ZXZpY2UgKmRldikKIAkJYmNtZ2VuZXRfdW1hY193cml0ZWwocHJpdiwgcmVnLCBVTUFDX0NNRCk7 CiAJfQogCi0JLyogVW5pTWFjIGRvZXNuJ3Qgc3VwcG9ydCBBTExNVUxUSSAqLwotCWlmIChkZXYt PmZsYWdzICYgSUZGX0FMTE1VTFRJKSB7Ci0JCW5ldGRldl93YXJuKGRldiwgIkFMTE1VTFRJIGlz IG5vdCBzdXBwb3J0ZWRcbiIpOwotCQlyZXR1cm47Ci0JfQotCiAJLyogdXBkYXRlIE1ERiBmaWx0 ZXIgKi8KIAlpID0gMDsKLQltYyA9IDA7CiAJLyogQnJvYWRjYXN0ICovCi0JYmNtZ2VuZXRfc2V0 X21kZl9hZGRyKHByaXYsIGRldi0+YnJvYWRjYXN0LCAmaSwgJm1jKTsKKwliY21nZW5ldF9zZXRf bWRmX2FkZHIocHJpdiwgZGV2LT5icm9hZGNhc3QsICZpKTsKIAkvKiBteSBvd24gYWRkcmVzcy4q LwotCWJjbWdlbmV0X3NldF9tZGZfYWRkcihwcml2LCBkZXYtPmRldl9hZGRyLCAmaSwgJm1jKTsK LQkvKiBVbmljYXN0IGxpc3QqLwotCWlmIChuZXRkZXZfdWNfY291bnQoZGV2KSA+IChNQVhfTUNf Q09VTlQgLSBtYykpCi0JCXJldHVybjsKKwliY21nZW5ldF9zZXRfbWRmX2FkZHIocHJpdiwgZGV2 LT5kZXZfYWRkciwgJmkpOwogCi0JaWYgKCFuZXRkZXZfdWNfZW1wdHkoZGV2KSkKLQkJbmV0ZGV2 X2Zvcl9lYWNoX3VjX2FkZHIoaGEsIGRldikKLQkJCWJjbWdlbmV0X3NldF9tZGZfYWRkcihwcml2 LCBoYS0+YWRkciwgJmksICZtYyk7Ci0JLyogTXVsdGljYXN0ICovCi0JaWYgKG5ldGRldl9tY19l bXB0eShkZXYpIHx8IG5ldGRldl9tY19jb3VudChkZXYpID49IChNQVhfTUNfQ09VTlQgLSBtYykp Ci0JCXJldHVybjsKKwkvKiBVbmljYXN0ICovCisJbmV0ZGV2X2Zvcl9lYWNoX3VjX2FkZHIoaGEs IGRldikKKwkJYmNtZ2VuZXRfc2V0X21kZl9hZGRyKHByaXYsIGhhLT5hZGRyLCAmaSk7CiAKKwkv KiBNdWx0aWNhc3QgKi8KIAluZXRkZXZfZm9yX2VhY2hfbWNfYWRkcihoYSwgZGV2KQotCQliY21n ZW5ldF9zZXRfbWRmX2FkZHIocHJpdiwgaGEtPmFkZHIsICZpLCAmbWMpOworCQliY21nZW5ldF9z ZXRfbWRmX2FkZHIocHJpdiwgaGEtPmFkZHIsICZpKTsKKworCS8qIEVuYWJsZSBmaWx0ZXJzICov CisJcmVnID0gR0VOTUFTSyhNQVhfTURGX0ZJTFRFUiAtIDEsIE1BWF9NREZfRklMVEVSIC0gbmZp bHRlcik7CisJYmNtZ2VuZXRfdW1hY193cml0ZWwocHJpdiwgcmVnLCBVTUFDX01ERl9DVFJMKTsK IH0KIAogLyogU2V0IHRoZSBoYXJkd2FyZSBNQUMgYWRkcmVzcy4gKi8KLS0gCjIuMjAuMQoKCkZy b20gNzc1NzEwMjA0YjU0YWNmZDhlMTQ4YTg1NTE2MTMwM2FhN2JhNDMwNyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogQmFydWNoIFNpYWNoIDxiYXJ1Y2hAdGtvcy5jby5pbD4KRGF0ZTog VGh1LCAyNyBKdW4gMjAxOSAyMToxNzozOSArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMTEvNDldIG5l dDogZHNhOiBtdjg4ZTZ4eHg6IHdhaXQgYWZ0ZXIgcmVzZXQgZGVhY3RpdmF0aW9uCgpbIFVwc3Ry ZWFtIGNvbW1pdCA3Yjc1ZTQ5ZGU0MjRjZWI1M2QxM2U2MGYzNWQwYTczNzY1NjI2ZmRhIF0KCkFk ZCBhIDFtcyBkZWxheSBhZnRlciByZXNldCBkZWFjdGl2YXRpb24uIE90aGVyd2lzZSB0aGUgY2hp cCByZXR1cm5zCmJvZ3VzIElEIHZhbHVlLiBUaGlzIGlzIG9ic2VydmVkIHdpdGggODhFNjM5MCAo UGVyaWRvdCkgY2hpcC4KClNpZ25lZC1vZmYtYnk6IEJhcnVjaCBTaWFjaCA8YmFydWNoQHRrb3Mu Y28uaWw+ClJldmlld2VkLWJ5OiBBbmRyZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJz L25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYyB8IDIgKysKIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2Vy dGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYyBi L2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jCmluZGV4IDA2M2M3YTY3MWI0MS4uMmU4 YjFhYjJjNmY3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYwor KysgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYwpAQCAtNDcxMSw2ICs0NzExLDgg QEAgc3RhdGljIGludCBtdjg4ZTZ4eHhfcHJvYmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2 KQogCQllcnIgPSBQVFJfRVJSKGNoaXAtPnJlc2V0KTsKIAkJZ290byBvdXQ7CiAJfQorCWlmIChj aGlwLT5yZXNldCkKKwkJdXNsZWVwX3JhbmdlKDEwMDAsIDIwMDApOwogCiAJZXJyID0gbXY4OGU2 eHh4X2RldGVjdChjaGlwKTsKIAlpZiAoZXJyKQotLSAKMi4yMC4xCgoKRnJvbSA1NTgxMzgyZDc3 Mzg3ZjVkYWJjZmUzMTFmNGQ1ZDI5MzM2ZDc1ZGE5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBGbG9yaWFuIFdlc3RwaGFsIDxmd0BzdHJsZW4uZGU+CkRhdGU6IFdlZCwgMjYgSnVuIDIw MTkgMjA6NDA6NDUgKzAyMDAKU3ViamVjdDogW1BBVENIIDEyLzQ5XSBuZXQ6IG1ha2Ugc2tiX2Rz dF9mb3JjZSByZXR1cm4gdHJ1ZSB3aGVuIGRzdCBpcwogcmVmY291bnRlZAoKWyBVcHN0cmVhbSBj b21taXQgYjYwYTc3Mzg2YjFkNDg2OGY3MmY2MzUzZDM1ZGFiZTVmYmU5ODFmMiBdCgpuZXRmaWx0 ZXIgZGlkIG5vdCBleHBlY3QgdGhhdCBza2JfZHN0X2ZvcmNlKCkgY2FuIGNhdXNlIHNrYiB0byBs b3NlIGl0cwpkc3QgZW50cnkuCgpJIGdvdCBhIGJ1ZyByZXBvcnQgd2l0aCBhIHNrYi0+ZHN0IE5V TEwgZGVyZWZlcmVuY2UgaW4gbmV0ZmlsdGVyCm91dHB1dCBwYXRoLiAgVGhlIGJhY2t0cmFjZSBj b250YWlucyBuZl9yZWluamVjdCgpLCBzbyB0aGUgZHN0IG1pZ2h0IGhhdmUKYmVlbiBjbGVhcmVk IHdoZW4gc2tiIGdvdCBxdWV1ZWQgdG8gdXNlcnNwYWNlLgoKT3RoZXIgdXNlcnMgd2VyZSBmaXhl ZCB2aWEKaWYgKHNrYl9kc3Qoc2tiKSkgewoJc2tiX2RzdF9mb3JjZShza2IpOwoJaWYgKCFza2Jf ZHN0KHNrYikpCgkJZ290byBoYW5kbGVfZXJyOwp9CgpCdXQgSSB0aGluayBpdHMgcHJlZmVyYWJs ZSB0byBtYWtlIHRoZSAnZHN0IG1pZ2h0IGJlIGNsZWFyZWQnIHBhcnQKb2YgdGhlIGZ1bmN0aW9u IGV4cGxpY2l0LgoKSW4gbmV0ZmlsdGVyIGNhc2UsIHNrYiB3aXRoIGEgbnVsbCBkc3QgaXMgZXhw ZWN0ZWQgd2hlbiBxdWV1ZWluZyBpbgpwcmVyb3V0aW5nIGhvb2ssIHNvIGRyb3Agc2tiIGZvciB0 aGUgb3RoZXIgaG9va3MuCgp2MjoKIHYxIG9mIHRoaXMgcGF0Y2ggcmV0dXJuZWQgdHJ1ZSBpbiBj YXNlIHNrYiBoYWQgbm8gZHN0IGVudHJ5LgogRXJpYyBzYWlkOgogICBTYXkgaWYgd2UgaGF2ZSB0 d28gc2tiX2RzdF9mb3JjZSgpIGNhbGxzIGZvciBzb21lIHJlYXNvbgogICBvbiB0aGUgc2FtZSBz a2IsIG9ubHkgdGhlIGZpcnN0IG9uZSB3aWxsIHJldHVybiBmYWxzZS4KCiBUaGlzIG5vdyByZXR1 cm5zIGZhbHNlIGV2ZW4gd2hlbiBza2IgaGFkIG5vIGRzdCwgYXMgcGVyIEVyaWNzCiBzdWdnZXN0 aW9uLCBzbyBjYWxsZXJzIG1pZ2h0IG5lZWQgdG8gY2hlY2sgc2tiX2RzdCgpIGZpcnN0IGJlZm9y ZQogc2tiX2RzdF9mb3JjZSgpLgoKU2lnbmVkLW9mZi1ieTogRmxvcmlhbiBXZXN0cGhhbCA8ZndA c3RybGVuLmRlPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQvZHN0LmggICAgICAgIHwgNSArKysrLQogbmV0L25ldGZp bHRlci9uZl9xdWV1ZS5jIHwgNiArKysrKy0KIDIgZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRpb25z KCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2RzdC5oIGIvaW5j bHVkZS9uZXQvZHN0LmgKaW5kZXggMTJiMzFjNjAyY2IwLi5mODIwNmQzZmVkMmYgMTAwNjQ0Ci0t LSBhL2luY2x1ZGUvbmV0L2RzdC5oCisrKyBiL2luY2x1ZGUvbmV0L2RzdC5oCkBAIC0zMDIsOCAr MzAyLDkgQEAgc3RhdGljIGlubGluZSBib29sIGRzdF9ob2xkX3NhZmUoc3RydWN0IGRzdF9lbnRy eSAqZHN0KQogICogQHNrYjogYnVmZmVyCiAgKgogICogSWYgZHN0IGlzIG5vdCB5ZXQgcmVmY291 bnRlZCBhbmQgbm90IGRlc3Ryb3llZCwgZ3JhYiBhIHJlZiBvbiBpdC4KKyAqIFJldHVybnMgdHJ1 ZSBpZiBkc3QgaXMgcmVmY291bnRlZC4KICAqLwotc3RhdGljIGlubGluZSB2b2lkIHNrYl9kc3Rf Zm9yY2Uoc3RydWN0IHNrX2J1ZmYgKnNrYikKK3N0YXRpYyBpbmxpbmUgYm9vbCBza2JfZHN0X2Zv cmNlKHN0cnVjdCBza19idWZmICpza2IpCiB7CiAJaWYgKHNrYl9kc3RfaXNfbm9yZWYoc2tiKSkg ewogCQlzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QgPSBza2JfZHN0KHNrYik7CkBAIC0zMTQsNiArMzE1 LDggQEAgc3RhdGljIGlubGluZSB2b2lkIHNrYl9kc3RfZm9yY2Uoc3RydWN0IHNrX2J1ZmYgKnNr YikKIAogCQlza2ItPl9za2JfcmVmZHN0ID0gKHVuc2lnbmVkIGxvbmcpZHN0OwogCX0KKworCXJl dHVybiBza2ItPl9za2JfcmVmZHN0ICE9IDBVTDsKIH0KIAogCmRpZmYgLS1naXQgYS9uZXQvbmV0 ZmlsdGVyL25mX3F1ZXVlLmMgYi9uZXQvbmV0ZmlsdGVyL25mX3F1ZXVlLmMKaW5kZXggYjViMmJl NTVjYTgyLi4yYzQ0MDAxNWZmMGMgMTAwNjQ0Ci0tLSBhL25ldC9uZXRmaWx0ZXIvbmZfcXVldWUu YworKysgYi9uZXQvbmV0ZmlsdGVyL25mX3F1ZXVlLmMKQEAgLTE5MCw2ICsxOTAsMTEgQEAgc3Rh dGljIGludCBfX25mX3F1ZXVlKHN0cnVjdCBza19idWZmICpza2IsIGNvbnN0IHN0cnVjdCBuZl9o b29rX3N0YXRlICpzdGF0ZSwKIAkJZ290byBlcnI7CiAJfQogCisJaWYgKCFza2JfZHN0X2ZvcmNl KHNrYikgJiYgc3RhdGUtPmhvb2sgIT0gTkZfSU5FVF9QUkVfUk9VVElORykgeworCQlzdGF0dXMg PSAtRU5FVERPV047CisJCWdvdG8gZXJyOworCX0KKwogCSplbnRyeSA9IChzdHJ1Y3QgbmZfcXVl dWVfZW50cnkpIHsKIAkJLnNrYgk9IHNrYiwKIAkJLnN0YXRlCT0gKnN0YXRlLApAQCAtMTk4LDcg KzIwMyw2IEBAIHN0YXRpYyBpbnQgX19uZl9xdWV1ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25z dCBzdHJ1Y3QgbmZfaG9va19zdGF0ZSAqc3RhdGUsCiAJfTsKIAogCW5mX3F1ZXVlX2VudHJ5X2dl dF9yZWZzKGVudHJ5KTsKLQlza2JfZHN0X2ZvcmNlKHNrYik7CiAKIAlzd2l0Y2ggKGVudHJ5LT5z dGF0ZS5wZikgewogCWNhc2UgQUZfSU5FVDoKLS0gCjIuMjAuMQoKCkZyb20gMDM5YTU0ZTJiZDc2 ZWM2YzkyZjUyNjA2Y2M0NmVkYjc1MTQyMWZjNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogTG9yZW56byBCaWFuY29uaSA8bG9yZW56by5iaWFuY29uaUByZWRoYXQuY29tPgpEYXRlOiBT dW4sIDE0IEp1bCAyMDE5IDIzOjM2OjExICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMy80OV0gbmV0 OiBuZWlnaDogZml4IG11bHRpcGxlIG5laWdoIHRpbWVyIHNjaGVkdWxpbmcKClsgVXBzdHJlYW0g Y29tbWl0IDA3MWMzNzk4M2Q5OWRhMDc3OTcyOTRlYTc4ZTlkYTFhNmUyODcxNDQgXQoKTmVpZ2gg dGltZXIgY2FuIGJlIHNjaGVkdWxlZCBtdWx0aXBsZSB0aW1lcyBmcm9tIHVzZXJzcGFjZSBhZGRp bmcKbXVsdGlwbGUgbmVpZ2ggZW50cmllcyBhbmQgZm9yY2luZyB0aGUgbmVpZ2ggdGltZXIgc2No ZWR1bGluZyBwYXNzaW5nCk5URl9VU0UgaW4gdGhlIG5ldGxpbmsgcmVxdWVzdHMuClRoaXMgd2ls bCByZXN1bHQgaW4gYSByZWZjb3VudCBsZWFrIGFuZCBpbiB0aGUgZm9sbG93aW5nIGR1bXAgc3Rh Y2s6CgpbICAgMzIuNDY1Mjk1XSBORUlHSDogQlVHLCBkb3VibGUgdGltZXIgYWRkLCBzdGF0ZSBp cyA4ClsgICAzMi40NjUzMDhdIENQVTogMCBQSUQ6IDQxNiBDb21tOiBkb3VibGVfdGltZXJfYWQg Tm90IHRhaW50ZWQgNS4yLjArICM2NQpbICAgMzIuNDY1MzExXSBIYXJkd2FyZSBuYW1lOiBRRU1V IFN0YW5kYXJkIFBDIChRMzUgKyBJQ0g5LCAyMDA5KSwgQklPUyAxLjEyLjAtMi5mYzMwIDA0LzAx LzIwMTQKWyAgIDMyLjQ2NTMxM10gQ2FsbCBUcmFjZToKWyAgIDMyLjQ2NTMxOF0gIGR1bXBfc3Rh Y2srMHg3Yy8weGMwClsgICAzMi40NjUzMjNdICBfX25laWdoX2V2ZW50X3NlbmQrMHgyMGMvMHg4 ODAKWyAgIDMyLjQ2NTMyNl0gID8gX19fbmVpZ2hfY3JlYXRlKzB4ODQ2LzB4ZmIwClsgICAzMi40 NjUzMjldICA/IG5laWdoX2xvb2t1cCsweDJhOS8weDQxMApbICAgMzIuNDY1MzMyXSAgPyBuZWln aHRibF9maWxsX2luZm8uY29uc3Rwcm9wLjArMHg4MDAvMHg4MDAKWyAgIDMyLjQ2NTMzNF0gIG5l aWdoX2FkZCsweDRmOC8weDVlMApbICAgMzIuNDY1MzM3XSAgPyBuZWlnaF94bWl0KzB4NjIwLzB4 NjIwClsgICAzMi40NjUzNDFdICA/IGZpbmRfaGVsZF9sb2NrKzB4ODUvMHhhMApbICAgMzIuNDY1 MzQ1XSAgcnRuZXRsaW5rX3Jjdl9tc2crMHgyMDQvMHg1NzAKWyAgIDMyLjQ2NTM0OF0gID8gcnRu bF9kZWxsaW5rKzB4NDUwLzB4NDUwClsgICAzMi40NjUzNTFdICA/IG1hcmtfaGVsZF9sb2Nrcysw eDkwLzB4OTAKWyAgIDMyLjQ2NTM1NF0gID8gbWF0Y2hfaGVsZF9sb2NrKzB4MWIvMHgyMzAKWyAg IDMyLjQ2NTM1N10gIG5ldGxpbmtfcmN2X3NrYisweGM0LzB4MWQwClsgICAzMi40NjUzNjBdICA/ IHJ0bmxfZGVsbGluaysweDQ1MC8weDQ1MApbICAgMzIuNDY1MzYzXSAgPyBuZXRsaW5rX2Fjaysw eDQyMC8weDQyMApbICAgMzIuNDY1MzY2XSAgPyBuZXRsaW5rX2RlbGl2ZXJfdGFwKzB4MTE1LzB4 NTYwClsgICAzMi40NjUzNjldICA/IF9fYWxsb2Nfc2tiKzB4YzkvMHgyZjAKWyAgIDMyLjQ2NTM3 Ml0gIG5ldGxpbmtfdW5pY2FzdCsweDI3MC8weDMzMApbICAgMzIuNDY1Mzc1XSAgPyBuZXRsaW5r X2F0dGFjaHNrYisweDJmMC8weDJmMApbICAgMzIuNDY1Mzc4XSAgbmV0bGlua19zZW5kbXNnKzB4 MzRmLzB4NWEwClsgICAzMi40NjUzODFdICA/IG5ldGxpbmtfdW5pY2FzdCsweDMzMC8weDMzMApb ICAgMzIuNDY1Mzg1XSAgPyBtb3ZlX2FkZHJfdG9fa2VybmVsLnBhcnQuMCsweDIwLzB4MjAKWyAg IDMyLjQ2NTM4OF0gID8gbmV0bGlua191bmljYXN0KzB4MzMwLzB4MzMwClsgICAzMi40NjUzOTFd ICBzb2NrX3NlbmRtc2crMHg5MS8weGEwClsgICAzMi40NjUzOTRdICBfX19zeXNfc2VuZG1zZysw eDQwNy8weDQ4MApbICAgMzIuNDY1Mzk3XSAgPyBjb3B5X21zZ2hkcl9mcm9tX3VzZXIrMHgyMDAv MHgyMDAKWyAgIDMyLjQ2NTQwMV0gID8gX3Jhd19zcGluX3VubG9ja19pcnFyZXN0b3JlKzB4Mzcv MHg0MApbICAgMzIuNDY1NDA0XSAgPyBsb2NrZGVwX2hhcmRpcnFzX29uKzB4MTdkLzB4MjUwClsg ICAzMi40NjU0MDddICA/IF9fd2FrZV91cF9jb21tb25fbG9jaysweGNiLzB4MTEwClsgICAzMi40 NjU0MTBdICA/IF9fd2FrZV91cF9jb21tb24rMHgyMzAvMHgyMzAKWyAgIDMyLjQ2NTQxM10gID8g bmV0bGlua19iaW5kKzB4M2UxLzB4NDkwClsgICAzMi40NjU0MTZdICA/IG5ldGxpbmtfc2V0c29j a29wdCsweDU0MC8weDU0MApbICAgMzIuNDY1NDIwXSAgPyBfX2ZnZXRfbGlnaHQrMHg5Yy8weGYw ClsgICAzMi40NjU0MjNdICA/IHNvY2tmZF9sb29rdXBfbGlnaHQrMHg4Yy8weGIwClsgICAzMi40 NjU0MjZdICBfX3N5c19zZW5kbXNnKzB4YTUvMHgxMTAKWyAgIDMyLjQ2NTQyOV0gID8gX19pYTMy X3N5c19zaHV0ZG93bisweDMwLzB4MzAKWyAgIDMyLjQ2NTQzMl0gID8gX19mZF9pbnN0YWxsKzB4 ZTEvMHgyYzAKWyAgIDMyLjQ2NTQzNV0gID8gbG9ja2RlcF9oYXJkaXJxc19vZmYrMHhiNS8weDEw MApbICAgMzIuNDY1NDM4XSAgPyBtYXJrX2hlbGRfbG9ja3MrMHgyNC8weDkwClsgICAzMi40NjU0 NDFdICA/IGRvX3N5c2NhbGxfNjQrMHhmLzB4MjcwClsgICAzMi40NjU0NDRdICBkb19zeXNjYWxs XzY0KzB4NjMvMHgyNzAKWyAgIDMyLjQ2NTQ0OF0gIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdm cmFtZSsweDQ5LzB4YmUKCkZpeCB0aGUgaXNzdWUgdW5zY2hlZHVsaW5nIG5laWdoX3RpbWVyIGlm IHNlbGVjdGVkIGVudHJ5IGlzIGluICdJTl9USU1FUicKcmVjZWl2aW5nIGEgbmV0bGluayByZXF1 ZXN0IHdpdGggTlRGX1VTRSBmbGFnIHNldAoKUmVwb3J0ZWQtYnk6IE1hcmVrIE1hamtvd3NraSA8 bWFyZWtAY2xvdWRmbGFyZS5jb20+CkZpeGVzOiAwYzVjMmQzMDg5MDYgKCJuZWlnaDogQWxsb3cg Zm9yIHVzZXIgc3BhY2UgdXNlcnMgb2YgdGhlIG5laWdoYm91ciB0YWJsZSIpClNpZ25lZC1vZmYt Ynk6IExvcmVuem8gQmlhbmNvbmkgPGxvcmVuem8uYmlhbmNvbmlAcmVkaGF0LmNvbT4KUmV2aWV3 ZWQtYnk6IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL25laWdoYm91 ci5jIHwgMiArKwogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBh L25ldC9jb3JlL25laWdoYm91ci5jIGIvbmV0L2NvcmUvbmVpZ2hib3VyLmMKaW5kZXggOWU3ZmM5 MjliYzUwLi41YmIwYTFhZWU1MGUgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL25laWdoYm91ci5jCisr KyBiL25ldC9jb3JlL25laWdoYm91ci5jCkBAIC0xMTIyLDYgKzExMjIsNyBAQCBpbnQgX19uZWln aF9ldmVudF9zZW5kKHN0cnVjdCBuZWlnaGJvdXIgKm5laWdoLCBzdHJ1Y3Qgc2tfYnVmZiAqc2ti KQogCiAJCQlhdG9taWNfc2V0KCZuZWlnaC0+cHJvYmVzLAogCQkJCSAgIE5FSUdIX1ZBUihuZWln aC0+cGFybXMsIFVDQVNUX1BST0JFUykpOworCQkJbmVpZ2hfZGVsX3RpbWVyKG5laWdoKTsKIAkJ CW5laWdoLT5udWRfc3RhdGUgICAgID0gTlVEX0lOQ09NUExFVEU7CiAJCQluZWlnaC0+dXBkYXRl ZCA9IG5vdzsKIAkJCW5leHQgPSBub3cgKyBtYXgoTkVJR0hfVkFSKG5laWdoLT5wYXJtcywgUkVU UkFOU19USU1FKSwKQEAgLTExMzgsNiArMTEzOSw3IEBAIGludCBfX25laWdoX2V2ZW50X3NlbmQo c3RydWN0IG5laWdoYm91ciAqbmVpZ2gsIHN0cnVjdCBza19idWZmICpza2IpCiAJCX0KIAl9IGVs c2UgaWYgKG5laWdoLT5udWRfc3RhdGUgJiBOVURfU1RBTEUpIHsKIAkJbmVpZ2hfZGJnKDIsICJu ZWlnaCAlcCBpcyBkZWxheWVkXG4iLCBuZWlnaCk7CisJCW5laWdoX2RlbF90aW1lcihuZWlnaCk7 CiAJCW5laWdoLT5udWRfc3RhdGUgPSBOVURfREVMQVk7CiAJCW5laWdoLT51cGRhdGVkID0gamlm ZmllczsKIAkJbmVpZ2hfYWRkX3RpbWVyKG5laWdoLCBqaWZmaWVzICsKLS0gCjIuMjAuMQoKCkZy b20gMTI0ZTA3ZGMwNjdhYWViN2Y2YzBhYTU1OWE3NzkwMzk0OWQ2ZDg3YiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogSm9obiBIdXJsZXkgPGpvaG4uaHVybGV5QG5ldHJvbm9tZS5jb20+ CkRhdGU6IFRodSwgMjcgSnVuIDIwMTkgMTQ6Mzc6MzAgKzAxMDAKU3ViamVjdDogW1BBVENIIDE0 LzQ5XSBuZXQ6IG9wZW52c3dpdGNoOiBmaXggY3N1bSB1cGRhdGVzIGZvciBNUExTIGFjdGlvbnMK ClsgVXBzdHJlYW0gY29tbWl0IDBlMzE4M2NkMmE2NDg0M2E5NWI2MmY4YmQ0YTgzNjA1YTRjZjA2 MTUgXQoKU2ticyBtYXkgaGF2ZSB0aGVpciBjaGVja3N1bSB2YWx1ZSBwb3B1bGF0ZWQgYnkgSFcu IElmIHRoaXMgaXMgYSBjaGVja3N1bQpjYWxjdWxhdGVkIG92ZXIgdGhlIGVudGlyZSBwYWNrZXQg dGhlbiB0aGUgQ0hFQ0tTVU1fQ09NUExFVEUgZmllbGQgaXMKbWFya2VkLiBDaGFuZ2VzIHRvIHRo ZSBkYXRhIHBvaW50ZXIgb24gdGhlIHNrYiB0aHJvdWdob3V0IHRoZSBuZXR3b3JrCnN0YWNrIHN0 aWxsIHRyeSB0byBtYWludGFpbiB0aGlzIGNvbXBsZXRlIGNzdW0gdmFsdWUgaWYgaXQgaXMgcmVx dWlyZWQKdGhyb3VnaCBmdW5jdGlvbnMgc3VjaCBhcyBza2JfcG9zdHB1c2hfcmNzdW0uCgpUaGUg TVBMUyBhY3Rpb25zIGluIE9wZW4gdlN3aXRjaCBtb2RpZnkgYSBDSEVDS1NVTV9DT01QTEVURSB2 YWx1ZSB3aGVuCmNoYW5nZXMgYXJlIG1hZGUgdG8gcGFja2V0IGRhdGEgd2l0aG91dCBhIHB1c2gg b3IgYSBwdWxsLiBUaGlzIG9jY3VycyB3aGVuCnRoZSBldGhlcnR5cGUgb2YgdGhlIE1BQyBoZWFk ZXIgaXMgY2hhbmdlZCBvciB3aGVuIE1QTFMgbHNlIGZpZWxkcyBhcmUKbW9kaWZpZWQuCgpUaGUg bW9kaWZpY2F0aW9uIGlzIGNhcnJpZWQgb3V0IHVzaW5nIHRoZSBjc3VtX3BhcnRpYWwgZnVuY3Rp b24gdG8gZ2V0IHRoZQpjc3VtIG9mIGEgYnVmZmVyIGFuZCBhZGQgaXQgaW50byB0aGUgbGFyZ2Vy IGNoZWNrc3VtLiBUaGUgYnVmZmVyIGlzIGFuCmludmVyc2lvbiBvZiB0aGUgZGF0YSB0byBiZSBy ZW1vdmVkIGZvbGxvd2VkIGJ5IHRoZSBuZXcgZGF0YS4gQmVjYXVzZSB0aGUKY3N1bSBpcyBjYWxj dWxhdGVkIG92ZXIgMTYgYml0cyBhbmQgdGhlc2UgdmFsdWVzIGFsaWduIHdpdGggMTYgYml0cywg dGhlCmVmZmVjdCBpcyB0aGUgcmVtb3ZhbCBvZiB0aGUgb2xkIHZhbHVlIGZyb20gdGhlIENIRUNL U1VNX0NPTVBMRVRFIGFuZAphZGRpdGlvbiBvZiB0aGUgbmV3IHZhbHVlLgoKSG93ZXZlciwgdGhl IGNzdW0gZmVkIGludG8gdGhlIGZ1bmN0aW9uIGFuZCB0aGUgb3V0Y29tZSBvZiB0aGUKY2FsY3Vs YXRpb24gYXJlIGFsc28gaW52ZXJ0ZWQuIFRoaXMgd291bGQgb25seSBtYWtlIHNlbnNlIGlmIGl0 IHdhcyB0aGUKbmV3IHZhbHVlIHJhdGhlciB0aGFuIHRoZSBvbGQgdGhhdCB3YXMgaW52ZXJ0ZWQg aW4gdGhlIGlucHV0IGJ1ZmZlci4KCkZpeCB0aGUgaXNzdWUgYnkgcmVtb3ZpbmcgdGhlIGJpdCBp bnZlcnRzIGluIHRoZSBjc3VtX3BhcnRpYWwgY2FsY3VsYXRpb24uCgpUaGUgYnVnIHdhcyB2ZXJp ZmllZCBhbmQgdGhlIGZpeCB0ZXN0ZWQgYnkgY29tcGFyaW5nIHRoZSBmb2xkZWQgdmFsdWUgb2YK dGhlIHVwZGF0ZWQgQ0hFQ0tTVU1fQ09NUExFVEUgdmFsdWUgd2l0aCB0aGUgZm9sZGVkIHZhbHVl IG9mIGEgZnVsbApzb2Z0d2FyZSBjaGVja3N1bSBjYWxjdWxhdGlvbiAocmVzZXQgc2tiLT5jc3Vt IHRvIDAgYW5kIHJ1bgpza2JfY2hlY2tzdW1fY29tcGxldGUoc2tiKSkuIFByaW9yIHRvIHRoZSBm aXggdGhlIG91dGNvbWVzIGRpZmZlcmVkIGJ1dAphZnRlciB0aGV5IHByb2R1Y2UgdGhlIHNhbWUg cmVzdWx0LgoKRml4ZXM6IDI1Y2Q5YmEwYWJjMCAoIm9wZW52c3dpdGNoOiBBZGQgYmFzaWMgTVBM UyBzdXBwb3J0IHRvIGtlcm5lbCIpCkZpeGVzOiBiYzdjYzU5OTlmZDMgKCJvcGVudnN3aXRjaDog dXBkYXRlIGNoZWNrc3VtIGluIHtwdXNoLHBvcH1fbXBscyIpClNpZ25lZC1vZmYtYnk6IEpvaG4g SHVybGV5IDxqb2huLmh1cmxleUBuZXRyb25vbWUuY29tPgpSZXZpZXdlZC1ieTogSmFrdWIgS2lj aW5za2kgPGpha3ViLmtpY2luc2tpQG5ldHJvbm9tZS5jb20+ClJldmlld2VkLWJ5OiBTaW1vbiBI b3JtYW4gPHNpbW9uLmhvcm1hbkBuZXRyb25vbWUuY29tPgpBY2tlZC1ieTogUHJhdmluIEIgU2hl bGFyIDxwc2hlbGFyQG92bi5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvb3BlbnZzd2l0Y2gvYWN0aW9ucy5jIHwgNiArKy0t LS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvbmV0L29wZW52c3dpdGNoL2FjdGlvbnMuYyBiL25ldC9vcGVudnN3aXRjaC9hY3Rp b25zLmMKaW5kZXggMTUxNTE4ZGJhYmFkLi5iZDEzMTQ2OWU0Y2EgMTAwNjQ0Ci0tLSBhL25ldC9v cGVudnN3aXRjaC9hY3Rpb25zLmMKKysrIGIvbmV0L29wZW52c3dpdGNoL2FjdGlvbnMuYwpAQCAt MTY2LDggKzE2Niw3IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZV9ldGhlcnR5cGUoc3RydWN0IHNrX2J1 ZmYgKnNrYiwgc3RydWN0IGV0aGhkciAqaGRyLAogCWlmIChza2ItPmlwX3N1bW1lZCA9PSBDSEVD S1NVTV9DT01QTEVURSkgewogCQlfX2JlMTYgZGlmZltdID0geyB+KGhkci0+aF9wcm90byksIGV0 aGVydHlwZSB9OwogCi0JCXNrYi0+Y3N1bSA9IH5jc3VtX3BhcnRpYWwoKGNoYXIgKilkaWZmLCBz aXplb2YoZGlmZiksCi0JCQkJCX5za2ItPmNzdW0pOworCQlza2ItPmNzdW0gPSBjc3VtX3BhcnRp YWwoKGNoYXIgKilkaWZmLCBzaXplb2YoZGlmZiksIHNrYi0+Y3N1bSk7CiAJfQogCiAJaGRyLT5o X3Byb3RvID0gZXRoZXJ0eXBlOwpAQCAtMjU5LDggKzI1OCw3IEBAIHN0YXRpYyBpbnQgc2V0X21w bHMoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHN3X2Zsb3dfa2V5ICpmbG93X2tleSwKIAlp ZiAoc2tiLT5pcF9zdW1tZWQgPT0gQ0hFQ0tTVU1fQ09NUExFVEUpIHsKIAkJX19iZTMyIGRpZmZb XSA9IHsgfihzdGFjay0+bGFiZWxfc3RhY2tfZW50cnkpLCBsc2UgfTsKIAotCQlza2ItPmNzdW0g PSB+Y3N1bV9wYXJ0aWFsKChjaGFyICopZGlmZiwgc2l6ZW9mKGRpZmYpLAotCQkJCQkgIH5za2It PmNzdW0pOworCQlza2ItPmNzdW0gPSBjc3VtX3BhcnRpYWwoKGNoYXIgKilkaWZmLCBzaXplb2Yo ZGlmZiksIHNrYi0+Y3N1bSk7CiAJfQogCiAJc3RhY2stPmxhYmVsX3N0YWNrX2VudHJ5ID0gbHNl OwotLSAKMi4yMC4xCgoKRnJvbSA2MGE0OWVkMmM1NjYzMDNiMTk0ZWM5NGI3NDIwNmEwYjRiZGM4 MDNlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgTHVubiA8YW5kcmV3QGx1 bm4uY2g+CkRhdGU6IFN1biwgMjEgSnVsIDIwMTkgMTg6NTA6MDggKzAyMDAKU3ViamVjdDogW1BB VENIIDE1LzQ5XSBuZXQ6IHBoeTogc2ZwOiBod21vbjogRml4IHNjYWxpbmcgb2YgUlggcG93ZXIK ClsgVXBzdHJlYW0gY29tbWl0IDBjZWEwZTExNDhmZTEzNGE0YTNhYWYwYjE0OTZmMDkyNDFmYjk0 M2EgXQoKVGhlIFJYIHBvd2VyIHJlYWQgZnJvbSB0aGUgU0ZQIHVzZXMgdW5pdHMgb2YgMC4xdVcu IFRoaXMgbXVzdCBiZQpzY2FsZWQgdG8gdW5pdHMgb2YgdVcgZm9yIEhXTU9OLiBUaGlzIHJlcXVp cmVzIGEgZGl2aWRlIGJ5IDEwLCBub3QgdGhlCmN1cnJlbnQgMTAwLgoKV2l0aCB0aGlzIGNoYW5n ZSBpbiBwbGFjZSwgc2Vuc29ycygxKSBhbmQgZXRodG9vbCAtbSBhZ3JlZToKCnNmZjItaXNhLTAw MDAKQWRhcHRlcjogSVNBIGFkYXB0ZXIKaW4wOiAgICAgICAgICArMy4yMyBWCnRlbXAxOiAgICAg ICAgKzMzLjEgQwpwb3dlcjE6ICAgICAgMjcwLjAwIHVXCnBvd2VyMjogICAgICAyMDAuMDAgdVcK Y3VycjE6ICAgICAgICArMC4wMSBBCgogICAgICAgIExhc2VyIG91dHB1dCBwb3dlciAgICAgICAg ICAgICAgICAgICAgICAgIDogMC4yNzQzIG1XIC8gLTUuNjIgZEJtCiAgICAgICAgUmVjZWl2ZXIg c2lnbmFsIGF2ZXJhZ2Ugb3B0aWNhbCBwb3dlciAgICAgOiAwLjIwMTQgbVcgLyAtNi45NiBkQm0K ClJlcG9ydGVkLWJ5OiBjaHJpcy5oZWFseUB6aWkuYWVybwpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcg THVubiA8YW5kcmV3QGx1bm4uY2g+CkZpeGVzOiAxMzIzMDYxYTAxOGEgKCJuZXQ6IHBoeTogc2Zw OiBBZGQgSFdNT04gc3VwcG9ydCBmb3IgbW9kdWxlIHNlbnNvcnMiKQpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvcGh5 L3NmcC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9u KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L3NmcC5jIGIvZHJpdmVycy9uZXQvcGh5 L3NmcC5jCmluZGV4IDcxODEyYmUwYWM2NC4uODI1ODU3ZWZjYzRlIDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9waHkvc2ZwLmMKKysrIGIvZHJpdmVycy9uZXQvcGh5L3NmcC5jCkBAIC01MTQsNyAr NTE0LDcgQEAgc3RhdGljIGludCBzZnBfaHdtb25fcmVhZF9zZW5zb3Ioc3RydWN0IHNmcCAqc2Zw LCBpbnQgcmVnLCBsb25nICp2YWx1ZSkKIAogc3RhdGljIHZvaWQgc2ZwX2h3bW9uX3RvX3J4X3Bv d2VyKGxvbmcgKnZhbHVlKQogewotCSp2YWx1ZSA9IERJVl9ST1VORF9DTE9TRVNUKCp2YWx1ZSwg MTAwKTsKKwkqdmFsdWUgPSBESVZfUk9VTkRfQ0xPU0VTVCgqdmFsdWUsIDEwKTsKIH0KIAogc3Rh dGljIHZvaWQgc2ZwX2h3bW9uX2NhbGlicmF0ZShzdHJ1Y3Qgc2ZwICpzZnAsIHVuc2lnbmVkIGlu dCBzbG9wZSwgaW50IG9mZnNldCwKLS0gCjIuMjAuMQoKCkZyb20gZTA2MDRiYWM5YTcxYWZkOGU3 N2NmNDlhODNhYjJmMDNmYTE1MjY5NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ29u ZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMTYgSnVsIDIwMTkg MTM6NTc6MzAgLTA3MDAKU3ViamVjdDogW1BBVENIIDE2LzQ5XSBuZXRfc2NoZWQ6IHVuc2V0IFRD UV9GX0NBTl9CWVBBU1Mgd2hlbiBhZGRpbmcgZmlsdGVycwoKWyBVcHN0cmVhbSBjb21taXQgM2Yw NWU2ODg2YTU5NWM5YTI5YTMwOWM1MmY0NTMyNmJlOTE3ODIzYyBdCgpGb3IgcWRpc2MncyB0aGF0 IHN1cHBvcnQgVEMgZmlsdGVycyBhbmQgc2V0IFRDUV9GX0NBTl9CWVBBU1MsCm5vdGFibHkgZnFf Y29kZWwsIGl0IG1ha2VzIG5vIHNlbnNlIHRvIGxldCBwYWNrZXRzIGJ5cGFzcyB0aGUgVEMKZmls dGVycyB3ZSBzZXR1cCBpbiBhbnkgc2NlbmFyaW8sIG90aGVyd2lzZSBvdXIgcGFja2V0cyBzdGVl cmluZwpwb2xpY3kgY291bGQgbm90IGJlIGVuZm9yY2VkLgoKVGhpcyBjYW4gYmUgcmVwcm9kdWNl ZCBlYXNpbHkgd2l0aCB0aGUgZm9sbG93aW5nIHNjcmlwdDoKCiBpcCBsaSBhZGQgZGV2IGR1bW15 MCB0eXBlIGR1bW15CiBpZmNvbmZpZyBkdW1teTAgdXAKIHRjIHFkIGFkZCBkZXYgZHVtbXkwIHJv b3QgZnFfY29kZWwKIHRjIGZpbHRlciBhZGQgZGV2IGR1bW15MCBwYXJlbnQgODAwMTogcHJvdG9j b2wgYXJwIGJhc2ljIGFjdGlvbiBtaXJyZWQgZWdyZXNzIHJlZGlyZWN0IGRldiBsbwogdGMgZmls dGVyIGFkZCBkZXYgZHVtbXkwIHBhcmVudCA4MDAxOiBwcm90b2NvbCBpcCBiYXNpYyBhY3Rpb24g bWlycmVkIGVncmVzcyByZWRpcmVjdCBkZXYgbG8KIHBpbmcgLUkgZHVtbXkwIDE5Mi4xNjguMTEy LjEKCldpdGhvdXQgdGhpcyBwYXRjaCwgcGFja2V0cyBhcmUgc2VudCBkaXJlY3RseSB0byBkdW1t eTAgd2l0aG91dApoaXR0aW5nIGFueSBvZiB0aGUgZmlsdGVycy4gV2l0aCB0aGlzIHBhdGNoLCBw YWNrZXRzIGFyZSByZWRpcmVjdGVkCnRvIGxvb3BiYWNrIGFzIGV4cGVjdGVkLgoKVGhpcyBmaXgg aXMgbm90IHBlcmZlY3QsIGl0IG9ubHkgdW5zZXRzIHRoZSBmbGFnIGJ1dCBkb2VzIG5vdCBzZXQg aXQgYmFjawpiZWNhdXNlIHdlIGhhdmUgdG8gc2F2ZSB0aGUgaW5mb3JtYXRpb24gc29tZXdoZXJl IGluIHRoZSBxZGlzYyBpZiB3ZQpyZWFsbHkgd2FudCB0aGF0LiBOb3RlLCBib3RoIGZxX2NvZGVs IGFuZCBzZnEgY2xlYXIgdGhpcyBmbGFnIGluIHRoZWlyCi0+YmluZF90Y2YoKSBidXQgdGhpcyBp cyBjbGVhcmx5IG5vdCBzdWZmaWNpZW50IHdoZW4gd2UgZG9uJ3QgdXNlIGFueQpjbGFzcyBJRC4K CkZpeGVzOiAyMzYyNDkzNWUwYzQgKCJuZXRfc2NoZWQ6IFRDUV9GX0NBTl9CWVBBU1MgZ2VuZXJh bGl6YXRpb24iKQpDYzogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQt b2ZmLWJ5OiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6 IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY2hlZC9jbHNfYXBpLmMg ICAgICB8IDEgKwogbmV0L3NjaGVkL3NjaF9mcV9jb2RlbC5jIHwgMiAtLQogbmV0L3NjaGVkL3Nj aF9zZnEuYyAgICAgIHwgMiAtLQogMyBmaWxlcyBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgNCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvY2xzX2FwaS5jIGIvbmV0L3NjaGVk L2Nsc19hcGkuYwppbmRleCBhZDM2YmJjYzU4M2UuLjgxYjBkOWYzODY1OSAxMDA2NDQKLS0tIGEv bmV0L3NjaGVkL2Nsc19hcGkuYworKysgYi9uZXQvc2NoZWQvY2xzX2FwaS5jCkBAIC0yMTYwLDYg KzIxNjAsNyBAQCBzdGF0aWMgaW50IHRjX25ld190ZmlsdGVyKHN0cnVjdCBza19idWZmICpza2Is IHN0cnVjdCBubG1zZ2hkciAqbiwKIAkJdGZpbHRlcl9ub3RpZnkobmV0LCBza2IsIG4sIHRwLCBi bG9jaywgcSwgcGFyZW50LCBmaCwKIAkJCSAgICAgICBSVE1fTkVXVEZJTFRFUiwgZmFsc2UsIHJ0 bmxfaGVsZCk7CiAJCXRmaWx0ZXJfcHV0KHRwLCBmaCk7CisJCXEtPmZsYWdzICY9IH5UQ1FfRl9D QU5fQllQQVNTOwogCX0KIAogZXJyb3V0OgpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9mcV9j b2RlbC5jIGIvbmV0L3NjaGVkL3NjaF9mcV9jb2RlbC5jCmluZGV4IGUyZmFmMzNkMjgyYi4uZDU5 ZmJjYzc0NWQxIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2NoX2ZxX2NvZGVsLmMKKysrIGIvbmV0 L3NjaGVkL3NjaF9mcV9jb2RlbC5jCkBAIC01OTYsOCArNTk2LDYgQEAgc3RhdGljIHVuc2lnbmVk IGxvbmcgZnFfY29kZWxfZmluZChzdHJ1Y3QgUWRpc2MgKnNjaCwgdTMyIGNsYXNzaWQpCiBzdGF0 aWMgdW5zaWduZWQgbG9uZyBmcV9jb2RlbF9iaW5kKHN0cnVjdCBRZGlzYyAqc2NoLCB1bnNpZ25l ZCBsb25nIHBhcmVudCwKIAkJCSAgICAgIHUzMiBjbGFzc2lkKQogewotCS8qIHdlIGNhbm5vdCBi eXBhc3MgcXVldWUgZGlzY2lwbGluZSBhbnltb3JlICovCi0Jc2NoLT5mbGFncyAmPSB+VENRX0Zf Q0FOX0JZUEFTUzsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9z ZnEuYyBiL25ldC9zY2hlZC9zY2hfc2ZxLmMKaW5kZXggNDIwYmQ4NDExNjc3Li42ODQwNGE5ZDJj ZTQgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfc2ZxLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9z ZnEuYwpAQCAtODI0LDggKzgyNCw2IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIHNmcV9maW5kKHN0 cnVjdCBRZGlzYyAqc2NoLCB1MzIgY2xhc3NpZCkKIHN0YXRpYyB1bnNpZ25lZCBsb25nIHNmcV9i aW5kKHN0cnVjdCBRZGlzYyAqc2NoLCB1bnNpZ25lZCBsb25nIHBhcmVudCwKIAkJCSAgICAgIHUz MiBjbGFzc2lkKQogewotCS8qIHdlIGNhbm5vdCBieXBhc3MgcXVldWUgZGlzY2lwbGluZSBhbnlt b3JlICovCi0Jc2NoLT5mbGFncyAmPSB+VENRX0ZfQ0FOX0JZUEFTUzsKIAlyZXR1cm4gMDsKIH0K IAotLSAKMi4yMC4xCgoKRnJvbSA4NTEwZDA2NzRiOGQxN2JmZjc5ZjMxNDMyNjRkNjIxZWJkMzEx YjAwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb3NlIEFicmV1IDxKb3NlLkFicmV1 QHN5bm9wc3lzLmNvbT4KRGF0ZTogTW9uLCA4IEp1bCAyMDE5IDE0OjI2OjI4ICswMjAwClN1Ympl Y3Q6IFtQQVRDSCAxNy80OV0gbmV0OiBzdG1tYWM6IFJlLXdvcmsgdGhlIHF1ZXVlIHNlbGVjdGlv biBmb3IgVFNPCiBwYWNrZXRzCgpbIFVwc3RyZWFtIGNvbW1pdCA0OTkzZTViMzdlOGJjYjU1YWM5 MGY3NmViNmQyNDMyNjQ3MjczNzQ3IF0KCkJlbiBIdXRjaGluZ3Mgc2F5czoKCSJUaGlzIGlzIHRo ZSB3cm9uZyBwbGFjZSB0byBjaGFuZ2UgdGhlIHF1ZXVlIG1hcHBpbmcuCglzdG1tYWNfeG1pdCgp IGlzIGNhbGxlZCB3aXRoIGEgc3BlY2lmaWMgVFggcXVldWUgbG9ja2VkLAoJYW5kIGFjY2Vzc2lu ZyBhIGRpZmZlcmVudCBUWCBxdWV1ZSByZXN1bHRzIGluIGEgZGF0YSByYWNlCglmb3IgYWxsIG9m IHRoYXQgcXVldWUncyBzdGF0ZS4KCglJIHRoaW5rIHRoaXMgY29tbWl0IHNob3VsZCBiZSByZXZl cnRlZCB1cHN0cmVhbSBhbmQgaW4gYWxsCglzdGFibGUgYnJhbmNoZXMuICBJbnN0ZWFkLCB0aGUg ZHJpdmVyIHNob3VsZCBpbXBsZW1lbnQgdGhlCgluZG9fc2VsZWN0X3F1ZXVlIG9wZXJhdGlvbiBh bmQgb3ZlcnJpZGUgdGhlIHF1ZXVlIG1hcHBpbmcgdGhlcmUuIgoKRml4ZXM6IGM1YWNkYmVlMjJh MSAoIm5ldDogc3RtbWFjOiBTZW5kIFRTTyBwYWNrZXRzIGFsd2F5cyBmcm9tIFF1ZXVlIDAiKQpT dWdnZXN0ZWQtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbkBkZWNhZGVudC5vcmcudWs+ClNpZ25lZC1v ZmYtYnk6IEpvc2UgQWJyZXUgPGpvYWJyZXVAc3lub3BzeXMuY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogLi4uL25ldC9ldGhlcm5l dC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jIHwgMjggKysrKysrKysrKysrLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jCmluZGV4 IDA2MzU4ZmU1YjI0NS4uMTFiNmZlYjMzYjU0IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMKQEAgLTMwNDUsMTcgKzMwNDUsOCBAQCBz dGF0aWMgbmV0ZGV2X3R4X3Qgc3RtbWFjX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0 IG5ldF9kZXZpY2UgKmRldikKIAogCS8qIE1hbmFnZSBvdmVyc2l6ZWQgVENQIGZyYW1lcyBmb3Ig R01BQzQgZGV2aWNlICovCiAJaWYgKHNrYl9pc19nc28oc2tiKSAmJiBwcml2LT50c28pIHsKLQkJ aWYgKHNrYl9zaGluZm8oc2tiKS0+Z3NvX3R5cGUgJiAoU0tCX0dTT19UQ1BWNCB8IFNLQl9HU09f VENQVjYpKSB7Ci0JCQkvKgotCQkJICogVGhlcmUgaXMgbm8gd2F5IHRvIGRldGVybWluZSB0aGUg bnVtYmVyIG9mIFRTTwotCQkJICogY2FwYWJsZSBRdWV1ZXMuIExldCdzIHVzZSBhbHdheXMgdGhl IFF1ZXVlIDAKLQkJCSAqIGJlY2F1c2UgaWYgVFNPIGlzIHN1cHBvcnRlZCB0aGVuIGF0IGxlYXN0 IHRoaXMKLQkJCSAqIG9uZSB3aWxsIGJlIGNhcGFibGUuCi0JCQkgKi8KLQkJCXNrYl9zZXRfcXVl dWVfbWFwcGluZyhza2IsIDApOwotCisJCWlmIChza2Jfc2hpbmZvKHNrYiktPmdzb190eXBlICYg KFNLQl9HU09fVENQVjQgfCBTS0JfR1NPX1RDUFY2KSkKIAkJCXJldHVybiBzdG1tYWNfdHNvX3ht aXQoc2tiLCBkZXYpOwotCQl9CiAJfQogCiAJaWYgKHVubGlrZWx5KHN0bW1hY190eF9hdmFpbChw cml2LCBxdWV1ZSkgPCBuZnJhZ3MgKyAxKSkgewpAQCAtMzg3Miw2ICszODYzLDIyIEBAIHN0YXRp YyBpbnQgc3RtbWFjX3NldHVwX3RjKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCBlbnVtIHRjX3Nl dHVwX3R5cGUgdHlwZSwKIAl9CiB9CiAKK3N0YXRpYyB1MTYgc3RtbWFjX3NlbGVjdF9xdWV1ZShz dHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAorCQkJICAgICAgIHN0 cnVjdCBuZXRfZGV2aWNlICpzYl9kZXYpCit7CisJaWYgKHNrYl9zaGluZm8oc2tiKS0+Z3NvX3R5 cGUgJiAoU0tCX0dTT19UQ1BWNCB8IFNLQl9HU09fVENQVjYpKSB7CisJCS8qCisJCSAqIFRoZXJl IGlzIG5vIHdheSB0byBkZXRlcm1pbmUgdGhlIG51bWJlciBvZiBUU08KKwkJICogY2FwYWJsZSBR dWV1ZXMuIExldCdzIHVzZSBhbHdheXMgdGhlIFF1ZXVlIDAKKwkJICogYmVjYXVzZSBpZiBUU08g aXMgc3VwcG9ydGVkIHRoZW4gYXQgbGVhc3QgdGhpcworCQkgKiBvbmUgd2lsbCBiZSBjYXBhYmxl LgorCQkgKi8KKwkJcmV0dXJuIDA7CisJfQorCisJcmV0dXJuIG5ldGRldl9waWNrX3R4KGRldiwg c2tiLCBOVUxMKSAlIGRldi0+cmVhbF9udW1fdHhfcXVldWVzOworfQorCiBzdGF0aWMgaW50IHN0 bW1hY19zZXRfbWFjX2FkZHJlc3Moc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHZvaWQgKmFkZHIp CiB7CiAJc3RydWN0IHN0bW1hY19wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYobmRldik7CkBAIC00 MDg4LDYgKzQwOTUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIHN0bW1h Y19uZXRkZXZfb3BzID0gewogCS5uZG9fdHhfdGltZW91dCA9IHN0bW1hY190eF90aW1lb3V0LAog CS5uZG9fZG9faW9jdGwgPSBzdG1tYWNfaW9jdGwsCiAJLm5kb19zZXR1cF90YyA9IHN0bW1hY19z ZXR1cF90YywKKwkubmRvX3NlbGVjdF9xdWV1ZSA9IHN0bW1hY19zZWxlY3RfcXVldWUsCiAjaWZk ZWYgQ09ORklHX05FVF9QT0xMX0NPTlRST0xMRVIKIAkubmRvX3BvbGxfY29udHJvbGxlciA9IHN0 bW1hY19wb2xsX2NvbnRyb2xsZXIsCiAjZW5kaWYKLS0gCjIuMjAuMQoKCkZyb20gOTNjYzU0MWZi ZDFhOTA2YmI1MGJlNjM2NWRlMDExZWRmOGFjODBhOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogSmFrdWIgS2ljaW5za2kgPGpha3ViLmtpY2luc2tpQG5ldHJvbm9tZS5jb20+CkRhdGU6 IEZyaSwgMjggSnVuIDIwMTkgMTY6MTE6MzkgLTA3MDAKU3ViamVjdDogW1BBVENIIDE4LzQ5XSBu ZXQvdGxzOiBtYWtlIHN1cmUgb2ZmbG9hZCBhbHNvIGdldHMgdGhlIGtleXMgd2lwZWQKClsgVXBz dHJlYW0gY29tbWl0IGFjZDNlOTZkNTNhMjRkMjE5ZjcyMGVkNDAxMmI2MjcyM2FlMDVkYTEgXQoK Q29tbWl0IDg2MDI5ZDEwYWYxOCAoInRsczogemVybyB0aGUgY3J5cHRvIGluZm9ybWF0aW9uIGZy b20gdGxzX2NvbnRleHQKYmVmb3JlIGZyZWVpbmciKSBhZGRlZCBtZW16ZXJvX2V4cGxpY2l0KCkg Y2FsbHMgdG8gY2xlYXIgdGhlIGtleSBtYXRlcmlhbApiZWZvcmUgZnJlZWluZyBzdHJ1Y3QgdGxz X2NvbnRleHQsIGJ1dCBpdCBtaXNzZWQgdGxzX2RldmljZS5jIGhhcyBpdHMKb3duIHdheSBvZiBm cmVlaW5nIHRoaXMgc3RydWN0dXJlLiBSZXBsYWNlIHRoZSBtaXNzaW5nIGZyZWUuCgpGaXhlczog ODYwMjlkMTBhZjE4ICgidGxzOiB6ZXJvIHRoZSBjcnlwdG8gaW5mb3JtYXRpb24gZnJvbSB0bHNf Y29udGV4dCBiZWZvcmUgZnJlZWluZyIpClNpZ25lZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxq YWt1Yi5raWNpbnNraUBuZXRyb25vbWUuY29tPgpSZXZpZXdlZC1ieTogRGlyayB2YW4gZGVyIE1l cndlIDxkaXJrLnZhbmRlcm1lcndlQG5ldHJvbm9tZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC90bHMuaCAg ICB8IDEgKwogbmV0L3Rscy90bHNfZGV2aWNlLmMgfCAyICstCiBuZXQvdGxzL3Rsc19tYWluLmMg ICB8IDQgKystLQogMyBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvdGxzLmggYi9pbmNsdWRlL25ldC90bHMuaApp bmRleCA1M2Q5NmJjYTIyMGQuLjg4OWRmMDMxMmNkMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQv dGxzLmgKKysrIGIvaW5jbHVkZS9uZXQvdGxzLmgKQEAgLTMxMyw2ICszMTMsNyBAQCBzdHJ1Y3Qg dGxzX29mZmxvYWRfY29udGV4dF9yeCB7CiAJKEFMSUdOKHNpemVvZihzdHJ1Y3QgdGxzX29mZmxv YWRfY29udGV4dF9yeCksIHNpemVvZih2b2lkICopKSArIFwKIAkgVExTX0RSSVZFUl9TVEFURV9T SVpFKQogCit2b2lkIHRsc19jdHhfZnJlZShzdHJ1Y3QgdGxzX2NvbnRleHQgKmN0eCk7CiBpbnQg d2FpdF9vbl9wZW5kaW5nX3dyaXRlcihzdHJ1Y3Qgc29jayAqc2ssIGxvbmcgKnRpbWVvKTsKIGlu dCB0bHNfc2tfcXVlcnkoc3RydWN0IHNvY2sgKnNrLCBpbnQgb3B0bmFtZSwgY2hhciBfX3VzZXIg Km9wdHZhbCwKIAkJaW50IF9fdXNlciAqb3B0bGVuKTsKZGlmZiAtLWdpdCBhL25ldC90bHMvdGxz X2RldmljZS5jIGIvbmV0L3Rscy90bHNfZGV2aWNlLmMKaW5kZXggMWY5Y2Y1N2Q5NzU0Li4zNTlh NTE1ZmQxOTMgMTAwNjQ0Ci0tLSBhL25ldC90bHMvdGxzX2RldmljZS5jCisrKyBiL25ldC90bHMv dGxzX2RldmljZS5jCkBAIC02MSw3ICs2MSw3IEBAIHN0YXRpYyB2b2lkIHRsc19kZXZpY2VfZnJl ZV9jdHgoc3RydWN0IHRsc19jb250ZXh0ICpjdHgpCiAJaWYgKGN0eC0+cnhfY29uZiA9PSBUTFNf SFcpCiAJCWtmcmVlKHRsc19vZmZsb2FkX2N0eF9yeChjdHgpKTsKIAotCWtmcmVlKGN0eCk7CisJ dGxzX2N0eF9mcmVlKGN0eCk7CiB9CiAKIHN0YXRpYyB2b2lkIHRsc19kZXZpY2VfZ2NfdGFzayhz dHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCmRpZmYgLS1naXQgYS9uZXQvdGxzL3Rsc19tYWluLmMg Yi9uZXQvdGxzL3Rsc19tYWluLmMKaW5kZXggZTJiNjllODA1ZDQ2Li40Njc0ZTU3ZTY2YjAgMTAw NjQ0Ci0tLSBhL25ldC90bHMvdGxzX21haW4uYworKysgYi9uZXQvdGxzL3Rsc19tYWluLmMKQEAg LTI1MSw3ICsyNTEsNyBAQCBzdGF0aWMgdm9pZCB0bHNfd3JpdGVfc3BhY2Uoc3RydWN0IHNvY2sg KnNrKQogCWN0eC0+c2tfd3JpdGVfc3BhY2Uoc2spOwogfQogCi1zdGF0aWMgdm9pZCB0bHNfY3R4 X2ZyZWUoc3RydWN0IHRsc19jb250ZXh0ICpjdHgpCit2b2lkIHRsc19jdHhfZnJlZShzdHJ1Y3Qg dGxzX2NvbnRleHQgKmN0eCkKIHsKIAlpZiAoIWN0eCkKIAkJcmV0dXJuOwpAQCAtNjQzLDcgKzY0 Myw3IEBAIHN0YXRpYyB2b2lkIHRsc19od19za19kZXN0cnVjdChzdHJ1Y3Qgc29jayAqc2spCiAK IAljdHgtPnNrX2Rlc3RydWN0KHNrKTsKIAkvKiBGcmVlIGN0eCAqLwotCWtmcmVlKGN0eCk7CisJ dGxzX2N0eF9mcmVlKGN0eCk7CiAJaWNzay0+aWNza191bHBfZGF0YSA9IE5VTEw7CiB9CiAKLS0g CjIuMjAuMQoKCkZyb20gYTVmOTQ4NGM5Mzg0M2ZkNjk0MDlmNjZlNjU5NGE4OWJkNjM4NmNiNCBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWWFuZyBXZWkgPGFsYmluX3lhbmdAMTYzLmNv bT4KRGF0ZTogTW9uLCA4IEp1bCAyMDE5IDIyOjU3OjM5ICswODAwClN1YmplY3Q6IFtQQVRDSCAx OS80OV0gbmZjOiBmaXggcG90ZW50aWFsIGlsbGVnYWwgbWVtb3J5IGFjY2VzcwoKWyBVcHN0cmVh bSBjb21taXQgZGQwMDZmYzQzNGUxMDdlZjkwZjdkZTBkYjk5MDdjYmMxYzUyMTY0NSBdCgpUaGUg ZnJhZ3NfcSBpcyBub3QgcHJvcGVybHkgaW5pdGlhbGl6ZWQsIGl0IG1heSByZXN1bHQgaW4gaWxs ZWdhbCBtZW1vcnkKYWNjZXNzIHdoZW4gY29ubl9pbmZvIGlzIE5VTEwuClRoZSAiZ290byBmcmVl X2V4aXQiIHNob3VsZCBiZSByZXBsYWNlZCBieSAiZ290byBleGl0Ii4KClNpZ25lZC1vZmYtYnk6 IFlhbmcgV2VpIDxhbGJpbl95YW5nQDE2My5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvbmZjL25jaS9kYXRhLmMgfCAyICst CiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1n aXQgYS9uZXQvbmZjL25jaS9kYXRhLmMgYi9uZXQvbmZjL25jaS9kYXRhLmMKaW5kZXggMGEwYzI2 NWJhYWE0Li5jZTMzODJiZTkzN2YgMTAwNjQ0Ci0tLSBhL25ldC9uZmMvbmNpL2RhdGEuYworKysg Yi9uZXQvbmZjL25jaS9kYXRhLmMKQEAgLTEwNyw3ICsxMDcsNyBAQCBzdGF0aWMgaW50IG5jaV9x dWV1ZV90eF9kYXRhX2ZyYWdzKHN0cnVjdCBuY2lfZGV2ICpuZGV2LAogCWNvbm5faW5mbyA9IG5j aV9nZXRfY29ubl9pbmZvX2J5X2Nvbm5faWQobmRldiwgY29ubl9pZCk7CiAJaWYgKCFjb25uX2lu Zm8pIHsKIAkJcmMgPSAtRVBST1RPOwotCQlnb3RvIGZyZWVfZXhpdDsKKwkJZ290byBleGl0Owog CX0KIAogCV9fc2tiX3F1ZXVlX2hlYWRfaW5pdCgmZnJhZ3NfcSk7Ci0tIAoyLjIwLjEKCgpGcm9t IDQxM2NhZjRhZGRjMzc0Y2VmNTE1OGVmNjc4MTU0ZmY5NWYzN2RjYTUgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IEhlaW5lciBLYWxsd2VpdCA8aGthbGx3ZWl0MUBnbWFpbC5jb20+CkRh dGU6IFNhdCwgMTMgSnVsIDIwMTkgMTM6NDU6NDcgKzAyMDAKU3ViamVjdDogW1BBVENIIDIwLzQ5 XSByODE2OTogZml4IGlzc3VlIHdpdGggY29uZnVzZWQgUlggdW5pdCBhZnRlciBQSFkKIHBvd2Vy LWRvd24gb24gUlRMODQxMWIKClsgVXBzdHJlYW0gY29tbWl0IGZlNGU4ZGIwMzkyYTZjMmU3OTVl Yjg5ZWY1ZmNkODY1MjJlNjYyNDggXQoKT24gUlRMODQxMWIgdGhlIFJYIHVuaXQgZ2V0cyBjb25m dXNlZCBpZiB0aGUgUEhZIGlzIHBvd2VyZWQtZG93bi4KVGhpcyB3YXMgcmVwb3J0ZWQgaW4gWzBd IGFuZCBjb25maXJtZWQgYnkgUmVhbHRlay4gUmVhbHRlayBwcm92aWRlZAphIHNlcXVlbmNlIHRv IGZpeCB0aGUgUlggdW5pdCBhZnRlciBQSFkgd2FrZXVwLgoKVGhlIGlzc3VlIGl0c2VsZiBzZWVt cyB0byBoYXZlIGJlZW4gdGhlcmUgbG9uZ2VyLCB0aGUgRml4ZXMgdGFnCnJlZmVycyB0byB3aGVy ZSB0aGUgZml4IGFwcGxpZXMgcHJvcGVybHkuCgpbMF0gaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQu Y29tL3Nob3dfYnVnLmNnaT9pZD0xNjkyMDc1CgpGaXhlczogYTk5NzkwYmY1YzdmICgicjgxNjk6 IFJlaW5zdGF0ZSBBU1BNIFN1cHBvcnQiKQpUZXN0ZWQtYnk6IElvbnV0IFJhZHUgPGlvbnV0LnJh ZHVAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBIZWluZXIgS2FsbHdlaXQgPGhrYWxsd2VpdDFA Z21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OS5jIHwgMTM3ICsr KysrKysrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDEzNyBpbnNlcnRpb25z KCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OS5jIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OS5jCmluZGV4IGQwNmE2MWYwMGU3OC4u OTY2MzdmY2JlNjVkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9yZWFsdGVrL3I4 MTY5LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OS5jCkBAIC01MTU3 LDYgKzUxNTcsMTQzIEBAIHN0YXRpYyB2b2lkIHJ0bF9od19zdGFydF84NDExXzIoc3RydWN0IHJ0 bDgxNjlfcHJpdmF0ZSAqdHApCiAJLyogZGlzYWJsZSBhc3BtIGFuZCBjbG9jayByZXF1ZXN0IGJl Zm9yZSBhY2Nlc3MgZXBoeSAqLwogCXJ0bF9od19hc3BtX2Nsa3JlcV9lbmFibGUodHAsIGZhbHNl KTsKIAlydGxfZXBoeV9pbml0KHRwLCBlX2luZm9fODQxMV8yKTsKKworCS8qIFRoZSBmb2xsb3dp bmcgUmVhbHRlay1wcm92aWRlZCBtYWdpYyBmaXhlcyBhbiBpc3N1ZSB3aXRoIHRoZSBSWCB1bml0 CisJICogZ2V0dGluZyBjb25mdXNlZCBhZnRlciB0aGUgUEhZIGhhdmluZyBiZWVuIHBvd2VyZWQt ZG93bi4KKwkgKi8KKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEZDMjgsIDB4MDAwMCk7CisJ cjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGQzJBLCAweDAwMDApOworCXI4MTY4X21hY19vY3Bf d3JpdGUodHAsIDB4RkMyQywgMHgwMDAwKTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEZD MkUsIDB4MDAwMCk7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGQzMwLCAweDAwMDApOwor CXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4RkMzMiwgMHgwMDAwKTsKKwlyODE2OF9tYWNfb2Nw X3dyaXRlKHRwLCAweEZDMzQsIDB4MDAwMCk7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhG QzM2LCAweDAwMDApOworCW1kZWxheSgzKTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEZD MjYsIDB4MDAwMCk7CisKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4MDAsIDB4RTAwOCk7 CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGODAyLCAweEUwMEEpOworCXI4MTY4X21hY19v Y3Bfd3JpdGUodHAsIDB4RjgwNCwgMHhFMDBDKTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAw eEY4MDYsIDB4RTAwRSk7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGODA4LCAweEUwMjcp OworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4RjgwQSwgMHhFMDRGKTsKKwlyODE2OF9tYWNf b2NwX3dyaXRlKHRwLCAweEY4MEMsIDB4RTA1RSk7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwg MHhGODBFLCAweEUwNjUpOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4RjgxMCwgMHhDNjAy KTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4MTIsIDB4QkUwMCk7CisJcjgxNjhfbWFj X29jcF93cml0ZSh0cCwgMHhGODE0LCAweDAwMDApOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAs IDB4RjgxNiwgMHhDNTAyKTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4MTgsIDB4QkQw MCk7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGODFBLCAweDA3NEMpOworCXI4MTY4X21h Y19vY3Bfd3JpdGUodHAsIDB4RjgxQywgMHhDMzAyKTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRw LCAweEY4MUUsIDB4QkIwMCk7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGODIwLCAweDA4 MEEpOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4RjgyMiwgMHg2NDIwKTsKKwlyODE2OF9t YWNfb2NwX3dyaXRlKHRwLCAweEY4MjQsIDB4NDhDMik7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0 cCwgMHhGODI2LCAweDhDMjApOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4RjgyOCwgMHhD NTE2KTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4MkEsIDB4NjRBNCk7CisJcjgxNjhf bWFjX29jcF93cml0ZSh0cCwgMHhGODJDLCAweDQ5QzApOworCXI4MTY4X21hY19vY3Bfd3JpdGUo dHAsIDB4RjgyRSwgMHhGMDA5KTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4MzAsIDB4 NzRBMik7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGODMyLCAweDhDQTUpOworCXI4MTY4 X21hY19vY3Bfd3JpdGUodHAsIDB4RjgzNCwgMHg3NEEwKTsKKwlyODE2OF9tYWNfb2NwX3dyaXRl KHRwLCAweEY4MzYsIDB4QzUwRSk7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGODM4LCAw eDlDQTIpOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4RjgzQSwgMHgxQzExKTsKKwlyODE2 OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4M0MsIDB4OUNBMCk7CisJcjgxNjhfbWFjX29jcF93cml0 ZSh0cCwgMHhGODNFLCAweEUwMDYpOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4Rjg0MCwg MHg3NEY4KTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4NDIsIDB4NDhDNCk7CisJcjgx NjhfbWFjX29jcF93cml0ZSh0cCwgMHhGODQ0LCAweDhDRjgpOworCXI4MTY4X21hY19vY3Bfd3Jp dGUodHAsIDB4Rjg0NiwgMHhDNDA0KTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4NDgs IDB4QkMwMCk7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGODRBLCAweEM0MDMpOworCXI4 MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4Rjg0QywgMHhCQzAwKTsKKwlyODE2OF9tYWNfb2NwX3dy aXRlKHRwLCAweEY4NEUsIDB4MEJGMik7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGODUw LCAweDBDMEEpOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4Rjg1MiwgMHhFNDM0KTsKKwly ODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4NTQsIDB4RDNDMCk7CisJcjgxNjhfbWFjX29jcF93 cml0ZSh0cCwgMHhGODU2LCAweDQ5RDkpOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4Rjg1 OCwgMHhGMDFGKTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4NUEsIDB4QzUyNik7CisJ cjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGODVDLCAweDY0QTUpOworCXI4MTY4X21hY19vY3Bf d3JpdGUodHAsIDB4Rjg1RSwgMHgxNDAwKTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4 NjAsIDB4RjAwNyk7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGODYyLCAweDBDMDEpOwor CXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4Rjg2NCwgMHg4Q0E1KTsKKwlyODE2OF9tYWNfb2Nw X3dyaXRlKHRwLCAweEY4NjYsIDB4MUMxNSk7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhG ODY4LCAweEM1MUIpOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4Rjg2QSwgMHg5Q0EwKTsK KwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4NkMsIDB4RTAxMyk7CisJcjgxNjhfbWFjX29j cF93cml0ZSh0cCwgMHhGODZFLCAweEM1MTkpOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4 Rjg3MCwgMHg3NEEwKTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4NzIsIDB4NDhDNCk7 CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGODc0LCAweDhDQTApOworCXI4MTY4X21hY19v Y3Bfd3JpdGUodHAsIDB4Rjg3NiwgMHhDNTE2KTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAw eEY4NzgsIDB4NzRBNCk7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGODdBLCAweDQ4Qzgp OworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4Rjg3QywgMHg0OENBKTsKKwlyODE2OF9tYWNf b2NwX3dyaXRlKHRwLCAweEY4N0UsIDB4OUNBNCk7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwg MHhGODgwLCAweEM1MTIpOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4Rjg4MiwgMHgxQjAw KTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4ODQsIDB4OUJBMCk7CisJcjgxNjhfbWFj X29jcF93cml0ZSh0cCwgMHhGODg2LCAweDFCMUMpOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAs IDB4Rjg4OCwgMHg0ODNGKTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4OEEsIDB4OUJB Mik7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGODhDLCAweDFCMDQpOworCXI4MTY4X21h Y19vY3Bfd3JpdGUodHAsIDB4Rjg4RSwgMHhDNTA4KTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRw LCAweEY4OTAsIDB4OUJBMCk7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGODkyLCAweEM1 MDUpOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4Rjg5NCwgMHhCRDAwKTsKKwlyODE2OF9t YWNfb2NwX3dyaXRlKHRwLCAweEY4OTYsIDB4QzUwMik7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0 cCwgMHhGODk4LCAweEJEMDApOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4Rjg5QSwgMHgw MzAwKTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4OUMsIDB4MDUxRSk7CisJcjgxNjhf bWFjX29jcF93cml0ZSh0cCwgMHhGODlFLCAweEU0MzQpOworCXI4MTY4X21hY19vY3Bfd3JpdGUo dHAsIDB4RjhBMCwgMHhFMDE4KTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4QTIsIDB4 RTA5Mik7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGOEE0LCAweERFMjApOworCXI4MTY4 X21hY19vY3Bfd3JpdGUodHAsIDB4RjhBNiwgMHhEM0MwKTsKKwlyODE2OF9tYWNfb2NwX3dyaXRl KHRwLCAweEY4QTgsIDB4QzUwRik7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGOEFBLCAw eDc2QTQpOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4RjhBQywgMHg0OUUzKTsKKwlyODE2 OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4QUUsIDB4RjAwNyk7CisJcjgxNjhfbWFjX29jcF93cml0 ZSh0cCwgMHhGOEIwLCAweDQ5QzApOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4RjhCMiwg MHhGMTAzKTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4QjQsIDB4QzYwNyk7CisJcjgx NjhfbWFjX29jcF93cml0ZSh0cCwgMHhGOEI2LCAweEJFMDApOworCXI4MTY4X21hY19vY3Bfd3Jp dGUodHAsIDB4RjhCOCwgMHhDNjA2KTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4QkEs IDB4QkUwMCk7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGOEJDLCAweEM2MDIpOworCXI4 MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4RjhCRSwgMHhCRTAwKTsKKwlyODE2OF9tYWNfb2NwX3dy aXRlKHRwLCAweEY4QzAsIDB4MEM0Qyk7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGOEMy LCAweDBDMjgpOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4RjhDNCwgMHgwQzJDKTsKKwly ODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4QzYsIDB4REMwMCk7CisJcjgxNjhfbWFjX29jcF93 cml0ZSh0cCwgMHhGOEM4LCAweEM3MDcpOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4RjhD QSwgMHgxRDAwKTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4Q0MsIDB4OERFMik7CisJ cjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGOENFLCAweDQ4QzEpOworCXI4MTY4X21hY19vY3Bf d3JpdGUodHAsIDB4RjhEMCwgMHhDNTAyKTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRwLCAweEY4 RDIsIDB4QkQwMCk7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGOEQ0LCAweDAwQUEpOwor CXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4RjhENiwgMHhFMEMwKTsKKwlyODE2OF9tYWNfb2Nw X3dyaXRlKHRwLCAweEY4RDgsIDB4QzUwMik7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhG OERBLCAweEJEMDApOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4RjhEQywgMHgwMTMyKTsK KworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4RkMyNiwgMHg4MDAwKTsKKworCXI4MTY4X21h Y19vY3Bfd3JpdGUodHAsIDB4RkMyQSwgMHgwNzQzKTsKKwlyODE2OF9tYWNfb2NwX3dyaXRlKHRw LCAweEZDMkMsIDB4MDgwMSk7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0cCwgMHhGQzJFLCAweDBC RTkpOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4RkMzMCwgMHgwMkZEKTsKKwlyODE2OF9t YWNfb2NwX3dyaXRlKHRwLCAweEZDMzIsIDB4MEMyNSk7CisJcjgxNjhfbWFjX29jcF93cml0ZSh0 cCwgMHhGQzM0LCAweDAwQTkpOworCXI4MTY4X21hY19vY3Bfd3JpdGUodHAsIDB4RkMzNiwgMHgw MTJEKTsKKwogCXJ0bF9od19hc3BtX2Nsa3JlcV9lbmFibGUodHAsIHRydWUpOwogfQogCi0tIAoy LjIwLjEKCgpGcm9tIGQ4NGI4MzQ5ZDRmOWE5NWIyMGExYTFiZmRjNTJmMTFjMzY4ZjUxMGQgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhdmlkIEhvd2VsbHMgPGRob3dlbGxzQHJlZGhh dC5jb20+CkRhdGU6IFR1ZSwgMiBKdWwgMjAxOSAxNTo1OToxMiArMDEwMApTdWJqZWN0OiBbUEFU Q0ggMjEvNDldIHJ4cnBjOiBGaXggc2VuZCBvbiBhIGNvbm5lY3RlZCwgYnV0IHVuYm91bmQgc29j a2V0CgpbIFVwc3RyZWFtIGNvbW1pdCBlODM1YWRhMDcwOTFmNDBkY2ZiMWJjNzM1MDgyYmQwYTdj MDA1ZTU5IF0KCklmIHNlbmRtc2coKSBvciBzZW5kbW1zZygpIGlzIGNhbGxlZCBvbiBhIGNvbm5l Y3RlZCBzb2NrZXQgdGhhdCBoYXNuJ3QgaGFkCmJpbmQoKSBjYWxsZWQgb24gaXQsIHRoZW4gYW4g b29wcyB3aWxsIG9jY3VyIHdoZW4gdGhlIGtlcm5lbCB0cmllcyB0bwpjb25uZWN0IHRoZSBjYWxs IGJlY2F1c2Ugbm8gbG9jYWwgZW5kcG9pbnQgaGFzIGJlZW4gYWxsb2NhdGVkLgoKRml4IHRoaXMg YnkgaW1wbGljaXRseSBiaW5kaW5nIHRoZSBzb2NrZXQgaWYgaXQgaXMgaW4gdGhlClJYUlBDX0NM SUVOVF9VTkJPVU5EIHN0YXRlLCBqdXN0IGxpa2UgaXQgZG9lcyBmb3IgdGhlIFJYUlBDX1VOQk9V TkQgc3RhdGUuCgpGdXJ0aGVyLCB0aGUgc3RhdGUgc2hvdWxkIGJlIHRyYW5zaXRpb25lZCB0byBS WFJQQ19DTElFTlRfQk9VTkQgYWZ0ZXIgdGhpcwp0byBwcmV2ZW50IGZ1cnRoZXIgYXR0ZW1wdHMg dG8gYmluZCBpdC4KClRoaXMgY2FuIGJlIHRlc3RlZCB3aXRoOgoKCSNpbmNsdWRlIDxzdGRpby5o PgoJI2luY2x1ZGUgPHN0ZGxpYi5oPgoJI2luY2x1ZGUgPHN0cmluZy5oPgoJI2luY2x1ZGUgPHN5 cy9zb2NrZXQuaD4KCSNpbmNsdWRlIDxhcnBhL2luZXQuaD4KCSNpbmNsdWRlIDxsaW51eC9yeHJw Yy5oPgoJc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgaW5ldDZfYWRkclsxNl0gPSB7CgkJMCwg MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgLTEsIC0xLCAweGFjLCAweDE0LCAweDE0LCAweGFh Cgl9OwoJaW50IG1haW4odm9pZCkKCXsKCQlzdHJ1Y3Qgc29ja2FkZHJfcnhycGMgc3J4OwoJCXN0 cnVjdCBjbXNnaGRyICpjbTsKCQlzdHJ1Y3QgbXNnaGRyIG1zZzsKCQl1bnNpZ25lZCBjaGFyIGNv bnRyb2xbMTZdOwoJCWludCBmZDsKCQltZW1zZXQoJnNyeCwgMCwgc2l6ZW9mKHNyeCkpOwoJCXNy eC5zcnhfZmFtaWx5ID0gMHgyMTsKCQlzcnguc3J4X3NlcnZpY2UgPSAwOwoJCXNyeC50cmFuc3Bv cnRfdHlwZSA9IEFGX0lORVQ7CgkJc3J4LnRyYW5zcG9ydF9sZW4gPSAweDFjOwoJCXNyeC50cmFu c3BvcnQuc2luNi5zaW42X2ZhbWlseSA9IEFGX0lORVQ2OwoJCXNyeC50cmFuc3BvcnQuc2luNi5z aW42X3BvcnQgPSBodG9ucygweDRlMjIpOwoJCXNyeC50cmFuc3BvcnQuc2luNi5zaW42X2Zsb3dp bmZvID0gaHRvbnMoMHg0ZTIyKTsKCQlzcngudHJhbnNwb3J0LnNpbjYuc2luNl9zY29wZV9pZCA9 IGh0b25zKDB4YWEzYik7CgkJbWVtY3B5KCZzcngudHJhbnNwb3J0LnNpbjYuc2luNl9hZGRyLCBp bmV0Nl9hZGRyLCAxNik7CgkJY20gPSAoc3RydWN0IGNtc2doZHIgKiljb250cm9sOwoJCWNtLT5j bXNnX2xlbgk9IENNU0dfTEVOKHNpemVvZih1bnNpZ25lZCBsb25nKSk7CgkJY20tPmNtc2dfbGV2 ZWwJPSBTT0xfUlhSUEM7CgkJY20tPmNtc2dfdHlwZQk9IFJYUlBDX1VTRVJfQ0FMTF9JRDsKCQkq KHVuc2lnbmVkIGxvbmcgKilDTVNHX0RBVEEoY20pID0gMDsKCQltc2cubXNnX25hbWUgPSBOVUxM OwoJCW1zZy5tc2dfbmFtZWxlbiA9IDA7CgkJbXNnLm1zZ19pb3YgPSBOVUxMOwoJCW1zZy5tc2df aW92bGVuID0gMDsKCQltc2cubXNnX2NvbnRyb2wgPSBjb250cm9sOwoJCW1zZy5tc2dfY29udHJv bGxlbiA9IGNtLT5jbXNnX2xlbjsKCQltc2cubXNnX2ZsYWdzID0gMDsKCQlmZCA9IHNvY2tldChB Rl9SWFJQQywgU09DS19ER1JBTSwgQUZfSU5FVCk7CgkJY29ubmVjdChmZCwgKHN0cnVjdCBzb2Nr YWRkciAqKSZzcngsIHNpemVvZihzcngpKTsKCQlzZW5kbXNnKGZkLCAmbXNnLCAwKTsKCQlyZXR1 cm4gMDsKCX0KCkxlYWRpbmcgdG8gdGhlIGZvbGxvd2luZyBvb3BzOgoKCUJVRzoga2VybmVsIE5V TEwgcG9pbnRlciBkZXJlZmVyZW5jZSwgYWRkcmVzczogMDAwMDAwMDAwMDAwMDAxOAoJI1BGOiBz dXBlcnZpc29yIHJlYWQgYWNjZXNzIGluIGtlcm5lbCBtb2RlCgkjUEY6IGVycm9yX2NvZGUoMHgw MDAwKSAtIG5vdC1wcmVzZW50IHBhZ2UKCS4uLgoJUklQOiAwMDEwOnJ4cnBjX2Nvbm5lY3RfY2Fs bCsweDQyLzB4YTAxCgkuLi4KCUNhbGwgVHJhY2U6CgkgPyBtYXJrX2hlbGRfbG9ja3MrMHg0Ny8w eDU5CgkgPyBfX2xvY2FsX2JoX2VuYWJsZV9pcCsweGI2LzB4YmEKCSByeHJwY19uZXdfY2xpZW50 X2NhbGwrMHgzYjEvMHg3NjIKCSA/IHJ4cnBjX2RvX3NlbmRtc2crMHgzYzAvMHg5MmUKCSByeHJw Y19kb19zZW5kbXNnKzB4M2MwLzB4OTJlCgkgcnhycGNfc2VuZG1zZysweDE2Yi8weDFiNQoJIHNv Y2tfc2VuZG1zZysweDJkLzB4MzkKCSBfX19zeXNfc2VuZG1zZysweDFhNC8weDIyYQoJID8gcmVs ZWFzZV9zb2NrKzB4MTkvMHg5ZQoJID8gcmVhY3F1aXJlX2hlbGRfbG9ja3MrMHgxMzYvMHgxNjAK CSA/IHJlbGVhc2Vfc29jaysweDE5LzB4OWUKCSA/IGZpbmRfaGVsZF9sb2NrKzB4MmIvMHg2ZQoJ ID8gX19sb2NrX2FjcXVpcmUrMHgyNjgvMHhmNzMKCSA/IHJ4cnBjX2Nvbm5lY3QrMHhkZC8weGU0 CgkgPyBfX2xvY2FsX2JoX2VuYWJsZV9pcCsweGI2LzB4YmEKCSBfX3N5c19zZW5kbXNnKzB4NWUv MHg5NAoJIGRvX3N5c2NhbGxfNjQrMHg3ZC8weDFiZgoJIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJf aHdmcmFtZSsweDQ5LzB4YmUKCkZpeGVzOiAyMzQxZTA3NzU3NDcgKCJyeHJwYzogU2ltcGxpZnkg Y29ubmVjdCgpIGltcGxlbWVudGF0aW9uIGFuZCBzaW1wbGlmeSBzZW5kbXNnKCkgb3AiKQpSZXBv cnRlZC1ieTogc3l6Ym90Kzc5NjZmMmEwYjJjN2RhODkzOWI0QHN5emthbGxlci5hcHBzcG90bWFp bC5jb20KU2lnbmVkLW9mZi1ieTogRGF2aWQgSG93ZWxscyA8ZGhvd2VsbHNAcmVkaGF0LmNvbT4K UmV2aWV3ZWQtYnk6IE1hcmMgRGlvbm5lIDxtYXJjLmRpb25uZUBhdXJpc3Rvci5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQv cnhycGMvYWZfcnhycGMuYyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygr KSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvcnhycGMvYWZfcnhycGMuYyBiL25l dC9yeHJwYy9hZl9yeHJwYy5jCmluZGV4IGY5ZjQ3MjFjZGZhNy4uZDA5ZWFmMTUzNTQ0IDEwMDY0 NAotLS0gYS9uZXQvcnhycGMvYWZfcnhycGMuYworKysgYi9uZXQvcnhycGMvYWZfcnhycGMuYwpA QCAtNTQ1LDYgKzU0NSw3IEBAIHN0YXRpYyBpbnQgcnhycGNfc2VuZG1zZyhzdHJ1Y3Qgc29ja2V0 ICpzb2NrLCBzdHJ1Y3QgbXNnaGRyICptLCBzaXplX3QgbGVuKQogCiAJc3dpdGNoIChyeC0+c2su c2tfc3RhdGUpIHsKIAljYXNlIFJYUlBDX1VOQk9VTkQ6CisJY2FzZSBSWFJQQ19DTElFTlRfVU5C T1VORDoKIAkJcngtPnNyeC5zcnhfZmFtaWx5ID0gQUZfUlhSUEM7CiAJCXJ4LT5zcnguc3J4X3Nl cnZpY2UgPSAwOwogCQlyeC0+c3J4LnRyYW5zcG9ydF90eXBlID0gU09DS19ER1JBTTsKQEAgLTU2 OSwxMCArNTcwLDkgQEAgc3RhdGljIGludCByeHJwY19zZW5kbXNnKHN0cnVjdCBzb2NrZXQgKnNv Y2ssIHN0cnVjdCBtc2doZHIgKm0sIHNpemVfdCBsZW4pCiAJCX0KIAogCQlyeC0+bG9jYWwgPSBs b2NhbDsKLQkJcngtPnNrLnNrX3N0YXRlID0gUlhSUENfQ0xJRU5UX1VOQk9VTkQ7CisJCXJ4LT5z ay5za19zdGF0ZSA9IFJYUlBDX0NMSUVOVF9CT1VORDsKIAkJLyogRmFsbCB0aHJvdWdoICovCiAK LQljYXNlIFJYUlBDX0NMSUVOVF9VTkJPVU5EOgogCWNhc2UgUlhSUENfQ0xJRU5UX0JPVU5EOgog CQlpZiAoIW0tPm1zZ19uYW1lICYmCiAJCSAgICB0ZXN0X2JpdChSWFJQQ19TT0NLX0NPTk5FQ1RF RCwgJnJ4LT5mbGFncykpIHsKLS0gCjIuMjAuMQoKCkZyb20gNjNmMmFkMDZlZWU0NzQ4MGIyZWRl Y2U4ZGFhZTA3YTE3NzFiNGE5NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWFyY2Vs byBSaWNhcmRvIExlaXRuZXIgPG1hcmNlbG8ubGVpdG5lckBnbWFpbC5jb20+CkRhdGU6IFRodSwg MjcgSnVuIDIwMTkgMTk6NDg6MTAgLTAzMDAKU3ViamVjdDogW1BBVENIIDIyLzQ5XSBzY3RwOiBm aXggZXJyb3IgaGFuZGxpbmcgb24gc3RyZWFtIHNjaGVkdWxlcgogaW5pdGlhbGl6YXRpb24KClsg VXBzdHJlYW0gY29tbWl0IDRkMTQxNTgxMWU0OTJkOWE4MjM4ZjhhOTJkZDBkNTE2MTJjNzg4ZTkg XQoKSXQgYWxsb2NhdGVzIHRoZSBleHRlbmRlZCBhcmVhIGZvciBvdXRib3VuZCBzdHJlYW1zIG9u bHkgb24gc2VuZG1zZwpjYWxscywgaWYgdGhleSBhcmUgbm90IHlldCBhbGxvY2F0ZWQuICBXaGVu IHVzaW5nIHRoZSBwcmlvcml0eQpzdHJlYW0gc2NoZWR1bGVyLCB0aGlzIGluaXRpYWxpemF0aW9u IG1heSBpbXBseSBpbnRvIGEgc3Vic2VxdWVudAphbGxvY2F0aW9uLCB3aGljaCBtYXkgZmFpbC4g IEluIHRoaXMgY2FzZSwgaXQgd2FzIGFib3J0aW5nIHRoZSBzdHJlYW0Kc2NoZWR1bGVyIGluaXRp YWxpemF0aW9uIGJ1dCBsZWF2aW5nIHRoZSAtPmV4dCBwb2ludGVyIChhbGxvY2F0ZWQpIGluCnRo ZXJlLCB0aHVzIGluIGEgcGFydGlhbGx5IGluaXRpYWxpemVkIHN0YXRlLiAgT24gYSBzdWJzZXF1 ZW50IGNhbGwgdG8Kc2VuZG1zZywgaXQgd291bGQgbm90aWNlIHRoZSAtPmV4dCBwb2ludGVyIGlu IHRoZXJlLCBhbmQgdHJpcCBvbgp1bmluaXRpYWxpemVkIHN0dWZmIHdoZW4gdHJ5aW5nIHRvIHNj aGVkdWxlIHRoZSBkYXRhIGNodW5rLgoKVGhlIGZpeCBpcyB1bmRvIHRoZSAtPmV4dCBpbml0aWFs aXphdGlvbiBpZiB0aGUgc3RyZWFtIHNjaGVkdWxlcgppbml0aWFsaXphdGlvbiBmYWlscyBhbmQg YXZvaWQgdGhlIHBhcnRpYWxseSBpbml0aWFsaXplZCBzdGF0ZS4KCkFsdGhvdWdoIHN5emthbGxl ciBiaXNlY3RlZCB0aGlzIHRvIGNvbW1pdCA0ZmY0MGI4NjI2MmIgKCJzY3RwOiBzZXQKY2h1bmsg dHJhbnNwb3J0IGNvcnJlY3RseSB3aGVuIGl0J3MgYSBuZXcgYXNvYyIpLCB0aGlzIGJ1ZyB3YXMg YWN0dWFsbHkKaW50cm9kdWNlZCBvbiB0aGUgY29tbWl0IEkgbWFya2VkIGJlbG93LgoKUmVwb3J0 ZWQtYnk6IHN5emJvdCtjMWEzODBkNDJiMTkwYWQxZTU1OUBzeXprYWxsZXIuYXBwc3BvdG1haWwu Y29tCkZpeGVzOiA1YmJiYmUzMmE0MzEgKCJzY3RwOiBpbnRyb2R1Y2Ugc3RyZWFtIHNjaGVkdWxl ciBmb3VuZGF0aW9ucyIpClRlc3RlZC1ieTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29t PgpTaWduZWQtb2ZmLWJ5OiBNYXJjZWxvIFJpY2FyZG8gTGVpdG5lciA8bWFyY2Vsby5sZWl0bmVy QGdtYWlsLmNvbT4KQWNrZWQtYnk6IE5laWwgSG9ybWFuIDxuaG9ybWFuQHJlZGhhdC5jb20+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBu ZXQvc2N0cC9zdHJlYW0uYyB8IDkgKysrKysrKystCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvc3RyZWFtLmMgYi9u ZXQvc2N0cC9zdHJlYW0uYwppbmRleCA5M2VkMDc4NzczMzcuLjI1OTQ2NjA0YWY4NSAxMDA2NDQK LS0tIGEvbmV0L3NjdHAvc3RyZWFtLmMKKysrIGIvbmV0L3NjdHAvc3RyZWFtLmMKQEAgLTE1Mywx MyArMTUzLDIwIEBAIGludCBzY3RwX3N0cmVhbV9pbml0KHN0cnVjdCBzY3RwX3N0cmVhbSAqc3Ry ZWFtLCBfX3UxNiBvdXRjbnQsIF9fdTE2IGluY250LAogaW50IHNjdHBfc3RyZWFtX2luaXRfZXh0 KHN0cnVjdCBzY3RwX3N0cmVhbSAqc3RyZWFtLCBfX3UxNiBzaWQpCiB7CiAJc3RydWN0IHNjdHBf c3RyZWFtX291dF9leHQgKnNvdXRlOworCWludCByZXQ7CiAKIAlzb3V0ZSA9IGt6YWxsb2Moc2l6 ZW9mKCpzb3V0ZSksIEdGUF9LRVJORUwpOwogCWlmICghc291dGUpCiAJCXJldHVybiAtRU5PTUVN OwogCVNDVFBfU08oc3RyZWFtLCBzaWQpLT5leHQgPSBzb3V0ZTsKIAotCXJldHVybiBzY3RwX3Nj aGVkX2luaXRfc2lkKHN0cmVhbSwgc2lkLCBHRlBfS0VSTkVMKTsKKwlyZXQgPSBzY3RwX3NjaGVk X2luaXRfc2lkKHN0cmVhbSwgc2lkLCBHRlBfS0VSTkVMKTsKKwlpZiAocmV0KSB7CisJCWtmcmVl KFNDVFBfU08oc3RyZWFtLCBzaWQpLT5leHQpOworCQlTQ1RQX1NPKHN0cmVhbSwgc2lkKS0+ZXh0 ID0gTlVMTDsKKwl9CisKKwlyZXR1cm4gcmV0OwogfQogCiB2b2lkIHNjdHBfc3RyZWFtX2ZyZWUo c3RydWN0IHNjdHBfc3RyZWFtICpzdHJlYW0pCi0tIAoyLjIwLjEKCgpGcm9tIDdlMzU4M2U0ZWNm NjhiYjU3ZmM2MTUzMWUzMWQ3NTg0YzRmY2E1MTYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KRGF0ZTogV2VkLCAyNiBKdW4gMjAx OSAxNjozMTozOSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjMvNDldIHNjdHA6IG5vdCBiaW5kIHRo ZSBzb2NrZXQgaW4gc2N0cF9jb25uZWN0CgpbIFVwc3RyZWFtIGNvbW1pdCA5YjZjMDg4NzhlMjNh ZGI3Y2M4NGJkY2E5NGQ4YTk0NGIwM2YwOTllIF0KCk5vdyB3aGVuIHNjdHBfY29ubmVjdCgpIGlz IGNhbGxlZCB3aXRoIGEgd3Jvbmcgc2FfZmFtaWx5LCBpdCBiaW5kcwp0byBhIHBvcnQgYnV0IGRv ZXNuJ3Qgc2V0IGJwLT5wb3J0LCB0aGVuIHNjdHBfZ2V0X2FmX3NwZWNpZmljIHdpbGwKcmV0dXJu IE5VTEwgYW5kIHNjdHBfY29ubmVjdCgpIHJldHVybnMgLUVJTlZBTC4KClRoZW4gaWYgc2N0cF9i aW5kKCkgaXMgY2FsbGVkIHRvIGJpbmQgdG8gYW5vdGhlciBwb3J0LCB0aGUgbGFzdApwb3J0IGl0 IGhhcyBib3VuZCB3aWxsIGxlYWsgZHVlIHRvIGJwLT5wb3J0IGlzIE5VTEwgYnkgdGhlbi4KCnNj dHBfY29ubmVjdCgpIGRvZXNuJ3QgbmVlZCB0byBiaW5kIHBvcnRzLCBhcyBsYXRlciBfX3NjdHBf Y29ubmVjdAp3aWxsIGRvIGl0IGlmIGJwLT5wb3J0IGlzIE5VTEwuIFNvIHJlbW92ZSBpdCBmcm9t IHNjdHBfY29ubmVjdCgpLgpXaGlsZSBhdCBpdCwgcmVtb3ZlIHRoZSB1bm5lY2Vzc2FyeSBzb2Nr YWRkci5zYV9mYW1pbHkgbGVuIGNoZWNrCmFzIGl0J3MgYWxyZWFkeSBkb25lIGluIHNjdHBfaW5l dF9jb25uZWN0LgoKRml4ZXM6IDY0NGZiZGVhY2YxZCAoInNjdHA6IGZpeCB0aGUgaXNzdWUgdGhh dCBmbGFncyBhcmUgaWdub3JlZCB3aGVuIHVzaW5nIGtlcm5lbF9jb25uZWN0IikKUmVwb3J0ZWQt Ynk6IHN5emJvdCswNzliZjMyNmIzODA3MmY4NDlkOUBzeXprYWxsZXIuYXBwc3BvdG1haWwuY29t ClNpZ25lZC1vZmYtYnk6IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KQWNrZWQtYnk6 IE1hcmNlbG8gUmljYXJkbyBMZWl0bmVyIDxtYXJjZWxvLmxlaXRuZXJAZ21haWwuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0 L3NjdHAvc29ja2V0LmMgfCAyNCArKystLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFu Z2VkLCAzIGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9z Y3RwL3NvY2tldC5jIGIvbmV0L3NjdHAvc29ja2V0LmMKaW5kZXggMzllYTBhMzdhZjA5Li5mMzNh YTllZTllMjcgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3NvY2tldC5jCisrKyBiL25ldC9zY3RwL3Nv Y2tldC5jCkBAIC00ODE2LDM1ICs0ODE2LDE3IEBAIHN0YXRpYyBpbnQgc2N0cF9zZXRzb2Nrb3B0 KHN0cnVjdCBzb2NrICpzaywgaW50IGxldmVsLCBpbnQgb3B0bmFtZSwKIHN0YXRpYyBpbnQgc2N0 cF9jb25uZWN0KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNvY2thZGRyICphZGRyLAogCQkJaW50 IGFkZHJfbGVuLCBpbnQgZmxhZ3MpCiB7Ci0Jc3RydWN0IGluZXRfc29jayAqaW5ldCA9IGluZXRf c2soc2spOwogCXN0cnVjdCBzY3RwX2FmICphZjsKLQlpbnQgZXJyID0gMDsKKwlpbnQgZXJyID0g LUVJTlZBTDsKIAogCWxvY2tfc29jayhzayk7Ci0KIAlwcl9kZWJ1ZygiJXM6IHNrOiVwLCBzb2Nr YWRkcjolcCwgYWRkcl9sZW46JWRcbiIsIF9fZnVuY19fLCBzaywKIAkJIGFkZHIsIGFkZHJfbGVu KTsKIAotCS8qIFdlIG1heSBuZWVkIHRvIGJpbmQgdGhlIHNvY2tldC4gKi8KLQlpZiAoIWluZXQt PmluZXRfbnVtKSB7Ci0JCWlmIChzay0+c2tfcHJvdC0+Z2V0X3BvcnQoc2ssIDApKSB7Ci0JCQly ZWxlYXNlX3NvY2soc2spOwotCQkJcmV0dXJuIC1FQUdBSU47Ci0JCX0KLQkJaW5ldC0+aW5ldF9z cG9ydCA9IGh0b25zKGluZXQtPmluZXRfbnVtKTsKLQl9Ci0KIAkvKiBWYWxpZGF0ZSBhZGRyX2xl biBiZWZvcmUgY2FsbGluZyBjb21tb24gY29ubmVjdC9jb25uZWN0eCByb3V0aW5lLiAqLwotCWFm ID0gYWRkcl9sZW4gPCBvZmZzZXRvZmVuZChzdHJ1Y3Qgc29ja2FkZHIsIHNhX2ZhbWlseSkgPyBO VUxMIDoKLQkJc2N0cF9nZXRfYWZfc3BlY2lmaWMoYWRkci0+c2FfZmFtaWx5KTsKLQlpZiAoIWFm IHx8IGFkZHJfbGVuIDwgYWYtPnNvY2thZGRyX2xlbikgewotCQllcnIgPSAtRUlOVkFMOwotCX0g ZWxzZSB7Ci0JCS8qIFBhc3MgY29ycmVjdCBhZGRyIGxlbiB0byBjb21tb24gcm91dGluZSAoc28g aXQga25vd3MgdGhlcmUKLQkJICogaXMgb25seSBvbmUgYWRkcmVzcyBiZWluZyBwYXNzZWQuCi0J CSAqLworCWFmID0gc2N0cF9nZXRfYWZfc3BlY2lmaWMoYWRkci0+c2FfZmFtaWx5KTsKKwlpZiAo YWYgJiYgYWRkcl9sZW4gPj0gYWYtPnNvY2thZGRyX2xlbikKIAkJZXJyID0gX19zY3RwX2Nvbm5l Y3Qoc2ssIGFkZHIsIGFmLT5zb2NrYWRkcl9sZW4sIGZsYWdzLCBOVUxMKTsKLQl9CiAKIAlyZWxl YXNlX3NvY2soc2spOwogCXJldHVybiBlcnI7Ci0tIAoyLjIwLjEKCgpGcm9tIGMzNTQ3NTRkZDli M2JjNjBhYjEyYjk2ODJmY2E3MGM0Y2NhZDg5MzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IFRha2FzaGkgSXdhaSA8dGl3YWlAc3VzZS5kZT4KRGF0ZTogVHVlLCAyMyBKdWwgMjAxOSAx NzoxNToyNSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjQvNDldIHNreTI6IERpc2FibGUgTVNJIG9u IEFTVVMgUDZUCgpbIFVwc3RyZWFtIGNvbW1pdCBhMjYxZTM3OTc1MDZiZDU2MTcwMGJlNjQzZmUx YTg1YmY4MWU5NjYxIF0KClRoZSBvbmJvYXJkIHNreTIgTklDIG9uIEFTVVMgUDZUIFdTIFBSTyBk b2Vzbid0IHdvcmsgYWZ0ZXIgUE0gcmVzdW1lCmR1ZSB0byB0aGUgaW5mYW1vdXMgSVJRIHByb2Js ZW0uICBEaXNhYmxpbmcgTVNJIHdvcmtzIGFyb3VuZCBpdCwgc28KbGV0J3MgYWRkIGl0IHRvIHRo ZSBibGFja2xpc3QuCgpVbmZvcnR1bmF0ZWx5IHRoZSBCSU9TIG9uIHRoZSBtYWNoaW5lIGRvZXNu J3QgZmlsbCB0aGUgc3RhbmRhcmQKRE1JX1NZU18qIGVudHJ5LCBzbyB3ZSBwaWNrIHVwIERNSV9C T0FSRF8qIGVudHJpZXMgaW5zdGVhZC4KCkJ1Z0xpbms6IGh0dHBzOi8vYnVnemlsbGEuc3VzZS5j b20vc2hvd19idWcuY2dpP2lkPTExNDI0OTYKUmVwb3J0ZWQtYW5kLXRlc3RlZC1ieTogTWFyY3Vz IFNleWZhcnRoIDxtLnNleWZhcnRoQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogVGFrYXNoaSBJ d2FpIDx0aXdhaUBzdXNlLmRlPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9za3kyLmMg fCA3ICsrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3NreTIuYyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21hcnZlbGwvc2t5Mi5jCmluZGV4IGZlNTE4Yzg1NGQxZi4uYzkzYTZmOWI3MzViIDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3NreTIuYworKysgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3NreTIuYwpAQCAtNDkxNyw2ICs0OTE3LDEzIEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCBtc2lfYmxhY2tsaXN0W10gPSB7CiAJCQlETUlf TUFUQ0goRE1JX1BST0RVQ1RfTkFNRSwgIlAtNzkiKSwKIAkJfSwKIAl9LAorCXsKKwkJLmlkZW50 ID0gIkFTVVMgUDZUIiwKKwkJLm1hdGNoZXMgPSB7CisJCQlETUlfTUFUQ0goRE1JX0JPQVJEX1ZF TkRPUiwgIkFTVVNUZUsgQ29tcHV0ZXIgSU5DLiIpLAorCQkJRE1JX01BVENIKERNSV9CT0FSRF9O QU1FLCAiUDZUIiksCisJCX0sCisJfSwKIAl7fQogfTsKIAotLSAKMi4yMC4xCgoKRnJvbSA3YTA3 YjkzM2MyMDM0N2EzZWM0NWVhMDk5ZGM5NmFhZjY2NTU2NmUyIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IEZyaSwg MTkgSnVsIDIwMTkgMTE6NTI6MzMgLTA3MDAKU3ViamVjdDogW1BBVENIIDI1LzQ5XSB0Y3A6IGJl IG1vcmUgY2FyZWZ1bCBpbiB0Y3BfZnJhZ21lbnQoKQoKWyBVcHN0cmVhbSBjb21taXQgYjYxNzE1 OGRjMDk2NzA5ZDg2MDBjNTNiNjA1MjE0NGQxMmI4OWZhYiBdCgpTb21lIGFwcGxpY2F0aW9ucyBz ZXQgdGlueSBTT19TTkRCVUYgdmFsdWVzIGFuZCBleHBlY3QKVENQIHRvIGp1c3Qgd29yay4gUmVj ZW50IHBhdGNoZXMgdG8gYWRkcmVzcyBDVkUtMjAxOS0xMTQ3OApicm9rZSB0aGVtIGluIGNhc2Ug b2YgbG9zc2VzLCBzaW5jZSByZXRyYW5zbWl0cyBtaWdodApiZSBwcmV2ZW50ZWQuCgpXZSBzaG91 bGQgYWxsb3cgdGhlc2UgZmxvd3MgdG8gbWFrZSBwcm9ncmVzcy4KClRoaXMgcGF0Y2ggYWxsb3dz IHRoZSBmaXJzdCBhbmQgbGFzdCBza2IgaW4gcmV0cmFuc21pdCBxdWV1ZQp0byBiZSBzcGxpdCBl dmVuIGlmIG1lbW9yeSBsaW1pdHMgYXJlIGhpdC4KCkl0IGFsc28gYWRkcyB0aGUgc29tZSByb29t IGR1ZSB0byB0aGUgZmFjdCB0aGF0IHRjcF9zZW5kbXNnKCkKYW5kIHRjcF9zZW5kcGFnZSgpIG1p Z2h0IG92ZXJzaG9vdCBza193bWVtX3F1ZXVlZCBieSBhYm91dCBvbmUgZnVsbApUU08gc2tiICg2 NEtCIHNpemUpLiBOb3RlIHRoaXMgYWxsb3dhbmNlIHdhcyBhbHJlYWR5IHByZXNlbnQKaW4gc3Rh YmxlIGJhY2twb3J0cyBmb3Iga2VybmVscyA8IDQuMTUKCk5vdGUgZm9yIDwgNC4xNSBiYWNrcG9y dHMgOgogdGNwX3J0eF9xdWV1ZV90YWlsKCkgd2lsbCBwcm9iYWJseSBsb29rIGxpa2UgOgoKc3Rh dGljIGlubGluZSBzdHJ1Y3Qgc2tfYnVmZiAqdGNwX3J0eF9xdWV1ZV90YWlsKGNvbnN0IHN0cnVj dCBzb2NrICpzaykKewoJc3RydWN0IHNrX2J1ZmYgKnNrYiA9IHRjcF9zZW5kX2hlYWQoc2spOwoK CXJldHVybiBza2IgPyB0Y3Bfd3JpdGVfcXVldWVfcHJldihzaywgc2tiKSA6IHRjcF93cml0ZV9x dWV1ZV90YWlsKHNrKTsKfQoKRml4ZXM6IGYwNzBlZjJhYzY2NyAoInRjcDogdGNwX2ZyYWdtZW50 KCkgc2hvdWxkIGFwcGx5IHNhbmUgbWVtb3J5IGxpbWl0cyIpClNpZ25lZC1vZmYtYnk6IEVyaWMg RHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6IEFuZHJldyBQcm91dCA8 YXByb3V0QGxsLm1pdC5lZHU+ClRlc3RlZC1ieTogQW5kcmV3IFByb3V0IDxhcHJvdXRAbGwubWl0 LmVkdT4KVGVzdGVkLWJ5OiBKb25hdGhhbiBMZW1vbiA8am9uYXRoYW4ubGVtb25AZ21haWwuY29t PgpUZXN0ZWQtYnk6IE1pY2hhbCBLdWJlY2VrIDxta3ViZWNla0BzdXNlLmN6PgpBY2tlZC1ieTog TmVhbCBDYXJkd2VsbCA8bmNhcmR3ZWxsQGdvb2dsZS5jb20+CkFja2VkLWJ5OiBZdWNodW5nIENo ZW5nIDx5Y2hlbmdAZ29vZ2xlLmNvbT4KQWNrZWQtYnk6IENocmlzdG9waCBQYWFzY2ggPGNwYWFz Y2hAYXBwbGUuY29tPgpDYzogSm9uYXRoYW4gTG9vbmV5IDxqdGxAbmV0ZmxpeC5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNs dWRlL25ldC90Y3AuaCAgICAgfCAgNSArKysrKwogbmV0L2lwdjQvdGNwX291dHB1dC5jIHwgMTMg KysrKysrKysrKystLQogMiBmaWxlcyBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCAyIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3RjcC5oIGIvaW5jbHVkZS9uZXQvdGNw LmgKaW5kZXggNTgyYzBjYWE5ODExLi5kZDhlNDcyMzYyZTMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUv bmV0L3RjcC5oCisrKyBiL2luY2x1ZGUvbmV0L3RjcC5oCkBAIC0xNjc1LDYgKzE2NzUsMTEgQEAg c3RhdGljIGlubGluZSBzdHJ1Y3Qgc2tfYnVmZiAqdGNwX3J0eF9xdWV1ZV9oZWFkKGNvbnN0IHN0 cnVjdCBzb2NrICpzaykKIAlyZXR1cm4gc2tiX3JiX2ZpcnN0KCZzay0+dGNwX3J0eF9xdWV1ZSk7 CiB9CiAKK3N0YXRpYyBpbmxpbmUgc3RydWN0IHNrX2J1ZmYgKnRjcF9ydHhfcXVldWVfdGFpbChj b25zdCBzdHJ1Y3Qgc29jayAqc2spCit7CisJcmV0dXJuIHNrYl9yYl9sYXN0KCZzay0+dGNwX3J0 eF9xdWV1ZSk7Cit9CisKIHN0YXRpYyBpbmxpbmUgc3RydWN0IHNrX2J1ZmYgKnRjcF93cml0ZV9x dWV1ZV9oZWFkKGNvbnN0IHN0cnVjdCBzb2NrICpzaykKIHsKIAlyZXR1cm4gc2tiX3BlZWsoJnNr LT5za193cml0ZV9xdWV1ZSk7CmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMgYi9u ZXQvaXB2NC90Y3Bfb3V0cHV0LmMKaW5kZXggMGViYzMzZDFjOWU1Li43ZDBiZTA0NmNiYzEgMTAw NjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9vdXRwdXQuYworKysgYi9uZXQvaXB2NC90Y3Bfb3V0cHV0 LmMKQEAgLTEyODYsNiArMTI4Niw3IEBAIGludCB0Y3BfZnJhZ21lbnQoc3RydWN0IHNvY2sgKnNr LCBlbnVtIHRjcF9xdWV1ZSB0Y3BfcXVldWUsCiAJc3RydWN0IHRjcF9zb2NrICp0cCA9IHRjcF9z ayhzayk7CiAJc3RydWN0IHNrX2J1ZmYgKmJ1ZmY7CiAJaW50IG5zaXplLCBvbGRfZmFjdG9yOwor CWxvbmcgbGltaXQ7CiAJaW50IG5sZW47CiAJdTggZmxhZ3M7CiAKQEAgLTEyOTYsOCArMTI5Nywx NiBAQCBpbnQgdGNwX2ZyYWdtZW50KHN0cnVjdCBzb2NrICpzaywgZW51bSB0Y3BfcXVldWUgdGNw X3F1ZXVlLAogCWlmIChuc2l6ZSA8IDApCiAJCW5zaXplID0gMDsKIAotCWlmICh1bmxpa2VseSgo c2stPnNrX3dtZW1fcXVldWVkID4+IDEpID4gc2stPnNrX3NuZGJ1ZiAmJgotCQkgICAgIHRjcF9x dWV1ZSAhPSBUQ1BfRlJBR19JTl9XUklURV9RVUVVRSkpIHsKKwkvKiB0Y3Bfc2VuZG1zZygpIGNh biBvdmVyc2hvb3Qgc2tfd21lbV9xdWV1ZWQgYnkgb25lIGZ1bGwgc2l6ZSBza2IuCisJICogV2Ug bmVlZCBzb21lIGFsbG93YW5jZSB0byBub3QgcGVuYWxpemUgYXBwbGljYXRpb25zIHNldHRpbmcg c21hbGwKKwkgKiBTT19TTkRCVUYgdmFsdWVzLgorCSAqIEFsc28gYWxsb3cgZmlyc3QgYW5kIGxh c3Qgc2tiIGluIHJldHJhbnNtaXQgcXVldWUgdG8gYmUgc3BsaXQuCisJICovCisJbGltaXQgPSBz ay0+c2tfc25kYnVmICsgMiAqIFNLQl9UUlVFU0laRShHU09fTUFYX1NJWkUpOworCWlmICh1bmxp a2VseSgoc2stPnNrX3dtZW1fcXVldWVkID4+IDEpID4gbGltaXQgJiYKKwkJICAgICB0Y3BfcXVl dWUgIT0gVENQX0ZSQUdfSU5fV1JJVEVfUVVFVUUgJiYKKwkJICAgICBza2IgIT0gdGNwX3J0eF9x dWV1ZV9oZWFkKHNrKSAmJgorCQkgICAgIHNrYiAhPSB0Y3BfcnR4X3F1ZXVlX3RhaWwoc2spKSkg ewogCQlORVRfSU5DX1NUQVRTKHNvY2tfbmV0KHNrKSwgTElOVVhfTUlCX1RDUFdRVUVVRVRPT0JJ Ryk7CiAJCXJldHVybiAtRU5PTUVNOwogCX0KLS0gCjIuMjAuMQoKCkZyb20gYmU5NDY5OGVhZTcw OTExNDVjZGRjY2VlMzI2YzU2MzcwMGMyZDc5MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBUaHUsIDE4IEp1bCAy MDE5IDE5OjI4OjE0IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyNi80OV0gdGNwOiBmaXggdGNwX3Nl dF9jb25nZXN0aW9uX2NvbnRyb2woKSB1c2UgZnJvbSBicGYgaG9vawoKWyBVcHN0cmVhbSBjb21t aXQgOGQ2NTBjZGVkYWFiYjMzZTg1ZTliN2M1MTdjMGM3MWZjZWNjMWRlOSBdCgpOZWFsIHJlcG9y dGVkIGluY29ycmVjdCB1c2Ugb2YgbnNfY2FwYWJsZSgpIGZyb20gYnBmIGhvb2suCgpicGZfc2V0 c29ja29wdCguLi5UQ1BfQ09OR0VTVElPTi4uLikKICAtPiB0Y3Bfc2V0X2Nvbmdlc3Rpb25fY29u dHJvbCgpCiAgIC0+IG5zX2NhcGFibGUoc29ja19uZXQoc2spLT51c2VyX25zLCBDQVBfTkVUX0FE TUlOKQogICAgLT4gbnNfY2FwYWJsZV9jb21tb24oKQogICAgIC0+IGN1cnJlbnRfY3JlZCgpCiAg ICAgIC0+IHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQoY3VycmVudC0+Y3JlZCwgMSkKCkFjY2Vz c2luZyAnY3VycmVudCcgaW4gYnBmIGNvbnRleHQgbWFrZXMgbm8gc2Vuc2UsIHNpbmNlIHBhY2tl dHMKYXJlIHByb2Nlc3NlZCBmcm9tIHNvZnRpcnEgY29udGV4dC4KCkFzIE5lYWwgc3RhdGVkIDog VGhlIGNhcGFiaWxpdHkgY2hlY2sgaW4gdGNwX3NldF9jb25nZXN0aW9uX2NvbnRyb2woKQp3YXMg d3JpdHRlbiBhc3N1bWluZyBhIHN5c3RlbSBjYWxsIGNvbnRleHQsIGFuZCB0aGVuIHdhcyByZXVz ZWQgZnJvbQphIEJQRiBjYWxsIHNpdGUuCgpUaGUgZml4IGlzIHRvIGFkZCBhIG5ldyBwYXJhbWV0 ZXIgdG8gdGNwX3NldF9jb25nZXN0aW9uX2NvbnRyb2woKSwKc28gdGhhdCB0aGUgbnNfY2FwYWJs ZSgpIGNhbGwgaXMgb25seSBwZXJmb3JtZWQgdW5kZXIgdGhlIHJpZ2h0CmNvbnRleHQuCgpGaXhl czogOTFiNWIyMWM3YzE2ICgiYnBmOiBBZGQgc3VwcG9ydCBmb3IgY2hhbmdpbmcgY29uZ2VzdGlv biBjb250cm9sIikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUu Y29tPgpDYzogTGF3cmVuY2UgQnJha21vIDxicmFrbW9AZmIuY29tPgpSZXBvcnRlZC1ieTogTmVh bCBDYXJkd2VsbCA8bmNhcmR3ZWxsQGdvb2dsZS5jb20+CkFja2VkLWJ5OiBOZWFsIENhcmR3ZWxs IDxuY2FyZHdlbGxAZ29vZ2xlLmNvbT4KQWNrZWQtYnk6IExhd3JlbmNlIEJyYWttbyA8YnJha21v QGZiLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIGluY2x1ZGUvbmV0L3RjcC5oICAgfCAzICsrLQogbmV0L2NvcmUvZmlsdGVyLmMg ICB8IDIgKy0KIG5ldC9pcHY0L3RjcC5jICAgICAgfCA0ICsrKy0KIG5ldC9pcHY0L3RjcF9jb25n LmMgfCA2ICsrKy0tLQogNCBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDYgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvdGNwLmggYi9pbmNsdWRlL25ldC90Y3Au aAppbmRleCBkZDhlNDcyMzYyZTMuLjJlZTA2MTkxYzQ4OCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9u ZXQvdGNwLmgKKysrIGIvaW5jbHVkZS9uZXQvdGNwLmgKQEAgLTEwNjMsNyArMTA2Myw4IEBAIHZv aWQgdGNwX2dldF9kZWZhdWx0X2Nvbmdlc3Rpb25fY29udHJvbChzdHJ1Y3QgbmV0ICpuZXQsIGNo YXIgKm5hbWUpOwogdm9pZCB0Y3BfZ2V0X2F2YWlsYWJsZV9jb25nZXN0aW9uX2NvbnRyb2woY2hh ciAqYnVmLCBzaXplX3QgbGVuKTsKIHZvaWQgdGNwX2dldF9hbGxvd2VkX2Nvbmdlc3Rpb25fY29u dHJvbChjaGFyICpidWYsIHNpemVfdCBsZW4pOwogaW50IHRjcF9zZXRfYWxsb3dlZF9jb25nZXN0 aW9uX2NvbnRyb2woY2hhciAqYWxsb3dlZCk7Ci1pbnQgdGNwX3NldF9jb25nZXN0aW9uX2NvbnRy b2woc3RydWN0IHNvY2sgKnNrLCBjb25zdCBjaGFyICpuYW1lLCBib29sIGxvYWQsIGJvb2wgcmVp bml0KTsKK2ludCB0Y3Bfc2V0X2Nvbmdlc3Rpb25fY29udHJvbChzdHJ1Y3Qgc29jayAqc2ssIGNv bnN0IGNoYXIgKm5hbWUsIGJvb2wgbG9hZCwKKwkJCSAgICAgICBib29sIHJlaW5pdCwgYm9vbCBj YXBfbmV0X2FkbWluKTsKIHUzMiB0Y3Bfc2xvd19zdGFydChzdHJ1Y3QgdGNwX3NvY2sgKnRwLCB1 MzIgYWNrZWQpOwogdm9pZCB0Y3BfY29uZ19hdm9pZF9haShzdHJ1Y3QgdGNwX3NvY2sgKnRwLCB1 MzIgdywgdTMyIGFja2VkKTsKIApkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZmlsdGVyLmMgYi9uZXQv Y29yZS9maWx0ZXIuYwppbmRleCBmNjE1ZTQyY2Y0ZWYuLmY2ODFmYjc3Mjk0MCAxMDA2NDQKLS0t IGEvbmV0L2NvcmUvZmlsdGVyLmMKKysrIGIvbmV0L2NvcmUvZmlsdGVyLmMKQEAgLTQzMzIsNyAr NDMzMiw3IEBAIEJQRl9DQUxMXzUoYnBmX3NldHNvY2tvcHQsIHN0cnVjdCBicGZfc29ja19vcHNf a2VybiAqLCBicGZfc29jaywKIAkJCQkJCSAgICBUQ1BfQ0FfTkFNRV9NQVgtMSkpOwogCQkJbmFt ZVtUQ1BfQ0FfTkFNRV9NQVgtMV0gPSAwOwogCQkJcmV0ID0gdGNwX3NldF9jb25nZXN0aW9uX2Nv bnRyb2woc2ssIG5hbWUsIGZhbHNlLAotCQkJCQkJCSByZWluaXQpOworCQkJCQkJCSByZWluaXQs IHRydWUpOwogCQl9IGVsc2UgewogCQkJc3RydWN0IHRjcF9zb2NrICp0cCA9IHRjcF9zayhzayk7 CiAKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcC5jIGIvbmV0L2lwdjQvdGNwLmMKaW5kZXggN2Rj OWFiODRiYjY5Li43ZGY4NzQ0ZWU4OGYgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcC5jCisrKyBi L25ldC9pcHY0L3RjcC5jCkBAIC0yNzY4LDcgKzI3NjgsOSBAQCBzdGF0aWMgaW50IGRvX3RjcF9z ZXRzb2Nrb3B0KHN0cnVjdCBzb2NrICpzaywgaW50IGxldmVsLAogCQluYW1lW3ZhbF0gPSAwOwog CiAJCWxvY2tfc29jayhzayk7Ci0JCWVyciA9IHRjcF9zZXRfY29uZ2VzdGlvbl9jb250cm9sKHNr LCBuYW1lLCB0cnVlLCB0cnVlKTsKKwkJZXJyID0gdGNwX3NldF9jb25nZXN0aW9uX2NvbnRyb2wo c2ssIG5hbWUsIHRydWUsIHRydWUsCisJCQkJCQkgbnNfY2FwYWJsZShzb2NrX25ldChzayktPnVz ZXJfbnMsCisJCQkJCQkJICAgIENBUF9ORVRfQURNSU4pKTsKIAkJcmVsZWFzZV9zb2NrKHNrKTsK IAkJcmV0dXJuIGVycjsKIAl9CmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3BfY29uZy5jIGIvbmV0 L2lwdjQvdGNwX2NvbmcuYwppbmRleCBlMTg2MmI2NGE5MGYuLmM0NDVhODFkMTQ0ZSAxMDA2NDQK LS0tIGEvbmV0L2lwdjQvdGNwX2NvbmcuYworKysgYi9uZXQvaXB2NC90Y3BfY29uZy5jCkBAIC0z MzMsNyArMzMzLDggQEAgaW50IHRjcF9zZXRfYWxsb3dlZF9jb25nZXN0aW9uX2NvbnRyb2woY2hh ciAqdmFsKQogICogdGNwX3JlaW5pdF9jb25nZXN0aW9uX2NvbnRyb2wgKGlmIHRoZSBjdXJyZW50 IGNvbmdlc3Rpb24gY29udHJvbCB3YXMKICAqIGFscmVhZHkgaW5pdGlhbGl6ZWQuCiAgKi8KLWlu dCB0Y3Bfc2V0X2Nvbmdlc3Rpb25fY29udHJvbChzdHJ1Y3Qgc29jayAqc2ssIGNvbnN0IGNoYXIg Km5hbWUsIGJvb2wgbG9hZCwgYm9vbCByZWluaXQpCitpbnQgdGNwX3NldF9jb25nZXN0aW9uX2Nv bnRyb2woc3RydWN0IHNvY2sgKnNrLCBjb25zdCBjaGFyICpuYW1lLCBib29sIGxvYWQsCisJCQkg ICAgICAgYm9vbCByZWluaXQsIGJvb2wgY2FwX25ldF9hZG1pbikKIHsKIAlzdHJ1Y3QgaW5ldF9j b25uZWN0aW9uX3NvY2sgKmljc2sgPSBpbmV0X2Nzayhzayk7CiAJY29uc3Qgc3RydWN0IHRjcF9j b25nZXN0aW9uX29wcyAqY2E7CkBAIC0zNjksOCArMzcwLDcgQEAgaW50IHRjcF9zZXRfY29uZ2Vz dGlvbl9jb250cm9sKHN0cnVjdCBzb2NrICpzaywgY29uc3QgY2hhciAqbmFtZSwgYm9vbCBsb2Fk LCBib28KIAkJfSBlbHNlIHsKIAkJCWVyciA9IC1FQlVTWTsKIAkJfQotCX0gZWxzZSBpZiAoISgo Y2EtPmZsYWdzICYgVENQX0NPTkdfTk9OX1JFU1RSSUNURUQpIHx8Ci0JCSAgICAgbnNfY2FwYWJs ZShzb2NrX25ldChzayktPnVzZXJfbnMsIENBUF9ORVRfQURNSU4pKSkgeworCX0gZWxzZSBpZiAo ISgoY2EtPmZsYWdzICYgVENQX0NPTkdfTk9OX1JFU1RSSUNURUQpIHx8IGNhcF9uZXRfYWRtaW4p KSB7CiAJCWVyciA9IC1FUEVSTTsKIAl9IGVsc2UgaWYgKCF0cnlfbW9kdWxlX2dldChjYS0+b3du ZXIpKSB7CiAJCWVyciA9IC1FQlVTWTsKLS0gCjIuMjAuMQoKCkZyb20gY2FkZTkzNDc0NmQ0NjI5 MTkxYTNkOTBiMDM3ODJlZTY3MWNkMzg5MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog Q2hyaXN0b3BoIFBhYXNjaCA8Y3BhYXNjaEBhcHBsZS5jb20+CkRhdGU6IFNhdCwgNiBKdWwgMjAx OSAxNjoxMzowNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMjcvNDldIHRjcDogUmVzZXQgYnl0ZXNf YWNrZWQgYW5kIGJ5dGVzX3JlY2VpdmVkIHdoZW4KIGRpc2Nvbm5lY3RpbmcKClsgVXBzdHJlYW0g Y29tbWl0IGU4NThmYWY1NTZkNGUxNGM3NTBiYTFlODg1Mjc4M2M2Zjk1MjBhMGUgXQoKSWYgYW4g YXBwIGlzIHBsYXlpbmcgdHJpY2tzIHRvIHJldXNlIGEgc29ja2V0IHZpYSB0Y3BfZGlzY29ubmVj dCgpLApieXRlc19hY2tlZC9yZWNlaXZlZCBuZWVkcyB0byBiZSByZXNldCB0byAwLiBPdGhlcndp c2UgdGNwX2luZm8gd2lsbApyZXBvcnQgdGhlIHN1bSBvZiB0aGUgY3VycmVudCBhbmQgdGhlIG9s ZCBjb25uZWN0aW9uLi4KCkNjOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkZp eGVzOiAwZGY0OGMyNmQ4NDEgKCJ0Y3A6IGFkZCB0Y3BpX2J5dGVzX2Fja2VkIHRvIHRjcF9pbmZv IikKRml4ZXM6IGJkZDFmOWVkYWNiNSAoInRjcDogYWRkIHRjcGlfYnl0ZXNfcmVjZWl2ZWQgdG8g dGNwX2luZm8iKQpTaWduZWQtb2ZmLWJ5OiBDaHJpc3RvcGggUGFhc2NoIDxjcGFhc2NoQGFwcGxl LmNvbT4KU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog bmV0L2lwdjQvdGNwLmMgfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpk aWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwLmMgYi9uZXQvaXB2NC90Y3AuYwppbmRleCA3ZGY4NzQ0 ZWU4OGYuLjUyNjRmMDY0YTg3ZSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwLmMKKysrIGIvbmV0 L2lwdjQvdGNwLmMKQEAgLTI2MTQsNiArMjYxNCw4IEBAIGludCB0Y3BfZGlzY29ubmVjdChzdHJ1 Y3Qgc29jayAqc2ssIGludCBmbGFncykKIAl0Y3Bfc2F2ZWRfc3luX2ZyZWUodHApOwogCXRwLT5j b21wcmVzc2VkX2FjayA9IDA7CiAJdHAtPmJ5dGVzX3NlbnQgPSAwOworCXRwLT5ieXRlc19hY2tl ZCA9IDA7CisJdHAtPmJ5dGVzX3JlY2VpdmVkID0gMDsKIAl0cC0+Ynl0ZXNfcmV0cmFucyA9IDA7 CiAJdHAtPmR1cGxpY2F0ZV9zYWNrWzBdLnN0YXJ0X3NlcSA9IDA7CiAJdHAtPmR1cGxpY2F0ZV9z YWNrWzBdLmVuZF9zZXEgPSAwOwotLSAKMi4yMC4xCgoKRnJvbSAxMGJiMDgwMDFjNjA5ZTA0ODcw MjA4ZWVjNjkyN2Y5NzUxMTRlYzZjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRl ciBLb3N5aCA8cC5rb3N5aEBnbWFpbC5jb20+CkRhdGU6IEZyaSwgMTkgSnVsIDIwMTkgMTE6MTE6 NDcgKzAzMDAKU3ViamVjdDogW1BBVENIIDI4LzQ5XSB2cmY6IG1ha2Ugc3VyZSBza2ItPmRhdGEg Y29udGFpbnMgaXAgaGVhZGVyIHRvIG1ha2UKIHJvdXRpbmcKClsgVXBzdHJlYW0gY29tbWl0IDEw N2U0N2NjODBlYzM3Y2IzMzJiZDQxYjIyYjFjNzc3OWUyMmUwMTggXQoKdnJmX3Byb2Nlc3NfdjRf b3V0Ym91bmQoKSBhbmQgdnJmX3Byb2Nlc3NfdjZfb3V0Ym91bmQoKSBkbyByb3V0aW5nCnVzaW5n IGlwL2lwdjYgYWRkcmVzc2VzLCBidXQgZG9uJ3QgbWFrZSBzdXJlIHRoZSBoZWFkZXIgaXMgYXZh aWxhYmxlCmluIHNrYi0+ZGF0YVtdIChza2JfaGVhZGxlbigpIGlzIGxlc3MgdGhlbiBoZWFkZXIg c2l6ZSkuCgpDYXNlOgoKMSkgaWdiIGRyaXZlciBmcm9tIGludGVsLgoyKSBQYWNrZXQgc2l6ZSBp cyBncmVhdGVyIHRoZW4gMjU1LgozKSBNUExTIGZvcndhcmRzIHRvIFZSRiBkZXZpY2UuCgpTbywg cGF0Y2ggYWRkcyBwc2tiX21heV9wdWxsKCkgY2FsbHMgaW4gdnJmX3Byb2Nlc3NfdjQvdjZfb3V0 Ym91bmQoKQpmdW5jdGlvbnMuCgpTaWduZWQtb2ZmLWJ5OiBQZXRlciBLb3N5aCA8cC5rb3N5aEBn bWFpbC5jb20+ClJldmlld2VkLWJ5OiBEYXZpZCBBaGVybiA8ZHNhQGN1bXVsdXNuZXR3b3Jrcy5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBkcml2ZXJzL25ldC92cmYuYyB8IDU4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMzUgaW5zZXJ0aW9ucygrKSwgMjMg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdnJmLmMgYi9kcml2ZXJzL25l dC92cmYuYwppbmRleCAzMTFiMGNjNmViOTguLjk3ZmIwY2IxYjk3YSAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvdnJmLmMKKysrIGIvZHJpdmVycy9uZXQvdnJmLmMKQEAgLTE2NSwyMyArMTY1LDI5 IEBAIHN0YXRpYyBpbnQgdnJmX2lwNl9sb2NhbF9vdXQoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qg c29jayAqc2ssCiBzdGF0aWMgbmV0ZGV2X3R4X3QgdnJmX3Byb2Nlc3NfdjZfb3V0Ym91bmQoc3Ry dWN0IHNrX2J1ZmYgKnNrYiwKIAkJCQkJICAgc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIHsKLQlj b25zdCBzdHJ1Y3QgaXB2NmhkciAqaXBoID0gaXB2Nl9oZHIoc2tiKTsKKwljb25zdCBzdHJ1Y3Qg aXB2NmhkciAqaXBoOwogCXN0cnVjdCBuZXQgKm5ldCA9IGRldl9uZXQoc2tiLT5kZXYpOwotCXN0 cnVjdCBmbG93aTYgZmw2ID0gewotCQkvKiBuZWVkZWQgdG8gbWF0Y2ggT0lGIHJ1bGUgKi8KLQkJ LmZsb3dpNl9vaWYgPSBkZXYtPmlmaW5kZXgsCi0JCS5mbG93aTZfaWlmID0gTE9PUEJBQ0tfSUZJ TkRFWCwKLQkJLmRhZGRyID0gaXBoLT5kYWRkciwKLQkJLnNhZGRyID0gaXBoLT5zYWRkciwKLQkJ LmZsb3dsYWJlbCA9IGlwNl9mbG93aW5mbyhpcGgpLAotCQkuZmxvd2k2X21hcmsgPSBza2ItPm1h cmssCi0JCS5mbG93aTZfcHJvdG8gPSBpcGgtPm5leHRoZHIsCi0JCS5mbG93aTZfZmxhZ3MgPSBG TE9XSV9GTEFHX1NLSVBfTkhfT0lGLAotCX07CisJc3RydWN0IGZsb3dpNiBmbDY7CiAJaW50IHJl dCA9IE5FVF9YTUlUX0RST1A7CiAJc3RydWN0IGRzdF9lbnRyeSAqZHN0OwogCXN0cnVjdCBkc3Rf ZW50cnkgKmRzdF9udWxsID0gJm5ldC0+aXB2Ni5pcDZfbnVsbF9lbnRyeS0+ZHN0OwogCisJaWYg KCFwc2tiX21heV9wdWxsKHNrYiwgRVRIX0hMRU4gKyBzaXplb2Yoc3RydWN0IGlwdjZoZHIpKSkK KwkJZ290byBlcnI7CisKKwlpcGggPSBpcHY2X2hkcihza2IpOworCisJbWVtc2V0KCZmbDYsIDAs IHNpemVvZihmbDYpKTsKKwkvKiBuZWVkZWQgdG8gbWF0Y2ggT0lGIHJ1bGUgKi8KKwlmbDYuZmxv d2k2X29pZiA9IGRldi0+aWZpbmRleDsKKwlmbDYuZmxvd2k2X2lpZiA9IExPT1BCQUNLX0lGSU5E RVg7CisJZmw2LmRhZGRyID0gaXBoLT5kYWRkcjsKKwlmbDYuc2FkZHIgPSBpcGgtPnNhZGRyOwor CWZsNi5mbG93bGFiZWwgPSBpcDZfZmxvd2luZm8oaXBoKTsKKwlmbDYuZmxvd2k2X21hcmsgPSBz a2ItPm1hcms7CisJZmw2LmZsb3dpNl9wcm90byA9IGlwaC0+bmV4dGhkcjsKKwlmbDYuZmxvd2k2 X2ZsYWdzID0gRkxPV0lfRkxBR19TS0lQX05IX09JRjsKKwogCWRzdCA9IGlwNl9yb3V0ZV9vdXRw dXQobmV0LCBOVUxMLCAmZmw2KTsKIAlpZiAoZHN0ID09IGRzdF9udWxsKQogCQlnb3RvIGVycjsK QEAgLTIzNywyMSArMjQzLDI3IEBAIHN0YXRpYyBpbnQgdnJmX2lwX2xvY2FsX291dChzdHJ1Y3Qg bmV0ICpuZXQsIHN0cnVjdCBzb2NrICpzaywKIHN0YXRpYyBuZXRkZXZfdHhfdCB2cmZfcHJvY2Vz c192NF9vdXRib3VuZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJCQkgICBzdHJ1Y3QgbmV0X2Rl dmljZSAqdnJmX2RldikKIHsKLQlzdHJ1Y3QgaXBoZHIgKmlwNGggPSBpcF9oZHIoc2tiKTsKKwlz dHJ1Y3QgaXBoZHIgKmlwNGg7CiAJaW50IHJldCA9IE5FVF9YTUlUX0RST1A7Ci0Jc3RydWN0IGZs b3dpNCBmbDQgPSB7Ci0JCS8qIG5lZWRlZCB0byBtYXRjaCBPSUYgcnVsZSAqLwotCQkuZmxvd2k0 X29pZiA9IHZyZl9kZXYtPmlmaW5kZXgsCi0JCS5mbG93aTRfaWlmID0gTE9PUEJBQ0tfSUZJTkRF WCwKLQkJLmZsb3dpNF90b3MgPSBSVF9UT1MoaXA0aC0+dG9zKSwKLQkJLmZsb3dpNF9mbGFncyA9 IEZMT1dJX0ZMQUdfQU5ZU1JDIHwgRkxPV0lfRkxBR19TS0lQX05IX09JRiwKLQkJLmZsb3dpNF9w cm90byA9IGlwNGgtPnByb3RvY29sLAotCQkuZGFkZHIgPSBpcDRoLT5kYWRkciwKLQkJLnNhZGRy ID0gaXA0aC0+c2FkZHIsCi0JfTsKKwlzdHJ1Y3QgZmxvd2k0IGZsNDsKIAlzdHJ1Y3QgbmV0ICpu ZXQgPSBkZXZfbmV0KHZyZl9kZXYpOwogCXN0cnVjdCBydGFibGUgKnJ0OwogCisJaWYgKCFwc2ti X21heV9wdWxsKHNrYiwgRVRIX0hMRU4gKyBzaXplb2Yoc3RydWN0IGlwaGRyKSkpCisJCWdvdG8g ZXJyOworCisJaXA0aCA9IGlwX2hkcihza2IpOworCisJbWVtc2V0KCZmbDQsIDAsIHNpemVvZihm bDQpKTsKKwkvKiBuZWVkZWQgdG8gbWF0Y2ggT0lGIHJ1bGUgKi8KKwlmbDQuZmxvd2k0X29pZiA9 IHZyZl9kZXYtPmlmaW5kZXg7CisJZmw0LmZsb3dpNF9paWYgPSBMT09QQkFDS19JRklOREVYOwor CWZsNC5mbG93aTRfdG9zID0gUlRfVE9TKGlwNGgtPnRvcyk7CisJZmw0LmZsb3dpNF9mbGFncyA9 IEZMT1dJX0ZMQUdfQU5ZU1JDIHwgRkxPV0lfRkxBR19TS0lQX05IX09JRjsKKwlmbDQuZmxvd2k0 X3Byb3RvID0gaXA0aC0+cHJvdG9jb2w7CisJZmw0LmRhZGRyID0gaXA0aC0+ZGFkZHI7CisJZmw0 LnNhZGRyID0gaXA0aC0+c2FkZHI7CisKIAlydCA9IGlwX3JvdXRlX291dHB1dF9mbG93KG5ldCwg JmZsNCwgTlVMTCk7CiAJaWYgKElTX0VSUihydCkpCiAJCWdvdG8gZXJyOwotLSAKMi4yMC4xCgoK RnJvbSA5NjAwNDU3MDYyOTAwZjMwZGRiNGJlODBkN2QwOTlkYTIzOWVhNGUxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYWVoZWUgWW9vIDxhcDQyMDA3M0BnbWFpbC5jb20+CkRhdGU6 IEZyaSwgMjggSnVuIDIwMTkgMTQ6MDc6MjUgKzA5MDAKU3ViamVjdDogW1BBVENIIDI5LzQ5XSB2 eGxhbjogZG8gbm90IGRlc3Ryb3kgZmRiIGlmIHJlZ2lzdGVyX25ldGRldmljZSgpIGlzCiBmYWls ZWQKClsgVXBzdHJlYW0gY29tbWl0IDdjMzFlNTRhZWVlNTE3ZDEzMThkZmMwYmRlOWZhN2RlNzU4 OTNkYzYgXQoKX192eGxhbl9kZXZfY3JlYXRlKCkgZGVzdHJveXMgRkRCIHVzaW5nIHNwZWNpZmlj IHBvaW50ZXIgd2hpY2ggaW5kaWNhdGVzCmEgZmRiIHdoZW4gZXJyb3Igb2NjdXJzLgpCdXQgdGhh dCBwb2ludGVyIHNob3VsZCBub3QgYmUgdXNlZCB3aGVuIHJlZ2lzdGVyX25ldGRldmljZSgpIGZh aWxzIGJlY2F1c2UKcmVnaXN0ZXJfbmV0ZGV2aWNlKCkgaW50ZXJuYWxseSBkZXN0cm95cyBmZGIg d2hlbiBlcnJvciBvY2N1cnMuCgpUaGlzIHBhdGNoIG1ha2VzIHZ4bGFuX2ZkYl9jcmVhdGUoKSB0 byBkbyBub3QgbGluayBmZGIgZW50cnkgdG8gdnhsYW4gZGV2CmludGVybmFsbHkuCkluc3RlYWQs IGEgbmV3IGZ1bmN0aW9uIHZ4bGFuX2ZkYl9pbnNlcnQoKSBpcyBhZGRlZCB0byBsaW5rIGZkYiB0 byB2eGxhbgpkZXYuCgp2eGxhbl9mZGJfaW5zZXJ0KCkgaXMgY2FsbGVkIGFmdGVyIGNhbGxpbmcg cmVnaXN0ZXJfbmV0ZGV2aWNlKCkuClRoaXMgcm91dGluZSBjYW4gYXZvaWQgc2l0dWF0aW9uIHRo YXQgLT5uZG9fdW5pbml0KCkgZGVzdHJveXMgZmRiIGVudHJ5CmluIGVycm9yIHBhdGggb2YgcmVn aXN0ZXJfbmV0ZGV2aWNlKCkuCkhlbmNlLCBlcnJvciBwYXRoIG9mIF9fdnhsYW5fZGV2X2NyZWF0 ZSgpIHJvdXRpbmUgY2FuIGhhdmUgYW4gb3Bwb3J0dW5pdHkKdG8gZGVzdHJveSBkZWZhdWx0IGZk YiBlbnRyeSBieSBoYW5kLgoKVGVzdCBjb21tYW5kCiAgICBpcCBsaW5rIGFkZCBib25kaW5nX21h c3RlcnMgdHlwZSB2eGxhbiBpZCAwIGdyb3VwIDIzOS4xLjEuMSBcCgkgICAgZGV2IGVucDBzOSBk c3Rwb3J0IDQ3ODkKClNwbGF0IGxvb2tzIGxpa2U6ClsgIDIxMy4zOTI4MTZdIGthc2FuOiBHUEYg Y291bGQgYmUgY2F1c2VkIGJ5IE5VTEwtcHRyIGRlcmVmIG9yIHVzZXIgbWVtb3J5IGFjY2Vzcwpb ICAyMTMuNDAxMjU3XSBnZW5lcmFsIHByb3RlY3Rpb24gZmF1bHQ6IDAwMDAgWyMxXSBTTVAgREVC VUdfUEFHRUFMTE9DIEtBU0FOIFBUSQpbICAyMTMuNDAyMTc4XSBDUFU6IDAgUElEOiAxNDE0IENv bW06IGlwIE5vdCB0YWludGVkIDUuMi4wLXJjNSsgIzI1NgpbICAyMTMuNDAyMTc4XSBSSVA6IDAw MTA6dnhsYW5fZmRiX2Rlc3Ryb3krMHgxMjAvMHgyMjAgW3Z4bGFuXQpbICAyMTMuNDAyMTc4XSBD b2RlOiBkZiA0OCA4YiAyYiA0OCA4OSBmYSA0OCBjMSBlYSAwMyA4MCAzYyAwMiAwMCAwZiA4NSAw NiAwMSAwMCAwMCA0YyA4YiA2MyAwOCA0OCBiOCAwMCAwMCAwMCAwMCAwMCBmYyBkClsgIDIxMy40 MDIxNzhdIFJTUDogMDAxODpmZmZmODg4MTBjYjlmMGEwIEVGTEFHUzogMDAwMTAyMDIKWyAgMjEz LjQwMjE3OF0gUkFYOiBkZmZmZmMwMDAwMDAwMDAwIFJCWDogZmZmZjg4ODEwMWQ0YThjOCBSQ1g6 IDAwMDAwMDAwMDAwMDAwMDAKWyAgMjEzLjQwMjE3OF0gUkRYOiAxYmQ1YTAwMDAwMDAwMDQwIFJT STogZmZmZjg4ODEwMWQ0YThjOCBSREk6IGZmZmY4ODgxMDFkNGE4ZDAKWyAgMjEzLjQwMjE3OF0g UkJQOiAwMDAwMDAwMDAwMDAwMDAwIFIwODogZmZmZmZiZmZmMjJiNzJkOSBSMDk6IDAwMDAwMDAw MDAwMDAwMDAKWyAgMjEzLjQwMjE3OF0gUjEwOiAwMDAwMDAwMGZmZmZmZmVmIFIxMTogMDAwMDAw MDAwMDAwMDAwMCBSMTI6IGRlYWQwMDAwMDAwMDAyMDAKWyAgMjEzLjQwMjE3OF0gUjEzOiBmZmZm ODg4MTBjYjlmMWY4IFIxNDogZmZmZjg4ODEwZWZjY2RhMCBSMTU6IGZmZmY4ODgxMGVmY2NkYTAK WyAgMjEzLjQwMjE3OF0gRlM6ICAwMDAwN2Y3ZjY2MjFhMGMwKDAwMDApIEdTOmZmZmY4ODgxMWIw MDAwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMApbICAyMTMuNDAyMTc4XSBDUzogIDAw MTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzClsgIDIxMy40MDIxNzhd IENSMjogMDAwMDU1NzQ2ZjA4MDdkMCBDUjM6IDAwMDAwMDAxMTIzZTAwMDAgQ1I0OiAwMDAwMDAw MDAwMTAwNmYwClsgIDIxMy40MDIxNzhdIENhbGwgVHJhY2U6ClsgIDIxMy40MDIxNzhdICBfX3Z4 bGFuX2Rldl9jcmVhdGUrMHgzYTkvMHg3ZDAgW3Z4bGFuXQpbICAyMTMuNDAyMTc4XSAgPyB2eGxh bl9jaGFuZ2VsaW5rKzB4NzQwLzB4NzQwIFt2eGxhbl0KWyAgMjEzLjQwMjE3OF0gID8gcmN1X3Jl YWRfdW5sb2NrKzB4NjAvMHg2MCBbdnhsYW5dClsgIDIxMy40MDIxNzhdICA/IF9fa2FzYW5fa21h bGxvYy5jb25zdHByb3AuMysweGEwLzB4ZDAKWyAgMjEzLjQwMjE3OF0gIHZ4bGFuX25ld2xpbmsr MHg4ZC8weGMwIFt2eGxhbl0KWyAgMjEzLjQwMjE3OF0gID8gX192eGxhbl9kZXZfY3JlYXRlKzB4 N2QwLzB4N2QwIFt2eGxhbl0KWyAgMjEzLjU1NDExOV0gID8gX19uZXRsaW5rX25zX2NhcGFibGUr MHhjMy8weGYwClsgIDIxMy41NTQxMTldICBfX3J0bmxfbmV3bGluaysweGI3NS8weDExODAKWyAg MjEzLjU1NDExOV0gID8gcnRubF9saW5rX3VucmVnaXN0ZXIrMHgyMzAvMHgyMzAKWyAuLi4gXQoK Rml4ZXM6IDAyNDFiODM2NzMyZiAoInZ4bGFuOiBmaXggZGVmYXVsdCBmZGIgZW50cnkgbmV0bGlu ayBub3RpZnkgb3JkZXJpbmcgZHVyaW5nIG5ldGRldiBjcmVhdGUiKQpTdWdnZXN0ZWQtYnk6IFJv b3BhIFByYWJodSA8cm9vcGFAY3VtdWx1c25ldHdvcmtzLmNvbT4KU2lnbmVkLW9mZi1ieTogVGFl aGVlIFlvbyA8YXA0MjAwNzNAZ21haWwuY29tPgpBY2tlZC1ieTogUm9vcGEgUHJhYmh1IDxyb29w YUBjdW11bHVzbmV0d29ya3MuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdnhsYW4uYyB8IDM3ICsrKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyNyBpbnNlcnRp b25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92eGxhbi5j IGIvZHJpdmVycy9uZXQvdnhsYW4uYwppbmRleCAwODNmM2YwYmYzN2YuLmI0MjgzZjUyYTA5ZCAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdnhsYW4uYworKysgYi9kcml2ZXJzL25ldC92eGxhbi5j CkBAIC04MDQsNiArODA0LDE0IEBAIHN0YXRpYyBzdHJ1Y3QgdnhsYW5fZmRiICp2eGxhbl9mZGJf YWxsb2Moc3RydWN0IHZ4bGFuX2RldiAqdnhsYW4sCiAJcmV0dXJuIGY7CiB9CiAKK3N0YXRpYyB2 b2lkIHZ4bGFuX2ZkYl9pbnNlcnQoc3RydWN0IHZ4bGFuX2RldiAqdnhsYW4sIGNvbnN0IHU4ICpt YWMsCisJCQkgICAgIF9fYmUzMiBzcmNfdm5pLCBzdHJ1Y3QgdnhsYW5fZmRiICpmKQoreworCSsr dnhsYW4tPmFkZHJjbnQ7CisJaGxpc3RfYWRkX2hlYWRfcmN1KCZmLT5obGlzdCwKKwkJCSAgIHZ4 bGFuX2ZkYl9oZWFkKHZ4bGFuLCBtYWMsIHNyY192bmkpKTsKK30KKwogc3RhdGljIGludCB2eGxh bl9mZGJfY3JlYXRlKHN0cnVjdCB2eGxhbl9kZXYgKnZ4bGFuLAogCQkJICAgIGNvbnN0IHU4ICpt YWMsIHVuaW9uIHZ4bGFuX2FkZHIgKmlwLAogCQkJICAgIF9fdTE2IHN0YXRlLCBfX2JlMTYgcG9y dCwgX19iZTMyIHNyY192bmksCkBAIC04MjksMTggKzgzNywxMyBAQCBzdGF0aWMgaW50IHZ4bGFu X2ZkYl9jcmVhdGUoc3RydWN0IHZ4bGFuX2RldiAqdnhsYW4sCiAJCXJldHVybiByYzsKIAl9CiAK LQkrK3Z4bGFuLT5hZGRyY250OwotCWhsaXN0X2FkZF9oZWFkX3JjdSgmZi0+aGxpc3QsCi0JCQkg ICB2eGxhbl9mZGJfaGVhZCh2eGxhbiwgbWFjLCBzcmNfdm5pKSk7Ci0KIAkqZmRiID0gZjsKIAog CXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCB2eGxhbl9mZGJfZnJlZShzdHJ1Y3QgcmN1X2hl YWQgKmhlYWQpCitzdGF0aWMgdm9pZCBfX3Z4bGFuX2ZkYl9mcmVlKHN0cnVjdCB2eGxhbl9mZGIg KmYpCiB7Ci0Jc3RydWN0IHZ4bGFuX2ZkYiAqZiA9IGNvbnRhaW5lcl9vZihoZWFkLCBzdHJ1Y3Qg dnhsYW5fZmRiLCByY3UpOwogCXN0cnVjdCB2eGxhbl9yZHN0ICpyZCwgKm5kOwogCiAJbGlzdF9m b3JfZWFjaF9lbnRyeV9zYWZlKHJkLCBuZCwgJmYtPnJlbW90ZXMsIGxpc3QpIHsKQEAgLTg1MCw2 ICs4NTMsMTMgQEAgc3RhdGljIHZvaWQgdnhsYW5fZmRiX2ZyZWUoc3RydWN0IHJjdV9oZWFkICpo ZWFkKQogCWtmcmVlKGYpOwogfQogCitzdGF0aWMgdm9pZCB2eGxhbl9mZGJfZnJlZShzdHJ1Y3Qg cmN1X2hlYWQgKmhlYWQpCit7CisJc3RydWN0IHZ4bGFuX2ZkYiAqZiA9IGNvbnRhaW5lcl9vZiho ZWFkLCBzdHJ1Y3QgdnhsYW5fZmRiLCByY3UpOworCisJX192eGxhbl9mZGJfZnJlZShmKTsKK30K Kwogc3RhdGljIHZvaWQgdnhsYW5fZmRiX2Rlc3Ryb3koc3RydWN0IHZ4bGFuX2RldiAqdnhsYW4s IHN0cnVjdCB2eGxhbl9mZGIgKmYsCiAJCQkgICAgICBib29sIGRvX25vdGlmeSwgYm9vbCBzd2Rl dl9ub3RpZnkpCiB7CkBAIC05NzcsNiArOTg3LDcgQEAgc3RhdGljIGludCB2eGxhbl9mZGJfdXBk YXRlX2NyZWF0ZShzdHJ1Y3QgdnhsYW5fZGV2ICp2eGxhbiwKIAlpZiAocmMgPCAwKQogCQlyZXR1 cm4gcmM7CiAKKwl2eGxhbl9mZGJfaW5zZXJ0KHZ4bGFuLCBtYWMsIHNyY192bmksIGYpOwogCXJj ID0gdnhsYW5fZmRiX25vdGlmeSh2eGxhbiwgZiwgZmlyc3RfcmVtb3RlX3J0bmwoZiksIFJUTV9O RVdORUlHSCwKIAkJCSAgICAgIHN3ZGV2X25vdGlmeSwgZXh0YWNrKTsKIAlpZiAocmMpCkBAIC0z NTcxLDEyICszNTgyLDE3IEBAIHN0YXRpYyBpbnQgX192eGxhbl9kZXZfY3JlYXRlKHN0cnVjdCBu ZXQgKm5ldCwgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAlpZiAoZXJyKQogCQlnb3RvIGVycm91 dDsKIAotCS8qIG5vdGlmeSBkZWZhdWx0IGZkYiBlbnRyeSAqLwogCWlmIChmKSB7CisJCXZ4bGFu X2ZkYl9pbnNlcnQodnhsYW4sIGFsbF96ZXJvc19tYWMsCisJCQkJIHZ4bGFuLT5kZWZhdWx0X2Rz dC5yZW1vdGVfdm5pLCBmKTsKKworCQkvKiBub3RpZnkgZGVmYXVsdCBmZGIgZW50cnkgKi8KIAkJ ZXJyID0gdnhsYW5fZmRiX25vdGlmeSh2eGxhbiwgZiwgZmlyc3RfcmVtb3RlX3J0bmwoZiksCiAJ CQkJICAgICAgIFJUTV9ORVdORUlHSCwgdHJ1ZSwgZXh0YWNrKTsKLQkJaWYgKGVycikKLQkJCWdv dG8gZXJyb3V0OworCQlpZiAoZXJyKSB7CisJCQl2eGxhbl9mZGJfZGVzdHJveSh2eGxhbiwgZiwg ZmFsc2UsIGZhbHNlKTsKKwkJCWdvdG8gdW5yZWdpc3RlcjsKKwkJfQogCX0KIAogCWxpc3RfYWRk KCZ2eGxhbi0+bmV4dCwgJnZuLT52eGxhbl9saXN0KTsKQEAgLTM1ODgsNyArMzYwNCw4IEBAIHN0 YXRpYyBpbnQgX192eGxhbl9kZXZfY3JlYXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IG5ldF9k ZXZpY2UgKmRldiwKIAkgKiBkZXN0cm95IHRoZSBlbnRyeSBieSBoYW5kIGhlcmUuCiAJICovCiAJ aWYgKGYpCi0JCXZ4bGFuX2ZkYl9kZXN0cm95KHZ4bGFuLCBmLCBmYWxzZSwgZmFsc2UpOworCQlf X3Z4bGFuX2ZkYl9mcmVlKGYpOwordW5yZWdpc3RlcjoKIAlpZiAodW5yZWdpc3RlcikKIAkJdW5y ZWdpc3Rlcl9uZXRkZXZpY2UoZGV2KTsKIAlyZXR1cm4gZXJyOwotLSAKMi4yMC4xCgoKRnJvbSBl MTg1NzVhMmE4ZjliMWI4NTdlOTdiMGU2OWU2MGIyNmNlNmNhNzQ1IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBBeWEgTGV2aW4gPGF5YWxAbWVsbGFub3guY29tPgpEYXRlOiBTdW4sIDcg SnVsIDIwMTkgMTY6NTc6MDYgKzAzMDAKU3ViamVjdDogW1BBVENIIDMwLzQ5XSBuZXQvbWx4NWU6 IElQb0lCLCBBZGQgZXJyb3IgcGF0aCBpbiBtbHg1X3JkbWFfc2V0dXBfcm4KClsgVXBzdHJlYW0g Y29tbWl0IGVmMWNlN2Q3YjY3YjQ2NjYxMDkxYzdjY2MwMzk2MTg2YjdhMjQ3ZWYgXQoKQ2hlY2sg cmV0dXJuIHZhbHVlIGZyb20gbWx4NWVfYXR0YWNoX25ldGRldiwgYWRkIGVycm9yIHBhdGggb24g ZmFpbHVyZS4KCkZpeGVzOiA0ODkzNWJiYjdhZTggKCJuZXQvbWx4NWU6IElQb0lCLCBBZGQgbmV0 ZGV2aWNlIHByb2ZpbGUgc2tlbGV0b24iKQpTaWduZWQtb2ZmLWJ5OiBBeWEgTGV2aW4gPGF5YWxA bWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogRmVyYXMgRGFvdWQgPGZlcmFzZGFAbWVsbGFub3gu Y29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4K LS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvaXBvaWIvaXBvaWIu YyB8IDkgKysrKysrKystCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAxIGRlbGV0 aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2lwb2liL2lwb2liLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvaXBvaWIvaXBvaWIuYwppbmRleCA5Y2E0OTJiNDMwZDguLjYwM2QyOTQ3NTdiNCAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2lwb2liL2lwb2li LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2lwb2liL2lw b2liLmMKQEAgLTY5OCw3ICs2OTgsOSBAQCBzdGF0aWMgaW50IG1seDVfcmRtYV9zZXR1cF9ybihz dHJ1Y3QgaWJfZGV2aWNlICppYmRldiwgdTggcG9ydF9udW0sCiAKIAlwcm9mLT5pbml0KG1kZXYs IG5ldGRldiwgcHJvZiwgaXByaXYpOwogCi0JbWx4NWVfYXR0YWNoX25ldGRldihlcHJpdik7CisJ ZXJyID0gbWx4NWVfYXR0YWNoX25ldGRldihlcHJpdik7CisJaWYgKGVycikKKwkJZ290byBkZXRh Y2g7CiAJbmV0aWZfY2Fycmllcl9vZmYobmV0ZGV2KTsKIAogCS8qIHNldCByZG1hX25ldGRldiBm dW5jIHBvaW50ZXJzICovCkBAIC03MTQsNiArNzE2LDExIEBAIHN0YXRpYyBpbnQgbWx4NV9yZG1h X3NldHVwX3JuKHN0cnVjdCBpYl9kZXZpY2UgKmliZGV2LCB1OCBwb3J0X251bSwKIAogCXJldHVy biAwOwogCitkZXRhY2g6CisJcHJvZi0+Y2xlYW51cChlcHJpdik7CisJaWYgKGlwcml2LT5zdWJf aW50ZXJmYWNlKQorCQlyZXR1cm4gZXJyOworCW1seDVlX2Rlc3Ryb3lfbWRldl9yZXNvdXJjZXMo bWRldik7CiBkZXN0cm95X2h0OgogCW1seDVpX3BrZXlfcXBuX2h0X2NsZWFudXAobmV0ZGV2KTsK IAlyZXR1cm4gZXJyOwotLSAKMi4yMC4xCgoKRnJvbSBhNjc5ZjFhMWYwODJjY2VhN2QxNTdiYzM2 NDg5NmVkMTczNWE4YmQ1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtvbGF5IEFs ZWtzYW5kcm92IDxuaWtvbGF5QGN1bXVsdXNuZXR3b3Jrcy5jb20+CkRhdGU6IFR1ZSwgMiBKdWwg MjAxOSAxNTowMDoxOCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMzEvNDldIG5ldDogYnJpZGdlOiBt Y2FzdDogZml4IHN0YWxlIG5zcmNzIHBvaW50ZXIgaW4KIGlnbXAzL21sZDIgcmVwb3J0IGhhbmRs aW5nCgpbIFVwc3RyZWFtIGNvbW1pdCBlNTdmNjE4NThiN2NmNDc4ZWQ2ZmEyM2VkNGIzODc2YjFj OTYyNWM0IF0KCldlIHRha2UgYSBwb2ludGVyIHRvIGdyZWMgcHJpb3IgdG8gY2FsbGluZyBwc2ti X21heV9wdWxsIGFuZCB1c2UgaXQKYWZ0ZXJ3YXJkcyB0byBnZXQgbnNyY3Mgc28gcmVjb3JkIG5z cmNzIGJlZm9yZSB0aGUgcHVsbCB3aGVuIGhhbmRsaW5nCmlnbXAzIGFuZCB3ZSBnZXQgYSBwb2lu dGVyIHRvIG5zcmNzIGFuZCBjYWxsIHBza2JfbWF5X3B1bGwgd2hlbiBoYW5kbGluZwptbGQyIHdo aWNoIGFnYWluIGNvdWxkIGxlYWQgdG8gcmVhZGluZyAyIGJ5dGVzIG91dC1vZi1ib3VuZHMuCgog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CiBCVUc6IEtBU0FOOiB1c2UtYWZ0ZXItZnJlZSBpbiBicl9tdWx0aWNhc3RfcmN2 KzB4NDgwYy8weDRhZDAgW2JyaWRnZV0KIFJlYWQgb2Ygc2l6ZSAyIGF0IGFkZHIgZmZmZjg4ODA0 MjEzMDJiNCBieSB0YXNrIGtzb2Z0aXJxZC8xLzE2CgogQ1BVOiAxIFBJRDogMTYgQ29tbToga3Nv ZnRpcnFkLzEgVGFpbnRlZDogRyAgICAgICAgICAgT0UgICAgIDUuMi4wLXJjNisgIzEKIEhhcmR3 YXJlIG5hbWU6IFFFTVUgU3RhbmRhcmQgUEMgKGk0NDBGWCArIFBJSVgsIDE5OTYpLCBCSU9TIDEu MTAuMi0xIDA0LzAxLzIwMTQKIENhbGwgVHJhY2U6CiAgZHVtcF9zdGFjaysweDcxLzB4YWIKICBw cmludF9hZGRyZXNzX2Rlc2NyaXB0aW9uKzB4NmEvMHgyODAKICA/IGJyX211bHRpY2FzdF9yY3Yr MHg0ODBjLzB4NGFkMCBbYnJpZGdlXQogIF9fa2FzYW5fcmVwb3J0KzB4MTUyLzB4MWFhCiAgPyBi cl9tdWx0aWNhc3RfcmN2KzB4NDgwYy8weDRhZDAgW2JyaWRnZV0KICA/IGJyX211bHRpY2FzdF9y Y3YrMHg0ODBjLzB4NGFkMCBbYnJpZGdlXQogIGthc2FuX3JlcG9ydCsweGUvMHgyMAogIGJyX211 bHRpY2FzdF9yY3YrMHg0ODBjLzB4NGFkMCBbYnJpZGdlXQogID8gYnJfbXVsdGljYXN0X2Rpc2Fi bGVfcG9ydCsweDE1MC8weDE1MCBbYnJpZGdlXQogID8ga3RpbWVfZ2V0X3dpdGhfb2Zmc2V0KzB4 YjQvMHgxNTAKICA/IF9fa2FzYW5fa21hbGxvYy5jb25zdHByb3AuNisweGE2LzB4ZjAKICA/IF9f bmV0aWZfcmVjZWl2ZV9za2IrMHgxYjAvMHgxYjAKICA/IGJyX2ZkYl91cGRhdGUrMHgxMGUvMHg2 ZTAgW2JyaWRnZV0KICA/IGJyX2hhbmRsZV9mcmFtZV9maW5pc2grMHgzYzYvMHgxMWQwIFticmlk Z2VdCiAgYnJfaGFuZGxlX2ZyYW1lX2ZpbmlzaCsweDNjNi8weDExZDAgW2JyaWRnZV0KICA/IGJy X3Bhc3NfZnJhbWVfdXArMHgzYTAvMHgzYTAgW2JyaWRnZV0KICA/IHZpcnRuZXRfcHJvYmUrMHgx YzgwLzB4MWM4MCBbdmlydGlvX25ldF0KICBicl9oYW5kbGVfZnJhbWUrMHg3MzEvMHhkOTAgW2Jy aWRnZV0KICA/IHNlbGVjdF9pZGxlX3NpYmxpbmcrMHgyNS8weDdkMAogID8gYnJfaGFuZGxlX2Zy YW1lX2ZpbmlzaCsweDExZDAvMHgxMWQwIFticmlkZ2VdCiAgX19uZXRpZl9yZWNlaXZlX3NrYl9j b3JlKzB4Y2VkLzB4MmQ3MAogID8gdmlydHF1ZXVlX2dldF9idWZfY3R4KzB4MjMwLzB4MTEzMCBb dmlydGlvX3JpbmddCiAgPyBkb194ZHBfZ2VuZXJpYysweDIwLzB4MjAKICA/IHZpcnRxdWV1ZV9u YXBpX2NvbXBsZXRlKzB4MzkvMHg3MCBbdmlydGlvX25ldF0KICA/IHZpcnRuZXRfcG9sbCsweDk0 ZC8weGM3OCBbdmlydGlvX25ldF0KICA/IHJlY2VpdmVfYnVmKzB4NTEyMC8weDUxMjAgW3ZpcnRp b19uZXRdCiAgPyBfX25ldGlmX3JlY2VpdmVfc2tiX29uZV9jb3JlKzB4OTcvMHgxZDAKICBfX25l dGlmX3JlY2VpdmVfc2tiX29uZV9jb3JlKzB4OTcvMHgxZDAKICA/IF9fbmV0aWZfcmVjZWl2ZV9z a2JfY29yZSsweDJkNzAvMHgyZDcwCiAgPyBfcmF3X3dyaXRlX3RyeWxvY2srMHgxMDAvMHgxMDAK ICA/IF9fcXVldWVfd29yaysweDQxZS8weGJlMAogIHByb2Nlc3NfYmFja2xvZysweDE5Yy8weDY1 MAogID8gX3Jhd19yZWFkX2xvY2tfaXJxKzB4NDAvMHg0MAogIG5ldF9yeF9hY3Rpb24rMHg3MWUv MHhiYzAKICA/IF9fc3dpdGNoX3RvX2FzbSsweDQwLzB4NzAKICA/IG5hcGlfY29tcGxldGVfZG9u ZSsweDM2MC8weDM2MAogID8gX19zd2l0Y2hfdG9fYXNtKzB4MzQvMHg3MAogID8gX19zd2l0Y2hf dG9fYXNtKzB4NDAvMHg3MAogID8gX19zY2hlZHVsZSsweDg1ZS8weDE0ZDAKICBfX2RvX3NvZnRp cnErMHgxZGIvMHg1ZjkKICA/IHRha2VvdmVyX3Rhc2tsZXRzKzB4NWYwLzB4NWYwCiAgcnVuX2tz b2Z0aXJxZCsweDI2LzB4NDAKICBzbXBib290X3RocmVhZF9mbisweDQ0My8weDY4MAogID8gc29y dF9yYW5nZSsweDIwLzB4MjAKICA/IHNjaGVkdWxlKzB4OTQvMHgyMTAKICA/IF9fa3RocmVhZF9w YXJrbWUrMHg3OC8weGYwCiAgPyBzb3J0X3JhbmdlKzB4MjAvMHgyMAogIGt0aHJlYWQrMHgyYWUv MHgzYTAKICA/IGt0aHJlYWRfY3JlYXRlX3dvcmtlcl9vbl9jcHUrMHhjMC8weGMwCiAgcmV0X2Zy b21fZm9yaysweDM1LzB4NDAKCiBUaGUgYnVnZ3kgYWRkcmVzcyBiZWxvbmdzIHRvIHRoZSBwYWdl OgogcGFnZTpmZmZmZWEwMDAxMDg0YzAwIHJlZmNvdW50OjAgbWFwY291bnQ6LTEyOCBtYXBwaW5n OjAwMDAwMDAwMDAwMDAwMDAgaW5kZXg6MHgwCiBmbGFnczogMHhmZmZmYzAwMDAwMDAwMCgpCiBy YXc6IDAwZmZmZmMwMDAwMDAwMDAgZmZmZmVhMDAwMGNmY2EwOCBmZmZmZWEwMDAxMDk4NjA4IDAw MDAwMDAwMDAwMDAwMDAKIHJhdzogMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAzIDAw MDAwMDAwZmZmZmZmN2YgMDAwMDAwMDAwMDAwMDAwMAogcGFnZSBkdW1wZWQgYmVjYXVzZToga2Fz YW46IGJhZCBhY2Nlc3MgZGV0ZWN0ZWQKCiBNZW1vcnkgc3RhdGUgYXJvdW5kIHRoZSBidWdneSBh ZGRyZXNzOgogZmZmZjg4ODA0MjEzMDE4MDogZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYg ZmYgZmYgZmYgZmYgZmYgZmYKIGZmZmY4ODgwNDIxMzAyMDA6IGZmIGZmIGZmIGZmIGZmIGZmIGZm IGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmCiA+IGZmZmY4ODgwNDIxMzAyODA6IGZmIGZmIGZm IGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCiBmZmZmODg4MDQyMTMwMzAwOiBmZiBmZiBmZiBmZiBmZiBm ZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZgogZmZmZjg4ODA0MjEzMDM4MDogZmYgZmYg ZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogRGlz YWJsaW5nIGxvY2sgZGVidWdnaW5nIGR1ZSB0byBrZXJuZWwgdGFpbnQKCkZpeGVzOiBiYzhjMjBh Y2FlYTEgKCJicmlkZ2U6IG11bHRpY2FzdDogdHJlYXQgaWdtcHYzIHJlcG9ydCB3aXRoIElOQ0xV REUgYW5kIG5vIHNvdXJjZXMgYXMgYSBsZWF2ZSIpClJlcG9ydGVkLWJ5OiBNYXJ0aW4gV2VpbmVs dCA8bWFydGluQGxpbnV4bG91bmdlLm5ldD4KU2lnbmVkLW9mZi1ieTogTmlrb2xheSBBbGVrc2Fu ZHJvdiA8bmlrb2xheUBjdW11bHVzbmV0d29ya3MuY29tPgpUZXN0ZWQtYnk6IE1hcnRpbiBXZWlu ZWx0IDxtYXJ0aW5AbGludXhsb3VuZ2UubmV0PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2JyaWRnZS9icl9tdWx0aWNhc3QuYyB8 IDIwICsrKysrKysrKysrKy0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygr KSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvYnJpZGdlL2JyX211bHRpY2FzdC5j IGIvbmV0L2JyaWRnZS9icl9tdWx0aWNhc3QuYwppbmRleCBkZTIyYzhmYmJiMTUuLmYzNzg5N2U3 Yjk3YiAxMDA2NDQKLS0tIGEvbmV0L2JyaWRnZS9icl9tdWx0aWNhc3QuYworKysgYi9uZXQvYnJp ZGdlL2JyX211bHRpY2FzdC5jCkBAIC05MTEsNiArOTExLDcgQEAgc3RhdGljIGludCBicl9pcDRf bXVsdGljYXN0X2lnbXAzX3JlcG9ydChzdHJ1Y3QgbmV0X2JyaWRnZSAqYnIsCiAJaW50IHR5cGU7 CiAJaW50IGVyciA9IDA7CiAJX19iZTMyIGdyb3VwOworCXUxNiBuc3JjczsKIAogCWloID0gaWdt cHYzX3JlcG9ydF9oZHIoc2tiKTsKIAludW0gPSBudG9ocyhpaC0+bmdyZWMpOwpAQCAtOTI0LDgg KzkyNSw5IEBAIHN0YXRpYyBpbnQgYnJfaXA0X211bHRpY2FzdF9pZ21wM19yZXBvcnQoc3RydWN0 IG5ldF9icmlkZ2UgKmJyLAogCQlncmVjID0gKHZvaWQgKikoc2tiLT5kYXRhICsgbGVuIC0gc2l6 ZW9mKCpncmVjKSk7CiAJCWdyb3VwID0gZ3JlYy0+Z3JlY19tY2E7CiAJCXR5cGUgPSBncmVjLT5n cmVjX3R5cGU7CisJCW5zcmNzID0gbnRvaHMoZ3JlYy0+Z3JlY19uc3Jjcyk7CiAKLQkJbGVuICs9 IG50b2hzKGdyZWMtPmdyZWNfbnNyY3MpICogNDsKKwkJbGVuICs9IG5zcmNzICogNDsKIAkJaWYg KCFpcF9tY19tYXlfcHVsbChza2IsIGxlbikpCiAJCQlyZXR1cm4gLUVJTlZBTDsKIApAQCAtOTQ2 LDcgKzk0OCw3IEBAIHN0YXRpYyBpbnQgYnJfaXA0X211bHRpY2FzdF9pZ21wM19yZXBvcnQoc3Ry dWN0IG5ldF9icmlkZ2UgKmJyLAogCQlzcmMgPSBldGhfaGRyKHNrYiktPmhfc291cmNlOwogCQlp ZiAoKHR5cGUgPT0gSUdNUFYzX0NIQU5HRV9UT19JTkNMVURFIHx8CiAJCSAgICAgdHlwZSA9PSBJ R01QVjNfTU9ERV9JU19JTkNMVURFKSAmJgotCQkgICAgbnRvaHMoZ3JlYy0+Z3JlY19uc3Jjcykg PT0gMCkgeworCQkgICAgbnNyY3MgPT0gMCkgewogCQkJYnJfaXA0X211bHRpY2FzdF9sZWF2ZV9n cm91cChiciwgcG9ydCwgZ3JvdXAsIHZpZCwgc3JjKTsKIAkJfSBlbHNlIHsKIAkJCWVyciA9IGJy X2lwNF9tdWx0aWNhc3RfYWRkX2dyb3VwKGJyLCBwb3J0LCBncm91cCwgdmlkLApAQCAtOTgzLDcg Kzk4NSw4IEBAIHN0YXRpYyBpbnQgYnJfaXA2X211bHRpY2FzdF9tbGQyX3JlcG9ydChzdHJ1Y3Qg bmV0X2JyaWRnZSAqYnIsCiAJbGVuID0gc2tiX3RyYW5zcG9ydF9vZmZzZXQoc2tiKSArIHNpemVv ZigqaWNtcDZoKTsKIAogCWZvciAoaSA9IDA7IGkgPCBudW07IGkrKykgewotCQlfX2JlMTYgKm5z cmNzLCBfbnNyY3M7CisJCV9fYmUxNiAqX25zcmNzLCBfX25zcmNzOworCQl1MTYgbnNyY3M7CiAK IAkJbnNyY3Nfb2Zmc2V0ID0gbGVuICsgb2Zmc2V0b2Yoc3RydWN0IG1sZDJfZ3JlYywgZ3JlY19u c3Jjcyk7CiAKQEAgLTk5MSwxMiArOTk0LDEzIEBAIHN0YXRpYyBpbnQgYnJfaXA2X211bHRpY2Fz dF9tbGQyX3JlcG9ydChzdHJ1Y3QgbmV0X2JyaWRnZSAqYnIsCiAJCSAgICBuc3Jjc19vZmZzZXQg KyBzaXplb2YoX25zcmNzKSkKIAkJCXJldHVybiAtRUlOVkFMOwogCi0JCW5zcmNzID0gc2tiX2hl YWRlcl9wb2ludGVyKHNrYiwgbnNyY3Nfb2Zmc2V0LAotCQkJCQkgICBzaXplb2YoX25zcmNzKSwg Jl9uc3Jjcyk7Ci0JCWlmICghbnNyY3MpCisJCV9uc3JjcyA9IHNrYl9oZWFkZXJfcG9pbnRlcihz a2IsIG5zcmNzX29mZnNldCwKKwkJCQkJICAgIHNpemVvZihfX25zcmNzKSwgJl9fbnNyY3MpOwor CQlpZiAoIV9uc3JjcykKIAkJCXJldHVybiAtRUlOVkFMOwogCi0JCWdyZWNfbGVuID0gc3RydWN0 X3NpemUoZ3JlYywgZ3JlY19zcmMsIG50b2hzKCpuc3JjcykpOworCQluc3JjcyA9IG50b2hzKCpf bnNyY3MpOworCQlncmVjX2xlbiA9IHN0cnVjdF9zaXplKGdyZWMsIGdyZWNfc3JjLCBuc3Jjcyk7 CiAKIAkJaWYgKCFpcHY2X21jX21heV9wdWxsKHNrYiwgbGVuICsgZ3JlY19sZW4pKQogCQkJcmV0 dXJuIC1FSU5WQUw7CkBAIC0xMDIxLDcgKzEwMjUsNyBAQCBzdGF0aWMgaW50IGJyX2lwNl9tdWx0 aWNhc3RfbWxkMl9yZXBvcnQoc3RydWN0IG5ldF9icmlkZ2UgKmJyLAogCQlzcmMgPSBldGhfaGRy KHNrYiktPmhfc291cmNlOwogCQlpZiAoKGdyZWMtPmdyZWNfdHlwZSA9PSBNTEQyX0NIQU5HRV9U T19JTkNMVURFIHx8CiAJCSAgICAgZ3JlYy0+Z3JlY190eXBlID09IE1MRDJfTU9ERV9JU19JTkNM VURFKSAmJgotCQkgICAgbnRvaHMoKm5zcmNzKSA9PSAwKSB7CisJCSAgICBuc3JjcyA9PSAwKSB7 CiAJCQlicl9pcDZfbXVsdGljYXN0X2xlYXZlX2dyb3VwKGJyLCBwb3J0LCAmZ3JlYy0+Z3JlY19t Y2EsCiAJCQkJCQkgICAgIHZpZCwgc3JjKTsKIAkJfSBlbHNlIHsKLS0gCjIuMjAuMQoKCkZyb20g N2QzMzE4Y2UzZDhiZDA3MzJmMzVlNjk3MWI3OTBiNDkyOTlkMzMwYyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogTmlrb2xheSBBbGVrc2FuZHJvdiA8bmlrb2xheUBjdW11bHVzbmV0d29y a3MuY29tPgpEYXRlOiBUdWUsIDIgSnVsIDIwMTkgMTU6MDA6MTkgKzAzMDAKU3ViamVjdDogW1BB VENIIDMyLzQ5XSBuZXQ6IGJyaWRnZTogbWNhc3Q6IGZpeCBzdGFsZSBpcHY2IGhkciBwb2ludGVy IHdoZW4KIGhhbmRsaW5nIHY2IHF1ZXJ5CgpbIFVwc3RyZWFtIGNvbW1pdCAzYjI2YTVkMDNkMzVk OGY3MzJkNzU5NTEyMTg5ODNjMGY3ZjY4ZGZmIF0KCldlIGdldCBhIHBvaW50ZXIgdG8gdGhlIGlw djYgaGRyIGluIGJyX2lwNl9tdWx0aWNhc3RfcXVlcnkgYnV0IHdlIG1heQpjYWxsIHBza2JfbWF5 X3B1bGwgYWZ0ZXJ3YXJkcyBhbmQgZW5kIHVwIHVzaW5nIGEgc3RhbGUgcG9pbnRlci4KU28gdXNl IHRoZSBoZWFkZXIgZGlyZWN0bHksIGl0J3MganVzdCAxIHBsYWNlIHdoZXJlIGl0J3MgbmVlZGVk LgoKRml4ZXM6IDA4YjIwMmI2NzI2NCAoImJyaWRnZSBicl9tdWx0aWNhc3Q6IElQdjYgTUxEIHN1 cHBvcnQuIikKU2lnbmVkLW9mZi1ieTogTmlrb2xheSBBbGVrc2FuZHJvdiA8bmlrb2xheUBjdW11 bHVzbmV0d29ya3MuY29tPgpUZXN0ZWQtYnk6IE1hcnRpbiBXZWluZWx0IDxtYXJ0aW5AbGludXhs b3VuZ2UubmV0PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogbmV0L2JyaWRnZS9icl9tdWx0aWNhc3QuYyB8IDMgKy0tCiAxIGZpbGUgY2hh bmdlZCwgMSBpbnNlcnRpb24oKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2Jy aWRnZS9icl9tdWx0aWNhc3QuYyBiL25ldC9icmlkZ2UvYnJfbXVsdGljYXN0LmMKaW5kZXggZjM3 ODk3ZTdiOTdiLi4zZDhkZWFjMjM1M2QgMTAwNjQ0Ci0tLSBhL25ldC9icmlkZ2UvYnJfbXVsdGlj YXN0LmMKKysrIGIvbmV0L2JyaWRnZS9icl9tdWx0aWNhc3QuYwpAQCAtMTI3OSw3ICsxMjc5LDYg QEAgc3RhdGljIGludCBicl9pcDZfbXVsdGljYXN0X3F1ZXJ5KHN0cnVjdCBuZXRfYnJpZGdlICpi ciwKIAkJCQkgIHUxNiB2aWQpCiB7CiAJdW5zaWduZWQgaW50IHRyYW5zcG9ydF9sZW4gPSBpcHY2 X3RyYW5zcG9ydF9sZW4oc2tiKTsKLQljb25zdCBzdHJ1Y3QgaXB2NmhkciAqaXA2aCA9IGlwdjZf aGRyKHNrYik7CiAJc3RydWN0IG1sZF9tc2cgKm1sZDsKIAlzdHJ1Y3QgbmV0X2JyaWRnZV9tZGJf ZW50cnkgKm1wOwogCXN0cnVjdCBtbGQyX3F1ZXJ5ICptbGQycTsKQEAgLTEzMjMsNyArMTMyMiw3 IEBAIHN0YXRpYyBpbnQgYnJfaXA2X211bHRpY2FzdF9xdWVyeShzdHJ1Y3QgbmV0X2JyaWRnZSAq YnIsCiAKIAlpZiAoaXNfZ2VuZXJhbF9xdWVyeSkgewogCQlzYWRkci5wcm90byA9IGh0b25zKEVU SF9QX0lQVjYpOwotCQlzYWRkci51LmlwNiA9IGlwNmgtPnNhZGRyOworCQlzYWRkci51LmlwNiA9 IGlwdjZfaGRyKHNrYiktPnNhZGRyOwogCiAJCWJyX211bHRpY2FzdF9xdWVyeV9yZWNlaXZlZChi ciwgcG9ydCwgJmJyLT5pcDZfb3RoZXJfcXVlcnksCiAJCQkJCSAgICAmc2FkZHIsIG1heF9kZWxh eSk7Ci0tIAoyLjIwLjEKCgpGcm9tIDE5ZjMzOTU5ZTdlNjU2ZWY4ZDViYmRiNzZhMjgzMjhmZjQ2 NTA0YTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE5pa29sYXkgQWxla3NhbmRyb3Yg PG5pa29sYXlAY3VtdWx1c25ldHdvcmtzLmNvbT4KRGF0ZTogVHVlLCAyIEp1bCAyMDE5IDE1OjAw OjIwICswMzAwClN1YmplY3Q6IFtQQVRDSCAzMy80OV0gbmV0OiBicmlkZ2U6IGRvbid0IGNhY2hl IGV0aGVyIGRlc3QgcG9pbnRlciBvbiBpbnB1dAoKWyBVcHN0cmVhbSBjb21taXQgM2QyNmViOGFk MWU5YjkwNjQzMzkwM2NlMDVmNzc1Y2YwMzhlNzQ3ZiBdCgpXZSB3b3VsZCBjYWNoZSBldGhlciBk c3QgcG9pbnRlciBvbiBpbnB1dCBpbiBicl9oYW5kbGVfZnJhbWVfZmluaXNoIGJ1dAphZnRlciB0 aGUgbmVpZ2ggc3VwcHJlc3MgY29kZSB0aGF0IGNvdWxkIGxlYWQgdG8gYSBzdGFsZSBwb2ludGVy IHNpbmNlCmJvdGggaXB2NCBhbmQgaXB2NiBzdXBwcmVzcyBjb2RlIGRvIHBza2JfbWF5X3B1bGwu IFRoaXMgbWVhbnMgd2UgaGF2ZSB0bwphbHdheXMgcmVsb2FkIGl0IGFmdGVyIHRoZSBzdXBwcmVz cyBjb2RlIHNvIHRoZXJlJ3Mgbm8gcG9pbnQgaW4gaGF2aW5nCml0IGNhY2hlZCBqdXN0IHJldHJp ZXZlIGl0IGRpcmVjdGx5LgoKRml4ZXM6IDA1NzY1OGNiMzNmYmYgKCJicmlkZ2U6IHN1cHByZXNz IGFycCBwa3RzIG9uIEJSX05FSUdIX1NVUFBSRVNTIHBvcnRzIikKRml4ZXM6IGVkODQyZmFlYjJi ZCAoImJyaWRnZTogc3VwcHJlc3MgbmQgcGt0cyBvbiBCUl9ORUlHSF9TVVBQUkVTUyBwb3J0cyIp ClNpZ25lZC1vZmYtYnk6IE5pa29sYXkgQWxla3NhbmRyb3YgPG5pa29sYXlAY3VtdWx1c25ldHdv cmtzLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIG5ldC9icmlkZ2UvYnJfaW5wdXQuYyB8IDggKysrLS0tLS0KIDEgZmlsZSBjaGFu Z2VkLCAzIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2Jy aWRnZS9icl9pbnB1dC5jIGIvbmV0L2JyaWRnZS9icl9pbnB1dC5jCmluZGV4IDIxYjc0ZTdhN2Iy Zi4uNTJjNzEyOTg0Y2M3IDEwMDY0NAotLS0gYS9uZXQvYnJpZGdlL2JyX2lucHV0LmMKKysrIGIv bmV0L2JyaWRnZS9icl9pbnB1dC5jCkBAIC03NCw3ICs3NCw2IEBAIGludCBicl9oYW5kbGVfZnJh bWVfZmluaXNoKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVm ZiAqc2tiCiAJc3RydWN0IG5ldF9icmlkZ2VfZmRiX2VudHJ5ICpkc3QgPSBOVUxMOwogCXN0cnVj dCBuZXRfYnJpZGdlX21kYl9lbnRyeSAqbWRzdDsKIAlib29sIGxvY2FsX3JjdiwgbWNhc3RfaGl0 ID0gZmFsc2U7Ci0JY29uc3QgdW5zaWduZWQgY2hhciAqZGVzdDsKIAlzdHJ1Y3QgbmV0X2JyaWRn ZSAqYnI7CiAJdTE2IHZpZCA9IDA7CiAKQEAgLTkyLDEwICs5MSw5IEBAIGludCBicl9oYW5kbGVf ZnJhbWVfZmluaXNoKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tf YnVmZiAqc2tiCiAJCWJyX2ZkYl91cGRhdGUoYnIsIHAsIGV0aF9oZHIoc2tiKS0+aF9zb3VyY2Us IHZpZCwgZmFsc2UpOwogCiAJbG9jYWxfcmN2ID0gISEoYnItPmRldi0+ZmxhZ3MgJiBJRkZfUFJP TUlTQyk7Ci0JZGVzdCA9IGV0aF9oZHIoc2tiKS0+aF9kZXN0OwotCWlmIChpc19tdWx0aWNhc3Rf ZXRoZXJfYWRkcihkZXN0KSkgeworCWlmIChpc19tdWx0aWNhc3RfZXRoZXJfYWRkcihldGhfaGRy KHNrYiktPmhfZGVzdCkpIHsKIAkJLyogYnkgZGVmaW5pdGlvbiB0aGUgYnJvYWRjYXN0IGlzIGFs c28gYSBtdWx0aWNhc3QgYWRkcmVzcyAqLwotCQlpZiAoaXNfYnJvYWRjYXN0X2V0aGVyX2FkZHIo ZGVzdCkpIHsKKwkJaWYgKGlzX2Jyb2FkY2FzdF9ldGhlcl9hZGRyKGV0aF9oZHIoc2tiKS0+aF9k ZXN0KSkgewogCQkJcGt0X3R5cGUgPSBCUl9QS1RfQlJPQURDQVNUOwogCQkJbG9jYWxfcmN2ID0g dHJ1ZTsKIAkJfSBlbHNlIHsKQEAgLTE0NSw3ICsxNDMsNyBAQCBpbnQgYnJfaGFuZGxlX2ZyYW1l X2ZpbmlzaChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYg KnNrYgogCQl9CiAJCWJyZWFrOwogCWNhc2UgQlJfUEtUX1VOSUNBU1Q6Ci0JCWRzdCA9IGJyX2Zk Yl9maW5kX3JjdShiciwgZGVzdCwgdmlkKTsKKwkJZHN0ID0gYnJfZmRiX2ZpbmRfcmN1KGJyLCBl dGhfaGRyKHNrYiktPmhfZGVzdCwgdmlkKTsKIAlkZWZhdWx0OgogCQlicmVhazsKIAl9Ci0tIAoy LjIwLjEKCgpGcm9tIGE4MjU1NjMwNjE2NzE1Mzc1YzMxNDNhMDc2NWQ2Nzc5ZDM2YTNiNzQgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE5pa29sYXkgQWxla3NhbmRyb3YgPG5pa29sYXlA Y3VtdWx1c25ldHdvcmtzLmNvbT4KRGF0ZTogVHVlLCAyIEp1bCAyMDE5IDE1OjAwOjIxICswMzAw ClN1YmplY3Q6IFtQQVRDSCAzNC80OV0gbmV0OiBicmlkZ2U6IHN0cDogZG9uJ3QgY2FjaGUgZXRo IGRlc3QgcG9pbnRlciBiZWZvcmUKIHNrYiBwdWxsCgpbIFVwc3RyZWFtIGNvbW1pdCAyNDQ2YTY4 YWU2YThjZWU2ZDQ4MGUyZjViNTJmNTAwN2M3YzQxMzEyIF0KCkRvbid0IGNhY2hlIGV0aCBkZXN0 IHBvaW50ZXIgYmVmb3JlIGNhbGxpbmcgcHNrYl9tYXlfcHVsbC4KCkZpeGVzOiBjZjBmMDJkMDRh ODMgKCJbQlJJREdFXTogdXNlIGxsYyBmb3IgcmVjZWl2aW5nIFNUUCBwYWNrZXRzIikKU2lnbmVk LW9mZi1ieTogTmlrb2xheSBBbGVrc2FuZHJvdiA8bmlrb2xheUBjdW11bHVzbmV0d29ya3MuY29t PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogbmV0L2JyaWRnZS9icl9zdHBfYnBkdS5jIHwgMyArLS0KIDEgZmlsZSBjaGFuZ2VkLCAxIGlu c2VydGlvbigrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvYnJpZGdlL2JyX3N0 cF9icGR1LmMgYi9uZXQvYnJpZGdlL2JyX3N0cF9icGR1LmMKaW5kZXggNjhhNjkyMmI0MTQxLi43 Nzk2ZGQ5ZDQyZDcgMTAwNjQ0Ci0tLSBhL25ldC9icmlkZ2UvYnJfc3RwX2JwZHUuYworKysgYi9u ZXQvYnJpZGdlL2JyX3N0cF9icGR1LmMKQEAgLTE0Myw3ICsxNDMsNiBAQCB2b2lkIGJyX3NlbmRf dGNuX2JwZHUoc3RydWN0IG5ldF9icmlkZ2VfcG9ydCAqcCkKIHZvaWQgYnJfc3RwX3Jjdihjb25z dCBzdHJ1Y3Qgc3RwX3Byb3RvICpwcm90bywgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJc3RydWN0 IG5ldF9kZXZpY2UgKmRldikKIHsKLQljb25zdCB1bnNpZ25lZCBjaGFyICpkZXN0ID0gZXRoX2hk cihza2IpLT5oX2Rlc3Q7CiAJc3RydWN0IG5ldF9icmlkZ2VfcG9ydCAqcDsKIAlzdHJ1Y3QgbmV0 X2JyaWRnZSAqYnI7CiAJY29uc3QgdW5zaWduZWQgY2hhciAqYnVmOwpAQCAtMTcyLDcgKzE3MSw3 IEBAIHZvaWQgYnJfc3RwX3Jjdihjb25zdCBzdHJ1Y3Qgc3RwX3Byb3RvICpwcm90bywgc3RydWN0 IHNrX2J1ZmYgKnNrYiwKIAlpZiAocC0+c3RhdGUgPT0gQlJfU1RBVEVfRElTQUJMRUQpCiAJCWdv dG8gb3V0OwogCi0JaWYgKCFldGhlcl9hZGRyX2VxdWFsKGRlc3QsIGJyLT5ncm91cF9hZGRyKSkK KwlpZiAoIWV0aGVyX2FkZHJfZXF1YWwoZXRoX2hkcihza2IpLT5oX2Rlc3QsIGJyLT5ncm91cF9h ZGRyKSkKIAkJZ290byBvdXQ7CiAKIAlpZiAocC0+ZmxhZ3MgJiBCUl9CUERVX0dVQVJEKSB7Ci0t IAoyLjIwLjEKCgpGcm9tIGU0OTIxZTQzMzUwMDhlZGQxN2E3NGQyYzVlOGE0NDMwOWY4ODU4ZTAg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFuZHJlYXMgU3RlaW5tZXR6IDxhc3RAZG9t ZHYuZGU+CkRhdGU6IFN1biwgMzAgSnVuIDIwMTkgMjI6NDY6NDIgKzAyMDAKU3ViamVjdDogW1BB VENIIDM1LzQ5XSBtYWNzZWM6IGZpeCB1c2UtYWZ0ZXItZnJlZSBvZiBza2IgZHVyaW5nIFJYCgpb IFVwc3RyZWFtIGNvbW1pdCAwOTVjMDJkYTgwYTQxY2Y2ZDMxMWM1MDRkODk1NWQ2ZDFjMmFkZDEw IF0KCkZpeCB1c2UtYWZ0ZXItZnJlZSBvZiBza2Igd2hlbiByeF9oYW5kbGVyIHJldHVybnMgUlhf SEFORExFUl9QQVNTLgoKU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBTdGVpbm1ldHogPGFzdEBkb21k di5kZT4KQWNrZWQtYnk6IFdpbGxlbSBkZSBCcnVpam4gPHdpbGxlbWJAZ29vZ2xlLmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRy aXZlcnMvbmV0L21hY3NlYy5jIHwgNSArKy0tLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9u cygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9tYWNzZWMuYyBi L2RyaXZlcnMvbmV0L21hY3NlYy5jCmluZGV4IDc1YWViZjY1Y2QwOS4uOGVjNzNkNjc3MTIzIDEw MDY0NAotLS0gYS9kcml2ZXJzL25ldC9tYWNzZWMuYworKysgYi9kcml2ZXJzL25ldC9tYWNzZWMu YwpAQCAtMTA5OSwxMCArMTA5OSw5IEBAIHN0YXRpYyByeF9oYW5kbGVyX3Jlc3VsdF90IG1hY3Nl Y19oYW5kbGVfZnJhbWUoc3RydWN0IHNrX2J1ZmYgKipwc2tiKQogCX0KIAogCXNrYiA9IHNrYl91 bnNoYXJlKHNrYiwgR0ZQX0FUT01JQyk7Ci0JaWYgKCFza2IpIHsKLQkJKnBza2IgPSBOVUxMOwor CSpwc2tiID0gc2tiOworCWlmICghc2tiKQogCQlyZXR1cm4gUlhfSEFORExFUl9DT05TVU1FRDsK LQl9CiAKIAlwdWxsZWRfc2NpID0gcHNrYl9tYXlfcHVsbChza2IsIG1hY3NlY19leHRyYV9sZW4o dHJ1ZSkpOwogCWlmICghcHVsbGVkX3NjaSkgewotLSAKMi4yMC4xCgoKRnJvbSBmMjRhNDE2MmFm ZTllY2I2Yjc2MjQwM2JhYTU3MjAzMmFjYzRlNzY5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBBbmRyZWFzIFN0ZWlubWV0eiA8YXN0QGRvbWR2LmRlPgpEYXRlOiBTdW4sIDMwIEp1biAy MDE5IDIyOjQ2OjQ1ICswMjAwClN1YmplY3Q6IFtQQVRDSCAzNi80OV0gbWFjc2VjOiBmaXggY2hl Y2tzdW1taW5nIGFmdGVyIGRlY3J5cHRpb24KClsgVXBzdHJlYW0gY29tbWl0IDdkOGIxNmI5ZmFj YjBkZDgxZDE0Njk4MDhkZDlhNTc1ZmExZDUyNWEgXQoKRml4IGNoZWNrc3VtbWluZyBhZnRlciBk ZWNyeXB0aW9uLgoKU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBTdGVpbm1ldHogPGFzdEBkb21kdi5k ZT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIGRyaXZlcnMvbmV0L21hY3NlYy5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9tYWNzZWMuYyBiL2RyaXZlcnMvbmV0L21h Y3NlYy5jCmluZGV4IDhlYzczZDY3NzEyMy4uOGY0NmFhMWRkZWMwIDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9tYWNzZWMuYworKysgYi9kcml2ZXJzL25ldC9tYWNzZWMuYwpAQCAtODY1LDYgKzg2 NSw3IEBAIHN0YXRpYyB2b2lkIG1hY3NlY19yZXNldF9za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYiwg c3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAogc3RhdGljIHZvaWQgbWFjc2VjX2ZpbmFsaXplX3Nr YihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1OCBpY3ZfbGVuLCB1OCBoZHJfbGVuKQogeworCXNrYi0+ aXBfc3VtbWVkID0gQ0hFQ0tTVU1fTk9ORTsKIAltZW1tb3ZlKHNrYi0+ZGF0YSArIGhkcl9sZW4s IHNrYi0+ZGF0YSwgMiAqIEVUSF9BTEVOKTsKIAlza2JfcHVsbChza2IsIGhkcl9sZW4pOwogCXBz a2JfdHJpbV91bmlxdWUoc2tiLCBza2ItPmxlbiAtIGljdl9sZW4pOwotLSAKMi4yMC4xCgoKRnJv bSA3ZDU2MzFjYjNhNjc1YzIyZTVlNTQ4M2UyOWMwODY0N2EyYWY0YzQxIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KRGF0 ZTogVGh1LCAyNyBKdW4gMjAxOSAxNDozMDo1OCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMzcvNDld IG5ldHJvbTogZml4IGEgbWVtb3J5IGxlYWsgaW4gbnJfcnhfZnJhbWUoKQoKWyBVcHN0cmVhbSBj b21taXQgYzhjODIxOGVjNWFmNWQyNTk4MzgxODgzYWNiZWZiZjYwNGU1NmI1ZSBdCgpXaGVuIHRo ZSBza2IgaXMgYXNzb2NpYXRlZCB3aXRoIGEgbmV3IHNvY2ssIGp1c3QgYXNzaWduaW5nCml0IHRv IHNrYi0+c2sgaXMgbm90IHN1ZmZpY2llbnQsIHdlIGhhdmUgdG8gc2V0IGl0cyBkZXN0cnVjdG9y CnRvIGZyZWUgdGhlIHNvY2sgcHJvcGVybHkgdG9vLgoKUmVwb3J0ZWQtYnk6IHN5emJvdCtkNjYz NmEzNmQzYzM0YmQ4ODkzOEBzeXprYWxsZXIuYXBwc3BvdG1haWwuY29tClNpZ25lZC1vZmYtYnk6 IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L25ldHJvbS9hZl9uZXRy b20uYyB8IDMgKystCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9u KC0pCgpkaWZmIC0tZ2l0IGEvbmV0L25ldHJvbS9hZl9uZXRyb20uYyBiL25ldC9uZXRyb20vYWZf bmV0cm9tLmMKaW5kZXggODZiODc5MjVlZjM0Li45Njc0MGQzODkzNzcgMTAwNjQ0Ci0tLSBhL25l dC9uZXRyb20vYWZfbmV0cm9tLmMKKysrIGIvbmV0L25ldHJvbS9hZl9uZXRyb20uYwpAQCAtODY5 LDcgKzg2OSw3IEBAIGludCBucl9yeF9mcmFtZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qg bmV0X2RldmljZSAqZGV2KQogCXVuc2lnbmVkIHNob3J0IGZyYW1ldHlwZSwgZmxhZ3MsIHdpbmRv dywgdGltZW91dDsKIAlpbnQgcmV0OwogCi0Jc2tiLT5zayA9IE5VTEw7CQkvKiBJbml0aWFsbHkg d2UgZG9uJ3Qga25vdyB3aG8gaXQncyBmb3IgKi8KKwlza2Jfb3JwaGFuKHNrYik7CiAKIAkvKgog CSAqCXNrYi0+ZGF0YSBwb2ludHMgdG8gdGhlIG5ldHJvbSBmcmFtZSBzdGFydApAQCAtOTY4LDYg Kzk2OCw3IEBAIGludCBucl9yeF9mcmFtZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0 X2RldmljZSAqZGV2KQogCXdpbmRvdyA9IHNrYi0+ZGF0YVsyMF07CiAKIAlza2ItPnNrICAgICAg ICAgICAgID0gbWFrZTsKKwlza2ItPmRlc3RydWN0b3IgICAgID0gc29ja19lZnJlZTsKIAltYWtl LT5za19zdGF0ZQkgICAgPSBUQ1BfRVNUQUJMSVNIRUQ7CiAKIAkvKiBGaWxsIGluIGhpcyBjaXJj dWl0IGRldGFpbHMgKi8KLS0gCjIuMjAuMQoKCkZyb20gMmY4MTEyNGQ4NWI5ZTVkYWJjNWU5MDM3 MmRiYjQ5ZWU0MDhmMWIxMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ29uZyBXYW5n IDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+CkRhdGU6IE1vbiwgMjIgSnVsIDIwMTkgMjA6NDE6 MjIgLTA3MDAKU3ViamVjdDogW1BBVENIIDM4LzQ5XSBuZXRyb206IGhvbGQgc29jayB3aGVuIHNl dHRpbmcgc2tiLT5kZXN0cnVjdG9yCgpbIFVwc3RyZWFtIGNvbW1pdCA0NjM4ZmFhYzAzMjc1NmY3 ZWFiNTUyNGJlN2JlNTZiZWU3N2U0MjZiIF0KCnNvY2tfZWZyZWUoKSByZWxlYXNlcyB0aGUgc29j ayByZWZjbnQsIGlmIHdlIGRvbid0IGhvbGQgdGhpcyByZWZjbnQKd2hlbiBzZXR0aW5nIHNrYi0+ ZGVzdHJ1Y3RvciB0byBpdCwgdGhlIHJlZmNudCB3b3VsZCBub3QgYmUgYmFsYW5jZWQuClRoaXMg bGVhZHMgdG8gc2V2ZXJhbCBidWcgcmVwb3J0cyBmcm9tIHN5emJvdC4KCkkgaGF2ZSBjaGVja2Vk IG90aGVyIHVzZXJzIG9mIHNvY2tfZWZyZWUoKSwgYWxsIG9mIHRoZW0gaG9sZCB0aGUKc29jayBy ZWZjbnQuCgpGaXhlczogYzhjODIxOGVjNWFmICgibmV0cm9tOiBmaXggYSBtZW1vcnkgbGVhayBp biBucl9yeF9mcmFtZSgpIikKUmVwb3J0ZWQtYW5kLXRlc3RlZC1ieTogPHN5emJvdCs2MjJiZGFi YjEyOGFjYzMzNDI3ZEBzeXprYWxsZXIuYXBwc3BvdG1haWwuY29tPgpSZXBvcnRlZC1hbmQtdGVz dGVkLWJ5OiA8c3l6Ym90KzZlYWVmNzE1OGIxOWUzZmVjM2EwQHN5emthbGxlci5hcHBzcG90bWFp bC5jb20+ClJlcG9ydGVkLWFuZC10ZXN0ZWQtYnk6IDxzeXpib3QrOTM5OWMxNThmY2MwOWIyMWQw ZDJAc3l6a2FsbGVyLmFwcHNwb3RtYWlsLmNvbT4KUmVwb3J0ZWQtYW5kLXRlc3RlZC1ieTogPHN5 emJvdCthMzRlNWYzZDAzMDAxNjNmMGM4N0BzeXprYWxsZXIuYXBwc3BvdG1haWwuY29tPgpDYzog UmFsZiBCYWVjaGxlIDxyYWxmQGxpbnV4LW1pcHMub3JnPgpTaWduZWQtb2ZmLWJ5OiBDb25nIFdh bmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9uZXRyb20vYWZfbmV0cm9tLmMgfCAx ICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL25ldC9uZXRy b20vYWZfbmV0cm9tLmMgYi9uZXQvbmV0cm9tL2FmX25ldHJvbS5jCmluZGV4IDk2NzQwZDM4OTM3 Ny4uYzRmNTRhZDJiOThhIDEwMDY0NAotLS0gYS9uZXQvbmV0cm9tL2FmX25ldHJvbS5jCisrKyBi L25ldC9uZXRyb20vYWZfbmV0cm9tLmMKQEAgLTk2Nyw2ICs5NjcsNyBAQCBpbnQgbnJfcnhfZnJh bWUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAogCXdpbmRv dyA9IHNrYi0+ZGF0YVsyMF07CiAKKwlzb2NrX2hvbGQobWFrZSk7CiAJc2tiLT5zayAgICAgICAg ICAgICA9IG1ha2U7CiAJc2tiLT5kZXN0cnVjdG9yICAgICA9IHNvY2tfZWZyZWU7CiAJbWFrZS0+ c2tfc3RhdGUJICAgID0gVENQX0VTVEFCTElTSEVEOwotLSAKMi4yMC4xCgoKRnJvbSA4MzExMWI4 MGE5ZWQyZjVjMGQ3N2E3NTg3ZTY4YWM0OWYwYWRhNjU2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBGcmFuayBkZSBCcmFiYW5kZXIgPGRlYnJhYmFuZGVyQGdtYWlsLmNvbT4KRGF0ZTog RnJpLCA1IEp1bCAyMDE5IDEzOjQzOjE0ICswMjAwClN1YmplY3Q6IFtQQVRDSCAzOS80OV0gc2Vs ZnRlc3RzOiB0eHJpbmdfb3ZlcndyaXRlOiBmaXggaW5jb3JyZWN0IHRlc3Qgb2YKIG1tYXAoKSBy ZXR1cm4gdmFsdWUKClsgVXBzdHJlYW0gY29tbWl0IGNlY2FhNzZiMjkxOWFhYzJhYTU4NGNlNDc2 ZTlmY2Q1YjA4NGFkZDUgXQoKSWYgbW1hcCgpIGZhaWxzIGl0IHJldHVybnMgTUFQX0ZBSUxFRCwg d2hpY2ggaXMgZGVmaW5lZCBhcyAoKHZvaWQgKikgLTEpLgpUaGUgY3VycmVudCBpZi1zdGF0ZW1l bnQgaW5jb3JyZWN0bHkgdGVzdHMgaWYgKnJpbmcgaXMgTlVMTC4KCkZpeGVzOiAzNThiZTY1NjQw NmQgKCJzZWxmdGVzdHMvbmV0OiBhZGQgdHhyaW5nX292ZXJ3cml0ZSIpClNpZ25lZC1vZmYtYnk6 IEZyYW5rIGRlIEJyYWJhbmRlciA8ZGVicmFiYW5kZXJAZ21haWwuY29tPgpBY2tlZC1ieTogV2ls bGVtIGRlIEJydWlqbiA8d2lsbGVtYkBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogdG9vbHMvdGVzdGluZy9zZWxmdGVz dHMvbmV0L3R4cmluZ19vdmVyd3JpdGUuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2Vy dGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRl c3RzL25ldC90eHJpbmdfb3ZlcndyaXRlLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQv dHhyaW5nX292ZXJ3cml0ZS5jCmluZGV4IGZkOGIxYzY2M2MzOS4uN2Q5ZWEwMzk0NTBhIDEwMDY0 NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvdHhyaW5nX292ZXJ3cml0ZS5jCisr KyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC90eHJpbmdfb3ZlcndyaXRlLmMKQEAgLTEx Myw3ICsxMTMsNyBAQCBzdGF0aWMgaW50IHNldHVwX3R4KGNoYXIgKipyaW5nKQogCiAJKnJpbmcg PSBtbWFwKDAsIHJlcS50cF9ibG9ja19zaXplICogcmVxLnRwX2Jsb2NrX25yLAogCQkgICAgIFBS T1RfUkVBRCB8IFBST1RfV1JJVEUsIE1BUF9TSEFSRUQsIGZkdCwgMCk7Ci0JaWYgKCEqcmluZykK KwlpZiAoKnJpbmcgPT0gTUFQX0ZBSUxFRCkKIAkJZXJyb3IoMSwgZXJybm8sICJtbWFwIik7CiAK IAlyZXR1cm4gZmR0OwotLSAKMi4yMC4xCgoKRnJvbSAwNDRiM2FkYjUxZDg0YmU5N2M1N2U4ODNh YmIwYTliZGI2YmI1NzdiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKYWt1YiBLaWNp bnNraSA8amFrdWIua2ljaW5za2lAbmV0cm9ub21lLmNvbT4KRGF0ZTogVGh1LCA0IEp1bCAyMDE5 IDE0OjUwOjM2IC0wNzAwClN1YmplY3Q6IFtQQVRDSCA0MC80OV0gbmV0L3RsczogZml4IHBvbGwg aWdub3JpbmcgcGFydGlhbGx5IGNvcGllZCByZWNvcmRzCgpbIFVwc3RyZWFtIGNvbW1pdCAxM2Fl Y2IxN2FjYWJjMmE5MjE4N2QwOGY3Y2E5M2JiOGFhZDYyYzZmIF0KCkRhdmlkIHJlcG9ydHMgdGhh dCBSUEMgYXBwbGljYXRpb25zIHdoaWNoIHVzZSBlcG9sbCgpIG9jY2FzaW9uYWxseQpnZXQgc3R1 Y2ssIGFuZCB0aGF0IFRMUyBVTFAgY2F1c2VzIHRoZSBrZXJuZWwgdG8gbm90IHdha2UgYXBwbGlj YXRpb25zLApldmVuIHRob3VnaCByZWFkKCkgd2lsbCByZXR1cm4gZGF0YS4KClRoaXMgaXMgaW5k ZWVkIHRydWUuIFRoZSBjdHgtPnJ4X2xpc3Qgd2hpY2ggaG9sZHMgcGFydGlhbGx5IGNvcGllZApy ZWNvcmRzIGlzIG5vdCBjb25zdWx0ZWQgd2hlbiBkZWNpZGluZyB3aGV0aGVyIHNvY2tldCBpcyBy ZWFkYWJsZS4KCk5vdGUgdGhhdCBTT19SQ1ZMT1dBVCB3aXRoIGVwb2xsKCkgaXMgYW5kIGhhcyBh bHdheXMgYmVlbiBicm9rZW4gZm9yCmtlcm5lbCBUTFMuIFdlJ2QgbmVlZCB0byBwYXJzZSBhbGwg cmVjb3JkcyBmcm9tIHRoZSBUQ1AgbGF5ZXIsIGluc3RlYWQKb2YganVzdCB0aGUgZmlyc3Qgb25l LgoKRml4ZXM6IDY5MmQ3YjVkMWY5MSAoInRsczogRml4IHJlY3Ztc2coKSB0byBiZSBhYmxlIHRv IHBlZWsgYWNyb3NzIG11bHRpcGxlIHJlY29yZHMiKQpSZXBvcnRlZC1ieTogRGF2aWQgQmVja2V0 dCA8ZGF2aWQuYmVja2V0dEBuZXRyb25vbWUuY29tPgpTaWduZWQtb2ZmLWJ5OiBKYWt1YiBLaWNp bnNraSA8amFrdWIua2ljaW5za2lAbmV0cm9ub21lLmNvbT4KUmV2aWV3ZWQtYnk6IERpcmsgdmFu IGRlciBNZXJ3ZSA8ZGlyay52YW5kZXJtZXJ3ZUBuZXRyb25vbWUuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3Rscy90bHNf c3cuYyB8IDMgKystCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9u KC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3Rscy90bHNfc3cuYyBiL25ldC90bHMvdGxzX3N3LmMKaW5k ZXggNDU1YTc4MmM3NjU4Li5lMjM4NTE4MzUyNmUgMTAwNjQ0Ci0tLSBhL25ldC90bHMvdGxzX3N3 LmMKKysrIGIvbmV0L3Rscy90bHNfc3cuYwpAQCAtMTk1OCw3ICsxOTU4LDggQEAgYm9vbCB0bHNf c3dfc3RyZWFtX3JlYWQoY29uc3Qgc3RydWN0IHNvY2sgKnNrKQogCQlpbmdyZXNzX2VtcHR5ID0g bGlzdF9lbXB0eSgmcHNvY2stPmluZ3Jlc3NfbXNnKTsKIAlyY3VfcmVhZF91bmxvY2soKTsKIAot CXJldHVybiAhaW5ncmVzc19lbXB0eSB8fCBjdHgtPnJlY3ZfcGt0OworCXJldHVybiAhaW5ncmVz c19lbXB0eSB8fCBjdHgtPnJlY3ZfcGt0IHx8CisJCSFza2JfcXVldWVfZW1wdHkoJmN0eC0+cnhf bGlzdCk7CiB9CiAKIHN0YXRpYyBpbnQgdGxzX3JlYWRfc2l6ZShzdHJ1Y3Qgc3RycGFyc2VyICpz dHJwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQotLSAKMi4yMC4xCgoKRnJvbSA5NWJlZWUyYmJiMTJk MDBhODhhMjEyZmYzNDVjODZmMmQxMGRiMjI5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBKYWt1YiBLaWNpbnNraSA8amFrdWIua2ljaW5za2lAbmV0cm9ub21lLmNvbT4KRGF0ZTogRnJp LCAyOCBKdW4gMjAxOSAxNjowNzo1OSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggNDEvNDldIG5ldC90 bHM6IHJlamVjdCBvZmZsb2FkIG9mIFRMUyAxLjMKClsgVXBzdHJlYW0gY29tbWl0IDYxOGJhYzQ1 OTM3YTNkYzYxMjZhYzA2NTI3NDc0ODFlOTcwMDBmOTkgXQoKTmVpdGhlciBkcml2ZXJzIG5vciB0 aGUgdGxzIG9mZmxvYWQgY29kZSBjdXJyZW50bHkgc3VwcG9ydHMgVExTCnZlcnNpb24gMS4zLiBD aGVjayB0aGUgVExTIHZlcnNpb24gd2hlbiBpbnN0YWxsaW5nIGNvbm5lY3Rpb24Kc3RhdGUuIFRM UyAxLjMgd2lsbCBqdXN0IGZhbGxiYWNrIHRvIHRoZSBrZXJuZWwgY3J5cHRvIGZvciBub3cuCgpG aXhlczogMTMwYjM5MmM2Y2Q2ICgibmV0OiB0bHM6IEFkZCB0bHMgMS4zIHN1cHBvcnQiKQpTaWdu ZWQtb2ZmLWJ5OiBKYWt1YiBLaWNpbnNraSA8amFrdWIua2ljaW5za2lAbmV0cm9ub21lLmNvbT4K UmV2aWV3ZWQtYnk6IERpcmsgdmFuIGRlciBNZXJ3ZSA8ZGlyay52YW5kZXJtZXJ3ZUBuZXRyb25v bWUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L3Rscy90bHNfZGV2aWNlLmMgfCA4ICsrKysrKysrCiAxIGZpbGUgY2hhbmdl ZCwgOCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L3Rscy90bHNfZGV2aWNlLmMgYi9u ZXQvdGxzL3Rsc19kZXZpY2UuYwppbmRleCAzNTlhNTE1ZmQxOTMuLmViOGYyNGY0MjBmMCAxMDA2 NDQKLS0tIGEvbmV0L3Rscy90bHNfZGV2aWNlLmMKKysrIGIvbmV0L3Rscy90bHNfZGV2aWNlLmMK QEAgLTc0Miw2ICs3NDIsMTEgQEAgaW50IHRsc19zZXRfZGV2aWNlX29mZmxvYWQoc3RydWN0IHNv Y2sgKnNrLCBzdHJ1Y3QgdGxzX2NvbnRleHQgKmN0eCkKIAl9CiAKIAljcnlwdG9faW5mbyA9ICZj dHgtPmNyeXB0b19zZW5kLmluZm87CisJaWYgKGNyeXB0b19pbmZvLT52ZXJzaW9uICE9IFRMU18x XzJfVkVSU0lPTikgeworCQlyYyA9IC1FT1BOT1RTVVBQOworCQlnb3RvIGZyZWVfb2ZmbG9hZF9j dHg7CisJfQorCiAJc3dpdGNoIChjcnlwdG9faW5mby0+Y2lwaGVyX3R5cGUpIHsKIAljYXNlIFRM U19DSVBIRVJfQUVTX0dDTV8xMjg6CiAJCW5vbmNlX3NpemUgPSBUTFNfQ0lQSEVSX0FFU19HQ01f MTI4X0lWX1NJWkU7CkBAIC04NzYsNiArODgxLDkgQEAgaW50IHRsc19zZXRfZGV2aWNlX29mZmxv YWRfcngoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgdGxzX2NvbnRleHQgKmN0eCkKIAlzdHJ1Y3Qg bmV0X2RldmljZSAqbmV0ZGV2OwogCWludCByYyA9IDA7CiAKKwlpZiAoY3R4LT5jcnlwdG9fcmVj di5pbmZvLnZlcnNpb24gIT0gVExTXzFfMl9WRVJTSU9OKQorCQlyZXR1cm4gLUVPUE5PVFNVUFA7 CisKIAkvKiBXZSBzdXBwb3J0IHN0YXJ0aW5nIG9mZmxvYWQgb24gbXVsdGlwbGUgc29ja2V0cwog CSAqIGNvbmN1cnJlbnRseSwgc28gd2Ugb25seSBuZWVkIGEgcmVhZCBsb2NrIGhlcmUuCiAJICog VGhpcyBsb2NrIG11c3QgcHJlY2VkZSBnZXRfbmV0ZGV2X2Zvcl9zb2NrIHRvIHByZXZlbnQgcmFj ZXMgYmV0d2VlbgotLSAKMi4yMC4xCgoKRnJvbSA1MmE0NjA3YzRiYWUzOWY2YmU4OGRhMGZkNjdk OGZhNzhjNzNmOGZiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFbGkgQnJpdHN0ZWlu IDxlbGlickBtZWxsYW5veC5jb20+CkRhdGU6IFN1biwgMiBKdW4gMjAxOSAwNjoxOTowMyArMDAw MApTdWJqZWN0OiBbUEFUQ0ggNDIvNDldIG5ldC9tbHg1ZTogRml4IHBvcnQgdHVubmVsIEdSRSBl bnRyb3B5IGNvbnRyb2wKClsgVXBzdHJlYW0gY29tbWl0IDkxNGFkYmIxYmNmODk0NzhhYzEzODMx OGQyOGIzMDI3MDQ1NjRkNTkgXQoKR1JFIGVudHJvcHkgY2FsY3VsYXRpb24gaXMgYSBzaW5nbGUg Yml0IHBlciBjYXJkLCBhbmQgbm90IHBlciBwb3J0LgpGb3JjZSBkaXNhYmxlIEdSRSBlbnRyb3B5 IGNhbGN1bGF0aW9uIHVwb24gdGhlIGZpcnN0IEdSRSBlbmNhcCBydWxlLAphbmQgcmVsZWFzZSB0 aGUgZm9yY2UgYXQgdGhlIGxhc3QgR1JFIGVuY2FwIHJ1bGUgcmVtb3ZhbC4gVGhpcyBpcyBkb25l CnBlciBwb3J0LgoKRml4ZXM6IDk3NDE3ZjYxODJmOCAoIm5ldC9tbHg1ZTogRml4IEdSRSBrZXkg YnkgY29udHJvbGxpbmcgcG9ydCB0dW5uZWwgZW50cm9weSBjYWxjdWxhdGlvbiIpClNpZ25lZC1v ZmYtYnk6IEVsaSBCcml0c3RlaW4gPGVsaWJyQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTog U2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogLi4uL21lbGxhbm94L21s eDUvY29yZS9saWIvcG9ydF90dW4uYyAgICAgICAgIHwgMjMgKysrKy0tLS0tLS0tLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9wb3J0X3R1 bi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9wb3J0X3R1 bi5jCmluZGV4IGJlNjljMWQ3OTQxYS4uNDhiNWM4NDdiNjQyIDEwMDY0NAotLS0gYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL3BvcnRfdHVuLmMKKysrIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9wb3J0X3R1bi5jCkBAIC05 OCwyNyArOTgsMTIgQEAgc3RhdGljIGludCBtbHg1X3NldF9lbnRyb3B5KHN0cnVjdCBtbHg1X3R1 bl9lbnRyb3B5ICp0dW5fZW50cm9weSwKIAkgKi8KIAlpZiAoZW50cm9weV9mbGFncy5ncmVfY2Fs Y19zdXBwb3J0ZWQgJiYKIAkgICAgcmVmb3JtYXRfdHlwZSA9PSBNTFg1X1JFRk9STUFUX1RZUEVf TDJfVE9fTlZHUkUpIHsKLQkJLyogT3RoZXIgYXBwbGljYXRpb25zIG1heSBjaGFuZ2UgdGhlIGds b2JhbCBGVyBlbnRyb3B5Ci0JCSAqIGNhbGN1bGF0aW9ucyBzZXR0aW5ncy4gQ2hlY2sgdGhhdCB0 aGUgY3VycmVudCBlbnRyb3B5IHZhbHVlCi0JCSAqIGlzIHRoZSBuZWdhdGl2ZSBvZiB0aGUgdXBk YXRlZCB2YWx1ZS4KLQkJICovCi0JCWlmIChlbnRyb3B5X2ZsYWdzLmZvcmNlX2VuYWJsZWQgJiYK LQkJICAgIGVuYWJsZSA9PSBlbnRyb3B5X2ZsYWdzLmdyZV9jYWxjX2VuYWJsZWQpIHsKLQkJCW1s eDVfY29yZV93YXJuKHR1bl9lbnRyb3B5LT5tZGV2LAotCQkJCSAgICAgICAiVW5leHBlY3RlZCBH UkUgZW50cm9weSBjYWxjIHNldHRpbmcgLSBleHBlY3RlZCAlZCIsCi0JCQkJICAgICAgICFlbnRy b3B5X2ZsYWdzLmdyZV9jYWxjX2VuYWJsZWQpOwotCQkJcmV0dXJuIC1FT1BOT1RTVVBQOwotCQl9 Ci0JCWVyciA9IG1seDVfc2V0X3BvcnRfZ3JlX3R1bl9lbnRyb3B5X2NhbGModHVuX2VudHJvcHkt Pm1kZXYsIGVuYWJsZSwKLQkJCQkJCQkgZW50cm9weV9mbGFncy5mb3JjZV9zdXBwb3J0ZWQpOwor CQlpZiAoIWVudHJvcHlfZmxhZ3MuZm9yY2Vfc3VwcG9ydGVkKQorCQkJcmV0dXJuIDA7CisJCWVy ciA9IG1seDVfc2V0X3BvcnRfZ3JlX3R1bl9lbnRyb3B5X2NhbGModHVuX2VudHJvcHktPm1kZXYs CisJCQkJCQkJIGVuYWJsZSwgIWVuYWJsZSk7CiAJCWlmIChlcnIpCiAJCQlyZXR1cm4gZXJyOwot CQkvKiBpZiB3ZSB0dXJuIG9uIHRoZSBlbnRyb3B5IHdlIGRvbid0IG5lZWQgdG8gZm9yY2UgaXQg YW55bW9yZSAqLwotCQlpZiAoZW50cm9weV9mbGFncy5mb3JjZV9zdXBwb3J0ZWQgJiYgZW5hYmxl KSB7Ci0JCQllcnIgPSBtbHg1X3NldF9wb3J0X2dyZV90dW5fZW50cm9weV9jYWxjKHR1bl9lbnRy b3B5LT5tZGV2LCAxLCAwKTsKLQkJCWlmIChlcnIpCi0JCQkJcmV0dXJuIGVycjsKLQkJfQogCX0g ZWxzZSBpZiAoZW50cm9weV9mbGFncy5jYWxjX3N1cHBvcnRlZCkgewogCQkvKiBPdGhlciBhcHBs aWNhdGlvbnMgbWF5IGNoYW5nZSB0aGUgZ2xvYmFsIEZXIGVudHJvcHkKIAkJICogY2FsY3VsYXRp b25zIHNldHRpbmdzLiBDaGVjayB0aGF0IHRoZSBjdXJyZW50IGVudHJvcHkgdmFsdWUKLS0gCjIu MjAuMQoKCkZyb20gOWE3ZGNkZjcwZTJmOThkZDZkNjAxMWVlYmJiYWVkYzcxZmI0YjIyMyBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5v eC5jb20+CkRhdGU6IEZyaSwgMyBNYXkgMjAxOSAxMzoxNDo1OSAtMDcwMApTdWJqZWN0OiBbUEFU Q0ggNDMvNDldIG5ldC9tbHg1ZTogUngsIEZpeCBjaGVja3N1bSBjYWxjdWxhdGlvbiBmb3IgbmV3 CiBoYXJkd2FyZQoKWyBVcHN0cmVhbSBjb21taXQgZGI4NDlmYWE5YmVmOTkzYTEzNzlkYzUxMDYy M2Y3NTBhNzJmYTdjZSBdCgpDUUUgY2hlY2tzdW0gZnVsbCBtb2RlIGluIG5ldyBIVywgcHJvdmlk ZXMgYSBmdWxsIGNoZWNrc3VtIG9mIHJ4IGZyYW1lLgpDb3ZlcmluZyBieXRlcyBzdGFydGluZyBm cm9tIGV0aCBwcm90b2NvbCB1cCB0byBsYXN0IGJ5dGUgaW4gdGhlIHJlY2VpdmVkCmZyYW1lIChm cmFtZV9zaXplIC0gRVRIX0hMRU4pLCBhcyBleHBlY3RlZCBieSB0aGUgc3RhY2suCgpGaXhpbmcg dXAgc2tiLT5jc3VtIGJ5IHRoZSBkcml2ZXIgaXMgbm90IHJlcXVpcmVkIGluIHN1Y2ggY2FzZS4g VGhpcyBmaXgKaXMgdG8gYXZvaWQgd3JvbmcgY2hlY2tzdW0gY2FsY3VsYXRpb24gaW4gZHJpdmVy cyB3aGljaCBhbHJlYWR5IHN1cHBvcnQKdGhlIG5ldyBoYXJkd2FyZSB3aXRoIHRoZSBuZXcgY2hl Y2tzdW0gbW9kZS4KCkZpeGVzOiA4NTMyN2E5YzQxNTAgKCJuZXQvbWx4NTogVXBkYXRlIHRoZSBs aXN0IG9mIHRoZSBQQ0kgc3VwcG9ydGVkIGRldmljZXMiKQpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBN YWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvZW4uaCAgICAgIHwgMSArCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jIHwgMyArKysKIGRyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDUvY29yZS9lbl9yeC5jICAgfCA3ICsrKysrKy0KIGluY2x1ZGUvbGludXgv bWx4NS9tbHg1X2lmYy5oICAgICAgICAgICAgICAgICAgICAgfCAzICsrLQogNCBmaWxlcyBjaGFu Z2VkLCAxMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgKaW5kZXggY2M2Nzk3ZTI0NTcxLi5jYzIyN2E3 YWE3OWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29y ZS9lbi5oCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5o CkBAIC0yOTQsNiArMjk0LDcgQEAgZW51bSB7CiAJTUxYNUVfUlFfU1RBVEVfRU5BQkxFRCwKIAlN TFg1RV9SUV9TVEFURV9BTSwKIAlNTFg1RV9SUV9TVEFURV9OT19DU1VNX0NPTVBMRVRFLAorCU1M WDVFX1JRX1NUQVRFX0NTVU1fRlVMTCwgLyogY3FlX2NzdW1fZnVsbCBodyBiaXQgaXMgc2V0ICov CiB9OwogCiBzdHJ1Y3QgbWx4NWVfY3EgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDUvY29yZS9lbl9tYWluLmMKaW5kZXggYThlODM1MGIzOGFhLi45OGQ3NTI3MWZj NzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9l bl9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vu X21haW4uYwpAQCAtODU1LDYgKzg1NSw5IEBAIHN0YXRpYyBpbnQgbWx4NWVfb3Blbl9ycShzdHJ1 Y3QgbWx4NWVfY2hhbm5lbCAqYywKIAlpZiAoZXJyKQogCQlnb3RvIGVycl9kZXN0cm95X3JxOwog CisJaWYgKE1MWDVfQ0FQX0VUSChjLT5tZGV2LCBjcWVfY2hlY2tzdW1fZnVsbCkpCisJCV9fc2V0 X2JpdChNTFg1RV9SUV9TVEFURV9DU1VNX0ZVTEwsICZjLT5ycS5zdGF0ZSk7CisKIAlpZiAocGFy YW1zLT5yeF9kaW1fZW5hYmxlZCkKIAkJX19zZXRfYml0KE1MWDVFX1JRX1NUQVRFX0FNLCAmYy0+ cnEuc3RhdGUpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvZW5fcnguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29y ZS9lbl9yeC5jCmluZGV4IDEzMTMzZTdmMDg4ZS4uOGE1Zjk0MTFjYWM2IDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fcnguYworKysgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fcnguYwpAQCAtODczLDggKzg3 MywxNCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgbWx4NWVfaGFuZGxlX2NzdW0oc3RydWN0IG5ldF9k ZXZpY2UgKm5ldGRldiwKIAkJaWYgKHVubGlrZWx5KGdldF9pcF9wcm90byhza2IsIG5ldHdvcmtf ZGVwdGgsIHByb3RvKSA9PSBJUFBST1RPX1NDVFApKQogCQkJZ290byBjc3VtX3VubmVjZXNzYXJ5 OwogCisJCXN0YXRzLT5jc3VtX2NvbXBsZXRlKys7CiAJCXNrYi0+aXBfc3VtbWVkID0gQ0hFQ0tT VU1fQ09NUExFVEU7CiAJCXNrYi0+Y3N1bSA9IGNzdW1fdW5mb2xkKChfX2ZvcmNlIF9fc3VtMTYp Y3FlLT5jaGVja19zdW0pOworCisJCWlmICh0ZXN0X2JpdChNTFg1RV9SUV9TVEFURV9DU1VNX0ZV TEwsICZycS0+c3RhdGUpKQorCQkJcmV0dXJuOyAvKiBDUUUgY3N1bSBjb3ZlcnMgYWxsIHJlY2Vp dmVkIGJ5dGVzICovCisKKwkJLyogY3N1bSBtaWdodCBuZWVkIHNvbWUgZml4dXBzIC4uLiovCiAJ CWlmIChuZXR3b3JrX2RlcHRoID4gRVRIX0hMRU4pCiAJCQkvKiBDUUUgY3N1bSBpcyBjYWxjdWxh dGVkIGZyb20gdGhlIElQIGhlYWRlciBhbmQgZG9lcwogCQkJICogbm90IGNvdmVyIFZMQU4gaGVh ZGVycyAoaWYgcHJlc2VudCkuIFRoaXMgd2lsbCBhZGQKQEAgLTg4NSw3ICs4OTEsNiBAQCBzdGF0 aWMgaW5saW5lIHZvaWQgbWx4NWVfaGFuZGxlX2NzdW0oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRl diwKIAkJCQkJCSBza2ItPmNzdW0pOwogCiAJCW1seDVlX3NrYl9wYWRkaW5nX2NzdW0oc2tiLCBu ZXR3b3JrX2RlcHRoLCBwcm90bywgc3RhdHMpOwotCQlzdGF0cy0+Y3N1bV9jb21wbGV0ZSsrOwog CQlyZXR1cm47CiAJfQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMu aCBiL2luY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oCmluZGV4IDVlNzQzMDVlMmU1Ny4uN2U0 MmVmYTE0M2EwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaAorKysg Yi9pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaApAQCAtNzQ5LDcgKzc0OSw4IEBAIHN0cnVj dCBtbHg1X2lmY19wZXJfcHJvdG9jb2xfbmV0d29ya2luZ19vZmZsb2FkX2NhcHNfYml0cyB7CiAJ dTggICAgICAgICBzd3BbMHgxXTsKIAl1OCAgICAgICAgIHN3cF9jc3VtWzB4MV07CiAJdTggICAg ICAgICBzd3BfbHNvWzB4MV07Ci0JdTggICAgICAgICByZXNlcnZlZF9hdF8yM1sweGRdOworCXU4 ICAgICAgICAgY3FlX2NoZWNrc3VtX2Z1bGxbMHgxXTsKKwl1OCAgICAgICAgIHJlc2VydmVkX2F0 XzI0WzB4Y107CiAJdTggICAgICAgICBtYXhfdnhsYW5fdWRwX3BvcnRzWzB4OF07CiAJdTggICAg ICAgICByZXNlcnZlZF9hdF8zOFsweDZdOwogCXU4ICAgICAgICAgbWF4X2dlbmV2ZV9vcHRfbGVu WzB4MV07Ci0tIAoyLjIwLjEKCgpGcm9tIDUwODJlZjUzM2I1N2E1ODI3MjQ5MWNkM2ZkZmJiOWVk ZTg3Y2UwMWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEF5YSBMZXZpbiA8YXlhbEBt ZWxsYW5veC5jb20+CkRhdGU6IE1vbiwgMTcgSnVuIDIwMTkgMTI6MDE6NDUgKzAzMDAKU3ViamVj dDogW1BBVENIIDQ0LzQ5XSBuZXQvbWx4NWU6IEZpeCByZXR1cm4gdmFsdWUgZnJvbSB0aW1lb3V0 IHJlY292ZXIKIGZ1bmN0aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCAzOTgyNTM1MGFlMmE1MmY4NTEz NzQxYjM2ZTQyMTE4YmQ4MGRkNjg5IF0KCkZpeCB0aW1lb3V0IHJlY292ZXIgZnVuY3Rpb24gdG8g cmV0dXJuIGEgbWVhbmluZ2Z1bCByZXR1cm4gdmFsdWUuCldoZW4gYW4gaW50ZXJydXB0IHdhcyBu b3Qgc2VudCBieSB0aGUgRlcsIHJldHVybiBJTyBlcnJvciBpbnN0ZWFkIG9mCid0cnVlJy4KCkZp eGVzOiBjNzk4MWJlYTQ4ZmIgKCJuZXQvbWx4NWU6IEZpeCByZXR1cm4gc3RhdHVzIG9mIFRYIHJl cG9ydGVyIHRpbWVvdXQgcmVjb3ZlciIpClNpZ25lZC1vZmYtYnk6IEF5YSBMZXZpbiA8YXlhbEBt ZWxsYW5veC5jb20+CkFja2VkLWJ5OiBKaXJpIFBpcmtvIDxqaXJpQG1lbGxhbm94LmNvbT4KUmV2 aWV3ZWQtYnk6IFRhcmlxIFRvdWthbiA8dGFyaXF0QG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1i eTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcG9ydGVyX3R4LmMgfCA2ICsrLS0tLQog MSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwb3J0ZXJf dHguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXBvcnRl cl90eC5jCmluZGV4IDQ3NmRkOTdmN2YyZi4uYTc3OGMxNWU1MzI0IDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwb3J0ZXJfdHguYworKysg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwb3J0ZXJfdHgu YwpAQCAtMTQyLDIyICsxNDIsMjAgQEAgc3RhdGljIGludCBtbHg1ZV90eF9yZXBvcnRlcl90aW1l b3V0X3JlY292ZXIoc3RydWN0IG1seDVlX3R4cXNxICpzcSkKIHsKIAlzdHJ1Y3QgbWx4NV9lcV9j b21wICplcSA9IHNxLT5jcS5tY3EuZXE7CiAJdTMyIGVxZV9jb3VudDsKLQlpbnQgcmV0OwogCiAJ bmV0ZGV2X2VycihzcS0+Y2hhbm5lbC0+bmV0ZGV2LCAiRVEgMHgleDogQ29ucyA9IDB4JXgsIGly cW4gPSAweCV4XG4iLAogCQkgICBlcS0+Y29yZS5lcW4sIGVxLT5jb3JlLmNvbnNfaW5kZXgsIGVx LT5jb3JlLmlycW4pOwogCiAJZXFlX2NvdW50ID0gbWx4NV9lcV9wb2xsX2lycV9kaXNhYmxlZChl cSk7Ci0JcmV0ID0gZXFlX2NvdW50ID8gZmFsc2UgOiB0cnVlOwogCWlmICghZXFlX2NvdW50KSB7 CiAJCWNsZWFyX2JpdChNTFg1RV9TUV9TVEFURV9FTkFCTEVELCAmc3EtPnN0YXRlKTsKLQkJcmV0 dXJuIHJldDsKKwkJcmV0dXJuIC1FSU87CiAJfQogCiAJbmV0ZGV2X2VycihzcS0+Y2hhbm5lbC0+ bmV0ZGV2LCAiUmVjb3ZlciAlZCBlcWVzIG9uIEVRIDB4JXhcbiIsCiAJCSAgIGVxZV9jb3VudCwg ZXEtPmNvcmUuZXFuKTsKIAlzcS0+Y2hhbm5lbC0+c3RhdHMtPmVxX3JlYXJtKys7Ci0JcmV0dXJu IHJldDsKKwlyZXR1cm4gMDsKIH0KIAogaW50IG1seDVlX3R4X3JlcG9ydGVyX3RpbWVvdXQoc3Ry dWN0IG1seDVlX3R4cXNxICpzcSkKLS0gCjIuMjAuMQoKCkZyb20gYWFhM2IzYTE5ZWFkYWY3YWNk ZjY5MTEyZmU5YTc5NDM5OTZlMDIzNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQXlh IExldmluIDxheWFsQG1lbGxhbm94LmNvbT4KRGF0ZTogU3VuLCAzMCBKdW4gMjAxOSAxMToxMToy NiArMDMwMApTdWJqZWN0OiBbUEFUQ0ggNDUvNDldIG5ldC9tbHg1ZTogRml4IGVycm9yIGZsb3cg aW4gdHggcmVwb3J0ZXIgZGlhZ25vc2UKClsgVXBzdHJlYW0gY29tbWl0IDk5ZDMxY2JkODk1M2M2 OTI5ZGE5NzhiZjA0OWFiMGYwYjRlNTAzZDkgXQoKRml4IHR4IHJlcG9ydGVyJ3MgZGlhZ25vc2Ug Y2FsbGJhY2suIFByb3BhZ2F0ZSBlcnJvciB3aGVuIGZhaWxpbmcgdG8KZ2F0aGVyIGRpYWdub3N0 aWNzIGluZm9ybWF0aW9uIG9yIGZhaWxpbmcgdG8gcHJpbnQgZGlhZ25vc3RpYyBkYXRhIHBlcgpx dWV1ZS4KCkZpeGVzOiBkZTg2NTBhODIwNzEgKCJuZXQvbWx4NWU6IEFkZCB0eCByZXBvcnRlciBz dXBwb3J0IikKU2lnbmVkLW9mZi1ieTogQXlhIExldmluIDxheWFsQG1lbGxhbm94LmNvbT4KUmV2 aWV3ZWQtYnk6IFRhcmlxIFRvdWthbiA8dGFyaXF0QG1lbGxhbm94LmNvbT4KQWNrZWQtYnk6IEpp cmkgUGlya28gPGppcmlAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVl ZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg1L2NvcmUvZW4vcmVwb3J0ZXJfdHguYyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwb3J0ZXJfdHguYyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXBvcnRlcl90eC5jCmluZGV4IGE3Nzhj MTVlNTMyNC4uZjNkOTg3NDhiMjExIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwb3J0ZXJfdHguYworKysgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwb3J0ZXJfdHguYwpAQCAtMjYyLDEzICsyNjIs MTMgQEAgc3RhdGljIGludCBtbHg1ZV90eF9yZXBvcnRlcl9kaWFnbm9zZShzdHJ1Y3QgZGV2bGlu a19oZWFsdGhfcmVwb3J0ZXIgKnJlcG9ydGVyLAogCiAJCWVyciA9IG1seDVfY29yZV9xdWVyeV9z cV9zdGF0ZShwcml2LT5tZGV2LCBzcS0+c3FuLCAmc3RhdGUpOwogCQlpZiAoZXJyKQotCQkJYnJl YWs7CisJCQlnb3RvIHVubG9jazsKIAogCQllcnIgPSBtbHg1ZV90eF9yZXBvcnRlcl9idWlsZF9k aWFnbm9zZV9vdXRwdXQoZm1zZywgc3EtPnNxbiwKIAkJCQkJCQkgICAgICBzdGF0ZSwKIAkJCQkJ CQkgICAgICBuZXRpZl94bWl0X3N0b3BwZWQoc3EtPnR4cSkpOwogCQlpZiAoZXJyKQotCQkJYnJl YWs7CisJCQlnb3RvIHVubG9jazsKIAl9CiAJZXJyID0gZGV2bGlua19mbXNnX2Fycl9wYWlyX25l c3RfZW5kKGZtc2cpOwogCWlmIChlcnIpCi0tIAoyLjIwLjEKCgpGcm9tIGU5MmVjMDBjN2U3ZWMy MWUzYWJkMWViYTIyZTIxNDVmY2M4Njc2MGYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IE1pY2hhZWwgQ2hhbiA8bWljaGFlbC5jaGFuQGJyb2FkY29tLmNvbT4KRGF0ZTogV2VkLCAxNyBK dWwgMjAxOSAwMzowNzoyMyAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggNDYvNDldIGJueHRfZW46IEZp eCBWTklDIGFjY291bnRpbmcgd2hlbiBlbmFibGluZyBhUkZTIG9uCiA1NzUwMCBjaGlwcy4KClsg VXBzdHJlYW0gY29tbWl0IDliM2QxNWU2YjA1ZTBiOTE2YmU1ZmJkOTE1ZjkwMzAwYTQwMzA5OGIg XQoKVW5saWtlIGxlZ2FjeSBjaGlwcywgNTc1MDAgY2hpcHMgZG9uJ3QgbmVlZCBhZGRpdGlvbmFs IFZOSUMgcmVzb3VyY2VzCmZvciBhUkZTL250dXBsZS4gIEZpeCB0aGUgY29kZSBhY2NvcmRpbmds eSBzbyB0aGF0IHdlIGRvbid0IHJlc2VydmUKYW5kIGFsbG9jYXRlIGFkZGl0aW9uYWwgVk5JQ3Mg b24gNTc1MDAgY2hpcHMuICBXaXRob3V0IHRoaXMgcGF0Y2gsCnRoZSBkcml2ZXIgaXMgZmFpbGlu ZyB0byBpbml0aWFsaXplIHdoZW4gaXQgdHJpZXMgdG8gYWxsb2NhdGUgZXh0cmEKVk5JQ3MuCgpG aXhlczogYWMzMzkwNmM2N2UyICgiYm54dF9lbjogQWRkIHN1cHBvcnQgZm9yIGFSRlMgb24gNTc1 MDAgY2hpcHMuIikKU2lnbmVkLW9mZi1ieTogTWljaGFlbCBDaGFuIDxtaWNoYWVsLmNoYW5AYnJv YWRjb20uY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMgfCA3 ICsrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYwppbmRleCBmNzU4YjJl MDU5MWYuLjlhMmEwZDI0ZDIwZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJv YWRjb20vYm54dC9ibnh0LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54 dC9ibnh0LmMKQEAgLTMwMjIsNyArMzAyMiw3IEBAIHN0YXRpYyBpbnQgYm54dF9hbGxvY192bmlj cyhzdHJ1Y3QgYm54dCAqYnApCiAJaW50IG51bV92bmljcyA9IDE7CiAKICNpZmRlZiBDT05GSUdf UkZTX0FDQ0VMCi0JaWYgKGJwLT5mbGFncyAmIEJOWFRfRkxBR19SRlMpCisJaWYgKChicC0+Zmxh Z3MgJiAoQk5YVF9GTEFHX1JGUyB8IEJOWFRfRkxBR19DSElQX1A1KSkgPT0gQk5YVF9GTEFHX1JG UykKIAkJbnVtX3ZuaWNzICs9IGJwLT5yeF9ucl9yaW5nczsKICNlbmRpZgogCkBAIC03MTI0LDYg KzcxMjQsOSBAQCBzdGF0aWMgaW50IGJueHRfYWxsb2NfcmZzX3ZuaWNzKHN0cnVjdCBibnh0ICpi cCkKICNpZmRlZiBDT05GSUdfUkZTX0FDQ0VMCiAJaW50IGksIHJjID0gMDsKIAorCWlmIChicC0+ ZmxhZ3MgJiBCTlhUX0ZMQUdfQ0hJUF9QNSkKKwkJcmV0dXJuIDA7CisKIAlmb3IgKGkgPSAwOyBp IDwgYnAtPnJ4X25yX3JpbmdzOyBpKyspIHsKIAkJc3RydWN0IGJueHRfdm5pY19pbmZvICp2bmlj OwogCQl1MTYgdm5pY19pZCA9IGkgKyAxOwpAQCAtOTU4Nyw3ICs5NTkwLDcgQEAgaW50IGJueHRf Y2hlY2tfcmluZ3Moc3RydWN0IGJueHQgKmJwLCBpbnQgdHgsIGludCByeCwgYm9vbCBzaCwgaW50 IHRjcywKIAkJcmV0dXJuIC1FTk9NRU07CiAKIAl2bmljcyA9IDE7Ci0JaWYgKGJwLT5mbGFncyAm IEJOWFRfRkxBR19SRlMpCisJaWYgKChicC0+ZmxhZ3MgJiAoQk5YVF9GTEFHX1JGUyB8IEJOWFRf RkxBR19DSElQX1A1KSkgPT0gQk5YVF9GTEFHX1JGUykKIAkJdm5pY3MgKz0gcnhfcmluZ3M7CiAK IAlpZiAoYnAtPmZsYWdzICYgQk5YVF9GTEFHX0FHR19SSU5HUykKLS0gCjIuMjAuMQoKCkZyb20g Nzc4YmJkMGIzMjRjZjBiMzdhMzZmYWMzOTQzOWRlZWRkZDQyNDVlNCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogUGV0ciBNYWNoYXRhIDxwZXRybUBtZWxsYW5veC5jb20+CkRhdGU6IFdl ZCwgMTcgSnVsIDIwMTkgMjM6Mjk6MDcgKzAzMDAKU3ViamVjdDogW1BBVENIIDQ3LzQ5XSBtbHhz dzogc3BlY3RydW1fZGNiOiBDb25maWd1cmUgRFNDUCBtYXAgYXMgdGhlIGxhc3QKIHJ1bGUgaXMg cmVtb3ZlZAoKWyBVcHN0cmVhbSBjb21taXQgZGVkZmRlMmZlMWM0Y2NmMjcxNzlmY2IyMzRlMjEx MmQwNjVjMzliYiBdCgpTcGVjdHJ1bSBzeXN0ZW1zIHVzZSBEU0NQIHJld3JpdGUgbWFwIHRvIHVw ZGF0ZSBEU0NQIGZpZWxkIGluIGVncmVzc2luZwpwYWNrZXRzIHRvIGNvcnJlc3BvbmQgdG8gcHJp b3JpdHkgdGhhdCB0aGUgcGFja2V0IGhhcy4gV2hldGhlciByZXdyaXRpbmcKd2lsbCB0YWtlIHBs YWNlIGlzIGRldGVybWluZWQgYXQgdGhlIHBvaW50IHdoZW4gdGhlIHBhY2tldCBpbmdyZXNzZXMg dGhlCnN3aXRjaDogaWYgdGhlIHBvcnQgaXMgaW4gVHJ1c3QgTDMgbW9kZSwgcGFja2V0IHByaW9y aXR5IGlzIGRldGVybWluZWQgZnJvbQp0aGUgRFNDUCBtYXAgYXQgdGhlIHBvcnQsIGFuZCBEU0NQ IHJld3JpdGUgd2lsbCBoYXBwZW4uIElmIHRoZSBwb3J0IGlzIGluClRydXN0IEwyIG1vZGUsIDgw Mi4xcCBpcyB1c2VkIGZvciBwYWNrZXQgcHJpb3JpdGl6YXRpb24sIGFuZCBubyBEU0NQCnJld3Jp dGUgd2lsbCBoYXBwZW4uCgpUaGUgZHJpdmVyIGRldGVybWluZXMgdGhlIHBvcnQgdHJ1c3QgbW9k ZSBiYXNlZCBvbiB3aGV0aGVyIGFueSBEU0NQCnByaW9yaXRpemF0aW9uIHJ1bGVzIGFyZSBpbiBl ZmZlY3QgYXQgZ2l2ZW4gcG9ydC4gSWYgdGhlcmUgYXJlIGFueSwgdHJ1c3QKbGV2ZWwgaXMgTDMs IG90aGVyd2lzZSBpdCdzIEwyLiBXaGVuIHRoZSBsYXN0IERTQ1AgcnVsZSBpcyByZW1vdmVkLCB0 aGUKcG9ydCBpcyBzd2l0Y2hlZCB0byB0cnVzdCBMMi4gVW5kZXIgdGhhdCBzY2VuYXJpbywgaWYg RFNDUCBvZiBhIHBhY2tldApzaG91bGQgYmUgcmV3cml0dGVuLCBpdCBzaG91bGQgYmUgcmV3cml0 dGVuIHRvIDAuCgpIb3dldmVyLCB3aGVuIHN3aXRjaGluZyB0byBUcnVzdCBMMiwgdGhlIGRyaXZl ciBuZWdsZWN0cyB0byBhbHNvIHVwZGF0ZSB0aGUKRFNDUCByZXdyaXRlIG1hcC4gVGhlIGxhc3Qg RFNDUCBydWxlIHRodXMgcmVtYWlucyBpbiBlZmZlY3QsIGFuZCBwYWNrZXRzCmVncmVzc2luZyB0 aHJvdWdoIHRoaXMgcG9ydCwgaWYgdGhleSBoYXZlIHRoZSByaWdodCBwcmlvcml0eSwgd2lsbCBo YXZlCnRoZWlyIERTQ1Agc2V0IGFjY29yZGluZyB0byB0aGlzIHJ1bGUuCgpGaXggYnkgZmlyc3Qg Y29uZmlndXJpbmcgdGhlIHJld3JpdGUgbWFwLCBhbmQgb25seSB0aGVuIHN3aXRjaGluZyB0byB0 cnVzdApMMiBhbmQgYmFpbGluZyBvdXQuCgpGaXhlczogYjJiMWRhYjY4ODRlICgibWx4c3c6IHNw ZWN0cnVtOiBTdXBwb3J0IGllZWVfc2V0YXBwLCBpZWVlX2RlbGFwcCIpClNpZ25lZC1vZmYtYnk6 IFBldHIgTWFjaGF0YSA8cGV0cm1AbWVsbGFub3guY29tPgpSZXBvcnRlZC1ieTogQWxleCBWZWJl ciA8YWxleHZlQG1lbGxhbm94LmNvbT4KVGVzdGVkLWJ5OiBBbGV4IFZlYmVyIDxhbGV4dmVAbWVs bGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBJZG8gU2NoaW1tZWwgPGlkb3NjaEBtZWxsYW5veC5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiAuLi4vbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtX2RjYi5jICAgfCAx NiArKysrKysrKy0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA4IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eHN3L3NwZWN0cnVtX2RjYi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cv c3BlY3RydW1fZGNiLmMKaW5kZXggYjI1MDQ4YzZjNzYxLi4yMTI5NmZhN2Y3ZmIgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtX2RjYi5jCisr KyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtX2RjYi5jCkBA IC00MDgsMTQgKzQwOCw2IEBAIHN0YXRpYyBpbnQgbWx4c3dfc3BfcG9ydF9kY2JfYXBwX3VwZGF0 ZShzdHJ1Y3QgbWx4c3dfc3BfcG9ydCAqbWx4c3dfc3BfcG9ydCkKIAloYXZlX2RzY3AgPSBtbHhz d19zcF9wb3J0X2RjYl9hcHBfcHJpb19kc2NwX21hcChtbHhzd19zcF9wb3J0LAogCQkJCQkJCSZw cmlvX21hcCk7CiAKLQlpZiAoIWhhdmVfZHNjcCkgewotCQllcnIgPSBtbHhzd19zcF9wb3J0X2Rj Yl90b2dnbGVfdHJ1c3QobWx4c3dfc3BfcG9ydCwKLQkJCQkJTUxYU1dfUkVHX1FQVFNfVFJVU1Rf U1RBVEVfUENQKTsKLQkJaWYgKGVycikKLQkJCW5ldGRldl9lcnIobWx4c3dfc3BfcG9ydC0+ZGV2 LCAiQ291bGRuJ3Qgc3dpdGNoIHRvIHRydXN0IEwyXG4iKTsKLQkJcmV0dXJuIGVycjsKLQl9Ci0K IAltbHhzd19zcF9wb3J0X2RjYl9hcHBfZHNjcF9wcmlvX21hcChtbHhzd19zcF9wb3J0LCBkZWZh dWx0X3ByaW8sCiAJCQkJCSAgICAmZHNjcF9tYXApOwogCWVyciA9IG1seHN3X3NwX3BvcnRfZGNi X2FwcF91cGRhdGVfcXBkcG0obWx4c3dfc3BfcG9ydCwKQEAgLTQzMiw2ICs0MjQsMTQgQEAgc3Rh dGljIGludCBtbHhzd19zcF9wb3J0X2RjYl9hcHBfdXBkYXRlKHN0cnVjdCBtbHhzd19zcF9wb3J0 ICptbHhzd19zcF9wb3J0KQogCQlyZXR1cm4gZXJyOwogCX0KIAorCWlmICghaGF2ZV9kc2NwKSB7 CisJCWVyciA9IG1seHN3X3NwX3BvcnRfZGNiX3RvZ2dsZV90cnVzdChtbHhzd19zcF9wb3J0LAor CQkJCQlNTFhTV19SRUdfUVBUU19UUlVTVF9TVEFURV9QQ1ApOworCQlpZiAoZXJyKQorCQkJbmV0 ZGV2X2VycihtbHhzd19zcF9wb3J0LT5kZXYsICJDb3VsZG4ndCBzd2l0Y2ggdG8gdHJ1c3QgTDJc biIpOworCQlyZXR1cm4gZXJyOworCX0KKwogCWVyciA9IG1seHN3X3NwX3BvcnRfZGNiX3RvZ2ds ZV90cnVzdChtbHhzd19zcF9wb3J0LAogCQkJCQkgICAgIE1MWFNXX1JFR19RUFRTX1RSVVNUX1NU QVRFX0RTQ1ApOwogCWlmIChlcnIpIHsKLS0gCjIuMjAuMQoKCkZyb20gYWFjNTFhOTdlY2ExMzM2 ZjdhNDNkOWNlMDI3NWJjNTYwZmQxYzZlMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog TWFvciBHb3R0bGllYiA8bWFvcmdAbWVsbGFub3guY29tPgpEYXRlOiBNb24sIDE3IEp1biAyMDE5 IDEzOjIyOjI4ICswMzAwClN1YmplY3Q6IFtQQVRDSCA0OC80OV0gbmV0L21seDU6IEUtU3dpdGNo LCBGaXggZGVmYXVsdCBlbmNhcCBtb2RlCgpbIFVwc3RyZWFtIGNvbW1pdCA5YTY0MTQ0ZDY4M2E0 Mzk1ZjU3NTYyZDkwMjQ3YzYxYTBiZjUxMDVmIF0KCkVuY2FwIG1vZGUgaXMgcmVsYXRlZCB0byBz d2l0Y2hkZXYgbW9kZSBvbmx5LiBNb3ZlIHRoZSBpbml0IG9mCnRoZSBlbmNhcCBtb2RlIHRvIGVz d2l0Y2hfb2ZmbG9hZHMuIEJlZm9yZSB0aGlzIGNoYW5nZSwgd2UgcmVwb3J0ZWQKdGhhdCBlc3dp dGNoIHN1cHBvcnRzIGVuY2FwLCBldmVuIHRvdWdoIHRoZSBkZXZpY2Ugd2FzIGluIG5vbgpTUklP ViBtb2RlLgoKRml4ZXM6IDc3NjhkMTk3MWRlNjcgKCduZXQvbWx4NTogRS1Td2l0Y2gsIEFkZCBj b250cm9sIGZvciBlbmNhcHN1bGF0aW9uJykKU2lnbmVkLW9mZi1ieTogTWFvciBHb3R0bGllYiA8 bWFvcmdAbWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogUm9pIERheWFuIDxyb2lkQG1lbGxhbm94 LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+ Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2guYyAg ICAgICAgICB8IDUgLS0tLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29y ZS9lc3dpdGNoX29mZmxvYWRzLmMgfCA3ICsrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgNyBpbnNl cnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaC5jCmluZGV4IDZhOTIxZTI0Y2Q1ZS4uZTkzMzllN2Q2 YTE4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUv ZXN3aXRjaC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9l c3dpdGNoLmMKQEAgLTE4ODIsMTEgKzE4ODIsNiBAQCBpbnQgbWx4NV9lc3dpdGNoX2luaXQoc3Ry dWN0IG1seDVfY29yZV9kZXYgKmRldikKIAllc3ctPmVuYWJsZWRfdnBvcnRzID0gMDsKIAllc3ct Pm1vZGUgPSBTUklPVl9OT05FOwogCWVzdy0+b2ZmbG9hZHMuaW5saW5lX21vZGUgPSBNTFg1X0lO TElORV9NT0RFX05PTkU7Ci0JaWYgKE1MWDVfQ0FQX0VTV19GTE9XVEFCTEVfRkRCKGRldiwgcmVm b3JtYXQpICYmCi0JICAgIE1MWDVfQ0FQX0VTV19GTE9XVEFCTEVfRkRCKGRldiwgZGVjYXApKQot CQllc3ctPm9mZmxvYWRzLmVuY2FwID0gREVWTElOS19FU1dJVENIX0VOQ0FQX01PREVfQkFTSUM7 Ci0JZWxzZQotCQllc3ctPm9mZmxvYWRzLmVuY2FwID0gREVWTElOS19FU1dJVENIX0VOQ0FQX01P REVfTk9ORTsKIAogCWRldi0+cHJpdi5lc3dpdGNoID0gZXN3OwogCXJldHVybiAwOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2Zm bG9hZHMuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNo X29mZmxvYWRzLmMKaW5kZXggNDdiNDQ2ZDMwZjcxLi5jMmJlYWRjNDFjNDAgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoX29mZmxvYWRz LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hf b2ZmbG9hZHMuYwpAQCAtMTg0MCw2ICsxODQwLDEyIEBAIGludCBlc3dfb2ZmbG9hZHNfaW5pdChz dHJ1Y3QgbWx4NV9lc3dpdGNoICplc3csIGludCB2Zl9udnBvcnRzLAogewogCWludCBlcnI7CiAK KwlpZiAoTUxYNV9DQVBfRVNXX0ZMT1dUQUJMRV9GREIoZXN3LT5kZXYsIHJlZm9ybWF0KSAmJgor CSAgICBNTFg1X0NBUF9FU1dfRkxPV1RBQkxFX0ZEQihlc3ctPmRldiwgZGVjYXApKQorCQllc3ct Pm9mZmxvYWRzLmVuY2FwID0gREVWTElOS19FU1dJVENIX0VOQ0FQX01PREVfQkFTSUM7CisJZWxz ZQorCQllc3ctPm9mZmxvYWRzLmVuY2FwID0gREVWTElOS19FU1dJVENIX0VOQ0FQX01PREVfTk9O RTsKKwogCWVyciA9IGVzd19vZmZsb2Fkc19zdGVlcmluZ19pbml0KGVzdywgdmZfbnZwb3J0cywg dG90YWxfbnZwb3J0cyk7CiAJaWYgKGVycikKIAkJcmV0dXJuIGVycjsKQEAgLTE5MDEsNiArMTkw Nyw3IEBAIHZvaWQgZXN3X29mZmxvYWRzX2NsZWFudXAoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3 KQogCWVzd19vZmZsb2Fkc19kZXZjb21fY2xlYW51cChlc3cpOwogCWVzd19vZmZsb2Fkc191bmxv YWRfYWxsX3JlcHMoZXN3LCBudW1fdmZzKTsKIAllc3dfb2ZmbG9hZHNfc3RlZXJpbmdfY2xlYW51 cChlc3cpOworCWVzdy0+b2ZmbG9hZHMuZW5jYXAgPSBERVZMSU5LX0VTV0lUQ0hfRU5DQVBfTU9E RV9OT05FOwogfQogCiBzdGF0aWMgaW50IGVzd19tb2RlX2Zyb21fZGV2bGluayh1MTYgbW9kZSwg dTE2ICptbHg1X21vZGUpCi0tIAoyLjIwLjEKCgpGcm9tIGM0OGRhZmNlNTM4ZGYyYTI1OTJhNTZk MTk5NmNiYzVmZWI3NmE0ZTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IElkbyBTY2hp bW1lbCA8aWRvc2NoQG1lbGxhbm94LmNvbT4KRGF0ZTogV2VkLCAxNyBKdWwgMjAxOSAyMzoyOTow OCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggNDkvNDldIG1seHN3OiBzcGVjdHJ1bTogRG8gbm90IHBy b2Nlc3MgbGVhcm5lZCByZWNvcmRzIHdpdGggYQogZHVtbXkgRklECgpbIFVwc3RyZWFtIGNvbW1p dCA1NzdmYTE0ZDIxMDA3M2JhMWNlNjIzN2M2NTlhODgyMDMxMjEwNGFkIF0KClRoZSBzd2l0Y2gg cGVyaW9kaWNhbGx5IHNlbmRzIG5vdGlmaWNhdGlvbnMgYWJvdXQgbGVhcm5lZCBGREIgZW50cmll cy4KQW1vbmcgb3RoZXIgdGhpbmdzLCB0aGUgbm90aWZpY2F0aW9uIGluY2x1ZGVzIHRoZSBGSUQg KEZpbHRlcmluZwpJZGVudGlmaWVyKSBhbmQgdGhlIHBvcnQgb24gd2hpY2ggdGhlIE1BQyB3YXMg bGVhcm5lZC4KCkluIGNhc2UgdGhlIGRyaXZlciBkb2VzIG5vdCBoYXZlIHRoZSBGSUQgZGVmaW5l ZCBvbiB0aGUgcmVsZXZhbnQgcG9ydCwKdGhlIGZvbGxvd2luZyBlcnJvciB3aWxsIGJlIHBlcmlv ZGljYWxseSBnZW5lcmF0ZWQ6CgptbHhzd19zcGVjdHJ1bTIgMDAwMDowNjowMC4wIHN3cDMyOiBG YWlsZWQgdG8gZmluZCBhIG1hdGNoaW5nIHtQb3J0LCBWSUR9IGZvbGxvd2luZyBGREIgbm90aWZp Y2F0aW9uCgpUaGlzIGlzIG5vdCBzdXBwb3NlZCB0byBoYXBwZW4gdW5kZXIgbm9ybWFsIGNvbmRp dGlvbnMsIGJ1dCBjYW4gaGFwcGVuCmlmIGFuIGluZ3Jlc3MgdGMgZmlsdGVyIHdpdGggYSByZWRp cmVjdCBhY3Rpb24gaXMgaW5zdGFsbGVkIG9uIGEgYnJpZGdlZApwb3J0LiBUaGUgcmVkaXJlY3Qg YWN0aW9uIHdpbGwgY2F1c2UgdGhlIHBhY2tldCdzIEZJRCB0byBiZSBjaGFuZ2VkIHRvCnRoZSBk dW1teSBGSUQgYW5kIGEgbGVhcm5pbmcgbm90aWZpY2F0aW9uIHdpbGwgYmUgZW1pdHRlZCB3aXRo IHRoaXMgRklECi0gd2hpY2ggaXMgbm90IGRlZmluZWQgb24gdGhlIGJyaWRnZWQgcG9ydC4KCkZp eCB0aGlzIGJ5IGhhdmluZyB0aGUgZHJpdmVyIGlnbm9yZSBsZWFybmluZyBub3RpZmljYXRpb25z IGdlbmVyYXRlZAp3aXRoIHRoZSBkdW1teSBGSUQgYW5kIGRlbGV0ZSB0aGVtIGZyb20gdGhlIGRl dmljZS4KCkFub3RoZXIgb3B0aW9uIGlzIHRvIGNoYWluIGFuIGlnbm9yZSBhY3Rpb24gYWZ0ZXIg dGhlIHJlZGlyZWN0IGFjdGlvbgp3aGljaCB3aWxsIGNhdXNlIHRoZSBkZXZpY2UgdG8gZGlzYWJs ZSBsZWFybmluZywgYnV0IHRoaXMgbWVhbnMgdGhhdCB3ZQpuZWVkIHRvIGNvbnN1bWUgYW5vdGhl ciBhY3Rpb24gd2hlbmV2ZXIgYSByZWRpcmVjdCBhY3Rpb24gaXMgdXNlZC4gSW4KYWRkaXRpb24s IHRoZSBzY2VuYXJpbyBkZXNjcmliZWQgYWJvdmUgaXMgbWVyZWx5IGEgY29ybmVyIGNhc2UuCgpG aXhlczogY2VkYmI4YjI1OTQ4ICgibWx4c3c6IHNwZWN0cnVtX2Zsb3dlcjogU2V0IGR1bW15IEZJ RCBiZWZvcmUgZm9yd2FyZCBhY3Rpb24iKQpTaWduZWQtb2ZmLWJ5OiBJZG8gU2NoaW1tZWwgPGlk b3NjaEBtZWxsYW5veC5jb20+ClJlcG9ydGVkLWJ5OiBBbGV4IEt1c2huYXJvdiA8YWxleGFuZGVy a0BtZWxsYW5veC5jb20+CkFja2VkLWJ5OiBKaXJpIFBpcmtvIDxqaXJpQG1lbGxhbm94LmNvbT4K VGVzdGVkLWJ5OiBBbGV4IEt1c2huYXJvdiA8YWxleGFuZGVya0BtZWxsYW5veC5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5oICAgICAgICAgfCAgMSAr CiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9maWQuYyAgICAg fCAxMCArKysrKysrKysrCiAuLi4vbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVt X3N3aXRjaGRldi5jICAgfCAgNiArKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMTcgaW5zZXJ0aW9u cygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3Nw ZWN0cnVtLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5o CmluZGV4IDg2MDFiMzA0MWFjZC4uMzMyMTk1ZDk2YzYyIDEwMDY0NAotLS0gYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5oCisrKyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtLmgKQEAgLTgwNSw2ICs4MDUsNyBAQCBpbnQg bWx4c3dfc3Bfc2V0dXBfdGNfcHJpbyhzdHJ1Y3QgbWx4c3dfc3BfcG9ydCAqbWx4c3dfc3BfcG9y dCwKIAkJCSAgIHN0cnVjdCB0Y19wcmlvX3FvcHRfb2ZmbG9hZCAqcCk7CiAKIC8qIHNwZWN0cnVt X2ZpZC5jICovCitib29sIG1seHN3X3NwX2ZpZF9pc19kdW1teShzdHJ1Y3QgbWx4c3dfc3AgKm1s eHN3X3NwLCB1MTYgZmlkX2luZGV4KTsKIGJvb2wgbWx4c3dfc3BfZmlkX2xhZ192aWRfdmFsaWQo Y29uc3Qgc3RydWN0IG1seHN3X3NwX2ZpZCAqZmlkKTsKIHN0cnVjdCBtbHhzd19zcF9maWQgKm1s eHN3X3NwX2ZpZF9sb29rdXBfYnlfaW5kZXgoc3RydWN0IG1seHN3X3NwICptbHhzd19zcCwKIAkJ CQkJCSAgdTE2IGZpZF9pbmRleCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9maWQuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seHN3L3NwZWN0cnVtX2ZpZC5jCmluZGV4IDQ2YmFmM2I0NDMwOS4uOGRmM2NiMjFiYWE2 IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1 bV9maWQuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1 bV9maWQuYwpAQCAtMTI2LDYgKzEyNiwxNiBAQCBzdGF0aWMgY29uc3QgaW50ICptbHhzd19zcF9w YWNrZXRfdHlwZV9zZmdjX3R5cGVzW10gPSB7CiAJW01MWFNXX1NQX0ZMT09EX1RZUEVfTUNdCT0g bWx4c3dfc3Bfc2ZnY19tY19wYWNrZXRfdHlwZXMsCiB9OwogCitib29sIG1seHN3X3NwX2ZpZF9p c19kdW1teShzdHJ1Y3QgbWx4c3dfc3AgKm1seHN3X3NwLCB1MTYgZmlkX2luZGV4KQoreworCWVu dW0gbWx4c3dfc3BfZmlkX3R5cGUgZmlkX3R5cGUgPSBNTFhTV19TUF9GSURfVFlQRV9EVU1NWTsK KwlzdHJ1Y3QgbWx4c3dfc3BfZmlkX2ZhbWlseSAqZmlkX2ZhbWlseTsKKworCWZpZF9mYW1pbHkg PSBtbHhzd19zcC0+ZmlkX2NvcmUtPmZpZF9mYW1pbHlfYXJyW2ZpZF90eXBlXTsKKworCXJldHVy biBmaWRfZmFtaWx5LT5zdGFydF9pbmRleCA9PSBmaWRfaW5kZXg7Cit9CisKIGJvb2wgbWx4c3df c3BfZmlkX2xhZ192aWRfdmFsaWQoY29uc3Qgc3RydWN0IG1seHN3X3NwX2ZpZCAqZmlkKQogewog CXJldHVybiBmaWQtPmZpZF9mYW1pbHktPmxhZ192aWRfdmFsaWQ7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9zd2l0Y2hkZXYuYyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtX3N3aXRjaGRldi5jCmlu ZGV4IDUwMTExZjIyOGQ3Ny4uNWVjYjQ1MTE4NDAwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9zd2l0Y2hkZXYuYworKysgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9zd2l0Y2hkZXYuYwpAQCAtMjQ2 OCw2ICsyNDY4LDkgQEAgc3RhdGljIHZvaWQgbWx4c3dfc3BfZmRiX25vdGlmeV9tYWNfcHJvY2Vz cyhzdHJ1Y3QgbWx4c3dfc3AgKm1seHN3X3NwLAogCQlnb3RvIGp1c3RfcmVtb3ZlOwogCX0KIAor CWlmIChtbHhzd19zcF9maWRfaXNfZHVtbXkobWx4c3dfc3AsIGZpZCkpCisJCWdvdG8ganVzdF9y ZW1vdmU7CisKIAltbHhzd19zcF9wb3J0X3ZsYW4gPSBtbHhzd19zcF9wb3J0X3ZsYW5fZmluZF9i eV9maWQobWx4c3dfc3BfcG9ydCwgZmlkKTsKIAlpZiAoIW1seHN3X3NwX3BvcnRfdmxhbikgewog CQluZXRkZXZfZXJyKG1seHN3X3NwX3BvcnQtPmRldiwgIkZhaWxlZCB0byBmaW5kIGEgbWF0Y2hp bmcge1BvcnQsIFZJRH0gZm9sbG93aW5nIEZEQiBub3RpZmljYXRpb25cbiIpOwpAQCAtMjUyNyw2 ICsyNTMwLDkgQEAgc3RhdGljIHZvaWQgbWx4c3dfc3BfZmRiX25vdGlmeV9tYWNfbGFnX3Byb2Nl c3Moc3RydWN0IG1seHN3X3NwICptbHhzd19zcCwKIAkJZ290byBqdXN0X3JlbW92ZTsKIAl9CiAK KwlpZiAobWx4c3dfc3BfZmlkX2lzX2R1bW15KG1seHN3X3NwLCBmaWQpKQorCQlnb3RvIGp1c3Rf cmVtb3ZlOworCiAJbWx4c3dfc3BfcG9ydF92bGFuID0gbWx4c3dfc3BfcG9ydF92bGFuX2ZpbmRf YnlfZmlkKG1seHN3X3NwX3BvcnQsIGZpZCk7CiAJaWYgKCFtbHhzd19zcF9wb3J0X3ZsYW4pIHsK IAkJbmV0ZGV2X2VycihtbHhzd19zcF9wb3J0LT5kZXYsICJGYWlsZWQgdG8gZmluZCBhIG1hdGNo aW5nIHtQb3J0LCBWSUR9IGZvbGxvd2luZyBGREIgbm90aWZpY2F0aW9uXG4iKTsKLS0gCjIuMjAu MQoK ----Next_Part(Wed_Jul_24_18_55_42_2019_963)----