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 4305BEE57D0 for ; Wed, 11 Sep 2024 19:55:04 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 60CC310E745; Wed, 11 Sep 2024 19:55:03 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="KOcWiE3/"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.7]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7FBED10E745 for ; Wed, 11 Sep 2024 19:55:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1726084502; x=1757620502; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=akbhHm5qRRsP2vGsykSYO3n/NzPudosmNFpnrBVbe5c=; b=KOcWiE3/+Ezl6Yl+V7ubxMqtsw+7AHFVgIg2+oD73ZNzv2NyO/ivh9D5 VcIU6Axv+n008UtGPwd+HbYPzcH6c+QBu1rM5H69t5geSz6tldnxfO01f qzlELLqvN4X5L0DMtmFW67SiytKUafQBreg5hG8hGeFR2/oD21h9xJi9L DihAnI83oyowoXenrzRXa4r4IKQKqTQX3dyvUYEifgEv6JrR51I57C4Wo VE4dydWRtGvSmo38evhJp0f4Ag0PPn3ovM6UNUd29youaac/nTFaFlvLB FZXkSy3VNrZnmDMBZmRQ7g52FQzGVbe1YRdPCbp2zRk/yyJiI5X4JTVUc g==; X-CSE-ConnectionGUID: ndQfwEMySAGDVypv1wqbKA== X-CSE-MsgGUID: 0nhgmJ72Shy9NuPDMzaSoA== X-IronPort-AV: E=McAfee;i="6700,10204,11192"; a="50323240" X-IronPort-AV: E=Sophos;i="6.10,220,1719903600"; d="scan'208";a="50323240" Received: from orviesa003.jf.intel.com ([10.64.159.143]) by fmvoesa101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Sep 2024 12:55:01 -0700 X-CSE-ConnectionGUID: VCNvSogJRv6GBi66LX/mjw== X-CSE-MsgGUID: Q+WkqnnUTA6BIUEhyn14lA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.10,220,1719903600"; d="scan'208";a="72246523" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orviesa003.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 11 Sep 2024 12:55:01 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 11 Sep 2024 12:55:00 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39 via Frontend Transport; Wed, 11 Sep 2024 12:55:00 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.44) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Wed, 11 Sep 2024 12:55:00 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GBuE7lTh2Q2fz9TTVLutvW+t9KPduaOL1r0ari/tTyndwQnHr9GaDqkDJCNQRb9V/00vXblpCmZf7f1DUAR6nmCVPDPAy0W3/UfHmuahNZw4cHoGCaT+Np9+bMUXPGtBTHfwdxFr34EAm10TBbF/1gFGwDLNNPBP+eItRz09M1USdi7tFbn3YEssT74Yrda5VwjJi+ELSks4Bg5DyVgofXTUlW9BXcwMQe2Y/dNNN73LPwigZPEv5cvW5Xbue7grKblTl6Z++QpIHieA1IdJDT3fSwlbr2nm3mvTj4WtdwiEAkl3GFf+O8/F6BcMAMJai1Qz2S9LJTPl0sHGcPZ37Q== 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=akbhHm5qRRsP2vGsykSYO3n/NzPudosmNFpnrBVbe5c=; b=uPBoA4aIt1sdjmdiJerumW9ynWpkXeoX68Vw83Ry0nlA4RooyM1sw55w0nQxwqAd9J5c+pxkRTL34pIJoEFr8RasCKnucVKNOvB0KGxepp8JazAQ5jYJpuXlzP0NnvRCqrHFerh0flPzlPSTFvMob9sD6IJvQSz6ttX8Gr2N7jxHiX729zb5O4R60z7dEQwDNU15MJOIroo1eMtIPLbqDHALwiioAb0GJWLf7AhAhZIsdBobeMaeEBimT7IPOXGCxclEEAxcVKinhBDug7hJznt8R0U5fSfBH0mvJ/RGd/i1MLLz+v/UleyqlD1YYlUsLZqvood5X/l52vRO3fW9nQ== 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 DM4PR11MB8179.namprd11.prod.outlook.com (2603:10b6:8:18e::22) by CH3PR11MB8096.namprd11.prod.outlook.com (2603:10b6:610:155::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7918.27; Wed, 11 Sep 2024 19:54:57 +0000 Received: from DM4PR11MB8179.namprd11.prod.outlook.com ([fe80::f5c2:eb59:d98c:e8ba]) by DM4PR11MB8179.namprd11.prod.outlook.com ([fe80::f5c2:eb59:d98c:e8ba%4]) with mapi id 15.20.7962.016; Wed, 11 Sep 2024 19:54:56 +0000 From: "Souza, Jose" To: "Harrison, John C" , "De Marchi, Lucas" CC: "Intel-Xe@lists.freedesktop.org" , "Brost, Matthew" Subject: Re: [PATCH v7 03/10] drm/xe/devcoredump: Add ASCII85 dump helper function Thread-Topic: [PATCH v7 03/10] drm/xe/devcoredump: Add ASCII85 dump helper function Thread-Index: AQHa/9VwlNtn7bkftUqjJKzCURszFrJJ/9kAgAAB4ICAABGSAIABggkAgAStYICAATEeAIAACViAgAGAYgCAAAT7AIAAAWEAgAAFXIA= Date: Wed, 11 Sep 2024 19:54:56 +0000 Message-ID: <0daf2e5c9ece014d5f85b5bcb0cb44dafa2449c0.camel@intel.com> References: <20240905205106.1063091-1-John.C.Harrison@Intel.com> <20240905205106.1063091-4-John.C.Harrison@Intel.com> <21bc8c69-3a0f-4c68-99af-63f3f029f37a@intel.com> <61ce4887-9cc6-4e46-9412-958c992305a9@intel.com> <3jexgpnh3br3gqi4ol4c3hx3tyhwevq5nqo5xssyie3xglqohz@e7mnj4dewupu> <34c59c0413c51d574baa39a62a735d0de67f8a2f.camel@intel.com> <7c75dda1-e62b-47ff-a6e2-0da2f080126f@intel.com> In-Reply-To: <7c75dda1-e62b-47ff-a6e2-0da2f080126f@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM4PR11MB8179:EE_|CH3PR11MB8096:EE_ x-ms-office365-filtering-correlation-id: 0fb97ae1-0c6e-4083-9aea-08dcd29b9c46 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|1800799024|376014|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?Wm1yRlkvMG9yZWZ1bXlsTmtpUzgzUi9MN0l6Y1psUWEvQlRhR3l2NHlnMFpE?= =?utf-8?B?OThKNDNzb29VRXgxQ1B0dXNoRXNWd1NlT3pDbU5sV3hPMVlnbkZXWTR0VG1r?= =?utf-8?B?cndYSHdoMUZ1RkNLVC9Fd0ZyRDJNZlBTZHJpTGtkYlRJNTVmQ1NGZXFsZFZ5?= =?utf-8?B?UWJPN2h2Q0x3OU10cTF0OFcyeE1ZU2puQTNLV3RpaDBESGRwWURha1l3U0xj?= =?utf-8?B?eU9aR0t0cmsxeVhQMzNlaWtKcmtSdThWcjhZSXB0YmdYUjJNTkFQSGhKQ0Ix?= =?utf-8?B?a3hPR3JLVDQ4OGZmU0ZjTGI0K3lhRUEwUG5sbVU4bzVSWGNrVDR5cy9Hc09F?= =?utf-8?B?Uy83V1ZpK1oxbFE5amhpUER0UlczZmxtQWQ5RDVNMmgybFk0cXA5bkFNTDRo?= =?utf-8?B?aVlISXZ2Q2k5YUp2bURjOEtlSFlZUEJuV1ZHYlh0THlUUWRmY1VjOEdZem41?= =?utf-8?B?bjBwTGJXRFdkamZVYkc1NXBZZFNuc3pNMjM2NWZ2ZElObzJMSHRCU25RNGpx?= =?utf-8?B?d0MvaVVQbEpZbExHQ0RCd3ZLUFBSbFRJRmR1aDB3K1BBUjBza2ZtbHZBT3hT?= =?utf-8?B?ZUIwS0lXNTNsWXNKbjYvQkMyU0E4OUtSYitFNG5mNS9CdXNWUGhVU3Z1QkNI?= =?utf-8?B?dlpQSm9OYks2MDk0a0NqaHplZWZzWHlEWDYzaHBrYzl3ZVl0U3RVTnB6MERT?= =?utf-8?B?c0ZsTHZobjUxNjJmN1pFWVc1Rmx2a0tlSVZ1SGdwUS9mQnM4MXJDbWdjWkgv?= =?utf-8?B?SExhbDZkc012TFdublRRQlZURFl1dmI0VTBPZWFkS2NZZVJXS0w0ajBJYVVR?= =?utf-8?B?R2J1bk1nQkZXdXNLYktLSzFHK01uV2RRRk1uZkQzWnZNcXk4dmY4emZ2RElG?= =?utf-8?B?MkdJTGF1NTNNamFEUzV4MFpnNmVsdWlTdm5QN0xZT25rb2M5eXExMjJyZk9t?= =?utf-8?B?U1FwMElEYjN6ZnZIWWhrQ052eVRReFJVdnJrTnI5NWVmZ2RpLzNUblpTMDEy?= =?utf-8?B?cVAyUUtxelhlZHNjaE1wQWdrd0FxL3dWeGVFQmNPOGRRdDVGb2lhcVJidngz?= =?utf-8?B?d3FtcGMzaTIzamRvRlBzc053Q0gwUmhKWmFFZmJ1VWpGaHgzWVF5Z0lUOUlu?= =?utf-8?B?b3dhLzJZN2FNaWNSRW9VN0ZWU0ZwV3Q4ZUtvWXVvSGZHUTR0anByblFLQUQx?= =?utf-8?B?N1dWcUJHVGVPT3ZpTEJrRkgyQnZVZEh2eVBnRjlIV1VXTVdPd2E5ODM3UnBh?= =?utf-8?B?MkVkeVpmb21jczJFTm5LWlh5UXJCbkEyMzlObjlEMHdreTlPbndZZTdZVWkw?= =?utf-8?B?aUVPV0hNYnFlNHNtdnU3S29EaVBSdXdZWjhPMlpYdkFvaWdsOHNJM1ZlenVK?= =?utf-8?B?TE51bVpwSW4xd3FFeDRIYm1OK0xGY3g0ZWhLbm1zZDJJbVB4dFVvYnFTNUV2?= =?utf-8?B?cXBjSjR5NVpZUEtLbjVNZEV5endRSGtGOVptYWtZNUljaHoyYThXWW5OOWh5?= =?utf-8?B?elZTMG5YUytRUHdHemJQemJuWDZxenp6ZnVKVlZLNVNrV0ZtTGN5ZU9ka091?= =?utf-8?B?dUZJcGdWL3JROFQvVFNZVHpYc0h2cXlsNEY5MzhvUWVoSzdqa1FXOG0zbVhE?= =?utf-8?B?MW9JUmtHWDdiY0ppL0J2SDJXUUdCZHZvVjgxNll1azkxMHBNeXoyQ0l0TGZD?= =?utf-8?B?b21yM09zU2lZVnVyZWpGdVBUa2FZd0ttWk40V1k2aFVGNmhpWkhrVFFwWkdq?= =?utf-8?B?S3IrVy9lWlJWRkNrLysvRlFrVkZhOERGTUJqdlZSOHMzMVZtQ2lidXZCZGx4?= =?utf-8?B?eFlrT25QMm1DQTh1MEMyU2hRTU1RbzUxb0U4RDdUSWc0Mm9HNE9CS3ZueXR3?= =?utf-8?B?a2ROVFNDS0p5d2ZYZHV4dVhNMDRwRUFFeUo4cDBJRmtUUUE9PQ==?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR11MB8179.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(1800799024)(376014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?THpmcWlFNXQzajBndXBiTlExZzFvTjZQVFduSFppYkpmcjlrY0JyYlVzdE96?= =?utf-8?B?Q1dlb1plaENzV3pwNkdBOFhaaSs0YlhRUlBUUzEzcWVUZlUvdUI1TEl4WUpP?= =?utf-8?B?aTdUNUU4aDhyM2Ixb0ZsamZCTVQ0MWNHYkVvcnRjWDBRTHZaT3E2MmtONlE0?= =?utf-8?B?WWwxQ3FTQWtnK0JoRG9NNVR6Vi82Si9rY1JPcG4yZ0pVdzc5WVVWQ0RLZGhG?= =?utf-8?B?aUU3SmZoVm5zVmFwRXMzV1h1cUlrQ2JTUUhITThFZEJSc09vRTdvdHhNZVBp?= =?utf-8?B?eGJuUWxYQkNXdHB3TmVpOGtNa2hyMXB6RllOMXlLb21sbUcyazYwYzJkVlc4?= =?utf-8?B?c3U2OS9pdVE1ZG5rYmp1cWhzbGFreEZOL1dMMGNaMVNjK1JqY2VLbWJzUzlR?= =?utf-8?B?a0k2bHVJLzdZbUNnNjNCdnBxUWRSNHpKNWlpOFE4Mm9TMjl6WVIrMmNNUjNy?= =?utf-8?B?U1ZKSHVBa3kzaU91NnpDVXIxZ0JsS3FscTVudGQ4enNzcXNmaGZ2Yk5ZYzN0?= =?utf-8?B?b25YbzhLa0ViUUtKNm8xdDRyTkNuRXhkNXlPaUUycUQxQ24wNWxGeU1wRDhW?= =?utf-8?B?RkY4UWhVRmE5aXJ1K0RMM1BiTDZyMGhHV3ZyaHBKcG50cGZBbHlSYW0rajQr?= =?utf-8?B?VzdWbDhQb3YzdTRBeFRqbUNDcEZUUlFBRVNkMWkvRjBGWmkzbHBtTmFodGEv?= =?utf-8?B?dnhkWnAvMGtqa2lRK1F6bnU4TTVSc0RwYW5TcW1TdEpwUWY2STkrSWdvQUdH?= =?utf-8?B?cWlGWTVOS2tpV20zR0xXWEk0UWxjakJ6dG0zV3pxTWg1ZXBJbmdUODBGUytn?= =?utf-8?B?ZExPdi9ibkZlU0h1SXkyZWdiTW91MFRjejgvNk1sTUNOcXpuUXErYkhqaEZX?= =?utf-8?B?STZ2aG9OZFZIZkVieTJadXZxY0hBRHVLKzVhV1poR0c5OUpxT2ZoV2U4MCtu?= =?utf-8?B?TGUzQjVxMmtWSmJVWTRHZmI0amlHMkZ4Rjh6TmlEM0Z4MlJKVzRlR283eVJh?= =?utf-8?B?MFgrRWtuMTdEZ2F4RlpYRlh6aTl0KzRMSkRaQnY5VS9ia3BvT0tuSVA5c0Ja?= =?utf-8?B?a3hZK1MycC9jVFdSS0hLZFZENEZpL3loNjJ6YVBCdDgvblZXNDk1aS9SVzZh?= =?utf-8?B?cHhOQ0Y1cjNzaURjQ2RyRlRLY0RzMkhRTU9BeVZkSk5ieUtmQW9NTzRQM2Z2?= =?utf-8?B?WUx4TWpJNnJCNVlWbHc2TGJaV1NkZTBNY1JzMyt2R0p5T0d2Sk42TUJEQ0FZ?= =?utf-8?B?c2g2dFZtU2tHK0tJTHphNzB1dURmVUVZSmUvbG1OMDZuQWhvVit5cmhoZ2Z1?= =?utf-8?B?WHJBeWlBSVFDYm1UVE9ScjVlUXNYcFVIUHA4dC9kdHdmVTVZbmxDR2JOdmhH?= =?utf-8?B?RmlmQUhoczAyTzRoTFdMQmNxREVGakJqdWJ2ZnpzSHRXTXg3dGhHR2NSZEx4?= =?utf-8?B?RHhhUFkyOEplL1pVYTV0MmdsbjRCZkx4a2xBS2t3eVFKY05WK0Mrb0JHTTk3?= =?utf-8?B?eTZjazlVUC9UcmJtbElxVWpDK1YrbkdLWVl2Q3VSYXlES3hhMS9GMGtGeXVG?= =?utf-8?B?ajIxQzJtY3hwTHZ1b1NDZ3ZlTzNzd0ZGRUEwMHkyaFpTKzZ2NEhOblpET0N1?= =?utf-8?B?YWNDVWRyaHl5VU5LMVdnZy94YUE1Q01aVkw1V1JHd3A3MEEzTjdJbmZzQmtF?= =?utf-8?B?SXVvYmszamxaelBZR01jditEclhvOFcrNzVxSlgxL3VQOGVxOWM5dXduNmE0?= =?utf-8?B?UTFqSnMzdUllemw1aVpleWVqaVRnOWVlelFyNG1ZYURRc0FPZDUrZzBkUWxO?= =?utf-8?B?cGlnYXUyd2wzNTU1VjQ4aTVOelg2VGs2eGEvd2NzOGJaOEt1UUM0SkVZNjBI?= =?utf-8?B?bkd0YmU3b2tRd0U5L1M1QWhkS2JxcEpiMUJvSDdnaW1IQjVLVTNzZ0VjVkFS?= =?utf-8?B?SXFqdXo5N1d5a2FwQjBTcXZaQm0vRnJZOWVQVnBMQWpVTXJWbTdPZ2lJdzYv?= =?utf-8?B?MmJ0WCswWUpNS0cwZGdyb2ZVeDFjbngwSmtoK09VMElRL1V1Z1IwNVFjZnFE?= =?utf-8?B?WkRqNzloRk9mWWVOUy9KTnpadkh6ODJEa25BbmdYT2xTaFd5WWVBRnIwSXg2?= =?utf-8?B?R3IvT3oyWkk3WExLTlY4Vy9Xb2JVdjcyTFpvdzU4MzNUaFExdFRQWktDQSt2?= =?utf-8?B?K0E9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <8FEB683E9966C645863CBADCC6DD779E@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB8179.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0fb97ae1-0c6e-4083-9aea-08dcd29b9c46 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Sep 2024 19:54:56.3319 (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: VPTVDy5UAvWniRYel5IhSQjMLsFGlrKRD+ElNQnlT/j672GHqoHY7fKf/FLkLP22S7WhlKQVNhrszuoyuH3sFQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR11MB8096 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" T24gV2VkLCAyMDI0LTA5LTExIGF0IDEyOjM1IC0wNzAwLCBKb2huIEhhcnJpc29uIHdyb3RlOg0K PiBPbiA5LzExLzIwMjQgMTI6MzAsIFNvdXphLCBKb3NlIHdyb3RlOg0KPiA+IE9uIFdlZCwgMjAy NC0wOS0xMSBhdCAxNDoxMiAtMDUwMCwgTHVjYXMgRGUgTWFyY2hpIHdyb3RlOg0KPiA+ID4gT24g VHVlLCBTZXAgMTAsIDIwMjQgYXQgMDE6MTc6MTFQTSBHTVQsIEpvaG4gSGFycmlzb24gd3JvdGU6 DQo+ID4gPiA+IE9uIDkvMTAvMjAyNCAxMjo0MywgTHVjYXMgRGUgTWFyY2hpIHdyb3RlOg0KPiA+ ID4gPiA+IE9uIE1vbiwgU2VwIDA5LCAyMDI0IGF0IDA2OjMxOjQxUE0gR01ULCBKb2huIEhhcnJp c29uIHdyb3RlOg0KPiA+ID4gPiA+ID4gT24gOS82LzIwMjQgMTk6MDYsIEpvaG4gSGFycmlzb24g d3JvdGU6DQo+ID4gPiA+ID4gPiA+IE9uIDkvNS8yMDI0IDIwOjA0LCBMdWNhcyBEZSBNYXJjaGkg d3JvdGU6DQo+ID4gPiA+ID4gPiA+ID4gT24gVGh1LCBTZXAgMDUsIDIwMjQgYXQgMDc6MDE6MzNQ TSBHTVQsIEpvaG4gSGFycmlzb24gd3JvdGU6DQo+ID4gPiA+ID4gPiA+ID4gPiBPbiA5LzUvMjAy NCAxODo1NCwgTHVjYXMgRGUgTWFyY2hpIHdyb3RlOg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBPbiBU aHUsIFNlcCAwNSwgMjAyNCBhdCAwMTo1MDo1OFBNIEdNVCwNCj4gPiA+ID4gPiA+ID4gPiA+ID4g Sm9obi5DLkhhcnJpc29uQEludGVsLmNvbSB3cm90ZToNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBG cm9tOiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPg0KPiA+ID4gPiA+ ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IFRoZXJlIGlzIGEgbmVlZCB0byBp bmNsdWRlIHRoZSBHdUMgbG9nIGFuZCBvdGhlciBsYXJnZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ IGJpbmFyeSBvYmplY3RzDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gaW4gY29yZSBkdW1wcyBhbmQg dmlhIGRtZXNnLiBTbyBhZGQgYSBoZWxwZXIgZm9yIGR1bXBpbmcNCj4gPiA+ID4gPiA+ID4gPiA+ ID4gPiB0byBhIHByaW50ZXINCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBmdW5jdGlvbiB2aWEgY29u dmVyc2lvbiB0byBBU0NJSTg1IGVuY29kaW5nLg0KPiA+ID4gPiA+ID4gPiA+ID4gPiB3aHkgYXJl IHdlIG5vdCBkdW1waW5nIHRoZSBiaW5hcnkgZGF0YSBkaXJlY3RseSB0byBkZXZjb3JlZHVtcD8N Cj4gPiA+ID4gPiA+ID4gPiA+IEFzIHBlciBlYXJsaWVyIGNvbW1lbnRzLCB0aGVyZSBpcyBhIFdp RmkgZHJpdmVyIG9yIHNvbWUgc3VjaA0KPiA+ID4gPiA+ID4gPiA+ID4gdGhhdCBkb2VzIGV4YWN0 bHkgdGhhdC4gQnV0IGFsbCB0aGV5IGFyZSBkdW1waW5nIGlzIGEgYmluYXJ5DQo+ID4gPiA+ID4g PiA+ID4gPiBibG9iLg0KPiA+ID4gPiA+ID4gPiA+IEluIHlvdXIgdjUgSSBzZWUgeW91IG1lbnRp b25lZA0KPiA+ID4gPiA+ID4gPiA+IGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvY29y ZWR1bXAuYywgYnV0IHRoYXQgaXMgYQ0KPiA+ID4gPiA+ID4gPiA+IHByZWNlZGVuY2UgZm9yDQo+ ID4gPiA+ID4gPiA+ID4gaW5jbHVkaW5nIGl0IGFzIGlzIGZyb20gdGhlIGRldmljZSByYXRoZXIg Y29udmVydGluZyBpdCB0byBBU0NJSTg1IG9yDQo+ID4gPiA+ID4gPiA+ID4gc29tZXRoaW5nIGVs c2UuIEl0IHNlZW1zIG9kZCB0byBkbyB0aGF0IHR5cGUgb2YgY29udmVyc2lvbiBpbiBrZXJuZWwN Cj4gPiA+ID4gPiA+ID4gPiBzcGFjZSB3aGVuIGl0IGNvdWxkIGJlIHBlcmZlY3RseSBkb25lIGlu IHVzZXJzcGFjZS4NCj4gPiA+ID4gPiA+ID4gSXQgcmVhbGx5IGNhbid0LiBBbiBlbmQgdXNlciBj b3VsZCBtYXliZSBiZSBleHBlY3RlZCB0byB6aXAgb3INCj4gPiA+ID4gPiA+ID4gdGFyIGEgY29y ZWR1bXAgZmlsZSBiZWZvcmUgYXR0YWNoaW5nIGl0IHRvIGEgYnVnIHJlcG9ydCBidXQgdGhleQ0K PiA+ID4gPiA+ID4gPiBhcmUgY2VydGFpbmx5IG5vdCBnb2luZyB0byB0cnkgdG8gQVNDSUk4NSBl bmNvZGUgcmFuZG9tIGJpdHMgb2YNCj4gPiA+ID4gPiA+ID4gaXQuIFdoZXJlYXMsIHB1dHRpbmcg dGhhdCBpbiB0aGUga2VybmVsIG1lYW5zIGl0IGlzIGp1c3QgdGhlcmUuDQo+ID4gPiA+ID4gPiA+ IEl0IGlzIGRvbmUuIEFuZCBpdCBpcyBwcmV0dHkgdHJpdmlhbCAtIGp1c3QgY2FsbCBhIGhlbHBl cg0KPiA+ID4gPiA+ID4gPiBmdW5jdGlvbiBhbmQgaXQgZG9lcyBldmVyeXRoaW5nIGZvciB5b3Uu IEFsc28sIEkgdmVyeSBtdWNoIGRvdWJ0DQo+ID4gPiA+ID4gPiA+IHlvdSBjYW4gc3BldyByYXcg YmluYXJ5IGRhdGEgdmlhIGRtZXNnLiBFdmVuIGlmIHRoZSBrZXJuZWwgd291bGQNCj4gPiA+ID4g PiA+ID4gcHJpbnQgaXQgZm9yIHlvdSAod2hpY2ggSSBkb3VidCksIHRoZSB1c2VyIHRvb2xzIGxp a2Ugc3lzbG9nZA0KPiA+ID4gPiA+ID4gPiBhbmQgZG1lc2cgaXRzZWxmIGFyZSBnb2luZyB0byBm aWx0ZXIgaXQgdG8gbWFrZSBpdCBBU0NJSSBzYWZlLg0KPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4g PiA+ID4gVGhlIGk5MTUgZXJyb3IgZHVtcHMgaGF2ZSBiZWVuIEFTQ0lJODUgZW5jb2RlZCB1c2lu ZyB0aGUNCj4gPiA+ID4gPiA+ID4ga2VybmVsJ3MgQVNDSUk4NSBlbmNvZGluZyBoZWxwZXIgZnVu Y3Rpb24gc2luY2UgZm9yZXZlci4gVGhpcw0KPiA+ID4gPiA+ID4gPiBwYXRjaCBpcyBqdXN0IGEg d3JhcHBlciBhcm91bmQgdGhlIGtlcm5lbCdzIGV4aXN0aW5nDQo+ID4gPiA+ID4gPiA+IGltcGxl bWVudGF0aW9uIGluIG9yZGVyIHRvIG1ha2UgaXQgbW9yZSBjb21wYXRpYmxlIHdpdGggcHJpbnRp bmcNCj4gPiA+ID4gPiA+ID4gdG8gZG1lc2cuIFRoaXMgaXMgbm90IGNyZWF0aW5nIGEgbmV3IHBy ZWNlZGVudC4gSXQgYWxyZWFkeQ0KPiA+ID4gPiA+ID4gPiBleGlzdHMuDQo+ID4gPiA+ID4gPiA+ IA0KPiA+ID4gPiA+ID4gPiA+ICQgZ2l0IGdyZXAgYXNjaWk4NS5oDQo+ID4gPiA+ID4gPiA+ID4g ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYzojaW5jbHVkZSA8bGludXgvYXNj aWk4NS5oPg0KPiA+ID4gPiA+ID4gPiA+IGRyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E2eHhf Z3B1X3N0YXRlLmM6I2luY2x1ZGUgPGxpbnV4L2FzY2lpODUuaD4NCj4gPiA+ID4gPiA+ID4gPiBk cml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hZHJlbm9fZ3B1LmM6I2luY2x1ZGUgPGxpbnV4L2Fz Y2lpODUuaD4NCj4gPiA+ID4gPiA+ID4gPiBkcml2ZXJzL2dwdS9kcm0veGUveGVfbHJjLmM6I2lu Y2x1ZGUgPGxpbnV4L2FzY2lpODUuaD4NCj4gPiA+ID4gPiA+ID4gPiBkcml2ZXJzL2dwdS9kcm0v eGUveGVfdm0uYzojaW5jbHVkZSA8bGludXgvYXNjaWk4NS5oPg0KPiA+ID4gPiA+ID4gPiBBbmQg dGhlIGxpc3Qgb2YgZHJpdmVycyB3aGljaCBkdW1wIHJhdyBiaW5hcnkgZGF0YSBpbiBhIGNvcmVk dW1wDQo+ID4gPiA+ID4gPiA+IGZpbGUgaXMuLi4gYXRoMTBrLiBBU0NJSTg1IHdpbnMgMyB0byAx Lg0KPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ID4gPiBXZSB3 YW50IHRoZSBkZXZjb3JlZHVtcCBmaWxlIHRvIHN0aWxsIGJlIGh1bWFuIHJlYWRhYmxlLg0KPiA+ ID4gPiA+ID4gPiA+ID4gVGhhdCB3b24ndCBiZSB0aGUgY2FzZSBpZiB5b3Ugc3R1ZmYgYmluYXJ5 IGRhdGEgaW4gdGhlDQo+ID4gPiA+ID4gPiA+ID4gPiBtaWRkbGUgb2YgaXQuIE1vc3Qgb2J2aW91 cyBwcm9ibGVtIC0gdGhlIHplcm9zIGluIHRoZSBkYXRhDQo+ID4gPiA+ID4gPiA+ID4gPiB3aWxs IHRlcm1pbmF0ZSB5b3VyIHRleHQgZmlsZSBhdCB0aGF0IHBvaW50LiBQb3RlbnRpYWxseQ0KPiA+ ID4gPiA+ID4gPiA+ID4gYmlnZ2VyIHByb2JsZW0gZm9yIGVuZCB1c2VycyAtIHJhbmRvbSBmYWtl IEFOU0kgY29kZXMgd2lsbA0KPiA+ID4gPiA+ID4gPiA+ID4gZGVzdHJveSB5b3VyIHRlcm1pbmFs IHdpbmRvdyBpZiB5b3UgdHJ5IHRvIGNhdCB0aGUgZmlsZSB0bw0KPiA+ID4gPiA+ID4gPiA+ID4g cmVhZCBpdC4NCj4gPiA+ID4gPiA+ID4gPiBVc2VycyBkb24ndCBnZXQgYSBjb3JlZHVtcCBhbmQg Y2F0IGl0IHRvIHRoZSB0ZXJtaW5hbC4NCj4gPiA+ID4gPiA+ID4gPiA9KGxrJUE4YFQ3QUtZSCNG RCw2KytFcU9BQkhVaHNHJTVIMkFSb3EjRSQvViRCbDdRK0A8NXBtQmU8cTtCazswbUNqQC4zRElh bDJGRDVRLStFX1JCQVJUK1hAVmZUdUdBMi80RGZwLkVAM0JOMERmQjkuK0UxYjBGKEtBVis6OA0K PiA+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiA+IA0KPiA+ ID4gPiA+ID4gPiA+IEx1Y2FzIERlIE1hcmNoaQ0KPiA+ID4gPiA+ID4gPiBUaGV5IG1pZ2h0LiBF aXRoZXIgaW50ZW50aW9uYWxseSBvciBhY2NpZGVudGFsbHkuIEkndmUgY2VydGFpbmx5DQo+ID4g PiA+ID4gPiA+IGRvbmUgaXQgbXlzZWxmLiBBbmQgcGVvcGxlIHdpbGwgY2VydGFpbmx5IHdhbnQg dG8gbG9vayBhdCBpdCBpbg0KPiA+ID4gPiA+ID4gPiBhbnkgcmFuZG9tIGNob2ljZSBvZiB0ZXh0 IGVkaXRvciwgcGFnZXIsIGV0Yy4gJ2NvcyB5b3Uga25vdywgaXQNCj4gPiA+ID4gPiA+ID4gaXMg bWVhbnQgdG8gYmUgcmVhZCBieSBodW1hbnMuIElmIGl0IGlzIGZ1bGwgb2YgYmluYXJ5IGRhdGEg dGhlbg0KPiA+ID4gPiA+ID4gPiB0aGF0IGJlY29tZXMgZXZlbiBtb3JlIGRpZmZpY3VsdCB0aGFu IHNpbXBseSBiZWluZyBmdWxsIG9mIEFTQ0lJDQo+ID4gPiA+ID4gPiA+IGdpYmJlcmlzaC4gTm8g bWF0dGVyIHdoYXQgeW91IGFyZSBkb2luZywgdGhlIEFTQ0lJIHZlcnNpb24gaXMNCj4gPiA+ID4g PiA+ID4gc2FmZXIgYW5kIGVhc2llciB0byBsb29rIGF0IHRoZSByZXN0IG9mIHRoZSBmaWxlIGFy b3VuZCBpdC4NCj4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+IEkgZG9uJ3QgdW5kZXJzdGFu ZCB3aHkgeW91IGFyZSBzbyBkZXNwZXJhdGUgdG8gaGF2ZSByYXcgYmluYXJ5DQo+ID4gPiA+ID4g PiA+IGRhdGEgaW4gdGhlIG1pZGRsZSBvZiBhIHRleHQgZmlsZS4gVGhlIGRpc2FkdmFudGFnZXMg YXJlDQo+ID4gPiA+ID4gPiA+IG11bHRpcGxlIGJ1dCB0aGUgb25seSBhZHZhbnRhZ2UgaXMgYSBz bGlnaHRseSBzbWFsbGVyIGZpbGUuIEFuZA0KPiA+ID4gPiA+ID4gPiB0aGUgdHJ1ZSByb3V0ZSB0 byBzbWFsbGVyIGZpbGVzIGlzIHRvIGFkZCBjb21wcmVzc2lvbiBsaWtlIHdlDQo+ID4gPiA+ID4g PiA+IGhhdmUgaW4gaTkxNS4NCj4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+IEpvaG4uDQo+ ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gUFM6IEFsc28gbWVhbnQgdG8gYWRkIHRoYXQgb25l IG9mIHRoZSBpbXBvcnRhbnQgdXNlcyBjYXNlcyBmb3INCj4gPiA+ID4gPiA+IGR1bXBpbmcgbG9n cyB0byBkbWVzZyBpcyBmb3IgdGhlIHJlYWxseSBoYXJkIHRvIHJlcHJvIGJ1Z3MgdGhhdA0KPiA+ ID4gPiA+ID4gc2hvdyB1cCBpbiBDSSBleHRyZW1lbHkgcmFyZWx5LiBXZSBnZXQgdGhlIGRyaXZl ciB0byBkdW1wIGFuIGVycm9yDQo+ID4gPiA+ID4gPiBjYXB0dXJlIHRvIGRtZXNnIGFuZCBwdWxs IHRoYXQgb3V0IGZyb20gdGhlIENJIGxvZ3MuIEV2ZW4gaWYgeW91DQo+ID4gPiA+ID4gPiBjb3Vs ZCBnZXQgYmluYXJ5IGRhdGEgdGhyb3VnaCBkbWVzZywgcHJldHR5IHN1cmUgdGhlIENJIHRvb2xz DQo+ID4gPiA+ID4gPiB3b3VsZCBhbHNvIG5vdCBiZSBoYXBweSB3aXRoIGl0LiBBbnl0aGluZyBu b24tcHJpbnRhYmxlIHdpbGwgZ2V0DQo+ID4gPiA+ID4gPiBtdW5nZWQgZm9yIHN1cmUgd2hlbiB0 dXJuaW5nIGl0IGludG8gYSB3ZWIgcGFnZS4NCj4gPiA+ID4gPiBJIHRoaW5rIHRoYXQncyB0aGUg bWFpbiBzb3VyY2Ugb2YgY29uZnVzaW9uIG9uIHdoYXQgd2UgYXJlIGRpc2N1c3NpbmcuDQo+ID4g PiA+ID4gSSB3YXMgbm90IHRhbGtpbmcgYWJvdXQgZG1lc2cgYXQgYWxsLiBJJ20gb25seSBjb21w bGFpbmluZyBhYm91dCBmZWVkaW5nDQo+ID4gPiA+ID4gYXNjaWk4NS1lbmNvZGVkIGRhdGEgaW50 byBhICpkZXZjb3JlZHVtcCogd2hlbiBhcHBhcmVudGx5IHRoZXJlIGlzbid0IGENCj4gPiA+ID4g PiBnb29kIHJlYXNvbiB0byBkbyBzby4gSSdkIHJhdGhlciBjb3B5IHRoZSBiaW5hcnkgZGF0YSB0 byB0aGUNCj4gPiA+ID4gPiBkZXZjb3JlZHVtcC4NCj4gPiA+ID4gQnV0IHRoZSBpbnRlbnQgaXMg dG8gZHVtcCBhIGRldmNvcmVkdW1wIHRvIGRtZXNnLiBJdCBtYWtlcyBtdWNoIHNlbnNlDQo+ID4g PiBJdCBzZWVtcyBsaWtlIGFuIGF3ZnVsIGlkZWEgdG8gZHVtcCBodW5kcmVkcyBvZiBNQiB0byBk bWVzZy4gIFdoZW4gd2UNCj4gPiA+IHRhbGtlZCBhYm91dCBwcmludGluZyB0byBkbWVzZyBpdCB3 YXMgYWJvdXQgKipHdUMgbG9nKiogYW5kIG9uIHZlcnkNCj4gPiA+IGluaXRpYWwgc3RhdGVzIG9m IGRyaXZlciBwcm9iZSB3aGVyZSB3ZSBkaWRuJ3QgYWN0dWFsbHkgaGF2ZSBhIGdvb2QNCj4gPiA+ IGludGVyZmFjZSBmb3IgdGhhdC4gQW5kIHRoZSBsb2cgd291bGRuJ3QgYmUgc28gYmlnLiBJZiB3 ZSBjYW4gYWxyZWFkeQ0KPiA+ID4gY2FwdHVyZSB0aGUgZGV2Y29yZWR1bXAsIHdoYXQgd291bGQg YmUgdGhlIHJlYXNvbiB0byBkdW1wIHRvIGRtZXNnDQo+ID4gPiAob3RoZXIgdGhhbiB0aGUgbm9u LXZhbGlkICJvdXIgQ0kgY2FwdHVyZXMgZG1lc2csIGFuZCBkb2Vzbid0DQo+ID4gPiBjYXB0dXJl IGRldmNvcmVkdW1wIiwgd2hpY2ggc2hvdWxkIGJlIGZpeGVkKS4NCj4gPiA+IA0KPiA+ID4gSWYg YW55IHN5c2FkbWluIGhhdmUgdGhlaXIgc2VyaWFsIGNvbnNvbGUgZmxvb2RlZCBieSBzdWNoIGdh cmJhZ2UgdGhlcmUNCj4gPiA+IGFyZSAyIHJlYWN0aW9uczogMSkgc29tZW9uZSBnb3QgaW4gY29u dHJvbCBvZiBteSBtYWNoaW5lOyAyKSBzb21ldGhpbmcNCj4gPiA+IHdlbnQgcmVhbGx5IGJhZCB3 aXRoIHRoaXMgbWFjaGluZS4gSXQncyBub3QgImZlYXIgbm90LCB3YWl0IGZvciBpdCB0bw0KPiA+ ID4gY29tcGxldGUsIGl0J3MganVzdCBub3JtYWwgZGVidWcgZGF0YSBJIHdpbGwgYXR0YWNoIHRv IGFuIGlzc3VlIGluDQo+ID4gPiBnaXRsYWIiLiAgQW5kIEknbSBtZW50aW9uaW5nIGEgc2VyaWFs IGNvbnNvbGUgaGVyZSBkdWUgdG8gdGhhdA0KPiA+ID4gY29uZF9yZXNjaGVkKCkgYWRkZWQsIHdo aWNoIGlzIG9ubHkgbmVlZGVkIGJlY2F1c2UgeW91IGFyZSB0cnlpbmcgdG8gZG8NCj4gPiA+IGlu IGtlcm5lbCBzcGFjZSB3aGF0IHNob3VsZCBiZSBpbiB1c2Vyc3BhY2UuDQo+ID4gPiANCj4gPiA+ IE9oIHdlbGwuLi4gbG9va2luZyBhdCB0aGlzIHRoZSBtYWluIHJlYXNvbiB0byB1c2UgYXNjaWk4 NSBJIGNhbiBzZWUgaXMNCj4gPiA+IGJlY2F1c2Ugd2UgYWxyZWFkeSBoYXZlIHBhcnRzIG9mICpv dXIqIGRldmNvcmVkdW1wIHVzaW5nIGl0LCBhbmQNCj4gPiA+IHVzZXJzcGFjZSByZWx5aW5nIG9u IHRoYXQuIFRoYXQncyBuZXcgdG8gbWUuIExldCdzIHN0b3AgYnJpbmdpbmcgZG1lc2cNCj4gPiA+ IGludG8gdGhpcyBkaXNjdXNzaW9uLg0KPiA+ID4gDQo+ID4gPiA+IHRvIGhhdmUgYSBzaW5nbGUg aW1wbGVtZW50YXRpb24gdGhhdCBjYW4gYmUgdXNlZCBmb3IgbXVsdGlwbGUNCj4gPiA+ID4gcHVy cG9zZXMuIE90aGVyd2lzZSB5b3UgYXJlIGR1cGxpY2F0aW5nIGEgbG90IG9mIGNvZGUgdW5uZWNl c3NhcmlseS4NCj4gPiA+ID4gDQo+ID4gPiA+IEFuZCBJIHN0aWxsIHRoaW5rIGl0IGlzIGEgKnZl cnkqIGJhZCBpZGVhIHRvIGJlIGluY2x1ZGluZyBiaW5hcnkgZGF0YQ0KPiA+ID4gPiBpbiBhIHRl eHQgZmlsZS4gVGhlIGRldmNvcmVkdW1wIGlzIHN1cHBvc2VkIHRvIGJlIGh1bWFuIHJlYWRhYmxl LiBJdA0KPiA+ID4gbm8sIGl0J3Mgbm90LiBkZXZjb3JlZHVtcCBkb2Vzbid0IGRpY3RhdGUgdGhl IGZvcm1hdCwgaXQncyB1cCB0byB0aGUNCj4gPiA+IGRyaXZlcnMgdG8gZG8gdGhhdC4gU2VlIHRo ZWlyIGRvY3VtZW50YXRpb24uDQo+ID4gPiANCj4gPiA+ID4gaXMgc3VwcG9zZWQgdG8gYmUgb2J0 YWluZWQgYnkgZW5kIHVzZXJzIGFuZCBwYXNzZWQgYXJvdW5kLiBIYXZpbmcNCj4gPiA+ID4gYmlu YXJ5IGRhdGEgaW4gdGhlcmUganVzdCBtYWtlcyBldmVyeXRoaW5nIG1vcmUgY29tcGxleCBhbmQg ZXJyb3INCj4gPiA+ID4gcHJvbmUuIFdlIHdhbnQgdGhpcyB0byBiZSBhcyBzaW1wbGUsIGVhc3kg YW5kIHNhZmUgYXMgcG9zc2libGUuDQo+ID4gPiA+IA0KPiA+ID4gPiA+IEZvciBkbWVzZywgdGhl cmUncyBhIHJlYXNvbiB0byBlbmNvZGUgaXQgYXMgeW91IHBvaW50ZWQgb3V0Li4uIGJ1dA0KPiA+ ID4gPiA+IG5vIHVzZXJzIHNob3VsZG4ndCBhY3R1YWxseSBzZWUgaXQgLSB3ZSBzaG91bGQgYmUg Z2V0dGluZyBhbGwgb2YgdGhvc2UNCj4gPiA+ID4gPiBjYXNlcyBpbiBDSS4gRm9yIHRoZSBlc2Nh cGUgc2NlbmFyaW9zLCB5ZWFoLi4uIGJldHRlciBoYXZpbmcgaXQNCj4gPiA+ID4gPiBhc2NpaTg1 LWVuY29kZWQuDQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gV2hhdCB5b3UgYXJlIGFkZGluZyB0byBk ZXZjb3JlZHVtcCBhbHNvIGRvZXNuJ3QgZXZlbiBzZWVtIHRvIGJlIGFuDQo+ID4gPiA+ID4gYXNj aWk4NSByZXByZXNlbnRhdGlvbiwgYnV0IGEgbXVsdGlwbGUgbGluZXMgdGhhdCBzaG91bGQgYmUg Y29uY2F0ZW5hdGVkDQo+ID4gPiA+ID4gdG8gZm9ybSB0aGUgYXNjaWk4NSByZXByZXNlbnRhdGlv bi4gRm9yIGRtZXNnIGl0IG1ha2VzIHNlbnNlLiBOb3QgZm9yDQo+ID4gPiA+ID4gZGV2Y29yZWR1 bXAuwqAgV2Ugc2hvdWxkIGFsc28gcHJvYmFiYWx5IG5lZWQgYSBsZW5ndGggZmllbGQgKGNvcnJl Y3RseQ0KPiA+ID4gPiA+IGFjY291bnRpbmcgZm9yIHRoZSBhZGRpdGlvbmFsIGNoYXJhY3RlcnMg Zm9yIGVhY2ggbGluZSkgc28gd2UgZG9uJ3QNCj4gPiA+ID4gPiBoYXZlIGFuIGltcGxpY2l0IGRl cGVuZGVuY3kgb24gd2hhdCdzIHRoZSBuZXh0IGZpZWxkIHRvIGtub3cgaG93IG11Y2ggdG8NCj4g PiA+ID4gPiBwYXJzZS4NCj4gPiA+ID4gVGhlIGRlY29kaW5nIGlzIHByZXR0eSB0cml2aWFsIGdp dmVuIHRoYXQgbGluZSBmZWVkcyBhcmUgbm90IHBhcnQgb2YNCj4gPiA+ID4gdGhlIEFTQ0lJODUg Y2hhcmFjdGVyIHNldCBhbmQgc28gY2FuIGp1c3QgYmUgZHJvcHBlZC4gQmVzaWRlcyBUaGUNCj4g PiA+ID4gb3V0cHV0IGlzIGFscmVhZHkgbm90ICdwdXJlJyBBU0NJSTg1IGJlY2F1c2UgdGhlIEFT Q0lJODUgZGF0YSBpcw0KPiA+ID4gPiBlbWJlZGRlZCB3aXRoaW4gYSBkZXZjb3JlZHVtcC4gVGhl cmUgaXMgYWxsIHNvcnRzIG9mIG90aGVyIHRleHQgYWJvdXQsDQo+ID4gPiA+IGluY2x1ZGluZyBv biB0aGUgc3RhcnQgb2YgdGhlIGxpbmUuIFRoZXJlIGFyZSBtdWx0aXBsZSBBU0NJSTg1IGJsb2Jz DQo+ID4gPiA+IGluIHRoZXJlIHRoYXQgbmVlZCB0byBiZSBkZWNvZGVkIHNlcGFyYXRlbHkuIFRo aXMgaXMgbm90aGluZyBuZXcgdG8gbXkNCj4gPiA+ID4gcGF0Y2ggc2V0LiBBbGwgb2YgdGhhdCBp cyBhbHJlYWR5IHRoZXJlLiBBbmQgYXMgcGVyIGNvbW1lbnRzIG9uIHRoZQ0KPiA+ID4gPiBwcmV2 aW91cyBkZXZjb3JlZHVtcCBwYXRjaGVzIGZyb20gTWF0dGhldyBCLCB0aGUgb2JqZWN0IGRhdGEg Y2FuIG1hbnkNCj4gPiA+ID4gaHVuZHJlZHMgb2YgTUJzIGluIHNpemUuIFlldCBuby1vbmUgYmF0 dGVkIGFuIGV5ZWxpZCB3aGVuIHRoYXQgd2FzDQo+ID4gPiA+IGFkZGVkLiBTbyB3aHkgdGhlIHN1 ZGRlbiBwYXJhbm9pYSBhYm91dCBhZGRpbmcgYSBjb3VwbGUgb2YgTUIgb2YgR3VDDQo+ID4gPiA+ IGxvZyBpbiB0aGUgc2FtZSBmb3JtPw0KPiA+ID4gSSBzdXBwb3NlIHlvdSBhcmUgdGFsa2luZyBh Ym91dCBjb21taXQgNGQ1MjQyYTAwM2JiICgiZHJtL3hlOiBJbXBsZW1lbnQgY2FwdHVyZSBvZg0K PiA+ID4gSFdTUCBhbmQgSFdDVFgiKS4gIFByb2JhYmx5IGJlY2F1c2UgSSBoYXZlbid0IHNlZW4g dGhhdCBjb21taXQgZG9pbmcgYW4NCj4gPiA+IGFzY2lpODUgZW5jb2RpbmcgYmVmb3JlLCBvdGhl cndpc2UgSSdkIGhhdmUgc2ltaWxhciByZXZpZXcgZmVlZGJhY2suDQo+ID4gPiANCj4gPiA+IExv b2tpbmcgYXQgdGhpcyBqdXN0IG5vdywgc28gSSB3aWxsIGFsc28gaGF2ZSB0byBiYWxhbmNlIHRo ZSBwcmV2aW91cw0KPiA+ID4gdXNlcnMgYW5kIGV4aXN0aW5nIHVzZXJzcGFjZSBjb25zdW1pbmcg aXQuDQo+ID4gPiANCj4gPiA+ICtKb3PDqSwgd291bGQgaXQgYmUgb2sgZnJvbSB0aGUgdXNlcnNw YWNlIFBPViB0byBzdGFydCBhZGRpbmcgdGhlIFxuPw0KPiA+ID4gVGhlbiB3ZSBjYW4gYXQgbGVh c3QgaGF2ZSBhbGwgZmllbGRzIGluIG91ciBkZXZjb3JlZHVtcCB0byBmb2xsb3cgdGhlDQo+ID4g PiBzYW1lIGZvcm1hdC4gQXJlIHRoZXNlIHRoZSBkZWNvZGVyIHBhcnRzIG9uIHRoZSBtZXNhIHNp ZGU/DQo+ID4gPiANCj4gPiA+IAlzcmMvaW50ZWwvdG9vbHMvYXViaW5hdG9yX2Vycm9yX2RlY29k ZS5jDQo+ID4gPiAJc3JjL2ludGVsL3Rvb2xzL2Vycm9yMmhhbmdkdW1wLmM/DQo+ID4gPiANCj4g PiA+ICAgRnJvbSBhIHF1aWNrIGxvb2ssIHJlYWRfeGVfZGF0YV9maWxlKCkgYWxyZWFkeSBjb250 aW51ZXMgdGhlIHByZXZpb3VzDQo+ID4gPiB0b3BpYyB3aGVuIGl0IHJlYWRzIGEgbmV3bGluZSwg YnV0IHRoZSBwYXJzZXJzIGZvciBIV0NUWCBhbmQgSFdTUA0KPiA+ID4gc2VlbXMgdG8gZXhwZWN0 IHRvIHRvIGhhdmUgdGhlIGVudGlyZSB0b3BpYyBpbiBhIHNpbmdsZSBsaW5lLiBCdXQgSSBtYXkN Cj4gPiA+IGJlIG1pc3Npbmcgc29tZXRoaW5nLg0KPiA+IFNvcnJ5IEknbSBub3QgZm9sbG93aW5n IHVwIHRoaXMgdGhyZWFkLg0KPiA+IEFkZCBhICdcbicgd2hlcmUgZXhhY3RseT8NCj4gVG8gYnJl YWsgdmVyeSBsb25nIEFTQ0lJODUgc3RyZWFtcyBhY3Jvc3MgbXVsdGlwbGUgbGluZXMuIFRoYXQg d2lsbCANCj4gYWxsb3cgdGhlIGRldmNvcmVkdW1wIGZpbGUgdG8gb3V0cHV0IHZpYSBkbWVzZyBm b3IgdGhlIHNpdHVhdGlvbnMgd2hlcmUgDQo+IHJlYWRpbmcgZnJvbSBzeXNmcyBpcyBub3QgcG9z c2libGUuDQo+IA0KPiBUaGlzIHBhdGNoIGlzIGFkZGluZyBhbiBBU0NJSTg1IGVuY29kaW5nIGhl bHBlciB0aGF0IGlzIG1vcmUgZnJpZW5kbHkgdG8gDQo+IG91dHB1dCB2aWEgZG1lc2cuIFRoZSBw YXRjaCBkb2VzIG5vdCBjdXJyZW50bHkgY2hhbmdlIHRoZSBleGlzdGluZyANCj4gQVNDSUk4NSBl bmNvZGluZ3Mgb2YgVk1zIGFuZCBodyBjb250ZXh0cy4gSG93ZXZlciwgdGhlIGludGVudGlvbiB3 b3VsZCANCj4gYmUgdG8gdXBkYXRlIHRoYXQgY29kZSB0byB1c2UgdGhpcyBoZWxwZXIgZXZlbnR1 YWxseS4NCg0KSXQgd2lsbCBicmVhayB0aGUgcGFyc2VyIGFuZCBJIGRvbid0IHRoaW5rIHdlIGFy ZSBhbGxvd2VkIHRvIGJyZWFrIGl0IGF0IHRoaXMgcG9pbnQuDQoNCldoYXQgSSBjYW4gc3VnZ2Vz dCBpcyBhZGQgYW5vdGhlciBzeXNmcyB3aXRoIGEgY29yZWR1bXAgdGhhdCBza2lwcyB0aGUgYmlu YXJ5IGR1bXBzIHNvIGl0IGlzIHJlYWRhYmxlIGJ5IGh1bWFucy4NCg0KPiANCj4gSm9obi4NCj4g DQo+ID4gDQo+ID4gPiBMdWNhcyBEZSBNYXJjaGkNCj4gPiA+IA0KPiA+ID4gPiBBbmQgYWdhaW4s IGFyYml0cmFyaWx5IGxvbmcgbGluZXMgKHBvdGVudGlhbGx5IG1hbnkgdGhvdXNhbmRzIG9mDQo+ ID4gPiA+IGNoYXJhY3RlcnMgd2lkZSkgaW4gYSB0ZXh0IGZpbGUgY2FuIGNhdXNlIHByb2JsZW1z LiBIYXZpbmcgaXQgbGluZQ0KPiA+ID4gPiB3cmFwcGVkIGdldHMgcmlkIG9mIHRob3NlIHBvdGVu dGlhbCBwcm9ibGVtcyBhbmQgc28gaXMgc2FmZXIuIEFueXRoaW5nDQo+ID4gPiA+IHRoYXQgcmVk dWNlcyB0aGUgcmlzayBvZiBhbiBlcnJvciByZXBvcnQgYmVpbmcgYnJva2VuIGlzIGEgZ29vZCB0 aGluZw0KPiA+ID4gPiBJTUhPLiBSb2J1c3RuZXNzIGlzIHdvcnRod2hpbGUhDQo+ID4gPiA+IA0K PiA+ID4gPiBKb2huLg0KPiA+ID4gPiANCj4gPiA+ID4gPiBMdWNhcyBEZSBNYXJjaGkNCj4gPiA+ ID4gPiANCj4gPiA+ID4gPiA+IEpvaG4uDQo+ID4gPiA+ID4gPiANCj4gDQoNCg==