From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mx.groups.io with SMTP id smtpd.web11.164.1637109175620528767 for ; Tue, 16 Nov 2021 16:32:55 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=hhW5SqaY; spf=pass (domain: intel.com, ip: 134.134.136.126, mailfrom: michael.d.kinney@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10170"; a="220740309" X-IronPort-AV: E=Sophos;i="5.87,239,1631602800"; d="scan'208";a="220740309" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Nov 2021 16:32:54 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,239,1631602800"; d="scan'208";a="604527409" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by orsmga004.jf.intel.com with ESMTP; 16 Nov 2021 16:32:54 -0800 Received: from orsmsx605.amr.corp.intel.com (10.22.229.18) by ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Tue, 16 Nov 2021 16:32:53 -0800 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Tue, 16 Nov 2021 16:32:53 -0800 Received: from NAM02-BN1-obe.outbound.protection.outlook.com (104.47.51.40) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Tue, 16 Nov 2021 16:32:53 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Yf2tIYRNSxRe139GXGWfUzhcCDsPcSGBOs0+VIaAsRxB/Z2k+BW2Ko8CqaT1V9RRkvCn6z58R4g1X+aL9CmVZ8epn7pNS7xD8LYltW+txxLVY0KMu48pWdtlYWEj6ZHRyldPdCzGyCemppLB9i+KEdlT05CVUIeHm+Z4zvMHJqpfnsPW8w0xn5FLGp3pmki/qNbaN6HF3+GXUt/KLb2lMHav71jz2vHDWSUy9zXZugJJzNm/23H79xlp/WrcnKAHlA2WcMqbBTYs0SuJ4ng/ItuY1qRYp7Gxolq6RQbA+s0OfHz3ePaD97CbUSPe9OeO463ngIqD/fY4S6YVzcKDRQ== 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=jS96XTKHjxyZ9HrOQaqHe/yTVpvP1Dgh54gSaoa6ibQ=; b=XNctPEmQDfpSoQzVWeRNzmwp3aZcljTICKa6/l2pU4JV7hFJIkREEtvSksCV8nbVFIBECHWFwgO6wVw2CbinYQodxpd+hrc/55p2Lb/o6r04q0x6yzQjUBqp20zc5QuH4tCTUqLoHIKR22hu7m1iRs/s0ED4hbg8fh8n8OQlo0otUIJ1uxEuYG+Mvms4hs8JmzQwWzd0hfrqCm1n0acz35oRMKADlgsgnoQQhY/50AFOsLaPE/nvONNjeX13V014zIiWxW2k/IhOVAJWsH59bTlgPMwylZlP6mjjv7u6HBC7+JSAORhdIsuzMLkYgQKPiPdD8CfGOHNugkDtohy2Bw== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jS96XTKHjxyZ9HrOQaqHe/yTVpvP1Dgh54gSaoa6ibQ=; b=hhW5SqaY/vWZgNrPoAcMp3E84iAtKvVUDfZ0OpFSGlWRrDhOOq/Fkofo3/pdjsug6OmbnL0KaRSkJcVdVAeRFIwZkEc7XOgvVXlXkLhZGhCvtVb71vKIIeaC+KcXVhsE4whp+XefYOc8nJcBU/09euMhcXwH/OkiRy+Y7QiDCok= Received: from SA2PR11MB4938.namprd11.prod.outlook.com (2603:10b6:806:fb::14) by SN6PR11MB3151.namprd11.prod.outlook.com (2603:10b6:805:d2::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.27; Wed, 17 Nov 2021 00:32:52 +0000 Received: from SA2PR11MB4938.namprd11.prod.outlook.com ([fe80::6d71:c140:94e9:bdb2]) by SA2PR11MB4938.namprd11.prod.outlook.com ([fe80::6d71:c140:94e9:bdb2%6]) with mapi id 15.20.4690.027; Wed, 17 Nov 2021 00:32:52 +0000 From: "Michael D Kinney" To: "devel@edk2.groups.io" , "mikuback@linux.microsoft.com" , Pedro Falcato , "Kinney, Michael D" Subject: Re: [edk2-devel] Uncrustify configuration file and file/function templates Thread-Topic: [edk2-devel] Uncrustify configuration file and file/function templates Thread-Index: AdfbDb2Nr2Ch9FWYSYSaZDyWqI9yEgACZXMAAAAVpaAAAOl3AAAAzUOwAABW84AAB6WRAAAAh00AAABTvwAAANz8gAABLTMw Date: Wed, 17 Nov 2021 00:32:51 +0000 Message-ID: References: <42fc968b-0108-da06-42a4-d946f0592072@linux.microsoft.com> <6ef9d0eb-942f-943b-5a01-ca7602d31459@linux.microsoft.com> <2d02dd86-8524-9744-ecc1-d52d3881b3fb@linux.microsoft.com> In-Reply-To: <2d02dd86-8524-9744-ecc1-d52d3881b3fb@linux.microsoft.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.200.16 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: fdb14822-7e51-4898-8269-08d9a961ca45 x-ms-traffictypediagnostic: SN6PR11MB3151: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: IgMs+f/6Elx/o73rARXLCdzhGS9xdmPXNxXBaDygSnB4qexMYKZdeeVdxoFAj42o97o3FE7SUTUq/FSr9jytsn/UqaOyp4v8jTXMWNygtVk2ADjtLiLKJ/lfUSy2n1now4QIiDqSP7IzqlPS5VZwLrHcnxzTmnoAdlLagnCjDhAs13iK+JmkMuk8Cpj1xwXAzQcH6x9qrbA4mrpN+zyC3bFYrHRbRdgSRwqbB2rEcT0YG1mXkgiefBCYa4wkjJXbXGNX0C+pYDcdkdAisMKWwiPXsZMWzO3LqObcktXj9yAZVrVrKQCWoTmwazUZwtijz2Vqdtz6kh3SPBn21Tn1CIfSguNlAX22fnzu5BqHgaz3Qhr6966/E+bdEmXWkq5C2djNgXt2EWZhN/et6+qUJkoUSrEb6uT25GxGlexKTihvgUBxuoURgv6qU1wMNR/ZuzXubMb6LSl59xTpcXQ64qSz65h/7UlTQRlPlf1ckq7L0BLDl93+xPagM8x31UZCkAG8e8rkNhbuSCpexfmaznJJVLRg2x9kitdnASLWU1e6hKIjZ9TjPLx7SFpxgjTVPou42SFVJr1VLU4d/QEYE+ZIOMgg7y0sgB8ydo6tngbqdWkBgoVMcVRK5K41mCZlUjjt7Tp5l9YXXt+WQPTA9HkMuxUlG6CYqRwd6f1l4tEvrTjP8+9Xf1FSHgTiu+/Szbadh54vkaNEsxmODvcPYkW0JbrejdVhpzbVb0lCSxMePWR2RDSZJSNOAb6xyCVMlBB4Loh/QvJ5AxzcQ6sd4xcVmbecVPoz6r1qsQBWZoNw1ut+/82LB6MPFcnkkAbdfpudCnxqT2kjKfnlPhD0DQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA2PR11MB4938.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(9686003)(966005)(66446008)(52536014)(8936002)(66946007)(66556008)(66476007)(64756008)(7696005)(5660300002)(26005)(186003)(86362001)(6506007)(71200400001)(82960400001)(508600001)(55016002)(8676002)(38100700002)(33656002)(122000001)(316002)(110136005)(83380400001)(38070700005)(2906002)(76116006)(53546011);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bktzalExOUg1QkVuL3RINitKNzBNejVZeDhiVnRvWWdCZjlBZG90ZnVDdUFw?= =?utf-8?B?alpuS1N6a1Y4UVlHQUdJZ1pLYzI3Z0g2WVgrMHpUUmhGWllycnR5UThNUWxQ?= =?utf-8?B?azNUWHpEaFRmZ1ZPdWpKcWE2TkhsZE4ydXlPc2NmSlRmR05Eek9IQm1qTm1I?= =?utf-8?B?cGs2U1FVWHhNMzU5UklrbjEyOGtTTDd2aldXMUlKKzhuUnd1elZZZ3BmRmlY?= =?utf-8?B?b0lDWWxHRFNydHRlKzR0VnFsczBWWWZZaUhGcHJLeDNkZHFFcVFVcFhCSVcy?= =?utf-8?B?T0wzZk5HbmpxQUk5eng5TnllK293TXZrQ3A0all5Q3NvUTdxUlV2OGdvZGtG?= =?utf-8?B?SUJabi8zNXFqT1JqWmZSbHFyV2ZsZzhXQXo5ejBkT0Z4RXZXRXRsNERCQldF?= =?utf-8?B?L2RjR3pVbEl0cHAvS1lnQUYwdTVOWFZGQWEwL0xZdW94MCs5eUVSM0NwNTNE?= =?utf-8?B?NUVyaUdwK3lMUFgzZVVYQlM2cktWK3dYRXRWRDNJK1g1RTlsZXRtTHZ6cHlz?= =?utf-8?B?Vkd2SlIxVndpZEVyTGgwOE5QWHZRMERVQUd4QlBFT0IyNkNCNFY2UjRuZDRJ?= =?utf-8?B?bTgrbXNwT09TdlU5TTQzMFYvMjhuWnRNdHJwSWVyd053ZGZUOXB4djEzVVR2?= =?utf-8?B?a3lOcVZBRHVmVmdaTm1zMGJRZ3d3bmhRcU5acmhNSzVxVU0xdVZlc3pVTk1j?= =?utf-8?B?YU93aHFKZFZ3Ri95bXg3WWY5WlpQWjhjUFJUL2lMbTc3MGpkYWtpMG9qNlJQ?= =?utf-8?B?VXdTcHRuWHVWWEw1dmF1MWdIKzN5OGpiaVNQRk5QUFYzYVUrUkc1Rjg3ejha?= =?utf-8?B?YktOS1JUcFFiMEZLS1kvMDYveHdOTE54NkhDNFg2MDJPZnRHRTV2OWQyM3d0?= =?utf-8?B?N09wdVJLTytFeFVEU3VCYXZRV3lRV2JQcWp5Z04xbEZ4RE44dzR3R1luWUsx?= =?utf-8?B?Nk00REZkS3Q1d0lZWGt4VUlSNFZ1KzJneXlzRmhsUUFDWXloZFpsdHl5UCtD?= =?utf-8?B?Z1BoVHNiY0E5dmc1QmlwNTlXblVYZkl0eWwzenFvUHZiNnZwVHh5MGlsUHhG?= =?utf-8?B?L09nV2o1THVtUFM4RHRNMjNxQk5KTGFTaCt4VFF3MTNHTERSZld1OGRaWU55?= =?utf-8?B?cmI2aUVVUnkwNU9EUzhlS3hnejVRT2xlT1Q1Y29Ca01pOHZMYmxPckEyZW03?= =?utf-8?B?Y3Bxci9DTHdvSFdOZmFjaUpmMWR2ZEVwK2UwOVNUNmxGZ29Tb2RGckdUa3lr?= =?utf-8?B?bDhyUmgvR1FUNFR6ZG82UGoyRW1uS3cwN3JKYkdwbUtlbEp1WlVybzRVVTRG?= =?utf-8?B?K0QvZlBMNzlCaFF1U0VpclRKcWhTRGp4NzkrcDloeHl6cmd1WkVqNUdMdjRL?= =?utf-8?B?eFF1TC9wckIwUE5EZmpCSlRVZEFOYkgvVGhodzFVdGxXNkswdkxtTjlUZVJO?= =?utf-8?B?cG1KQkVNY09WdlROYWFUUVB1ODI4S0ZKWkI5YlF1dWNvWkdOekQ3d0tYNHps?= =?utf-8?B?bXI4aHIzZyttQ2F2T1dUQ3RtaEJQSXRJcVRzbTBBS0hqTW1aeGs2ZG1hd1J2?= =?utf-8?B?SmtobHk3WnZGNmhGYUxUL1pwakNmWXFKZWtDUk4zekkzQnBucDF2bW8rWWFD?= =?utf-8?B?OTFOYkpFRTZ1MVdyT3Jha3JyNlAzUmEzQ0ZnRjZCTXFXenRoaXVtS2JVMkRQ?= =?utf-8?B?cElqYjJGK0d4b1FFQjZCQStCd1MrSE9UdHFydHNON1I4M0t6RCtLdEF2SUxP?= =?utf-8?B?SFhaV2NzaHJjWWNvNGZpaE1VSnd0UWZSOGJqaXVza0FjRUI2eG1JTk5CV3hz?= =?utf-8?B?MTJxV2hjWDFoMVBkeVhFcjVNUUgrYjRpbzVxczdhMHhiYlhBNFJpZDB1TTNX?= =?utf-8?B?aHFYdGY3UFVHVTgrOXBZRTJROVFCYk9hbzRadlNmSWpsRVYrZTUxd2FEK3RL?= =?utf-8?B?NVduNkQ4MG5BQ21DZ1pxYW9GSkNIMDM2dnp0RGNKWHNONnRZUVdqbHNObnp6?= =?utf-8?B?cmJEVmhVN1FzdlIwVHZpUllhK2FjamY0N3hNcnlUWjVMajUzQzFlUWNpM3dW?= =?utf-8?B?Y3VQYzAzcEIzeXBUS0lYREFWYkhaOTRrVFhwMjRSOWo3UGpsSllTVVRhM01D?= =?utf-8?B?ZWEvTEFHd1RoY0dxVGF6bjROWEVob3VTQXp6Yzhkb0tSc016RXpmZUNsNTIr?= =?utf-8?B?MjlmYVNJZlh3QmFTcXJ6TmhHZHU0ZzFOTytOQnM0SEpydGNvMFg3RDdxZXJj?= =?utf-8?B?V0xydzFjTlJkK0k3d1kzUUl3ZFlRPT0=?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SA2PR11MB4938.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: fdb14822-7e51-4898-8269-08d9a961ca45 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Nov 2021 00:32:51.9035 (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: K8TZ0dMQeKt0K9IoTKYFbhVebs89Wn0pCRFTyqL49dt9OA8DHvYu+QptRqhWlxKjwqh/GMP2gjLNQiZ9jvpF88vfgHKT11wZ4EkUK4FaiMA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB3151 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTWljaGFlbCwNCg0KSSBoYXZlIGNyZWF0ZWQgYSBQUiBiYXNlZCBvbiB5b3VyIHBvY181IGJy YW5jaCB3b3JrIHVzaW5nIHRoZSBsYXRlc3QgZWRrMi9tYXN0ZXINCmFuZCBoYXZlIHN0YXJ0ZWQg YW4gRURLIElJIENJIHBhc3MuDQoNCiAgICBodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2Vk azIvcHVsbC8yMjA4DQoNClRoaXMgUFIgY2FuIGFsc28gYmUgdXNlZCB0byBlYXNpbHkgcmV2aWV3 IHRoZSBjaGFuZ2VzIHRoYXQgdW5jcnVzdGlmeSBoYXMgbWFkZSB0bw0KdGhlIHNvdXJjZSBzdHls ZSBvZiBhbGwgZWRrMiBwYWNrYWdlcy4NCg0KSSBoYXZlIGFsc28gY3JlYXRlZCBhIEJaIGZvciBh cHBseWluZyB0aGUgdW5jcnVzdGlmeSBjaGFuZ2VzLg0KDQogICAgaHR0cHM6Ly9idWd6aWxsYS50 aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzM3DQoNCkkgYW0gYWxyZWFkeSBzZWVuIHNv bWUgUGF0Y2hDaGVjayBhbmQgRUNDIGlzc3VlcyB3aXRoIHRoaXMgUFIuICBJIHdpbGwgcmV2aWV3 DQphbmQgcHJvdmlkZSByZWNvbW1lbmRhdGlvbnMgaW4gdGhlIEJaLg0KDQpNaWtlDQoNCj4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRl dmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgTWljaGFlbCBLdWJhY2tpDQo+IFNlbnQ6 IFR1ZXNkYXksIE5vdmVtYmVyIDE2LCAyMDIxIDM6NTUgUE0NCj4gVG86IFBlZHJvIEZhbGNhdG8g PHBlZHJvLmZhbGNhdG9AZ21haWwuY29tPg0KPiBDYzogZWRrMi1kZXZlbC1ncm91cHMtaW8gPGRl dmVsQGVkazIuZ3JvdXBzLmlvPg0KPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFVuY3J1c3Rp ZnkgY29uZmlndXJhdGlvbiBmaWxlIGFuZCBmaWxlL2Z1bmN0aW9uIHRlbXBsYXRlcw0KPiANCj4g VGhlIHBvY181IGJyYW5jaCBjb25maWcgZmlsZSBpcyBiYXNlZCBvbiB0aGUgZmlsZSBJJ20gcHVz aGluZyB0byB0aGUNCj4gVW5jcnVzdGlmeSBmb3JrIHNvb246DQo+IGh0dHBzOi8vZGV2LmF6dXJl LmNvbS9wcm9qZWN0bXUvVW5jcnVzdGlmeS9fZ2l0L1VuY3J1c3RpZnkvcHVsbHJlcXVlc3QvMjQ/ X2E9ZmlsZXMmcGF0aD0vZXRjL2VkazIuY2ZnDQo+IA0KPiBTbyB0aGV5J3JlIGFscmVhZHkgYmVp bmcgdXNlZCBhbmQgdGhlIGZpbGUgaW4gdGhlIHBvY181IGJyYW5jaCB3YXMgb2YNCj4gY291cnNl IHVzZWQgdG8gZ2VuZXJhdGUgdGhlIHJlc3VsdHMgaW4gdGhlIGJyYW5jaC4NCj4gDQo+IE5vdGUg dGhhdCBJIGRvIGhhdmUgImFsaWduX2Z1bmNfcGFyYW1zIiBzZXQgdG8gdHJ1ZS4gSSBiZWxpZXZl IEkgc2F3DQo+IHNvbWUgb2NjYXNpb25hbCBhbm9tYWxpZXMgaW4gdGhlIHBhc3Qgd2hlbiBJIHNl dA0KPiAiYWxpZ25fZnVuY19wYXJhbXNfc3BhbiIgYW5kIHRoZSBnYXAgdG8gbGFyZ2VyIHZhbHVl cyBidXQgSSBkb24ndCByZWNhbGwNCj4gZXhhY3RseSB3aGF0IHRoZXkgd2VyZS4gSSdkIGJlIGhh cHB5IHRvIHRyeSB0aGF0IGFnYWluIHNvb24gdGhvdWdoLg0KPiANCj4gT24gMTEvMTYvMjAyMSA2 OjMwIFBNLCBQZWRybyBGYWxjYXRvIHdyb3RlOg0KPiA+IFllcywgSSBkby4NCj4gPg0KPiA+IEVz c2VudGlhbGx5LCBteSBjaGFuZ2VzIG1ha2UgaXQgc28gdGhlIGZ1bmN0aW9uIHBhcmFtZXRlcnMg YXJlIGFsaWduZWQNCj4gPiBhbmQgdGhlcmUgYXJlIGFsd2F5cyB0d28gc3BhY2VzIGJldHdlZW4g dGhlIHBhcmFtZXRlcidzIHR5cGUgYW5kIG5hbWU7DQo+ID4gaXQgYWxzbyBhZGRzIHNwYWNlcyBi ZXR3ZWVuIGNvbnRyb2wgc3RhdGVtZW50cywgYXMgeW91IG1lbnRpb25lZC4NCj4gPiAiZm9yY2Ui IGluc3RlYWQgb2YgImFkZCIgZm9yIHNwX2JlZm9yZV9zcGFyZW4gaXMgYSBnb29kIGlkZWEgdGhv dWdoLg0KPiA+IEkgYXNzdW1lIHRoZXNlIGFyZSBnb29kIGFkZGl0aW9ucyB0byB0aGUgInVwc3Ry ZWFtIiBlZGsyLmNmZz8NCj4gPg0KPiA+IE9uIFR1ZSwgTm92IDE2LCAyMDIxIGF0IDExOjIwIFBN IE1pY2hhZWwgS3ViYWNraQ0KPiA+IDxtaWt1YmFja0BsaW51eC5taWNyb3NvZnQuY29tIDxtYWls dG86bWlrdWJhY2tAbGludXgubWljcm9zb2Z0LmNvbT4+IHdyb3RlOg0KPiA+DQo+ID4gICAgIEhp IFBlZHJvLA0KPiA+DQo+ID4gICAgIEJ5ICJuZXcgY29uZmlnIiwgZG8geW91IG1lYW4gdGhlIGNv bmZpZyBmaWxlIGluIHRoZSBsYXRlc3QgYnJhbmNoDQo+ID4gICAgIGh0dHBzOi8vZ2l0aHViLmNv bS9tYWt1YmFja2kvZWRrMi9ibG9iL3VuY3J1c3RpZnlfcG9jXzUvdW5jcnVzdGlmeS5jZmcNCj4g PiAgICAgPGh0dHBzOi8vZ2l0aHViLmNvbS9tYWt1YmFja2kvZWRrMi9ibG9iL3VuY3J1c3RpZnlf cG9jXzUvdW5jcnVzdGlmeS5jZmc+KT8NCj4gPg0KPiA+ICAgICBUaGUgbWFpbiBkaWZmZXJlbmNl IEkgc2VlIGZyb20gdGhlIGRpZmYgaW4gdGhhdCBnaXN0IGFuZCBwb2NfNSBpcyB0aGF0DQo+ID4g ICAgICJhbGlnbl9mdW5jX3BhcmFtc19nYXAiIGFuZCAiYWxpZ25fZnVuY19wYXJhbXNfc3BhbiIg YXJlIHR3byBpbnN0ZWFkIG9mDQo+ID4gICAgIHplcm8uDQo+ID4NCj4gPiAgICAgVGhlIHZhbHVl ICJmb3JjZSIgaW5zdGVhZCBvZiAiYWRkIiBmb3IgInNwX2JlZm9yZV9zcGFyZW4iIHdpbGwgZW5z dXJlIGENCj4gPiAgICAgc2luZ2xlIHNwYWNlIGlzIGFsd2F5cyBhZGRlZCBiZXR3ZWVuIGEgY29u dHJvbCBzdGF0ZW1lbnQgYW5kIHRoZQ0KPiA+ICAgICBwYXJlbnRoZXNpcy4NCj4gPg0KPiA+ICAg ICBUaGFua3MsDQo+ID4gICAgIE1pY2hhZWwNCj4gPg0KPiA+ICAgICBPbiAxMS8xNi8yMDIxIDY6 MDUgUE0sIFBlZHJvIEZhbGNhdG8gd3JvdGU6DQo+ID4gICAgICA+IEhpLA0KPiA+ICAgICAgPg0K PiA+ICAgICAgPiBSRTogVW5jcnVzdGlmeSdzIGNvbmZpZ3VyYXRpb24NCj4gPiAgICAgID4NCj4g PiAgICAgID4gSSBoYWQgbWFkZSBhIGZldyBjaGFuZ2VzIHRvIHRoZSBjb25maWcgZmlsZSwgd2hl biB0cnlpbmcgb3V0DQo+ID4gICAgIFVuY3J1c3RpZnksDQo+ID4gICAgICA+IGEgZmV3IG1vbnRo cyBhZ28sIG9uIE1pa2UgS2lubmV5J3Mgc3VnZ2VzdGlvbi4gSW4gbXkgZXhwZXJpZW5jZSwNCj4g PiAgICAgdGhlIG5ldw0KPiA+ICAgICAgPiBjb25maWcgZmlsZSByZWZsZWN0cyB0aGUgZWRrMiBj b2Rpbmcgc3R5bGUgYmV0dGVyLg0KPiA+ICAgICAgPg0KPiA+ICAgICAgPiBJbiBwYXJ0aWN1bGFy LCBpdCBhZGRzIHNwYWNlcyBiZXR3ZWVuIHRoaW5ncyBsaWtlICdpZicgYW5kIHRoZQ0KPiA+ICAg ICAgPiBwYXJlbnRoZXNpcywgYW5kIGJldHRlciBhbGlnbnMgZnVuY3Rpb25zJyBwYXJhbWV0ZXJz Lg0KPiA+ICAgICAgPiBGZWVsIGZyZWUgdG8gY2hlY2sgb3V0IHRoZSBkaWZmOg0KPiA+ICAgICAg PiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9oZWF0ZC81YmIwNDhhMTg4NzI2Y2I4YmM5ZjViNGE4 NDRiMGVjMg0KPiA+ICAgICA8aHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vaGVhdGQvNWJiMDQ4YTE4 ODcyNmNiOGJjOWY1YjRhODQ0YjBlYzI+DQo+ID4gICAgICA+IDxodHRwczovL2dpc3QuZ2l0aHVi LmNvbS9oZWF0ZC81YmIwNDhhMTg4NzI2Y2I4YmM5ZjViNGE4NDRiMGVjMg0KPiA+ICAgICA8aHR0 cHM6Ly9naXN0LmdpdGh1Yi5jb20vaGVhdGQvNWJiMDQ4YTE4ODcyNmNiOGJjOWY1YjRhODQ0YjBl YzI+Pi4NCj4gPiAgICAgID4gVGhlcmUncyBhIGJpdCBvZiBkaWZmIG5vaXNlIGR1ZSB0byBpdCBi ZWluZyBiYXNlZCBvbg0KPiA+ICAgICAgPg0KPiA+ICAgICBodHRwczovL2Rldi5henVyZS5jb20v cHJvamVjdG11L19naXQvVW5jcnVzdGlmeT9wYXRoPS9ldGMvZWRrMi5jZmcNCj4gPiAgICAgPGh0 dHBzOi8vZGV2LmF6dXJlLmNvbS9wcm9qZWN0bXUvX2dpdC9VbmNydXN0aWZ5P3BhdGg9L2V0Yy9l ZGsyLmNmZz4NCj4gPiAgICAgID4NCj4gPiAgICAgPGh0dHBzOi8vZGV2LmF6dXJlLmNvbS9wcm9q ZWN0bXUvX2dpdC9VbmNydXN0aWZ5P3BhdGg9L2V0Yy9lZGsyLmNmZw0KPiA+ICAgICA8aHR0cHM6 Ly9kZXYuYXp1cmUuY29tL3Byb2plY3RtdS9fZ2l0L1VuY3J1c3RpZnk/cGF0aD0vZXRjL2VkazIu Y2ZnPj4gYnV0DQo+ID4NCj4gPiAgICAgID4gZGlmZmVkIG9uDQo+ID4gICAgICA+DQo+ID4gICAg IGh0dHBzOi8vZ2l0aHViLmNvbS9tYWt1YmFja2kvZWRrMi9ibG9iL3VuY3J1c3RpZnlfcG9jXzIv LnVuY3J1c3RpZnkvZWRrMi5jZmcNCj4gPiAgICAgPGh0dHBzOi8vZ2l0aHViLmNvbS9tYWt1YmFj a2kvZWRrMi9ibG9iL3VuY3J1c3RpZnlfcG9jXzIvLnVuY3J1c3RpZnkvZWRrMi5jZmc+DQo+ID4N Cj4gPiAgICAgID4NCj4gPiAgICAgPGh0dHBzOi8vZ2l0aHViLmNvbS9tYWt1YmFja2kvZWRrMi9i bG9iL3VuY3J1c3RpZnlfcG9jXzIvLnVuY3J1c3RpZnkvZWRrMi5jZmcNCj4gPiAgICAgPGh0dHBz Oi8vZ2l0aHViLmNvbS9tYWt1YmFja2kvZWRrMi9ibG9iL3VuY3J1c3RpZnlfcG9jXzIvLnVuY3J1 c3RpZnkvZWRrMi5jZmc+Pi4NCj4gPiAgICAgID4NCj4gPiAgICAgID4gVGhhbmtzLA0KPiA+ICAg ICAgPiBQZWRybw0KPiA+ICAgICAgPg0KPiA+ICAgICAgPiBPbiBUdWUsIE5vdiAxNiwgMjAyMSBh dCA3OjI2IFBNIE1pY2hhZWwgS3ViYWNraQ0KPiA+ICAgICAgPiA8bWlrdWJhY2tAbGludXgubWlj cm9zb2Z0LmNvbQ0KPiA+ICAgICA8bWFpbHRvOm1pa3ViYWNrQGxpbnV4Lm1pY3Jvc29mdC5jb20+ DQo+ID4gICAgIDxtYWlsdG86bWlrdWJhY2tAbGludXgubWljcm9zb2Z0LmNvbQ0KPiA+ICAgICA8 bWFpbHRvOm1pa3ViYWNrQGxpbnV4Lm1pY3Jvc29mdC5jb20+Pj4gd3JvdGU6DQo+ID4gICAgICA+ DQo+ID4gICAgICA+wqAgwqAgwqBJIHRoaW5rIHRoYXQgbWFrZXMgc2Vuc2UuIEkgd2lsbCBsb29r IGludG8gaXQgZnVydGhlciBhbmQgbGV0DQo+ID4gICAgIHlvdSBrbm93DQo+ID4gICAgICA+wqAg wqAgwqBpZiB0aGVyZSdzIGFueSBkb3duc2lkZXMgZm91bmQuDQo+ID4gICAgICA+DQo+ID4gICAg ICA+wqAgwqAgwqBPbiAxMS8xNi8yMDIxIDI6MTggUE0sIEtpbm5leSwgTWljaGFlbCBEIHdyb3Rl Og0KPiA+ICAgICAgPsKgIMKgIMKgID4gQ291bGQgd2UgYWRkIHRoaXMgZmVhdHVyZSB0byB0aGUg VW5jcnVzdGlmeSBDSSBQbHVnaW4/DQo+ID4gICAgICA+wqAgwqAgwqAgPg0KPiA+ICAgICAgPsKg IMKgIMKgID4gTWlrZQ0KPiA+ICAgICAgPsKgIMKgIMKgID4NCj4gPiAgICAgID7CoCDCoCDCoCA+ PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ICAgICAgPsKgIMKgIMKgID4+IEZyb206 IE1pY2hhZWwgS3ViYWNraSA8bWlrdWJhY2tAbGludXgubWljcm9zb2Z0LmNvbQ0KPiA+ICAgICA8 bWFpbHRvOm1pa3ViYWNrQGxpbnV4Lm1pY3Jvc29mdC5jb20+DQo+ID4gICAgICA+wqAgwqAgwqA8 bWFpbHRvOm1pa3ViYWNrQGxpbnV4Lm1pY3Jvc29mdC5jb20NCj4gPiAgICAgPG1haWx0bzptaWt1 YmFja0BsaW51eC5taWNyb3NvZnQuY29tPj4+DQo+ID4gICAgICA+wqAgwqAgwqAgPj4gU2VudDog VHVlc2RheSwgTm92ZW1iZXIgMTYsIDIwMjEgMTA6NTQgQU0NCj4gPiAgICAgID7CoCDCoCDCoCA+ PiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPG1haWx0bzpkZXZlbEBlZGsyLmdyb3Vwcy5pbz4N Cj4gPiAgICAgPG1haWx0bzpkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8bWFpbHRvOmRldmVsQGVkazIu Z3JvdXBzLmlvPj47IEtpbm5leSwNCj4gPiAgICAgID7CoCDCoCDCoE1pY2hhZWwgRCA8bWljaGFl bC5kLmtpbm5leUBpbnRlbC5jb20NCj4gPiAgICAgPG1haWx0bzptaWNoYWVsLmQua2lubmV5QGlu dGVsLmNvbT4NCj4gPiAgICAgID7CoCDCoCDCoDxtYWlsdG86bWljaGFlbC5kLmtpbm5leUBpbnRl bC5jb20NCj4gPiAgICAgPG1haWx0bzptaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4+Pg0KPiA+ ICAgICAgPsKgIMKgIMKgID4+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gVW5jcnVzdGlmeSBj b25maWd1cmF0aW9uIGZpbGUgYW5kDQo+ID4gICAgICA+wqAgwqAgwqBmaWxlL2Z1bmN0aW9uIHRl bXBsYXRlcw0KPiA+ICAgICAgPsKgIMKgIMKgID4+DQo+ID4gICAgICA+wqAgwqAgwqAgPj4gSSB3 b3VsZCBwcmVmZXIgdG8gaGF2ZSBhIHNpbmdsZSB2ZXJzaW9uIG9mIHRoZSBmaWxlIGlmDQo+ID4g ICAgIHBvc3NpYmxlIHRvDQo+ID4gICAgICA+wqAgwqAgwqAgPj4gcmVkdWNlIHN5bmNocm9uaXph dGlvbiBpc3N1ZXMgYWNyb3NzIHRoZSB0d28gY29waWVzLg0KPiA+ICAgICAgPsKgIMKgIMKgID4+ DQo+ID4gICAgICA+wqAgwqAgwqAgPj4gSXQgc2VlbXMgdGhhdCBhIENJIHBsdWdpbiB0byByZWFk IHRoZSBjb250ZW50cyBvZiB0aGUNCj4gPiAgICAgdGVtcGxhdGUNCj4gPiAgICAgID7CoCDCoCDC oGZpbGVzIGFuZA0KPiA+ICAgICAgPsKgIMKgIMKgID4+IHNlYXJjaCBpbmNvbWluZyBjb2RlIGZv ciB0aGF0IHRleHQgd291bGRuJ3QgYmUgdG9vDQo+ID4gICAgIGRpZmZpY3VsdCB0bw0KPiA+ICAg ICAgPsKgIMKgIMKgYWRkIGFzIGENCj4gPiAgICAgID7CoCDCoCDCoCA+PiBuZXcgcGx1Z2luLg0K PiA+ICAgICAgPsKgIMKgIMKgID4+DQo+ID4gICAgICA+wqAgwqAgwqAgPj4gVGhhbmtzLA0KPiA+ ICAgICAgPsKgIMKgIMKgID4+IE1pY2hhZWwNCj4gPiAgICAgID7CoCDCoCDCoCA+Pg0KPiA+ICAg ICAgPsKgIMKgIMKgID4+IE9uIDExLzE2LzIwMjEgMTozMSBQTSwgTWljaGFlbCBEIEtpbm5leSB3 cm90ZToNCj4gPiAgICAgID7CoCDCoCDCoCA+Pj4gSGkgTWljaGFlbCwNCj4gPiAgICAgID7CoCDC oCDCoCA+Pj4NCj4gPiAgICAgID7CoCDCoCDCoCA+Pj4gU2hvdWxkIHdlIGhhdmUgMiB2ZXJzaW9u cyBvZiB0aGUgY29uZmlnIGZpbGU/DQo+ID4gICAgICA+wqAgwqAgwqAgPj4+DQo+ID4gICAgICA+ wqAgwqAgwqAgPj4+IE9uZSB1c2VkIGJ5IGF1dG9tYXRpb24gdG9vbHMgc3VjaCBhcyBDSSBhbmQg Z2l0IGhvb2tzDQo+ID4gICAgIHRoYXQgZG8NCj4gPiAgICAgID7CoCDCoCDCoG5vdCB1c2UgdGhl DQo+ID4gICAgICA+wqAgwqAgwqAgPj4+IHRlbXBsYXRlcy4NCj4gPiAgICAgID7CoCDCoCDCoCA+ Pj4NCj4gPiAgICAgID7CoCDCoCDCoCA+Pj4gQW5kIGFub3RoZXIgb25lIHRoYXQgYSBkZXZlbG9w ZXIgY2FuIG9wdGlvbmFsbHkgdXNlIHRoYXQNCj4gPiAgICAgd2lsbA0KPiA+ICAgICAgPsKgIMKg IMKgYWRkIHRoZQ0KPiA+ICAgICAgPsKgIMKgIMKgID4+PiB0ZW1wbGF0ZXMgZm9yIG1pc3Npbmcg ZmlsZS9mdW5jdGlvbiBoZWFkZXJzIHRoYXQgdGhlDQo+ID4gICAgIGRldmVsb3Blcg0KPiA+ICAg ICAgPsKgIMKgIMKgdGhlbiBuZWVkcw0KPiA+ICAgICAgPsKgIMKgIMKgID4+PiB0byBmaWxsIG91 dC4NCj4gPiAgICAgID7CoCDCoCDCoCA+Pj4NCj4gPiAgICAgID7CoCDCoCDCoCA+Pj4gT25lIGNv bmNlcm4gSSBoYXZlIGFib3V0IHRoZSB0ZW1wbGF0ZXMgaXMgaWYgdGhleSBnZXQNCj4gPiAgICAg dXNlZCBidXQNCj4gPiAgICAgID7CoCDCoCDCoGEgZGV2ZWxvcGVyDQo+ID4gICAgICA+wqAgwqAg wqAgPj4+IGRvZXMgbm90IGZpbGwgaW4gdGhlIG1pc3NpbmcgaW5mb3JtYXRpb24uwqAgSXQgd291 bGQgYmUNCj4gPiAgICAgYmVzdCBpZg0KPiA+ICAgICAgPsKgIMKgIMKgYSBDSSBjaGVjaw0KPiA+ ICAgICAgPsKgIMKgIMKgID4+PiByZWplY3RzIGEgZmlsZS9mdW5jdGlvbiBoZWFkZXIgdGhhdCBo YXMgbm90IGJlZW4gZmlsbGVkIGluLg0KPiA+ICAgICAgPsKgIMKgIMKgID4+Pg0KPiA+ICAgICAg PsKgIMKgIMKgID4+PiBNaWtlDQo+ID4gICAgICA+wqAgwqAgwqAgPj4+DQo+ID4gICAgICA+wqAg wqAgwqAgPj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ICAgICAgPsKgIMKgIMKg ID4+Pj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiAgICAgPG1haWx0bzpkZXZlbEBl ZGsyLmdyb3Vwcy5pbz4gPG1haWx0bzpkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+ICAgICA8bWFp bHRvOmRldmVsQGVkazIuZ3JvdXBzLmlvPj4NCj4gPiAgICAgID7CoCDCoCDCoDxkZXZlbEBlZGsy Lmdyb3Vwcy5pbyA8bWFpbHRvOmRldmVsQGVkazIuZ3JvdXBzLmlvPg0KPiA+ICAgICA8bWFpbHRv OmRldmVsQGVkazIuZ3JvdXBzLmlvIDxtYWlsdG86ZGV2ZWxAZWRrMi5ncm91cHMuaW8+Pj4gT24N Cj4gPiAgICAgQmVoYWxmIE9mDQo+ID4gICAgICA+wqAgwqAgwqBNaWNoYWVsIEt1YmFja2kNCj4g PiAgICAgID7CoCDCoCDCoCA+Pj4+IFNlbnQ6IFR1ZXNkYXksIE5vdmVtYmVyIDE2LCAyMDIxIDEw OjI1IEFNDQo+ID4gICAgICA+wqAgwqAgwqAgPj4+PiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8g PG1haWx0bzpkZXZlbEBlZGsyLmdyb3Vwcy5pbz4NCj4gPiAgICAgPG1haWx0bzpkZXZlbEBlZGsy Lmdyb3Vwcy5pbyA8bWFpbHRvOmRldmVsQGVkazIuZ3JvdXBzLmlvPj47DQo+ID4gICAgICA+wqAg wqAgwqBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20NCj4gPiAg ICAgPG1haWx0bzptaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiAgICAgID7CoCDCoCDC oDxtYWlsdG86bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20NCj4gPiAgICAgPG1haWx0bzptaWNo YWVsLmQua2lubmV5QGludGVsLmNvbT4+Pg0KPiA+ICAgICAgPsKgIMKgIMKgID4+Pj4gU3ViamVj dDogUmU6IFtlZGsyLWRldmVsXSBVbmNydXN0aWZ5IGNvbmZpZ3VyYXRpb24gZmlsZSBhbmQNCj4g PiAgICAgID7CoCDCoCDCoGZpbGUvZnVuY3Rpb24gdGVtcGxhdGVzDQo+ID4gICAgICA+wqAgwqAg wqAgPj4+Pg0KPiA+ICAgICAgPsKgIMKgIMKgID4+Pj4gSGkgTWlrZSwNCj4gPiAgICAgID7CoCDC oCDCoCA+Pj4+DQo+ID4gICAgICA+wqAgwqAgwqAgPj4+PiBUaG9zZSB3ZXJlIGp1c3QgZGlzYWJs ZWQgYmVjYXVzZSBJIHR5cGljYWxseSBydW4gYSBzZXBhcmF0ZQ0KPiA+ICAgICAgPsKgIMKgIMKg aW52b2NhdGlvbg0KPiA+ICAgICAgPsKgIMKgIMKgID4+Pj4gb2YgVW5jcnVzdGlmeSB3aXRoIHRo ZW0gZW5hYmxlZCB0byBpc29sYXRlIGNvZGUgd2hpY2gNCj4gPiAgICAgaXMgbWlzc2luZw0KPiA+ ICAgICAgPsKgIMKgIMKgID4+Pj4gZmlsZS9mdW5jdGlvbiBoZWFkZXJzLiBNeSB0aG91Z2h0IHdh cyB0aGUgdGVtcGxhdGVzIGFyZQ0KPiA+ICAgICAgPsKgIMKgIMKgaGVscGZ1bCBidXQgd2UNCj4g PiAgICAgID7CoCDCoCDCoCA+Pj4+IHdvdWxkIG5lZWQgdG8gaW5kaXZpZHVhbGx5IGlkZW50aWZ5 IHdoZXJlIHRoZXkgYXJlDQo+ID4gICAgIHBsYWNlZCB0bw0KPiA+ICAgICAgPsKgIMKgIMKgZmls ZSBUQ0Jacw0KPiA+ICAgICAgPsKgIMKgIMKgID4+Pj4gZm9yIG1haW50YWluZXJzIHRvIHJlcGxh Y2UgdGhlIHRlbXBsYXRlIHdpdGggdGhlIGFjdHVhbA0KPiA+ICAgICAgPsKgIMKgIMKgaW5mb3Jt YXRpb24uDQo+ID4gICAgICA+wqAgwqAgwqAgPj4+Pg0KPiA+ICAgICAgPsKgIMKgIMKgID4+Pj4g SW4gc29tZSBvZiBteSBwcmV2aW91cyBwb2MgYnJhbmNoZXMgKGxpa2UNCj4gPiAgICAgID7CoCDC oCDCoCA+Pj4+DQo+ID4gICAgICA+DQo+ID4gICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9tYWt1YmFj a2kvZWRrMi9jb21taXRzL3VuY3J1c3RpZnlfcG9jXzNfd2l0aF9oZWFkZXJzDQo+ID4gICAgIDxo dHRwczovL2dpdGh1Yi5jb20vbWFrdWJhY2tpL2VkazIvY29tbWl0cy91bmNydXN0aWZ5X3BvY18z X3dpdGhfaGVhZGVycz4NCj4gPiAgICAgID4NCj4gPiAgICAgIMKgPGh0dHBzOi8vZ2l0aHViLmNv bS9tYWt1YmFja2kvZWRrMi9jb21taXRzL3VuY3J1c3RpZnlfcG9jXzNfd2l0aF9oZWFkZXJzDQo+ IDxodHRwczovL2dpdGh1Yi5jb20vbWFrdWJhY2tpL2VkazIvY29tbWl0cy91bmNydXN0aWZ5X3Bv Y18zX3dpdGhfaGVhZGVycz4+KSwNCj4gPiAgICAgID7CoCDCoCDCoEkNCj4gPiAgICAgID7CoCDC oCDCoCA+Pj4+IGFsc28gcHVzaGVkIGEgYnJhbmNoIHdpdGggdGhvc2UgcmVzdWx0cy4NCj4gPiAg ICAgID7CoCDCoCDCoCA+Pj4+DQo+ID4gICAgICA+wqAgwqAgwqAgPj4+PiBTbyBJIGRvIHRoaW5r IHdlIHdvdWxkIHdhbnQgdGhlbSBlbmFibGVkIGluIHRoZSBmaW5hbA0KPiA+ICAgICBjb25maWcN Cj4gPiAgICAgID7CoCDCoCDCoGZpbGUuIFdlDQo+ID4gICAgICA+wqAgwqAgwqAgPj4+PiBjYW4g YWxzbyByZXZpZXcgdGhlIGNvbnRlbnRzIG9mIHRoZSB0ZW1wbGF0ZXMgaW4gdGhlIGZ1dHVyZQ0K PiA+ICAgICAgPsKgIMKgIMKgcGF0Y2ggc2VyaWVzDQo+ID4gICAgICA+wqAgwqAgwqAgPj4+PiB0 byBzZWUgaWYgYW55IGNoYW5nZXMgYXJlIHJlY29tbWVuZGVkLg0KPiA+ICAgICAgPsKgIMKgIMKg ID4+Pj4NCj4gPiAgICAgID7CoCDCoCDCoCA+Pj4+IEkgcHJlZmVyIHVzaW5nIGEgLnVuY3J1c3Rp ZnkgZGlyZWN0b3J5IHRvIGhlbHAgZ3JvdXANCj4gPiAgICAgcmVsYXRlZA0KPiA+ICAgICAgPsKg IMKgIMKgY29sbGF0ZXJhbA0KPiA+ICAgICAgPsKgIMKgIMKgID4+Pj4gYnV0IEkgZG9uJ3QgaGF2 ZSBhIHN0cm9uZyBvcGluaW9uIHRoZXJlLg0KPiA+ICAgICAgPsKgIMKgIMKgID4+Pj4NCj4gPiAg ICAgID7CoCDCoCDCoCA+Pj4+IFRoYW5rcywNCj4gPiAgICAgID7CoCDCoCDCoCA+Pj4+IE1pY2hh ZWwNCj4gPiAgICAgID7CoCDCoCDCoCA+Pj4+DQo+ID4gICAgICA+wqAgwqAgwqAgPj4+PiBPbiAx MS8xNi8yMDIxIDEyOjE2IFBNLCBNaWNoYWVsIEQgS2lubmV5IHdyb3RlOg0KPiA+ICAgICAgPsKg IMKgIMKgID4+Pj4+IEhpIE1pY2hhZWwsDQo+ID4gICAgICA+wqAgwqAgwqAgPj4+Pj4NCj4gPiAg ICAgID7CoCDCoCDCoCA+Pj4+PiBJbiB5b3VyIFBPQyBicmFuY2gNCj4gPiAgICAgID7CoCDCoCDC oChodHRwczovL2dpdGh1Yi5jb20vbWFrdWJhY2tpL2VkazIvdHJlZS91bmNydXN0aWZ5X3BvY181 DQo+ID4gICAgIDxodHRwczovL2dpdGh1Yi5jb20vbWFrdWJhY2tpL2VkazIvdHJlZS91bmNydXN0 aWZ5X3BvY181Pg0KPiA+ICAgICAgPsKgIMKgIMKgPGh0dHBzOi8vZ2l0aHViLmNvbS9tYWt1YmFj a2kvZWRrMi90cmVlL3VuY3J1c3RpZnlfcG9jXzUNCj4gPiAgICAgPGh0dHBzOi8vZ2l0aHViLmNv bS9tYWt1YmFja2kvZWRrMi90cmVlL3VuY3J1c3RpZnlfcG9jXzU+PiksIEkgc2VlIHRoZQ0KPiA+ ICAgICAgPsKgIMKgIMKgID4+Pj4+IHVuY3J1c3RpZnkuY2ZnIGNvbmZpZ3VyYXRpb24gZmlsZSBp biB0aGUgcm9vdC4NCj4gPiAgICAgID7CoCDCoCDCoCA+Pj4+Pg0KPiA+ICAgICAgPsKgIMKgIMKg ID4+Pj4+DQo+ID4gICAgICA+DQo+ID4gICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9tYWt1YmFja2kv ZWRrMi9ibG9iL3VuY3J1c3RpZnlfcG9jXzUvdW5jcnVzdGlmeS5jZmcNCj4gPiAgICAgPGh0dHBz Oi8vZ2l0aHViLmNvbS9tYWt1YmFja2kvZWRrMi9ibG9iL3VuY3J1c3RpZnlfcG9jXzUvdW5jcnVz dGlmeS5jZmc+DQo+ID4gICAgICA+DQo+ID4gICAgICDCoDxodHRwczovL2dpdGh1Yi5jb20vbWFr dWJhY2tpL2VkazIvYmxvYi91bmNydXN0aWZ5X3BvY181L3VuY3J1c3RpZnkuY2ZnDQo+IDxodHRw czovL2dpdGh1Yi5jb20vbWFrdWJhY2tpL2VkazIvYmxvYi91bmNydXN0aWZ5X3BvY181L3VuY3J1 c3RpZnkuY2ZnPj4NCj4gPiAgICAgID7CoCDCoCDCoCA+Pj4+Pg0KPiA+ICAgICAgPsKgIMKgIMKg ID4+Pj4+IEhvd2V2ZXIsIGluIHlvdXIgV2lraSwgeW91IHByb3ZpZGUgZXhhbXBsZXMgd2hlcmUg dGhpcw0KPiA+ICAgICAgPsKgIMKgIMKgY29uZmlndXJhdGlvbiBmaWxlIGlzIGluIGFuDQo+ID4g ICAgICA+wqAgwqAgwqAgPj4+Pj4gLnVuY3J1c3RpZnkgZGlyZWN0b3J5DQo+ID4gICAgICA+wqAg wqAgwqAgPj4+Pj4NCj4gPiAgICAgID7CoCDCoCDCoCA+Pj4+Pg0KPiA+ICAgICAgPg0KPiA+ICAg ICBodHRwczovL2Rldi5henVyZS5jb20vcHJvamVjdG11L1VuY3J1c3RpZnkvX3dpa2kvd2lraXMv VW5jcnVzdGlmeS53aWtpLzEvUHJvamVjdC1NdS0oRURLLUlJKS1Gb3JrLVJlYWRtZQ0KPiA+ICAg ICA8aHR0cHM6Ly9kZXYuYXp1cmUuY29tL3Byb2plY3RtdS9VbmNydXN0aWZ5L193aWtpL3dpa2lz L1VuY3J1c3RpZnkud2lraS8xL1Byb2plY3QtTXUtKEVESy1JSSktRm9yay1SZWFkbWU+DQo+ID4g ICAgICA+DQo+ID4gICAgICDCoDxodHRwczovL2Rldi5henVyZS5jb20vcHJvamVjdG11L1VuY3J1 c3RpZnkvX3dpa2kvd2lraXMvVW5jcnVzdGlmeS53aWtpLzEvUHJvamVjdC1NdS0oRURLLUlJKS1G b3JrLVJlYWRtZQ0KPiA8aHR0cHM6Ly9kZXYuYXp1cmUuY29tL3Byb2plY3RtdS9VbmNydXN0aWZ5 L193aWtpL3dpa2lzL1VuY3J1c3RpZnkud2lraS8xL1Byb2plY3QtTXUtKEVESy1JSSktRm9yay1S ZWFkbWU+Pg0KPiA+ICAgICAgPsKgIMKgIMKgID4+Pj4+DQo+ID4gICAgICA+wqAgwqAgwqAgPj4+ Pj4gVGhlIHVuY3J1c3RpZnkuY2ZnIGZpbGVzIGFsc28gY29udGFpbnMgY29tbWVudGVkIG91dA0K PiA+ICAgICBzZXR0aW5ncw0KPiA+ICAgICAgPsKgIMKgIMKgZm9yIHRoZSBmaWxlIGhlYWRlcg0K PiA+ICAgICAgPsKgIMKgIMKgID4+Pj4+IGFuZCBmdW5jdGlvbiBoZWFkZXIgdGVtcGxhdGVzLg0K PiA+ICAgICAgPsKgIMKgIMKgID4+Pj4+DQo+ID4gICAgICA+wqAgwqAgwqAgPj4+Pj7CoCDCoCDC oCDCoCAjIGNtdF9pbnNlcnRfZmlsZV9oZWFkZXLCoCDCoCDCoCDCoCDCoCA9DQo+ID4gICAgICA+ wqAgwqAgwqBkZWZhdWx0X2ZpbGVfaGVhZGVyLnR4dA0KPiA+ICAgICAgPsKgIMKgIMKgID4+Pj4+ wqAgwqAgwqAgwqAgIyBjbXRfaW5zZXJ0X2Z1bmNfaGVhZGVywqAgwqAgwqAgwqAgwqAgPQ0KPiA+ ICAgICAgPsKgIMKgIMKgZGVmYXVsdF9mdW5jdGlvbl9oZWFkZXIudHh0DQo+ID4gICAgICA+wqAg wqAgwqAgPj4+Pj4NCj4gPiAgICAgID7CoCDCoCDCoCA+Pj4+PiBBcmUgdGhlc2UgZGlzYWJsZWQg b24gcHVycG9zZT8NCj4gPiAgICAgID7CoCDCoCDCoCA+Pj4+Pg0KPiA+ICAgICAgPsKgIMKgIMKg ID4+Pj4+IERvIHdlIHdhbnQgdG8gZW5hYmxlIHRoZW0/wqAgSWYgc28sIHNob3VsZCB0aGUgdW5j cnVzdGlmeQ0KPiA+ICAgICAgPsKgIMKgIMKgY29uZmlndXJhdGlvbiBmaWxlDQo+ID4gICAgICA+ wqAgwqAgwqAgPj4+Pj4gYW5kIHRoZSB0ZW1wbGF0ZXMgZ28gaW50byBhIC51bmNydXN0aWZ5IGRp cmVjdG9yeT8NCj4gPiAgICAgID7CoCDCoCDCoCA+Pj4+Pg0KPiA+ICAgICAgPsKgIMKgIMKgID4+ Pj4+IFRoYW5rcywNCj4gPiAgICAgID7CoCDCoCDCoCA+Pj4+Pg0KPiA+ICAgICAgPsKgIMKgIMKg ID4+Pj4+IE1pa2UNCj4gPiAgICAgID7CoCDCoCDCoCA+Pj4+Pg0KPiA+ICAgICAgPsKgIMKgIMKg ID4+Pj4+DQo+ID4gICAgICA+wqAgwqAgwqAgPj4+Pj4NCj4gPiAgICAgID7CoCDCoCDCoCA+Pj4+ Pg0KPiA+ICAgICAgPsKgIMKgIMKgID4+Pj4+DQo+ID4gICAgICA+wqAgwqAgwqAgPj4+Pj4NCj4g PiAgICAgID7CoCDCoCDCoCA+Pj4+Pg0KPiA+ICAgICAgPsKgIMKgIMKgID4+Pj4NCj4gPiAgICAg ID7CoCDCoCDCoCA+Pj4+DQo+ID4gICAgICA+wqAgwqAgwqAgPj4+Pg0KPiA+ICAgICAgPsKgIMKg IMKgID4+Pj4NCj4gPiAgICAgID7CoCDCoCDCoCA+Pj4NCj4gPiAgICAgID7CoCDCoCDCoCA+Pj4N Cj4gPiAgICAgID7CoCDCoCDCoCA+Pj4NCj4gPiAgICAgID7CoCDCoCDCoCA+Pj4NCj4gPiAgICAg ID7CoCDCoCDCoCA+Pj4NCj4gPiAgICAgID7CoCDCoCDCoCA+Pj4NCj4gPiAgICAgID4NCj4gPiAg ICAgID4NCj4gPiAgICAgID4NCj4gPiAgICAgID4NCj4gPiAgICAgID4NCj4gPiAgICAgID4NCj4g PiAgICAgID4NCj4gPiAgICAgID4gLS0NCj4gPiAgICAgID4gUGVkcm8gRmFsY2F0bw0KPiA+ICAg ICAgPg0KPiA+DQo+ID4NCj4gPg0KPiA+IC0tDQo+ID4gUGVkcm8gRmFsY2F0bw0KPiANCj4gDQo+ IA0KPiANCg0K