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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id AC72CC76196 for ; Fri, 24 Mar 2023 23:34:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231461AbjCXXeN (ORCPT ); Fri, 24 Mar 2023 19:34:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33240 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229753AbjCXXeM (ORCPT ); Fri, 24 Mar 2023 19:34:12 -0400 Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com [IPv6:2a00:1450:4864:20::530]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B5DFB2128; Fri, 24 Mar 2023 16:34:10 -0700 (PDT) Received: by mail-ed1-x530.google.com with SMTP id eg48so13703773edb.13; Fri, 24 Mar 2023 16:34:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1679700849; 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=UgItKrX+omIU9rZpNlw4Q+2It9vk7cbT9xavBL46gQE=; b=jhhtQYQhwSI1lUOacB6rX6mQ6I9kcNngJjlT25U2XMe2EBOP2LZkRzUJI5uO0onZT9 QS9spWGM6ub7lEX5PQZwpfVufsW/HoiurnwsZyA2JTDaiwfFSGhG3Oyfl9SQh71iG0o3 gjrCNIk+aT5plzF5gcJbsHAkNqknm6OhSvr3lkAgVe9naRZHzLaNBPCa+rap90AcIItL s6LZax6BRYSjhY2VW9RIyvIRwNJQxZdmYddrdrqUv6Q5kBUdshsk0EfRiWXpLL670K9e Kf2QljzpYsiwn7F2/BINg4/dXiHGDT/VdChMuPjee77g6zEwfTERr7XSoLdaisvZKjFH Q6iQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679700849; 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=UgItKrX+omIU9rZpNlw4Q+2It9vk7cbT9xavBL46gQE=; b=RBBEE7e8LW+JEhgcX21HwWdlkLFJIKqQoe9u8L9yT6r7idHKzBj2ETTX7LrhaX6Vdq nBmuMrQ+OiIJ3eBvOYV0gKSSpj4Vh8GVIuBTlmh5vgBsQo3TbHhymOhyHOzSCxaY0tDq FWd06D52B2gPIL2R/JvYJuNgbxhH3fG+CWX+NHUKL4qbr+4AehqKbXfL2nSDO2q8spYe W9jotzZTRTNe/g6BLuUCtSV4rASa0WG8mam1ZfhZiLmwlvNqUbPPBY9WQJB8BDr+rkDt VpTDA0TEaHwbR21IHyG3ILRAMf3JAEyiu3pOeiWilmfXKpPMUY0oM/uxjg/mlVjRUwnY sOBA== X-Gm-Message-State: AAQBX9dQRbWvO/G5IlScfvE+TP3T1+amRAGJyapvy2AO7m2v3JcOom9L IfKx3Z59ZuMIoWHfEH5DYTplaw4XjvLVYxnfFjI= X-Google-Smtp-Source: AKy350brcVccDKLSCNemmSxxbeInWb75qa6vMOl2tfUtV4JIn1vn2IHNipB+v4CqYEiT4ZW+T2GgE8018gwBsfqqAjE= X-Received: by 2002:a17:907:f90:b0:924:32b2:e3d1 with SMTP id kb16-20020a1709070f9000b0092432b2e3d1mr2278540ejc.3.1679700848823; Fri, 24 Mar 2023 16:34:08 -0700 (PDT) MIME-Version: 1.0 References: <20221012233500.156764-1-masahiroy@kernel.org> In-Reply-To: From: Alexei Starovoitov Date: Fri, 24 Mar 2023 16:33:57 -0700 Message-ID: Subject: Re: [PATCH] arm64: remove special treatment for the link order of head.o To: Ard Biesheuvel , Jiri Olsa , Andrii Nakryiko , Alan Maguire Cc: Masahiro Yamada , Catalin Marinas , Will Deacon , linux-arm-kernel@lists.infradead.org, linux-arch@vger.kernel.org, Nicolas Schier , linux-kernel@vger.kernel.org, Martin KaFai Lau , "open list:BPF JIT for MIPS (32-BIT AND 64-BIT)" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Mar 24, 2023 at 4:39=E2=80=AFAM Ard Biesheuvel wr= ote: > > (cc BTF list and maintainer) > > On Thu, 23 Mar 2023 at 22:12, Aurelien Jarno wrote= : > > > > Hi, > > > > On 2023-03-22 15:51, Ard Biesheuvel wrote: > > > On Tue, 21 Mar 2023 at 23:26, Aurelien Jarno w= rote: > > > > > > > > Hi, > > > > > > > > On 2022-10-13 08:35, Masahiro Yamada wrote: > > > > > In the previous discussion (see the Link tag), Ard pointed out th= at > > > > > arm/arm64/kernel/head.o does not need any special treatment - the= only > > > > > piece that must appear right at the start of the binary image is = the > > > > > image header which is emitted into .head.text. > > > > > > > > > > The linker script does the right thing to do. The build system do= es > > > > > not need to manipulate the link order of head.o. > > > > > > > > > > Link: https://lore.kernel.org/lkml/CAMj1kXH77Ja8bSsq2Qj8Ck9iSZKw= =3D1F8Uy-uAWGVDm4-CG=3DEuA@mail.gmail.com/ > > > > > Suggested-by: Ard Biesheuvel > > > > > Signed-off-by: Masahiro Yamada > > > > > --- > > > > > > > > > > scripts/head-object-list.txt | 1 - > > > > > 1 file changed, 1 deletion(-) > > > > > > > > > > diff --git a/scripts/head-object-list.txt b/scripts/head-object-l= ist.txt > > > > > index b16326a92c45..f226e45e3b7b 100644 > > > > > --- a/scripts/head-object-list.txt > > > > > +++ b/scripts/head-object-list.txt > > > > > @@ -15,7 +15,6 @@ arch/alpha/kernel/head.o > > > > > arch/arc/kernel/head.o > > > > > arch/arm/kernel/head-nommu.o > > > > > arch/arm/kernel/head.o > > > > > -arch/arm64/kernel/head.o > > > > > arch/csky/kernel/head.o > > > > > arch/hexagon/kernel/head.o > > > > > arch/ia64/kernel/head.o > > > > > > > > This patch causes a significant increase of the arch/arm64/boot/Ima= ge > > > > size. For instance the generic arm64 Debian kernel went from 31 to = 39 MB > > > > after this patch has been applied to the 6.1 stable tree. > > > > > > > > In turn this causes issues with some bootloaders, for instance U-Bo= ot on > > > > a Raspberry Pi limits the kernel size to 36 MB. > > > > > > > > > > I cannot reproduce this with mainline > > > > > > With the patch > > > > > > $ size vmlinux > > > text data bss dec hex filename > > > 24567309 14752630 621680 39941619 26175f3 vmlinux > > > > > > With the patch reverted > > > > > > $ size vmlinux > > > text data bss dec hex filename > > > 24567309 14752694 621680 39941683 2617633 vmlinux > > > > I have tried with the current mainline, this is what I get, using GCC 1= 2.2.0 > > and binutils 2.40: > > > > text data bss dec hex filename > > 32531655 8192996 621968 41346619 276e63b vmlinux.orig > > 25170610 8192996 621968 33985574 2069426 vmlinux.revert > > > > > It would help to compare the resulting vmlinux ELF images from both > > > builds to see where the extra space is being allocated > > > > At a first glance, it seems the extra space is allocated in the BTF > > section. I have uploaded the resulting files as well as the config file > > I used there: > > https://temp.aurel32.net/linux-arm64-size-head.o.tar.gz > > > > Indeed. So we go from > > [15] .BTF PROGBITS ffff8000091d1ff4 011e1ff4 > 00000000005093d6 0000000000000000 A 0 0 1 > > to > > [15] .BTF PROGBITS ffff8000091d1ff4 011e1ff4 > 0000000000c0e5eb 0000000000000000 A 0 0 1 > > i.e, from 5 MiB to 12+ MiB of BTF metadata. > > To me, it is not clear at all how one would be related to the other, > so it will leave it to the Kbuild and BTF experts to chew on this one. That's a huge increase. It's not just that commit responsible, but the whole series ? https://lore.kernel.org/lkml/20220906061313.1445810-1-masahiroy@kernel.org/ I'm guessing "Link vmlinux and modules in parallel" is related. I'm not sure what "parallel link" means. Running 'ar' in parallel? I cannot read makefile syntax, so no idea. Jiri, Andrii, Alan, please take a look. 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 B39EBC76195 for ; Fri, 24 Mar 2023 23:35:18 +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=0PODBMxayyZbbhbbj+uSEiiDToETcPQ/t5cVTOoc+lE=; b=vz6surWnvWfsQ7 E8+6YpWB0/4p3m5kHB431wE5fSP15EWSlQYo70jAk07nTldAwC/oWpQ5Zv+kJARkwEXz8/r98xUvP VbnQcNwbs/rSdrHi7pFNVlD90932UsZ+R+YCQuxzBKwzqm3KGlAj1gxONi2PsJB7aYHz9OTo9RXjz bKIcC8PsH3sHwoxkr70cA2o9P+6wmgKcXN4pj72PsSahAW/EO2GyxlQeZ0hQ2ZVKSuT08kZHI9NVX MLCifbQgwtoZD9RE1r3xDtVMK8F7wYO3l3XsMU9mL3jOTa3ksJBn/Hhd6dbaGkcjui1XnQN2/7EEr /FDVvnU1WXD+r70qty0Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1pfqvL-005pFA-1w; Fri, 24 Mar 2023 23:34:19 +0000 Received: from mail-ed1-x52e.google.com ([2a00:1450:4864:20::52e]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1pfqvI-005pE3-39 for linux-arm-kernel@lists.infradead.org; Fri, 24 Mar 2023 23:34:18 +0000 Received: by mail-ed1-x52e.google.com with SMTP id y4so13892445edo.2 for ; Fri, 24 Mar 2023 16:34:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1679700849; 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=UgItKrX+omIU9rZpNlw4Q+2It9vk7cbT9xavBL46gQE=; b=jhhtQYQhwSI1lUOacB6rX6mQ6I9kcNngJjlT25U2XMe2EBOP2LZkRzUJI5uO0onZT9 QS9spWGM6ub7lEX5PQZwpfVufsW/HoiurnwsZyA2JTDaiwfFSGhG3Oyfl9SQh71iG0o3 gjrCNIk+aT5plzF5gcJbsHAkNqknm6OhSvr3lkAgVe9naRZHzLaNBPCa+rap90AcIItL s6LZax6BRYSjhY2VW9RIyvIRwNJQxZdmYddrdrqUv6Q5kBUdshsk0EfRiWXpLL670K9e Kf2QljzpYsiwn7F2/BINg4/dXiHGDT/VdChMuPjee77g6zEwfTERr7XSoLdaisvZKjFH Q6iQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679700849; 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=UgItKrX+omIU9rZpNlw4Q+2It9vk7cbT9xavBL46gQE=; b=j497OjgmqDO1DgOKvnxznH1rGxXvJt1jfe4HpGoYgNRs4rkX3nmXLMJGdz+XS+HKR6 NLUDJjk+uV3B0OP/mftNIQHo9l6Bfp4rqH2Pv54APHvCCgjlG8NCAtP3U7agxBQNvdf0 R5b+JcXVfhwfTdn37N0KE+/x51tdxdEgOdyvEcLiMjqPhytAYEGf62hiud7L085aG9z4 x77BoVx18wwNnQAl3axiRreI0cSMgOGK1pmtbxnyCMyJ0us1+WpmzqnU9b8q5Irdopow 9sfips67J8Oa5oLklqHCXPdBODKY+bHiM+zrPS5VIWllsNRdQbWRoJtDHGHwB/MnM2Hm UERw== X-Gm-Message-State: AAQBX9fGCbC+1GIm1oUVQ4dlwN/EDV3jKf7lbUPFCdjywXOvVOjw+OHD bndpI0JJqL9NxTnRMNDG+JAP3LynOa/gowHCt/E= X-Google-Smtp-Source: AKy350brcVccDKLSCNemmSxxbeInWb75qa6vMOl2tfUtV4JIn1vn2IHNipB+v4CqYEiT4ZW+T2GgE8018gwBsfqqAjE= X-Received: by 2002:a17:907:f90:b0:924:32b2:e3d1 with SMTP id kb16-20020a1709070f9000b0092432b2e3d1mr2278540ejc.3.1679700848823; Fri, 24 Mar 2023 16:34:08 -0700 (PDT) MIME-Version: 1.0 References: <20221012233500.156764-1-masahiroy@kernel.org> In-Reply-To: From: Alexei Starovoitov Date: Fri, 24 Mar 2023 16:33:57 -0700 Message-ID: Subject: Re: [PATCH] arm64: remove special treatment for the link order of head.o To: Ard Biesheuvel , Jiri Olsa , Andrii Nakryiko , Alan Maguire Cc: Masahiro Yamada , Catalin Marinas , Will Deacon , linux-arm-kernel@lists.infradead.org, linux-arch@vger.kernel.org, Nicolas Schier , linux-kernel@vger.kernel.org, Martin KaFai Lau , "open list:BPF JIT for MIPS (32-BIT AND 64-BIT)" X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230324_163417_016310_764D22FC X-CRM114-Status: GOOD ( 42.41 ) 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 T24gRnJpLCBNYXIgMjQsIDIwMjMgYXQgNDozOeKAr0FNIEFyZCBCaWVzaGV1dmVsIDxhcmRiQGtl cm5lbC5vcmc+IHdyb3RlOgo+Cj4gKGNjIEJURiBsaXN0IGFuZCBtYWludGFpbmVyKQo+Cj4gT24g VGh1LCAyMyBNYXIgMjAyMyBhdCAyMjoxMiwgQXVyZWxpZW4gSmFybm8gPGF1cmVsaWVuQGF1cmVs MzIubmV0PiB3cm90ZToKPiA+Cj4gPiBIaSwKPiA+Cj4gPiBPbiAyMDIzLTAzLTIyIDE1OjUxLCBB cmQgQmllc2hldXZlbCB3cm90ZToKPiA+ID4gT24gVHVlLCAyMSBNYXIgMjAyMyBhdCAyMzoyNiwg QXVyZWxpZW4gSmFybm8gPGF1cmVsaWVuQGF1cmVsMzIubmV0PiB3cm90ZToKPiA+ID4gPgo+ID4g PiA+IEhpLAo+ID4gPiA+Cj4gPiA+ID4gT24gMjAyMi0xMC0xMyAwODozNSwgTWFzYWhpcm8gWWFt YWRhIHdyb3RlOgo+ID4gPiA+ID4gSW4gdGhlIHByZXZpb3VzIGRpc2N1c3Npb24gKHNlZSB0aGUg TGluayB0YWcpLCBBcmQgcG9pbnRlZCBvdXQgdGhhdAo+ID4gPiA+ID4gYXJtL2FybTY0L2tlcm5l bC9oZWFkLm8gZG9lcyBub3QgbmVlZCBhbnkgc3BlY2lhbCB0cmVhdG1lbnQgLSB0aGUgb25seQo+ ID4gPiA+ID4gcGllY2UgdGhhdCBtdXN0IGFwcGVhciByaWdodCBhdCB0aGUgc3RhcnQgb2YgdGhl IGJpbmFyeSBpbWFnZSBpcyB0aGUKPiA+ID4gPiA+IGltYWdlIGhlYWRlciB3aGljaCBpcyBlbWl0 dGVkIGludG8gLmhlYWQudGV4dC4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBUaGUgbGlua2VyIHNjcmlw dCBkb2VzIHRoZSByaWdodCB0aGluZyB0byBkby4gVGhlIGJ1aWxkIHN5c3RlbSBkb2VzCj4gPiA+ ID4gPiBub3QgbmVlZCB0byBtYW5pcHVsYXRlIHRoZSBsaW5rIG9yZGVyIG9mIGhlYWQuby4KPiA+ ID4gPiA+Cj4gPiA+ID4gPiBMaW5rOiBodHRwczovL2xvcmUua2VybmVsLm9yZy9sa21sL0NBTWox a1hINzdKYThiU3NxMlFqOENrOWlTWkt3PTFGOFV5LXVBV0dWRG00LUNHPUV1QUBtYWlsLmdtYWls LmNvbS8KPiA+ID4gPiA+IFN1Z2dlc3RlZC1ieTogQXJkIEJpZXNoZXV2ZWwgPGFyZGJAa2VybmVs Lm9yZz4KPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IE1hc2FoaXJvIFlhbWFkYSA8bWFzYWhpcm95 QGtlcm5lbC5vcmc+Cj4gPiA+ID4gPiAtLS0KPiA+ID4gPiA+Cj4gPiA+ID4gPiAgc2NyaXB0cy9o ZWFkLW9iamVjdC1saXN0LnR4dCB8IDEgLQo+ID4gPiA+ID4gIDEgZmlsZSBjaGFuZ2VkLCAxIGRl bGV0aW9uKC0pCj4gPiA+ID4gPgo+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL3NjcmlwdHMvaGVhZC1v YmplY3QtbGlzdC50eHQgYi9zY3JpcHRzL2hlYWQtb2JqZWN0LWxpc3QudHh0Cj4gPiA+ID4gPiBp bmRleCBiMTYzMjZhOTJjNDUuLmYyMjZlNDVlM2I3YiAxMDA2NDQKPiA+ID4gPiA+IC0tLSBhL3Nj cmlwdHMvaGVhZC1vYmplY3QtbGlzdC50eHQKPiA+ID4gPiA+ICsrKyBiL3NjcmlwdHMvaGVhZC1v YmplY3QtbGlzdC50eHQKPiA+ID4gPiA+IEBAIC0xNSw3ICsxNSw2IEBAIGFyY2gvYWxwaGEva2Vy bmVsL2hlYWQubwo+ID4gPiA+ID4gIGFyY2gvYXJjL2tlcm5lbC9oZWFkLm8KPiA+ID4gPiA+ICBh cmNoL2FybS9rZXJuZWwvaGVhZC1ub21tdS5vCj4gPiA+ID4gPiAgYXJjaC9hcm0va2VybmVsL2hl YWQubwo+ID4gPiA+ID4gLWFyY2gvYXJtNjQva2VybmVsL2hlYWQubwo+ID4gPiA+ID4gIGFyY2gv Y3NreS9rZXJuZWwvaGVhZC5vCj4gPiA+ID4gPiAgYXJjaC9oZXhhZ29uL2tlcm5lbC9oZWFkLm8K PiA+ID4gPiA+ICBhcmNoL2lhNjQva2VybmVsL2hlYWQubwo+ID4gPiA+Cj4gPiA+ID4gVGhpcyBw YXRjaCBjYXVzZXMgYSBzaWduaWZpY2FudCBpbmNyZWFzZSBvZiB0aGUgYXJjaC9hcm02NC9ib290 L0ltYWdlCj4gPiA+ID4gc2l6ZS4gRm9yIGluc3RhbmNlIHRoZSBnZW5lcmljIGFybTY0IERlYmlh biBrZXJuZWwgd2VudCBmcm9tIDMxIHRvIDM5IE1CCj4gPiA+ID4gYWZ0ZXIgdGhpcyBwYXRjaCBo YXMgYmVlbiBhcHBsaWVkIHRvIHRoZSA2LjEgc3RhYmxlIHRyZWUuCj4gPiA+ID4KPiA+ID4gPiBJ biB0dXJuIHRoaXMgY2F1c2VzIGlzc3VlcyB3aXRoIHNvbWUgYm9vdGxvYWRlcnMsIGZvciBpbnN0 YW5jZSBVLUJvb3Qgb24KPiA+ID4gPiBhIFJhc3BiZXJyeSBQaSBsaW1pdHMgdGhlIGtlcm5lbCBz aXplIHRvIDM2IE1CLgo+ID4gPiA+Cj4gPiA+Cj4gPiA+IEkgY2Fubm90IHJlcHJvZHVjZSB0aGlz IHdpdGggbWFpbmxpbmUKPiA+ID4KPiA+ID4gV2l0aCB0aGUgcGF0Y2gKPiA+ID4KPiA+ID4gJCBz aXplIHZtbGludXgKPiA+ID4gICAgdGV4dCAgICBkYXRhICAgICBic3MgICAgIGRlYyAgICAgaGV4 IGZpbGVuYW1lCj4gPiA+IDI0NTY3MzA5IDE0NzUyNjMwIDYyMTY4MCAzOTk0MTYxOSAyNjE3NWYz IHZtbGludXgKPiA+ID4KPiA+ID4gV2l0aCB0aGUgcGF0Y2ggcmV2ZXJ0ZWQKPiA+ID4KPiA+ID4g JCBzaXplIHZtbGludXgKPiA+ID4gICAgdGV4dCAgICBkYXRhICAgICBic3MgICAgIGRlYyAgICAg aGV4IGZpbGVuYW1lCj4gPiA+IDI0NTY3MzA5IDE0NzUyNjk0IDYyMTY4MCAzOTk0MTY4MyAyNjE3 NjMzIHZtbGludXgKPiA+Cj4gPiBJIGhhdmUgdHJpZWQgd2l0aCB0aGUgY3VycmVudCBtYWlubGlu ZSwgdGhpcyBpcyB3aGF0IEkgZ2V0LCB1c2luZyBHQ0MgMTIuMi4wCj4gPiBhbmQgYmludXRpbHMg Mi40MDoKPiA+Cj4gPiAgICB0ZXh0ICAgIGRhdGEgICAgIGJzcyAgICAgZGVjICAgICBoZXggZmls ZW5hbWUKPiA+IDMyNTMxNjU1ICAgICAgICA4MTkyOTk2ICA2MjE5NjggNDEzNDY2MTkgICAgICAg IDI3NmU2M2Igdm1saW51eC5vcmlnCj4gPiAyNTE3MDYxMCAgICAgICAgODE5Mjk5NiAgNjIxOTY4 IDMzOTg1NTc0ICAgICAgICAyMDY5NDI2IHZtbGludXgucmV2ZXJ0Cj4gPgo+ID4gPiBJdCB3b3Vs ZCBoZWxwIHRvIGNvbXBhcmUgdGhlIHJlc3VsdGluZyB2bWxpbnV4IEVMRiBpbWFnZXMgZnJvbSBi b3RoCj4gPiA+IGJ1aWxkcyB0byBzZWUgd2hlcmUgdGhlIGV4dHJhIHNwYWNlIGlzIGJlaW5nIGFs bG9jYXRlZAo+ID4KPiA+IEF0IGEgZmlyc3QgZ2xhbmNlLCBpdCBzZWVtcyB0aGUgZXh0cmEgc3Bh Y2UgaXMgYWxsb2NhdGVkIGluIHRoZSBCVEYKPiA+IHNlY3Rpb24uIEkgaGF2ZSB1cGxvYWRlZCB0 aGUgcmVzdWx0aW5nIGZpbGVzIGFzIHdlbGwgYXMgdGhlIGNvbmZpZyBmaWxlCj4gPiBJIHVzZWQg dGhlcmU6Cj4gPiBodHRwczovL3RlbXAuYXVyZWwzMi5uZXQvbGludXgtYXJtNjQtc2l6ZS1oZWFk Lm8udGFyLmd6Cj4gPgo+Cj4gSW5kZWVkLiBTbyB3ZSBnbyBmcm9tCj4KPiAgIFsxNV0gLkJURiAg ICAgICAgICAgICAgUFJPR0JJVFMgICAgICAgICBmZmZmODAwMDA5MWQxZmY0ICAwMTFlMWZmNAo+ ICAgICAgICAwMDAwMDAwMDAwNTA5M2Q2ICAwMDAwMDAwMDAwMDAwMDAwICAgQSAgICAgICAwICAg ICAwICAgICAxCj4KPiB0bwo+Cj4gICBbMTVdIC5CVEYgICAgICAgICAgICAgIFBST0dCSVRTICAg ICAgICAgZmZmZjgwMDAwOTFkMWZmNCAgMDExZTFmZjQKPiAgICAgICAgMDAwMDAwMDAwMGMwZTVl YiAgMDAwMDAwMDAwMDAwMDAwMCAgIEEgICAgICAgMCAgICAgMCAgICAgMQo+Cj4gaS5lLCBmcm9t IDUgTWlCIHRvIDEyKyBNaUIgb2YgQlRGIG1ldGFkYXRhLgo+Cj4gVG8gbWUsIGl0IGlzIG5vdCBj bGVhciBhdCBhbGwgaG93IG9uZSB3b3VsZCBiZSByZWxhdGVkIHRvIHRoZSBvdGhlciwKPiBzbyBp dCB3aWxsIGxlYXZlIGl0IHRvIHRoZSBLYnVpbGQgYW5kIEJURiBleHBlcnRzIHRvIGNoZXcgb24g dGhpcyBvbmUuCgpUaGF0J3MgYSBodWdlIGluY3JlYXNlLgpJdCdzIG5vdCBqdXN0IHRoYXQgY29t bWl0IHJlc3BvbnNpYmxlLCBidXQgdGhlIHdob2xlIHNlcmllcyA/Cmh0dHBzOi8vbG9yZS5rZXJu ZWwub3JnL2xrbWwvMjAyMjA5MDYwNjEzMTMuMTQ0NTgxMC0xLW1hc2FoaXJveUBrZXJuZWwub3Jn LwpJJ20gZ3Vlc3NpbmcgIkxpbmsgdm1saW51eCBhbmQgbW9kdWxlcyBpbiBwYXJhbGxlbCIgaXMg cmVsYXRlZC4KSSdtIG5vdCBzdXJlIHdoYXQgInBhcmFsbGVsIGxpbmsiIG1lYW5zLiBSdW5uaW5n ICdhcicgaW4gcGFyYWxsZWw/CkkgY2Fubm90IHJlYWQgbWFrZWZpbGUgc3ludGF4LCBzbyBubyBp ZGVhLgoKSmlyaSwgQW5kcmlpLCBBbGFuLCBwbGVhc2UgdGFrZSBhIGxvb2suCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1h aWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xp c3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==