From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 58120 invoked by alias); 6 Sep 2019 14:46:37 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 58023 invoked by uid 89); 6 Sep 2019 14:46:37 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-23.3 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_LOTSOFHASH,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.1 spammy=stage3 X-HELO: EUR04-DB3-obe.outbound.protection.outlook.com Received: from mail-eopbgr60076.outbound.protection.outlook.com (HELO EUR04-DB3-obe.outbound.protection.outlook.com) (40.107.6.76) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 06 Sep 2019 14:46:32 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AmD7/FZviorokijHcRpGJL0QGGysCnQa7PB3b6qCm+4=; b=2qFgw2Lrk3zvd7zr9GB63FgN6hfwcmSYHesc0iQ0qYoeLBx93ThghuYjbG/8bY4fGktahIoY2MFhplz2mPxQBTlOdByakXINYRGtJH2f6xaHaICWvOH8KtZ0g/Db++9N6Dw4ct3MnvdAM5bbZaV3OxS3kgZDhLoZy7GRl/Bs5Pg= Received: from HE1PR0802CA0021.eurprd08.prod.outlook.com (2603:10a6:3:bd::31) by AM0PR08MB4482.eurprd08.prod.outlook.com (2603:10a6:208:140::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2199.21; Fri, 6 Sep 2019 14:46:28 +0000 Received: from DB5EUR03FT003.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e0a::203) by HE1PR0802CA0021.outlook.office365.com (2603:10a6:3:bd::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2241.14 via Frontend Transport; Fri, 6 Sep 2019 14:46:28 +0000 Authentication-Results: spf=temperror (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; gcc.gnu.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;gcc.gnu.org; dmarc=temperror action=none header.from=arm.com; Received-SPF: TempError (protection.outlook.com: error in processing during lookup of arm.com: DNS Timeout) Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DB5EUR03FT003.mail.protection.outlook.com (10.152.20.157) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2241.14 via Frontend Transport; Fri, 6 Sep 2019 14:46:26 +0000 Received: ("Tessian outbound f83cc93ed55d:v27"); Fri, 06 Sep 2019 14:46:21 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 26abf18cf37da570 X-CR-MTA-TID: 64aa7808 Received: from d62f52e915b5.1 (cr-mta-lb-1.cr-mta-net [104.47.13.55]) by 64aa7808-outbound-1.mta.getcheckrecipient.com id 21579F74-9658-42F8-892A-DB3F20645553.1; Fri, 06 Sep 2019 14:46:15 +0000 Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04lp2055.outbound.protection.outlook.com [104.47.13.55]) by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id d62f52e915b5.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 06 Sep 2019 14:46:15 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GRlD+0bS26wAtGnfQkouY8n3HomCDOxnS42FpGuhIxoJm3bZf4SwkGoXx0pfme65nf+TpEyH1BEZvoDfTkcD3NQ6ZtIJXp1PRQtRQeCgTuxR+4gv6fhSzn3KBraZIvsXLZAFvl2TpA1Son/DdDUPkSSJ5PJ2tC8Fq8vY3WVU6E1xRl8xeA31Ggc6MRl8mAPVarS405FuPGX21/jWClnVP6h+iprDGj+v3ytLUw/YBpYfBW5SW9LIcKtm6Gua2UzA838GEATh8KPUZVk6W5GcOHnMXD+QbQScz69M0RzkSWV74XzH2RAoU3KK7u/goSXZtqSDbHT+CU98fNuP08XuzQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AmD7/FZviorokijHcRpGJL0QGGysCnQa7PB3b6qCm+4=; b=GCOobRqm3Wf+CTBvlwb1pqnpnhi7ZpqTDTBrhQHX8t0Z+4e0JpZAeLYSysLR1jtWgPXvIwalMCOf7G446OXG0nn8LyFZ09mMJIlEov1avRSboPD4f0svmL90AWHH58KxoqkPiFaYL0UN7/oudYxKfX2kent0wP4WPAVxNW15Wbcv6dOcfCk/SmxbdGm5MCntD0PRVtly7B9kJ64rX/+hR00dcTedeE/xyYroEcu7co57imbTmmZYf5FCHwUfydVjXp/Zrhix9v9KwXFzIChLTCig6WhQOOuKlUwiWlUGh4EXCEVIkwxlkO2xCoSNaN+uc11/hfqqaPwIfEe5wXehxg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AmD7/FZviorokijHcRpGJL0QGGysCnQa7PB3b6qCm+4=; b=2qFgw2Lrk3zvd7zr9GB63FgN6hfwcmSYHesc0iQ0qYoeLBx93ThghuYjbG/8bY4fGktahIoY2MFhplz2mPxQBTlOdByakXINYRGtJH2f6xaHaICWvOH8KtZ0g/Db++9N6Dw4ct3MnvdAM5bbZaV3OxS3kgZDhLoZy7GRl/Bs5Pg= Received: from VI1PR08MB5471.eurprd08.prod.outlook.com (52.133.246.83) by VI1PR08MB3392.eurprd08.prod.outlook.com (20.177.58.222) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2241.14; Fri, 6 Sep 2019 14:46:13 +0000 Received: from VI1PR08MB5471.eurprd08.prod.outlook.com ([fe80::206a:65bd:e6a9:536b]) by VI1PR08MB5471.eurprd08.prod.outlook.com ([fe80::206a:65bd:e6a9:536b%2]) with mapi id 15.20.2241.018; Fri, 6 Sep 2019 14:46:13 +0000 From: Matthew Malcomson To: "gcc-patches@gcc.gnu.org" CC: "mliska@suse.cz" , "dodji@redhat.com" , nd , "kcc@google.com" , "jakub@redhat.com" , "dvyukov@google.com" Subject: [RFC][PATCH 7/X][libsanitizer] Add option to bootstrap using HWASAN Date: Fri, 06 Sep 2019 14:46:00 -0000 Message-ID: References: <156778058239.16148.17480879484406897649.scripted-patch-series@arm.com> In-Reply-To: <156778058239.16148.17480879484406897649.scripted-patch-series@arm.com> Authentication-Results-Original: spf=none (sender IP is ) smtp.mailfrom=Matthew.Malcomson@arm.com; X-Microsoft-Antispam-Untrusted: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600166)(711020)(4605104)(1401327)(4618075)(2017052603328)(49563074)(7193020);SRVR:VI1PR08MB3392; x-checkrecipientrouted: true x-ms-oob-tlc-oobclassifiers: OLM:6790;OLM:6790; X-Forefront-Antispam-Report-Untrusted: SFV:NSPM;SFS:(10009020)(4636009)(376002)(39860400002)(136003)(396003)(346002)(366004)(54534003)(199004)(189003)(66476007)(66556008)(64756008)(66446008)(7696005)(81166006)(52536014)(5660300002)(2501003)(14454004)(25786009)(52116002)(55016002)(478600001)(86362001)(4326008)(99936001)(8936002)(81156014)(6916009)(66946007)(71200400001)(71190400001)(8676002)(66616009)(3846002)(446003)(476003)(6116002)(33656002)(11346002)(76176011)(2906002)(53936002)(186003)(9686003)(6436002)(66066001)(256004)(14444005)(5024004)(5640700003)(54906003)(386003)(6506007)(44832011)(486006)(7736002)(74316002)(305945005)(316002)(99286004)(26005)(2351001)(102836004);DIR:OUT;SFP:1101;SCL:1;SRVR:VI1PR08MB3392;H:VI1PR08MB5471.eurprd08.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info-Original: MgTfksi4Y/L5mEIKmGvYNVMKwmeClTYU6ojk4vH85rC7UkD1qqc2LmPP8XGgs1WvYgv+TkrW0NF5W8guSidkuWr8g67rVOdiADbUKarOeqeqR00Q7C0I+Et4rQejbGUTQRFOHUeqdRX1TI1FkmOIZO5zRIvzGuGq5Um6vaVD3grInQdEgnDMpG9LgKUEmYgY/ZwY3xJV/pjrLnCucBEcPzIcqtUTFek3uectozMln1TVgOMzG+gbHHN8bWy0jOyNEuFiYyWYrtOUpih6LmjrQq7rtyEljnvsSyOTGZeU4jZTY2b9j3bvGE/rQ3T0rIj5K5ZYdAKHVVbVV1SKjEIYmmX7VfKSxuiTEVs+9pAHAik29oZCE74tyTq/p8SCZZR8OS2YQF4UEfr0LYLib2WyB2U7x1MixZ38qiTYKccryEA= x-ms-exchange-transport-forked: True Content-Type: multipart/mixed; boundary="_002_VI1PR08MB5471C21D2F6C693093D05F97E0BA0VI1PR08MB5471eurp_" MIME-Version: 1.0 Original-Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Matthew.Malcomson@arm.com; Return-Path: Matthew.Malcomson@arm.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5EUR03FT003.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: fee76593-bf13-4dd7-a782-08d732d8f6b8 X-IsSubscribed: yes X-SW-Source: 2019-09/txt/msg00396.txt.bz2 --_002_VI1PR08MB5471C21D2F6C693093D05F97E0BA0VI1PR08MB5471eurp_ Content-Type: text/plain; charset="us-ascii" Content-ID: <9BF096D97031234D9D44B41341795788@eurprd08.prod.outlook.com> Content-Transfer-Encoding: quoted-printable Content-length: 8728 This is an analogous option to --bootstrap-asan to configure. It allows bootstrapping GCC using HWASAN. For the same reasons as for ASAN we have to avoid using the HWASAN sanitizer when compiling libiberty and the lto-plugin. Also add a function to query whether -fsanitize=3Dhwaddress has been passed. ChangeLog: 2019-08-29 Matthew Malcomson * configure: Regenerate. * configure.ac: Add --bootstrap-hwasan option. config/ChangeLog: 2019-09-06 Matthew Malcomson * bootstrap-hwasan.mk: New file. gcc/ChangeLog: 2019-09-06 Matthew Malcomson * asan.c (memory_tagging_p): New function. * asan.h (memory_tagging_p): New declaration. libiberty/ChangeLog: 2019-09-06 Matthew Malcomson * configure: Regenerate. * configure.ac: Avoid using sanitizer. lto-plugin/ChangeLog: 2019-09-06 Matthew Malcomson * Makefile.am: Avoid using sanitizer. * Makefile.in: Regenerate. ############### Attachment also inlined for ease of reply ##########= ##### diff --git a/config/bootstrap-hwasan.mk b/config/bootstrap-hwasan.mk new file mode 100644 index 0000000000000000000000000000000000000000..4f60bed3fd6e98b47a3a38aea6e= ba2a7c320da25 --- /dev/null +++ b/config/bootstrap-hwasan.mk @@ -0,0 +1,8 @@ +# This option enables -fsanitize=3Dhwaddress for stage2 and stage3. + +STAGE2_CFLAGS +=3D -fsanitize=3Dhwaddress +STAGE3_CFLAGS +=3D -fsanitize=3Dhwaddress +POSTSTAGE1_LDFLAGS +=3D -fsanitize=3Dhwaddress -static-libhwasan \ + -B$$r/prev-$(TARGET_SUBDIR)/libsanitizer/ \ + -B$$r/prev-$(TARGET_SUBDIR)/libsanitizer/hwasan/ \ + -B$$r/prev-$(TARGET_SUBDIR)/libsanitizer/hwasan/.libs diff --git a/configure b/configure index abd93a990a947f9e7f07d530d14f0ab8720ffa4c..b97737c857b4d6a02570f700746= 5a292b86c3936 100755 --- a/configure +++ b/configure @@ -754,6 +754,7 @@ infodir docdir oldincludedir includedir +runstatedir localstatedir sharedstatedir sysconfdir @@ -919,6 +920,7 @@ datadir=3D'${datarootdir}' sysconfdir=3D'${prefix}/etc' sharedstatedir=3D'${prefix}/com' localstatedir=3D'${prefix}/var' +runstatedir=3D'${localstatedir}/run' includedir=3D'${prefix}/include' oldincludedir=3D'/usr/include' docdir=3D'${datarootdir}/doc/${PACKAGE}' @@ -1171,6 +1173,15 @@ do | -silent | --silent | --silen | --sile | --sil) silent=3Dyes ;; =20 + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst | --runs \ + | --run | --ru | --r) + ac_prev=3Drunstatedir ;; + -runstatedir=3D* | --runstatedir=3D* | --runstatedi=3D* | --runstated=3D= * \ + | --runstate=3D* | --runstat=3D* | --runsta=3D* | --runst=3D* | --runs= =3D* \ + | --run=3D* | --ru=3D* | --r=3D*) + runstatedir=3D$ac_optarg ;; + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=3Dsbindir ;; -sbindir=3D* | --sbindir=3D* | --sbindi=3D* | --sbind=3D* | --sbin=3D* \ @@ -1308,7 +1319,7 @@ fi for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir + libdir localedir mandir runstatedir do eval ac_val=3D\$$ac_var # Remove trailing slashes. @@ -1468,6 +1479,7 @@ Fine tuning of the installation directories: --sysconfdir=3DDIR read-only single-machine data [PREFIX/etc] --sharedstatedir=3DDIR modifiable architecture-independent data [PREF= IX/com] --localstatedir=3DDIR modifiable single-machine data [PREFIX/var] + --runstatedir=3DDIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=3DDIR object code libraries [EPREFIX/lib] --includedir=3DDIR C header files [PREFIX/include] --oldincludedir=3DDIR C header files for non-gcc [/usr/include] @@ -7189,7 +7201,7 @@ fi # or bootstrap-ubsan, bootstrap it. if echo " ${target_configdirs} " | grep " libsanitizer " > /dev/null 2>&1;= then case "$BUILD_CONFIG" in - *bootstrap-asan* | *bootstrap-ubsan* ) + *bootstrap-hwasan* | *bootstrap-asan* | *bootstrap-ubsan* ) bootstrap_target_libs=3D${bootstrap_target_libs}target-libsanitizer, bootstrap_fixincludes=3Dyes ;; diff --git a/configure.ac b/configure.ac index 9db4fd14aa238f346dbe3ec1e7ef134741498048..836fd457c43f482bc80b2032954= f4f98cd978a3e 100644 --- a/configure.ac +++ b/configure.ac @@ -2702,7 +2702,7 @@ fi # or bootstrap-ubsan, bootstrap it. if echo " ${target_configdirs} " | grep " libsanitizer " > /dev/null 2>&1;= then case "$BUILD_CONFIG" in - *bootstrap-asan* | *bootstrap-ubsan* ) + *bootstrap-hwasan* | *bootstrap-asan* | *bootstrap-ubsan* ) bootstrap_target_libs=3D${bootstrap_target_libs}target-libsanitizer, bootstrap_fixincludes=3Dyes ;; diff --git a/gcc/asan.h b/gcc/asan.h index 7675f18a84ee3f187ba4cb40db0ce232f3958762..66c11139b5ccbe307850d0be57e= 86f96445dd18d 100644 --- a/gcc/asan.h +++ b/gcc/asan.h @@ -33,7 +33,7 @@ extern bool asan_expand_check_ifn (gimple_stmt_iterator *= , bool); extern bool asan_expand_mark_ifn (gimple_stmt_iterator *); extern bool asan_expand_poison_ifn (gimple_stmt_iterator *, bool *, hash_map &); - +extern bool memory_tagging_p (void); extern gimple_stmt_iterator create_cond_insert_point (gimple_stmt_iterator *, bool, bool, bool, basic_block *, basic_block= *); =20 diff --git a/gcc/asan.c b/gcc/asan.c index 3b800b26b6991c5a79116a7de838751b04db496a..42e990675e740bd37dad0704fd3= 4b7a04740121e 100644 --- a/gcc/asan.c +++ b/gcc/asan.c @@ -1351,6 +1351,15 @@ asan_redzone_buffer::flush_if_full (void) flush_redzone_payload (); } =20 +/* Returns whether we are tagging pointers and checking those tags on memo= ry + access. This is true when checking with either in software or hardware + (hardware e.g. with the AArch64 memtag extension). */ +bool +memory_tagging_p () +{ + return sanitize_flags_p (SANITIZE_HWADDRESS); +} + /* Insert code to protect stack vars. The prologue sequence should be emi= tted directly, epilogue sequence returned. BASE is the register holding the stack base, against which OFFSETS array offsets are relative to, OFFSETS diff --git a/libiberty/configure b/libiberty/configure index 7a34dabec32b0b383bd33f07811757335f4dd39c..cb2dd4ff5295598343cc18b3a79= a86a778f2261d 100755 --- a/libiberty/configure +++ b/libiberty/configure @@ -5261,6 +5261,7 @@ fi NOASANFLAG=3D case " ${CFLAGS} " in *\ -fsanitize=3Daddress\ *) NOASANFLAG=3D-fno-sanitize=3Daddress ;; + *\ -fsanitize=3Dhwaddress\ *) NOASANFLAG=3D-fno-sanitize=3Dhwaddress ;; esac =20 =20 diff --git a/libiberty/configure.ac b/libiberty/configure.ac index f1ce76010c9acde79c5dc46686a78b2e2f19244e..043237628b79cbf37d07359b59c= 5ffe17a7a22ef 100644 --- a/libiberty/configure.ac +++ b/libiberty/configure.ac @@ -240,6 +240,7 @@ AC_SUBST(PICFLAG) NOASANFLAG=3D case " ${CFLAGS} " in *\ -fsanitize=3Daddress\ *) NOASANFLAG=3D-fno-sanitize=3Daddress ;; + *\ -fsanitize=3Dhwaddress\ *) NOASANFLAG=3D-fno-sanitize=3Dhwaddress ;; esac AC_SUBST(NOASANFLAG) =20 diff --git a/lto-plugin/Makefile.am b/lto-plugin/Makefile.am index 28dc21014b2e86988fa88adabd63ce6092e18e02..34aa397d785e3cc9b6975de460d= 065900364c3ff 100644 --- a/lto-plugin/Makefile.am +++ b/lto-plugin/Makefile.am @@ -11,8 +11,8 @@ AM_CPPFLAGS =3D -I$(top_srcdir)/../include $(DEFS) AM_CFLAGS =3D @ac_lto_plugin_warn_cflags@ AM_LDFLAGS =3D @ac_lto_plugin_ldflags@ AM_LIBTOOLFLAGS =3D --tag=3Ddisable-static -override CFLAGS :=3D $(filter-out -fsanitize=3Daddress,$(CFLAGS)) -override LDFLAGS :=3D $(filter-out -fsanitize=3Daddress,$(LDFLAGS)) +override CFLAGS :=3D $(filter-out -fsanitize=3Daddress -fsanitize=3Dhwaddr= ess,$(CFLAGS)) +override LDFLAGS :=3D $(filter-out -fsanitize=3Daddress -fsanitize=3Dhwadd= ress,$(LDFLAGS)) =20 libexecsub_LTLIBRARIES =3D liblto_plugin.la gcc_build_dir =3D @gcc_build_dir@ diff --git a/lto-plugin/Makefile.in b/lto-plugin/Makefile.in index 8dd6e40ac9dddab39fe1752f9a70e6834ab3c926..7acfc047eff6f86f8d38287e6ff= b6533c4c13500 100644 --- a/lto-plugin/Makefile.in +++ b/lto-plugin/Makefile.in @@ -672,8 +672,8 @@ uninstall-am: uninstall-libexecsubLTLIBRARIES =20 .PRECIOUS: Makefile =20 -override CFLAGS :=3D $(filter-out -fsanitize=3Daddress,$(CFLAGS)) -override LDFLAGS :=3D $(filter-out -fsanitize=3Daddress,$(LDFLAGS)) +override CFLAGS :=3D $(filter-out -fsanitize=3Daddress -fsanitize=3Dhwaddr= ess,$(CFLAGS)) +override LDFLAGS :=3D $(filter-out -fsanitize=3Daddress -fsanitize=3Dhwadd= ress,$(LDFLAGS)) =20 all-local: $(in_gcc_libs) =20 --_002_VI1PR08MB5471C21D2F6C693093D05F97E0BA0VI1PR08MB5471eurp_ Content-Type: text/plain; name="hwasan-implementation06.patch" Content-Description: hwasan-implementation06.patch Content-Disposition: attachment; filename="hwasan-implementation06.patch"; size=7361; creation-date="Fri, 06 Sep 2019 14:46:13 GMT"; modification-date="Fri, 06 Sep 2019 14:46:13 GMT" Content-ID: Content-Transfer-Encoding: base64 Content-length: 9980 ZGlmZiAtLWdpdCBhL2NvbmZpZy9ib290c3RyYXAtaHdhc2FuLm1rIGIvY29u ZmlnL2Jvb3RzdHJhcC1od2FzYW4ubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MC4uNGY2MGJlZDNmZDZlOThiNDdhM2EzOGFlYTZlYmEyYTdjMzIwZGEyNQot LS0gL2Rldi9udWxsCisrKyBiL2NvbmZpZy9ib290c3RyYXAtaHdhc2FuLm1r CkBAIC0wLDAgKzEsOCBAQAorIyBUaGlzIG9wdGlvbiBlbmFibGVzIC1mc2Fu aXRpemU9aHdhZGRyZXNzIGZvciBzdGFnZTIgYW5kIHN0YWdlMy4KKworU1RB R0UyX0NGTEFHUyArPSAtZnNhbml0aXplPWh3YWRkcmVzcworU1RBR0UzX0NG TEFHUyArPSAtZnNhbml0aXplPWh3YWRkcmVzcworUE9TVFNUQUdFMV9MREZM QUdTICs9IC1mc2FuaXRpemU9aHdhZGRyZXNzIC1zdGF0aWMtbGliaHdhc2Fu IFwKKwkJICAgICAgLUIkJHIvcHJldi0kKFRBUkdFVF9TVUJESVIpL2xpYnNh bml0aXplci8gXAorCQkgICAgICAtQiQkci9wcmV2LSQoVEFSR0VUX1NVQkRJ UikvbGlic2FuaXRpemVyL2h3YXNhbi8gXAorCQkgICAgICAtQiQkci9wcmV2 LSQoVEFSR0VUX1NVQkRJUikvbGlic2FuaXRpemVyL2h3YXNhbi8ubGlicwpk aWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCmluZGV4IGFiZDkz YTk5MGE5NDdmOWU3ZjA3ZDUzMGQxNGYwYWI4NzIwZmZhNGMuLmI5NzczN2M4 NTdiNGQ2YTAyNTcwZjcwMDc0NjVhMjkyYjg2YzM5MzYgMTAwNzU1Ci0tLSBh L2NvbmZpZ3VyZQorKysgYi9jb25maWd1cmUKQEAgLTc1NCw2ICs3NTQsNyBA QCBpbmZvZGlyCiBkb2NkaXIKIG9sZGluY2x1ZGVkaXIKIGluY2x1ZGVkaXIK K3J1bnN0YXRlZGlyCiBsb2NhbHN0YXRlZGlyCiBzaGFyZWRzdGF0ZWRpcgog c3lzY29uZmRpcgpAQCAtOTE5LDYgKzkyMCw3IEBAIGRhdGFkaXI9JyR7ZGF0 YXJvb3RkaXJ9Jwogc3lzY29uZmRpcj0nJHtwcmVmaXh9L2V0YycKIHNoYXJl ZHN0YXRlZGlyPScke3ByZWZpeH0vY29tJwogbG9jYWxzdGF0ZWRpcj0nJHtw cmVmaXh9L3ZhcicKK3J1bnN0YXRlZGlyPScke2xvY2Fsc3RhdGVkaXJ9L3J1 bicKIGluY2x1ZGVkaXI9JyR7cHJlZml4fS9pbmNsdWRlJwogb2xkaW5jbHVk ZWRpcj0nL3Vzci9pbmNsdWRlJwogZG9jZGlyPScke2RhdGFyb290ZGlyfS9k b2MvJHtQQUNLQUdFfScKQEAgLTExNzEsNiArMTE3MywxNSBAQCBkbwogICB8 IC1zaWxlbnQgfCAtLXNpbGVudCB8IC0tc2lsZW4gfCAtLXNpbGUgfCAtLXNp bCkKICAgICBzaWxlbnQ9eWVzIDs7CiAKKyAgLXJ1bnN0YXRlZGlyIHwgLS1y dW5zdGF0ZWRpciB8IC0tcnVuc3RhdGVkaSB8IC0tcnVuc3RhdGVkIFwKKyAg fCAtLXJ1bnN0YXRlIHwgLS1ydW5zdGF0IHwgLS1ydW5zdGEgfCAtLXJ1bnN0 IHwgLS1ydW5zIFwKKyAgfCAtLXJ1biB8IC0tcnUgfCAtLXIpCisgICAgYWNf cHJldj1ydW5zdGF0ZWRpciA7OworICAtcnVuc3RhdGVkaXI9KiB8IC0tcnVu c3RhdGVkaXI9KiB8IC0tcnVuc3RhdGVkaT0qIHwgLS1ydW5zdGF0ZWQ9KiBc CisgIHwgLS1ydW5zdGF0ZT0qIHwgLS1ydW5zdGF0PSogfCAtLXJ1bnN0YT0q IHwgLS1ydW5zdD0qIHwgLS1ydW5zPSogXAorICB8IC0tcnVuPSogfCAtLXJ1 PSogfCAtLXI9KikKKyAgICBydW5zdGF0ZWRpcj0kYWNfb3B0YXJnIDs7CisK ICAgLXNiaW5kaXIgfCAtLXNiaW5kaXIgfCAtLXNiaW5kaSB8IC0tc2JpbmQg fCAtLXNiaW4gfCAtLXNiaSB8IC0tc2IpCiAgICAgYWNfcHJldj1zYmluZGly IDs7CiAgIC1zYmluZGlyPSogfCAtLXNiaW5kaXI9KiB8IC0tc2JpbmRpPSog fCAtLXNiaW5kPSogfCAtLXNiaW49KiBcCkBAIC0xMzA4LDcgKzEzMTksNyBA QCBmaQogZm9yIGFjX3ZhciBpbglleGVjX3ByZWZpeCBwcmVmaXggYmluZGly IHNiaW5kaXIgbGliZXhlY2RpciBkYXRhcm9vdGRpciBcCiAJCWRhdGFkaXIg c3lzY29uZmRpciBzaGFyZWRzdGF0ZWRpciBsb2NhbHN0YXRlZGlyIGluY2x1 ZGVkaXIgXAogCQlvbGRpbmNsdWRlZGlyIGRvY2RpciBpbmZvZGlyIGh0bWxk aXIgZHZpZGlyIHBkZmRpciBwc2RpciBcCi0JCWxpYmRpciBsb2NhbGVkaXIg bWFuZGlyCisJCWxpYmRpciBsb2NhbGVkaXIgbWFuZGlyIHJ1bnN0YXRlZGly CiBkbwogICBldmFsIGFjX3ZhbD1cJCRhY192YXIKICAgIyBSZW1vdmUgdHJh aWxpbmcgc2xhc2hlcy4KQEAgLTE0NjgsNiArMTQ3OSw3IEBAIEZpbmUgdHVu aW5nIG9mIHRoZSBpbnN0YWxsYXRpb24gZGlyZWN0b3JpZXM6CiAgIC0tc3lz Y29uZmRpcj1ESVIgICAgICAgIHJlYWQtb25seSBzaW5nbGUtbWFjaGluZSBk YXRhIFtQUkVGSVgvZXRjXQogICAtLXNoYXJlZHN0YXRlZGlyPURJUiAgICBt b2RpZmlhYmxlIGFyY2hpdGVjdHVyZS1pbmRlcGVuZGVudCBkYXRhIFtQUkVG SVgvY29tXQogICAtLWxvY2Fsc3RhdGVkaXI9RElSICAgICBtb2RpZmlhYmxl IHNpbmdsZS1tYWNoaW5lIGRhdGEgW1BSRUZJWC92YXJdCisgIC0tcnVuc3Rh dGVkaXI9RElSICAgICAgIG1vZGlmaWFibGUgcGVyLXByb2Nlc3MgZGF0YSBb TE9DQUxTVEFURURJUi9ydW5dCiAgIC0tbGliZGlyPURJUiAgICAgICAgICAg IG9iamVjdCBjb2RlIGxpYnJhcmllcyBbRVBSRUZJWC9saWJdCiAgIC0taW5j bHVkZWRpcj1ESVIgICAgICAgIEMgaGVhZGVyIGZpbGVzIFtQUkVGSVgvaW5j bHVkZV0KICAgLS1vbGRpbmNsdWRlZGlyPURJUiAgICAgQyBoZWFkZXIgZmls ZXMgZm9yIG5vbi1nY2MgWy91c3IvaW5jbHVkZV0KQEAgLTcxODksNyArNzIw MSw3IEBAIGZpCiAjIG9yIGJvb3RzdHJhcC11YnNhbiwgYm9vdHN0cmFwIGl0 LgogaWYgZWNobyAiICR7dGFyZ2V0X2NvbmZpZ2RpcnN9ICIgfCBncmVwICIg bGlic2FuaXRpemVyICIgPiAvZGV2L251bGwgMj4mMTsgdGhlbgogICBjYXNl ICIkQlVJTERfQ09ORklHIiBpbgotICAgICpib290c3RyYXAtYXNhbiogfCAq Ym9vdHN0cmFwLXVic2FuKiApCisgICAgKmJvb3RzdHJhcC1od2FzYW4qIHwg KmJvb3RzdHJhcC1hc2FuKiB8ICpib290c3RyYXAtdWJzYW4qICkKICAgICAg IGJvb3RzdHJhcF90YXJnZXRfbGlicz0ke2Jvb3RzdHJhcF90YXJnZXRfbGli c310YXJnZXQtbGlic2FuaXRpemVyLAogICAgICAgYm9vdHN0cmFwX2ZpeGlu Y2x1ZGVzPXllcwogICAgICAgOzsKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5h YyBiL2NvbmZpZ3VyZS5hYwppbmRleCA5ZGI0ZmQxNGFhMjM4ZjM0NmRiZTNl YzFlN2VmMTM0NzQxNDk4MDQ4Li44MzZmZDQ1N2M0M2Y0ODJiYzgwYjIwMzI5 NTRmNGY5OGNkOTc4YTNlIDEwMDY0NAotLS0gYS9jb25maWd1cmUuYWMKKysr IGIvY29uZmlndXJlLmFjCkBAIC0yNzAyLDcgKzI3MDIsNyBAQCBmaQogIyBv ciBib290c3RyYXAtdWJzYW4sIGJvb3RzdHJhcCBpdC4KIGlmIGVjaG8gIiAk e3RhcmdldF9jb25maWdkaXJzfSAiIHwgZ3JlcCAiIGxpYnNhbml0aXplciAi ID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KICAgY2FzZSAiJEJVSUxEX0NPTkZJ RyIgaW4KLSAgICAqYm9vdHN0cmFwLWFzYW4qIHwgKmJvb3RzdHJhcC11YnNh biogKQorICAgICpib290c3RyYXAtaHdhc2FuKiB8ICpib290c3RyYXAtYXNh biogfCAqYm9vdHN0cmFwLXVic2FuKiApCiAgICAgICBib290c3RyYXBfdGFy Z2V0X2xpYnM9JHtib290c3RyYXBfdGFyZ2V0X2xpYnN9dGFyZ2V0LWxpYnNh bml0aXplciwKICAgICAgIGJvb3RzdHJhcF9maXhpbmNsdWRlcz15ZXMKICAg ICAgIDs7CmRpZmYgLS1naXQgYS9nY2MvYXNhbi5oIGIvZ2NjL2FzYW4uaApp bmRleCA3Njc1ZjE4YTg0ZWUzZjE4N2JhNGNiNDBkYjBjZTIzMmYzOTU4NzYy Li42NmMxMTEzOWI1Y2NiZTMwNzg1MGQwYmU1N2U4NmY5NjQ0NWRkMThkIDEw MDY0NAotLS0gYS9nY2MvYXNhbi5oCisrKyBiL2djYy9hc2FuLmgKQEAgLTMz LDcgKzMzLDcgQEAgZXh0ZXJuIGJvb2wgYXNhbl9leHBhbmRfY2hlY2tfaWZu IChnaW1wbGVfc3RtdF9pdGVyYXRvciAqLCBib29sKTsKIGV4dGVybiBib29s IGFzYW5fZXhwYW5kX21hcmtfaWZuIChnaW1wbGVfc3RtdF9pdGVyYXRvciAq KTsKIGV4dGVybiBib29sIGFzYW5fZXhwYW5kX3BvaXNvbl9pZm4gKGdpbXBs ZV9zdG10X2l0ZXJhdG9yICosIGJvb2wgKiwKIAkJCQkgICAgaGFzaF9tYXA8 dHJlZSwgdHJlZT4gJik7Ci0KK2V4dGVybiBib29sIG1lbW9yeV90YWdnaW5n X3AgKHZvaWQpOwogZXh0ZXJuIGdpbXBsZV9zdG10X2l0ZXJhdG9yIGNyZWF0 ZV9jb25kX2luc2VydF9wb2ludAogICAgICAoZ2ltcGxlX3N0bXRfaXRlcmF0 b3IgKiwgYm9vbCwgYm9vbCwgYm9vbCwgYmFzaWNfYmxvY2sgKiwgYmFzaWNf YmxvY2sgKik7CiAKZGlmZiAtLWdpdCBhL2djYy9hc2FuLmMgYi9nY2MvYXNh bi5jCmluZGV4IDNiODAwYjI2YjY5OTFjNWE3OTExNmE3ZGU4Mzg3NTFiMDRk YjQ5NmEuLjQyZTk5MDY3NWU3NDBiZDM3ZGFkMDcwNGZkMzRiN2EwNDc0MDEy MWUgMTAwNjQ0Ci0tLSBhL2djYy9hc2FuLmMKKysrIGIvZ2NjL2FzYW4uYwpA QCAtMTM1MSw2ICsxMzUxLDE1IEBAIGFzYW5fcmVkem9uZV9idWZmZXI6OmZs dXNoX2lmX2Z1bGwgKHZvaWQpCiAgICAgZmx1c2hfcmVkem9uZV9wYXlsb2Fk ICgpOwogfQogCisvKiBSZXR1cm5zIHdoZXRoZXIgd2UgYXJlIHRhZ2dpbmcg cG9pbnRlcnMgYW5kIGNoZWNraW5nIHRob3NlIHRhZ3Mgb24gbWVtb3J5Cisg ICBhY2Nlc3MuICBUaGlzIGlzIHRydWUgd2hlbiBjaGVja2luZyB3aXRoIGVp dGhlciBpbiBzb2Z0d2FyZSBvciBoYXJkd2FyZQorICAgKGhhcmR3YXJlIGUu Zy4gd2l0aCB0aGUgQUFyY2g2NCBtZW10YWcgZXh0ZW5zaW9uKS4gICovCiti b29sCittZW1vcnlfdGFnZ2luZ19wICgpCit7CisgICAgcmV0dXJuIHNhbml0 aXplX2ZsYWdzX3AgKFNBTklUSVpFX0hXQUREUkVTUyk7Cit9CisKIC8qIElu c2VydCBjb2RlIHRvIHByb3RlY3Qgc3RhY2sgdmFycy4gIFRoZSBwcm9sb2d1 ZSBzZXF1ZW5jZSBzaG91bGQgYmUgZW1pdHRlZAogICAgZGlyZWN0bHksIGVw aWxvZ3VlIHNlcXVlbmNlIHJldHVybmVkLiAgQkFTRSBpcyB0aGUgcmVnaXN0 ZXIgaG9sZGluZyB0aGUKICAgIHN0YWNrIGJhc2UsIGFnYWluc3Qgd2hpY2gg T0ZGU0VUUyBhcnJheSBvZmZzZXRzIGFyZSByZWxhdGl2ZSB0bywgT0ZGU0VU UwpkaWZmIC0tZ2l0IGEvbGliaWJlcnR5L2NvbmZpZ3VyZSBiL2xpYmliZXJ0 eS9jb25maWd1cmUKaW5kZXggN2EzNGRhYmVjMzJiMGIzODNiZDMzZjA3ODEx NzU3MzM1ZjRkZDM5Yy4uY2IyZGQ0ZmY1Mjk1NTk4MzQzY2MxOGIzYTc5YTg2 YTc3OGYyMjYxZCAxMDA3NTUKLS0tIGEvbGliaWJlcnR5L2NvbmZpZ3VyZQor KysgYi9saWJpYmVydHkvY29uZmlndXJlCkBAIC01MjYxLDYgKzUyNjEsNyBA QCBmaQogTk9BU0FORkxBRz0KIGNhc2UgIiAke0NGTEFHU30gIiBpbgogICAq XCAtZnNhbml0aXplPWFkZHJlc3NcICopIE5PQVNBTkZMQUc9LWZuby1zYW5p dGl6ZT1hZGRyZXNzIDs7CisgICpcIC1mc2FuaXRpemU9aHdhZGRyZXNzXCAq KSBOT0FTQU5GTEFHPS1mbm8tc2FuaXRpemU9aHdhZGRyZXNzIDs7CiBlc2Fj CiAKIApkaWZmIC0tZ2l0IGEvbGliaWJlcnR5L2NvbmZpZ3VyZS5hYyBiL2xp YmliZXJ0eS9jb25maWd1cmUuYWMKaW5kZXggZjFjZTc2MDEwYzlhY2RlNzlj NWRjNDY2ODZhNzhiMmUyZjE5MjQ0ZS4uMDQzMjM3NjI4Yjc5Y2JmMzdkMDcz NTliNTljNWZmZTE3YTdhMjJlZiAxMDA2NDQKLS0tIGEvbGliaWJlcnR5L2Nv bmZpZ3VyZS5hYworKysgYi9saWJpYmVydHkvY29uZmlndXJlLmFjCkBAIC0y NDAsNiArMjQwLDcgQEAgQUNfU1VCU1QoUElDRkxBRykKIE5PQVNBTkZMQUc9 CiBjYXNlICIgJHtDRkxBR1N9ICIgaW4KICAgKlwgLWZzYW5pdGl6ZT1hZGRy ZXNzXCAqKSBOT0FTQU5GTEFHPS1mbm8tc2FuaXRpemU9YWRkcmVzcyA7Owor ICAqXCAtZnNhbml0aXplPWh3YWRkcmVzc1wgKikgTk9BU0FORkxBRz0tZm5v LXNhbml0aXplPWh3YWRkcmVzcyA7OwogZXNhYwogQUNfU1VCU1QoTk9BU0FO RkxBRykKIApkaWZmIC0tZ2l0IGEvbHRvLXBsdWdpbi9NYWtlZmlsZS5hbSBi L2x0by1wbHVnaW4vTWFrZWZpbGUuYW0KaW5kZXggMjhkYzIxMDE0YjJlODY5 ODhmYTg4YWRhYmQ2M2NlNjA5MmUxOGUwMi4uMzRhYTM5N2Q3ODVlM2NjOWI2 OTc1ZGU0NjBkMDY1OTAwMzY0YzNmZiAxMDA2NDQKLS0tIGEvbHRvLXBsdWdp bi9NYWtlZmlsZS5hbQorKysgYi9sdG8tcGx1Z2luL01ha2VmaWxlLmFtCkBA IC0xMSw4ICsxMSw4IEBAIEFNX0NQUEZMQUdTID0gLUkkKHRvcF9zcmNkaXIp Ly4uL2luY2x1ZGUgJChERUZTKQogQU1fQ0ZMQUdTID0gQGFjX2x0b19wbHVn aW5fd2Fybl9jZmxhZ3NACiBBTV9MREZMQUdTID0gQGFjX2x0b19wbHVnaW5f bGRmbGFnc0AKIEFNX0xJQlRPT0xGTEFHUyA9IC0tdGFnPWRpc2FibGUtc3Rh dGljCi1vdmVycmlkZSBDRkxBR1MgOj0gJChmaWx0ZXItb3V0IC1mc2FuaXRp emU9YWRkcmVzcywkKENGTEFHUykpCi1vdmVycmlkZSBMREZMQUdTIDo9ICQo ZmlsdGVyLW91dCAtZnNhbml0aXplPWFkZHJlc3MsJChMREZMQUdTKSkKK292 ZXJyaWRlIENGTEFHUyA6PSAkKGZpbHRlci1vdXQgLWZzYW5pdGl6ZT1hZGRy ZXNzIC1mc2FuaXRpemU9aHdhZGRyZXNzLCQoQ0ZMQUdTKSkKK292ZXJyaWRl IExERkxBR1MgOj0gJChmaWx0ZXItb3V0IC1mc2FuaXRpemU9YWRkcmVzcyAt ZnNhbml0aXplPWh3YWRkcmVzcywkKExERkxBR1MpKQogCiBsaWJleGVjc3Vi X0xUTElCUkFSSUVTID0gbGlibHRvX3BsdWdpbi5sYQogZ2NjX2J1aWxkX2Rp ciA9IEBnY2NfYnVpbGRfZGlyQApkaWZmIC0tZ2l0IGEvbHRvLXBsdWdpbi9N YWtlZmlsZS5pbiBiL2x0by1wbHVnaW4vTWFrZWZpbGUuaW4KaW5kZXggOGRk NmU0MGFjOWRkZGFiMzlmZTE3NTJmOWE3MGU2ODM0YWIzYzkyNi4uN2FjZmMw NDdlZmY2Zjg2ZjhkMzgyODdlNmZmYjY1MzNjNGMxMzUwMCAxMDA2NDQKLS0t IGEvbHRvLXBsdWdpbi9NYWtlZmlsZS5pbgorKysgYi9sdG8tcGx1Z2luL01h a2VmaWxlLmluCkBAIC02NzIsOCArNjcyLDggQEAgdW5pbnN0YWxsLWFtOiB1 bmluc3RhbGwtbGliZXhlY3N1YkxUTElCUkFSSUVTCiAKIC5QUkVDSU9VUzog TWFrZWZpbGUKIAotb3ZlcnJpZGUgQ0ZMQUdTIDo9ICQoZmlsdGVyLW91dCAt ZnNhbml0aXplPWFkZHJlc3MsJChDRkxBR1MpKQotb3ZlcnJpZGUgTERGTEFH UyA6PSAkKGZpbHRlci1vdXQgLWZzYW5pdGl6ZT1hZGRyZXNzLCQoTERGTEFH UykpCitvdmVycmlkZSBDRkxBR1MgOj0gJChmaWx0ZXItb3V0IC1mc2FuaXRp emU9YWRkcmVzcyAtZnNhbml0aXplPWh3YWRkcmVzcywkKENGTEFHUykpCitv dmVycmlkZSBMREZMQUdTIDo9ICQoZmlsdGVyLW91dCAtZnNhbml0aXplPWFk ZHJlc3MgLWZzYW5pdGl6ZT1od2FkZHJlc3MsJChMREZMQUdTKSkKIAogYWxs LWxvY2FsOiAkKGluX2djY19saWJzKQogCgo= --_002_VI1PR08MB5471C21D2F6C693093D05F97E0BA0VI1PR08MB5471eurp_--