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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 0BD20C4828F for ; Fri, 2 Feb 2024 16:01:32 +0000 (UTC) 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=wM7ieFQv1YdNcjtsbMuaQLmY7S4nPMux8N71//fGwyg=; b=LU4OaUbwOH57Dt ALDfS1CwR93YjIxM6e/8gP8o4d1/2sHUiHXtSHc5E4lN2WCnrYsZEA7Ynkk4nGWLXDkTA8D26oiJL sRzEDyw0G+xYZDtjz6kCDoGmICK/nY8gRJZbTwNHA8IJDfMl3ySkYnxe11b84No3MwjZSEME6ZvJd N+kON4Gue1WP+cVJ3MxT8e6HVy90+LMBlp+laWZoFU2RJ/+UIjZ5W3DK7Y7XCo/uHCu1rtITuVPjO jUaJiwGx2mlGh57CBmGak6wBw03fLB0j9men6n6w6ComXUMCOFOTpibgTZvU4Onll3NrhMqf/LHFl rAOKqGUWPq1W+08OlIjg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rVvye-0000000CAGl-0vnM; Fri, 02 Feb 2024 16:01:16 +0000 Received: from mail-oa1-x2c.google.com ([2001:4860:4864:20::2c]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rVvyb-0000000CADc-0e9Y for linux-arm-kernel@lists.infradead.org; Fri, 02 Feb 2024 16:01:14 +0000 Received: by mail-oa1-x2c.google.com with SMTP id 586e51a60fabf-2185739b64cso1345688fac.0 for ; Fri, 02 Feb 2024 08:01:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1706889670; x=1707494470; darn=lists.infradead.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=qWOWYYEAxtKEbCbBz7L28/OQ2XY0i2cVeG9NC/yetZM=; b=R1ZHBFvCGWEOY7YvprVagLkTtU6iNmyY05qzo0K31tjrMVgij3dUM/kuP8laYbbizE Ls5C628DkS+KqjIcU5VhuXyf3H95ODqAXG0VJ2YzSFqvdWtwVH02fYcmJbzVEm16Vojl lqO86DO+S+MZo4mvE9LyH/sVIteaPBH30DfGw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706889670; x=1707494470; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=qWOWYYEAxtKEbCbBz7L28/OQ2XY0i2cVeG9NC/yetZM=; b=NGynhX5CUVZ+AVQ+wsN/r8DcmDfVQZDbgXzplTG6hsXxNDUFDK+Ka9QFcK/WlLG5cR 47NXVgWPSvWpgidb8mjjPBcnxHMiLjEyAgTZMolY1F/5pZhQX8SzQE6pzndfL10ciy1W 4rzVynKqAr4u0glxORpZKpDE+NUmDSuN1T+KXX2oqDFyqtm9eg9w31ID2C6+/FgGhBLw elpB93keoMIHK2/w/XJnt5pywYjNFhcv9tLnMHeFwYQpqMAEfsqxkLcsNhlwYBO5Q8zD 2/XMof0lwzHcEAwIdRh1BpMIgI13W2rLBtkVUNzOCTonrgAXr6BOYWpPo+R6UXdUNYJW gbTg== X-Gm-Message-State: AOJu0YxNA2S//7hEJc/evPhGBDCr97ODuNoHpxugS8GTok82EkGkZpjO v6Ei5oeZOgDbzyPpE0ADnAoWEiQfKDnVrRNFRFyeI2leqzXhC60jCSeQiCVIOTi1WNKQJzRM+/7 nfAG3a8h9pbivP1hmm6hUwlAL/2OyKxgy8Sfw X-Google-Smtp-Source: AGHT+IGkfsdQlA+htwDeD7zH3WjVhxGzYd3xt2y1hGo9/Xb3yR38PfLF0lt60z2VvCERYfrrO1dHkdBi+J+oKwjqgVQ= X-Received: by 2002:a05:6870:d10c:b0:219:4033:a21c with SMTP id e12-20020a056870d10c00b002194033a21cmr98007oac.33.1706889668519; Fri, 02 Feb 2024 08:01:08 -0800 (PST) MIME-Version: 1.0 References: <20231202035511.487946-1-sjg@chromium.org> <20231202035511.487946-3-sjg@chromium.org> <20231213121353.GA31326@willie-the-truck> <20240109143349.GR1610741@bill-the-cat> In-Reply-To: From: Simon Glass Date: Fri, 2 Feb 2024 09:00:57 -0700 Message-ID: Subject: Re: [PATCH v9 2/2] arm64: boot: Support Flat Image Tree To: Masahiro Yamada Cc: Tom Rini , Will Deacon , linux-arm-kernel@lists.infradead.org, Ahmad Fatoum , U-Boot Mailing List , Nicolas Schier , Catalin Marinas , Jonathan Corbet , Nathan Chancellor , Nick Terrell , linux-doc@vger.kernel.org, linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org, workflows@vger.kernel.org, Rob Herring X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240202_080113_237751_A234F885 X-CRM114-Status: GOOD ( 69.60 ) X-BeenThere: linux-arm-kernel@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-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgTWFzYWhpcm8sCgpPbiBUdWUsIDMwIEphbiAyMDI0IGF0IDAyOjE2LCBNYXNhaGlybyBZYW1h ZGEgPG1hc2FoaXJveUBrZXJuZWwub3JnPiB3cm90ZToKPgo+IE9uIEZyaSwgSmFuIDI2LCAyMDI0 IGF0IDE6MDTigK9BTSBTaW1vbiBHbGFzcyA8c2pnQGNocm9taXVtLm9yZz4gd3JvdGU6Cj4gPgo+ ID4gSGksCj4gPgo+ID4gT24gV2VkLCAxNyBKYW4gMjAyNCBhdCAwNjoxNCwgU2ltb24gR2xhc3Mg PHNqZ0BjaHJvbWl1bS5vcmc+IHdyb3RlOgo+ID4gPgo+ID4gPiBIaSBNYXNhaGlybywgVG9tLAo+ ID4gPgo+ID4gPiBPbiBUdWUsIDkgSmFuIDIwMjQgYXQgMDc6MzMsIFRvbSBSaW5pIDx0cmluaUBr b25zdWxrby5jb20+IHdyb3RlOgo+ID4gPiA+Cj4gPiA+ID4gT24gVHVlLCBKYW4gMDksIDIwMjQg YXQgMTE6MDE6NDJQTSArMDkwMCwgTWFzYWhpcm8gWWFtYWRhIHdyb3RlOgo+ID4gPiA+ID4gSGkg U2ltb24sCj4gPiA+ID4gPgo+ID4gPiA+ID4KPiA+ID4gPiA+IE9uIFdlZCwgSmFuIDMsIDIwMjQg YXQgODo0N+KAr0FNIFNpbW9uIEdsYXNzIDxzamdAY2hyb21pdW0ub3JnPiB3cm90ZToKPiA+ID4g PiA+ID4KPiA+ID4gPiA+ID4gSGkgTWFzYWhpcm8sCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IE9u IFdlZCwgRGVjIDEzLCAyMDIzIGF0IDU6MTTigK9BTSBXaWxsIERlYWNvbiA8d2lsbEBrZXJuZWwu b3JnPiB3cm90ZToKPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IE9uIEZyaSwgRGVjIDAxLCAy MDIzIGF0IDA4OjU0OjQyUE0gLTA3MDAsIFNpbW9uIEdsYXNzIHdyb3RlOgo+ID4gPiA+ID4gPiA+ ID4gQWRkIGEgc2NyaXB0IHdoaWNoIHByb2R1Y2VzIGEgRmxhdCBJbWFnZSBUcmVlIChGSVQpLCBh IHNpbmdsZSBmaWxlCj4gPiA+ID4gPiA+ID4gPiBjb250YWluaW5nIHRoZSBidWlsdCBrZXJuZWwg YW5kIGFzc29jaWF0ZWQgZGV2aWNldHJlZSBmaWxlcy4KPiA+ID4gPiA+ID4gPiA+IENvbXByZXNz aW9uIGRlZmF1bHRzIHRvIGd6aXAgd2hpY2ggZ2l2ZXMgYSBnb29kIGJhbGFuY2Ugb2Ygc2l6ZSBh bmQKPiA+ID4gPiA+ID4gPiA+IHBlcmZvcm1hbmNlLgo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ ID4gPiA+IFRoZSBmaWxlcyBjb21wcmVzcyBmcm9tIGFib3V0IDg2TUIgdG8gMjRNQiB1c2luZyB0 aGlzIGFwcHJvYWNoLgo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IFRoZSBGSVQgY2Fu IGJlIHVzZWQgYnkgYm9vdGxvYWRlcnMgd2hpY2ggc3VwcG9ydCBpdCwgc3VjaCBhcyBVLUJvb3QK PiA+ID4gPiA+ID4gPiA+IGFuZCBMaW51eGJvb3QuIEl0IHBlcm1pdHMgYXV0b21hdGljIHNlbGVj dGlvbiBvZiB0aGUgY29ycmVjdAo+ID4gPiA+ID4gPiA+ID4gZGV2aWNldHJlZSwgbWF0Y2hpbmcg dGhlIGNvbXBhdGlibGUgc3RyaW5nIG9mIHRoZSBydW5uaW5nIGJvYXJkIHdpdGgKPiA+ID4gPiA+ ID4gPiA+IHRoZSBjbG9zZXN0IGNvbXBhdGlibGUgc3RyaW5nIGluIHRoZSBGSVQuIFRoZXJlIGlz IG5vIG5lZWQgZm9yCj4gPiA+ID4gPiA+ID4gPiBmaWxlbmFtZXMgb3Igb3RoZXIgd29ya2Fyb3Vu ZHMuCj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gQWRkIGEgJ21ha2UgaW1hZ2UuZml0 JyBidWlsZCB0YXJnZXQgZm9yIGFybTY0LCBhcyB3ZWxsLiBVc2UKPiA+ID4gPiA+ID4gPiA+IEZJ VF9DT01QUkVTU0lPTiB0byBzZWxlY3QgYSBkaWZmZXJlbnQgYWxnb3JpdGhtLgo+ID4gPiA+ID4g PiA+ID4KPiA+ID4gPiA+ID4gPiA+IFRoZSBGSVQgY2FuIGJlIGV4YW1pbmVkIHVzaW5nICdkdW1w aW1hZ2UgLWwnLgo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IFRoaXMgZmVhdHVyZXMg cmVxdWlyZXMgcHlsaWJmZHQgKHVzZSAncGlwIGluc3RhbGwgbGliZmR0JykuIEl0IGFsc28KPiA+ ID4gPiA+ID4gPiA+IHJlcXVpcmVzIGNvbXByZXNzaW9uIHV0aWxpdGllcyBmb3IgdGhlIGFsZ29y aXRobSBiZWluZyB1c2VkLiBTdXBwb3J0ZWQKPiA+ID4gPiA+ID4gPiA+IGNvbXByZXNzaW9uIG9w dGlvbnMgYXJlIHRoZSBzYW1lIGFzIHRoZSBJbWFnZS54eHggZmlsZXMuIEZvciBub3cgdGhlcmUK PiA+ID4gPiA+ID4gPiA+IGlzIG5vIHdheSB0byBjaGFuZ2UgdGhlIGNvbXByZXNzaW9uIG90aGVy IHRoYW4gYnkgZWRpdGluZyB0aGUgcnVsZSBmb3IKPiA+ID4gPiA+ID4gPiA+ICQob2JqKS9pbWFn ZS5maXQKPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBXaGlsZSBGSVQgc3VwcG9ydHMg YSByYW1kaXNrIC8gaW5pdHJkLCBubyBhdHRlbXB0IGlzIG1hZGUgdG8gc3VwcG9ydAo+ID4gPiA+ ID4gPiA+ID4gdGhpcyBoZXJlLCBzaW5jZSBpdCBtdXN0IGJlIGJ1aWx0IHNlcGFyYXRlbHkgZnJv bSB0aGUgTGludXggYnVpbGQuCj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gU2lnbmVk LW9mZi1ieTogU2ltb24gR2xhc3MgPHNqZ0BjaHJvbWl1bS5vcmc+Cj4gPiA+ID4gPiA+ID4gPiAt LS0KPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBDaGFuZ2VzIGluIHY5Ogo+ID4gPiA+ ID4gPiA+ID4gLSBNb3ZlIHRoZSBjb21wcmVzc2lvbiBjb250cm9sIGludG8gTWFrZWZpbGUubGli Cj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gQ2hhbmdlcyBpbiB2ODoKPiA+ID4gPiA+ ID4gPiA+IC0gRHJvcCBjb21wYXRpYmxlIHN0cmluZyBpbiBGRFQgbm9kZQo+ID4gPiA+ID4gPiA+ ID4gLSBDb3JyZWN0IHNvcnRpbmcgb2YgTUFJTlRBSU5FUlMgdG8gYmVmb3JlIEFSTTY0IFBPUlQK PiA+ID4gPiA+ID4gPiA+IC0gVHVybiBjb21wcmVzcyBwYXJ0IG9mIHRoZSBtYWtlX2ZpdC5weSBj b21tZW50IGluIHRvIGEgc2VudGVuY2UKPiA+ID4gPiA+ID4gPiA+IC0gQWRkIHR3byBibGFuayBs aW5lcyBiZWZvcmUgcGFyc2VfYXJncygpIGFuZCBzZXR1cF9maXQoKQo+ID4gPiA+ID4gPiA+ID4g LSBVc2UgJ2ltYWdlLmZpdDogZHRicycgaW5zdGVhZCBvZiBCVUlMRF9EVEJTIHZhcgo+ID4gPiA+ ID4gPiA+ID4gLSBVc2UgJyQoPEQpL2R0cycgaW5zdGVhZCBvZiAnJChkaXIgJDwpZHRzJwo+ID4g PiA+ID4gPiA+ID4gLSBBZGQgJ21raW1hZ2UnIGRldGFpbHMgRG9jdW1lbnRhdGlvbi9wcm9jZXNz L2NoYW5nZXMucnN0Cj4gPiA+ID4gPiA+ID4gPiAtIEFsbG93IGNoYW5naW5nIHRoZSBjb21wcmVz c2lvbiB1c2VkCj4gPiA+ID4gPiA+ID4gPiAtIFR3ZWFrIGNvdmVyIGxldHRlciBzaW5jZSB0aGVy ZSBpcyBvbmx5IG9uZSBjbGVhbi11cCBwYXRjaAo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4g PiA+IENoYW5nZXMgaW4gdjc6Cj4gPiA+ID4gPiA+ID4gPiAtIEFkZCBJbWFnZSBhcyBhIGRlcGVu ZGVuY3kgb2YgaW1hZ2UuZml0Cj4gPiA+ID4gPiA+ID4gPiAtIERyb3Aga2J1aWxkIHRhZwo+ID4g PiA+ID4gPiA+ID4gLSBBZGQgZGVwZW5kZW5jeSBvbiBkdGJzCj4gPiA+ID4gPiA+ID4gPiAtIERy b3AgdW5uZWNlc3NhcnkgcGF0aCBzZXBhcmF0b3IgZm9yIGR0YnMKPiA+ID4gPiA+ID4gPiA+IC0g UmViYXNlIHRvIC1uZXh0Cj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gQ2hhbmdlcyBp biB2NToKPiA+ID4gPiA+ID4gPiA+IC0gRHJvcCBwYXRjaCBwcmV2aW91c2x5IGFwcGxpZWQKPiA+ ID4gPiA+ID4gPiA+IC0gQ29ycmVjdCBjb21wcmVzc2lvbiBydWxlIHdoaWNoIHdhcyBicm9rZW4g aW4gdjQKPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBDaGFuZ2VzIGluIHY0Ogo+ID4g PiA+ID4gPiA+ID4gLSBVc2Ugc2luZ2xlIHF1b3RlcyBmb3IgVUlNQUdFX05BTUUKPiA+ID4gPiA+ ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBDaGFuZ2VzIGluIHYzOgo+ID4gPiA+ID4gPiA+ID4gLSBE cm9wIHRlbXBvcmFyeSBmaWxlIGltYWdlLml0awo+ID4gPiA+ID4gPiA+ID4gLSBEcm9wIHBhdGNo ICdVc2UgZG91YmxlIHF1b3RlcyBmb3IgaW1hZ2UgbmFtZScKPiA+ID4gPiA+ID4gPiA+IC0gRHJv cCBkb3VibGUgcXVvdGVzIGluIHVzZSBvZiBVSU1BR0VfTkFNRQo+ID4gPiA+ID4gPiA+ID4gLSBE cm9wIHVubmVjZXNzYXJ5IENPTkZJR19FRklfWkJPT1QgY29uZGl0aW9uIGZvciBoZWxwCj4gPiA+ ID4gPiA+ID4gPiAtIEF2b2lkIGhhcmQtY29kaW5nICJhcm02NCIgZm9yIHRoZSBEVCBhcmNoaXRl Y3R1cmUKPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBDaGFuZ2VzIGluIHYyOgo+ID4g PiA+ID4gPiA+ID4gLSBEcm9wIHBhdGNoIHByZXZpb3VzbHkgYXBwbGllZAo+ID4gPiA+ID4gPiA+ ID4gLSBBZGQgLmdpdGlnbm9yZSBmaWxlCj4gPiA+ID4gPiA+ID4gPiAtIE1vdmUgZml0IHJ1bGUg dG8gTWFrZWZpbGUubGliIHVzaW5nIGFuIGludGVybWVkaWF0ZSBmaWxlCj4gPiA+ID4gPiA+ID4g PiAtIERyb3AgZGVwZW5kZW5jeSBvbiBDT05GSUdfRUZJX1pCT09UCj4gPiA+ID4gPiA+ID4gPiAt IFBpY2sgdXAgLmR0YiBmaWxlcyBzZXBhcmF0ZWx5IGZyb20gdGhlIGtlcm5lbAo+ID4gPiA+ID4g PiA+ID4gLSBDb3JyZWN0IHB5bGludCB0b28tbWFueS1hcmdzIHdhcm5pbmcgZm9yIHdyaXRlX2tl cm5lbCgpCj4gPiA+ID4gPiA+ID4gPiAtIEluY2x1ZGUgdGhlIGtlcm5lbCBpbWFnZSBpbiB0aGUg ZmlsZSBjb3VudAo+ID4gPiA+ID4gPiA+ID4gLSBBZGQgYSBwb2ludGVyIHRvIHRoZSBGSVQgc3Bl YyBhbmQgbWVudGlvbiBvZiBpdHMgd2lkZSBpbmR1c3RyeSB1c2FnZQo+ID4gPiA+ID4gPiA+ID4g LSBNZW50aW9uIHRoZSBrZXJuZWwgdmVyc2lvbiBpbiB0aGUgRklUIGRlc2NyaXB0aW9uCj4gPiA+ ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gIERvY3VtZW50YXRpb24vcHJvY2Vzcy9jaGFuZ2Vz LnJzdCB8ICAgOSArCj4gPiA+ID4gPiA+ID4gPiAgTUFJTlRBSU5FUlMgICAgICAgICAgICAgICAg ICAgICAgIHwgICA3ICsKPiA+ID4gPiA+ID4gPiA+ICBhcmNoL2FybTY0L01ha2VmaWxlICAgICAg ICAgICAgICAgfCAgIDcgKy0KPiA+ID4gPiA+ID4gPiA+ICBhcmNoL2FybTY0L2Jvb3QvLmdpdGln bm9yZSAgICAgICAgfCAgIDEgKwo+ID4gPiA+ID4gPiA+ID4gIGFyY2gvYXJtNjQvYm9vdC9NYWtl ZmlsZSAgICAgICAgICB8ICAgNiArLQo+ID4gPiA+ID4gPiA+ID4gIHNjcmlwdHMvTWFrZWZpbGUu bGliICAgICAgICAgICAgICB8ICAxNiArKwo+ID4gPiA+ID4gPiA+ID4gIHNjcmlwdHMvbWFrZV9m aXQucHkgICAgICAgICAgICAgICB8IDI5MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK PiA+ID4gPiA+ID4gPiA+ICA3IGZpbGVzIGNoYW5nZWQsIDMzNCBpbnNlcnRpb25zKCspLCAzIGRl bGV0aW9ucygtKQo+ID4gPiA+ID4gPiA+ID4gIGNyZWF0ZSBtb2RlIDEwMDc1NSBzY3JpcHRzL21h a2VfZml0LnB5Cj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBJJ2xsIG5lZWQgTWFzYWhpcm8n cyBBY2sgb24gdGhlIHNjcmlwdHMvIGNoYW5nZXMgYmVmb3JlIEkgY2FuIHRha2UgdGhpcwo+ID4g PiA+ID4gPiA+IG9uZS4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gQW55IHRob3VnaHRzIG9uIHRo aXMgcmVxdWVzdCwgcGxlYXNlPwo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBSZWdhcmRzLAo+ID4g PiA+ID4gPiBTaW1vbgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4KPiA+ID4gPiA+Cj4gPiA+ID4gPgo+ ID4gPiA+ID4gQXMgSSBtZW50aW9uZWQgYmVmb3JlLCBJIGFtIGNvbmNlcm5lZCB3aXRoIGhhdmlu Zwo+ID4gPiA+ID4gdGhlIHNhbWUgImNvbXBhdGlibGUiIGVudHJpZXMsIHdpdGggZGlmZmVyZW50 IGNvbnRlbnRzLAo+ID4gPiA+ID4gYXMgeW91IHVzZSB0aGUgImNvbXBhdGlibGUiIHN0cmluZyBh cyBhbiBJRCB0byBzZWxlY3RpbmcKPiA+ID4gPiA+IHRoZSB0YXJnZXQgY29uZmlnIG5vZGUsIHJp Z2h0Pwo+ID4gPiA+ID4KPiA+ID4gPiA+Cj4gPiA+ID4gPgo+ID4gPiA+ID4KPiA+ID4gPiA+Cj4g PiA+ID4gPiAkIGZkdGR1bXAgIGFyY2gvYXJtNjQvYm9vdC9pbWFnZS5maXQKPiA+ID4gPiA+Cj4g PiA+ID4gPiAgICAgICAgIC4uLgo+ID4gPiA+ID4KPiA+ID4gPiA+ICAgICAgICAgY29uZi0xMCB7 Cj4gPiA+ID4gPiAgICAgICAgICAgICBjb21wYXRpYmxlID0gInRxLGFtNjQyLXRxbWE2NDQybC1t YmF4NHh4bCIsCj4gPiA+ID4gPiAidHEsYW02NDItdHFtYTY0NDJsIiwgInRpLGFtNjQyIjsKPiA+ ID4gPiA+ICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gIlRRLVN5c3RlbXMgVFFNYTY0eHhMIFNv TSBvbiBNQmF4NHh4TCBjYXJyaWVyIGJvYXJkIjsKPiA+ID4gPiA+ICAgICAgICAgICAgIGZkdCA9 ICJmZHQtMTAiOwo+ID4gPiA+ID4gICAgICAgICAgICAga2VybmVsID0gImtlcm5lbCI7Cj4gPiA+ ID4gPiAgICAgICAgIH07Cj4gPiA+ID4gPgo+ID4gPiA+ID4gICAgICAgICAuLi4KPiA+ID4gPiA+ Cj4gPiA+ID4gPiAgICAgICAgIGNvbmYtMjUgewo+ID4gPiA+ID4gICAgICAgICAgICAgY29tcGF0 aWJsZSA9ICJ0cSxhbTY0Mi10cW1hNjQ0MmwtbWJheDR4eGwiLAo+ID4gPiA+ID4gInRxLGFtNjQy LXRxbWE2NDQybCIsICJ0aSxhbTY0MiI7Cj4gPiA+ID4gPiAgICAgICAgICAgICBkZXNjcmlwdGlv biA9ICJUUS1TeXN0ZW1zIFRRTWE2NHh4TCBTb00gb24gTUJheDR4eEwgY2FycmllciBib2FyZCI7 Cj4gPiA+ID4gPiAgICAgICAgICAgICBmZHQgPSAiZmR0LTI1IjsKPiA+ID4gPiA+ICAgICAgICAg ICAgIGtlcm5lbCA9ICJrZXJuZWwiOwo+ID4gPiA+ID4gICAgICAgICB9Owo+ID4gPiA+Cj4gPiA+ ID4gSSBoYWQgYXNrZWQgUm9iIGEgd2hpbGUgYWdvIGFib3V0IGlmIGhhdmluZyB0aGUgc2FtZSBj b21wYXRpYmxlIGZvciB0d28KPiA+ID4gPiBmdW5jdGlvbmFsbHkgZGlmZmVyZW50IG1hY2hpbmVz IGlzIGEgZmVhdHVyZSwgb3IgYSBidWcsIGFuZCBJIGRvbid0Cj4gPiA+ID4gdGhpbmsgZWl0aGVy IG9mIHVzIGZ1bGx5IGFncmVlZCBlaXRoZXIgd2F5LiBJJ2QgYmUgbGVhbmluZyB0b3dhcmRzCj4g PiA+ID4gc2F5aW5nIHRoZSBhYm92ZSBleGFtcGxlIGlzIGEgYnVnIGluIHRoZSBkdHMgZmlsZXMs IGl0J3MganVzdCBub3QgYmVlbiBhCj4gPiA+ID4gYnVnIHBlb3BsZSBoYXZlIHdvcnJpZWQgYWJv dXQgYmVmb3JlIGR1ZSB0byAoc2FkbHkpIGhvdyBsaXR0bGUgdGhlCj4gPiA+ID4gdG9wLWxldmVs IGNvbXBhdGlibGUgaGFzIGJlZW4gdXNlZC4KPiA+ID4KPiA+ID4gWWVzIEkgYmVsaWV2ZSB0aGlz IGlzIGEgYnVnIGluIHRoZSBmaWxlcy4KPiA+ID4KPiA+ID4gV2hhdCBzaG91bGQgdGhlIHNjcmlw dCBkbyBpbiB0aGlzIGNhc2U/IFByaW50IGEgd2FybmluZywgcGVyaGFwcz8KPiA+Cj4gPiBJcyB0 aGVyZSBhbnl0aGluZyBJIHNob3VsZCBkbyBoZXJlPyBXb3VsZCBhIHdhcm5pbmcgYmUgaGVscGZ1 bCwgb3IKPiA+IGp1c3QgY29uZnVzaW5nPwo+Cj4KPgo+IEkgZG8gbm90IHRoaW5rIGl0IGlzIHVz ZWZ1bC4KPiBZb3Ugd291bGQgYWxtb3N0IGFsd2F5cyBnZXQgYSB3YXJuaW5nLCBhbmQgdGhlcmUg aXMgbm8gd2F5IHRvIGZpeCBpdC4KPgo+Cj4KPiBXaXRoIGFybTY0IGRlZmNvbmZpZywgaW1hZ2Uu Zml0IHdpbGwgaW5jbHVkZSBhIHRob3VzYW5kIERUQnMuCj4KPgo+IFRoZSBjb25maWcgbm9kZSBv ZiBteSBib2FyZCB3YXMgbGlzdGVkIDIxNHRoLgo+IChJIGZvdW5kIGl0IGJ5IGZkdGR1bXApCj4K Pgo+IFRoZW4sIEkgbGVhcm5lZAo+Cj4gICA+ICBib290bSAgJHtsb2FkYWRkcn0jY29uZi0yMTQK Pgo+IGlzIHRoZSBjb3JyZWN0IGNvbW1hbmQgdG8gYm9vdCBteSBib2FyZC4KPgo+Cj4gT2YgY291 cnNlLCB0aGUgIjIxNCIgd2lsbCBiZSBkaWZmZXJlbnQgaW4gdGhlIGZ1dHVyZS4KPgo+IFRoZSBu b2RlIG5hbWVzLCBjb25mLSosIGFyZSB1c2VsZXNzLgo+Cj4KPgo+IE9ubHkgdGhlIHVzZWZ1bCB3 YXkgaXMgdG8gZW5hYmxlIENPTkZJR19GSVRfQkVTVF9NQVRDSCBpbiBVLUJvb3QsCj4gYnV0IHRo aXMgcmVsaWVzIG9uIHRoZSB1bmlxdWVuZXNzIG9mIGEgY29tcGF0aWJsZSBzdHJpbmcsCj4gd2hp Y2ggaXMgbm90IHRydWUuCgpTZWUgbXkgb3RoZXIgZW1haWwsIGJ1dCBJIHRoaW5rIHRoaXMgaXMg YSBwcm9ibGVtIHdlIHNob3VsZCBmaXguCgo+Cj4gKEkgZG8gbm90IGtub3cgaG93IHRvIGRvIGl0 IGluIGJhcmVib3gpCj4KPgo+Cj4KPgo+IEkgdGhpbmsgdXNpbmcgdGhlIGZpbGUgbmFtZSBhcyBh IGNvbmZpZyBub2RlCj4gbWl0aWdhdGVzIHRoZSBpc3N1ZSBiZWNhdXNlIGEgZmlsZSBuYW1lIGlz Cj4gY29uc2lkZXJlZCB1bmlxdWUuCj4KPgo+IEZvciBleGFtcGxlLCB3aXRoIGNvbXBvc2l0ZSBE VEJzOgo+Cj4gaW14OG1tLXZlbmljZS1ndzcyeHgtMHgtaW14MjE5LWR0YnMgOj0gaW14OG1tLXZl bmljZS1ndzcyeHgtMHguZHRiCj4gaW14OG1tLXZlbmljZS1ndzcyeHgtMHgtaW14MjE5LmR0Ym8K PiBpbXg4bW0tdmVuaWNlLWd3NzJ4eC0weC1ycGlkc2ktZHRicyA6PSBpbXg4bW0tdmVuaWNlLWd3 NzJ4eC0weC5kdGIKPiBpbXg4bW0tdmVuaWNlLWd3NzJ4eC0weC1ycGlkc2kuZHRibwo+Cj4KPgo+ Cj4gY29uZmlndXJhdGlvbnMgewo+ICAgICAgIGlteDhtbS12ZW5pY2UtZ3c3Mnh4LTB4LWlteDIx OSB7Cj4gICAgICAgICAgICAgLi4uCj4gICAgICAgfTsKPgo+ICAgICAgIGlteDhtbS12ZW5pY2Ut Z3c3Mnh4LTB4LXJwaWRzaSB7Cj4gICAgICAgICAgICAgLi4uCj4gICAgICAgfQo+IH07Cj4KPgo+ Cj4gVGhlbiwgd2UgY2FuIGRpc3Rpbmd1aXNoIHRoZW0gYnkgbm9kZSwgZXZlbiBpZiB0aGV5IGhh dmUKPiB0aGUgc2FtZSBjb21wYXRpYmxlIHN0cmluZy4KPiBBdCBsZWFzdCB3ZSBjYW4gZG8KPgo+ ICAgPiBib290bSAgJHtsb2FkYWRkcn0jaW14OG1tLXZlbmljZS1ndzcyeHgtMHgtaW14MjE5Cj4K PgoKU3VyZSwgYnV0IHRoZSBnb2FsIHdpdGggRklUIGlzIHRvIGJlIGFibGUgdG8gYm9vdCB3aXRo IHRoZSBjb3JyZWN0IGR0YgphdXRvbWF0aWNhbGx5LiBXaGF0IHlvdSBoYXZlIGFib3ZlIHdvdWxk IHJlcXVpcmUgc29tZSBzb3J0IG9mIGJvb3QKc2NyaXB0LCBvciBzb21lIG90aGVyIGluZm9ybWF0 aW9uIGFib3V0IHRoZSBjb25maWd1cmF0aW9uLW5vZGUgbmFtZS4KCj4KPgo+IEZvciB0aGUgaXNz dWUgaW5jbHVkaW5nIHN0YWxlIERUQnMsIHlvdSBjYW4gdXNlIG15IHBhdGNoOgo+IFtQQVRDSCAx LzRdIGtidWlsZDogY3JlYXRlIGEgbGlzdCBvZiBhbGwgYnVpbHQgRFRCIGZpbGVzCj4gKGh0dHBz Oi8vbG9yZS5rZXJuZWwub3JnL2xpbnV4LWtidWlsZC9DQUs3TE5BU094aS1nenZlK19kLXNDVzl6 X2VFSjVUTU1uelBFdk4yTmoyQXdnVmpGOWdAbWFpbC5nbWFpbC5jb20vVC8jbWEzNTk1NjI3YTk2 YTA0NTU0YTc4Y2JiZDIyMDU2ODMxZTEzZGIyNjApCj4KPgo+IFlvdSBjYW4gY2hhbmdlIHNjcmlw dHMvbWFrZV9maXQucHkgdG8gdGFrZQo+IHRoZSBEVEIgZmlsZXMgaW5zdGVhZCBvZiB0aGUgZGly ZWN0b3J5IHRvIHNlYXJjaC4KPgo+IE9wdGlvbmFsbHksIHlvdSBjYW4gc3VwcG9ydCAnQCcgc3lu dGF4IHRvCj4gdGFrZSBjb21tYW5kIGFyZ3VtZW50cyBmcm9tIGEgZmlsZS4KPgo+Cj4gc2NyaXB0 cy9tYWtlX2ZpdC5weSAuLi4gQGFyY2gvJChTUkNBUkNIKS9ib290L2R0cy9kdGJzLWxpc3QKClRo YW5rIHlvdSBmb3IgZG9pbmcgdGhhdC4gSSB3aWxsIHRha2UgYSBsb29rIGFuZCBzZW5kIHYxMC4K Cj4KPgo+Cj4KPgo+Cj4gRm9yIHRoZSBzZXBhcmF0ZSBiYXNlIGFuZCBvdmVybGF5cyBzdXBwb3J0 LAo+IHlvdSBjYW4gdXNlIG15IHBhdGNoIGFzIGEgYmFzZToKPiBbUEFUQ0ggMy80XSBrYnVpbGQ6 IGNyZWF0ZSBhIGxpc3Qgb2YgYmFzZSBhbmQgb3ZlcmxheXMgZm9yIGVhY2ggRFRCCj4gKGh0dHBz Oi8vbG9yZS5rZXJuZWwub3JnL2xpbnV4LWtidWlsZC9DQUs3TE5BU094aS1nenZlK19kLXNDVzl6 X2VFSjVUTU1uelBFdk4yTmoyQXdnVmpGOWdAbWFpbC5nbWFpbC5jb20vVC8jbTMyYzViZGRlOTA5 ODkwMWI3Yzc3NzZiOTMyODI3NDkzYTA1YzgyZDUpCj4KPgo+Cj4KPgo+IExhc3RseSwgeW91IGRv IG5vdCBuZWVkIHRvIHJlcXVpcmUgbWtpbWFnZSBmb3IKPiBhcmdzLmV4dGVybmFsLgo+IFlvdSBj YW4gc2ltcGx5IGNvbmNhdGVuYXRlIGZpbGVzLgoKWWVzLCB0aGF0J3MgdHJ1ZS4gRG8geW91IHRo aW5rIHRoZXJlIGlzIGEgcHJvYmxlbSB3aXRoIHVzaW5nIG1raW1hZ2U/CgpSZWdhcmRzLApTaW1v bgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgt YXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQu b3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJt LWtlcm5lbAo=