From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2116.outbound.protection.outlook.com [40.107.237.116]) by sourceware.org (Postfix) with ESMTPS id E22CB3858D28 for ; Tue, 29 Aug 2023 07:49:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E22CB3858D28 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=os.amperecomputing.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=os.amperecomputing.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MVdxy/3A7eu82CwO0FZE7LUt1hU/f4fVgwrpNq3oHPCc0kqFCyVboXsG71rxe8P0+yEODwsdacLVgSkcpg5TnVqCL4x4zX3+Z+aPp6SMEFZWZBQa8PONQehgVJ2PO6sKm1VsBQOombxMPGjp3j7WmG11tZrB2g9TFqrg7mnS5m5p4XvccTMTudNT9V1il/EMWgYEGY5qKMHnwQLotPtCCGqjz6JhTMYs5wOQda1OWoDkqcY9I6lBJ43h/KVUeT5C0zx/KtxHax1A3qKCAU0Uc+SclQBMhoV8v+qGIrLGrWBxI44JQjPAqoFBbvcf/mDYbdo+ixk5hcLLUqZuQgVKpg== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=j3h0vrKvU6BRwFOIg9LijaH8abuH6IhZhKS332YFUHc=; b=FC4ekUvLDBO/2t1kue2EsOpON2vv8s/Hi98603uAmq+SqUgyWDHwfwIw4VjOswTeJucZ8xAA1fqGHmv+Ph3Mcb3zN3Ojg8ktA6Ql+Yc6eU+b/vC6UuGIFnazmUVyoVztx1xaJUJWCmnxGmorNH4STpU3voNmYeF4u0OnXzKA9tySsVxTCLbJNtu4BkAUeJm0espIJUY2n280nm//XHdlVhO1gz3OSTxRVCmqth8/KNI/3FIbOTFwYNR6XYLmZ82/BjptW6BWCCOzu4+Hf8n4xLBmtCpw11j8BTVm3wEVDVsrQEwidOafPpN0oWQhCUp/2H7pt528Vc/7sXqjrXDhYg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=os.amperecomputing.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=j3h0vrKvU6BRwFOIg9LijaH8abuH6IhZhKS332YFUHc=; b=J4XjoYgkaxRi28Yjkk/lXwrITQiSvdwDxD4ugWrFg+eDruxtM0T+gFuopi0onQrzTMniQhmlEzgQ7scc3UAAmy0DTT8gpqTItL05tImN5U2/NCeafQRHu/VzVT99lB1buxpyIAVNnjLWHd68wTxPEfX+OBm4LjTPhnUjzP7sD0Y= Received: from SN6PR01MB4240.prod.exchangelabs.com (2603:10b6:805:ae::22) by PH7PR01MB7678.prod.exchangelabs.com (2603:10b6:510:1d5::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6699.34; Tue, 29 Aug 2023 07:49:02 +0000 Received: from SN6PR01MB4240.prod.exchangelabs.com ([fe80::44ff:531:6d29:85a]) by SN6PR01MB4240.prod.exchangelabs.com ([fe80::44ff:531:6d29:85a%7]) with mapi id 15.20.6699.034; Tue, 29 Aug 2023 07:49:02 +0000 From: Di Zhao OS To: Richard Biener , Jeff Law , Martin Jambor CC: "gcc-patches@gcc.gnu.org" Subject: RE: [PATCH] [tree-optimization/110279] swap operands in reassoc to reduce cross backedge FMA Thread-Topic: [PATCH] [tree-optimization/110279] swap operands in reassoc to reduce cross backedge FMA Thread-Index: AdnZh/Le9F594Tc5S4ekqukOGNY+CgAfpPqAABFqbYAAABuGoA== Date: Tue, 29 Aug 2023 07:49:01 +0000 Message-ID: References: <4c3c9a1c-e182-30a9-342d-525adfb8cffd@gmail.com> In-Reply-To: Accept-Language: en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_5b82cb1d-c2e0-4643-920a-bbe7b2d7cc47_ActionId=dab67170-ca6a-4452-b15e-8963ffe1d10d;MSIP_Label_5b82cb1d-c2e0-4643-920a-bbe7b2d7cc47_ContentBits=0;MSIP_Label_5b82cb1d-c2e0-4643-920a-bbe7b2d7cc47_Enabled=true;MSIP_Label_5b82cb1d-c2e0-4643-920a-bbe7b2d7cc47_Method=Standard;MSIP_Label_5b82cb1d-c2e0-4643-920a-bbe7b2d7cc47_Name=Confidential (Default);MSIP_Label_5b82cb1d-c2e0-4643-920a-bbe7b2d7cc47_SetDate=2023-08-29T07:44:19Z;MSIP_Label_5b82cb1d-c2e0-4643-920a-bbe7b2d7cc47_SiteId=3bc2b170-fd94-476d-b0ce-4229bdc904a7; authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=os.amperecomputing.com; x-ms-exchange-messagesentrepresentingtype: 1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR01MB4240:EE_|PH7PR01MB7678:EE_ x-ms-office365-filtering-correlation-id: 6e26ec7b-30aa-4525-2ca2-08dba864695f x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: hajmL7ve178kfDrSeN/UbGYOwQ6g1Xd0WBy8iDIScWasZw9LGptRNPRsNBvZvAf9YbbrBYp306N5zrQ8fh17KV+cTwf53s3exjjwm1KPSVNAeGYox381oQcK2Z/18SFl+3qxx4TltyAvI+rpS2twApSPTCsSCrqFqfrqEZ9verauIxXYSZSqKi03OtGitlpZohq6VL0V0YTw0rPITKf23ns2KDYdV8IqwSRxt3TGeeYReDhtHpy4HdO1WYwdkknNUiKhcZxoyJtKNomGAIWujfYJe+6MOLtxjHUkE5qDv/tTcQ2EKaAC+oCzywswvKjnorfnPJ/sErYw2X6JBj/G0KZYWAHZg3D6Xm9TFjetqSGRsHq/l+TOxbhSU/y71V0GxJk7CFYuNIAJ8WeLk3sd1YyHc0YcT9ikt4MG5J38kPMaCN03H+695dyv2hmplxczmGZvOhgh1JVr67mQzx2JLe5q5BZ8vcA8KedVcdwadqm76jazeNzkU5cQDTMoO6hHz/2rZFqupCeoDIY64fiVoGoFgRc5l/O00pSjiS8W4MOBpSJ4pX12IUT8vfbzYrmP2Ltr6POrxV2hpUlY+WiBo6Teg6U+8RnrmLscrOn2R1s= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR01MB4240.prod.exchangelabs.com;PTR:;CAT:NONE;SFS:(13230031)(39850400004)(136003)(396003)(346002)(376002)(366004)(1800799009)(186009)(451199024)(84970400001)(478600001)(83380400001)(966005)(122000001)(26005)(9686003)(7696005)(66899024)(110136005)(53546011)(6506007)(71200400001)(55016003)(86362001)(33656002)(2906002)(52536014)(316002)(66476007)(38100700002)(38070700005)(8676002)(4326008)(5660300002)(64756008)(76116006)(66446008)(41300700001)(66946007)(8936002)(66556008);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MUhhaTYzeHYxSEVva2VEL1FRdnRGcXdXL24rOGZFOG5ORkJqN3Y1QWxvR2xh?= =?utf-8?B?eGJMUWJzQWVpbTJFMTVpbXpFMTFvWXlJVnlWQk1IbmovcVk5eGdvYkhJSVJZ?= =?utf-8?B?N2lqclBvRjdzNElLaUdYWE9BOS9UVVB2WVRMSjRlYkRSTGhNNjZ0QkxXeXBD?= =?utf-8?B?MmUzNktxMmF2eGVIc1JNK0I4bHhsbjRuSXY1UGNITmp5OUhKVjMrMklnNFdi?= =?utf-8?B?QWg5bzFMK0VoY3haT1Z5OHppeXFsaTFpMlNBTStyZ21iUVFjRERldGNscWJF?= =?utf-8?B?YVVwQUdCblo3aU84UXZRTlVOT045ejVBdk1yZ0c2dmRpd0pIeEI2aWRVZHV5?= =?utf-8?B?SEt5ejd4aml2TmRMRElqajl3by9LQmxTVWRYWmQxeXFEdzJtZDFGaHg4aE1Q?= =?utf-8?B?czltT01UUy9DQ2xMVW1DWXhkUUtFY0pWdWVBWFQ4WW5Xd2tCVloyRU02dlpB?= =?utf-8?B?Y3JPWFU4U3lsV2pMcFQvWW50d2thT3QwakdsSkt6UUtJQTJ2cUtray9TSGNL?= =?utf-8?B?ZFBsQXdxakRIWm1iNUNVNDJUbEtwbVg0OTR4UVNYa2dYRGE4U1U4VHRxTExC?= =?utf-8?B?eDZwZHRTaTZvckJ4dGpwTitHY2NNUzMzTDl0bHh4ZDhMUlVTL2J2WXhZWDhm?= =?utf-8?B?VFZQZ2kvSGszaWNFUzIxU3E1RW1xWGk3azE5aUNuZXNsNDZaem9iK0xzbURi?= =?utf-8?B?ZEVRWlBPQjVzaUF6bUFZUnFhcm9Oa0s0dHNOb3hmK1lIcUJKZ3B0TFFaY2xi?= =?utf-8?B?NFFuQnVab0VOTzZ3NHRNenE5TTlMMGdtM2FLWWc2TlM2R3l0VE44UEUrc2Zx?= =?utf-8?B?UkVzdXNmWVVBblhzSWFUZVZjL0I4TzdaSjhreFBxMDZUbEpXdXRYbVhmb3FZ?= =?utf-8?B?dGxTZ0VmaC8xSFZzd1h4RnkwSnF4dmhNcEFNcTFLL05rQzUycnl6RXNIUm04?= =?utf-8?B?WlFwcFhmTXFEYytValBIbFh4VEpkazErV2hVSjBSR0dQVDFBY0IyMFBsZG5O?= =?utf-8?B?OW9kZ3pKK045M055OHlnTWRyLzlMZEZXQzBnUWNrUm1MZ0c2Wm1pc3ZOOWVE?= =?utf-8?B?SjEzZGYxK2FiNTh0QzR0MXpDUGxTbDRBc3M0KysxUDYxTFNXQUNNVlpoVXNF?= =?utf-8?B?dFhCVnJtOUg1USs1Rnd3V2FPSDdFVkljdm1NWUlvVkVLWkthWU5XWVpLb043?= =?utf-8?B?QkwyL2VrZTdiajN3OUd2RlpPNlFWTWVFK0ovZEM1VXVGdVk3bHFqRVpOZGx5?= =?utf-8?B?ZnhjVnJ2NjNSN0UzQTdwbEtzL0htNVBqR0JjRTFuekdGVjI3QlppK1FJVlA2?= =?utf-8?B?UWFFS25BWkdJS0dCZVl5ellhK2gvNzI5cklBK0NLRHdVNVhDbFlEa3dIdkVz?= =?utf-8?B?U1l5Z1JheHlnWXVrUGNBVndKVDFOSW1zK0NPdXBoUDZxY2Vvd1dkUGNBdkNN?= =?utf-8?B?TTA4RnQ1NTBaTlFaM2xCd2xySEdWSnlFYmNoNU9KYXB4SW1CYlZOTWhvUVM5?= =?utf-8?B?WXlnSlFxNG9BZ1RqS0FRL3lVZC9ZK1RRZVZVVmxraXBZUmdtRUZOYjRQMzZZ?= =?utf-8?B?MlBjNzR6dWtCMlFIMkhFTDIwYWtTL3dXZVcyOUlpWnF0WkFPK2NvRDNUVkZk?= =?utf-8?B?a2FzUUR5VnlzUmdDRFpOby9RTGF3NUI5c0xobEZGaS8ybUtPSjZRZlA2TjB0?= =?utf-8?B?N0dqUkVId2hab0k0VGV2SFpxYnI2aGFOQkY3SlV6QUJoOURrWC8yWEwzbjZW?= =?utf-8?B?L2NZSVFDNXpndHNZOGpjODY4b0paaHdYR2RHYVhqeVZMT2plQVNycTE4Q1Qw?= =?utf-8?B?NE5nemVDQnpGNTR6QzFoc1FVV2c2bXhlVXhSL1Z0MjJ0YWljc0JaNTJObnBZ?= =?utf-8?B?dSsvQWF4bHNZKzBZV0hSYmpqbU1MREJ0OG9adGtzV1BBRDhwMVdySGNmMjRr?= =?utf-8?B?dERKUG9UMDlzQU0zMG4zVUMxZkJmTW9aVWNhTlA0N3o1N0RWTVAwVVAxY3RC?= =?utf-8?B?dWVkK0kvSEd1Y0tRaDIxK1NxMEJjMm1YczUvRThCMnhDNjJGREQvaTNBaTg3?= =?utf-8?B?SlhkZHgzc0JIZTBmL0hIR0gzVUh5aU9JWld4MjNnY280UithSmVXbkV2NFVk?= =?utf-8?B?VFBJWitEN05EZTJJUEZQVFEwM0VhelZ2RGxxSHBnQWwyWkNRRFdZeDgvL0Zt?= =?utf-8?B?dmc9PQ==?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR01MB4240.prod.exchangelabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6e26ec7b-30aa-4525-2ca2-08dba864695f X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Aug 2023 07:49:02.0831 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: wOmTF8e4RomjjDnK/XszEvudD9z+/htIp2QmOgyfGCq9G6KoTmHnkMggdmVnA+xIBl+ShHIWbEdA2tl6XzvEBlMDzxQbliSThYldm9xf6ml+RUYsEONt6AoKv6J1bZKY X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR01MB7678 X-Spam-Status: No, score=-3.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: SGksDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogUmljaGFyZCBCaWVu ZXIgPHJpY2hhcmQuZ3VlbnRoZXJAZ21haWwuY29tPg0KPiBTZW50OiBUdWVzZGF5LCBBdWd1c3Qg MjksIDIwMjMgMzo0MSBQTQ0KPiBUbzogSmVmZiBMYXcgPGplZmZyZXlhbGF3QGdtYWlsLmNvbT47 IE1hcnRpbiBKYW1ib3IgPG1qYW1ib3JAc3VzZS5jej4NCj4gQ2M6IERpIFpoYW8gT1MgPGRpemhh b0Bvcy5hbXBlcmVjb21wdXRpbmcuY29tPjsgZ2NjLXBhdGNoZXNAZ2NjLmdudS5vcmcNCj4gU3Vi amVjdDogUmU6IFtQQVRDSF0gW3RyZWUtb3B0aW1pemF0aW9uLzExMDI3OV0gc3dhcCBvcGVyYW5k cyBpbiByZWFzc29jIHRvDQo+IHJlZHVjZSBjcm9zcyBiYWNrZWRnZSBGTUENCj4gDQo+IE9uIFR1 ZSwgQXVnIDI5LCAyMDIzIGF0IDE6MjPigK9BTSBKZWZmIExhdyB2aWEgR2NjLXBhdGNoZXMNCj4g PGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnPiB3cm90ZToNCj4gPg0KPiA+DQo+ID4NCj4gPiBPbiA4 LzI4LzIzIDAyOjE3LCBEaSBaaGFvIE9TIHZpYSBHY2MtcGF0Y2hlcyB3cm90ZToNCj4gPiA+IFRo aXMgcGF0Y2ggdHJpZXMgdG8gZml4IHRoZSAyJSByZWdyZXNzaW9uIGluIDUxMC5wYXJlc3RfciBv bg0KPiA+ID4gYW1wZXJlMSBpbiB0aGUgdHJhY2tlci4gKFByZXZpb3VzIGRpc2N1c3Npb24gaXMg aGVyZToNCj4gPiA+IGh0dHBzOi8vZ2NjLmdudS5vcmcvcGlwZXJtYWlsL2djYy1wYXRjaGVzLzIw MjMtSnVseS82MjQ4OTMuaHRtbCkNCj4gPiA+DQo+ID4gPiAxLiBBZGQgdGVzdGNhc2VzIGZvciB0 aGUgcHJvYmxlbS4gRm9yIGFuIG9wIGxpc3QgaW4gdGhlIGZvcm0gb2YNCj4gPiA+ICJhY2MgPSBh ICogYiArIGMgKiBkICsgYWNjIiwgY3VycmVudGx5IHJlYXNzb2NpYXRpb24gZG9lc24ndA0KPiA+ ID4gU3dhcCB0aGUgb3BlcmFuZHMgc28gdGhhdCBtb3JlIEZNQXMgY2FuIGJlIGdlbmVyYXRlZC4N Cj4gPiA+IEFmdGVyIHdpZGVuaW5nX211bCB0aGUgcmVzdWx0IGxvb2tzIGxpa2U6DQo+ID4gPg0K PiA+ID4gICAgIF8xID0gLkZNQShhLCBiLCBhY2NfMCk7DQo+ID4gPiAgICAgYWNjXzEgPSAuRk1B KGMsIGQsIF8xKTsNCj4gPiA+DQo+ID4gPiBXaGlsZSBwcmV2aW91c2x5IChiZWZvcmUgdGhlICJI YW5kbGUgRk1BIGZyaWVuZGx5Li4uIiBwYXRjaCksDQo+ID4gPiB3aWRlbmluZ19tdWwncyByZXN1 bHQgd2FzIGxpa2U6DQo+ID4gPg0KPiA+ID4gICAgIF8xID0gYSAqIGI7DQo+ID4gPiAgICAgXzIg PSAuRk1BIChjLCBkLCBfMSk7DQo+ID4gPiAgICAgYWNjXzEgPSBhY2NfMCArIF8yOw0KPiANCj4g SG93IGNhbiB3ZSBleGVjdXRlIHRoZSBtdWx0aXBseSBhbmQgdGhlIEZNQSBpbiBwYXJhbGxlbD8g IFRoZXkNCj4gZGVwZW5kIG9uIGVhY2ggb3RoZXIuICBPciBpcyBpdCB0aGUgdWFyY2ggY2FuIGhh bmRsZSBkZXBlbmRlbmNlDQo+IG9uIHRoZSBhZGQgb3BlcmFuZCBidXQgb25seSB3aGVuIGl0IGlz IHdpdGggYSBtdWx0aXBsaWNhdGlvbiBhbmQNCj4gbm90IGEgRk1BIGluIHNvbWUgYmV0dGVyIHdh eXM/ICAoSSdkIGRvdWJ0IHNvIG11Y2ggY29tcGxleGl0eSkNCj4gDQo+IENhbiB5b3UgZXhwbGFp biBpbiBtb3JlIGRldGFpbCBob3cgdGhlIHVhcmNoIGV4ZWN1dGVzIG9uZSB2cy4gdGhlDQo+IG90 aGVyIGNhc2U/DQo+IA0KPiA+ID4gSWYgdGhlIGNvZGUgZnJhZ21lbnQgaXMgaW4gYSBsb29wLCBz b21lIGFyY2hpdGVjdHVyZSBjYW4gZXhlY3V0ZQ0KPiA+ID4gdGhlIGxhdHRlciBpbiBwYXJhbGxl bCwgc28gdGhlIHBlcmZvcm1hbmNlIGNhbiBiZSBtdWNoIGZhc3RlciB0aGFuDQo+ID4gPiB0aGUg Zm9ybWVyLiBGb3IgdGhlIHNtYWxsIHRlc3RjYXNlLCB0aGUgcGVyZm9ybWFuY2UgZ2FwIGlzIG92 ZXINCj4gPiA+IDEwJSBvbiBib3RoIGFtcGVyZTEgYW5kIG5lb3ZlcnNlLW4xLiBTbyB0aGUgcG9p bnQgaGVyZSBpcyB0byBhdm9pZA0KPiA+ID4gdHVybmluZyB0aGUgbGFzdCBzdGF0ZW1lbnQgaW50 byBGTUEsIGFuZCBrZWVwIGl0IGEgUExVU19FWFBSIGFzDQo+ID4gPiBtdWNoIGFzIHBvc3NpYmxl LiAoSWYgd2UgYXJlIHJld3JpdGluZyB0aGUgb3AgbGlzdCBpbnRvIHBhcmFsbGVsLA0KPiA+ID4g bm8gc3BlY2lhbCB0cmVhdG1lbnQgaXMgbmVlZGVkLCBzaW5jZSB0aGUgbGFzdCBzdGF0ZW1lbnQg YWZ0ZXINCj4gPiA+IHJld3JpdGVfZXhwcl90cmVlX3BhcmFsbGVsIHdpbGwgYmUgUExVU19FWFBS IGFueXdheS4pDQo+ID4gPg0KPiA+ID4gMi4gRnVuY3Rpb24gcmVzdWx0X2ZlZWRzX2JhY2tfZnJv bV9waGlfcCBpcyB0byBjaGVjayBmb3IgY3Jvc3MNCj4gPiA+IGJhY2tlZGdlIGRlcGVuZGVuY3ku IEFkZGVkIG5ldyBlbnVtIGZtYV9zdGF0ZSB0byBkZXNjcmliZSB0aGUNCj4gPiA+IHN0YXRlIG9m IEZNQSBjYW5kaWRhdGVzLg0KPiA+ID4NCj4gPiA+IFdpdGggdGhpcyBwYXRjaCwgdGhlcmUncyBh IDMlIGltcHJvdmVtZW50IGluIDUxMC5wYXJlc3RfciAxLWNvcHkNCj4gPiA+IHJ1biBvbiBhbXBl cmUxLiBUaGUgY29tcGlsZSBvcHRpb25zIGFyZToNCj4gPiA+ICItT2Zhc3QgLW1jcHU9YW1wZXJl MSAtZmx0byAtLXBhcmFtIGF2b2lkLWZtYS1tYXgtYml0cz01MTIiLg0KPiA+ID4NCj4gPiA+IEJl c3QgcmVnYXJkcywNCj4gPiA+IERpIFpoYW8NCj4gPiA+DQo+ID4gPiAtLS0tDQo+ID4gPg0KPiA+ ID4gICAgICAgICAgUFIgdHJlZS1vcHRpbWl6YXRpb24vMTEwMjc5DQo+ID4gPg0KPiA+ID4gZ2Nj L0NoYW5nZUxvZzoNCj4gPiA+DQo+ID4gPiAgICAgICAgICAqIHRyZWUtc3NhLXJlYXNzb2MuY2Mg KGVudW0gZm1hX3N0YXRlKTogTmV3IGVudW0gdG8NCj4gPiA+ICAgICAgICAgIGRlc2NyaWJlIHRo ZSBzdGF0ZSBvZiBGTUEgY2FuZGlkYXRlcyBmb3IgYW4gb3AgbGlzdC4NCj4gPiA+ICAgICAgICAg IChyZXdyaXRlX2V4cHJfdHJlZV9wYXJhbGxlbCk6IENoYW5nZWQgYm9vbGVhbg0KPiA+ID4gICAg ICAgICAgcGFyYW1ldGVyIHRvIGVudW0gdHlwZS4NCj4gPiA+ICAgICAgICAgIChyZXN1bHRfZmVl ZHNfYmFja19mcm9tX3BoaV9wKTogTmV3IGZ1bmN0aW9uIHRvIGNoZWNrDQo+ID4gPiAgICAgICAg ICBmb3IgY3Jvc3MgYmFja2VkZ2UgZGVwZW5kZW5jeS4NCj4gPiA+ICAgICAgICAgIChyYW5rX29w c19mb3JfZm1hKTogUmV0dXJuIGVudW0gZm1hX3N0YXRlLiBBZGRlZCBuZXcNCj4gPiA+ICAgICAg ICAgIHBhcmFtZXRlci4NCj4gPiA+ICAgICAgICAgIChyZWFzc29jaWF0ZV9iYik6IElmIHRoZXJl J3MgYmFja2VkZ2UgZGVwZW5kZW5jeSBpbiBhbg0KPiA+ID4gICAgICAgICAgb3AgbGlzdCwgc3dh cCB0aGUgb3BlcmFuZHMgYmVmb3JlIHJld3JpdGVfZXhwcl90cmVlLg0KPiA+ID4NCj4gPiA+IGdj Yy90ZXN0c3VpdGUvQ2hhbmdlTG9nOg0KPiA+ID4NCj4gPiA+ICAgICAgICAgICogZ2NjLmRnL3By MTEwMjc5LmM6IE5ldyB0ZXN0Lg0KPiA+IE5vdCBhIHJldmlldywgYnV0IG1vcmUgb2YgYSBxdWVz dGlvbiAtLSBpc24ndCB0aGlzIHRyYW5zZm9ybWF0aW9uJ3MNCj4gPiBwcm9maXRhYmlsaXR5IHVh cmNoIHNlbnNpdGl2ZS4gIGllLCBqdXN0IGJlY2F1c2UgaXQncyBiYWQgZm9yIGEgc2V0IG9mDQo+ ID4gYWFyY2g2NCB1YXJjaGVzLCBkb2Vzbid0IG1lYW4gaXQncyBiYWQgZXZlcnl3aGVyZS4NCj4g Pg0KPiA+IEFuZCBpbiBnZW5lcmFsIHdlIHNoeSBhd2F5IGZyb20gdHJ5aW5nIHRvIGFkanVzdCBn aW1wbGUgY29kZSBiYXNlZCBvbg0KPiA+IHVhcmNoIHByZWZlcmVuY2VzLg0KPiA+DQo+ID4gSXQg c2VlbXMgdGhlIHJpZ2h0IHBsYWNlIHRvIGRvIHRoaXMgaXMgZ2ltcGxlLT5ydGwgZXhwYW5zaW9u Lg0KPiANCj4gQW5vdGhlciBjb21tZW50IGlzIHRoYXQgRk1BIGZvcm1pbmcgaGFzIHRoaXMgZGVm ZXJyaW5nIGNvZGUgd2hpY2ggSQ0KPiB0aGluayBkZWFscyBleGFjdGx5IHdpdGggdGhpcyBraW5k IG9mIHRoaW5nPyAgQ0NpbmcgTWFydGluIHdobyBkaWQgdGhpcw0KPiB3b3JrIGJhc2VkIG9uIEFN RCB1YXJjaHMgYWxzbyBub3Qgd2FudGluZyBjcm9zcy1sb29wIGRlcGVuZGVuY2VzDQo+IG9uIEZN QXMgKG9yIHNvKS4gIEluIHBhcnRpY3VsYXIgSSBzZWUNCj4gDQo+ICAgaWYgKGZtYV9zdGF0ZS5t X2RlZmVycmluZ19wDQo+ICAgICAgICYmIGZtYV9zdGF0ZS5tX2luaXRpYWxfcGhpKQ0KPiAgICAg ew0KPiAgICAgICBnY2NfY2hlY2tpbmdfYXNzZXJ0IChmbWFfc3RhdGUubV9sYXN0X3Jlc3VsdCk7 DQo+ICAgICAgIGlmICghbGFzdF9mbWFfY2FuZGlkYXRlX2ZlZWRzX2luaXRpYWxfcGhpICgmZm1h X3N0YXRlLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJm1fbGFzdF9yZXN1bHRfc2V0KSkNCj4gICAgICAgICBjYW5jZWxfZm1hX2RlZmVycmluZyAo JmZtYV9zdGF0ZSk7DQo+IA0KPiBhbmQgSSB0aGluayBjb2RlIHRvIGF2b2lkIEZNQXMgaW4gb3Ro ZXIvcmVsYXRlZCBjYXNlcyBzaG91bGQgYmUgaGVyZQ0KPiBhcyB3ZWxsLCBsaWtlIGF2b2lkIGZv cm1pbmcgYmFjay10by1iYWNrIEZNQXMuDQoNClRoZSBjaGFuZ2VzIGluIHRoaXMgcGF0Y2ggaXMg Y29udHJvbGxlZCBieSAicGFyYW1fYXZvaWRfZm1hX21heF9iaXRzIiwgc28NCkkgdGhpbmsgaXQg c2hvdWxkIG9ubHkgYWZmZWN0IGFyY2hpdGVjdHVyZXMgd2l0aCBzaW1pbGFyIGJlaGF2aW9yLiAo VGhlDQpwYXJhbWV0ZXIgd2FzIGFkZGVkIGluIGEgcHJldmlvdXMgcGF0Y2ggIkRlZmVycmluZyBG TUEgdHJhbnNmb3JtYXRpb25zDQppbiB0aWdodCBsb29wcyIsIHdoaWNoIHNlZW1zIHRvIGJlIGRl YWxpbmcgd2l0aCB0aGUgc2FtZSBpc3N1ZS4pDQoNCj4gUmljaGFyZC4NCj4gDQo+ID4gSmVmZg0K DQpUaGFua3MsDQpEaSBaaGFvDQo=