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=-14.4 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 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 46E76C07E96 for ; Thu, 8 Jul 2021 14:14:52 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 0290D613C2 for ; Thu, 8 Jul 2021 14:14:51 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0290D613C2 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=konsulko.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=/18rIbyq0XTUnPOtVzZZ091fFrJYKyEWmaauSx2lpII=; b=ocJGTvK8VDNpKF DcXsbGVKnXF0fcR+Y1DDhjFLKrvLXBSDDXCy8xSVFp8vNn/zyzeF2hzsach5aGVEkkNDsDbI76a8m S4ZKlz02xRSkdv4hcmwvT0jzhVxcnSsyYKHk7oyA7+FhUBFHILB6jky8Rbeyzx3EkAaGHgVRAGZ82 0ZW82coae9EhtdvD7g/peasjH7mBkOk76mPJMqbGCsHPo2vY/ZcFICowOClmUZmAxK0RPh0myUpSx HKzKVRt9uZ+tk46dptqDokj6gzmRzLG8uEBYrijzl83Oq5mN5ZuzoTrLa24YcvGzZo1T49hLI+gXQ JpligXZavlHvQC7hCzWA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1m1UnL-00HAhE-IN; Thu, 08 Jul 2021 14:14:27 +0000 Received: from mail-yb1-xb2d.google.com ([2607:f8b0:4864:20::b2d]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1m1UnH-00HAfr-OV for linux-riscv@lists.infradead.org; Thu, 08 Jul 2021 14:14:26 +0000 Received: by mail-yb1-xb2d.google.com with SMTP id b13so9192665ybk.4 for ; Thu, 08 Jul 2021 07:14:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=konsulko.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=dpcXBje5o+IzAkJod12omjIPO6Vrqtw2W0UJN0YcO0c=; b=tQNI/XkUCMWgpn1REnUEdj6p65V1BVDeRoIFxZjcw5pTaEcgP70Zq6DObVom5V0kps u+DZPQk9lrZp+kcRgz+hFCJxXFj2f++n+eB8cwTUCbhJM2EUAxUb1bvTMXPXDrFvk3yk m/GTSzLsilEnGsATlLTdfD7y+Q1g95geDwuZk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=dpcXBje5o+IzAkJod12omjIPO6Vrqtw2W0UJN0YcO0c=; b=PPDR1DU07PZghSlvlS7Ct51mAuSSKj4I5xt9BbUx4DtwH1X8jfOKGwU9VSpKGDR25M PZer0N/Z5d7Xhtmz99DD2FGp1NtMfIqCOZnkq/kHnLSBpIXpnqFwidRpFWUH5tEOLV+E synpM91T3JIlRRWYl2WpjlPAC9YJXpmrq7GCAtTQSNHD4BL/qXr5YKD2deOihrvO5n0Z HIYcqsSEXSzuq/7MnTzJZZyKLsnvLLW8W3wx2dODMupkxGxrqRQrYtgVHILw1C4i7Y5w UULjfPrR3HeihvEeZrmzfp+Re45EowIZn9E6AwU2BLCtbhQzydenOl4W24+FLBo0MxjB Yn1A== X-Gm-Message-State: AOAM533NeLbGG/xiCeAMF0PrvnOI9Y9tvxf+e+Ohi474tr3EdDjbwlsB rCIJFSdlzKPVaydUmXVqHE3Mf2BTFJxPXF96550BFw== X-Google-Smtp-Source: ABdhPJw+8pWFY64jlwW6mxRAMiUbaMbWGnJHMPdH7rH5x6NtUNzjHwaFgUjUMWRISk0h7LlLLLBlUJBUW98wJ5JDJDE= X-Received: by 2002:a25:2e02:: with SMTP id u2mr22584439ybu.359.1625753662010; Thu, 08 Jul 2021 07:14:22 -0700 (PDT) MIME-Version: 1.0 References: <20210618142353.2114854-1-alex@ghiti.fr> <23a3fc82-ecd9-4cdf-dc91-2d0fb996260a@ghiti.fr> In-Reply-To: <23a3fc82-ecd9-4cdf-dc91-2d0fb996260a@ghiti.fr> From: Vitaly Wool Date: Thu, 8 Jul 2021 16:14:11 +0200 Message-ID: Subject: Re: [PATCH RFC] riscv: Remove all XIP fixups by initializing MMU in memory To: Alex Ghiti Cc: Paul Walmsley , Palmer Dabbelt , Albert Ou , linux-riscv , LKML X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210708_071423_864084_74FFDF32 X-CRM114-Status: GOOD ( 43.56 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org SGkgQWxleCwKCk9uIFRodSwgSnVsIDgsIDIwMjEgYXQgMTo0MyBQTSBBbGV4IEdoaXRpIDxhbGV4 QGdoaXRpLmZyPiB3cm90ZToKPgo+IExlIDE4LzA2LzIwMjEgw6AgMTY6MjMsIEFsZXhhbmRyZSBH aGl0aSBhIMOpY3JpdCA6Cj4gPiBGb3IgWElQIGtlcm5lbCwgdGhlIHZhcmlhYmxlcyB0aGF0IGFy ZSBhY2Nlc3NlZCB3aGVuIHRoZSBNTVUgaXMgb2ZmIG11c3QgYmUKPiA+IGZpeHVwIGFuZCBpdCBp cyBjdXJyZW50bHkgYWNoaWV2ZWQgYnkgYWRkaW5nIGEgcHJlcHJvY2Vzc29yIG1hY3JvIGZvciBh bGwKPiA+IHRob3NlIHZhcmlhYmxlcy4gVGhpcyBjb21lcyB3aXRoIGEgZmV3IGRyYXdiYWNrczoK PiA+Cj4gPiAtIGl0IGFkZHMgYSBsb3Qgb2YgY29kZSwgZXNwZWNpYWxseSBpbiBtbS9pbml0LmMg d2hpY2ggZ2V0cyBvdmVybG9hZGVkLAo+ID4gLSBpdCBlYXNpbHkgYnJlYWtzIFhJUCBrZXJuZWxz IGFzIGFueW9uZSBhY2Nlc3NpbmcgYSBnbG9iYWwgdmFyaWFibGUgYmVmb3JlCj4gPiAgICB0aGUg TU1VIGlzIG9uIG11c3QgZml4dXAgdGhpcyB2YXJpYWJsZSwKPiA+IC0gaXQgcHJldmVudHMgdGhl IHVzYWdlIG9mIHRob3NlIGZpeHVwIHZhcmlhYmxlcyBhbnl3aGVyZSBvdXRzaWRlCj4gPiAgICBt bS9pbml0LmM6IGtlcm5lbCBhZGRyZXNzZXMgY29udmVyc2lvbiBtYWNyb3Mgd291bGQgYmVuZWZp dCB0byBzd2l0Y2gKPiA+ICAgIHRvIGlubGluZSBmdW5jdGlvbnMuCj4gPgo+ID4gVGhpcyBwYXRj aCBtYWtlcyB0aGUgZGF0YSBmaXh1cHMgdW5uZWNlc3NhcnkgYnkgaW5pdGlhbGl6aW5nIHRoZSBN TVUgaW4gdGhlCj4gPiBtZW1vcnkgcmF0aGVyIHRoYW4gaW4gZmxhc2guIEluZGVlZCwgdmVyeSBz b29uIGluIHRoZSBib290IHByb2Nlc3MsIHRoZQo+ID4ga2VybmVsIGlzIGNvcGllZCB0byBtZW1v cnkgYW5kIHRoZSBleGVjdXRpb24gY29udGludWVzIGZyb20gdGhlcmUgdW50aWwKPiA+IHRoZSBr ZXJuZWwgbWFwcGluZyBpcyBlc3RhYmxpc2hlZCB3aGVyZSB0aGUgZXhlY3V0aW9uIGp1bXBzIGJh Y2sgaW4KPiA+IGZsYXNoLiBUaGVuIHRoZSBvZmZzZXRzIGZyb20gdGhlIFBDIGFyZSBwcmVzZXJ2 ZWQgYW5kIG5vIGZpeHVwIGlzCj4gPiBuZWNlc3NhcnkuIEFuZCB0aGUga2VybmVsIHRleHQgaW4g bWVtb3J5IGlzIG5ldmVyIHJlc2VydmVkIHNvIGl0IGlzIGZyZWUKPiA+IHRvIHVzZSBsYXRlciBv bi4KPiA+Cj4gPiBUaGlzIHNvbHV0aW9uIGhhcyB0aGUgZm9sbG93aW5nIGRyYXdiYWNrczoKPiA+ Cj4gPiAtIFhJUCBrZXJuZWwgYm9vdCBpcyBsb25nZXIgYmVjYXVzZSBvZiB0aGUgY29weSB0byBt ZW1vcnksIGJ1dCBjYW4gYmUKPiA+ICAgIGltcHJvdmVkIGJ5IGNvcHlpbmcgb25seSBuZWNlc3Nh cnkgcGFydHMsCj4gPiAtIGluIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uLCBpdCBjcmVhdGVz IGEgaG9sZSBhdCB0aGUgYmVnaW5uaW5nIG9mCj4gPiAgICB0aGUgbWVtb3J5IHdoaWNoIGNvdWxk IHByZXZlbnQgbGFyZ2UgY29udGlndW91cyBhbGxvY2F0aW9uLAo+ID4gLSBpdCBhY3R1YWxseSBq dXN0IGludmVydHMgd2hhdCBuZWVkcyB0byBiZSBmaXh1cDogbm93IHJvZGF0YSBhbmQgdGV4dAo+ ID4gICAgc3ltYm9scyBhY2Nlc3NlZCBkdXJpbmcgdGhlIGluaXRpYWxpemF0aW9uIG9mIHRoZSBN TVUgbXVzdCBiZSBmaXh1cAo+ID4gICAgd2hlcmVhcyBpdCB3YXMgZGF0YSBiZWZvcmUuIEhvd2V2 ZXIsIEkgZm91bmQgYSBzaW5nbGUgZml4dXAgdG8gYmUKPiA+ICAgIG5lY2Vzc2FyeSBhbmQgaXQg aXMgdGhlIGR0YiBwaHlzaWNhbCBhZGRyZXNzIGluIGNhc2UgQ09ORklHX0JVSUxUSU5fRFRCCj4g PiAgICBpcyBzZXQuCj4gPgo+Cj4gQFZpdGFseTsgQW55IHRob3VnaHQgYWJvdXQgdGhhdD8gQ291 bGQgeW91IHRha2Ugc29tZSB0aW1lIHRvIHJldmlldy90ZXN0Cj4gdGhpcyBhcHByb2FjaD8KCnRo YW5rcyBmb3IgdGhlIGhlYWRzLXVwLiBJbiBteSBvcGluaW9uLCB0aGlzIHRoaW5nIHdpdGggWElQ IG9uIFJJU0MtVgppcyBjdXJyZW50bHkgZ29pbmcgaW4gdGhlIGNvbXBsZXRlbHkgd3JvbmcgZGly ZWN0aW9uLiBJIHdvdWxkIGxpa2UgdG8Kc2VlIGxlc3MgZGF0YSBjb3B5aW5nIGFuZCBsZXNzIFJB TSB1c2FnZSwgbm90IG1vcmUgZGF0YSBjb3B5aW5nIGFuZAptb3JlIFJBTSB1c2FnZS4KCkkgd291 bGQgYWxzbyBsaWtlIHRvIHNlZSBrZXJuZWxfbWFwcGluZ19wYV90b192YSAvCmtlcm5lbF9tYXBw aW5nX3ZhX3RvX3BhIHNpbXBsaWZpZWQgYnV0IHRoYXQgaXMgYSBkaWZmZXJlbnQgc3RvcnkuIEkK bWlnaHQgY29tZSB1cCB3aXRoIHNvbWV0aGluZyBzb29uIHRob3VnaC4KCkJlc3QgcmVnYXJkcywK ICAgVml0YWx5Cgo+IFRoYW5rcyEKPgo+IEFsZXgKPgo+ID4gU2lnbmVkLW9mZi1ieTogQWxleGFu ZHJlIEdoaXRpIDxhbGV4QGdoaXRpLmZyPgo+ID4gLS0tCj4gPiAgIGFyY2gvcmlzY3YvaW5jbHVk ZS9hc20vcGFnZS5oICAgIHwgMTIgKystLS0KPiA+ICAgYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9w Z3RhYmxlLmggfCAyMiArLS0tLS0tLQo+ID4gICBhcmNoL3Jpc2N2L2tlcm5lbC9oZWFkLlMgICAg ICAgICB8IDg3ICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCj4gPiAgIGFyY2gvcmlz Y3Yva2VybmVsL3NldHVwLmMgICAgICAgIHwgIDIgKy0KPiA+ICAgYXJjaC9yaXNjdi9tbS9pbml0 LmMgICAgICAgICAgICAgfCA1OSArKystLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiAgIDUgZmlsZXMg Y2hhbmdlZCwgNzggaW5zZXJ0aW9ucygrKSwgMTA0IGRlbGV0aW9ucygtKQo+ID4KPiA+IGRpZmYg LS1naXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3BhZ2UuaCBiL2FyY2gvcmlzY3YvaW5jbHVk ZS9hc20vcGFnZS5oCj4gPiBpbmRleCA1ZDQ2MjJhNDRiMDkuLjk3YTk1MGJiZDNiZiAxMDA2NDQK PiA+IC0tLSBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vcGFnZS5oCj4gPiArKysgYi9hcmNoL3Jp c2N2L2luY2x1ZGUvYXNtL3BhZ2UuaAo+ID4gQEAgLTEwNSwxMSArMTA1LDExIEBAIGV4dGVybiB1 bnNpZ25lZCBsb25nIGtlcm5lbF92aXJ0X2FkZHI7Cj4gPiAgICAgICAoKHgpID49IFBBR0VfT0ZG U0VUICYmICh4KSA8IGtlcm5lbF92aXJ0X2FkZHIpCj4gPgo+ID4gICAjZGVmaW5lIGxpbmVhcl9t YXBwaW5nX3BhX3RvX3ZhKHgpICAoKHZvaWQgKikoKHVuc2lnbmVkIGxvbmcpKHgpICsgdmFfcGFf b2Zmc2V0KSkKPiA+IC0jZGVmaW5lIGtlcm5lbF9tYXBwaW5nX3BhX3RvX3ZhKHkpICAgKHsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gLSAgICAgdW5z aWduZWQgbG9uZyBfeSA9IHk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCj4gPiAtICAgICAoX3kgPj0gQ09ORklHX1BIWVNfUkFNX0JB U0UpID8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK PiA+IC0gICAgICAgICAgICAgKHZvaWQgKikoKHVuc2lnbmVkIGxvbmcpKF95KSArIHZhX2tlcm5l bF9wYV9vZmZzZXQgKyBYSVBfT0ZGU0VUKSA6ICAgICAgXAo+ID4gLSAgICAgICAgICAgICAodm9p ZCAqKSgodW5zaWduZWQgbG9uZykoX3kpICsgdmFfa2VybmVsX3hpcF9wYV9vZmZzZXQpOyAgICAg ICAgICAgICAgICBcCj4gPiArI2RlZmluZSBrZXJuZWxfbWFwcGluZ19wYV90b192YSh5KSAgICh7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiArICAgICB1bnNpZ25l ZCBsb25nIF95ID0geTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCj4gPiArICAgICAoX3kgPj0gQ09ORklHX1BIWVNfUkFNX0JBU0UpID8gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiArICAgICAgICAgICAgICh2 b2lkICopKCh1bnNpZ25lZCBsb25nKShfeSkgKyB2YV9rZXJuZWxfcGFfb2Zmc2V0KSA6ICAgICAg ICAgICBcCj4gPiArICAgICAgICAgICAgICh2b2lkICopKCh1bnNpZ25lZCBsb25nKShfeSkgKyB2 YV9rZXJuZWxfeGlwX3BhX29mZnNldCk7ICAgICAgICBcCj4gPiAgICAgICB9KQo+ID4gICAjZGVm aW5lIF9fcGFfdG9fdmFfbm9kZWJ1Zyh4KSAgICAgICAgICAgICAgIGxpbmVhcl9tYXBwaW5nX3Bh X3RvX3ZhKHgpCj4gPgo+ID4gQEAgLTExOCw3ICsxMTgsNyBAQCBleHRlcm4gdW5zaWduZWQgbG9u ZyBrZXJuZWxfdmlydF9hZGRyOwo+ID4gICAgICAgdW5zaWduZWQgbG9uZyBfeSA9IHk7ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gICAgICAg KF95IDwga2VybmVsX3ZpcnRfYWRkciArIFhJUF9PRkZTRVQpID8gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAo+ID4gICAgICAgICAgICAgICAoKHVuc2lnbmVkIGxvbmcpKF95KSAt IHZhX2tlcm5lbF94aXBfcGFfb2Zmc2V0KSA6ICAgICAgICAgICAgICAgXAo+ID4gLSAgICAgICAg ICAgICAoKHVuc2lnbmVkIGxvbmcpKF95KSAtIHZhX2tlcm5lbF9wYV9vZmZzZXQgLSBYSVBfT0ZG U0VUKTsgICAgICAgXAo+ID4gKyAgICAgICAgICAgICAoKHVuc2lnbmVkIGxvbmcpKF95KSAtIHZh X2tlcm5lbF9wYV9vZmZzZXQpOyAgICAgICAgICAgICAgICAgICAgXAo+ID4gICAgICAgfSkKPiA+ Cj4gPiAgICNkZWZpbmUgX192YV90b19wYV9ub2RlYnVnKHgpICAgICAgICh7ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiA+IGRpZmYgLS1naXQgYS9hcmNo L3Jpc2N2L2luY2x1ZGUvYXNtL3BndGFibGUuaCBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vcGd0 YWJsZS5oCj4gPiBpbmRleCAzY2NkMmRjNTJlODUuLjk5ZWM5OTM4NGJmMCAxMDA2NDQKPiA+IC0t LSBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vcGd0YWJsZS5oCj4gPiArKysgYi9hcmNoL3Jpc2N2 L2luY2x1ZGUvYXNtL3BndGFibGUuaAo+ID4gQEAgLTk1LDE3ICs5NSw2IEBACj4gPiAgICNpbmNs dWRlIDxhc20vcGd0YWJsZS0zMi5oPgo+ID4gICAjZW5kaWYgLyogQ09ORklHXzY0QklUICovCj4g Pgo+ID4gLSNpZmRlZiBDT05GSUdfWElQX0tFUk5FTAo+ID4gLSNkZWZpbmUgWElQX0ZJWFVQKGFk ZHIpICh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAo+ID4gLSAgICAgdWludHB0cl90IF9fYSA9ICh1aW50cHRyX3QpKGFkZHIpOyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gLSAgICAgKF9fYSA+PSBDT05GSUdfWElQ X1BIWVNfQUREUiAmJiBfX2EgPCBDT05GSUdfWElQX1BIWVNfQUREUiArIFNaXzE2TSkgPyAgXAo+ ID4gLSAgICAgICAgICAgICBfX2EgLSBDT05GSUdfWElQX1BIWVNfQUREUiArIENPTkZJR19QSFlT X1JBTV9CQVNFIC0gWElQX09GRlNFVCA6XAo+ID4gLSAgICAgICAgICAgICBfX2E7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4g LSAgICAgfSkKPiA+IC0jZWxzZQo+ID4gLSNkZWZpbmUgWElQX0ZJWFVQKGFkZHIpICAgICAgICAg ICAgICAoYWRkcikKPiA+IC0jZW5kaWYgLyogQ09ORklHX1hJUF9LRVJORUwgKi8KPiA+IC0KPiA+ ICAgI2lmZGVmIENPTkZJR19NTVUKPiA+ICAgLyogTnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIHBh Z2UgZ2xvYmFsIGRpcmVjdG9yeSAqLwo+ID4gICAjZGVmaW5lIFBUUlNfUEVSX1BHRCAgICAoUEFH RV9TSVpFIC8gc2l6ZW9mKHBnZF90KSkKPiA+IEBAIC02ODMsMTUgKzY3Miw4IEBAIHN0YXRpYyBp bmxpbmUgcG1kX3QgcG1kcF9lc3RhYmxpc2goc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCj4g PiAgICNkZWZpbmUga2Vybl9hZGRyX3ZhbGlkKGFkZHIpICAgKDEpIC8qIEZJWE1FICovCj4gPgo+ ID4gICBleHRlcm4gY2hhciBfc3RhcnRbXTsKPiA+IC1leHRlcm4gdm9pZCAqX2R0Yl9lYXJseV92 YTsKPiA+IC1leHRlcm4gdWludHB0cl90IF9kdGJfZWFybHlfcGE7Cj4gPiAtI2lmIGRlZmluZWQo Q09ORklHX1hJUF9LRVJORUwpICYmIGRlZmluZWQoQ09ORklHX01NVSkKPiA+IC0jZGVmaW5lIGR0 Yl9lYXJseV92YSAoKih2b2lkICoqKVhJUF9GSVhVUCgmX2R0Yl9lYXJseV92YSkpCj4gPiAtI2Rl ZmluZSBkdGJfZWFybHlfcGEgKCoodWludHB0cl90ICopWElQX0ZJWFVQKCZfZHRiX2Vhcmx5X3Bh KSkKPiA+IC0jZWxzZQo+ID4gLSNkZWZpbmUgZHRiX2Vhcmx5X3ZhIF9kdGJfZWFybHlfdmEKPiA+ IC0jZGVmaW5lIGR0Yl9lYXJseV9wYSBfZHRiX2Vhcmx5X3BhCj4gPiAtI2VuZGlmIC8qIENPTkZJ R19YSVBfS0VSTkVMICovCj4gPiArZXh0ZXJuIHZvaWQgKmR0Yl9lYXJseV92YTsKPiA+ICtleHRl cm4gdWludHB0cl90IGR0Yl9lYXJseV9wYTsKPiA+Cj4gPiAgIHZvaWQgcGFnaW5nX2luaXQodm9p ZCk7Cj4gPiAgIHZvaWQgbWlzY19tZW1faW5pdCh2b2lkKTsKPiA+IGRpZmYgLS1naXQgYS9hcmNo L3Jpc2N2L2tlcm5lbC9oZWFkLlMgYi9hcmNoL3Jpc2N2L2tlcm5lbC9oZWFkLlMKPiA+IGluZGV4 IDg5Y2M1OGFiNTJiNC4uN2FjN2QyYmQxYTUzIDEwMDY0NAo+ID4gLS0tIGEvYXJjaC9yaXNjdi9r ZXJuZWwvaGVhZC5TCj4gPiArKysgYi9hcmNoL3Jpc2N2L2tlcm5lbC9oZWFkLlMKPiA+IEBAIC0x NywxNCArMTcsMzMgQEAKPiA+Cj4gPiAgICNpZmRlZiBDT05GSUdfWElQX0tFUk5FTAo+ID4gICAu bWFjcm8gWElQX0ZJWFVQX09GRlNFVCByZWcKPiA+IC0gICAgIFJFR19MIHQwLCBfeGlwX2ZpeHVw Cj4gPiArICAgICBsaSB0MCwgQ09ORklHX1BIWVNfUkFNX0JBU0UgLSBDT05GSUdfWElQX1BIWVNf QUREUgo+ID4gICAgICAgYWRkIFxyZWcsIFxyZWcsIHQwCj4gPiAgIC5lbmRtCj4gPiAtX3hpcF9m aXh1cDogLmR3b3JkIENPTkZJR19QSFlTX1JBTV9CQVNFIC0gQ09ORklHX1hJUF9QSFlTX0FERFIg LSBYSVBfT0ZGU0VUCj4gPiArCj4gPiArLm1hY3JvIE1FTV9GSVhVUF9PRkZTRVQgcmVnCj4gPiAr ICAgICBsaSB0MCwgQ09ORklHX1hJUF9QSFlTX0FERFIgLSBDT05GSUdfUEhZU19SQU1fQkFTRQo+ ID4gKyAgICAgYWRkIFxyZWcsIFxyZWcsIHQwCj4gPiArLmVuZG0KPiA+ICsKPiA+ICsubWFjcm8g WElQX0pVTVBfVE9fTUVNCj4gPiArICAgICBsYSB0MSwgMGYKPiA+ICsgICAgIFhJUF9GSVhVUF9P RkZTRVQgdDEKPiA+ICsgICAgIGphbHIgcmEsIHQxLCAwCj4gPiArMDoKPiA+ICsgICAgIC8qIFJl bG9hZCB0aGUgZ2xvYmFsIHBvaW50ZXI6IHdlIGFyZSBub3cgaW4gbWVtb3J5ISAqLwo+ID4gKy5v cHRpb24gcHVzaAo+ID4gKy5vcHRpb24gbm9yZWxheAo+ID4gKyAgICAgbGEgZ3AsIF9fZ2xvYmFs X3BvaW50ZXIkCj4gPiArLm9wdGlvbiBwb3AKPiA+ICsuZW5kbQo+ID4gICAjZWxzZQo+ID4gLS5t YWNybyBYSVBfRklYVVBfT0ZGU0VUIHJlZwo+ID4gKy5tYWNybyBNRU1fRklYVVBfT0ZGU0VUIHJl Zwo+ID4gKy5lbmRtCj4gPiArCj4gPiArLm1hY3JvIFhJUF9KVU1QX1RPX01FTQo+ID4gICAuZW5k bQo+ID4gLSNlbmRpZiAvKiBDT05GSUdfWElQX0tFUk5FTCAqLwo+ID4gKyNlbmRpZgo+ID4KPiA+ ICAgX19IRUFECj4gPiAgIEVOVFJZKF9zdGFydCkKPiA+IEBAIC04Miw3ICsxMDEsNiBAQCBwZV9o ZWFkX3N0YXJ0Ogo+ID4gICByZWxvY2F0ZToKPiA+ICAgICAgIC8qIFJlbG9jYXRlIHJldHVybiBh ZGRyZXNzICovCj4gPiAgICAgICBsYSBhMSwga2VybmVsX3ZpcnRfYWRkcgo+ID4gLSAgICAgWElQ X0ZJWFVQX09GRlNFVCBhMQo+ID4gICAgICAgUkVHX0wgYTEsIDAoYTEpCj4gPiAgICAgICBsYSBh MiwgX3N0YXJ0Cj4gPiAgICAgICBzdWIgYTEsIGExLCBhMgo+ID4gQEAgLTEwNSw3ICsxMjMsNiBA QCByZWxvY2F0ZToKPiA+ICAgICAgICAqIHRvIGVuc3VyZSB0aGUgbmV3IHRyYW5zbGF0aW9ucyBh cmUgaW4gdXNlLgo+ID4gICAgICAgICovCj4gPiAgICAgICBsYSBhMCwgdHJhbXBvbGluZV9wZ19k aXIKPiA+IC0gICAgIFhJUF9GSVhVUF9PRkZTRVQgYTAKPiA+ICAgICAgIHNybCBhMCwgYTAsIFBB R0VfU0hJRlQKPiA+ICAgICAgIG9yIGEwLCBhMCwgYTEKPiA+ICAgICAgIHNmZW5jZS52bWEKPiA+ IEBAIC0xNTksOSArMTc2LDcgQEAgc2Vjb25kYXJ5X3N0YXJ0X3NiaToKPiA+Cj4gPiAgICAgICBz bGxpIGEzLCBhMCwgTEdSRUcKPiA+ICAgICAgIGxhIGE0LCBfX2NwdV91cF9zdGFja19wb2ludGVy Cj4gPiAtICAgICBYSVBfRklYVVBfT0ZGU0VUIGE0Cj4gPiAgICAgICBsYSBhNSwgX19jcHVfdXBf dGFza19wb2ludGVyCj4gPiAtICAgICBYSVBfRklYVVBfT0ZGU0VUIGE1Cj4gPiAgICAgICBhZGQg YTQsIGEzLCBhNAo+ID4gICAgICAgYWRkIGE1LCBhMywgYTUKPiA+ICAgICAgIFJFR19MIHNwLCAo YTQpCj4gPiBAQCAtMTczLDcgKzE4OCw2IEBAIHNlY29uZGFyeV9zdGFydF9jb21tb246Cj4gPiAg ICNpZmRlZiBDT05GSUdfTU1VCj4gPiAgICAgICAvKiBFbmFibGUgdmlydHVhbCBtZW1vcnkgYW5k IHJlbG9jYXRlIHRvIHZpcnR1YWwgYWRkcmVzcyAqLwo+ID4gICAgICAgbGEgYTAsIHN3YXBwZXJf cGdfZGlyCj4gPiAtICAgICBYSVBfRklYVVBfT0ZGU0VUIGEwCj4gPiAgICAgICBjYWxsIHJlbG9j YXRlCj4gPiAgICNlbmRpZgo+ID4gICAgICAgY2FsbCBzZXR1cF90cmFwX3ZlY3Rvcgo+ID4gQEAg LTI1MywxNCArMjY3LDEyIEBAIHBtcF9kb25lOgo+ID4gICAgICAgdGFpbCAuTHNlY29uZGFyeV9w YXJrCj4gPiAgIC5MZ29vZF9jb3JlczoKPiA+ICAgI2VuZGlmCj4gPiAtCj4gPiAgICNpZm5kZWYg Q09ORklHX1hJUF9LRVJORUwKPiA+ICAgICAgIC8qIFBpY2sgb25lIGhhcnQgdG8gcnVuIHRoZSBt YWluIGJvb3Qgc2VxdWVuY2UgKi8KPiA+ICAgICAgIGxhIGEzLCBoYXJ0X2xvdHRlcnkKPiA+ICAg ICAgIGxpIGEyLCAxCj4gPiAgICAgICBhbW9hZGQudyBhMywgYTIsIChhMykKPiA+ICAgICAgIGJu ZXogYTMsIC5Mc2Vjb25kYXJ5X3N0YXJ0Cj4gPiAtCj4gPiAgICNlbHNlCj4gPiAgICAgICAvKiBo YXJ0X2xvdHRlcnkgaW4gZmxhc2ggY29udGFpbnMgYSBtYWdpYyBudW1iZXIgKi8KPiA+ICAgICAg IGxhIGEzLCBoYXJ0X2xvdHRlcnkKPiA+IEBAIC0yNzAsMTcgKzI4Miw0MyBAQCBwbXBfZG9uZToK PiA+ICAgICAgIGFtb3N3YXAudyB0MCwgdDEsIChhMikKPiA+ICAgICAgIC8qIGZpcnN0IHRpbWUg aGVyZSBpZiBoYXJ0X2xvdHRlcnkgaW4gUkFNIGlzIG5vdCBzZXQgKi8KPiA+ICAgICAgIGJlcSB0 MCwgdDEsIC5Mc2Vjb25kYXJ5X3N0YXJ0Cj4gPiAtCj4gPiAtICAgICBsYSBzcCwgX2VuZCArIFRI UkVBRF9TSVpFCj4gPiAtICAgICBYSVBfRklYVVBfT0ZGU0VUIHNwCj4gPiArICAgICAvKgo+ID4g KyAgICAgICogQ29weSB0aGUga2VybmVsIHRleHQgYW5kIGRhdGEgdG8gbWVtb3J5OiB0aGUgdmly dHVhbCBtYXBwaW5nIHdpbGwgYmUKPiA+ICsgICAgICAqIGVzdGFibGlzaGVkIGZyb20gdGhlcmUs IGFuZCB0aGVuIHdlIHdpbGwganVtcCBiYWNrIHRvIHVzaW5nIGZsYXNoCj4gPiArICAgICAgKiBy ZXNpZGVudCB0ZXh0LiBUaGlzIGF2b2lkcyB0byBmaXh1cCBnbG9iYWwgc3ltYm9scyB3aGVuIHRo ZSBjb2RlCj4gPiArICAgICAgKiBpcyBleGVjdXRlZCBmcm9tIGZsYXNoIGFuZCB0YXJnZXRzIGRh dGEgaW4gbWVtb3J5IGJlZm9yZSB0aGUgTU1VIGlzCj4gPiArICAgICAgKiBlbmFibGVkLgo+ID4g KyAgICAgICogV2UgbXVzdCBwcmVzZXJ2ZSBhMCwgYTEgYW5kIHdlIGhhdmUgbm8gc3RhY2sgeWV0 IChfX21lbWNweSBkb2VzIG5vdAo+ID4gKyAgICAgICogc3BpbGwgYW55dGhpbmcpLgo+ID4gKyAg ICAgICovCj4gPiAgICAgICBtdiBzMCwgYTAKPiA+IC0gICAgIGNhbGwgX19jb3B5X2RhdGEKPiA+ ICsgICAgIG12IHMxLCBhMQo+ID4gKwo+ID4gKyAgICAgbGkgYTAsIENPTkZJR19QSFlTX1JBTV9C QVNFCj4gPiArICAgICBsYSBhMSwgX3hpcHJvbQo+ID4gKyAgICAgbGEgYTIsIF9leGlwcm9tCj4g PiArICAgICBzdWIgYTIsIGEyLCBhMQo+ID4gKyAgICAgYWRkIGEyLCBhMiwgMQo+ID4gKyAgICAg Y2FsbCBfX21lbWNweQo+ID4gKwo+ID4gKyAgICAgbGkgYTAsIENPTkZJR19QSFlTX1JBTV9CQVNF ICsgWElQX09GRlNFVAo+ID4gKyAgICAgbGEgYTEsIF9zZGF0YQo+ID4gKyAgICAgbGEgYTIsIF9l bmQKPiA+ICsgICAgIHN1YiBhMiwgYTIsIGExCj4gPiArICAgICBhZGQgYTIsIGEyLCAxCj4gPiAr ICAgICBjYWxsIF9fbWVtY3B5Cj4gPiArCj4gPiArICAgICBmZW5jZS5pCj4gPgo+ID4gLSAgICAg LyogUmVzdG9yZSBhMCBjb3B5ICovCj4gPiAgICAgICBtdiBhMCwgczAKPiA+IC0jZW5kaWYKPiA+ ICsgICAgIG12IGExLCBzMQo+ID4KPiA+IC0jaWZuZGVmIENPTkZJR19YSVBfS0VSTkVMCj4gPiAr ICAgICAvKgo+ID4gKyAgICAgICogRnJvbSBoZXJlLCB0aGUgY29kZSB3aWxsIGJlIGV4ZWN1dGVk IGZyb20gbWVtb3J5IGFuZCB3ZSdsbCBqdW1wIGJhY2sKPiA+ICsgICAgICAqIHRvIGZsYXNoIG9u Y2UgdGhlIE1NVSBpcyBlbmFibGVkLgo+ID4gKyAgICAgICovCj4gPiArICAgICBYSVBfSlVNUF9U T19NRU0KPiA+ICsjZW5kaWYKPiA+ICAgICAgIC8qIENsZWFyIEJTUyBmb3IgZmxhdCBub24tRUxG IGltYWdlcyAqLwo+ID4gICAgICAgbGEgYTMsIF9fYnNzX3N0YXJ0Cj4gPiAgICAgICBsYSBhNCwg X19ic3Nfc3RvcAo+ID4gQEAgLTI5MCwyNyArMzI4LDI0IEBAIGNsZWFyX2JzczoKPiA+ICAgICAg IGFkZCBhMywgYTMsIFJJU0NWX1NaUFRSCj4gPiAgICAgICBibHQgYTMsIGE0LCBjbGVhcl9ic3MK PiA+ICAgY2xlYXJfYnNzX2RvbmU6Cj4gPiAtI2VuZGlmCj4gPiAgICAgICAvKiBTYXZlIGhhcnQg SUQgYW5kIERUQiBwaHlzaWNhbCBhZGRyZXNzICovCj4gPiAgICAgICBtdiBzMCwgYTAKPiA+ICAg ICAgIG12IHMxLCBhMQo+ID4KPiA+ICAgICAgIGxhIGEyLCBib290X2NwdV9oYXJ0aWQKPiA+IC0g ICAgIFhJUF9GSVhVUF9PRkZTRVQgYTIKPiA+ICAgICAgIFJFR19TIGEwLCAoYTIpCj4gPgo+ID4g ICAgICAgLyogSW5pdGlhbGl6ZSBwYWdlIHRhYmxlcyBhbmQgcmVsb2NhdGUgdG8gdmlydHVhbCBh ZGRyZXNzZXMgKi8KPiA+ICAgICAgIGxhIHNwLCBpbml0X3RocmVhZF91bmlvbiArIFRIUkVBRF9T SVpFCj4gPiAtICAgICBYSVBfRklYVVBfT0ZGU0VUIHNwCj4gPiAgICNpZmRlZiBDT05GSUdfQlVJ TFRJTl9EVEIKPiA+ICAgICAgIGxhIGEwLCBfX2R0Yl9zdGFydAo+ID4gKyAgICAgTUVNX0ZJWFVQ X09GRlNFVCBhMAo+ID4gICAjZWxzZQo+ID4gICAgICAgbXYgYTAsIHMxCj4gPiAgICNlbmRpZiAv KiBDT05GSUdfQlVJTFRJTl9EVEIgKi8KPiA+ICAgICAgIGNhbGwgc2V0dXBfdm0KPiA+ICAgI2lm ZGVmIENPTkZJR19NTVUKPiA+ICAgICAgIGxhIGEwLCBlYXJseV9wZ19kaXIKPiA+IC0gICAgIFhJ UF9GSVhVUF9PRkZTRVQgYTAKPiA+ICAgICAgIGNhbGwgcmVsb2NhdGUKPiA+ICAgI2VuZGlmIC8q IENPTkZJR19NTVUgKi8KPiA+Cj4gPiBAQCAtMzI5LDE1ICszNjQsMTkgQEAgY2xlYXJfYnNzX2Rv bmU6Cj4gPgo+ID4gICAuTHNlY29uZGFyeV9zdGFydDoKPiA+ICAgI2lmZGVmIENPTkZJR19TTVAK PiA+ICsgICAgIC8qCj4gPiArICAgICAgKiBGcm9tIGhlcmUsIFhJUCBrZXJuZWwgd2lsbCBiZSBl eGVjdXRlZCBmcm9tIG1lbW9yeSBhbmQgd2UnbGwganVtcCBiYWNrCj4gPiArICAgICAgKiB0byBm bGFzaCBvbmNlIHRoZSBNTVUgaXMgZW5hYmxlZC4KPiA+ICsgICAgICAqLwo+ID4gKyAgICAgWElQ X0pVTVBfVE9fTUVNCj4gPiArCj4gPiAgICAgICAvKiBTZXQgdHJhcCB2ZWN0b3IgdG8gc3BpbiBm b3JldmVyIHRvIGhlbHAgZGVidWcgKi8KPiA+ICAgICAgIGxhIGEzLCAuTHNlY29uZGFyeV9wYXJr Cj4gPiAgICAgICBjc3J3IENTUl9UVkVDLCBhMwo+ID4KPiA+ICAgICAgIHNsbGkgYTMsIGEwLCBM R1JFRwo+ID4gICAgICAgbGEgYTEsIF9fY3B1X3VwX3N0YWNrX3BvaW50ZXIKPiA+IC0gICAgIFhJ UF9GSVhVUF9PRkZTRVQgYTEKPiA+ICAgICAgIGxhIGEyLCBfX2NwdV91cF90YXNrX3BvaW50ZXIK PiA+IC0gICAgIFhJUF9GSVhVUF9PRkZTRVQgYTIKPiA+ICAgICAgIGFkZCBhMSwgYTMsIGExCj4g PiAgICAgICBhZGQgYTIsIGEzLCBhMgo+ID4KPiA+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2tl cm5lbC9zZXR1cC5jIGIvYXJjaC9yaXNjdi9rZXJuZWwvc2V0dXAuYwo+ID4gaW5kZXggOGI3ZjFj NzkxODIxLi44Yjc5NThiMzBhMDUgMTAwNjQ0Cj4gPiAtLS0gYS9hcmNoL3Jpc2N2L2tlcm5lbC9z ZXR1cC5jCj4gPiArKysgYi9hcmNoL3Jpc2N2L2tlcm5lbC9zZXR1cC5jCj4gPiBAQCAtMjc5LDcg KzI3OSw3IEBAIHZvaWQgX19pbml0IHNldHVwX2FyY2goY2hhciAqKmNtZGxpbmVfcCkKPiA+ICAg I2lmIElTX0VOQUJMRUQoQ09ORklHX0JVSUxUSU5fRFRCKQo+ID4gICAgICAgdW5mbGF0dGVuX2Fu ZF9jb3B5X2RldmljZV90cmVlKCk7Cj4gPiAgICNlbHNlCj4gPiAtICAgICBpZiAoZWFybHlfaW5p dF9kdF92ZXJpZnkoX192YShYSVBfRklYVVAoZHRiX2Vhcmx5X3BhKSkpKQo+ID4gKyAgICAgaWYg KGVhcmx5X2luaXRfZHRfdmVyaWZ5KF9fdmEoZHRiX2Vhcmx5X3BhKSkpCj4gPiAgICAgICAgICAg ICAgIHVuZmxhdHRlbl9kZXZpY2VfdHJlZSgpOwo+ID4gICAgICAgZWxzZQo+ID4gICAgICAgICAg ICAgICBwcl9lcnIoIk5vIERUQiBmb3VuZCBpbiBrZXJuZWwgbWFwcGluZ3NcbiIpOwo+ID4gZGlm ZiAtLWdpdCBhL2FyY2gvcmlzY3YvbW0vaW5pdC5jIGIvYXJjaC9yaXNjdi9tbS9pbml0LmMKPiA+ IGluZGV4IDNkNzdiMDRiZWM1NC4uYTcwY2RkNzdiMmJlIDEwMDY0NAo+ID4gLS0tIGEvYXJjaC9y aXNjdi9tbS9pbml0LmMKPiA+ICsrKyBiL2FyY2gvcmlzY3YvbW0vaW5pdC5jCj4gPiBAQCAtMzMs NyArMzMsNiBAQAo+ID4gICB1bnNpZ25lZCBsb25nIGtlcm5lbF92aXJ0X2FkZHIgPSBLRVJORUxf TElOS19BRERSOwo+ID4gICBFWFBPUlRfU1lNQk9MKGtlcm5lbF92aXJ0X2FkZHIpOwo+ID4gICAj aWZkZWYgQ09ORklHX1hJUF9LRVJORUwKPiA+IC0jZGVmaW5lIGtlcm5lbF92aXJ0X2FkZHIgICAg ICAgKCooKHVuc2lnbmVkIGxvbmcgKilYSVBfRklYVVAoJmtlcm5lbF92aXJ0X2FkZHIpKSkKPiA+ ICAgZXh0ZXJuIGNoYXIgX3hpcHJvbVtdLCBfZXhpcHJvbVtdOwo+ID4gICAjZW5kaWYKPiA+Cj4g PiBAQCAtNDMsOCArNDIsOCBAQCBFWFBPUlRfU1lNQk9MKGVtcHR5X3plcm9fcGFnZSk7Cj4gPgo+ ID4gICBleHRlcm4gY2hhciBfc3RhcnRbXTsKPiA+ICAgI2RlZmluZSBEVEJfRUFSTFlfQkFTRV9W QSAgICAgIFBHRElSX1NJWkUKPiA+IC12b2lkICpfZHRiX2Vhcmx5X3ZhIF9faW5pdGRhdGE7Cj4g PiAtdWludHB0cl90IF9kdGJfZWFybHlfcGEgX19pbml0ZGF0YTsKPiA+ICt2b2lkICpkdGJfZWFy bHlfdmEgX19pbml0ZGF0YTsKPiA+ICt1aW50cHRyX3QgZHRiX2Vhcmx5X3BhIF9faW5pdGRhdGE7 Cj4gPgo+ID4gICBzdHJ1Y3QgcHRfYWxsb2Nfb3BzIHsKPiA+ICAgICAgIHB0ZV90ICooKmdldF9w dGVfdmlydCkocGh5c19hZGRyX3QgcGEpOwo+ID4gQEAgLTIwMywzMyArMjAyLDE4IEBAIHN0YXRp YyB2b2lkIF9faW5pdCBzZXR1cF9ib290bWVtKHZvaWQpCj4gPiAgIH0KPiA+Cj4gPiAgICNpZmRl ZiBDT05GSUdfTU1VCj4gPiAtc3RhdGljIHN0cnVjdCBwdF9hbGxvY19vcHMgX3B0X29wcyBfX2lu aXRkYXRhOwo+ID4gLQo+ID4gLSNpZmRlZiBDT05GSUdfWElQX0tFUk5FTAo+ID4gLSNkZWZpbmUg cHRfb3BzICgqKHN0cnVjdCBwdF9hbGxvY19vcHMgKilYSVBfRklYVVAoJl9wdF9vcHMpKQo+ID4g LSNlbHNlCj4gPiAtI2RlZmluZSBwdF9vcHMgX3B0X29wcwo+ID4gLSNlbmRpZgo+ID4gK3N0YXRp YyBzdHJ1Y3QgcHRfYWxsb2Nfb3BzIHB0X29wcyBfX2luaXRkYXRhOwo+ID4KPiA+ICAgLyogT2Zm c2V0IGJldHdlZW4gbGluZWFyIG1hcHBpbmcgdmlydHVhbCBhZGRyZXNzIGFuZCBrZXJuZWwgbG9h ZCBhZGRyZXNzICovCj4gPiAgIHVuc2lnbmVkIGxvbmcgdmFfcGFfb2Zmc2V0IF9fcm9fYWZ0ZXJf aW5pdDsKPiA+ICAgRVhQT1JUX1NZTUJPTCh2YV9wYV9vZmZzZXQpOwo+ID4gLSNpZmRlZiBDT05G SUdfWElQX0tFUk5FTAo+ID4gLSNkZWZpbmUgdmFfcGFfb2Zmc2V0ICAgKCooKHVuc2lnbmVkIGxv bmcgKilYSVBfRklYVVAoJnZhX3BhX29mZnNldCkpKQo+ID4gLSNlbmRpZgo+ID4gICAvKiBPZmZz ZXQgYmV0d2VlbiBrZXJuZWwgbWFwcGluZyB2aXJ0dWFsIGFkZHJlc3MgYW5kIGtlcm5lbCBsb2Fk IGFkZHJlc3MgKi8KPiA+ICAgI2lmZGVmIENPTkZJR182NEJJVAo+ID4gICB1bnNpZ25lZCBsb25n IHZhX2tlcm5lbF9wYV9vZmZzZXQgX19yb19hZnRlcl9pbml0Owo+ID4gICBFWFBPUlRfU1lNQk9M KHZhX2tlcm5lbF9wYV9vZmZzZXQpOwo+ID4gICAjZW5kaWYKPiA+IC0jaWZkZWYgQ09ORklHX1hJ UF9LRVJORUwKPiA+IC0jZGVmaW5lIHZhX2tlcm5lbF9wYV9vZmZzZXQgICAgKCooKHVuc2lnbmVk IGxvbmcgKilYSVBfRklYVVAoJnZhX2tlcm5lbF9wYV9vZmZzZXQpKSkKPiA+IC0jZW5kaWYKPiA+ ICAgdW5zaWduZWQgbG9uZyB2YV9rZXJuZWxfeGlwX3BhX29mZnNldCBfX3JvX2FmdGVyX2luaXQ7 Cj4gPiAgIEVYUE9SVF9TWU1CT0wodmFfa2VybmVsX3hpcF9wYV9vZmZzZXQpOwo+ID4gLSNpZmRl ZiBDT05GSUdfWElQX0tFUk5FTAo+ID4gLSNkZWZpbmUgdmFfa2VybmVsX3hpcF9wYV9vZmZzZXQg ICAgICAgICgqKCh1bnNpZ25lZCBsb25nICopWElQX0ZJWFVQKCZ2YV9rZXJuZWxfeGlwX3BhX29m ZnNldCkpKQo+ID4gLSNlbmRpZgo+ID4gICB1bnNpZ25lZCBsb25nIHBmbl9iYXNlIF9fcm9fYWZ0 ZXJfaW5pdDsKPiA+ICAgRVhQT1JUX1NZTUJPTChwZm5fYmFzZSk7Cj4gPgo+ID4gQEAgLTIzOSwx MiArMjIzLDYgQEAgc3RhdGljIHB0ZV90IGZpeG1hcF9wdGVbUFRSU19QRVJfUFRFXSBfX3BhZ2Vf YWxpZ25lZF9ic3M7Cj4gPgo+ID4gICBwZ2RfdCBlYXJseV9wZ19kaXJbUFRSU19QRVJfUEdEXSBf X2luaXRkYXRhIF9fYWxpZ25lZChQQUdFX1NJWkUpOwo+ID4KPiA+IC0jaWZkZWYgQ09ORklHX1hJ UF9LRVJORUwKPiA+IC0jZGVmaW5lIHRyYW1wb2xpbmVfcGdfZGlyICAgICAgKChwZ2RfdCAqKVhJ UF9GSVhVUCh0cmFtcG9saW5lX3BnX2RpcikpCj4gPiAtI2RlZmluZSBmaXhtYXBfcHRlICAgICAg ICAgICAgICgocHRlX3QgKilYSVBfRklYVVAoZml4bWFwX3B0ZSkpCj4gPiAtI2RlZmluZSBlYXJs eV9wZ19kaXIgICAgICAgICAgICgocGdkX3QgKilYSVBfRklYVVAoZWFybHlfcGdfZGlyKSkKPiA+ IC0jZW5kaWYgLyogQ09ORklHX1hJUF9LRVJORUwgKi8KPiA+IC0KPiA+ICAgdm9pZCBfX3NldF9m aXhtYXAoZW51bSBmaXhlZF9hZGRyZXNzZXMgaWR4LCBwaHlzX2FkZHJfdCBwaHlzLCBwZ3Byb3Rf dCBwcm90KQo+ID4gICB7Cj4gPiAgICAgICB1bnNpZ25lZCBsb25nIGFkZHIgPSBfX2ZpeF90b192 aXJ0KGlkeCk7Cj4gPiBAQCAtMzIwLDEyICsyOTgsNiBAQCBzdGF0aWMgcG1kX3QgZml4bWFwX3Bt ZFtQVFJTX1BFUl9QTURdIF9fcGFnZV9hbGlnbmVkX2JzczsKPiA+ICAgc3RhdGljIHBtZF90IGVh cmx5X3BtZFtQVFJTX1BFUl9QTURdIF9faW5pdGRhdGEgX19hbGlnbmVkKFBBR0VfU0laRSk7Cj4g PiAgIHN0YXRpYyBwbWRfdCBlYXJseV9kdGJfcG1kW1BUUlNfUEVSX1BNRF0gX19pbml0ZGF0YSBf X2FsaWduZWQoUEFHRV9TSVpFKTsKPiA+Cj4gPiAtI2lmZGVmIENPTkZJR19YSVBfS0VSTkVMCj4g PiAtI2RlZmluZSB0cmFtcG9saW5lX3BtZCAoKHBtZF90ICopWElQX0ZJWFVQKHRyYW1wb2xpbmVf cG1kKSkKPiA+IC0jZGVmaW5lIGZpeG1hcF9wbWQgICAgICgocG1kX3QgKilYSVBfRklYVVAoZml4 bWFwX3BtZCkpCj4gPiAtI2RlZmluZSBlYXJseV9wbWQgICAgICAoKHBtZF90ICopWElQX0ZJWFVQ KGVhcmx5X3BtZCkpCj4gPiAtI2VuZGlmIC8qIENPTkZJR19YSVBfS0VSTkVMICovCj4gPiAtCj4g PiAgIHN0YXRpYyBwbWRfdCAqX19pbml0IGdldF9wbWRfdmlydF9lYXJseShwaHlzX2FkZHJfdCBw YSkKPiA+ICAgewo+ID4gICAgICAgLyogQmVmb3JlIE1NVSBpcyBlbmFibGVkICovCj4gPiBAQCAt NDQyLDE5ICs0MTQsNiBAQCBzdGF0aWMgdWludHB0cl90IF9faW5pdCBiZXN0X21hcF9zaXplKHBo eXNfYWRkcl90IGJhc2UsIHBoeXNfYWRkcl90IHNpemUpCj4gPiAgICAgICByZXR1cm4gUE1EX1NJ WkU7Cj4gPiAgIH0KPiA+Cj4gPiAtI2lmZGVmIENPTkZJR19YSVBfS0VSTkVMCj4gPiAtLyogY2Fs bGVkIGZyb20gaGVhZC5TIHdpdGggTU1VIG9mZiAqLwo+ID4gLWFzbWxpbmthZ2Ugdm9pZCBfX2lu aXQgX19jb3B5X2RhdGEodm9pZCkKPiA+IC17Cj4gPiAtICAgICB2b2lkICpmcm9tID0gKHZvaWQg KikoJl9zZGF0YSk7Cj4gPiAtICAgICB2b2lkICplbmQgPSAodm9pZCAqKSgmX2VuZCk7Cj4gPiAt ICAgICB2b2lkICp0byA9ICh2b2lkICopQ09ORklHX1BIWVNfUkFNX0JBU0U7Cj4gPiAtICAgICBz aXplX3Qgc3ogPSAoc2l6ZV90KShlbmQgLSBmcm9tICsgMSk7Cj4gPiAtCj4gPiAtICAgICBtZW1j cHkodG8sIGZyb20sIHN6KTsKPiA+IC19Cj4gPiAtI2VuZGlmCj4gPiAtCj4gPiAgICNpZmRlZiBD T05GSUdfU1RSSUNUX0tFUk5FTF9SV1gKPiA+ICAgc3RhdGljIF9faW5pdCBwZ3Byb3RfdCBwZ3By b3RfZnJvbV92YSh1aW50cHRyX3QgdmEpCj4gPiAgIHsKPiA+IEBAIC01MTEsMTYgKzQ3MCwxMCBA QCBzdGF0aWMgX19pbml0IHBncHJvdF90IHBncHJvdF9mcm9tX3ZhKHVpbnRwdHJfdCB2YSkKPiA+ Cj4gPiAgIHN0YXRpYyB1aW50cHRyX3QgbG9hZF9wYSBfX2luaXRkYXRhOwo+ID4gICB1aW50cHRy X3QgbG9hZF9zejsKPiA+IC0jaWZkZWYgQ09ORklHX1hJUF9LRVJORUwKPiA+IC0jZGVmaW5lIGxv YWRfcGEgICAgICAgICgqKCh1aW50cHRyX3QgKilYSVBfRklYVVAoJmxvYWRfcGEpKSkKPiA+IC0j ZGVmaW5lIGxvYWRfc3ogICAgICAgICgqKCh1aW50cHRyX3QgKilYSVBfRklYVVAoJmxvYWRfc3op KSkKPiA+IC0jZW5kaWYKPiA+Cj4gPiAgICNpZmRlZiBDT05GSUdfWElQX0tFUk5FTAo+ID4gICBz dGF0aWMgdWludHB0cl90IHhpcHJvbSBfX2luaXRkYXRhOwo+ID4gICBzdGF0aWMgdWludHB0cl90 IHhpcHJvbV9zeiBfX2luaXRkYXRhOwo+ID4gLSNkZWZpbmUgeGlwcm9tX3N6ICAgICAgKCooKHVp bnRwdHJfdCAqKVhJUF9GSVhVUCgmeGlwcm9tX3N6KSkpCj4gPiAtI2RlZmluZSB4aXByb20gICAg ICAgICAoKigodWludHB0cl90ICopWElQX0ZJWFVQKCZ4aXByb20pKSkKPiA+Cj4gPiAgIHN0YXRp YyB2b2lkIF9faW5pdCBjcmVhdGVfa2VybmVsX3BhZ2VfdGFibGUocGdkX3QgKnBnZGlyLCB1aW50 cHRyX3QgbWFwX3NpemUsCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBfX2Fsd2F5c191bnVzZWQgYm9vbCBlYXJseSkKPiA+IEBAIC01MzgsNyArNDkxLDcgQEAg c3RhdGljIHZvaWQgX19pbml0IGNyZWF0ZV9rZXJuZWxfcGFnZV90YWJsZShwZ2RfdCAqcGdkaXIs IHVpbnRwdHJfdCBtYXBfc2l6ZSwKPiA+ICAgICAgIGVuZF92YSA9IGtlcm5lbF92aXJ0X2FkZHIg KyBYSVBfT0ZGU0VUICsgbG9hZF9zejsKPiA+ICAgICAgIGZvciAodmEgPSBrZXJuZWxfdmlydF9h ZGRyICsgWElQX09GRlNFVDsgdmEgPCBlbmRfdmE7IHZhICs9IG1hcF9zaXplKQo+ID4gICAgICAg ICAgICAgICBjcmVhdGVfcGdkX21hcHBpbmcocGdkaXIsIHZhLAo+ID4gLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbG9hZF9wYSArICh2YSAtIChrZXJuZWxfdmlydF9hZGRyICsgWElQ X09GRlNFVCkpLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZF9wYSAr ICh2YSAtIGtlcm5lbF92aXJ0X2FkZHIpLAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbWFwX3NpemUsIFBBR0VfS0VSTkVMKTsKPiA+ICAgfQo+ID4gICAjZWxzZQo+ID4gQEAg LTY0OCw3ICs2MDEsNyBAQCBhc21saW5rYWdlIHZvaWQgX19pbml0IHNldHVwX3ZtKHVpbnRwdHJf dCBkdGJfcGEpCj4gPiAgICAgICAgKiB3aGVyZWFzIGR0Yl9lYXJseV92YSB3aWxsIGJlIHVzZWQg YmVmb3JlIHNldHVwX3ZtX2ZpbmFsIGluc3RhbGxzCj4gPiAgICAgICAgKiB0aGUgbGluZWFyIG1h cHBpbmcuCj4gPiAgICAgICAgKi8KPiA+IC0gICAgIGR0Yl9lYXJseV92YSA9IGtlcm5lbF9tYXBw aW5nX3BhX3RvX3ZhKFhJUF9GSVhVUChkdGJfcGEpKTsKPiA+ICsgICAgIGR0Yl9lYXJseV92YSA9 IGtlcm5lbF9tYXBwaW5nX3BhX3RvX3ZhKGR0Yl9wYSk7Cj4gPiAgICNlbHNlCj4gPiAgICAgICBk dGJfZWFybHlfdmEgPSBfX3ZhKGR0Yl9wYSk7Cj4gPiAgICNlbmRpZiAvKiBDT05GSUdfNjRCSVQg Ki8KPiA+IEBAIC02NjQsNyArNjE3LDcgQEAgYXNtbGlua2FnZSB2b2lkIF9faW5pdCBzZXR1cF92 bSh1aW50cHRyX3QgZHRiX3BhKQo+ID4gICAgICAgZHRiX2Vhcmx5X3ZhID0gKHZvaWQgKilEVEJf RUFSTFlfQkFTRV9WQSArIChkdGJfcGEgJiAoUEdESVJfU0laRSAtIDEpKTsKPiA+ICAgI2Vsc2Ug LyogQ09ORklHX0JVSUxUSU5fRFRCICovCj4gPiAgICNpZmRlZiBDT05GSUdfNjRCSVQKPiA+IC0g ICAgIGR0Yl9lYXJseV92YSA9IGtlcm5lbF9tYXBwaW5nX3BhX3RvX3ZhKFhJUF9GSVhVUChkdGJf cGEpKTsKPiA+ICsgICAgIGR0Yl9lYXJseV92YSA9IGtlcm5lbF9tYXBwaW5nX3BhX3RvX3ZhKGR0 Yl9wYSk7Cj4gPiAgICNlbHNlCj4gPiAgICAgICBkdGJfZWFybHlfdmEgPSBfX3ZhKGR0Yl9wYSk7 Cj4gPiAgICNlbmRpZiAvKiBDT05GSUdfNjRCSVQgKi8KPiA+CgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxpc3QKbGlu dXgtcmlzY3ZAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJpc2N2Cg==