From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.88]) by sourceware.org (Postfix) with ESMTPS id D97EB3858D20 for ; Fri, 17 Nov 2023 07:25:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D97EB3858D20 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org D97EB3858D20 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=192.55.52.88 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1700205905; cv=pass; b=rg+povdjlHI6CJwn+KQZ8UyMKrlmCdmaydmbzMN5E/I6h02/YfG7dM49yR9lBMR8wQkJLQXrJCP33VMJMHD7xFcbz74kCiYhyMbFRzVI7PdIMX/JMY+vi3x5MSp27tGzjRVWyYaGpI26mBhlJcRHFiW6fNUIcGhOxbRcxq4PMwM= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1700205905; c=relaxed/simple; bh=WMYtf8puF4DEh0tyRhMuOAo4GF9IN45mjG+XfBLwdyM=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=Iss7IgsAJRw2UEYUlE45aQG0sKIXzx8fUpNDDiAV9J8cK0Sbk/c/C2qwy4cv7c9qs7TblTAqIg2IK73Crv7/O97WnmCxLFJuLisHB40zryAxYuwoMYQMv5qg/1xAjoae2I775EnJnJwBdf7hp5nUQ0IitrvFt0lR++4GtI9LAco= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1700205902; x=1731741902; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=WMYtf8puF4DEh0tyRhMuOAo4GF9IN45mjG+XfBLwdyM=; b=myZ+mTYUQv7k4oOKUGMwPXdoe66z9CJK3m9IiDQOWq7WUAOG/B1RD6EC ghXvamhjlXlUfCyLOqsU6yDIxj8qKt9ETEPcE5pougTzkPDkPmLbk8498 5euvxg2jiudvfp62esH+LFZfGrvjF7FtCGeFGJ3emnMuSfl8VXaErpNb2 I8V05GEUUS+yJLuRNSko7/sF2oW9wsQhVRXtsjZZfnhcvXhhSTeIn1cGN q+hSLQL4DVSdDBhF6sF5J0D9I/eBB1nf/NPRAHtz7w10AZREfqfL8pXLc mdmCmLQZI5nDCwJemTTbaGzwCjkkm5ZWVX4gtdiRQhSnCTmcfypp83cUc g==; X-IronPort-AV: E=McAfee;i="6600,9927,10896"; a="422346488" X-IronPort-AV: E=Sophos;i="6.04,206,1695711600"; d="scan'208";a="422346488" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Nov 2023 23:25:01 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10896"; a="831530206" X-IronPort-AV: E=Sophos;i="6.04,206,1695711600"; d="scan'208";a="831530206" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga008.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 16 Nov 2023 23:25:01 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Thu, 16 Nov 2023 23:25:01 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Thu, 16 Nov 2023 23:25:00 -0800 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34 via Frontend Transport; Thu, 16 Nov 2023 23:25:00 -0800 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.101) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.34; Thu, 16 Nov 2023 23:25:00 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NEJgpsP7x/VozCwmWJlbmo9FnI0XbNYIfvgPi7pbIU9b/CBE5lgIzhTqkChKnuc4CrEvt9AOCNHJRTbgexjMy9rjOxAe2i0/lXYWHYpSx4vG1PrDZX8SJTp7Por20CEInC+DCS4WHrokJaFy/ieIYNeSQH3uSmcKz9sbqxppKm0sAWfzvr9lhkNIMrgEPvvAILpX45mlz7ICP9BFe4nJa6ax39qLK8M/gjg02x9U/jUaXizq1y6B/ZbNRud/r0UsIBVZngz670U8XSyV+6SfcGM0kL35NYYquAoOruYGnbxpcDCU29XWohyzdyn1TyerB1fEmXISIt6dQjEgmnXbpQ== 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=WMYtf8puF4DEh0tyRhMuOAo4GF9IN45mjG+XfBLwdyM=; b=jx0SiogINnq4+jqV3ipxLAyt98lFnB86aGkzbMAl7e9Nf53PfPhFtijjP3VyktfMEjRApRFvaGUBMUbW9VJ9fjOO9mQLJFUqz8Lfga3GlfTj18j7hKjwHVNVUsMdOilza197Xii9sUxGyKGYtlGSlIaZaockE5Dh/BpYQK8njo7YUxFdlqw/LKoiTiLg4ExoBZBQiGhaIsk2lVNo4q90KHuQQGmdqmN30iHdQEa1f5CYoqpv02i4R2nQO+PbZrC0e5bxl5MUEWFeehWx2zX33VkIdBbVVFd+Dr6ao1dhwnSDLTM+KryfMWRZenYftZElwElW/pOS+jWnd0RJa4JjyQ== 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 SJ0PR11MB5940.namprd11.prod.outlook.com (2603:10b6:a03:42f::18) by SJ0PR11MB6573.namprd11.prod.outlook.com (2603:10b6:a03:44d::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7002.21; Fri, 17 Nov 2023 07:24:57 +0000 Received: from SJ0PR11MB5940.namprd11.prod.outlook.com ([fe80::8a10:338f:c17e:dd7f]) by SJ0PR11MB5940.namprd11.prod.outlook.com ([fe80::8a10:338f:c17e:dd7f%7]) with mapi id 15.20.7002.019; Fri, 17 Nov 2023 07:24:57 +0000 From: "Hu, Lin1" To: "Beulich, Jan" CC: "Lu, Hongjiu" , "binutils@sourceware.org" Subject: RE: [PATCH][v3] Support APX NDD optimized encoding. Thread-Topic: [PATCH][v3] Support APX NDD optimized encoding. Thread-Index: AQHaF6b6BIRnh1ekOUSAs7kytKEh2LB8i8xg Date: Fri, 17 Nov 2023 07:24:56 +0000 Message-ID: References: <8ed3b7a2-8cba-6428-1c01-5b6c28ca4a89@suse.com> <20231115025925.2891038-1-lin1.hu@intel.com> <4c7a8e8c-de67-4d40-9cba-8fc04de1e309@suse.com> In-Reply-To: <4c7a8e8c-de67-4d40-9cba-8fc04de1e309@suse.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: SJ0PR11MB5940:EE_|SJ0PR11MB6573:EE_ x-ms-office365-filtering-correlation-id: 9a03925c-c840-4bdc-9734-08dbe73e4cff x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: xLa0hLHre2Ab6XCct93EcQEwABybSCVZD26WNNWGSoY1cHAztdesEm6/Cvrs728IPEiadJB4DmYP6FE+HiZWDCQYMCEejDlGHpVrbqLwZ0bM1bb+SBryaOytrV20Xevylblhs3lBr4hTCXI/eVXo3V8rY1/S676JogLZX/n9NJDDuS+zZ+5u1arZKHrlvq+3CeaCk4h5zsykk181vnwwffI0rf16Z8TBvdbtaBglMwjA3EfXj7gdrZ2t/h37z4N5ajihbag0qyBLRCwwZK7gfFGeZstpPNx54RR88IOHEYXnsfTBoRX/bKhcP/Odjdp+6g2P81zexWqM+Sl7WMkD8vxIoXOeTDtT64L6BjpCY9nw2LgZWrDSDaUPFpqp8/AkjSYIUna6LQn518/2njOjpB+UGprISzjzhM4RSxFyMzHjpTImks74qSYzEX0WDYSCN07vZHRkxP5Z6jbsQcVvpXivqmxDVz2W6zaSqqwNJul/HpQyVWBSBDLuqkKopoLTg2ELaYi0LnZ8p4g/l2vnavyqAc0SJ5mQZ7z1lcH5crc4/FTCP+5MGNT/IopMW5Mzl/xxRM68MamYtFfXfLPdjhXagnDQvuCuSS+vUkcg5Zr/A8um5kHUVtE9XVnLUq68 x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR11MB5940.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(366004)(136003)(39860400002)(396003)(376002)(230922051799003)(1800799009)(186009)(64100799003)(451199024)(38100700002)(38070700009)(122000001)(55016003)(83380400001)(82960400001)(9686003)(53546011)(7696005)(26005)(6506007)(71200400001)(478600001)(5660300002)(86362001)(41300700001)(66476007)(76116006)(66946007)(64756008)(54906003)(6916009)(66446008)(66556008)(316002)(8676002)(8936002)(4326008)(52536014)(33656002)(2906002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?aXhlRC8wVTZlTWxCK2MzeTFuWWZ6U09acTRmd3gwWDRhUFl3T1hlSmx3bzBi?= =?utf-8?B?b0d5Z1hnMGtYdnJ1enRTOFM3cFVpZVBVUVVMTVo5d0x4WmZwUnlKQnJtQTNo?= =?utf-8?B?ZjdrZGZXcDN0eVhBeXJ2NFpTNVNuZ0VXRmlmMzRXQllHTjF1OUZzRHc4UW15?= =?utf-8?B?WmZmYTBlMmRBaldjLzdsUC9EeW81ZDJ4SVgzOTFxS1FkL3FOV3VhM3lVZUdF?= =?utf-8?B?UUVZSGlmUThndkJ2ZzFaVGRjUm5INVVLT0w1M0FDU2wyNm1CL0xpWm82bXox?= =?utf-8?B?NGFHalF3K251V3l1YXptQVFSS2JUTlpoYkhvR1dnQlA1bmx4Ync5R3M1MUhk?= =?utf-8?B?WThZeEM5OUQ2NlRML3NSU1BwZ2ovTnVJNFBXMDY2eEFZTWt5eFNNSkVJN0RE?= =?utf-8?B?WHFCQXpoRENFR0ZlblNYQ3JyR1l6M0I5Z1VQcjFhUnZtSHpRZVdHU1BhTHpL?= =?utf-8?B?YmZXMFhiSmp6OFplV2pWUHI3OHp6QmNSNGIrUXo0bzAwN3YwOTdvK29DaDF3?= =?utf-8?B?c1I1WHlxRHlrQWk1WUFSWjJXTG5IdHRabERLZnpXWUpSQjlkaVZrOUdsc2FH?= =?utf-8?B?M29jS3RNOE9sSUU4S2NEZGdBb1UvaGN3OUF5SEpDbjVzOGVNMHZIbGZFUkJ1?= =?utf-8?B?ZlNwQXROQXpVSE9mdHpjRmloOFpieG1LekdYRndveHBxTTJSNUp1Y1BRNlRR?= =?utf-8?B?NnZTOStadFRrSTR0Rk9YV0hYaE15SGdKQ005VkxWdEtCZ001eGhkV3hHbGJX?= =?utf-8?B?ajcwZDNRdTZLc29CNGhKR1lkWUttMU1qNmtHSnJGRWRld1VRQ044Y1NkR0tj?= =?utf-8?B?NVVncUlnL1piWW9UbTBYUTBEMGRsbHFsRTRCZW9qYTZKblRKdEhNVzRhdWJL?= =?utf-8?B?VnBqUVZ1cVVxak1Wb0tIajRuVmRCTkI5TitGNnNqdzdoaTE2NXZJUlF1SERk?= =?utf-8?B?cXZpUm1LTWlQbGFScU9GZ3Q4WFZERU5IRlo1WGM4VG00aGhBeXZMTlpMb0FR?= =?utf-8?B?Ri9LZ1ZEWW1VK0tNVFNuUFJLQ1VXZlJ6N3U0eDBqZURGcnNQY2RaZE5NaVN1?= =?utf-8?B?by90RHFqS3RXaDdpNFpEeVdVVUhYaFhLSlNnU05UaDc1QmxLZkpVaVZlOTlO?= =?utf-8?B?RTdPL2pVeVMxc3FQM3JUdnZWNXEvcVJSOWdUMy8vYWdiZjlQUGxQd29abnc5?= =?utf-8?B?MC8wcmswYlFrWTBuT1d0Z2htd1ZES3BvZnlWVm5SY2RsVGR6ZlNqdEVabDlm?= =?utf-8?B?S2hWWVNkQ3hOMzkxd3hiVXJ0aWpGaGlQUDhuMjhJSld6OGZHTVZFVHBkdmNH?= =?utf-8?B?bU8vZ2VDYlRjVDhXSEdqK3llRlJWZTcva2c4WEtiT2lwMFZTekFqZHZSejZp?= =?utf-8?B?ZHpINGNqamxiN05KMFY1UkxlejErNUJoK1M3ZndCcjYyNnV6dXhwOC8rQlpV?= =?utf-8?B?UVZPZXR3bm1YMzZRbnM0TlJza2xwK0xRMFZNVFVOK2VRbzBSRVM5RDRXb2Zp?= =?utf-8?B?aTlvMUh1VEdlcldteE1WelhtYUV2R242ektGQnpUVmR0SUxoVVhpNHB0emlY?= =?utf-8?B?aGF1V1V0Qks1STE4aGRYVDRsMHNUY2ttR0dQQStKOW1QciszRWhpeUx1STFk?= =?utf-8?B?Tmc2VFZyRXVEY3pQOVg4Z0tpTGtOcVdBZEV6VHk1RFljMGIzVzc4WEcyUWdC?= =?utf-8?B?QzYvN0VXNHBlMEVhVlpwNFJZN0U3U2JoeXVzbDNka2sveEg1M0hwaXRNbFFB?= =?utf-8?B?UGFCTGZUNGViOXEwaDhvV3U3VTlwSXZXUkhlOGRsd0o1dm14ZG96QWtHTlE0?= =?utf-8?B?NVNXUkFROS9nMGQwQ3hZb2pVeVA3R1d2WG5CVXExR1ZaVk5kUUVUNkk0MS9N?= =?utf-8?B?d3ZSTlAzTFNhck9LMzR4RGd2SWY4Y2RBbTJCanZ3ZExNUFVVMDhtTWxOKzQw?= =?utf-8?B?Mm1vdFRsS3dWd0VLWUJIZjVsM0Q0Z05neUNOamVXS2YxUkxZN3FtODRWUG1T?= =?utf-8?B?c2pBOGJ3UGFReWNIalhQWFNFK0RZZVF6d1pOMzNTNFI2RGdHcW9HZ21oei9o?= =?utf-8?B?aUpKK2tTMjhTek9zT2hleEwyckIyQjVpMmYxOG1OS1ozeDBSWWJQUjBRaXVG?= =?utf-8?Q?AC8k=3D?= 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: SJ0PR11MB5940.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9a03925c-c840-4bdc-9734-08dbe73e4cff X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Nov 2023 07:24:56.8432 (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: yC7dPbBiBqi+PU6bF/CWJZHtfMtzw1FM14qws0VuUfpPwgeh/hpy5cvMHKHqQ6Zh/7vyVpiT2nT25qKoWZLM9Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB6573 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-4.8 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,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: PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1bGljaCA8amJldWxp Y2hAc3VzZS5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwgTm92ZW1iZXIgMTUsIDIwMjMgNTozNSBQ TQ0KPiBUbzogSHUsIExpbjEgPGxpbjEuaHVAaW50ZWwuY29tPg0KPiBDYzogTHUsIEhvbmdqaXUg PGhvbmdqaXUubHVAaW50ZWwuY29tPjsgYmludXRpbHNAc291cmNld2FyZS5vcmcNCj4gU3ViamVj dDogUmU6IFtQQVRDSF1bdjNdIFN1cHBvcnQgQVBYIE5ERCBvcHRpbWl6ZWQgZW5jb2RpbmcuDQo+ IA0KPiBPbiAxNS4xMS4yMDIzIDAzOjU5LCBIdSwgTGluMSB3cm90ZToNCj4gPiAtLS0gYS9nYXMv Y29uZmlnL3RjLWkzODYuYw0KPiA+ICsrKyBiL2dhcy9jb25maWcvdGMtaTM4Ni5jDQo+ID4gQEAg LTcyMDgsNiArNzIwOCw0MyBAQCBjaGVja19FZ3ByT3BlcmFuZHMgKGNvbnN0IGluc25fdGVtcGxh dGUgKnQpDQo+ID4gICAgcmV0dXJuIDA7DQo+ID4gIH0NCj4gPg0KPiA+ICsvKiBPcHRpbWl6ZSBB UFggTkREIGluc25zIHRvIGxlZ2FjeSBpbnNucy4gICovIHN0YXRpYyBib29sDQo+ID4gK2NvbnZl cnRfTkREX3RvX1JFWDIgKGNvbnN0IGluc25fdGVtcGxhdGUgKnQpIHsNCj4gPiArICBpZiAodC0+ b3Bjb2RlX21vZGlmaWVyLnZleHZ2dnYgPT0gVmV4VlZWVl9EU1QNCj4gPiArICAgICAgJiYgdC0+ b3Bjb2RlX3NwYWNlID09IFNQQUNFX0VWRVhNQVA0DQo+ID4gKyAgICAgICYmICFpLmhhc19uZg0K PiA+ICsgICAgICAmJiBpLnJlZ19vcGVyYW5kcyA+PSAyKQ0KPiA+ICsgICAgew0KPiA+ICsgICAg ICB1bnNpZ25lZCBpbnQgcmVhZG9ubHlfdmFyID0gfjA7DQo+ID4gKyAgICAgIHVuc2lnbmVkIGlu dCBkZXN0ID0gaS5vcGVyYW5kcyAtIDE7DQo+ID4gKyAgICAgIHVuc2lnbmVkIGludCBzcmMxID0g aS5vcGVyYW5kcyAtIDI7DQo+ID4gKyAgICAgIHVuc2lnbmVkIGludCBzcmMyID0gKGkub3BlcmFu ZHMgPiAzKSA/IGkub3BlcmFuZHMgLSAzIDogMDsNCj4gPiArDQo+ID4gKyAgICAgIGlmIChpLnR5 cGVzW3NyYzFdLmJpdGZpZWxkLmNsYXNzID09IFJlZw0KPiA+ICsJICAmJiBpLm9wW3NyYzFdLnJl Z3MgPT0gaS5vcFtkZXN0XS5yZWdzKQ0KPiA+ICsJcmVhZG9ubHlfdmFyID0gc3JjMjsNCj4gPiAr ICAgICAgLyogYWRjeCwgYWRveCBhbmQgaW11bCBjYW4ndCBzdXBwb3J0IHRvIHN3YXAgdGhlIHNv dXJjZSBvcGVyYW5kcy4gICovDQo+ID4gKyAgICAgIGVsc2UgaWYgKGkudHlwZXNbc3JjMl0uYml0 ZmllbGQuY2xhc3MgPT0gUmVnDQo+ID4gKwkgICAgICAgJiYgaS5vcFtzcmMyXS5yZWdzID09IGku b3BbZGVzdF0ucmVncw0KPiA+ICsJICAgICAgICYmIG9wdGltaXplID4gMQ0KPiA+ICsJICAgICAg ICYmIHQtPm9wY29kZV9tb2RpZmllci5jb21tdXRhdGl2ZSkNCj4gDQo+IENvbW1lbnQgYW5kIGNv ZGUgc3RpbGwgYXJlbid0IGluIGxpbmU6ICJzdXBwb3J0IHRvIHN3YXAgdGhlIHNvdXJjZQ0KPiBv cGVyYW5kcyINCj4gcmVhbGx5IGlzIHRoZSBEIGF0dHJpYnV0ZSBpbiB0aGUgb3Bjb2RlIHRhYmxl LCB3aGVyZWFzDQo+IHQtPm9wY29kZV9tb2RpZmllci5jb21tdXRhdGl2ZSBpcyByZWxhdGVkIHRv IHRoZSBDIGF0dHJpYnV0ZSAoYW5kIGFsbA0KPiB0LT50aHJlZQ0KPiBpbnNucyBuYW1lZCByZWFs bHkgYXJlIGNvbW11dGF0aXZlKS4gSXQgbG9va3MgdG8gbWUgdGhhdCB0aGUgY29kZSBpcyBjb3Jy ZWN0LA0KPiBzbyBpdCB3b3VsZCB0aGVuIGJlIHRoZSBjb21tZW50IHRoYXQgbWF5IG5lZWQgdXBk YXRpbmcuIEJ1dCBpdCBtYXkgYWxzbw0KPiBiZSBiZXR0ZXIgdG8gYWRkaXRpb25hbGx5IGNoZWNr IC5kIGhlcmUgKG1ha2luZyB0aGUgY29kZSByb2J1c3QgYWdhaW5zdCBDDQo+IGJlaW5nIGFkZGVk IHRvIHRoZSB0cnVseSBjb21tdXRhdGl2ZSB5ZXQgbm90IGVsaWdpYmxlIHRvIGJlIG9wdGltaXpl ZCBpbnNucykuDQo+IEluIHdoaWNoIGNhc2UgdGhlIGNvbW1lbnQgbWlnaHQgc2F5ICJhZGN4LCBh ZG94LCBhbmQgaW11bCwgd2hpbGUNCj4gY29tbXV0YXRpdmUsIGRvbid0IHN1cHBvcnQgdG8gc3dh cCB0aGUgc291cmNlIG9wZXJhbmRzIi4NCj4NCg0KSSB0aGluayB3ZSBkb24ndCBuZWVkIHRvIHdv cnJ5IGFib3V0IGl0IGZvciBub3csIGJlY2F1c2Ugd2UndmUgY29uc3RyYWluZWQgdGhlIGZ1bmN0 aW9uIHdpdGggdmV4dnZ2dnZ2ZGVzdCwgYW5kIHRoZXNlIGluc3RydWN0aW9ucyBtdXN0IGJlIE5E RCBpbnN0cnVjdGlvbnMuIEFuZCBhZGN4LCBhZG94IGFuZCBpbXVsIGRvbid0IGhhdmUgRCBhdHRy aWJ1dGUuIElmIEkgYWRkIGNoZWNrIC5kIGhlcmUsIEkgd2lsbCBuZWVkIHRvIGV4Y2x1ZGUgdGhl bS4gVGhlIGNvZGUgd2lsbCBiYWNrLCB3aGljaCB3ZSBoYWQgaW5pdGlhbGx5IGhvcGVkIHRvIGF2 b2lkIGJ5IHVzaW5nIEMuDQoNCj4NCj4gPiArCXJlYWRvbmx5X3ZhciA9IHNyYzE7DQo+ID4gKyAg ICAgIGlmIChyZWFkb25seV92YXIgIT0gKHVuc2lnbmVkIGludCkgfjApDQo+ID4gKwl7DQo+ID4g KwkgIGlmIChyZWFkb25seV92YXIgIT0gc3JjMikNCj4gPiArCSAgICBzd2FwXzJfb3BlcmFuZHMg KHJlYWRvbmx5X3Zhciwgc3JjMik7DQo+ID4gKw0KPiA+ICsJICAtLWkub3BlcmFuZHM7DQo+ID4g KwkgIC0taS5yZWdfb3BlcmFuZHM7DQo+ID4gKw0KPiA+ICsJICByZXR1cm4gdHJ1ZTsNCj4gPiAr CX0NCj4gPiArICAgIH0NCj4gPiArICByZXR1cm4gZmFsc2U7DQo+ID4gK30NCj4gPiArDQo+ID4g IC8qIEhlbHBlciBmdW5jdGlvbiBmb3IgdGhlIHByb2dyZXNzKCkgbWFjcm8gaW4gbWF0Y2hfdGVt cGxhdGUoKS4gICovDQo+ID4gc3RhdGljIElOTElORSBlbnVtIGkzODZfZXJyb3IgcHJvZ3Jlc3Mg KGVudW0gaTM4Nl9lcnJvciBuZXcsDQo+ID4gIAkJCQkJZW51bSBpMzg2X2Vycm9yIGxhc3QsDQo+ ID4gQEAgLTc3MjgsNiArNzc2NSwyMSBAQCBtYXRjaF90ZW1wbGF0ZSAoY2hhciBtbmVtX3N1ZmZp eCkNCj4gPiAgCSAgaS5tZW1zaGlmdCA9IG1lbXNoaWZ0Ow0KPiA+ICAJfQ0KPiA+DQo+ID4gKyAg ICAgIC8qIElmIHdlIGNhbiBvcHRpbWl6ZSBhIE5ERCBpbnNuIHRvIG5vbi1OREQgaW5zbiwgbGlr ZQ0KPiANCj4gVGhlIHRlcm1pbm9sb2d5IGhlcmUgd2FudHMgdG8gbWF0Y2ggdGhlIGZ1bmN0aW9u IG5hbWUgYmVsb3csIGkuZS4gKGFzDQo+IGluZGljYXRlZCBlbHNld2hlcmUgZm9yIHRoZSBuYW1l LCBpbiByZXBseSB0byB5b3VyIHF1ZXN0aW9uKSAibGVnYWN5Ig0KPiBpbnN0ZWFkIG9mICJub24t TkREIiAoYXNzdW1pbmcgdGhlIGZ1bmN0aW9uIG5hbWUgaXMgY2hhbmdlZCBhcyB3ZWxsLCBpbg0K PiBsaW5lIHdpdGggdGhhdCkuDQo+DQoNCk9LLg0KDQo+IA0KPiA+ICsJIGFkZCAlcjE2LCAlcjgs ICVyOCAtPiBhZGQgJXIxNiwgJXI4LA0KPiA+ICsJIGFkZCAgJXI4LCAlcjE2LCAlcjggLT4gYWRk ICVyMTYsICVyOCwgdGhlbiByZW1hdGNoIHRlbXBsYXRlLg0KPiA+ICsJIE5vdGUgdGhhdCB0aGUg c2VtYW50aWNzIGhhdmUgbm90IGJlZW4gY2hhbmdlZC4gICovDQo+ID4gKyAgICAgIGlmIChvcHRp bWl6ZQ0KPiA+ICsJICAmJiAhaS5ub19vcHRpbWl6ZQ0KPiA+ICsJICAmJiBpLnZlY19lbmNvZGlu ZyAhPSB2ZXhfZW5jb2RpbmdfZXZleA0KPiA+ICsJICAmJiB0ICsgMSA8IGN1cnJlbnRfdGVtcGxh dGVzLT5lbmQNCj4gPiArCSAgJiYgIXRbMV0ub3Bjb2RlX21vZGlmaWVyLmV2ZXgNCj4gDQo+IFRo aXMgaXMgbW9yZSBmcmFnaWxlIHRoYW4gaXQgbmVlZHMgdG8gYmU7IGl0IHdvdWxkIGltbyBiZSBi ZXR0ZXIgdG8gaW5kZWVkIGdvDQo+IGZyb20gb3Bjb2RlIHNwYWNlIG9mIHRoZSBzdXBwb3NlZCBh bHRlcm5hdGl2ZSBlbmNvZGluZy4gUGVyaGFwcyB0aGF0J3MNCj4gZ29pbmcgdG8gbWVhbiBjaGVj a2luZyBib3RoLg0KPg0KDQpCYXNlZCBvbiBvdXIgcHJldmlvdXMgZGlzY3Vzc2lvbiwgSSBtb2Rp ZmllZCB0Yy1pMzg2LmMgYXMgZm9sbG93cw0KDQorLyogQ2hlY2sgaWYgdGhlIGluc3RydWN0aW9u IHVzZSB0aGUgUkVYIHJlZ2lzdGVycy4gICovDQorc3RhdGljIGJvb2wNCitjaGVja19SZXhPcGVy YW5kcyAoY29uc3QgaW5zbl90ZW1wbGF0ZSAqdCkNCit7DQorICBmb3IgKHVuc2lnbmVkIGludCBv cCA9IDA7IG9wIDwgaS5vcGVyYW5kczsgb3ArKykNCisgICAgew0KKyAgICAgIGlmIChpLnR5cGVz W29wXS5iaXRmaWVsZC5jbGFzcyAhPSBSZWcNCisgICAgICAgICAvKiBTcGVjaWFsIGNhc2UgZm9y ICglZHgpIHdoaWxlIGRvaW5nIGlucHV0L291dHB1dCBvcCAqLw0KKyAgICAgICAgIHx8IGkuaW5w dXRfb3V0cHV0X29wZXJhbmQpDQorICAgICAgIGNvbnRpbnVlOw0KKw0KKyAgICAgIGlmIChpLm9w W29wXS5yZWdzLT5yZWdfZmxhZ3MgJiAoUmVnUmV4IHwgUmVnUmV4NjQpKQ0KKyAgICAgICByZXR1 cm4gdHJ1ZTsNCisgICAgfQ0KKw0KKyAgaWYgKChpLmluZGV4X3JlZyAmJiAoaS5pbmRleF9yZWct PnJlZ19mbGFncyAmIChSZWdSZXggfCBSZWdSZXg2NCkpKQ0KKyAgICAgIHx8IChpLmJhc2VfcmVn ICYmIChpLmJhc2VfcmVnLT5yZWdfZmxhZ3MgJiAoUmVnUmV4IHwgUmVnUmV4NjQpKSkpDQorICAg IHJldHVybiB0cnVlOw0KKw0KKyAgLyogQ2hlY2sgcHNldWRvIHByZWZpeCB7cmV4fSBhcmUgdmFs aWQuICAqLw0KKyAgaWYgKGkucmV4X2VuY29kaW5nKQ0KKyAgICByZXR1cm4gdHJ1ZTsNCisgIHJl dHVybiBmYWxzZTsNCit9DQorDQorLyogT3B0aW1pemUgQVBYIE5ERCBpbnNucyB0byBsZWdhY3kg aW5zbnMuICAqLw0KK3N0YXRpYyB1bnNpZ25lZCBpbnQNCitjb252ZXJ0X05ERF90b19sZWdhY3kg KGNvbnN0IGluc25fdGVtcGxhdGUgKnQpDQorew0KKyAgdW5zaWduZWQgaW50IHJlYWRvbmx5X3Zh ciA9IH4wOw0KKw0KKyAgaWYgKHQtPm9wY29kZV9tb2RpZmllci52ZXh2dnZ2ID09IFZleFZWVlZf RFNUDQorICAgICAgJiYgdC0+b3Bjb2RlX3NwYWNlID09IFNQQUNFX0VWRVhNQVA0DQorICAgICAg JiYgIWkuaGFzX25mDQorICAgICAgJiYgaS5yZWdfb3BlcmFuZHMgPj0gMikNCisgICAgew0KKyAg ICAgIHVuc2lnbmVkIGludCBkZXN0ID0gaS5vcGVyYW5kcyAtIDE7DQorICAgICAgdW5zaWduZWQg aW50IHNyYzEgPSBpLm9wZXJhbmRzIC0gMjsNCisgICAgICB1bnNpZ25lZCBpbnQgc3JjMiA9IChp Lm9wZXJhbmRzID4gMykgPyBpLm9wZXJhbmRzIC0gMyA6IDA7DQorDQorICAgICAgaWYgKGkudHlw ZXNbc3JjMV0uYml0ZmllbGQuY2xhc3MgPT0gUmVnDQorICAgICAgICAgJiYgaS5vcFtzcmMxXS5y ZWdzID09IGkub3BbZGVzdF0ucmVncykNCisgICAgICAgcmVhZG9ubHlfdmFyID0gc3JjMjsNCisg ICAgICAvKiBhZGN4LCBhZG94LCBhbmQgaW11bCwgd2hpbGUgY29tbXV0YXRpdmUsIGRvbid0IHN1 cHBvcnQgdG8gc3dhcA0KKyAgICAgICAgdGhlIHNvdXJjZSBvcGVyYW5kcy4gICovDQorICAgICAg ZWxzZSBpZiAoaS50eXBlc1tzcmMyXS5iaXRmaWVsZC5jbGFzcyA9PSBSZWcNCisgICAgICAgICAg ICAgICYmIGkub3Bbc3JjMl0ucmVncyA9PSBpLm9wW2Rlc3RdLnJlZ3MNCisgICAgICAgICAgICAg ICYmIG9wdGltaXplID4gMQ0KKyAgICAgICAgICAgICAgJiYgdC0+b3Bjb2RlX21vZGlmaWVyLmNv bW11dGF0aXZlKQ0KKyAgICAgICByZWFkb25seV92YXIgPSBzcmMxOw0KKyAgICB9DQorICByZXR1 cm4gcmVhZG9ubHlfdmFyOw0KK30NCisNCg0KQEAgLTc3MjgsNiArNzc4Miw1NSBAQCBtYXRjaF90 ZW1wbGF0ZSAoY2hhciBtbmVtX3N1ZmZpeCkNCiAgICAgICAgICBpLm1lbXNoaWZ0ID0gbWVtc2hp ZnQ7DQogICAgICAgIH0NCg0KKyAgICAgIC8qIElmIHdlIGNhbiBvcHRpbWl6ZSBhIE5ERCBpbnNu IHRvIGxlZ2FjeSBpbnNuLCBsaWtlDQorICAgICAgICBhZGQgJXIxNiwgJXI4LCAlcjggLT4gYWRk ICVyMTYsICVyOCwNCisgICAgICAgIGFkZCAgJXI4LCAlcjE2LCAlcjggLT4gYWRkICVyMTYsICVy OCwgdGhlbiByZW1hdGNoIHRlbXBsYXRlLg0KKyAgICAgICAgTm90ZSB0aGF0IHRoZSBzZW1hbnRp Y3MgaGF2ZSBub3QgYmVlbiBjaGFuZ2VkLiAgKi8NCisgICAgICBpZiAob3B0aW1pemUNCisgICAg ICAgICAmJiAhaS5ub19vcHRpbWl6ZQ0KKyAgICAgICAgICYmIGkudmVjX2VuY29kaW5nICE9IHZl eF9lbmNvZGluZ19ldmV4DQorICAgICAgICAgJiYgdCArIDEgPCBjdXJyZW50X3RlbXBsYXRlcy0+ ZW5kDQorICAgICAgICAgJiYgIXRbMV0ub3Bjb2RlX21vZGlmaWVyLmV2ZXgNCisgICAgICAgICAm JiB0WzFdLm9wY29kZV9zcGFjZSA8PSBTUEFDRV8wRjM4KQ0KKyAgICAgICB7DQorICAgICAgICAg dW5zaWduZWQgaW50IHJlYWRvbmx5X3ZhciA9IGNvbnZlcnRfTkREX3RvX2xlZ2FjeSAodCk7DQor ICAgICAgICAgc2l6ZV9tYXRjaCA9IHRydWU7DQorDQorICAgICAgICAgaWYgKHJlYWRvbmx5X3Zh ciAhPSAodW5zaWduZWQgaW50KSB+MCkNCisgICAgICAgICAgIHsNCisgICAgICAgICAgICAgZm9y IChqID0gMDsgaiA8IGkub3BlcmFuZHMgLSAyOyBqKyspDQorICAgICAgICAgICAgICAgew0KKyAg ICAgICAgICAgICAgICAgY2hlY2tfcmVnaXN0ZXIgPSBqOw0KKyAgICAgICAgICAgICAgICAgaWYg KHQtPm9wY29kZV9tb2RpZmllci5kKQ0KKyAgICAgICAgICAgICAgICAgICBjaGVja19yZWdpc3Rl ciBePSAxOw0KKyAgICAgICAgICAgICAgICAgb3ZlcmxhcDAgPSBvcGVyYW5kX3R5cGVfYW5kIChp LnR5cGVzW2NoZWNrX3JlZ2lzdGVyXSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdFsxXS5vcGVyYW5kX3R5cGVzW2NoZWNrX3JlZ2lzdGVyXSk7DQorICAg ICAgICAgICAgICAgICBpZiAoIW9wZXJhbmRfdHlwZV9tYXRjaCAob3ZlcmxhcDAsIGkudHlwZXNb Y2hlY2tfcmVnaXN0ZXJdKSkNCisgICAgICAgICAgICAgICAgICAgc2l6ZV9tYXRjaCA9IGZhbHNl Ow0KKyAgICAgICAgICAgICAgIH0NCisNCisgICAgICAgICAgICAgaWYgKHNpemVfbWF0Y2gNCisg ICAgICAgICAgICAgICAgICYmICh0WzFdLm9wY29kZV9zcGFjZSA8PSBTUEFDRV8wRg0KKyAgICAg ICAgICAgICAgICAgICAgIHx8ICghY2hlY2tfRWdwck9wZXJhbmRzICh0ICsgMSkJIC8vIFRoZXNl IGNvbmRpdGlvbnMgYXJlIGV4Y2x1ZGUgYWRjeC9hZG94IHdpdGggaW5hcHByb3ByaWF0ZSByZWdp c3RlcnMuDQorICAgICAgICAgICAgICAgICAgICAgICAgICYmICFjaGVja19SZXhPcGVyYW5kcyAo dCArIDEpDQorICAgICAgICAgICAgICAgICAgICAgICAgICYmICFpLm9wW2kub3BlcmFuZHMgLSAx XS5yZWdzLT5yZWdfdHlwZS5iaXRmaWVsZC5xd29yZCkpKQ0KKyAgICAgICAgICAgICAgIHsNCisg ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBzcmMxID0gaS5vcGVyYW5kcyAtIDI7DQorICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgc3JjMiA9IChpLm9wZXJhbmRzID4gMykgPyBpLm9w ZXJhbmRzIC0gMyA6IDA7DQorDQorICAgICAgICAgICAgICAgICBpZiAocmVhZG9ubHlfdmFyICE9 IHNyYzIpDQorICAgICAgICAgICAgICAgICAgIHN3YXBfMl9vcGVyYW5kcyAocmVhZG9ubHlfdmFy LCBzcmMyKTsNCisNCisgICAgICAgICAgICAgICAgIC0taS5vcGVyYW5kczsNCisgICAgICAgICAg ICAgICAgIC0taS5yZWdfb3BlcmFuZHM7DQorDQorICAgICAgICAgICAgICAgICBzcGVjaWZpY19l cnJvciA9IHByb2dyZXNzIChpbnRlcm5hbF9lcnJvcik7DQorICAgICAgICAgICAgICAgICBjb250 aW51ZTsNCisgICAgICAgICAgICAgICB9DQorDQorICAgICAgICAgICB9DQorICAgICAgIH0NCisN CiAgICAgICAvKiBXZSd2ZSBmb3VuZCBhIG1hdGNoOyBicmVhayBvdXQgb2YgbG9vcC4gICovDQog ICAgICAgYnJlYWs7DQoNCldoYXQncyB5b3VyIG9waW5pb24/DQoNCkJScywNCkxpbg0K