From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on2134.outbound.protection.outlook.com [40.107.96.134]) by sourceware.org (Postfix) with ESMTPS id A880F3858D1E for ; Thu, 9 Nov 2023 17:53:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A880F3858D1E 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-Filter: OpenARC Filter v1.0.0 sourceware.org A880F3858D1E Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.96.134 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1699552402; cv=pass; b=cgaG/93/s9Y5LmB7Etngyw2IwTaSHH4rqmBJVdhiXNHXcTLilw/jYhq//3m6MV7+1DZlT6jHDG4LLm7qT9Ta1jssxw/MlvixRuQtsRS+MC0q7ae5sZH4tuSufYsAyHScQ9dkXlCb38f+I9odG7xOs2SSYw63Vse6CRl74uOUBlk= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1699552402; c=relaxed/simple; bh=4RVySnUQYKMtFDRxzX+BmV5NDF5zbQCUBg9+3NgSgMU=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=BtlyjnjA60sXqCYKl/2c/OUMxhLnDS5W8VetaCMRYV8CstWlPOrM4jxVj8VX7kVv3AuBAtXpVBnH30ZQ1E3WZVzslnLUhw2UqwvXB1fvVejVox+JJ2mqJQAue5z80TGy37cLisRlBtRIw1NjOw+Pep9hlEZCV/+U7QpNbF5e1Ck= ARC-Authentication-Results: i=2; server2.sourceware.org ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jxxva+Q0uG3+Ic+sK4TRO/CDPUACrEvPcDmOOGwMpLO7/L+Od15ks6zd7Sa37qIBOvaHuYdCi1iRXuU6G2bcpXOkCaIN+2wbjdc6BdBTok1axOB7zDvW29RxnVTrdpVOJAznW6VZ3wDsOuC/kXFCu+NKnBp+19+LqxfWqUpw+FY+KIqV69oU3iKec2tBVd8YOnoYZol7Rck6A2YqlyOuOp0VdbblClFHhk2f9SjwpNbCxp2suPVBiAIkOthF3EiM59M0Z62XnyzY7EGJl+dnYDKwwQuMH+a45YJj7QiK87TtA7WgeAP81i3TYfGlVNighSQaOs2x/hwHgGhVUgsaEg== 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=NQWeqiqVqxnbyKF+CaOsF7xDiG8HjTqHDGUJV1Z0Zwc=; b=NLW7R+TfvUWjL6r1Fno3nbLyNavZ/d9wwwcES/NNdQjV/U01AxS918TvbjBYL0ubiqsA+bpWtdlbrrqx3y4d/r9ALixFhIwqOpLJJVx1A7WqRGRWEE+wNf9nyxFJ/Sy4C1oq11NrJlWg6X6cu/QftWiJpMn/cqfNMAlhlmamxkk4J5SRWTp52Rt6RLnlR1jJeo22mfIrY3u0SoaJwOSF3KjVzoe3mgHUMyPdVcLLAiu1pf1Dl6QoQqFa07LXXYKr92T9xGvU0DGEGT0UhmhW7Un5n7X9UOzipXmnsPxDkwS/V9ZMArCFYLoUG+jkY/0zbnAynHqERBbwQL48ZzRI7Q== 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=NQWeqiqVqxnbyKF+CaOsF7xDiG8HjTqHDGUJV1Z0Zwc=; b=cfeN7vWhStMvFOm6lVAtb2dhnCmrOiIey0e2HB5SOkdu7FYZDbQEvBMvtRgjWwsX28VtOvKXy7eG6229mm27hRJ6OgjydIlrYS3mgaqnAYxnS9TVvWYcZFvcQwxMylsBMw4ak5f61+9F2tNkuO2Ktm0TMs1Teeave1jV0p3JRCM= Received: from SN6PR01MB4240.prod.exchangelabs.com (2603:10b6:805:ae::22) by CH3PR01MB8489.prod.exchangelabs.com (2603:10b6:610:1a3::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6977.19; Thu, 9 Nov 2023 17:53:12 +0000 Received: from SN6PR01MB4240.prod.exchangelabs.com ([fe80::5669:ba60:a9d7:6ab0]) by SN6PR01MB4240.prod.exchangelabs.com ([fe80::5669:ba60:a9d7:6ab0%4]) with mapi id 15.20.6954.028; Thu, 9 Nov 2023 17:53:12 +0000 From: Di Zhao OS To: Richard Biener CC: "gcc-patches@gcc.gnu.org" Subject: RE: [PATCH v4] [tree-optimization/110279] Consider FMA in get_reassociation_width Thread-Topic: [PATCH v4] [tree-optimization/110279] Consider FMA in get_reassociation_width Thread-Index: AdnnBSPtK+NgbkElQ86FLpG1NcmCuQRMvhQAAHJVX2AEf9pAgAEvAawg Date: Thu, 9 Nov 2023 17:53:12 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: zh-CN X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: MSIP_Label_5b82cb1d-c2e0-4643-920a-bbe7b2d7cc47_ActionId=513f2fbc-cbc0-4dbd-9766-bfa5c337f6ba;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-11-06T14:23:58Z;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_|CH3PR01MB8489:EE_ x-ms-office365-filtering-correlation-id: 6620a248-ce2a-427b-b92c-08dbe14cbe32 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Tvj1Z6Gp1qP64SoE9wTOWxfsJc/skjTxelmis7mESTVS5Yx93jAm8dsPnKaMw9djOlZBQI+tvfQ5SRvqY4dhvgjd3K3zcUw58ka1dtMOXSG6LusUnTM4CP/UX689/19cw3vp4IzsoyuDESva2zclqNYenyt2NSbusGc1c+Qtlk4F8mcBi4OVWPyAcwjrXweAnHxC01AlZn3ybVI9YLhtrJKI5RElHrcfTvzymw1F/P6FNlGFQOJ2vD6jvkKO6PXf4UQM+bZJo4hV01+25OIXRUBOSPjAGhPDhyRjPLjIFkWcN33EbZdE0L+Ia+UHOSktwD8WXOrGdSfQj21OfQ28CUcEHQ/W/EUdrFbNWS0hlD+DvomjkhbLXxCoyVxFQYi+G3s0BlLlVo+Vv0cTMA94rdZbECxse+Mn6KPWpVM65u4kmWwrcMhPdKfFDAIEDcPRkKSkRp4f8J1r6kviIsedXUBxwH581AsPByRkopnmsLiZrQw6c8oMdmvVrXfYGj9AcCrTM8b9AtSDstPqGEUrDwXoFxaZsF22dyGLRO+uKwVvNpiV65GT5uBGImihGlhnbtBqYGmlgO89DMbwhsvtaX1CxPzqMi9YL4fnhcIsV+A= 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)(376002)(346002)(136003)(366004)(396003)(230922051799003)(64100799003)(451199024)(186009)(1800799009)(7696005)(6506007)(83380400001)(4326008)(8936002)(8676002)(9686003)(966005)(55016003)(66574015)(53546011)(52536014)(26005)(76116006)(84970400001)(478600001)(64756008)(316002)(6916009)(66446008)(66946007)(66556008)(66476007)(71200400001)(5660300002)(38100700002)(41300700001)(122000001)(99936003)(2906002)(30864003)(38070700009)(33656002)(86362001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UDlLa0t3VlhjT0RkZjdPZzcxYUZNNTczNXNJV2R1eGVaM0ZjMDRxelNmU2du?= =?utf-8?B?Q05uZ2p2NU1xVmtLVEN2SjN2TzIzeDNkOFB6ajNJS0pTSTlxUUxZamJTNktV?= =?utf-8?B?MG9mdVR4dnhVM2NLV1F2K0laRmQ4a3Z0T2NaWnR1VUdYdU5vdWNSRHE4VzVB?= =?utf-8?B?U2ZSbGZIak9uazNHK2FRT0lFU3N1V2hHQ0wrR3FaaEdNYTdqQXVkYnlOTDZU?= =?utf-8?B?eWRuRTlzaUE2RUNPeDN0UE44aTFmN2hMVnNsSzBadmJGR09zZFhYWWNLeUpy?= =?utf-8?B?cGp6NnFHUVNiVmRoT3JKWklNUURaZ1RrV3V4WTNya29XcGpORncyVUphU0Rx?= =?utf-8?B?YXN6WE5LUE55V01nRld5YmFJZkc1aVlrSVcra29NanFJaG10QXJ3VENkNXFK?= =?utf-8?B?aGpUVnBLaWtVMEt6RUdkUWVlVmUvU0Z6ajFDUmdiYi92RTd6aFFjakYzQXgr?= =?utf-8?B?NnhtK050SS9BWmN4VnkzaUc2b2tPVXFvL1lQZ3I0QmFoc01hbDRLNzNmYjg4?= =?utf-8?B?dFVNdEQ2MkJFWUJpQVhSMXVUYkQvQnRnek9xK2Z2TlhpalFWc1BIMmgvVlNQ?= =?utf-8?B?RmNZVFQzRFRBcHF1ekU3czlHdkVBYzFGV1F6VnFzbjQxWUxpNVB1U2VEODlm?= =?utf-8?B?NTVjTW1MckFKQ2YzczJmNUQwc3Y3bE5JT1VTVHNtcDY1a1RjVHZ3ZVd6Z0ll?= =?utf-8?B?VDNqR1hTVjFHeFUwenlyZktqSzZuTGcxQUNuNU9ENElGMGhXbWlwSDBVN3F1?= =?utf-8?B?ZW43VlNmNnBKaWVGUnpmMXVCcE5vOGZoMUFjclRFdjk0a2NqK0hFYnNGWUtv?= =?utf-8?B?MkRmczYwS0dCVkxxTTEyeXVrdkFyTUp5T1FhSG1mTDNHbjVMM3JuRVRndWlq?= =?utf-8?B?QXVzTmFTeXBwVDZMVVBCVk44a1pmVkZ6M0tDNlFkV2VWckp4cnZET28zN0pn?= =?utf-8?B?Qmhxd1BjRGVEVzVra085aGZHaEtUUDdiVlB2MExlNTcwMnBpR3hIRXNPVUxh?= =?utf-8?B?UmNyV1c2d1dYQUFpUElCK1VROE5jbnRoZmZMRGxsNTEySlZLRCt3NUgwNVdm?= =?utf-8?B?aGhBcXhERlR3MkgwazJoazExeTZrZjhMMTVKb3dCb0JoUzRlbjVycDVxQ3Rw?= =?utf-8?B?VDl0V1lxUld1MUJJaHlRMndlQVdZc0EyckdnMGlqbE0veTlucUZVODZBdDhC?= =?utf-8?B?QytleGY4VGIvQ0kvam1VSWwvR0RVZTI1M0JwcEhkaUx4WksyWDRMeUtSb0dK?= =?utf-8?B?bFVOMnhJK0tneVNiTjRmRUlIZzVrc3lUaitLajNXTmxMejNLa09WKzFnMyti?= =?utf-8?B?SlhGeWE2T1Q5VHFGdytVRGFkaE1MWGdVT3VnM3dNT21xOWJHOEZ1VjdaMXFB?= =?utf-8?B?RDBsYlJuNkllckNFeVlVL25ZV2pHNVpRSEpZOXJCWW16VEVrWVpBQ2FJdUV1?= =?utf-8?B?T01QWmIyM0xMdTBkOUdKVzNpNjFzbGhYekVmN3k0Szc3V1lPQ20wRUhaZmgx?= =?utf-8?B?bm5vZ3Jndi9pcmNpc3JqajJra05LeUhNM2RUSTRJenM0OU9QckVMSmwvV2Zh?= =?utf-8?B?YmtaVnlxY21DVnFBTlRRa2djRCszb3RuU1kvVFliam8wQzJtUnFnT3lvZklB?= =?utf-8?B?VDBJakhQUDU1eHJ4bHNSRW15Z1JMdStJc0paQXVOMi9FSGVvZktZQUNseWVm?= =?utf-8?B?NnpaYm8ybmZlblIvWDh4WHRkaEI2SnNORng4Z1NUeklNQWhXK3lJalBmVTIy?= =?utf-8?B?Q1pKMUtjejd0UnFzNlVFZlFOV28wTWtEN1JkNHRCTHA1UVpUbzdydnJFL1lp?= =?utf-8?B?cjhqOVJtNUJRSTJuSXNvK21HQmNKeEl3d2x3SVUyQllneWJ4Ry9XOUZWZjds?= =?utf-8?B?VzJZV2hHSG9sRHBYRjM4SGFncTZEZDdYb1dvSXdtemhtazZOWTlrWnBlcWJ1?= =?utf-8?B?cVBJa0U5QUROV0JROEljdTNYNkNuM1ZVdDZHTU41TDVZUHQzclc0V1oyYXdC?= =?utf-8?B?dVBWUEhtRUtFT0syYzE4a0g5QnJ0Rk5iODNqMHVBeGlQUEYxUXI3WDlqajB4?= =?utf-8?B?NDFBQlBKWWJ2OE9XbDI5dGcwN3FhaW5iYmF0TUxuN0xBbHk4b0tnVzFjaXN0?= =?utf-8?B?Y0ozL2hna0NFYVAxSFF4cHF3YzFvNWY3WVpLSWRxR21XdldQbFlVWGVsaEV3?= =?utf-8?B?aUE9PQ==?= Content-Type: multipart/mixed; boundary="_002_SN6PR01MB424014CD57AEE913E6067F8DE8AFASN6PR01MB4240prod_" 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: 6620a248-ce2a-427b-b92c-08dbe14cbe32 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Nov 2023 17:53:12.7415 (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: ECVKn2D45p1sv42DS/1GA+B2fm3wecHpeyotNFre282KruexkxDHq4RYtL5u3/1QB46xsfDKONA/Ih0HWUJGGq9tkrchW0JLfKOcwv/8EEozgen3M/FFsJwtSg1g9akE X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR01MB8489 X-Spam-Status: No, score=-2.9 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,T_SCC_BODY_TEXT_LINE 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: --_002_SN6PR01MB424014CD57AEE913E6067F8DE8AFASN6PR01MB4240prod_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBSaWNoYXJkIEJpZW5lciA8cmlj aGFyZC5ndWVudGhlckBnbWFpbC5jb20+DQo+IFNlbnQ6IFR1ZXNkYXksIE9jdG9iZXIgMzEsIDIw MjMgOTo0OCBQTQ0KPiBUbzogRGkgWmhhbyBPUyA8ZGl6aGFvQG9zLmFtcGVyZWNvbXB1dGluZy5j b20+DQo+IENjOiBnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZw0KPiBTdWJqZWN0OiBSZTogW1BBVENI IHY0XSBbdHJlZS1vcHRpbWl6YXRpb24vMTEwMjc5XSBDb25zaWRlciBGTUEgaW4NCj4gZ2V0X3Jl YXNzb2NpYXRpb25fd2lkdGgNCj4gDQo+IE9uIFN1biwgT2N0IDgsIDIwMjMgYXQgNjo0MOKAr1BN IERpIFpoYW8gT1MgPGRpemhhb0Bvcy5hbXBlcmVjb21wdXRpbmcuY29tPg0KPiB3cm90ZToNCj4g Pg0KPiA+IEF0dGFjaGVkIGlzIGEgbmV3IHZlcnNpb24gb2YgdGhlIHBhdGNoLg0KPiA+DQo+ID4g PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogUmljaGFyZCBCaWVuZXIg PHJpY2hhcmQuZ3VlbnRoZXJAZ21haWwuY29tPg0KPiA+ID4gU2VudDogRnJpZGF5LCBPY3RvYmVy IDYsIDIwMjMgNTozMyBQTQ0KPiA+ID4gVG86IERpIFpoYW8gT1MgPGRpemhhb0Bvcy5hbXBlcmVj b21wdXRpbmcuY29tPg0KPiA+ID4gQ2M6IGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnDQo+ID4gPiBT dWJqZWN0OiBSZTogW1BBVENIIHY0XSBbdHJlZS1vcHRpbWl6YXRpb24vMTEwMjc5XSBDb25zaWRl ciBGTUEgaW4NCj4gPiA+IGdldF9yZWFzc29jaWF0aW9uX3dpZHRoDQo+ID4gPg0KPiA+ID4gT24g VGh1LCBTZXAgMTQsIDIwMjMgYXQgMjo0M+KAr1BNIERpIFpoYW8gT1MNCj4gPiA+IDxkaXpoYW9A b3MuYW1wZXJlY29tcHV0aW5nLmNvbT4gd3JvdGU6DQo+ID4gPiA+DQo+ID4gPiA+IFRoaXMgaXMg YSBuZXcgdmVyc2lvbiBvZiB0aGUgcGF0Y2ggb24gIm5lc3RlZCBGTUEiLg0KPiA+ID4gPiBTb3Jy eSBmb3IgdXBkYXRpbmcgdGhpcyBhZnRlciBzbyBsb25nLCBJJ3ZlIGJlZW4gc3R1ZHlpbmcgYW5k DQo+ID4gPiA+IHdyaXRpbmcgbWljcm8gY2FzZXMgdG8gc29ydCBvdXQgdGhlIGNhdXNlIG9mIHRo ZSByZWdyZXNzaW9uLg0KPiA+ID4NCj4gPiA+IFNvcnJ5IGZvciB0YWtpbmcgc28gbG9uZyB0byBy ZXBseS4NCj4gPiA+DQo+ID4gPiA+IEZpcnN0LCBmb2xsb3dpbmcgcHJldmlvdXMgZGlzY3Vzc2lv bjoNCj4gPiA+ID4gKGh0dHBzOi8vZ2NjLmdudS5vcmcvcGlwZXJtYWlsL2djYy1wYXRjaGVzLzIw MjMtU2VwdGVtYmVyLzYyOTA4MC5odG1sKQ0KPiA+ID4gPg0KPiA+ID4gPiAxLiBGcm9tIHRlc3Rp bmcgbW9yZSBhbHRlcmVkIGNhc2VzLCBJIGRvbid0IHRoaW5rIHRoZQ0KPiA+ID4gPiBwcm9ibGVt IGlzIHRoYXQgcmVhc3NvY2lhdGlvbiB3b3JrcyBsb2NhbGx5LiBJbiB0aGF0Og0KPiA+ID4gPg0K PiA+ID4gPiAgIDEpIE9uIHRoZSBleGFtcGxlIHdpdGggbXVsdGlwbGljYXRpb25zOg0KPiA+ID4g Pg0KPiA+ID4gPiAgICAgICAgIHRtcDEgPSBhICsgYyAqIGMgKyBkICogZCArIHggKiB5Ow0KPiA+ ID4gPiAgICAgICAgIHRtcDIgPSB4ICogdG1wMTsNCj4gPiA+ID4gICAgICAgICByZXN1bHQgKz0g KGEgKyBjICsgZCArIHRtcDIpOw0KPiA+ID4gPg0KPiA+ID4gPiAgIEdpdmVuICJyZXN1bHQiIHJl d3JpdHRlbiBieSB3aWR0aD0yLCB0aGUgcGVyZm9ybWFuY2UgaXMNCj4gPiA+ID4gICB3b3JzZSBp ZiB3ZSByZXdyaXRlICJ0bXAxIiB3aXRoIHdpZHRoPTIuIEluIGNvbnRyYXN0LCBpZiB3ZQ0KPiA+ ID4gPiAgIHJlbW92ZSB0aGUgbXVsdGlwbGljYXRpb25zIGZyb20gdGhlIGV4YW1wbGUgKGFuZCBt YWtlICJ0bXAxIg0KPiA+ID4gPiAgIG5vdCBzaW5nZSB1c2VkKSwgYW5kIHN0aWxsIHJld3JpdGUg InJlc3VsdCIgYnkgd2lkdGg9MiwgdGhlbg0KPiA+ID4gPiAgIHJld3JpdGluZyAidG1wMSIgd2l0 aCB3aWR0aD0yIGlzIGJldHRlci4gKE1ha2Ugc2Vuc2UgYmVjYXVzZQ0KPiA+ID4gPiAgIHRoZSB0 cmVlJ3MgZGVwdGggYXQgInJlc3VsdCIgaXMgc3RpbGwgc21hbGxlciBpZiB3ZSByZXdyaXRlDQo+ ID4gPiA+ICAgInRtcDEiLikNCj4gPiA+ID4NCj4gPiA+ID4gICAyKSBJIHRyaWVkIHRvIG1vZGlm eSB0aGUgYXNzZW1ibHkgY29kZSBvZiB0aGUgZXhhbXBsZSB3aXRob3V0DQo+ID4gPiA+ICAgRk1B LCBzbyB0aGUgd2lkdGggb2YgInJlc3VsdCIgaXMgNC4gT24gQW1wZXJlMSB0aGVyZSdzIG5vDQo+ ID4gPiA+ICAgb2J2aW91cyBpbXByb3ZlbWVudC4gU28gYWx0aG91Z2ggdGhpcyBpcyBhbiBpbnRl cmVzdGluZw0KPiA+ID4gPiAgIHByb2JsZW0sIGl0IGRvZXNuJ3Qgc2VlbSBsaWtlIHRoZSBjYXVz ZSBvZiB0aGUgcmVncmVzc2lvbi4NCj4gPiA+DQo+ID4gPiBPSywgSSBzZWUuDQo+ID4gPg0KPiA+ ID4gPiAyLiBGcm9tIGFzc2VtYmx5IGNvZGUgb2YgdGhlIGNhc2Ugd2l0aCBGTUEsIG9uZSBwcm9i bGVtIGlzDQo+ID4gPiA+IHRoYXQsIHJld3JpdGluZyAidG1wMSIgdG8gcGFyYWxsZWwgZGlkbid0 IGRlY3JlYXNlIHRoZQ0KPiA+ID4gPiBtaW5pbXVtIENQVSBjeWNsZXMgKHRha2luZyBNVUxUX0VY UFJzIGludG8gYWNjb3VudCksIGJ1dA0KPiA+ID4gPiBpbmNyZWFzZWQgY29kZSBzaXplLCBzbyB0 aGUgb3ZlcmhlYWQgaXMgaW5jcmVhc2VkLg0KPiA+ID4gPg0KPiA+ID4gPiAgICBhKSBXaGVuICJ0 bXAxIiBpcyBub3QgcmUtd3JpdHRlbiB0byBwYXJhbGxlbDoNCj4gPiA+ID4gICAgICAgICBmbWFk ZCBkMzEsIGQyLCBkMiwgZDMwDQo+ID4gPiA+ICAgICAgICAgZm1hZGQgZDMxLCBkMywgZDMsIGQz MQ0KPiA+ID4gPiAgICAgICAgIGZtYWRkIGQzMSwgZDQsIGQ1LCBkMzEgIC8vInRtcDEiDQo+ID4g PiA+ICAgICAgICAgZm1hZGQgZDMxLCBkMzEsIGQ0LCBkMw0KPiA+ID4gPg0KPiA+ID4gPiAgICBi KSBXaGVuICJ0bXAxIiBpcyByZS13cml0dGVuIHRvIHBhcmFsbGVsOg0KPiA+ID4gPiAgICAgICAg IGZtdWwgIGQzMSwgZDQsIGQ1DQo+ID4gPiA+ICAgICAgICAgZm1hZGQgZDI3LCBkMiwgZDIsIGQz MA0KPiA+ID4gPiAgICAgICAgIGZtYWRkIGQzMSwgZDMsIGQzLCBkMzENCj4gPiA+ID4gICAgICAg ICBmYWRkICBkMzEsIGQzMSwgZDI3ICAgICAvLyJ0bXAxIg0KPiA+ID4gPiAgICAgICAgIGZtYWRk IGQzMSwgZDMxLCBkNCwgZDMNCj4gPiA+ID4NCj4gPiA+ID4gRm9yIHZlcnNpb24gYSksIHRoZXJl IGFyZSAzIGRlcGVuZGVudCBGTUFzIHRvIGNhbGN1bGF0ZSAidG1wMSIuDQo+ID4gPiA+IEZvciB2 ZXJzaW9uIGIpLCB0aGVyZSBhcmUgYWxzbyAzIGRlcGVuZGVudCBpbnN0cnVjdGlvbnMgaW4gdGhl DQo+ID4gPiA+IGxvbmdlciBwYXRoOiB0aGUgMXN0LCAzcmQgYW5kIDR0aC4NCj4gPiA+DQo+ID4g PiBZZXMsIGl0IGRvZXNuJ3QgcmVhbGx5IGNoYW5nZSBhbnl0aGluZy4gIFRoZSBwYXRjaCBoYXMN Cj4gPiA+DQo+ID4gPiArICAvKiBJZiB0aGVyZSdzIGNvZGUgbGlrZSAiYWNjID0gYSAqIGIgKyBj ICogZCArIGFjYyIgaW4gYSB0aWdodCBsb29wLA0KPiBzb21lDQo+ID4gPiArICAgICB1YXJjaHMg Y2FuIGV4ZWN1dGUgcmVzdWx0cyBsaWtlOg0KPiA+ID4gKw0KPiA+ID4gKyAgICAgICBfMSA9IGEg KiBiOw0KPiA+ID4gKyAgICAgICBfMiA9IC5GTUEgKGMsIGQsIF8xKTsNCj4gPiA+ICsgICAgICAg YWNjXzEgPSBhY2NfMCArIF8yOw0KPiA+ID4gKw0KPiA+ID4gKyAgICAgaW4gcGFyYWxsZWwsIHdo aWxlIHR1cm5pbmcgaXQgaW50bw0KPiA+ID4gKw0KPiA+ID4gKyAgICAgICBfMSA9IC5GTUEoYSwg YiwgYWNjXzApOw0KPiA+ID4gKyAgICAgICBhY2NfMSA9IC5GTUEoYywgZCwgXzEpOw0KPiA+ID4g Kw0KPiA+ID4gKyAgICAgaGluZGVycyB0aGF0LCBiZWNhdXNlIHRoZW4gdGhlIGZpcnN0IEZNQSBk ZXBlbmRzIG9uIHRoZSByZXN1bHQNCj4gPiA+IG9mIHByZWNlZGluZw0KPiA+ID4gKyAgICAgaXRl cmF0aW9uLiAgKi8NCj4gPiA+DQo+ID4gPiBJIGNhbid0IHNlZSB3aGF0IGNhbiBiZSBydW4gaW4g cGFyYWxsZWwgZm9yIHRoZSBmaXJzdCBjYXNlLiAgVGhlIC5GTUENCj4gPiA+IGRlcGVuZHMgb24g dGhlIG11bHRpcGxpY2F0aW9uIGEgKiBiLiAgSWZmIHRoZSB1YXJjaCBzb21laG93IGRlY29tcG9z ZXMNCj4gPiA+IC5GTUEgaW50byBtdWx0aXBseSArIGFkZCB0aGVuIHRoZSBjICogZCBtdWx0aXBs eSBjb3VsZCBydW4gaW4gcGFyYWxsZWwNCj4gPiA+IHdpdGggdGhlIGEgKiBiIG11bHRpcGx5IHdo aWNoIF9taWdodF8gYmUgYWJsZSB0byBoaWRlIHNvbWUgb2YgdGhlDQo+ID4gPiBsYXRlbmN5IG9m IHRoZSBmdWxsIC5GTUEuICBMaWtlIG9uIHg4NiBaZW4gRk1BIGhhcyBhIGxhdGVuY3kgb2YgNA0K PiA+ID4gY3ljbGVzIGJ1dCBhIG11bHRpcGx5IG9ubHkgMy4gIEJ1dCBJIG5ldmVyIGdvdCBjb25m aXJtYXRpb24gZnJvbSBhbnkNCj4gPiA+IG9mIHRoZSBDUFUgZGVzaWduZXJzIHRoYXQgLkZNQXMg YXJlIGlzc3VlZCB3aGVuIHRoZSBtdWx0aXBseQ0KPiA+ID4gb3BlcmFuZHMgYXJlIHJlYWR5IGFu ZCB0aGUgYWRkIG9wZXJhbmQgY2FuIGJlIGZvcndhcmRlZC4NCj4gPiA+DQo+ID4gPiBJIGFsc28g d29uZGVyIHdoeSB0aGUgbXVsdGlwbGljYXRpb25zIG9mIHRoZSB0d28tRk1BIHNlcXVlbmNlDQo+ ID4gPiB0aGVuIGNhbm5vdCBiZSBleGVjdXRlZCBhdCB0aGUgc2FtZSB0aW1lPyAgU28gSSBoYXZl IHNvbWUgZG91YnQNCj4gPiA+IG9mIHRoZSB0aGVvcnkgYWJvdmUuDQo+ID4NCj4gPiBUaGUgcGFy YWxsZWwgZXhlY3V0aW9uIGZvciB0aGUgY29kZSBzbmlwcGV0IGFib3ZlIHdhcyB0aGUgb3RoZXIN Cj4gPiBpc3N1ZSAocHJldmlvdXNseSBkaXNjdXNzZWQgaGVyZToNCj4gPiBodHRwczovL2djYy5n bnUub3JnL3BpcGVybWFpbC9nY2MtcGF0Y2hlcy8yMDIzLUF1Z3VzdC82Mjg5NjAuaHRtbCkuDQo+ ID4gU29ycnkgaXQncyBhIGJpdCBjb25mdXNpbmcgdG8gaW5jbHVkZSB0aGF0IGhlcmUsIGJ1dCB0 aGVzZSAyIGZpeGVzDQo+ID4gbmVlZHMgdG8gYmUgY29tYmluZWQgdG8gYXZvaWQgbmV3IHJlZ3Jl c3Npb25zLiBTaW5jZSBjb25zaWRlcmluZw0KPiA+IEZNQSBpbiBnZXRfcmVhc3NvY2lhdGlvbl93 aWR0aCBwcm9kdWNlcyBtb3JlIHJlc3VsdHMgb2Ygd2lkdGg9MSwNCj4gPiBzbyB0aGVyZSB3b3Vs ZCBiZSBtb3JlIGxvb3AgZGVwZW5kaW5nIEZNQSBjaGFpbnMuDQo+ID4NCj4gPiA+IElmZiB0aGlz IHJlYWxseSBpcyB0aGUgcmVhc29uIGZvciB0aGUgc2VxdWVuY2UgdG8gZXhlY3V0ZSB3aXRoIGxv d2VyDQo+ID4gPiBvdmVyYWxsIGxhdGVuY3kgYW5kIHdlIHdhbnQgdG8gYXR0YWNrIHRoaXMgb24g R0lNUExFIHRoZW4gSSB0aGluaw0KPiA+ID4gd2UgbmVlZCBhIHRhcmdldCBob29rIHRlbGxpbmcg dXMgdGhpcyBmYWN0IChJIGFsc28gd29uZGVyIGlmIHN1Y2gNCj4gPiA+IGJlaGF2aW9yIGNhbiBi ZSBtb2RlbGVkIGluIHRoZSBzY2hlZHVsZXIgcGlwZWxpbmUgZGVzY3JpcHRpb24gYXQgYWxsPykN Cj4gPiA+DQo+ID4gPiA+IFNvIGl0IHNlZW1zIHRvIG1lIHRoZSBjdXJyZW50IGdldF9yZWFzc29j aWF0aW9uX3dpZHRoIGFsZ29yaXRobQ0KPiA+ID4gPiBpc24ndCBvcHRpbWFsIGluIHRoZSBwcmVz ZW5jZSBvZiBGTUEuIFNvIEkgbW9kaWZpZWQgdGhlIHBhdGNoIHRvDQo+ID4gPiA+IGltcHJvdmUg Z2V0X3JlYXNzb2NpYXRpb25fd2lkdGgsIHJhdGhlciB0aGFuIGNoZWNrIGZvciBjb2RlDQo+ID4g PiA+IHBhdHRlcm5zLiAoQWx0aG91Z2ggdGhlcmUgY291bGQgYmUgc29tZSBvdGhlciBjb21wbGlj YXRlZA0KPiA+ID4gPiBmYWN0b3JzIHNvIHRoZSByZWdyZXNzaW9uIGlzIG1vcmUgb2J2aW91cyB3 aGVuIHRoZXJlJ3MgIm5lc3RlZA0KPiA+ID4gPiBGTUEiLiBCdXQgd2l0aCB0aGlzIHBhdGNoIHRo YXQgc2hvdWxkIGJlIGF2b2lkZWQgb3IgcmVkdWNlZC4pDQo+ID4gPiA+DQo+ID4gPiA+IFdpdGgg dGhpcyBwYXRjaCA1MDgubmFtZF9yIDEtY29weSBydW4gaGFzIDclIGltcHJvdmVtZW50IG9uDQo+ ID4gPiA+IEFtcGVyZTEsIG9uIEludGVsIFhlb24gdGhlcmUncyBhYm91dCAzJS4gV2hpbGUgSSdt IHN0aWxsDQo+ID4gPiA+IGNvbGxlY3RpbmcgZGF0YSBvbiBvdGhlciBDUFVzLCBJJ2QgbGlrZSB0 byBrbm93IGhvdyBkbyB5b3UNCj4gPiA+ID4gdGhpbmsgb2YgdGhpcy4NCj4gPiA+ID4NCj4gPiA+ ID4gQWJvdXQgY2hhbmdlcyBpbiB0aGUgcGF0Y2g6DQo+ID4gPiA+DQo+ID4gPiA+IDEuIFdoZW4g dGhlIG9wIGxpc3QgZm9ybXMgYSBjb21wbGV0ZSBGTUEgY2hhaW4sIHRyeSB0byBzZWFyY2gNCj4g PiA+ID4gZm9yIGEgc21hbGxlciB3aWR0aCBjb25zaWRlcmluZyB0aGUgYmVuZWZpdCBvZiB1c2lu ZyBGTUEuIFdpdGgNCj4gPiA+ID4gYSBzbWFsbGVyIHdpZHRoLCB0aGUgaW5jcmVtZW50IG9mIGNv ZGUgc2l6ZSBpcyBzbWFsbGVyIHdoZW4NCj4gPiA+ID4gYnJlYWtpbmcgdGhlIGNoYWluLg0KPiA+ ID4NCj4gPiA+IEJ1dCB0aGlzIGlzIGFsbCBoaWdobHkgdGFyZ2V0IHNwZWNpZmljIChjb2RlIHNp emUgZXZlbiBtb3JlIHNvKS4NCj4gPiA+DQo+ID4gPiBIb3cgSSB1bmRlcnN0YW5kIHlvdXIgYXBw cm9hY2ggdG8gZml4aW5nIHRoZSBpc3N1ZSBsZWFkcyBtZSB0bw0KPiA+ID4gdGhlIHN1Z2dlc3Rp b24gdG8gcHJpb3JpdGl6ZSBwYXJhbGxlbCByZXdyaXRpbmcsIHRodXMgYWx0ZXINCj4gcmFua19v cHNfZm9yX2ZtYSwNCj4gPiA+IHRha2luZyB0aGUgcmVhc3NvYyB3aWR0aCBpbnRvIGFjY291bnQg KHRoZSBjb21wdXRlZCB3aWR0aCBzaG91bGQgYmUNCj4gPiA+IHVuY2hhbmdlZCBmcm9tIHJhbmtf b3BzX2Zvcl9mbWEpIGluc3RlYWQgb2YgImZpeGluZyB1cCIgdGhlIHBhcmFsbGVsDQo+ID4gPiBy ZXdyaXRpbmcgb2YgRk1BcyAod2VsbCwgdGhleSBhcmUgbm90IHlldCBmb3JtZWQgb2YgY291cnNl KS4NCj4gPiA+IGdldF9yZWFzc29jaWF0aW9uX3dpZHRoIGhhcyAnZ2V0X3JlcXVpcmVkX2N5Y2xl cycsIHRoZSBhYm92ZSB0aGVvcnkNCj4gPiA+IGNvdWxkIGJlIHZlcmlmaWVkIHdpdGggYSB2ZXJ5 IHNpbXBsZSB0b3kgcGlwZWxpbmUgbW9kZWwuICBXZSdkIGhhdmUNCj4gPiA+IHRvIGFzayB0aGUg dGFyZ2V0IGZvciB0aGUgcmVhc3NvYyB3aWR0aCBmb3IgTVVMVF9FWFBScyBhcyB3ZWxsIChvciBt YXliZQ0KPiA+ID4gZXZlbiBGTUFfRVhQUnMpLg0KPiA+ID4NCj4gPiA+IFRha2luZyB0aGUgd2lk dGggb2YgRk1BcyBpbnRvIGFjY291bnQgd2hlbiBjb21wdXRpbmcgdGhlIHJlYXNzb2Mgd2lkdGgN Cj4gPiA+IG1pZ2h0IGJlIGFub3RoZXIgd2F5IHRvIGF0dGFjayB0aGlzLg0KPiA+DQo+ID4gUHJl dmlvdXNseSBJIHRyaWVkIHRvIHNvbHZlIHRoaXMgZ2VuZXJhbGx5LCBvbiB0aGUgYXNzdW1wdGlv biB0aGF0DQo+ID4gRk1BIChzbWFsbGVyIGNvZGUgc2l6ZSkgaXMgcHJlZmVycmVkLiBOb3cgSSBh Z3JlZSBpdCdzIGRpZmZpY3VsdA0KPiA+IHNpbmNlOiAxKSBBcyB5b3UgbWVudGlvbmVkLCB0aGUg bGF0ZW5jeSBvZiBGTUEsIEZNVUwgYW5kIEZBREQgY2FuDQo+ID4gYmUgZGlmZmVyZW50LiAyKSBG cm9tIG15IHRlc3QgcmVzdWx0IG9uIGRpZmZlcmVudCBtYWNoaW5lcyB3ZQ0KPiA+IGhhdmUsIGl0 IHNlZW1zIHNpbXBseSBhZGRpbmcgdGhlIGN5Y2xlcyB0b2dldGhlciBpcyBub3QgYSBnb29kIHdh eQ0KPiA+IHRvIGVzdGltYXRlIHRoZSBsYXRlbmN5IG9mIGNvbnNlY3V0aXZlIEZNQS4NCj4gPg0K PiA+IEkgdGhpbmsgYW4gZWFzaWVyIHdheSB0byBmaXggdGhpcyBpcyB0byBhZGQgYSBwYXJhbWV0 ZXIgdG8gc3VnZ2VzdA0KPiA+IHRoZSBsZW5ndGggb2YgY29tcGxldGUgRk1BIGNoYWluIHRvIGtl ZXAuIChJdCBjYW4gYmUgc2V0IGJ5IHRhcmdldA0KPiA+IHNwZWNpZmljIHR1bmluZyB0aGVuLikg QW5kIHdlIGNhbiBicmVhayBsb25nZXIgRk1BIGNoYWlucyBmb3INCj4gPiBiZXR0ZXIgcGFyYWxs ZWxpc20uIEF0dGFjaGVkIGlzIHRoZSBuZXcgaW1wbGVtZW50YXRpb24uIFdpdGgNCj4gPiBtYXgt Zm1hLWNoYWluLWxlbj04LCB0aGVyZSdzIGFib3V0IDclIGltcHJvdmVtZW50IGluIHNwZWMyMDE3 DQo+ID4gNTA4Lm5hbWRfciBvbiBhbXBlcmUxLCBhbmQgdGhlIG92ZXJhbGwgaW1wcm92ZW1lbnQg b24gZnByYXRlIGlzDQo+ID4gYWJvdXQgMSUuDQo+ID4NCj4gPiBTaW5jZSB0aGVyZSdzIGNvZGUg aW4gcmFua19vcHNfZm9yX2ZtYSB0byBpZGVudGlmeSBNVUxUX0VYUFJzIGZyb20NCj4gPiBvdGhl cnMsIEkgbGVmdCBpdCBiZWZvcmUgZ2V0X3JlYXNzb2NpYXRpb25fd2lkdGggc28gdGhlIG51bWJl ciBvZg0KPiA+IE1VTFRfRVhQUnMgY2FuIGJlIHVzZWQuDQo+IA0KPiBTb3JyeSBhZ2FpbiBmb3Ig dGhlIGRlbGF5IGluIHJlcGx5aW5nLg0KPiANCj4gKyAgLyogQ2hlY2sgaWYga2VlcGluZyBjb21w bGV0ZSBGTUEgY2hhaW5zIGlzIHByZWZlcnJlZC4gICovDQo+ICsgIGlmICh3aWR0aCA+IDEgJiYg bXVsdF9udW0gPj0gMiAmJiBwYXJhbV9tYXhfZm1hX2NoYWluX2xlbikNCj4gKyAgICB7DQo+ICsg ICAgICAvKiBudW1fZm1hX2NoYWluICsgKG51bV9mbWFfY2hhaW4gLSAxKSA+PSBudW1fcGx1cyAu ICAqLw0KPiArICAgICAgaW50IG51bV9vdGhlcnMgPSBvcHNfbnVtIC0gbXVsdF9udW07DQo+ICsg ICAgICBpbnQgbnVtX2ZtYV9jaGFpbiA9IENFSUwgKG51bV9vdGhlcnMgKyAxLCAyKTsNCj4gKw0K PiArICAgICAgaWYgKG51bV9mbWFfY2hhaW4gPCB3aWR0aA0KPiArICAgICAgICAgJiYgQ0VJTCAo bXVsdF9udW0sIG51bV9mbWFfY2hhaW4pIDw9IHBhcmFtX21heF9mbWFfY2hhaW5fbGVuKQ0KPiAr ICAgICAgIHdpZHRoID0gbnVtX2ZtYV9jaGFpbjsNCj4gKyAgICB9DQo+IA0KPiBzbyBoZXJlICdt dWx0X251bScgc2VydmVzIGFzIGEgaGV1cmlzdGljYWwgdmFsdWUgaG93IG1hbnkNCj4gRk1BcyB3 ZSBjb3VsZCBidWlsZC4gIElmIHRoYXQgd2VyZSBjbG9zZSB0byBvcHNfbnVtIC0gMSB0aGVuDQo+ IHdlJ2QgaGF2ZSBhIGNoYWluIG9mIEZNQXMuICBOb3Qgc3VyZSBob3cgeW91IGdldCBhdA0KPiBu dW1fb3RoZXJzIC8gMiBoZXJlLiAgTWF5YmUgd2UgbmVlZCB0byBlbGFib3JhdGUgb24gd2hhdCBh bg0KPiBGTUEgY2hhaW4gaXM/ICBJIHRob3VnaHQgaXQgaXMgRk1BIChGTUEgKEZNQSAoLi4uLCBi LCBjKSwgZCwgZSksIGYsIGcpDQo+IHdoZXJlIGVhY2ggKGIsYykgcGFpciBpcyByZWFsbHkganVz dCBvbmUgb3BlcmFuZCBpbiB0aGUgb3BzIGFycmF5LA0KPiBvbmUgb2YgdGhlICdtdWx0J3MuICBU aHVzIGEgRk1BIGNoYWluIGlzIF9ub3RfDQo+IEZNQSAoYSwgYiwgYykgKyBGTUEgKGQsIGUsIGYp ICsgRk1BICguLi4pICsgLi4uLCByaWdodD8NCg0KVGhlICJGTUEgY2hhaW4iIGhlcmUgcmVmZXJz IHRvIGNvbnNlY3V0aXZlIEZNQXMsIGVhY2ggdGFraW5nIA0KVGhlIHByZXZpb3VzIG9uZSdzIHJl c3VsdCBhcyB0aGUgdGhpcmQgb3BlcmF0b3IsIGkuZS4gDQouLi4gRk1BKGUsIGYsIEZNQShjLCBk LCBGTUEgKGEsIGIsIHIpKSkuLi4gLiBTbyBvcmlnaW5hbCBvcA0KbGlzdCBsb29rcyBsaWtlICJy ICsgYSAqIGIgKyBjICogZCArIGUgKiBmICsgLi4uIi4gVGhlc2UgRk1Bcw0Kd2lsbCBlbmQgdXAg dXNpbmcgdGhlIHNhbWUgYWNjdW11bGF0ZSByZWdpc3Rlci4NCg0KV2hlbiBudW1fb3RoZXJzPTIg b3IgMywgdGhlcmUgY2FuIGJlIDIgY29tcGxldGUgY2hhaW5zLCBlLmcuDQoJRk1BIChkLCBlLCBG TUEgKGEsIGIsIGMpKSArIEZNQSAoZiwgZywgaCkNCm9yDQoJRk1BIChkLCBlLCBGTUEgKGEsIGIs IGMpKSArIEZNQSAoZiwgZywgaCkgKyBpIC4NCkFuZCBzbyBvbiwgdGhhdCdzIHdoZXJlIHRoZSAi Q0VJTCAobnVtX290aGVycyArIDEsIDIpIiBjb21lcyBmcm9tLg0KDQo+IA0KPiBGb3JtaW5nIGFu IEZNQSBjaGFpbiBlZmZlY3RpdmVseSByZWR1Y2VzIHRoZSByZWFzc29jaWF0aW9uIHdpZHRoDQo+ IG9mIHRoZSBwYXJ0aWNpcGF0aW5nIG11bHRpcGxpZXMuICBJZiB3ZSB3ZXJlIG5vdCB0byBmb3Jt IEZNQXMgYWxsDQo+IHRoZSBtdWx0aXBsaWVzIGNvdWxkIGV4ZWN1dGUgaW4gcGFyYWxsZWwuDQo+ IA0KPiBTbyB3aGF0IGRvZXMgdGhlIGFib3ZlIGRvLCBpbiB0ZXJtcyBvZiBhZGp1c3RpbmcgdGhl IHJlYXNzb2NpYXRpb24NCj4gd2lkdGggZm9yIHRoZSBfYWRkc18sIGFuZCB3aGF0J3MgdGhlIHJp cHBsZS1kb3duIGVmZmVjdCBvbiBsYXRlcg0KPiBGTUEgZm9ybWluZz8NCj4gDQoNClRoZSBhYm92 ZSBjb2RlIGNhbGN1bGF0ZXMgdGhlIG51bWJlciBvZiBzdWNoIEZNQSBjaGFpbnMgaW4gdGhlIG9w DQpsaXN0LiBBbmQgaWYgdGhlIGxlbmd0aCBvZiBlYWNoIGNoYWluIGRvZXNuJ3QgZXhjZWVkDQpw YXJhbV9tYXhfZm1hX2NoYWluX2xlbiwgdGhlbiB3aWR0aCBpcyBzZXQgdG8gdGhlIG51bWJlciBv ZiBjaGFpbnMsDQpzbyB3ZSB3b24ndCBicmVhayB0aGVtIChiZWNhdXNlIHJld3JpdGVfZXhwcl90 cmVlX3BhcmFsbGVsIGhhbmRsZXMNCnRoaXMgd2VsbCkuDQoNCj4gVGhlIGNoYW5nZSBzdGlsbCBm ZWVscyBsaWtlIHdoYWNrLWEtbW9sZSBwbGF5aW5nIHJhdGhlciB0aGFuIHVuZGVyc3RhbmRpbmcN Cj4gdGhlIGZ1bmRhbWVudGFsIGlzc3VlIG9uIHRoZSB0YXJnZXRzLg0KDQpJIHRoaW5rIHRoZSBj b21wbGV4aXR5IGlzIGluIGhvdyB0aGUgaW5zdHJ1Y3Rpb25zIGFyZSBwaXBlZC4NClNvbWUgQXJt IENQVXMgc3VjaCBhcyBOZW92ZXJzZSBWMiBzdXBwb3J0cyAibGF0ZS1mb3J3YXJkaW5nIjoNCiJG UCBtdWx0aXBseS1hY2N1bXVsYXRlIHBpcGVsaW5lcyBzdXBwb3J0IGxhdGUtZm9yd2FyZGluZyBv Zg0KYWNjdW11bGF0ZSBvcGVyYW5kcyBmcm9tIHNpbWlsYXIgzrxPUHMsIGFsbG93aW5nIGEgdHlw aWNhbA0Kc2VxdWVuY2Ugb2YgbXVsdGlwbHktYWNjdW11bGF0ZSDOvE9QcyB0byBpc3N1ZSBvbmUg ZXZlcnkgTg0KY3ljbGVzIi4gKCJOIiBpcyBzbWFsbGVyIHRoYW4gdGhlIGxhdGVuY3kgb2YgYSBz aW5nbGUgRk1BDQppbnN0cnVjdGlvbi4pIFNvIGtlZXBpbmcgc3VjaCBGTUEgY2hhaW5zIGNhbiB1 dGlsaXplIHN1Y2gNCmZlYXR1cmUgYW5kIHVzZXMgbGVzcyBGUCB1bml0cy4gSSBndWVzcyB0aGUg Y2FzZSBpcyBzaW1pbGFyIG9uDQpzb21lIGxhdGUgWDg2IENQVXMuDQoNCklmIHdlIHRyeSB0byBj b21wdXRlIHRoZSBtaW5pbXVtIGNpcmNsZXMgb2YgZWFjaCBvcHRpb24sIEkgdGhpbmsNCmF0IGxl YXN0IHdlJ2xsIG5lZWQgdG8ga25vdyB3aGV0aGVyIHRoZSB0YXJnZXQgaGFzIHNpbWlsYXINCmZl YXR1cmUsIGFuZCB0aGUgbGF0ZW5jeSBvZiBlYWNoIHVvcC4gV2hpbGUgdXNpbmcgYW4NCmV4cGVy aWVudGlhbCBsZW5ndGggb2YgYmVuZWZpY2lhbCBGTUEgY2hhaW4gY291bGQgYmUgYSBzaG9ydGN1 dC4NCihNYXliZSBhbGxvd2luZyBkaWZmZXJlbnQgbGVuZ3RocyBmb3IgZGlmZmVyZW50IGRhdGEg d2lkdGhzIGlzDQpiZXR0ZXIuKQ0KDQo+IA0KPiArICAvKiBJZiB0aGVyZSdzIGxvb3AgZGVwZW5k ZW50IEZNQSByZXN1bHQsIHJldHVybiB3aWR0aD0yIHRvIGF2b2lkIGl0LiAgVGhpcw0KPiBpcw0K PiArICAgICBiZXR0ZXIgdGhhbiBza2lwcGluZyB0aGVzZSBGTUEgY2FuZGlkYXRlcyBpbiB3aWRl bmluZ19tdWwuICAqLw0KPiANCj4gYmV0dGVyIHRoYW4gc2tpcHBpbmcsIGJ1dCB5b3UgZG9uJ3Qg dG91Y2ggaXQgdGhlcmU/ICBJIHN1cHBvc2Ugd2lkdGggPT0gMg0KPiB3aWxsIGJ5cGFzcyB0aGUg c2tpcHBpbmcsIHJpZ2h0PyAgVGhpcyBoZXVyaXN0aWMgb25seSBjb21lcyBpbiB3aGVuIHRoZSBh Ym92ZQ0KPiBjaGFuZ2UgbWFkZSB3aWR0aCA9PSAxLCBzaW5jZSBvdGhlcndpc2Ugd2UgaGF2ZSBh biBlYXJsaWVyDQo+IA0KPiAgIGlmICh3aWR0aCA9PSAxKQ0KPiAgICAgcmV0dXJuIHdpZHRoOw0K PiANCj4gd2hpY2ggYWxzIGd1YXJhbnRlZXMgd2lkdGggPT0gMiB3YXMgYWxsb3dlZCBieSB0aGUg aG9vay9wYXJhbSwgcmlnaHQ/DQoNClllcywgdGhhdCdzIHJpZ2h0Lg0KDQo+IA0KPiArICBpZiAo d2lkdGggPT0gMSAmJiBtdWx0X251bQ0KPiArICAgICAgJiYgbWF5YmVfbGUgKHRyZWVfdG9fcG9s eV9pbnQ2NCAoVFlQRV9TSVpFIChUUkVFX1RZUEUgKGxocykpKSwNCj4gKyAgICAgICAgICAgICAg ICAgIHBhcmFtX2F2b2lkX2ZtYV9tYXhfYml0cykpDQo+ICsgICAgew0KPiArICAgICAgLyogTG9v ayBmb3IgY3Jvc3MgYmFja2VkZ2UgZGVwZW5kZW5jeToNCj4gKyAgICAgICAxLiBMSFMgaXMgYSBw aGkgYXJndW1lbnQgaW4gdGhlIHNhbWUgYmFzaWMgYmxvY2sgaXQgaXMgZGVmaW5lZC4NCj4gKyAg ICAgICAyLiBBbmQgdGhlIHJlc3VsdCBvZiB0aGUgcGhpIG5vZGUgaXMgdXNlZCBpbiBPUFMuICAq Lw0KPiArICAgICAgYmFzaWNfYmxvY2sgYmIgPSBnaW1wbGVfYmIgKFNTQV9OQU1FX0RFRl9TVE1U IChsaHMpKTsNCj4gKyAgICAgIGdpbXBsZV9zdG10X2l0ZXJhdG9yIGdzaTsNCj4gKyAgICAgIGZv ciAoZ3NpID0gZ3NpX3N0YXJ0X3BoaXMgKGJiKTsgIWdzaV9lbmRfcCAoZ3NpKTsgZ3NpX25leHQg KCZnc2kpKQ0KPiArICAgICAgIHsNCj4gKyAgICAgICAgIGdwaGkgKnBoaSA9IGR5bl9jYXN0PGdw aGkgKj4gKGdzaV9zdG10IChnc2kpKTsNCj4gKyAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7 IGkgPCBnaW1wbGVfcGhpX251bV9hcmdzIChwaGkpOyArK2kpDQo+ICsgICAgICAgICAgIHsNCj4g KyAgICAgICAgICAgICB0cmVlIG9wID0gUEhJX0FSR19ERUYgKHBoaSwgaSk7DQo+ICsgICAgICAg ICAgICAgaWYgKCEob3AgPT0gbGhzICYmIGdpbXBsZV9waGlfYXJnX2VkZ2UgKHBoaSwgaSktPnNy YyA9PSBiYikpDQo+ICsgICAgICAgICAgICAgICBjb250aW51ZTsNCj4gDQo+IEkgdGhpbmsgaXQn cyBlYXNpZXIgdG8gaXRlcmF0ZSBvdmVyIHRoZSBpbW1lZGlhdGUgdXNlcyBvZiBMSFMgbGlrZQ0K PiANCj4gICBGT1JfRUFDSF9JTU1fVVNFX0ZBU1QgKHVzZV9wLCBpdGVyLCBsaHMpDQo+ICAgICAg aWYgKGdwaGkgKnBoaSA9IGR5bl9jYXN0IDxncGhpICo+IChVU0VfU1RNVCAodXNlX3ApKSkNCj4g ICAgICAgIHsNCj4gICAgICAgICAgIGlmIChnaW1wbGVfcGhpX2FyZ19lZGdlIChwaGksIHBoaV9h cmdfaW5kZXhfZnJvbV91c2UNCj4gKHVzZV9wKSktPnNyYyAhPSBiYikNCj4gICAgICAgICAgICAg Y29udGludWU7DQo+IC4uLg0KPiAgICAgICAgfQ0KPiANCj4gb3RoZXJ3aXNlIEkgdGhpbmsgX3Ro aXNfIHBhcnQgb2YgdGhlIHBhdGNoIGxvb2tzIHJlYXNvbmFibGUuDQo+IA0KPiBBcyB5b3Ugc2F5 IGhldXJpc3RpY2FsbHkgdGhleSBtaWdodCBnbyB0b2dldGhlciBidXQgSSB0aGluayB3ZSBzaG91 bGQgc3BsaXQNCj4gdGhlDQo+IHBhdGNoIC0gdGhlIGNyb3NzLWxvb3AgcGFydCBjYW4gcHJvYmFi bHkgc3RhbmQgaW5kZXBlbmRlbnRseS4gIENhbiB5b3UgYWRqdXN0DQo+IGFuZCByZS1wb3N0Pw0K DQpBdHRhY2hlZCBpcyB0aGUgc2VwYXJhdGVkIHBhcnQgZm9yIGNyb3NzLWxvb3AgRk1BLiBUaGFu ayB5b3UgZm9yIHRoZSBjb3JyZWN0aW9uLg0KDQo+IA0KPiBBcyBmb3IgdGhlIGZpcnN0IHBhcnQg SSBzdGlsbCBkb24ndCB1bmRlcnN0YW5kIHZlcnkgd2VsbCBhbmQgYW0gc3RpbGwgaG9waW5nDQo+ IHdlDQo+IGNhbiBnZXQgYXdheSB3aXRob3V0IHlldCBhbm90aGVyIGtub2IgdG8gdHVuZS4NCj4g DQo+IFJpY2hhcmQuDQo+IA0KPiA+ID4NCj4gPiA+ID4gMi4gVG8gYXZvaWQgcmVncmVzc2lvbnMs IGluY2x1ZGVkIHRoZSBvdGhlciBwYXRjaA0KPiA+ID4gPiAoaHR0cHM6Ly9nY2MuZ251Lm9yZy9w aXBlcm1haWwvZ2NjLXBhdGNoZXMvMjAyMy1TZXB0ZW1iZXIvNjI5MjAzLmh0bWwpDQo+ID4gPiA+ IG9uIHRoaXMgdHJhY2tlciBhZ2Fpbi4gVGhpcyBpcyBiZWNhdXNlIG1vcmUgRk1BIHdpbGwgYmUg a2VwdA0KPiA+ID4gPiB3aXRoIDEuLCBzbyB3ZSBuZWVkIHRvIHJ1bGUgb3V0IHRoZSBsb29wIGRl cGVuZGVudA0KPiA+ID4gPiBGTUEgY2hhaW5zIHdoZW4gcGFyYW1fYXZvaWRfZm1hX21heF9iaXRz IGlzIHNldC4NCj4gPiA+DQo+ID4gPiBTb3JyeSBhZ2FpbiBmb3IgdGFraW5nIHNvIGxvbmcgdG8g cmVwbHkuDQo+ID4gPg0KPiA+ID4gSSdsbCBub3RlIHdlIGhhdmUgYW4gb2RkIGNhc2Ugb24geDg2 IFplbjIoPykgYXMgd2VsbCB3aGljaCB3ZSBkb24ndCByZWFsbHkNCj4gPiA+IHVuZGVyc3RhbmQg ZnJvbSBhIENQVSBiZWhhdmlvciBwZXJzcGVjdGl2ZS4NCj4gPiA+DQo+ID4gPiBUaGFua3MsDQo+ ID4gPiBSaWNoYXJkLg0KPiA+ID4NCj4gPiA+ID4gVGhhbmtzLA0KPiA+ID4gPiBEaSBaaGFvDQo+ ID4gPiA+DQo+ID4gPiA+IC0tLS0NCj4gPiA+ID4NCj4gPiA+ID4gICAgICAgICBQUiB0cmVlLW9w dGltaXphdGlvbi8xMTAyNzkNCj4gPiA+ID4NCj4gPiA+ID4gZ2NjL0NoYW5nZUxvZzoNCj4gPiA+ ID4NCj4gPiA+ID4gICAgICAgICAqIHRyZWUtc3NhLXJlYXNzb2MuY2MgKHJhbmtfb3BzX2Zvcl9i ZXR0ZXJfcGFyYWxsZWxpc21fcCk6DQo+ID4gPiA+ICAgICAgICAgTmV3IGZ1bmN0aW9uIHRvIGNo ZWNrIHdoZXRoZXIgcmFua2luZyB0aGUgb3BzIHJlc3VsdHMgaW4NCj4gPiA+ID4gICAgICAgICBi ZXR0ZXIgcGFyYWxsZWxpc20uDQo+ID4gPiA+ICAgICAgICAgKGdldF9yZWFzc29jaWF0aW9uX3dp ZHRoKTogQWRkIG5ldyBwYXJhbWV0ZXJzLiBTZWFyY2ggZm9yDQo+ID4gPiA+ICAgICAgICAgc21h bGxlciB3aWR0aCBjb25zaWRlcmluZyB0aGUgYmVuZWZpdCBvZiBGTUEuDQo+ID4gPiA+ICAgICAg ICAgKHJhbmtfb3BzX2Zvcl9mbWEpOiBDaGFuZ2UgcmV0dXJuIHZhbHVlIHRvIGJlIG51bWJlciBv Zg0KPiA+ID4gPiAgICAgICAgIE1VTFRfRVhQUnMuDQo+ID4gPiA+ICAgICAgICAgKHJlYXNzb2Np YXRlX2JiKTogRm9yIDMgb3BzLCByZWZpbmUgdGhlIGNvbmRpdGlvbiB0byBjYWxsDQo+ID4gPiA+ ICAgICAgICAgc3dhcF9vcHNfZm9yX2JpbmFyeV9zdG10Lg0KPiA+ID4gPg0KPiA+ID4gPiBnY2Mv dGVzdHN1aXRlL0NoYW5nZUxvZzoNCj4gPiA+ID4NCj4gPiA+ID4gICAgICAgICAqIGdjYy5kZy9w cjExMDI3OS5jOiBOZXcgdGVzdC4NCj4gPg0KPiA+IFRoYW5rcywNCj4gPiBEaSBaaGFvDQo+ID4N Cj4gPiAtLS0tDQo+ID4NCj4gPiAgICAgICAgIFBSIHRyZWUtb3B0aW1pemF0aW9uLzExMDI3OQ0K PiA+DQo+ID4gZ2NjL0NoYW5nZUxvZzoNCj4gPg0KPiA+ICAgICAgICAgKiBkb2MvaW52b2tlLnRl eGk6IERlc2NyaXB0aW9uIG9mIHBhcmFtX21heF9mbWFfY2hhaW5fbGVuLg0KPiA+ICAgICAgICAg KiBwYXJhbXMub3B0OiBOZXcgcGFyYW1ldGVyIHBhcmFtX21heF9mbWFfY2hhaW5fbGVuLg0KPiA+ ICAgICAgICAgKiB0cmVlLXNzYS1yZWFzc29jLmNjIChnZXRfcmVhc3NvY2lhdGlvbl93aWR0aCk6 DQo+ID4gICAgICAgICBTdXBwb3J0IHBhcmFtX21heF9mbWFfY2hhaW5fbGVuOyBjaGVjayBmb3Ig bG9vcCBkZXBlbmRlbnQNCj4gPiAgICAgICAgIEZNQXMuDQo+ID4gICAgICAgICAocmFua19vcHNf Zm9yX2ZtYSk6IFJldHVybiB0aGUgbnVtYmVyIG9mIE1VTFRfRVhQUnMuDQo+ID4gICAgICAgICAo cmVhc3NvY2lhdGVfYmIpOiBGb3IgMyBvcHMsIHJlZmluZSB0aGUgY29uZGl0aW9uIHRvIGNhbGwN Cj4gPiAgICAgICAgIHN3YXBfb3BzX2Zvcl9iaW5hcnlfc3RtdC4NCj4gPg0KPiA+IGdjYy90ZXN0 c3VpdGUvQ2hhbmdlTG9nOg0KPiA+DQo+ID4gICAgICAgICAqIGdjYy5kZy9wcjExMDI3OS0xLmM6 IE5ldyB0ZXN0Lg0KPiA+ICAgICAgICAgKiBnY2MuZGcvcHIxMTAyNzktMi5jOiBOZXcgdGVzdC4N Cj4gPiAgICAgICAgICogZ2NjLmRnL3ByMTEwMjc5LTMuYzogTmV3IHRlc3QuDQoNCi0tLQ0KDQog ICAgICAgIFBSIHRyZWUtb3B0aW1pemF0aW9uLzExMDI3OQ0KDQpnY2MvQ2hhbmdlTG9nOg0KDQog ICAgICAgICogdHJlZS1zc2EtcmVhc3NvYy5jYyAoZ2V0X3JlYXNzb2NpYXRpb25fd2lkdGgpOiBj aGVjaw0KICAgICAgICBmb3IgbG9vcCBkZXBlbmRlbnQgRk1Bcy4NCiAgICAgICAgKHJlYXNzb2Np YXRlX2JiKTogRm9yIDMgb3BzLCByZWZpbmUgdGhlIGNvbmRpdGlvbiB0byBjYWxsDQogICAgICAg IHN3YXBfb3BzX2Zvcl9iaW5hcnlfc3RtdC4NCg0KZ2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6DQoN CiAgICAgICAgKiBnY2MuZGcvcHIxMTAyNzktMS5jOiBOZXcgdGVzdC4NCg== --_002_SN6PR01MB424014CD57AEE913E6067F8DE8AFASN6PR01MB4240prod_ Content-Type: application/octet-stream; name="0001-swap-ops-in-reassoc-to-reduce-cross-backedge-FMA.patch" Content-Description: 0001-swap-ops-in-reassoc-to-reduce-cross-backedge-FMA.patch Content-Disposition: attachment; filename="0001-swap-ops-in-reassoc-to-reduce-cross-backedge-FMA.patch"; size=6294; creation-date="Thu, 09 Nov 2023 17:52:46 GMT"; modification-date="Thu, 09 Nov 2023 17:53:11 GMT" Content-Transfer-Encoding: base64 RnJvbSA2NmVjNDg2Yzg1MGU3MWE3NTRkNWUwZjFhNjcwM2VjZjY2ZTdkMDQ4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiRGkgWmhhbyIgPGRpemhhb0Bvcy5hbXBlcmVjb21wdXRpbmcu Y29tPgpEYXRlOiBUaHUsIDkgTm92IDIwMjMgMTU6MDY6MzcgKzA4MDAKU3ViamVjdDogW1BBVENI XSBzd2FwIG9wcyBpbiByZWFzc29jIHRvIHJlZHVjZSBjcm9zcyBiYWNrZWRnZSBGTUEKClByZXZp b3VzbHkgZm9yIG9wcy5sZW5ndGggPj0gMywgd2hlbiBGTUEgaXMgcHJlc2VudCwgd2UgZG9uJ3QK cmFuayB0aGUgb3BlcmFuZHMgc28gdGhhdCBtb3JlIEZNQXMgY2FuIGJlIHByZXNlcnZlZC4gQnV0 IHRoaXMKYnJpbmdzIG1vcmUgRk1BcyB3aXRoIGxvb3AgZGVwZW5kZW5jeSwgd2hpY2ggbGVhZCB0 byB3b3JzZQpwZXJmb3JtYW5jZSBvbiBzb21lIHRhcmdldHMuCgpSYW5rIHRoZSBvcHJhbmRzIChz ZXQgd2lkdGg9Mikgd2hlbjoKMS4gYXZvaWRfZm1hX21heF9iaXRzIGlzIHNldC4KMi4gQW5kIGxv b3AgZGVwZW5kZW50IEZNQSBzZXF1ZW5jZSBpcyBmb3VuZC4KCkluIHRoaXMgd2F5LCB3ZSBkb24n dCBoYXZlIHRvIGRpc2NhcmQgYWxsIHRoZSBGTUEgY2FuZGlkYXRlcwppbiB0aGUgYmFkIHNoYXBl ZCBzZXF1ZW5jZSBpbiB3aWRlbmluZ19tdWwsIGluc3RlYWQgd2UgY2FuIGtlZXAKZmV3ZXIgRk1B cyB3aXRob3V0IGxvb3AgZGVwZW5kZW5jeS4KCldpdGggdGhpcyBwYXRjaCwgdGhlcmUncyBhYm91 dCAyJSBpbXByb3ZlbWVudCBpbiA1MTAucGFyZXN0X3IKMS1jb3B5IHJ1biBvbiBhbXBlcmUxICh3 aXRoICItT2Zhc3QgLW1jcHU9YW1wZXJlMSAtZmx0bwotLXBhcmFtIGF2b2lkLWZtYS1tYXgtYml0 cz01MTIiKS4KLS0tCiBnY2MvdGVzdHN1aXRlL2djYy5kZy9wcjExMDI3OS0xLmMgfCA2NSArKysr KysrKysrKysrKysrKysrKysrKysrKwogZ2NjL3RyZWUtc3NhLXJlYXNzb2MuY2MgICAgICAgICAg IHwgNzcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQogMiBmaWxlcyBjaGFuZ2VkLCAx MzYgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2Mv dGVzdHN1aXRlL2djYy5kZy9wcjExMDI3OS0xLmMKCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2djYy5kZy9wcjExMDI3OS0xLmMgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9wcjExMDI3OS0xLmMK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmYyNWI2YWVjOTY3Ci0tLSAv ZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvcHIxMTAyNzktMS5jCkBAIC0wLDAg KzEsNjUgQEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PZmFz dCAtLXBhcmFtIGF2b2lkLWZtYS1tYXgtYml0cz01MTIgLS1wYXJhbSB0cmVlLXJlYXNzb2Mtd2lk dGg9NCAtZmR1bXAtdHJlZS13aWRlbmluZ19tdWwtZGV0YWlscyIgfSAqLworLyogeyBkZy1hZGRp dGlvbmFsLW9wdGlvbnMgIi1tYXJjaD1hcm12OC4yLWEiIHsgdGFyZ2V0IGFhcmNoNjQtKi0qIH0g fSAqLworCisjZGVmaW5lIExPT1BfQ09VTlQgODAwMDAwMDAwCit0eXBlZGVmIGRvdWJsZSBkYXRh X2U7CisKKy8qIENoZWNrIHRoYXQgRk1BcyB3aXRoIGJhY2tlZGdlIGRlcGVuZGVuY3kgYXJlIGF2 b2lkZWQuIE90aGVyd2lzZSB0aGVyZSB3b24ndAorICAgYmUgRk1BIGdlbmVyYXRlZCB3aXRoICIt LXBhcmFtIGF2b2lkLWZtYS1tYXgtYml0cz01MTIiLiAgICovCisKK2RhdGFfZQorZm9vMSAoZGF0 YV9lIGEsIGRhdGFfZSBiLCBkYXRhX2UgYywgZGF0YV9lIGQpCit7CisgIGRhdGFfZSByZXN1bHQg PSAwOworCisgIGZvciAoaW50IGljID0gMDsgaWMgPCBMT09QX0NPVU5UOyBpYysrKQorICAgIHsK KyAgICAgIHJlc3VsdCArPSAoYSAqIGIgKyBjICogZCk7CisKKyAgICAgIGEgLT0gMC4xOworICAg ICAgYiArPSAwLjk7CisgICAgICBjICo9IDEuMDI7CisgICAgICBkICo9IDAuNjE7CisgICAgfQor CisgIHJldHVybiByZXN1bHQ7Cit9CisKK2RhdGFfZQorZm9vMiAoZGF0YV9lIGEsIGRhdGFfZSBi LCBkYXRhX2UgYywgZGF0YV9lIGQpCit7CisgIGRhdGFfZSByZXN1bHQgPSAwOworCisgIGZvciAo aW50IGljID0gMDsgaWMgPCBMT09QX0NPVU5UOyBpYysrKQorICAgIHsKKyAgICAgIHJlc3VsdCA9 IGEgKiBiICsgcmVzdWx0ICsgYyAqIGQ7CisKKyAgICAgIGEgLT0gMC4xOworICAgICAgYiArPSAw Ljk7CisgICAgICBjICo9IDEuMDI7CisgICAgICBkICo9IDAuNjE7CisgICAgfQorCisgIHJldHVy biByZXN1bHQ7Cit9CisKK2RhdGFfZQorZm9vMyAoZGF0YV9lIGEsIGRhdGFfZSBiLCBkYXRhX2Ug YywgZGF0YV9lIGQpCit7CisgIGRhdGFfZSByZXN1bHQgPSAwOworCisgIGZvciAoaW50IGljID0g MDsgaWMgPCBMT09QX0NPVU5UOyBpYysrKQorICAgIHsKKyAgICAgIHJlc3VsdCA9IHJlc3VsdCAr IGEgKiBiICsgYyAqIGQ7CisKKyAgICAgIGEgLT0gMC4xOworICAgICAgYiArPSAwLjk7CisgICAg ICBjICo9IDEuMDI7CisgICAgICBkICo9IDAuNjE7CisgICAgfQorCisgIHJldHVybiByZXN1bHQ7 Cit9CisKKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiR2VuZXJhdGVkIEZN QSIgMyAid2lkZW5pbmdfbXVsIn0gfSAqLwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm ZiAtLWdpdCBhL2djYy90cmVlLXNzYS1yZWFzc29jLmNjIGIvZ2NjL3RyZWUtc3NhLXJlYXNzb2Mu Y2MKaW5kZXggMjYzMjFhYTRmYzUuLjA3ZmM4ZTJmMWY5IDEwMDY0NAotLS0gYS9nY2MvdHJlZS1z c2EtcmVhc3NvYy5jYworKysgYi9nY2MvdHJlZS1zc2EtcmVhc3NvYy5jYwpAQCAtNTQzMSwxNiAr NTQzMSwxOSBAQCBnZXRfcmVxdWlyZWRfY3ljbGVzIChpbnQgb3BzX251bSwgaW50IGNwdV93aWR0 aCkKIH0KIAogLyogUmV0dXJucyBhbiBvcHRpbWFsIG51bWJlciBvZiByZWdpc3RlcnMgdG8gdXNl IGZvciBjb21wdXRhdGlvbiBvZgotICAgZ2l2ZW4gc3RhdGVtZW50cy4gICovCisgICBnaXZlbiBz dGF0ZW1lbnRzLgorCisgICBMSFMgaXMgdGhlIHJlc3VsdCBzc2EgbmFtZSBvZiBPUFMuICAqLwog CiBzdGF0aWMgaW50Ci1nZXRfcmVhc3NvY2lhdGlvbl93aWR0aCAoaW50IG9wc19udW0sIGVudW0g dHJlZV9jb2RlIG9wYywKLQkJCSBtYWNoaW5lX21vZGUgbW9kZSkKK2dldF9yZWFzc29jaWF0aW9u X3dpZHRoICh2ZWM8b3BlcmFuZF9lbnRyeSAqPiAqb3BzLCB0cmVlIGxocywKKwkJCSBlbnVtIHRy ZWVfY29kZSBvcGMsIG1hY2hpbmVfbW9kZSBtb2RlKQogewogICBpbnQgcGFyYW1fd2lkdGggPSBw YXJhbV90cmVlX3JlYXNzb2Nfd2lkdGg7CiAgIGludCB3aWR0aDsKICAgaW50IHdpZHRoX21pbjsK ICAgaW50IGN5Y2xlc19iZXN0OworICBpbnQgb3BzX251bSA9IG9wcy0+bGVuZ3RoICgpOwogCiAg IGlmIChwYXJhbV93aWR0aCA+IDApCiAgICAgd2lkdGggPSBwYXJhbV93aWR0aDsKQEAgLTU0NzEs NiArNTQ3NCw2MSBAQCBnZXRfcmVhc3NvY2lhdGlvbl93aWR0aCAoaW50IG9wc19udW0sIGVudW0g dHJlZV9jb2RlIG9wYywKIAlicmVhazsKICAgICB9CiAKKyAgLyogSWYgdGhlcmUncyBsb29wIGRl cGVuZGVudCBGTUEgcmVzdWx0LCByZXR1cm4gd2lkdGg9MiB0byBhdm9pZCBpdC4gIFRoaXMgaXMK KyAgICAgYmV0dGVyIHRoYW4gc2tpcHBpbmcgdGhlc2UgRk1BIGNhbmRpZGF0ZXMgaW4gd2lkZW5p bmdfbXVsLiAgKi8KKyAgaWYgKHdpZHRoID09IDEKKyAgICAgICYmIG1heWJlX2xlICh0cmVlX3Rv X3BvbHlfaW50NjQgKFRZUEVfU0laRSAoVFJFRV9UWVBFIChsaHMpKSksCisJCSAgIHBhcmFtX2F2 b2lkX2ZtYV9tYXhfYml0cykpCisgICAgeworICAgICAgLyogTG9vayBmb3IgY3Jvc3MgYmFja2Vk Z2UgZGVwZW5kZW5jeToKKwkxLiBMSFMgaXMgYSBwaGkgYXJndW1lbnQgaW4gdGhlIHNhbWUgYmFz aWMgYmxvY2sgaXQgaXMgZGVmaW5lZC4KKwkyLiBBbmQgdGhlIHJlc3VsdCBvZiB0aGUgcGhpIG5v ZGUgaXMgdXNlZCBpbiBPUFMuICAqLworICAgICAgYmFzaWNfYmxvY2sgYmIgPSBnaW1wbGVfYmIg KFNTQV9OQU1FX0RFRl9TVE1UIChsaHMpKTsKKworICAgICAgdXNlX29wZXJhbmRfcCB1c2VfcDsK KyAgICAgIGltbV91c2VfaXRlcmF0b3IgaXRlcjsKKyAgICAgIEZPUl9FQUNIX0lNTV9VU0VfRkFT VCAodXNlX3AsIGl0ZXIsIGxocykKKwlpZiAoZ3BoaSAqcGhpID0gZHluX2Nhc3Q8Z3BoaSAqPiAo VVNFX1NUTVQgKHVzZV9wKSkpCisJICB7CisJICAgIGlmIChnaW1wbGVfcGhpX2FyZ19lZGdlIChw aGksIHBoaV9hcmdfaW5kZXhfZnJvbV91c2UgKHVzZV9wKSktPnNyYworCQkhPSBiYikKKwkgICAg ICBjb250aW51ZTsKKwkgICAgdHJlZSBwaGlfcmVzdWx0ID0gZ2ltcGxlX3BoaV9yZXN1bHQgKHBo aSk7CisJICAgIG9wZXJhbmRfZW50cnkgKm9lOworCSAgICB1bnNpZ25lZCBpbnQgajsKKwkgICAg Rk9SX0VBQ0hfVkVDX0VMVCAoKm9wcywgaiwgb2UpCisJICAgICAgeworCQlpZiAoVFJFRV9DT0RF IChvZS0+b3ApICE9IFNTQV9OQU1FKQorCQkgIGNvbnRpbnVlOworCisJCS8qIFJlc3VsdCBvZiBw aGkgaXMgb3BlcmFuZCBvZiBQTFVTX0VYUFIuICAqLworCQlpZiAob2UtPm9wID09IHBoaV9yZXN1 bHQpCisJCSAgcmV0dXJuIDI7CisKKwkJLyogQ2hlY2sgaXMgcmVzdWx0IG9mIHBoaSBpcyBvcGVy YW5kIG9mIE1VTFRfRVhQUi4gICovCisJCWdpbXBsZSAqZGVmX3N0bXQgPSBTU0FfTkFNRV9ERUZf U1RNVCAob2UtPm9wKTsKKwkJaWYgKGlzX2dpbXBsZV9hc3NpZ24gKGRlZl9zdG10KQorCQkgICAg JiYgZ2ltcGxlX2Fzc2lnbl9yaHNfY29kZSAoZGVmX3N0bXQpID09IE5FR0FURV9FWFBSKQorCQkg IHsKKwkJICAgIHRyZWUgcmhzID0gZ2ltcGxlX2Fzc2lnbl9yaHMxIChkZWZfc3RtdCk7CisJCSAg ICBpZiAoVFJFRV9DT0RFIChyaHMpID09IFNTQV9OQU1FKQorCQkgICAgICB7CisJCQlpZiAocmhz ID09IHBoaV9yZXN1bHQpCisJCQkgIHJldHVybiAyOworCQkJZGVmX3N0bXQgPSBTU0FfTkFNRV9E RUZfU1RNVCAocmhzKTsKKwkJICAgICAgfQorCQkgIH0KKwkJaWYgKGlzX2dpbXBsZV9hc3NpZ24g KGRlZl9zdG10KQorCQkgICAgJiYgZ2ltcGxlX2Fzc2lnbl9yaHNfY29kZSAoZGVmX3N0bXQpID09 IE1VTFRfRVhQUikKKwkJICB7CisJCSAgICBpZiAoZ2ltcGxlX2Fzc2lnbl9yaHMxIChkZWZfc3Rt dCkgPT0gcGhpX3Jlc3VsdAorCQkJfHwgZ2ltcGxlX2Fzc2lnbl9yaHMyIChkZWZfc3RtdCkgPT0g cGhpX3Jlc3VsdCkKKwkJICAgICAgcmV0dXJuIDI7CisJCSAgfQorCSAgICAgIH0KKwkgIH0KKyAg ICB9CisKICAgcmV0dXJuIHdpZHRoOwogfQogCkBAIC03MDMxLDggKzcwODksOSBAQCByZWFzc29j aWF0ZV9iYiAoYmFzaWNfYmxvY2sgYmIpCiAJCSAgICAgd2l0aCBpbml0aWFsIGxpbmVhcml6YXRp b24uICAqLwogCQkgIGlmICghcmVhc3NvY19pbnNlcnRfcG93aV9wCiAJCSAgICAgICYmIG9wcy5s ZW5ndGggKCkgPiAzCi0JCSAgICAgICYmICh3aWR0aCA9IGdldF9yZWFzc29jaWF0aW9uX3dpZHRo IChvcHNfbnVtLCByaHNfY29kZSwKLQkJCQkJCQkgICBtb2RlKSkgPiAxKQorCQkgICAgICAmJiAo d2lkdGgKKwkJCSAgPSBnZXRfcmVhc3NvY2lhdGlvbl93aWR0aCAoJm9wcywgbGhzLCByaHNfY29k ZSwgbW9kZSkpCisJCQkgICA+IDEpCiAJCSAgICB7CiAJCSAgICAgIGlmIChkdW1wX2ZpbGUgJiYg KGR1bXBfZmxhZ3MgJiBUREZfREVUQUlMUykpCiAJCQlmcHJpbnRmIChkdW1wX2ZpbGUsCkBAIC03 MDQ5LDcgKzcxMDgsMTMgQEAgcmVhc3NvY2lhdGVfYmIgKGJhc2ljX2Jsb2NrIGJiKQogCQkJIHRv IG1ha2Ugc3VyZSB0aGUgb25lcyB0aGF0IGdldCB0aGUgZG91YmxlCiAJCQkgYmluYXJ5IG9wIGFy ZSBjaG9zZW4gd2lzZWx5LiAgKi8KIAkJICAgICAgaW50IGxlbiA9IG9wcy5sZW5ndGggKCk7Ci0J CSAgICAgIGlmIChsZW4gPj0gMyAmJiAhaGFzX2ZtYSkKKwkJICAgICAgaWYgKGxlbiA+PSAzCisJ CQkgICYmICghaGFzX2ZtYQorCQkJICAgICAgLyogd2lkdGggPiAxIG1lYW5zIHJhbmtpbmcgb3Bz IHJlc3VsdHMgaW4gYmV0dGVyCisJCQkJIHBhcmFsbGVsaXNtLiAgKi8KKwkJCSAgICAgIHx8IGdl dF9yZWFzc29jaWF0aW9uX3dpZHRoICgmb3BzLCBsaHMsIHJoc19jb2RlLAorCQkJCQkJCSAgbW9k ZSkKKwkJCQkgICA+IDEpKQogCQkJc3dhcF9vcHNfZm9yX2JpbmFyeV9zdG10IChvcHMsIGxlbiAt IDMpOwogCiAJCSAgICAgIG5ld19saHMgPSByZXdyaXRlX2V4cHJfdHJlZSAoc3RtdCwgcmhzX2Nv ZGUsIDAsIG9wcywKLS0gCjIuMjUuMQoK --_002_SN6PR01MB424014CD57AEE913E6067F8DE8AFASN6PR01MB4240prod_--