From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qv1-f53.google.com (mail-qv1-f53.google.com [209.85.219.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 041AE2261F for ; Fri, 29 Mar 2024 02:46:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.53 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711680420; cv=none; b=gEZxsZXN/eH3Okc5GGy/BwBfSzcAFAZmT5HIUCinDKCDVfrlj/6oVquGrXvXjLX0rNDaBp+KSgi/B69dzN3jh98mavFC//QouWk+TvFw5PA2pZZkHh3poynIIN9bSto4vS0xs6qbfPMpkvgF6wUJjSaX3x6O/oRDPcLVDWwi3VQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711680420; c=relaxed/simple; bh=eWfj+aGYOh7tjs+jt01tO7AIQL8yDYNEfz5E//jamXM=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=TXUrPI8MolPzapKqb1sNEcR/ITeVkhxLhYFC4VdV3jhQYT8fgt7gV066YcfJzt1cOccp2H6gzRV2lmFeE0guAx6HD3aD/xkNApChNxIPm+Cp7EocwYaZFfJmcZ/09rdkNY1FK3k8JAr7sVjxAhzdasay/K/XH3svkGHPHqChcEI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=gH8uu2E+; arc=none smtp.client-ip=209.85.219.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="gH8uu2E+" Received: by mail-qv1-f53.google.com with SMTP id 6a1803df08f44-6963c0c507eso16475916d6.1 for ; Thu, 28 Mar 2024 19:46:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1711680417; x=1712285217; darn=vger.kernel.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=srQfKT/BzMmZwEI+1YQrBRXDf12Tn35MF+VDUldciyU=; b=gH8uu2E+GKyyfIdZIjO9loj6nR0PmoPTt9O3ESBSvYWSYAacy2N48ApLV1zlytahOz b++sr17FGUBbBJpU5CAn3KIcPX6OJEH+DkejZzyYZO9fN6/uulSuYOMjdVTeWL32mdPk JSjoC5QKk2FR/WAwjeIZceoelpgN72SkR45ZI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711680417; x=1712285217; 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=srQfKT/BzMmZwEI+1YQrBRXDf12Tn35MF+VDUldciyU=; b=tFhFZW0QlEdxDCOnVXlVkCsU7SSmXS+HDMeel6giW+AN2wa1TK5ztCD4pLr97dx5mI pBL/Qj0W1lZEhUQ2M9+OBN1EJcpex+iPbiYoUhactarR90mkDY7pMBOQ4+sFGXElsQnZ 01uSWi/Tx1aegHrSBPOC5BwVysnlS8RQwIRvKCEQSDpT0revQqSMBss5UrZS+eE0vBwP zkymMiN/pkAj1r5GEik1AUEY3pkV1aj2Bi2NG6hw8qSmSHHyameZ3IXRsOFIvvMPTcAR 6/ArHFKEsO4G0u2rdy+0dgDwvd01PTyqGN6TIK7xIv6BzH3ngbCtbM6EVQT3DRpAy/Px qbHA== X-Forwarded-Encrypted: i=1; AJvYcCX6PmxXvAoQE4xCvGQc2Pacem66fIvmsDZzwYXyqIvnKSjcxs7mvPt+r7yP7Dw3p21TWEe+bSt3FwrV+iZfQLHR2cSHmJ/romI9Wldq X-Gm-Message-State: AOJu0YycIMldhxbqzQlmYl2vQi9COMgufZ1ugUozQyctTfCQtykWpk+k WMDjW5qLBLiXkWgQtY0So1ba4eozZCNAl3SrkBeJvh8PYpoE9aiUOr8laEKf0OpsAFCBVdab4e/ ni3LFNBU526mD1F1oT0iK/ibEwBwYAr3jVnku X-Google-Smtp-Source: AGHT+IFcNRIG4qyeHuU4viTDFJna3KUQm3AU7knSPFXXgF8+aPNLM3eXpw9YAj4qjYN4jlsYINmdFPQJFzf8SaGRmzE= X-Received: by 2002:a0c:e948:0:b0:696:a309:1095 with SMTP id n8-20020a0ce948000000b00696a3091095mr6508219qvo.17.1711680416994; Thu, 28 Mar 2024 19:46:56 -0700 (PDT) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <20240314042659.232142-1-sjg@chromium.org> <20240314042659.232142-3-sjg@chromium.org> In-Reply-To: From: Simon Glass Date: Fri, 29 Mar 2024 15:46:45 +1300 Message-ID: Subject: Re: [PATCH v11 2/2] arm64: boot: Support Flat Image Tree To: Masahiro Yamada Cc: linux-arm-kernel@lists.infradead.org, Ahmad Fatoum , Nicolas Schier , Catalin Marinas , Jonathan Corbet , Nathan Chancellor , Nick Terrell , Will Deacon , linux-doc@vger.kernel.org, linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org, workflows@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Masahiro, On Wed, 27 Mar 2024 at 03:39, Masahiro Yamada wrote: > > On Thu, Mar 14, 2024 at 1:28=E2=80=AFPM Simon Glass wr= ote: > > > > Add a script which produces a Flat Image Tree (FIT), a single file > > containing the built kernel and associated devicetree files. > > Compression defaults to gzip which gives a good balance of size and > > performance. > > > > The files compress from about 86MB to 24MB using this approach. > > > > The FIT can be used by bootloaders which support it, such as U-Boot > > and Linuxboot. It permits automatic selection of the correct > > devicetree, matching the compatible string of the running board with > > the closest compatible string in the FIT. There is no need for > > filenames or other workarounds. > > > > Add a 'make image.fit' build target for arm64, as well. > > > > The FIT can be examined using 'dumpimage -l'. > > > > This uses the 'dtbs-list' file but processes only .dtb files, ignoring > > the overlay .dtbo files. > > > > This features requires pylibfdt (use 'pip install libfdt'). It also > > requires compression utilities for the algorithm being used. Supported > > compression options are the same as the Image.xxx files. Use > > FIT_COMPRESSION to select an algorithm other than gzip. > > > > While FIT supports a ramdisk / initrd, no attempt is made to support > > this here, since it must be built separately from the Linux build. > > > > Signed-off-by: Simon Glass > > --- > > > > Changes in v11: > > - Use dtbslist file in image.fit rule > > - Update cmd_fit rule as per Masahiro > > - Don't mention ignoring files without a .dtb prefix > > - Use argparse fromfile_prefix_chars feature > > - Add a -v option and use it for output (with make V=3D1) > > - rename srcdir to dtbs > > - Use -o for the output file instead of -f > > > > > > > > --- a/scripts/Makefile.lib > > +++ b/scripts/Makefile.lib > > @@ -504,6 +504,21 @@ quiet_cmd_uimage =3D UIMAGE $@ > > -a $(UIMAGE_LOADADDR) -e $(UIMAGE_ENTRYADDR) \ > > -n '$(UIMAGE_NAME)' -d $< $@ > > > > +# Flat Image Tree (FIT) > > +# This allows for packaging of a kernel and all devicetrees files, usi= ng > > +# compression. > > +# --------------------------------------------------------------------= ------- > > + > > +MAKE_FIT :=3D $(srctree)/scripts/make_fit.py > > + > > +# Use this to override the compression algorithm > > +FIT_COMPRESSION ?=3D gzip > > + > > +quiet_cmd_fit =3D FIT $@ > > + cmd_fit =3D $(MAKE_FIT) -o $@ --arch $(UIMAGE_ARCH) --os linux \ > > + --name '$(UIMAGE_NAME)' $(if $(V),-v) \ > > + --compress $(FIT_COMPRESSION) -k $< @$(word 2,$^) > > + > > > > > A nit in your new code. > > > $(if $(V),-v) does not work for KBUILD_VERBOSE env variable. > > > It should be > > $(if $(findstring 1,$(KBUILD_VERBOSE)),-v) OK, thank you. I was assuming that V=3D0 would not be passed, but this is better. I will send v12. Regards, Simon 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 20DD7CD1284 for ; Fri, 29 Mar 2024 02:47:19 +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=8Z+Bkh0jQb2hF7aCX8IePmgDFucq5OGpeM3Hgdl7wFQ=; b=X9nUjwwOKOZtn5 VLPinAm/8zam8utMextf0AUOswtE3ZJph+T7yW6SjO4cyVHc7hKWPCJBUz9SryxCJqpbqJvWv2KY5 ZyD5HBmiG+MplKR6l8uBeZRId3FLv8UyvSkQzxV5ZvSKpnkSgdNL4VbORISEChBgJJkEyCAh3Ps/C uBxJMCDi1A7vakF9QomfrpN0ybykLuylJdh6N/ktwAqXrHgI6O1H693m0hj2zwmCYkyx6B9uBTzRf qI6vH+SrY7ixqZ2Q5jvXR63QC7N6LuQ0E2n2JqnyEOgQEN7UAnS9pZ0K0ALOo11fEJDQf9xIcjMGp ih5dwCS4L6NNlD4Yf2fg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rq2Gl-0000000Ga8W-1t3M; Fri, 29 Mar 2024 02:47:03 +0000 Received: from mail-qv1-xf34.google.com ([2607:f8b0:4864:20::f34]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rq2Gh-0000000Ga7g-1yML for linux-arm-kernel@lists.infradead.org; Fri, 29 Mar 2024 02:47:01 +0000 Received: by mail-qv1-xf34.google.com with SMTP id 6a1803df08f44-690c1747c3cso13220036d6.0 for ; Thu, 28 Mar 2024 19:46:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1711680417; x=1712285217; 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=srQfKT/BzMmZwEI+1YQrBRXDf12Tn35MF+VDUldciyU=; b=Bohyd4FxLp65miKXDj5wfGpTQ4tVp9wY8qE0SCci6vnhjTUg8+o+s2Nhssnk817QsF K09EtOWxJCwGGDw44nD1BOhH91JCD8TxxDUtjblmu8AW15OhWhjjhmxJLCiWnBoDr5pv wnN4HgqW6GRNfaCM5xSJNehcUv5xSTwtC2AoU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711680417; x=1712285217; 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=srQfKT/BzMmZwEI+1YQrBRXDf12Tn35MF+VDUldciyU=; b=Ta6QTjyyMPLaQaJZNO24yY36bTP9Jcu8eaZYTYr7rhxWgB0fObFD6x2vf+kieVPnA1 yCYosPT1cZ2Oj2W25QNCCX3CDK6dH4Am97KM/pkW4FML/dEm9YrQ1AB+5eO1GDXNKyiN 7I7WAS983xh/dQ8NAKHCdA217GND9Op+rV+R1VcdrVPUE/svjXeY0AsAR/qgFlRlhb3P hXCGDFbynlTlZFlvgGAtciB9ql2D1n7nrxM+QdMM3WgKOvq9IFyPqvFd4cucuAOIf5t4 feHGB5fPUrPmn3h4G/vNOYEGOtKK5OyZhe7ztY8Mhhp9dUA84LXEoRKynShwwHRrqdEL HXSg== X-Gm-Message-State: AOJu0YxQFF+uh+WExRFxkAkBxbPzXkiKoyyNz3pFnzePITqJNzk5FrZX 3smFMvBEXEqld54Hgz8KpK6ze24dNiQ5PLB5qdFSZlixBGpK3GO0JcsdCVzxuS3mjydF3+bjRzX nfSLZ9td++RqbGOQ07LVlX0PJPJoUGwogOpqW0lPjvz/PG5s= X-Google-Smtp-Source: AGHT+IFcNRIG4qyeHuU4viTDFJna3KUQm3AU7knSPFXXgF8+aPNLM3eXpw9YAj4qjYN4jlsYINmdFPQJFzf8SaGRmzE= X-Received: by 2002:a0c:e948:0:b0:696:a309:1095 with SMTP id n8-20020a0ce948000000b00696a3091095mr6508219qvo.17.1711680416994; Thu, 28 Mar 2024 19:46:56 -0700 (PDT) MIME-Version: 1.0 References: <20240314042659.232142-1-sjg@chromium.org> <20240314042659.232142-3-sjg@chromium.org> In-Reply-To: From: Simon Glass Date: Fri, 29 Mar 2024 15:46:45 +1300 Message-ID: Subject: Re: [PATCH v11 2/2] arm64: boot: Support Flat Image Tree To: Masahiro Yamada Cc: linux-arm-kernel@lists.infradead.org, Ahmad Fatoum , Nicolas Schier , Catalin Marinas , Jonathan Corbet , Nathan Chancellor , Nick Terrell , Will Deacon , linux-doc@vger.kernel.org, linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org, workflows@vger.kernel.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240328_194659_575652_C0D90FCE X-CRM114-Status: GOOD ( 29.93 ) 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 SGkgTWFzYWhpcm8sCgpPbiBXZWQsIDI3IE1hciAyMDI0IGF0IDAzOjM5LCBNYXNhaGlybyBZYW1h ZGEgPG1hc2FoaXJveUBrZXJuZWwub3JnPiB3cm90ZToKPgo+IE9uIFRodSwgTWFyIDE0LCAyMDI0 IGF0IDE6MjjigK9QTSBTaW1vbiBHbGFzcyA8c2pnQGNocm9taXVtLm9yZz4gd3JvdGU6Cj4gPgo+ ID4gQWRkIGEgc2NyaXB0IHdoaWNoIHByb2R1Y2VzIGEgRmxhdCBJbWFnZSBUcmVlIChGSVQpLCBh IHNpbmdsZSBmaWxlCj4gPiBjb250YWluaW5nIHRoZSBidWlsdCBrZXJuZWwgYW5kIGFzc29jaWF0 ZWQgZGV2aWNldHJlZSBmaWxlcy4KPiA+IENvbXByZXNzaW9uIGRlZmF1bHRzIHRvIGd6aXAgd2hp Y2ggZ2l2ZXMgYSBnb29kIGJhbGFuY2Ugb2Ygc2l6ZSBhbmQKPiA+IHBlcmZvcm1hbmNlLgo+ID4K PiA+IFRoZSBmaWxlcyBjb21wcmVzcyBmcm9tIGFib3V0IDg2TUIgdG8gMjRNQiB1c2luZyB0aGlz IGFwcHJvYWNoLgo+ID4KPiA+IFRoZSBGSVQgY2FuIGJlIHVzZWQgYnkgYm9vdGxvYWRlcnMgd2hp Y2ggc3VwcG9ydCBpdCwgc3VjaCBhcyBVLUJvb3QKPiA+IGFuZCBMaW51eGJvb3QuIEl0IHBlcm1p dHMgYXV0b21hdGljIHNlbGVjdGlvbiBvZiB0aGUgY29ycmVjdAo+ID4gZGV2aWNldHJlZSwgbWF0 Y2hpbmcgdGhlIGNvbXBhdGlibGUgc3RyaW5nIG9mIHRoZSBydW5uaW5nIGJvYXJkIHdpdGgKPiA+ IHRoZSBjbG9zZXN0IGNvbXBhdGlibGUgc3RyaW5nIGluIHRoZSBGSVQuIFRoZXJlIGlzIG5vIG5l ZWQgZm9yCj4gPiBmaWxlbmFtZXMgb3Igb3RoZXIgd29ya2Fyb3VuZHMuCj4gPgo+ID4gQWRkIGEg J21ha2UgaW1hZ2UuZml0JyBidWlsZCB0YXJnZXQgZm9yIGFybTY0LCBhcyB3ZWxsLgo+ID4KPiA+ IFRoZSBGSVQgY2FuIGJlIGV4YW1pbmVkIHVzaW5nICdkdW1waW1hZ2UgLWwnLgo+ID4KPiA+IFRo aXMgdXNlcyB0aGUgJ2R0YnMtbGlzdCcgZmlsZSBidXQgcHJvY2Vzc2VzIG9ubHkgLmR0YiBmaWxl cywgaWdub3JpbmcKPiA+IHRoZSBvdmVybGF5IC5kdGJvIGZpbGVzLgo+ID4KPiA+IFRoaXMgZmVh dHVyZXMgcmVxdWlyZXMgcHlsaWJmZHQgKHVzZSAncGlwIGluc3RhbGwgbGliZmR0JykuIEl0IGFs c28KPiA+IHJlcXVpcmVzIGNvbXByZXNzaW9uIHV0aWxpdGllcyBmb3IgdGhlIGFsZ29yaXRobSBi ZWluZyB1c2VkLiBTdXBwb3J0ZWQKPiA+IGNvbXByZXNzaW9uIG9wdGlvbnMgYXJlIHRoZSBzYW1l IGFzIHRoZSBJbWFnZS54eHggZmlsZXMuIFVzZQo+ID4gRklUX0NPTVBSRVNTSU9OIHRvIHNlbGVj dCBhbiBhbGdvcml0aG0gb3RoZXIgdGhhbiBnemlwLgo+ID4KPiA+IFdoaWxlIEZJVCBzdXBwb3J0 cyBhIHJhbWRpc2sgLyBpbml0cmQsIG5vIGF0dGVtcHQgaXMgbWFkZSB0byBzdXBwb3J0Cj4gPiB0 aGlzIGhlcmUsIHNpbmNlIGl0IG11c3QgYmUgYnVpbHQgc2VwYXJhdGVseSBmcm9tIHRoZSBMaW51 eCBidWlsZC4KPiA+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBTaW1vbiBHbGFzcyA8c2pnQGNocm9taXVt Lm9yZz4KPiA+IC0tLQo+ID4KPiA+IENoYW5nZXMgaW4gdjExOgo+ID4gLSBVc2UgZHRic2xpc3Qg ZmlsZSBpbiBpbWFnZS5maXQgcnVsZQo+ID4gLSBVcGRhdGUgY21kX2ZpdCBydWxlIGFzIHBlciBN YXNhaGlybwo+ID4gLSBEb24ndCBtZW50aW9uIGlnbm9yaW5nIGZpbGVzIHdpdGhvdXQgYSAuZHRi IHByZWZpeAo+ID4gLSBVc2UgYXJncGFyc2UgZnJvbWZpbGVfcHJlZml4X2NoYXJzIGZlYXR1cmUK PiA+IC0gQWRkIGEgLXYgb3B0aW9uIGFuZCB1c2UgaXQgZm9yIG91dHB1dCAod2l0aCBtYWtlIFY9 MSkKPiA+IC0gcmVuYW1lIHNyY2RpciB0byBkdGJzCj4gPiAtIFVzZSAtbyBmb3IgdGhlIG91dHB1 dCBmaWxlIGluc3RlYWQgb2YgLWYKPiA+Cj4KPgo+Cj4KPiA+IC0tLSBhL3NjcmlwdHMvTWFrZWZp bGUubGliCj4gPiArKysgYi9zY3JpcHRzL01ha2VmaWxlLmxpYgo+ID4gQEAgLTUwNCw2ICs1MDQs MjEgQEAgcXVpZXRfY21kX3VpbWFnZSA9IFVJTUFHRSAgJEAKPiA+ICAgICAgICAgICAgICAgICAg ICAgICAgIC1hICQoVUlNQUdFX0xPQURBRERSKSAtZSAkKFVJTUFHRV9FTlRSWUFERFIpIFwKPiA+ ICAgICAgICAgICAgICAgICAgICAgICAgIC1uICckKFVJTUFHRV9OQU1FKScgLWQgJDwgJEAKPiA+ Cj4gPiArIyBGbGF0IEltYWdlIFRyZWUgKEZJVCkKPiA+ICsjIFRoaXMgYWxsb3dzIGZvciBwYWNr YWdpbmcgb2YgYSBrZXJuZWwgYW5kIGFsbCBkZXZpY2V0cmVlcyBmaWxlcywgdXNpbmcKPiA+ICsj IGNvbXByZXNzaW9uLgo+ID4gKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiArCj4gPiArTUFLRV9G SVQgOj0gJChzcmN0cmVlKS9zY3JpcHRzL21ha2VfZml0LnB5Cj4gPiArCj4gPiArIyBVc2UgdGhp cyB0byBvdmVycmlkZSB0aGUgY29tcHJlc3Npb24gYWxnb3JpdGhtCj4gPiArRklUX0NPTVBSRVNT SU9OID89IGd6aXAKPiA+ICsKPiA+ICtxdWlldF9jbWRfZml0ID0gRklUICAgICAkQAo+ID4gKyAg ICAgIGNtZF9maXQgPSAkKE1BS0VfRklUKSAtbyAkQCAtLWFyY2ggJChVSU1BR0VfQVJDSCkgLS1v cyBsaW51eCBcCj4gPiArICAgICAgICAgICAgICAgLS1uYW1lICckKFVJTUFHRV9OQU1FKScgJChp ZiAkKFYpLC12KSBcCj4gPiArICAgICAgICAgICAgICAgLS1jb21wcmVzcyAkKEZJVF9DT01QUkVT U0lPTikgLWsgJDwgQCQod29yZCAyLCReKQo+ID4gKwo+Cj4KPgo+Cj4gQSBuaXQgaW4geW91ciBu ZXcgY29kZS4KPgo+Cj4gJChpZiAkKFYpLC12KSBkb2VzIG5vdCB3b3JrIGZvciBLQlVJTERfVkVS Qk9TRSBlbnYgdmFyaWFibGUuCj4KPgo+IEl0IHNob3VsZCBiZQo+Cj4gICAgICQoaWYgJChmaW5k c3RyaW5nIDEsJChLQlVJTERfVkVSQk9TRSkpLC12KQoKT0ssIHRoYW5rIHlvdS4gSSB3YXMgYXNz dW1pbmcgdGhhdCBWPTAgd291bGQgbm90IGJlIHBhc3NlZCwgYnV0IHRoaXMKaXMgYmV0dGVyLiBJ IHdpbGwgc2VuZCB2MTIuCgpSZWdhcmRzLApTaW1vbgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGlu dXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQu b3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=