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=-16.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable 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 851ACC2D0E4 for ; Fri, 27 Nov 2020 10:48:44 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id EE99D205F4 for ; Fri, 27 Nov 2020 10:48:43 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="SEChj/3R" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EE99D205F4 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=linux.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To:From: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner; bh=Fzw14eHPgZkhoQxnXcRShfaL6spbLQmEJ9ENgXYweLo=; b=SEChj/3R33v2WiPj3OixCf5Tsw ifCVefy0ecrhuiptM6e34rtPKCr058wh9Ma+8iur8tf2uTKr/1I7C3cVY+JbBjQutUNfVuj9a/92T 9pNX/mu7qnoDyJVBo2POQzBzcVHuHogACKuykBB6l1lRIzIT+xrg/rY03ZiPfHK+cifJyfESmEjg5 MJycupMKzKRTz1sNSxQeXtCQNHKvx5qi09uNvsPHgETYI1VSxu0tKrnIQowWu8YIRwOjFn9RKkrpi KiOd77r1x+kzUCQ7h96xfVslHBbfcJ6lChndZ1TlrMoypjOFZl4QXa6RXDecL8r/ASwOixzTncXV5 bkO19G+g==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kibHB-0002mw-NX; Fri, 27 Nov 2020 10:46:53 +0000 Received: from mail-pl1-f195.google.com ([209.85.214.195]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kibH7-0002m0-U3; Fri, 27 Nov 2020 10:46:52 +0000 Received: by mail-pl1-f195.google.com with SMTP id l1so2518748pld.5; Fri, 27 Nov 2020 02:46:45 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=/ofhNQSHG3WAD/AojJeiQwmlt67hb9Caduex5mipx9k=; b=qNZFEVsFjdtHjhTVivYA3xCW4KPzWEjAmgy2Iub4l3un+N8K6vO/1vhx57De2TM++D bfLRz0HeRygTks/OuWxUOrdEzQQdR5oY/XGUsXatlVBLGmim9bkbZCB+JETucHe0LeQ2 NdCeONaDX4mKMaauEYYLMPaDAnUT4REjUisP/opPzpfOzCZFLlJDmHh8iKUAaQiur2V1 pfS2nk3mec+2xSldPsGnRL1inW7jCL3hFqPNh4v2NC3pohL7zlZWNRCrt1eFo45mEMqh yieqIKuQJ7NxD1G0uOd7D579g1r1Q6XuDCTAcPzDOCyKTFCz3RrFKBm8/7B6YSZAoRf1 v6Yg== X-Gm-Message-State: AOAM5308zalECwOZciNQM5/Mt2IqR7EQqwLN+z7LRF+ppZIg/xC5dC45 FLmlHVThyt+UUC7Hv8e3CAQ= X-Google-Smtp-Source: ABdhPJxHqGQQEytKXoVDsUeGv6IYcQ2xpnElpAMxdcC+3X4fRm/f7wqyqiJBwbLDhUDt3fZBfILO6w== X-Received: by 2002:a17:902:820e:b029:d6:e802:75aa with SMTP id x14-20020a170902820eb02900d6e80275aamr6214785pln.51.1606474004147; Fri, 27 Nov 2020 02:46:44 -0800 (PST) Received: from workstation.lan ([95.155.85.46]) by smtp.gmail.com with ESMTPSA id v22sm7161494pff.48.2020.11.27.02.46.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Nov 2020 02:46:43 -0800 (PST) From: =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= To: Bjorn Helgaas Subject: [PATCH v5] PCI: Unify ECAM constants in native PCI Express drivers Date: Fri, 27 Nov 2020 10:46:26 +0000 Message-Id: <20201127104626.3979165-1-kw@linux.com> X-Mailer: git-send-email 2.29.2 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201127_054650_030947_66E972F9 X-CRM114-Status: GOOD ( 26.80 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Heiko Stuebner , Benjamin Herrenschmidt , Shawn Lin , Paul Mackerras , Thomas Petazzoni , Jonathan Chocron , Toan Le , Will Deacon , Rob Herring , Lorenzo Pieralisi , Michael Ellerman , Michal Simek , linux-rockchip@lists.infradead.org, bcm-kernel-feedback-list@broadcom.com, Jonathan Derrick , linux-pci@vger.kernel.org, Ray Jui , Florian Fainelli , linux-rpi-kernel@lists.infradead.org, Jonathan Cameron , linux-arm-kernel@lists.infradead.org, Scott Branden , Zhou Wang , Robert Richter , linuxppc-dev@lists.ozlabs.org, Nicolas Saenz Julienne Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org VW5pZnkgRUNBTS1yZWxhdGVkIGNvbnN0YW50cyBpbnRvIGEgc2luZ2xlIHNldCBvZiBzdGFuZGFy ZCBjb25zdGFudHMKZGVmaW5pbmcgbWVtb3J5IGFkZHJlc3Mgc2hpZnQgdmFsdWVzIGZvciB0aGUg Ynl0ZS1sZXZlbCBhZGRyZXNzIHRoYXQgY2FuCmJlIHVzZWQgd2hlbiBhY2Nlc3NpbmcgdGhlIFBD SSBFeHByZXNzIENvbmZpZ3VyYXRpb24gU3BhY2UsIGFuZCB0aGVuCm1vdmUgbmF0aXZlIFBDSSBF eHByZXNzIGNvbnRyb2xsZXIgZHJpdmVycyB0byB1c2UgbmV3bHkgaW50cm9kdWNlZApkZWZpbml0 aW9ucyByZXRpcmluZyBhbnkgZHJpdmVyLXNwZWNpZmljIG9uZXMuCgpUaGUgRUNBTSAoIkVuaGFu Y2VkIENvbmZpZ3VyYXRpb24gQWNjZXNzIE1lY2hhbmlzbSIpIGlzIGRlZmluZWQgYnkgdGhlClBD SSBFeHByZXNzIHNwZWNpZmljYXRpb24gKHNlZSBQQ0kgRXhwcmVzcyBCYXNlIFNwZWNpZmljYXRp b24sIFJldmlzaW9uCjUuMCwgVmVyc2lvbiAxLjAsIFNlY3Rpb24gNy4yLjIsIHAuIDY3NiksIHRo dXMgbW9zdCBoYXJkd2FyZSBzaG91bGQKaW1wbGVtZW50IGl0IHRoZSBzYW1lIHdheS4gIE1vc3Qg b2YgdGhlIG5hdGl2ZSBQQ0kgRXhwcmVzcyBjb250cm9sbGVyCmRyaXZlcnMgZGVmaW5lIHRoZWly IEVDQU0tcmVsYXRlZCBjb25zdGFudHMsIG1hbnkgb2YgdGhlc2UgY291bGQgYmUKc2hhcmVkLCBv ciB1c2Ugb3Blbi1jb2RlZCB2YWx1ZXMgd2hlbiBzZXR0aW5nIHRoZSAuYnVzX3NoaWZ0IGZpZWxk IG9mCnRoZSBzdHJ1Y3QgcGNpX2VjYW1fb3BzLgoKQWxsIG9mIHRoZSBuZXdseSBhZGRlZCBjb25z dGFudHMgc2hvdWxkIHJlbW92ZSBhbWJpZ3VpdHkgYW5kIHJlZHVjZSB0aGUKbnVtYmVyIG9mIG9w ZW4tY29kZWQgdmFsdWVzLCBhbmQgYWxzbyBjb3JyZWxhdGUgbW9yZSBzdHJvbmdseSB3aXRoIHRo ZQpkZXNjcmlwdGlvbnMgaW4gdGhlIGFmb3JlbWVudGlvbmVkIHNwZWNpZmljYXRpb24gKHNlZSBU YWJsZSA3LTEKIkVuaGFuY2VkIENvbmZpZ3VyYXRpb24gQWRkcmVzcyBNYXBwaW5nIiwgcC4gNjc3 KS4KClRoZXJlIGlzIG5vIGNoYW5nZSB0byBmdW5jdGlvbmFsaXR5LgoKU3VnZ2VzdGVkLWJ5OiBC am9ybiBIZWxnYWFzIDxiaGVsZ2Fhc0Bnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBLcnp5c3p0 b2YgV2lsY3p5xYRza2kgPGt3QGxpbnV4LmNvbT4KLS0tCkNoYW5nZWQgaW4gdjU6CiAgUmVtb3Zl ZCB1bnVzZWQgY29uc3RhbnQgIlBDSUVfRUNBTV9ERVZfU0hJRlQiLgogIFJlZmFjdG9yZWQgcHBj NHh4X3BjaWV4X2dldF9jb25maWdfYmFzZSgpIHNvIHRoYXQgdGhlICJvZmZzZXQiCiAgcGFyYW1l dGVyIGNhbiBiZSBwYXNzZWQgdG8gc28gdGhhdCB0aGUgUENJRV9FQ0FNX09GRlNFVCgpIG1hY3Jv CiAgY2FuIGJlIHVzZWQuCiAgVXNlZCB0aGUgQUxJR05fRE9XTigpIG1hY3JvIHdoZXJlIDMyIGJp dCBhbGlnbm1lbnQgaXMgcmVxdWlyZWQKICBpbnN0ZWFkIHVzaW5nIHRoZSAweGZmYyBtYXNrLgog IEFkZGVkIENGR19BRERSX0NGR19UWVBFXzEgbWFjcm8gdG8gcGNpL2NvbnRyb2xsZXIvcGNpZS1p cHJvYy5jIHRvCiAgZGVub3RlIHRoYXQgdGhpcyBpcyBhIGNvbmZpZ3VyYXRpb24gdHlwZSAxIGFk ZHJlc3MgYW5kIGFjY2VzcyB0eXBlLgogIFJlZmFjdG9yZWQgYm91bmRhcnkgY2hlY2sgaW4gcGNp L2NvbnRyb2xsZXIvdm1kLmMgYXMgdXNlZCBieSB0aGUKICB2bWRfY2ZnX2FkZHIoKSBmdW5jdGlv biBmb2xsb3dpbmcgYWRkaXRpb24gb2YgdGhlIFBDSUVfRUNBTV9PRkZTRVQoKQogIG1hY3JvLgog IENoYW5nZWQgdGhlICJidXMtPm51bWJlciIgdG8gc2ltcGx5IHBhc3MgdGhlICJidXMiIGFyZ3Vt ZW50IGluIHRoZQogIFBDSUVfRUNBTV9PRkZTRVQoKSBtYWNyby4KCkNoYW5nZWQgaW4gdjQ6CiAg UmVtb3ZlZCBjb25zdGFudHMgcmVsYXRlZCB0byAiQ0FNIi4KICBBZGRlZCBtb3JlIHBsYXRmb3Jt cyBhbmQgZGV2aWNlcyB0aGF0IGNhbiB1c2UgbmV3IEVDQU0gbWFjcm9zIGFuZAogIGNvbnN0YW50 cy4KICBSZW1vdmVkIHVudXNlZCAiLmJ1c19zaGlmdCIgaW5pdGlhbGlzZXJzIGZyb20gcGNpLXhn ZW5lLmMgYXMKICB4Z2VuZV9wY2llX21hcF9idXMoKSBkaWQgbm90IHVzZSB0aGVzZS4KCkNoYW5n ZXMgaW4gdjM6CiAgVXBkYXRlZCBjb21taXQgbWVzc2FnZSB3b3JkaW5nLgogIFVwZGF0ZWQgcmVn YXJkaW5nIGN1c3RvbSBFQ0FNIGJ1cyBzaGlmdCB2YWx1ZXMgYW5kIGNvbmNlcm5pbmcgUENJIGJh c2UKICBjb25maWd1cmF0aW9uIHNwYWNlIGFjY2VzcyBmb3IgVHlwZSAxIGFjY2Vzcy4KICBSZWZh Y3RvcmVkIHJvY2tjaGlwX3BjaWVfcmRfb3RoZXJfY29uZigpIGFuZCByb2NrY2hpcF9wY2llX3dy X290aGVyX2NvbmYoKQogIGFuZCByZW1vdmVkIHRoZSAiYnVzZGV2IiB2YXJpYWJsZS4KICBSZW1v dmVkIHN1cnBsdXMgInJlbGJ1cyIgdmFyaWFibGUgZnJvbSBud2xfcGNpZV9tYXBfYnVzKCkgYW5k CiAgeGlsaW54X3BjaWVfbWFwX2J1cygpLgogIFJlbmFtZWQgdGhlIFBDSUVfRUNBTV9BRERSKCkg bWFjcm8gdG8gUENJRV9FQ0FNX09GRlNFVCgpLgoKQ2hhbmdlcyBpbiB2MjoKICBVc2UgUENJRV9F Q0FNX0FERFIgbWFjcm8gd2hlbiBjb21wdXRpbmcgRUNBTSBhZGRyZXNzIG9mZnNldCwgYnV0IGRy b3AKICBQQ0lfU0xPVCBhbmQgUENJX0ZVTkMgbWFjcm9zIGZyb20gdGhlIFBDSUVfRUNBTV9BRERS IG1hY3JvIGluIGZhdm91cgogIG9mIHVzaW5nIGEgc2luZ2xlIHZhbHVlIGZvciB0aGUgZGV2aWNl L2Z1bmN0aW9uLgoKIGFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvNHh4L3BjaS5jICAgICAgICAgICAg fCAzMCArKysrKysrKysrLS0tLS0tLS0tLQogZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNp ZS1hbC5jICAgICAgICB8IDEzICsrLS0tLS0tLQogZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2Mv cGNpZS1oaXNpLmMgICAgICB8ICA0ICstLQogZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktYWFy ZHZhcmsuYyAgICAgICB8IDEzICsrLS0tLS0tLQogZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2kt aG9zdC1nZW5lcmljLmMgICB8ICAyICstCiBkcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS10aHVu ZGVyLWVjYW0uYyAgIHwgIDIgKy0KIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLXRodW5kZXIt cGVtLmMgICAgfCAxMyArKysrKysrLS0KIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLXhnZW5l LmMgICAgICAgICAgfCAgMiAtLQogZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLWJyY21zdGIu YyAgICAgICB8IDE2ICsrLS0tLS0tLS0tCiBkcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtaXBy b2MuYyAgICAgICAgIHwgMzEgKysrKysrLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL3BjaS9jb250 cm9sbGVyL3BjaWUtcm9ja2NoaXAtaG9zdC5jIHwgMjcgKysrKysrKysrLS0tLS0tLS0tCiBkcml2 ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtcm9ja2NoaXAuaCAgICAgIHwgIDggKy0tLS0tCiBkcml2 ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtdGFuZ28uYyAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMv cGNpL2NvbnRyb2xsZXIvcGNpZS14aWxpbngtbndsLmMgICAgfCAgOSArKy0tLS0KIGRyaXZlcnMv cGNpL2NvbnRyb2xsZXIvcGNpZS14aWxpbnguYyAgICAgICAgfCAxMSArKy0tLS0tLQogZHJpdmVy cy9wY2kvY29udHJvbGxlci92bWQuYyAgICAgICAgICAgICAgICB8IDE5ICsrKysrKy0tLS0tLS0K IGRyaXZlcnMvcGNpL2VjYW0uYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLS0KIGlu Y2x1ZGUvbGludXgvcGNpLWVjYW0uaCAgICAgICAgICAgICAgICAgICAgfCAyMyArKysrKysrKysr KysrKysKIDE4IGZpbGVzIGNoYW5nZWQsIDk5IGluc2VydGlvbnMoKyksIDEzMCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zLzR4eC9wY2kuYyBiL2FyY2gv cG93ZXJwYy9wbGF0Zm9ybXMvNHh4L3BjaS5jCmluZGV4IGMxM2Q2NGMzYjAxOS4uNGYzYzUyOWVm M2I5IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zLzR4eC9wY2kuYworKysgYi9h cmNoL3Bvd2VycGMvcGxhdGZvcm1zLzR4eC9wY2kuYwpAQCAtMjAsNiArMjAsNyBAQAogCiAjaW5j bHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvcGNpLmg+CisjaW5jbHVkZSA8 bGludXgvcGNpLWVjYW0uaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGlu dXgvb2YuaD4KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgpAQCAtMTU4Myw5ICsxNTg0LDEwIEBA IHN0YXRpYyBpbnQgcHBjNHh4X3BjaWV4X3ZhbGlkYXRlX2JkZihzdHJ1Y3QgcHBjNHh4X3BjaWV4 X3BvcnQgKnBvcnQsCiAKIHN0YXRpYyB2b2lkIF9faW9tZW0gKnBwYzR4eF9wY2lleF9nZXRfY29u ZmlnX2Jhc2Uoc3RydWN0IHBwYzR4eF9wY2lleF9wb3J0ICpwb3J0LAogCQkJCQkJICBzdHJ1Y3Qg cGNpX2J1cyAqYnVzLAotCQkJCQkJICB1bnNpZ25lZCBpbnQgZGV2Zm4pCisJCQkJCQkgIHVuc2ln bmVkIGludCBkZXZmbiwKKwkJCQkJCSAgaW50IG9mZnNldCkKIHsKLQlpbnQgcmVsYnVzOworCXVu c2lnbmVkIGludCBidXNucl9lY2FtID0gYnVzLT5udW1iZXIgLSAocG9ydC0+aG9zZS0+Zmlyc3Rf YnVzbm8gKyAxKTsKIAogCS8qIFJlbW92ZSB0aGUgY2FzdHMgd2hlbiB3ZSBmaW5hbGx5IHJlbW92 ZSB0aGUgc3R1cGlkIHZvbGF0aWxlCiAJICogaW4gc3RydWN0IHBjaV9jb250cm9sbGVyCkBAIC0x NTkzLDkgKzE1OTUsNyBAQCBzdGF0aWMgdm9pZCBfX2lvbWVtICpwcGM0eHhfcGNpZXhfZ2V0X2Nv bmZpZ19iYXNlKHN0cnVjdCBwcGM0eHhfcGNpZXhfcG9ydCAqcG9ydAogCWlmIChidXMtPm51bWJl ciA9PSBwb3J0LT5ob3NlLT5maXJzdF9idXNubykKIAkJcmV0dXJuICh2b2lkIF9faW9tZW0gKilw b3J0LT5ob3NlLT5jZmdfYWRkcjsKIAotCXJlbGJ1cyA9IGJ1cy0+bnVtYmVyIC0gKHBvcnQtPmhv c2UtPmZpcnN0X2J1c25vICsgMSk7Ci0JcmV0dXJuICh2b2lkIF9faW9tZW0gKilwb3J0LT5ob3Nl LT5jZmdfZGF0YSArCi0JCSgocmVsYnVzICA8PCAyMCkgfCAoZGV2Zm4gPDwgMTIpKTsKKwlyZXR1 cm4gcG9ydC0+aG9zZS0+Y2ZnX2RhdGEgKyBQQ0lFX0VDQU1fT0ZGU0VUKGJ1c25yX2VjYW0sIGRl dmZuLCBvZmZzZXQpOwogfQogCiBzdGF0aWMgaW50IHBwYzR4eF9wY2lleF9yZWFkX2NvbmZpZyhz dHJ1Y3QgcGNpX2J1cyAqYnVzLCB1bnNpZ25lZCBpbnQgZGV2Zm4sCkBAIC0xNjEyLDcgKzE2MTIs NyBAQCBzdGF0aWMgaW50IHBwYzR4eF9wY2lleF9yZWFkX2NvbmZpZyhzdHJ1Y3QgcGNpX2J1cyAq YnVzLCB1bnNpZ25lZCBpbnQgZGV2Zm4sCiAJaWYgKHBwYzR4eF9wY2lleF92YWxpZGF0ZV9iZGYo cG9ydCwgYnVzLCBkZXZmbikgIT0gMCkKIAkJcmV0dXJuIFBDSUJJT1NfREVWSUNFX05PVF9GT1VO RDsKIAotCWFkZHIgPSBwcGM0eHhfcGNpZXhfZ2V0X2NvbmZpZ19iYXNlKHBvcnQsIGJ1cywgZGV2 Zm4pOworCWFkZHIgPSBwcGM0eHhfcGNpZXhfZ2V0X2NvbmZpZ19iYXNlKHBvcnQsIGJ1cywgZGV2 Zm4sIG9mZnNldCk7CiAKIAkvKgogCSAqIFJlYWRpbmcgZnJvbSBjb25maWd1cmF0aW9uIHNwYWNl IG9mIG5vbi1leGlzdGluZyBkZXZpY2UgY2FuCkBAIC0xNjI3LDIwICsxNjI3LDIwIEBAIHN0YXRp YyBpbnQgcHBjNHh4X3BjaWV4X3JlYWRfY29uZmlnKHN0cnVjdCBwY2lfYnVzICpidXMsIHVuc2ln bmVkIGludCBkZXZmbiwKIAogCXN3aXRjaCAobGVuKSB7CiAJY2FzZSAxOgotCQkqdmFsID0gaW5f OCgodTggKikoYWRkciArIG9mZnNldCkpOworCQkqdmFsID0gaW5fOCgodTggKilhZGRyKTsKIAkJ YnJlYWs7CiAJY2FzZSAyOgotCQkqdmFsID0gaW5fbGUxNigodTE2ICopKGFkZHIgKyBvZmZzZXQp KTsKKwkJKnZhbCA9IGluX2xlMTYoKHUxNiAqKWFkZHIpOwogCQlicmVhazsKIAlkZWZhdWx0Ogot CQkqdmFsID0gaW5fbGUzMigodTMyICopKGFkZHIgKyBvZmZzZXQpKTsKKwkJKnZhbCA9IGluX2xl MzIoKHUzMiAqKWFkZHIpOwogCQlicmVhazsKIAl9CiAKIAlwcl9kZWJ1ZygicGNpZS1jb25maWct cmVhZDogYnVzPSUzZCBbJTNkLi4lM2RdIGRldmZuPTB4JTA0eCIKIAkJICIgb2Zmc2V0PTB4JTA0 eCBsZW49JWQsIGFkZHI9MHglcCB2YWw9MHglMDh4XG4iLAogCQkgYnVzLT5udW1iZXIsIGhvc2Ut PmZpcnN0X2J1c25vLCBob3NlLT5sYXN0X2J1c25vLAotCQkgZGV2Zm4sIG9mZnNldCwgbGVuLCBh ZGRyICsgb2Zmc2V0LCAqdmFsKTsKKwkJIGRldmZuLCBvZmZzZXQsIGxlbiwgYWRkciwgKnZhbCk7 CiAKIAkvKiBDaGVjayBmb3IgQ1JTICg0NDBTUGUgcmV2IEIgZG9lcyB0aGF0IGZvciB1cyBidXQg aGVoIC4uKSAqLwogCWlmIChpbl9iZTMyKHBvcnQtPnV0bF9iYXNlICsgUEVVVExfUkNTVEEpICYg MHgwMDA0MDAwMCkgewpAQCAtMTY2Nyw3ICsxNjY3LDcgQEAgc3RhdGljIGludCBwcGM0eHhfcGNp ZXhfd3JpdGVfY29uZmlnKHN0cnVjdCBwY2lfYnVzICpidXMsIHVuc2lnbmVkIGludCBkZXZmbiwK IAlpZiAocHBjNHh4X3BjaWV4X3ZhbGlkYXRlX2JkZihwb3J0LCBidXMsIGRldmZuKSAhPSAwKQog CQlyZXR1cm4gUENJQklPU19ERVZJQ0VfTk9UX0ZPVU5EOwogCi0JYWRkciA9IHBwYzR4eF9wY2ll eF9nZXRfY29uZmlnX2Jhc2UocG9ydCwgYnVzLCBkZXZmbik7CisJYWRkciA9IHBwYzR4eF9wY2ll eF9nZXRfY29uZmlnX2Jhc2UocG9ydCwgYnVzLCBkZXZmbiwgb2Zmc2V0KTsKIAogCS8qCiAJICog UmVhZGluZyBmcm9tIGNvbmZpZ3VyYXRpb24gc3BhY2Ugb2Ygbm9uLWV4aXN0aW5nIGRldmljZSBj YW4KQEAgLTE2ODAsMTcgKzE2ODAsMTcgQEAgc3RhdGljIGludCBwcGM0eHhfcGNpZXhfd3JpdGVf Y29uZmlnKHN0cnVjdCBwY2lfYnVzICpidXMsIHVuc2lnbmVkIGludCBkZXZmbiwKIAlwcl9kZWJ1 ZygicGNpZS1jb25maWctd3JpdGU6IGJ1cz0lM2QgWyUzZC4uJTNkXSBkZXZmbj0weCUwNHgiCiAJ CSAiIG9mZnNldD0weCUwNHggbGVuPSVkLCBhZGRyPTB4JXAgdmFsPTB4JTA4eFxuIiwKIAkJIGJ1 cy0+bnVtYmVyLCBob3NlLT5maXJzdF9idXNubywgaG9zZS0+bGFzdF9idXNubywKLQkJIGRldmZu LCBvZmZzZXQsIGxlbiwgYWRkciArIG9mZnNldCwgdmFsKTsKKwkJIGRldmZuLCBvZmZzZXQsIGxl biwgYWRkciwgdmFsKTsKIAogCXN3aXRjaCAobGVuKSB7CiAJY2FzZSAxOgotCQlvdXRfOCgodTgg KikoYWRkciArIG9mZnNldCksIHZhbCk7CisJCW91dF84KCh1OCAqKWFkZHIsIHZhbCk7CiAJCWJy ZWFrOwogCWNhc2UgMjoKLQkJb3V0X2xlMTYoKHUxNiAqKShhZGRyICsgb2Zmc2V0KSwgdmFsKTsK KwkJb3V0X2xlMTYoKHUxNiAqKWFkZHIsIHZhbCk7CiAJCWJyZWFrOwogCWRlZmF1bHQ6Ci0JCW91 dF9sZTMyKCh1MzIgKikoYWRkciArIG9mZnNldCksIHZhbCk7CisJCW91dF9sZTMyKCh1MzIgKilh ZGRyLCB2YWwpOwogCQlicmVhazsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRy b2xsZXIvZHdjL3BjaWUtYWwuYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtYWwu YwppbmRleCBmOTczZmJjYTkwY2YuLjk3OWQ5M2I4MmRmMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9w Y2kvY29udHJvbGxlci9kd2MvcGNpZS1hbC5jCisrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIv ZHdjL3BjaWUtYWwuYwpAQCAtNzYsNyArNzYsNyBAQCBzdGF0aWMgaW50IGFsX3BjaWVfaW5pdChz dHJ1Y3QgcGNpX2NvbmZpZ193aW5kb3cgKmNmZykKIH0KIAogY29uc3Qgc3RydWN0IHBjaV9lY2Ft X29wcyBhbF9wY2llX29wcyA9IHsKLQkuYnVzX3NoaWZ0ICAgID0gMjAsCisJLmJ1c19zaGlmdCAg ICA9IFBDSUVfRUNBTV9CVVNfU0hJRlQsCiAJLmluaXQgICAgICAgICA9ICBhbF9wY2llX2luaXQs CiAJLnBjaV9vcHMgICAgICA9IHsKIAkJLm1hcF9idXMgICAgPSBhbF9wY2llX21hcF9idXMsCkBA IC0xMzgsOCArMTM4LDYgQEAgc3RydWN0IGFsX3BjaWUgewogCXN0cnVjdCBhbF9wY2llX3Rhcmdl dF9idXNfY2ZnIHRhcmdldF9idXNfY2ZnOwogfTsKIAotI2RlZmluZSBQQ0lFX0VDQU1fREVWRk4o eCkJCSgoKHgpICYgMHhmZikgPDwgMTIpCi0KICNkZWZpbmUgdG9fYWxfcGNpZSh4KQkJZGV2X2dl dF9kcnZkYXRhKCh4KS0+ZGV2KQogCiBzdGF0aWMgaW5saW5lIHUzMiBhbF9wY2llX2NvbnRyb2xs ZXJfcmVhZGwoc3RydWN0IGFsX3BjaWUgKnBjaWUsIHUzMiBvZmZzZXQpCkBAIC0yMjYsMTEgKzIy NCw2IEBAIHN0YXRpYyB2b2lkIF9faW9tZW0gKmFsX3BjaWVfY29uZl9hZGRyX21hcF9idXMoc3Ry dWN0IHBjaV9idXMgKmJ1cywKIAlzdHJ1Y3QgYWxfcGNpZV90YXJnZXRfYnVzX2NmZyAqdGFyZ2V0 X2J1c19jZmcgPSAmcGNpZS0+dGFyZ2V0X2J1c19jZmc7CiAJdW5zaWduZWQgaW50IGJ1c25yX2Vj YW0gPSBidXNuciAmIHRhcmdldF9idXNfY2ZnLT5lY2FtX21hc2s7CiAJdW5zaWduZWQgaW50IGJ1 c25yX3JlZyA9IGJ1c25yICYgdGFyZ2V0X2J1c19jZmctPnJlZ19tYXNrOwotCXZvaWQgX19pb21l bSAqcGNpX2Jhc2VfYWRkcjsKLQotCXBjaV9iYXNlX2FkZHIgPSAodm9pZCBfX2lvbWVtICopKCh1 aW50cHRyX3QpcHAtPnZhX2NmZzBfYmFzZSArCi0JCQkJCSAoYnVzbnJfZWNhbSA8PCAyMCkgKwot CQkJCQkgUENJRV9FQ0FNX0RFVkZOKGRldmZuKSk7CiAKIAlpZiAoYnVzbnJfcmVnICE9IHRhcmdl dF9idXNfY2ZnLT5yZWdfdmFsKSB7CiAJCWRldl9kYmcocGNpZS0+cGNpLT5kZXYsICJDaGFuZ2lu ZyB0YXJnZXQgYnVzIGJ1c251bSB2YWwgZnJvbSAweCV4IHRvIDB4JXhcbiIsCkBAIC0yNDEsNyAr MjM0LDcgQEAgc3RhdGljIHZvaWQgX19pb21lbSAqYWxfcGNpZV9jb25mX2FkZHJfbWFwX2J1cyhz dHJ1Y3QgcGNpX2J1cyAqYnVzLAogCQkJCSAgICAgICB0YXJnZXRfYnVzX2NmZy0+cmVnX21hc2sp OwogCX0KIAotCXJldHVybiBwY2lfYmFzZV9hZGRyICsgd2hlcmU7CisJcmV0dXJuIHBwLT52YV9j ZmcwX2Jhc2UgKyBQQ0lFX0VDQU1fT0ZGU0VUKGJ1c25yX2VjYW0sIGRldmZuLCB3aGVyZSk7CiB9 CiAKIHN0YXRpYyBzdHJ1Y3QgcGNpX29wcyBhbF9jaGlsZF9wY2lfb3BzID0gewpAQCAtMjY0LDcg KzI1Nyw3IEBAIHN0YXRpYyB2b2lkIGFsX3BjaWVfY29uZmlnX3ByZXBhcmUoc3RydWN0IGFsX3Bj aWUgKnBjaWUpCiAKIAl0YXJnZXRfYnVzX2NmZyA9ICZwY2llLT50YXJnZXRfYnVzX2NmZzsKIAot CWVjYW1fYnVzX21hc2sgPSAocGNpZS0+ZWNhbV9zaXplID4+IDIwKSAtIDE7CisJZWNhbV9idXNf bWFzayA9IChwY2llLT5lY2FtX3NpemUgPj4gUENJRV9FQ0FNX0JVU19TSElGVCkgLSAxOwogCWlm IChlY2FtX2J1c19tYXNrID4gMjU1KSB7CiAJCWRldl93YXJuKHBjaWUtPmRldiwgIkVDQU0gd2lu ZG93IHNpemUgaXMgbGFyZ2VyIHRoYW4gMjU2TUIuIEN1dHRpbmcgb2ZmIGF0IDI1NlxuIik7CiAJ CWVjYW1fYnVzX21hc2sgPSAyNTU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVy L2R3Yy9wY2llLWhpc2kuYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtaGlzaS5j CmluZGV4IDVjYTg2Nzk2ZDQzYS4uYjdhZmJmMWQ0YmQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Bj aS9jb250cm9sbGVyL2R3Yy9wY2llLWhpc2kuYworKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVy L2R3Yy9wY2llLWhpc2kuYwpAQCAtMTAwLDcgKzEwMCw3IEBAIHN0YXRpYyBpbnQgaGlzaV9wY2ll X2luaXQoc3RydWN0IHBjaV9jb25maWdfd2luZG93ICpjZmcpCiB9CiAKIGNvbnN0IHN0cnVjdCBw Y2lfZWNhbV9vcHMgaGlzaV9wY2llX29wcyA9IHsKLQkuYnVzX3NoaWZ0ICAgID0gMjAsCisJLmJ1 c19zaGlmdCAgICA9IFBDSUVfRUNBTV9CVVNfU0hJRlQsCiAJLmluaXQgICAgICAgICA9ICBoaXNp X3BjaWVfaW5pdCwKIAkucGNpX29wcyAgICAgID0gewogCQkubWFwX2J1cyAgICA9IGhpc2lfcGNp ZV9tYXBfYnVzLApAQCAtMTM1LDcgKzEzNSw3IEBAIHN0YXRpYyBpbnQgaGlzaV9wY2llX3BsYXRm b3JtX2luaXQoc3RydWN0IHBjaV9jb25maWdfd2luZG93ICpjZmcpCiB9CiAKIHN0YXRpYyBjb25z dCBzdHJ1Y3QgcGNpX2VjYW1fb3BzIGhpc2lfcGNpZV9wbGF0Zm9ybV9vcHMgPSB7Ci0JLmJ1c19z aGlmdCAgICA9IDIwLAorCS5idXNfc2hpZnQgICAgPSBQQ0lFX0VDQU1fQlVTX1NISUZULAogCS5p bml0ICAgICAgICAgPSAgaGlzaV9wY2llX3BsYXRmb3JtX2luaXQsCiAJLnBjaV9vcHMgICAgICA9 IHsKIAkJLm1hcF9idXMgICAgPSBoaXNpX3BjaWVfbWFwX2J1cywKZGlmZiAtLWdpdCBhL2RyaXZl cnMvcGNpL2NvbnRyb2xsZXIvcGNpLWFhcmR2YXJrLmMgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVy L3BjaS1hYXJkdmFyay5jCmluZGV4IDBiZTQ4NWEyNTMyNy4uMTA0M2U1NGM3M2JkIDEwMDY0NAot LS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1hYXJkdmFyay5jCisrKyBiL2RyaXZlcnMv cGNpL2NvbnRyb2xsZXIvcGNpLWFhcmR2YXJrLmMKQEAgLTE2LDYgKzE2LDcgQEAKICNpbmNsdWRl IDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxs aW51eC9wY2kuaD4KKyNpbmNsdWRlIDxsaW51eC9wY2ktZWNhbS5oPgogI2luY2x1ZGUgPGxpbnV4 L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9waHkvcGh5Lmg+CiAjaW5jbHVkZSA8bGludXgvcGxh dGZvcm1fZGV2aWNlLmg+CkBAIC0xNjQsMTQgKzE2NSw2IEBACiAjZGVmaW5lIFBDSUVfQ09ORklH X1dSX1RZUEUwCQkJMHhhCiAjZGVmaW5lIFBDSUVfQ09ORklHX1dSX1RZUEUxCQkJMHhiCiAKLSNk ZWZpbmUgUENJRV9DT05GX0JVUyhidXMpCQkJKCgoYnVzKSAmIDB4ZmYpIDw8IDIwKQotI2RlZmlu ZSBQQ0lFX0NPTkZfREVWKGRldikJCQkoKChkZXYpICYgMHgxZikgPDwgMTUpCi0jZGVmaW5lIFBD SUVfQ09ORl9GVU5DKGZ1bikJCQkoKChmdW4pICYgMHg3KQk8PCAxMikKLSNkZWZpbmUgUENJRV9D T05GX1JFRyhyZWcpCQkJKChyZWcpICYgMHhmZmMpCi0jZGVmaW5lIFBDSUVfQ09ORl9BRERSKGJ1 cywgZGV2Zm4sIHdoZXJlKQlcCi0JKFBDSUVfQ09ORl9CVVMoYnVzKSB8IFBDSUVfQ09ORl9ERVYo UENJX1NMT1QoZGV2Zm4pKQl8IFwKLQkgUENJRV9DT05GX0ZVTkMoUENJX0ZVTkMoZGV2Zm4pKSB8 IFBDSUVfQ09ORl9SRUcod2hlcmUpKQotCiAjZGVmaW5lIFBJT19SRVRSWV9DTlQJCQk1MDAKICNk ZWZpbmUgUElPX1JFVFJZX0RFTEFZCQkJMiAvKiAyIHVzKi8KIApAQCAtNjg3LDcgKzY4MCw3IEBA IHN0YXRpYyBpbnQgYWR2a19wY2llX3JkX2NvbmYoc3RydWN0IHBjaV9idXMgKmJ1cywgdTMyIGRl dmZuLAogCWFkdmtfd3JpdGVsKHBjaWUsIHJlZywgUElPX0NUUkwpOwogCiAJLyogUHJvZ3JhbSB0 aGUgYWRkcmVzcyByZWdpc3RlcnMgKi8KLQlyZWcgPSBQQ0lFX0NPTkZfQUREUihidXMtPm51bWJl ciwgZGV2Zm4sIHdoZXJlKTsKKwlyZWcgPSBBTElHTl9ET1dOKFBDSUVfRUNBTV9PRkZTRVQoYnVz LT5udW1iZXIsIGRldmZuLCB3aGVyZSksIDQpOwogCWFkdmtfd3JpdGVsKHBjaWUsIHJlZywgUElP X0FERFJfTFMpOwogCWFkdmtfd3JpdGVsKHBjaWUsIDAsIFBJT19BRERSX01TKTsKIApAQCAtNzQ4 LDcgKzc0MSw3IEBAIHN0YXRpYyBpbnQgYWR2a19wY2llX3dyX2NvbmYoc3RydWN0IHBjaV9idXMg KmJ1cywgdTMyIGRldmZuLAogCWFkdmtfd3JpdGVsKHBjaWUsIHJlZywgUElPX0NUUkwpOwogCiAJ LyogUHJvZ3JhbSB0aGUgYWRkcmVzcyByZWdpc3RlcnMgKi8KLQlyZWcgPSBQQ0lFX0NPTkZfQURE UihidXMtPm51bWJlciwgZGV2Zm4sIHdoZXJlKTsKKwlyZWcgPSBBTElHTl9ET1dOKFBDSUVfRUNB TV9PRkZTRVQoYnVzLT5udW1iZXIsIGRldmZuLCB3aGVyZSksIDQpOwogCWFkdmtfd3JpdGVsKHBj aWUsIHJlZywgUElPX0FERFJfTFMpOwogCWFkdmtfd3JpdGVsKHBjaWUsIDAsIFBJT19BRERSX01T KTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktaG9zdC1nZW5lcmlj LmMgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1ob3N0LWdlbmVyaWMuYwppbmRleCBiNTE5 NzdhYmZkZjEuLmMxYzY5YjExNjE1ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxl ci9wY2ktaG9zdC1nZW5lcmljLmMKKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktaG9z dC1nZW5lcmljLmMKQEAgLTQ5LDcgKzQ5LDcgQEAgc3RhdGljIHZvaWQgX19pb21lbSAqcGNpX2R3 X2VjYW1fbWFwX2J1cyhzdHJ1Y3QgcGNpX2J1cyAqYnVzLAogfQogCiBzdGF0aWMgY29uc3Qgc3Ry dWN0IHBjaV9lY2FtX29wcyBwY2lfZHdfZWNhbV9idXNfb3BzID0gewotCS5idXNfc2hpZnQJPSAy MCwKKwkuYnVzX3NoaWZ0CT0gUENJRV9FQ0FNX0JVU19TSElGVCwKIAkucGNpX29wcwk9IHsKIAkJ Lm1hcF9idXMJPSBwY2lfZHdfZWNhbV9tYXBfYnVzLAogCQkucmVhZAkJPSBwY2lfZ2VuZXJpY19j b25maWdfcmVhZCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLXRodW5k ZXItZWNhbS5jIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktdGh1bmRlci1lY2FtLmMKaW5k ZXggN2U4ODM1ZmVlNWY3Li4yMmVkN2U5OTViMzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL2Nv bnRyb2xsZXIvcGNpLXRodW5kZXItZWNhbS5jCisrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIv cGNpLXRodW5kZXItZWNhbS5jCkBAIC0zNDYsNyArMzQ2LDcgQEAgc3RhdGljIGludCB0aHVuZGVy X2VjYW1fY29uZmlnX3dyaXRlKHN0cnVjdCBwY2lfYnVzICpidXMsIHVuc2lnbmVkIGludCBkZXZm biwKIH0KIAogY29uc3Qgc3RydWN0IHBjaV9lY2FtX29wcyBwY2lfdGh1bmRlcl9lY2FtX29wcyA9 IHsKLQkuYnVzX3NoaWZ0CT0gMjAsCisJLmJ1c19zaGlmdAk9IFBDSUVfRUNBTV9CVVNfU0hJRlQs CiAJLnBjaV9vcHMJPSB7CiAJCS5tYXBfYnVzICAgICAgICA9IHBjaV9lY2FtX21hcF9idXMsCiAJ CS5yZWFkICAgICAgICAgICA9IHRodW5kZXJfZWNhbV9jb25maWdfcmVhZCwKZGlmZiAtLWdpdCBh L2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLXRodW5kZXItcGVtLmMgYi9kcml2ZXJzL3BjaS9j b250cm9sbGVyL3BjaS10aHVuZGVyLXBlbS5jCmluZGV4IDNmODQ3OTY5MTQzZS4uMWEzZjcwYWM2 MWZjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS10aHVuZGVyLXBlbS5j CisrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLXRodW5kZXItcGVtLmMKQEAgLTE5LDYg KzE5LDE1IEBACiAjZGVmaW5lIFBFTV9DRkdfV1IgMHgyOAogI2RlZmluZSBQRU1fQ0ZHX1JEIDB4 MzAKIAorLyoKKyAqIEVuaGFuY2VkIENvbmZpZ3VyYXRpb24gQWNjZXNzIE1lY2hhbmlzbSAoRUNB TSkKKyAqCisgKiBOLkIuIFRoaXMgaXMgYSBub24tc3RhbmRhcmQgcGxhdGZvcm0tc3BlY2lmaWMg RUNBTSBidXMgc2hpZnQgdmFsdWUuICBGb3IKKyAqIHN0YW5kYXJkIHZhbHVlcyBkZWZpbmVkIGlu IHRoZSBQQ0kgRXhwcmVzcyBCYXNlIFNwZWNpZmljYXRpb24gc2VlCisgKiBpbmNsdWRlL2xpbnV4 L3BjaS1lY2FtLmguCisgKi8KKyNkZWZpbmUgVEhVTkRFUl9QQ0lFX0VDQU1fQlVTX1NISUZUCTI0 CisKIHN0cnVjdCB0aHVuZGVyX3BlbV9wY2kgewogCXUzMgkJZWFfZW50cnlbM107CiAJdm9pZCBf X2lvbWVtCSpwZW1fcmVnX2Jhc2U7CkBAIC00MDQsNyArNDEzLDcgQEAgc3RhdGljIGludCB0aHVu ZGVyX3BlbV9hY3BpX2luaXQoc3RydWN0IHBjaV9jb25maWdfd2luZG93ICpjZmcpCiB9CiAKIGNv bnN0IHN0cnVjdCBwY2lfZWNhbV9vcHMgdGh1bmRlcl9wZW1fZWNhbV9vcHMgPSB7Ci0JLmJ1c19z aGlmdAk9IDI0LAorCS5idXNfc2hpZnQJPSBUSFVOREVSX1BDSUVfRUNBTV9CVVNfU0hJRlQsCiAJ LmluaXQJCT0gdGh1bmRlcl9wZW1fYWNwaV9pbml0LAogCS5wY2lfb3BzCT0gewogCQkubWFwX2J1 cwk9IHBjaV9lY2FtX21hcF9idXMsCkBAIC00NDEsNyArNDUwLDcgQEAgc3RhdGljIGludCB0aHVu ZGVyX3BlbV9wbGF0Zm9ybV9pbml0KHN0cnVjdCBwY2lfY29uZmlnX3dpbmRvdyAqY2ZnKQogfQog CiBzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9lY2FtX29wcyBwY2lfdGh1bmRlcl9wZW1fb3BzID0g ewotCS5idXNfc2hpZnQJPSAyNCwKKwkuYnVzX3NoaWZ0CT0gVEhVTkRFUl9QQ0lFX0VDQU1fQlVT X1NISUZULAogCS5pbml0CQk9IHRodW5kZXJfcGVtX3BsYXRmb3JtX2luaXQsCiAJLnBjaV9vcHMJ PSB7CiAJCS5tYXBfYnVzCT0gcGNpX2VjYW1fbWFwX2J1cywKZGlmZiAtLWdpdCBhL2RyaXZlcnMv cGNpL2NvbnRyb2xsZXIvcGNpLXhnZW5lLmMgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS14 Z2VuZS5jCmluZGV4IDhlMGRiODRmMDg5ZC4uODVlN2M5ODI2NWU4IDEwMDY0NAotLS0gYS9kcml2 ZXJzL3BjaS9jb250cm9sbGVyL3BjaS14Z2VuZS5jCisrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xs ZXIvcGNpLXhnZW5lLmMKQEAgLTI1Nyw3ICsyNTcsNiBAQCBzdGF0aWMgaW50IHhnZW5lX3YxX3Bj aWVfZWNhbV9pbml0KHN0cnVjdCBwY2lfY29uZmlnX3dpbmRvdyAqY2ZnKQogfQogCiBjb25zdCBz dHJ1Y3QgcGNpX2VjYW1fb3BzIHhnZW5lX3YxX3BjaWVfZWNhbV9vcHMgPSB7Ci0JLmJ1c19zaGlm dAk9IDE2LAogCS5pbml0CQk9IHhnZW5lX3YxX3BjaWVfZWNhbV9pbml0LAogCS5wY2lfb3BzCT0g ewogCQkubWFwX2J1cwk9IHhnZW5lX3BjaWVfbWFwX2J1cywKQEAgLTI3Miw3ICsyNzEsNiBAQCBz dGF0aWMgaW50IHhnZW5lX3YyX3BjaWVfZWNhbV9pbml0KHN0cnVjdCBwY2lfY29uZmlnX3dpbmRv dyAqY2ZnKQogfQogCiBjb25zdCBzdHJ1Y3QgcGNpX2VjYW1fb3BzIHhnZW5lX3YyX3BjaWVfZWNh bV9vcHMgPSB7Ci0JLmJ1c19zaGlmdAk9IDE2LAogCS5pbml0CQk9IHhnZW5lX3YyX3BjaWVfZWNh bV9pbml0LAogCS5wY2lfb3BzCT0gewogCQkubWFwX2J1cwk9IHhnZW5lX3BjaWVfbWFwX2J1cywK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1icmNtc3RiLmMgYi9kcml2 ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtYnJjbXN0Yi5jCmluZGV4IGJlYTg2ODk5YmQ1ZC4uN2Zj ODBmZDZmMTNmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtYnJjbXN0 Yi5jCisrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1icmNtc3RiLmMKQEAgLTIyLDYg KzIyLDcgQEAKICNpbmNsdWRlIDxsaW51eC9vZl9wY2kuaD4KICNpbmNsdWRlIDxsaW51eC9vZl9w bGF0Zm9ybS5oPgogI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgorI2luY2x1ZGUgPGxpbnV4L3BjaS1l Y2FtLmg+CiAjaW5jbHVkZSA8bGludXgvcHJpbnRrLmg+CiAjaW5jbHVkZSA8bGludXgvcmVzZXQu aD4KICNpbmNsdWRlIDxsaW51eC9zaXplcy5oPgpAQCAtMTI3LDExICsxMjgsNyBAQAogI2RlZmlu ZSAgTVNJX0lOVF9NQVNLX0NMUgkJMHgxNAogCiAjZGVmaW5lIFBDSUVfRVhUX0NGR19EQVRBCQkJ CTB4ODAwMAotCiAjZGVmaW5lIFBDSUVfRVhUX0NGR19JTkRFWAkJCQkweDkwMDAKLSNkZWZpbmUg IFBDSUVfRVhUX0JVU05VTV9TSElGVAkJCQkyMAotI2RlZmluZSAgUENJRV9FWFRfU0xPVF9TSElG VAkJCQkxNQotI2RlZmluZSAgUENJRV9FWFRfRlVOQ19TSElGVAkJCQkxMgogCiAjZGVmaW5lICBQ Q0lFX1JHUjFfU1dfSU5JVF8xX1BFUlNUX01BU0sJCQkweDEKICNkZWZpbmUgIFBDSUVfUkdSMV9T V19JTklUXzFfUEVSU1RfU0hJRlQJCTB4MApAQCAtNjk1LDE1ICs2OTIsNiBAQCBzdGF0aWMgYm9v bCBicmNtX3BjaWVfbGlua191cChzdHJ1Y3QgYnJjbV9wY2llICpwY2llKQogCXJldHVybiBkbGEg JiYgcGx1OwogfQogCi0vKiBDb25maWd1cmF0aW9uIHNwYWNlIHJlYWQvd3JpdGUgc3VwcG9ydCAq Lwotc3RhdGljIGlubGluZSBpbnQgYnJjbV9wY2llX2NmZ19pbmRleChpbnQgYnVzbnIsIGludCBk ZXZmbiwgaW50IHJlZykKLXsKLQlyZXR1cm4gKChQQ0lfU0xPVChkZXZmbikgJiAweDFmKSA8PCBQ Q0lFX0VYVF9TTE9UX1NISUZUKQotCQl8ICgoUENJX0ZVTkMoZGV2Zm4pICYgMHgwNykgPDwgUENJ RV9FWFRfRlVOQ19TSElGVCkKLQkJfCAoYnVzbnIgPDwgUENJRV9FWFRfQlVTTlVNX1NISUZUKQot CQl8IChyZWcgJiB+Myk7Ci19Ci0KIHN0YXRpYyB2b2lkIF9faW9tZW0gKmJyY21fcGNpZV9tYXBf Y29uZihzdHJ1Y3QgcGNpX2J1cyAqYnVzLCB1bnNpZ25lZCBpbnQgZGV2Zm4sCiAJCQkJCWludCB3 aGVyZSkKIHsKQEAgLTcxNiw3ICs3MDQsNyBAQCBzdGF0aWMgdm9pZCBfX2lvbWVtICpicmNtX3Bj aWVfbWFwX2NvbmYoc3RydWN0IHBjaV9idXMgKmJ1cywgdW5zaWduZWQgaW50IGRldmZuLAogCQly ZXR1cm4gUENJX1NMT1QoZGV2Zm4pID8gTlVMTCA6IGJhc2UgKyB3aGVyZTsKIAogCS8qIEZvciBk ZXZpY2VzLCB3cml0ZSB0byB0aGUgY29uZmlnIHNwYWNlIGluZGV4IHJlZ2lzdGVyICovCi0JaWR4 ID0gYnJjbV9wY2llX2NmZ19pbmRleChidXMtPm51bWJlciwgZGV2Zm4sIDApOworCWlkeCA9IFBD SUVfRUNBTV9PRkZTRVQoYnVzLT5udW1iZXIsIGRldmZuLCAwKTsKIAl3cml0ZWwoaWR4LCBwY2ll LT5iYXNlICsgUENJRV9FWFRfQ0ZHX0lOREVYKTsKIAlyZXR1cm4gYmFzZSArIFBDSUVfRVhUX0NG R19EQVRBICsgd2hlcmU7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3Bj aWUtaXByb2MuYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1pcHJvYy5jCmluZGV4IDkw NWU5MzgwODI0My4uNTAzNjYyMzgwZmY4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9jb250cm9s bGVyL3BjaWUtaXByb2MuYworKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtaXByb2Mu YwpAQCAtNiw2ICs2LDcgQEAKIAogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUg PGxpbnV4L3BjaS5oPgorI2luY2x1ZGUgPGxpbnV4L3BjaS1lY2FtLmg+CiAjaW5jbHVkZSA8bGlu dXgvbXNpLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxl Lmg+CkBAIC0zOSwxNiArNDAsOCBAQAogCiAjZGVmaW5lIENGR19JTkRfQUREUl9NQVNLCQkweDAw MDAxZmZjCiAKLSNkZWZpbmUgQ0ZHX0FERFJfQlVTX05VTV9TSElGVAkJMjAKLSNkZWZpbmUgQ0ZH X0FERFJfQlVTX05VTV9NQVNLCQkweDBmZjAwMDAwCi0jZGVmaW5lIENGR19BRERSX0RFVl9OVU1f U0hJRlQJCTE1Ci0jZGVmaW5lIENGR19BRERSX0RFVl9OVU1fTUFTSwkJMHgwMDBmODAwMAotI2Rl ZmluZSBDRkdfQUREUl9GVU5DX05VTV9TSElGVAkJMTIKLSNkZWZpbmUgQ0ZHX0FERFJfRlVOQ19O VU1fTUFTSwkJMHgwMDAwNzAwMAotI2RlZmluZSBDRkdfQUREUl9SRUdfTlVNX1NISUZUCQkyCiAj ZGVmaW5lIENGR19BRERSX1JFR19OVU1fTUFTSwkJMHgwMDAwMGZmYwotI2RlZmluZSBDRkdfQURE Ul9DRkdfVFlQRV9TSElGVAkJMAotI2RlZmluZSBDRkdfQUREUl9DRkdfVFlQRV9NQVNLCQkweDAw MDAwMDAzCisjZGVmaW5lIENGR19BRERSX0NGR19UWVBFXzEJCTEKIAogI2RlZmluZSBTWVNfUkNf SU5UWF9NQVNLCQkweGYKIApAQCAtNDU5LDE5ICs0NTIsMTUgQEAgc3RhdGljIGlubGluZSB2b2lk IGlwcm9jX3BjaWVfYXBiX2Vycl9kaXNhYmxlKHN0cnVjdCBwY2lfYnVzICpidXMsCiAKIHN0YXRp YyB2b2lkIF9faW9tZW0gKmlwcm9jX3BjaWVfbWFwX2VwX2NmZ19yZWcoc3RydWN0IGlwcm9jX3Bj aWUgKnBjaWUsCiAJCQkJCSAgICAgICB1bnNpZ25lZCBpbnQgYnVzbm8sCi0JCQkJCSAgICAgICB1 bnNpZ25lZCBpbnQgc2xvdCwKLQkJCQkJICAgICAgIHVuc2lnbmVkIGludCBmbiwKKwkJCQkJICAg ICAgIHVuc2lnbmVkIGludCBkZXZmbiwKIAkJCQkJICAgICAgIGludCB3aGVyZSkKIHsKIAl1MTYg b2Zmc2V0OwogCXUzMiB2YWw7CiAKIAkvKiBFUCBkZXZpY2UgYWNjZXNzICovCi0JdmFsID0gKGJ1 c25vIDw8IENGR19BRERSX0JVU19OVU1fU0hJRlQpIHwKLQkJKHNsb3QgPDwgQ0ZHX0FERFJfREVW X05VTV9TSElGVCkgfAotCQkoZm4gPDwgQ0ZHX0FERFJfRlVOQ19OVU1fU0hJRlQpIHwKLQkJKHdo ZXJlICYgQ0ZHX0FERFJfUkVHX05VTV9NQVNLKSB8Ci0JCSgxICYgQ0ZHX0FERFJfQ0ZHX1RZUEVf TUFTSyk7CisJdmFsID0gQUxJR05fRE9XTihQQ0lFX0VDQU1fT0ZGU0VUKGJ1c25vLCBkZXZmbiwg d2hlcmUpLCA0KSB8CisJCUNGR19BRERSX0NGR19UWVBFXzE7CiAKIAlpcHJvY19wY2llX3dyaXRl X3JlZyhwY2llLCBJUFJPQ19QQ0lFX0NGR19BRERSLCB2YWwpOwogCW9mZnNldCA9IGlwcm9jX3Bj aWVfcmVnX29mZnNldChwY2llLCBJUFJPQ19QQ0lFX0NGR19EQVRBKTsKQEAgLTU3NCw4ICs1NjMs NiBAQCBzdGF0aWMgaW50IGlwcm9jX3BjaWVfY29uZmlnX3JlYWQoc3RydWN0IHBjaV9idXMgKmJ1 cywgdW5zaWduZWQgaW50IGRldmZuLAogCQkJCSAgaW50IHdoZXJlLCBpbnQgc2l6ZSwgdTMyICp2 YWwpCiB7CiAJc3RydWN0IGlwcm9jX3BjaWUgKnBjaWUgPSBpcHJvY19kYXRhKGJ1cyk7Ci0JdW5z aWduZWQgaW50IHNsb3QgPSBQQ0lfU0xPVChkZXZmbik7Ci0JdW5zaWduZWQgaW50IGZuID0gUENJ X0ZVTkMoZGV2Zm4pOwogCXVuc2lnbmVkIGludCBidXNubyA9IGJ1cy0+bnVtYmVyOwogCXZvaWQg X19pb21lbSAqY2ZnX2RhdGFfcDsKIAl1bnNpZ25lZCBpbnQgZGF0YTsKQEAgLTU5MCw3ICs1Nzcs NyBAQCBzdGF0aWMgaW50IGlwcm9jX3BjaWVfY29uZmlnX3JlYWQoc3RydWN0IHBjaV9idXMgKmJ1 cywgdW5zaWduZWQgaW50IGRldmZuLAogCQlyZXR1cm4gcmV0OwogCX0KIAotCWNmZ19kYXRhX3Ag PSBpcHJvY19wY2llX21hcF9lcF9jZmdfcmVnKHBjaWUsIGJ1c25vLCBzbG90LCBmbiwgd2hlcmUp OworCWNmZ19kYXRhX3AgPSBpcHJvY19wY2llX21hcF9lcF9jZmdfcmVnKHBjaWUsIGJ1c25vLCBk ZXZmbiwgd2hlcmUpOwogCiAJaWYgKCFjZmdfZGF0YV9wKQogCQlyZXR1cm4gUENJQklPU19ERVZJ Q0VfTk9UX0ZPVU5EOwpAQCAtNjMxLDEzICs2MTgsMTEgQEAgc3RhdGljIHZvaWQgX19pb21lbSAq aXByb2NfcGNpZV9tYXBfY2ZnX2J1cyhzdHJ1Y3QgaXByb2NfcGNpZSAqcGNpZSwKIAkJCQkJICAg IGludCBidXNubywgdW5zaWduZWQgaW50IGRldmZuLAogCQkJCQkgICAgaW50IHdoZXJlKQogewot CXVuc2lnbmVkIHNsb3QgPSBQQ0lfU0xPVChkZXZmbik7Ci0JdW5zaWduZWQgZm4gPSBQQ0lfRlVO QyhkZXZmbik7CiAJdTE2IG9mZnNldDsKIAogCS8qIHJvb3QgY29tcGxleCBhY2Nlc3MgKi8KIAlp ZiAoYnVzbm8gPT0gMCkgewotCQlpZiAoc2xvdCA+IDAgfHwgZm4gPiAwKQorCQlpZiAoUENJRV9F Q0FNX0RFVkZOKGRldmZuKSA+IDApCiAJCQlyZXR1cm4gTlVMTDsKIAogCQlpcHJvY19wY2llX3dy aXRlX3JlZyhwY2llLCBJUFJPQ19QQ0lFX0NGR19JTkRfQUREUiwKQEAgLTY0OSw3ICs2MzQsNyBA QCBzdGF0aWMgdm9pZCBfX2lvbWVtICppcHJvY19wY2llX21hcF9jZmdfYnVzKHN0cnVjdCBpcHJv Y19wY2llICpwY2llLAogCQkJcmV0dXJuIChwY2llLT5iYXNlICsgb2Zmc2V0KTsKIAl9CiAKLQly ZXR1cm4gaXByb2NfcGNpZV9tYXBfZXBfY2ZnX3JlZyhwY2llLCBidXNubywgc2xvdCwgZm4sIHdo ZXJlKTsKKwlyZXR1cm4gaXByb2NfcGNpZV9tYXBfZXBfY2ZnX3JlZyhwY2llLCBidXNubywgZGV2 Zm4sIHdoZXJlKTsKIH0KIAogc3RhdGljIHZvaWQgX19pb21lbSAqaXByb2NfcGNpZV9idXNfbWFw X2NmZ19idXMoc3RydWN0IHBjaV9idXMgKmJ1cywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2Nv bnRyb2xsZXIvcGNpZS1yb2NrY2hpcC1ob3N0LmMgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3Bj aWUtcm9ja2NoaXAtaG9zdC5jCmluZGV4IDk3MDUwNTk1MjNhNi4uZjFkMDhhMWIxNTkxIDEwMDY0 NAotLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtcm9ja2NoaXAtaG9zdC5jCisrKyBi L2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1yb2NrY2hpcC1ob3N0LmMKQEAgLTE1NywxMiAr MTU3LDExIEBAIHN0YXRpYyBpbnQgcm9ja2NoaXBfcGNpZV9yZF9vdGhlcl9jb25mKHN0cnVjdCBy b2NrY2hpcF9wY2llICpyb2NrY2hpcCwKIAkJCQkgICAgICAgc3RydWN0IHBjaV9idXMgKmJ1cywg dTMyIGRldmZuLAogCQkJCSAgICAgICBpbnQgd2hlcmUsIGludCBzaXplLCB1MzIgKnZhbCkKIHsK LQl1MzIgYnVzZGV2OworCXZvaWQgX19pb21lbSAqYWRkcjsKIAotCWJ1c2RldiA9IFBDSUVfRUNB TV9BRERSKGJ1cy0+bnVtYmVyLCBQQ0lfU0xPVChkZXZmbiksCi0JCQkJUENJX0ZVTkMoZGV2Zm4p LCB3aGVyZSk7CisJYWRkciA9IHJvY2tjaGlwLT5yZWdfYmFzZSArIFBDSUVfRUNBTV9PRkZTRVQo YnVzLT5udW1iZXIsIGRldmZuLCB3aGVyZSk7CiAKLQlpZiAoIUlTX0FMSUdORUQoYnVzZGV2LCBz aXplKSkgeworCWlmICghSVNfQUxJR05FRCgodWludHB0cl90KWFkZHIsIHNpemUpKSB7CiAJCSp2 YWwgPSAwOwogCQlyZXR1cm4gUENJQklPU19CQURfUkVHSVNURVJfTlVNQkVSOwogCX0KQEAgLTE3 NSwxMSArMTc0LDExIEBAIHN0YXRpYyBpbnQgcm9ja2NoaXBfcGNpZV9yZF9vdGhlcl9jb25mKHN0 cnVjdCByb2NrY2hpcF9wY2llICpyb2NrY2hpcCwKIAkJCQkJCUFYSV9XUkFQUEVSX1RZUEUxX0NG Ryk7CiAKIAlpZiAoc2l6ZSA9PSA0KSB7Ci0JCSp2YWwgPSByZWFkbChyb2NrY2hpcC0+cmVnX2Jh c2UgKyBidXNkZXYpOworCQkqdmFsID0gcmVhZGwoYWRkcik7CiAJfSBlbHNlIGlmIChzaXplID09 IDIpIHsKLQkJKnZhbCA9IHJlYWR3KHJvY2tjaGlwLT5yZWdfYmFzZSArIGJ1c2Rldik7CisJCSp2 YWwgPSByZWFkdyhhZGRyKTsKIAl9IGVsc2UgaWYgKHNpemUgPT0gMSkgewotCQkqdmFsID0gcmVh ZGIocm9ja2NoaXAtPnJlZ19iYXNlICsgYnVzZGV2KTsKKwkJKnZhbCA9IHJlYWRiKGFkZHIpOwog CX0gZWxzZSB7CiAJCSp2YWwgPSAwOwogCQlyZXR1cm4gUENJQklPU19CQURfUkVHSVNURVJfTlVN QkVSOwpAQCAtMTkxLDExICsxOTAsMTEgQEAgc3RhdGljIGludCByb2NrY2hpcF9wY2llX3dyX290 aGVyX2NvbmYoc3RydWN0IHJvY2tjaGlwX3BjaWUgKnJvY2tjaGlwLAogCQkJCSAgICAgICBzdHJ1 Y3QgcGNpX2J1cyAqYnVzLCB1MzIgZGV2Zm4sCiAJCQkJICAgICAgIGludCB3aGVyZSwgaW50IHNp emUsIHUzMiB2YWwpCiB7Ci0JdTMyIGJ1c2RldjsKKwl2b2lkIF9faW9tZW0gKmFkZHI7CiAKLQli dXNkZXYgPSBQQ0lFX0VDQU1fQUREUihidXMtPm51bWJlciwgUENJX1NMT1QoZGV2Zm4pLAotCQkJ CVBDSV9GVU5DKGRldmZuKSwgd2hlcmUpOwotCWlmICghSVNfQUxJR05FRChidXNkZXYsIHNpemUp KQorCWFkZHIgPSByb2NrY2hpcC0+cmVnX2Jhc2UgKyBQQ0lFX0VDQU1fT0ZGU0VUKGJ1cy0+bnVt YmVyLCBkZXZmbiwgd2hlcmUpOworCisJaWYgKCFJU19BTElHTkVEKCh1aW50cHRyX3QpYWRkciwg c2l6ZSkpCiAJCXJldHVybiBQQ0lCSU9TX0JBRF9SRUdJU1RFUl9OVU1CRVI7CiAKIAlpZiAocGNp X2lzX3Jvb3RfYnVzKGJ1cy0+cGFyZW50KSkKQEAgLTIwNiwxMSArMjA1LDExIEBAIHN0YXRpYyBp bnQgcm9ja2NoaXBfcGNpZV93cl9vdGhlcl9jb25mKHN0cnVjdCByb2NrY2hpcF9wY2llICpyb2Nr Y2hpcCwKIAkJCQkJCUFYSV9XUkFQUEVSX1RZUEUxX0NGRyk7CiAKIAlpZiAoc2l6ZSA9PSA0KQot CQl3cml0ZWwodmFsLCByb2NrY2hpcC0+cmVnX2Jhc2UgKyBidXNkZXYpOworCQl3cml0ZWwodmFs LCBhZGRyKTsKIAllbHNlIGlmIChzaXplID09IDIpCi0JCXdyaXRldyh2YWwsIHJvY2tjaGlwLT5y ZWdfYmFzZSArIGJ1c2Rldik7CisJCXdyaXRldyh2YWwsIGFkZHIpOwogCWVsc2UgaWYgKHNpemUg PT0gMSkKLQkJd3JpdGViKHZhbCwgcm9ja2NoaXAtPnJlZ19iYXNlICsgYnVzZGV2KTsKKwkJd3Jp dGViKHZhbCwgYWRkcik7CiAJZWxzZQogCQlyZXR1cm4gUENJQklPU19CQURfUkVHSVNURVJfTlVN QkVSOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtcm9ja2NoaXAu aCBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1yb2NrY2hpcC5oCmluZGV4IGM3ZDAxNzhm YzhjMi4uMTY1MGE1MDg3NDUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3Bj aWUtcm9ja2NoaXAuaAorKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtcm9ja2NoaXAu aApAQCAtMTMsNiArMTMsNyBAQAogCiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVk ZSA8bGludXgvcGNpLmg+CisjaW5jbHVkZSA8bGludXgvcGNpLWVjYW0uaD4KIAogLyoKICAqIFRo ZSB1cHBlciAxNiBiaXRzIG9mIFBDSUVfQ0xJRU5UX0NPTkZJRyBhcmUgYSB3cml0ZSBtYXNrIGZv ciB0aGUgbG93ZXIgMTYKQEAgLTE3OCwxMyArMTc5LDYgQEAKICNkZWZpbmUgTUlOX0FYSV9BRERS X0JJVFNfUEFTU0VECQk4CiAjZGVmaW5lIFBDSUVfUkNfU0VORF9QTUVfT0ZGCQkJMHgxMTk2MAog I2RlZmluZSBST0NLQ0hJUF9WRU5ET1JfSUQJCQkweDFkODcKLSNkZWZpbmUgUENJRV9FQ0FNX0JV Uyh4KQkJCSgoKHgpICYgMHhmZikgPDwgMjApCi0jZGVmaW5lIFBDSUVfRUNBTV9ERVYoeCkJCQko KCh4KSAmIDB4MWYpIDw8IDE1KQotI2RlZmluZSBQQ0lFX0VDQU1fRlVOQyh4KQkJCSgoKHgpICYg MHg3KSA8PCAxMikKLSNkZWZpbmUgUENJRV9FQ0FNX1JFRyh4KQkJCSgoKHgpICYgMHhmZmYpIDw8 IDApCi0jZGVmaW5lIFBDSUVfRUNBTV9BRERSKGJ1cywgZGV2LCBmdW5jLCByZWcpIFwKLQkgIChQ Q0lFX0VDQU1fQlVTKGJ1cykgfCBQQ0lFX0VDQU1fREVWKGRldikgfCBcCi0JICAgUENJRV9FQ0FN X0ZVTkMoZnVuYykgfCBQQ0lFX0VDQU1fUkVHKHJlZykpCiAjZGVmaW5lIFBDSUVfTElOS19JU19M Mih4KSBcCiAJKCgoeCkgJiBQQ0lFX0NMSUVOVF9ERUJVR19MVFNTTV9NQVNLKSA9PSBQQ0lFX0NM SUVOVF9ERUJVR19MVFNTTV9MMikKICNkZWZpbmUgUENJRV9MSU5LX1VQKHgpIFwKZGlmZiAtLWdp dCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS10YW5nby5jIGIvZHJpdmVycy9wY2kvY29u dHJvbGxlci9wY2llLXRhbmdvLmMKaW5kZXggZDA5M2E4Y2U0YmIxLi44ZjBkNjk1YWZiZGUgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS10YW5nby5jCisrKyBiL2RyaXZl cnMvcGNpL2NvbnRyb2xsZXIvcGNpZS10YW5nby5jCkBAIC0yMDgsNyArMjA4LDcgQEAgc3RhdGlj IGludCBzbXA4NzU5X2NvbmZpZ193cml0ZShzdHJ1Y3QgcGNpX2J1cyAqYnVzLCB1bnNpZ25lZCBp bnQgZGV2Zm4sCiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2VjYW1fb3BzIHNtcDg3NTlf ZWNhbV9vcHMgPSB7Ci0JLmJ1c19zaGlmdAk9IDIwLAorCS5idXNfc2hpZnQJPSBQQ0lFX0VDQU1f QlVTX1NISUZULAogCS5wY2lfb3BzCT0gewogCQkubWFwX2J1cwk9IHBjaV9lY2FtX21hcF9idXMs CiAJCS5yZWFkCQk9IHNtcDg3NTlfY29uZmlnX3JlYWQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Bj aS9jb250cm9sbGVyL3BjaWUteGlsaW54LW53bC5jIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9w Y2llLXhpbGlueC1ud2wuYwppbmRleCBmM2NmN2Q2MTkyNGYuLjdmMjljMmZkY2Q1MSAxMDA2NDQK LS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLXhpbGlueC1ud2wuYworKysgYi9kcml2 ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUteGlsaW54LW53bC5jCkBAIC0xOCw2ICsxOCw3IEBACiAj aW5jbHVkZSA8bGludXgvb2ZfcGxhdGZvcm0uaD4KICNpbmNsdWRlIDxsaW51eC9vZl9pcnEuaD4K ICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KKyNpbmNsdWRlIDxsaW51eC9wY2ktZWNhbS5oPgogI2lu Y2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2lycWNoaXAv Y2hhaW5lZF9pcnEuaD4KIApAQCAtMTI0LDggKzEyNSw2IEBACiAjZGVmaW5lIEVfRUNBTV9DUl9F TkFCTEUJCUJJVCgwKQogI2RlZmluZSBFX0VDQU1fU0laRV9MT0MJCQlHRU5NQVNLKDIwLCAxNikK ICNkZWZpbmUgRV9FQ0FNX1NJWkVfU0hJRlQJCTE2Ci0jZGVmaW5lIEVDQU1fQlVTX0xPQ19TSElG VAkJMjAKLSNkZWZpbmUgRUNBTV9ERVZfTE9DX1NISUZUCQkxMgogI2RlZmluZSBOV0xfRUNBTV9W QUxVRV9ERUZBVUxUCQkxMgogCiAjZGVmaW5lIENGR19ETUFfUkVHX0JBUgkJCUdFTk1BU0soMiwg MCkKQEAgLTI0MCwxNSArMjM5LDExIEBAIHN0YXRpYyB2b2lkIF9faW9tZW0gKm53bF9wY2llX21h cF9idXMoc3RydWN0IHBjaV9idXMgKmJ1cywgdW5zaWduZWQgaW50IGRldmZuLAogCQkJCSAgICAg IGludCB3aGVyZSkKIHsKIAlzdHJ1Y3QgbndsX3BjaWUgKnBjaWUgPSBidXMtPnN5c2RhdGE7Ci0J aW50IHJlbGJ1czsKIAogCWlmICghbndsX3BjaWVfdmFsaWRfZGV2aWNlKGJ1cywgZGV2Zm4pKQog CQlyZXR1cm4gTlVMTDsKIAotCXJlbGJ1cyA9IChidXMtPm51bWJlciA8PCBFQ0FNX0JVU19MT0Nf U0hJRlQpIHwKLQkJCShkZXZmbiA8PCBFQ0FNX0RFVl9MT0NfU0hJRlQpOwotCi0JcmV0dXJuIHBj aWUtPmVjYW1fYmFzZSArIHJlbGJ1cyArIHdoZXJlOworCXJldHVybiBwY2llLT5lY2FtX2Jhc2Ug KyBQQ0lFX0VDQU1fT0ZGU0VUKGJ1cy0+bnVtYmVyLCBkZXZmbiwgd2hlcmUpOwogfQogCiAvKiBQ Q0llIG9wZXJhdGlvbnMgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNp ZS14aWxpbnguYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS14aWxpbnguYwppbmRleCA4 NTIzYmU2MWJiYTUuLmZhNWJhZWI4MjY1MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvY29udHJv bGxlci9wY2llLXhpbGlueC5jCisrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS14aWxp bnguYwpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgPGxpbnV4L29mX3BsYXRmb3JtLmg+CiAj aW5jbHVkZSA8bGludXgvb2ZfaXJxLmg+CiAjaW5jbHVkZSA8bGludXgvcGNpLmg+CisjaW5jbHVk ZSA8bGludXgvcGNpLWVjYW0uaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4K IAogI2luY2x1ZGUgIi4uL3BjaS5oIgpAQCAtODYsMTAgKzg3LDYgQEAKIC8qIFBoeSBTdGF0dXMv Q29udHJvbCBSZWdpc3RlciBkZWZpbml0aW9ucyAqLwogI2RlZmluZSBYSUxJTlhfUENJRV9SRUdf UFNDUl9MTktVUAlCSVQoMTEpCiAKLS8qIEVDQU0gZGVmaW5pdGlvbnMgKi8KLSNkZWZpbmUgRUNB TV9CVVNfTlVNX1NISUZUCQkyMAotI2RlZmluZSBFQ0FNX0RFVl9OVU1fU0hJRlQJCTEyCi0KIC8q IE51bWJlciBvZiBNU0kgSVJRcyAqLwogI2RlZmluZSBYSUxJTlhfTlVNX01TSV9JUlFTCQkxMjgK IApAQCAtMTgzLDE1ICsxODAsMTEgQEAgc3RhdGljIHZvaWQgX19pb21lbSAqeGlsaW54X3BjaWVf bWFwX2J1cyhzdHJ1Y3QgcGNpX2J1cyAqYnVzLAogCQkJCQkgdW5zaWduZWQgaW50IGRldmZuLCBp bnQgd2hlcmUpCiB7CiAJc3RydWN0IHhpbGlueF9wY2llX3BvcnQgKnBvcnQgPSBidXMtPnN5c2Rh dGE7Ci0JaW50IHJlbGJ1czsKIAogCWlmICgheGlsaW54X3BjaWVfdmFsaWRfZGV2aWNlKGJ1cywg ZGV2Zm4pKQogCQlyZXR1cm4gTlVMTDsKIAotCXJlbGJ1cyA9IChidXMtPm51bWJlciA8PCBFQ0FN X0JVU19OVU1fU0hJRlQpIHwKLQkJIChkZXZmbiA8PCBFQ0FNX0RFVl9OVU1fU0hJRlQpOwotCi0J cmV0dXJuIHBvcnQtPnJlZ19iYXNlICsgcmVsYnVzICsgd2hlcmU7CisJcmV0dXJuIHBvcnQtPnJl Z19iYXNlICsgUENJRV9FQ0FNX09GRlNFVChidXMtPm51bWJlciwgZGV2Zm4sIHdoZXJlKTsKIH0K IAogLyogUENJZSBvcGVyYXRpb25zICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9s bGVyL3ZtZC5jIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci92bWQuYwppbmRleCBmMzc1YzIxY2Vl YjEuLjU5ZmE5YTk0ODYwZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci92bWQu YworKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3ZtZC5jCkBAIC0xMSw2ICsxMSw3IEBACiAj aW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvbXNpLmg+CiAjaW5jbHVk ZSA8bGludXgvcGNpLmg+CisjaW5jbHVkZSA8bGludXgvcGNpLWVjYW0uaD4KICNpbmNsdWRlIDxs aW51eC9zcmN1Lmg+CiAjaW5jbHVkZSA8bGludXgvcmN1bGlzdC5oPgogI2luY2x1ZGUgPGxpbnV4 L3JjdXBkYXRlLmg+CkBAIC05NCw3ICs5NSw3IEBAIHN0cnVjdCB2bWRfZGV2IHsKIAlzdHJ1Y3Qg cGNpX2RldgkJKmRldjsKIAogCXNwaW5sb2NrX3QJCWNmZ19sb2NrOwotCWNoYXIgX19pb21lbQkJ KmNmZ2JhcjsKKwl2b2lkIF9faW9tZW0JCSpjZmdiYXI7CiAKIAlpbnQgbXNpeF9jb3VudDsKIAlz dHJ1Y3Qgdm1kX2lycV9saXN0CSppcnFzOwpAQCAtMzI1LDE4ICszMjYsMTYgQEAgc3RhdGljIHZv aWQgdm1kX3JlbW92ZV9pcnFfZG9tYWluKHN0cnVjdCB2bWRfZGV2ICp2bWQpCiAJfQogfQogCi1z dGF0aWMgY2hhciBfX2lvbWVtICp2bWRfY2ZnX2FkZHIoc3RydWN0IHZtZF9kZXYgKnZtZCwgc3Ry dWN0IHBjaV9idXMgKmJ1cywKK3N0YXRpYyB2b2lkIF9faW9tZW0gKnZtZF9jZmdfYWRkcihzdHJ1 Y3Qgdm1kX2RldiAqdm1kLCBzdHJ1Y3QgcGNpX2J1cyAqYnVzLAogCQkJCSAgdW5zaWduZWQgaW50 IGRldmZuLCBpbnQgcmVnLCBpbnQgbGVuKQogewotCWNoYXIgX19pb21lbSAqYWRkciA9IHZtZC0+ Y2ZnYmFyICsKLQkJCSAgICAgKChidXMtPm51bWJlciAtIHZtZC0+YnVzbl9zdGFydCkgPDwgMjAp ICsKLQkJCSAgICAgKGRldmZuIDw8IDEyKSArIHJlZzsKKwl1bnNpZ25lZCBpbnQgYnVzbnJfZWNh bSA9IGJ1cy0+bnVtYmVyIC0gdm1kLT5idXNuX3N0YXJ0OworCXUzMiBvZmZzZXQgPSBQQ0lFX0VD QU1fT0ZGU0VUKGJ1c25yX2VjYW0sIGRldmZuLCByZWcpOwogCi0JaWYgKChhZGRyIC0gdm1kLT5j ZmdiYXIpICsgbGVuID49Ci0JICAgIHJlc291cmNlX3NpemUoJnZtZC0+ZGV2LT5yZXNvdXJjZVtW TURfQ0ZHQkFSXSkpCisJaWYgKG9mZnNldCArIGxlbiA+PSByZXNvdXJjZV9zaXplKCZ2bWQtPmRl di0+cmVzb3VyY2VbVk1EX0NGR0JBUl0pKQogCQlyZXR1cm4gTlVMTDsKIAotCXJldHVybiBhZGRy OworCXJldHVybiB2bWQtPmNmZ2JhciArIG9mZnNldDsKIH0KIAogLyoKQEAgLTM0Nyw3ICszNDYs NyBAQCBzdGF0aWMgaW50IHZtZF9wY2lfcmVhZChzdHJ1Y3QgcGNpX2J1cyAqYnVzLCB1bnNpZ25l ZCBpbnQgZGV2Zm4sIGludCByZWcsCiAJCQlpbnQgbGVuLCB1MzIgKnZhbHVlKQogewogCXN0cnVj dCB2bWRfZGV2ICp2bWQgPSB2bWRfZnJvbV9idXMoYnVzKTsKLQljaGFyIF9faW9tZW0gKmFkZHIg PSB2bWRfY2ZnX2FkZHIodm1kLCBidXMsIGRldmZuLCByZWcsIGxlbik7CisJdm9pZCBfX2lvbWVt ICphZGRyID0gdm1kX2NmZ19hZGRyKHZtZCwgYnVzLCBkZXZmbiwgcmVnLCBsZW4pOwogCXVuc2ln bmVkIGxvbmcgZmxhZ3M7CiAJaW50IHJldCA9IDA7CiAKQEAgLTM4Miw3ICszODEsNyBAQCBzdGF0 aWMgaW50IHZtZF9wY2lfd3JpdGUoc3RydWN0IHBjaV9idXMgKmJ1cywgdW5zaWduZWQgaW50IGRl dmZuLCBpbnQgcmVnLAogCQkJIGludCBsZW4sIHUzMiB2YWx1ZSkKIHsKIAlzdHJ1Y3Qgdm1kX2Rl diAqdm1kID0gdm1kX2Zyb21fYnVzKGJ1cyk7Ci0JY2hhciBfX2lvbWVtICphZGRyID0gdm1kX2Nm Z19hZGRyKHZtZCwgYnVzLCBkZXZmbiwgcmVnLCBsZW4pOworCXZvaWQgX19pb21lbSAqYWRkciA9 IHZtZF9jZmdfYWRkcih2bWQsIGJ1cywgZGV2Zm4sIHJlZywgbGVuKTsKIAl1bnNpZ25lZCBsb25n IGZsYWdzOwogCWludCByZXQgPSAwOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9lY2FtLmMg Yi9kcml2ZXJzL3BjaS9lY2FtLmMKaW5kZXggYjU0ZDMyYTMxNjY5Li4xZTAyMjk3NjUzNDkgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL2VjYW0uYworKysgYi9kcml2ZXJzL3BjaS9lY2FtLmMKQEAg LTE0OSw3ICsxNDksNyBAQCBFWFBPUlRfU1lNQk9MX0dQTChwY2lfZWNhbV9tYXBfYnVzKTsKIAog LyogRUNBTSBvcHMgKi8KIGNvbnN0IHN0cnVjdCBwY2lfZWNhbV9vcHMgcGNpX2dlbmVyaWNfZWNh bV9vcHMgPSB7Ci0JLmJ1c19zaGlmdAk9IDIwLAorCS5idXNfc2hpZnQJPSBQQ0lFX0VDQU1fQlVT X1NISUZULAogCS5wY2lfb3BzCT0gewogCQkubWFwX2J1cwk9IHBjaV9lY2FtX21hcF9idXMsCiAJ CS5yZWFkCQk9IHBjaV9nZW5lcmljX2NvbmZpZ19yZWFkLApAQCAtMTYxLDcgKzE2MSw3IEBAIEVY UE9SVF9TWU1CT0xfR1BMKHBjaV9nZW5lcmljX2VjYW1fb3BzKTsKICNpZiBkZWZpbmVkKENPTkZJ R19BQ1BJKSAmJiBkZWZpbmVkKENPTkZJR19QQ0lfUVVJUktTKQogLyogRUNBTSBvcHMgZm9yIDMy LWJpdCBhY2Nlc3Mgb25seSAobm9uLWNvbXBsaWFudCkgKi8KIGNvbnN0IHN0cnVjdCBwY2lfZWNh bV9vcHMgcGNpXzMyYl9vcHMgPSB7Ci0JLmJ1c19zaGlmdAk9IDIwLAorCS5idXNfc2hpZnQJPSBQ Q0lFX0VDQU1fQlVTX1NISUZULAogCS5wY2lfb3BzCT0gewogCQkubWFwX2J1cwk9IHBjaV9lY2Ft X21hcF9idXMsCiAJCS5yZWFkCQk9IHBjaV9nZW5lcmljX2NvbmZpZ19yZWFkMzIsCmRpZmYgLS1n aXQgYS9pbmNsdWRlL2xpbnV4L3BjaS1lY2FtLmggYi9pbmNsdWRlL2xpbnV4L3BjaS1lY2FtLmgK aW5kZXggMDMzY2U3NGYwMmU4Li45NzY3OTIyNDYxY2EgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGlu dXgvcGNpLWVjYW0uaAorKysgYi9pbmNsdWRlL2xpbnV4L3BjaS1lY2FtLmgKQEAgLTksNiArOSwy OSBAQAogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3Jt X2RldmljZS5oPgogCisvKgorICogTWVtb3J5IGFkZHJlc3Mgc2hpZnQgdmFsdWVzIGZvciB0aGUg Ynl0ZS1sZXZlbCBhZGRyZXNzIHRoYXQKKyAqIGNhbiBiZSB1c2VkIHdoZW4gYWNjZXNzaW5nIHRo ZSBQQ0kgRXhwcmVzcyBDb25maWd1cmF0aW9uIFNwYWNlLgorICovCisKKy8qCisgKiBFbmhhbmNl ZCBDb25maWd1cmF0aW9uIEFjY2VzcyBNZWNoYW5pc20gKEVDQU0pCisgKgorICogU2VlIFBDSSBF eHByZXNzIEJhc2UgU3BlY2lmaWNhdGlvbiwgUmV2aXNpb24gNS4wLCBWZXJzaW9uIDEuMCwKKyAq IFNlY3Rpb24gNy4yLjIsIFRhYmxlIDctMSwgcC4gNjc3LgorICovCisjZGVmaW5lIFBDSUVfRUNB TV9CVVNfU0hJRlQJMjAgLyogQnVzIE51bWJlciAqLworI2RlZmluZSBQQ0lFX0VDQU1fREVWRk5f U0hJRlQJMTIgLyogRGV2aWNlIGFuZCBGdW5jdGlvbiBOdW1iZXIgKi8KKworI2RlZmluZSBQQ0lF X0VDQU1fQlVTKHgpCSgoKHgpICYgMHhmZikgPDwgUENJRV9FQ0FNX0JVU19TSElGVCkKKyNkZWZp bmUgUENJRV9FQ0FNX0RFVkZOKHgpCSgoKHgpICYgMHhmZikgPDwgUENJRV9FQ0FNX0RFVkZOX1NI SUZUKQorI2RlZmluZSBQQ0lFX0VDQU1fUkVHKHgpCSgoeCkgJiAweGZmZikKKworI2RlZmluZSBQ Q0lFX0VDQU1fT0ZGU0VUKGJ1cywgZGV2Zm4sIHdoZXJlKSBcCisJKFBDSUVfRUNBTV9CVVMoYnVz KSB8IFwKKwkgUENJRV9FQ0FNX0RFVkZOKGRldmZuKSB8IFwKKwkgUENJRV9FQ0FNX1JFRyh3aGVy ZSkpCisKIC8qCiAgKiBzdHJ1Y3QgdG8gaG9sZCBwY2kgb3BzIGFuZCBidXMgc2hpZnQgb2YgdGhl IGNvbmZpZyB3aW5kb3cKICAqIGZvciBhIFBDSSBjb250cm9sbGVyLgotLSAKMi4yOS4yCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtl cm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0 dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5l bAo=