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 118EA109E527 for ; Wed, 25 Mar 2026 22:43:40 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id B64B810E02D; Wed, 25 Mar 2026 22:43:39 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="Ux1aZo5T"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.14]) by gabe.freedesktop.org (Postfix) with ESMTPS id 856C610E02D for ; Wed, 25 Mar 2026 22:43:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1774478618; x=1806014618; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=IJZtRH0YXn1pWe5FvGlmqmQ/gogus3Gc+ms9HOpjZHM=; b=Ux1aZo5Tzyu1BG5m45ovtGfI53X1k07+slyXS2logNLdSOz/VKvnmVHa 7EN2wxMfHpKAVed9G1CdFHQ5uzqs5ZpK2+DQtkljelyTEHz5fKJ6dPQ7l O40THG58/qIHqYI1bdMkmjErz8k7Isu6rMRn+RnpHVxdQvkJxwP06WA38 LYrX3AfsU9nwVzcY13GaY1tcZWqe6BFmYghJHWh2JlLVr5qc5/j4nkLM/ bJDsl8Sl0gnqiFkyfO192kDpoHhaMtIrSHHLZmfZQCzAvc3XOKrm1+pX3 YKttG5k1sU43VoUAsnHzhEKu+n0OcQZlRlswUnYrBR+I7h2rOHjPhMaOV A==; X-CSE-ConnectionGUID: 99xsu0xjRRe8OYYXcTNWKw== X-CSE-MsgGUID: whrN7LpkRtmL9ewJYFd9DA== X-IronPort-AV: E=McAfee;i="6800,10657,11740"; a="75597207" X-IronPort-AV: E=Sophos;i="6.23,140,1770624000"; d="scan'208";a="75597207" Received: from orviesa001.jf.intel.com ([10.64.159.141]) by fmvoesa108.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Mar 2026 15:43:38 -0700 X-CSE-ConnectionGUID: CxYhCtiYQ3qeIb2fPbTAIA== X-CSE-MsgGUID: +sviOXllTpSQecvrnEodXA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.23,140,1770624000"; d="scan'208";a="262739411" Received: from fmsmsx901.amr.corp.intel.com ([10.18.126.90]) by orviesa001.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Mar 2026 15:43:39 -0700 Received: from FMSMSX903.amr.corp.intel.com (10.18.126.92) by fmsmsx901.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37; Wed, 25 Mar 2026 15:43:37 -0700 Received: from fmsedg903.ED.cps.intel.com (10.1.192.145) by FMSMSX903.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37 via Frontend Transport; Wed, 25 Mar 2026 15:43:37 -0700 Received: from CY7PR03CU001.outbound.protection.outlook.com (40.93.198.42) by edgegateway.intel.com (192.55.55.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37; Wed, 25 Mar 2026 15:43:36 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=QeQoOH3rOCWqQ9uU6wUcD0mSwrx0jkf7u7+5cQY5d+MNeYjlYuea6TKhoWxAGnYSMXLHDlbM0X+VYykhixDkGIkUbez7f+Zt2en4gWQOtPiZxAVDa7ZP5mMq1Pju1ujurqG7dB1PXEvaUhurncLNrAnMkTncZrrI2OA45NbJl4GKclq4sEUgCUGhbuJcTFkoY+bR67TTLoFFk81tl0oGmu/8md3L8cn17dcC3WzXvuccNrkt0siZua4U2jwDPNk5vu0/1/B238UCOZYwj8ibFxGFSfSKKIAZoCyVdS6oSgDxkg+OVpJD7zr7kbDRoHFoKDFlM8hy+OHli3U2b8fqXQ== 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=IJZtRH0YXn1pWe5FvGlmqmQ/gogus3Gc+ms9HOpjZHM=; b=Q7kJnbaGXE2JEhS8DpaCZ8425QUPpLnZWryf9q9S2zp2qUcK0jgTIxr4lVKWJdvLLHIMdCCLSl/Keb+41W567FauRifMdVBTvflBZ7/LiAyh5KPGnVJMU64qbofdWde5Pqc4hbFhl9cpjzEexTd8AA567mGpzNAQBucQSFJuz4W3h3NYkwx4azBcDsh4uJsGkTWIPtJmkMTM/cTTM8P5bpDETJ+1csWV17p9Ukh4uJqD9aWMn69fyHFEzKpm89SYVkyX/rNohfxQK/YBCcTdnSHv+pz7GOS+/fi/lEaNbtssWaCT0m4XQgmLYskJxbXtculPzzi3EGd1APgDY5C34w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from DM8PR11MB5573.namprd11.prod.outlook.com (2603:10b6:8:3b::7) by SN7PR11MB7996.namprd11.prod.outlook.com (2603:10b6:806:2e3::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Wed, 25 Mar 2026 22:43:33 +0000 Received: from DM8PR11MB5573.namprd11.prod.outlook.com ([fe80::6a14:6aa3:4339:4415]) by DM8PR11MB5573.namprd11.prod.outlook.com ([fe80::6a14:6aa3:4339:4415%5]) with mapi id 15.20.9769.004; Wed, 25 Mar 2026 22:43:33 +0000 From: "Summers, Stuart" To: "Brost, Matthew" CC: "intel-xe@lists.freedesktop.org" , "Yang, Fei" Subject: Re: [PATCH] drm/xe: Wait for HW clearance before issuing the next TLB inval. Thread-Topic: [PATCH] drm/xe: Wait for HW clearance before issuing the next TLB inval. Thread-Index: AQHctmSEO5zpufOzFUqgugTO0yAsGLWzXqSAgAav+ICABCFYAIAAA8mAgAABh4CAAANHgIAAKLOAgAE+xwCAADjEAIAABvaAgAADjgCAAAGFgA== Date: Wed, 25 Mar 2026 22:43:33 +0000 Message-ID: <97dd20a9773d9588e2e9d3a32d7fa395cd72c6e0.camel@intel.com> References: <6a481f4d814c4247dcb62929b72e153ab7905cc7.camel@intel.com> <702f79d4601bcf9dce128fe47422f24d830ffe6f.camel@intel.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=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM8PR11MB5573:EE_|SN7PR11MB7996:EE_ x-ms-office365-filtering-correlation-id: 5ddb46f7-8224-4abc-4d9e-08de8abff1c0 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|376014|366016|18002099003|56012099003|22082099003|38070700021; x-microsoft-antispam-message-info: H/jtZA1ENas3CStrHYxxufxEwPcK8wdpQSeK6QydI60ilUZtfYpG3rmcVhxAPxXkPyMLvMPnM3vTiboM5k8gbor5FOV3G5jgS9E/e5aK++bVUaKH5FzpdBaTdQVH/vx8P6AP0YiRF9yqi9v44iFQEO9yskvcGDEcQ67Y7xwesI+qFv0RC/piluwvy5lvnOptr54XOlAqZemgqKjusfPIjo+majB8KJM1W2TRNbKSDJojugZ8Nngak3st+YClZXSBM9XXRpDAdkZZQPkNsGhC2uzkcQh4uEUoZVNFDdNX0ivKKo19mvo7sna1K/X3ovPIwZvd1vSB9+09f29tH3QcMynHWOxCj6/iDr9n042N42lq291mQ+IZYwLI6PV9MgyDVlHC88uu3BMHMFGZjMQRr2rP9fAUTr/QTxkvX+BqFzkCUjjKm9DMFE/oZ0PsJVfFb8m6sBbDKeNhpmhm/DIzuF61UJXqQADLWWJ5hzjqKBmU0VpKf2aHnhTODxtYbXngfkPN3emw608igJsg+W7pNLjmrmUz48prJup9cfknJKjjW4+Xx0xFGCp4meK4rCxcTJ469lQlpL57N4tjpBOAHeYyc0Y5JNUmGjhjtMX+JxdmDADSTvxIwOfLqQIiMqzSk8Xi4GIW/nLKlLj/hFaem6dNm9AErC+pEPVKrONErOlAbSCHPEl7lRxi0ltEBHwttnr5PJR7J90QB/iuw0HxRLRFT5TVnF36kYj2FbSoFyuv67sYo16XifsJGll7gOaO x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM8PR11MB5573.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(376014)(366016)(18002099003)(56012099003)(22082099003)(38070700021); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WE9kYkU2WkNNeW5od3c3bGxaRnZBTU9pazVvRG0ybnFaODI5cEVDZ2g5Vjkx?= =?utf-8?B?cnBUdFlXZFBDdkRkc3c2UVBLVGNOZlpTL1UxQWpNaWRVbnNBUHN0SGJTVlBG?= =?utf-8?B?b2J2blhiTVJTNDU1cm5wMEtVWlhBc1FzOTNSeDd0SmlPMU9tK0p6L2VqWk9h?= =?utf-8?B?Z01FaXVtd3k2Uk9heTNyMjhjVUpBS013VmhoUDYzbGFlcEdIWGxpdFJ3Y0x2?= =?utf-8?B?WGIzVW82dFkwS1JQUUR3NWgrTi9Ub040VEtUZE9ZOUFDaTZnT0JBZTJLZ3c1?= =?utf-8?B?ME02U2lTU1pCM05pdS84Z3RVb2NYVDFDcFltOVRkWjRSSXovVlk5Vm15ZGFL?= =?utf-8?B?TkhZS20rQjdCZjlnWnRJTXJFUDBaNVRNSTEwampkaGRwaTI5MmNuUkQ5aUxH?= =?utf-8?B?RmthOGo0UVFSTzM5bVRiSUJxODJLUDZ1UjlRalVaUDhLRVJGRUttR1Q3d1Zn?= =?utf-8?B?bUNZY0UzazRwWE80YTZtTDJiQUtsQlBVWjRlYTBJdGdRVjFWNHREb0tKdjJ2?= =?utf-8?B?U0lrMlQ5d1JWMEhSWXhGVzdLUTdUSW15M1ZoRm1GQWc5UFhIc0lSZW40VlJV?= =?utf-8?B?NDExaXcyWjlNR0h5UGoyd2ZkS055YTJadXlJZWREYUtrbG1Sc2VvTFl0anFx?= =?utf-8?B?RDIweWhVNEtobVV1L0x0d1hLM2s0d1Z4MEdnbXgwWFg5UFJRMnRhTjYxOWhw?= =?utf-8?B?VnpEQjZSZWI1T2VLV2EzclRKODBpSGMzZjdYUFdHOFVwWVo1b0o3a0lTa3NO?= =?utf-8?B?d0NRUDVwa0RJTnJRcXpBd0xTWVptOVErSmYyeUtDVmxVNEM1NmFGajlDOEpU?= =?utf-8?B?VENLYjFlZzd6K09XSTZyNkUrc3RhcnIyMVc3OUJnNnpSN3dLRGR0QVJzaTA4?= =?utf-8?B?OEs0QldqVHNrRWxHODJ1Y2wwWVlvYUtZZ290eXZsbE12RWRrRExwRFU3dGxh?= =?utf-8?B?TEVCL0ZjZ3l5TlJYaG9FYVlxY1BVSDRZMElJMmJTWWRWWHpBL1lCZDZ5OUdk?= =?utf-8?B?MmVobDlOVk1XWFVSRjVzSndqRDIwVlk3aXpQZ055b1J6U2cwZTF2WWVKaWtu?= =?utf-8?B?eWdTb2F6YWE0MU5PVGxtbm5aM3Y5dmtZSnRqRk1aemhQcjNuTHFvUUZOVldT?= =?utf-8?B?TW9oV1VCSUlBYllVQ1Uvam1kdE9SUkZlempGNm5PZ0E1OE9Xd3lTRVI5SFpo?= =?utf-8?B?UG5wOUdPYlNVdXF4RDFDVnRRRnVxSDY4ZzMxU0dMZFljQ1dvWnB4dlZObjZj?= =?utf-8?B?N1ROQjNnWlpVQXFxWFFxTmljWjY1REFWU2sxTWtGcGRDTStFamFkak9TaTJm?= =?utf-8?B?WVVoREtFeVBGcnN1TGRPbjlpSmY5Y3dTcFEvMkZwQUV0dW1kejJqb0cvNkdu?= =?utf-8?B?N1hoaCtoTVNCSjhyYVlEbStxSHJKL084T3BoZ2ZVaDRVUFhWNVJtMmVNNEpu?= =?utf-8?B?ZnN3RWtPLzlTNEhWOE1CT0szMkxITWh4SG01UTRlaEZ1MWtjSkxTdjliOE1t?= =?utf-8?B?ZjlmSmRscTJITWF3MGUzamF5TkJsc3l4OFdhSGhRRXJnekxFd3Y0UVRPZHJM?= =?utf-8?B?WjN3Rmt5ek1KSDlOeUNFZHdZVS9jSVBjN3J0QytiMkZBZHlGVzBBSFlhRnk1?= =?utf-8?B?V3FUMFNycG9Tb0tmRHA3SkVtaFZGM2J1N0ZxYTZBQkFNaFlRb245MVNPdkYw?= =?utf-8?B?bitPOG1oYnBuckNhNHBHcUhrR3FsdFo1K0pyY3J4WnJ1MnhZUkJySGlPMVVP?= =?utf-8?B?ZW5XU2UvRGxUdDh6a043V2xGL2VxUHEvL2UrZFFxaTNZckcvVERCSlJqdnZ5?= =?utf-8?B?SWdHTUdUQ2VHb0pQZzZhQ1ZkQUxJK0tpVkpsWDBrSVJzM3IwajIwUTErVi9Z?= =?utf-8?B?UTR5OENMcWxWZDBZWXYzOFpFSEt2WnppUC9JTW00dFZWTGROSFp5RlZJRHow?= =?utf-8?B?SXR3MmZ2eGJmUGYyYjRZOEo2S010T2FFbVFFc3p0WndHOUl1V1NoTGNoVWlo?= =?utf-8?B?M2ZQdkROZlR4OU5UaWZsRVgwZk1odFMzUnJleXNBc1FrR2pITUMvaUZlT3R3?= =?utf-8?B?Zndhd3NJM2lRL0ZsOWdwWjVmSEphNE9ac2syMUcvNkdIK3pZUk5UaWJPMDFY?= =?utf-8?B?WlloSW9JUXV1MlBILzZvclJkT0ExWlByOEF6aFRmVWlKVWYrcEJaOUNyVER3?= =?utf-8?B?T1ViWjM5bkxVLzlVL0Nzb2NyUXlWRFZDbVdteFhLLzdtQUUwbk1zbS9kbHY4?= =?utf-8?B?RHhWcUFUNmk4bHRjMzgwUVpXaERPZVRqTFNwbEFpa1JoU2pzeHZzZlMyZHJm?= =?utf-8?B?K2NUWFEzeU1ZQ0MzWEdDcm04Q0pWTCtsSzVTNzlFZHJNWnI4YUxzdElKMFJi?= =?utf-8?Q?s5kXxkRw4XOW8iaI=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Exchange-RoutingPolicyChecked: vsc07QTwxdqvVJqk768n4LfTzV6JQPQL4g4QmjLO4BjY3l7Ofe1XExuKy0HNwr69+ybFzFz0iu94Qk6R1mW3o3cMh/4aEk0YPVcFAqLxa8Z532YjNAV87l9IG6KLwbs7ih6hcy27skP864HzvF4JZkdz4N7NfR11EP/pvdM98IyFJFSyyfSi0SXcoRiskFBBa4fZGlwdwipSnra1TRfF4iGQ9aXuFy4x8mi9mWf5xz9DWz7mVCiHiRGZdUcmzw61y3yBPpDkZMdENAcAbRf9zpE1AvHJktpzFIpNiO89hFRPDlVP287G63K6Zu7eyTS6OeBpnNP9mFUrQPlIBdgdSA== X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM8PR11MB5573.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5ddb46f7-8224-4abc-4d9e-08de8abff1c0 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Mar 2026 22:43:33.1917 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: fG/cemj1TMREo8uFwY8NGeEdO+B3ib5TJfUzSYL9cLoHwy3x5Mwy7PHkRMgQHmaWG5dl4IviMHk5+siOJfuvoXdhCUlqd8SmfYaIng72Gjo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR11MB7996 X-OriginatorOrg: intel.com X-BeenThere: intel-xe@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel Xe graphics driver List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-xe-bounces@lists.freedesktop.org Sender: "Intel-xe" T24gV2VkLCAyMDI2LTAzLTI1IGF0IDE1OjM4IC0wNzAwLCBNYXR0aGV3IEJyb3N0IHdyb3RlOg0K PiBPbiBXZWQsIE1hciAyNSwgMjAyNiBhdCAwNDoyNToyMlBNIC0wNjAwLCBTdW1tZXJzLCBTdHVh cnQgd3JvdGU6DQo+ID4gT24gV2VkLCAyMDI2LTAzLTI1IGF0IDE1OjAwIC0wNzAwLCBNYXR0aGV3 IEJyb3N0IHdyb3RlOg0KPiA+ID4gT24gV2VkLCBNYXIgMjUsIDIwMjYgYXQgMTI6Mzc6MThQTSAt MDYwMCwgU3VtbWVycywgU3R1YXJ0IHdyb3RlOg0KPiA+ID4gPiBPbiBUdWUsIDIwMjYtMDMtMjQg YXQgMTY6MzYgLTA3MDAsIE1hdHRoZXcgQnJvc3Qgd3JvdGU6DQo+ID4gPiA+ID4gT24gVHVlLCBN YXIgMjQsIDIwMjYgYXQgMDM6MTA6NDFQTSAtMDYwMCwgU3VtbWVycywgU3R1YXJ0DQo+ID4gPiA+ ID4gd3JvdGU6DQo+ID4gPiA+ID4gPiBPbiBUdWUsIDIwMjYtMDMtMjQgYXQgMTM6NTggLTA3MDAs IE1hdHRoZXcgQnJvc3Qgd3JvdGU6DQo+ID4gPiA+ID4gPiA+IE9uIFR1ZSwgTWFyIDI0LCAyMDI2 IGF0IDAxOjUzOjI3UE0gLTA3MDAsIE1hdHRoZXcgQnJvc3QNCj4gPiA+ID4gPiA+ID4gd3JvdGU6 DQo+ID4gPiA+ID4gPiA+ID4gT24gVHVlLCBNYXIgMjQsIDIwMjYgYXQgMDI6Mzk6NTRQTSAtMDYw MCwgWWFuZywgRmVpDQo+ID4gPiA+ID4gPiA+ID4gd3JvdGU6DQo+ID4gPiA+ID4gPiA+ID4gPiA+ IE9uIFR1ZSwgTWFyIDE3LCAyMDI2IGF0IDA1OjI4OjE0UE0gLTA2MDAsIFN1bW1lcnMsDQo+ID4g PiA+ID4gPiA+ID4gPiA+IFN0dWFydA0KPiA+ID4gPiA+ID4gPiA+ID4gPiB3cm90ZToNCj4gPiA+ ID4gPiA+ID4gPiA+ID4gPiBPbiBUdWUsIDIwMjYtMDMtMTcgYXQgMTY6MjEgLTA3MDAsDQo+ID4g PiA+ID4gPiA+ID4gPiA+ID4gZmVpLnlhbmdAaW50ZWwuY29twqB3cm90ZToNCj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+IEZyb206IEZlaSBZYW5nIDxmZWkueWFuZ0BpbnRlbC5jb20+DQo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEhhcmR3YXJlIHJlcXVp cmVzIHRoZSBzb2Z0d2FyZSB0byBwb2xsIHRoZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gdmFs aWQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGJpdA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g YW5kDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBtYWtlIHN1cmUNCj4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+IGl0J3MgY2xlYXJlZCBiZWZvcmUgaXNzdWluZyBhIG5ldyBUTEINCj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+IGludmFsaWRhdGlvbg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gcmVxdWVz dC4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gU2ln bmVkLW9mZi1ieTogRmVpIFlhbmcgPGZlaS55YW5nQGludGVsLmNvbT4NCj4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+IC0tLQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gwqBkcml2ZXJzL2dwdS9kcm0v eGUveGVfZ3VjX3RsYl9pbnZhbC5jIHwgMTUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsrKysr KysrKysrKysrKw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gwqAxIGZpbGUgY2hhbmdlZCwgMTUg aW5zZXJ0aW9ucygrKQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiBkaWZmIC0tZ2l0DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBhL2RyaXZlcnMvZ3B1 L2RybS94ZS94ZV9ndWNfdGxiX2ludmFsLmMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGIvZHJp dmVycy9ncHUvZHJtL3hlL3hlX2d1Y190bGJfaW52YWwuYw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gaW5kZXggY2VkNThmNDZmODQ2Li40YzJmODdkYjMxNjcgMTAwNjQ0DQo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfZ3VjX3RsYl9pbnZhbC5jDQo+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfZ3VjX3Rs Yl9pbnZhbC5jDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBAQCAtNjMsNiArNjMsNyBAQCBzdGF0 aWMgaW50DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBzZW5kX3RsYl9pbnZhbF9nZ3R0KHN0cnVj dA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4geGVfdGxiX2ludmFsDQo+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiAqdGxiX2ludmFsLCB1MzIgc2Vxbm8pDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiDC oMKgwqDCoMKgwqDCoCBzdHJ1Y3QgeGVfZ3VjICpndWMgPSB0bGJfaW52YWwtDQo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+cHJpdmF0ZTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IMKgwqDCoMKg wqDCoMKgIHN0cnVjdCB4ZV9ndCAqZ3QgPSBndWNfdG9fZ3QoZ3VjKTsNCj4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+IMKgwqDCoMKgwqDCoMKgIHN0cnVjdCB4ZV9kZXZpY2UgKnhlID0gZ3VjX3RvX3hl KGd1Yyk7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiArwqDCoMKgwqDCoMKgIGludCByZXQ7DQo+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IMKgwqDCoMKg wqDCoMKgIC8qDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiDCoMKgwqDCoMKgwqDCoMKgICogUmV0 dXJuaW5nIC1FQ0FOQ0VMRUQgaW4gdGhpcw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gZnVuY3Rp b24gaXMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHNxdWFzaGVkIGF0IHRoZQ0KPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gY2FsbGVyIGFuZCBAQCAtODUsMTEgKzg2LDI1IEBAIHN0YXRpYyBpbnQN Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHNlbmRfdGxiX2ludmFsX2dndHQoc3RydWN0DQo+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiB4ZV90bGJfaW52YWwgKnRsYl9pbnZhbCwgdTMyIHNlcW5vKQ0K PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQ0xBU1MoeGVfZm9yY2Vfd2FrZSwNCj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+IGZ3X3JlZikoZ3RfdG9fZncoZ3QpLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gWEVfRldfR1QpOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIGlmICh4ZS0+aW5mby5wbGF0Zm9ybSA9PSBYRV9QVkMNCj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+IHx8DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBHUkFQSElDU19WRVIoeGUp DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID0gMjApIHsNCj4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKiBXYWl0 IDEtc2Vjb25kIGZvcg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gdGhlDQo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiB2YWxpZA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gYml0DQo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiB0byBiZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gY2xlYXJlZCAqLw0K PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHJldCA9DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiB4ZV9tbWlvX3dhaXQz MihtbWlvLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gUFZDX0dVQ19UTEJfSU5WX0RFU0MwLA0K PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gUFZDX0dVQ19UTEJfSU5WX0RFU0MwX1ZBTElELA0KPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDAsDQo+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAxMDAwICoNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICtV U0VDX1BFUl9NU0VDLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gTlVMTCwgZmFsc2UpOw0KPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIGlmIChyZXQpIHsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcHJfaW5m bygiVExCDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBJTlZBTA0KPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gY2FuY2VsbGVkIGR1ZSB0bw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gdW5jbGVhcmVk IHZhbGlkIGJpdFxuIik7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAtDQo+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBFQ0FOQ0VMRUQ7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQ0KPiA+ID4g PiA+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IElzIHRoZXJlIGEgcmVhc29u IHdlIGFyZW4ndCB3YWl0aW5nIGFmdGVyIHRoZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHdyaXRl DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gdG8NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBtYWtlDQo+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gc3VyZSB0aGUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBpbnZh bGlkYXRpb24gY29tcGxldGVkPyBJdCBzZWVtcyBsaWtlIHdlIHNob3VsZA0KPiA+ID4gPiA+ID4g PiA+ID4gPiA+IGJlDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gc2VyaWFsaXppbmcgdGhlc2UNCj4g PiA+ID4gPiA+ID4gPiA+ID4gPiBhbmQgYXQgbGVhc3QgbWFraW5nIHN1cmUgaGFyZHdhcmUgY29t cGxldGVzIHRoZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHJlcXVlc3QNCj4gPiA+ID4gPiA+ID4g PiA+ID4gPiByYXRoZXIgdGhhbg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGp1c3Qgc2VuZGluZyBh bmQgaG9waW5nIGZvciB0aGUgYmVzdC4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4g PiA+ID4gPiA+IFllcywgdGhpcyBpcyBjb3JyZWN04oCUd2Ugc2hvdWxkIGFmdGVyIHdhaXQgaXNz dWUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKmlmKg0KPiA+ID4gPiA+ID4gPiA+ID4gPiB0aGlzDQo+ ID4gPiA+ID4gPiA+ID4gPiA+IGNvZGUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gaXMgYWN0dWFsbHkg bmVlZGVkLg0KPiA+ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ID4gPiBObywgdGhlIGlz c3VlIGlzIHRoYXQgc29mdHdhcmUgY2Fubm90IGlzc3VlIGFub3RoZXINCj4gPiA+ID4gPiA+ID4g PiA+IFRMQg0KPiA+ID4gPiA+ID4gPiA+ID4gaW52YWxpZGF0aW9uIHJlcXVlc3Qgd2hpbGUgdGhl IG9uZ29pbmcNCj4gPiA+ID4gPiA+ID4gPiA+IG9uZSBoYXMgbm90IGJlZW4gY29tcGxldGVkIHll dC4gT3RoZXJ3aXNlIHRoZQ0KPiA+ID4gPiA+ID4gPiA+ID4gaGFyZHdhcmUNCj4gPiA+ID4gPiA+ ID4gPiA+IGNvdWxkDQo+ID4gPiA+ID4gPiA+ID4gPiBwb3RlbnRpYWxseSBsb2NrdXAuDQo+ID4g PiA+ID4gPiA+ID4gPiBTbyB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUgdmFsaWQgYml0IGlzIGNs ZWFyZWQNCj4gPiA+ID4gPiA+ID4gPiA+IGJlZm9yZQ0KPiA+ID4gPiA+ID4gPiA+ID4gaXNzdWlu Zw0KPiA+ID4gPiA+ID4gPiA+ID4gYW5vdGhlciBUTEIgaW52YWxpZGF0aW9uIHJlcXVlc3QuDQo+ ID4gPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gPiBZZXMs IGJ1dCB3ZSBzaWduYWwgdGhlIFRMQiBpbnZhbGlkYXRpb24gZmVuY2UgYXMNCj4gPiA+ID4gPiA+ ID4gPiBjb21wbGV0ZQ0KPiA+ID4gPiA+ID4gPiA+IHdpdGhvdXQNCj4gPiA+ID4gPiA+ID4gPiB3 YWl0aW5nIGZvciB0aGUgaGFyZHdhcmUgdG8gYWN0dWFsbHkgZmluaXNoLiBUaGUNCj4gPiA+ID4g PiA+ID4gPiBsb2NraW5nDQo+ID4gPiA+ID4gPiA+ID4gaGVyZQ0KPiA+ID4gPiA+ID4gPiA+IGlz DQo+ID4gPiA+ID4gPiA+ID4gYWxzbw0KPiA+ID4gPiA+ID4gPiA+IGluY29ycmVjdCBmb3IgTU1J Ty1iYXNlZCBpbnZhbGlkYXRpb25zLCBub3cgdGhhdCBJDQo+ID4gPiA+ID4gPiA+ID4gdGhpbmsN Cj4gPiA+ID4gPiA+ID4gPiBhYm91dA0KPiA+ID4gPiA+ID4gPiA+IGl0Lg0KPiA+ID4gPiA+ID4g PiA+IFdoYXQNCj4gPiA+ID4gPiA+ID4gPiByZWFsbHkgbmVlZHMgdG8gaGFwcGVuIGlzOg0KPiA+ ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gQWgsIHRoaXMgYWN0 dWFsbHkgYW5vdGhlciB3ZWlyZCBjb3JuZXIgd2hlcmUgd2UgdGFrZSBkb3duDQo+ID4gPiA+ID4g PiA+IHRoZQ0KPiA+ID4gPiA+ID4gPiBDVHMNCj4gPiA+ID4gPiA+ID4gYnV0DQo+ID4gPiA+ID4g PiA+IEd1QyBpcyBzdGlsbCB1c2luZyB0aGUgR0FNIHBvcnQuLi4NCj4gPiA+ID4gPiA+ID4gDQo+ ID4gPiA+ID4gPiA+ID4gLSBJbiBzZW5kX3RsYl9pbnZhbF9nZ3R0KCksIGlmIHRoZSBNTUlPIHBh dGggaXMgdGFrZW4sDQo+ID4gPiA+ID4gPiA+ID4gYWNxdWlyZQ0KPiA+ID4gPiA+ID4gPiA+IGEN Cj4gPiA+ID4gPiA+ID4gPiBwZXItR1QNCj4gPiA+ID4gPiA+ID4gPiDCoCBNTUlPIFRMQiBpbnZh bGlkYXRpb24gbG9jayBhZnRlciBvYnRhaW5pbmcgdGhlIEZXDQo+ID4gPiA+ID4gPiA+IA0KPiA+ ID4gPiA+ID4gPiBTbyBtYXliZSAnV2FpdCBmb3IgdGhlIHZhbGlkIGJpdCB0byBjbGVhcicgaGVy ZSB0b28gYnV0DQo+ID4gPiA+ID4gPiA+IHRoaXMNCj4gPiA+ID4gPiA+ID4gc3RpbGwNCj4gPiA+ ID4gPiA+ID4gaXNuJ3QNCj4gPiA+ID4gPiA+ID4gZnVsbHkgaGFyZGVuZCBhcyB0aGUgR3VDIGNv dWxkIGltbWVkaWF0ZWx5IHVzZSB0aGUgR0FNDQo+ID4gPiA+ID4gPiA+IHBvcnQNCj4gPiA+ID4g PiA+ID4gYWdhaW4uLi4NCj4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+IE9yIHBlcmhhcHMg d2UgZ28gc3RyYWlnaHQgdG8gbXkgc3VnZ2VzdGlvbiBiZWxvdyAtIHdoZW4NCj4gPiA+ID4gPiA+ ID4gcmVsb2FkaW5nDQo+ID4gPiA+ID4gPiA+IHRoZQ0KPiA+ID4gPiA+ID4gPiBHdUMgaXNzdWUg TU1JTyBHVCBpbnZhbGlkYXRpb24uLi4NCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gSSBmZWVs IGxpa2Ugd2UgcmVhbGx5IHNob3VsZCBiZSBhdm9pZGluZyB0aGVzZSBNTUlPIGJhc2VkDQo+ID4g PiA+ID4gPiBpbnZhbGlkYXRpb25zDQo+ID4gPiA+ID4gPiB3aGVyZXZlciBwb3NzaWJsZS4gSXQg Y3JlYXRlcyBhIGxvdCBvZiByYWNlIGNvbmRpdGlvbnMgbGlrZQ0KPiA+ID4gPiA+ID4gd2hhdA0K PiA+ID4gPiA+ID4geW91DQo+ID4gPiA+ID4gPiBzdWdnZXN0ZWQgb3IgZXZlbiBwYXJhbGxlbCBp bnZhbGlkYXRpb24gYmV0d2VlbiB0aGUgR3VDIGFuZA0KPiA+ID4gPiA+ID4gS01EDQo+ID4gPiA+ ID4gPiB3aGlsZQ0KPiA+ID4gPiA+ID4gd2UncmUgdGVhcmluZyBkb3duIChLTUQgbG9jayBtaWdo dCBub3QgYmUgYWJsZSB0byBndWFyYW50ZWUNCj4gPiA+ID4gPiA+IHRoZQ0KPiA+ID4gPiA+ID4g R3VDDQo+ID4gPiA+ID4gPiBpc24ndCBzdGlsbCBpbnZhbGlkYXRpbmcpLg0KPiA+ID4gPiA+ID4g DQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gTXkgZ3Vlc3MgaXMgdGhlIGlzc3VlIGNhbGxpbmcgeGVf bWFuYWdlZF9ib19yZWluaXRfaW5fdnJhbSBvbg0KPiA+ID4gPiA+IHNvbWUNCj4gPiA+ID4gPiBC T3MgLQ0KPiA+ID4gPiA+IHRoZSBHR1RUIGRvbid0IGdldCBpbnZhbGlkYXRlZCBHdUMgc2lkZSBh bmQgaXQgcmVsb2FkcyB3aXRoDQo+ID4gPiA+ID4gc3RhbGUNCj4gPiA+ID4gPiBHR1RUcy4NCj4g PiA+ID4gPiANCj4gPiA+ID4gPiA+IENhbiB3ZSBpbnN0ZWFkIHJlbHkgbW9yZSBoZWF2aWx5IG9u IHRoZSBHVCByZXNldCB0byBmbHVzaA0KPiA+ID4gPiA+ID4gdGhlDQo+ID4gPiA+ID4gPiBUTEJz DQo+ID4gPiA+ID4gPiBmb3INCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBXZSBsaWtlbHkgbmVlZCBh IE1NSU8gaW52YWxpZGF0ZSB3aGVuZXZlciBkb2luZyBQTSByZXN1bWUNCj4gPiA+ID4gPiBldmVu dHMNCj4gPiA+ID4gPiB0b28NCj4gPiA+ID4gPiBhcyBtZW1vcnkgY2FuIG1vdmUgd2l0aG91dCBQ TSByZWZzIChDVHMgZ28gZG93biB3aGVuIFBNIHJlZg0KPiA+ID4gPiA+ID09IDApDQo+ID4gPiA+ ID4gaWYNCj4gPiA+ID4gPiBJJ20NCj4gPiA+ID4gPiBub3QgbWlzdGFrZW4uLi4NCj4gPiA+ID4g DQo+ID4gPiA+IEJ1dCB3ZSBhbHJlYWR5IGRvIGEgR1QgcmVzZXQgaW4gdGhhdCBjYXNlIHJpZ2h0 PyBTbyB0aGlzIHNob3VsZA0KPiA+ID4gPiBiZQ0KPiA+ID4gPiBjb3ZlcmVkPw0KPiA+ID4gPiAN Cj4gPiA+IA0KPiA+ID4gRDNob3QgZG9lc24ndCBwZXJmb3JtIGEgR1QgcmVzZXQgb3IgZW50ZXIg RDNjb2xkLiBIb3dldmVyLA0KPiA+ID4gbG9va2luZyBhdA0KPiA+ID4geGVfZ2d0dC5jLCBHR1RU IGludmFsaWRhdGlvbnMgYWx3YXlzIGhvbGQgYSBQTSByZWZlcmVuY2UsIHNvIHRoZQ0KPiA+ID4g Q1QNCj4gPiA+IHNob3VsZCByZW1haW4gbGl2ZSB1bmxlc3MgYSBHVCByZXNldCBpcyBpbiBwcm9n cmVzcy4NCj4gPiA+IA0KPiA+ID4gVGhlcmVmb3JlLCB0aGUgb25seSB0d28gY2FzZXMgd2hlcmUg d2UgbWlnaHQgbmVlZCBNTUlPDQo+ID4gPiBpbnZhbGlkYXRpb25zDQo+ID4gPiBhcmU6DQo+ID4g PiANCj4gPiA+IC0gRHVyaW5nIGluaXRpYWwgZHJpdmVyIGxvYWQsIGFmdGVyIHdlIGNhbGwNCj4g PiA+IHhlX21hbmFnZWRfYm9fcmVpbml0X2luX3ZyYW0NCj4gPiA+IMKgIG9uIHNvbWUgYnVmZmVy cyB1c2VkIGR1cmluZyB0aGUgaHdjb25maWcgR3VDIGxvYWQgcGhhc2UsIGFuZA0KPiA+ID4gdGhl bg0KPiA+ID4gbW92ZQ0KPiA+ID4gwqAgdGhlIG1lbW9yeSB3aGlsZSByZXRhaW5pbmcgdGhlIHNh bWUgR0dUVCBhZGRyZXNzZXMuDQo+ID4gPiANCj4gPiA+IC0gRHVyaW5nIGEgR1QgcmVzZXQsIHdo ZXJlIG1lbW9yeSBpcyBhbGxvd2VkIHRvIG1vdmUgYXJvdW5kLg0KPiA+ID4gTGlrZWx5DQo+ID4g PiBkbw0KPiA+ID4gwqAgdGhpcyBzdGVwIGJlZm9yZSByZWxvYWRpbmcgdGhlIEd1Qy4NCj4gPiAN Cj4gPiBCdXQgZm9yIGJvdGggb2YgdGhlc2UgY2FzZXMsIHdlIHNob3VsZCBiZSBhYmxlIHRvIGRv Og0KPiA+IGZvcl9lYWNoX2d0X29uX3RpbGUoKQ0KPiA+IMKgwqDCoCB4ZV90bGJfaW52YWxfZmVu Y2VfaW5pdCgpDQo+ID4gwqDCoMKgIHhlX3RsYl9pbnZhbF9hbGwoKQ0KPiA+IGZvcl9lYWNoX2d0 X29uX3RpbGUoKQ0KPiA+IMKgwqDCoCB4ZV90bGJfaW52YWxfYWxsKCkNCj4gPiANCj4gPiBSaWdo dCBiZWZvcmUgR3VDIGNvbW11bmljYXRpb24gZ29lcyBkb3duIHJpZ2h0PyBUaGVuIHdlIHdvdWxk bid0DQo+ID4gbmVlZA0KPiA+IGFueSBNTUlPIGNvbW11bmljYXRpb24gc2luY2UgdGhlIFRMQnMg YXJlIGZsdXNoZWQgYXQgdGhhdCBwb2ludC4NCj4gDQo+IENUcyBhcmUgbGl2ZSBkdXJpbmcgaHdj b25maWcgR3VDIGxvYWQgcGhhc2UgYnV0IG5vdCBzbyBtdWNoIGluIHRoZSBHVA0KPiByZXNldCBj YXNlLg0KPiANCj4gV2hhdCBpcyBwcm9iYWJseSBlYXNpZXN0IC9zYWZlc3QgaXMgYW55IHBsYWNl IHhlX3VjX2xvYWRfaHcgaXMNCj4gY2FsbGVkLA0KPiBkbyBhIE1NSU8gaW52YWxpZGF0aW9uIG9m IEd1QyBUTEIgaW1tZWRpYXRlbHkgYmVmb3JlIChidXQgc2tpcCB0aGlzDQo+IHN0ZXANCj4gb24g YSBWRikuDQoNCldlIG5lZWQgYSB3YXkgdG8gcXVpZXNjZSBHdUMgYW5kIEhXIGlmIHdlJ3JlIGdv aW5nIHRvIGRvIHRoaXMuIFdlIGNvdWxkDQppc3N1ZSB0aGUgcmVzZXQgYW5kIGRpc2FibGUgQ1Qg Y29tbXVuaWNhdGlvbiwgYnV0IEd1QyBzdGlsbCBpcyBpbiB0aGUNCm1pZGRsZSBvZiBwZXJmb3Jt aW5nIGEgVExCIGludmFsaWRhdGlvbiwgdGh1cyBjb25mbGljdGluZyB3aXRoIG91cnMuDQoNCkZv ciB0aGUgR1QgcmVzZXQgY2FzZSBhcmUgeW91IHdvcnJpZWQgYWJvdXQgYSBzaXR1YXRpb24gd2hl cmUgdGhlDQpoYXJkd2FyZSBpcyBidXN0ZWQgYW5kIHdlIHJlc2V0IGFmdGVyIHRoZSBmYWN0IHRv IHJlY292ZXI/IE9yIGEgbW9yZQ0KZXhwbGljaXQgaW52YWxpZGF0aW9uIGluIGEgVERSIHNjZW5h cmlvPyBJbiB0aGUgZm9ybWVyLCBJIHdvdWxkbid0DQp0aGluayBhbnkgaW52YWxpZGF0aW9uIHdv dWxkIG1hdHRlciB0aGVyZS4gSW4gdGhlIGxhdHRlciwgaXQgc3RpbGwNCnNlZW1zIGxpa2Ugd2Ug Y291bGQgaW52YWxpZGF0ZSBUTEJzIGV4cGxpY2l0bHkgdGhyb3VnaCBHdUMgYmVmb3JlDQpkaXNh YmxpbmcgQ1QgY29tbXVuaWNhdGlvbiBhbmQgd3JpdGluZyBHRFJTVC4NCg0KQW5kIG9uIHRoYXQg bm90ZSwgdGhlIEdUIHJlc2V0IEkgd291bGQgdGhpbmsgc2hvdWxkIGNsZWFyIHRoZSBUTEJzIGZv cg0KdXMuIERvIHdlIHJlYWxseSBjYXJlIGFib3V0IGFueSBleHBsaWNpdCBpbnZhbGlkYXRpb24g ZnJvbSB0aGUgS01EIGluDQp0aGF0IGNhc2U/IEl0IHNlZW1zIGxpa2UgdGhlIG1haW4gaW50ZXJl c3RpbmcgY2FzZSBoZXJlIGlzIHRoZSB0aW1lDQpiZXR3ZWVuIHRoZSBod2NvbmZpZyBHdUMgbG9h ZCBhbmQgdGhlIG1haW4gR3VDIGxvYWQgd2hlcmUgd2Ugb3ZlcndyaXRlDQp0aGUgc2FtZSBtZW1v cnkgYW5kIHRodXMgbmVlZCB0byBmbHVzaC4NCg0KVGhhbmtzLA0KU3R1YXJ0DQoNCj4gDQo+IE1h dHQNCj4gDQo+ID4gDQo+ID4gVGhhbmtzLA0KPiA+IFN0dWFydA0KPiA+IA0KPiA+ID4gDQo+ID4g PiA+ID4gDQo+ID4gPiA+ID4gSSdkIGFsc28gbGlrZSB0aGUgR0FNIHBvcnQgaW50ZXJhY3Rpb24g YnJva2VuIG91dCBpbg0KPiA+ID4gPiA+IGNvbXBvbmVudA0KPiA+ID4gPiA+IGxpa2UNCj4gPiA+ ID4gPiB4ZV9nYW1fcG9ydC5jICh3aXRoIGEgZGVkaWNhdGVkIGxvY2spIGluIHRoaXMgc2VpcmVz IFsxXQ0KPiA+ID4gPiA+IGFsYmlldA0KPiA+ID4gPiA+IHdheQ0KPiA+ID4gPiA+IHNpbXBsaWVy IGFzIHdlIG9ubHkgbmVlZCBHR1RUIGludmFsaWRhdGVzIGF0IHRoaXMgdGltZS4NCj4gPiA+ID4g DQo+ID4gPiA+IEknZCBzdGlsbCBsaWtlIHRvIHB1c2ggd2UgZmluZCBhIHdheSB0byBjb21wbGV0 ZWx5IHJlbW92ZSB0aGUNCj4gPiA+ID4gTU1JTw0KPiA+ID4gPiBpbnZhbGlkYXRpb24gZnJvbSB0 aGUgZHJpdmVyIGFuZCByZWx5IG9uIGVpdGhlciB0aGUgcmVzZXRzIG9yDQo+ID4gPiA+IEd1Qw0K PiA+ID4gPiBiYXNlZA0KPiA+ID4gPiBpbnZhbGlkYXRpb24gcHJpb3IgdG8gdGVhcmRvd25zIGlm IGF0IGFsbCBwb3NzaWJsZS4NCj4gPiA+ID4gDQo+ID4gPiANCj4gPiA+IEkgYWdyZWUgTU1JTyBU TEIgaW52YWxpZGF0aW9ucyBoYXZlIG5vIHBsYWNlIHhlX2d1Y190bGJfaW52YWwuYy4NCj4gPiA+ IA0KPiA+ID4gTWF0dA0KPiA+ID4gDQo+ID4gPiA+IEkgaGFkbid0IHNlZW4geW91ciBvdGhlciBw YXRjaCB5ZXQgdGhvdWdoLiBJJ2xsIHRha2UgYSBsb29rIGFzDQo+ID4gPiA+IHNvb24NCj4gPiA+ ID4gYXMNCj4gPiA+ID4gSSBoYXZlIHRpbWUuDQo+ID4gPiA+IA0KPiA+ID4gPiBUaGFua3MsDQo+ ID4gPiA+IFN0dWFydA0KPiA+ID4gPiANCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBNYXR0DQo+ID4g PiA+ID4gDQo+ID4gPiA+ID4gWzFdDQo+ID4gPiA+ID4gaHR0cHM6Ly9wYXRjaHdvcmsuZnJlZWRl c2t0b3Aub3JnL3BhdGNoLzcwNzIzNy8/c2VyaWVzPTE2MjE3MSZyZXY9MQ0KPiA+ID4gPiA+IA0K PiA+ID4gPiA+ID4gdXM/IEFuZCBmb3IgdGhlIEd1QyBtZW1vcnkgc3BlY2lmaWNhbGx5LCBtYXli ZSB3ZSBkbyBhIGZ1bGwNCj4gPiA+ID4gPiA+IGludmFsaWRhdGlvbiBhZnRlciBxdWllc2Npbmcg dGhlIEd1QyBkdXJpbmcgaHdjb25maWcgbG9hZA0KPiA+ID4gPiA+ID4gKHRoZQ0KPiA+ID4gPiA+ ID4gZmlyc3QNCj4gPiA+ID4gPiA+IHRpbWUgd2UgbG9hZCB0aGUgR3VDIGR1cmluZyBkcml2ZXIg bG9hZCkgYW5kIGJlZm9yZSBhbnkNCj4gPiA+ID4gPiA+IGtpbmQgb2YNCj4gPiA+ID4gPiA+IHJl bG9hZC9yZXNldD8NCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gV2UnZCBzdGlsbCBuZWVkIHRv IGNvdmVyIHRoZSBjYXNlIHdoZXJlIGhhcmR3YXJlIGlzIGZ1bGx5DQo+ID4gPiA+ID4gPiBodW5n DQo+ID4gPiA+ID4gPiB1cA0KPiA+ID4gPiA+ID4gYW5kDQo+ID4gPiA+ID4gPiBHdUMgaXNuJ3Qg cmVzcG9uZGluZywgYnV0IHRoZW4gSSBkb24ndCBrbm93IHRoYXQgd2UgcmVhbGx5DQo+ID4gPiA+ ID4gPiBjYXJlDQo+ID4gPiA+ID4gPiBhYm91dA0KPiA+ID4gPiA+ID4gTU1JTyBiYXNlZCBpbnZh bGlkYXRpb25zIHNpbmNlIHdlJ2xsIHdhbnQgdG8gZnVsbHkgcmVzZXQNCj4gPiA+ID4gPiA+IHRo ZSBHVA0KPiA+ID4gPiA+ID4gdGhlcmUNCj4gPiA+ID4gPiA+IHRvby4NCj4gPiA+ID4gPiA+IA0K PiA+ID4gPiA+ID4gVGhhbmtzLA0KPiA+ID4gPiA+ID4gU3R1YXJ0DQo+ID4gPiA+ID4gPiANCj4g PiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+IE1hdHQNCj4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ ID4gPiA+ID4gLSBJc3N1ZSB0aGUgVExCIGludmFsaWRhdGlvbg0KPiA+ID4gPiA+ID4gPiA+IC0g V2FpdCBmb3IgdGhlIHZhbGlkIGJpdCB0byBjbGVhcg0KPiA+ID4gPiA+ID4gPiA+IC0gUmVsZWFz ZSB0aGUgR1QgTU1JTyBUTEIgaW52YWxpZGF0aW9uIGxvY2sNCj4gPiA+ID4gPiA+ID4gPiANCj4g PiA+ID4gPiA+ID4gPiBXaXRob3V0IHRoaXMgbG9jaywgdHdvIHRocmVhZHMgY291bGQgYm90aCBv YnNlcnZlIHRoZQ0KPiA+ID4gPiA+ID4gPiA+IHZhbGlkDQo+ID4gPiA+ID4gPiA+ID4gYml0DQo+ ID4gPiA+ID4gPiA+ID4gY2xlYXJpbmcNCj4gPiA+ID4gPiA+ID4gPiBhbmQgdGhlbiBib3RoIGF0 dGVtcHQgdG8gaXNzdWUgaW52YWxpZGF0aW9ucywNCj4gPiA+ID4gPiA+ID4gPiBjbG9iYmVyaW5n DQo+ID4gPiA+ID4gPiA+ID4gZWFjaA0KPiA+ID4gPiA+ID4gPiA+IG90aGVyLg0KPiA+ID4gPiA+ ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiA+ID4gPiBUaGlzIGlzIGVhcmx5IFhlIGNvZGUgZnJvbSBt ZSwgYW5kIGl04oCZcw0KPiA+ID4gPiA+ID4gPiA+ID4gPiBxdWVzdGlvbmFibGUNCj4gPiA+ID4g PiA+ID4gPiA+ID4gd2hldGhlcg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBpdOKAmXMgZXZlbiByZXF1 aXJlZC4NCj4gPiA+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiA+ID4gVGhpcyBzZWVtcyB0 byBiZSByZXF1aXJlZCwgb3RoZXJ3aXNlIG1vZHByb2JlIHdvdWxkDQo+ID4gPiA+ID4gPiA+ID4g PiBmYWlsDQo+ID4gPiA+ID4gPiA+ID4gPiBhdA0KPiA+ID4gPiA+ID4gPiA+ID4gZ29sZGVuIGNv bnRleHQgc3VibWlzc2lvbiwNCj4gPiA+ID4gPiA+ID4gPiA+IFvCoCA0ODAuMjM3MzgyXSB4ZSAw MDAwOjAxOjAwLjA6IFtkcm1dICpFUlJPUiogVGlsZTA6DQo+ID4gPiA+ID4gPiA+ID4gPiBHVDA6 DQo+ID4gPiA+ID4gPiA+ID4gPiBod2UNCj4gPiA+ID4gPiA+ID4gPiA+IGNjczA6IG5vcCBlbWl0 X25vcF9qb2IgZmFpbGVkICgtRVRJTUUpIGd1Y19pZD00DQo+ID4gPiA+ID4gPiA+ID4gPiANCj4g PiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gPiBJ4oCZbSBzb21ld2hhdCBzdXJwcmlzZWQg YnkgdGhpcy4gQSBiZXR0ZXIgc29sdXRpb24gbWlnaHQNCj4gPiA+ID4gPiA+ID4gPiBiZQ0KPiA+ ID4gPiA+ID4gPiA+IHRvDQo+ID4gPiA+ID4gPiA+ID4gZHJvcA0KPiA+ID4gPiA+ID4gPiA+IHRo ZQ0KPiA+ID4gPiA+ID4gPiA+IE1NSU8gR1QgaW52YWxpZGF0aW9uIGNvZGUgaW4geGVfZ3VjX3Rs Yl9pbnZhbC5jIGFuZA0KPiA+ID4gPiA+ID4gPiA+IGluc3RlYWQNCj4gPiA+ID4gPiA+ID4gPiBp c3N1ZQ0KPiA+ID4gPiA+ID4gPiA+IGFuDQo+ID4gPiA+ID4gPiA+ID4gTU1JTyBHR1RUIGludmFs aWRhdGlvbiB3aGVuZXZlciB3ZSByZWxvYWQgdGhlIEd1Qy4NCj4gPiA+ID4gPiA+ID4gPiANCj4g PiA+ID4gPiA+ID4gPiBXZSBjYW4gZGVmZXIgdHJ5aW5nIHRoaXMgdW50aWwgbGF0ZXIsIGFzIGl0 IGlzIGENCj4gPiA+ID4gPiA+ID4gPiByaXNraWVyDQo+ID4gPiA+ID4gPiA+ID4gY2hhbmdlLg0K PiA+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiA+IE1hdHQNCj4gPiA+ID4gPiA+ID4gPiAN Cj4gPiA+ID4gPiA+ID4gPiA+ID4gVHlwaWNhbGx5LCBpZiB0aGUgQ1RzIGFyZSBub3QgbGl2ZSwg dGhlIEd1QyBpc27igJl0DQo+ID4gPiA+ID4gPiA+ID4gPiA+IGRvaW5nDQo+ID4gPiA+ID4gPiA+ ID4gPiA+IGFueXRoaW5nIG1lYW5pbmdmdWwgaW4gdGVybXMgb2YNCj4gPiA+ID4gPiA+ID4gPiA+ ID4gcmVmZXJlbmNpbmcgbWVtb3J5IHRoYXQgdGhlIEtNRCBpcyBtb3ZpbmcgYXJvdW5kDQo+ID4g PiA+ID4gPiA+ID4gPiA+ICh3aGljaA0KPiA+ID4gPiA+ID4gPiA+ID4gPiB3b3VsZA0KPiA+ID4g PiA+ID4gPiA+ID4gPiByZXF1aXJlIGFuIGludmFsaWRhdGlvbikuDQo+ID4gPiA+ID4gPiA+ID4g PiA+IFNvIHRoaXMgZW50aXJlIGZsb3cgb2YgaXNzdWluZyBhIEdBTSBwb3J0IFRMQg0KPiA+ID4g PiA+ID4gPiA+ID4gPiBpbnZhbGlkYXRpb24NCj4gPiA+ID4gPiA+ID4gPiA+ID4gaXMsDQo+ID4g PiA+ID4gPiA+ID4gPiA+IGFnYWluLCBxdWVzdGlvbmFibGUuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ IA0KPiA+ID4gPiA+ID4gPiA+ID4gPiBTbyBJJ2Qgc3VnZ2VzdCBtb3ZlIHRoZSB3YWl0IGFmdGVy IGlzc3VlLCBwbHVzDQo+ID4gPiA+ID4gPiA+ID4gPiA+IHRocm93DQo+ID4gPiA+ID4gPiA+ID4g PiA+IGluOg0KPiA+ID4gPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gPiA+ID4g4oCcWFhY OiBXaHkgZG8gd2UgbmVlZCB0byBpbnZhbGlkYXRlIEdHVFQgbWVtb3J5IHdoZW4NCj4gPiA+ID4g PiA+ID4gPiA+ID4gdGhlDQo+ID4gPiA+ID4gPiA+ID4gPiA+IENUcw0KPiA+ID4gPiA+ID4gPiA+ ID4gPiBhcmUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gbm90IGxpdmU/IFRoaXMgc3VnZ2VzdHMNCj4g PiA+ID4gPiA+ID4gPiA+ID4gdGhlIEd1QyBpcyBzdGlsbCBpbiB0aGUgbG9hZCBwaGFzZS4gSW52 ZXN0aWdhdGUgYW5kDQo+ID4gPiA+ID4gPiA+ID4gPiA+IHJlbW92ZQ0KPiA+ID4gPiA+ID4gPiA+ ID4gPiB0aGlzDQo+ID4gPiA+ID4gPiA+ID4gPiA+IGNvZGUgb25jZSBjb25maXJtZWQuJw0KPiA+ ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ID4gPiBUaGUgaXNzdWUgaXMgYSBjb25zZXF1 ZW5jZSBvZiBhbiBlYXJsaWVyIGZhaWx1cmUNCj4gPiA+ID4gPiA+ID4gPiA+IHdoaWNoDQo+ID4g PiA+ID4gPiA+ID4gPiBjYXVzZWQNCj4gPiA+ID4gPiA+ID4gPiA+IHRoZQ0KPiA+ID4gPiA+ID4g PiA+ID4gQ1QgdG8gYmUgZGlzYWJsZWQuIEFuZCB0aGUgS01EDQo+ID4gPiA+ID4gPiA+ID4gPiBz ZWVzIGEgYnVuY2ggb2YgVExCIGludmFsaWRhdGlvbiB0aW1lb3V0cy4NCj4gPiA+ID4gPiA+ID4g PiA+IEF0IHRoaXMgdGltZSBJIHdvdWxkIGV4cGVjdCBhIEdUIHJlc2V0LCBidXQgdGhhdCBpcw0K PiA+ID4gPiA+ID4gPiA+ID4gbm90DQo+ID4gPiA+ID4gPiA+ID4gPiBob3cNCj4gPiA+ID4gPiA+ ID4gPiA+IFhlDQo+ID4gPiA+ID4gPiA+ID4gPiBiZWhhdmVzICh0aGUgb2xlIGk5MTUgZHJpdmVy IHRyaWdnZXJzDQo+ID4gPiA+ID4gPiA+ID4gPiBhIEdUIHJlc2V0IG9uIFRMQiBpbnZhbGlkYXRp b24gdGltZW91dCBpZiBJIHJlbWVtYmVyDQo+ID4gPiA+ID4gPiA+ID4gPiBjb3JyZWN0bHkpDQo+ ID4gPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gPiA+IC1GZWkNCj4gPiA+ID4gPiA+ID4g PiA+IA0KPiA+ID4gPiA+ID4gPiA+ID4gPiBNYXR0DQo+ID4gPiA+ID4gPiA+ID4gPiA+IA0KPiA+ ID4gPiA+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IFRoYW5rcywNCj4gPiA+ ID4gPiA+ID4gPiA+ID4gPiBTdHVhcnQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgeGVfbW1pb193cml0ZTMyKG1taW8sDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBQVkNf R1VDX1RMQl9JTlZfREVTQzEsDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+IFBWQ19HVUNfVExCX0lOVl9ERVNDMV9JTlZBTElEIEFURSk7DQo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHhlX21taW9fd3JpdGUzMihtbWlvLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gUFZD X0dVQ19UTEJfSU5WX0RFU0MwLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiBQVkNfR1VDX1RMQl9JTlZfREVTQzBfVkFMSUQpOw0KPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0gZWxzZSB7DQo+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgLyogV2FpdCAxLXNlY29uZCBmb3INCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHRo ZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gdmFsaWQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ IGJpdA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gdG8gYmUNCj4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+IGNsZWFyZWQgKi8NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXQgPQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4geGVfbW1pb193YWl0MzIobW1pbywNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEdVQ19UTEJf SU5WX0NSLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gR1VDX1RMQl9JTlZfQ1JfSU5WQUxJREFU RSwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAwLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gMTAwMCAqDQo+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiArVVNFQ19QRVJfTVNFQywNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IE5VTEwsIGZhbHNl KTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBpZiAocmV0KSB7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHByX2luZm8oIlRMQg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gSU5WQUwNCj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+IGNhbmNlbGxlZCBkdWUgdG8NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHVu Y2xlYXJlZCB2YWxpZCBiaXRcbiIpOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1 cm4gLQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gRUNBTkNFTEVEOw0KPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0N Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgeGVfbW1pb193cml0ZTMyKG1taW8sDQo+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiBHVUNfVExCX0lOVl9DUiwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gR1VDX1RMQl9JTlZfQ1JfSU5WQUxJ REFURSk7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgfQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+IA0K PiA+IA0KDQo=