From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-eopbgr30042.outbound.protection.outlook.com [40.107.3.42]) by sourceware.org (Postfix) with ESMTPS id 33AFD38515E2 for ; Thu, 10 Jun 2021 16:34:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 33AFD38515E2 Received: from DB9PR02CA0004.eurprd02.prod.outlook.com (2603:10a6:10:1d9::9) by VI1PR08MB3997.eurprd08.prod.outlook.com (2603:10a6:803:e0::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4219.21; Thu, 10 Jun 2021 16:33:58 +0000 Received: from DB5EUR03FT049.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:1d9:cafe::ac) by DB9PR02CA0004.outlook.office365.com (2603:10a6:10:1d9::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4219.20 via Frontend Transport; Thu, 10 Jun 2021 16:33:57 +0000 X-MS-Exchange-Authentication-Results: spf=pass (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=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DB5EUR03FT049.mail.protection.outlook.com (10.152.20.191) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4219.21 via Frontend Transport; Thu, 10 Jun 2021 16:33:57 +0000 Received: ("Tessian outbound cce4cc55b7ee:v93"); Thu, 10 Jun 2021 16:33:57 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 439864c98621ec9f X-CR-MTA-TID: 64aa7808 Received: from 0a1c91fe0832.3 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 201F19D7-E52B-4DF4-9D46-9ECA3E26FF53.1; Thu, 10 Jun 2021 16:33:44 +0000 Received: from EUR03-VE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 0a1c91fe0832.3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 10 Jun 2021 16:33:44 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=H4TR5VoDMWAJW2WUKafuw7nxenTFXm7t6NDzAK4F8dffwXr2GYDMe2UJePCK+WxcUNT+Qd3Y+1fmXvpFqqVcFOtANHXYeyedWcQNNvkW8PbTyPzHntQS7yfIpOPMnexkF1t0Rm6ez8Yoibvh1bwHjoYLb6SbznL6VZOINC/p3wYexdcPZdiW31tXCvNJia+NZ6GNpH2U6RRGYzbcTF7bQXZUMBSPnF/veBFsfCxpnV4UO6i1Ip7ZvO5R/KKIU+rJLpXNaLjaAB1znemYXtgdXz7OJ7Qpf1GL6NjcsAaetmUGCbfOO5YMM2uQKrK59NHA3ulf4sfoq9EwRMtvlb4YZA== 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=80wS43geiFO1IgE7og1eL0deFL+cFnM7dXVBE33fiVI=; b=mhjrL3YSQ4V6MniiJeJfR2gF+YTf3iwP8m9AEoJZwsBoYd2DLOvsPiCU74TmW9alnhfzY5AUqhxBLPtY8j+PrGdW1DZQ8j98psdbxMXbFhzu+GVSF61c1NVlQ8QsgpUtaY3wHv0kvyTkUW1WKA7+CbCOAjXGQj1p1W2RX5gI2MFfr+09pN6+dQgSIjizEsNnYxpFdR6SgXJB8j7pqW9MNwHbawAYDL5TeWTaJsoLjDXfqI9VwdO2mk2G1xDnJslO2HHv3V/tTu3XUhJQXm5kzZf7+BS463jUGf8D6bdJKXSmg/LOAphVQtMTwy/1Z7EpMuH/Bafkqhl7vjDU/ziWRg== 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 Received: from VI1PR0802MB2368.eurprd08.prod.outlook.com (2603:10a6:800:9d::10) by VE1PR08MB4992.eurprd08.prod.outlook.com (2603:10a6:803:10f::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4219.22; Thu, 10 Jun 2021 16:33:39 +0000 Received: from VI1PR0802MB2368.eurprd08.prod.outlook.com ([fe80::44e5:2f6b:2aa1:ff11]) by VI1PR0802MB2368.eurprd08.prod.outlook.com ([fe80::44e5:2f6b:2aa1:ff11%11]) with mapi id 15.20.4195.030; Thu, 10 Jun 2021 16:33:39 +0000 From: Srinath Parvathaneni To: Richard Earnshaw , "gcc-patches@gcc.gnu.org" CC: Richard Earnshaw , Kyrill Tkachov Subject: RE: [GCC][PATCH] arm: Fix multilib mapping for CDE extensions. Thread-Topic: [GCC][PATCH] arm: Fix multilib mapping for CDE extensions. Thread-Index: AQHXVwjWolFDnwyH10iTOGo4tkovQ6sAxsQAgAy2oUA= Date: Thu, 10 Jun 2021 16:33:38 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ts-tracking-id: B9C4EC40B8DA04479CC9A925FC6EBC4A.0 x-checkrecipientchecked: true Authentication-Results-Original: foss.arm.com; dkim=none (message not signed) header.d=none; foss.arm.com; dmarc=none action=none header.from=arm.com; x-originating-ip: [84.71.46.84] x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: 265c37c0-308a-4abf-3d19-08d92c2d8ba0 x-ms-traffictypediagnostic: VE1PR08MB4992:|VI1PR08MB3997: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:10000;OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: l5MaVtRPW9qATgiAypSHg+ko29PQvBVg6RevGP5Bw2AivP51czigDHhif1JOTg1vqRi+Pba5+bA5G447Jvk/cZAck4PJAW3Rv97Aje4yUhXE55UMRusaPvUhjTHR0vGgTK72ymcxzMSddyUHqlZa3M6+fc4fp5J7ucsEd7coDTXx35v33YY7ADxHj+WJvxsO9eag/MRgLRIV1ovFuZ3gxB47U41sxQAzuuuwSsMl9qQYUPjbTMmursEvWVzzuTaUt/PA9n9wKexH65CxWtleEklrb6k5HTtXIAXHQuwRCkL5DCrFfVhLGbfoDgnQDPpQmDdLYSn8PXJDtiwORg73u2Wikv9hB7T4tjhhQTKswHG4h+PvfvaJEXnrmnuroQkM0uG73dYteYJ6u5m0W9c8hkeU9E8A2CmyPfecNzNIAaNEegdUm/NLhMqX5ZXu190bodgvFeKi7K/heg4djfjRLsyII0C9ZIzCGI51fbziQli+IvqzhLIArfler4vHS0RoO1tz1Vkg0RstX+rL91Hj3Z7V5B4bRPOjqjS3L7QmcVv+/YArrdIAc8gN/5+zvAk0LmEsZ/nfx0fNgCzllc4+hImKaU4Jygv6P4Y6Cn7qnUw= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR0802MB2368.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(39850400004)(396003)(346002)(376002)(136003)(366004)(66556008)(66476007)(86362001)(66946007)(66576008)(38100700002)(76116006)(52536014)(5660300002)(122000001)(64756008)(2906002)(66446008)(8936002)(478600001)(83380400001)(7696005)(54906003)(6506007)(8676002)(53546011)(99936003)(186003)(110136005)(71200400001)(26005)(316002)(33656002)(30864003)(4326008)(55016002)(9686003)(579004)(559001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?us-ascii?Q?APee94PuMdGXmvINyYMpkkZuPDPp4XHb1qcJIPtbsZxiM4LSnKoQqrK99P31?= =?us-ascii?Q?55KIo2fsELwB0A+uUe3tZwTTDiW+T/VQeqzrapJUTqCrcxfVQ2Gm2UV7WdUr?= =?us-ascii?Q?2rkraS1yHLpyv4m7jEMPm4IoLU7Rb+n9/gn4qWg1EBb9cOxEu7hBCc8lZkaa?= =?us-ascii?Q?seRQtIwa9AUbx3tIxAaYk+VyeXZjEaHpc4OZNZVTwkDgJWAR2n1gihC4VyFp?= =?us-ascii?Q?TxHqUeiD9Hyyqxer+YN3az9z3gJH3EdRjdrrZpjnagEfnmwPOATw+o5DRRBQ?= =?us-ascii?Q?TW6knvaVR3Q97sogpXlc5v3IgC3YiaRMMlL3gNezfv/nV/HIcLZJVKQBdgKT?= =?us-ascii?Q?4SZWdNeIequzyMVKHCJJ7yG316IUDhQm6NmW0dEGkj3nW+u9oteScgvWtR22?= =?us-ascii?Q?ZgHAMTeIVxH4Sli3zgP+iOqKIbESiEgt3PeFCAAaAxlrSjAorWrVkSF2VP/K?= =?us-ascii?Q?o848zfxqK6ZveSkkytjQS/kCSleMvouE8mdyvc+z+TymZKk+uxvxNglJ9pWx?= =?us-ascii?Q?VM6L4rTBnU4HSL2ik5qzuHANSaZk1r4+emXFYhMXuJ53NC97RBPLnsX8w5GA?= =?us-ascii?Q?OhFQfDIO9byH9Rn17mEuLltTPYHmmv5N9gbV4J42cSbW19QDnIDabYefIk16?= =?us-ascii?Q?EuDv+pGFQfZAuEAbHbbSbRjqdKxLQOyibHmiOrIxQsJfBNEwKAlcMmFEbRMd?= =?us-ascii?Q?e7UVjwS22Lz4agoG2M3PA83loN/yRAmz8LKWrdAp/hEQA20LhbCxkBrBtYY0?= =?us-ascii?Q?xF9EQuyabIwzjb2YDaL4yGkg9eqQ9Z5JUIWEYcj1hCgH6eKhTSUB0Fg94r9t?= =?us-ascii?Q?UvSy9M+S57bILPghr3oghZuMIgPdaPJtbC1fClO2BkysGRni1T08yCWIO6HV?= =?us-ascii?Q?qVKRxdb+hDtdNdXB9/aJBZOjgKQOxfbjy7uxODojqum1v3aWu9sDe6rgexF/?= =?us-ascii?Q?wE63vaB0oohDgBSryNxSA2Xu0XIGI1GpgXjk2Qqk2foNQvK7yfmftwbVUL6x?= =?us-ascii?Q?lAqDnnjOadJPrUpIokPUmDkm9bRBOaziGZWiVXzMxwcNl97hvQJWpbBXF5/W?= =?us-ascii?Q?ioo36ezfqZ/HUEINPAoLmVWEcaptMYi4pnZ3Lg7maam3rOAZr1mivs8969Vs?= =?us-ascii?Q?OAK4OAB/9S8+no+45Se39TbUulytBcNF+voryl596aMdOoFo6GARF2zj5uOA?= =?us-ascii?Q?WhscvOt/Sw+Npmzf1yoy3qCAYAszkINcCVHKGuzqeak5Gy+sf2DtsnQKK3DY?= =?us-ascii?Q?c5CNk5eRobO3nMiddheP6BN0O3WKMwyCZhPnELUupTnJTqstEaM84TBRNlca?= =?us-ascii?Q?8gE=3D?= Content-Type: multipart/mixed; boundary="_003_VI1PR0802MB2368FF4130C6F580882824669B359VI1PR0802MB2368_" MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB4992 Original-Authentication-Results: foss.arm.com; dkim=none (message not signed) header.d=none; foss.arm.com; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5EUR03FT049.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 345a3c43-38b8-4c78-9e2e-08d92c2d8078 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: um5RCDXWJQZ6H3mDqrZfz/SIdLe1/GEd8P1JKnimfjWLdPabmS9d10bKyZHzl8Kd4AL07DXbYPKEmbBOwyJHi08k93JzRdPj80jwP1g6/Ta7R7/NYa8WZdXdscSIjNmzVs4JyomunC2wP6LlGUL4ExmFaH+7EyM+NB9fJjJ2Qh2qhPZhoJ0yfDSmU7dlHrjywfgF4nZxCKIrc2LqQV+9a2A2wOmtuJnFYvruc1ibry3xuIT/35hMhnjeKjN/UYKkbj9OHqAHZOG8wsmfIHH6RvDDEYSrdrJSiHNSs0VIsiuJNj2oJLGudaYXnZZnbf1QqS3DJmo0io2MaLCYD2vYrf8XSJZTKODOt3hVfkG+rfJyGD+5j2uNh7yx/7LDJYxPGCDXJDl3JFKx1D2tf+sFva3zOIHt46Bb7nzmExVtywyyb38pUimNO2aDNsSFLFDIA2E4aPgC1+vvdmJuneyrFfx99lDmvUS/3ciKYmZXYu45SWxy+QbPf7sA6LoilJw6cFcSbj08UWM5w7RZxjVmqr8oV3Py6VLfeSTiVEsGTJrJIwCDtOkRhQK/DPBgoMRlAy0wWdpU/QBmDM9hNvz/5GsNBx8ggOpL1up1BLN27nbM5O877yp3gUPaV+X6UDsj+RKAOMkGB6OXFrTdVlZ3cJHXtzfoFsUw23+hUeYb8yk= X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(4636009)(396003)(136003)(376002)(39850400004)(346002)(36840700001)(46966006)(26005)(33656002)(21480400003)(186003)(110136005)(36860700001)(316002)(5660300002)(336012)(47076005)(478600001)(54906003)(2906002)(86362001)(7696005)(82310400003)(70586007)(9686003)(66576008)(235185007)(30864003)(52536014)(8676002)(70206006)(6506007)(53546011)(82740400003)(8936002)(356005)(55016002)(4326008)(81166007)(99936003)(83380400001); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jun 2021 16:33:57.7235 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 265c37c0-308a-4abf-3d19-08d92c2d8ba0 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: DB5EUR03FT049.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB3997 X-Spam-Status: No, score=-14.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, KAM_LOTSOFHASH, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jun 2021 16:34:06 -0000 --_003_VI1PR0802MB2368FF4130C6F580882824669B359VI1PR0802MB2368_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi Richard, I have all addressed all your review comments in the trailing in the patch = attached. Please review and let me know if it ok for master? Regards, Srinath. =20 > -----Original Message----- > From: Richard Earnshaw > Sent: 02 June 2021 15:20 > To: Srinath Parvathaneni ; gcc- > patches@gcc.gnu.org > Cc: Richard Earnshaw > Subject: Re: [GCC][PATCH] arm: Fix multilib mapping for CDE extensions. >=20 >=20 >=20 > On 01/06/2021 18:08, Srinath Parvathaneni via Gcc-patches wrote: > > Hi All, > > > > On passing +cdecp[0-7] extension to the -march string in command line > > options, multilib linking is failing as mentioned in PR100856. This > > patch fixes this issue by generating a separate -march string only for > multilib comparison. > > > > Regression tested on arm-none-eabi and found no regressions. > > > > Ok for master? > > > Not as it stands. More comments below. >=20 > > Regards, > > Srinath. > > > > gcc/ChangeLog: > > > > 2021-06-01 Srinath Parvathaneni > > > > PR target/100856 > > * common/config/arm/arm-common.c (arm_canon_arch_option): > Modify > > function to generate canonical march string after removing cde > related > > compiler extensions. > > (arm_canon_arch_multilib_option): Define function. > > * config/arm/arm-cpus.in (CDE_LIST): Define fgroup. > > * config/arm/arm.h (arm_canon_arch_multilib_option): Define > macro. > > (CANON_ARCH_MULTILIB_SPEC_FUNCTION): Define macro. > > (ARCH_CANONICAL_MULTILIB_SPECS): Define macro. > > (TARGET_MULTLILIB_ARCH): Define macro. > > * gcc.c (used_arg_t::operator ()): Add condition to generate separate > > march string for multilib matching. > > > > gcc/testsuite/ChangeLog: > > > > 2021-06-01 Srinath Parvathaneni > > > > PR target/100856 > > * gcc.target/arm/acle/pr100856.c: New test. > > * gcc.target/arm/multilib.exp: Modify. > > > > > > > > ############### Attachment also inlined for ease of reply > ############### > > > > > > diff --git a/gcc/common/config/arm/arm-common.c > > b/gcc/common/config/arm/arm-common.c > > index > > > 9980af6885c3dfe68f61fa0f39b23022b4e59c19..7d8c6e5253f3f1683eed99f479 > a0 > > 9186a46c2d22 100644 > > --- a/gcc/common/config/arm/arm-common.c > > +++ b/gcc/common/config/arm/arm-common.c > > @@ -616,6 +616,8 @@ public: > > } > > }; > > > > +static int multilib_arch =3D 0; >=20 > Please, no! Instead... >=20 > > + > > /* Generate a canonical representation of the -march option from the > > current -march string (if given) and other options on the command > > line that might affect the architecture. This aids multilib > > selection @@ -703,6 +705,14 @@ arm_canon_arch_option (int argc, const > > char **argv) >=20 > This function should be renamed arm_canon_arch_option_1 and given an > extra (bool) parameter to control the behaviour. Then > arm_canon_arch_option can call it with the parameter false to maintain th= e > existing behaviour and arm_canon_arch_multilib_option can pass true. >=20 > > arm_initialize_isa (target_isa, selected_arch->common.isa_bits)= ; > > arm_parse_option_features (target_isa, &selected_arch->common, > > strchr (arch, '+')); > > + if (multilib_arch =3D=3D 1) > > + { > > + const enum isa_feature cde_bitlist[] =3D {ISA_ALL_CDE, isa_nobit}; >=20 > This is too specific, but that's mostly a naming problem. Instead we nee= d a > new feature group IGNORE_FOR_MULTILIB (which at present just contains > ALL_CDE). >=20 > > + sbitmap isa_cdebits =3D sbitmap_alloc (isa_num_bits); > > + arm_initialize_isa (isa_cdebits, cde_bitlist); > > + bitmap_and_compl (target_isa, target_isa, isa_cdebits); > > + } > > + > > if (fpu && strcmp (fpu, "auto") !=3D 0) > > { > > /* We assume that architectures do not have any FPU bits @@ > > -786,18 +796,27 @@ arm_canon_arch_option (int argc, const char **argv) > > > > arm_initialize_isa (base_isa, selected_arch->common.isa_bits); > > > > - /* Architecture has no extension options, so just return the canonic= al > > - architecture name. */ > > - if (selected_arch->common.extensions =3D=3D NULL) > > - return selected_arch->common.name; > > - > > /* We're only interested in extension bits. */ > > bitmap_and_compl (target_isa, target_isa, base_isa); > > > > + /* Architecture has no extension options, so just return the canonic= al > > + architecture name. */ > > + if (multilib_arch =3D=3D 0 && selected_arch->common.extensions =3D= =3D NULL) > > + return selected_arch->common.name; > > /* There are no extensions needed. Just return the canonical > architecture > > name. */ > > - if (bitmap_empty_p (target_isa)) > > + else if (multilib_arch =3D=3D 0 && bitmap_empty_p (target_isa)) > > return selected_arch->common.name; > > + else if (multilib_arch =3D=3D 1 > > + && (selected_arch->common.extensions =3D=3D NULL > > + || bitmap_empty_p (target_isa))) > > + { > > + canonical_arch =3D (char *) xmalloc (strlen (selected_arch- > >common.name) > > + + strlen ("march=3D")); > > + strcpy (canonical_arch, "march=3D"); >=20 > Prepending "march=3D" only for the multilib_arch variant confuses the pur= pose > of this routine, which is to generate a suitable arch string. I think th= is should > be pushed up, perhaps as far as the specs strings themselves. Then most = of > this hunk just disappears as completely redundant. >=20 > > + strcat (canonical_arch, selected_arch->common.name); > > + return canonical_arch; > > + } > > > > /* What is left is the architecture that the compiler will target. = We > > now need to map that back into a suitable option+features list. > > @@ -899,10 +918,20 @@ arm_canon_arch_option (int argc, const char > **argv) > > } > > } > > > > - canonical_arch > > - =3D (char *) xmalloc (len + strlen (selected_arch->common.name)); > > - > > - strcpy (canonical_arch, selected_arch->common.name); > > + if (multilib_arch =3D=3D 1) > > + { > > + canonical_arch > > + =3D (char *) xmalloc (len + strlen (selected_arch->common.name) > > + + strlen ("march=3D")); > > + strcpy (canonical_arch, "march=3D"); > > + strcat (canonical_arch, selected_arch->common.name); > > + } > > + else > > + { > > + canonical_arch > > + =3D (char *) xmalloc (len + strlen (selected_arch->common.name)); > > + strcpy (canonical_arch, selected_arch->common.name); > > + } >=20 > Likewise. >=20 > > > > for (std::list::iterator iter =3D extensions= .begin (); > > iter !=3D extensions.end (); ++iter) @@ -1069,3 +1098,15 @@ > > arm_asm_auto_mfpu (int argc, const char **argv) > > #define TARGET_EXCEPT_UNWIND_INFO arm_except_unwind_info > > > > struct gcc_targetm_common targetm_common =3D > > TARGETM_COMMON_INITIALIZER; > > + > > +/* This function returns the canonical -march string after removing th= e > compiler > > + extension options which are not required for multilib linking. */ > > +const char * arm_canon_arch_multilib_option (int argc, const char > > +**argv) { > > + char const *multilib_option =3D NULL; > > + multilib_arch =3D 1; > > + multilib_option =3D arm_canon_arch_option ( argc, argv); >=20 > remove white space before argc. >=20 > > + multilib_arch =3D 0; >=20 > See comment earlier. This function should just be >=20 > const char * > arm_canon_arch_multilib_option (int argc, const char **argv) { > return arm_canon_arch_option_1 (argc, argv, true); } >=20 > > + return multilib_option; > > +} > > diff --git a/gcc/config/arm/arm-cpus.in b/gcc/config/arm/arm-cpus.in > > index > > > 0becb4385b675d0e08ea08c97785cabfa8cf7026..00944f8e9071d6097f703843f > ee8 > > 822d0ee08d6a 100644 > > --- a/gcc/config/arm/arm-cpus.in > > +++ b/gcc/config/arm/arm-cpus.in > > @@ -324,6 +324,8 @@ define implied vfp_base MVE MVE_FP ALL_FP > > # need to ignore it for matching purposes. > > define fgroup ALL_QUIRKS quirk_no_volatile_ce quirk_armv6kz > quirk_cm3_ldrd xscale quirk_no_asmcpu > > > > +define fgroup ALL_CDE cdecp0 cdecp1 cdecp2 cdecp3 cdecp4 cdecp5 > > +cdecp6 cdecp7 > > + > > # Architecture entries > > # format: > > # begin arch > > diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h index > > > 8e5bd5793237e531aa83d998f5756b459dbcb6a7..0859c2dc1d60b98935242fc > e56b1 > > 7f5f67fd1509 100644 > > --- a/gcc/config/arm/arm.h > > +++ b/gcc/config/arm/arm.h > > @@ -2444,10 +2444,14 @@ extern const char *host_detect_local_cpu (int > argc, const char **argv); > > #endif > > > > const char *arm_canon_arch_option (int argc, const char **argv); > > +const char *arm_canon_arch_multilib_option (int argc, const char > > +**argv); > > > > #define CANON_ARCH_SPEC_FUNCTION \ > > { "canon_arch", arm_canon_arch_option }, > > > > +#define CANON_ARCH_MULTILIB_SPEC_FUNCTION \ > > + { "canon_arch_multilib", arm_canon_arch_multilib_option }, > > + > > const char *arm_be8_option (int argc, const char **argv); > > #define BE8_SPEC_FUNCTION \ > > { "be8_linkopt", arm_be8_option }, @@ -2456,6 +2460,7 @@ const > > char *arm_be8_option (int argc, const char **argv); > > MCPU_MTUNE_NATIVE_FUNCTIONS \ > > ASM_CPU_SPEC_FUNCTIONS \ > > CANON_ARCH_SPEC_FUNCTION \ > > + CANON_ARCH_MULTILIB_SPEC_FUNCTION \ > > TARGET_MODE_SPEC_FUNCTIONS \ > > BE8_SPEC_FUNCTION > > > > @@ -2476,6 +2481,15 @@ const char *arm_be8_option (int argc, const > char **argv); > > " %{mfloat-abi=3D*: abi %*}" \ > > " % > > > +/* Generate a canonical string without compiler extension which are no= t > needed > > + for multilib linking. */ > > +#define ARCH_CANONICAL_MULTILIB_SPECS \ > > + "%{mcpu=3D*: cpu %*} " \ > > + "%{march=3D*: arch %*} " \ > > + "%{mfpu=3D*: fpu %*} " \ > > + "%{mfloat-abi=3D*: abi %*}" \ > > + "% > + > > /* Complete set of specs for the driver. Commas separate the > > individual rules so that any option suppression (% > completed before starting subsequent rules. */ @@ -2484,6 > > +2498,8 @@ const char *arm_be8_option (int argc, const char **argv); > > TARGET_MODE_SPECS, \ > > ARCH_CANONICAL_SPECS > > > > +#define TARGET_MULTLILIB_ARCH 1 > > + >=20 > This isn't documented. But it's no-longer the way we do things anyway. > What's needed these days is a hook. >=20 > > #define TARGET_SUPPORTS_WIDE_INT 1 > > > > /* For switching between functions with different target attributes. > > */ diff --git a/gcc/gcc.c b/gcc/gcc.c index > > > 4c1a659d5e8929ed2267694c0d62ce476a099bf5..7984806f5fe0e65021daffaa > 0557 > > 93890db23228 100644 > > --- a/gcc/gcc.c > > +++ b/gcc/gcc.c > > @@ -9414,9 +9414,27 @@ used_arg_t::operator () (const char *p, int len) > > if ((switches[i].live_cond & SWITCH_IGNORE) =3D=3D 0) > > { > > int xlen =3D strlen (switches[i].part1); > > +#ifdef TARGET_MULTLILIB_ARCH > > + const char *arch_multilib =3D NULL; > > + if (!strncmp (switches[i].part1, "march=3D", strlen ("march=3D"))= ) > > + { > > + arch_multilib > > + =3D eval_spec_function ("canon_arch_multilib", > > + ARCH_CANONICAL_MULTILIB_SPECS, > NULL); > > + xlen =3D strlen (arch_multilib); > > + } > > + for (j =3D 0; j < cnt; j++) > > + if (xlen =3D=3D matches[j].len > > + && ((arch_multilib !=3D NULL > > + && !strncmp (arch_multilib, matches[j].str, xlen)) > > + || (arch_multilib =3D=3D NULL > > + && !strncmp (switches[i].part1, matches[j].str, > > + xlen)))) > > +#else >=20 > This just won't fly. Firstly, we don't use ifdefs this way in the main c= ode base > anymore (it needs to be done through hooks if it can't be made completely > generic). Secondly, it makes reference to a machine-specific switch name > directly from machine-independent code. I don't currently have a strong > suggestion to make at this point, though, sorry. Perhaps someone else ca= n > suggest a way forward. >=20 > > for (j =3D 0; j < cnt; j++) > > if (xlen =3D=3D matches[j].len > > && ! strncmp (switches[i].part1, matches[j].str, xlen)) > > +#endif > > { > > mswitches[n_mswitches].str =3D matches[j].replace; > > mswitches[n_mswitches].len =3D matches[j].rep_len; @@ - > 9425,6 > > +9443,10 @@ used_arg_t::operator () (const char *p, int len) > > n_mswitches++; > > break; > > } > > +#ifdef TARGET_MULTLILIB_ARCH > > + if (arch_multilib !=3D NULL) > > + free (CONST_CAST (char *, arch_multilib)); #endif > > } > > > > /* Add MULTILIB_DEFAULTS switches too, as long as they were > > not present diff --git a/gcc/testsuite/gcc.target/arm/acle/pr100856.c > > b/gcc/testsuite/gcc.target/arm/acle/pr100856.c > > new file mode 100644 > > index > > > 0000000000000000000000000000000000000000..5bc030e2e46bf89dfe7f3b9 > d0dab > > 1e07947e8d5e > > --- /dev/null > > +++ b/gcc/testsuite/gcc.target/arm/acle/pr100856.c > > @@ -0,0 +1,10 @@ > > +/* { dg-do run } */ > > +/* { dg-require-effective-target arm_v8_1m_main_cde_mve_ok } */ > > +/* { dg-add-options arm_v8_1m_main_cde_mve } */ > > + > > +#include "arm_cde.h" > > + > > +int main() > > +{ > > + return 0; > > +} > > diff --git a/gcc/testsuite/gcc.target/arm/multilib.exp > > b/gcc/testsuite/gcc.target/arm/multilib.exp > > index > > > 46f2d86de3c05c184b2ec12af53e2053ddc3b157..4b30025db8cbdcd37bbb3a0 > be6c3 > > 45b9d48818c4 100644 > > --- a/gcc/testsuite/gcc.target/arm/multilib.exp > > +++ b/gcc/testsuite/gcc.target/arm/multilib.exp > > @@ -840,6 +840,119 @@ if {[multilib_config "rmprofile"] } { > > {-mcpu=3Dcortex-m55+nomve+nofp -mfpu=3Dauto -mfloat-abi=3Dsoftfp} > "thumb/v8-m.main/nofp" > > {-mcpu=3Dcortex-m55+nodsp+nofp -mfpu=3Dauto -mfloat-abi=3Dsoft} > "thumb/v8-m.main/nofp" > > {-mcpu=3Dcortex-m55+nodsp+nofp -mfpu=3Dauto -mfloat-abi=3Dsoftfp} > "thumb/v8-m.main/nofp" > > + {-march=3Darmv8-m.main+cdecp0 -mfpu=3Dauto -mfloat-abi=3Dsoft} > "thumb/v8-m.main/nofp" > > + {-march=3Darmv8-m.main+fp+cdecp0 -mfpu=3Dauto -mfloat-abi=3Dsoft} > "thumb/v8-m.main/nofp" > > + {-march=3Darmv8-m.main+fp.dp+cdecp0 -mfpu=3Dauto -mfloat-abi=3Dsoft} > "thumb/v8-m.main/nofp" > > + {-march=3Darmv8-m.main+fp+dsp+cdecp0 -mfpu=3Dauto -mfloat- > abi=3Dsoft} "thumb/v8-m.main/nofp" > > + {-march=3Darmv8-m.main+fp.dp+dsp+cdecp0 -mfpu=3Dauto -mfloat- > abi=3Dsoft} "thumb/v8-m.main/nofp" > > + {-march=3Darmv8-m.main+cdecp0 -mfpu=3Dvfpv3xd -mfloat-abi=3Dsoft} > "thumb/v8-m.main/nofp" > > + {-march=3Darmv8-m.main+fp+cdecp0 -mfpu=3Dvfpv3xd -mfloat-abi=3Dsoft} > "thumb/v8-m.main/nofp" > > + {-march=3Darmv8-m.main+fp.dp+cdecp0 -mfpu=3Dvfpv3xd -mfloat- > abi=3Dsoft} "thumb/v8-m.main/nofp" > > + {-march=3Darmv8-m.main+fp+dsp+cdecp0 -mfpu=3Dvfpv3xd -mfloat- > abi=3Dsoft} "thumb/v8-m.main/nofp" > > + {-march=3Darmv8-m.main+fp.dp+dsp+cdecp0 -mfpu=3Dvfpv3xd -mfloat- > abi=3Dsoft} "thumb/v8-m.main/nofp" > > + {-march=3Darmv8-m.main+cdecp0 -mfpu=3Dvfpv3xd-fp16 -mfloat- > abi=3Dsoft} "thumb/v8-m.main/nofp" > > + {-march=3Darmv8-m.main+fp+cdecp0 -mfpu=3Dvfpv3xd-fp16 -mfloat- > abi=3Dsoft} "thumb/v8-m.main/nofp" > > + {-march=3Darmv8-m.main+fp.dp+cdecp0 -mfpu=3Dvfpv3xd-fp16 -mfloat- > abi=3Dsoft} "thumb/v8-m.main/nofp" > > + {-march=3Darmv8-m.main+fp+dsp+cdecp0 -mfpu=3Dvfpv3xd-fp16 - > mfloat-abi=3Dsoft} "thumb/v8-m.main/nofp" > > + {-march=3Darmv8-m.main+fp.dp+dsp+cdecp0 -mfpu=3Dvfpv3xd-fp16 - > mfloat-abi=3Dsoft} "thumb/v8-m.main/nofp" > > + {-march=3Darmv8-m.main+cdecp0 -mfpu=3Dfpv4-sp-d16 -mfloat-abi=3Dsoft} > "thumb/v8-m.main/nofp" > > + {-march=3Darmv8-m.main+fp+cdecp0 -mfpu=3Dfpv4-sp-d16 -mfloat- > abi=3Dsoft} "thumb/v8-m.main/nofp" > > + {-march=3Darmv8-m.main+fp.dp+cdecp0 -mfpu=3Dfpv4-sp-d16 -mfloat- > abi=3Dsoft} "thumb/v8-m.main/nofp" > > + {-march=3Darmv8-m.main+fp+dsp+cdecp0 -mfpu=3Dfpv4-sp-d16 -mfloat- > abi=3Dsoft} "thumb/v8-m.main/nofp" > > + {-march=3Darmv8-m.main+fp.dp+dsp+cdecp0 -mfpu=3Dfpv4-sp-d16 - > mfloat-abi=3Dsoft} "thumb/v8-m.main/nofp" > > + {-march=3Darmv8-m.main+cdecp0 -mfpu=3Dfpv5-sp-d16 -mfloat-abi=3Dsoft} > "thumb/v8-m.main/nofp" > > + {-march=3Darmv8-m.main+fp+cdecp0 -mfpu=3Dfpv5-sp-d16 -mfloat- > abi=3Dsoft} "thumb/v8-m.main/nofp" > > + {-march=3Darmv8-m.main+fp.dp+cdecp0 -mfpu=3Dfpv5-sp-d16 -mfloat- > abi=3Dsoft} "thumb/v8-m.main/nofp" > > + {-march=3Darmv8-m.main+fp+dsp+cdecp0 -mfpu=3Dfpv5-sp-d16 -mfloat- > abi=3Dsoft} "thumb/v8-m.main/nofp" > > + {-march=3Darmv8-m.main+fp.dp+dsp+cdecp0 -mfpu=3Dfpv5-sp-d16 - > mfloat-abi=3Dsoft} "thumb/v8-m.main/nofp" > > + {-march=3Darmv8-m.main+cdecp0 -mfpu=3Dfpv5-d16 -mfloat-abi=3Dsoft} > "thumb/v8-m.main/nofp" > > + {-march=3Darmv8-m.main+fp+cdecp0 -mfpu=3Dfpv5-d16 -mfloat-abi=3Dsoft} > "thumb/v8-m.main/nofp" > > + {-march=3Darmv8-m.main+fp.dp+cdecp0 -mfpu=3Dfpv5-d16 -mfloat- > abi=3Dsoft} "thumb/v8-m.main/nofp" > > + {-march=3Darmv8-m.main+fp+dsp+cdecp0 -mfpu=3Dfpv5-d16 -mfloat- > abi=3Dsoft} "thumb/v8-m.main/nofp" > > + {-march=3Darmv8-m.main+fp.dp+dsp+cdecp0 -mfpu=3Dfpv5-d16 -mfloat- > abi=3Dsoft} "thumb/v8-m.main/nofp" > > + {-march=3Darmv8-m.main+fp+cdecp0 -mfpu=3Dauto -mfloat-abi=3Dhard} > "thumb/v8-m.main+fp/hard" > > + {-march=3Darmv8-m.main+fp.dp+cdecp0 -mfpu=3Dauto -mfloat-abi=3Dhard} > "thumb/v8-m.main+dp/hard" > > + {-march=3Darmv8-m.main+fp+dsp+cdecp0 -mfpu=3Dauto -mfloat- > abi=3Dhard} "thumb/v8-m.main+fp/hard" > > + {-march=3Darmv8-m.main+fp.dp+dsp+cdecp0 -mfpu=3Dauto -mfloat- > abi=3Dhard} "thumb/v8-m.main+dp/hard" > > + {-march=3Darmv8-m.main+cdecp0 -mfpu=3Dvfpv3xd -mfloat-abi=3Dhard} > "thumb/v8-m.main+fp/hard" > > + {-march=3Darmv8-m.main+fp+cdecp0 -mfpu=3Dvfpv3xd -mfloat-abi=3Dhard} > "thumb/v8-m.main+fp/hard" > > + {-march=3Darmv8-m.main+fp.dp+cdecp0 -mfpu=3Dvfpv3xd -mfloat- > abi=3Dhard} "thumb/v8-m.main+dp/hard" > > + {-march=3Darmv8-m.main+fp+dsp+cdecp0 -mfpu=3Dvfpv3xd -mfloat- > abi=3Dhard} "thumb/v8-m.main+fp/hard" > > + {-march=3Darmv8-m.main+fp.dp+dsp+cdecp0 -mfpu=3Dvfpv3xd -mfloat- > abi=3Dhard} "thumb/v8-m.main+dp/hard" > > + {-march=3Darmv8-m.main+cdecp0 -mfpu=3Dvfpv3xd-fp16 -mfloat- > abi=3Dhard} "thumb/v8-m.main+fp/hard" > > + {-march=3Darmv8-m.main+fp+cdecp0 -mfpu=3Dvfpv3xd-fp16 -mfloat- > abi=3Dhard} "thumb/v8-m.main+fp/hard" > > + {-march=3Darmv8-m.main+fp.dp+cdecp0 -mfpu=3Dvfpv3xd-fp16 -mfloat- > abi=3Dhard} "thumb/v8-m.main+dp/hard" > > + {-march=3Darmv8-m.main+fp+dsp+cdecp0 -mfpu=3Dvfpv3xd-fp16 - > mfloat-abi=3Dhard} "thumb/v8-m.main+fp/hard" > > + {-march=3Darmv8-m.main+fp.dp+dsp+cdecp0 -mfpu=3Dvfpv3xd-fp16 - > mfloat-abi=3Dhard} "thumb/v8-m.main+dp/hard" > > + {-march=3Darmv8-m.main+cdecp0 -mfpu=3Dfpv4-sp-d16 -mfloat- > abi=3Dhard} "thumb/v8-m.main+fp/hard" > > + {-march=3Darmv8-m.main+fp+cdecp0 -mfpu=3Dfpv4-sp-d16 -mfloat- > abi=3Dhard} "thumb/v8-m.main+fp/hard" > > + {-march=3Darmv8-m.main+fp.dp+cdecp0 -mfpu=3Dfpv4-sp-d16 -mfloat- > abi=3Dhard} "thumb/v8-m.main+dp/hard" > > + {-march=3Darmv8-m.main+fp+dsp+cdecp0 -mfpu=3Dfpv4-sp-d16 -mfloat- > abi=3Dhard} "thumb/v8-m.main+fp/hard" > > + {-march=3Darmv8-m.main+fp.dp+dsp+cdecp0 -mfpu=3Dfpv4-sp-d16 - > mfloat-abi=3Dhard} "thumb/v8-m.main+dp/hard" > > + {-march=3Darmv8-m.main+cdecp0 -mfpu=3Dfpv5-sp-d16 -mfloat- > abi=3Dhard} "thumb/v8-m.main+fp/hard" > > + {-march=3Darmv8-m.main+fp+cdecp0 -mfpu=3Dfpv5-sp-d16 -mfloat- > abi=3Dhard} "thumb/v8-m.main+fp/hard" > > + {-march=3Darmv8-m.main+fp.dp+cdecp0 -mfpu=3Dfpv5-sp-d16 -mfloat- > abi=3Dhard} "thumb/v8-m.main+dp/hard" > > + {-march=3Darmv8-m.main+fp+dsp+cdecp0 -mfpu=3Dfpv5-sp-d16 -mfloat- > abi=3Dhard} "thumb/v8-m.main+fp/hard" > > + {-march=3Darmv8-m.main+fp.dp+dsp+cdecp0 -mfpu=3Dfpv5-sp-d16 - > mfloat-abi=3Dhard} "thumb/v8-m.main+dp/hard" > > + {-march=3Darmv8-m.main+cdecp0 -mfpu=3Dfpv5-d16 -mfloat-abi=3Dhard} > "thumb/v8-m.main+dp/hard" > > + {-march=3Darmv8-m.main+fp+cdecp0 -mfpu=3Dfpv5-d16 -mfloat- > abi=3Dhard} "thumb/v8-m.main+dp/hard" > > + {-march=3Darmv8-m.main+fp.dp+cdecp0 -mfpu=3Dfpv5-d16 -mfloat- > abi=3Dhard} "thumb/v8-m.main+dp/hard" > > + {-march=3Darmv8-m.main+fp+dsp+cdecp0 -mfpu=3Dfpv5-d16 -mfloat- > abi=3Dhard} "thumb/v8-m.main+dp/hard" > > + {-march=3Darmv8-m.main+fp.dp+dsp+cdecp0 -mfpu=3Dfpv5-d16 -mfloat- > abi=3Dhard} "thumb/v8-m.main+dp/hard" > > + {-march=3Darmv8-m.main+cdecp0 -mfpu=3Dauto -mfloat-abi=3Dsoftfp} > "thumb/v8-m.main/nofp" > > + {-march=3Darmv8-m.main+fp+cdecp0 -mfpu=3Dauto -mfloat-abi=3Dsoftfp} > "thumb/v8-m.main+fp/softfp" > > + {-march=3Darmv8-m.main+fp.dp+cdecp0 -mfpu=3Dauto -mfloat- > abi=3Dsoftfp} "thumb/v8-m.main+dp/softfp" > > + {-march=3Darmv8-m.main+fp+dsp+cdecp0 -mfpu=3Dauto -mfloat- > abi=3Dsoftfp} "thumb/v8-m.main+fp/softfp" > > + {-march=3Darmv8-m.main+fp.dp+dsp+cdecp0 -mfpu=3Dauto -mfloat- > abi=3Dsoftfp} "thumb/v8-m.main+dp/softfp" > > + {-march=3Darmv8-m.main+cdecp0 -mfpu=3Dvfpv3xd -mfloat-abi=3Dsoftfp} > "thumb/v8-m.main+fp/softfp" > > + {-march=3Darmv8-m.main+fp+cdecp0 -mfpu=3Dvfpv3xd -mfloat- > abi=3Dsoftfp} "thumb/v8-m.main+fp/softfp" > > + {-march=3Darmv8-m.main+fp.dp+cdecp0 -mfpu=3Dvfpv3xd -mfloat- > abi=3Dsoftfp} "thumb/v8-m.main+dp/softfp" > > + {-march=3Darmv8-m.main+fp+dsp+cdecp0 -mfpu=3Dvfpv3xd -mfloat- > abi=3Dsoftfp} "thumb/v8-m.main+fp/softfp" > > + {-march=3Darmv8-m.main+fp.dp+dsp+cdecp0 -mfpu=3Dvfpv3xd -mfloat- > abi=3Dsoftfp} "thumb/v8-m.main+dp/softfp" > > + {-march=3Darmv8-m.main+cdecp0 -mfpu=3Dvfpv3xd-fp16 -mfloat- > abi=3Dsoftfp} "thumb/v8-m.main+fp/softfp" > > + {-march=3Darmv8-m.main+fp+cdecp0 -mfpu=3Dvfpv3xd-fp16 -mfloat- > abi=3Dsoftfp} "thumb/v8-m.main+fp/softfp" > > + {-march=3Darmv8-m.main+fp.dp+cdecp0 -mfpu=3Dvfpv3xd-fp16 -mfloat- > abi=3Dsoftfp} "thumb/v8-m.main+dp/softfp" > > + {-march=3Darmv8-m.main+fp+dsp+cdecp0 -mfpu=3Dvfpv3xd-fp16 - > mfloat-abi=3Dsoftfp} "thumb/v8-m.main+fp/softfp" > > + {-march=3Darmv8-m.main+fp.dp+dsp+cdecp0 -mfpu=3Dvfpv3xd-fp16 - > mfloat-abi=3Dsoftfp} "thumb/v8-m.main+dp/softfp" > > + {-march=3Darmv8-m.main+cdecp0 -mfpu=3Dfpv4-sp-d16 -mfloat- > abi=3Dsoftfp} "thumb/v8-m.main+fp/softfp" > > + {-march=3Darmv8-m.main+fp+cdecp0 -mfpu=3Dfpv4-sp-d16 -mfloat- > abi=3Dsoftfp} "thumb/v8-m.main+fp/softfp" > > + {-march=3Darmv8-m.main+fp.dp+cdecp0 -mfpu=3Dfpv4-sp-d16 -mfloat- > abi=3Dsoftfp} "thumb/v8-m.main+dp/softfp" > > + {-march=3Darmv8-m.main+fp+dsp+cdecp0 -mfpu=3Dfpv4-sp-d16 -mfloat- > abi=3Dsoftfp} "thumb/v8-m.main+fp/softfp" > > + {-march=3Darmv8-m.main+fp.dp+dsp+cdecp0 -mfpu=3Dfpv4-sp-d16 - > mfloat-abi=3Dsoftfp} "thumb/v8-m.main+dp/softfp" > > + {-march=3Darmv8-m.main+cdecp0 -mfpu=3Dfpv5-sp-d16 -mfloat- > abi=3Dsoftfp} "thumb/v8-m.main+fp/softfp" > > + {-march=3Darmv8-m.main+fp+cdecp0 -mfpu=3Dfpv5-sp-d16 -mfloat- > abi=3Dsoftfp} "thumb/v8-m.main+fp/softfp" > > + {-march=3Darmv8-m.main+fp.dp+cdecp0 -mfpu=3Dfpv5-sp-d16 -mfloat- > abi=3Dsoftfp} "thumb/v8-m.main+dp/softfp" > > + {-march=3Darmv8-m.main+fp+dsp+cdecp0 -mfpu=3Dfpv5-sp-d16 -mfloat- > abi=3Dsoftfp} "thumb/v8-m.main+fp/softfp" > > + {-march=3Darmv8-m.main+fp.dp+dsp+cdecp0 -mfpu=3Dfpv5-sp-d16 - > mfloat-abi=3Dsoftfp} "thumb/v8-m.main+dp/softfp" > > + {-march=3Darmv8-m.main+cdecp0 -mfpu=3Dfpv5-d16 -mfloat-abi=3Dsoftfp} > "thumb/v8-m.main+dp/softfp" > > + {-march=3Darmv8-m.main+fp+cdecp0 -mfpu=3Dfpv5-d16 -mfloat- > abi=3Dsoftfp} "thumb/v8-m.main+dp/softfp" > > + {-march=3Darmv8-m.main+fp.dp+cdecp0 -mfpu=3Dfpv5-d16 -mfloat- > abi=3Dsoftfp} "thumb/v8-m.main+dp/softfp" > > + {-march=3Darmv8-m.main+fp+dsp+cdecp0 -mfpu=3Dfpv5-d16 -mfloat- > abi=3Dsoftfp} "thumb/v8-m.main+dp/softfp" > > + {-march=3Darmv8-m.main+fp.dp+dsp+cdecp0 -mfpu=3Dfpv5-d16 -mfloat- > abi=3Dsoftfp} "thumb/v8-m.main+dp/softfp" > > + {-march=3Darmv8.1-m.main+cdecp0 -mfpu=3Dauto -mfloat-abi=3Dsoft} > "thumb/v8-m.main/nofp" > > + {-march=3Darmv8.1-m.main+dsp+cdecp0 -mfpu=3Dauto -mfloat-abi=3Dsoft} > "thumb/v8-m.main/nofp" > > + {-march=3Darmv8.1-m.main+dsp+fp+cdecp0 -mfpu=3Dauto -mfloat- > abi=3Dsoft} "thumb/v8-m.main/nofp" > > + {-march=3Darmv8.1-m.main+dsp+fp.dp+cdecp0 -mfpu=3Dauto -mfloat- > abi=3Dsoft} "thumb/v8-m.main/nofp" > > + {-march=3Darmv8.1-m.main+cdecp0 -mfpu=3Dauto -mfloat-abi=3Dsoftfp} > "thumb/v8-m.main/nofp" > > + {-march=3Darmv8.1-m.main+dsp+cdecp0 -mfpu=3Dauto -mfloat- > abi=3Dsoftfp} "thumb/v8-m.main/nofp" > > + {-march=3Darmv8.1-m.main+dsp+fp+cdecp0 -mfpu=3Dauto -mfloat- > abi=3Dsoftfp} "thumb/v8-m.main+fp/softfp" > > + {-march=3Darmv8.1-m.main+dsp+fp.dp+cdecp0 -mfpu=3Dauto -mfloat- > abi=3Dsoftfp} "thumb/v8-m.main+dp/softfp" > > + {-march=3Darmv8.1-m.main+dsp+fp+cdecp0 -mfpu=3Dauto -mfloat- > abi=3Dhard} "thumb/v8-m.main+fp/hard" > > + {-march=3Darmv8.1-m.main+dsp+fp.dp+cdecp0 -mfpu=3Dauto -mfloat- > abi=3Dhard} "thumb/v8-m.main+dp/hard" > > + {-march=3Darmv8.1-m.main+mve+cdecp0 -mfpu=3Dauto -mfloat-abi=3Dsoft} > "thumb/v8-m.main/nofp" > > + {-march=3Darmv8.1-m.main+mve.fp+cdecp0 -mfpu=3Dauto -mfloat- > abi=3Dsoft} "thumb/v8-m.main/nofp" > > + {-march=3Darmv8.1-m.main+mve+cdecp0 -mfpu=3Dauto -mfloat- > abi=3Dsoftfp} "thumb/v8-m.main/nofp" > > + {-march=3Darmv8.1-m.main+mve.fp+cdecp0 -mfpu=3Dauto -mfloat- > abi=3Dsoftfp} "thumb/v8-m.main+fp/softfp" > > + {-march=3Darmv8.1-m.main+mve+cdecp0 -mfpu=3Dauto -mfloat- > abi=3Dhard} "thumb/v8.1-m.main+mve/hard" > > + {-march=3Darmv8.1-m.main+mve+fp+cdecp0 -mfpu=3Dauto -mfloat- > abi=3Dhard} "thumb/v8-m.main+fp/hard" > > + {-march=3Darmv8.1-m.main+mve+fp+cdecp0 -mfpu=3Dauto -mfloat- > abi=3Dsoftfp} "thumb/v8-m.main+fp/softfp" > > + {-march=3Darmv8.1-m.main+mve.fp+cdecp0 -mfpu=3Dauto -mfloat- > abi=3Dhard} "thumb/v8-m.main+fp/hard" > > + {-march=3Darmv8.1-m.main+mve+fp.dp+cdecp0 -mfpu=3Dauto -mfloat- > abi=3Dsoft} "thumb/v8-m.main/nofp" > > + {-march=3Darmv8.1-m.main+mve.fp+fp.dp+cdecp0 -mfpu=3Dauto - > mfloat-abi=3Dsoft} "thumb/v8-m.main/nofp" > > + {-march=3Darmv8.1-m.main+mve+fp.dp+cdecp0 -mfpu=3Dauto -mfloat- > abi=3Dsoftfp} "thumb/v8-m.main+dp/softfp" > > + {-march=3Darmv8.1-m.main+mve.fp+fp.dp+cdecp0 -mfpu=3Dauto - > mfloat-abi=3Dsoftfp} "thumb/v8-m.main+dp/softfp" > > + {-march=3Darmv8.1-m.main+mve+fp.dp+cdecp0 -mfpu=3Dauto -mfloat- > abi=3Dhard} "thumb/v8-m.main+dp/hard" > > + {-march=3Darmv8.1-m.main+mve.fp+fp.dp+cdecp0 -mfpu=3Dauto - > mfloat-abi=3Dhard} "thumb/v8-m.main+dp/hard" > > } { > > check_multi_dir $opts $dir > > } > > --_003_VI1PR0802MB2368FF4130C6F580882824669B359VI1PR0802MB2368_ Content-Type: application/octet-stream; name="code_diff" Content-Description: code_diff Content-Disposition: attachment; filename="code_diff"; size=20832; creation-date="Thu, 10 Jun 2021 16:32:22 GMT"; modification-date="Thu, 10 Jun 2021 16:29:43 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy9jb21tb24vY29uZmlnL2FybS9hcm0tY29tbW9uLmMgYi9nY2MvY29t bW9uL2NvbmZpZy9hcm0vYXJtLWNvbW1vbi5jCmluZGV4IDk5ODBhZjY4ODVjM2RmZTY4ZjYxZmEw ZjM5YjIzMDIyYjRlNTljMTkuLjEzMzY4ZWMwN2QxNzA0NzMwNTdmNmQ0YWM0NzlhMWMzNjRiYjQ1 NTIgMTAwNjQ0Ci0tLSBhL2djYy9jb21tb24vY29uZmlnL2FybS9hcm0tY29tbW9uLmMKKysrIGIv Z2NjL2NvbW1vbi9jb25maWcvYXJtL2FybS1jb21tb24uYwpAQCAtNjI5LDcgKzYyOSw3IEBAIHB1 YmxpYzoKICAgIG5hbWUgd2FzIHNlbGVjdGVkIChhcmNoLCBjcHUsIGZwdSkgYW5kIHRoZSBzZWNv bmQgaXMgdGhlIHZhbHVlCiAgICBwYXNzZWQgZm9yIHRoYXQgb3B0aW9uLiAgKi8KIGNvbnN0IGNo YXIgKgotYXJtX2Nhbm9uX2FyY2hfb3B0aW9uIChpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3Yp Cithcm1fY2Fub25fYXJjaF9vcHRpb25fMSAoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBi b29sIGZsYWcpCiB7CiAgIGNvbnN0IGNoYXIgKmFyY2ggPSBOVUxMOwogICBjb25zdCBjaGFyICpj cHUgPSBOVUxMOwpAQCAtNjc2LDcgKzY3NiwxMCBAQCBhcm1fY2Fub25fYXJjaF9vcHRpb24gKGlu dCBhcmdjLCBjb25zdCBjaGFyICoqYXJndikKIAogICAvKiBBdCBsZWFzdCBvbmUgb2YgdGhlc2Ug bXVzdCBiZSBkZWZpbmVkIGJ5IGVpdGhlciB0aGUgc3BlY3Mgb3IgdGhlCiAgICAgIHVzZXIuICAq LwotICBnY2NfYXNzZXJ0IChjcHUgfHwgYXJjaCk7CisgIGdjY19hc3NlcnQgKGNwdSB8fCBhcmNo IHx8IGZsYWcpOworCisgIGlmIChmbGFnICYmICEoY3B1IHx8IGFyY2gpKQorICAgIHJldHVybiAi IjsKIAogICBpZiAoIWZwdSkKICAgICBmcHUgPSBGUFVUWVBFX0FVVE87CkBAIC02OTUsNyArNjk4 LDcgQEAgYXJtX2Nhbm9uX2FyY2hfb3B0aW9uIChpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3Yp CiAgIGlmIChhcmNoKQogICAgIHsKICAgICAgIHNlbGVjdGVkX2FyY2ggPSBhcm1fcGFyc2VfYXJj aF9vcHRpb25fbmFtZSAoYWxsX2FyY2hpdGVjdHVyZXMsCi0JCQkJCQkgICItbWFyY2giLCBhcmNo KTsKKwkJCQkJCSAgIi1tYXJjaCIsIGFyY2gsICFmbGFnKTsKIAogICAgICAgaWYgKHNlbGVjdGVk X2FyY2ggPT0gTlVMTCkKIAlyZXR1cm4gIiI7CkBAIC03MDMsNiArNzA2LDE1IEBAIGFybV9jYW5v bl9hcmNoX29wdGlvbiAoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2KQogICAgICAgYXJtX2lu aXRpYWxpemVfaXNhICh0YXJnZXRfaXNhLCBzZWxlY3RlZF9hcmNoLT5jb21tb24uaXNhX2JpdHMp OwogICAgICAgYXJtX3BhcnNlX29wdGlvbl9mZWF0dXJlcyAodGFyZ2V0X2lzYSwgJnNlbGVjdGVk X2FyY2gtPmNvbW1vbiwKIAkJCQkgc3RyY2hyIChhcmNoLCAnKycpKTsKKyAgICAgIGlmIChmbGFn KQorCXsKKwkgIGNvbnN0IGVudW0gaXNhX2ZlYXR1cmUgcmVtb3ZhYmxlX2JpdHNbXSA9IHtJU0Ff SUdOT1JFX0ZPUl9NVUxUSUxJQiwKKwkJCQkJCSAgICAgaXNhX25vYml0fTsKKwkgIHNiaXRtYXAg aXNhX2JpdHMgPSBzYml0bWFwX2FsbG9jIChpc2FfbnVtX2JpdHMpOworCSAgYXJtX2luaXRpYWxp emVfaXNhIChpc2FfYml0cywgcmVtb3ZhYmxlX2JpdHMpOworCSAgYml0bWFwX2FuZF9jb21wbCAo dGFyZ2V0X2lzYSwgdGFyZ2V0X2lzYSwgaXNhX2JpdHMpOworCX0KKwogICAgICAgaWYgKGZwdSAm JiBzdHJjbXAgKGZwdSwgImF1dG8iKSAhPSAwKQogCXsKIAkgIC8qIFdlIGFzc3VtZSB0aGF0IGFy Y2hpdGVjdHVyZXMgZG8gbm90IGhhdmUgYW55IEZQVSBiaXRzCkBAIC03MTksNyArNzMxLDcgQEAg YXJtX2Nhbm9uX2FyY2hfb3B0aW9uIChpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpCiAgIGVs c2UgaWYgKGNwdSkKICAgICB7CiAgICAgICBjb25zdCBjcHVfb3B0aW9uICpzZWxlY3RlZF9jcHUK LQk9IGFybV9wYXJzZV9jcHVfb3B0aW9uX25hbWUgKGFsbF9jb3JlcywgIi1tY3B1IiwgY3B1KTsK Kwk9IGFybV9wYXJzZV9jcHVfb3B0aW9uX25hbWUgKGFsbF9jb3JlcywgIi1tY3B1IiwgY3B1LCAh ZmxhZyk7CiAKICAgICAgIGlmIChzZWxlY3RlZF9jcHUgPT0gTlVMTCkKIAlyZXR1cm4gIiI7CkBA IC0xMDY5LDMgKzEwODEsMTcgQEAgYXJtX2FzbV9hdXRvX21mcHUgKGludCBhcmdjLCBjb25zdCBj aGFyICoqYXJndikKICNkZWZpbmUgVEFSR0VUX0VYQ0VQVF9VTldJTkRfSU5GTyAgYXJtX2V4Y2Vw dF91bndpbmRfaW5mbwogCiBzdHJ1Y3QgZ2NjX3RhcmdldG1fY29tbW9uIHRhcmdldG1fY29tbW9u ID0gVEFSR0VUTV9DT01NT05fSU5JVElBTElaRVI7CisKK2NvbnN0IGNoYXIgKgorYXJtX2Nhbm9u X2FyY2hfb3B0aW9uIChpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpCit7CisgIHJldHVybiBh cm1fY2Fub25fYXJjaF9vcHRpb25fMSAoYXJnYywgYXJndiwgZmFsc2UpOworfQorCisvKiBUaGlz IGZ1bmN0aW9uIHJldHVybnMgdGhlIGNhbm9uaWNhbCAtbWFyY2ggc3RyaW5nIGFmdGVyIHJlbW92 aW5nIHRoZSBjb21waWxlcgorICAgZXh0ZW5zaW9uIG9wdGlvbnMgd2hpY2ggYXJlIG5vdCByZXF1 aXJlZCBmb3IgbXVsdGlsaWIgbGlua2luZy4gICovCitjb25zdCBjaGFyICoKK2FybV9jYW5vbl9h cmNoX211bHRpbGliX29wdGlvbiAoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2KQoreworICBy ZXR1cm4gYXJtX2Nhbm9uX2FyY2hfb3B0aW9uXzEgKGFyZ2MsIGFyZ3YsIHRydWUpOworfQpkaWZm IC0tZ2l0IGEvZ2NjL2NvbmZpZy9hcm0vYXJtLWNwdXMuaW4gYi9nY2MvY29uZmlnL2FybS9hcm0t Y3B1cy5pbgppbmRleCAwYmVjYjQzODViNjc1ZDBlMDhlYTA4Yzk3Nzg1Y2FiZmE4Y2Y3MDI2Li5h YjRiNmFjZjVlYTQ3YjFjNzg4ZGVhOGY3ODc4MTQxZjJhNDAxOGNjIDEwMDY0NAotLS0gYS9nY2Mv Y29uZmlnL2FybS9hcm0tY3B1cy5pbgorKysgYi9nY2MvY29uZmlnL2FybS9hcm0tY3B1cy5pbgpA QCAtMzI0LDYgKzMyNCw4IEBAIGRlZmluZSBpbXBsaWVkIHZmcF9iYXNlIE1WRSBNVkVfRlAgQUxM X0ZQCiAjIG5lZWQgdG8gaWdub3JlIGl0IGZvciBtYXRjaGluZyBwdXJwb3Nlcy4KIGRlZmluZSBm Z3JvdXAgQUxMX1FVSVJLUyAgIHF1aXJrX25vX3ZvbGF0aWxlX2NlIHF1aXJrX2FybXY2a3ogcXVp cmtfY20zX2xkcmQgeHNjYWxlIHF1aXJrX25vX2FzbWNwdQogCitkZWZpbmUgZmdyb3VwIElHTk9S RV9GT1JfTVVMVElMSUIgY2RlY3AwIGNkZWNwMSBjZGVjcDIgY2RlY3AzIGNkZWNwNCBjZGVjcDUg Y2RlY3A2IGNkZWNwNworCiAjIEFyY2hpdGVjdHVyZSBlbnRyaWVzCiAjIGZvcm1hdDoKICMgYmVn aW4gYXJjaCA8bmFtZT4KZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYXJtL2FybS5oIGIvZ2NjL2Nv bmZpZy9hcm0vYXJtLmgKaW5kZXggOGU1YmQ1NzkzMjM3ZTUzMWFhODNkOTk4ZjU3NTZiNDU5ZGJj YjZhNy4uZDIxN2FlMWRiM2MyNWQ2NmFkNjIxNWUwN2UyYjMwMDQxNmIwNGQ5YSAxMDA2NDQKLS0t IGEvZ2NjL2NvbmZpZy9hcm0vYXJtLmgKKysrIGIvZ2NjL2NvbmZpZy9hcm0vYXJtLmgKQEAgLTUz LDYgKzUzLDEwIEBAIGV4dGVybiBjaGFyIGFybV9hcmNoX25hbWVbXTsKIAogI2luY2x1ZGUgImNv bmZpZy9hcm0vYXJtLW9wdHMuaCIKIAorI2lmbmRlZiAgX19jcGx1c3BsdXMKKyNpbmNsdWRlIDxz dGRib29sLmg+CisjZW5kaWYKKwogLyogVGhlIHByb2Nlc3NvciBmb3Igd2hpY2ggaW5zdHJ1Y3Rp b25zIHNob3VsZCBiZSBzY2hlZHVsZWQuICAqLwogZXh0ZXJuIGVudW0gcHJvY2Vzc29yX3R5cGUg YXJtX3R1bmU7CiAKQEAgLTI0NDQsMTAgKzI0NDgsMTUgQEAgZXh0ZXJuIGNvbnN0IGNoYXIgKmhv c3RfZGV0ZWN0X2xvY2FsX2NwdSAoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2KTsKICNlbmRp ZgogCiBjb25zdCBjaGFyICphcm1fY2Fub25fYXJjaF9vcHRpb24gKGludCBhcmdjLCBjb25zdCBj aGFyICoqYXJndik7Citjb25zdCBjaGFyICphcm1fY2Fub25fYXJjaF9vcHRpb25fMSAoaW50IGFy Z2MsIGNvbnN0IGNoYXIgKiphcmd2LCBib29sIGZsYWcpOworY29uc3QgY2hhciAqYXJtX2Nhbm9u X2FyY2hfbXVsdGlsaWJfb3B0aW9uIChpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpOwogCiAj ZGVmaW5lIENBTk9OX0FSQ0hfU1BFQ19GVU5DVElPTgkJXAogICB7ICJjYW5vbl9hcmNoIiwgYXJt X2Nhbm9uX2FyY2hfb3B0aW9uIH0sCiAKKyNkZWZpbmUgQ0FOT05fQVJDSF9NVUxUSUxJQl9TUEVD X0ZVTkNUSU9OCQlcCisgIHsgImNhbm9uX2FyY2hfbXVsdGlsaWIiLCBhcm1fY2Fub25fYXJjaF9t dWx0aWxpYl9vcHRpb24gfSwKKwogY29uc3QgY2hhciAqYXJtX2JlOF9vcHRpb24gKGludCBhcmdj LCBjb25zdCBjaGFyICoqYXJndik7CiAjZGVmaW5lIEJFOF9TUEVDX0ZVTkNUSU9OCQkJXAogICB7 ICJiZThfbGlua29wdCIsIGFybV9iZThfb3B0aW9uIH0sCkBAIC0yNDU2LDYgKzI0NjUsNyBAQCBj b25zdCBjaGFyICphcm1fYmU4X29wdGlvbiAoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2KTsK ICAgTUNQVV9NVFVORV9OQVRJVkVfRlVOQ1RJT05TCQkJXAogICBBU01fQ1BVX1NQRUNfRlVOQ1RJ T05TCQkJXAogICBDQU5PTl9BUkNIX1NQRUNfRlVOQ1RJT04JCQlcCisgIENBTk9OX0FSQ0hfTVVM VElMSUJfU1BFQ19GVU5DVElPTgkJXAogICBUQVJHRVRfTU9ERV9TUEVDX0ZVTkNUSU9OUwkJCVwK ICAgQkU4X1NQRUNfRlVOQ1RJT04KIApAQCAtMjQ3NiwxMyArMjQ4NiwyMyBAQCBjb25zdCBjaGFy ICphcm1fYmU4X29wdGlvbiAoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2KTsKICAgIiAgICAg ICAgICAgICAgICAgICAgICV7bWZsb2F0LWFiaT0qOiBhYmkgJSp9IglcCiAgICIgICAgICAgICAg ICAgICAgICAgICAlPG1hcmNoPSopICIKIAorLyogR2VuZXJhdGUgYSBjYW5vbmljYWwgc3RyaW5n IHRvIHJlcHJlc2VudCB0aGUgYXJjaGl0ZWN0dXJlIHNlbGVjdGVkIGlnbm9yaW5nCisgICB0aGUg b3B0aW9ucyBub3QgcmVxdWlyZWQgZm9yIG11bHRpbGliIGxpbmtpbmcuICAqLworI2RlZmluZSBN VUxUSUxJQl9BUkNIX0NBTk9OSUNBTF9TUEVDUwkJCQlcCisgICItbWxpYmFyY2g9JTpjYW5vbl9h cmNoX211bHRpbGliKCV7bWNwdT0qOiBjcHUgJSp9ICIJCVwKKyAgIgkJCQkgICAle21hcmNoPSo6 IGFyY2ggJSp9ICIJXAorICAiCQkJCSAgICV7bWZwdT0qOiBmcHUgJSp9ICIJCVwKKyAgIgkJCQkg ICAle21mbG9hdC1hYmk9KjogYWJpICUqfSIJXAorICAiCQkJCSAgICU8bWxpYmFyY2g9KikgIgor CiAvKiBDb21wbGV0ZSBzZXQgb2Ygc3BlY3MgZm9yIHRoZSBkcml2ZXIuICBDb21tYXMgc2VwYXJh dGUgdGhlCiAgICBpbmRpdmlkdWFsIHJ1bGVzIHNvIHRoYXQgYW55IG9wdGlvbiBzdXBwcmVzc2lv biAoJTxvcHQuLi4paXMKICAgIGNvbXBsZXRlZCBiZWZvcmUgc3RhcnRpbmcgc3Vic2VxdWVudCBy dWxlcy4gICovCiAjZGVmaW5lIERSSVZFUl9TRUxGX1NQRUNTCQkJXAogICBNQ1BVX01UVU5FX05B VElWRV9TUEVDUywJCQlcCiAgIFRBUkdFVF9NT0RFX1NQRUNTLAkJCQlcCi0gIEFSQ0hfQ0FOT05J Q0FMX1NQRUNTCisgIEFSQ0hfQ0FOT05JQ0FMX1NQRUNTLAkJCQlcCisgIE1VTFRJTElCX0FSQ0hf Q0FOT05JQ0FMX1NQRUNTCiAKICNkZWZpbmUgVEFSR0VUX1NVUFBPUlRTX1dJREVfSU5UIDEKIApk aWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9hcm0vYXJtLm9wdCBiL2djYy9jb25maWcvYXJtL2FybS5v cHQKaW5kZXggZDMzMmViNjdhOWVmZGZjZGM5NDg0NDg1YWU2MjkzMDM4YjYyNmVmYy4uMWQ2MzNi YzUxY2UwOTc0MDQ1YjgyNWM5MjIyZTcxNmY4NDgzYmQ4ZCAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZp Zy9hcm0vYXJtLm9wdAorKysgYi9nY2MvY29uZmlnL2FybS9hcm0ub3B0CkBAIC04MSw2ICs4MSwx MiBAQCBTcGVjaWZ5IHRoZSBuYW1lIG9mIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLgogRW51bVZh bHVlCiBFbnVtKGFybV9hcmNoKSBTdHJpbmcobmF0aXZlKSBWYWx1ZSgtMSkgRHJpdmVyT25seQog CittbGliYXJjaD0KK1RhcmdldCBSZWplY3ROZWdhdGl2ZSBKb2luZWRPck1pc3NpbmcgVW5kb2N1 bWVudGVkCisKK0VudW1WYWx1ZQorRW51bShhcm1fYXJjaCkgU3RyaW5nKG5hdGl2ZSkgVmFsdWUo LTEpIERyaXZlck9ubHkKKwogbWFybQogVGFyZ2V0IFJlamVjdE5lZ2F0aXZlIE5lZ2F0aXZlKG10 aHVtYikgSW52ZXJzZU1hc2soVEhVTUIpCiBHZW5lcmF0ZSBjb2RlIGluIDMyIGJpdCBBUk0gc3Rh dGUuCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2FybS90LXJtcHJvZmlsZSBiL2djYy9jb25maWcv YXJtL3Qtcm1wcm9maWxlCmluZGV4IDE5NTkxODkyZjNjYWFlODdjN2FhMDBjZTJhN2VjZDBlMDcy YWVkYzUuLjExZWRmNWEzZTkzNGFmYzMwNjk3OTVjNjU5NmEzNjMwNmVmMjEzN2YgMTAwNjQ0Ci0t LSBhL2djYy9jb25maWcvYXJtL3Qtcm1wcm9maWxlCisrKyBiL2djYy9jb25maWcvYXJtL3Qtcm1w cm9maWxlCkBAIC01MSwyNCArNTEsMjMgQEAgTVVMVElMSUJfUkVRVUlSRUQJKz0gbXRodW1iL21h cmNoPWFybXY4LW0ubWFpbitmcC5kcC9tZmxvYXQtYWJpPXNvZnRmcAogTVVMVElMSUJfUkVRVUlS RUQJKz0gbXRodW1iL21hcmNoPWFybXY4LjEtbS5tYWluK212ZS9tZmxvYXQtYWJpPWhhcmQKIAog IyBBcmNoIE1hdGNoZXMKLU1VTFRJTElCX01BVENIRVMJKz0gbWFyY2g/YXJtdjZzLW09bWFyY2g/ YXJtdjYtbQorTVVMVElMSUJfTUFUQ0hFUwkrPSBtYXJjaD9hcm12NnMtbT1tbGliYXJjaD9hcm12 Ni1tCiAKICMgTWFwIGFsbCB2OC1tLm1haW4rZHNwIEZQIHZhcmlhbnRzIGRvd24gdG8gdGhlIHZh cmlhbnQgd2l0aG91dCBEU1AuCi1NVUxUSUxJQl9NQVRDSEVTCSs9IG1hcmNoP2FybXY4LW0ubWFp bj1tYXJjaD9hcm12OC1tLm1haW4rZHNwIFwKK01VTFRJTElCX01BVENIRVMJKz0gbWFyY2g/YXJt djgtbS5tYWluPW1saWJhcmNoP2FybXY4LW0ubWFpbitkc3AgXAogCQkJICAgJChmb3JlYWNoIEZQ LCArZnAgK2ZwLmRwLCBcCi0JCQkgICAgIG1hcmNoP2FybXY4LW0ubWFpbiQoRlApPW1hcmNoP2Fy bXY4LW0ubWFpbitkc3AkKEZQKSkKKwkJCSAgICAgbWFyY2g/YXJtdjgtbS5tYWluJChGUCk9bWxp YmFyY2g/YXJtdjgtbS5tYWluK2RzcCQoRlApKQogCiAjIEZvciBzaW5nbGUtcHJlY2lzaW9uIG9u bHkgZnB2NSwgdXNlIHRoZSBiYXNlIGZwIGxpYnJhcmllcwotTVVMVElMSUJfTUFUQ0hFUwkrPSBt YXJjaD9hcm12N2UtbStmcD1tYXJjaD9hcm12N2UtbStmcHY1CitNVUxUSUxJQl9NQVRDSEVTCSs9 IG1hcmNoP2FybXY3ZS1tK2ZwPW1saWJhcmNoP2FybXY3ZS1tK2ZwdjUKIAogIyBTb2Z0ZnAgYnV0 IG5vIEZQLiAgVXNlIHRoZSBzb2Z0LWZsb2F0IGxpYnJhcmllcy4KIE1VTFRJTElCX1JFVVNFCQkr PSAkKGZvcmVhY2ggQVJDSCwgYXJtdjZzLW0gYXJtdjctbSBhcm12N2UtbSBhcm12OC1tXC5iYXNl IGFybXY4LW1cLm1haW4sIFwKIAkJCSAgICAgbXRodW1iL21hcmNoLiQoQVJDSCkvbWZsb2F0LWFi aS5zb2Z0PW10aHVtYi9tYXJjaC4kKEFSQ0gpL21mbG9hdC1hYmkuc29mdGZwKQogCi0KICMgTWFw IHY4LjEtTSB0byB2OC1NLgotTVVMVElMSUJfTUFUQ0hFUwkrPSBtYXJjaD9hcm12OC1tLm1haW49 bWFyY2g/YXJtdjguMS1tLm1haW4KLU1VTFRJTElCX01BVENIRVMJKz0gbWFyY2g/YXJtdjgtbS5t YWluPW1hcmNoP2FybXY4LjEtbS5tYWluK2RzcAorTVVMVElMSUJfTUFUQ0hFUwkrPSBtYXJjaD9h cm12OC1tLm1haW49bWxpYmFyY2g/YXJtdjguMS1tLm1haW4KK01VTFRJTElCX01BVENIRVMJKz0g bWFyY2g/YXJtdjgtbS5tYWluPW1saWJhcmNoP2FybXY4LjEtbS5tYWluK2RzcAogTVVMVElMSUJf UkVVU0UJCSs9IG10aHVtYi9tYXJjaC5hcm12OC1tXC5tYWluL21mbG9hdC1hYmkuc29mdD1tdGh1 bWIvbWFyY2guYXJtdjhcLjEtbVwubWFpbittdmUvbWZsb2F0LWFiaS5zb2Z0CiBNVUxUSUxJQl9S RVVTRQkJKz0gbXRodW1iL21hcmNoLmFybXY4LW1cLm1haW4vbWZsb2F0LWFiaS5zb2Z0PW10aHVt Yi9tYXJjaC5hcm12OFwuMS1tXC5tYWluK212ZS9tZmxvYXQtYWJpLnNvZnRmcAogCkBAIC03Nyw4 ICs3NiwxNCBAQCB2OF8xbV9kcF92YXJpYW50cyA9ICtmcC5kcCArZHNwK2ZwLmRwICtmcC5kcCtt dmUgK2ZwLmRwK212ZS5mcAogCiAjIE1hcCBhbGwgdjguMS1tLm1haW4gRlAgc3AgdmFyaWFudHMg ZG93biB0byB2OC1tLgogTVVMVElMSUJfTUFUQ0hFUyArPSAkKGZvcmVhY2ggRlAsICQodjhfMW1f c3BfdmFyaWFudHMpLCBcCi0JCQkgICAgIG1hcmNoP2FybXY4LW0ubWFpbitmcD1tYXJjaD9hcm12 OC4xLW0ubWFpbiQoRlApKQorCQkJICAgICBtYXJjaD9hcm12OC1tLm1haW4rZnA9bWxpYmFyY2g/ YXJtdjguMS1tLm1haW4kKEZQKSkKIAogIyBNYXAgYWxsIHY4LjEtbS5tYWluIEZQIGRwIHZhcmlh bnRzIGRvd24gdG8gdjgtbS4KIE1VTFRJTElCX01BVENIRVMgKz0gJChmb3JlYWNoIEZQLCAkKHY4 XzFtX2RwX3ZhcmlhbnRzKSwgXAotCQkJICAgICBtYXJjaD9hcm12OC1tLm1haW4rZnAuZHA9bWFy Y2g/YXJtdjguMS1tLm1haW4kKEZQKSkKKwkJCSAgICAgbWFyY2g/YXJtdjgtbS5tYWluK2ZwLmRw PW1saWJhcmNoP2FybXY4LjEtbS5tYWluJChGUCkpCisKKyMgTWF0Y2ggbXVsdGlsaWJfcmVxdWly ZWQgdmFyaWFudHMgc3RhcnRpbmcgd2l0aCBtbGliYXJjaCB3aXRoIGFsaWFzIG1hcmNoLgorTVVM VElMSUJfTUFUQ0hFUwkrPSBtYXJjaD9hcm12OC1tLm1haW49bWxpYmFyY2g/YXJtdjgtbS5tYWlu CitNVUxUSUxJQl9NQVRDSEVTCSs9IG1hcmNoP2FybXY4LW0ubWFpbitmcD1tbGliYXJjaD9hcm12 OC1tLm1haW4rZnAKK01VTFRJTElCX01BVENIRVMJKz0gbWFyY2g/YXJtdjgtbS5tYWluK2ZwLmRw PW1saWJhcmNoP2FybXY4LW0ubWFpbitmcC5kcAorTVVMVElMSUJfTUFUQ0hFUwkrPSBtYXJjaD9h cm12OC4xLW0ubWFpbittdmU9bWxpYmFyY2g/YXJtdjguMS1tLm1haW4rbXZlCmRpZmYgLS1naXQg YS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL2FjbGUvcHIxMDA4NTYuYyBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9hcm0vYWNsZS9wcjEwMDg1Ni5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViYzAzMGUy ZTQ2YmY4OWRmZTdmM2I5ZDBkYWIxZTA3OTQ3ZThkNWUKLS0tIC9kZXYvbnVsbAorKysgYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL2FjbGUvcHIxMDA4NTYuYwpAQCAtMCwwICsxLDEwIEBA CisvKiB7IGRnLWRvIHJ1biB9ICovCisvKiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCBh cm1fdjhfMW1fbWFpbl9jZGVfbXZlX29rIH0gKi8KKy8qIHsgZGctYWRkLW9wdGlvbnMgYXJtX3Y4 XzFtX21haW5fY2RlX212ZSB9ICovCisKKyNpbmNsdWRlICJhcm1fY2RlLmgiCisKK2ludCBtYWlu KCkKK3sKKyAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvYXJtL211bHRpbGliLmV4cCBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXVsdGls aWIuZXhwCmluZGV4IDQ2ZjJkODZkZTNjMDVjMTg0YjJlYzEyYWY1M2UyMDUzZGRjM2IxNTcuLjRi MzAwMjVkYjhjYmRjZDM3YmJiM2EwYmU2YzM0NWI5ZDQ4ODE4YzQgMTAwNjQ0Ci0tLSBhL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXVsdGlsaWIuZXhwCisrKyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9hcm0vbXVsdGlsaWIuZXhwCkBAIC04NDAsNiArODQwLDExOSBAQCBpZiB7W211 bHRpbGliX2NvbmZpZyAicm1wcm9maWxlIl0gfSB7CiAJey1tY3B1PWNvcnRleC1tNTUrbm9tdmUr bm9mcCAtbWZwdT1hdXRvIC1tZmxvYXQtYWJpPXNvZnRmcH0gInRodW1iL3Y4LW0ubWFpbi9ub2Zw IgogCXstbWNwdT1jb3J0ZXgtbTU1K25vZHNwK25vZnAgLW1mcHU9YXV0byAtbWZsb2F0LWFiaT1z b2Z0fSAidGh1bWIvdjgtbS5tYWluL25vZnAiCiAJey1tY3B1PWNvcnRleC1tNTUrbm9kc3Arbm9m cCAtbWZwdT1hdXRvIC1tZmxvYXQtYWJpPXNvZnRmcH0gInRodW1iL3Y4LW0ubWFpbi9ub2ZwIgor CXstbWFyY2g9YXJtdjgtbS5tYWluK2NkZWNwMCAtbWZwdT1hdXRvIC1tZmxvYXQtYWJpPXNvZnR9 ICJ0aHVtYi92OC1tLm1haW4vbm9mcCIKKwl7LW1hcmNoPWFybXY4LW0ubWFpbitmcCtjZGVjcDAg LW1mcHU9YXV0byAtbWZsb2F0LWFiaT1zb2Z0fSAidGh1bWIvdjgtbS5tYWluL25vZnAiCisJey1t YXJjaD1hcm12OC1tLm1haW4rZnAuZHArY2RlY3AwIC1tZnB1PWF1dG8gLW1mbG9hdC1hYmk9c29m dH0gInRodW1iL3Y4LW0ubWFpbi9ub2ZwIgorCXstbWFyY2g9YXJtdjgtbS5tYWluK2ZwK2RzcCtj ZGVjcDAgLW1mcHU9YXV0byAtbWZsb2F0LWFiaT1zb2Z0fSAidGh1bWIvdjgtbS5tYWluL25vZnAi CisJey1tYXJjaD1hcm12OC1tLm1haW4rZnAuZHArZHNwK2NkZWNwMCAtbWZwdT1hdXRvIC1tZmxv YXQtYWJpPXNvZnR9ICJ0aHVtYi92OC1tLm1haW4vbm9mcCIKKwl7LW1hcmNoPWFybXY4LW0ubWFp bitjZGVjcDAgLW1mcHU9dmZwdjN4ZCAtbWZsb2F0LWFiaT1zb2Z0fSAidGh1bWIvdjgtbS5tYWlu L25vZnAiCisJey1tYXJjaD1hcm12OC1tLm1haW4rZnArY2RlY3AwIC1tZnB1PXZmcHYzeGQgLW1m bG9hdC1hYmk9c29mdH0gInRodW1iL3Y4LW0ubWFpbi9ub2ZwIgorCXstbWFyY2g9YXJtdjgtbS5t YWluK2ZwLmRwK2NkZWNwMCAtbWZwdT12ZnB2M3hkIC1tZmxvYXQtYWJpPXNvZnR9ICJ0aHVtYi92 OC1tLm1haW4vbm9mcCIKKwl7LW1hcmNoPWFybXY4LW0ubWFpbitmcCtkc3ArY2RlY3AwIC1tZnB1 PXZmcHYzeGQgLW1mbG9hdC1hYmk9c29mdH0gInRodW1iL3Y4LW0ubWFpbi9ub2ZwIgorCXstbWFy Y2g9YXJtdjgtbS5tYWluK2ZwLmRwK2RzcCtjZGVjcDAgLW1mcHU9dmZwdjN4ZCAtbWZsb2F0LWFi aT1zb2Z0fSAidGh1bWIvdjgtbS5tYWluL25vZnAiCisJey1tYXJjaD1hcm12OC1tLm1haW4rY2Rl Y3AwIC1tZnB1PXZmcHYzeGQtZnAxNiAtbWZsb2F0LWFiaT1zb2Z0fSAidGh1bWIvdjgtbS5tYWlu L25vZnAiCisJey1tYXJjaD1hcm12OC1tLm1haW4rZnArY2RlY3AwIC1tZnB1PXZmcHYzeGQtZnAx NiAtbWZsb2F0LWFiaT1zb2Z0fSAidGh1bWIvdjgtbS5tYWluL25vZnAiCisJey1tYXJjaD1hcm12 OC1tLm1haW4rZnAuZHArY2RlY3AwIC1tZnB1PXZmcHYzeGQtZnAxNiAtbWZsb2F0LWFiaT1zb2Z0 fSAidGh1bWIvdjgtbS5tYWluL25vZnAiCisJey1tYXJjaD1hcm12OC1tLm1haW4rZnArZHNwK2Nk ZWNwMCAtbWZwdT12ZnB2M3hkLWZwMTYgLW1mbG9hdC1hYmk9c29mdH0gInRodW1iL3Y4LW0ubWFp bi9ub2ZwIgorCXstbWFyY2g9YXJtdjgtbS5tYWluK2ZwLmRwK2RzcCtjZGVjcDAgLW1mcHU9dmZw djN4ZC1mcDE2IC1tZmxvYXQtYWJpPXNvZnR9ICJ0aHVtYi92OC1tLm1haW4vbm9mcCIKKwl7LW1h cmNoPWFybXY4LW0ubWFpbitjZGVjcDAgLW1mcHU9ZnB2NC1zcC1kMTYgLW1mbG9hdC1hYmk9c29m dH0gInRodW1iL3Y4LW0ubWFpbi9ub2ZwIgorCXstbWFyY2g9YXJtdjgtbS5tYWluK2ZwK2NkZWNw MCAtbWZwdT1mcHY0LXNwLWQxNiAtbWZsb2F0LWFiaT1zb2Z0fSAidGh1bWIvdjgtbS5tYWluL25v ZnAiCisJey1tYXJjaD1hcm12OC1tLm1haW4rZnAuZHArY2RlY3AwIC1tZnB1PWZwdjQtc3AtZDE2 IC1tZmxvYXQtYWJpPXNvZnR9ICJ0aHVtYi92OC1tLm1haW4vbm9mcCIKKwl7LW1hcmNoPWFybXY4 LW0ubWFpbitmcCtkc3ArY2RlY3AwIC1tZnB1PWZwdjQtc3AtZDE2IC1tZmxvYXQtYWJpPXNvZnR9 ICJ0aHVtYi92OC1tLm1haW4vbm9mcCIKKwl7LW1hcmNoPWFybXY4LW0ubWFpbitmcC5kcCtkc3Ar Y2RlY3AwIC1tZnB1PWZwdjQtc3AtZDE2IC1tZmxvYXQtYWJpPXNvZnR9ICJ0aHVtYi92OC1tLm1h aW4vbm9mcCIKKwl7LW1hcmNoPWFybXY4LW0ubWFpbitjZGVjcDAgLW1mcHU9ZnB2NS1zcC1kMTYg LW1mbG9hdC1hYmk9c29mdH0gInRodW1iL3Y4LW0ubWFpbi9ub2ZwIgorCXstbWFyY2g9YXJtdjgt bS5tYWluK2ZwK2NkZWNwMCAtbWZwdT1mcHY1LXNwLWQxNiAtbWZsb2F0LWFiaT1zb2Z0fSAidGh1 bWIvdjgtbS5tYWluL25vZnAiCisJey1tYXJjaD1hcm12OC1tLm1haW4rZnAuZHArY2RlY3AwIC1t ZnB1PWZwdjUtc3AtZDE2IC1tZmxvYXQtYWJpPXNvZnR9ICJ0aHVtYi92OC1tLm1haW4vbm9mcCIK Kwl7LW1hcmNoPWFybXY4LW0ubWFpbitmcCtkc3ArY2RlY3AwIC1tZnB1PWZwdjUtc3AtZDE2IC1t ZmxvYXQtYWJpPXNvZnR9ICJ0aHVtYi92OC1tLm1haW4vbm9mcCIKKwl7LW1hcmNoPWFybXY4LW0u bWFpbitmcC5kcCtkc3ArY2RlY3AwIC1tZnB1PWZwdjUtc3AtZDE2IC1tZmxvYXQtYWJpPXNvZnR9 ICJ0aHVtYi92OC1tLm1haW4vbm9mcCIKKwl7LW1hcmNoPWFybXY4LW0ubWFpbitjZGVjcDAgLW1m cHU9ZnB2NS1kMTYgLW1mbG9hdC1hYmk9c29mdH0gInRodW1iL3Y4LW0ubWFpbi9ub2ZwIgorCXst bWFyY2g9YXJtdjgtbS5tYWluK2ZwK2NkZWNwMCAtbWZwdT1mcHY1LWQxNiAtbWZsb2F0LWFiaT1z b2Z0fSAidGh1bWIvdjgtbS5tYWluL25vZnAiCisJey1tYXJjaD1hcm12OC1tLm1haW4rZnAuZHAr Y2RlY3AwIC1tZnB1PWZwdjUtZDE2IC1tZmxvYXQtYWJpPXNvZnR9ICJ0aHVtYi92OC1tLm1haW4v bm9mcCIKKwl7LW1hcmNoPWFybXY4LW0ubWFpbitmcCtkc3ArY2RlY3AwIC1tZnB1PWZwdjUtZDE2 IC1tZmxvYXQtYWJpPXNvZnR9ICJ0aHVtYi92OC1tLm1haW4vbm9mcCIKKwl7LW1hcmNoPWFybXY4 LW0ubWFpbitmcC5kcCtkc3ArY2RlY3AwIC1tZnB1PWZwdjUtZDE2IC1tZmxvYXQtYWJpPXNvZnR9 ICJ0aHVtYi92OC1tLm1haW4vbm9mcCIKKwl7LW1hcmNoPWFybXY4LW0ubWFpbitmcCtjZGVjcDAg LW1mcHU9YXV0byAtbWZsb2F0LWFiaT1oYXJkfSAidGh1bWIvdjgtbS5tYWluK2ZwL2hhcmQiCisJ ey1tYXJjaD1hcm12OC1tLm1haW4rZnAuZHArY2RlY3AwIC1tZnB1PWF1dG8gLW1mbG9hdC1hYmk9 aGFyZH0gInRodW1iL3Y4LW0ubWFpbitkcC9oYXJkIgorCXstbWFyY2g9YXJtdjgtbS5tYWluK2Zw K2RzcCtjZGVjcDAgLW1mcHU9YXV0byAtbWZsb2F0LWFiaT1oYXJkfSAidGh1bWIvdjgtbS5tYWlu K2ZwL2hhcmQiCisJey1tYXJjaD1hcm12OC1tLm1haW4rZnAuZHArZHNwK2NkZWNwMCAtbWZwdT1h dXRvIC1tZmxvYXQtYWJpPWhhcmR9ICJ0aHVtYi92OC1tLm1haW4rZHAvaGFyZCIKKwl7LW1hcmNo PWFybXY4LW0ubWFpbitjZGVjcDAgLW1mcHU9dmZwdjN4ZCAtbWZsb2F0LWFiaT1oYXJkfSAidGh1 bWIvdjgtbS5tYWluK2ZwL2hhcmQiCisJey1tYXJjaD1hcm12OC1tLm1haW4rZnArY2RlY3AwIC1t ZnB1PXZmcHYzeGQgLW1mbG9hdC1hYmk9aGFyZH0gInRodW1iL3Y4LW0ubWFpbitmcC9oYXJkIgor CXstbWFyY2g9YXJtdjgtbS5tYWluK2ZwLmRwK2NkZWNwMCAtbWZwdT12ZnB2M3hkIC1tZmxvYXQt YWJpPWhhcmR9ICJ0aHVtYi92OC1tLm1haW4rZHAvaGFyZCIKKwl7LW1hcmNoPWFybXY4LW0ubWFp bitmcCtkc3ArY2RlY3AwIC1tZnB1PXZmcHYzeGQgLW1mbG9hdC1hYmk9aGFyZH0gInRodW1iL3Y4 LW0ubWFpbitmcC9oYXJkIgorCXstbWFyY2g9YXJtdjgtbS5tYWluK2ZwLmRwK2RzcCtjZGVjcDAg LW1mcHU9dmZwdjN4ZCAtbWZsb2F0LWFiaT1oYXJkfSAidGh1bWIvdjgtbS5tYWluK2RwL2hhcmQi CisJey1tYXJjaD1hcm12OC1tLm1haW4rY2RlY3AwIC1tZnB1PXZmcHYzeGQtZnAxNiAtbWZsb2F0 LWFiaT1oYXJkfSAidGh1bWIvdjgtbS5tYWluK2ZwL2hhcmQiCisJey1tYXJjaD1hcm12OC1tLm1h aW4rZnArY2RlY3AwIC1tZnB1PXZmcHYzeGQtZnAxNiAtbWZsb2F0LWFiaT1oYXJkfSAidGh1bWIv djgtbS5tYWluK2ZwL2hhcmQiCisJey1tYXJjaD1hcm12OC1tLm1haW4rZnAuZHArY2RlY3AwIC1t ZnB1PXZmcHYzeGQtZnAxNiAtbWZsb2F0LWFiaT1oYXJkfSAidGh1bWIvdjgtbS5tYWluK2RwL2hh cmQiCisJey1tYXJjaD1hcm12OC1tLm1haW4rZnArZHNwK2NkZWNwMCAtbWZwdT12ZnB2M3hkLWZw MTYgLW1mbG9hdC1hYmk9aGFyZH0gInRodW1iL3Y4LW0ubWFpbitmcC9oYXJkIgorCXstbWFyY2g9 YXJtdjgtbS5tYWluK2ZwLmRwK2RzcCtjZGVjcDAgLW1mcHU9dmZwdjN4ZC1mcDE2IC1tZmxvYXQt YWJpPWhhcmR9ICJ0aHVtYi92OC1tLm1haW4rZHAvaGFyZCIKKwl7LW1hcmNoPWFybXY4LW0ubWFp bitjZGVjcDAgLW1mcHU9ZnB2NC1zcC1kMTYgLW1mbG9hdC1hYmk9aGFyZH0gInRodW1iL3Y4LW0u bWFpbitmcC9oYXJkIgorCXstbWFyY2g9YXJtdjgtbS5tYWluK2ZwK2NkZWNwMCAtbWZwdT1mcHY0 LXNwLWQxNiAtbWZsb2F0LWFiaT1oYXJkfSAidGh1bWIvdjgtbS5tYWluK2ZwL2hhcmQiCisJey1t YXJjaD1hcm12OC1tLm1haW4rZnAuZHArY2RlY3AwIC1tZnB1PWZwdjQtc3AtZDE2IC1tZmxvYXQt YWJpPWhhcmR9ICJ0aHVtYi92OC1tLm1haW4rZHAvaGFyZCIKKwl7LW1hcmNoPWFybXY4LW0ubWFp bitmcCtkc3ArY2RlY3AwIC1tZnB1PWZwdjQtc3AtZDE2IC1tZmxvYXQtYWJpPWhhcmR9ICJ0aHVt Yi92OC1tLm1haW4rZnAvaGFyZCIKKwl7LW1hcmNoPWFybXY4LW0ubWFpbitmcC5kcCtkc3ArY2Rl Y3AwIC1tZnB1PWZwdjQtc3AtZDE2IC1tZmxvYXQtYWJpPWhhcmR9ICJ0aHVtYi92OC1tLm1haW4r ZHAvaGFyZCIKKwl7LW1hcmNoPWFybXY4LW0ubWFpbitjZGVjcDAgLW1mcHU9ZnB2NS1zcC1kMTYg LW1mbG9hdC1hYmk9aGFyZH0gInRodW1iL3Y4LW0ubWFpbitmcC9oYXJkIgorCXstbWFyY2g9YXJt djgtbS5tYWluK2ZwK2NkZWNwMCAtbWZwdT1mcHY1LXNwLWQxNiAtbWZsb2F0LWFiaT1oYXJkfSAi dGh1bWIvdjgtbS5tYWluK2ZwL2hhcmQiCisJey1tYXJjaD1hcm12OC1tLm1haW4rZnAuZHArY2Rl Y3AwIC1tZnB1PWZwdjUtc3AtZDE2IC1tZmxvYXQtYWJpPWhhcmR9ICJ0aHVtYi92OC1tLm1haW4r ZHAvaGFyZCIKKwl7LW1hcmNoPWFybXY4LW0ubWFpbitmcCtkc3ArY2RlY3AwIC1tZnB1PWZwdjUt c3AtZDE2IC1tZmxvYXQtYWJpPWhhcmR9ICJ0aHVtYi92OC1tLm1haW4rZnAvaGFyZCIKKwl7LW1h cmNoPWFybXY4LW0ubWFpbitmcC5kcCtkc3ArY2RlY3AwIC1tZnB1PWZwdjUtc3AtZDE2IC1tZmxv YXQtYWJpPWhhcmR9ICJ0aHVtYi92OC1tLm1haW4rZHAvaGFyZCIKKwl7LW1hcmNoPWFybXY4LW0u bWFpbitjZGVjcDAgLW1mcHU9ZnB2NS1kMTYgLW1mbG9hdC1hYmk9aGFyZH0gInRodW1iL3Y4LW0u bWFpbitkcC9oYXJkIgorCXstbWFyY2g9YXJtdjgtbS5tYWluK2ZwK2NkZWNwMCAtbWZwdT1mcHY1 LWQxNiAtbWZsb2F0LWFiaT1oYXJkfSAidGh1bWIvdjgtbS5tYWluK2RwL2hhcmQiCisJey1tYXJj aD1hcm12OC1tLm1haW4rZnAuZHArY2RlY3AwIC1tZnB1PWZwdjUtZDE2IC1tZmxvYXQtYWJpPWhh cmR9ICJ0aHVtYi92OC1tLm1haW4rZHAvaGFyZCIKKwl7LW1hcmNoPWFybXY4LW0ubWFpbitmcCtk c3ArY2RlY3AwIC1tZnB1PWZwdjUtZDE2IC1tZmxvYXQtYWJpPWhhcmR9ICJ0aHVtYi92OC1tLm1h aW4rZHAvaGFyZCIKKwl7LW1hcmNoPWFybXY4LW0ubWFpbitmcC5kcCtkc3ArY2RlY3AwIC1tZnB1 PWZwdjUtZDE2IC1tZmxvYXQtYWJpPWhhcmR9ICJ0aHVtYi92OC1tLm1haW4rZHAvaGFyZCIKKwl7 LW1hcmNoPWFybXY4LW0ubWFpbitjZGVjcDAgLW1mcHU9YXV0byAtbWZsb2F0LWFiaT1zb2Z0ZnB9 ICJ0aHVtYi92OC1tLm1haW4vbm9mcCIKKwl7LW1hcmNoPWFybXY4LW0ubWFpbitmcCtjZGVjcDAg LW1mcHU9YXV0byAtbWZsb2F0LWFiaT1zb2Z0ZnB9ICJ0aHVtYi92OC1tLm1haW4rZnAvc29mdGZw IgorCXstbWFyY2g9YXJtdjgtbS5tYWluK2ZwLmRwK2NkZWNwMCAtbWZwdT1hdXRvIC1tZmxvYXQt YWJpPXNvZnRmcH0gInRodW1iL3Y4LW0ubWFpbitkcC9zb2Z0ZnAiCisJey1tYXJjaD1hcm12OC1t Lm1haW4rZnArZHNwK2NkZWNwMCAtbWZwdT1hdXRvIC1tZmxvYXQtYWJpPXNvZnRmcH0gInRodW1i L3Y4LW0ubWFpbitmcC9zb2Z0ZnAiCisJey1tYXJjaD1hcm12OC1tLm1haW4rZnAuZHArZHNwK2Nk ZWNwMCAtbWZwdT1hdXRvIC1tZmxvYXQtYWJpPXNvZnRmcH0gInRodW1iL3Y4LW0ubWFpbitkcC9z b2Z0ZnAiCisJey1tYXJjaD1hcm12OC1tLm1haW4rY2RlY3AwIC1tZnB1PXZmcHYzeGQgLW1mbG9h dC1hYmk9c29mdGZwfSAidGh1bWIvdjgtbS5tYWluK2ZwL3NvZnRmcCIKKwl7LW1hcmNoPWFybXY4 LW0ubWFpbitmcCtjZGVjcDAgLW1mcHU9dmZwdjN4ZCAtbWZsb2F0LWFiaT1zb2Z0ZnB9ICJ0aHVt Yi92OC1tLm1haW4rZnAvc29mdGZwIgorCXstbWFyY2g9YXJtdjgtbS5tYWluK2ZwLmRwK2NkZWNw MCAtbWZwdT12ZnB2M3hkIC1tZmxvYXQtYWJpPXNvZnRmcH0gInRodW1iL3Y4LW0ubWFpbitkcC9z b2Z0ZnAiCisJey1tYXJjaD1hcm12OC1tLm1haW4rZnArZHNwK2NkZWNwMCAtbWZwdT12ZnB2M3hk IC1tZmxvYXQtYWJpPXNvZnRmcH0gInRodW1iL3Y4LW0ubWFpbitmcC9zb2Z0ZnAiCisJey1tYXJj aD1hcm12OC1tLm1haW4rZnAuZHArZHNwK2NkZWNwMCAtbWZwdT12ZnB2M3hkIC1tZmxvYXQtYWJp PXNvZnRmcH0gInRodW1iL3Y4LW0ubWFpbitkcC9zb2Z0ZnAiCisJey1tYXJjaD1hcm12OC1tLm1h aW4rY2RlY3AwIC1tZnB1PXZmcHYzeGQtZnAxNiAtbWZsb2F0LWFiaT1zb2Z0ZnB9ICJ0aHVtYi92 OC1tLm1haW4rZnAvc29mdGZwIgorCXstbWFyY2g9YXJtdjgtbS5tYWluK2ZwK2NkZWNwMCAtbWZw dT12ZnB2M3hkLWZwMTYgLW1mbG9hdC1hYmk9c29mdGZwfSAidGh1bWIvdjgtbS5tYWluK2ZwL3Nv ZnRmcCIKKwl7LW1hcmNoPWFybXY4LW0ubWFpbitmcC5kcCtjZGVjcDAgLW1mcHU9dmZwdjN4ZC1m cDE2IC1tZmxvYXQtYWJpPXNvZnRmcH0gInRodW1iL3Y4LW0ubWFpbitkcC9zb2Z0ZnAiCisJey1t YXJjaD1hcm12OC1tLm1haW4rZnArZHNwK2NkZWNwMCAtbWZwdT12ZnB2M3hkLWZwMTYgLW1mbG9h dC1hYmk9c29mdGZwfSAidGh1bWIvdjgtbS5tYWluK2ZwL3NvZnRmcCIKKwl7LW1hcmNoPWFybXY4 LW0ubWFpbitmcC5kcCtkc3ArY2RlY3AwIC1tZnB1PXZmcHYzeGQtZnAxNiAtbWZsb2F0LWFiaT1z b2Z0ZnB9ICJ0aHVtYi92OC1tLm1haW4rZHAvc29mdGZwIgorCXstbWFyY2g9YXJtdjgtbS5tYWlu K2NkZWNwMCAtbWZwdT1mcHY0LXNwLWQxNiAtbWZsb2F0LWFiaT1zb2Z0ZnB9ICJ0aHVtYi92OC1t Lm1haW4rZnAvc29mdGZwIgorCXstbWFyY2g9YXJtdjgtbS5tYWluK2ZwK2NkZWNwMCAtbWZwdT1m cHY0LXNwLWQxNiAtbWZsb2F0LWFiaT1zb2Z0ZnB9ICJ0aHVtYi92OC1tLm1haW4rZnAvc29mdGZw IgorCXstbWFyY2g9YXJtdjgtbS5tYWluK2ZwLmRwK2NkZWNwMCAtbWZwdT1mcHY0LXNwLWQxNiAt bWZsb2F0LWFiaT1zb2Z0ZnB9ICJ0aHVtYi92OC1tLm1haW4rZHAvc29mdGZwIgorCXstbWFyY2g9 YXJtdjgtbS5tYWluK2ZwK2RzcCtjZGVjcDAgLW1mcHU9ZnB2NC1zcC1kMTYgLW1mbG9hdC1hYmk9 c29mdGZwfSAidGh1bWIvdjgtbS5tYWluK2ZwL3NvZnRmcCIKKwl7LW1hcmNoPWFybXY4LW0ubWFp bitmcC5kcCtkc3ArY2RlY3AwIC1tZnB1PWZwdjQtc3AtZDE2IC1tZmxvYXQtYWJpPXNvZnRmcH0g InRodW1iL3Y4LW0ubWFpbitkcC9zb2Z0ZnAiCisJey1tYXJjaD1hcm12OC1tLm1haW4rY2RlY3Aw IC1tZnB1PWZwdjUtc3AtZDE2IC1tZmxvYXQtYWJpPXNvZnRmcH0gInRodW1iL3Y4LW0ubWFpbitm cC9zb2Z0ZnAiCisJey1tYXJjaD1hcm12OC1tLm1haW4rZnArY2RlY3AwIC1tZnB1PWZwdjUtc3At ZDE2IC1tZmxvYXQtYWJpPXNvZnRmcH0gInRodW1iL3Y4LW0ubWFpbitmcC9zb2Z0ZnAiCisJey1t YXJjaD1hcm12OC1tLm1haW4rZnAuZHArY2RlY3AwIC1tZnB1PWZwdjUtc3AtZDE2IC1tZmxvYXQt YWJpPXNvZnRmcH0gInRodW1iL3Y4LW0ubWFpbitkcC9zb2Z0ZnAiCisJey1tYXJjaD1hcm12OC1t Lm1haW4rZnArZHNwK2NkZWNwMCAtbWZwdT1mcHY1LXNwLWQxNiAtbWZsb2F0LWFiaT1zb2Z0ZnB9 ICJ0aHVtYi92OC1tLm1haW4rZnAvc29mdGZwIgorCXstbWFyY2g9YXJtdjgtbS5tYWluK2ZwLmRw K2RzcCtjZGVjcDAgLW1mcHU9ZnB2NS1zcC1kMTYgLW1mbG9hdC1hYmk9c29mdGZwfSAidGh1bWIv djgtbS5tYWluK2RwL3NvZnRmcCIKKwl7LW1hcmNoPWFybXY4LW0ubWFpbitjZGVjcDAgLW1mcHU9 ZnB2NS1kMTYgLW1mbG9hdC1hYmk9c29mdGZwfSAidGh1bWIvdjgtbS5tYWluK2RwL3NvZnRmcCIK Kwl7LW1hcmNoPWFybXY4LW0ubWFpbitmcCtjZGVjcDAgLW1mcHU9ZnB2NS1kMTYgLW1mbG9hdC1h Ymk9c29mdGZwfSAidGh1bWIvdjgtbS5tYWluK2RwL3NvZnRmcCIKKwl7LW1hcmNoPWFybXY4LW0u bWFpbitmcC5kcCtjZGVjcDAgLW1mcHU9ZnB2NS1kMTYgLW1mbG9hdC1hYmk9c29mdGZwfSAidGh1 bWIvdjgtbS5tYWluK2RwL3NvZnRmcCIKKwl7LW1hcmNoPWFybXY4LW0ubWFpbitmcCtkc3ArY2Rl Y3AwIC1tZnB1PWZwdjUtZDE2IC1tZmxvYXQtYWJpPXNvZnRmcH0gInRodW1iL3Y4LW0ubWFpbitk cC9zb2Z0ZnAiCisJey1tYXJjaD1hcm12OC1tLm1haW4rZnAuZHArZHNwK2NkZWNwMCAtbWZwdT1m cHY1LWQxNiAtbWZsb2F0LWFiaT1zb2Z0ZnB9ICJ0aHVtYi92OC1tLm1haW4rZHAvc29mdGZwIgor CXstbWFyY2g9YXJtdjguMS1tLm1haW4rY2RlY3AwIC1tZnB1PWF1dG8gLW1mbG9hdC1hYmk9c29m dH0gInRodW1iL3Y4LW0ubWFpbi9ub2ZwIgorCXstbWFyY2g9YXJtdjguMS1tLm1haW4rZHNwK2Nk ZWNwMCAtbWZwdT1hdXRvIC1tZmxvYXQtYWJpPXNvZnR9ICJ0aHVtYi92OC1tLm1haW4vbm9mcCIK Kwl7LW1hcmNoPWFybXY4LjEtbS5tYWluK2RzcCtmcCtjZGVjcDAgLW1mcHU9YXV0byAtbWZsb2F0 LWFiaT1zb2Z0fSAidGh1bWIvdjgtbS5tYWluL25vZnAiCisJey1tYXJjaD1hcm12OC4xLW0ubWFp bitkc3ArZnAuZHArY2RlY3AwIC1tZnB1PWF1dG8gLW1mbG9hdC1hYmk9c29mdH0gInRodW1iL3Y4 LW0ubWFpbi9ub2ZwIgorCXstbWFyY2g9YXJtdjguMS1tLm1haW4rY2RlY3AwIC1tZnB1PWF1dG8g LW1mbG9hdC1hYmk9c29mdGZwfSAidGh1bWIvdjgtbS5tYWluL25vZnAiCisJey1tYXJjaD1hcm12 OC4xLW0ubWFpbitkc3ArY2RlY3AwIC1tZnB1PWF1dG8gLW1mbG9hdC1hYmk9c29mdGZwfSAidGh1 bWIvdjgtbS5tYWluL25vZnAiCisJey1tYXJjaD1hcm12OC4xLW0ubWFpbitkc3ArZnArY2RlY3Aw IC1tZnB1PWF1dG8gLW1mbG9hdC1hYmk9c29mdGZwfSAidGh1bWIvdjgtbS5tYWluK2ZwL3NvZnRm cCIKKwl7LW1hcmNoPWFybXY4LjEtbS5tYWluK2RzcCtmcC5kcCtjZGVjcDAgLW1mcHU9YXV0byAt bWZsb2F0LWFiaT1zb2Z0ZnB9ICJ0aHVtYi92OC1tLm1haW4rZHAvc29mdGZwIgorCXstbWFyY2g9 YXJtdjguMS1tLm1haW4rZHNwK2ZwK2NkZWNwMCAtbWZwdT1hdXRvIC1tZmxvYXQtYWJpPWhhcmR9 ICJ0aHVtYi92OC1tLm1haW4rZnAvaGFyZCIKKwl7LW1hcmNoPWFybXY4LjEtbS5tYWluK2RzcCtm cC5kcCtjZGVjcDAgLW1mcHU9YXV0byAtbWZsb2F0LWFiaT1oYXJkfSAidGh1bWIvdjgtbS5tYWlu K2RwL2hhcmQiCisJey1tYXJjaD1hcm12OC4xLW0ubWFpbittdmUrY2RlY3AwIC1tZnB1PWF1dG8g LW1mbG9hdC1hYmk9c29mdH0gInRodW1iL3Y4LW0ubWFpbi9ub2ZwIgorCXstbWFyY2g9YXJtdjgu MS1tLm1haW4rbXZlLmZwK2NkZWNwMCAtbWZwdT1hdXRvIC1tZmxvYXQtYWJpPXNvZnR9ICJ0aHVt Yi92OC1tLm1haW4vbm9mcCIKKwl7LW1hcmNoPWFybXY4LjEtbS5tYWluK212ZStjZGVjcDAgLW1m cHU9YXV0byAtbWZsb2F0LWFiaT1zb2Z0ZnB9ICJ0aHVtYi92OC1tLm1haW4vbm9mcCIKKwl7LW1h cmNoPWFybXY4LjEtbS5tYWluK212ZS5mcCtjZGVjcDAgLW1mcHU9YXV0byAtbWZsb2F0LWFiaT1z b2Z0ZnB9ICJ0aHVtYi92OC1tLm1haW4rZnAvc29mdGZwIgorCXstbWFyY2g9YXJtdjguMS1tLm1h aW4rbXZlK2NkZWNwMCAtbWZwdT1hdXRvIC1tZmxvYXQtYWJpPWhhcmR9ICJ0aHVtYi92OC4xLW0u bWFpbittdmUvaGFyZCIKKwl7LW1hcmNoPWFybXY4LjEtbS5tYWluK212ZStmcCtjZGVjcDAgLW1m cHU9YXV0byAtbWZsb2F0LWFiaT1oYXJkfSAidGh1bWIvdjgtbS5tYWluK2ZwL2hhcmQiCisJey1t YXJjaD1hcm12OC4xLW0ubWFpbittdmUrZnArY2RlY3AwIC1tZnB1PWF1dG8gLW1mbG9hdC1hYmk9 c29mdGZwfSAidGh1bWIvdjgtbS5tYWluK2ZwL3NvZnRmcCIKKwl7LW1hcmNoPWFybXY4LjEtbS5t YWluK212ZS5mcCtjZGVjcDAgLW1mcHU9YXV0byAtbWZsb2F0LWFiaT1oYXJkfSAidGh1bWIvdjgt bS5tYWluK2ZwL2hhcmQiCisJey1tYXJjaD1hcm12OC4xLW0ubWFpbittdmUrZnAuZHArY2RlY3Aw IC1tZnB1PWF1dG8gLW1mbG9hdC1hYmk9c29mdH0gInRodW1iL3Y4LW0ubWFpbi9ub2ZwIgorCXst bWFyY2g9YXJtdjguMS1tLm1haW4rbXZlLmZwK2ZwLmRwK2NkZWNwMCAtbWZwdT1hdXRvIC1tZmxv YXQtYWJpPXNvZnR9ICJ0aHVtYi92OC1tLm1haW4vbm9mcCIKKwl7LW1hcmNoPWFybXY4LjEtbS5t YWluK212ZStmcC5kcCtjZGVjcDAgLW1mcHU9YXV0byAtbWZsb2F0LWFiaT1zb2Z0ZnB9ICJ0aHVt Yi92OC1tLm1haW4rZHAvc29mdGZwIgorCXstbWFyY2g9YXJtdjguMS1tLm1haW4rbXZlLmZwK2Zw LmRwK2NkZWNwMCAtbWZwdT1hdXRvIC1tZmxvYXQtYWJpPXNvZnRmcH0gInRodW1iL3Y4LW0ubWFp bitkcC9zb2Z0ZnAiCisJey1tYXJjaD1hcm12OC4xLW0ubWFpbittdmUrZnAuZHArY2RlY3AwIC1t ZnB1PWF1dG8gLW1mbG9hdC1hYmk9aGFyZH0gInRodW1iL3Y4LW0ubWFpbitkcC9oYXJkIgorCXst bWFyY2g9YXJtdjguMS1tLm1haW4rbXZlLmZwK2ZwLmRwK2NkZWNwMCAtbWZwdT1hdXRvIC1tZmxv YXQtYWJpPWhhcmR9ICJ0aHVtYi92OC1tLm1haW4rZHAvaGFyZCIKICAgICB9IHsKIAljaGVja19t dWx0aV9kaXIgJG9wdHMgJGRpcgogICAgIH0K --_003_VI1PR0802MB2368FF4130C6F580882824669B359VI1PR0802MB2368_ Content-Type: text/plain; name="changelog (2).txt" Content-Description: changelog (2).txt Content-Disposition: attachment; filename="changelog (2).txt"; size=1883; creation-date="Thu, 10 Jun 2021 16:32:25 GMT"; modification-date="Thu, 10 Jun 2021 16:29:33 GMT" Content-Transfer-Encoding: base64 SGkgQWxsLAoKT24gcGFzc2luZyArY2RlY3BbMC03XSBleHRlbnNpb24gdG8gdGhlIC1tYXJjaCBz dHJpbmcgaW4gY29tbWFuZCBsaW5lIG9wdGlvbnMsCm11bHRpbGliIGxpbmtpbmcgaXMgZmFpbGlu ZyBhcyBtZW50aW9uZWQgaW4gUFIxMDA4NTYuIFRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBpc3N1ZSBi eQpnZW5lcmF0aW5nIGEgc2VwYXJhdGUgY2Fub25pY2FsIHN0cmluZyBieSByZW1vdmluZyBjb21w aWxlciBvcHRpb25zIHdoaWNoIGFyZSBub3QKcmVxdWlyZWQgZm9yIG11bHRpbGliIGxpbmtpbmcg ZnJvbSBtYXJjaCBzdHJpbmcgYW5kIGFzc2lnbiB0aGUgbmV3IHN0cmluZyB0byBtbGliYXJjaApv cHRpb24uIFRoaXMgbWxpYmFyY2ggc3RyaW5nIGlzIHVzZWQgZm9yIG11bHRpbGliIGNvbXBhcmlz b24uCgpSZWdyZXNzaW9uIHRlc3RlZCBvbiBhcm0tbm9uZS1lYWJpIGFuZCBmb3VuZCBubyByZWdy ZXNzaW9ucy4KCk9rIGZvciBtYXN0ZXI/CgpSZWdhcmRzLApTcmluYXRoLgoKZ2NjL0NoYW5nZUxv ZzoKCjIwMjEtMDYtMTAgIFNyaW5hdGggUGFydmF0aGFuZW5pICA8c3JpbmF0aC5wYXJ2YXRoYW5l bmlAYXJtLmNvbT4KCglQUiB0YXJnZXQvMTAwODU2CgkqIGNvbW1vbi9jb25maWcvYXJtL2FybS1j b21tb24uYyAoYXJtX2Nhbm9uX2FyY2hfb3B0aW9uKTogRGVmaW5lCglmdW5jdGlvbiB0byBjYWxs IGFybV9jYW5vbl9hcmNoX29wdGlvbl8xIHdpdGggZmxhc2UgYm9vbGVhbiBhcmd1bWVudCB0bwoJ Z2VuZXJhdGUgY2Fub25pY2FsIHN0cmluZyBmb3IgbWFyY2ggb3B0aW9uLgoJKGFybV9jYW5vbl9h cmNoX29wdGlvbl8xKTogUmVuYW1lIGFybV9jYW5vbl9hcmNoX29wdGlvbiB0bwoJYXJtX2Nhbm9u X2FyY2hfb3B0aW9uXzEgYW5kIGFkZCBhIGJvb2xlYW4gYXJndW1lbnQuCgkoYXJtX2Nhbm9uX2Fy Y2hfbXVsdGlsaWJfb3B0aW9uKTogRGVmaW5lIGZ1bmN0aW9uIHRvIGNhbGwKCWFybV9jYW5vbl9h cmNoX29wdGlvbl8xIHdpdGggdHJ1ZSBib29sZWFuIGFyZ3VtZW50IHRvIGdlbmVyYXRlIGNhbm9u aWNhbAoJc3RyaW5nIGZvciBtbGliYXJjaCBvcHRpb24uCgkqIGNvbmZpZy9hcm0vYXJtLWNwdXMu aW4gKElHTk9SRV9GT1JfTVVMVElMSUIpOiBEZWZpbmUgZmdyb3VwIHdpdGggY2RlCglmZWF0dXJl IGJpdHMuCgkqIGNvbmZpZy9hcm0vYXJtLmggKGFybV9jYW5vbl9hcmNoX29wdGlvbl8xKTogRnVu Y3Rpb24gZGVjbGFyYXRpb24uCgkoYXJtX2Nhbm9uX2FyY2hfbXVsdGlsaWJfb3B0aW9uKTogRnVu Y3Rpb24gZGVjbGFyYXRpb24uCgkoQ0FOT05fQVJDSF9NVUxUSUxJQl9TUEVDX0ZVTkNUSU9OKTog RGVmaW5lIG5ldyBtYWNyby4KCShNVUxUSUxJQl9BUkNIX0NBTk9OSUNBTF9TUEVDUyk6IERlZmlu ZSBuZXcgbWFjcm8uCgkoRFJJVkVSX1NFTEZfU1BFQ1MpOiBBZGQgTVVMVElMSUJfQVJDSF9DQU5P TklDQUxfU1BFQ1MgZW50cnkuCgkqIGNvbmZpZy9hcm0vYXJtLm9wdCAobWxpYmFyY2gpOiBBZGQg bmV3IG9wdGlvbiB3aGljaCBpcyBzdXBwb3J0ZWQgYnkKCURyaXZlck9ubHkuCgkqIGNvbmZpZy9h cm0vdC1ybXByb2ZpbGUgKE1VTFRJTElCX01BVENIRVMpOiBtYXJjaCBvbiByaWdodCBoYW5kIHNp ZGUgb2YKCWVxdWFsIHRvIGlzIHJlcGxhY2VkIHdpdGggbWxpYmFyY2ggZm9yIG11bHRpbGliIGNv bXBhcmlzb24uCgpnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoKCjIwMjEtMDYtMTAgIFNyaW5hdGgg UGFydmF0aGFuZW5pICA8c3JpbmF0aC5wYXJ2YXRoYW5lbmlAYXJtLmNvbT4KCglQUiB0YXJnZXQv MTAwODU2CgkqIGdjYy50YXJnZXQvYXJtL2FjbGUvcHIxMDA4NTYuYzogTmV3IHRlc3QuCgkqIGdj Yy50YXJnZXQvYXJtL211bHRpbGliLmV4cDogQWRkIGNkZSBjb21waWxlciBvcHRpb24gZW50cmll cy4= --_003_VI1PR0802MB2368FF4130C6F580882824669B359VI1PR0802MB2368_--