From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D0703C27C4F for ; Tue, 18 Jun 2024 21:02:48 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 6013D10E15A; Tue, 18 Jun 2024 21:02:48 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.b="GCqsMqT9"; dkim-atps=neutral Received: from NAM04-DM6-obe.outbound.protection.outlook.com (mail-dm6nam04on2043.outbound.protection.outlook.com [40.107.102.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8E5B710E15A for ; Tue, 18 Jun 2024 21:02:46 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=biaqxM5FfmfQKZX1tqqbHQdf2M+UcIsGN4IfP/3Vb37eRdHiiJiirjqa5m9VxOpWmyIrq56BRn23yAwjycULnxmn+2ZYAQOP3lsjOR0akVVVPcdqRVk73pL4B1VNREcl5/VJcMel6gcPvlw3uq7kveW0xGnHJsheMbje0k2pe5hUaIuZZLoOBg+xTkulaOP8RJ2YULx01FxwrcFYAdNPscqkTLtuTMZBpMBffLyoiFVyLbNRMP5ad3xpUi0tRZ0YrsVLz9XGQwqrGYEEPvGG0NZKqWsjP7v2F779y38EVC9UETi1YaoI6AJETRHlEdOq9ZxOx5SmENoSuZ3rAnK8JQ== 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=pr5pRqm05TtofVjQWqIfUOW8WKDvFy77hAw79KcFksQ=; b=KWJ+zEaCqZZx8du3WyyTKgDAP+Tp04klG7bcgiSp2XK7GzRs+5nS9t3MtPrS44OFUKUddpi39zTn30U9mgCU3no8D83LfxZkXtz/8PaBB2xF1qb3kRXPIW1+kCLLu9ahSW3jXPF+x0rVpLAIX52R4gbBl/2kqkT80oFsg8gO+umayRVejaPiQeDtwHmL455BaSXJCGAS4f3vEDY8B35MHG+PjnWuXB2BwtSUzhvvqqTtTHkrIT6LAsxbbseVE6TR0Xl+w6F2ftMrEZcaVHO27GexWbffRTCrAKI57cFl9VUUByUMfulVLpAQEF8Zd0w3X5/SbYhFnKwxmHwZwjS6Ng== 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=pr5pRqm05TtofVjQWqIfUOW8WKDvFy77hAw79KcFksQ=; b=GCqsMqT9ZpVdrppEge4qHhT8sXbsVE54kaIEL6VD8dNdxn7e4dltSN3Fa5Q1DHvMMncfoCJa/IcOusudEv3cBe8Sa1ZyhJ8xiPlohkdECsqMxqGILrEbb8/yBKLgs5g1TsC5bLpRUCAtkToAEjo/jN2X/Viu7+iRJRDTKa7+mJwprMHI3zwOZHXufEztn9OS9g7NhJRyCu2H3TuT23WD0WDZuGejt6RGbtODj3x+F3NzLCW072rATY65h1U7PUhQjo8YV75IkDJaJS+LIXb0FIy8aAmk1WN3LcqlDEcWDkrPy58Gv0VutFSHfm5DJwOsZZiIFc3sKfUOd70/Gvo6Hg== Received: from SN7PR12MB8769.namprd12.prod.outlook.com (2603:10b6:806:34b::12) by SJ1PR12MB6146.namprd12.prod.outlook.com (2603:10b6:a03:45b::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7677.30; Tue, 18 Jun 2024 21:02:39 +0000 Received: from SN7PR12MB8769.namprd12.prod.outlook.com ([fe80::ac4b:38c3:29cd:519]) by SN7PR12MB8769.namprd12.prod.outlook.com ([fe80::ac4b:38c3:29cd:519%5]) with mapi id 15.20.7698.017; Tue, 18 Jun 2024 21:02:39 +0000 From: Timur Tabi To: "dakr@redhat.com" CC: "nouveau@lists.freedesktop.org" , Ben Skeggs , "airlied@gmail.com" Subject: Re: [PATCH 2/2] [v5] drm/nouveau: expose GSP-RM logging buffers via debugfs Thread-Topic: [PATCH 2/2] [v5] drm/nouveau: expose GSP-RM logging buffers via debugfs Thread-Index: AQHavSO5yG2llbDHGkCL+2cPZwnx3bHMZgWAgAGlZgA= Date: Tue, 18 Jun 2024 21:02:38 +0000 Message-ID: References: <20240612235253.1624004-1-ttabi@nvidia.com> <20240612235253.1624004-2-ttabi@nvidia.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.44.4-0ubuntu2 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: SN7PR12MB8769:EE_|SJ1PR12MB6146:EE_ x-ms-office365-filtering-correlation-id: 7f9df5b9-5a2f-41f8-9da5-08dc8fd9fcb0 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230037|376011|1800799021|366013|38070700015; x-microsoft-antispam-message-info: =?utf-8?B?aFg4T3BJN2YrWDI1cFFuU2NSSHZIckZVclNCUGlvWndsdVhFc0creXQrNERT?= =?utf-8?B?dFhwNHVqRmVoNkE4YVJ5L2taYjVmbUVEMldPaEJwK0xSSXg5emJqNFplS0l0?= =?utf-8?B?eG9oK2paZlI2dkFUNUVsTCtRRm5UUUgyL1NZb3ZocFk5K1hNYmY2QU9sSk8y?= =?utf-8?B?S01HNEoxUzUzTXpQb2dBT1pYaUVnTmRyNnA5OWgwU3BPYTY4UlFHZk8yZW5L?= =?utf-8?B?NjlQeHZ3QXJEcU1NcndtK1JMOGx5eWJvc2xwYm1DcGN6bXpMOXJhTTcwdy9C?= =?utf-8?B?anJrTDlLamVaeC8rT1NKZExiQkNoeThXVGRlSXpvNlJrUFNuRVBMZnNFOWl6?= =?utf-8?B?VnAxeFgzM0tXVGJiUDlsRm1lM1BxTG1kT3llZkZRZThzSG00Z29rUWt5aEdF?= =?utf-8?B?cnQrUzBFZmJhOGpFdWUwUVRueG5WaUJHRlFJYm5ZQWVqeHQ3UzZPbS9UVUxT?= =?utf-8?B?cDNlUTg4WjhCanRKdHBIa0RyYjQ4Q2tWQ2NONW5sMjBjMkFkUWd0WGJ4TVIz?= =?utf-8?B?S0R5dml1b215OXhTQ1BIeTVrQnd0OEpIL2pqZ29leWRjZ0hLSjdZUjc1SGxk?= =?utf-8?B?cXY3VDhCOE1iREpJTXRRaTRORVlqdHdXcjNVd1VvQTQvenRQWm8ybVlwRXA5?= =?utf-8?B?ZlNLRzBsSW52WW9mRWt5OUQ2UFBWUE50cUVDQWdscXVtNmVtOExIQUdua2Y1?= =?utf-8?B?SDJUTjlzYzRQMEpzT1NPMFpKYmE0NFRmT3lZbmhPNFBqMmlxSEY5aDV2WjAw?= =?utf-8?B?bHRZa1Qvb1hPcDdkMjIxdFBaTUN3ZHhsVnpkdjR3c1V5MlRyN1FQbmpHTzdh?= =?utf-8?B?NHgreG1LdXJoRDQwQjNtODRFZ0Q3ZGliS0dTSmRLd2tLdnM0WDlZVU5oc2xI?= =?utf-8?B?N3FZR3JDTDRDZXVjUGxPNytpTFQ5SVF3aXN0MnhLR09TKzZHQ2swNVZPSHNL?= =?utf-8?B?Nkw0cU5iazU5L0NpOEt6enAwNStKYStlNXBjVDRqRG85Ym1Vb25mdUEwc2Vm?= =?utf-8?B?aEIxNkN1Q21FM04rQnZZT3Z5d0tSN0M5cGxRRmZ1dURwTzZlVFlFbmtRMUZw?= =?utf-8?B?Y3ZCbzl5K0tXd1VpUlp1WXkxd2FNbzhMWXBiUWlMRGtqMjlOdlpVbVptWThx?= =?utf-8?B?M0xHSndlaE52QVdrY0FJQmRNa3AwY3c3d0hTOUxPQ3JhWVFzV255eFZiMzQy?= =?utf-8?B?c2FpUmthVUpmMHh2d29XQURRR0UxR0hBbGJCS3I3MnFXRHIrQS9mUWN0Y1N2?= =?utf-8?B?dmpkQXBoYW9KMnVwemZqb3I0Ym80ZS9DRm5TdjFnRXBMT0lwNGVlSDRwQUhN?= =?utf-8?B?cjdUa0NiY2dVUWZZYU00cGludnN6bHRKN2J4SXA0dmZOampMa3RsSUp1amtL?= =?utf-8?B?aXpaVTNDU281ZjA4eGZLN0RLUks1d0Njbm10MUJXMWlaQkVsTW9YSVhIWStx?= =?utf-8?B?YkM5RHovYmNvT1R2VWhiaU43Wk5QUFU5WXZ3MWdxY1RVRWkrclQ2V3ovY1lW?= =?utf-8?B?QlVGdVVpVUhid0dZR2FMRUpuV2c0TVJKWjdOUDFMajZPa2NWS3F2a01keHVn?= =?utf-8?B?QkZtYjNqNE85WFg0M1NWZjZ5anc2REZSUE52ZExlTFFGdGsvN3gzVVNabThL?= =?utf-8?B?cnZ2OSsvQ2hDSFgwN05lTmwzdmZRQUVNWlFVNkFQa1kvYThjUGJpWHN5OHcw?= =?utf-8?B?YlVHQm1LL1lRZUU0RzlWbmZUd3AwMzJ4YVp0MmF2aElpUGJITDhWMEllSGpk?= =?utf-8?B?a2FSYmJEc2hNVnk3U3RKREg2Z1JGNjVOejNTeEpseGZsYUIwNUh2QjhBVU1X?= =?utf-8?Q?N9aklEEM39QAAqe2cavIRTtiWyOFQocFx9af0=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN7PR12MB8769.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230037)(376011)(1800799021)(366013)(38070700015); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?TEMrQlhQZVVMWXlhZlRlQnQ2SnNQTE9mVjRGR2QrRnVESkhiOVB6NmNsdE1Q?= =?utf-8?B?WUpobndBZFlsTVZHUUl6UWE3aHdEak5vTTQrSHArZzZIYWRVZmFZWlFYY0J1?= =?utf-8?B?TEJUVzFhTS9TY0ZjRnVqNkdodmJicjlMUkNYcmdVWUVyRzB0RlhsSnFja0hK?= =?utf-8?B?SHFvZlZNd2pMQnZoU2JWN1B5M2lUemNOOFVwYW5xWFYzbFBlbEw0QUFmTWg0?= =?utf-8?B?VFN0bHloRHdvYVZiQ3Y1RFVuNHJpVFQ1OGsrVkpNS24rN2ZVa1FYdFJsZTZi?= =?utf-8?B?akhxK0tHc3JnYTZnWmxTQTRJOTZpaXMvYnRvTzVjSGdqZmFhanRNNWZONzBC?= =?utf-8?B?eFZqY2xORzZXOEpNaTZxNXYzZnF0dU4ycEd2UVA0VUl6UEM1ZTNDNWhucFlj?= =?utf-8?B?bm5pdG5pT2VrVS9ZbVZoTXBHYjFGZWhRY21PeXkyamxLcFRNWnE4OU5UK2kz?= =?utf-8?B?QmZQVlpBTy9ZTFlPZmREMFVsbVpQMWl5R2d1elUwdWJGK0VjeVJxZi9uMUNZ?= =?utf-8?B?YW5NOUpsb1VIMFlTRXZBbXAzZmhkQzdqRTFRZ01ObEpDem96dVF6UTQ4VXJX?= =?utf-8?B?c0t2TU13YWtJLy9RSEVMc2FPU0ZPai9EbmJjNWU5R1h0UmEzY09LZThNS3BD?= =?utf-8?B?clYxb2dhVjA1SzBXajlyUUMrYnNxcmg0TEtHTHZRRHExQ0FCeFE3RnRtZUJk?= =?utf-8?B?dW9oOWZqNzF3NlRRSlE5UlNnMXp2eTRBVzVUR1htS2xiQTZjMkxLY3FZRnJh?= =?utf-8?B?ZHphZjVsVW1WSGhCVlZ0QnNndGxzZThIR3AwR0VUV01FemRPT0x0YWtCTGdD?= =?utf-8?B?bXJFWFdCNmxoN1QzbTZXcTZrb1FTMDFPRmg2cCtMdjZ2TjM4YWxINXd2cWF1?= =?utf-8?B?QnA3QVdrU3VWRngwQ2trWjFTVi9HOEJIQlRSL29Pai9pWW9IV3N5a0tNeTl2?= =?utf-8?B?anpsR2NZV3VKaW0yVlp6SHpxa3dCbHMvS05FWnN1bWFianBZNWdyM1VzNFor?= =?utf-8?B?VXc4ZWlHWUtSeFVjU0toRmxucDkvM1hGYWZTWWpaKzhsR2tQTEJWeFNsMGd6?= =?utf-8?B?RGNFUW16czh2MVlnK3QrSEJhbkZETFdDWmRPWGI5Nno1VkVXbjkzUjI1NnZS?= =?utf-8?B?bVhDQnBkNm9Fa1pCQU1tWUFEWUlhQThTNjc5OXp6TWJLbUNVRHJaZVFQeEcz?= =?utf-8?B?YTZ1dUxJUWs1Y2ZpUnNiYmMrSUtCVGdJQUU5RUdlbnJ3cFYzTjBzVzMvM29x?= =?utf-8?B?Kzl6YTFVSVhsN1haK0xQZDlZcFY0TGREL1hkRjZUZjJYUk5FQVJHM2JSYXFF?= =?utf-8?B?U0dWbHM3Rlg1OVUxNVI2MTdua0FBak9MMzhQWnkzeDdjK1cwNGg2UDg2cGoy?= =?utf-8?B?NDhHZi9zZ1p2a2tlTkJWVkJoT1loZkVjNjhIT203eDM5a1hLcVNCRUcxY3kz?= =?utf-8?B?SzBCbGhiOUF4U1ViRWwwTFlnemZrU3E3SGhhUGthR29GeUNWaTNZWkxxTUJ3?= =?utf-8?B?dEZQL2NDb0Ewd3AyNXJSaitmYlFzcURmRk1uc251RFl0STRWeGVlRjIyVVJB?= =?utf-8?B?Qm5ueVBOenl5SW95d1ErNy80WmlwQzBjZ3NDV1VhWmtmd3JxZmlKWm16R3pC?= =?utf-8?B?Q2NWRlpyR0YwRkt5cVRKT1ZYNURENkJzckozQ0h0TW10MDFRTkx3VUlJd084?= =?utf-8?B?NjIvdWJ2a29SeHEvNmVzb3VJYk5LM3R5Rklzc3JNQ0wyRHpRbFZaMU4rYm02?= =?utf-8?B?L3hRZXR3TEdIYlpIcEdjVGNMU3dtNjN2cFh1SUJuZkw5NHJFc2tZeVdNY2RM?= =?utf-8?B?bUMrdzJFbEl3dW1YVmlaRGxyaTRrRjAyMyt1dll2UEF5K2YzNTZ2WTFjK1VN?= =?utf-8?B?S09VRE1WUzBNSE9UVnV6UUE2MmZRVHBOS0EweEowTDZUTDFSWXdIWEpsQnY4?= =?utf-8?B?ZU9wS0g4dVNCUG16djBsOW1ORUVTL2VnZzUrRUVhZi9wSGYzUldZM2pFelk5?= =?utf-8?B?VVZGOURzRFZSUTVnbVpwZVNtbTVsSXl6aEt1cXo1VFBzNkluOU9RT2FVVkIw?= =?utf-8?B?dVJ6VkRNWUdaTGlPc1JmWGZlVzRBQmZZZ2RjMVhhTlBUTVRVSE8vL1o1K3pp?= =?utf-8?Q?AH2i2WepI5wkjo4pCR/yC6oDj?= Content-Type: multipart/alternative; boundary="_000_dff9b893cd9499ac41b7835ae5489eb44435f616camelnvidiacom_" MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8769.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7f9df5b9-5a2f-41f8-9da5-08dc8fd9fcb0 X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Jun 2024 21:02:38.9695 (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: bBkcuxyP7o39xzkpnkDIO9qaaiied96UyGOTiWBpzetpZ8vCJWOUhpmU/uqW3SslgFCINMquC4und/vqxj4CjA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ1PR12MB6146 X-BeenThere: nouveau@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Nouveau development list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces@lists.freedesktop.org Sender: "Nouveau" --_000_dff9b893cd9499ac41b7835ae5489eb44435f616camelnvidiacom_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 T24gTW9uLCAyMDI0LTA2LTE3IGF0IDIxOjU0ICswMjAwLCBEYW5pbG8gS3J1bW1yaWNoIHdyb3Rl Og0KDQpIaSBUaW11ciwNCg0KDQp0aGFua3MgZm9yIHRoZSBmb2xsb3ctdXAgb24gdGhpcyBwYXRj aCBzZXJpZXMuDQoNCg0KT24gV2VkLCBKdW4gMTIsIDIwMjQgYXQgMDY6NTI6NTNQTSAtMDUwMCwg VGltdXIgVGFiaSB3cm90ZToNCg0KVGhlIExPR0lOSVQsIExPR0lOVFIsIExPR1JNLCBhbmQgTE9H UE1VIGJ1ZmZlcnMgYXJlIGNpcmN1bGFyIGJ1ZmZlcnMNCg0KdGhhdCBoYXZlIHByaW50Zi1saWtl IGxvZ3MgZnJvbSBHU1AtUk0gYW5kIFBNVSBlbmNvZGVkIGluIHRoZW0uDQoNCg0KTE9HSU5JVCwg TE9HSU5UUiwgYW5kIExPR1JNIGFyZSBhbGxvY2F0ZWQgYnkgTm91dmVhdSBhbmQgdGhlaXIgRE1B DQoNCmFkZHJlc3NlcyBhcmUgcGFzc2VkIHRvIEdTUC1STSBkdXJpbmcgaW5pdGlhbGl6YXRpb24u ICBUaGUgYnVmZmVycyBhcmUNCg0KcmVxdWlyZWQgZm9yIEdTUC1STSB0byBpbml0aWFsaXplIHBy b3Blcmx5Lg0KDQoNCkxPR1BNVSBpcyBhbHNvIGFsbG9jYXRlZCBieSBOb3V2ZWF1LCBidXQgaXRz IGNvbnRlbnRzIGFyZSB1cGRhdGVkDQoNCndoZW4gTm91dmVhdSByZWNlaXZlcyBhbiBOVl9WR1BV X01TR19FVkVOVF9VQ09ERV9MSUJPU19QUklOVCBSUEMgZnJvbQ0KDQpHU1AtUk0uICBOb3V2ZWF1 IHRoZW4gY29waWVzIHRoZSBSUEMgdG8gdGhlIGJ1ZmZlci4NCg0KDQpUaGUgbWVzc2FnZXMgYXJl IGVuY29kZWQgYXMgYW4gYXJyYXkgb2YgdmFyaWFibGUtbGVuZ3RoIHN0cnVjdHVyZXMgdGhhdA0K DQpjb250YWluIHRoZSBwYXJhbWV0ZXJzIHRvIGFuIE5WX1BSSU5URiBjYWxsLiAgVGhlIGZvcm1h dCBzdHJpbmcgYW5kDQoNCnBhcmFtZXRlciBjb3VudCBhcmUgc3RvcmVkIGluIGEgc3BlY2lhbCBF TEYgaW1hZ2UgdGhhdCBjb250YWlucyBvbmx5DQoNCmxvZ2dpbmcgc3RyaW5ncy4gIFRoaXMgaW1h Z2UgaXMgbm90IGN1cnJlbnRseSBzaGlwcGVkIHdpdGggdGhlIE52aWRpYQ0KDQpkcml2ZXIuDQoN Cg0KVGhlcmUgYXJlIHR3byBtZXRob2RzIHRvIGV4dHJhY3QgdGhlIGxvZ3MuDQoNCg0KT3BlblJN IHRyaWVzIHRvIGxvYWQgdGhlIGxvZ2dpbmcgRUxGLCBhbmQgaWYgcHJlc2VudCwgcGFyc2VzIHRo ZSBsb2cNCg0KYnVmZmVycyBpbiByZWFsIHRpbWUgYW5kIG91dHB1dHMgdGhlIHN0cmluZ3MgdG8g dGhlIGtlcm5lbCBjb25zb2xlLg0KDQoNCkFsdGVybmF0aXZlbHksIGFuZCB0aGlzIGlzIHRoZSBt ZXRob2QgdXNlZCBieSB0aGlzIHBhdGNoLCB0aGUgYnVmZmVycw0KDQpjYW4gYmUgZXhwb3NlZCB0 byB1c2VyIHNwYWNlLCBhbmQgYSB1c2VyLXNwYWNlIHRvb2wgKGFsb25nIHdpdGggdGhlDQoNCmxv Z2dpbmcgRUxGIGltYWdlKSBjYW4gcGFyc2UgdGhlIGJ1ZmZlciBhbmQgZHVtcCB0aGUgbG9ncy4N Cg0KDQpUaGlzIG1ldGhvZCBoYXMgdGhlIGFkdmFudGFnZSB0aGF0IGl0IGFsbG93cyB0aGUgYnVm ZmVycyB0byBiZSBwYXJzZWQNCg0KZXZlbiB3aGVuIHRoZSBsb2dnaW5nIEVMRiBmaWxlIGlzIG5v dCBhdmFpbGFibGUgdG8gdGhlIHVzZXIuICBIb3dldmVyLA0KDQppdCBoYXMgdGhlIGRpc2FkdmFu dGFnZSB0aGUgZGVidWJmcyBlbnRyaWVzIG5lZWQgdG8gcmVtYWluIHVudGlsIHRoZQ0KDQpkcml2 ZXIgaXMgdW5sb2FkZWQuDQoNCg0KVGhlIGJ1ZmZlcnMgYXJlIGV4cG9zZWQgdmlhIGRlYnVnZnMu ICBJZiBHU1AtUk0gZmFpbHMgdG8gaW5pdGlhbGl6ZSwNCg0KdGhlbiBOb3V2ZWF1IGltbWVkaWF0 ZWx5IHNodXRzIGRvd24gdGhlIEdTUCBpbnRlcmZhY2UuICBUaGlzIHdvdWxkDQoNCm5vcm1hbGx5 IGFsc28gZGVhbGxvY2F0ZSB0aGUgbG9nZ2luZyBidWZmZXJzLCB0aGVyZWJ5IHByZXZlbnRpbmcg dGhlDQoNCnVzZXIgZnJvbSBjYXB0dXJpbmcgdGhlIGRlYnVnIGxvZ3MuDQoNCg0KVG8gYXZvaWQg dGhpcywgaW50cm9kdWNlIHRoZSBrZWVwLWdzcC1sb2dnaW5nIGNvbW1hbmQgbGluZSBwYXJhbWV0 ZXIuDQoNCklmIHNwZWNpZmllZCwgYW5kIGlmIGF0IGxlYXN0IG9uZSBsb2dnaW5nIGJ1ZmZlciBo YXMgY29udGVudCwgdGhlbg0KDQpOb3V2ZWF1IHdpbGwgbWlncmF0ZSB0aGVzZSBidWZmZXJzIGlu dG8gbmV3IGRlYnVnZnMgZW50cmllcyB0aGF0IGFyZQ0KDQpyZXRhaW5lZCB1bnRpbCB0aGUgZHJp dmVyIHVubG9hZHMuDQoNCg0KQW4gZW5kLXVzZXIgY2FuIGNhcHR1cmUgdGhlIGxvZ3MgdXNpbmcg dGhlIGZvbGxvd2luZyBjb21tYW5kczoNCg0KDQogICAgY3AgL3N5cy9rZXJuZWwvZGVidWcvZHJp LzxwYXRoPi9sb2dpbml0IGxvZ2luaXQNCg0KICAgIGNwIC9zeXMva2VybmVsL2RlYnVnL2RyaS88 cGF0aD4vbG9ncm0gbG9ncm0NCg0KICAgIGNwIC9zeXMva2VybmVsL2RlYnVnL2RyaS88cGF0aD4v bG9naW50ciBsb2dpbnRyDQoNCiAgICBjcCAvc3lzL2tlcm5lbC9kZWJ1Zy9kcmkvPHBhdGg+L2xv Z3BtdSBsb2dwbXUNCg0KDQp3aGVyZSA8cGF0aD4gaXMgdGhlIFBDSSBJRCBvZiB0aGUgR1BVIChl LmcuIDAwMDA6NjU6MDAuMCkuDQoNCg0KU2luY2UgTE9HUE1VIGlzIG5vdCBuZWVkZWQgZm9yIG5v cm1hbCBHU1AtUk0gb3BlcmF0aW9uLCBpdCBpcyBvbmx5DQoNCmNyZWF0ZWQgaWYgZGVidWdmcyBp cyBhdmFpbGFibGUuICBPdGhlcndpc2UsIHRoZQ0KDQpOVl9WR1BVX01TR19FVkVOVF9VQ09ERV9M SUJPU19QUklOVCBSUENzIGFyZSBpZ25vcmVkLg0KDQoNClNpZ25lZC1vZmYtYnk6IFRpbXVyIFRh YmkgPHR0YWJpQG52aWRpYS5jb208bWFpbHRvOnR0YWJpQG52aWRpYS5jb20+Pg0KDQotLS0NCg0K djU6DQoNCnJlYmFzZWQgdG8gZHJtLW1pc2MtbmV4dA0KDQpyZXBhY2VkIG52a21fZ3NwX2xvZyB3 aXRoIG52aWZfbG9nDQoNCm1pbm9yIHJlYXJyYW5nZW1lbnQgb2Ygc29tZSBjb2RlDQoNCg0KIGRy aXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2luY2x1ZGUvbnZpZi9sb2cuaCAgICB8ICAzMiArKw0KDQog Li4uL2dwdS9kcm0vbm91dmVhdS9pbmNsdWRlL252a20vc3ViZGV2L2dzcC5oIHwgIDEzICsNCg0K IGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZHJtLmMgICAgICAgICB8ICAxOSArDQoN CiAuLi4vZ3B1L2RybS9ub3V2ZWF1L252a20vc3ViZGV2L2dzcC9yNTM1LmMgICAgfCAzNjAgKysr KysrKysrKysrKysrKystDQoNCiA0IGZpbGVzIGNoYW5nZWQsIDQyMyBpbnNlcnRpb25zKCspLCAx IGRlbGV0aW9uKC0pDQoNCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL25vdXZl YXUvaW5jbHVkZS9udmlmL2xvZy5oDQoNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9u b3V2ZWF1L2luY2x1ZGUvbnZpZi9sb2cuaCBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2luY2x1 ZGUvbnZpZi9sb2cuaA0KDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KDQppbmRleCAwMDAwMDAwMDAw MDAuLmM4OWJhODVhNzAxZA0KDQotLS0gL2Rldi9udWxsDQoNCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9ub3V2ZWF1L2luY2x1ZGUvbnZpZi9sb2cuaA0KDQpAQCAtMCwwICsxLDMyIEBADQoNCisvKiBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovDQoNCisvKiBTUERYLUZpbGVDb3B5cmlnaHRU ZXh0OiBDb3B5cmlnaHQgKGMpIDIwMjQgTlZJRElBIENPUlBPUkFUSU9OICYgQUZGSUxJQVRFUy4g Ki8NCg0KKw0KDQorI2lmbmRlZiBfX05WSUZfTE9HX0hfXw0KDQorI2RlZmluZSBfX05WSUZfTE9H X0hfXw0KDQorDQoNCisvKioNCg0KKyAqIG52aWZfbG9nIC0gc3RydWN0dXJlIGZvciB0cmFja2lu ZyBsb2dnaW5nIGJ1ZmZlcnMNCg0KKyAqIEBoZWFkOiBsaXN0IGhlYWQNCg0KDQpXaGF0IGFib3V0 ICJAZW50cnk6IGFuIGVudHJ5IGluIGEgbGlzdCBvZiBzdHJ1Y3QgbnZpZl9sb2dzIi4NCg0KRG9u ZS4NCg0KDQorICogQHNodXRkb3duOiBwb2ludGVyIHRvIGZ1bmN0aW9uIHRvIGNhbGwgdG8gY2xl YW4gdXANCg0KDQpJJ2QgYmUgYSBiaXQgbW9yZSBzcGVjaWZpYyBhbmQgc2F5IHRoYXQgdGhpcyBm cmVlcyBhbGwgYmFja2luZyByZXNvdXJjZXMsIHN1Y2gNCg0KYXMgbG9nZ2luZyBidWZmZXIsIGV0 Yy4NCg0KRG9uZS4NCg0KDQoNCisgKg0KDQorICogU3RydWN0dXJlIHVzZWQgdG8gdHJhY2sgbG9n Z2luZyBidWZmZXJzIHNvIHRoYXQgdGhleSBjYW4gYmUgY2xlYW5lZCB1cA0KDQorICogd2hlbiB0 aGUgZHJpdmVyIGV4aXRzLg0KDQorICovDQoNCitzdHJ1Y3QgbnZpZl9sb2cgew0KDQorICAgICAg IHN0cnVjdCBsaXN0X2hlYWQgaGVhZDsNCg0KDQpJIHN1Z2dlc3QgdG8gY2FsbCB0aGlzICdlbnRy eScsIHNpbmNlIHRoYXQncyB3aGF0IGl0IGFjdHVhbGx5IHJlcHJlc2VudHMsIGFuZA0KDQplbnRy eSBpbiBhIGxpc3QuDQoNCk9oIHllYWgsIEkgc2VlIHdoYXQgeW91IG1lYW4gbm93LiAgRG9uZS4N Cg0KDQorICAgICAgIHZvaWQgKCpzaHV0ZG93bikoc3RydWN0IG52aWZfbG9nICpsb2cpOw0KDQor fTsNCg0KKw0KDQorI2lmZGVmIENPTkZJR19ERUJVR19GUw0KDQorLyoqDQoNCisgKiBnc3BfbG9n cyAtIGxpc3Qgb2YgbnZpZl9sb2cgR1NQLVJNIGxvZ2dpbmcgYnVmZmVycw0KDQorICoNCg0KKyAq IEhlYWQgcG9pbnRlciB0byBhIGEgbGlzdCBvZiBudmlmX2xvZyBidWZmZXJzIHRoYXQgaXMgY3Jl YXRlZCBmb3IgZWFjaCBHUFUNCg0KKyAqIHVwb24gR1NQIHNodXRkb3duIGlmIHRoZSAia2VlcF9n c3BfbG9nZ2luZyIgY29tbWFuZC1saW5lIHBhcmFtZXRlciBpcw0KDQorICogc3BlY2lmaWVkLiAg VGhpcyBpcyB1c2VkIHRvIHRyYWNrIHRoZSBhbHRlcm5hdGl2ZSBkZWJ1Z2ZzIGVudHJpZXMgZm9y IHRoZQ0KDQorICogR1NQLVJNIGxvZ3MuDQoNCisgKi8NCg0KK2V4dGVybiBzdHJ1Y3QgbGlzdF9o ZWFkIGdzcF9sb2dzOw0KDQoNCkJldHRlciB3cmFwIHRoaXMgaW4gYSBzdHJ1Y3QgbnZpZl9sb2dz IChvciBzaW1pbGFyKSBhbmQgcGFzcyB0aGlzIGRvd24gdGhyb3VnaA0KDQpudmttX2RldmljZV9w Y2lfbmV3KCkgLyBudmttX2RldmljZV90ZWdyYV9uZXcoKSBpbnN0ZWFkIG9mIHJlbHlpbmcgb24g c2hhcmluZw0KDQphIGdsb2JhbC4NCg0KSSdtIHN0aWxsIGhhdmluZyBkaWZmaWN1bHR5IHVuZGVy c3RhbmRpbmcgd2hhdCB5b3UgbWVhbiBieSB0aGlzLiAgSSB0aGluayB5b3UgbmVlZCB0byBiZSBt b3JlIGV4cGxpY2l0IGluIHdoYXQgeW91IHdhbnQuDQoNCnN0cnVjdCBudmlmX2xvZ3MNCnsNCnN0 cnVjdCBsaXN0X2hlYWQgbG9nczsNCn0gZ3NwX2xvZ3M7DQoNCkZpcnN0LCBJIGRvbid0IHVuZGVy c3RhbmQgd2hhdCB0aGlzIGdldHMgbWUuICBJdCBqdXN0IHdyYXBzIG9uZSBzdHJ1Y3QgaW5zaWRl IGFub3RoZXIuDQoNClNob3VsZCBJIGFkZCB0aGlzIHRvIHN0cnVjdCBudmttX2RldmljZV9mdW5j PyAgQW5kIHRoZW4gZG8gc29tZXRoaW5nIGxpa2UgdGhpcyBpbiBwY2kuYzoNCg0Kc3RhdGljIHN0 cnVjdCBudmlmX2xvZ3MgZ3NwX2xvZ3M7DQoNCnN0YXRpYyBjb25zdCBzdHJ1Y3QgbnZrbV9kZXZp Y2VfZnVuYw0KbnZrbV9kZXZpY2VfcGNpX2Z1bmMgPSB7DQoNCi4uLg0KLm52aWZfbG9ncyA9ICZn c3BfbG9ncywNCn07DQoNClNvIG52a21fZGV2aWNlX3BjaV9uZXcoKSBjYWxscyBudmttX2Rldmlj ZV9jdG9yKCkuICBudmttX2RldmljZV9jdG9yKCkgdGhlbiBjYWxscyB0aGUgLmN0b3IoKSBmb3Ig ZXZlcnkgc3ViZGV2aWNlIHZpYSBOVktNX0xBWU9VVF9PTkNFKCkgYW5kIE5WS01fTEFZT1VUX0lO U1QoKS4gIFRoaXMgaXMgd2hlcmUgSSBnZXQgbG9zdCwgYmVjYXVzZSBJIGRvbid0IHNlZSBob3cg SSBtYWtlIHN1cmUgb25seSB0aGUgR1NQIGNvbnN0cnVjdG9yIHRyaWVzIHRvIGluaXRpYWxpemUg Z3NwX2xvZ3MuDQoNCg0KDQorI2lmZGVmIENPTkZJR19ERUJVR19GUw0KDQorLyoqDQoNCisgKiBn c3BfbG9ncyAtIGxpc3Qgb2YgR1NQIGRlYnVnZnMgbG9nZ2luZyBidWZmZXJzDQoNCisgKi8NCg0K K0xJU1RfSEVBRChnc3BfbG9ncyk7DQoNCg0KQmV0dGVyIHdyYXAgdGhpcyBpbiBhIE5WSUZfTE9H U19ERUNMQVJFKCkgbWFjcm8uDQoNCkxpa2UgdGhpcz8NCg0KI2RlZmluZSBOVklGX0xPR1NfREVD TEFSRSh4KSBMSVNUX0hFQUQoeCkNCg0KRG8geW91IHdhbnQgYSBtYWNybyB0byByZXBsYWNlIHRo aXMgYXMgd2VsbD8NCg0KZXh0ZXJuIHN0cnVjdCBsaXN0X2hlYWQgZ3NwX2xvZ3M7DQoNCg0KDQor I2VuZGlmDQoNCisNCg0KIHN0YXRpYyB1NjQNCg0KIG5vdXZlYXVfcGNpX25hbWUoc3RydWN0IHBj aV9kZXYgKnBkZXYpDQoNCiB7DQoNCkBAIC0xNDQ2LDYgKzE0NTQsMTcgQEAgbm91dmVhdV9kcm1f ZXhpdCh2b2lkKQ0KDQogI2VuZGlmDQoNCiAgICAgICAgaWYgKElTX0VOQUJMRUQoQ09ORklHX0RS TV9OT1VWRUFVX1NWTSkpDQoNCiAgICAgICAgICAgICAgICBtbXVfbm90aWZpZXJfc3luY2hyb25p emUoKTsNCg0KKw0KDQorI2lmZGVmIENPTkZJR19ERUJVR19GUw0KDQorICAgICAgIGlmICghbGlz dF9lbXB0eSgmZ3NwX2xvZ3MpKSB7DQoNCisgICAgICAgICAgICAgICBzdHJ1Y3QgbnZpZl9sb2cg KmxvZywgKm47DQoNCisNCg0KKyAgICAgICAgICAgICAgIGxpc3RfZm9yX2VhY2hfZW50cnlfc2Fm ZShsb2csIG4sICZnc3BfbG9ncywgaGVhZCkgew0KDQorICAgICAgICAgICAgICAgICAgICAgICAv KiBzaHV0ZG93bigpIHNob3VsZCBhbHNvIGRlbGV0ZSB0aGUgbG9nIGVudHJ5ICovDQoNCisgICAg ICAgICAgICAgICAgICAgICAgIGxvZy0+c2h1dGRvd24obG9nKTsNCg0KKyAgICAgICAgICAgICAg IH0NCg0KKyAgICAgICB9DQoNCisjZW5kaWYNCg0KDQpQbGVhc2UgbW92ZSB0aGlzIHRvIGluY2x1 ZGUvbnZpZi9sb2cuaCBhcyBudmlmX2xvZ19zaHV0ZG93bigpLg0KDQpTdXJlLCBidXQgSSBkb24n dCB1bmRlcnN0YW5kIHdoeS4gIFRoaXMgY29kZSB3aWxsIG9ubHkgYmUgY2FsbGVkIGluIG5vdXZl YXVfZHJtX2V4aXQoKS4NCg0KDQorLyoqDQoNCisgKiByNTM1X2dzcF9tc2dfbGlib3NfcHJpbnQg LSBjYXB0dXJlIGxvZyBtZXNzYWdlIGZyb20gdGhlIFBNVQ0KDQorICogQHByaXY6IGdzcCBwb2lu dGVyDQoNCisgKiBAZm46IGZ1bmN0aW9uIG51bWJlciAoaWdub3JlZCkNCg0KKyAqIEByZXB2OiBw b2ludGVyIHRvIGxpYm9zIHByaW50IFJQQw0KDQorICogQHJlcGM6IG1lc3NhZ2Ugc2l6ZQ0KDQor ICoNCg0KKyAqIFNlZSBfa2dzcFJwY1Vjb2RlTGlib3NQcmludA0KDQoNCldoYXQgaXMgdGhpcyBy ZWZlcmVuY2U/DQoNCkl0J3MgaW4gT3BlblJNLiAgUHJldHR5IG11Y2ggYWxsIG9mIHRoZSAiU2Vl IiBjb21tYW5kcyBhcmUgcmVmZXJlbmNlcyB0byB0aGUgY29ycmVzcG9uZGluZyBmdW5jdGlvbiBp biBPcGVuUk0iLg0KDQoNCg0KKyAqLw0KDQorc3RhdGljIGludCByNTM1X2dzcF9tc2dfbGlib3Nf cHJpbnQodm9pZCAqcHJpdiwgdTMyIGZuLCB2b2lkICpyZXB2LCB1MzIgcmVwYykNCg0KK3sNCg0K KyAgICAgICBzdHJ1Y3QgbnZrbV9nc3AgKmdzcCA9IHByaXY7DQoNCisgICAgICAgc3RydWN0IG52 a21fc3ViZGV2ICpzdWJkZXYgPSAmZ3NwLT5zdWJkZXY7DQoNCisgICAgICAgc3RydWN0IHsNCg0K KyAgICAgICAgICAgICAgIHUzMiB1Y29kZUVuZ0Rlc2M7DQoNCisgICAgICAgICAgICAgICB1MzIg bGlib3NQcmludEJ1ZlNpemU7DQoNCisgICAgICAgICAgICAgICB1OCBsaWJvc1ByaW50QnVmW107 DQoNCg0KV2h5IGFyZSB0aG9zZSBjYW1lbENhc2U/IFBsZWFzZSB1c2Ugc25ha2VfY2FzZSBpbnN0 ZWFkLg0KDQpTdXJlLiAgVGhleSBtYXRjaCB0aGUgbmFtZXMgZnJvbSBPcGVuUk0gKHNlZSBnX3Jw Yy1zdHJ1Y3R1cmVzLmgpLiAgSSdsbCBjaGFuZ2UgdGhlbSwgdGhvdWdoLiAgV2hlbiBJIGNvcHkg YSBzdHJ1Y3QgZGlyZWN0bHkgZnJvbSBPcGVuUk0sIEkgcHJlZmVyIHRvIGtlZXAgaXQgYXMgaWRl bnRpY2FsIGFzIHBvc3NpYmxlIHRvIG1ha2UgaXQgZWFzaWVyIHRvIHNlZSB0aGUgY29ubmVjdGlv bi4NCg0KSSdsbCBtb3ZlIHRoaXMgdG8gYSBkaXN0aW5jdCBzdHJ1Y3QgYW5kIHJlbmFtZSB0aGUg ZmllbGRzLg0KDQoNCg0KQWxzbywgcGxlYXNlIGFkZCBhIGZldyBub3RlcyBvbiB0aGUgZmllbGRz IEdTUCByZXR1cm5zIHRvIHVzIGhlcmUuIEFkbWl0dGVkbHksDQoNCnR3byBvZiB0aG9zZSBzZWVt IHJhdGhlciBvYnZpb3VzIC0gYSBsb2cgYnVmZmVyIGFuZCBhIHNpemUgLSBidXQgbWF5YmUgd2Ug Y2FuDQoNCndyaXRlIGRvd24gd2hldGhlciB0aGVyZSBpcyBzb21lIG1heGltdW0gb3IgbWluaW11 bSBzaXplPyBDYW4gd2UgZ2V0IGNhbGxlZCB3aXRoDQoNCmEgemVyby1zaXplIGJ1ZmZlcj8NCg0K DQpXaGF0IGFib3V0ICd1Y29kZUVuZ0Rlc2MnPyBUaGlzIG9uZSBzZWVtcyB0byBiZWhhdmUgbW9y ZSBsaWtlIGEgcmVnaXN0ZXIgdmFsdWUsDQoNCmNhbiB3ZSBkb2N1bWVudCB0aGUgInJlZ2lzdGVy IGxheW91dCIgZm9yIHRoaXMgb25lPw0KDQpJJ3ZlIGFkZGVkIHNvbWUgZG9jdW1lbnRhdGlvbi4g IEJhc2ljYWxseSwgdGhlIGZpZWxkIGlzIGRpdmlkZWQgaW50byBhICJjbGFzcyBJRCIgYW5kIGFu ICJpbnN0YW5jZSBJRCIuICBJJ20gZ3Vlc3NpbmcgdGhlIGluc3RhbmNlIElEIGlzIGp1c3QgYSAw LWJhc2VkIGluZGV4IGZvciB0aGUgZW5naW5lLiAgVGhlIGNsYXNzIElEIGlzIGp1c3Qgc29tZSBz ZWVtaW5nbHkgcmFuZG9tIG51bWJlciB0aGF0IGRpc3Rpbmd1aXNoZXMgdGhlIHZhcmlvdXMgZW5n aW5lcy4gIEJ1aWxkaW5nIFJNIGludm9sdmVzIGEgbG90IG9mIHByZS1wcm9jZXNzaW5nIHdpdGgg Y29uZmlnIGZpbGVzIHRvIGdlbmVyYXRlIG11Y2ggb2YgdGhlIGNvZGUgdGhhdCBpcyBjb21waWxl ZCwgYW5kIHRoZXNlIGNsYXNzIElEcyBhcmUgb25lIGV4YW1wbGUuDQoNCg0KKyAgICAgICBpX3Np emVfd3JpdGUoZF9pbm9kZShkaXJfaW5pdCksIGdzcC0+YmxvYl9pbml0LnNpemUpOw0KDQorICAg ICAgIGlfc2l6ZV93cml0ZShkX2lub2RlKGRpcl9pbnRyKSwgZ3NwLT5ibG9iX2ludHIuc2l6ZSk7 DQoNCisgICAgICAgaV9zaXplX3dyaXRlKGRfaW5vZGUoZGlyX3JtKSwgZ3NwLT5ibG9iX3JtLnNp emUpOw0KDQorICAgICAgIGlfc2l6ZV93cml0ZShkX2lub2RlKGRpcl9wbXUpLCBnc3AtPmJsb2Jf cG11LnNpemUpOw0KDQorDQoNCisgICAgICAgcjUzNV9nc3BfbXNnX250ZnlfYWRkKGdzcCwgMHgw MDAwMTAwQywgcjUzNV9nc3BfbXNnX2xpYm9zX3ByaW50LCBnc3ApOw0KDQoNClBsZWFzZSwgZG9u J3QgYWRkIHJhbmRvbSBtYWdpYyB2YWx1ZXMuIEFkZCBhIHVzZWZ1bCBleHBsYW5hdGlvbiBpbnN0 ZWFkIHRoYXQNCg0KYWxzbyBuZXcgY29udHJpYnV0b3JzIGFyZSBhYmxlIHRvIG1ha2Ugc2Vuc2Ug b2YuDQoNCkFoLCBJIGNhbiBqdXN0IHVzZSB0aGUgbWFjcm8gdGhhdCdzIGFscmVhZHkgZGVmaW5l ZCBpbiBycGNfZ2xvYmFsX2VudW1zLmguDQoNCg0KDQorDQoNCisgICAgICAgbnZrbV9kZWJ1Zygm Z3NwLT5zdWJkZXYsICJjcmVhdGVkIGRlYnVnZnMgR1NQLVJNIGxvZ2dpbmcgZW50cmllc1xuIik7 DQoNCisNCg0KKyAgICAgICBpZiAoa2VlcF9nc3BfbG9nZ2luZykgew0KDQorICAgICAgICAgICAg ICAgbnZrbV93YXJuKCZnc3AtPnN1YmRldiwNCg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAi bG9nZ2luZyBidWZmZXJzIHdpbGwgYmUgcmV0YWluZWQgb24gZmFpbHVyZVxuIik7DQoNCisgICAg ICAgfQ0KDQorDQoNCisgICAgICAgcmV0dXJuOw0KDQorDQoNCitlcnJvcjoNCg0KKyAgICAgICBk ZWJ1Z2ZzX3JlbW92ZShkaXJfaW5pdCk7DQoNCisgICAgICAgZGVidWdmc19yZW1vdmUoZGlyX2lu dHIpOw0KDQorICAgICAgIGRlYnVnZnNfcmVtb3ZlKGRpcl9ybSk7DQoNCit9DQoNCisNCg0KKyNl bmRpZg0KDQorDQoNCiBzdGF0aWMgaW5saW5lIHU2NA0KDQogcjUzNV9nc3BfbGlib3NfaWQ4KGNv bnN0IGNoYXIgKm5hbWUpDQoNCiB7DQoNCkBAIC0yMTEyLDcgKzIyNzcsMTEgQEAgc3RhdGljIHZv aWQgY3JlYXRlX3B0ZV9hcnJheSh1NjQgKnB0ZXMsIGRtYV9hZGRyX3QgYWRkciwgc2l6ZV90IHNp emUpDQoNCiAgKiB3cml0dGVuIHRvIGRpcmVjdGx5IGJ5IEdTUC1STSBhbmQgY2FuIGJlIGFueSBt dWx0aXBsZSBvZiBHU1BfUEFHRV9TSVpFLg0KDQogICoNCg0KICAqIFRoZSBwaHlzaWNhbCBhZGRy ZXNzIG1hcCBmb3IgdGhlIGxvZyBidWZmZXIgaXMgc3RvcmVkIGluIHRoZSBidWZmZXINCg0KLSAq IGl0c2VsZiwgc3RhcnRpbmcgd2l0aCBvZmZzZXQgMS4gT2Zmc2V0IDAgY29udGFpbnMgdGhlICJw dXQiIHBvaW50ZXIuDQoNCisgKiBpdHNlbGYsIHN0YXJ0aW5nIHdpdGggb2Zmc2V0IDEuIE9mZnNl dCAwIGNvbnRhaW5zIHRoZSAicHV0IiBwb2ludGVyIChwcCkuDQoNCisgKiBJbml0aWFsbHksIHBw IGlzIGVxdWFsIHRvIDAuICBJZiB0aGUgYnVmZmVyIGhhcyB2YWxpZCBsb2dnaW5nIGRhdGEgaW4g aXQsDQoNCisgKiB0aGVuIHBwIHBvaW50cyB0byBpbmRleCBpbnRvIHRoZSBidWZmZXIgd2hlcmUg dGhlIG5leHQgbG9nZ2luZyBlbnRyeSB3aWxsDQoNCisgKiBiZSB3cml0dGVuLiAgVGhlcmVmb3Jl LCB0aGUgbG9nZ2luZyBkYXRhIGlzIHZhbGlkIGlmOg0KDQorICogICAxIDw9IHBwIDwgc2l6ZW9m KGJ1ZmZlcikvc2l6ZW9mKHU2NCkNCg0KICAqDQoNCiAgKiBUaGUgR1NQIG9ubHkgdW5kZXJzdGFu ZHMgNEsgcGFnZXMgKEdTUF9QQUdFX1NJWkUpLCBzbyBldmVuIGlmIHRoZSBrZXJuZWwgaXMNCg0K ICAqIGNvbmZpZ3VyZWQgZm9yIGEgbGFyZ2VyIHBhZ2Ugc2l6ZSAoZS5nLiA2NEsgcGFnZXMpLCB3 ZSBuZWVkIHRvIGdpdmUNCg0KQEAgLTIxODMsNiArMjM1MiwxMSBAQCByNTM1X2dzcF9saWJvc19p bml0KHN0cnVjdCBudmttX2dzcCAqZ3NwKQ0KDQogICAgICAgIGFyZ3NbM10uc2l6ZSA9IGdzcC0+ cm1hcmdzLnNpemU7DQoNCiAgICAgICAgYXJnc1szXS5raW5kID0gTElCT1NfTUVNT1JZX1JFR0lP Tl9DT05USUdVT1VTOw0KDQogICAgICAgIGFyZ3NbM10ubG9jICA9IExJQk9TX01FTU9SWV9SRUdJ T05fTE9DX1NZU01FTTsNCg0KKw0KDQorI2lmZGVmIENPTkZJR19ERUJVR19GUw0KDQorICAgICAg IHI1MzVfZ3NwX2xpYm9zX2RlYnVnZnNfaW5pdChnc3ApOw0KDQorI2VuZGlmDQoNCisNCg0KICAg ICAgICByZXR1cm4gMDsNCg0KIH0NCg0KDQoNCkBAIC0yNDkzLDYgKzI2NjcsMTgyIEBAIHI1MzVf Z3NwX2R0b3JfZndzKHN0cnVjdCBudmttX2dzcCAqZ3NwKQ0KDQogICAgICAgIGdzcC0+ZndzLnJt ID0gTlVMTDsNCg0KIH0NCg0KDQoNCisjaWZkZWYgQ09ORklHX0RFQlVHX0ZTDQoNCisNCg0KK3N0 cnVjdCByNTM1X2dzcF9sb2cgew0KDQorICAgICAgIHN0cnVjdCBudmlmX2xvZyBsb2c7DQoNCisN Cg0KKyAgICAgICAvKg0KDQorICAgICAgICAqIExvZ2dpbmcgYnVmZmVycyBpbiBkZWJ1Z2ZzLiAg VGhlIHdyYXBwZXIgb2JqZWN0cyBuZWVkIHRvIHJlbWFpbg0KDQorICAgICAgICAqIGluIG1lbW9y eSB1bnRpbCB0aGUgZGVudHJ5IGlzIGRlbGV0ZWQuDQoNCisgICAgICAgICovDQoNCisgICAgICAg c3RydWN0IGRlbnRyeSAqZGVidWdmc19sb2dnaW5nX2RpcjsNCg0KKyAgICAgICBzdHJ1Y3QgZGVi dWdmc19ibG9iX3dyYXBwZXIgYmxvYl9pbml0Ow0KDQorICAgICAgIHN0cnVjdCBkZWJ1Z2ZzX2Js b2Jfd3JhcHBlciBibG9iX2ludHI7DQoNCisgICAgICAgc3RydWN0IGRlYnVnZnNfYmxvYl93cmFw cGVyIGJsb2Jfcm07DQoNCisgICAgICAgc3RydWN0IGRlYnVnZnNfYmxvYl93cmFwcGVyIGJsb2Jf cG11Ow0KDQorfTsNCg0KKw0KDQorLyoqDQoNCisgKiByNTM1X2RlYnVnZnNfc2h1dGRvd24gLSBk ZWxldGUgR1NQLVJNIGxvZ2dpbmcgYnVmZmVycyBmb3Igb25lIEdQVQ0KDQorICogQF9sb2c6IG52 aWZfbG9nIHN0cnVjdCBmb3IgdGhpcyBHUFUNCg0KKyAqDQoNCisgKiBDYWxsZWQgd2hlbiB0aGUg ZHJpdmVyIGlzIHNodXR0aW5nIGRvd24sIHRvIGNsZWFuIHVwIHRoZSByZXRhaW5lZCBHU1AtUk0N Cg0KKyAqIGxvZ2dpbmcgYnVmZmVycy4NCg0KKyAqLw0KDQorc3RhdGljIHZvaWQgcjUzNV9kZWJ1 Z2ZzX3NodXRkb3duKHN0cnVjdCBudmlmX2xvZyAqX2xvZykNCg0KK3sNCg0KKyAgICAgICBzdHJ1 Y3QgcjUzNV9nc3BfbG9nICpsb2cgPSBjb250YWluZXJfb2YoX2xvZywgc3RydWN0IHI1MzVfZ3Nw X2xvZywgbG9nKTsNCg0KKw0KDQorICAgICAgIGRlYnVnZnNfcmVtb3ZlKGxvZy0+ZGVidWdmc19s b2dnaW5nX2Rpcik7DQoNCisNCg0KKyAgICAgICBrZnJlZShsb2ctPmJsb2JfaW5pdC5kYXRhKTsN Cg0KKyAgICAgICBrZnJlZShsb2ctPmJsb2JfaW50ci5kYXRhKTsNCg0KKyAgICAgICBrZnJlZShs b2ctPmJsb2Jfcm0uZGF0YSk7DQoNCisgICAgICAga2ZyZWUobG9nLT5ibG9iX3BtdS5kYXRhKTsN Cg0KKw0KDQorICAgICAgIC8qIFdlIGFsc28gbmVlZCB0byBkZWxldGUgdGhlIGxpc3Qgb2JqZWN0 ICovDQoNCisgICAgICAga2ZyZWUobG9nKTsNCg0KK30NCg0KKw0KDQorLyoqDQoNCisgKiBpc19l bXB0eSAtIHJldHVybiB0cnVlIGlmIHRoZSBsb2dnaW5nIGJ1ZmZlciB3YXMgbmV2ZXIgd3JpdHRl biB0bw0KDQorICogQGI6IGJsb2Igd3JhcHBlciB3aXRoIC0+ZGF0YSBmaWVsZCBwb2ludGluZyB0 byBsb2dnaW5nIGJ1ZmZlcg0KDQorICoNCg0KKyAqIFRoZSBmaXJzdCA2NC1iaXQgZmllbGQgb2Yg bG9naW5pdCwgYW5kIGxvZ2ludHIsIGFuZCBsb2dybSBpcyB0aGUgJ3B1dCcNCg0KKyAqIHBvaW50 ZXIsIGFuZCBpdCBpcyBpbml0aWFsaXplZCB0byAwLiAgSWYgdGhlIHBvaW50ZXIgaXMgc3RpbGwg MCB3aGVuDQoNCg0KRG91YmxlIHNwYWNlLg0KDQpVaCwgYXJlIHlvdSBvbmx5IG5vdyBub3RpY2lu ZyB0aGF0IEkgYWx3YXlzIHB1dCB0d28gc3BhY2VzIGFmdGVyIGEgIi4iPyAgSSBkbyB0aGF0IGV2 ZXJ5d2hlcmUuDQoNCg0KQWxzbywgd2hhdCB3b3VsZCAncHV0JyBwb2ludCB0byBpbiBjYXNlIGl0 J3Mgbm9uLXplcm8/IElzIGl0IGENCg0KcG9pbnRlciBhY3R1YWxseSwgb3IgaXMgaXQganVzdCBz b21lIGtpbmQgb2YgY291bnRlcj8NCg0KSXQncyBjYWxsZWQgdGhlICJwdXQgcG9pbnRlciIgaW50 ZXJuYWxseSwgYnV0IGl0J3MgYWN0dWFsbHkgYSBkd29yZC1iYXNlZCBpbmRleCBpbnRvIHRoZSBi dWZmZXIuICBTbyBhIHZhbHVlIG9mIDEgaXMgYW4gaWZmc2V0IG9mIDQsIGEgdmFsdWUgb2YgMiBp cyBhbiBvZmZzZXQgb2YgOCwgZXRjLg0KDQpJJ2xsIHVwZGF0ZSB0aGUgZG9jcy4NCg0KDQoNCisg KiBHU1AtUk0gaXMgc2h1dCBkb3duLCB0aGF0IG1lYW5zIHRoYXQgaXQgd2FzIG5ldmVyIHdyaXR0 ZW4gZG8sIHNvIGl0DQoNCg0KIndyaXR0ZW4gdG8iDQoNCkZpeGVkLCB0aGFua3MuDQoNCg0KDQog dm9pZA0KDQogcjUzNV9nc3BfZHRvcihzdHJ1Y3QgbnZrbV9nc3AgKmdzcCkNCg0KIHsNCg0KQEAg LTI1MTQsNiArMjg2NCwxNCBAQCByNTM1X2dzcF9kdG9yKHN0cnVjdCBudmttX2dzcCAqZ3NwKQ0K DQogICAgICAgIG52a21fZ3NwX21lbV9kdG9yKCZnc3AtPnJtYXJncyk7DQoNCiAgICAgICAgbnZr bV9nc3BfbWVtX2R0b3IoJmdzcC0+d3ByX21ldGEpOw0KDQogICAgICAgIG52a21fZ3NwX21lbV9k dG9yKCZnc3AtPnNobS5tZW0pOw0KDQorDQoNCisjaWZkZWYgQ09ORklHX0RFQlVHX0ZTDQoNCisg ICAgICAgcjUzNV9nc3BfcmV0YWluX2xvZ2dpbmcoZ3NwKTsNCg0KKw0KDQorICAgICAgIGtmcmVl KGdzcC0+YmxvYl9wbXUuZGF0YSk7DQoNCisgICAgICAgZ3NwLT5ibG9iX3BtdS5kYXRhID0gTlVM TDsNCg0KDQpQbGVhc2UgbW92ZSB0aGlzIHRvIHI1MzVfZ3NwX2xpYm9zX2RlYnVnZnNfZmluaSgp IHRvIG1ha2UgaXQgYSBiaXQgbW9yZSBvYnZpb3VzDQoNCndoeSB0aGlzIG5lZWRzIHRvIGJlIGNs ZWFuZWQgdXAgaGVyZS4NCg0KU28gZmlyc3QsIEkgbWFkZSBhIG1pc3Rha2UsIGFuZCB0aGUgI2lm ZGVmIGlzIG9ubHkgc3VwcG9zZWQgdG8gYmUgYXJvdW5kIHRoZSBjYWxsIHRvIHI1MzVfZ3NwX3Jl dGFpbl9sb2dnaW5nKCkuDQoNClNlY29uZCwgYXJlIHlvdSBzYXlpbmcgeW91IHdhbnQgdGhpcz8N Cg0KLyoqDQogKiByNTM1X2dzcF9saWJvc19kZWJ1Z2ZzX2ZpbmkgLSByZXRyYWluIGRlYnVnZnMg YnVmZmVycyBpZiBuZWNlc3NhcnkNCiAqDQogKiBibGEgYmxhIHNvbWUgdGV4dCBhYm91dCB3aHkg d2UncmUgZG9pbmcgdGhpcw0KICovDQpzdGF0aWMgdm9pZCByNTM1X2dzcF9saWJvc19kZWJ1Z2Zz X2Zpbmkoc3RydWN0IG52a21fZ3NwIF9fbWF5YmVfdW51c2VkICpnc3ApDQp7DQojaWZkZWYgQ09O RklHX0RFQlVHX0ZTDQpyNTM1X2dzcF9yZXRhaW5fbG9nZ2luZyhnc3ApOw0KI2VuZGlmDQp9DQoN Cg0K --_000_dff9b893cd9499ac41b7835ae5489eb44435f616camelnvidiacom_ Content-Type: text/html; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjwvaGVhZD4NCjxib2R5Pg0KPGRpdj5PbiBNb24s IDIwMjQtMDYtMTcgYXQgMjE6NTQgKzAyMDAsIERhbmlsbyBLcnVtbXJpY2ggd3JvdGU6PC9kaXY+ DQo8YmxvY2txdW90ZSB0eXBlPSJjaXRlIiBzdHlsZT0ibWFyZ2luOjAgMCAwIC44ZXg7IGJvcmRl ci1sZWZ0OjJweCAjNzI5ZmNmIHNvbGlkO3BhZGRpbmctbGVmdDoxZXgiPg0KPHByZT5IaSBUaW11 ciw8L3ByZT4NCjxwcmU+PGJyPjwvcHJlPg0KPHByZT50aGFua3MgZm9yIHRoZSBmb2xsb3ctdXAg b24gdGhpcyBwYXRjaCBzZXJpZXMuPC9wcmU+DQo8cHJlPjxicj48L3ByZT4NCjxwcmU+T24gV2Vk LCBKdW4gMTIsIDIwMjQgYXQgMDY6NTI6NTNQTSAtMDUwMCwgVGltdXIgVGFiaSB3cm90ZTo8L3By ZT4NCjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiIHN0eWxlPSJtYXJnaW46MCAwIDAgLjhleDsgYm9y ZGVyLWxlZnQ6MnB4ICM3MjlmY2Ygc29saWQ7cGFkZGluZy1sZWZ0OjFleCI+DQo8cHJlPlRoZSBM T0dJTklULCBMT0dJTlRSLCBMT0dSTSwgYW5kIExPR1BNVSBidWZmZXJzIGFyZSBjaXJjdWxhciBi dWZmZXJzPC9wcmU+DQo8cHJlPnRoYXQgaGF2ZSBwcmludGYtbGlrZSBsb2dzIGZyb20gR1NQLVJN IGFuZCBQTVUgZW5jb2RlZCBpbiB0aGVtLjwvcHJlPg0KPHByZT48YnI+PC9wcmU+DQo8cHJlPkxP R0lOSVQsIExPR0lOVFIsIGFuZCBMT0dSTSBhcmUgYWxsb2NhdGVkIGJ5IE5vdXZlYXUgYW5kIHRo ZWlyIERNQTwvcHJlPg0KPHByZT5hZGRyZXNzZXMgYXJlIHBhc3NlZCB0byBHU1AtUk0gZHVyaW5n IGluaXRpYWxpemF0aW9uLiAgVGhlIGJ1ZmZlcnMgYXJlPC9wcmU+DQo8cHJlPnJlcXVpcmVkIGZv ciBHU1AtUk0gdG8gaW5pdGlhbGl6ZSBwcm9wZXJseS48L3ByZT4NCjxwcmU+PGJyPjwvcHJlPg0K PHByZT5MT0dQTVUgaXMgYWxzbyBhbGxvY2F0ZWQgYnkgTm91dmVhdSwgYnV0IGl0cyBjb250ZW50 cyBhcmUgdXBkYXRlZDwvcHJlPg0KPHByZT53aGVuIE5vdXZlYXUgcmVjZWl2ZXMgYW4gTlZfVkdQ VV9NU0dfRVZFTlRfVUNPREVfTElCT1NfUFJJTlQgUlBDIGZyb208L3ByZT4NCjxwcmU+R1NQLVJN LiAgTm91dmVhdSB0aGVuIGNvcGllcyB0aGUgUlBDIHRvIHRoZSBidWZmZXIuPC9wcmU+DQo8cHJl Pjxicj48L3ByZT4NCjxwcmU+VGhlIG1lc3NhZ2VzIGFyZSBlbmNvZGVkIGFzIGFuIGFycmF5IG9m IHZhcmlhYmxlLWxlbmd0aCBzdHJ1Y3R1cmVzIHRoYXQ8L3ByZT4NCjxwcmU+Y29udGFpbiB0aGUg cGFyYW1ldGVycyB0byBhbiBOVl9QUklOVEYgY2FsbC4gIFRoZSBmb3JtYXQgc3RyaW5nIGFuZDwv cHJlPg0KPHByZT5wYXJhbWV0ZXIgY291bnQgYXJlIHN0b3JlZCBpbiBhIHNwZWNpYWwgRUxGIGlt YWdlIHRoYXQgY29udGFpbnMgb25seTwvcHJlPg0KPHByZT5sb2dnaW5nIHN0cmluZ3MuICBUaGlz IGltYWdlIGlzIG5vdCBjdXJyZW50bHkgc2hpcHBlZCB3aXRoIHRoZSBOdmlkaWE8L3ByZT4NCjxw cmU+ZHJpdmVyLjwvcHJlPg0KPHByZT48YnI+PC9wcmU+DQo8cHJlPlRoZXJlIGFyZSB0d28gbWV0 aG9kcyB0byBleHRyYWN0IHRoZSBsb2dzLjwvcHJlPg0KPHByZT48YnI+PC9wcmU+DQo8cHJlPk9w ZW5STSB0cmllcyB0byBsb2FkIHRoZSBsb2dnaW5nIEVMRiwgYW5kIGlmIHByZXNlbnQsIHBhcnNl cyB0aGUgbG9nPC9wcmU+DQo8cHJlPmJ1ZmZlcnMgaW4gcmVhbCB0aW1lIGFuZCBvdXRwdXRzIHRo ZSBzdHJpbmdzIHRvIHRoZSBrZXJuZWwgY29uc29sZS48L3ByZT4NCjxwcmU+PGJyPjwvcHJlPg0K PHByZT5BbHRlcm5hdGl2ZWx5LCBhbmQgdGhpcyBpcyB0aGUgbWV0aG9kIHVzZWQgYnkgdGhpcyBw YXRjaCwgdGhlIGJ1ZmZlcnM8L3ByZT4NCjxwcmU+Y2FuIGJlIGV4cG9zZWQgdG8gdXNlciBzcGFj ZSwgYW5kIGEgdXNlci1zcGFjZSB0b29sIChhbG9uZyB3aXRoIHRoZTwvcHJlPg0KPHByZT5sb2dn aW5nIEVMRiBpbWFnZSkgY2FuIHBhcnNlIHRoZSBidWZmZXIgYW5kIGR1bXAgdGhlIGxvZ3MuPC9w cmU+DQo8cHJlPjxicj48L3ByZT4NCjxwcmU+VGhpcyBtZXRob2QgaGFzIHRoZSBhZHZhbnRhZ2Ug dGhhdCBpdCBhbGxvd3MgdGhlIGJ1ZmZlcnMgdG8gYmUgcGFyc2VkPC9wcmU+DQo8cHJlPmV2ZW4g d2hlbiB0aGUgbG9nZ2luZyBFTEYgZmlsZSBpcyBub3QgYXZhaWxhYmxlIHRvIHRoZSB1c2VyLiAg SG93ZXZlciw8L3ByZT4NCjxwcmU+aXQgaGFzIHRoZSBkaXNhZHZhbnRhZ2UgdGhlIGRlYnViZnMg ZW50cmllcyBuZWVkIHRvIHJlbWFpbiB1bnRpbCB0aGU8L3ByZT4NCjxwcmU+ZHJpdmVyIGlzIHVu bG9hZGVkLjwvcHJlPg0KPHByZT48YnI+PC9wcmU+DQo8cHJlPlRoZSBidWZmZXJzIGFyZSBleHBv c2VkIHZpYSBkZWJ1Z2ZzLiAgSWYgR1NQLVJNIGZhaWxzIHRvIGluaXRpYWxpemUsPC9wcmU+DQo8 cHJlPnRoZW4gTm91dmVhdSBpbW1lZGlhdGVseSBzaHV0cyBkb3duIHRoZSBHU1AgaW50ZXJmYWNl LiAgVGhpcyB3b3VsZDwvcHJlPg0KPHByZT5ub3JtYWxseSBhbHNvIGRlYWxsb2NhdGUgdGhlIGxv Z2dpbmcgYnVmZmVycywgdGhlcmVieSBwcmV2ZW50aW5nIHRoZTwvcHJlPg0KPHByZT51c2VyIGZy b20gY2FwdHVyaW5nIHRoZSBkZWJ1ZyBsb2dzLjwvcHJlPg0KPHByZT48YnI+PC9wcmU+DQo8cHJl PlRvIGF2b2lkIHRoaXMsIGludHJvZHVjZSB0aGUga2VlcC1nc3AtbG9nZ2luZyBjb21tYW5kIGxp bmUgcGFyYW1ldGVyLjwvcHJlPg0KPHByZT5JZiBzcGVjaWZpZWQsIGFuZCBpZiBhdCBsZWFzdCBv bmUgbG9nZ2luZyBidWZmZXIgaGFzIGNvbnRlbnQsIHRoZW48L3ByZT4NCjxwcmU+Tm91dmVhdSB3 aWxsIG1pZ3JhdGUgdGhlc2UgYnVmZmVycyBpbnRvIG5ldyBkZWJ1Z2ZzIGVudHJpZXMgdGhhdCBh cmU8L3ByZT4NCjxwcmU+cmV0YWluZWQgdW50aWwgdGhlIGRyaXZlciB1bmxvYWRzLjwvcHJlPg0K PHByZT48YnI+PC9wcmU+DQo8cHJlPkFuIGVuZC11c2VyIGNhbiBjYXB0dXJlIHRoZSBsb2dzIHVz aW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZHM6PC9wcmU+DQo8cHJlPjxicj48L3ByZT4NCjxwcmU+ ICAgIGNwIC9zeXMva2VybmVsL2RlYnVnL2RyaS8mbHQ7cGF0aCZndDsvbG9naW5pdCBsb2dpbml0 PC9wcmU+DQo8cHJlPiAgICBjcCAvc3lzL2tlcm5lbC9kZWJ1Zy9kcmkvJmx0O3BhdGgmZ3Q7L2xv Z3JtIGxvZ3JtPC9wcmU+DQo8cHJlPiAgICBjcCAvc3lzL2tlcm5lbC9kZWJ1Zy9kcmkvJmx0O3Bh dGgmZ3Q7L2xvZ2ludHIgbG9naW50cjwvcHJlPg0KPHByZT4gICAgY3AgL3N5cy9rZXJuZWwvZGVi dWcvZHJpLyZsdDtwYXRoJmd0Oy9sb2dwbXUgbG9ncG11PC9wcmU+DQo8cHJlPjxicj48L3ByZT4N CjxwcmU+d2hlcmUgJmx0O3BhdGgmZ3Q7IGlzIHRoZSBQQ0kgSUQgb2YgdGhlIEdQVSAoZS5nLiAw MDAwOjY1OjAwLjApLjwvcHJlPg0KPHByZT48YnI+PC9wcmU+DQo8cHJlPlNpbmNlIExPR1BNVSBp cyBub3QgbmVlZGVkIGZvciBub3JtYWwgR1NQLVJNIG9wZXJhdGlvbiwgaXQgaXMgb25seTwvcHJl Pg0KPHByZT5jcmVhdGVkIGlmIGRlYnVnZnMgaXMgYXZhaWxhYmxlLiAgT3RoZXJ3aXNlLCB0aGU8 L3ByZT4NCjxwcmU+TlZfVkdQVV9NU0dfRVZFTlRfVUNPREVfTElCT1NfUFJJTlQgUlBDcyBhcmUg aWdub3JlZC48L3ByZT4NCjxwcmU+PGJyPjwvcHJlPg0KPHByZT5TaWduZWQtb2ZmLWJ5OiBUaW11 ciBUYWJpICZsdDs8YSBocmVmPSJtYWlsdG86dHRhYmlAbnZpZGlhLmNvbSI+dHRhYmlAbnZpZGlh LmNvbTwvYT4mZ3Q7PC9wcmU+DQo8cHJlPi0tLTwvcHJlPg0KPHByZT52NTo8L3ByZT4NCjxwcmU+ cmViYXNlZCB0byBkcm0tbWlzYy1uZXh0PC9wcmU+DQo8cHJlPnJlcGFjZWQgbnZrbV9nc3BfbG9n IHdpdGggbnZpZl9sb2c8L3ByZT4NCjxwcmU+bWlub3IgcmVhcnJhbmdlbWVudCBvZiBzb21lIGNv ZGU8L3ByZT4NCjxwcmU+PGJyPjwvcHJlPg0KPHByZT4gZHJpdmVycy9ncHUvZHJtL25vdXZlYXUv aW5jbHVkZS9udmlmL2xvZy5oICAgIHwgIDMyICsrPC9wcmU+DQo8cHJlPiAuLi4vZ3B1L2RybS9u b3V2ZWF1L2luY2x1ZGUvbnZrbS9zdWJkZXYvZ3NwLmggfCAgMTMgKzwvcHJlPg0KPHByZT4gZHJp dmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9kcm0uYyAgICAgICAgIHwgIDE5ICs8L3ByZT4N CjxwcmU+IC4uLi9ncHUvZHJtL25vdXZlYXUvbnZrbS9zdWJkZXYvZ3NwL3I1MzUuYyAgICB8IDM2 MCArKysrKysrKysrKysrKysrKy08L3ByZT4NCjxwcmU+IDQgZmlsZXMgY2hhbmdlZCwgNDIzIGlu c2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSk8L3ByZT4NCjxwcmU+IGNyZWF0ZSBtb2RlIDEwMDY0 NCBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9pbmNsdWRlL252aWYvbG9nLmg8L3ByZT4NCjxwcmU+ PGJyPjwvcHJlPg0KPHByZT5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvaW5j bHVkZS9udmlmL2xvZy5oIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvaW5jbHVkZS9udmlmL2xv Zy5oPC9wcmU+DQo8cHJlPm5ldyBmaWxlIG1vZGUgMTAwNjQ0PC9wcmU+DQo8cHJlPmluZGV4IDAw MDAwMDAwMDAwMC4uYzg5YmE4NWE3MDFkPC9wcmU+DQo8cHJlPi0tLSAvZGV2L251bGw8L3ByZT4N CjxwcmU+KysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvaW5jbHVkZS9udmlmL2xvZy5oPC9w cmU+DQo8cHJlPkBAIC0wLDAgKzEsMzIgQEA8L3ByZT4NCjxwcmU+Ky8qIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBNSVQgKi88L3ByZT4NCjxwcmU+Ky8qIFNQRFgtRmlsZUNvcHlyaWdodFRleHQ6 IENvcHlyaWdodCAoYykgMjAyNCBOVklESUEgQ09SUE9SQVRJT04gJmFtcDsgQUZGSUxJQVRFUy4g Ki88L3ByZT4NCjxwcmU+KzwvcHJlPg0KPHByZT4rI2lmbmRlZiBfX05WSUZfTE9HX0hfXzwvcHJl Pg0KPHByZT4rI2RlZmluZSBfX05WSUZfTE9HX0hfXzwvcHJlPg0KPHByZT4rPC9wcmU+DQo8cHJl PisvKio8L3ByZT4NCjxwcmU+KyAqIG52aWZfbG9nIC0gc3RydWN0dXJlIGZvciB0cmFja2luZyBs b2dnaW5nIGJ1ZmZlcnM8L3ByZT4NCjxwcmU+KyAqIEBoZWFkOiBsaXN0IGhlYWQ8L3ByZT4NCjwv YmxvY2txdW90ZT4NCjxwcmU+PGJyPjwvcHJlPg0KPHByZT5XaGF0IGFib3V0ICZxdW90O0BlbnRy eTogYW4gZW50cnkgaW4gYSBsaXN0IG9mIHN0cnVjdCBudmlmX2xvZ3MmcXVvdDsuPC9wcmU+DQo8 L2Jsb2NrcXVvdGU+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPGRpdj5Eb25lLjwvZGl2Pg0KPGRpdj48 YnI+DQo8L2Rpdj4NCjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiIHN0eWxlPSJtYXJnaW46MCAwIDAg LjhleDsgYm9yZGVyLWxlZnQ6MnB4ICM3MjlmY2Ygc29saWQ7cGFkZGluZy1sZWZ0OjFleCI+DQo8 YmxvY2txdW90ZSB0eXBlPSJjaXRlIiBzdHlsZT0ibWFyZ2luOjAgMCAwIC44ZXg7IGJvcmRlci1s ZWZ0OjJweCAjNzI5ZmNmIHNvbGlkO3BhZGRpbmctbGVmdDoxZXgiPg0KPHByZT4rICogQHNodXRk b3duOiBwb2ludGVyIHRvIGZ1bmN0aW9uIHRvIGNhbGwgdG8gY2xlYW4gdXA8L3ByZT4NCjwvYmxv Y2txdW90ZT4NCjxwcmU+PGJyPjwvcHJlPg0KPHByZT5JJ2QgYmUgYSBiaXQgbW9yZSBzcGVjaWZp YyBhbmQgc2F5IHRoYXQgdGhpcyBmcmVlcyBhbGwgYmFja2luZyByZXNvdXJjZXMsIHN1Y2g8L3By ZT4NCjxwcmU+YXMgbG9nZ2luZyBidWZmZXIsIGV0Yy48L3ByZT4NCjwvYmxvY2txdW90ZT4NCjxk aXY+PGJyPg0KPC9kaXY+DQo8ZGl2PkRvbmUuPC9kaXY+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPGJs b2NrcXVvdGUgdHlwZT0iY2l0ZSIgc3R5bGU9Im1hcmdpbjowIDAgMCAuOGV4OyBib3JkZXItbGVm dDoycHggIzcyOWZjZiBzb2xpZDtwYWRkaW5nLWxlZnQ6MWV4Ij4NCjxwcmU+PGJyPjwvcHJlPg0K PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSIgc3R5bGU9Im1hcmdpbjowIDAgMCAuOGV4OyBib3JkZXIt bGVmdDoycHggIzcyOWZjZiBzb2xpZDtwYWRkaW5nLWxlZnQ6MWV4Ij4NCjxwcmU+KyAqPC9wcmU+ DQo8cHJlPisgKiBTdHJ1Y3R1cmUgdXNlZCB0byB0cmFjayBsb2dnaW5nIGJ1ZmZlcnMgc28gdGhh dCB0aGV5IGNhbiBiZSBjbGVhbmVkIHVwPC9wcmU+DQo8cHJlPisgKiB3aGVuIHRoZSBkcml2ZXIg ZXhpdHMuPC9wcmU+DQo8cHJlPisgKi88L3ByZT4NCjxwcmU+K3N0cnVjdCBudmlmX2xvZyB7PC9w cmU+DQo8cHJlPisJc3RydWN0IGxpc3RfaGVhZCBoZWFkOzwvcHJlPg0KPC9ibG9ja3F1b3RlPg0K PHByZT48YnI+PC9wcmU+DQo8cHJlPkkgc3VnZ2VzdCB0byBjYWxsIHRoaXMgJ2VudHJ5Jywgc2lu Y2UgdGhhdCdzIHdoYXQgaXQgYWN0dWFsbHkgcmVwcmVzZW50cywgYW5kPC9wcmU+DQo8cHJlPmVu dHJ5IGluIGEgbGlzdC48L3ByZT4NCjwvYmxvY2txdW90ZT4NCjxkaXY+PGJyPg0KPC9kaXY+DQo8 ZGl2Pk9oIHllYWgsIEkgc2VlIHdoYXQgeW91IG1lYW4gbm93LiAmbmJzcDtEb25lLjwvZGl2Pg0K PGRpdj48YnI+DQo8L2Rpdj4NCjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiIHN0eWxlPSJtYXJnaW46 MCAwIDAgLjhleDsgYm9yZGVyLWxlZnQ6MnB4ICM3MjlmY2Ygc29saWQ7cGFkZGluZy1sZWZ0OjFl eCI+DQo8YmxvY2txdW90ZSB0eXBlPSJjaXRlIiBzdHlsZT0ibWFyZ2luOjAgMCAwIC44ZXg7IGJv cmRlci1sZWZ0OjJweCAjNzI5ZmNmIHNvbGlkO3BhZGRpbmctbGVmdDoxZXgiPg0KPHByZT4rCXZv aWQgKCpzaHV0ZG93bikoc3RydWN0IG52aWZfbG9nICpsb2cpOzwvcHJlPg0KPHByZT4rfTs8L3By ZT4NCjxwcmU+KzwvcHJlPg0KPHByZT4rI2lmZGVmIENPTkZJR19ERUJVR19GUzwvcHJlPg0KPHBy ZT4rLyoqPC9wcmU+DQo8cHJlPisgKiBnc3BfbG9ncyAtIGxpc3Qgb2YgbnZpZl9sb2cgR1NQLVJN IGxvZ2dpbmcgYnVmZmVyczwvcHJlPg0KPHByZT4rICo8L3ByZT4NCjxwcmU+KyAqIEhlYWQgcG9p bnRlciB0byBhIGEgbGlzdCBvZiBudmlmX2xvZyBidWZmZXJzIHRoYXQgaXMgY3JlYXRlZCBmb3Ig ZWFjaCBHUFU8L3ByZT4NCjxwcmU+KyAqIHVwb24gR1NQIHNodXRkb3duIGlmIHRoZSAmcXVvdDtr ZWVwX2dzcF9sb2dnaW5nJnF1b3Q7IGNvbW1hbmQtbGluZSBwYXJhbWV0ZXIgaXM8L3ByZT4NCjxw cmU+KyAqIHNwZWNpZmllZC4gIFRoaXMgaXMgdXNlZCB0byB0cmFjayB0aGUgYWx0ZXJuYXRpdmUg ZGVidWdmcyBlbnRyaWVzIGZvciB0aGU8L3ByZT4NCjxwcmU+KyAqIEdTUC1STSBsb2dzLjwvcHJl Pg0KPHByZT4rICovPC9wcmU+DQo8cHJlPitleHRlcm4gc3RydWN0IGxpc3RfaGVhZCBnc3BfbG9n czs8L3ByZT4NCjwvYmxvY2txdW90ZT4NCjxwcmU+PGJyPjwvcHJlPg0KPHByZT5CZXR0ZXIgd3Jh cCB0aGlzIGluIGEgc3RydWN0IG52aWZfbG9ncyAob3Igc2ltaWxhcikgYW5kIHBhc3MgdGhpcyBk b3duIHRocm91Z2g8L3ByZT4NCjxwcmU+bnZrbV9kZXZpY2VfcGNpX25ldygpIC8gbnZrbV9kZXZp Y2VfdGVncmFfbmV3KCkgaW5zdGVhZCBvZiByZWx5aW5nIG9uIHNoYXJpbmc8L3ByZT4NCjxwcmU+ YSBnbG9iYWwuPC9wcmU+DQo8L2Jsb2NrcXVvdGU+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPGRpdj5J J20gc3RpbGwgaGF2aW5nIGRpZmZpY3VsdHkgdW5kZXJzdGFuZGluZyB3aGF0IHlvdSBtZWFuIGJ5 IHRoaXMuICZuYnNwO0kgdGhpbmsgeW91IG5lZWQgdG8gYmUgbW9yZSBleHBsaWNpdCBpbiB3aGF0 IHlvdSB3YW50LjwvZGl2Pg0KPGRpdj48YnI+DQo8L2Rpdj4NCjxkaXY+c3RydWN0IG52aWZfbG9n czwvZGl2Pg0KPGRpdj57PC9kaXY+DQo8ZGl2PjxzcGFuIGNsYXNzPSJBcHBsZS10YWItc3BhbiIg c3R5bGU9IndoaXRlLXNwYWNlOnByZSI+PC9zcGFuPnN0cnVjdCBsaXN0X2hlYWQgbG9nczs8L2Rp dj4NCjxkaXY+fSBnc3BfbG9nczs8L2Rpdj4NCjxkaXY+PGJyPg0KPC9kaXY+DQo8ZGl2PkZpcnN0 LCBJIGRvbid0IHVuZGVyc3RhbmQgd2hhdCB0aGlzIGdldHMgbWUuICZuYnNwO0l0IGp1c3Qgd3Jh cHMgb25lIHN0cnVjdCBpbnNpZGUgYW5vdGhlci48L2Rpdj4NCjxkaXY+PGJyPg0KPC9kaXY+DQo8 ZGl2PlNob3VsZCBJIGFkZCB0aGlzIHRvIHN0cnVjdCBudmttX2RldmljZV9mdW5jPyAmbmJzcDtB bmQgdGhlbiBkbyBzb21ldGhpbmcgbGlrZSB0aGlzIGluIHBjaS5jOjwvZGl2Pg0KPGRpdj48YnI+ DQo8L2Rpdj4NCjxkaXYgc3R5bGU9ImNhcmV0LWNvbG9yOiByZ2IoMCwgMCwgMCk7IGNvbG9yOiBy Z2IoMCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBVYnVudHU7IGZvbnQtc2l6ZTogMTQuNjY2NjY3cHg7 IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsgZm9udC13ZWln aHQ6IDQwMDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgb3JwaGFuczogYXV0bzsgdGV4dC1hbGln bjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1z cGFjZTogbm9ybWFsOyB3aWRvd3M6IGF1dG87IHdvcmQtc3BhY2luZzogMHB4OyAtd2Via2l0LXRh cC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTsgLXdlYmtpdC10ZXh0LXN0cm9r ZS13aWR0aDogMHB4OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7Ij4NCnN0YXRpYyBzdHJ1Y3QgbnZp Zl9sb2dzIGdzcF9sb2dzOzwvZGl2Pg0KPGRpdiBzdHlsZT0iY2FyZXQtY29sb3I6IHJnYigwLCAw LCAwKTsgY29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1mYW1pbHk6IFVidW50dTsgZm9udC1zaXpl OiAxNC42NjY2NjdweDsgZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9y bWFsOyBmb250LXdlaWdodDogNDAwOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyB0ZXh0LWFsaWdu OiBzdGFydDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdvcmQt c3BhY2luZzogMHB4OyAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwg MC40KTsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4OyB0ZXh0LWRlY29yYXRpb246IG5v bmU7Ij4NCjxicj4NCjwvZGl2Pg0KPGRpdj5zdGF0aWMgY29uc3Qgc3RydWN0IG52a21fZGV2aWNl X2Z1bmM8L2Rpdj4NCjxkaXY+bnZrbV9kZXZpY2VfcGNpX2Z1bmMgPSB7PC9kaXY+DQo8ZGl2Pjxi cj4NCjwvZGl2Pg0KPGRpdj4uLi48L2Rpdj4NCjxkaXY+PHNwYW4gY2xhc3M9IkFwcGxlLXRhYi1z cGFuIiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj48L3NwYW4+Lm52aWZfbG9ncyA9ICZhbXA7Z3Nw X2xvZ3MsPC9kaXY+DQo8ZGl2Pn07PC9kaXY+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPGRpdj5TbyBu dmttX2RldmljZV9wY2lfbmV3KCkgY2FsbHMgbnZrbV9kZXZpY2VfY3RvcigpLiAmbmJzcDs8c3Bh biBzdHlsZT0iZm9udC1zaXplOiAxNC42NjY2NjdweDsiPm52a21fZGV2aWNlX2N0b3IoKSB0aGVu IGNhbGxzIHRoZSAuY3RvcigpIGZvciBldmVyeSBzdWJkZXZpY2UgdmlhIE5WS01fTEFZT1VUX09O Q0UoKSBhbmQgTlZLTV9MQVlPVVRfSU5TVCgpLiAmbmJzcDtUaGlzIGlzIHdoZXJlIEkgZ2V0IGxv c3QsIGJlY2F1c2UgSSBkb24ndCBzZWUgaG93IEkNCiBtYWtlIHN1cmUgb25seSB0aGUgR1NQIGNv bnN0cnVjdG9yIHRyaWVzIHRvIGluaXRpYWxpemUgZ3NwX2xvZ3MuPC9zcGFuPjwvZGl2Pg0KPGRp diBzdHlsZT0iY2FyZXQtY29sb3I6IHJnYigwLCAwLCAwKTsgY29sb3I6IHJnYigwLCAwLCAwKTsg Zm9udC1mYW1pbHk6IFVidW50dTsgZm9udC1zaXplOiAxNC42NjY2NjdweDsgZm9udC1zdHlsZTog bm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdlaWdodDogNDAwOyBsZXR0 ZXItc3BhY2luZzogbm9ybWFsOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC10cmFuc2Zvcm06IG5v bmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdvcmQtc3BhY2luZzogMHB4OyAtd2Via2l0LXRhcC1o aWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTsgLXdlYmtpdC10ZXh0LXN0cm9rZS13 aWR0aDogMHB4OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7Ij4NCjxicj4NCjwvZGl2Pg0KPGJsb2Nr cXVvdGUgdHlwZT0iY2l0ZSIgc3R5bGU9Im1hcmdpbjowIDAgMCAuOGV4OyBib3JkZXItbGVmdDoy cHggIzcyOWZjZiBzb2xpZDtwYWRkaW5nLWxlZnQ6MWV4Ij4NCjxibG9ja3F1b3RlIHR5cGU9ImNp dGUiIHN0eWxlPSJtYXJnaW46MCAwIDAgLjhleDsgYm9yZGVyLWxlZnQ6MnB4ICM3MjlmY2Ygc29s aWQ7cGFkZGluZy1sZWZ0OjFleCI+DQo8cHJlPjxicj48L3ByZT4NCjxwcmU+KyNpZmRlZiBDT05G SUdfREVCVUdfRlM8L3ByZT4NCjxwcmU+Ky8qKjwvcHJlPg0KPHByZT4rICogZ3NwX2xvZ3MgLSBs aXN0IG9mIEdTUCBkZWJ1Z2ZzIGxvZ2dpbmcgYnVmZmVyczwvcHJlPg0KPHByZT4rICovPC9wcmU+ DQo8cHJlPitMSVNUX0hFQUQoZ3NwX2xvZ3MpOzwvcHJlPg0KPC9ibG9ja3F1b3RlPg0KPHByZT48 YnI+PC9wcmU+DQo8cHJlPkJldHRlciB3cmFwIHRoaXMgaW4gYSBOVklGX0xPR1NfREVDTEFSRSgp IG1hY3JvLjwvcHJlPg0KPC9ibG9ja3F1b3RlPg0KPGRpdj48YnI+DQo8L2Rpdj4NCjxkaXY+TGlr ZSB0aGlzPzwvZGl2Pg0KPGRpdj48YnI+DQo8L2Rpdj4NCjxkaXY+I2RlZmluZSBOVklGX0xPR1Nf REVDTEFSRSh4KSBMSVNUX0hFQUQoeCk8L2Rpdj4NCjxkaXY+PGJyPg0KPC9kaXY+DQo8ZGl2PkRv IHlvdSB3YW50IGEgbWFjcm8gdG8gcmVwbGFjZSB0aGlzIGFzIHdlbGw/PC9kaXY+DQo8ZGl2Pjxi cj4NCjwvZGl2Pg0KPGRpdj5leHRlcm4gc3RydWN0IGxpc3RfaGVhZCBnc3BfbG9nczs8L2Rpdj4N CjxkaXY+PGJyPg0KPC9kaXY+DQo8YmxvY2txdW90ZSB0eXBlPSJjaXRlIiBzdHlsZT0ibWFyZ2lu OjAgMCAwIC44ZXg7IGJvcmRlci1sZWZ0OjJweCAjNzI5ZmNmIHNvbGlkO3BhZGRpbmctbGVmdDox ZXgiPg0KPHByZT48YnI+PC9wcmU+DQo8YmxvY2txdW90ZSB0eXBlPSJjaXRlIiBzdHlsZT0ibWFy Z2luOjAgMCAwIC44ZXg7IGJvcmRlci1sZWZ0OjJweCAjNzI5ZmNmIHNvbGlkO3BhZGRpbmctbGVm dDoxZXgiPg0KPHByZT4rI2VuZGlmPC9wcmU+DQo8cHJlPis8L3ByZT4NCjxwcmU+IHN0YXRpYyB1 NjQ8L3ByZT4NCjxwcmU+IG5vdXZlYXVfcGNpX25hbWUoc3RydWN0IHBjaV9kZXYgKnBkZXYpPC9w cmU+DQo8cHJlPiB7PC9wcmU+DQo8cHJlPkBAIC0xNDQ2LDYgKzE0NTQsMTcgQEAgbm91dmVhdV9k cm1fZXhpdCh2b2lkKTwvcHJlPg0KPHByZT4gI2VuZGlmPC9wcmU+DQo8cHJlPiAJaWYgKElTX0VO QUJMRUQoQ09ORklHX0RSTV9OT1VWRUFVX1NWTSkpPC9wcmU+DQo8cHJlPiAJCW1tdV9ub3RpZmll cl9zeW5jaHJvbml6ZSgpOzwvcHJlPg0KPHByZT4rPC9wcmU+DQo8cHJlPisjaWZkZWYgQ09ORklH X0RFQlVHX0ZTPC9wcmU+DQo8cHJlPisJaWYgKCFsaXN0X2VtcHR5KCZhbXA7Z3NwX2xvZ3MpKSB7 PC9wcmU+DQo8cHJlPisJCXN0cnVjdCBudmlmX2xvZyAqbG9nLCAqbjs8L3ByZT4NCjxwcmU+Kzwv cHJlPg0KPHByZT4rCQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUobG9nLCBuLCAmYW1wO2dzcF9s b2dzLCBoZWFkKSB7PC9wcmU+DQo8cHJlPisJCQkvKiBzaHV0ZG93bigpIHNob3VsZCBhbHNvIGRl bGV0ZSB0aGUgbG9nIGVudHJ5ICovPC9wcmU+DQo8cHJlPisJCQlsb2ctJmd0O3NodXRkb3duKGxv Zyk7PC9wcmU+DQo8cHJlPisJCX08L3ByZT4NCjxwcmU+Kwl9PC9wcmU+DQo8cHJlPisjZW5kaWY8 L3ByZT4NCjwvYmxvY2txdW90ZT4NCjxwcmU+PGJyPjwvcHJlPg0KPHByZT5QbGVhc2UgbW92ZSB0 aGlzIHRvIGluY2x1ZGUvbnZpZi9sb2cuaCBhcyBudmlmX2xvZ19zaHV0ZG93bigpLjwvcHJlPg0K PC9ibG9ja3F1b3RlPg0KPGRpdj48YnI+DQo8L2Rpdj4NCjxkaXY+U3VyZSwgYnV0IEkgZG9uJ3Qg dW5kZXJzdGFuZCB3aHkuICZuYnNwO1RoaXMgY29kZSB3aWxsIG9ubHkgYmUgY2FsbGVkIGluIG5v dXZlYXVfZHJtX2V4aXQoKS48L2Rpdj4NCjxkaXY+PGJyPg0KPC9kaXY+DQo8YmxvY2txdW90ZSB0 eXBlPSJjaXRlIiBzdHlsZT0ibWFyZ2luOjAgMCAwIC44ZXg7IGJvcmRlci1sZWZ0OjJweCAjNzI5 ZmNmIHNvbGlkO3BhZGRpbmctbGVmdDoxZXgiPg0KPGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSIgc3R5 bGU9Im1hcmdpbjowIDAgMCAuOGV4OyBib3JkZXItbGVmdDoycHggIzcyOWZjZiBzb2xpZDtwYWRk aW5nLWxlZnQ6MWV4Ij4NCjxwcmU+Ky8qKjwvcHJlPg0KPHByZT4rICogcjUzNV9nc3BfbXNnX2xp Ym9zX3ByaW50IC0gY2FwdHVyZSBsb2cgbWVzc2FnZSBmcm9tIHRoZSBQTVU8L3ByZT4NCjxwcmU+ KyAqIEBwcml2OiBnc3AgcG9pbnRlcjwvcHJlPg0KPHByZT4rICogQGZuOiBmdW5jdGlvbiBudW1i ZXIgKGlnbm9yZWQpPC9wcmU+DQo8cHJlPisgKiBAcmVwdjogcG9pbnRlciB0byBsaWJvcyBwcmlu dCBSUEM8L3ByZT4NCjxwcmU+KyAqIEByZXBjOiBtZXNzYWdlIHNpemU8L3ByZT4NCjxwcmU+KyAq PC9wcmU+DQo8cHJlPisgKiBTZWUgX2tnc3BScGNVY29kZUxpYm9zUHJpbnQ8L3ByZT4NCjwvYmxv Y2txdW90ZT4NCjxwcmU+PGJyPjwvcHJlPg0KPHByZT5XaGF0IGlzIHRoaXMgcmVmZXJlbmNlPzwv cHJlPg0KPC9ibG9ja3F1b3RlPg0KPGRpdj48YnI+DQo8L2Rpdj4NCjxkaXY+SXQncyBpbiBPcGVu Uk0uICZuYnNwO1ByZXR0eSBtdWNoIGFsbCBvZiB0aGUgJnF1b3Q7U2VlJnF1b3Q7IGNvbW1hbmRz IGFyZSByZWZlcmVuY2VzIHRvIHRoZSBjb3JyZXNwb25kaW5nIGZ1bmN0aW9uIGluIE9wZW5STSZx dW90Oy48L2Rpdj4NCjxkaXY+PGJyPg0KPC9kaXY+DQo8YmxvY2txdW90ZSB0eXBlPSJjaXRlIiBz dHlsZT0ibWFyZ2luOjAgMCAwIC44ZXg7IGJvcmRlci1sZWZ0OjJweCAjNzI5ZmNmIHNvbGlkO3Bh ZGRpbmctbGVmdDoxZXgiPg0KPHByZT48YnI+PC9wcmU+DQo8YmxvY2txdW90ZSB0eXBlPSJjaXRl IiBzdHlsZT0ibWFyZ2luOjAgMCAwIC44ZXg7IGJvcmRlci1sZWZ0OjJweCAjNzI5ZmNmIHNvbGlk O3BhZGRpbmctbGVmdDoxZXgiPg0KPHByZT4rICovPC9wcmU+DQo8cHJlPitzdGF0aWMgaW50IHI1 MzVfZ3NwX21zZ19saWJvc19wcmludCh2b2lkICpwcml2LCB1MzIgZm4sIHZvaWQgKnJlcHYsIHUz MiByZXBjKTwvcHJlPg0KPHByZT4rezwvcHJlPg0KPHByZT4rCXN0cnVjdCBudmttX2dzcCAqZ3Nw ID0gcHJpdjs8L3ByZT4NCjxwcmU+KwlzdHJ1Y3QgbnZrbV9zdWJkZXYgKnN1YmRldiA9ICZhbXA7 Z3NwLSZndDtzdWJkZXY7PC9wcmU+DQo8cHJlPisJc3RydWN0IHs8L3ByZT4NCjxwcmU+KwkJdTMy IHVjb2RlRW5nRGVzYzs8L3ByZT4NCjxwcmU+KwkJdTMyIGxpYm9zUHJpbnRCdWZTaXplOzwvcHJl Pg0KPHByZT4rCQl1OCBsaWJvc1ByaW50QnVmW107PC9wcmU+DQo8L2Jsb2NrcXVvdGU+DQo8cHJl Pjxicj48L3ByZT4NCjxwcmU+V2h5IGFyZSB0aG9zZSBjYW1lbENhc2U/IFBsZWFzZSB1c2Ugc25h a2VfY2FzZSBpbnN0ZWFkLjwvcHJlPg0KPC9ibG9ja3F1b3RlPg0KPGRpdj48YnI+DQo8L2Rpdj4N CjxkaXY+U3VyZS4gJm5ic3A7VGhleSBtYXRjaCB0aGUgbmFtZXMgZnJvbSBPcGVuUk0gKHNlZSBn X3JwYy1zdHJ1Y3R1cmVzLmgpLiAmbmJzcDtJJ2xsIGNoYW5nZSB0aGVtLCB0aG91Z2guICZuYnNw O1doZW4gSSBjb3B5IGEgc3RydWN0IGRpcmVjdGx5IGZyb20gT3BlblJNLCBJIHByZWZlciB0byBr ZWVwIGl0IGFzIGlkZW50aWNhbCBhcyBwb3NzaWJsZSB0byBtYWtlIGl0IGVhc2llciB0byBzZWUg dGhlIGNvbm5lY3Rpb24uPC9kaXY+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPGRpdj5JJ2xsIG1vdmUg dGhpcyB0byBhIGRpc3RpbmN0IHN0cnVjdCBhbmQgcmVuYW1lIHRoZSBmaWVsZHMuPC9kaXY+DQo8 ZGl2Pjxicj4NCjwvZGl2Pg0KPGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSIgc3R5bGU9Im1hcmdpbjow IDAgMCAuOGV4OyBib3JkZXItbGVmdDoycHggIzcyOWZjZiBzb2xpZDtwYWRkaW5nLWxlZnQ6MWV4 Ij4NCjxwcmU+PGJyPjwvcHJlPg0KPHByZT5BbHNvLCBwbGVhc2UgYWRkIGEgZmV3IG5vdGVzIG9u IHRoZSBmaWVsZHMgR1NQIHJldHVybnMgdG8gdXMgaGVyZS4gQWRtaXR0ZWRseSw8L3ByZT4NCjxw cmU+dHdvIG9mIHRob3NlIHNlZW0gcmF0aGVyIG9idmlvdXMgLSBhIGxvZyBidWZmZXIgYW5kIGEg c2l6ZSAtIGJ1dCBtYXliZSB3ZSBjYW48L3ByZT4NCjxwcmU+d3JpdGUgZG93biB3aGV0aGVyIHRo ZXJlIGlzIHNvbWUgbWF4aW11bSBvciBtaW5pbXVtIHNpemU/IENhbiB3ZSBnZXQgY2FsbGVkIHdp dGg8L3ByZT4NCjxwcmU+YSB6ZXJvLXNpemUgYnVmZmVyPzwvcHJlPg0KPHByZT48YnI+PC9wcmU+ DQo8cHJlPldoYXQgYWJvdXQgJ3Vjb2RlRW5nRGVzYyc/IFRoaXMgb25lIHNlZW1zIHRvIGJlaGF2 ZSBtb3JlIGxpa2UgYSByZWdpc3RlciB2YWx1ZSw8L3ByZT4NCjxwcmU+Y2FuIHdlIGRvY3VtZW50 IHRoZSAmcXVvdDtyZWdpc3RlciBsYXlvdXQmcXVvdDsgZm9yIHRoaXMgb25lPzwvcHJlPg0KPC9i bG9ja3F1b3RlPg0KPGRpdj48YnI+DQo8L2Rpdj4NCjxkaXY+SSd2ZSBhZGRlZCBzb21lIGRvY3Vt ZW50YXRpb24uICZuYnNwO0Jhc2ljYWxseSwgdGhlIGZpZWxkIGlzIGRpdmlkZWQgaW50byBhICZx dW90O2NsYXNzIElEJnF1b3Q7IGFuZCBhbiAmcXVvdDtpbnN0YW5jZSBJRCZxdW90Oy4gJm5ic3A7 SSdtIGd1ZXNzaW5nIHRoZSBpbnN0YW5jZSBJRCBpcyBqdXN0IGEgMC1iYXNlZCBpbmRleCBmb3Ig dGhlIGVuZ2luZS4gJm5ic3A7VGhlIGNsYXNzIElEIGlzIGp1c3Qgc29tZSBzZWVtaW5nbHkgcmFu ZG9tIG51bWJlciB0aGF0IGRpc3Rpbmd1aXNoZXMgdGhlIHZhcmlvdXMNCiBlbmdpbmVzLiAmbmJz cDtCdWlsZGluZyBSTSBpbnZvbHZlcyBhIGxvdCBvZiBwcmUtcHJvY2Vzc2luZyB3aXRoIGNvbmZp ZyBmaWxlcyB0byBnZW5lcmF0ZSBtdWNoIG9mIHRoZSBjb2RlIHRoYXQgaXMgY29tcGlsZWQsIGFu ZCB0aGVzZSBjbGFzcyBJRHMgYXJlIG9uZSBleGFtcGxlLjwvZGl2Pg0KPGRpdj48YnI+DQo8L2Rp dj4NCjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiIHN0eWxlPSJtYXJnaW46MCAwIDAgLjhleDsgYm9y ZGVyLWxlZnQ6MnB4ICM3MjlmY2Ygc29saWQ7cGFkZGluZy1sZWZ0OjFleCI+DQo8YmxvY2txdW90 ZSB0eXBlPSJjaXRlIiBzdHlsZT0ibWFyZ2luOjAgMCAwIC44ZXg7IGJvcmRlci1sZWZ0OjJweCAj NzI5ZmNmIHNvbGlkO3BhZGRpbmctbGVmdDoxZXgiPg0KPHByZT4rCWlfc2l6ZV93cml0ZShkX2lu b2RlKGRpcl9pbml0KSwgZ3NwLSZndDtibG9iX2luaXQuc2l6ZSk7PC9wcmU+DQo8cHJlPisJaV9z aXplX3dyaXRlKGRfaW5vZGUoZGlyX2ludHIpLCBnc3AtJmd0O2Jsb2JfaW50ci5zaXplKTs8L3By ZT4NCjxwcmU+KwlpX3NpemVfd3JpdGUoZF9pbm9kZShkaXJfcm0pLCBnc3AtJmd0O2Jsb2Jfcm0u c2l6ZSk7PC9wcmU+DQo8cHJlPisJaV9zaXplX3dyaXRlKGRfaW5vZGUoZGlyX3BtdSksIGdzcC0m Z3Q7YmxvYl9wbXUuc2l6ZSk7PC9wcmU+DQo8cHJlPis8L3ByZT4NCjxwcmU+KwlyNTM1X2dzcF9t c2dfbnRmeV9hZGQoZ3NwLCAweDAwMDAxMDBDLCByNTM1X2dzcF9tc2dfbGlib3NfcHJpbnQsIGdz cCk7PC9wcmU+DQo8L2Jsb2NrcXVvdGU+DQo8cHJlPjxicj48L3ByZT4NCjxwcmU+UGxlYXNlLCBk b24ndCBhZGQgcmFuZG9tIG1hZ2ljIHZhbHVlcy4gQWRkIGEgdXNlZnVsIGV4cGxhbmF0aW9uIGlu c3RlYWQgdGhhdDwvcHJlPg0KPHByZT5hbHNvIG5ldyBjb250cmlidXRvcnMgYXJlIGFibGUgdG8g bWFrZSBzZW5zZSBvZi48L3ByZT4NCjwvYmxvY2txdW90ZT4NCjxkaXY+PGJyPg0KPC9kaXY+DQo8 ZGl2PkFoLCBJIGNhbiBqdXN0IHVzZSB0aGUgbWFjcm8gdGhhdCdzIGFscmVhZHkgZGVmaW5lZCBp biBycGNfZ2xvYmFsX2VudW1zLmguPC9kaXY+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPGJsb2NrcXVv dGUgdHlwZT0iY2l0ZSIgc3R5bGU9Im1hcmdpbjowIDAgMCAuOGV4OyBib3JkZXItbGVmdDoycHgg IzcyOWZjZiBzb2xpZDtwYWRkaW5nLWxlZnQ6MWV4Ij4NCjxwcmU+PGJyPjwvcHJlPg0KPGJsb2Nr cXVvdGUgdHlwZT0iY2l0ZSIgc3R5bGU9Im1hcmdpbjowIDAgMCAuOGV4OyBib3JkZXItbGVmdDoy cHggIzcyOWZjZiBzb2xpZDtwYWRkaW5nLWxlZnQ6MWV4Ij4NCjxwcmU+KzwvcHJlPg0KPHByZT4r CW52a21fZGVidWcoJmFtcDtnc3AtJmd0O3N1YmRldiwgJnF1b3Q7Y3JlYXRlZCBkZWJ1Z2ZzIEdT UC1STSBsb2dnaW5nIGVudHJpZXNcbiZxdW90Oyk7PC9wcmU+DQo8cHJlPis8L3ByZT4NCjxwcmU+ KwlpZiAoa2VlcF9nc3BfbG9nZ2luZykgezwvcHJlPg0KPHByZT4rCQludmttX3dhcm4oJmFtcDtn c3AtJmd0O3N1YmRldiw8L3ByZT4NCjxwcmU+KwkJCSAgJnF1b3Q7bG9nZ2luZyBidWZmZXJzIHdp bGwgYmUgcmV0YWluZWQgb24gZmFpbHVyZVxuJnF1b3Q7KTs8L3ByZT4NCjxwcmU+Kwl9PC9wcmU+ DQo8cHJlPis8L3ByZT4NCjxwcmU+KwlyZXR1cm47PC9wcmU+DQo8cHJlPis8L3ByZT4NCjxwcmU+ K2Vycm9yOjwvcHJlPg0KPHByZT4rCWRlYnVnZnNfcmVtb3ZlKGRpcl9pbml0KTs8L3ByZT4NCjxw cmU+KwlkZWJ1Z2ZzX3JlbW92ZShkaXJfaW50cik7PC9wcmU+DQo8cHJlPisJZGVidWdmc19yZW1v dmUoZGlyX3JtKTs8L3ByZT4NCjxwcmU+K308L3ByZT4NCjxwcmU+KzwvcHJlPg0KPHByZT4rI2Vu ZGlmPC9wcmU+DQo8cHJlPis8L3ByZT4NCjxwcmU+IHN0YXRpYyBpbmxpbmUgdTY0PC9wcmU+DQo8 cHJlPiByNTM1X2dzcF9saWJvc19pZDgoY29uc3QgY2hhciAqbmFtZSk8L3ByZT4NCjxwcmU+IHs8 L3ByZT4NCjxwcmU+QEAgLTIxMTIsNyArMjI3NywxMSBAQCBzdGF0aWMgdm9pZCBjcmVhdGVfcHRl X2FycmF5KHU2NCAqcHRlcywgZG1hX2FkZHJfdCBhZGRyLCBzaXplX3Qgc2l6ZSk8L3ByZT4NCjxw cmU+ICAqIHdyaXR0ZW4gdG8gZGlyZWN0bHkgYnkgR1NQLVJNIGFuZCBjYW4gYmUgYW55IG11bHRp cGxlIG9mIEdTUF9QQUdFX1NJWkUuPC9wcmU+DQo8cHJlPiAgKjwvcHJlPg0KPHByZT4gICogVGhl IHBoeXNpY2FsIGFkZHJlc3MgbWFwIGZvciB0aGUgbG9nIGJ1ZmZlciBpcyBzdG9yZWQgaW4gdGhl IGJ1ZmZlcjwvcHJlPg0KPHByZT4tICogaXRzZWxmLCBzdGFydGluZyB3aXRoIG9mZnNldCAxLiBP ZmZzZXQgMCBjb250YWlucyB0aGUgJnF1b3Q7cHV0JnF1b3Q7IHBvaW50ZXIuPC9wcmU+DQo8cHJl PisgKiBpdHNlbGYsIHN0YXJ0aW5nIHdpdGggb2Zmc2V0IDEuIE9mZnNldCAwIGNvbnRhaW5zIHRo ZSAmcXVvdDtwdXQmcXVvdDsgcG9pbnRlciAocHApLjwvcHJlPg0KPHByZT4rICogSW5pdGlhbGx5 LCBwcCBpcyBlcXVhbCB0byAwLiAgSWYgdGhlIGJ1ZmZlciBoYXMgdmFsaWQgbG9nZ2luZyBkYXRh IGluIGl0LDwvcHJlPg0KPHByZT4rICogdGhlbiBwcCBwb2ludHMgdG8gaW5kZXggaW50byB0aGUg YnVmZmVyIHdoZXJlIHRoZSBuZXh0IGxvZ2dpbmcgZW50cnkgd2lsbDwvcHJlPg0KPHByZT4rICog YmUgd3JpdHRlbi4gIFRoZXJlZm9yZSwgdGhlIGxvZ2dpbmcgZGF0YSBpcyB2YWxpZCBpZjo8L3By ZT4NCjxwcmU+KyAqICAgMSAmbHQ7PSBwcCAmbHQ7IHNpemVvZihidWZmZXIpL3NpemVvZih1NjQp PC9wcmU+DQo8cHJlPiAgKjwvcHJlPg0KPHByZT4gICogVGhlIEdTUCBvbmx5IHVuZGVyc3RhbmRz IDRLIHBhZ2VzIChHU1BfUEFHRV9TSVpFKSwgc28gZXZlbiBpZiB0aGUga2VybmVsIGlzPC9wcmU+ DQo8cHJlPiAgKiBjb25maWd1cmVkIGZvciBhIGxhcmdlciBwYWdlIHNpemUgKGUuZy4gNjRLIHBh Z2VzKSwgd2UgbmVlZCB0byBnaXZlPC9wcmU+DQo8cHJlPkBAIC0yMTgzLDYgKzIzNTIsMTEgQEAg cjUzNV9nc3BfbGlib3NfaW5pdChzdHJ1Y3QgbnZrbV9nc3AgKmdzcCk8L3ByZT4NCjxwcmU+IAlh cmdzWzNdLnNpemUgPSBnc3AtJmd0O3JtYXJncy5zaXplOzwvcHJlPg0KPHByZT4gCWFyZ3NbM10u a2luZCA9IExJQk9TX01FTU9SWV9SRUdJT05fQ09OVElHVU9VUzs8L3ByZT4NCjxwcmU+IAlhcmdz WzNdLmxvYyAgPSBMSUJPU19NRU1PUllfUkVHSU9OX0xPQ19TWVNNRU07PC9wcmU+DQo8cHJlPis8 L3ByZT4NCjxwcmU+KyNpZmRlZiBDT05GSUdfREVCVUdfRlM8L3ByZT4NCjxwcmU+KwlyNTM1X2dz cF9saWJvc19kZWJ1Z2ZzX2luaXQoZ3NwKTs8L3ByZT4NCjxwcmU+KyNlbmRpZjwvcHJlPg0KPHBy ZT4rPC9wcmU+DQo8cHJlPiAJcmV0dXJuIDA7PC9wcmU+DQo8cHJlPiB9PC9wcmU+DQo8cHJlPiA8 L3ByZT4NCjxwcmU+QEAgLTI0OTMsNiArMjY2NywxODIgQEAgcjUzNV9nc3BfZHRvcl9md3Moc3Ry dWN0IG52a21fZ3NwICpnc3ApPC9wcmU+DQo8cHJlPiAJZ3NwLSZndDtmd3Mucm0gPSBOVUxMOzwv cHJlPg0KPHByZT4gfTwvcHJlPg0KPHByZT4gPC9wcmU+DQo8cHJlPisjaWZkZWYgQ09ORklHX0RF QlVHX0ZTPC9wcmU+DQo8cHJlPis8L3ByZT4NCjxwcmU+K3N0cnVjdCByNTM1X2dzcF9sb2cgezwv cHJlPg0KPHByZT4rCXN0cnVjdCBudmlmX2xvZyBsb2c7PC9wcmU+DQo8cHJlPis8L3ByZT4NCjxw cmU+KwkvKjwvcHJlPg0KPHByZT4rCSAqIExvZ2dpbmcgYnVmZmVycyBpbiBkZWJ1Z2ZzLiAgVGhl IHdyYXBwZXIgb2JqZWN0cyBuZWVkIHRvIHJlbWFpbjwvcHJlPg0KPHByZT4rCSAqIGluIG1lbW9y eSB1bnRpbCB0aGUgZGVudHJ5IGlzIGRlbGV0ZWQuPC9wcmU+DQo8cHJlPisJICovPC9wcmU+DQo8 cHJlPisJc3RydWN0IGRlbnRyeSAqZGVidWdmc19sb2dnaW5nX2Rpcjs8L3ByZT4NCjxwcmU+Kwlz dHJ1Y3QgZGVidWdmc19ibG9iX3dyYXBwZXIgYmxvYl9pbml0OzwvcHJlPg0KPHByZT4rCXN0cnVj dCBkZWJ1Z2ZzX2Jsb2Jfd3JhcHBlciBibG9iX2ludHI7PC9wcmU+DQo8cHJlPisJc3RydWN0IGRl YnVnZnNfYmxvYl93cmFwcGVyIGJsb2Jfcm07PC9wcmU+DQo8cHJlPisJc3RydWN0IGRlYnVnZnNf YmxvYl93cmFwcGVyIGJsb2JfcG11OzwvcHJlPg0KPHByZT4rfTs8L3ByZT4NCjxwcmU+KzwvcHJl Pg0KPHByZT4rLyoqPC9wcmU+DQo8cHJlPisgKiByNTM1X2RlYnVnZnNfc2h1dGRvd24gLSBkZWxl dGUgR1NQLVJNIGxvZ2dpbmcgYnVmZmVycyBmb3Igb25lIEdQVTwvcHJlPg0KPHByZT4rICogQF9s b2c6IG52aWZfbG9nIHN0cnVjdCBmb3IgdGhpcyBHUFU8L3ByZT4NCjxwcmU+KyAqPC9wcmU+DQo8 cHJlPisgKiBDYWxsZWQgd2hlbiB0aGUgZHJpdmVyIGlzIHNodXR0aW5nIGRvd24sIHRvIGNsZWFu IHVwIHRoZSByZXRhaW5lZCBHU1AtUk08L3ByZT4NCjxwcmU+KyAqIGxvZ2dpbmcgYnVmZmVycy48 L3ByZT4NCjxwcmU+KyAqLzwvcHJlPg0KPHByZT4rc3RhdGljIHZvaWQgcjUzNV9kZWJ1Z2ZzX3No dXRkb3duKHN0cnVjdCBudmlmX2xvZyAqX2xvZyk8L3ByZT4NCjxwcmU+K3s8L3ByZT4NCjxwcmU+ KwlzdHJ1Y3QgcjUzNV9nc3BfbG9nICpsb2cgPSBjb250YWluZXJfb2YoX2xvZywgc3RydWN0IHI1 MzVfZ3NwX2xvZywgbG9nKTs8L3ByZT4NCjxwcmU+KzwvcHJlPg0KPHByZT4rCWRlYnVnZnNfcmVt b3ZlKGxvZy0mZ3Q7ZGVidWdmc19sb2dnaW5nX2Rpcik7PC9wcmU+DQo8cHJlPis8L3ByZT4NCjxw cmU+KwlrZnJlZShsb2ctJmd0O2Jsb2JfaW5pdC5kYXRhKTs8L3ByZT4NCjxwcmU+KwlrZnJlZShs b2ctJmd0O2Jsb2JfaW50ci5kYXRhKTs8L3ByZT4NCjxwcmU+KwlrZnJlZShsb2ctJmd0O2Jsb2Jf cm0uZGF0YSk7PC9wcmU+DQo8cHJlPisJa2ZyZWUobG9nLSZndDtibG9iX3BtdS5kYXRhKTs8L3By ZT4NCjxwcmU+KzwvcHJlPg0KPHByZT4rCS8qIFdlIGFsc28gbmVlZCB0byBkZWxldGUgdGhlIGxp c3Qgb2JqZWN0ICovPC9wcmU+DQo8cHJlPisJa2ZyZWUobG9nKTs8L3ByZT4NCjxwcmU+K308L3By ZT4NCjxwcmU+KzwvcHJlPg0KPHByZT4rLyoqPC9wcmU+DQo8cHJlPisgKiBpc19lbXB0eSAtIHJl dHVybiB0cnVlIGlmIHRoZSBsb2dnaW5nIGJ1ZmZlciB3YXMgbmV2ZXIgd3JpdHRlbiB0bzwvcHJl Pg0KPHByZT4rICogQGI6IGJsb2Igd3JhcHBlciB3aXRoIC0mZ3Q7ZGF0YSBmaWVsZCBwb2ludGlu ZyB0byBsb2dnaW5nIGJ1ZmZlcjwvcHJlPg0KPHByZT4rICo8L3ByZT4NCjxwcmU+KyAqIFRoZSBm aXJzdCA2NC1iaXQgZmllbGQgb2YgbG9naW5pdCwgYW5kIGxvZ2ludHIsIGFuZCBsb2dybSBpcyB0 aGUgJ3B1dCc8L3ByZT4NCjxwcmU+KyAqIHBvaW50ZXIsIGFuZCBpdCBpcyBpbml0aWFsaXplZCB0 byAwLiAgSWYgdGhlIHBvaW50ZXIgaXMgc3RpbGwgMCB3aGVuPC9wcmU+DQo8L2Jsb2NrcXVvdGU+ DQo8cHJlPjxicj48L3ByZT4NCjxwcmU+RG91YmxlIHNwYWNlLiZuYnNwOzwvcHJlPg0KPC9ibG9j a3F1b3RlPg0KPGRpdj48YnI+DQo8L2Rpdj4NCjxkaXY+VWgsIGFyZSB5b3Ugb25seSBub3cgbm90 aWNpbmcgdGhhdCBJIGFsd2F5cyBwdXQgdHdvIHNwYWNlcyBhZnRlciBhICZxdW90Oy4mcXVvdDs/ ICZuYnNwO0kgZG8gdGhhdCBldmVyeXdoZXJlLjwvZGl2Pg0KPGRpdj48YnI+DQo8L2Rpdj4NCjxi bG9ja3F1b3RlIHR5cGU9ImNpdGUiIHN0eWxlPSJtYXJnaW46MCAwIDAgLjhleDsgYm9yZGVyLWxl ZnQ6MnB4ICM3MjlmY2Ygc29saWQ7cGFkZGluZy1sZWZ0OjFleCI+DQo8cHJlPkFsc28sIHdoYXQg d291bGQgJ3B1dCcgcG9pbnQgdG8gaW4gY2FzZSBpdCdzIG5vbi16ZXJvPyBJcyBpdCBhPC9wcmU+ DQo8cHJlPnBvaW50ZXIgYWN0dWFsbHksIG9yIGlzIGl0IGp1c3Qgc29tZSBraW5kIG9mIGNvdW50 ZXI/PC9wcmU+DQo8L2Jsb2NrcXVvdGU+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPGRpdj5JdCdzIGNh bGxlZCB0aGUgJnF1b3Q7cHV0IHBvaW50ZXImcXVvdDsgaW50ZXJuYWxseSwgYnV0IGl0J3MgYWN0 dWFsbHkgYSBkd29yZC1iYXNlZCBpbmRleCBpbnRvIHRoZSBidWZmZXIuICZuYnNwO1NvIGEgdmFs dWUgb2YgMSBpcyBhbiBpZmZzZXQgb2YgNCwgYSB2YWx1ZSBvZiAyIGlzIGFuIG9mZnNldCBvZiA4 LCBldGMuPC9kaXY+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPGRpdj5JJ2xsIHVwZGF0ZSB0aGUgZG9j cy48L2Rpdj4NCjxkaXY+PGJyPg0KPC9kaXY+DQo8YmxvY2txdW90ZSB0eXBlPSJjaXRlIiBzdHls ZT0ibWFyZ2luOjAgMCAwIC44ZXg7IGJvcmRlci1sZWZ0OjJweCAjNzI5ZmNmIHNvbGlkO3BhZGRp bmctbGVmdDoxZXgiPg0KPHByZT48YnI+PC9wcmU+DQo8YmxvY2txdW90ZSB0eXBlPSJjaXRlIiBz dHlsZT0ibWFyZ2luOjAgMCAwIC44ZXg7IGJvcmRlci1sZWZ0OjJweCAjNzI5ZmNmIHNvbGlkO3Bh ZGRpbmctbGVmdDoxZXgiPg0KPHByZT4rICogR1NQLVJNIGlzIHNodXQgZG93biwgdGhhdCBtZWFu cyB0aGF0IGl0IHdhcyBuZXZlciB3cml0dGVuIGRvLCBzbyBpdDwvcHJlPg0KPC9ibG9ja3F1b3Rl Pg0KPHByZT48YnI+PC9wcmU+DQo8cHJlPiZxdW90O3dyaXR0ZW4gdG8mcXVvdDs8L3ByZT4NCjwv YmxvY2txdW90ZT4NCjxkaXY+PGJyPg0KPC9kaXY+DQo8ZGl2PkZpeGVkLCB0aGFua3MuPC9kaXY+ DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSIgc3R5bGU9Im1hcmdp bjowIDAgMCAuOGV4OyBib3JkZXItbGVmdDoycHggIzcyOWZjZiBzb2xpZDtwYWRkaW5nLWxlZnQ6 MWV4Ij4NCjxwcmU+PGJyPjwvcHJlPg0KPGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSIgc3R5bGU9Im1h cmdpbjowIDAgMCAuOGV4OyBib3JkZXItbGVmdDoycHggIzcyOWZjZiBzb2xpZDtwYWRkaW5nLWxl ZnQ6MWV4Ij4NCjxwcmU+IHZvaWQ8L3ByZT4NCjxwcmU+IHI1MzVfZ3NwX2R0b3Ioc3RydWN0IG52 a21fZ3NwICpnc3ApPC9wcmU+DQo8cHJlPiB7PC9wcmU+DQo8cHJlPkBAIC0yNTE0LDYgKzI4NjQs MTQgQEAgcjUzNV9nc3BfZHRvcihzdHJ1Y3QgbnZrbV9nc3AgKmdzcCk8L3ByZT4NCjxwcmU+IAlu dmttX2dzcF9tZW1fZHRvcigmYW1wO2dzcC0mZ3Q7cm1hcmdzKTs8L3ByZT4NCjxwcmU+IAludmtt X2dzcF9tZW1fZHRvcigmYW1wO2dzcC0mZ3Q7d3ByX21ldGEpOzwvcHJlPg0KPHByZT4gCW52a21f Z3NwX21lbV9kdG9yKCZhbXA7Z3NwLSZndDtzaG0ubWVtKTs8L3ByZT4NCjxwcmU+KzwvcHJlPg0K PHByZT4rI2lmZGVmIENPTkZJR19ERUJVR19GUzwvcHJlPg0KPHByZT4rCXI1MzVfZ3NwX3JldGFp bl9sb2dnaW5nKGdzcCk7PC9wcmU+DQo8cHJlPis8L3ByZT4NCjxwcmU+KwlrZnJlZShnc3AtJmd0 O2Jsb2JfcG11LmRhdGEpOzwvcHJlPg0KPHByZT4rCWdzcC0mZ3Q7YmxvYl9wbXUuZGF0YSA9IE5V TEw7PC9wcmU+DQo8L2Jsb2NrcXVvdGU+DQo8cHJlPjxicj48L3ByZT4NCjxwcmU+UGxlYXNlIG1v dmUgdGhpcyB0byByNTM1X2dzcF9saWJvc19kZWJ1Z2ZzX2ZpbmkoKSB0byBtYWtlIGl0IGEgYml0 IG1vcmUgb2J2aW91czwvcHJlPg0KPHByZT53aHkgdGhpcyBuZWVkcyB0byBiZSBjbGVhbmVkIHVw IGhlcmUuPC9wcmU+DQo8L2Jsb2NrcXVvdGU+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPGRpdj5TbyBm aXJzdCwgSSBtYWRlIGEgbWlzdGFrZSwgYW5kIHRoZSAjaWZkZWYgaXMgb25seSBzdXBwb3NlZCB0 byBiZSBhcm91bmQgdGhlIGNhbGwgdG8gcjUzNV9nc3BfcmV0YWluX2xvZ2dpbmcoKS48L2Rpdj4N CjxkaXY+PGJyPg0KPC9kaXY+DQo8ZGl2PlNlY29uZCwgYXJlIHlvdSBzYXlpbmcgeW91IHdhbnQg dGhpcz88L2Rpdj4NCjxkaXY+PGJyPg0KPC9kaXY+DQo8ZGl2Pi8qKiZuYnNwOzwvZGl2Pg0KPGRp dj4mbmJzcDsqJm5ic3A7PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTQuNjY2NjY3cHg7Ij5yNTM1 X2dzcF9saWJvc19kZWJ1Z2ZzX2ZpbmkgLSByZXRyYWluIGRlYnVnZnMgYnVmZmVycyBpZiBuZWNl c3Nhcnk8L3NwYW4+PC9kaXY+DQo8ZGl2PiZuYnNwOyo8L2Rpdj4NCjxkaXY+Jm5ic3A7KiBibGEg YmxhIHNvbWUgdGV4dCBhYm91dCB3aHkgd2UncmUgZG9pbmcgdGhpczwvZGl2Pg0KPGRpdj4mbmJz cDsqLzwvZGl2Pg0KPGRpdj5zdGF0aWMgdm9pZCByNTM1X2dzcF9saWJvc19kZWJ1Z2ZzX2Zpbmko c3RydWN0IG52a21fZ3NwIF9fbWF5YmVfdW51c2VkICpnc3ApPC9kaXY+DQo8ZGl2Pns8L2Rpdj4N CjxkaXY+I2lmZGVmIENPTkZJR19ERUJVR19GUzwvZGl2Pg0KPGRpdj48c3BhbiBjbGFzcz0iQXBw bGUtdGFiLXNwYW4iIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPjwvc3Bhbj5yNTM1X2dzcF9yZXRh aW5fbG9nZ2luZyhnc3ApOzwvZGl2Pg0KPGRpdj4jZW5kaWY8L2Rpdj4NCjxkaXY+fTwvZGl2Pg0K PGRpdj48YnI+DQo8L2Rpdj4NCjxkaXY+PGJyPg0KPC9kaXY+DQo8ZGl2PjxzcGFuPjwvc3Bhbj48 L2Rpdj4NCjwvYm9keT4NCjwvaHRtbD4NCg== --_000_dff9b893cd9499ac41b7835ae5489eb44435f616camelnvidiacom_--