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 2CE9A45B04; Thu, 10 Oct 2024 18:23:40 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id DE604402D4; Thu, 10 Oct 2024 18:23:39 +0200 (CEST) Received: from NAM02-DM3-obe.outbound.protection.outlook.com (mail-dm3nam02on2072.outbound.protection.outlook.com [40.107.95.72]) by mails.dpdk.org (Postfix) with ESMTP id 26A474026B for ; Thu, 10 Oct 2024 18:23:38 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=OuZ9tjoxZav4w0fG2wA1dvH1pAHN0VZJpb+AGAWMU4pcoZx+/Kp7KCRjQHcwsH+lqWDDO/uKogaX0+ktLBn11d9a+YglrP0pNYEWz6GStV8/IAcMvI/i7uG2AzAqgy5aQx5194lcFIeXUdAvPQuGGk4mJMo8w3duYsjHGoqFf02Mxja/We83A5Y6UfGw0UKX3gcwhDPE8Dgiix1ioLNElQIph0sVtxBHUO3tvcfdx33rFLVKcNrbaxNy8CgXDtq7YFf721g7lPRRTWBg6ufQ37qat7oXe1sm6VCeiLjrphOnPXDIaE4vw1NB+U48baSIzJcXvuvNR8xl3z1uftxQZg== 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=4CVh9LbEKDFJgSJ1C1ZFlW8CqluwYMEBKxEYXMy6AEw=; b=eO75q5gQx9V95j6OXtIv8AhO0EdhxVkaLVHw8qo4gBxT9bfQYK7JOwkJBHAdDstxTCNIEce1qZQvIfYPyj8njDlFN4mc69lAuzQz5fxbw3XFPGYE/RWz3ttp/wJ81nM/rSqc/9rXifB4BHFJWlgsfnW30p7+NRfq6ux6eaVJfTqaUiJ7bakCgGrYdhBJPBtkW2ORsV/vAZiS1v71SqxqzEPWyubxucOwF3cfVTJSqxsNR5q7T5YAk/YhYNqqynMQEkKuOJLPPc+7Jvj54jY0dGGMlqjGnHwRBOUnU6HmYY+dlXLjoWM392zo+LbQLfI9u/L93pd/0Biz+5C2jJoR0g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4CVh9LbEKDFJgSJ1C1ZFlW8CqluwYMEBKxEYXMy6AEw=; b=piTdsZmJc4HdBhDLKQGgvuN9rieWfsE3zcxljmY4bIUfHk1CNJo7pHyLM1J8IG4jggnhh5VMt9//NJTtnsGbcBhbc75TVgoRQxErbd4f+6zsFsoJKgQrTRZcsv/sEcQ6nQC60KL2dl5pM+iPWJaOFxpXq6hTkN5XBOVRZ51+UFNvxS+65GWZPYztb84NLPU20CJgwyyjsKkDFpa6Xf7hxHdraoqy2tLYp7nj2FW3yQ16ZAATelgKPn1nIi5rOdnoOyluQmPsmzcHDkz+HAm24fHKeij70i/02LV6jhcmJdnyfvP7bGZzg+W4J6qPgxwLJy5+R3GyhqRGj+ZOKGkb9w== Received: from CH3PR12MB8460.namprd12.prod.outlook.com (2603:10b6:610:156::15) by DS0PR12MB7874.namprd12.prod.outlook.com (2603:10b6:8:141::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8048.16; Thu, 10 Oct 2024 16:23:33 +0000 Received: from CH3PR12MB8460.namprd12.prod.outlook.com ([fe80::2e9d:7265:3b84:59b5]) by CH3PR12MB8460.namprd12.prod.outlook.com ([fe80::2e9d:7265:3b84:59b5%7]) with mapi id 15.20.8026.020; Thu, 10 Oct 2024 16:23:33 +0000 From: Dariusz Sosnowski To: Ferruh Yigit , Konstantin Ananyev , "NBU-Contact-Thomas Monjalon (EXTERNAL)" , Andrew Rybchenko CC: "dev@dpdk.org" , Bruce Richardson Subject: RE: [RFC 0/4] ethdev: rework config restore Thread-Topic: [RFC 0/4] ethdev: rework config restore Thread-Index: AQHbCaxc8KDvUepY/Eal2yE/l4xqAbJve/yAgAeO5XCABBf3gIAA4jcAgAE0v4CAAIIbgIAA+96QgAB3gQCAALueAIAAKAqAgAAx4iA= Date: Thu, 10 Oct 2024 16:23:32 +0000 Message-ID: References: <20240918092201.33772-1-dsosnowski@nvidia.com> <13747524-f073-4749-adbd-be1c7681dbcd@amd.com> <3833d9270fba43af9d17765056911940@huawei.com> <8a6f760c-8bc7-46cd-92e0-a8af66114e2d@amd.com> <5ef19db7-f6fe-4a48-8497-e17b33a262b5@amd.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=nvidia.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CH3PR12MB8460:EE_|DS0PR12MB7874:EE_ x-ms-office365-filtering-correlation-id: 9cbff025-75a4-46f6-635a-08dce947e26a x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr 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?eTZWb2RQSEpwV3lKckhpRjVJa1N4VTdyTDJaNCtZTXIvK3Bmcngybk1rc05E?= =?utf-8?B?N1pxMFowSlpseXJET0kxdmNkUVk1S0ZvQUxpVmhVOFIyOTdiMXVPZUdGNTVl?= =?utf-8?B?b1ZDOXRrV2ttL0xqSXpZZzViRExaNml4b1NwMGVmbzNYaXhXZ2RweW9Ed0Rh?= =?utf-8?B?cnJ2NUZ4MTI5K1VLU1Vsc3pkODN0MEVzYm40Vml1L2tnTUIrbXBMMFFEaWxl?= =?utf-8?B?eVRnYVlKbThiNjhmSTVOSVBpVXErWVBBUkg3NkpQRTZpTUtMV3JnSEJLNkxJ?= =?utf-8?B?RVRFSGlGcjJaRGdLaS9XUGx6RkxSdFhqekcyWlZHVGltM1E1RjBqdkZFZDlt?= =?utf-8?B?UVJEWUZES0ovbnFId242M2Mwd3ZuQ0pZZUVUeTg2VllXOWR1MWxESnd2VHNM?= =?utf-8?B?UGw1Vk53MlRsVFVHemRZUUNhdHZGL3N4c1dnVFcyeVpiUkIyYkxrYTQwUDkr?= =?utf-8?B?bEpTZ0pmZ1ZoWE1nTEVFcnJMZUxOS0llYW40eUltcmJBelJnOGdZcmwwaGpB?= =?utf-8?B?SUEwc0J0aEtjYTZXdnhFUkorSFY2U2Qrb3BORG5sVDR2T053WTlwLzJ1SmZM?= =?utf-8?B?Y1JyWTZhbkg1T0FLSStlUWZUb3NyU0ErRUJKQU9yb0xoRnBaazhIcG53TWhJ?= =?utf-8?B?Unl3aWZHcGt4RlFYNnJ1bWpLWDM2a21kMWZQZ3YxcWhBaHRlOFNEbHQ0TXFq?= =?utf-8?B?QkYyUkgzbG5Rc0tIeU4yMjFBUkhMdVk1NEpvakVVdjZ2bnduVlB1VnJqWTBa?= =?utf-8?B?eVNucXpiejhVU0VyN1IvRTJZNVFDWFpVVkZmUUg2TG9NQ2JVeG5jNXJMWmVR?= =?utf-8?B?OE9kQnA1d3hYTy9nWnlSenNrV2FSV2w4SCs2V2JMRmR4RzBYTkhrRmQzajd2?= =?utf-8?B?NzJKTlczbGtKQ3M5SHJRQ3pDemx1akx4SXZzczlsdll1RWhObUdITTNHaDJV?= =?utf-8?B?b3ZTckRJZlBTTVcraStXckNodmJZeENFMlhWODlNaU1LY0NDd1J4R0hRRlI0?= =?utf-8?B?YXdsM3V3YUtwb25YcHl1NHZkMUY5VTdVdVExQTB1SUZOUG5XMmNMUE5PMWc5?= =?utf-8?B?RW5JU0dTUGloQ0Mxc1BFa0hyVGxFODVqbGNFQzFhanFrZ25kc1lQRlpPeC9I?= =?utf-8?B?aXZrY2xsV3BJT1VUWko5VzBuNzhhRWlvTmE4OHhncFIvdXF2elc4OGh6QUFr?= =?utf-8?B?d0Q5NDkvZkRWUmwxTC91ZXJ1WnBiNXFHU0FNMTdRVkdXZXVlakIrQTlyVUZk?= =?utf-8?B?aUFiaGFkRFhZTUNUM1AxNFBBeWtOZzJOT0ZvRHQ3alpzbVlRZlVWU1hFSUpr?= =?utf-8?B?TkVrTmVzd090R0ZYM3hGVzBIS3RQdEp5VG9CMWNJZVJTSjF2aHFTQTFmSjRL?= =?utf-8?B?VHNOamU1aG82d1E0dEhKdlZVYWFxMGdQVEw1eldHRmhRRTRMK1B3OTBTV0ZE?= =?utf-8?B?M0FDbkdjN3ViUXZMa2xhZHNQdGhib1Q0bWpZOVI5Q2NLSzNQUTZLbWxzQkV5?= =?utf-8?B?WEowM1JOS1JEdTRkRjdQUjJiakw0LzBDOGdXNzJvandzdjJyamVjcGVMbDFN?= =?utf-8?B?SmNselFoV3YrSngxNGUyVThIazQyY3hiRFlFZGtHRjhTMTRoM0dob3VhVGps?= =?utf-8?B?SGZrL3B4RnJSNE9mV0JKcnN6ZUhPcTd0NnRCN0lDeU9zbjhNMVZsK0x6T1ZP?= =?utf-8?B?SVZCendncnBsQ29uR0dsSlR0Nyt0NjNiL2FvRGpvdzZrUVdxYlJWNko0K2hK?= =?utf-8?B?aHl3ZHRKejQ0NUtJblNOdW03aDBGT0V1Y0hDSWRrK2FIOEwrcnlOSmN6MUo2?= =?utf-8?B?QnVTZjFLczdWeHhVZ1FBZz09?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CH3PR12MB8460.namprd12.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?cW1VaGE0TTFLeGVTemNCbUx6bEh6dDcrYXlOekx4WFFyK2pDRG9hWE5HMnNn?= =?utf-8?B?cFJwdWJ5QjBoQ216andPbWEvYkFydjFnRVJHOFhaZHN5dUQrMnBwZnhwYVhY?= =?utf-8?B?NytSa2Z1M3RtdzVIVUF3aGlsdEZMSE1hKzJ5RHY0UnBEcS9JUTN0dE51cFJv?= =?utf-8?B?L0ZQTDlLV0Z1SGtRQkJyY2lENTV6UW91UEE3d3FIUG8yRFJNMkVaVDhybDhJ?= =?utf-8?B?MG9DSFNGaDBvU1NwV0RiZldwOW51OUJyN2JOdTE3ZmRwN1hlM2s0bE1lY0hY?= =?utf-8?B?L2pMZFNiRkxyNHI1YTRPc2E3UGhXY3pmd2VYejVqSUJ5ZHpiaGpBK1J0R1c5?= =?utf-8?B?cVBGQVVzSFU1WnI2T3ZNUDFKTDhSWnhXeDdaTEZSTks1NmRBS24zWm1XbmJD?= =?utf-8?B?eVFHMW5Oc3BkL2lDT3RyUGNFTlc3LzcxcjRjcVIrYytIcFpCRyt5T0FPUXMv?= =?utf-8?B?MTZUa0tQa1hzRFhGcGxORW8vbDM0aXR1cXZsRkFoUlRIbXJjVTNqaHpDb0xn?= =?utf-8?B?encrTUJEZ1hrM1J1ZUtBTm1WV01KenZFSmJZVzllaHA5KzA4SzYxaVRqdklq?= =?utf-8?B?cVZ5UFN4NTdIbjFPZVg2am54Tzdjb1NwOWZkaU9tMkM3RXdXZE5sa2cyczcv?= =?utf-8?B?cXkyQWRhTnV2c3htM1RDdGR5bVJ1RTc5SVYwazRjaHJib3FBaGZSVWdJV0lZ?= =?utf-8?B?bXFTSEFrZnFvNDA3ZWZ4d3diRUdjUTFsb0tmazJocVk5RUtFbWxPcCt5UVNO?= =?utf-8?B?Y0lvWTNYdyswU1JOKzBJK2NsbnJRdFQxdXBockQ3dHhKV3YyT0J6dDl0L05q?= =?utf-8?B?SnVSc3JGK1l5QTJzZk9paTdvN0dsWm5ka2p6K3YyWVk1RDkwaDBBSTJKSys1?= =?utf-8?B?WTZCc0x4Szd0YW52d25TSjg4dVhDYzhxbVhhOWptV0FMeFdHcE5lK2JSWUE2?= =?utf-8?B?KzhnODRNcGxLYUxWOWZoWWIxL2xGaDliVTd2WmRNbmk3QTBjLzcwTnRQVEdP?= =?utf-8?B?cHMwUyt1N1gralRmMFg3RmVKYnFjYUhjSHl0b1pveTEwUzFTSjYyVjNwZjVs?= =?utf-8?B?UDF1Ry81aW00bmZMVlBVaDIxNmlwQTY0RzdkeEVxaWQ4YmxycU1SaitwT0Y2?= =?utf-8?B?UUN2bGltWWJ6TERpUGNoMkhWMHN4b3VDSmV3Ym9IbDNGdnM2bUF0NVFNdmhT?= =?utf-8?B?eURLWExRbWhELysrak51bkJGMDBUZ3pRODM0WmtlSFo3bzdNNEx0MDNqWHNv?= =?utf-8?B?VUJUV01vR1Q0TlJRbU4yWFdoRHMwQjJVbUtWSXd6UUZ0QzFlZXZHZFlxWFU4?= =?utf-8?B?QUtHQ21OYnI5TURNbVlNblR3NHhrU3N5Z2RiTUFuQW0yWXJFdm1qalA5M0RW?= =?utf-8?B?S29TMkovSUZ2YjFXSmJha1lUVDlxdUd2RG5QRVhOYkZibW9obVRGdzFJTHVC?= =?utf-8?B?NUcyT3F6alNQejFRaWxHQllwM3JTbjA2MlpIclZQQ3o5cjBMT3ZLTUJxYUVt?= =?utf-8?B?cnpuU0hPV1FCN2dla3dMN2xkYlZJZ0hPa3hDblAzd1lnanB5ckNaZ2pOYjFX?= =?utf-8?B?RnRhRkFmZXIyeDJPZ2piS1ZCZkdTalB4aE55WEdyRkEweDBISitjSGordGZx?= =?utf-8?B?YWNDOTgvQ3NSRm82M05MSi81clZBOXVqVkdzTXJmMmFZN2tUWFBYUWxGSFBO?= =?utf-8?B?bG1PWUxiNzVyMEhHcVk0bHZqMDRuSENMMTMwYWpBdExLSGJJd1VaSE5zRXRr?= =?utf-8?B?ZkJ1UGhtVWdYMnNwZ2g3UTlFQ0gxMENvMHdSbEEwVU5FRFk4M0xqSDRPZklZ?= =?utf-8?B?RUwvZjJjSnFsdGFTN1JRa2E0NmRtbkV5aGg3NGFMNmk2aldIM3ZXRStidFJ4?= =?utf-8?B?Ry9RLzV3R1NpN1pvVERCN2YvN1JrMWtTbkVzK3hRSWdyN2Nhc1N3ck8rZlBo?= =?utf-8?B?eEpVOS9NSDlDMFh5ck1RY243Z2Z6WGRsWm5nZE9qaVo4UHVhYWlvWVV6VWJX?= =?utf-8?B?VzVwcDBXUmdBNDVmRkVvYm55eXg2T0lXanh6RWlHNEhpdHBsb0xSNG9mS1BK?= =?utf-8?B?L1pMZ3J6TzFnZm5vRTgxdXRmWkt2c1JueU9icUVqK1NqcnZ3cWI3aW9vVTRZ?= =?utf-8?Q?AD+DuNOMNqEScnpJBcZY5z3tn?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8460.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9cbff025-75a4-46f6-635a-08dce947e26a X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Oct 2024 16:23:32.9940 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: A9ESn2YCB4Mbf6b/2puU6dvJtHyEe6L/N6uB1DPryfdihcAUN5AHxGWOlyVSvOijL/vsP+8ylI4hQW69XsuYsg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7874 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 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBGZXJydWggWWlnaXQgPGZlcnJ1 aC55aWdpdEBhbWQuY29tPg0KPiBTZW50OiBUaHVyc2RheSwgT2N0b2JlciAxMCwgMjAyNCAxNDo1 Mg0KPiBUbzogRGFyaXVzeiBTb3Nub3dza2kgPGRzb3Nub3dza2lAbnZpZGlhLmNvbT47IEtvbnN0 YW50aW4gQW5hbnlldg0KPiA8a29uc3RhbnRpbi5hbmFueWV2QGh1YXdlaS5jb20+OyBOQlUtQ29u dGFjdC1UaG9tYXMgTW9uamFsb24gKEVYVEVSTkFMKQ0KPiA8dGhvbWFzQG1vbmphbG9uLm5ldD47 IEFuZHJldyBSeWJjaGVua28gPGFuZHJldy5yeWJjaGVua29Ab2t0ZXRsYWJzLnJ1Pg0KPiBDYzog ZGV2QGRwZGsub3JnOyBCcnVjZSBSaWNoYXJkc29uIDxicnVjZS5yaWNoYXJkc29uQGludGVsLmNv bT4NCj4gU3ViamVjdDogUmU6IFtSRkMgMC80XSBldGhkZXY6IHJld29yayBjb25maWcgcmVzdG9y ZQ0KPiANCj4gRXh0ZXJuYWwgZW1haWw6IFVzZSBjYXV0aW9uIG9wZW5pbmcgbGlua3Mgb3IgYXR0 YWNobWVudHMNCj4gDQo+IA0KPiBPbiAxMC8xMC8yMDI0IDE6MDggUE0sIERhcml1c3ogU29zbm93 c2tpIHdyb3RlOg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBG ZXJydWggWWlnaXQgPGZlcnJ1aC55aWdpdEBhbWQuY29tPg0KPiA+PiBTZW50OiBUaHVyc2RheSwg T2N0b2JlciAxMCwgMjAyNCAwMToxNw0KPiA+PiBUbzogRGFyaXVzeiBTb3Nub3dza2kgPGRzb3Nu b3dza2lAbnZpZGlhLmNvbT47IEtvbnN0YW50aW4gQW5hbnlldg0KPiA+PiA8a29uc3RhbnRpbi5h bmFueWV2QGh1YXdlaS5jb20+OyBOQlUtQ29udGFjdC1UaG9tYXMgTW9uamFsb24NCj4gPj4gKEVY VEVSTkFMKSA8dGhvbWFzQG1vbmphbG9uLm5ldD47IEFuZHJldyBSeWJjaGVua28NCj4gPj4gPGFu ZHJldy5yeWJjaGVua29Ab2t0ZXRsYWJzLnJ1Pg0KPiA+PiBDYzogZGV2QGRwZGsub3JnOyBCcnVj ZSBSaWNoYXJkc29uIDxicnVjZS5yaWNoYXJkc29uQGludGVsLmNvbT4NCj4gPj4gU3ViamVjdDog UmU6IFtSRkMgMC80XSBldGhkZXY6IHJld29yayBjb25maWcgcmVzdG9yZQ0KPiA+Pg0KPiA+PiBF eHRlcm5hbCBlbWFpbDogVXNlIGNhdXRpb24gb3BlbmluZyBsaW5rcyBvciBhdHRhY2htZW50cw0K PiA+Pg0KPiA+Pg0KPiA+PiBPbiAxMC85LzIwMjQgNToxOCBQTSwgRGFyaXVzeiBTb3Nub3dza2kg d3JvdGU6DQo+ID4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4+PiBGcm9tOiBG ZXJydWggWWlnaXQgPGZlcnJ1aC55aWdpdEBhbWQuY29tPg0KPiA+Pj4+IFNlbnQ6IFdlZG5lc2Rh eSwgT2N0b2JlciA5LCAyMDI0IDAzOjA4DQo+ID4+Pj4gVG86IEtvbnN0YW50aW4gQW5hbnlldiA8 a29uc3RhbnRpbi5hbmFueWV2QGh1YXdlaS5jb20+OyBEYXJpdXN6DQo+ID4+Pj4gU29zbm93c2tp IDxkc29zbm93c2tpQG52aWRpYS5jb20+OyBOQlUtQ29udGFjdC1UaG9tYXMgTW9uamFsb24NCj4g Pj4+PiAoRVhURVJOQUwpIDx0aG9tYXNAbW9uamFsb24ubmV0PjsgQW5kcmV3IFJ5YmNoZW5rbw0K PiA+Pj4+IDxhbmRyZXcucnliY2hlbmtvQG9rdGV0bGFicy5ydT4NCj4gPj4+PiBDYzogZGV2QGRw ZGsub3JnOyBCcnVjZSBSaWNoYXJkc29uIDxicnVjZS5yaWNoYXJkc29uQGludGVsLmNvbT4NCj4g Pj4+PiBTdWJqZWN0OiBSZTogW1JGQyAwLzRdIGV0aGRldjogcmV3b3JrIGNvbmZpZyByZXN0b3Jl DQo+ID4+Pj4NCj4gPj4+PiBFeHRlcm5hbCBlbWFpbDogVXNlIGNhdXRpb24gb3BlbmluZyBsaW5r cyBvciBhdHRhY2htZW50cw0KPiA+Pj4+DQo+ID4+Pj4NCj4gPj4+PiBPbiAxMC84LzIwMjQgNjoy MSBQTSwgS29uc3RhbnRpbiBBbmFueWV2IHdyb3RlOg0KPiA+Pj4+Pg0KPiA+Pj4+Pg0KPiA+Pj4+ Pj4+Pj4+IFdlIGhhdmUgYmVlbiB3b3JraW5nIG9uIG9wdGltaXppbmcgdGhlIGxhdGVuY3kgb2Yg Y2FsbHMgdG8NCj4gPj4+Pj4+Pj4+PiBydGVfZXRoX2Rldl9zdGFydCgpLCBvbiBwb3J0cyBzcGF3 bmVkIGJ5IG1seDUgUE1ELiBNb3N0IG9mDQo+ID4+Pj4+Pj4+Pj4gdGhlIHdvcmsgcmVxdWlyZXMg Y2hhbmdlcyBpbiB0aGUgaW1wbGVtZW50YXRpb24gb2YNCj4gPj4+Pj4+Pj4+PiAuZGV2X3N0YXJ0 KCkgUE1EIGNhbGxiYWNrLCBidXQgSSBhbHNvIHdhbnRlZCB0byBzdGFydCBhDQo+ID4+Pj4+Pj4+ Pj4gZGlzY3Vzc2lvbiByZWdhcmRpbmcgY29uZmlndXJhdGlvbiByZXN0b3JlLg0KPiA+Pj4+Pj4+ Pj4+DQo+ID4+Pj4+Pj4+Pj4gcnRlX2V0aF9kZXZfc3RhcnQoKSBkb2VzIGEgZmV3IHRoaW5ncyBv biB0b3Agb2YgY2FsbGluZw0KPiA+Pj4+Pj4+Pj4+IC5kZXZfc3RhcnQoKQ0KPiA+Pj4+IGNhbGxi YWNrOg0KPiA+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4gLSBCZWZvcmUgY2FsbGluZyBpdDoNCj4g Pj4+Pj4+Pj4+PiAgICAgLSBldGhfZGV2X21hY19yZXN0b3JlKCkgLSBpZiBkZXZpY2Ugc3VwcG9y dHMNCj4gPj4+Pj4+Pj4+PiBSVEVfRVRIX0RFVl9OT0xJVkVfTUFDX0FERFI7DQo+ID4+Pj4+Pj4+ Pj4gLSBBZnRlciBjYWxsaW5nIGl0Og0KPiA+Pj4+Pj4+Pj4+ICAgICAtIGV0aF9kZXZfbWFjX3Jl c3RvcmUoKSAtIGlmIGRldmljZSBkb2VzIG5vdCBzdXBwb3J0DQo+ID4+Pj4+Pj4+PiBSVEVfRVRI X0RFVl9OT0xJVkVfTUFDX0FERFI7DQo+ID4+Pj4+Pj4+Pj4gICAgIC0gcmVzdG9yZSBwcm9taXNj dW91cyBjb25maWcNCj4gPj4+Pj4+Pj4+PiAgICAgLSByZXN0b3JlIGFsbCBtdWx0aWNhc3QgY29u ZmlnDQo+ID4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+PiBldGhfZGV2X21hY19yZXN0b3JlKCkgaXRl cmF0ZXMgb3ZlciBhbGwga25vd24gTUFDIGFkZHJlc3NlcyAtDQo+ID4+Pj4+Pj4+Pj4gc3RvcmVk IGluIHJ0ZV9ldGhfZGV2X2RhdGEubWFjX2FkZHJzIGFycmF5IC0gYW5kIGNhbGxzDQo+ID4+Pj4+ Pj4+Pj4gLm1hY19hZGRyX3NldCgpIGFuZCAubWFjX2FkZHJfYWRkKCkgY2FsbGJhY2tzIHRvIGFw cGx5IHRoZXNlDQo+ID4+Pj4+Pj4+Pj4gTUFDDQo+ID4+Pj4gYWRkcmVzc2VzLg0KPiA+Pj4+Pj4+ Pj4+DQo+ID4+Pj4+Pj4+Pj4gUHJvbWlzY3VvdXMgY29uZmlnIHJlc3RvcmUgY2hlY2tzIGlmIHBy b21pc2N1b3VzIG1vZGUgaXMNCj4gPj4+Pj4+Pj4+PiBlbmFibGVkIG9yIG5vdCwgYW5kIGNhbGxz IC5wcm9taXNjdW91c19lbmFibGUoKSBvcg0KPiA+Pj4+Pj4+Pj4+IC5wcm9taXNjdW91c19kaXNh YmxlKCkNCj4gPj4+PiBjYWxsYmFjay4NCj4gPj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+IEFsbCBt dWx0aWNhc3QgY29uZmlnIHJlc3RvcmUgY2hlY2tzIGlmIGFsbCBtdWx0aWNhc3QgbW9kZSBpcw0K PiA+Pj4+Pj4+Pj4+IGVuYWJsZWQgb3Igbm90LCBhbmQgY2FsbHMgLmFsbG11bHRpY2FzdF9lbmFi bGUoKSBvcg0KPiA+Pj4+Pj4+Pj4+IC5hbGxtdWx0aWNhc3RfZGlzYWJsZSgpDQo+ID4+Pj4gY2Fs bGJhY2suDQo+ID4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+PiBDYWxsYmFja3MgYXJlIGNhbGxlZCBk aXJlY3RseSBpbiBhbGwgb2YgdGhlc2UgY2FzZXMsIHRvDQo+ID4+Pj4+Pj4+Pj4gYnlwYXNzIHRo ZSBjaGVja3MgZm9yIGFwcGx5aW5nIHRoZSBzYW1lIGNvbmZpZ3VyYXRpb24sIHdoaWNoDQo+ID4+ Pj4+Pj4+Pj4gZXhpc3QgaW4gcmVsZXZhbnQNCj4gPj4+PiBBUElzLg0KPiA+Pj4+Pj4+Pj4+IENo ZWNrcyBhcmUgYnlwYXNzZWQgdG8gZm9yY2UgZHJpdmVycyB0byByZWFwcGx5IHRoZSBjb25maWd1 cmF0aW9uLg0KPiA+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4gTGV0J3MgY29uc2lkZXIgd2hhdCBo YXBwZW5zIGluIHRoZSBmb2xsb3dpbmcgc2VxdWVuY2Ugb2YgQVBJIGNhbGxzLg0KPiA+Pj4+Pj4+ Pj4+DQo+ID4+Pj4+Pj4+Pj4gMS4gcnRlX2V0aF9kZXZfY29uZmlndXJlKCkNCj4gPj4+Pj4+Pj4+ PiAyLiBydGVfZXRoX3R4X3F1ZXVlX3NldHVwKCkNCj4gPj4+Pj4+Pj4+PiAzLiBydGVfZXRoX3J4 X3F1ZXVlX3NldHVwKCkNCj4gPj4+Pj4+Pj4+PiA0LiBydGVfZXRoX3Byb21pc2N1b3VzX2VuYWJs ZSgpDQo+ID4+Pj4+Pj4+Pj4gICAgIC0gQ2FsbCBkZXYtPmRldl9vcHMtPnByb21pc2N1b3VzX2Vu YWJsZSgpDQo+ID4+Pj4+Pj4+Pj4gICAgIC0gU3RvcmVzIHByb21pc2N1b3VzIHN0YXRlIGluIGRl di0+ZGF0YS0+cHJvbWlzY3VvdXMgNS4NCj4gPj4+Pj4+Pj4+PiBydGVfZXRoX2FsbG11bHRpY2Fz dF9lbmFibGUoKQ0KPiA+Pj4+Pj4+Pj4+ICAgICAtIENhbGwgZGV2LT5kZXZfb3BzLT5hbGxtdWx0 aWNhc3RfZW5hYmxlKCkNCj4gPj4+Pj4+Pj4+PiAgICAgLSBTdG9yZXMgYWxsbXVsdGljYXN0IHN0 YXRlIGluIGRldi0+ZGF0YS0+YWxsbXVsdGljYXN0IDYuDQo+ID4+Pj4+Pj4+Pj4gcnRlX2V0aF9k ZXZfc3RhcnQoKQ0KPiA+Pj4+Pj4+Pj4+ICAgICAtIENhbGwgZGV2LT5kZXZfb3BzLT5kZXZfc3Rh cnQoKQ0KPiA+Pj4+Pj4+Pj4+ICAgICAtIENhbGwgZGV2LT5kZXZfb3BzLT5tYWNfYWRkcl9zZXQo KSAtIGFwcGx5IGRlZmF1bHQgTUFDIGFkZHJlc3MNCj4gPj4+Pj4+Pj4+PiAgICAgLSBDYWxsIGRl di0+ZGV2X29wcy0+cHJvbWlzY3VvdXNfZW5hYmxlKCkNCj4gPj4+Pj4+Pj4+PiAgICAgLSBDYWxs IGRldi0+ZGV2X29wcy0+YWxsbXVsdGljYXN0X2VuYWJsZSgpDQo+ID4+Pj4+Pj4+Pj4NCj4gPj4+ Pj4+Pj4+PiBFdmVuIHRob3VnaCBhbGwgY29uZmlndXJhdGlvbiBpcyBhdmFpbGFibGUgaW4gZGV2 LT5kYXRhIGFmdGVyDQo+ID4+Pj4+Pj4+Pj4gc3RlcCA1LCBsaWJyYXJ5IGZvcmNlcyByZWFwcGx5 aW5nIHRoaXMgY29uZmlndXJhdGlvbiBpbiBzdGVwIDYuDQo+ID4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+ Pj4+PiBJbiBtbHg1IFBNRCBjYXNlIGFsbCByZWxldmFudCBjYWxsYmFja3MgcmVxdWlyZSBjb21t dW5pY2F0aW9uDQo+ID4+Pj4+Pj4+Pj4gd2l0aCB0aGUga2VybmVsIGRyaXZlciwgdG8gY29uZmln dXJlIHRoZSBkZXZpY2UgKG1seDUgUE1EDQo+ID4+Pj4+Pj4+Pj4gbXVzdCBjcmVhdGUvZGVzdHJv eSBuZXcga2VybmVsIGZsb3cgcnVsZXMgYW5kL29yIGNoYW5nZSBuZXRkZXYNCj4gY29uZmlnKS4N Cj4gPj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+IG1seDUgUE1EIGhhbmRsZXMgYXBwbHlpbmcgYWxs IGNvbmZpZ3VyYXRpb24gaW4gLmRldl9zdGFydCgpLA0KPiA+Pj4+Pj4+Pj4+IHNvIHRoZSBmb2xs b3dpbmcgZm9yY2VkIGNhbGxiYWNrcyBmb3JjZSBhZGRpdGlvbmFsDQo+ID4+Pj4+Pj4+Pj4gY29t bXVuaWNhdGlvbiB3aXRoIHRoZSBrZXJuZWwuIFRoZQ0KPiA+Pj4+Pj4+Pj4gc2FtZSBjb25maWd1 cmF0aW9uIGlzIGFwcGxpZWQgbXVsdGlwbGUgdGltZXMuDQo+ID4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+ Pj4+PiBBcyBhbiBvcHRpbWl6YXRpb24sIG1seDUgUE1EIGNvdWxkIGNoZWNrIGlmIGEgZ2l2ZW4N Cj4gPj4+Pj4+Pj4+PiBjb25maWd1cmF0aW9uIHdhcyBhcHBsaWVkLCBidXQgdGhpcyB3b3VsZCBk dXBsaWNhdGUgdGhlDQo+ID4+Pj4+Pj4+Pj4gZnVuY3Rpb25hbGl0eSBvZiB0aGUgbGlicmFyeSAo Zm9yIGV4YW1wbGUNCj4gPj4+Pj4+Pj4+PiBydGVfZXRoX3Byb21pc2N1b3VzX2VuYWJsZSgpIGRv ZXMgbm90IGNhbGwgdGhlIGRyaXZlciBpZg0KPiA+Pj4+Pj4+Pj4+IGRldi0+ZGF0YS0+cHJvbWlz Y3VvdXMgaXMgc2V0KS4NCj4gPj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+IFF1ZXN0aW9uOiBTaW5j ZSBhbGwgb2YgdGhlIGNvbmZpZ3VyYXRpb24gaXMgYXZhaWxhYmxlIGJlZm9yZQ0KPiA+Pj4+Pj4+ Pj4+IC5kZXZfc3RhcnQoKSBjYWxsYmFjayBpcyBjYWxsZWQsIHdoeSBldGhkZXYgbGlicmFyeSBk b2VzIG5vdA0KPiA+Pj4+Pj4+Pj4+IGV4cGVjdCAuZGV2X3N0YXJ0KCkgdG8NCj4gPj4+Pj4+Pj4+ IHRha2UgdGhpcyBjb25maWd1cmF0aW9uIGludG8gYWNjb3VudD8NCj4gPj4+Pj4+Pj4+PiBJbiBv dGhlciB3b3Jkcywgd2h5IGxpYnJhcnkgaGFzIHRvIHJlYXBwbHkgdGhlIGNvbmZpZ3VyYXRpb24/ DQo+ID4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+PiBJIGNvdWxkIG5vdCBmaW5kIGFueSBwYXJ0aWN1 bGFyIHJlYXNvbiB3aHkgY29uZmlndXJhdGlvbg0KPiA+Pj4+Pj4+Pj4+IHJlc3RvcmUgZXhpc3Rz IGFzIHBhcnQgb2YgdGhlIHByb2Nlc3MgKGl0IHdhcyBpbiB0aGUgaW5pdGlhbCBEUERLDQo+IGNv bW1pdCkuDQo+ID4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+PiBNeSBhc3N1bXB0 aW9uIGlzIC5kZXZfc3RvcCgpIGNhdXNlIHRoZXNlIHZhbHVlcyByZXNldCBpbiBzb21lDQo+ID4+ Pj4+Pj4+PiBkZXZpY2VzLCBzbw0KPiA+Pj4+Pj4+Pj4gLmRldl9zdGFydCgpIHJlc3RvcmVzIHRo ZW0gYmFjay4NCj4gPj4+Pj4+Pj4+IEBCcnVjZSBvciBAS29uc3RhbnRpbiBtYXkgcmVtZW1iZXIg dGhlIGhpc3RvcnkuDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBZZXAsIGFzIEkgcmVtZW1iZXIsIGF0 IGxlYXN0IHNvbWUgSW50ZWwgUE1EcyBjYWxsaW5nIGh3X3Jlc2V0KCkNCj4gPj4+Pj4+PiBhZA0K PiA+Pj4+Pj4+IGRlY19zdG9wKCkgYW5kIGV2ZW4gZGV2X3N0YXJ0KCkgdG8gbWFrZSBzdXJlIHRo YXQgSFcgaXMgaW4gYQ0KPiA+Pj4+Pj4+IGNsZWFuDQo+ID4+Pj4+Pj4gKGtub3duKQ0KPiA+Pj4+ IHN0YXRlLg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4gQnV0IEkgYWdyZWUg dGhpcyBpcyBkZXZpY2Ugc3BlY2lmaWMgYmVoYXZpb3IsIGFuZCBjYW4gYmUNCj4gPj4+Pj4+Pj4+ IG1hbmFnZWQgYnkgd2hhdCBkZXZpY2UgcmVxdWlyZXMuDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBQ cm9iYWJseSB5ZXMuDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4gVGhlIHBh dGNoZXMgaW5jbHVkZWQgaW4gdGhpcyBSRkMsIHByb3Bvc2UgYSBtZWNoYW5pc20gd2hpY2gNCj4g Pj4+Pj4+Pj4+PiB3b3VsZCBoZWxwIHdpdGggbWFuYWdpbmcgd2hpY2ggZHJpdmVycyByZWx5IG9u IGZvcmNlZnVsDQo+ID4+Pj4+Pj4+Pj4gY29uZmlndXJhdGlvbg0KPiA+PiByZXN0b3JlLg0KPiA+ Pj4+Pj4+Pj4+IERyaXZlcnMgY291bGQgYWR2ZXJ0aXNlIGlmIGZvcmNlZnVsIGNvbmZpZ3VyYXRp b24gcmVzdG9yZSBpcw0KPiA+Pj4+Pj4+Pj4+IG5lZWRlZCB0aHJvdWdoIGBSVEVfRVRIX0RFVl8q X0ZPUkNFX1JFU1RPUkVgIGRldmljZSBmbGFnLiBJZg0KPiA+Pj4+Pj4+Pj4+IHRoaXMgZmxhZyBp cyBzZXQsIHRoZW4gdGhlIGRyaXZlciBpbiBxdWVzdGlvbiByZXF1aXJlcyBldGhkZXYNCj4gPj4+ Pj4+Pj4+PiB0byBmb3JjZWZ1bGx5IHJlc3RvcmUNCj4gPj4+Pj4+Pj4+IGNvbmZpZ3VyYXRpb24u DQo+ID4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+PiBPSyB0byB1c2UgZmxhZyBm b3IgaXQsIGJ1dCBub3Qgc3VyZSBhYm91dCB1c2luZyAnZGV2X2luZm8tPmRldl9mbGFncycNCj4g Pj4+Pj4+Pj4+IChSVEVfRVRIX0RFVl8qKSBmb3IgdGhpcywgYXMgdGhpcyBmbGFnIGlzIHNoYXJl ZCB3aXRoIHVzZXIgYW5kDQo+ID4+Pj4+Pj4+PiB0aGlzIGlzIGFsbCBkcGRrIGludGVybmFsLg0K PiA+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+IFdoYXQgYWJvdXQgdG8gaGF2ZSBhIGRlZGljYXRlZCBm bGFnIGZvciBpdD8gV2UgY2FuIGhhdmUgYQ0KPiA+Pj4+Pj4+Pj4gZGVkaWNhdGVkIHNldCBvZiBm bGFnIHZhbHVlcyBmb3IgcmVzdG9yZS4NCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gQWdyZWVkLiBX aGF0IGRvIHlvdSB0aGluayBhYm91dCB0aGUgZm9sbG93aW5nPw0KPiA+Pj4+Pj4+DQo+ID4+Pj4+ Pj4gSW5zdGVhZCBvZiBleHBvc2luZyB0aGF0LCBjYW4gd2UgcHJvYmFibHkgbWFrZSBpdCB0cmFu c3BhcmVudCB0bw0KPiA+Pj4+Pj4+IHRoZSB1c2VyIGFuZCBwcm9iYWJseSBldGhkZXYgbGF5ZXIg dG9vPw0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gKzEgdG8gbWFrZSBpdCB0cmFuc3Bh cmVudCB0byB1c2VyLCBidXQgbm90IHN1cmUgaWYgd2UgY2FuIG1ha2UgaXQNCj4gPj4+Pj4+IHRy YW5zcGFyZW50IHRvIGV0aGRldiBsYXllci4NCj4gPj4+Pj4NCj4gPj4+Pj4gSnVzdCB0byBiZSBj bGVhcjoNCj4gPj4+Pj4gTGV0IHNheSwgdXNpbmcgZXhhbXBsZSBmcm9tIGFib3ZlOg0KPiA+Pj4+ Pg0KPiA+Pj4+PiAgcnRlX2V0aF9kZXZfc3RhcnQoKQ0KPiA+Pj4+PiAgICAgIC0gQ2FsbCBkZXYt PmRldl9vcHMtPmRldl9zdGFydCgpDQo+ID4+Pj4+ICAgICAgLSBDYWxsIGRldi0+ZGV2X29wcy0+ bWFjX2FkZHJfc2V0KCkgLSBhcHBseSBkZWZhdWx0IE1BQyBhZGRyZXNzDQo+ID4+Pj4+ICAgICAg LSBDYWxsIGRldi0+ZGV2X29wcy0+cHJvbWlzY3VvdXNfZW5hYmxlKCkNCj4gPj4+Pj4gICAgICAt IENhbGwgZGV2LT5kZXZfb3BzLT5hbGxtdWx0aWNhc3RfZW5hYmxlKCkNCj4gPj4+Pj4NCj4gPj4+ Pj4gV2UgcHJvYmFibHkgY2FuIGludHJvZHVjZSBldGhkZXYgaW50ZXJuYWwgZnVuY3Rpb24gKHN0 aWxsIHZpc2libGUNCj4gPj4+Pj4gdG8NCj4gPj4+Pj4gUE1EcykgdGhhdCB3b3VsZCBkbyBsYXN0 IDMgc3RlcHM6DQo+ID4+Pj4+IGV0aGRldl9yZXBsYXlfdXNlcl9jb25mKC4uLikNCj4gPj4+Pj4g ICAgICAtIENhbGwgZGV2LT5kZXZfb3BzLT5tYWNfYWRkcl9zZXQoKSAtIGFwcGx5IGRlZmF1bHQg TUFDIGFkZHJlc3MNCj4gPj4+Pj4gICAgICAtIENhbGwgZGV2LT5kZXZfb3BzLT5wcm9taXNjdW91 c19lbmFibGUoKQ0KPiA+Pj4+PiAgICAgIC0gQ2FsbCBkZXYtPmRldl9vcHMtPmFsbG11bHRpY2Fz dF9lbmFibGUoKQ0KPiA+Pj4+Pg0KPiA+Pj4+PiBBbmQgbGV0IFBNRCBpdHNlbGYgdG8gZGVjaWRl IGRvZXMgaXQgbmVlZHMgdG8gY2FsbCBpdCBhdCBkZXZfc3RhcnQoKSBvciBub3QuDQo+ID4+Pj4+ IFNvIGl0IHdpbGwgYmVjb21lOg0KPiA+Pj4+PiBydGVfZXRoX2Rldl9zdGFydCgpDQo+ID4+Pj4+ ICAgICAgLSBDYWxsIGRldi0+ZGV2X29wcy0+ZGV2X3N0YXJ0KCkNCj4gPj4+Pj4gICAgICAgLUNh bGwgZXRoZGV2X3JlcGxheV91c2VyX2NvbmYoLikNCj4gPj4+Pj4gICAgICAgICAgICAgICAtIENh bGwgZGV2LT5kZXZfb3BzLT5tYWNfYWRkcl9zZXQoKSAtIGFwcGx5IGRlZmF1bHQgTUFDIGFkZHJl c3MNCj4gPj4+Pj4gICAgICAgICAgICAgICAtIENhbGwgZGV2LT5kZXZfb3BzLT5wcm9taXNjdW91 c19lbmFibGUoKQ0KPiA+Pj4+PiAgICAgICAgICAgICAgIC1DYWxsIGRldi0+ZGV2X29wcy0+YWxs bXVsdGljYXN0X2VuYWJsZSgpDQo+ID4+Pj4+DQo+ID4+Pj4+IEZvciBQTURzIHRoYXQgZG8gbmVl ZCB0byByZXN0b3JlIHVzZXIgcHJvdmlkZWQgY29uZmlnIEFuZA0KPiA+Pj4+PiBydGVfZXRoX2Rl dl9zdGFydCgpDQo+ID4+Pj4+ICAgICAgLSBDYWxsIGRldi0+ZGV2X29wcy0+ZGV2X3N0YXJ0KCkN Cj4gPj4+Pj4NCj4gPj4+Pj4gRm9yIHRob3NlIHdobyBkbyBub3QuDQo+ID4+Pj4+DQo+ID4+Pj4N Cj4gPj4+PiBPSywgZ290IGl0IHdoYXQgeW91IG1lYW4uDQo+ID4+Pj4gUHVzaGluZyByZXN0b3Jl IGZ1bmN0aW9uYWxpdHkgdG8gUE1EcyB3b3JrcywgYnV0IHRoaXMgbWF5IGJlIGRvaW5nDQo+ID4+ Pj4gcmVkdW5kYW50IHdvcmsgb24gZWFjaCBQTUQuDQo+ID4+Pj4NCj4gPj4+PiBJbnN0ZWFkIERh cml1c3ogc3VnZ2VzdHMgUE1EIHRvIHByb3ZpZGUgYSBmbGFnIHRvIGVodGRldiB0byB3aGF0IHRv DQo+ID4+Pj4gcmVzdG9yZSBhbmQgY29tbW9uIGNvZGUgaW4gZXRoZGV2IGRvZXMgdGhlIHdvcmsu DQo+ID4+Pj4gTXkgYmVsb3cgZGVkaWNhdGVkIGRhdGEgc3RydWN0IGNvbW1lbnQgaXMgdG8gaGF2 ZSB0aGlzIGZsYWcgaW4gYQ0KPiA+Pj4+IG5ldyBzdHJ1Y3QsIG92ZXJhbGwgbGlrZSBmb2xsb3dp bmc6DQo+ID4+Pj4NCj4gPj4+PiBydGVfZXRoX2Rldl9zdGFydCgpDQo+ID4+Pj4gICAgLSBDYWxs IGRldi0+ZGV2X29wcy0+ZGV2X3N0YXJ0KCkNCj4gPj4+PiAgICAtIENhbGwgZGV2LT5kZXZfb3Bz LT5nZXRfcmVzdG9yZV9mbGFncyhldGhkZXYsIFJURV9FVEhfU1RBUlQsICZmbGFncykNCj4gPj4+ PiAgICAtIGlmIChmbGFncyAmIE1BQykgZGV2LT5kZXZfb3BzLT5tYWNfYWRkcl9zZXQoKQ0KPiA+ Pj4+ICAgIC0gaWYgKGZsYWdzICYgUFJPTUlTQykgZGV2LT5kZXZfb3BzLT5wcm9taXNjdW91c19l bmFibGUoKQ0KPiA+Pj4+ICAgIC0gLi4uDQo+ID4+Pg0KPiA+Pj4gQ291bGQgeW91IHBsZWFzZSBl eHBsYWluIHdoYXQgaXMgdGhlIGJlbmVmaXQgb2YgZXhwb3NpbmcgZmxhZ3MNCj4gPj4+IHRocm91 Z2ggZGV2X29wcw0KPiA+PiBjYWxsYmFjayB2cyBhIGRlZGljYXRlZCBmbGFncyBmaWVsZCBpbiBy dGVfZXRoX2Rldl9kYXRhPw0KPiA+Pj4gSW4gYm90aCBzb2x1dGlvbnM6DQo+ID4+PiAtIGNvbmZp ZyByZXN0b3JlIGlzIHRyYW5zcGFyZW50IHRvIHRoZSB1c2VyLA0KPiA+Pj4gLSBkcml2ZXJzIGNh biBvbWl0IGNvbmZpZyByZXN0b3JlIChlaXRoZXIgYnkgbm90IGltcGxlbWVudGluZyB0aGUNCj4g Pj4+IGNhbGxiYWNrIG9yIG5vdCBwcm92aWRpbmcgdGhlIGZsYWdzKSwNCj4gPj4+IC0gYW4gQUJJ IGNoYW5nZSBpcyBpbnRyb2R1Y2VkIChub3QgYSBodWdlIGNvbmNlcm4sIGF0IGxlYXN0IGZvciAy NC4xMSkuDQo+ID4+Pg0KPiA+Pj4gSSB1bmRlcnN0YW5kIHRoYXQgbXkgaW5pdGlhbCBwcm9wb3Nh bCB3aXRoICJpbnRlcm5hbF9mbGFncyIgd2FzIHRvbw0KPiA+Pj4gdmFndWUsIGJ1dCByZW5hbWlu ZyBhbmQgc3BsaXR0aW5nIHRoaXMgZmllbGQgaW50bzoNCj4gPj4+DQo+ID4+PiAtIGRldl9zdGFy dF9yZXN0b3JlX2ZsYWdzDQo+ID4+PiAtIGRldl9yZXNldF9yZXN0b3JlX2ZsYWdzDQo+ID4+PiAt IGFuZCBzbyBvbi4uLg0KPiA+Pj4NCj4gPj4+IHNlZW1zIHN1ZmZpY2llbnQsIGF0IGxlYXN0IGlu IG15IG9waW5pb24uDQo+ID4+Pg0KPiA+Pg0KPiA+PiBIaSBEYXJpdXN6LA0KPiA+Pg0KPiA+PiBQ dXR0aW5nIGZsYWdzIHRvIHJ0ZV9ldGhfZGV2X2RhdGEgd29ya3MsIGFuZCBpdCBpcyBlYXNpZXIg c2luY2UgdGhlcmUNCj4gPj4gaXMgZGlyZWN0IGFjY2VzcyBmcm9tIHJ0ZV9ldGhfZGV2IHRvIHJ0 ZV9ldGhfZGV2X2RhdGEsIHNvIHlvdSBkb24ndA0KPiA+PiBuZWVkIG5ldyBkZXZfb3BzLiBTbyB0 aGlzIGlzIGEgdmFsaWQgb3B0aW9uLg0KPiA+Pg0KPiA+PiBCdXQgYmVuZWZpdCBvZiBuZXcgZGV2 X29wcyBpcyB0byBrZWVwICJzdHJ1Y3QgcnRlX2V0aF9kZXZfZGF0YSIgY2xlYW4uDQo+ID4+DQo+ ID4+ICJzdHJ1Y3QgcnRlX2V0aF9kZXZfZGF0YSIgaXMgaW50ZWdyYWwgZGF0YSBzdHJ1Y3R1cmUg Zm9yIGV0aGRldiBhbmQNCj4gPj4gaXQgaXMgdXNlZCBpbiBtdWx0aXBsZSBsb2NhdGlvbnMsIG1v c3RseSByZWxhdGVkIHRvIHRoZSBkYXRhcGF0aCBhbmQNCj4gPj4gYWxsIGRyaXZlcnMgbmVlZHMg dG8gZGVhbCB3aXRoIGZpZWxkcyBvZiB0aGlzIHN0cnVjdC4NCj4gPj4gTGlrZSBbcnhdX3F1ZXVl cywgZGV2X3ByaXZhdGUsIGRldl9jb25mIGFsbCBpbXBvcnRhbnQgYW5kIHVzZWQgYSBsb3QuDQo+ ID4+DQo+ID4+IEkgd2FudCB0byBwcm90ZWN0ICJzdHJ1Y3QgcnRlX2V0aF9kZXZfZGF0YSIgZnJv bSBub2lzZSBhcyBtdWNoIGFzDQo+ID4+IHBvc3NpYmxlLCB0aG91Z2ggd2hhdCBpcyBub2lzZSBp cyBub3QgYWx3YXlzIHRoYXQgY2xlYXIuDQo+ID4+DQo+ID4+IFRoaXMgcmVzdG9yZSBmbGFnIGlz IG5vdCBjcml0aWNhbCwgYW5kIEkgZXhwZWN0IG1vc3Qgb2YgdGhlIGRyaXZlcnMNCj4gPj4gd29u J3QgY2FyZSBhbmQgcG9wdWxhdGUgdGhpcyByZXN0b3JlIGZsYWcgYXQgYWxsLiBUaGF0IGlzIHdo eSB0byBtZQ0KPiA+PiBpdCBpcyBiZXR0ZXIgaGF2ZSBkZWRpY2F0ZWQgc3RydWN0IGZvciBpdCBh bmQgb25seSBkcml2ZXJzIGNhcmUgYWJvdXQgcmVzdG9yZQ0KPiBmZWF0dXJlIGtub3cgaXQuDQo+ ID4NCj4gPiBJIHNlZS4gVGhhbmsgeW91IHZlcnkgbXVjaCBmb3IgdGhlIGV4cGxhbmF0aW9uLg0K PiA+DQo+ID4gSW4gdGhpcyBjYXNlLCBpdCBsb29rcyBsaWtlIGFkZGluZyB0aGlzIHRvIGRldl9v cHMgaXMgdGhlIHdheSB0byBnby4NCj4gPg0KPiA+IFNvLCBzdW1tYXJpemluZyBpdCBhbGw6DQo+ ID4NCj4gPiAxLiBkZXZfb3BzIHNob3VsZCBiZSBleHRlbmRlZCB3aXRoIGEgY2FsbGJhY2sgd2l0 aCB0aGUgZm9sbG93aW5nIHNpZ25hdHVyZSBhbmQNCj4gZW51bXMvZmxhZ3M6DQo+ID4NCj4gPiBl bnVtIHJ0ZV9ldGhfZGV2X29wZXJhdGlvbiBvcCB7DQo+ID4gICAgICAgUlRFX0VUSF9TVEFSVCwN Cj4gPiAgICAgICBSVEVfRVRIX1NUT1AsDQo+ID4gICAgICAgUlRFX0VUSF9SRVNFVCwNCj4gPiB9 Ow0KPiA+DQo+ID4gI2RlZmluZSBSVEVfRVRIX1JFU1RPUkVfTUFDX0FERFIgUlRFX0JJVDMyKDAp ICNkZWZpbmUNCj4gPiBSVEVfRVRIX1JFU1RPUkVfUFJPTUlTQyBSVEVfQklUMzIoMSkgI2RlZmlu ZQ0KPiBSVEVfRVRIX1JFU1RPUkVfQUxMTVVMVEkNCj4gPiBSVEVfQklUMzIoMikNCj4gPg0KPiA+ IHZvaWQgKCpnZXRfcmVzdG9yZV9mbGFncykoDQo+ID4gICAgICAgc3RydWN0IHJ0ZV9ldGhfZGV2 ICpkZXYsDQo+ID4gICAgICAgZW51bSBydGVfZXRoX2Rldl9vcGVyYXRpb24gb3AsDQo+ID4gICAg ICAgdWludDMyX3QgKmZsYWdzKTsNCj4gPg0KPiA+IDIuIHJ0ZV9ldGhfZGV2X3N0YXJ0KCkgd2ls bCB3b3JrIGFzIGZvbGxvd3M6DQo+ID4NCj4gPiAtIENhbGwgZGV2LT5kZXZfb3BzLT5kZXZfc3Rh cnQoKQ0KPiA+IC0gQ2FsbCBkZXYtPmRldl9vcHMtPmdldF9yZXN0b3JlX2ZsYWdzKGRldiwgUlRF X0VUSF9TVEFSVCwgJmZsYWdzKS4gSWYgY2FsbGJhY2sNCj4gaXMgbm90IHByb3ZpZGVkLCBhc3N1 bWUgZmxhZ3MgPT0gMC4NCj4gPiAtIGlmIChmbGFncyAmIFJURV9FVEhfUkVTVE9SRV9NQUNfQURE UikgLSByZXN0b3JlIE1BQyBhZGRyZXNzZXMNCj4gPiAtIGFuZCBzbyBvbi4uLg0KPiA+DQo+IA0K PiBBbGwgYWJvdmUgbG9va3MgZ29vZC4NCj4gDQo+ID4gQWxzbywgSSB3b3VsZCBsaWtlIHRvIGFk ZCB0aGUgZm9sbG93aW5nOg0KPiA+DQo+ID4gMy4gUGF0Y2hzZXQgaW50cm9kdWNpbmcgdGhpcyBj aGFuZ2Ugc2hvdWxkIGFkZCBnZXRfcmVzdG9yZV9mbGFncygpDQo+IGltcGxlbWVudGF0aW9uIHRv IGFsbCBkcml2ZXJzLCB3aGljaCBpbmZvcm1zIHRoYXQgYWxsIGNvbmZpZyBzaG91bGQgYmUgcmVz dG9yZWQuDQo+ID4gVGhpcyB3b3VsZCBwcmVzZXJ2ZSB0aGUgY3VycmVudCBiZWhhdmlvci4NCj4g PiBMYXRlciwgdGhpcyBjb3VsZCBiZSByZWZpbmVkIGRyaXZlciBieSBkcml2ZXIuDQo+ID4NCj4g PiBXaGF0IGRvIHlvdSB0aGluaz8NCj4gPg0KPiANCj4gV2hhdCB5b3UgYXJlIHNheWluZyBpcyBj b3JyZWN0LCBidXQgSSBzdXNwZWN0IG1vc3Qgb2YgdGhlIGRyaXZlcnMgZG9uJ3QgcmVhbGx5IG5l ZWQNCj4gdGhpcyByZXN0b3JlLCBidXQgdGhleSBoYXZlIGl0IHNpbmNlIGl0IHdhcyBpbiB0aGUg ZXRoZGV2IGxheWVyLg0KPiANCj4gSWYgd2UgaW50cm9kdWNlIGJhY2sgcmVzdG9yZSB2aWEgZ2V0 X3Jlc3RvcmVfZmxhZ3MoKSwgaXQgbWF5IHN0YXkgYXMgaXQgaXMgaW4gZHJpdmVycywgYXQNCj4g bGVhc3QgZm9yIG1vc3Qgb2YgdGhlbS4NCj4gDQo+IFdoYXQgZG8geW91IHRoaW5rIHRvIHJpc2sg YnJlYWtpbmcgc3R1ZmYgZm9yIHRoaXMgY2FzZS4NCj4gDQo+IFNvIGRvbid0IGltcGxlbWVudCB0 aGlzIGluIHRoZSBkcml2ZXJzIGJ5IGRlZmF1bHQsIHNvIHdobyBuZWVkcyBpdCB3aWxsIHJlY29n bml6ZQ0KPiB0aGUgaXNzdWUgYW5kIHdpbGwgaW1wbGVtZW50IGl0LiBJZiB3ZSBtZXJnZSB0aGlz IHBhdGNoIGZvciAtcmMxLCBpdCBnaXZlcyBlbm91Z2gNCj4gdGltZSBmb3IgZHJpdmVycyB0byBk ZXRlY3QgdGhlIGlzc3VlIGFuZCBmaXggaXQuDQoNCkl0IHNlZW1zIHJhdGhlciB0b28gcmlza3ks IGVzcGVjaWFsbHkgY29uc2lkZXJpbmcgdGhhdCBmb3IgZXhhbXBsZSwgdGhlcmUgYXJlIGEgZmV3 IEludGVsIGRyaXZlcnMgd2hpY2ggZG8gbm90IGhhdmUgbWFpbnRhaW5lcnMgKGxpa2UgaTQwZSku DQpTbywgSSBkb24ndCBrbm93IHdoYXQgd2lsbCBoYXBwZW4gdG8gc3VjaCBkcml2ZXJzLiBUaGV5 IG1heSBiZSBsZWZ0IGJyb2tlbiAoaWYgdGhleSBhcmUgYWZmZWN0ZWQpIGZvciAyNC4xMSBhbmQg ZnV0dXJlIHJlbGVhc2VzLg0KQnV0IEkgYWdyZWUgdGhhdCBpZiBkZWZhdWx0IGJlaGF2aW9yIGlz IHByZXNlcnZlZCwgdGhpcyBkZXBlbmRlbmNlIG9mIGRyaXZlcnMgb24gY29uZmlnIHJlc3RvcmUg bWlnaHQgc3RheSBhcyBpcy4NCkknbSBvbiB0aGUgZmVuY2UgYWJvdXQgaXQuDQoNCj4gDQo+IE9u bHkgd2UgbWF5IGltcGxlbWVudCB0aGlzIHRvIHRoZSBkcml2ZXJzIHRoYXQgZXhpc3Qgd2hlbiB0 aGlzIHJlc3RvcmUgY29kZSB3YXMNCj4gaW50cm9kdWNlZC4NCj4gSSBtZWFuIHdoYXRldmVyIGRy aXZlciBleGlzdCBpbiB0aGUgaW5pdGlhbCBEUERLIGNvbW1pdCwgaW1wbGVtZW50IHRoaXMgbG9n aWMgb25seQ0KPiB0byB0aG9zZSBkcml2ZXJzLg0KDQpTZWVtcyByZWFzb25hYmxlIHRvIG1lLiBJ biB0aGlzIGNhc2UsIGl0IHdvdWxkIGJlIGlnYiAoSUlVQywgbm93IGl0J3MgbmFtZWQgZTEwMDAp IGFuZCBpeGdiZS4NCg0KPiANCj4gPiBBbHNvLCB0aGVyZSdzIGFuIG9wZW4gcXVlc3Rpb24gYWJv dXQgJ3N0b3AnIGFuZCAncmVzZXQnIG9wZXJhdGlvbnMuDQo+ID4gQXQgdGhlIG1vbWVudCwgZXRo ZGV2IGxheWVyIGRvZXMgbm90IGRvIGFueSBjb25maWcgbWFuaXB1bGF0aW9uIGR1cmluZyB0aGVz ZQ0KPiBvcGVyYXRpb25zLg0KPiA+IE1heWJlIHdlIHNob3VsZCBsaW1pdCBnZXRfcmVzdG9yZV9m bGFncygpIHRvICdzdGFydCcgb25seT8NCj4gPg0KPiANCj4gQWNrLCBJIHdhcyBhYm91dCB0byBz dWdnZXN0IHRoZSBzYW1lLCBmb3Igbm93IG9ubHkgaGF2ZSAnUlRFX0VUSF9TVEFSVCcNCj4gYXMg YSBwbGFjZWhvbGRlciBmb3IgbGF0ZXIgcG9zc2libGUgdXNhZ2VzLg0KDQpBY2sNCg0KPiANCj4g Pj4NCj4gPj4NCj4gPj4NCj4gPj4+Pg0KPiA+Pj4+IFNvIFBNRHMgb25seSB3aWxsIHByb3ZpZGUg d2hhdCB0byByZXN0b3JlIHdpdGggYW4gaW50ZXJuYWwgQVBJIGFuZA0KPiA+Pj4+IGNvbW1vbiBl dGhkZXYgbGF5ZXIgd2lsbCByZXN0b3JlIGl0Lg0KPiA+Pj4+IElmIG5vIHJlc3RvcmUgcmVxdWly ZWQgUE1EIG1heSBub3QgaW1wbGVtZW50IC5nZXRfcmVzdG9yZV9mbGFncygpIGF0IGFsbC4NCj4g Pj4+Pg0KPiA+Pj4+IEFkZGl0aW9uYWxseSwgUlRFX0VUSF9TVEFSVCwgUlRFX0VUSF9SRVNFVCBl dGMgZmxhZyBjYW4gYmUgcHJvdmlkZWQNCj4gPj4+PiB0byBpbnRlcm5hbCBBUEkgdG8gZ2V0IHdo YXQgdG8gcmVzdG9yZSBpbiBkaWZmZXJlbnQgc3RhdGVzLi4uDQo+ID4+Pj4NCj4gPj4+Pj4+IFN1 Z2dlc3RlZCAnaW50ZXJuYWxfZmxhZycgaW4gInN0cnVjdCBydGVfZXRoX2Rldl9kYXRhIiBjYW4g YmUNCj4gPj4+Pj4+IGNvbmZ1c2luZyBhbmQgb3BlbiB0byBpbnRlcnByZXRhdGlvbiB3aGF0IHRv IHVzZSBpdCBmb3IgYW5kIGJ5DQo+ID4+Pj4+PiB0aW1lIGJlY29tZSBzb3VyY2Ugb2YgZGVmZWN0 Lg0KPiA+Pj4+Pg0KPiA+Pj4+PiBZZXMsIHNhbWUgdGhvdWdodHMuDQo+ID4+Pj4+DQo+ID4+Pj4+ PiBJbnN0ZWFkIHdoYXQgZG8geW91IHRoaW5rIHRvIGhhdmUgYSBzZXBhcmF0ZSwgZGVkaWNhdGVk IGRhdGEgc3RydWN0IGZvciBpdD8NCj4gPj4+Pj4NCj4gPj4+Pj4gSG1tLi4uIG5vdCBzdXJlIEkg dW5kZXJzdG9vZCB5b3UgaGVyZS4uLg0KPiA+Pj4+Pg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+PiBNaWdo dCBiZSB3ZSBjYW4gbW92ZSB0aGlzIHJlc3RvcmF0aW9uIGNvZGUgaW50byB0aGUgbmV3IGV0aGRl dg0KPiA+Pj4+Pj4+IGhlbHBlciBmdW5jdGlvbiwoZXRoZGV2ZF91c2VyX2NvbmZpZ19yZXN0b3Jl KCkgIG9yIHNvKSB0aGF0IFBNRA0KPiA+Pj4+Pj4+IGNhbiBpbnZva2UNCj4gPj4+PiBkdXJpbmcg aXRzIGRldl9zdGFydCgpIGlmIG5lZWRlZD8NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+ Pj4+PiAjZGVmaW5lIFJURV9FVEhfREVWX0lOVEVSTkFMX1BST01JU0NfRk9SQ0VfUkVTVE9SRQ0K PiA+PiBSVEVfQklUMzIoMCkNCj4gPj4+Pj4+Pj4gI2RlZmluZSBSVEVfRVRIX0RFVl9JTlRFUk5B TF9BTExNVUxUSV9GT1JDRV9SRVNUT1JFDQo+ID4+IFJURV9CSVQzMigxKQ0KPiA+Pj4+Pj4+PiAj ZGVmaW5lIFJURV9FVEhfREVWX0lOVEVSTkFMX01BQ19BRERSX0ZPUkNFX1JFU1RPUkUNCj4gPj4+ PiBSVEVfQklUMzIoMikNCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gc3RydWN0IHJ0ZV9ldGhfZGV2 X2RhdGEgew0KPiA+Pj4+Pj4+PiAgICAvKiBzbmlwICovDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+ ICAgIHVpbnQzMl90IGRldl9mbGFnczsNCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gICAgLyoqDQo+ ID4+Pj4+Pj4+ICAgICAqIEludGVybmFsIGRldmljZSBjYXBhYmlsaXRpZXMsIHVzZWQgb25seSBi eSBldGhkZXYgbGlicmFyeS4NCj4gPj4+Pj4+Pj4gICAgICogQ2VydGFpbiBmdW5jdGlvbmFsaXRp ZXMgcHJvdmlkZWQgYnkgdGhlIGxpYnJhcnkgbWlnaHQNCj4gPj4gZW5hYmxlZC9kaXNhYmxlZCwN Cj4gPj4+Pj4+Pj4gICAgICogYmFzZWQgb24gZHJpdmVyIGV4cG9zaW5nIGNlcnRhaW4gY2FwYWJp bGl0aWVzLg0KPiA+Pj4+Pj4+PiAgICAgKi8NCj4gPj4+Pj4+Pj4gICAgdWludDMyX3QgaW50ZXJu YWxfZmxhZ3M7DQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+ICAgIC8qIHNuaXAgKi8NCj4gPj4+Pj4+ Pj4gfTsNCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+IEFsc28gcGVyaGFwcyB3ZSBoYXZlIGdvIGlu dG8gZGV0YWlscyB3aGF0IG5lZWRzIHRvIGJlIHJlc3RvcmVkDQo+ID4+Pj4+Pj4+PiBhZnRlciAn c3RvcCcgYW5kIHdoYXQgbmVlZHMgdG8gYmUgcmVzdG9yZWQgYWZ0ZXIgJ3Jlc2V0JyBhbmQNCj4g Pj4+Pj4+Pj4+IHVzZSBzaW1pbGFyDQo+ID4+Pj4gbWVjaGFuaXNtIGV0Yy4uLg0KPiA+Pj4+Pj4+ Pg0KPiA+Pj4+Pj4+PiBJIHRoaW5rIHdlIHNob3VsZCBsb29rIGludG8gdGhhdC4NCj4gPj4+Pj4+ Pj4gQW55ICdjb2RpZmljYXRpb24nIG9mIHNlbWFudGljcyBiZXR3ZWVuIGRyaXZlcnMgYW5kIGV0 aGRldg0KPiA+Pj4+Pj4+PiBsaWJyYXJ5IGlzIGdvb2QgaW4NCj4gPj4+PiBteSBvcGluaW9uLg0K PiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBBdCBsZWFzdCByaWdodCBub3csIGV0aGRldiBkb2VzIG5v dCBjaGFuZ2UgYW55IGNvbmZpZ3VyYXRpb24gaW4NCj4gPj4+Pj4+Pj4gJ3N0b3AnIGFuZA0KPiA+ Pj4+ICdyZXNldCcgZnJvbSB3aGF0IEkgc2VlLg0KPiA+Pj4+Pj4+PiBCdXQgdGhhdCdzIG9uIGxp YnJhcnkgc2lkZSBvbmx5Lg0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+IFRoaXMgd2F5LCBpZiB3 ZSB3b3VsZCBjb25jbHVkZSB0aGF0IGl0IG1ha2VzIHNlbnNlIGZvcg0KPiA+Pj4+Pj4+Pj4+IC5k ZXZfc3RhcnQoKSB0byBoYW5kbGUgYWxsIHN0YXJ0aW5nIGNvbmZpZ3VyYXRpb24gYXNwZWN0cywg d2UNCj4gPj4+Pj4+Pj4+PiBjb3VsZCB0cmFjayB3aGljaCBkcml2ZXJzIHN0aWxsIHJlbHkNCj4g Pj4+Pj4+Pj4+IG9uIGNvbmZpZ3VyYXRpb24gcmVzdG9yZS4NCj4gPj4+Pj4+Pj4+Pg0KPiA+Pj4+ Pj4+Pj4+IERhcml1c3ogU29zbm93c2tpICg0KToNCj4gPj4+Pj4+Pj4+PiAgIGV0aGRldjogcmV3 b3JrIGNvbmZpZyByZXN0b3JlDQo+ID4+Pj4+Pj4+Pj4gICBldGhkZXY6IG9taXQgcHJvbWlzY3Vv dXMgY29uZmlnIHJlc3RvcmUgaWYgbm90IHJlcXVpcmVkDQo+ID4+Pj4+Pj4+Pj4gICBldGhkZXY6 IG9taXQgYWxsIG11bHRpY2FzdCBjb25maWcgcmVzdG9yZSBpZiBub3QgcmVxdWlyZWQNCj4gPj4+ Pj4+Pj4+PiAgIGV0aGRldjogb21pdCBNQUMgYWRkcmVzcyByZXN0b3JlIGlmIG5vdCByZXF1aXJl ZA0KPiA+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4gIGxpYi9ldGhkZXYvcnRlX2V0aGRldi5jIHwg MzkNCj4gPj4+Pj4+Pj4+PiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0N Cj4gPj4+Pj4+Pj4+PiAgbGliL2V0aGRldi9ydGVfZXRoZGV2LmggfCAxOCArKysrKysrKysrKysr KysrKysNCj4gPj4+Pj4+Pj4+PiAgMiBmaWxlcyBjaGFuZ2VkLCA1MiBpbnNlcnRpb25zKCspLCA1 IGRlbGV0aW9ucygtKQ0KPiA+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4gLS0NCj4gPj4+Pj4+Pj4+ PiAyLjM5LjUNCj4gPj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+DQo+ID4+Pg0KPiA+DQoN Cg==