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 60908C76196 for ; Sat, 25 Mar 2023 11:42:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231308AbjCYLmr (ORCPT ); Sat, 25 Mar 2023 07:42:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58386 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229600AbjCYLmq (ORCPT ); Sat, 25 Mar 2023 07:42:46 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A661540C9; Sat, 25 Mar 2023 04:42:44 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 2FE6760C3A; Sat, 25 Mar 2023 11:42:44 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8BA59C433D2; Sat, 25 Mar 2023 11:42:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679744563; bh=rnV8vhzu4re24iNDIq/2qMh6krx9j4K6r/K6LBYSd1o=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=cU2SNM7Ob/fuo4CkAlaLBPTzSx/Q9Vdi32vE494pPOBjP0GQ5wgMtgDUbUN4k6smP 14bixCzG77Grf19trudyFENlyYdPkz73nu3C3IvnAL2n1k6p99dkFICVJe7G6zjdmi ojSbVJUK2Vv9I7FcHb+9m5rF5SEMFbjX6UGLQXXu6EPWPelyi5dLC7ZGzs1rW+vbvo rfxVZ5O5uHHCqO8FREzOQjaRlrMnELi4va1U9ml27cUTQ5mXZqF16gWmW0P8JmPJ9Z UKs7787/i9/Xf9DMlXxQllkZtuAcahwiBxp+wW19bHo5/C1EfONzXinsrUGlOdqHwA brb+qB5SxUY0w== Received: by mail-oi1-f175.google.com with SMTP id f17so3104196oiw.10; Sat, 25 Mar 2023 04:42:43 -0700 (PDT) X-Gm-Message-State: AO0yUKWg8HJ1R3PHa6PoSlcUiihmz+xIHme+ilB0dS6o9bScnhkA3s6/ nlfmpC6kLsL9c8ojSq0Ys4cfj4jKhpbLZmLsQmU= X-Google-Smtp-Source: AK7set+GftPqKl51eP0hVJ8JeyHT8kMXKRZgx44rAso/ik0kS61bItFbwtMDQt8lpj14WMSyp80hI2PxKbQdflBSX14= X-Received: by 2002:a05:6808:284:b0:384:33df:4dfc with SMTP id z4-20020a056808028400b0038433df4dfcmr1534567oic.11.1679744562739; Sat, 25 Mar 2023 04:42:42 -0700 (PDT) MIME-Version: 1.0 References: <20221012233500.156764-1-masahiroy@kernel.org> In-Reply-To: From: Masahiro Yamada Date: Sat, 25 Mar 2023 20:42:06 +0900 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH] arm64: remove special treatment for the link order of head.o To: Ard Biesheuvel Cc: 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 Sat, Mar 25, 2023 at 3:05=E2=80=AFPM Masahiro Yamada wrote: > > On Fri, Mar 24, 2023 at 8:33=E2=80=AFPM Ard Biesheuvel = wrote: > > > > (cc BTF list and maintainer) > > > > On Thu, 23 Mar 2023 at 22:12, Aurelien Jarno wro= te: > > > > > > Hi, > > > > > > On 2023-03-22 15:51, Ard Biesheuvel wrote: > > > > On Tue, 21 Mar 2023 at 23:26, Aurelien Jarno = wrote: > > > > > > > > > > Hi, > > > > > > > > > > On 2022-10-13 08:35, Masahiro Yamada wrote: > > > > > > In the previous discussion (see the Link tag), Ard pointed out = that > > > > > > arm/arm64/kernel/head.o does not need any special treatment - t= he only > > > > > > piece that must appear right at the start of the binary image i= s the > > > > > > image header which is emitted into .head.text. > > > > > > > > > > > > The linker script does the right thing to do. The build system = does > > > > > > not need to manipulate the link order of head.o. > > > > > > > > > > > > Link: https://lore.kernel.org/lkml/CAMj1kXH77Ja8bSsq2Qj8Ck9iSZK= w=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= -list.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/I= mage > > > > > size. For instance the generic arm64 Debian kernel went from 31 t= o 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-= Boot 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= 12.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.rever= t > > > > > > > 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 fi= le > > > 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. > > > > Strange. > > I used the .config file Aurelien provided, but > I still cannot reproduce this issue. > > > The vmlinux size is small > as-is in the current mainline. > > > > [mainline] > > > masahiro@zoe:~/ref/linux(master)$ git log --oneline -1 > 65aca32efdcb (HEAD -> master, origin/master, origin/HEAD) Merge tag > 'mm-hotfixes-stable-2023-03-24-17-09' of > git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm > masahiro@zoe:~/ref/linux(master)$ aarch64-linux-gnu-size vmlinux > text data bss dec hex filename > 24561282 8186912 622032 33370226 1fd3072 vmlinux > masahiro@zoe:~/ref/linux(master)$ aarch64-linux-gnu-readelf -S > vmlinux | grep -A1 BTF > [15] .BTF PROGBITS ffff8000091c0708 011d0708 > 000000000048209c 0000000000000000 A 0 0 1 > [16] .BTF_ids PROGBITS ffff8000096427a4 016527a4 > 0000000000000a1c 0000000000000000 A 0 0 1 > > > > > [mainline + revert 994b7ac] > > masahiro@zoe:~/ref/linux2(testing)$ git log --oneline -2 > 856c80dd789c (HEAD -> testing) Revert "arm64: remove special treatment > for the link order of head.o" > 65aca32efdcb (origin/master, origin/HEAD, master) Merge tag > 'mm-hotfixes-stable-2023-03-24-17-09' of > git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm > masahiro@zoe:~/ref/linux2(testing)$ aarch64-linux-gnu-size vmlinux > text data bss dec hex filename > 24561329 8186912 622032 33370273 1fd30a1 vmlinux > masahiro@zoe:~/ref/linux2(testing)$ aarch64-linux-gnu-readelf -S > vmlinux | grep -A1 BTF > [15] .BTF PROGBITS ffff8000091c0708 011d0708 > 00000000004820cb 0000000000000000 A 0 0 1 > [16] .BTF_ids PROGBITS ffff8000096427d4 016527d4 > 0000000000000a1c 0000000000000000 A 0 0 1 > > > > I still do not know what affects reproducibility. > (compiler version, pahole version, etc. ?) > > > > > Aurelien used GCC 12 + binutils 2.40, but > my toolchain is a bit older. > > > > FWIW, I tested this on Ubuntu 22.04LTS. > > masahiro@zoe:~/ref/linux(master)$ aarch64-linux-gnu-gcc --version > aarch64-linux-gnu-gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0 > Copyright (C) 2021 Free Software Foundation, Inc. > This is free software; see the source for copying conditions. There is N= O > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOS= E. > > masahiro@zoe:~/ref/linux(master)$ pahole --version > v1.22 > > masahiro@zoe:~/ref/linux(master)$ aarch64-linux-gnu-as --version > GNU assembler (GNU Binutils for Ubuntu) 2.38 > Copyright (C) 2022 Free Software Foundation, Inc. > This program is free software; you may redistribute it under the terms of > the GNU General Public License version 3 or later. > This program has absolutely no warranty. > This assembler was configured for a target of `aarch64-linux-gnu'. I did the same things in Deiban sid in order to use newer versions of tools. Yup, I saw a huge increase in the .BTF section, and observed the difference w/wo 994b7ac. masahiro@3e9802d667e3:~/ref/linux2$ aarch64-linux-gnu-readelf -S vmlinux | grep -A1 BTF [15] .BTF PROGBITS ffff8000091d26c4 011e26c4 000000000093e626 0000000000000000 A 0 0 1 [16] .BTF_ids PROGBITS ffff800009b10cec 01b20cec 0000000000000a1c 0000000000000000 A 0 0 1 I guess some tool might be affecting this. Even with 994b7ac reverted, the .BTF section is much bigger. At the same time, I saw a ton of warnings while building BTF. masahiro@3e9802d667e3:~/ref/linux2$ cat /etc/os-release PRETTY_NAME=3D"Debian GNU/Linux bookworm/sid" NAME=3D"Debian GNU/Linux" VERSION_CODENAME=3Dbookworm ID=3Ddebian HOME_URL=3D"https://www.debian.org/" SUPPORT_URL=3D"https://www.debian.org/support" BUG_REPORT_URL=3D"https://bugs.debian.org/" LD vmlinux BTFIDS vmlinux WARN: multiple IDs found for 'task_struct': 177, 16690 - using 177 WARN: multiple IDs found for 'file': 517, 16712 - using 517 WARN: multiple IDs found for 'vm_area_struct': 524, 16714 - using 524 WARN: multiple IDs found for 'inode': 586, 16773 - using 586 WARN: multiple IDs found for 'path': 618, 16802 - using 618 WARN: multiple IDs found for 'task_struct': 177, 17267 - using 177 WARN: multiple IDs found for 'file': 517, 17312 - using 517 WARN: multiple IDs found for 'vm_area_struct': 524, 17315 - using 524 WARN: multiple IDs found for 'seq_file': 1029, 17376 - using 1029 WARN: multiple IDs found for 'inode': 586, 17494 - using 586 WARN: multiple IDs found for 'path': 618, 17523 - using 618 WARN: multiple IDs found for 'cgroup': 704, 17532 - using 704 WARN: multiple IDs found for 'task_struct': 177, 18652 - using 177 WARN: multiple IDs found for 'file': 517, 18704 - using 517 WARN: multiple IDs found for 'vm_area_struct': 524, 18707 - using 524 WARN: multiple IDs found for 'seq_file': 1029, 18781 - using 1029 WARN: multiple IDs found for 'inode': 586, 18911 - using 586 WARN: multiple IDs found for 'path': 618, 18940 - using 618 WARN: multiple IDs found for 'cgroup': 704, 18949 - using 704 WARN: multiple IDs found for 'task_struct': 177, 20514 - using 177 WARN: multiple IDs found for 'file': 517, 20515 - using 517 WARN: multiple IDs found for 'vm_area_struct': 524, 20541 - using 524 WARN: multiple IDs found for 'inode': 586, 20595 - using 586 WARN: multiple IDs found for 'path': 618, 20624 - using 618 WARN: multiple IDs found for 'cgroup': 704, 20639 - using 704 WARN: multiple IDs found for 'seq_file': 1029, 20801 - using 1029 ... I am not sure whether these warnings are related to the current issue or not. I did not look into it any further. I may not be seeing a sane build result. --=20 Best Regards Masahiro Yamada 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 450F4C6FD1F for ; Sat, 25 Mar 2023 11:43:41 +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=EPh78W8YNtIpiHcvDi9sWXEE/9AXDc58FCiFmN8+RZU=; b=ierDgXJQCJ/yZF +QJLvd1BPq9fUFiJXeBMj6gYvgzmi7wRqUXsicX8+uhv/htOwYd81uZk3T6X8JbkUO/fFu/hSvahg T22pr3flvlSSyUyE28hEvQC84xsLtftn+viz8vAFTdmjepN3KOIORhkfZnHt+ezHYsi78BtkBlE1S AHH52r0qGdw94hkQ+k82wAaUzondW2sS3X+XslIrNeOaWJoduucSZOgzwkZhKFUeBK0ab5IglaAkP 9OHuTfCNoTZqlEBu/Oo/ER3Krub3Hnf5/NP2UCFb0IlvVqctRb3R2MSai7UFo8jD+gmcY4edX2EfE Y+LH0IxByYqRxxK+DQxw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1pg2IK-006cfs-1C; Sat, 25 Mar 2023 11:42:48 +0000 Received: from dfw.source.kernel.org ([2604:1380:4641:c500::1]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1pg2IG-006cfF-2g for linux-arm-kernel@lists.infradead.org; Sat, 25 Mar 2023 11:42:47 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 4941360C3C for ; Sat, 25 Mar 2023 11:42:44 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id AC3E8C433A0 for ; Sat, 25 Mar 2023 11:42:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1679744563; bh=rnV8vhzu4re24iNDIq/2qMh6krx9j4K6r/K6LBYSd1o=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=cU2SNM7Ob/fuo4CkAlaLBPTzSx/Q9Vdi32vE494pPOBjP0GQ5wgMtgDUbUN4k6smP 14bixCzG77Grf19trudyFENlyYdPkz73nu3C3IvnAL2n1k6p99dkFICVJe7G6zjdmi ojSbVJUK2Vv9I7FcHb+9m5rF5SEMFbjX6UGLQXXu6EPWPelyi5dLC7ZGzs1rW+vbvo rfxVZ5O5uHHCqO8FREzOQjaRlrMnELi4va1U9ml27cUTQ5mXZqF16gWmW0P8JmPJ9Z UKs7787/i9/Xf9DMlXxQllkZtuAcahwiBxp+wW19bHo5/C1EfONzXinsrUGlOdqHwA brb+qB5SxUY0w== Received: by mail-oi1-f179.google.com with SMTP id q27so2379480oiw.0 for ; Sat, 25 Mar 2023 04:42:43 -0700 (PDT) X-Gm-Message-State: AO0yUKXvvcgsc5+2/SxoT29m/PTbXJgrEC/B2NaW6y/Ha9ZPgPdGdRZj q23LhXZLJtH8BeeJgeHNILsqC+M6tbDUylmtDqw= X-Google-Smtp-Source: AK7set+GftPqKl51eP0hVJ8JeyHT8kMXKRZgx44rAso/ik0kS61bItFbwtMDQt8lpj14WMSyp80hI2PxKbQdflBSX14= X-Received: by 2002:a05:6808:284:b0:384:33df:4dfc with SMTP id z4-20020a056808028400b0038433df4dfcmr1534567oic.11.1679744562739; Sat, 25 Mar 2023 04:42:42 -0700 (PDT) MIME-Version: 1.0 References: <20221012233500.156764-1-masahiroy@kernel.org> In-Reply-To: From: Masahiro Yamada Date: Sat, 25 Mar 2023 20:42:06 +0900 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH] arm64: remove special treatment for the link order of head.o To: Ard Biesheuvel Cc: 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-20230325_044244_947713_284DEE15 X-CRM114-Status: GOOD ( 54.00 ) 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 T24gU2F0LCBNYXIgMjUsIDIwMjMgYXQgMzowNeKAr1BNIE1hc2FoaXJvIFlhbWFkYSA8bWFzYWhp cm95QGtlcm5lbC5vcmc+IHdyb3RlOgo+Cj4gT24gRnJpLCBNYXIgMjQsIDIwMjMgYXQgODozM+KA r1BNIEFyZCBCaWVzaGV1dmVsIDxhcmRiQGtlcm5lbC5vcmc+IHdyb3RlOgo+ID4KPiA+IChjYyBC VEYgbGlzdCBhbmQgbWFpbnRhaW5lcikKPiA+Cj4gPiBPbiBUaHUsIDIzIE1hciAyMDIzIGF0IDIy OjEyLCBBdXJlbGllbiBKYXJubyA8YXVyZWxpZW5AYXVyZWwzMi5uZXQ+IHdyb3RlOgo+ID4gPgo+ ID4gPiBIaSwKPiA+ID4KPiA+ID4gT24gMjAyMy0wMy0yMiAxNTo1MSwgQXJkIEJpZXNoZXV2ZWwg d3JvdGU6Cj4gPiA+ID4gT24gVHVlLCAyMSBNYXIgMjAyMyBhdCAyMzoyNiwgQXVyZWxpZW4gSmFy bm8gPGF1cmVsaWVuQGF1cmVsMzIubmV0PiB3cm90ZToKPiA+ID4gPiA+Cj4gPiA+ID4gPiBIaSwK PiA+ID4gPiA+Cj4gPiA+ID4gPiBPbiAyMDIyLTEwLTEzIDA4OjM1LCBNYXNhaGlybyBZYW1hZGEg d3JvdGU6Cj4gPiA+ID4gPiA+IEluIHRoZSBwcmV2aW91cyBkaXNjdXNzaW9uIChzZWUgdGhlIExp bmsgdGFnKSwgQXJkIHBvaW50ZWQgb3V0IHRoYXQKPiA+ID4gPiA+ID4gYXJtL2FybTY0L2tlcm5l bC9oZWFkLm8gZG9lcyBub3QgbmVlZCBhbnkgc3BlY2lhbCB0cmVhdG1lbnQgLSB0aGUgb25seQo+ ID4gPiA+ID4gPiBwaWVjZSB0aGF0IG11c3QgYXBwZWFyIHJpZ2h0IGF0IHRoZSBzdGFydCBvZiB0 aGUgYmluYXJ5IGltYWdlIGlzIHRoZQo+ID4gPiA+ID4gPiBpbWFnZSBoZWFkZXIgd2hpY2ggaXMg ZW1pdHRlZCBpbnRvIC5oZWFkLnRleHQuCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IFRoZSBsaW5r ZXIgc2NyaXB0IGRvZXMgdGhlIHJpZ2h0IHRoaW5nIHRvIGRvLiBUaGUgYnVpbGQgc3lzdGVtIGRv ZXMKPiA+ID4gPiA+ID4gbm90IG5lZWQgdG8gbWFuaXB1bGF0ZSB0aGUgbGluayBvcmRlciBvZiBo ZWFkLm8uCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IExpbms6IGh0dHBzOi8vbG9yZS5rZXJuZWwu b3JnL2xrbWwvQ0FNajFrWEg3N0phOGJTc3EyUWo4Q2s5aVNaS3c9MUY4VXktdUFXR1ZEbTQtQ0c9 RXVBQG1haWwuZ21haWwuY29tLwo+ID4gPiA+ID4gPiBTdWdnZXN0ZWQtYnk6IEFyZCBCaWVzaGV1 dmVsIDxhcmRiQGtlcm5lbC5vcmc+Cj4gPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IE1hc2FoaXJv IFlhbWFkYSA8bWFzYWhpcm95QGtlcm5lbC5vcmc+Cj4gPiA+ID4gPiA+IC0tLQo+ID4gPiA+ID4g Pgo+ID4gPiA+ID4gPiAgc2NyaXB0cy9oZWFkLW9iamVjdC1saXN0LnR4dCB8IDEgLQo+ID4gPiA+ ID4gPiAgMSBmaWxlIGNoYW5nZWQsIDEgZGVsZXRpb24oLSkKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ ID4gZGlmZiAtLWdpdCBhL3NjcmlwdHMvaGVhZC1vYmplY3QtbGlzdC50eHQgYi9zY3JpcHRzL2hl YWQtb2JqZWN0LWxpc3QudHh0Cj4gPiA+ID4gPiA+IGluZGV4IGIxNjMyNmE5MmM0NS4uZjIyNmU0 NWUzYjdiIDEwMDY0NAo+ID4gPiA+ID4gPiAtLS0gYS9zY3JpcHRzL2hlYWQtb2JqZWN0LWxpc3Qu dHh0Cj4gPiA+ID4gPiA+ICsrKyBiL3NjcmlwdHMvaGVhZC1vYmplY3QtbGlzdC50eHQKPiA+ID4g PiA+ID4gQEAgLTE1LDcgKzE1LDYgQEAgYXJjaC9hbHBoYS9rZXJuZWwvaGVhZC5vCj4gPiA+ID4g PiA+ICBhcmNoL2FyYy9rZXJuZWwvaGVhZC5vCj4gPiA+ID4gPiA+ICBhcmNoL2FybS9rZXJuZWwv aGVhZC1ub21tdS5vCj4gPiA+ID4gPiA+ICBhcmNoL2FybS9rZXJuZWwvaGVhZC5vCj4gPiA+ID4g PiA+IC1hcmNoL2FybTY0L2tlcm5lbC9oZWFkLm8KPiA+ID4gPiA+ID4gIGFyY2gvY3NreS9rZXJu ZWwvaGVhZC5vCj4gPiA+ID4gPiA+ICBhcmNoL2hleGFnb24va2VybmVsL2hlYWQubwo+ID4gPiA+ ID4gPiAgYXJjaC9pYTY0L2tlcm5lbC9oZWFkLm8KPiA+ID4gPiA+Cj4gPiA+ID4gPiBUaGlzIHBh dGNoIGNhdXNlcyBhIHNpZ25pZmljYW50IGluY3JlYXNlIG9mIHRoZSBhcmNoL2FybTY0L2Jvb3Qv SW1hZ2UKPiA+ID4gPiA+IHNpemUuIEZvciBpbnN0YW5jZSB0aGUgZ2VuZXJpYyBhcm02NCBEZWJp YW4ga2VybmVsIHdlbnQgZnJvbSAzMSB0byAzOSBNQgo+ID4gPiA+ID4gYWZ0ZXIgdGhpcyBwYXRj aCBoYXMgYmVlbiBhcHBsaWVkIHRvIHRoZSA2LjEgc3RhYmxlIHRyZWUuCj4gPiA+ID4gPgo+ID4g PiA+ID4gSW4gdHVybiB0aGlzIGNhdXNlcyBpc3N1ZXMgd2l0aCBzb21lIGJvb3Rsb2FkZXJzLCBm b3IgaW5zdGFuY2UgVS1Cb290IG9uCj4gPiA+ID4gPiBhIFJhc3BiZXJyeSBQaSBsaW1pdHMgdGhl IGtlcm5lbCBzaXplIHRvIDM2IE1CLgo+ID4gPiA+ID4KPiA+ID4gPgo+ID4gPiA+IEkgY2Fubm90 IHJlcHJvZHVjZSB0aGlzIHdpdGggbWFpbmxpbmUKPiA+ID4gPgo+ID4gPiA+IFdpdGggdGhlIHBh dGNoCj4gPiA+ID4KPiA+ID4gPiAkIHNpemUgdm1saW51eAo+ID4gPiA+ICAgIHRleHQgICAgZGF0 YSAgICAgYnNzICAgICBkZWMgICAgIGhleCBmaWxlbmFtZQo+ID4gPiA+IDI0NTY3MzA5IDE0NzUy NjMwIDYyMTY4MCAzOTk0MTYxOSAyNjE3NWYzIHZtbGludXgKPiA+ID4gPgo+ID4gPiA+IFdpdGgg dGhlIHBhdGNoIHJldmVydGVkCj4gPiA+ID4KPiA+ID4gPiAkIHNpemUgdm1saW51eAo+ID4gPiA+ ICAgIHRleHQgICAgZGF0YSAgICAgYnNzICAgICBkZWMgICAgIGhleCBmaWxlbmFtZQo+ID4gPiA+ IDI0NTY3MzA5IDE0NzUyNjk0IDYyMTY4MCAzOTk0MTY4MyAyNjE3NjMzIHZtbGludXgKPiA+ID4K PiA+ID4gSSBoYXZlIHRyaWVkIHdpdGggdGhlIGN1cnJlbnQgbWFpbmxpbmUsIHRoaXMgaXMgd2hh dCBJIGdldCwgdXNpbmcgR0NDIDEyLjIuMAo+ID4gPiBhbmQgYmludXRpbHMgMi40MDoKPiA+ID4K PiA+ID4gICAgdGV4dCAgICBkYXRhICAgICBic3MgICAgIGRlYyAgICAgaGV4IGZpbGVuYW1lCj4g PiA+IDMyNTMxNjU1ICAgICAgICA4MTkyOTk2ICA2MjE5NjggNDEzNDY2MTkgICAgICAgIDI3NmU2 M2Igdm1saW51eC5vcmlnCj4gPiA+IDI1MTcwNjEwICAgICAgICA4MTkyOTk2ICA2MjE5NjggMzM5 ODU1NzQgICAgICAgIDIwNjk0MjYgdm1saW51eC5yZXZlcnQKPiA+ID4KPiA+ID4gPiBJdCB3b3Vs ZCBoZWxwIHRvIGNvbXBhcmUgdGhlIHJlc3VsdGluZyB2bWxpbnV4IEVMRiBpbWFnZXMgZnJvbSBi b3RoCj4gPiA+ID4gYnVpbGRzIHRvIHNlZSB3aGVyZSB0aGUgZXh0cmEgc3BhY2UgaXMgYmVpbmcg YWxsb2NhdGVkCj4gPiA+Cj4gPiA+IEF0IGEgZmlyc3QgZ2xhbmNlLCBpdCBzZWVtcyB0aGUgZXh0 cmEgc3BhY2UgaXMgYWxsb2NhdGVkIGluIHRoZSBCVEYKPiA+ID4gc2VjdGlvbi4gSSBoYXZlIHVw bG9hZGVkIHRoZSByZXN1bHRpbmcgZmlsZXMgYXMgd2VsbCBhcyB0aGUgY29uZmlnIGZpbGUKPiA+ ID4gSSB1c2VkIHRoZXJlOgo+ID4gPiBodHRwczovL3RlbXAuYXVyZWwzMi5uZXQvbGludXgtYXJt NjQtc2l6ZS1oZWFkLm8udGFyLmd6Cj4gPiA+Cj4gPgo+ID4gSW5kZWVkLiBTbyB3ZSBnbyBmcm9t Cj4gPgo+ID4gICBbMTVdIC5CVEYgICAgICAgICAgICAgIFBST0dCSVRTICAgICAgICAgZmZmZjgw MDAwOTFkMWZmNCAgMDExZTFmZjQKPiA+ICAgICAgICAwMDAwMDAwMDAwNTA5M2Q2ICAwMDAwMDAw MDAwMDAwMDAwICAgQSAgICAgICAwICAgICAwICAgICAxCj4gPgo+ID4gdG8KPiA+Cj4gPiAgIFsx NV0gLkJURiAgICAgICAgICAgICAgUFJPR0JJVFMgICAgICAgICBmZmZmODAwMDA5MWQxZmY0ICAw MTFlMWZmNAo+ID4gICAgICAgIDAwMDAwMDAwMDBjMGU1ZWIgIDAwMDAwMDAwMDAwMDAwMDAgICBB ICAgICAgIDAgICAgIDAgICAgIDEKPiA+Cj4gPiBpLmUsIGZyb20gNSBNaUIgdG8gMTIrIE1pQiBv ZiBCVEYgbWV0YWRhdGEuCj4gPgo+ID4gVG8gbWUsIGl0IGlzIG5vdCBjbGVhciBhdCBhbGwgaG93 IG9uZSB3b3VsZCBiZSByZWxhdGVkIHRvIHRoZSBvdGhlciwKPiA+IHNvIGl0IHdpbGwgbGVhdmUg aXQgdG8gdGhlIEtidWlsZCBhbmQgQlRGIGV4cGVydHMgdG8gY2hldyBvbiB0aGlzIG9uZS4KPgo+ Cj4KPiBTdHJhbmdlLgo+Cj4gSSB1c2VkIHRoZSAuY29uZmlnIGZpbGUgQXVyZWxpZW4gcHJvdmlk ZWQsIGJ1dAo+IEkgc3RpbGwgY2Fubm90IHJlcHJvZHVjZSB0aGlzIGlzc3VlLgo+Cj4KPiBUaGUg dm1saW51eCBzaXplIGlzIHNtYWxsCj4gYXMtaXMgaW4gdGhlIGN1cnJlbnQgbWFpbmxpbmUuCj4K Pgo+Cj4gW21haW5saW5lXQo+Cj4KPiBtYXNhaGlyb0B6b2U6fi9yZWYvbGludXgobWFzdGVyKSQg Z2l0IGxvZyAtLW9uZWxpbmUgLTEKPiA2NWFjYTMyZWZkY2IgKEhFQUQgLT4gbWFzdGVyLCBvcmln aW4vbWFzdGVyLCBvcmlnaW4vSEVBRCkgTWVyZ2UgdGFnCj4gJ21tLWhvdGZpeGVzLXN0YWJsZS0y MDIzLTAzLTI0LTE3LTA5JyBvZgo+IGdpdDovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgv a2VybmVsL2dpdC9ha3BtL21tCj4gbWFzYWhpcm9Aem9lOn4vcmVmL2xpbnV4KG1hc3RlcikkIGFh cmNoNjQtbGludXgtZ251LXNpemUgIHZtbGludXgKPiAgICB0ZXh0ICAgIGRhdGEgICAgIGJzcyAg ICAgZGVjICAgICBoZXggZmlsZW5hbWUKPiAyNDU2MTI4MiA4MTg2OTEyIDYyMjAzMiAzMzM3MDIy NiAxZmQzMDcyIHZtbGludXgKPiBtYXNhaGlyb0B6b2U6fi9yZWYvbGludXgobWFzdGVyKSQgYWFy Y2g2NC1saW51eC1nbnUtcmVhZGVsZiAtUwo+IHZtbGludXggfCBncmVwIC1BMSBCVEYKPiAgIFsx NV0gLkJURiAgICAgICAgICAgICAgUFJPR0JJVFMgICAgICAgICBmZmZmODAwMDA5MWMwNzA4ICAw MTFkMDcwOAo+ICAgICAgICAwMDAwMDAwMDAwNDgyMDljICAwMDAwMDAwMDAwMDAwMDAwICAgQSAg ICAgICAwICAgICAwICAgICAxCj4gICBbMTZdIC5CVEZfaWRzICAgICAgICAgIFBST0dCSVRTICAg ICAgICAgZmZmZjgwMDAwOTY0MjdhNCAgMDE2NTI3YTQKPiAgICAgICAgMDAwMDAwMDAwMDAwMGEx YyAgMDAwMDAwMDAwMDAwMDAwMCAgIEEgICAgICAgMCAgICAgMCAgICAgMQo+Cj4KPgo+Cj4gW21h aW5saW5lICsgcmV2ZXJ0IDk5NGI3YWNdCj4KPiBtYXNhaGlyb0B6b2U6fi9yZWYvbGludXgyKHRl c3RpbmcpJCBnaXQgbG9nIC0tb25lbGluZSAtMgo+IDg1NmM4MGRkNzg5YyAoSEVBRCAtPiB0ZXN0 aW5nKSBSZXZlcnQgImFybTY0OiByZW1vdmUgc3BlY2lhbCB0cmVhdG1lbnQKPiBmb3IgdGhlIGxp bmsgb3JkZXIgb2YgaGVhZC5vIgo+IDY1YWNhMzJlZmRjYiAob3JpZ2luL21hc3Rlciwgb3JpZ2lu L0hFQUQsIG1hc3RlcikgTWVyZ2UgdGFnCj4gJ21tLWhvdGZpeGVzLXN0YWJsZS0yMDIzLTAzLTI0 LTE3LTA5JyBvZgo+IGdpdDovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVsL2dp dC9ha3BtL21tCj4gbWFzYWhpcm9Aem9lOn4vcmVmL2xpbnV4Mih0ZXN0aW5nKSQgYWFyY2g2NC1s aW51eC1nbnUtc2l6ZSAgdm1saW51eAo+ICAgIHRleHQgICAgZGF0YSAgICAgYnNzICAgICBkZWMg ICAgIGhleCBmaWxlbmFtZQo+IDI0NTYxMzI5IDgxODY5MTIgNjIyMDMyIDMzMzcwMjczIDFmZDMw YTEgdm1saW51eAo+IG1hc2FoaXJvQHpvZTp+L3JlZi9saW51eDIodGVzdGluZykkIGFhcmNoNjQt bGludXgtZ251LXJlYWRlbGYgLVMKPiB2bWxpbnV4IHwgZ3JlcCAtQTEgQlRGCj4gICBbMTVdIC5C VEYgICAgICAgICAgICAgIFBST0dCSVRTICAgICAgICAgZmZmZjgwMDAwOTFjMDcwOCAgMDExZDA3 MDgKPiAgICAgICAgMDAwMDAwMDAwMDQ4MjBjYiAgMDAwMDAwMDAwMDAwMDAwMCAgIEEgICAgICAg MCAgICAgMCAgICAgMQo+ICAgWzE2XSAuQlRGX2lkcyAgICAgICAgICBQUk9HQklUUyAgICAgICAg IGZmZmY4MDAwMDk2NDI3ZDQgIDAxNjUyN2Q0Cj4gICAgICAgIDAwMDAwMDAwMDAwMDBhMWMgIDAw MDAwMDAwMDAwMDAwMDAgICBBICAgICAgIDAgICAgIDAgICAgIDEKPgo+Cj4KPiBJIHN0aWxsIGRv IG5vdCBrbm93IHdoYXQgYWZmZWN0cyByZXByb2R1Y2liaWxpdHkuCj4gKGNvbXBpbGVyIHZlcnNp b24sIHBhaG9sZSB2ZXJzaW9uLCBldGMuID8pCj4KPgo+Cj4KPiBBdXJlbGllbiB1c2VkIEdDQyAx MiArIGJpbnV0aWxzIDIuNDAsIGJ1dAo+IG15IHRvb2xjaGFpbiBpcyBhIGJpdCBvbGRlci4KPgo+ Cj4KPiBGV0lXLCBJIHRlc3RlZCB0aGlzIG9uIFVidW50dSAyMi4wNExUUy4KPgo+IG1hc2FoaXJv QHpvZTp+L3JlZi9saW51eChtYXN0ZXIpJCBhYXJjaDY0LWxpbnV4LWdudS1nY2MgLS12ZXJzaW9u Cj4gYWFyY2g2NC1saW51eC1nbnUtZ2NjIChVYnVudHUgMTEuMy4wLTF1YnVudHUxfjIyLjA0KSAx MS4zLjAKPiBDb3B5cmlnaHQgKEMpIDIwMjEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu Cj4gVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3IgY29weWluZyBjb25k aXRpb25zLiAgVGhlcmUgaXMgTk8KPiB3YXJyYW50eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4KPgo+IG1hc2FoaXJvQHpv ZTp+L3JlZi9saW51eChtYXN0ZXIpJCBwYWhvbGUgLS12ZXJzaW9uCj4gdjEuMjIKPgo+IG1hc2Fo aXJvQHpvZTp+L3JlZi9saW51eChtYXN0ZXIpJCBhYXJjaDY0LWxpbnV4LWdudS1hcyAtLXZlcnNp b24KPiBHTlUgYXNzZW1ibGVyIChHTlUgQmludXRpbHMgZm9yIFVidW50dSkgMi4zOAo+IENvcHly aWdodCAoQykgMjAyMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KPiBUaGlzIHByb2dy YW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IG1heSByZWRpc3RyaWJ1dGUgaXQgdW5kZXIgdGhlIHRl cm1zIG9mCj4gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMyBvciBsYXRl ci4KPiBUaGlzIHByb2dyYW0gaGFzIGFic29sdXRlbHkgbm8gd2FycmFudHkuCj4gVGhpcyBhc3Nl bWJsZXIgd2FzIGNvbmZpZ3VyZWQgZm9yIGEgdGFyZ2V0IG9mIGBhYXJjaDY0LWxpbnV4LWdudScu CgoKCgoKSSBkaWQgdGhlIHNhbWUgdGhpbmdzIGluIERlaWJhbiBzaWQKaW4gb3JkZXIgdG8gdXNl IG5ld2VyIHZlcnNpb25zIG9mIHRvb2xzLgoKCgpZdXAsIEkgc2F3IGEgaHVnZSBpbmNyZWFzZSBp biB0aGUgLkJURiBzZWN0aW9uLAphbmQgb2JzZXJ2ZWQgdGhlIGRpZmZlcmVuY2Ugdy93byA5OTRi N2FjLgoKbWFzYWhpcm9AM2U5ODAyZDY2N2UzOn4vcmVmL2xpbnV4MiQgYWFyY2g2NC1saW51eC1n bnUtcmVhZGVsZiAtUwp2bWxpbnV4IHwgZ3JlcCAtQTEgQlRGCiAgWzE1XSAuQlRGICAgICAgICAg ICAgICBQUk9HQklUUyAgICAgICAgIGZmZmY4MDAwMDkxZDI2YzQgIDAxMWUyNmM0CiAgICAgICAw MDAwMDAwMDAwOTNlNjI2ICAwMDAwMDAwMDAwMDAwMDAwICAgQSAgICAgICAwICAgICAwICAgICAx CiAgWzE2XSAuQlRGX2lkcyAgICAgICAgICBQUk9HQklUUyAgICAgICAgIGZmZmY4MDAwMDliMTBj ZWMgIDAxYjIwY2VjCiAgICAgICAwMDAwMDAwMDAwMDAwYTFjICAwMDAwMDAwMDAwMDAwMDAwICAg QSAgICAgICAwICAgICAwICAgICAxCgoKSSBndWVzcyBzb21lIHRvb2wgbWlnaHQgYmUgYWZmZWN0 aW5nIHRoaXMuCkV2ZW4gd2l0aCA5OTRiN2FjIHJldmVydGVkLCB0aGUgLkJURiBzZWN0aW9uCmlz IG11Y2ggYmlnZ2VyLgoKCkF0IHRoZSBzYW1lIHRpbWUsIEkgc2F3IGEgdG9uIG9mIHdhcm5pbmdz CndoaWxlIGJ1aWxkaW5nIEJURi4KCgptYXNhaGlyb0AzZTk4MDJkNjY3ZTM6fi9yZWYvbGludXgy JCBjYXQgL2V0Yy9vcy1yZWxlYXNlClBSRVRUWV9OQU1FPSJEZWJpYW4gR05VL0xpbnV4IGJvb2t3 b3JtL3NpZCIKTkFNRT0iRGViaWFuIEdOVS9MaW51eCIKVkVSU0lPTl9DT0RFTkFNRT1ib29rd29y bQpJRD1kZWJpYW4KSE9NRV9VUkw9Imh0dHBzOi8vd3d3LmRlYmlhbi5vcmcvIgpTVVBQT1JUX1VS TD0iaHR0cHM6Ly93d3cuZGViaWFuLm9yZy9zdXBwb3J0IgpCVUdfUkVQT1JUX1VSTD0iaHR0cHM6 Ly9idWdzLmRlYmlhbi5vcmcvIgoKCgogIExEICAgICAgdm1saW51eAogIEJURklEUyAgdm1saW51 eApXQVJOOiBtdWx0aXBsZSBJRHMgZm91bmQgZm9yICd0YXNrX3N0cnVjdCc6IDE3NywgMTY2OTAg LSB1c2luZyAxNzcKV0FSTjogbXVsdGlwbGUgSURzIGZvdW5kIGZvciAnZmlsZSc6IDUxNywgMTY3 MTIgLSB1c2luZyA1MTcKV0FSTjogbXVsdGlwbGUgSURzIGZvdW5kIGZvciAndm1fYXJlYV9zdHJ1 Y3QnOiA1MjQsIDE2NzE0IC0gdXNpbmcgNTI0CldBUk46IG11bHRpcGxlIElEcyBmb3VuZCBmb3Ig J2lub2RlJzogNTg2LCAxNjc3MyAtIHVzaW5nIDU4NgpXQVJOOiBtdWx0aXBsZSBJRHMgZm91bmQg Zm9yICdwYXRoJzogNjE4LCAxNjgwMiAtIHVzaW5nIDYxOApXQVJOOiBtdWx0aXBsZSBJRHMgZm91 bmQgZm9yICd0YXNrX3N0cnVjdCc6IDE3NywgMTcyNjcgLSB1c2luZyAxNzcKV0FSTjogbXVsdGlw bGUgSURzIGZvdW5kIGZvciAnZmlsZSc6IDUxNywgMTczMTIgLSB1c2luZyA1MTcKV0FSTjogbXVs dGlwbGUgSURzIGZvdW5kIGZvciAndm1fYXJlYV9zdHJ1Y3QnOiA1MjQsIDE3MzE1IC0gdXNpbmcg NTI0CldBUk46IG11bHRpcGxlIElEcyBmb3VuZCBmb3IgJ3NlcV9maWxlJzogMTAyOSwgMTczNzYg LSB1c2luZyAxMDI5CldBUk46IG11bHRpcGxlIElEcyBmb3VuZCBmb3IgJ2lub2RlJzogNTg2LCAx NzQ5NCAtIHVzaW5nIDU4NgpXQVJOOiBtdWx0aXBsZSBJRHMgZm91bmQgZm9yICdwYXRoJzogNjE4 LCAxNzUyMyAtIHVzaW5nIDYxOApXQVJOOiBtdWx0aXBsZSBJRHMgZm91bmQgZm9yICdjZ3JvdXAn OiA3MDQsIDE3NTMyIC0gdXNpbmcgNzA0CldBUk46IG11bHRpcGxlIElEcyBmb3VuZCBmb3IgJ3Rh c2tfc3RydWN0JzogMTc3LCAxODY1MiAtIHVzaW5nIDE3NwpXQVJOOiBtdWx0aXBsZSBJRHMgZm91 bmQgZm9yICdmaWxlJzogNTE3LCAxODcwNCAtIHVzaW5nIDUxNwpXQVJOOiBtdWx0aXBsZSBJRHMg Zm91bmQgZm9yICd2bV9hcmVhX3N0cnVjdCc6IDUyNCwgMTg3MDcgLSB1c2luZyA1MjQKV0FSTjog bXVsdGlwbGUgSURzIGZvdW5kIGZvciAnc2VxX2ZpbGUnOiAxMDI5LCAxODc4MSAtIHVzaW5nIDEw MjkKV0FSTjogbXVsdGlwbGUgSURzIGZvdW5kIGZvciAnaW5vZGUnOiA1ODYsIDE4OTExIC0gdXNp bmcgNTg2CldBUk46IG11bHRpcGxlIElEcyBmb3VuZCBmb3IgJ3BhdGgnOiA2MTgsIDE4OTQwIC0g dXNpbmcgNjE4CldBUk46IG11bHRpcGxlIElEcyBmb3VuZCBmb3IgJ2Nncm91cCc6IDcwNCwgMTg5 NDkgLSB1c2luZyA3MDQKV0FSTjogbXVsdGlwbGUgSURzIGZvdW5kIGZvciAndGFza19zdHJ1Y3Qn OiAxNzcsIDIwNTE0IC0gdXNpbmcgMTc3CldBUk46IG11bHRpcGxlIElEcyBmb3VuZCBmb3IgJ2Zp bGUnOiA1MTcsIDIwNTE1IC0gdXNpbmcgNTE3CldBUk46IG11bHRpcGxlIElEcyBmb3VuZCBmb3Ig J3ZtX2FyZWFfc3RydWN0JzogNTI0LCAyMDU0MSAtIHVzaW5nIDUyNApXQVJOOiBtdWx0aXBsZSBJ RHMgZm91bmQgZm9yICdpbm9kZSc6IDU4NiwgMjA1OTUgLSB1c2luZyA1ODYKV0FSTjogbXVsdGlw bGUgSURzIGZvdW5kIGZvciAncGF0aCc6IDYxOCwgMjA2MjQgLSB1c2luZyA2MTgKV0FSTjogbXVs dGlwbGUgSURzIGZvdW5kIGZvciAnY2dyb3VwJzogNzA0LCAyMDYzOSAtIHVzaW5nIDcwNApXQVJO OiBtdWx0aXBsZSBJRHMgZm91bmQgZm9yICdzZXFfZmlsZSc6IDEwMjksIDIwODAxIC0gdXNpbmcg MTAyOQogICAuLi4KCgoKCkkgYW0gbm90IHN1cmUgd2hldGhlciB0aGVzZSB3YXJuaW5ncyBhcmUg cmVsYXRlZCB0bwp0aGUgY3VycmVudCBpc3N1ZSBvciBub3QuCgoKSSBkaWQgbm90IGxvb2sgaW50 byBpdCBhbnkgZnVydGhlci4KSSBtYXkgbm90IGJlIHNlZWluZyBhIHNhbmUgYnVpbGQgcmVzdWx0 LgoKCi0tIApCZXN0IFJlZ2FyZHMKTWFzYWhpcm8gWWFtYWRhCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlz dApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJh ZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==