From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by sourceware.org (Postfix) with ESMTPS id 6BB623858414 for ; Thu, 15 Jun 2023 01:55:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6BB623858414 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1686794124; x=1718330124; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=yaD4c89oY+ea4g8V324xdEuYQXMwLELXYy1jP6eHRHI=; b=S4qt41FgntVoBj7Z06kCrJFPx/Eh/MrFCl1vZH15457YGNO3EVjAsCxo gZFVXoaVszzWmsgkPfi+j8ppylkZFCK/4ofL4D0nbbvsR/lSej0XCX/Ea 1QhCQcq+A5QTu+k4qb05/kDyZcqbzdzGfhC1mW+kQtUWdS+B/DNCHMfU9 4/9espKrEH7RiLn9NKy0ZaULka2uJRqmqa6ReWD5EC3H28CdAMgYJmQRo T/uT9QYTszdCcABGz/Ue6z2cvgDkHH0rMjnNabqLMS8uOUN5EMYcz9Bw7 IBDweDAeWCDfpXKAkGTV0YC4VyMnMQl0rCOEK1tdfsgp1Grg1e6VGLgzy A==; X-IronPort-AV: E=McAfee;i="6600,9927,10741"; a="343486211" X-IronPort-AV: E=Sophos;i="6.00,243,1681196400"; d="scan'208";a="343486211" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Jun 2023 18:55:23 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10741"; a="662603703" X-IronPort-AV: E=Sophos;i="6.00,243,1681196400"; d="scan'208";a="662603703" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga003.jf.intel.com with ESMTP; 14 Jun 2023 18:55:23 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Wed, 14 Jun 2023 18:55:22 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Wed, 14 Jun 2023 18:55:22 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.103) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Wed, 14 Jun 2023 18:55:22 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DSrVPHRS6MPVPIFh5ual2rj8igRAx3vPiBqyTG8aM+TP5MWYjJmzKc6XoEyFU7GBZSra8iEvYRMihIAwkfChkeP+GuoNO5PmMB3oxvaqAWmRcIMd1yPyeiQZFvdcpAT0cGiipY6Kd4XV2HSu5phMaa6/PNO19a5D+C8LKa0uJ3mzpITVYvCoXA/RM/fcvc+vYEuRbFs+G4ttJkdTQ2DDaRVqax9J7K8rW5nZCEjSN+NzcB7jIdr72qkYLLXdtC+H2/qgNh16Nj4EZCi8xPo0NAtl1QyRWpU1iO9kaDX8zMY+SDj0upWm/TOa2+cDVThsID97CM5TSxq/e2QAn94yEQ== 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=yaD4c89oY+ea4g8V324xdEuYQXMwLELXYy1jP6eHRHI=; b=U//qaZ5vQt2bGPRSngLLJnVwSsrtoyjRtyRHWwRLFPlzejfPIwe3+gsbcQIaOf/ALPKS6vyx54hhXEnJ6aC/xoIaPRn+3rj+uJ5RQr5LPcH/tPKWodD7g65k+0OyprBJaF64CPfeTEAnUMTpZAd5C053mBXWIReMy7c3n0htAl1QFHJMV2tH9bQSual339uz9iF7UJP7cVR7cn+Q/EypxTDPdv30yXv1ejie6NtNgOjagzpUPNGZHNbEhiJDtbjZ2zakKpmAEXqhZlJvEw4xImemrXehNkNms6f4LHRiyp90TXfKG/3O7o1lkpxec9O8P3xitBLB7s1xbWSyHe0GCw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from MW5PR11MB5908.namprd11.prod.outlook.com (2603:10b6:303:194::10) by IA1PR11MB8200.namprd11.prod.outlook.com (2603:10b6:208:454::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6500.25; Thu, 15 Jun 2023 01:55:19 +0000 Received: from MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::127c:f4cc:e699:8f73]) by MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::127c:f4cc:e699:8f73%6]) with mapi id 15.20.6477.037; Thu, 15 Jun 2023 01:55:19 +0000 From: "Li, Pan2" To: Jeff Law , Robin Dapp , "juzhe.zhong@rivai.ai" , "gcc-patches@gcc.gnu.org" CC: "kito.cheng@gmail.com" , "kito.cheng@sifive.com" , "palmer@dabbelt.com" , "palmer@rivosinc.com" Subject: RE: [PATCH] RISC-V: Use merge approach to optimize vector permutation Thread-Topic: [PATCH] RISC-V: Use merge approach to optimize vector permutation Thread-Index: AQHZnngrBGBq7Af2ok6Htfki7Lhwbq+KZPyAgABF6QCAAHB2QA== Date: Thu, 15 Jun 2023 01:55:19 +0000 Message-ID: References: <20230614042409.266841-1-juzhe.zhong@rivai.ai> <16a20d04-e954-4fa1-f8ed-e743b0faea8a@gmail.com> In-Reply-To: <16a20d04-e954-4fa1-f8ed-e743b0faea8a@gmail.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MW5PR11MB5908:EE_|IA1PR11MB8200:EE_ x-ms-office365-filtering-correlation-id: 3956a19e-8979-4549-08e5-08db6d4392ec x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ymR+1K0jUR5Q8PA2aVT111lrXUnzwIEzZ8Vu2bf1ySbT5tDjeBtOj1swkXfVpt4YcvgEHgeplrwLY1yajubFSSIkTLdFWVE0jatcEpVtZKo63lm3D8EIcO1FFtEausvVAZIyXPZXCHF1dKefRGcGxnwSxn5ffZEC6nTe0Wf1lNceuUuqQZuNM1qZDaOTy0lnadu4Ji7CGQ0gDSlt5y8E9smWJjYLLBxen7qLaQzEkJFGQjx8hWx1rZPrdMnrGRgael6+wPsbRxi8Oig0gFDfPuvCgO2GTxIgyaofvXtRRFK6jkzDKTlCwYVg/WZMrNkzjuSag9+y1x83/O1ZpS7G2IILtkyqa+tzeSsmXvN7tsShbofscPZLtZMsCAGnvBk3flIgf5Z3Er9VT3R517QDCZW9krw0QE29jQ162IS5wlpSMA4AufFb4Eu9znOWtSQzvL2FIRuRfRhldp7LIegFvbezXkIIrPl+QwfCsT5993qPzT1NM2V7QaovytO3zloK0/YxersWDCLCRXcIrSZCpHTxuWWItr4A86k4lPjCEsC6MdDSd6AOEYTw/GzpUn/gwAuLLmCdDIcs2SNkIiIqK4jdh403sQouoBp+qCV1vDI= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW5PR11MB5908.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(376002)(346002)(136003)(39860400002)(366004)(396003)(451199021)(52536014)(5660300002)(966005)(82960400001)(38100700002)(122000001)(53546011)(6506007)(83380400001)(186003)(2906002)(26005)(9686003)(38070700005)(478600001)(55016003)(66446008)(64756008)(66556008)(66946007)(66476007)(316002)(33656002)(71200400001)(8936002)(8676002)(41300700001)(7696005)(86362001)(76116006)(4326008)(54906003)(110136005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?V3VCdDFoUkJHVXliTCt4dWVacVZlYWY5Nm9MaEZvSWhrd1hLSUdJWVV0WU55?= =?utf-8?B?bGJQUVdXZDhqL2hWSDB1WU1qMitqQ0hWOVBTZkZFOUNuWjVSSTU5d0JRZkx5?= =?utf-8?B?WkVCbWF2TktVUjVTZEZaTW5mNEpWTXFjMUFYekZWRVVrWjI1NkZoQTFUYVpT?= =?utf-8?B?czBiNWZRbVNEbUJLQUJSN3g4YlNqcU4vVXVlNVJ6MlZQY0xpeU0zU2hIcks2?= =?utf-8?B?LzE2TkdHWlZOTU9QckdkWVhYc21vR3JwMytFVDJYOFhLZmNkOUg0TDhuNmZp?= =?utf-8?B?TGQwa0pqTjM2TTV1bkRqc1VURXZkSDRGOHJhVTlJWm84eWRGMFVGNXoxanhS?= =?utf-8?B?ZHY2T2tZSU1xdFhkRDkyVzZ1MDhlRDJ2MmpXdmgrSUc5V21HWDl6WVpCSWlQ?= =?utf-8?B?L2tXQThSQXNuZHM2TFpRdXVTZzhiQ09xSzBZR1d3NWdEYmxtZld4dUVwZXJM?= =?utf-8?B?MHNLemE2Y2JsUEFWSDN3RlIrV0Y1ZHFRN3ZjV3RKU3d4S2RzQ1J2VFJKR2tG?= =?utf-8?B?d3dBRlRJZTcraGRLbWN0dFFteWY4a0xYTDNFYzN4OU5WS1Y3K21WMU83UUJE?= =?utf-8?B?LzZDYmxMV3JZY1NTbk5adG9MUVk3MUk4aWJ4L3RoREs2cHBvRjlaVUQxekVJ?= =?utf-8?B?Q3hwWGg3d0xUcUJKUjRyM3p5d2pnOHhtZHEvOUtmb0NLdFMxNGZ2S081SGg2?= =?utf-8?B?Y0tKV1lBNGZMdjR3ODZyRVhmV1NxN0JzUW9TUm1OVnJJZmc3NHF3UXdqVXRF?= =?utf-8?B?bDZZdVZKa1NsQ0crY3NNRC9RS0Z1bXJuenB1VDBaYWhWWngwM29RN0dKak5n?= =?utf-8?B?aUlxR1o5cVlwNUVleThhR0xpNjExNXk5VEtNQnVUWDZJVFVmdnZkTHJTTFk1?= =?utf-8?B?UWQ4SWdHM3JQUmFuTzljUVZaejhnZGR3dW1EektMVHZNYkQ5YllrMTBibWFQ?= =?utf-8?B?c01qa2NWRTZvbjUrOVdCQk9QZ1NZcytwMmM0cU81VnlPTEt4VlozbVNqaEls?= =?utf-8?B?RWh6NUg4Q0VBMlR2SzhRV2FnVWRiNHdLL3Q4bE5VaU1peGpHTXdpdmI4NHJE?= =?utf-8?B?SVhXeFJxQWpXSW1wK0xabitVR3YzZUI1eXlQSEtPVFVSOUV4Tkw2L2o0SWZL?= =?utf-8?B?cEczKzFQajZ3YzIzVVlaamFQTmhoQ0tlWGsxTGdxS1VIRnBrN3ZGSnlHeWxl?= =?utf-8?B?OVM4SWpTNW5NSFR1MnJ6WTNaVW5WOE43U3hKM1JDa2pvSVpYS2xGZkZNMFd6?= =?utf-8?B?MDhkQ254amFQemxSeDY0a093WExxcFJ5MG9MREpRYlI5L3VETXlHYlhxVE9J?= =?utf-8?B?TVlNNUd0TnZoc3RYajZUbDFvR1U0S1ArRnZNV2NUWE9sbklCZTNsODhjOHJw?= =?utf-8?B?eEFUeFlSdUJncE9zQUV3QXJ0Ly93SHBIUnIrbkYrUGF1SnM3Yk4rbHhtYUpv?= =?utf-8?B?ZFZEOTkzZGU0SnR0MitvY2x6RFBIdWozKzNEenB6RFhZdEVQckJGMG9KaCtu?= =?utf-8?B?VjdSbWFOT2Y5T0FsNHhlSkExNjlQU1dPMUhRNWx5TkxONmh4VEJZZUZIMUdP?= =?utf-8?B?TWJCRmN4bWUwNTlacllkdVE5Ukl5WEZJZkhSS2d2Vzd0b3ViU2RwcWhHOVJ0?= =?utf-8?B?NFJRd2xCLytmSGdSV3ZvaUVSL3Q1ajVmTU5XWEpCTHIzemFnWjNPY25CVWw4?= =?utf-8?B?LzhLcmNNTWdXMGdlbVVEVWljZEQxUGxxampMNzdhengwYUhrclpYZGxPZzhm?= =?utf-8?B?WlcyWlJMQUNQbHpONW1LUlhLSE9IbERUVmNoeDNUcmhpNVhQdC9nZ0tFVE92?= =?utf-8?B?MVlSamtxb0JKZkhPM1piUXc3RHNxdTFaMDNlNFpRajFGaW12dVUrWlBITkZZ?= =?utf-8?B?S01oRHlQZmIxWEZtY1ZZUTRLU2krZUQvQ21JRjJwTTRlQXcvVng3Y0E5WHRU?= =?utf-8?B?bDMwZkRrZ3M2aHZtU1ArNjF4c243eWdUY2FoamhQYWRKdHJIRGRpZm82Mmhy?= =?utf-8?B?QmpTTXdTK2VHU01kWkN6SGlIa2dOZWNadXBwVVBteTdsQnBnTzVIRlVCUEM5?= =?utf-8?B?Y3hIcEpYV0ZWTUxsU0xBQ1JpMXdoVVJSMDVMdWlZbFkyOHh1alpQUHhuWmdm?= =?utf-8?Q?wddz9PSIz54muIMDxoEgmT/na?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW5PR11MB5908.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3956a19e-8979-4549-08e5-08db6d4392ec X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Jun 2023 01:55:19.8101 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: z4xGTK6c5Khm2vQW5imf4+RWl9ouBne86GQHbh3AcJg0tACRgJceP82oDHP8bH8+A2MPcNS1EBTdNHxhByTfJg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR11MB8200 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-6.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,KAM_SHORT,SPF_HELO_NONE,SPF_NONE,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: QWRkcmVzc2VkIHRoZSBjb21tZW50cyBpbiBQQVRDSCB2MiBhcyBiZWxvdy4NCg0KaHR0cHM6Ly9n Y2MuZ251Lm9yZy9waXBlcm1haWwvZ2NjLXBhdGNoZXMvMjAyMy1KdW5lLzYyMTc4OS5odG1sDQoN ClBhbg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogR2NjLXBhdGNoZXMgPGdj Yy1wYXRjaGVzLWJvdW5jZXMrcGFuMi5saT1pbnRlbC5jb21AZ2NjLmdudS5vcmc+IE9uIEJlaGFs ZiBPZiBKZWZmIExhdyB2aWEgR2NjLXBhdGNoZXMNClNlbnQ6IFRodXJzZGF5LCBKdW5lIDE1LCAy MDIzIDM6MTEgQU0NClRvOiBSb2JpbiBEYXBwIDxyZGFwcC5nY2NAZ21haWwuY29tPjsganV6aGUu emhvbmdAcml2YWkuYWk7IGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnDQpDYzoga2l0by5jaGVuZ0Bn bWFpbC5jb207IGtpdG8uY2hlbmdAc2lmaXZlLmNvbTsgcGFsbWVyQGRhYmJlbHQuY29tOyBwYWxt ZXJAcml2b3NpbmMuY29tDQpTdWJqZWN0OiBSZTogW1BBVENIXSBSSVNDLVY6IFVzZSBtZXJnZSBh cHByb2FjaCB0byBvcHRpbWl6ZSB2ZWN0b3IgcGVybXV0YXRpb24NCg0KDQoNCk9uIDYvMTQvMjMg MDk6MDAsIFJvYmluIERhcHAgd3JvdGU6DQo+IEhpIEp1emhlLA0KPiANCj4gdGhlIGdlbmVyYWwg bWV0aG9kIHNlZW1zIHNhbmUgYW5kIHVzZWZ1bCAoaXQncyBub3QgdmVyeSBjb21wbGljYXRlZCku DQo+IEkgd2FzIGp1c3QgZGlzdHJhY3RlZCBieQ0KPiANCj4+IFNlbGVjdG9yID0geyAwLCAxNywg MiwgMTksIDQsIDIxLCA2LCAyMywgOCwgOSwgMTAsIDI3LCAxMiwgMjksIDE0LCAzMSB9LCB0aGUg Y29tbW9uIGV4cHJlc3Npb246DQo+PiB7IDAsIG51bml0cyArIDEsIDEsIG51bml0cyArIDIsIDIs IG51bml0cyArIDMsIC4uLiAgfQ0KPj4NCj4+IEZvciB0aGlzIHNlbGVjdG9yLCB3ZSBjYW4gdXNl IHZtc2x0dSArIHZtZXJnZSB0byBvcHRpbWl6ZSB0aGUgY29kZWdlbi4NCj4gDQo+IGJlY2F1c2Ug aXQncyBhY3R1YWxseSB7IDAsIG51bml0cyArIDEsIDIsIG51bml0cyArIDMsIC4uLiB9IG9yIG1h eWJlDQo+IHsgMCwgbnVuaXRzLCAwLCBudW5pdHMsIC4uLiB9ICsgeyAwLCAxLCAyLCAzLCAuLi4s IG51bml0cyAtIDEgfS4NCj4gDQo+IEJlY2F1c2Ugb2YgdGhlIGFzY2VuZGluZy9tb25vdG9uaWM/ IHNlbGVjdG9yIHN0cnVjdHVyZSB3ZSBjYW4gdXNlIHZtZXJnZQ0KPiBpbnN0ZWFkIG9mIHZyZ2F0 aGVyLg0KPiANCj4+ICsvKiBSZWNvZ25pemUgdGhlIHBhdHRlcm5zIHRoYXQgd2UgY2FuIHVzZSBt ZXJnZSBvcGVyYXRpb24gdG8gc2h1ZmZsZSB0aGUNCj4+ICsgICB2ZWN0b3JzLiBUaGUgdmFsdWUg b2YgRWFjaCBlbGVtZW50IChpbmRleCBpKSBpbiBzZWxlY3RvciBjYW4gb25seSBiZQ0KPj4gKyAg IGVpdGhlciBpIG9yIG51bml0cyArIGkuDQo+PiArDQo+PiArICAgRS5nLg0KPj4gKyAgIHYgPSBW RUNfUEVSTV9FWFBSICh2MCwgdjEsIHNlbGVjdG9yKSwNCj4+ICsgICBzZWxlY3RvciA9IHsgMCwg bnVuaXRzICsgMSwgMSwgbnVuaXRzICsgMiwgMiwgbnVuaXRzICsgMywgLi4uICB9DQo+IA0KPiBT YW1lLg0KPiANCj4+ICsNCj4+ICsgICBXZSBjYW4gdHJhbnNmb3JtIHN1Y2ggcGF0dGVybiBpbnRv Og0KPj4gKw0KPj4gKyAgIHYgPSB2Y29uZF9tYXNrICh2MCwgdjEsIG1hc2spLA0KPj4gKyAgIG1h c2sgPSB7IDAsIDEsIDAsIDEsIDAsIDEsIC4uLiB9LiAgKi8NCj4+ICsNCj4+ICtzdGF0aWMgYm9v bA0KPj4gK3NodWZmbGVfbWVyZ2VfcGF0dGVybnMgKHN0cnVjdCBleHBhbmRfdmVjX3Blcm1fZCAq ZCkNCj4+ICt7DQo+PiArICBtYWNoaW5lX21vZGUgdm1vZGUgPSBkLT52bW9kZTsNCj4+ICsgIG1h Y2hpbmVfbW9kZSBzZWxfbW9kZSA9IHJlbGF0ZWRfaW50X3ZlY3Rvcl9tb2RlICh2bW9kZSkucmVx dWlyZSAoKTsNCj4+ICsgIGludCBuX3BhdHRlcm5zID0gZC0+cGVybS5lbmNvZGluZyAoKS5ucGF0 dGVybnMgKCk7DQo+PiArICBwb2x5X2ludDY0IHZlY19sZW4gPSBkLT5wZXJtLmxlbmd0aCAoKTsN Cj4+ICsNCj4+ICsgIGZvciAoaW50IGkgPSAwOyBpIDwgbl9wYXR0ZXJuczsgKytpKQ0KPj4gKyAg ICBpZiAoIWtub3duX2VxIChkLT5wZXJtW2ldLCBpKSAmJiAha25vd25fZXEgKGQtPnBlcm1baV0s IHZlY19sZW4gKyBpKSkNCj4+ICsgICAgICByZXR1cm4gZmFsc2U7DQo+PiArDQo+PiArICBmb3Ig KGludCBpID0gbl9wYXR0ZXJuczsgaSA8IG5fcGF0dGVybnMgKiAyOyBpKyspDQo+PiArICAgIGlm ICghZC0+cGVybS5zZXJpZXNfcCAoaSwgbl9wYXR0ZXJucywgaSwgbl9wYXR0ZXJucykNCj4+ICsJ JiYgIWQtPnBlcm0uc2VyaWVzX3AgKGksIG5fcGF0dGVybnMsIHZlY19sZW4gKyBpLCBuX3BhdHRl cm5zKSkNCj4+ICsgICAgICByZXR1cm4gZmFsc2U7DQo+IA0KPiBNYXliZSBhZGQgYSBjb21tZW50 IHRoYXQgd2UgY2hlY2sgdGhhdCB0aGUgcGF0dGVybiBpcyBhY3R1YWxseSBtb25vdG9uaWMNCj4g b3IgaG93ZXZlciB5b3UgcHJlZmV0IHRvIGNhbGwgaXQ/DQo+IA0KPiBJIGRpZG4ndCBnbyB0aHJv dWdoIGFsbCB0ZXN0cyBpbiBkZXRhaWwgYnV0IHNraW1tZWQgc2V2ZXJhbC4gIEFsbCBpbiBhbGwN Cj4gbG9va3MgZ29vZCB0byBtZS4NClNvIEkgdGhpbmsgdGhhdCBtZWFucyB3ZSB3YW50IGEgVjIg Zm9yIHRoZSBjb21tZW50IHVwZGF0ZXMuICBCdXQgSSB0aGluayANCndlIGNhbiBnbyBhaGVhZCBh bmQgY29uc2lkZXIgVjIgcHJlLWFwcHJvdmVkLg0KDQpqZWZmDQo=