From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2A5CF460C9; Wed, 29 Jan 2025 06:04:47 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id DC28840275; Wed, 29 Jan 2025 06:04:45 +0100 (CET) Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.12]) by mails.dpdk.org (Postfix) with ESMTP id 5259040274 for ; Wed, 29 Jan 2025 06:04:42 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1738127084; x=1769663084; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=pb672LSf1XNWHnWFZH41C453PmyZ6OlLClqNjvzlp4I=; b=HfhMhnUTRCKOGqk7+6uZg8t9YwV8steQeDTvDvJGp5EYOfNQfDHQRfgV JLNKlgbzJBFZ5KS9bt6GDE6zlBsOidGARQ7NvjQ9s9LGuxw+gdt3G2A6V AeIEaDs38APvmVMW2jn8erThZa9XNptTKB7H51mJ8jOyFakJub2TPSshQ HPhdYWaY0Cr2W7Ocpx89g2LZl/QcMgogt45SxoKUM8KB5Y3IxUobL0qR0 Nc4ALThcrix8Unl3XtdMT3Lod+grvWYdLH04x3wvGzWH3pQWZV2m61+nP tM3jB3Gc05u9zDn7UBr69Ism645LpSaP3Rd5L+VSv2dyff9ipambpszEE Q==; X-CSE-ConnectionGUID: ypPAIKVdTxSeXnL+jaErKQ== X-CSE-MsgGUID: wqWGwnuZTWe/ea4vUDvm9w== X-IronPort-AV: E=McAfee;i="6700,10204,11329"; a="42559503" X-IronPort-AV: E=Sophos;i="6.13,242,1732608000"; d="scan'208";a="42559503" Received: from fmviesa002.fm.intel.com ([10.60.135.142]) by fmvoesa106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Jan 2025 21:04:42 -0800 X-CSE-ConnectionGUID: CRe3q/3nT0eOIiLJ3SRSiQ== X-CSE-MsgGUID: E8LzPYotSzStx6CeclhvjA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.12,224,1728975600"; d="scan'208";a="132209652" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by fmviesa002.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 28 Jan 2025 21:04:41 -0800 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.44; Tue, 28 Jan 2025 21:04:40 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.44 via Frontend Transport; Tue, 28 Jan 2025 21:04:40 -0800 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.41) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.44; Tue, 28 Jan 2025 21:04:40 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=rGUCT59ws358gZ8y3ursXUhOrq/1QCiR+N3fJq23He6ni2M3d4/Sel9xCUy/1rVNqEslpXUIB2h/aQawDFxUO+2+g4ok2459kDtJxrM+obdMcq1+T/ZoYJ2j7+TFtZAmuaeVAzfGU80G0bP9AJhxW8jDKaePUH9L0Ua+RAlOziXZWwrqZPZBzo7JXxtC0JCfQTDI0+VDGeQXoRJHi2wlrLMG8WGSeMQgWlwNT7yq2GHSikKK/NbZF8+AhGjbM60xh/YUESSPVhYbYSSPyO916kdi8ka2gx0QZLAHs2vceifYzW2YbmArbXdIVCBsrrcmlvqWHp9PRagEptSVGi4gtA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=pb672LSf1XNWHnWFZH41C453PmyZ6OlLClqNjvzlp4I=; b=N2EcrasAvvEoCGrJkReMrpRlcszMbqwXf1lY888sN6G2NQVBCE+PChdMz0LSR3WsziIsqnUphzavSjXMLBmTxsKsxwiqm8PBx66emGk/gMcS/mBIxUss4dVOet8Mdcn1Mi9YmH5KW3JppjAwCqDsyerDhw/wS5uMXBEtb/i686aLBwjjidT5kXIXgo7n9CcQH27iJ7Uom0z7xnS8aIoU+26r5AHDmEmXtLspcl0yqHCzGyIo+zj1MPhy3z9ctwMKfH97CdhiHKnzwD3vN3xeUXIEa83GreGr7YczsbEM3ML3a3KkZOulLDkUsVNjTLE5pCS9KVYTpTThiTUaWYwn0g== 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 SN7PR11MB7044.namprd11.prod.outlook.com (2603:10b6:806:29b::5) by CY5PR11MB6187.namprd11.prod.outlook.com (2603:10b6:930:25::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.17; Wed, 29 Jan 2025 05:04:38 +0000 Received: from SN7PR11MB7044.namprd11.prod.outlook.com ([fe80::79ff:96e:c439:d42e]) by SN7PR11MB7044.namprd11.prod.outlook.com ([fe80::79ff:96e:c439:d42e%3]) with mapi id 15.20.8377.009; Wed, 29 Jan 2025 05:04:37 +0000 From: "Naga Harish K, S V" To: Shijith Thotton , "dev@dpdk.org" CC: Pavan Nikhilesh Bhagavatula , "Pathak, Pravin" , Hemant Agrawal , "Sachin Saxena" , Mattias R_nnblom , Jerin Jacob , Liang Ma , "Mccarthy, Peter" , "Van Haaren, Harry" , "Carrillo, Erik G" , "Gujjar, Abhinandan S" , Amit Prakash Shukla , "Burakov, Anatoly" Subject: RE: [RFC PATCH] eventdev: adapter API to configure multiple Rx queues Thread-Topic: [RFC PATCH] eventdev: adapter API to configure multiple Rx queues Thread-Index: AQHbUeh/1TTvq+W+HE2Il99vRL0wEbLydmwQgBDaXoCAEXJrgIADcFmwgADoHACABn+h0IAAkaaAgAJIXSCAAI3tAIACfTWQgABpQACAB4TKkA== Date: Wed, 29 Jan 2025 05:04:37 +0000 Message-ID: References: <20241219073405.1724200-1-sthotton@marvell.com> In-Reply-To: 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: SN7PR11MB7044:EE_|CY5PR11MB6187:EE_ x-ms-office365-filtering-correlation-id: fe2a6c51-77f0-4fc9-098b-08dd40226df1 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?eWdYcjhLWVljdUp0YlFqbXcxbGNGVXM5eFlLaEU3amU5MlNZODhLQjR2WHZs?= =?utf-8?B?WHRDY0pIR3JKZ1VIZUJSSVZmSnhvelZBL015OTRMVkwvMzNuMVdBcHo3VGUz?= =?utf-8?B?aDdvMUN0bDBIOG5uYXFNM2QzUm1YN01OR2Zta0t0Rnl1dUZDM2hFeWk0K1gv?= =?utf-8?B?T3BJaExGeEx4MXhBQ3hlb0Z4b0VpS21ZdnkxaHlHekRNejZiZGpneGw1bHdF?= =?utf-8?B?Y2tncTZTV3lEczk5WXAvSmpNcUh0ekh4K2lGS0d2YmY2czlvNzBhOXcyRStr?= =?utf-8?B?cW4rcWV2YkhpUkl3eVJWK0hiWTJvcUZhakx3RVB3eVh5TStLcVRqRG1UOHh1?= =?utf-8?B?Y25OOTZsK3BwNGJrODZCZUJ4b3Y0Ny91RjA5SWdwTWlpSU1qQzN0TlFnSzNK?= =?utf-8?B?bENITTdyWjJhdjd1Ympua3lLZlRvNGltdGVESUJyY0Z0MGc5akxtZDZPbHZp?= =?utf-8?B?V2dWdGpOMStCWERKZHg1Y1VPakx2czR3VWFqeXdEbzRPL2EwUGh1TlVibGd6?= =?utf-8?B?NUhKNS9EZnpudy9qQk9GMWVEV0dYSkZYbFdqSFVqSERuMFpBUU1EL3MrWFo1?= =?utf-8?B?RVFQR1UydDgvSE9hZVFQbTZvK3pieHRXNlk5dTR1UHpscTRjQjRYQ2hUOVRB?= =?utf-8?B?Mk8rcENMb1ZVZ1dMeUppTEZ0aWo2TVAzTzRoN21zZkJMOE84WU5UVkl4QTlD?= =?utf-8?B?bmU0Z0lvY1I0eTQ1ZzBlYjJPVTFxUWdubGpFWGc2VXIrWEk1cHlFeGkwd3Vh?= =?utf-8?B?UnRlZ0VGL0Y3MElEbzV0cVB1bTY0Z0IzVTRZS283bmVNaFNIZll6aGwzVmhU?= =?utf-8?B?NlJPeXNoSzRBVHBvM1pVdVlsSTU1QnZoK2lJNFdnNHV1ZFlPZXhiUnBBZmNE?= =?utf-8?B?ZmhPOVJrS1JrSnBDV1k2SllheGVBMnZsSEViY0F1dk5UYzJxV3BlOWFsY0Vs?= =?utf-8?B?OERBY01RM1AzLzBjSjlWUVdSU2pKakxlMVlpQnMvUHQwYmN1NDRkMlE1WDF3?= =?utf-8?B?anFqK1p4U2s2a3JOcTNjTUV3dU9wUUd6ZytjQmRua0hmV0UvVkdUR0ZTTkgr?= =?utf-8?B?Q2JyZWUyS2JBYXd0ejVaclBkZGZvMm1aeUdmRTlKM2padUQvRjFldmpuelZ6?= =?utf-8?B?OTJCZERlWkpmZDQvVG42ZU4yQk1uQ2hpT0RxdzExd1k5UVZ3cnAwb2pjKzY1?= =?utf-8?B?YTZESjBrd3NNTU0yL1l5a2xxOGNVMURnVnl1MnZueXpEWUVSc3NPY2w4OWtr?= =?utf-8?B?YlRsM0lQUElCUkQyUWdLL2FmejRnY2NaWHlLRnhFWllVcDRhNHdkNGtjblZj?= =?utf-8?B?YldoYmM5bUhNWUJabldWTTlaS3kwQk0zYkFLSktuNUlwdjdITy94TlVwV3Np?= =?utf-8?B?bUV6TWJNSXJuMGMreXpZMGFDMFBkZHBhV3BNOW9Qb0pWWElIQlJNYkZHdENV?= =?utf-8?B?T3RiOGxKYVY3eTJ2d2c4OThRcGYvdWU3cDJrMWhDSHJrbU83Mnc0TWZWaDUr?= =?utf-8?B?a1Q1MTdJdEEyMGkzMUdvWG44WnFrRjYyOUFLM2lQbHZBM1FYU2E2N0tBbWEz?= =?utf-8?B?ZlBYT1FhRTBCYnJLMjdhaGtDcWZxOTNtK3gxa2QzYTduZmxXWFhvVE45QWY1?= =?utf-8?B?djM4NEdDUHdJOVFwK3BJeFFicE9MR01EQ3BPaC83bXpPVEhhWUh0M1hxcEdq?= =?utf-8?B?VDAxemJhMDVxMjVxQUhMbWxia2lqNTN6Q3Y0bWNBVzFYYTJZUmhKY1k0a09l?= =?utf-8?B?RHlIV0pTQmJWMjc3azhkbXFpc1A5c2hnUGtyN0NxMkVIM2FXckpVUnQzOTg3?= =?utf-8?B?TWZkNWRDWk1idWVuNlRwcytia2hYcDhQZ0psaUpiMmxFRUpJdHo3dG5VZWxx?= =?utf-8?B?NjVPK2lRRVQ3dFhhYmhPeEN0OUhwcmw2VG9qVlo1V0p4MTU4Vzh6M1U3SWFW?= =?utf-8?Q?mnaGaEY1S12HCKyDibTKn7sSkFtG6kzY?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN7PR11MB7044.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UUIxdzhaUGdVekV1Ynk1b2huYjV5RElwZU9WSmxsY2x5VjZXVTYvMWV2Tjc5?= =?utf-8?B?bll1Z2tjdWZQbXhBeENUN2VpVU5PY0VweFpIMG8vMkZUUUJ4bENyMkc1ZWtz?= =?utf-8?B?a0xESGlsQ0F1eGJFVVhzZFV3ZXdDanBMY21kTkpnczNkUDRpYzZWS0pXZTZZ?= =?utf-8?B?UXp0ek45WEFBWGJXY3d2Z1JaMGdSUzBWTjFJdzZxTGJlZXI0L3EvVUJpQyth?= =?utf-8?B?VFQ4OWRBakhGNkU0OGZERmY5Q2ZyNUNYYzFOV255TGhHZ1dnNW55YngxWkxE?= =?utf-8?B?eUl3Z1Q5S2JINlV5Wm1KS1pPVEdtUDE2WEx2ZVFRRXRHMU9IZ3h4U0hrTGZu?= =?utf-8?B?YjZob0ZMckxDb0dyOC9mNWp1ODBsc08vcHdwVnU5aVNDSnhZREtyNnlIaVpS?= =?utf-8?B?VExzN0ZEcFpoaUd4T2lNSFhWaWdoemlneHBaVEYzMVZyVGE5VWVZZ3AwdlRo?= =?utf-8?B?bFBrazQrdG5xUUtGNE83WTJwL3F3OXNjaHZ3N3c3THJGNnRZb2ZOMW15V2Jh?= =?utf-8?B?MEY4dVZETm43cW1Ya0RLVzdENzdaa3FxSEZnNStSc0tERk5CR1NlRDh5WHdw?= =?utf-8?B?dGlXNkkyTzlWNWp1eS9ZRjBZcG15YmxnN2FDUHIrNWxQSFZRR0N6aEkram5S?= =?utf-8?B?WEprd2FmaDNubkZOdXM1eHRWS1RINEFJc3dBa0FYSGxROXZQTEcrdzNGc0NN?= =?utf-8?B?K2JJRHF3T1pKUHY3anVValhoNG5uL2RsVVZaQlBXeE5BYnkrcFhUZUlPZ1V4?= =?utf-8?B?c1luT1hxMHI2d2ZXdEtkbnQ4SHpzeW15amNpV3lhd3YrbGI0SzZuWmRiaUJT?= =?utf-8?B?V2RXUVhBeE9pVzB2a3pNcDBOOHdIeFZUM0VrcldHVGNDNW9USmwybDFCQVVD?= =?utf-8?B?SjRtaFVsaFNvSUNjTm9iTnc5TDBoMzRPUWJhUHRSckV3TVA1RjYzKzVVY3Bn?= =?utf-8?B?L2xXTFNYNm1JbnpDUHBDUnJwMmNSUzRETWVsUjBEMlRmdVNqb0YwdGpEN2xt?= =?utf-8?B?NVVOemdkUC9aNkUxNG1vZmNoWURJVjVNdUFMZjh2eHVWNjFWcFNsYk91a3RR?= =?utf-8?B?Zm1RbG9VYTRqVVlNUXFmWUVZTHdxdlVpdDZRZlNaRnJZc25IUUNscnZZajdp?= =?utf-8?B?UE5yc2tBZzZmc1IyMWlSMFZ6VWFvWTJoZEFQbzRrd3pHenZwbUwyNE8wdVZr?= =?utf-8?B?TVYyYm04MEVocjlQOFhoRFhJNjJGK3lGR0RNZ2o0eTJadXBJU1J4dTNtRmdv?= =?utf-8?B?MnFoSmFOdEdnYzZ0anNJcktaalVJTlBwTUFINldDa3g4VnRWb3o3ak04b1Mx?= =?utf-8?B?OGh2S0RrVy9sZ1VmVmp1QXpsc2pxNmdrcHF5dzJXd1FyOCtyMFIwVS9aOWNB?= =?utf-8?B?d1NpYXkvcjY4eWdPQnIzcUYxUHZMRVhHOGEwbDBqN1MrY2t5RlBuZEJYWjJY?= =?utf-8?B?cGxCbVM4NklKcVFpSkRoUnM3Z21XbzlQa0ZKUHVHVFhrSE1KWFFQTFd4bVhM?= =?utf-8?B?MmQ3eTNVMmw2MFJ0ZzN4RnA3cXpLbmFXNGx1WXFqTUdFK1NmbUJCVmEwM3Fq?= =?utf-8?B?d2VNVTRRd1hxR2VPNUo5bVV3akpxNWN2VzRvK1JFUzZJaTZmUGc5TjRRQ2Ew?= =?utf-8?B?K2NBY3BWMGFKaXVKMlJndk42VytXNkgyWnpNT0tMcGdUZEswWEM5aFJ6TWpq?= =?utf-8?B?MnF0M1liL3FuM3VvaEpEejFWUXArVktWdzFvaHp4aGRZZXlxS0FmWVN1YkI3?= =?utf-8?B?TVUxK3FOamJKVUZFN0RVWlpobnA3NVZ0Qmw4OGZPclJOdC9WYVZhNjNkc01Z?= =?utf-8?B?MXRxVitHZXhiRXB4b00zU25HOVVycEhtTHVvTURCUitTeUpSUHNMYnNyWVlN?= =?utf-8?B?Z1ZZU3RlRlF1cUpTZW00cmozL1R3R1FpbXRDNXRMYTNrSE56QXpKVlU1akh6?= =?utf-8?B?ZTF3TVRLWGgyYjFxaGlVeUVOcFZmYUNxaFhnZEpDSTlGOFc1UVJhTytMK2Ja?= =?utf-8?B?ZVFiaktFS3lSaG14NFZCZmo2SEpVM0t5eWR6REpHaGttRjk3S2h6MnIvOU5o?= =?utf-8?B?YXBObTUrYkpVVlQ4SDU2WW5GNThoS2NLbHJRNmlUTVVuVytTNVFYb09IZU1k?= =?utf-8?B?L0RNbEwzWHArR2J3ZGMzMVBZMXJndUtNV1k4NmVaaHRuS2ZlR2IwRGJtQ01B?= =?utf-8?B?T3c9PQ==?= 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: SN7PR11MB7044.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: fe2a6c51-77f0-4fc9-098b-08dd40226df1 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Jan 2025 05:04:37.3933 (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: QMDrQp03drpotd0NC/FeXnNMMAnHg3eScPM/7z8vddzIRogFJ6psoHOipYLxFD3jXMCZuxbwTI7nmPLykoE6JCKSFfON6JKA6pviFtd43/4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR11MB6187 X-OriginatorOrg: intel.com X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogU2hpaml0aCBUaG90dG9u IDxzdGhvdHRvbkBtYXJ2ZWxsLmNvbT4NCj4gU2VudDogRnJpZGF5LCBKYW51YXJ5IDI0LCAyMDI1 IDM6MzAgUE0NCj4gVG86IE5hZ2EgSGFyaXNoIEssIFMgViA8cy52Lm5hZ2EuaGFyaXNoLmtAaW50 ZWwuY29tPjsgZGV2QGRwZGsub3JnDQo+IENjOiBQYXZhbiBOaWtoaWxlc2ggQmhhZ2F2YXR1bGEg PHBiaGFnYXZhdHVsYUBtYXJ2ZWxsLmNvbT47IFBhdGhhaywNCj4gUHJhdmluIDxwcmF2aW4ucGF0 aGFrQGludGVsLmNvbT47IEhlbWFudCBBZ3Jhd2FsDQo+IDxoZW1hbnQuYWdyYXdhbEBueHAuY29t PjsgU2FjaGluIFNheGVuYSA8c2FjaGluLnNheGVuYUBueHAuY29tPjsNCj4gTWF0dGlhcyBSX25u YmxvbSA8bWF0dGlhcy5yb25uYmxvbUBlcmljc3Nvbi5jb20+OyBKZXJpbiBKYWNvYg0KPiA8amVy aW5qQG1hcnZlbGwuY29tPjsgTGlhbmcgTWEgPGxpYW5nbWFAbGlhbmdiaXQuY29tPjsgTWNjYXJ0 aHksIFBldGVyDQo+IDxwZXRlci5tY2NhcnRoeUBpbnRlbC5jb20+OyBWYW4gSGFhcmVuLCBIYXJy eQ0KPiA8aGFycnkudmFuLmhhYXJlbkBpbnRlbC5jb20+OyBDYXJyaWxsbywgRXJpayBHIDxlcmlr LmcuY2FycmlsbG9AaW50ZWwuY29tPjsNCj4gR3VqamFyLCBBYmhpbmFuZGFuIFMgPGFiaGluYW5k YW4uZ3VqamFyQGludGVsLmNvbT47IEFtaXQgUHJha2FzaCBTaHVrbGENCj4gPGFtaXRwcmFrYXNo c0BtYXJ2ZWxsLmNvbT47IEJ1cmFrb3YsIEFuYXRvbHkNCj4gPGFuYXRvbHkuYnVyYWtvdkBpbnRl bC5jb20+DQo+IFN1YmplY3Q6IFJFOiBbUkZDIFBBVENIXSBldmVudGRldjogYWRhcHRlciBBUEkg dG8gY29uZmlndXJlIG11bHRpcGxlIFJ4DQo+IHF1ZXVlcw0KPiANCj4gPj4gPj4gPj4gPj4gPj4+ IFRoaXMgUkZDIGludHJvZHVjZXMgYSBuZXcgQVBJLA0KPiA+PiA+PiA+PiA+PiA+Pj4gcnRlX2V2 ZW50X2V0aF9yeF9hZGFwdGVyX3F1ZXVlc19hZGQoKSwNCj4gPj4gPj4gPj4gPj4gPj4+IGRlc2ln bmVkIHRvIGVuaGFuY2UgdGhlIGZsZXhpYmlsaXR5IG9mIGNvbmZpZ3VyaW5nDQo+ID4+ID4+ID4+ ID4+ID4+PiBtdWx0aXBsZSBSeCBxdWV1ZXMgaW4gZXZlbnRkZXYgUnggYWRhcHRlci4NCj4gPj4g Pj4gPj4gPj4gPj4+DQo+ID4+ID4+ID4+ID4+ID4+PiBUaGUgZXhpc3RpbmcgcnRlX2V2ZW50X2V0 aF9yeF9hZGFwdGVyX3F1ZXVlX2FkZCgpIEFQSQ0KPiA+PiA+PiA+PiA+PiA+Pj4gc3VwcG9ydHMg YWRkaW5nIG11bHRpcGxlIHF1ZXVlcyBieSBzcGVjaWZ5aW5nDQo+ID4+ID4+ID4+ID4+ID4+PiBy eF9xdWV1ZV9pZCA9IC0xLCBidXQgaXQgbGFja3MgdGhlIGFiaWxpdHkgdG8NCj4gPj4gPj4gPj4g Pj4gPmFwcGx5DQo+ID4+ID4+ID4+ID4+ID4+PiBzcGVjaWZpYyBjb25maWd1cmF0aW9ucyB0byBl YWNoIG9mIHRoZSBhZGRlZCBxdWV1ZXMuDQo+ID4+ID4+ID4+ID4+ID4+Pg0KPiA+PiA+PiA+PiA+ PiA+Pg0KPiA+PiA+PiA+PiA+PiA+PlRoZSBhcHBsaWNhdGlvbiBjYW4gc3RpbGwgdXNlIHRoZSBl eGlzdGluZw0KPiA+PiA+PiA+PiA+PiA+PnJ0ZV9ldmVudF9ldGhfcnhfYWRhcHRlcl9xdWV1ZV9h ZGQoKSBBUEkgaW4gYSBsb29wIHdpdGgNCj4gPj4gPj4gPj4gPj4gPj5kaWZmZXJlbnQgY29uZmln dXJhdGlvbnMgZm9yIGRpZmZlcmVudCBxdWV1ZXMuDQo+ID4+ID4+ID4+ID4+ID4+DQo+ID4+ID4+ ID4+ID4+ID4+VGhlIHByb3Bvc2VkIEFQSSBpcyBub3QgZW5hYmxpbmcgbmV3IGZlYXR1cmVzIHRo YXQgY2Fubm90DQo+ID4+ID4+ID4+ID4+ID4+YmUgYWNoaWV2ZWQgd2l0aCB0aGUgZXhpc3Rpbmcg QVBJLg0KPiA+PiA+PiA+PiA+PiA+PkFkZGluZyBuZXcgQVBJcyB3aXRob3V0IG11Y2ggdXNlZnVs bmVzcyBjYXVzZXMgdW5uZWNlc3NhcnkNCj4gPj4gPj4gPj4gPj4gPj5jb21wbGV4aXR5L2NvbmZ1 c2lvbiBmb3IgdXNlcnMuDQo+ID4+ID4+ID4+ID4+ID4+DQo+ID4+ID4+DQo+ID4+ID4+IFRoZSBl dGhfcnhfYWRhcHRlcl9xdWV1ZV9hZGQgZXZlbnRkZXYgUE1EIG9wZXJhdGlvbiBjYW4gYmUNCj4g dXBkYXRlZA0KPiA+PiB0bw0KPiA+PiA+PiBzdXBwb3J0IGJ1cnN0IG1vZGUuIEludGVybmFsbHks IGJvdGggdGhlIG5ldyBhbmQgZXhpc3RpbmcgQVBJcyBjYW4NCj4gPj4gPj4gdXRpbGl6ZSB0aGlz IHVwZGF0ZWQgb3BlcmF0aW9uLiBUaGlzIGVuYWJsZXMgYXBwbGljYXRpb25zIHRvIHVzZQ0KPiA+ PiA+PiBlaXRoZXIgQVBJIGFuZCBhY2hpZXZlDQo+ID4+ID50aGUNCj4gPj4gPj4gc2FtZSByZXN1 bHRzIHdoaWxlIGFkZGluZyBhIHNpbmdsZSBxdWV1ZS4gRm9yIGFkZGluZyBtdWx0aXBsZSBSWA0K PiA+PiA+PiBxdWV1ZXMgdG8NCj4gPj4gPnRoZQ0KPiA+PiA+PiBhZGFwdGVyLCB0aGUgbmV3IEFQ SSBjYW4gYmUgdXNlZCBhcyBpdCBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBvbGQgQVBJLg0KPiA+ PiA+Pg0KPiA+PiA+DQo+ID4+ID5Ob3QgYWxsIHBsYXRmb3JtcyBpbXBsZW1lbnQgdGhlIGV2ZW50 ZGV2IFBNRCBvcGVyYXRpb24gZm9yDQo+ID4+ID5ldGhfcnhfYWRhcHRlcl9xdWV1ZV9hZGQsIHNv IHRoaXMgZG9lcyBub3QgYXBwbHkgdG8gYWxsIHBsYXRmb3Jtcy4NCj4gPj4gPg0KPiA+Pg0KPiA+ PiBZZXMsIGJ1dCB0aGVyZSBhcmUgaGFyZHdhcmUgUE1EcyB0aGF0IGltcGxlbWVudA0KPiA+ZXRo X3J4X2FkYXB0ZXJfcXVldWVfYWRkDQo+ID4+IG9wLCBhbmQgSSBhbSBsb29raW5nIGZvciBhIHNv bHV0aW9uIHRoYXQgd29ya3MgZm9yIGJvdGggY2FzZXMuDQo+ID4+DQo+ID4+IFRoZSBpZGVhIGlz IHRvIHVzZSB0aGUgbmV3IGV2ZW50ZGV2IFBNRCBvcGVyYXRpb24NCj4gPj4gKGV0aF9yeF9hZGFw dGVyX3F1ZXVlc19hZGQpIHdpdGhpbiB0aGUNCj4gPj4gcnRlX2V2ZW50X2V0aF9yeF9hZGFwdGVy X3F1ZXVlX2FkZCgpIEFQSS4gVGhlIHBhcmFtZXRlcnMgb2YgdGhpcyBBUEkNCj4gPj4gY2FuIGJl IGVhc2lseSBtYXBwZWQgdG8gYW5kIHN1cHBvcnRlZCBieSB0aGUgbmV3IFBNRCBvcGVyYXRpb24u DQo+ID4+DQo+ID4NCj4gPlRoaXMgcmVxdWlyZXMgYSBjaGFuZ2UgdG8gdGhlIHJ0ZV9ldmVudF9l dGhfcnhfYWRhcHRlcl9xdWV1ZV9hZGQoKQ0KPiA+c3RhYmxlIEFQSSBwYXJhbWV0ZXJzLg0KPiA+ VGhpcyBpcyBhbiBBQkkgYnJlYWthZ2UgYW5kIG1heSBub3QgYmUgcG9zc2libGUgbm93Lg0KPiA+ SXQgcmVxdWlyZXMgY2hhbmdlcyB0byBtYW55IGN1cnJlbnQgYXBwbGljYXRpb25zIHRoYXQgYXJl IHVzaW5nIHRoZQ0KPiA+cnRlX2V2ZW50X2V0aF9yeF9hZGFwdGVyX3F1ZXVlX2FkZCgpIHN0YWJs ZSBBUEkuDQo+ID4NCj4gDQo+IFdoYXQgSSBtZWFudCBieSBtYXBwaW5nIHdhcyB0byByZXRhaW4g dGhlIHN0YWJsZSBBUEkgcGFyYW1ldGVycyBhcyB0aGV5IGFyZS4NCj4gSW50ZXJuYWxseSwgdGhl IEFQSSBjYW4gdXNlIHRoZSBwcm9wb3NlZCBldmVudGRldiBQTUQgb3BlcmF0aW9uDQo+IChldGhf cnhfYWRhcHRlcl9xdWV1ZXNfYWRkKSB3aXRob3V0IGNhdXNpbmcgYW4gQUJJIGJyZWFrLCBhcyBz aG93biBiZWxvdy4NCj4gDQo+IGludCBydGVfZXZlbnRfZXRoX3J4X2FkYXB0ZXJfcXVldWVfYWRk KHVpbnQ4X3QgaWQsIHVpbnQxNl90IGV0aF9kZXZfaWQsDQo+ICAgICAgICAgICAgICAgICBpbnQz Ml90IHJ4X3F1ZXVlX2lkLA0KPiAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHJ0ZV9ldmVu dF9ldGhfcnhfYWRhcHRlcl9xdWV1ZV9jb25mICpjb25mKSB7DQo+ICAgICAgICAgaWYgKHJ4X3F1 ZXVlX2lkID09IC0xKQ0KPiAgICAgICAgICAgICAgICAgZGV2LT5kZXZfb3BzLT5ldGhfcnhfYWRh cHRlcl9xdWV1ZXNfYWRkKSgNCj4gICAgICAgICAgICAgICAgICAgICAgICAgZGV2LCAmcnRlX2V0 aF9kZXZpY2VzW2V0aF9kZXZfaWRdLCAwLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICBjb25m LCAwKTsNCj4gICAgICAgICBlbHNlDQo+ICAgICAgICAgICAgICAgICBkZXYtPmRldl9vcHMtPmV0 aF9yeF9hZGFwdGVyX3F1ZXVlc19hZGQpKA0KPiAgICAgICAgICAgICAgICAgICAgICAgICBkZXYs ICZydGVfZXRoX2RldmljZXNbZXRoX2Rldl9pZF0sICZyeF9xdWV1ZV9pZCwNCj4gICAgICAgICAg ICAgICAgICAgICAgICAgY29uZiwgMSk7DQo+IH0NCj4gDQo+IFdpdGggYWJvdmUgY2hhbmdlLCBv bGQgb3AgKGV0aF9yeF9hZGFwdGVyX3F1ZXVlX2FkZCkgY2FuIGJlIHJlbW92ZWQgYXMNCj4gYm90 aCBBUEkgKHN0YWJsZSBhbmQgcHJvcG9zZWQpIHdpbGwgYmUgdXNpbmcgZXRoX3J4X2FkYXB0ZXJf cXVldWVzX2FkZC4NCj4gDQoNClRoZSB3aG9sZSBpZGVhIGlzIG5vdCB0byBoYXZlIHRoZSBwcm9w b3NlZCBBUEksIGFzIGl0IGRvZXMgbm90IGFkZCBhbnkgbmV3IGZlYXR1cmUgYnV0IGp1c3QgYSBj b21iaW5hdGlvbiBvZiBleGlzdGluZyBBUEkuDQpJdCBpcyBhbHJlYWR5IGRpc2N1c3NlZMKgaW4g dGhlIHByZXZpb3VzIHRocmVhZHMuDQpUaGUgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24gZGV0YWls cyBhcmUgbm90IGEgY29uY2Vybi4NCg0KPiA+PiB0eXBlZGVmIGludCAoKmV2ZW50ZGV2X2V0aF9y eF9hZGFwdGVyX3F1ZXVlc19hZGRfdCkoDQo+ID4+ICAgICBjb25zdCBzdHJ1Y3QgcnRlX2V2ZW50 ZGV2ICpkZXYsDQo+ID4+ICAgICBjb25zdCBzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYsDQo+ ID4+ICAgICBpbnQzMl90IHJ4X3F1ZXVlX2lkW10sDQo+ID4+ICAgICBjb25zdCBzdHJ1Y3QgcnRl X2V2ZW50X2V0aF9yeF9hZGFwdGVyX3F1ZXVlX2NvbmYgcXVldWVfY29uZltdLA0KPiA+PiAgICAg dWludDE2X3QgbmJfcnhfcXVldWVzKTsNCj4gPj4NCj4gPj4gV2l0aCB0aGlzLCB0aGUgb2xkIFBN RCBvcCAoZXRoX3J4X2FkYXB0ZXJfcXVldWVfYWRkKSBjYW4gYmUgcmVtb3ZlZC4NCj4gPj4NCj4g Pj4gPj4gPj4gPj4gPg0KPiA+PiA+PiA+PiA+PiA+VGhlIG5ldyBBUEkgd2FzIGludHJvZHVjZWQg YmVjYXVzZSB0aGUgZXhpc3RpbmcgQVBJIGRvZXMNCj4gPj4gPj4gPj4gPj4gPm5vdCBzdXBwb3J0 IGFkZGluZyBtdWx0aXBsZSBxdWV1ZXMgd2l0aCBzcGVjaWZpYyBjb25maWd1cmF0aW9ucy4NCj4g Pj4gPj4gPj4gPj4gPkl0IHNlcnZlcyBhcyBhIGJ1cnN0IHZhcmlhbnQgb2YgdGhlIGV4aXN0aW5n IEFQSSwgbGlrZSBtYW55DQo+ID4+ID4+ID4+ID4+ID5vdGhlciBBUElzIGluDQo+ID4+ID4+IERQ REsuDQo+ID4+ID4+ID4+ID4+ID4NCj4gPj4gPj4gPj4gPg0KPiA+PiA+PiA+PiA+VGhlIG90aGVy IGJ1cnN0IEFQSXMgbWF5IGJlIHRoZXJlIGZvciBkYXRhcGxhbmUNCj4gPj4gPj4gPj4gPmZ1bmN0 aW9uYWxpdGllcywgYnV0IG1heSBub3QgYmUgZm9yIHRoZSBjb250cm9sIHBsYW5lIGZ1bmN0aW9u YWxpdGllcy4NCj4gPj4gPj4gPj4gPg0KPiA+PiA+PiA+Pg0KPiA+PiA+PiA+PiBydGVfYWNsX2Fk ZF9ydWxlcygpIGlzIGFuIGV4YW1wbGUgb2YgYnVyc3QgQVBJIGluIGNvbnRyb2wgcGF0aC4NCj4g Pj4gPj4gPj4NCj4gPj4gPj4gPg0KPiA+PiA+PiA+SSBtZWFuLCBJbiBnZW5lcmFsLCBidXJzdCBB UElzIGFyZSBmb3IgZGF0YS1wbGFuZSBmdW5jdGlvbnMuDQo+ID4+ID4+ID5UaGlzIG1heSBiZSBv bmUgb2YgdGhlIHJhcmUgY2FzZXMgd2hlcmUgYSBidXJzdCBBUEkgaXMgaW4gdGhlIGNvbnRyb2wN Cj4gcGF0aC4NCj4gPj4gPj4gPg0KPiA+PiA+PiA+PiA+PiA+Rm9yIGJldHRlciBjbGFyaXR5LCB0 aGUgQVBJIGNhbiBiZSByZW5hbWVkIHRvDQo+ID4+ID4+ID4+ID4+ID5ydGVfZXZlbnRfZXRoX3J4 X2FkYXB0ZXJfcXVldWVfYWRkX2J1cnN0KCkgaWYgbmVlZGVkLg0KPiA+PiA+PiA+PiA+PiA+DQo+ ID4+ID4+ID4+ID4+ID5JbiBoYXJkd2FyZSwgYWRkaW5nIGVhY2ggcXVldWUgaW5kaXZpZHVhbGx5 IGluY3Vycw0KPiA+PiA+PiA+PiA+PiA+c2lnbmlmaWNhbnQgb3ZlcmhlYWRzLCBzdWNoIGFzIG1h aWxib3ggb3BlcmF0aW9ucy4gQSBidXJzdA0KPiA+PiA+PiA+PiA+PiA+QVBJIGhlbHBzIHRvIGFt b3J0aXplIHRoaXMgb3ZlcmhlYWQuIFNpbmNlIHJlYWwtIHdvcmxkDQo+ID4+ID4+ID4+ID4+ID5h cHBsaWNhdGlvbnMgb2Z0ZW4gY2FsbCB0aGUgQVBJIHdpdGggc3BlY2lmaWMgcXVldWVfaWRzLA0K PiA+PiA+PiA+PiA+PiA+dGhlIGJ1cnN0IEFQSSBjYW4gcHJvdmlkZSBjb25zaWRlcmFibGUNCj4g Pj4gPj4gYmVuZWZpdHMuDQo+ID4+ID4+ID4+ID4+ID5UZXN0aW5nIHNob3dzIGEgNzUlIHJlZHVj dGlvbiBpbiB0aW1lIHdoZW4gYWRkaW5nIG11bHRpcGxlDQo+ID4+ID4+ID4+ID4+ID5xdWV1ZXMg dG8gdGhlIFJYIGFkYXB0ZXIgdXNpbmcgdGhlIGJ1cnN0IEFQSSBvbiBvdXIgcGxhdGZvcm0uDQo+ ID4+ID4+ID4+ID4+ID4NCj4gPj4gPj4gPj4gPg0KPiA+PiA+PiA+PiA+IEFzIGJhdGNoaW5nIGhl bHBzIGZvciBhIHBhcnRpY3VsYXIgaGFyZHdhcmUgZGV2aWNlLCB0aGlzIG1heQ0KPiA+PiA+PiA+ PiA+bm90IGJlIGFwcGxpY2FibGUgZm9yIGFsbCBwbGF0Zm9ybXMvY2FzZXMuDQo+ID4+ID4+ID4+ ID4JU2luY2UgcXVldWVfYWRkIGlzIGEgY29udHJvbCBwbGFuZSBvcGVyYXRpb24sIGxhdGVuY3kg bWF5IG5vdA0KPiA+YmUNCj4gPj4gPj4gPj4gPmEgY29uY2Vybi4NCj4gPj4gPj4gPj4NCj4gPj4g Pj4gPj4gSW4gY2VydGFpbiB1c2UgY2FzZXMsIHRoZXNlIEFQSXMgY2FuIGJlIGNvbnNpZGVyZWQg c2VtaS1mYXN0IHBhdGguDQo+ID4+ID4+ID4+IEZvcg0KPiA+PiA+PiA+aW5zdGFuY2UsDQo+ID4+ ID4+ID4+IGluIGFuIGFwcGxpY2F0aW9uIHRoYXQgaG90cGx1Z3MgYSBwb3J0IG9uIGRlbWFuZCwg Y29uZmlndXJpbmcNCj4gPj4gPj4gPj4gYWxsIGF2YWlsYWJsZSBxdWV1ZXMgc2ltdWx0YW5lb3Vz bHkgY2FuIHNpZ25pZmljYW50bHkgcmVkdWNlIGxhdGVuY3kuDQo+ID4+ID4+ID4+DQo+ID4+ID4+ ID4NCj4gPj4gPj4gPkFzIHNhaWQgZWFybGllciwgdGhpcyBsYXRlbmN5IHJlZHVjdGlvbiAod2hl biB0cnlpbmcgdG8gYWRkDQo+ID4+ID4+ID5tdWx0aXBsZSBSWCBxdWV1ZXMgdG8gdGhlIEV2ZW50 IEV0aGVybmV0IFJ4IGFkYXB0ZXIpIG1heSBub3QNCj4gPj4gPj4gPmFwcGx5IHRvIGFsbA0KPiA+ PiA+PiBwbGF0Zm9ybXMvY2FzZXMuDQo+ID4+ID4+ID5UaGlzIEFQSSBpcyBub3QgZm9yIGNvbmZp Z3VyaW5nIHF1ZXVlcyBidXQgZm9yIGFkZGluZyB0aGUgcXVldWVzDQo+ID4+ID4+ID50byB0aGUg UlggYWRhcHRlci4NCj4gPj4gPj4gPg0KPiA+PiA+PiA+PiA+SG93IHRvIHNwZWNpZnkgYSBwYXJ0 aWN1bGFyIHNldChzcGVjaWZpYyBxdWV1ZV9pZHMpIG9mDQo+ID4+ID4+ID4+ID5yeF9xdWV1ZXMg dGhhdCBoYXMgYSBub24tIHplcm8gc3RhcnQgaW5kZXggd2l0aCB0aGUgbmV3IHByb3Bvc2VkDQo+ IEFQST8NCj4gPj4gPj4gPj4NCj4gPj4gPj4gPj4gSW4gdGhlIHByb3Bvc2VkIEFQSSwNCj4gPj4g Pj4gPj4gaW50IHJ0ZV9ldmVudF9ldGhfcnhfYWRhcHRlcl9xdWV1ZXNfYWRkKA0KPiA+PiA+PiA+ PiAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90IGlkLCB1aW50MTZfdCBldGhfZGV2X2lk LCBpbnQzMl90IHJ4X3F1ZXVlX2lkW10sDQo+ID4+ID4+ID4+ICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IHN0cnVjdCBydGVfZXZlbnRfZXRoX3J4X2FkYXB0ZXJfcXVldWVfY29uZg0KPiBj b25mW10sDQo+ID4+ID4+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQxNl90IG5iX3J4 X3F1ZXVlcyk7IHJ4X3F1ZXVlc19pZCBpcw0KPiA+PiA+PiA+PiBhbiBhcnJheSBjb250YWluaW5n IHRoZSByZWNlaXZlIHF1ZXVlcyBpZHMsIHdoaWNoIGNhbiBzdGFydA0KPiA+PiA+PiA+PiBmcm9t IGEgbm9uLXplcm8gdmFsdWUuIFRoZSBhcnJheSBpbmRleCBpcyB1c2VkIHNvbGVseSB0byBsb2Nh dGUNCj4gPj4gPj4gPj4gdGhlIGNvcnJlc3BvbmRpbmcgcXVldWVfY29uZi4gRm9yIGV4YW1wbGUs IHJ4X3F1ZXVlc19pZFtpXSB3aWxsDQo+ID4+ID4+ID4+IHVzZQ0KPiA+Y29uZltpXS4NCj4gPj4g Pj4gPj4NCj4gPj4gPj4gPg0KPiA+PiA+PiA+T2sNCj4gPj4gPj4gPg0KPiA+PiA+PiA+PiA+CVNp bmNlIHRoaXMgaXMgc3RpbGwgbm90IHBvc3NpYmxlIHdpdGggdGhlIHByb3Bvc2VkIEFQSSwgdGhl DQo+ID4+ID4+ID4+ID5leGlzdGluZyBxdWV1ZV9hZGQgQVBJIG5lZWRzIHRvIGJlIHVzZWQgd2l0 aCBzcGVjaWZpYw0KPiA+PiA+PiA+PiA+cXVldWVfaWRzIGFuZCB0aGVpciBjb25maWd1cmF0aW9u cy4NCj4gPj4gPj4gPj4gPg0KPiA+PiA+PiA+PiA+PiA+SSBjYW4gbW9kaWZ5IHRoZSBvbGQgQVBJ IGltcGxlbWVudGF0aW9uIHRvIGFjdCBhcyBhIHdyYXBwZXINCj4gPj4gPj4gPj4gPj4gPmFyb3Vu ZCB0aGUgYnVyc3QgQVBJLCB3aXRoIG51bWJlciBvZiBxdWV1ZXMgZXF1YWwgdG8gMS4gSWYNCj4g Pj4gPj4gPj4gPj4gPmNvbmNlcm5zIHJlbWFpbiwgd2UgY2FuIGV4cGxvcmUgZGVwcmVjYXRpb24g YXMgYW4gYWx0ZXJuYXRpdmUuDQo+ID4+ID4+ID4+ID4+ID4NCj4gPj4gPj4gPj4gPj4NCj4gPj4g Pj4gPj4gPj4gUGxlYXNlIGxldCBtZSBrbm93IGlmIHlvdSBoYXZlIGFueSBzdWdnZXN0aW9ucy9m ZWVkYmFjayBvbg0KPiA+PiA+PiA+PiA+PiB3aGF0IEkgc2FpZCBhYm92ZS4NCj4gPj4gPj4gPj4g Pg0KPiA+PiA+PiA+PiA+U3RpbGwgZmVlbCB0aGUgbmV3IHByb3Bvc2VkIEFQSSBjYW4gYmUgYXZv aWRlZCBhcyBpdCBsb29rcw0KPiA+PiA+PiA+PiA+bGlrZSBhIGRpZmZlcmVudCBjb21iaW5hdGlv biBvZiBleGlzdGluZyBBUEkgaW5zdGVhZCBvZiBhZGRpbmcNCj4gPj4gPj4gPj4gPnNvbWUgbmV3 DQo+ID4+ID5mZWF0dXJlcy4NCj4gPj4gPj4gPj4gPg0KPiA+PiA+PiA+PiA+PiBJZiBub3QsIEkg Y2FuIGdvIGFoZWFkIGFuZCBzZW5kIHYxLg0KPiA+PiA+PiA+PiA+Pg0KPiA+PiA+PiA+PiA+PiA+ Pj4gVGhlIHByb3Bvc2VkIEFQSSwgcnRlX2V2ZW50X2V0aF9yeF9hZGFwdGVyX3F1ZXVlc19hZGQs DQo+ID4+ID4+ID4+ID4+ID4+PiBhZGRyZXNzZXMgdGhpcyBsaW1pdGF0aW9uIGJ5Og0KPiA+PiA+ PiA+PiA+PiA+Pj4NCj4gPj4gPj4gPj4gPj4gPj4+IC0gRW5hYmxpbmcgdXNlcnMgdG8gc3BlY2lm eSBhbiBhcnJheSBvZiByeF9xdWV1ZV9pZA0KPiA+PiA+PiA+PiA+PiA+Pj4gdmFsdWVzDQo+ID4+ IGFsb25nc2lkZQ0KPiA+PiA+PiA+PiA+PiA+Pj4gICBpbmRpdmlkdWFsIGNvbmZpZ3VyYXRpb25z IGZvciBlYWNoIHF1ZXVlLg0KPiA+PiA+PiA+PiA+PiA+Pj4NCj4gPj4gPj4gPj4gPj4gPj4+IC0g U3VwcG9ydGluZyBhIG5iX3J4X3F1ZXVlcyBhcmd1bWVudCB0byBkZWZpbmUgdGhlDQo+ID4+ID4+ ID4+ID4+ID4+PiBudW1iZXIgb2YgcXVldWVzDQo+ID4+ID4+ID4+ID50bw0KPiA+PiA+PiA+PiA+ PiA+Pj4gICBjb25maWd1cmUuIFdoZW4gc2V0IHRvIDAsIHRoZSBBUEkgYXBwbGllcyBhIGNvbW1v bg0KPiA+PiA+PiA+PiA+PiA+Pj4gY29uZmlndXJhdGlvbg0KPiA+PiA+PiB0bw0KPiA+PiA+PiA+ PiA+PiA+Pj4gICBhbGwgcXVldWVzLCBzaW1pbGFyIHRvIHRoZSBleGlzdGluZyByeF9xdWV1ZV9p ZCA9IC0xIGJlaGF2aW9yLg0KPiA+PiA+PiA+PiA+PiA+Pj4NCj4gPj4gPj4gPj4gPj4gPj4+IFRo aXMgZW5oYW5jZW1lbnQgYWxsb3dzIGZvciBtb3JlIGdyYW51bGFyIGNvbnRyb2wgd2hlbg0KPiA+ PiA+PiA+PiA+PiA+Pj4gY29uZmlndXJpbmcNCj4gPj4gPj4gPj4gPj4gPm11bHRpcGxlDQo+ID4+ ID4+ID4+ID4+ID4+PiBSeCBxdWV1ZXMuIEFkZGl0aW9uYWxseSwgdGhlIEFQSSBjYW4gYWN0IGFz IGENCj4gPj4gPj4gPj4gPj4gPj4+IHJlcGxhY2VtZW50IGZvciB0aGUgb2xkZXIgQVBJLCBvZmZl cmluZyBib3RoIGZsZXhpYmlsaXR5DQo+ID4+ID4+ID4+ID4+ID4+PiBhbmQgaW1wcm92ZWQNCj4g Pj4gZnVuY3Rpb25hbGl0eS4NCj4gPj4gPj4gPj4gPj4gPj4+DQo+ID4+ID4+ID4+ID4+ID4+PiBT aWduZWQtb2ZmLWJ5OiBTaGlqaXRoIFRob3R0b24gPHN0aG90dG9uQG1hcnZlbGwuY29tPg0KPiA+ PiA+PiA+PiA+PiA+Pj4gLS0tDQo+ID4+ID4+ID4+ID4+ID4+PiAgbGliL2V2ZW50ZGV2L2V2ZW50 ZGV2X3BtZC5oICAgICAgICAgICAgIHwgMzQNCj4gPj4gPj4gPj4gPj4gKysrKysrKysrKysrKysr KysrKysrKysrKw0KPiA+PiA+PiA+PiA+PiA+Pj4gIGxpYi9ldmVudGRldi9ydGVfZXZlbnRfZXRo X3J4X2FkYXB0ZXIuaCB8IDM0DQo+ID4+ID4+ID4+ID4+ID4+PiArKysrKysrKysrKysrKysrKysr KysrKysrDQo+ID4+ID4+ID4+ID4+ID4+PiAgMiBmaWxlcyBjaGFuZ2VkLCA2OCBpbnNlcnRpb25z KCspDQo+ID4+ID4+ID4+ID4+ID4+Pg0KPiA+PiA+PiA+PiA+PiA+Pj4gZGlmZiAtLWdpdCBhL2xp Yi9ldmVudGRldi9ldmVudGRldl9wbWQuaA0KPiA+PiA+PiA+PiA+PiA+Pj4gYi9saWIvZXZlbnRk ZXYvZXZlbnRkZXZfcG1kLmggaW5kZXgNCj4gPj4gMzYxNDhmOGQ4Ni4uMmU0NThhOTc3OQ0KPiA+ PiA+PiA+PiA+PiAxMDA2NDQNCj4gPj4gPj4gPj4gPj4gPj4+IC0tLSBhL2xpYi9ldmVudGRldi9l dmVudGRldl9wbWQuaA0KPiA+PiA+PiA+PiA+PiA+Pj4gKysrIGIvbGliL2V2ZW50ZGV2L2V2ZW50 ZGV2X3BtZC5oDQo+ID4+ID4+ID4+ID4+ID4+PiBAQCAtMjUsNiArMjUsNyBAQA0KPiA+PiA+PiA+ PiA+PiA+Pj4gICNpbmNsdWRlIDxydGVfbWJ1Zl9keW4uaD4NCj4gPj4gPj4gPj4gPj4gPj4+DQo+ ID4+ID4+ID4+ID4+ID4+PiAgI2luY2x1ZGUgImV2ZW50X3RpbWVyX2FkYXB0ZXJfcG1kLmgiDQo+ ID4+ID4+ID4+ID4+ID4+PiArI2luY2x1ZGUgInJ0ZV9ldmVudF9ldGhfcnhfYWRhcHRlci5oIg0K PiA+PiA+PiA+PiA+PiA+Pj4gICNpbmNsdWRlICJydGVfZXZlbnRkZXYuaCINCj4gPj4gPj4gPj4g Pj4gPj4+DQo+ID4+ID4+ID4+ID4+ID4+PiAgI2lmZGVmIF9fY3BsdXNwbHVzDQo+ID4+ID4+ID4+ ID4+ID4+PiBAQCAtNzA4LDYgKzcwOSwzNyBAQCB0eXBlZGVmIGludA0KPiA+PiA+PiA+PiA+PiA+ Pj4gKCpldmVudGRldl9ldGhfcnhfYWRhcHRlcl9xdWV1ZV9hZGRfdCkoDQo+ID4+ID4+ID4+ID4+ ID4+PiAgCQlpbnQzMl90IHJ4X3F1ZXVlX2lkLA0KPiA+PiA+PiA+PiA+PiA+Pj4gIAkJY29uc3Qg c3RydWN0DQo+IHJ0ZV9ldmVudF9ldGhfcnhfYWRhcHRlcl9xdWV1ZV9jb25mDQo+ID4+ID4+ID4+ ID4+ID4+PiAqcXVldWVfY29uZik7DQo+ID4+ID4+ID4+ID4+ID4+Pg0KPiA+PiA+PiA+PiA+PiA+ Pj4gKy8qKg0KPiA+PiA+PiA+PiA+PiA+Pj4gKyAqIEFkZCBldGhlcm5ldCBSeCBxdWV1ZXMgdG8g ZXZlbnQgZGV2aWNlLiBUaGlzDQo+ID4+ID4+ID4+ID4+ID4+PiArY2FsbGJhY2sgaXMgaW52b2tl ZCBpZg0KPiA+PiA+PiA+PiA+PiA+Pj4gKyAqIHRoZSBjYXBzIHJldHVybmVkIGZyb20NCj4gPj4g Pj4gPj4gPj4gPj4+ICtydGVfZXZlbnRkZXZfZXRoX3J4X2FkYXB0ZXJfY2Fwc19nZXQoLA0KPiA+ PiA+PiA+PiA+PiA+Pj4gK2V0aF9wb3J0X2lkKQ0KPiA+PiA+PiA+PiA+PiA+Pj4gKyAqIGhhcyBS VEVfRVZFTlRfRVRIX1JYX0FEQVBURVJfQ0FQX0lOVEVSTkFMX1BPUlQNCj4gPnNldC4NCj4gPj4g Pj4gPj4gPj4gPj4+ICsgKg0KPiA+PiA+PiA+PiA+PiA+Pj4gKyAqIEBwYXJhbSBkZXYNCj4gPj4g Pj4gPj4gPj4gPj4+ICsgKiAgIEV2ZW50IGRldmljZSBwb2ludGVyDQo+ID4+ID4+ID4+ID4+ID4+ PiArICoNCj4gPj4gPj4gPj4gPj4gPj4+ICsgKiBAcGFyYW0gZXRoX2Rldg0KPiA+PiA+PiA+PiA+ PiA+Pj4gKyAqICAgRXRoZXJuZXQgZGV2aWNlIHBvaW50ZXINCj4gPj4gPj4gPj4gPj4gPj4+ICsg Kg0KPiA+PiA+PiA+PiA+PiA+Pj4gKyAqIEBwYXJhbSByeF9xdWV1ZV9pZA0KPiA+PiA+PiA+PiA+ PiA+Pj4gKyAqICAgRXRoZXJuZXQgZGV2aWNlIHJlY2VpdmUgcXVldWUgaW5kZXggYXJyYXkNCj4g Pj4gPj4gPj4gPj4gPj4+ICsgKg0KPiA+PiA+PiA+PiA+PiA+Pj4gKyAqIEBwYXJhbSBxdWV1ZV9j b25mDQo+ID4+ID4+ID4+ID4+ID4+PiArICogICBBZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb24gc3Ry dWN0dXJlIGFycmF5DQo+ID4+ID4+ID4+ID4+ID4+PiArICoNCj4gPj4gPj4gPj4gPj4gPj4+ICsg KiBAcGFyYW0gbmJfcnhfcXVldWVzDQo+ID4+ID4+ID4+ID4+ID4+PiArICogICBOdW1iZXIgb2Yg ZXRoZXJuZXQgZGV2aWNlIHJlY2VpdmUgcXVldWVzDQo+ID4+ID4+ID4+ID4+ID4+PiArICoNCj4g Pj4gPj4gPj4gPj4gPj4+ICsgKiBAcmV0dXJuDQo+ID4+ID4+ID4+ID4+ID4+PiArICogICAtIDA6 IFN1Y2Nlc3MsIGV0aGVybmV0IHJlY2VpdmUgcXVldWVzIGFkZGVkIHN1Y2Nlc3NmdWxseS4NCj4g Pj4gPj4gPj4gPj4gPj4+ICsgKiAgIC0gPDA6IEVycm9yIGNvZGUgcmV0dXJuZWQgYnkgdGhlIGRy aXZlciBmdW5jdGlvbi4NCj4gPj4gPj4gPj4gPj4gPj4+ICsgKi8NCj4gPj4gPj4gPj4gPj4gPj4+ ICt0eXBlZGVmIGludCAoKmV2ZW50ZGV2X2V0aF9yeF9hZGFwdGVyX3F1ZXVlc19hZGRfdCkoDQo+ ID4+ID4+ID4+ID4+ID4+PiArCQljb25zdCBzdHJ1Y3QgcnRlX2V2ZW50ZGV2ICpkZXYsDQo+ID4+ ID4+ID4+ID4+ID4+PiArCQljb25zdCBzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYsDQo+ID4+ ID4+ID4+ID4+ID4+PiArCQlpbnQzMl90IHJ4X3F1ZXVlX2lkW10sDQo+ID4+ID4+ID4+ID4+ID4+ PiArCQljb25zdCBzdHJ1Y3QNCj4gcnRlX2V2ZW50X2V0aF9yeF9hZGFwdGVyX3F1ZXVlX2NvbmYN Cj4gPj4gPj4gPj4gPj4gPj4+IHF1ZXVlX2NvbmZbXSwNCj4gPj4gPj4gPj4gPj4gPj4+ICsJCXVp bnQxNl90IG5iX3J4X3F1ZXVlcyk7DQo+ID4+ID4+ID4+ID4+ID4+PiArDQo+ID4+ID4+ID4+ID4+ ID4+PiAgLyoqDQo+ID4+ID4+ID4+ID4+ID4+PiAgICogRGVsZXRlIGV0aGVybmV0IFJ4IHF1ZXVl cyBmcm9tIGV2ZW50IGRldmljZS4gVGhpcw0KPiA+PiA+PiA+PiA+PiA+Pj4gY2FsbGJhY2sgaXMN Cj4gPj4gPj4gPmludm9rZWQNCj4gPj4gPj4gPj4gaWYNCj4gPj4gPj4gPj4gPj4gPj4+ICAgKiB0 aGUgY2FwcyByZXR1cm5lZCBmcm9tDQo+ID4+ID4+ID4+ID4+ID4+PiBldmVudGRldl9ldGhfcnhf YWRhcHRlcl9jYXBzX2dldCgsDQo+ID4+ID4+ID4+ID4+ID5ldGhfcG9ydF9pZCkNCj4gPj4gPj4g Pj4gPj4gPj4+IEBAIC0xNTc4LDYgKzE2MTAsOCBAQCBzdHJ1Y3QgZXZlbnRkZXZfb3BzIHsNCj4g Pj4gPj4gPj4gPj4gPj4+ICAJLyoqPCBHZXQgZXRoZXJuZXQgUnggYWRhcHRlciBjYXBhYmlsaXRp ZXMgKi8NCj4gPj4gPj4gPj4gPj4gPj4+ICAJZXZlbnRkZXZfZXRoX3J4X2FkYXB0ZXJfcXVldWVf YWRkX3QNCj4gPj4gPj4gPmV0aF9yeF9hZGFwdGVyX3F1ZXVlX2FkZDsNCj4gPj4gPj4gPj4gPj4g Pj4+ICAJLyoqPCBBZGQgUnggcXVldWVzIHRvIGV0aGVybmV0IFJ4IGFkYXB0ZXIgKi8NCj4gPj4g Pj4gPj4gPj4gPj4+ICsJZXZlbnRkZXZfZXRoX3J4X2FkYXB0ZXJfcXVldWVzX2FkZF90DQo+ID4+ ID4+ID4+ID4+ID4+PiBldGhfcnhfYWRhcHRlcl9xdWV1ZXNfYWRkOw0KPiA+PiA+PiA+PiA+PiA+ Pj4gKwkvKio8IEFkZCBSeCBxdWV1ZXMgdG8gZXRoZXJuZXQgUnggYWRhcHRlciAqLw0KPiA+PiA+ PiA+PiA+PiA+Pj4gIAlldmVudGRldl9ldGhfcnhfYWRhcHRlcl9xdWV1ZV9kZWxfdA0KPiA+PiA+ PiA+ZXRoX3J4X2FkYXB0ZXJfcXVldWVfZGVsOw0KPiA+PiA+PiA+PiA+PiA+Pj4gIAkvKio8IERl bGV0ZSBSeCBxdWV1ZXMgZnJvbSBldGhlcm5ldCBSeCBhZGFwdGVyICovDQo+ID4+ID4+ID4+ID4+ ID4+PiAgCWV2ZW50ZGV2X2V0aF9yeF9hZGFwdGVyX3F1ZXVlX2NvbmZfZ2V0X3QNCj4gPj4gPj4g Pj4gPj4gPj4+IGV0aF9yeF9hZGFwdGVyX3F1ZXVlX2NvbmZfZ2V0OyBkaWZmIC0tZ2l0DQo+ID4+ ID4+ID4+ID4+ID4+PiBhL2xpYi9ldmVudGRldi9ydGVfZXZlbnRfZXRoX3J4X2FkYXB0ZXIuaA0K PiA+PiA+PiA+PiA+PiA+Pj4gYi9saWIvZXZlbnRkZXYvcnRlX2V2ZW50X2V0aF9yeF9hZGFwdGVy LmgNCj4gPj4gPj4gPj4gPj4gPj4+IGluZGV4IDkyMzdlMTk4YTcuLjlhNWM1NjBiNjcgMTAwNjQ0 DQo+ID4+ID4+ID4+ID4+ID4+PiAtLS0gYS9saWIvZXZlbnRkZXYvcnRlX2V2ZW50X2V0aF9yeF9h ZGFwdGVyLmgNCj4gPj4gPj4gPj4gPj4gPj4+ICsrKyBiL2xpYi9ldmVudGRldi9ydGVfZXZlbnRf ZXRoX3J4X2FkYXB0ZXIuaA0KPiA+PiA+PiA+PiA+PiA+Pj4gQEAgLTU1Myw2ICs1NTMsNDAgQEAg aW50DQo+ID4+ID4+ID4+ID4+IHJ0ZV9ldmVudF9ldGhfcnhfYWRhcHRlcl9xdWV1ZV9hZGQodWlu dDhfdA0KPiA+PiA+PiA+PiA+PiA+Pj4gaWQsDQo+ID4+ID4+ID4+ID4+ID4+PiAgCQkJaW50MzJf dCByeF9xdWV1ZV9pZCwNCj4gPj4gPj4gPj4gPj4gPj4+ICAJCQljb25zdCBzdHJ1Y3QNCj4gPj4g Pj4gPnJ0ZV9ldmVudF9ldGhfcnhfYWRhcHRlcl9xdWV1ZV9jb25mDQo+ID4+ID4+ID4+ID4+ID4+ PiAqY29uZik7DQo+ID4+ID4+ID4+ID4+ID4+Pg0KPiA+PiA+PiA+PiA+PiA+Pj4gKy8qKg0KPiA+ PiA+PiA+PiA+PiA+Pj4gKyAqIEFkZCBtdWx0aXBsZSByZWNlaXZlIHF1ZXVlcyB0byBhbiBldmVu dCBhZGFwdGVyLg0KPiA+PiA+PiA+PiA+PiA+Pj4gKyAqDQo+ID4+ID4+ID4+ID4+ID4+PiArICog QHBhcmFtIGlkDQo+ID4+ID4+ID4+ID4+ID4+PiArICogIEFkYXB0ZXIgaWRlbnRpZmllci4NCj4g Pj4gPj4gPj4gPj4gPj4+ICsgKg0KPiA+PiA+PiA+PiA+PiA+Pj4gKyAqIEBwYXJhbSBldGhfZGV2 X2lkDQo+ID4+ID4+ID4+ID4+ID4+PiArICogIFBvcnQgaWRlbnRpZmllciBvZiBFdGhlcm5ldCBk ZXZpY2UuDQo+ID4+ID4+ID4+ID4+ID4+PiArICoNCj4gPj4gPj4gPj4gPj4gPj4+ICsgKiBAcGFy YW0gcnhfcXVldWVfaWQNCj4gPj4gPj4gPj4gPj4gPj4+ICsgKiAgQXJyYXkgb2YgRXRoZXJuZXQg ZGV2aWNlIHJlY2VpdmUgcXVldWUgaW5kaWNlcy4NCj4gPj4gPj4gPj4gPj4gPj4+ICsgKiAgSWYg bmJfcnhfcXVldWVzIGlzIDAsIHRoZW4gcnhfcXVldWVfaWQgaXMgaWdub3JlZC4NCj4gPj4gPj4g Pj4gPj4gPj4+ICsgKg0KPiA+PiA+PiA+PiA+PiA+Pj4gKyAqIEBwYXJhbSBjb25mDQo+ID4+ID4+ ID4+ID4+ID4+PiArICogIEFycmF5IG9mIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBzdHJ1Y3R1 cmVzIG9mDQo+ID4+ID4+ID4+ID4+ID4+PiArdHlwZQ0KPiA+PiA+PiA+PiA+PiA+Pj4gKyAqICAq cnRlX2V2ZW50X2V0aF9yeF9hZGFwdGVyX3F1ZXVlX2NvbmYqLiBjb25mW2ldIGlzDQo+ID4+ID4+ ID4+ID4+ID4+PiArdXNlZCBmb3INCj4gPj4gPj4gPj4gPj4gPj4+IHJ4X3F1ZXVlX2lkW2ldLg0K PiA+PiA+PiA+PiA+PiA+Pj4gKyAqICBJZiBuYl9yeF9xdWV1ZXMgaXMgMCwgdGhlbiBjb25mWzBd IGlzIHVzZWQgZm9yIGFsbCBSeCBxdWV1ZXMuDQo+ID4+ID4+ID4+ID4+ID4+PiArICoNCj4gPj4g Pj4gPj4gPj4gPj4+ICsgKiBAcGFyYW0gbmJfcnhfcXVldWVzDQo+ID4+ID4+ID4+ID4+ID4+PiAr ICogIE51bWJlciBvZiByZWNlaXZlIHF1ZXVlcyB0byBhZGQuDQo+ID4+ID4+ID4+ID4+ID4+PiAr ICogIElmIG5iX3J4X3F1ZXVlcyBpcyAwLCB0aGVuIGFsbCBSeCBxdWV1ZXMgY29uZmlndXJlZA0K PiA+PiA+PiA+PiA+PiA+Pj4gK2Zvcg0KPiA+PiA+PiA+PiA+PiA+Pj4gKyAqICB0aGUgZGV2aWNl IGFyZSBhZGRlZCB3aXRoIHRoZSBzYW1lIGNvbmZpZ3VyYXRpb24gaW4NCj4gY29uZlswXS4NCj4g Pj4gPj4gPj4gPj4gPj4+ICsgKiBAc2VlIFJURV9FVkVOVF9FVEhfUlhfQURBUFRFUl9DQVBfTVVM VElfRVZFTlRRDQo+ID4+ID4+ID4+ID4+ID4+PiArICoNCj4gPj4gPj4gPj4gPj4gPj4+ICsgKiBA cmV0dXJuDQo+ID4+ID4+ID4+ID4+ID4+PiArICogIC0gMDogU3VjY2VzcywgUmVjZWl2ZSBxdWV1 ZXMgYWRkZWQgY29ycmVjdGx5Lg0KPiA+PiA+PiA+PiA+PiA+Pj4gKyAqICAtIDwwOiBFcnJvciBj b2RlIG9uIGZhaWx1cmUuDQo+ID4+ID4+ID4+ID4+ID4+PiArICovDQo+ID4+ID4+ID4+ID4+ID4+ PiArX19ydGVfZXhwZXJpbWVudGFsDQo+ID4+ID4+ID4+ID4+ID4+PiAraW50IHJ0ZV9ldmVudF9l dGhfcnhfYWRhcHRlcl9xdWV1ZXNfYWRkKA0KPiA+PiA+PiA+PiA+PiA+Pj4gKwkJCXVpbnQ4X3Qg aWQsIHVpbnQxNl90IGV0aF9kZXZfaWQsDQo+IGludDMyX3QNCj4gPj4gPj4gPj4gPj4gPj4+IHJ4 X3F1ZXVlX2lkW10sDQo+ID4+ID4+ID4+ID4+ID4+PiArCQkJY29uc3Qgc3RydWN0DQo+ID4+ID4+ ID4+IHJ0ZV9ldmVudF9ldGhfcnhfYWRhcHRlcl9xdWV1ZV9jb25mDQo+ID4+ID4+ID4+ID4+ID4+ PiBjb25mW10sDQo+ID4+ID4+ID4+ID4+ID4+PiArCQkJdWludDE2X3QgbmJfcnhfcXVldWVzKTsN Cj4gPj4gPj4gPj4gPj4gPj4+ICsNCj4gPj4gPj4gPj4gPj4gPj4+ICAvKioNCj4gPj4gPj4gPj4g Pj4gPj4+ICAgKiBEZWxldGUgcmVjZWl2ZSBxdWV1ZSBmcm9tIGFuIGV2ZW50IGFkYXB0ZXIuDQo+ ID4+ID4+ID4+ID4+ID4+PiAgICoNCj4gPj4gPj4gPj4gPj4gPj4+IC0tDQo+ID4+ID4+ID4+ID4+ ID4+PiAyLjI1LjENCg0K