From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04on2082.outbound.protection.outlook.com [40.107.8.82]) by sourceware.org (Postfix) with ESMTPS id 29D173850861 for ; Wed, 28 Jun 2023 13:55:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 29D173850861 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=56LtVJxbIqHzwbgrxkKW3SswCWT+eFczvX7xg6BGqgA=; b=4o6x8r2f41qxI4yVaL0R8DQnAkRoDttUPeEQ6X1ZnVGvvQwsPoXXaBDfY05OS/A/v7dUfppezkNghrpLmVn9F9qBlL8QelinLSJBsScAJFykqpXc0NeU79bxKiuAt4/r3YsXJIDAceXAMDyYJxyUnO59DdDJbxdEfi7YHcOR31w= Received: from AS8PR04CA0114.eurprd04.prod.outlook.com (2603:10a6:20b:31e::29) by DB9PR08MB8358.eurprd08.prod.outlook.com (2603:10a6:10:3da::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.24; Wed, 28 Jun 2023 13:55:11 +0000 Received: from AM7EUR03FT015.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:31e:cafe::84) by AS8PR04CA0114.outlook.office365.com (2603:10a6:20b:31e::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6544.19 via Frontend Transport; Wed, 28 Jun 2023 13:55:10 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;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; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM7EUR03FT015.mail.protection.outlook.com (100.127.140.173) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6544.20 via Frontend Transport; Wed, 28 Jun 2023 13:55:10 +0000 Received: ("Tessian outbound c08fa2e31830:v142"); Wed, 28 Jun 2023 13:55:10 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 8a8a57c1c3286063 X-CR-MTA-TID: 64aa7808 Received: from 4e293d926292.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id AD676C00-B63F-4080-974A-F8ECB1BE1E31.1; Wed, 28 Jun 2023 13:55:04 +0000 Received: from EUR02-AM0-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 4e293d926292.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 28 Jun 2023 13:55:04 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZioesIizHQY3qlycBgkB4DYbGz7Pgv1nbEYGSeYWuFTsPcxdYUS/4D89wWu92iqHhzlEfHSeOlV86QM/6fwhAWV1ppfS5rQVs3ILy/1kFiq+udB+KhkqdLV2m7TCix8cRy7FlW+GaDsFl7IP/DlIw8vwXJH1N2K6hWyEZuRZB6Je3Mjbta0VlZmJMzj5uxDWlR55QNU2Z95FKMMeUfCpyIHznBMPTc+FX5ayp7bks/o8pPSplmmRSLOSeCzYvG3gG+kEX1YAOCu0N3LbpGhpmHc6s9N7h/eck8hu2fH/u/Lz7pQIFVGI5bRKgzd2gxb0Hh6VBxvu3U7wHgK0ZJFZZg== 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=56LtVJxbIqHzwbgrxkKW3SswCWT+eFczvX7xg6BGqgA=; b=Y8yLo3B94MHD8XScvvdPImwo3d0WAPnaG8e5EO5n0r92LY8Bv+3E3zMNdKkELvM+T4CvS1oqjzRyOXip27vZ6rCHr6SPYZ1ApLvNNuE0p0RQinhliel6rEfj2+xwIaY/CJ5PFvL5skbzwIGh7Zrf+IAeJTLyhdiZYnIuovoIfReDZ8GjUE6FAi5u3t74pR8u/Ypy68HXRY+rYlNuEdYInYdbGB+K1rJujMxpvwLkl6E/yua4fDd+5f41hDiMiS76U5iaeWrn0Cclc/EkqemyFzAp22PPxjeGDQ6UvRIPAZ8M5gv9/E2roTGYy0gefEg+QvlF9MGN93e03dexud0zJQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=56LtVJxbIqHzwbgrxkKW3SswCWT+eFczvX7xg6BGqgA=; b=4o6x8r2f41qxI4yVaL0R8DQnAkRoDttUPeEQ6X1ZnVGvvQwsPoXXaBDfY05OS/A/v7dUfppezkNghrpLmVn9F9qBlL8QelinLSJBsScAJFykqpXc0NeU79bxKiuAt4/r3YsXJIDAceXAMDyYJxyUnO59DdDJbxdEfi7YHcOR31w= Received: from VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) by AM7PR08MB5398.eurprd08.prod.outlook.com (2603:10a6:20b:103::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.26; Wed, 28 Jun 2023 13:55:02 +0000 Received: from VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::2301:1cde:cfe7:eaf0]) by VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::2301:1cde:cfe7:eaf0%6]) with mapi id 15.20.6521.026; Wed, 28 Jun 2023 13:55:02 +0000 From: Tamar Christina To: Tamar Christina , "gcc-patches@gcc.gnu.org" CC: nd , "rguenther@suse.de" , "jlaw@ventanamicro.com" Subject: RE: [PATCH 9/19] middle-end: refactor vectorizable_comparison to make the main body re-usable. Thread-Topic: [PATCH 9/19] middle-end: refactor vectorizable_comparison to make the main body re-usable. Thread-Index: AQHZqcgiBmb671B54kiuxuhSxS6hkg== Date: Wed, 28 Jun 2023 13:55:02 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: VI1PR08MB5325:EE_|AM7PR08MB5398:EE_|AM7EUR03FT015:EE_|DB9PR08MB8358:EE_ X-MS-Office365-Filtering-Correlation-Id: b063fec9-4a34-4748-34ed-08db77df4a31 x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: PQpqdmGxcCm2JeUYjg47orzkJ+XRWd1NjAEO/++usG/kWnZ4KF5+I3569rbNnZc/gnLlL+6IWoaDRWrkyLdsnhulRk560V3AEfsa2WYJZfKyebBfdLQgvdklG9bRCivW9Ke+9aenZGdxWsDUgM6c66eA+pOG4JRDWTUe/a4vagOaJp8hpJVOT6ZQou+SrWEcwzO2NfvT7GqgQnTWp6fmxhOqHTTR2oI2ZyaaN8CnsjZUKF+NoXmHGYVfCwdosNn7AWRWwlW5Mj4vLtAORqWXL3b73h2WDnzBzvBxMCn3uK+q3kKTarBCp5Fwei5wSTUL8UDrpJ1YdF8rMQcauFOTIc0Sb0nol5WqbEn6OtkonG0hw4fk+fi7ovmFGo7YE4L+UthSD9gjZnnqm1lnkfnHBsNHqeJ6bfBBHtjy7w0Iz/i4rB+5LNHreIW9TPqw7atReZhwBuwZF0zT4cbvSpjseqNYbAARVj52x5jymGGQdhkEV8lOcF6aizqcCIipaRSDtL2N/tTknNo4w9N0OsryWplYIaVvXlHzW3IJrGs9EMmo9eOCh0VV2EDUSW0D2nD9gyrJq/zvY0cMImWfgsQdLb9dWdcIUQ0ktunrsQ1w6VIhZU6Bpfpf4CQLgCWSu4RO X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR08MB5325.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(136003)(376002)(346002)(39860400002)(366004)(396003)(451199021)(4743002)(71200400001)(26005)(7696005)(54906003)(478600001)(110136005)(186003)(9686003)(2906002)(6506007)(83380400001)(5660300002)(52536014)(66446008)(122000001)(33656002)(316002)(55016003)(8676002)(66946007)(41300700001)(38100700002)(4326008)(38070700005)(86362001)(66476007)(66556008)(76116006)(8936002)(64756008)(53546011);DIR:OUT;SFP:1101; Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR08MB5398 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM7EUR03FT015.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: bb575d70-63f9-4e4b-1861-08db77df453a X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9XevRwlamtxe1TUc03u9w8Nps/+lApK9yaCZPN/zKpMV1ev3M9cD6ciymw6E88w4WBTM7pBv5xazq/kkqbBJeoRFA8xdnttKYyOVSV0Njw+/+rNp8Uz04rglIOHxC5ySbwKTePF3UY5Dmf2GscsE7Lw4GlG1h3zPnTALirSIw5gLT2Qw9cyBiEkyRg4hk907tedoRm0MY+mvAIJsjGTFgK4GtUAeJ5U3oRo8Nh6FzYhgJ/xsEk+k8QzQLYvJHYx4YgavW0iZcZ8hFibU0OGuE7StsiVbh1oHtWONqRfLdQWhgVAWkCP3OSb1fbLbJPS6tzcs9idnmGL7lPKGzLVUlleBfwRX10QGvFWCtCu4D5n2xCjzXmlylO5ozRwDEu6l87eRmVfXW8WJkhpZ8yBO2J91Ynjy8vhKaWwDQoXGYZUi2vAFKJCOZJwavDx1uUWXBgzt9gFeBiMJKHhKCZZUo2cIhcnLRBCe2lDNG76AJUiWgDbj1CSuc7Lvggfof71UTzP7cJ4ABjMPho38ExEmseyaueuW3qLVbpJxiPOHYiDdWQaDhERGeESr3bNF/P1d4JBJBG90/IeFBg+05yZ9uG/iRwoENJEMkNXrns3lqxqrLwwdHOxrYwlHAb7cLsGVHB3xdafWgiukV0xZSCt60aVJG7772STckRxVyvBF8MwlPTa/nxliWuEJ2574JheABAi1BI2fv9Q30D6bH6l6N2YPKfZhlcIw/opkxB/8RDbelZA5FbcKII2LpBtv1GbI 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:(13230028)(4636009)(396003)(39860400002)(136003)(376002)(346002)(451199021)(36840700001)(46966006)(40470700004)(5660300002)(52536014)(33656002)(4326008)(70206006)(478600001)(316002)(70586007)(8936002)(8676002)(2906002)(4743002)(40460700003)(110136005)(55016003)(36860700001)(54906003)(41300700001)(82310400005)(186003)(7696005)(40480700001)(336012)(86362001)(26005)(6506007)(53546011)(47076005)(356005)(9686003)(107886003)(81166007)(82740400003)(83380400001);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Jun 2023 13:55:10.8427 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b063fec9-4a34-4748-34ed-08db77df4a31 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: AM7EUR03FT015.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB8358 X-Spam-Status: No, score=-12.2 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,GIT_PATCH_0,KAM_DMARC_NONE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE,UNPARSEABLE_RELAY 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: QWRkaW5nIHByb3BlciBtYWludGFpbmVycy4NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KPiBGcm9tOiBUYW1hciBDaHJpc3RpbmEgPHRhbWFyLmNocmlzdGluYUBhcm0uY29tPg0KPiBT ZW50OiBXZWRuZXNkYXksIEp1bmUgMjgsIDIwMjMgMjo0NiBQTQ0KPiBUbzogZ2NjLXBhdGNoZXNA Z2NjLmdudS5vcmcNCj4gQ2M6IG5kIDxuZEBhcm0uY29tPjsgUmljaGFyZCBFYXJuc2hhdyA8Umlj aGFyZC5FYXJuc2hhd0Bhcm0uY29tPjsNCj4gTWFyY3VzIFNoYXdjcm9mdCA8TWFyY3VzLlNoYXdj cm9mdEBhcm0uY29tPjsgS3lyeWxvIFRrYWNob3YNCj4gPEt5cnlsby5Ua2FjaG92QGFybS5jb20+ OyBSaWNoYXJkIFNhbmRpZm9yZA0KPiA8UmljaGFyZC5TYW5kaWZvcmRAYXJtLmNvbT4NCj4gU3Vi amVjdDogW1BBVENIIDkvMTldQUFyY2g2NCBtaWRkbGUtZW5kOiByZWZhY3RvciB2ZWN0b3JpemFi bGVfY29tcGFyaXNvbg0KPiB0byBtYWtlIHRoZSBtYWluIGJvZHkgcmUtdXNhYmxlLg0KPiANCj4g SGkgQWxsLA0KPiANCj4gVmVjdG9yaXphdGlvbiBvZiBhIGdjb25kIHN0YXJ0cyBvZmYgZXNzZW50 aWFsbHkgdGhlIHNhbWUgYXMgdmVjdG9yaXppbmcgYQ0KPiBjb21wYXJpc29uIHdpdGh0IGhlIG9u bHkgZGlmZmVyZW5jZSBiZWluZyBob3cgdGhlIG9wZXJhbmRzIGFyZSBleHRyYWN0ZWQuDQo+IA0K PiBUaGlzIHJlZmFjdG9ycyB2ZWN0b3JhYmxlX2NvbXBhcmlzb24gc3VjaCB0aGF0IHdlIG5vdyBo YXZlIGEgZ2VuZXJpYw0KPiBmdW5jdGlvbiB0aGF0IGNhbiBiZSB1c2VkIGZyb20gdmVjdG9yaXph YmxlX2Vhcmx5X2JyZWFrLiAgVGhlIHJlZmFjdG9yaW5nDQo+IHNwbGl0cyB0aGUgZ2Fzc2lnbiBj aGVja3MgYW5kIGFjdHVhbCB2YWxpZGF0aW9uL2NvZGVnZW4gb2ZmIHRvIGEgaGVscGVyDQo+IGZ1 bmN0aW9uLg0KPiANCj4gTm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxpdHkgZXhwZWN0ZWQuDQo+IA0K PiBCb290c3RyYXBwZWQgUmVndGVzdGVkIG9uIGFhcmNoNjQtbm9uZS1saW51eC1nbnUgYW5kIG5v IGlzc3Vlcy4NCj4gDQo+IE9rIGZvciBtYXN0ZXI/DQo+IA0KPiBUaGFua3MsDQo+IFRhbWFyDQo+ IA0KPiBnY2MvQ2hhbmdlTG9nOg0KPiANCj4gCSogdHJlZS12ZWN0LXN0bXRzLmNjICh2ZWN0b3Jp emFibGVfY29tcGFyaXNvbik6IFJlZmFjdG9yLCBzcGxpdHRpbmcNCj4gYm9keQ0KPiAJdG8gLi4u DQo+IAkodmVjdG9yaXphYmxlX2NvbXBhcmlzb25fMSk6IC4uLlRoaXMuDQo+IA0KPiAtLS0gaW5s aW5lIGNvcHkgb2YgcGF0Y2ggLS0NCj4gZGlmZiAtLWdpdCBhL2djYy90cmVlLXZlY3Qtc3RtdHMu Y2MgYi9nY2MvdHJlZS12ZWN0LXN0bXRzLmNjIGluZGV4DQo+IGFlMjRmM2U2NmU2M2Q5YmQ5NzYz Mjg0YTQ3ZmIyYzkxMTMzNWM0YzEuLmYzZTMzY2Q0ZWQxMjViOTU2NGNhOA0KPiAxYWNkMTk3Njkz ZmMzNDU3YzMxIDEwMDY0NA0KPiAtLS0gYS9nY2MvdHJlZS12ZWN0LXN0bXRzLmNjDQo+ICsrKyBi L2djYy90cmVlLXZlY3Qtc3RtdHMuY2MNCj4gQEAgLTExMzMyLDIxICsxMTMzMiwyMiBAQCB2ZWN0 b3JpemFibGVfY29uZGl0aW9uICh2ZWNfaW5mbyAqdmluZm8sDQo+IA0KPiAgLyogdmVjdG9yaXph YmxlX2NvbXBhcmlzb24uDQo+IA0KPiAtICAgQ2hlY2sgaWYgU1RNVF9JTkZPIGlzIGNvbXBhcmlz b24gZXhwcmVzc2lvbiB0aGF0IGNhbiBiZSB2ZWN0b3JpemVkLg0KPiArLyogSGVscGVyIG9mIHZl Y3Rvcml6YWJsZV9jb21wYXJpc29uLg0KPiArDQo+ICsgICBDaGVjayBpZiBTVE1UX0lORk8gaXMg Y29tcGFyaXNvbiBleHByZXNzaW9uIENPREUgdGhhdCBjYW4gYmUgdmVjdG9yaXplZC4NCj4gICAg IElmIFZFQ19TVE1UIGlzIGFsc28gcGFzc2VkLCB2ZWN0b3JpemUgU1RNVF9JTkZPOiBjcmVhdGUg YSB2ZWN0b3JpemVkDQo+ICAgICBjb21wYXJpc29uLCBwdXQgaXQgaW4gVkVDX1NUTVQsIGFuZCBp bnNlcnQgaXQgYXQgR1NJLg0KPiANCj4gICAgIFJldHVybiB0cnVlIGlmIFNUTVRfSU5GTyBpcyB2 ZWN0b3JpemFibGUgaW4gdGhpcyB3YXkuICAqLw0KPiANCj4gIHN0YXRpYyBib29sDQo+IC12ZWN0 b3JpemFibGVfY29tcGFyaXNvbiAodmVjX2luZm8gKnZpbmZvLA0KPiAtCQkJIHN0bXRfdmVjX2lu Zm8gc3RtdF9pbmZvLCBnaW1wbGVfc3RtdF9pdGVyYXRvciAqZ3NpLA0KPiAtCQkJIGdpbXBsZSAq KnZlY19zdG10LA0KPiAtCQkJIHNscF90cmVlIHNscF9ub2RlLCBzdG10X3ZlY3Rvcl9mb3JfY29z dCAqY29zdF92ZWMpDQo+ICt2ZWN0b3JpemFibGVfY29tcGFyaXNvbl8xICh2ZWNfaW5mbyAqdmlu Zm8sIHRyZWUgdmVjdHlwZSwNCj4gKwkJCSAgIHN0bXRfdmVjX2luZm8gc3RtdF9pbmZvLCB0cmVl X2NvZGUgY29kZSwNCj4gKwkJCSAgIGdpbXBsZV9zdG10X2l0ZXJhdG9yICpnc2ksIGdpbXBsZSAq KnZlY19zdG10LA0KPiArCQkJICAgc2xwX3RyZWUgc2xwX25vZGUsIHN0bXRfdmVjdG9yX2Zvcl9j b3N0ICpjb3N0X3ZlYykNCj4gIHsNCj4gICAgdHJlZSBsaHMsIHJoczEsIHJoczI7DQo+ICAgIHRy ZWUgdmVjdHlwZTEgPSBOVUxMX1RSRUUsIHZlY3R5cGUyID0gTlVMTF9UUkVFOw0KPiAtICB0cmVl IHZlY3R5cGUgPSBTVE1UX1ZJTkZPX1ZFQ1RZUEUgKHN0bXRfaW5mbyk7DQo+ICAgIHRyZWUgdmVj X3JoczEgPSBOVUxMX1RSRUUsIHZlY19yaHMyID0gTlVMTF9UUkVFOw0KPiAgICB0cmVlIG5ld190 ZW1wOw0KPiAgICBsb29wX3ZlY19pbmZvIGxvb3BfdmluZm8gPSBkeW5fY2FzdCA8bG9vcF92ZWNf aW5mbz4gKHZpbmZvKTsgQEAgLTExMzU0LDcNCj4gKzExMzU1LDcgQEAgdmVjdG9yaXphYmxlX2Nv bXBhcmlzb24gKHZlY19pbmZvICp2aW5mbywNCj4gICAgaW50IG5kdHMgPSAyOw0KPiAgICBwb2x5 X3VpbnQ2NCBudW5pdHM7DQo+ICAgIGludCBuY29waWVzOw0KPiAtICBlbnVtIHRyZWVfY29kZSBj b2RlLCBiaXRvcDEgPSBOT1BfRVhQUiwgYml0b3AyID0gTk9QX0VYUFI7DQo+ICsgIGVudW0gdHJl ZV9jb2RlIGJpdG9wMSA9IE5PUF9FWFBSLCBiaXRvcDIgPSBOT1BfRVhQUjsNCj4gICAgaW50IGk7 DQo+ICAgIGJiX3ZlY19pbmZvIGJiX3ZpbmZvID0gZHluX2Nhc3QgPGJiX3ZlY19pbmZvPiAodmlu Zm8pOw0KPiAgICB2ZWM8dHJlZT4gdmVjX29wcm5kczAgPSB2TlVMTDsNCj4gQEAgLTExMzc3LDE0 ICsxMTM3OCw2IEBAIHZlY3Rvcml6YWJsZV9jb21wYXJpc29uICh2ZWNfaW5mbyAqdmluZm8sDQo+ ICAgICAgbmNvcGllcyA9IHZlY3RfZ2V0X251bV9jb3BpZXMgKGxvb3BfdmluZm8sIHZlY3R5cGUp Ow0KPiANCj4gICAgZ2NjX2Fzc2VydCAobmNvcGllcyA+PSAxKTsNCj4gLSAgaWYgKFNUTVRfVklO Rk9fREVGX1RZUEUgKHN0bXRfaW5mbykgIT0gdmVjdF9pbnRlcm5hbF9kZWYpDQo+IC0gICAgcmV0 dXJuIGZhbHNlOw0KPiAtDQo+IC0gIGdhc3NpZ24gKnN0bXQgPSBkeW5fY2FzdCA8Z2Fzc2lnbiAq PiAoc3RtdF9pbmZvLT5zdG10KTsNCj4gLSAgaWYgKCFzdG10KQ0KPiAtICAgIHJldHVybiBmYWxz ZTsNCj4gLQ0KPiAtICBjb2RlID0gZ2ltcGxlX2Fzc2lnbl9yaHNfY29kZSAoc3RtdCk7DQo+IA0K PiAgICBpZiAoVFJFRV9DT0RFX0NMQVNTIChjb2RlKSAhPSB0Y2NfY29tcGFyaXNvbikNCj4gICAg ICByZXR1cm4gZmFsc2U7DQo+IEBAIC0xMTQ5OSw3ICsxMTQ5Miw2IEBAIHZlY3Rvcml6YWJsZV9j b21wYXJpc29uICh2ZWNfaW5mbyAqdmluZm8sDQo+ICAJICByZXR1cm4gZmFsc2U7DQo+ICAJfQ0K PiANCj4gLSAgICAgIFNUTVRfVklORk9fVFlQRSAoc3RtdF9pbmZvKSA9IGNvbXBhcmlzb25fdmVj X2luZm9fdHlwZTsNCj4gICAgICAgIHZlY3RfbW9kZWxfc2ltcGxlX2Nvc3QgKHZpbmZvLCBzdG10 X2luZm8sDQo+ICAJCQkgICAgICBuY29waWVzICogKDEgKyAoYml0b3AyICE9IE5PUF9FWFBSKSks DQo+ICAJCQkgICAgICBkdHMsIG5kdHMsIHNscF9ub2RlLCBjb3N0X3ZlYyk7IEBAIC0xMTU2NSw2 DQo+ICsxMTU1Nyw0NCBAQCB2ZWN0b3JpemFibGVfY29tcGFyaXNvbiAodmVjX2luZm8gKnZpbmZv LA0KPiAgICByZXR1cm4gdHJ1ZTsNCj4gIH0NCj4gDQo+ICsvKiB2ZWN0b3JpemFibGVfY29tcGFy aXNvbi4NCj4gKw0KPiArICAgQ2hlY2sgaWYgU1RNVF9JTkZPIGlzIGNvbXBhcmlzb24gZXhwcmVz c2lvbiB0aGF0IGNhbiBiZSB2ZWN0b3JpemVkLg0KPiArICAgSWYgVkVDX1NUTVQgaXMgYWxzbyBw YXNzZWQsIHZlY3Rvcml6ZSBTVE1UX0lORk86IGNyZWF0ZSBhIHZlY3Rvcml6ZWQNCj4gKyAgIGNv bXBhcmlzb24sIHB1dCBpdCBpbiBWRUNfU1RNVCwgYW5kIGluc2VydCBpdCBhdCBHU0kuDQo+ICsN Cj4gKyAgIFJldHVybiB0cnVlIGlmIFNUTVRfSU5GTyBpcyB2ZWN0b3JpemFibGUgaW4gdGhpcyB3 YXkuICAqLw0KPiArDQo+ICtzdGF0aWMgYm9vbA0KPiArdmVjdG9yaXphYmxlX2NvbXBhcmlzb24g KHZlY19pbmZvICp2aW5mbywNCj4gKwkJCSBzdG10X3ZlY19pbmZvIHN0bXRfaW5mbywgZ2ltcGxl X3N0bXRfaXRlcmF0b3IgKmdzaSwNCj4gKwkJCSBnaW1wbGUgKip2ZWNfc3RtdCwNCj4gKwkJCSBz bHBfdHJlZSBzbHBfbm9kZSwgc3RtdF92ZWN0b3JfZm9yX2Nvc3QgKmNvc3RfdmVjKSB7DQo+ICsg IGJiX3ZlY19pbmZvIGJiX3ZpbmZvID0gZHluX2Nhc3QgPGJiX3ZlY19pbmZvPiAodmluZm8pOw0K PiArDQo+ICsgIGlmICghU1RNVF9WSU5GT19SRUxFVkFOVF9QIChzdG10X2luZm8pICYmICFiYl92 aW5mbykNCj4gKyAgICByZXR1cm4gZmFsc2U7DQo+ICsNCj4gKyAgaWYgKFNUTVRfVklORk9fREVG X1RZUEUgKHN0bXRfaW5mbykgIT0gdmVjdF9pbnRlcm5hbF9kZWYpDQo+ICsgICAgcmV0dXJuIGZh bHNlOw0KPiArDQo+ICsgIGdhc3NpZ24gKnN0bXQgPSBkeW5fY2FzdCA8Z2Fzc2lnbiAqPiAoc3Rt dF9pbmZvLT5zdG10KTsgIGlmICghc3RtdCkNCj4gKyAgICByZXR1cm4gZmFsc2U7DQo+ICsNCj4g KyAgZW51bSB0cmVlX2NvZGUgY29kZSA9IGdpbXBsZV9hc3NpZ25fcmhzX2NvZGUgKHN0bXQpOw0K PiArICB0cmVlIHZlY3R5cGUgPSBTVE1UX1ZJTkZPX1ZFQ1RZUEUgKHN0bXRfaW5mbyk7DQo+ICsg IGlmICghdmVjdG9yaXphYmxlX2NvbXBhcmlzb25fMSAodmluZm8sIHZlY3R5cGUsIHN0bXRfaW5m bywgY29kZSwgZ3NpLA0KPiArCQkJCSAgdmVjX3N0bXQsIHNscF9ub2RlLCBjb3N0X3ZlYykpDQo+ ICsgICAgcmV0dXJuIGZhbHNlOw0KPiArDQo+ICsgIGlmICghdmVjX3N0bXQpDQo+ICsgICAgU1RN VF9WSU5GT19UWVBFIChzdG10X2luZm8pID0gY29tcGFyaXNvbl92ZWNfaW5mb190eXBlOw0KPiAr DQo+ICsgIHJldHVybiB0cnVlOw0KPiArfQ0KPiArDQo+ICAvKiBJZiBTTFBfTk9ERSBpcyBub25u dWxsLCByZXR1cm4gdHJ1ZSBpZiB2ZWN0b3JpemFibGVfbGl2ZV9vcGVyYXRpb24NCj4gICAgIGNh biBoYW5kbGUgYWxsIGxpdmUgc3RhdGVtZW50cyBpbiB0aGUgbm9kZS4gIE90aGVyd2lzZSByZXR1 cm4gdHJ1ZQ0KPiAgICAgaWYgU1RNVF9JTkZPIGlzIG5vdCBsaXZlIG9yIGlmIHZlY3Rvcml6YWJs ZV9saXZlX29wZXJhdGlvbiBjYW4gaGFuZGxlIGl0Lg0KPiANCj4gDQo+IA0KPiANCj4gLS0NCg==