From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mx.groups.io with SMTP id smtpd.web08.5477.1638490724230717733 for ; Thu, 02 Dec 2021 16:18:44 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=V+zNpkMA; spf=pass (domain: intel.com, ip: 192.55.52.93, mailfrom: michael.d.kinney@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10186"; a="234385970" X-IronPort-AV: E=Sophos;i="5.87,283,1631602800"; d="scan'208";a="234385970" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Dec 2021 16:18:43 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,283,1631602800"; d="scan'208";a="460679014" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by orsmga006.jf.intel.com with ESMTP; 02 Dec 2021 16:18:42 -0800 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Thu, 2 Dec 2021 16:18:42 -0800 Received: from fmsmsx608.amr.corp.intel.com (10.18.126.88) 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.2308.20; Thu, 2 Dec 2021 16:18:41 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx608.amr.corp.intel.com (10.18.126.88) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20 via Frontend Transport; Thu, 2 Dec 2021 16:18:41 -0800 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.177) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.20; Thu, 2 Dec 2021 16:18:41 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mSCR+et9DtP9pG5UWIJ41UTDglorFNsJSDk4BsLPOEOuZkooNYAV8kJI71xkFQ9PG+RkRuqQgyad/4rUE6WPtCJzJ07xE1cS/keTiiCjytUBxjfyeb9fX7FkBynPYcRm9UKN3iD1jtbQARQEduu9r21snqzNwADH6bEdzjxzPQ+cOV/53BFBDyQzbgqnkK1xSqQ91lysTn6Te7E/qV71HsKI47LcoM3nX70J0lHRAB8cV3KEpTaCUZ5ZRvZe2U+D4vFhd0TVedoLPBzVVunJwGDsQU6uKsvsnlVCyKrH6YeBM89lawCXEmVdAkjBvBJgxUioJmYT07lO5Pdkdk3mYw== 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=5a8ktP/ogbP5f8rmDNIXvHS5Pijza2FD5mMI8QK/Jqw=; b=ISsRs0AYuvrjZuFlvQwFWqMghCuGwSstMBc7rnLfaZbq4MKuQakXik0xM5O7e28x73346Gquhy2jffVkn19J7hP7gdY1/4VkPata2GDRcolSFBVMWAg5ZJLy2sjDBu91Rp5Qa/twRpM4u+nIHaKbUFR7094jDxTCcgWKZZl78xF1jiGPiUM6naXyVuNwfbVwxFBOBnPM0WijFSuhBHzn7uLMYdmvasOa2p1r67z6BgsndR2A1HKH/HrpxqYV8stU7whBu8oBIu4LJnoVwmg9uL1grNoqQB1IMImCWs7y8rhN3NVU0WBNHrYYeU8S3eACj4YQIFo3s4WPJiBTlo+Ppg== 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=5a8ktP/ogbP5f8rmDNIXvHS5Pijza2FD5mMI8QK/Jqw=; b=V+zNpkMALGIDVsmtpi3l6U+FSPtLg+R4QHsEdon9fEvxP5UbB86WMNa5ETHS2IbpPnegJ4sev66G8uji9uOaiAPyNAC88QouYvEtXk5DLp0V9fkwzKDjCupxBvZSudiiZsKTuhOVWPVqpVRgJO3lTGxKEyfnYxIM04S3gVKSe2g= Received: from CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by CO1PR11MB4788.namprd11.prod.outlook.com (2603:10b6:303:97::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.16; Fri, 3 Dec 2021 00:18:39 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::69f8:2c79:e2cc:540b]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::69f8:2c79:e2cc:540b%5]) with mapi id 15.20.4755.016; Fri, 3 Dec 2021 00:18:39 +0000 From: "Michael D Kinney" To: Michael Kubacki , "devel@edk2.groups.io" , "maciej.rabeda@linux.intel.com" , Michael Kubacki , "Andrew Fish (afish@apple.com)" , Leif Lindholm , "Kinney, Michael D" Subject: Re: [edk2-devel] Uncrustify Conversion Detailed Plan and Extended Hard Freeze Update #4 Thread-Topic: [edk2-devel] Uncrustify Conversion Detailed Plan and Extended Hard Freeze Update #4 Thread-Index: AdfmOWCyfXuiEmhuTGylC9CIqCR+HABcNwIAAAFtMWAABeKxAAADzZPQAAEgLnA= Date: Fri, 3 Dec 2021 00:18:39 +0000 Message-ID: References: <6f929e61-6b8f-9ac5-5184-a9949c9fae75@linux.intel.com> <438f9138-641b-4973-bca3-cad990526cee@linux.microsoft.com> In-Reply-To: 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: 157c51dd-d476-43f9-1cfb-08d9b5f27493 x-ms-traffictypediagnostic: CO1PR11MB4788: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: paVbPLl1sap1JTdFYTd0peR0ZrhWWTvEQdeFw1G0ar1foJF9d5wLdhFw58LnBSbJaUaWHIvL6Y101H419sch+nSYx8/PY5hswFSb2/nwdRkpRkcSTVe5ME9rmVy2dt6hdYWK5clkdq6uW9t2F7h3arP3Kj6bCAZIYgvyZvaIC7VVs8bWx9FwMfogQM9uJw07IG+ELgj9Cn+bKl22TL1268eAfRNWjvBkA+pz8IvJI0+NAwyw8zRlfrDYCjzjpF1GaKIgr9/dVMR6fvptcmXoIsnvFAhlKyQ/mc0hfmErOQnQsJ/oD6shZjmCl53KFdXUgjjTtITgVr5jPNCbRaM/o2NcvsF7KigMDyzA6tRiwDk4aPqnT6ltfnjlD176VxpmC1wzsZ+k/iBlBTBJKbScR8F70qgzYmdJ5Vfj1AlPCgGdFBaNI4+AHU71YMxnezjVSsKEjPO0P3O9pN4R9rx5RjXqdW1ldbti7H3hXmFQWrhVNgL+hX4vkeGEvP2l3QChJdha7VeRMJG6D7w75i0e3eDU/0YM7c/ARlOS5yzhTn8DPQBMdb+0EvD0GEtUt+E+LuvBiaHtOiESF05PCQFNIfCZOl2eO+8v22qrnGBNHcasKr2BYMcpkW7GB9WyFaVvwOl4PyR659X/JelRumPpUjvmYfENZVLdDS5yQANK3Tiib6QKHzPSUFPEJkWQ9Qos2Fgl5mbnm6XiF4ki5v9obPwe9KmciTfUvcPHzVFUChPbUD+O7HFEo/BQpJlq49BfezrRS5cnpTO1Ir3kewJg1ug9Ditq2+qLHY6Rxsl+PGyy34RNEgi4Dnd7ZKrTodjw1uC3zzxwJu2hjhgDQ0IKgZopedlJy27urqMyrnoLdpIM21qgaQfovPADAlhaKJwf x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4929.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(2940100002)(9686003)(30864003)(86362001)(15650500001)(8676002)(2906002)(5660300002)(76116006)(55016003)(122000001)(8936002)(38070700005)(508600001)(66556008)(71200400001)(53546011)(966005)(26005)(83380400001)(110136005)(64756008)(52536014)(7696005)(66946007)(66476007)(316002)(186003)(66446008)(33656002)(38100700002)(82960400001)(6506007)(547064002)(559001)(579004)(460985005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dys2NXNOVm4wYmRvdERIS0dnUjJSZ1k5VSs3Qm1OWmpOYzZaRnphQkVCZUY0?= =?utf-8?B?aml6Uyt4dFg0U25YbW54d3NJVVN0WVJuNWxOdXhWV1dqWFNrbmRnWm1pTi94?= =?utf-8?B?ZnZRSHpYVVlNSXJia2tocDlFZ29GalRBd2FYQURadmlWbStvenNvdytvNWt5?= =?utf-8?B?L285T05IdVVXMi9Tb0c3aUUyYlEzRThTYnRGSHJpU1krY1JKejVtLytodi9t?= =?utf-8?B?djRNdHRCVU9VL0VyclYyRUl4cWVFanVoUEl0cWVLN2dFUUxST2FPNFg3Ymp3?= =?utf-8?B?Tnc3K0JBNE1QbGtvUGxKMGZRRzJ1cDEvZTRQYVJxemhKa25zMjUyd2l2SHlU?= =?utf-8?B?bVpyTmN2YlowL2NscWwwb0RVeXJkMWQ0TDFyazlYRDFpYjBPQnowY3IrcjI3?= =?utf-8?B?cW5XRnBGQU8wWjEyN2piSXYreFJ6bi8wb0FIQVRPSjRqamhPdko3ejNjK0Yr?= =?utf-8?B?dTNIakVXNFJoL0hEcnVuMzVxS1ZxL3dDR2NlV3FSOENSMm8xSXQ5SlY0NG9T?= =?utf-8?B?Mm5oUHBld29GTVdkNEkzWVJHNFBYTEIwN0phUjlsK0lTS2FHcUtJNDJzZUVl?= =?utf-8?B?ZFprckNUZFdzMDd6NWN5UjZpcUl5NVRvc3luSjJ3TjNXOG1raWdZQVJLdVJP?= =?utf-8?B?ci93SWR1V0RDeE0xU01rTCs5a0d6MVJqdjNOSWVlZmIxSEpHNnZ4WTIwa2o5?= =?utf-8?B?RDJtcnIwN3BQR2p1cDBJVjl6RjU5NEdiODZzc0ZRb0U3cDd6V1pkWDNzcHo5?= =?utf-8?B?MHpxbkQ2WVNEVE8zYW53eGRJZ2Z0QmlIaHNjYWdYaEs5eERBZUVxbTd5QlRh?= =?utf-8?B?UnZiUm9RUkVnVlhxM3hKaEtyTWFHYkwzNjc2Tmxna1F3dTBqbGZsWVhOZ2RE?= =?utf-8?B?SlE4S3RTQU85anZLS04yaDAxTVRNK0xJdUJwTURlZ0d2cXRDMnZWNWN0Tkwx?= =?utf-8?B?NVR6RHdZcVNDdHZvWWZROFVXdDZYWHVzZWdERDMzam9OeTB3V1lMZlBVMVI4?= =?utf-8?B?aHhtN3Y2dGUyKzNaWHJXanNqa2thSEFIZTBMTUdua0VCT284aGJKOWZldVY4?= =?utf-8?B?dEpqOW9vQVU2OHVodkRLdmxHMWpmNGRXVklVd2FtNUsxRHVkVlpnNFlYTzhr?= =?utf-8?B?L0d6QUlTU2prQll5YkQ2MGxvbTJVUjhSRDd3QTdwM1YxZ2k3Z05JeXpPdUk5?= =?utf-8?B?UVZXN0VBU1Z3VlluMi9Gc3RIZkYrZFJoZEpsOU1nRURPRXRFbldKQjZKdlFQ?= =?utf-8?B?QWlEMFFvSXJ5ZW95dVBabElCU3FrVTRNUDFCeGFNaVpvU09CcWVjQklpVFFh?= =?utf-8?B?L1FndFFrOFljQ3Njdk0vbi9aT1RvQklsejczNzNnZlI5bW9LLzRsSFNPaGU3?= =?utf-8?B?eWZTdDIwN0RmQnU5K1NkOFluUVRaMWpieTlEeDYwaEtNQ0xrUC9XL3pkaDIy?= =?utf-8?B?Z0M5MUVXWUp1TjdZNXErNGFGU0RoMkhCd1ZWUnlkUDA5c2pMbW5EbUJDQU9w?= =?utf-8?B?N3RpQmZmZEJSSnhVWityNHZBL0xGVHduNTJHaGJ2aEc2THhKRFRZR01SVDZT?= =?utf-8?B?VDF0eTkvcWRvK0JLRW0rKzl6YVRwZWxkcDZJU1JZdWY5a1gwR2N6ek1SblVy?= =?utf-8?B?TnBLdXE5cUlId2I5dE5MTzRmbDlzMUdaY1pNd3hnRkhoSUc4a2c3aWJYRi9B?= =?utf-8?B?V3E2SFJaSWZDWnBzbDVndnFlL1RyeHJRTXR4SnhTUlFVOEh2QlQ0T2loZlhI?= =?utf-8?B?WkN6RkdEU2ladWZKUHJWZUxadUE1SE1odnZMK1VBeW9Bd0p5RU9zZUdBRVB6?= =?utf-8?B?YmoxRndFRjdSb1EwTnIwd2JFaU9ONlFXSW91TlZWN2hleHJqRlFKWnkyRXU0?= =?utf-8?B?QzQ3Y2VRcUtVMGNxeG0xQi81aENoK0pRZUJmbEhDaEE1ZU95RUllUERmcVpm?= =?utf-8?B?VTJIaDJtZWhyOHFMS2JvZTBmOUZvVnRPVU9aNmxyWDlLZkFpNm1pcjd3S1VS?= =?utf-8?B?cEtlbDY0WjFBMXJPOFNqdUhIN1U4NG1mcEIxU2tXeUQ3eW5XYWgyd21kdjBI?= =?utf-8?B?cVNWazdpSkRnU05qZEdTT21rcjF3bXo3WHJCbzZTaDhWWGFoWHp6Ri9Na1Mx?= =?utf-8?B?L0VsTzM5WGxLTjNxVnBILzZrSXJEbk5TbnJKMlo2Y29PejBmcCtadlpuNmtz?= =?utf-8?B?NkkwNVc1cTJESENCaHByS1Z0bG9JWlVWczBqRWYxRnFxT3k4ZUZRVzlGWFVk?= =?utf-8?B?VklmaTNhbzlYVEV5ZWQ2WlBHTVdRPT0=?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4929.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 157c51dd-d476-43f9-1cfb-08d9b5f27493 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Dec 2021 00:18:39.1053 (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: jIcZfn/QhKn94oXDCsJ9R39weuE/tg9S8DuFs881oDBYTy2NMSIzGtiwCPpRPd4lvOx7a2v6+akxeCAX2YGZzlpvETNvQD4Ou+qvtgrUWLw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR11MB4788 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 SGkgTWljaGFlbCwNCg0KQ09SUkVDVElPTjogc2V0IGFsaWduX2Fzc2lnbl90aHJlc2hvbGQgdG8g MC4NCg0KUmVwb25zZXMgaW5saW5lIGJlbG93Lg0KDQpJIHdvdWxkIGxpa2UgdG8gc3VtbWFyaXpl IHRoZSA0IGlzc3VlcyByYWlzZWQgaW4gdGhlIHBhc3QgZGF5IGFsb25nIHdpdGggdGhlIHJlY29t bWVuZGF0aW9ucy4NCg0KMSkgRXhjbHVzaW9uIGZlYXR1cmUgZm9yIFVuY3J1c3RpZnlDaGVjay4g IFRoZXJlIGFyZSAyIGRpcmVjdG9yaWVzIHdpdGggOCBmaWxlcyB0b3RhbCB0aGF0DQogICBtYWlu dGFpbmVycyBoYXZlIG5vdGVkIHRoZXkgd291bGQgbGlrZSB0byBzZWUgbm90IGdvIHRocm91Z2gg dW5jcnVzdGlmeSBmb3JtYXR0aW5nLiAgVG9kYXkNCiAgIHRoZSBvbmx5IGNvbnRlbnQgdGhhdCBp cyBza2lwcGVkIGlzIEJhc2VUb29scyBhbmQgc3VibW9kdWxlcy4gIA0KDQogICBBZGRpbmcgYSBn ZW5lcmFsIHB1cnBvc2UgZXhjbHVzaW9uIGZlYXR1cmUgd291bGQgdGhlbiByZXF1aXJlIGFsbCBk ZXZlbG9wZXJzIHRvIG1ha2UgDQogICBzdXJlIHRoZWlyIG1ldGhvZCBvZiB1c2luZyB1bmNydXN0 aWZ5IGFsc28gZXhjbHVkZXMgdGhvc2Ugc2FtZSBhcmVhcy4gIFRoaXMgcmVxdWlyZXMNCiAgIGV4 dHJhIHN0ZXBzIGZvciBhbGwgZGV2ZWxvcGVycyBhbmQgbWFpbnRhaW5lcnMuDQoNCiAgIElmIHdl IGRvIG5vdCBhZGQgdGhlIGV4Y2x1c2lvbiBmZWF0dXJlLCB0aGVuIHRoZSA4IGZpbGVzIHdpbGwg cmVxdWlyZSBhbiBleHRyYSBzdGVwDQogICB0byBzeW5jIHdpdGggdGhlIG9yaWdpbmFsIHNvdXJj ZSBvZiB0aG9zZSBmaWxlcy4gIFRoZSByYXRlIG9mIGNoYW5nZXMgb2YgdGhlc2UgOCBmaWxlcw0K ICAgaXMgdmVyeSBsb3cgdG9kYXkuDQoNCiAgIFJFQ09NTUVOREFUSU9OOiBEbyBub3QgYWRkIGV4 Y2x1c2lvbiBmZWF0dXJlIGF0IHRoaXMgdGltZS4gIFJldmlzaXQgaWYgdGhlIGV4dHJhIHdvcmsN CiAgIHRvIG1haW50YWluIHRoZSBmaWxlcyB0aGF0IHdvdWxkIGJlIGNhbmRpZGF0ZXMgZm9yIGV4 Y2x1c2lvbnMgaW5jcmVhc2VzIHNpZ25pZmljYW50bHkuDQoNCjIpIEFsaWdubWVudCBvZiBhc3Np Z25tZW50cy4gIFRoZSB0aHJlc2hvbGQgb2YgNCBjaGFyYWN0ZXJzIGFwcGVhcnMgdG8gYmUgdG9v IGxvdyBhbmQgY2F1c2VzDQogICBzb3VyY2UgZmlsZXMgdGhhdCBhcmUgYWxyZWFkeSBhbGlnbmVk IHRvIGJlY29tZSB1bmFsaWduZWQuDQoNCiAgIFJFQ09NTUVOREFUSU9OOiBDaGFuZ2UgdGhyZXNo b2xkIHRvIHRoZSBkZWZhdWx0IHZhbHVlIG9mIDAgd2hpY2ggbWVhbnMgbm8gbGltaXQuDQoNCiAg ICAgICBhbGlnbl9hc3NpZ25fdGhyZXNoPSAwDQoNCjMpIEFsaWdubWVudCBvZiBwYXJhbWV0ZXJz IGluIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG5vdCBjb3JyZWN0LiAgVGhlIHJvb3QgY2F1c2Ugb2Yg dGhpcyANCiAgIGlzIHRoZSB1c2Ugb2YgdGhlIE9QVElPTkFMIGtleXdvcmQuICBJZiB0aGUgT1BU SU9OQUwga2V5d29yZCBpcyByZW1vdmVkLCB0aGVuIHRoZSANCiAgIGFsaWdubWVudCBpcyBjb3Jy ZWN0LiAgVGhlIGFsaWdubWVudCBpcyBhbHNvIGNvcnJlY3QgaWYgdGhlIE9QVElPTkFMIGtleXdv cmQgYXBwZWFycw0KICAgYmVmb3JlIHRoZSAnLCcuICBJZiB0aGUgT1BUSU9OQUwga2V5d29yZCBh cHBlYXJzIGFmdGVyIHRoZSAnLCcsIHRoZW4gdGhlIGZvcm1hdCBpcyANCiAgIG5vdCBjb3JyZWN0 LiAgVGhlIE9QVElPTkFMIGtleXdvcmQgaW5kaWNhdGVzIHRoYXQgdGhlIHBhcmFtZXRlciBpbiB0 aGUgZnVuY3Rpb24gaXMNCiAgIG5vdCByZXF1aXJlZCBhbmQgbWF5IGJlIHBhc3NlZCBpbiBhcyBO VUxMIG9yIDAgb3Igc29tZSBvdGhlciBkZWZhdWx0IHZhbHVlIGRlZmluZWQgYnkNCiAgIHRoZSBB UEkuICBJdCBtYWtlcyBtb3JlIHNlbnNlIGZvciB0aGlzIE9QVElPTkFMIGtleXdvcmQgdGhhdCBm b2xsb3dzIHRoZSBwYXJhbWV0ZXINCiAgIG5hbWVzIHRvIGFwcGVhciBiZWZvcmUgdGhlICcsJyBz byBpdCBpcyBzY29wZWQgdG8gdGhlIHBhcmFtZXRlciBvbiB0aGF0IGxpbmUuICBJZiBpdA0KICAg YXBwZWFycyBhZnRlciB0aGUgJywnLCB0aGVuIEMgcGFyc2VycyB0aGlua3MgaXQgaXMgYSBwcmVm aXggKElOLCBPVVQsIENPTlNULCB2b2xhdGlsZSwNCiAgIHN0YXRpYykgZm9yIHRoZSBuZXh0IHBh cmFtZXRlciBpbiB0aGUgZnVuY3Rpb24uDQoNCiAgIFJFQ09NTUVOREFUSU9OOiBVcGRhdGUgcGF0 Y2ggc2VyaWVzIHdpdGggYSBnbG9iYWwgc2VhcmNoIGFuZCByZXBsYWNlIHNvIE9QVElPTkFMDQog ICBrZXl3b3JkIGFsd2F5cyBhcHBlYXJzIGJlZm9yZSB0aGUgJywnIG9uIHRoZSBzYW1lIGxpbmUu DQoNCglSZWdFeCBzZWFyY2ggc3RyaW5nOiAgJywoICopT1BUSU9OQUwoICopJw0KCVJlZ0V4IHJl cGxhY2Ugc3RyaW5nOiAnICQxT1BUSU9OQUwsJDInDQoNCjQpIEZvcm1hdCBpc3N1ZXMgd2l0aCBj b21wbGV4IGJsb2NrcyBpbiBERUJVR19DT0RFKCksIG9yIGJldHdlZW4gREVCVUdfQ09ERV9CRUdJ TigpIGFuZA0KICAgREVCVUdfQ09ERV9FTkQoKS4gIFVuY3J1c3RpZnkgdHJlYXRzIHRoZXNlIGFz IG1hY3JvcyBhbmQgaXMgbm90IGF3YXJlIHRoYXQgdGhlIA0KICAgcGFyYW1ldGVyIHBhc3NlZCBp bnRvIHRoZSBtYWNybyBjYWxsIGlzIGEgYmxvY2sgb2YgQyBjb2RlIHRoYXQgbmVlZHMgdG8gYmUg Zm9ybWF0dGVkLg0KICAgQ29tcGxleCBibG9ja3Mgd2l0aCBpZi93aGlsZS9mb3IvY2FzZSBzdGF0 ZW1lbnRzIGFyZSBpbXBhY3RlZCB0aGUgbW9zdC4NCg0KICAgUkVDT01NRU5EQVRJT046IFVwZGF0 ZSB0aGUgdW5jcnVzdGlmeSB3aXRoIGFuIGVkazIgc3BlY2lmaWMgZXh0ZW5zaW9uIHRvIHRyZWF0 IHRoZXNlDQogICBtYWNyb3MgYXMgYSBibG9jayBvZiBjb2RlIGFzIGlmIHRoZXkgd2VyZSBzdXJy b3VuZGVkIGJ5IGFuIGV4dHJhIHNldCBvZiBicmFjZXMge30uDQoNCg0KSSBoYXZlIHBvc3RlZCBh IGJyYW5jaCBmb3IgdGVzdGluZyBwdXJwb3NlcyB0aGF0IGltcGxlbWVudHMgKDIpIGFuZCAoMyku DQoNCkJyYW5jaDogaHR0cHM6Ly9naXRodWIuY29tL21ka2lubmV5L2VkazIvdHJlZS9UZXN0T25s eV9CdWdfMzczN18zNzM5X0FwcGx5VW5jcnVzdGlmeUNoYW5nZXNfVjZfT1BUSU9OQUxfS2V5d29y ZF9GaXgNClBSOiBodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazIvcHVsbC8yMjMzDQog IFN0YXR1czogUEFTUw0KQ29tcGFyZUJ1aWxkOiBodHRwczovL2dpdGh1Yi5jb20vbWRraW5uZXkv ZWRrMi9hY3Rpb25zL3J1bnMvMTUzMjg1NTkxNA0KICBTdGF0dXM6IFBBU1MNCg0KWW91IGNhbiBz ZWUgd2hhdCBjaGFuZ2VkIGJ5IGZldGNoaW5nIGFuZCBjb21wYXJpbmcgdGhlIGZvbGxvd2luZyAy IGJyYW5jaGVzOg0KDQogICAgaHR0cHM6Ly9naXRodWIuY29tL21ka2lubmV5L2VkazIvdHJlZS9C dWdfMzczN18zNzM5X0FwcGx5VW5jcnVzdGlmeUNoYW5nZXNfVjUNCiAgICBodHRwczovL2dpdGh1 Yi5jb20vbWRraW5uZXkvZWRrMi90cmVlL1Rlc3RPbmx5X0J1Z18zNzM3XzM3MzlfQXBwbHlVbmNy dXN0aWZ5Q2hhbmdlc19WNl9PUFRJT05BTF9LZXl3b3JkX0ZpeA0KDQpQbGVhc2UgcHJvdmlkZSBm ZWVkYmFjayBvbiB0aGUgUkVDT01NRU5EQVRJT05TIGFib3ZlLiAgSSB3aWxsIGdvIGFoZWFkIGFu ZCBwcmVwYXJlIG9mIFY2IHZlcnNpb24gb2YgDQp0aGUgcGF0Y2ggc2VyaWVzIG5vdyB0aGF0IHRo YXQgdGVzdCByZXN1bHRzIGFyZSBhbGwgUEFTUy4NCg0KQmVzdCByZWdhcmRzLA0KDQpNaWtlDQoN Cg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBLaW5uZXksIE1pY2hhZWwg RCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBEZWNlbWJl ciAyLCAyMDIxIDQ6MTUgUE0NCj4gVG86IE1pY2hhZWwgS3ViYWNraSA8bWlrdWJhY2tAbGludXgu bWljcm9zb2Z0LmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBtYWNpZWoucmFiZWRhQGxpbnV4 LmludGVsLmNvbTsgTWljaGFlbCBLdWJhY2tpDQo+IDxtaWNoYWVsLmt1YmFja2lAbWljcm9zb2Z0 LmNvbT47IEFuZHJldyBGaXNoIChhZmlzaEBhcHBsZS5jb20pIDxhZmlzaEBhcHBsZS5jb20+OyBM ZWlmIExpbmRob2xtIDxsZWlmQG51dmlhaW5jLmNvbT47DQo+IEtpbm5leSwgTWljaGFlbCBEIDxt aWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBV bmNydXN0aWZ5IENvbnZlcnNpb24gRGV0YWlsZWQgUGxhbiBhbmQgRXh0ZW5kZWQgSGFyZCBGcmVl emUgVXBkYXRlICM0DQo+IA0KPiBIaSBNaWNoYWVsLA0KPiANCj4gUmVwb25zZXMgaW5saW5lIGJl bG93Lg0KPiANCj4gSSB3b3VsZCBsaWtlIHRvIHN1bW1hcml6ZSB0aGUgNCBpc3N1ZXMgcmFpc2Vk IGluIHRoZSBwYXN0IGRheSBhbG9uZyB3aXRoIHRoZSByZWNvbW1lbmRhdGlvbnMuDQo+IA0KPiAx KSBFeGNsdXNpb24gZmVhdHVyZSBmb3IgVW5jcnVzdGlmeUNoZWNrLiAgVGhlcmUgYXJlIDIgZGly ZWN0b3JpZXMgd2l0aCA4IGZpbGVzIHRvdGFsIHRoYXQNCj4gICAgbWFpbnRhaW5lcnMgaGF2ZSBu b3RlZCB0aGV5IHdvdWxkIGxpa2UgdG8gc2VlIG5vdCBnbyB0aHJvdWdoIHVuY3J1c3RpZnkgZm9y bWF0dGluZy4gIFRvZGF5DQo+ICAgIHRoZSBvbmx5IGNvbnRlbnQgdGhhdCBpcyBza2lwcGVkIGlz IEJhc2VUb29scyBhbmQgc3VibW9kdWxlcy4NCj4gDQo+ICAgIEFkZGluZyBhIGdlbmVyYWwgcHVy cG9zZSBleGNsdXNpb24gZmVhdHVyZSB3b3VsZCB0aGVuIHJlcXVpcmUgYWxsIGRldmVsb3BlcnMg dG8gbWFrZQ0KPiAgICBzdXJlIHRoZWlyIG1ldGhvZCBvZiB1c2luZyB1bmNydXN0aWZ5IGFsc28g ZXhjbHVkZXMgdGhvc2Ugc2FtZSBhcmVhcy4gIFRoaXMgcmVxdWlyZXMNCj4gICAgZXh0cmEgc3Rl cHMgZm9yIGFsbCBkZXZlbG9wZXJzIGFuZCBtYWludGFpbmVycy4NCj4gDQo+ICAgIElmIHdlIGRv IG5vdCBhZGQgdGhlIGV4Y2x1c2lvbiBmZWF0dXJlLCB0aGVuIHRoZSA4IGZpbGVzIHdpbGwgcmVx dWlyZSBhbiBleHRyYSBzdGVwDQo+ICAgIHRvIHN5bmMgd2l0aCB0aGUgb3JpZ2luYWwgc291cmNl IG9mIHRob3NlIGZpbGVzLiAgVGhlIHJhdGUgb2YgY2hhbmdlcyBvZiB0aGVzZSA4IGZpbGVzDQo+ ICAgIGlzIHZlcnkgbG93IHRvZGF5Lg0KPiANCj4gICAgUkVDT01NRU5EQVRJT046IERvIG5vdCBh ZGQgZXhjbHVzaW9uIGZlYXR1cmUgYXQgdGhpcyB0aW1lLiAgUmV2aXNpdCBpZiB0aGUgZXh0cmEg d29yaw0KPiAgICB0byBtYWludGFpbiB0aGUgZmlsZXMgdGhhdCB3b3VsZCBiZSBjYW5kaWRhdGVz IGZvciBleGNsdXNpb25zIGluY3JlYXNlcyBzaWduaWZpY2FudGx5Lg0KPiANCj4gMikgQWxpZ25t ZW50IG9mIGFzc2lnbm1lbnRzLiAgVGhlIHRocmVzaG9sZCBvZiA0IGNoYXJhY3RlcnMgYXBwZWFy cyB0byBiZSB0b28gbG93IGFuZCBjYXVzZXMNCj4gICAgc291cmNlIGZpbGVzIHRoYXQgYXJlIGFs cmVhZHkgYWxpZ25lZCB0byBiZWNvbWUgdW5hbGlnbmVkLg0KPiANCj4gICAgUkVDT01NRU5EQVRJ T046IENoYW5nZSB0aHJlc2hvbGQgdG8gdGhlIGRlZmF1bHQgdmFsdWUgb2YgMCB3aGljaCBtZWFu cyBubyBsaW1pdC4NCj4gDQo+ICAgICAgICBhbGlnbl9hc3NpZ25fdGhyZXNoPSA0DQo+IA0KPiAz KSBBbGlnbm1lbnQgb2YgcGFyYW1ldGVycyBpbiBmdW5jdGlvbiBkZWNsYXJhdGlvbiBub3QgY29y cmVjdC4gIFRoZSByb290IGNhdXNlIG9mIHRoaXMNCj4gICAgaXMgdGhlIHVzZSBvZiB0aGUgT1BU SU9OQUwga2V5d29yZC4gIElmIHRoZSBPUFRJT05BTCBrZXl3b3JkIGlzIHJlbW92ZWQsIHRoZW4g dGhlDQo+ICAgIGFsaWdubWVudCBpcyBjb3JyZWN0LiAgVGhlIGFsaWdubWVudCBpcyBhbHNvIGNv cnJlY3QgaWYgdGhlIE9QVElPTkFMIGtleXdvcmQgYXBwZWFycw0KPiAgICBiZWZvcmUgdGhlICcs Jy4gIElmIHRoZSBPUFRJT05BTCBrZXl3b3JkIGFwcGVhcnMgYWZ0ZXIgdGhlICcsJywgdGhlbiB0 aGUgZm9ybWF0IGlzDQo+ICAgIG5vdCBjb3JyZWN0LiAgVGhlIE9QVElPTkFMIGtleXdvcmQgaW5k aWNhdGVzIHRoYXQgdGhlIHBhcmFtZXRlciBpbiB0aGUgZnVuY3Rpb24gaXMNCj4gICAgbm90IHJl cXVpcmVkIGFuZCBtYXkgYmUgcGFzc2VkIGluIGFzIE5VTEwgb3IgMCBvciBzb21lIG90aGVyIGRl ZmF1bHQgdmFsdWUgZGVmaW5lZCBieQ0KPiAgICB0aGUgQVBJLiAgSXQgbWFrZXMgbW9yZSBzZW5z ZSBmb3IgdGhpcyBPUFRJT05BTCBrZXl3b3JkIHRoYXQgZm9sbG93cyB0aGUgcGFyYW1ldGVyDQo+ ICAgIG5hbWVzIHRvIGFwcGVhciBiZWZvcmUgdGhlICcsJyBzbyBpdCBpcyBzY29wZWQgdG8gdGhl IHBhcmFtZXRlciBvbiB0aGF0IGxpbmUuICBJZiBpdA0KPiAgICBhcHBlYXJzIGFmdGVyIHRoZSAn LCcsIHRoZW4gQyBwYXJzZXJzIHRoaW5rcyBpdCBpcyBhIHByZWZpeCAoSU4sIE9VVCwgQ09OU1Qs IHZvbGF0aWxlLA0KPiAgICBzdGF0aWMpIGZvciB0aGUgbmV4dCBwYXJhbWV0ZXIgaW4gdGhlIGZ1 bmN0aW9uLg0KPiANCj4gICAgUkVDT01NRU5EQVRJT046IFVwZGF0ZSBwYXRjaCBzZXJpZXMgd2l0 aCBhIGdsb2JhbCBzZWFyY2ggYW5kIHJlcGxhY2Ugc28gT1BUSU9OQUwNCj4gICAga2V5d29yZCBh bHdheXMgYXBwZWFycyBiZWZvcmUgdGhlICcsJyBvbiB0aGUgc2FtZSBsaW5lLg0KPiANCj4gCVJl Z0V4IHNlYXJjaCBzdHJpbmc6ICAnLCggKilPUFRJT05BTCggKiknDQo+IAlSZWdFeCByZXBsYWNl IHN0cmluZzogJyAkMU9QVElPTkFMLCQyJw0KPiANCj4gNCkgRm9ybWF0IGlzc3VlcyB3aXRoIGNv bXBsZXggYmxvY2tzIGluIERFQlVHX0NPREUoKSwgb3IgYmV0d2VlbiBERUJVR19DT0RFX0JFR0lO KCkgYW5kDQo+ICAgIERFQlVHX0NPREVfRU5EKCkuICBVbmNydXN0aWZ5IHRyZWF0cyB0aGVzZSBh cyBtYWNyb3MgYW5kIGlzIG5vdCBhd2FyZSB0aGF0IHRoZQ0KPiAgICBwYXJhbWV0ZXIgcGFzc2Vk IGludG8gdGhlIG1hY3JvIGNhbGwgaXMgYSBibG9jayBvZiBDIGNvZGUgdGhhdCBuZWVkcyB0byBi ZSBmb3JtYXR0ZWQuDQo+ICAgIENvbXBsZXggYmxvY2tzIHdpdGggaWYvd2hpbGUvZm9yL2Nhc2Ug c3RhdGVtZW50cyBhcmUgaW1wYWN0ZWQgdGhlIG1vc3QuDQo+IA0KPiAgICBSRUNPTU1FTkRBVElP TjogVXBkYXRlIHRoZSB1bmNydXN0aWZ5IHdpdGggYW4gZWRrMiBzcGVjaWZpYyBleHRlbnNpb24g dG8gdHJlYXQgdGhlc2UNCj4gICAgbWFjcm9zIGFzIGEgYmxvY2sgb2YgY29kZSBhcyBpZiB0aGV5 IHdlcmUgc3Vycm91bmRlZCBieSBhbiBleHRyYSBzZXQgb2YgYnJhY2VzIHt9Lg0KPiANCj4gDQo+ IEkgaGF2ZSBwb3N0ZWQgYSBicmFuY2ggZm9yIHRlc3RpbmcgcHVycG9zZXMgdGhhdCBpbXBsZW1l bnRzICgyKSBhbmQgKDMpLg0KPiANCj4gQnJhbmNoOiBodHRwczovL2dpdGh1Yi5jb20vbWRraW5u ZXkvZWRrMi90cmVlL1Rlc3RPbmx5X0J1Z18zNzM3XzM3MzlfQXBwbHlVbmNydXN0aWZ5Q2hhbmdl c19WNl9PUFRJT05BTF9LZXl3b3JkX0ZpeA0KPiBQUjogaHR0cHM6Ly9naXRodWIuY29tL3RpYW5v Y29yZS9lZGsyL3B1bGwvMjIzMw0KPiAgIFN0YXR1czogUEFTUw0KPiBDb21wYXJlQnVpbGQ6IGh0 dHBzOi8vZ2l0aHViLmNvbS9tZGtpbm5leS9lZGsyL2FjdGlvbnMvcnVucy8xNTMyODU1OTE0DQo+ ICAgU3RhdHVzOiBQQVNTDQo+IA0KPiBZb3UgY2FuIHNlZSB3aGF0IGNoYW5nZWQgYnkgZmV0Y2hp bmcgYW5kIGNvbXBhcmluZyB0aGUgZm9sbG93aW5nIDIgYnJhbmNoZXM6DQo+IA0KPiAgICAgaHR0 cHM6Ly9naXRodWIuY29tL21ka2lubmV5L2VkazIvdHJlZS9CdWdfMzczN18zNzM5X0FwcGx5VW5j cnVzdGlmeUNoYW5nZXNfVjUNCj4gICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9tZGtpbm5leS9lZGsy L3RyZWUvVGVzdE9ubHlfQnVnXzM3MzdfMzczOV9BcHBseVVuY3J1c3RpZnlDaGFuZ2VzX1Y2X09Q VElPTkFMX0tleXdvcmRfRml4DQo+IA0KPiBQbGVhc2UgcHJvdmlkZSBmZWVkYmFjayBvbiB0aGUg UkVDT01NRU5EQVRJT05TIGFib3ZlLiAgSSB3aWxsIGdvIGFoZWFkIGFuZCBwcmVwYXJlIG9mIFY2 IHZlcnNpb24gb2YNCj4gdGhlIHBhdGNoIHNlcmllcyBub3cgdGhhdCB0aGF0IHRlc3QgcmVzdWx0 cyBhcmUgYWxsIFBBU1MuDQo+IA0KPiBCZXN0IHJlZ2FyZHMsDQo+IA0KPiBNaWtlDQo+IA0KPiAN Cj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IE1pY2hhZWwgS3ViYWNr aSA8bWlrdWJhY2tAbGludXgubWljcm9zb2Z0LmNvbT4NCj4gPiBTZW50OiBUaHVyc2RheSwgRGVj ZW1iZXIgMiwgMjAyMSAxOjU3IFBNDQo+ID4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBLaW5u ZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBtYWNpZWoucmFiZWRh QGxpbnV4LmludGVsLmNvbTsgTWljaGFlbCBLdWJhY2tpDQo+ID4gPG1pY2hhZWwua3ViYWNraUBt aWNyb3NvZnQuY29tPjsgQW5kcmV3IEZpc2ggKGFmaXNoQGFwcGxlLmNvbSkgPGFmaXNoQGFwcGxl LmNvbT47IExlaWYgTGluZGhvbG0gPGxlaWZAbnV2aWFpbmMuY29tPg0KPiA+IFN1YmplY3Q6IFJl OiBbZWRrMi1kZXZlbF0gVW5jcnVzdGlmeSBDb252ZXJzaW9uIERldGFpbGVkIFBsYW4gYW5kIEV4 dGVuZGVkIEhhcmQgRnJlZXplIFVwZGF0ZSAjNA0KPiA+DQo+ID4gTXkgcmVwbHkgaXMgaW5saW5l Lg0KPiA+DQo+ID4gUmVnYXJkcywNCj4gPiBNaWNoYWVsDQo+ID4NCj4gPiBPbiAxMi8yLzIwMjEg Mjo0NSBQTSwgTWljaGFlbCBEIEtpbm5leSB3cm90ZToNCj4gPiA+IEhpIE1hY2llaiwNCj4gPiA+ DQo+ID4gPiBUaGFua3MgZm9yIHRoZSBmZWVkYmFjay4NCj4gPiA+DQo+ID4gPiAgICogRXhhbXBs ZSAjMS5UaGlzIGFwcGVhcnMgdG8gYmUgY2F1c2VkIGJ5IHRoZSBmb2xsb3dpbmcgdW5jcnVzdGlm eQ0KPiA+ID4gICAgIHNldHRpbmdzOg0KPiA+ID4NCj4gPiA+ICMgVGhlIHRocmVzaG9sZCBmb3Ig YWxpZ25pbmcgb24gJz0nIGluIGFzc2lnbm1lbnRzLg0KPiA+ID4NCj4gPiA+ICMgVXNlIGEgbmVn YXRpdmUgbnVtYmVyIGZvciBhYnNvbHV0ZSB0aHJlc2hvbGRzLg0KPiA+ID4NCj4gPiA+ICMNCj4g PiA+DQo+ID4gPiAjIDA6IE5vIGxpbWl0IChkZWZhdWx0KS4NCj4gPiA+DQo+ID4gPiBhbGlnbl9h c3NpZ25fdGhyZXNoPSAwIyBudW1iZXINCj4gPiA+DQo+ID4gPiBUaGUgZWRrMiBzZXR0aW5nIGZv ciB0aGlzIGlzOg0KPiA+ID4NCj4gPiA+IGFsaWduX2Fzc2lnbl90aHJlc2g9IDQNCj4gPiA+DQo+ ID4gPiBUaGlzIG1lYW5zIGJsb2NrcyBvZiBhc3NpZ25tZW50cyB0aGF0IGFyZSBkaWZmZXJlbnQg dGhhbiBtb3JlIHRoYW4gNA0KPiA+ID4gc3BhY2VzIHdpbGwgYmUgY29uc2lkZXJlZCBhIG5ldyBi bG9jay4NCj4gPiA+DQo+ID4gPiDigJhId0FkZHJlTGVu4oCZIGFuZCDigJhYaWTigJkgYXJlIG1v cmUgdGhhbiA0IGNoYXJhY3RlcnMgaW4gbGVuZ3RoDQo+ID4gPiBkaWZmZXJlbnQuU2FtZSBmb3Ig 4oCYWGlk4oCZIGFuZCDigJhSZXNlcnZlZOKAmS5Tbw0KPiA+ID4NCj4gPiA+IHVuY3J1c3RpZnkg dHJlYXRzIHRoZXNlIGFzIDMgZGlmZmVyZW50IGFzc2lnbm1lbnQgYmxvY2tzLg0KPiA+ID4NCj4g PiA+IElmIHdlIGNoYW5nZSB0byB0aGUgZGVmYXVsdCB2YWx1ZSBvZiAwOiBObyBsaW1pdCwgdGhp cyBleGFtcGxlIGlzDQo+ID4gPiB0cmVhdGVkIGFzIGEgc2luZ2xlIGJsb2NrIGFuZCBhbGwg4oCY PeKAmSBhcmUgYWxpZ25lZC4NCj4gPiA+DQo+ID4gPiBJcyB0aGVyZSBhIHJlYXNvbiDigJg04oCZ IHdhcyBzZWxlY3RlZD9JcyB0aGVyZSBpcyBhbnkgaGFybSBpbiB1c2luZyB0aGUNCj4gPiA+IGRl ZmF1bHQgb2YgMD8NCj4gPiA+DQo+ID4gV2UgY2FuIGNlcnRhaW5seSBjaGFuZ2UgdGhlIHRocmVz aG9sZC4gJzQnIHdhcyBkZXJpdmVkIGJ5DQo+ID4gZXhwZXJpbWVudGF0aW9uLiBUaGlzIGlzIGFu IGFyZWEgdGhhdCBpcyBzb21ld2hhdCBzdWJqZWN0aXZlIGFuZCBldmVyeQ0KPiA+IGNhc2UgaXMg ZGlmZmljdWx0IHRvIGNvdmVyIHdlbGwuIFBsZWFzZSBmZWVsIGZyZWUgdG8gc3VnZ2VzdCBhbnkg Y2hhbmdlcy4NCj4gPg0KPiANCj4gSSByZWNvbW1lbmQgd2UgdXNlIHRoZSBkZWZhdWx0IHZhbHVl IG9mIDAuICBUaGF0IHdheSwgYW55IGNvZGUgdGhhdCBjaG9vc2UgdG8NCj4gYWxpZ24gYXNzaWdu bWVudHMgd2lsbCBzdGlsbCBiZSBhbGlnbmVkLiAgSWYgYSBkZXZlbG9wZXIgZG9lcyBub3QgbGlr ZQ0KPiBzaG9ydCBhc3NpZ25tZW50cyBhbmQgbG9uZyBhc3NpZ25tZW50cyBpbiB0aGUgc2FtZSBj b2RlIGJsb2NrIHRvIHVzZSB0aGUNCj4gbG9uZyBhc3NpZ25tZW50IGNvbHVtbiwgdGhleSBjYW4g YWx3YXlzIGJyZWFrIHRoZSBibG9jayB1cCBpbnRvIG11bHRpcGxlDQo+IGJsb2NrcyBieSBhZGRp bmcgYSBjYXJyaWFnZSByZXR1cm4uDQo+IA0KPiA+IEZvciB0aGUgYmVuZWZpdCBvZiBvdGhlcnMs IHRoaXMgZmlsZSBjYW4gYmUgYSB1c2VmdWwgcmVmZXJuY2UNCj4gPiB1bmRlcnN0YW5kaW5nIHNw YW5zLCBnYXBzLCBhbmQgdGhyZXNob2xkcy4NCj4gPg0KPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS91 bmNydXN0aWZ5L3VuY3J1c3RpZnkvYmxvYi9tYXN0ZXIvZG9jdW1lbnRhdGlvbi9odGRvY3MvY29u ZmlndXJhdGlvbi50eHQNCj4gPg0KPiA+ID4gICAqIEV4YW1wbGUgIzI6IFVuY3J1aXN0ZnkgaXMg Y29uZnVzZWQgYnkgdGhlIERFQlVHX0NPREUoKSBtYWNyby5UaGlzIGlzDQo+ID4gPiAgICAgbm90 IGEgdHJhZGl0aW9uYWwgbWFjcm8gYmVjYXVzZSB0aGUNCj4gPiA+DQo+ID4gPiBjb250ZW50cyBv ZiB0aGUgbWFjcm8gaXMgYSBibG9jayBvZiBDIGNvZGUuSSBkbyBub3Qga25vdyBob3cgdG8gY29u dmluY2UNCj4gPiA+IHVuY3J1c3RpZnkgdGhhdCB0aGUgY29udGVudHMgb2YgYQ0KPiA+ID4NCj4g PiA+IG1hY3JvIGxpa2UgZnVuY3Rpb24gY2FsbCB0byBiZSB0cmVhdGVkIGFzIGEgY29kZSBibG9j ayBmcm9tIGFuIGluZGVudA0KPiA+ID4gcGVyc3BlY3RpdmUuDQo+ID4gPg0KPiA+IEkgYmVsaWV2 ZSB0aGlzIHdvdWxkIGhhdmUgdG8gYmUgb3ZlcnJpZGRlbiBpbiB0aGUgVW5jcnVzdGlmeSBmb3Jr IHNpbmNlDQo+ID4gREVCVUdfQ09ERSgpIGlzIGJlaW5nIHRyZWF0ZWQgYXMgYSBtYWNybyBmdW5j dGlvbiBjYWxsIGFuZCBjb2RlIGJsb2Nrcw0KPiA+IGFyZSBub3QgZXhwZWN0ZWQgdGhlcmUuIElu IGFkZGl0aW9uLCBzb21lIHNwZWNpYWwgdHJlYXRtZW50IG1pZ2h0IGJlDQo+ID4gbmVlZGVkIGZv ciBhbGlnbm1lbnQgaW4gYmV0d2VlbiBERUJVR19DT0RFX0JFR0lOKCkvREVCVUdfQ09ERV9FTkQo KS4NCj4gPg0KPiA+IEknbSBoYXBweSB0byBsb29rIGF0IHRoaXMuIEhvd2V2ZXIsIHJlZ3Jlc3Np b24gdmFsaWRhdGlvbiBjYW4gdGFrZSBhDQo+ID4gd2hpbGUgc28gSSdkIGxpa2UgdG8gbWFrZSBz dXJlIHdlIG5lZWQgdGhpcyBub3cuIEluIGNhc2VzIHRoYXQgZG8gbm90DQo+ID4gaGF2ZSBhZGRp dGlvbmFsIGNvZGUgYmxvY2tzLCBpdCBzZWVtcyB0byBmb3JtYXQgZmFpcmx5IHdlbGwuIElzIHRo aXMNCj4gPiBwcmV2YWxlbnQgYW5kIGltcGFjdGZ1bCBlbm91Z2ggaXQgbXVzdCBiZSBmaXhlZCBu b3c/IE9yLCBjb3VsZCB3ZQ0KPiA+IHJldmlzaXQgaXQgd2l0aCBhIGZvbGxvdyB1cCBwYXRjaD8N Cj4gDQo+IEhvdyBsb25nIGRvZXMgcmVncmVzc2lvbiB0ZXN0aW5nIHRha2U/ICBJIHNlZSBhYm91 dCAyMCBpbnN0YW5jZXMgb2YNCj4gREVCVUdfQ09ERSgpIHRoYXQgYXJlIHByb2R1Y2luZyBiYWQg Zm9ybWF0dGluZy4gIElmIHRoZSBjb250ZW50IGluc2lkZQ0KPiBERUJVR19DT0RFKCkgaXMgYSBz aW5nbGUgbGluZSBvZiBhIHNpbmdsZSBibG9jayBvZiBzdGF0ZW1lbnRzIHdpdGhvdXQNCj4gYW55 IGlmL3doaWxlL2Zvci9jYXNlIHN0YXRlbWVudHMgdGhhdCByZXF1aXJlIGZ1cnRoZXIgaW5kZW50 LCB0aGVuIHRoZQ0KPiBmb3JtYXQgbG9va3Mgb2suDQo+IA0KPiBERUJVR19DT0RFX0JFR0lOKCkg YW5kIERFQlVHX0NPREVfRU5EKCkgd291bGQgbG9vayBiZXR0ZXIgaWYgdGhlDQo+IGNvbnRlbnRz IGJldHdlZW4gYXJlIGFsc28gaW5kZW50ZWQgb25lIGxldmVsLg0KPiANCj4gPg0KPiA+ID4gICAq IEV4YW1wbGUgIzMvIzQ6IFVuY3J1c3RpZnkgaXMgY29uZnVzZWQgYnkgdGhlIE9QVElPTkFMIGtl eXdvcmQuVGhlDQo+ID4gPiAgICAgZWRrMiBjb25maWcgZGVjbGFyZXMgaXQgYXMgYSBRVUFMSUZJ RVINCj4gPiA+DQo+ID4gPiBsaWtlIElOIGFuZCBPVVQuSG93ZXZlciwgT1BUSU9OQUwgb25seSBh cHBlYXJzIGF0IHRoZSBlbmQgb2YgdGhlIGxpbmUNCj4gPiA+IHRoYXQgZGVjbGFyZXMgYSBwYXJh bWV0ZXIgdG8gYQ0KPiA+ID4NCj4gPiA+IGZ1bmN0aW9uLlRoZXJlIGFyZSAzIGZvcm1zLiBPbmUg d2l0aCBjb21tYSBhZnRlciBPUFRJT05BTC5PbmUgd2l0aCBjb21tYQ0KPiA+ID4gYmVmb3JlIE9Q VElPTkFMLCBhbmQNCj4gPiA+DQo+ID4gPiBvbmUgd2l0aCBubyBjb21tYSBpZiB0aGUgcGFyYW1l dGVyIGlzIHRoZSBsYXN0IHBhcmFtZXRlciBpbiB0aGUgZnVuY3Rpb24NCj4gPiA+IGRlY2xhcmF0 aW9uLg0KPiA+ID4NCj4gPiA+IFRZUEUgUGFyYW1OYW1lIE9QVElPTkFMLA0KPiA+ID4NCj4gPiA+ IFRZUEVQYXJhbU5hbWUsIE9QVElPTkFMDQo+ID4gPg0KPiA+ID4gVFlQRVBhcmFtTmFtZSBPUFRJ T05BTA0KPiA+ID4NCj4gPiA+IE9QVElPTkFMIGlzIGRlZmluZWQgdG8gbm90aGluZyBpbiBlZGsy IGJ1aWxkcy5Gcm9tIGEgdW5jcnVzdGlmeQ0KPiA+ID4gcGVyc3BlY3RpdmUsIHdlIHJlYWxseSB3 YW50IGlzIHRvIGJlDQo+ID4gPg0KPiA+ID4gaWdub3JlZCBvciBtb3JlIGNvcnJlY3RseSB0cmVh dGVkIGl0IGFzIGEgdG9rZW4gdGhhdCBpcyBhdHRhY2hlZCB0bw0KPiA+ID4gUGFyYW1OYW1lIGFu ZCB0aGUgY29tYmluYXRpb24gb2YNCj4gPiA+DQo+ID4gPiBQYXJhbU5hbWUgYW5kIE9QVElPTkFM IHRyZWF0ZWQgYXMgb25lIHVuaXQgdG8gZGV0ZXJtaW5lIGluZGVudHMuDQo+ID4gPg0KPiA+ICJU WVBFIFBhcmFtTmFtZSwgT1BUSU9OQUwiIHNlZW1zIGVzcGVjaWFsbHkgcHJvYmxlbWF0aWMgYW5k IHByZXNlbnRzIGFuDQo+ID4gaW5jb25zaXN0ZW5jeSB3aXRoIHRoZSBvdGhlciBmb3JtYXRzLiBN aWtlLCBjYW4geW91IHBsZWFzZSBsZXQgbWUga25vdw0KPiA+IGlmIHlvdSBoYXZlIHRoZSBzYW1l IG9ic2VydmF0aW9uIGFuZCB5b3VyIHRob3VnaHRzIG9uIGEgY29uc2lzdGVudCBwYXR0ZXJuPw0K PiA+DQo+ID4gPiBUaGFua3MsDQo+ID4gPg0KPiA+ID4gTWlrZQ0KPiA+ID4NCj4gPiA+ICpGcm9t OipkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+ICpPbiBCZWhhbGYg T2YgKk1hY2llag0KPiA+ID4gUmFiZWRhDQo+ID4gPiAqU2VudDoqIFRodXJzZGF5LCBEZWNlbWJl ciAyLCAyMDIxIDEwOjI3IEFNDQo+ID4gPiAqVG86KiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgS2lu bmV5LCBNaWNoYWVsIEQNCj4gPiA+IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IE1pY2hh ZWwgS3ViYWNraQ0KPiA+ID4gPG1pY2hhZWwua3ViYWNraUBtaWNyb3NvZnQuY29tPjsgQW5kcmV3 IEZpc2ggKGFmaXNoQGFwcGxlLmNvbSkNCj4gPiA+IDxhZmlzaEBhcHBsZS5jb20+OyBMZWlmIExp bmRob2xtIDxsZWlmQG51dmlhaW5jLmNvbT4NCj4gPiA+ICpTdWJqZWN0OiogUmU6IFtlZGsyLWRl dmVsXSBVbmNydXN0aWZ5IENvbnZlcnNpb24gRGV0YWlsZWQgUGxhbiBhbmQNCj4gPiA+IEV4dGVu ZGVkIEhhcmQgRnJlZXplIFVwZGF0ZSAjNA0KPiA+ID4NCj4gPiA+IEhleSBNaWtlLA0KPiA+ID4N Cj4gPiA+IFdoaWxlIG1vc3Qgb2YgdGhlIGNoYW5nZXMgcmVsYXRlZCB0byBmaXhpbmcgY29kaW5n IHN0eWxlIHZpb2xhdGlvbnMsDQo+ID4gPiB0aGVyZSBhcmUgYSBjb3VwbGUgb2YgY2hhbmdlcyB0 byBOZXR3b3JrUGtnIGluIHRoYXQgUFIgdGhhdCBtYWtlIHRoZQ0KPiA+ID4gY29kZSBsZXNzIHJl YWRhYmxlLiBFeGFtcGxlcyBiZWxvdy4NCj4gPiA+DQo+ID4gPiBFeGFtcGxlIDE6DQo+ID4gPg0K PiA+ID4NCj4gPiA+DQo+ID4gPiBFeGFtcGxlIDI6DQo+ID4gPg0KPiA+ID4NCj4gPiA+IEV4YW1w bGUgMzoNCj4gPiA+DQo+ID4gPg0KPiA+ID4gRXhhbXBsZSA0Og0KPiA+ID4NCj4gPiA+IE9uIDMw LU5vdi0yMSAyMzozNCwgTWljaGFlbCBEIEtpbm5leSB3cm90ZToNCj4gPiA+DQo+ID4gPiAgICAg SGVsbG8sDQo+ID4gPg0KPiA+ID4gICAgIFRoYW5rIHlvdSBmb3IgeW91ciBwYXRpZW5jZSBkdXJp bmcgdGhpcyBleHRlbmRlZCBoYXJkIGZyZWV6ZS4NCj4gPiA+DQo+ID4gPiAgICAgSnVzdCBvbmUg bW9yZSBzdGVwIHRvIGdvLlRoZXJlIGhhcyBiZWVuIGEgZGVsYXkgaW4gdGhlIHJldmlldyBvZg0K PiA+ID4NCj4gPiA+ICAgICB0aGUgcGF0Y2ggc2VyaWVzIHdpdGggdGhlIHVuY3J1c3RpZnkgc291 cmNlIGNoYW5nZXMuUFIoNikuVGhpcw0KPiA+ID4NCj4gPiA+ICAgICBwYXRjaCBzZXJpZXMgd2Fz IG5vdCBzZW50IG91dCBhcyBwYXRjaCByZXZpZXcgZW1haWwgYmVjYXVzZSBvZiBpdHMNCj4gPiA+ DQo+ID4gPiAgICAgdmVyeSBsYXJnZSBzaXplLkl0IG9ubHkgY29udGFpbnMgc291cmNlIHN0eWxl IGNoYW5nZXMgYW5kIHRoZQ0KPiA+ID4NCj4gPiA+ICAgICBDb21wYXJlQnVpbGQgdG9vbCBhbmQg R2l0SHViIGFjdGlvbiBoYXMgc2hvd24gdGhlcmUgYXJlIG5vIGJpbmFyeQ0KPiA+ID4NCj4gPiA+ ICAgICBkaWZmZXJlbmNlcyBpbnRyb2R1Y2VkIHdpdGggdGhlc2Ugc291cmNlIHN0eWxlIGNoYW5n ZXMuDQo+ID4gPg0KPiA+ID4gICAgIElmIHlvdSBhcmUgYSBwYWNrYWdlIG1haW50YWluZXIsIHRo ZW4gcGxlYXNlIHJldmlldyB0aGUgZm9sbG93aW5nDQo+ID4gPg0KPiA+ID4gICAgIGJyYW5jaC9Q UiBmb3IgeW91ciBwYWNrYWdlIGNvbnRlbnRzIGFuZCByZXZpZXcgdGhlIEVESyBJSSBDSSByZXN1 bHRzDQo+ID4gPg0KPiA+ID4gICAgIGFuZCBCdWlsZENvbXBhcmUgcmVzdWx0cy5JIGRvIG5vdCBl eHBlY3QgYSBsaW5lIGJ5IGxpbmUgcmV2aWV3DQo+ID4gPg0KPiA+ID4gICAgIGJlY2F1c2Ugd2Ug YWxyZWFkeSBoYWQgdGltZSB0byBwcm92aWRlIGZlZWRiYWNrIG9uIHRoZSBzb3VyY2Ugc3R5bGUN Cj4gPiA+DQo+ID4gPiAgICAgcGVyZm9ybWVkIGJ5IHVuY3J1c3RpZnkuSW5zdGVhZCwgYSBSZXZp ZXdlZC1ieSBmb3IgeW91ciBwYWNrYWdlDQo+ID4gPg0KPiA+ID4gICAgIGluZGljYXRlcyB0aGF0 IHlvdSBoYXZlIHJldmlld2VkIHRoZSBFREsgSUkgQ0kgcmVzdWx0cyBhbmQgQ29tcGFyZUJ1aWxk DQo+ID4gPg0KPiA+ID4gICAgIHRvb2wgZnVuY3Rpb25hbGl0eSBhbmQgcmVzdWx0cyBhbmQgeW91 IGFjY2VwdCB0aGUgc291cmNlIHN0eWxlDQo+ID4gPg0KPiA+ID4gICAgIGNoYW5nZXMgdG8geW91 ciBwYWNrYWdlLg0KPiA+ID4NCj4gPiA+ICAgICAqaHR0cHM6Ly9naXRodWIuY29tL21ka2lubmV5 L2VkazIvdHJlZS9CdWdfMzczN18zNzM5X0FwcGx5VW5jcnVzdGlmeUNoYW5nZXNfVjUNCj4gPiA8 aHR0cHM6Ly9naXRodWIuY29tL21ka2lubmV5L2VkazIvdHJlZS9CdWdfMzczN18zNzM5X0FwcGx5 VW5jcnVzdGlmeUNoYW5nZXNfVjU+DQo+ID4gPg0KPiA+ID4gICAgICpodHRwczovL2dpdGh1Yi5j b20vdGlhbm9jb3JlL2VkazIvcHVsbC8yMjI5ICA8aHR0cHM6Ly9naXRodWIuY29tL3RpYW5vY29y ZS9lZGsyL3B1bGwvMjIyOT4NCj4gPiA+DQo+ID4gPiAgICAgKmh0dHBzOi8vZ2l0aHViLmNvbS9t ZGtpbm5leS9lZGsyL2FjdGlvbnMvcnVucy8xNTIxNjE4ODM2DQo+ID4gPGh0dHBzOi8vZ2l0aHVi LmNvbS9tZGtpbm5leS9lZGsyL2FjdGlvbnMvcnVucy8xNTIxNjE4ODM2Pg0KPiA+ID4NCj4gPiA+ ICAgICBBZGRpdGlvbmFsIGRldGFpbHMgb24gdGhpcyB1cGRhdGUgYmVsb3cuDQo+ID4gPg0KPiA+ ID4gICAgIFRoYW5rIHlvdSwNCj4gPiA+DQo+ID4gPiAgICAgTWlrZQ0KPiA+ID4NCj4gPiA+ICAg ICBDaGFuZ2VzIGZyb20gVXBkYXRlICMzDQo+ID4gPg0KPiA+ID4gICAgIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0NCj4gPiA+DQo+ID4gPiAgICAgKiBQdXNoZWQgUFIgKDUpDQo+ID4gPg0KPiA+ID4gICAg ICogQWRkZWQgbGluayB0byBQUig2KS4gRURLIElJIENJIFN0YXR1cyBpcyBQQVNTLiBCdWlsZCBD b21wYXJlIFBBU1MuDQo+ID4gPg0KPiA+ID4gICAgICogV2FpdGluZyBmb3IgcmV2aWV3IG9mIFBS ICg2KQ0KPiA+ID4NCj4gPiA+ICAgICAqIFJldmlldyBvZiBQUiAoNykgY29tcGxldGVkIGFuZCB3 YWl0aW5nIGZvciByZXZpZXcgb2YgUFIgKDYpDQo+ID4gPg0KPiA+ID4gICAgIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCj4gPiA+DQo+ID4gPiAgICAgQ2hhbmdlcyBmcm9tIFVwZGF0ZSAjMg0KPiA+ID4N Cj4gPiA+ICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gPg0KPiA+ID4gICAgICogQ2hhbmdl ZCBvcmRlciBvZiBQUnMgc3dhcHBpbmcgKDQpIGFuZCAoNSkuVGhlIFBSIHRoYXQgYWN0aXZhdGVz DQo+ID4gPg0KPiA+ID4gICAgIGluY3JlYXNlcyB0aGUgbWF4IENJIGFnZW50IGpvYiB0aW1lIGlz IGluZGVwZW5kZW50IG9mIGFsbCB0aGUgb3RoZXINCj4gPiA+DQo+ID4gPiAgICAgUFJzIGFuZCBp dHMgcmV2aWV3IGlzIGNvbXBsZXRlLCBzbyBpdCBjYW4gYmUgY29tbWl0dGVkIG5vdy4NCj4gPiA+ DQo+ID4gPiAgICAgKiBQdXNoZWQgUFJzICgxKSwgKDIpLCAoMyksICg0KS4NCj4gPiA+DQo+ID4g PiAgICAgKiBXYWl0aW5nIGZvciByZXZpZXcgdG8gY29tcGxldGUgZm9yIFBScyAoNSkgYW5kICg2 KQ0KPiA+ID4NCj4gPiA+ICAgICAqIFJldmlld3MgY29tcGxldGUgZm9yIFBSICg3KQ0KPiA+ID4N Cj4gPiA+ICAgICAqIElkZW50aWZpZXMgc3RlcHMgdXNpbmcgZ2l0IGZpbHRlci1icmFuY2ggdG8g YXBwbHkgdW5jcnVzdGlmeSBjaGFuZ2VzIHRvIGENCj4gPiA+DQo+ID4gPiAgICAgY29kZSByZXZp ZXcgcGF0Y2ggc2VyaWVzIHRoYXQgd2FzIGdlbmVyYXRlZCBiZWZvcmUgdGhlIHVuY3J1c3RpZnkg Y2hhbmdlcw0KPiA+ID4NCj4gPiA+ICAgICBhdm9pZGluZyBtYW51YWwgbWVyZ2UuDQo+ID4gPg0K PiA+ID4gICAgICogSWRlbnRpZmllZCBzdGVwcyB1c2luZyBnaXQgZmlsdGVyLXJlcG8gdG8gZ2Vu ZXJhdGUgYW4gYWx0ZXJuYXRlIGhpc3Rvcnkgb2YNCj4gPiA+DQo+ID4gPiAgICAgdGhlIGVkazIg cmVwbyB3aXRoIHVuY3J1c3RpZnkgY2hhbmdlcyBhcHBsaWVkIG9uIGV2ZXJ5IGNvbW1pdC5UaGlz IG1heQ0KPiA+ID4NCj4gPiA+ICAgICBiZSB1c2VmdWwgd2hlbiBldmFsdWF0aW5nIGNoYW5nZXMg dG8gZmlsZXMgdXNpbmcgdG9vbHMgbGlrZSBnaXQgYmxhbWUNCj4gPiA+DQo+ID4gPiAgICAgd2l0 aG91dCB0aGUgbGFyZ2UgdW5jcnVzdGlmeSBwYXRjaCBzZXJpZXMuDQo+ID4gPg0KPiA+ID4gICAg IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ID4NCj4gPiA+ICAgICBDaGFuZ2VzIGZyb20gVXBkYXRl ICMxDQo+ID4gPg0KPiA+ID4gICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiA+DQo+ID4gPiAg ICAgKiBDaGFuZ2VkIG9yZGVyIG9mIFBScyBzd2FwcGluZyAoNikgYW5kICg3KS5UaGUgUFIgdGhh dCBhY3RpdmF0ZXMNCj4gPiA+DQo+ID4gPiAgICAgRURLIElJIENJIGNoZWNrIFVuY3J1c3RpZnlD aGVjayBoYXMgdG8gYmUgbGFzdCBiZWNhdXNlIGl0IHVuY29uZGl0aW9uYWxseQ0KPiA+ID4NCj4g PiA+ICAgICBjaGVja3MgYWxsIEMvSCBmaWxlcyBpbiBhbGwgcGFja2FnZXMuTm90IGp1c3QgZmls ZXMgdGhhdCBoYXZlIGJlZW4NCj4gPiA+DQo+ID4gPiAgICAgbW9kaWZpZWQgbGlrZSBzb21lIG9m IHRoZSBvdGhlciBjaGVja2Vycy4NCj4gPiA+DQo+ID4gPiAgICAgKiBVcGRhdGVkIGxpbmsgdG8g dGhlIGJyYW5jaCB3aXRoIHRoZSBVbmNydXN0aWZ5Q2hlY2sgcGx1Z2luIHRoYXQgaGFzIGJlZW4N Cj4gPiA+DQo+ID4gPiAgICAgdXBkYXRlZCB3aXRoIGEgb25lIGxpbmUgY2hhbmdlIGFuZCBSZXZp ZXdlZC1ieSBhbmQgVGVzdGVkLWJ5IHRhZ3MuDQo+ID4gPg0KPiA+ID4gICAgIGh0dHBzOi8vZ2l0 aHViLmNvbS9tZGtpbm5leS9lZGsyL3RyZWUvQnVnXzM3NDhfYWRkX3VuY3J1c3RpZnlfY2lfcGx1 Z2luX3Y2DQo+ID4gPGh0dHBzOi8vZ2l0aHViLmNvbS9tZGtpbm5leS9lZGsyL3RyZWUvQnVnXzM3 NDhfYWRkX3VuY3J1c3RpZnlfY2lfcGx1Z2luX3Y2Pg0KPiA+ID4NCj4gPiA+ICAgICAqIFJldmll d3MgY29tcGxldGUgZm9yICgxKSwgKDIpLCAoMyksICg1KSwgYW5kICg3KQ0KPiA+ID4NCj4gPiA+ ICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiA+DQo+ID4gPiAgICAgTWljaGFlbCBLdWJhY2tp IGFuZCBJIGhhdmUgcHJlcGFyZWQgdGhlIHBhdGNoZXMgcmVxdWlyZWQgdG8gYXBwbHkgdGhlDQo+ ID4gPg0KPiA+ID4gICAgIHVuY3J1c3RpZnkgY2hhbmdlcyBhbmQgZW5hYmxlIEVESyBJSSBDSSB0 byBjaGVjayBhbGwgc3VibWl0dGVkDQo+ID4gPg0KPiA+ID4gICAgIHBhdGNoZXMgaGF2ZSBiZWVu IHJ1biB0aHJvdWdoIHVuY3J1c3RpZnkuDQo+ID4gPg0KPiA+ID4gICAgIFdlIGhhdmUgdmVyaWZp ZWQgdGhyb3VnaCB0aGUgQ29tcGFyZUJ1aWxkIEdpdEh1YiBBY3Rpb24gdGhhdCB0aGUNCj4gPiA+ DQo+ID4gPiAgICAgZm9ybWF0IGNoYW5nZXMgcGVyZm9ybWVkIGJ5IHVuY3J1c3RpZnkgaGF2ZSBu byBmdW5jdGlvbmFsIGNoYW5nZXMuDQo+ID4gPg0KPiA+ID4gICAgIEFsbCBvZiB0aGUgT0JKLCBM SUIsIERMTCwgRUZJLCBGRlMsIEZWLCBhbmQgRkQgZmlsZXMgbWF0Y2ggMTAwJQ0KPiA+ID4NCj4g PiA+ICAgICBhY3Jvc3MgNzAgVlMyMDE5L0dDQzUgYnVpbGRzIG9mIGFsbCBwYWNrYWdlL3BsYXRm b3JtIERTQyBmaWxlcyBpbg0KPiA+ID4NCj4gPiA+ICAgICB0aGUgZWRrMiByZXBvLg0KPiA+ID4N Cj4gPiA+ICAgICBUaGUgaGFyZCBmcmVlemUgd2lsbCBiZSBleHRlbmRlZCBhZnRlciB0aGUgZWRr Mi1zdGFibGUyMDIxMTEgdGFnIHVudGlsDQo+ID4gPg0KPiA+ID4gICAgIGFsbCB1bmNydXN0aWZ5 IHJlbGF0ZWQgY2hhbmdlcyBhcmUgY29tbWl0dGVkLldlIGRvIG5vdCBleHBlY3QgdGhpcw0KPiA+ ID4NCj4gPiA+ICAgICB0byB0YWtlIG1vcmUgdGhhbiBhIGZldyBkYXlzLkRvIG5vdCBwdXNoIGFu eSBQUnMgdW50aWwgdGhlIGhhcmQNCj4gPiA+DQo+ID4gPiAgICAgZnJlZXplIGlzIGxpZnRlZC4N Cj4gPiA+DQo+ID4gPiAgICAgVGhlIGNoYW5nZXMgYXJlIGJyb2tlbiB1cCBpbnRvIDcgcGF0Y2gg c2VyaWVzL1BScy5UaGUgUFJzIGFyZSBvcmRlcmVkDQo+ID4gPg0KPiA+ID4gICAgIHNvIHRoZXkg Y2FuIGJlIHN1Ym1pdHRlZCB1c2luZyB0aGUgbm9ybWFsIHN1Ym1pc3Npb24gcHJvY2VzcyBhbmQg RURLIElJDQo+ID4gPg0KPiA+ID4gICAgIENJIHdpbGwgcGFzcyBmb3IgZWFjaCBvbmUuRGV0YWls cyBhcmUgbGlzdGVkIGJlbG93Lg0KPiA+ID4NCj4gPiA+ICAgICBVbmNydXN0aWZ5IDczLjAuMyBm b3IgRURLIElJDQo+ID4gPg0KPiA+ID4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 DQo+ID4gPg0KPiA+ID4gICAgICogU291cmNlczpodHRwczovL2Rldi5henVyZS5jb20vcHJvamVj dG11L19naXQvVW5jcnVzdGlmeSAgPGh0dHBzOi8vZGV2LmF6dXJlLmNvbS9wcm9qZWN0bXUvX2dp dC9VbmNydXN0aWZ5Pg0KPiA+ID4NCj4gPiA+ICAgICAqIERvY3VtZW50YXRpb246aHR0cHM6Ly9k ZXYuYXp1cmUuY29tL3Byb2plY3RtdS9VbmNydXN0aWZ5L193aWtpL3dpa2lzL1VuY3J1c3RpZnku d2lraS8xL1Byb2plY3QtTXUtKEVESy1JSSktRm9yay0NCj4gPiBSZWFkbWUgIDxodHRwczovL2Rl di5henVyZS5jb20vcHJvamVjdG11L1VuY3J1c3RpZnkvX3dpa2kvd2lraXMvVW5jcnVzdGlmeS53 aWtpLzEvUHJvamVjdC1NdS0oRURLLUlJKS1Gb3JrLVJlYWRtZT4NCj4gPiA+DQo+ID4gPiAgICAg KiBEb3dubG9hZDpodHRwczovL2Rldi5henVyZS5jb20vcHJvamVjdG11L1VuY3J1c3RpZnkvX3Bh Y2thZ2luZz9fYT1wYWNrYWdlJmZlZWQ9bXVfdW5jcnVzdGlmeSZwYWNrYWdlPW11LQ0KPiA+IHVu Y3J1c3RpZnktcmVsZWFzZSZwcm90b2NvbFR5cGU9TnVHZXQmdmVyc2lvbj03My4wLjMNCj4gPiA8 aHR0cHM6Ly9kZXYuYXp1cmUuY29tL3Byb2plY3RtdS9VbmNydXN0aWZ5L19wYWNrYWdpbmc/X2E9 cGFja2FnZSZmZWVkPW11X3VuY3J1c3RpZnkmcGFja2FnZT1tdS11bmNydXN0aWZ5LQ0KPiA+IHJl bGVhc2UmcHJvdG9jb2xUeXBlPU51R2V0JnZlcnNpb249NzMuMC4zPg0KPiA+ID4NCj4gPiA+ICAg ICBJbnN0YWxsaW5nIFVuY3J1c3RpZnkNCj4gPiA+DQo+ID4gPiAgICAgPT09PT09PT09PT09PT09 PT09PT09PQ0KPiA+ID4NCj4gPiA+ICAgICBUaGUgVW5jcnVzdGlmeSB0b29sIGlzIGluc3RhbGxl ZCBhdXRvbWF0aWNhbGx5IHdoZW4gdGhlIFB5dG9vbHMNCj4gPiA+DQo+ID4gPiAgICAgZW52aXJv bm1lbnQgaXMgdXNlZCBhbmQgdGhlIHN0dWFydCogY29tbWFuZHMgYXJlIHJ1biB0byBjb21wbGV0 ZSB0aGUNCj4gPiA+DQo+ID4gPiAgICAgZW52aXJvbm1lbnQgc2V0dXAuUGxlYXNlIHNlZToNCj4g PiA+DQo+ID4gPiAgICAgaHR0cHM6Ly9naXRodWIuY29tL3RpYW5vY29yZS9lZGsyL3RyZWUvbWFz dGVyLy5weXRvb2wjcnVubmluZy1jaS1sb2NhbGx5DQo+ID4gPGh0dHBzOi8vZ2l0aHViLmNvbS90 aWFub2NvcmUvZWRrMi90cmVlL21hc3Rlci8ucHl0b29sI3J1bm5pbmctY2ktbG9jYWxseT4NCj4g PiA+DQo+ID4gPiAgICAgVW5jcnVzdGlmeSBjYW4gYWxzbyBiZSBpbnN0YWxsZWQgZnJvbSB0aGUg ZG93bmxvYWQgcGFnZSBsaXN0ZWQgYWJvdmUNCj4gPiA+DQo+ID4gPiAgICAgb3IgYnVpbHQgZnJv bSBzb3VyY2VzIGZyb20gdGhlIHNvdXJjZSBsaW5rIGFib3ZlLg0KPiA+ID4NCj4gPiA+ICAgICBU aGUgRG9jdW1lbnRhdGlvbiBsaW5rIHByb3ZpZGVzIGluc3RydWN0aW9uIG9uIGhvdyB0byBydW4g dW5jcnVzdGlmeSBmcm9tDQo+ID4gPg0KPiA+ID4gICAgIHRoZSBjb21tYW5kIGxpbmUgb3IgaW5z dGFsbCBhcyBhIFZpc3VhbCBTdHVkaW8gQ29kZSBwbHVnaW4uVGhlIG1haW4NCj4gPiA+DQo+ID4g PiAgICAgdW5jcnVzdGlmeSBkb2N1bWVudGF0aW9uIGFsc28gZGVzY3JpYmVzIGhvdyB0byBpbnRl Z3JhdGUgd2l0aCBhIGZldyBvdGhlcg0KPiA+ID4NCj4gPiA+ICAgICBlZGl0b3JzLg0KPiA+ID4N Cj4gPiA+ICAgICBXZSBoYXZlIGFsc28gZGlzY3Vzc2VkIGEgY2xpZW50IHNpZGUgZ2l0aG9vay5U aGF0IGVmZm9ydCBoYXMgbm90IHN0YXJ0ZWQuDQo+ID4gPg0KPiA+ID4gICAgIExldCB1cyBrbm93 IGlmIHRoYXQgaXMgYSBmZWF0dXJlIHlvdSB3b3VsZCBmaW5kIHVzZWZ1bC4NCj4gPiA+DQo+ID4g PiAgICAgRGV2ZWxvcGVyIGltcGFjdCBmb3IgbmV3IGNvZGUgcmV2aWV3cw0KPiA+ID4NCj4gPiA+ ICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA+ID4NCj4gPiA+ ICAgICBPbmNlIHRoZSB1bmNydXN0aWZ5IGNoZWNrZXIgaXMgYWN0aXZlIGluIEVESyBJSSBDSSwg ZGV2ZWxvcGVycyBtdXN0DQo+ID4gPg0KPiA+ID4gICAgIG1ha2Ugc3VyZSB0aGVpciBwYXRjaGVz IGFyZSBydW4gdGhyb3VnaCB0aGUgdW5jcnVzdGlmeSB0b29sIGJlZm9yZQ0KPiA+ID4NCj4gPiA+ ICAgICBzZW5kaW5nIHRoZSBwYXRjaGVzIGZvciByZXZpZXcuDQo+ID4gPg0KPiA+ID4gICAgIERl dmVsb3BlcnMgbXVzdCBpbnN0YWxsIGFuZCBydW4gdW5jcnVzdGlmeSBhZ2FpbnN0IGNoYW5nZXMg ZmlsZXMgYmVmb3JlDQo+ID4gPg0KPiA+ID4gICAgIHNlbmRpbmcgcGF0Y2ggcmV2aWV3IGVtYWls cyBvciBzdWJtaXR0aW5nIFBSIGZvciBFREsgSUkgQ0kuSWYgRURLIElJIENJDQo+ID4gPg0KPiA+ ID4gICAgIGRldGVjdHMgYW5kIGRpZmZlcmVuY2VzIGluIHNvdXJjZSBmb3JtYXR0aW5nLCB0aGVu IEVESyBJSSBDSSB3aWxsIGZhaWwNCj4gPiA+DQo+ID4gPiAgICAgYW5kIHRoZSBkZXZlbG9wZXIg bXVzdCBydW4gdW5jcnVzdGlmeSBhbmQgcmVzdWJtaXQgdGhlIHBhdGNoZXMuDQo+ID4gPg0KPiA+ ID4gICAgIERldmVsb3BlciBpbXBhY3QgdG8gcGF0Y2ggc2VyaWVzL1BScyByZXZpZXdlZCBkdXJp bmcgZWRrMi1zdGFibGUyMDExMjEgc29mdC9oYXJkIGZyZWV6ZQ0KPiA+ID4NCj4gPiA+ICAgICA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gPiA+DQo+ID4gPiAgICAgRGV2ZWxvcGVy cyBtdXN0IHJlYmFzZSB0aGVpciBjaGFuZ2VzIGFmdGVyIHRoZSB1bmNydXN0aWZ5IHNvdXJjZSBj aGFuZ2VzIGFyZQ0KPiA+ID4NCj4gPiA+ICAgICBjb21taXR0ZWQuVGhlIGJyYW5jaCB3aXRoIGEg cHJldmlldyBvZiB0aGUgdW5jcnVzdGlmeSBjaGFuZ2VzIGNhbiBiZSB1c2VkDQo+ID4gPg0KPiA+ ID4gICAgIHRvIHN0YXJ0IHRoaXMgcmViYXNlIHdvcmsuDQo+ID4gPg0KPiA+ID4gICAgIGh0dHBz Oi8vZ2l0aHViLmNvbS9tZGtpbm5leS9lZGsyL3RyZWUvQnVnXzM3MzdfMzczOV9BcHBseVVuY3J1 c3RpZnlDaGFuZ2VzX1Y1DQo+ID4gPGh0dHBzOi8vZ2l0aHViLmNvbS9tZGtpbm5leS9lZGsyL3Ry ZWUvQnVnXzM3MzdfMzczOV9BcHBseVVuY3J1c3RpZnlDaGFuZ2VzX1Y1Pg0KPiA+ID4NCj4gPiA+ ICAgICBUaGUgZm9sbG93aW5nIHN0ZXBzIGNhbiBiZSB1c2VkIHRvIHVwZGF0ZSBhbiBleGlzdGlu ZyBicmFuY2ggd2l0aCB0aGUNCj4gPiA+DQo+ID4gPiAgICAgcmVxdWlyZWQgdW5jcnVzdGlmeSBm b3JtYXQuVGhpcyBpcyB0aGUgV2luZG93cyB2ZXJzaW9uLkkgd2lsbCBhZGQNCj4gPiA+DQo+ID4g PiAgICAgdGhlIExpbnV4IHZlcnNpb24gc29vbi4NCj4gPiA+DQo+ID4gPiAgICAgMSkgRmV0Y2gg YW5kIGNoZWNrb3V0IGFuZCByZWJhc2UgdG8gbGF0ZXN0IGVkazIvbWFzdGVyDQo+ID4gPg0KPiA+ ID4gICAgIGdpdCBmZXRjaCBvcmlnaW4NCj4gPiA+DQo+ID4gPiAgICAgZ2l0IGNoZWNrb3V0IG1h c3Rlcg0KPiA+ID4NCj4gPiA+ICAgICBnaXQgcmViYXNlIG9yaWdpbi9tYXN0ZXINCj4gPiA+DQo+ ID4gPiAgICAgMikgTWFrZSBhIGJhY2t1cCBjb3B5IG9mIHBsdWdpbiBVbmNydXN0aWZ5Q2hlY2sg b3V0c2lkZSBXT1JLU1BBQ0UuDQo+ID4gPg0KPiA+ID4gICAgIChlLmcuIEM6XFRlbXBcVW5jcnVz dGlmeUNoZWNrKSBzbyB0aGUgdW5jcnVzdGlmeSB0b29sIGV4ZWN1dGFibGUgYW5kDQo+ID4gPg0K PiA+ID4gICAgIEVESyBJSSBzcGVjaWZpYyB1bmNydXN0aWZ5IGNvbmZpZ3VyYXRpb24gZmlsZSBh dmFpbGFibGUgd2hlbiB3b3JraW5nDQo+ID4gPg0KPiA+ID4gICAgIHdpdGggYSBicmFuY2ggdGhh dCBkb2VzIG5vdCBoYXZlIHRob3NlIHRvb2xzIGluIGl0cyBzY29wZS4NCj4gPiA+DQo+ID4gPiAg ICAgeGNvcHkgLnB5dG9vbFxQbHVnaW5cVW5jcnVzdGlmeUNoZWNrIEM6XFRlbXBcVW5jcnVzdGlm eUNoZWNrDQo+ID4gPg0KPiA+ID4gICAgIDMpIENoZWNrIG91dCB0aGUgcGF0Y2ggc2VyaWVzIGJy YW5jaCAoZS5nLiBNeUJyYW5jaCkNCj4gPiA+DQo+ID4gPiAgICAgZ2l0IGNoZWNrb3V0IE15QnJh bmNoDQo+ID4gPg0KPiA+ID4gICAgIDQpIFJlYmFzZSBwYXRjaCBzZXJpZXMgYWdhaW5zdCBlZGsy LXN0YWJsZTIwMjExMQ0KPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4gICAgIGdpdCByZWJhc2Ug ZWRrMi1zdGFibGUyMDIxMTENCj4gPiA+DQo+ID4gPiAgICAgNSkgQ3JlYXRlIG5ldyBicmFuY2gg Zm9yIHRoZSB1bmNydXN0aWZlZCB2ZXJzaW9uIChlLmcuIE15QnJhbmNoX1VuY3J1c3RpZmllZCkN Cj4gPiA+DQo+ID4gPiAgICAgZ2l0IGNoZWNrb3V0IC1iIE15QnJhbmNoX1VuY3J1c3RpZmllZA0K PiA+ID4NCj4gPiA+ICAgICA2KSBVc2UgZ2l0IGZpbHRlci1icmFuY2ggdG8gdW5jcnVzdGlmeSBh bGwgdGhlIGNvbW1pdHMgaW4gdGhlIHNlcmllcw0KPiA+ID4NCj4gPiA+ICAgICBiZXR3ZWVuIHRo ZSByZWJhc2UgdGFyZ2V0IGZyb20gKDIpIGFuZCBIRUFEIG9mIHRoZSBicmFuY2guQSBmaWx0ZXIN Cj4gPiA+DQo+ID4gPiAgICAgY2FuIGJlIHVzZWQgdG8gc2NvcGUgdGhlIHVuY3J1c3RpZnkgb3Bl cmF0aW9ucyB0byBvbmx5IHRoZSBDL0ggZmlsZXMNCj4gPiA+DQo+ID4gPiAgICAgaW4gdGhlIHNw ZWNpZmljIHBhY2thZ2UgdGhlIHBhdGNoIHNlcmllcyBpcyBhZ2FpbnN0LiAoZS5nLiBEeW5hbWlj VGFibGVzUGtnKS4NCj4gPiA+DQo+ID4gPiAgICAgQmFzZVRvb2xzIHNob3VsZCBhbHdheXMgYmUg ZXhjbHVkZWQuSWYgdGhlIHBhY2thZ2Ugc2NvcGVkIGZpbHRlciBpcw0KPiA+ID4NCj4gPiA+ICAg ICBub3QgdXNlZCwgaXQgd2lsbCBzdGlsbCB3b3JrLCBidXQgd2lsbCB0YWtlIGxvbmdlciB0byBy dW4gYmVjYXVzZQ0KPiA+ID4NCj4gPiA+ICAgICB1bmNydXN0aWZ5IHdpbGwgcmVzY2FuIGV2ZXJ5 IEMvSCBmaWxlcyBpbiB0aGUgd2hvbGUgcmVwby4NCj4gPiA+DQo+ID4gPiAgICAgZ2l0IGZpbHRl ci1icmFuY2ggLS10cmVlLWZpbHRlciAiZ2l0IGxzLWZpbGVzIER5bmFtaWNUYWJsZXNQa2cqLmMg RHluYW1pY1RhYmxlc1BrZyouaCA6IUJhc2VUb29scy8qIHwNCj4gPiBjOlxcVGVtcFxcVW5jcnVz dGlmeUNoZWNrXFxtdS11bmNydXN0aWZ5LXJlbGVhc2VfZXh0ZGVwXFxXaW5kb3dzLXg4NlxcdW5j cnVzdGlmeS5leGUgLWMNCj4gPiBjOlxcVGVtcFxcVW5jcnVzdGlmeUNoZWNrXFx1bmNydXN0aWZ5 LmNmZyAtRiAtIC0tcmVwbGFjZSAtLW5vLWJhY2t1cCAtLWlmLWNoYW5nZWQiIGVkazItc3RhYmxl MjAyMTExLi5IRUFEDQo+ID4gPg0KPiA+ID4gICAgIDcpIE5vdyB0aGF0IGFsbCB0aGUgaW5kaXZp ZHVhbCBwYXRjaGVzIGluIHRoZSBicmFuY2ggYXJlIHVuY3J1c3RpZmllZCwNCj4gPiA+DQo+ID4g PiAgICAgcmViYXNlIGFnYWluc3QgbGF0ZXN0IGVkazIvbWFzdGVyIHRoYXQgaXMgYWxyZWFkeSB1 bmNydXN0aWZpZWQuDQo+ID4gPg0KPiA+ID4gICAgIGdpdCByZWJhc2UgbWFzdGVyDQo+ID4gPg0K PiA+ID4gICAgIDgpIFZlcmlmeSB0aGUgcGF0Y2hlcyBpbiB0aGlzIG5ldyBicmFuY2guDQo+ID4g Pg0KPiA+ID4gICAgIEltcGFjdHMgdG8gdHJhY2luZyBoaXN0b3J5IGFjcm9zcyB0aGUgdW5jcnVz aXR5IGNoYW5nZXMNCj4gPiA+DQo+ID4gPiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA+ID4NCj4gPiA+ICAgICBUb29scyB0aGUg dmlldyBmaWxlIGFuZCBsaW5lIGhpc3RvcnkgZG8gd29yayB3aXRoIHRoZSBsYXJnZSB1bmNydXN0 aWZ5DQo+ID4gPg0KPiA+ID4gICAgIHBhdGNoIHNlcmllcy5PbmUgaW1wYWN0IGlzIHRoYXQgdGhl IG9wZXJhdGlvbnMgY2FuIGJlIHZlcnkgc2xvdyBkdWUNCj4gPiA+DQo+ID4gPiAgICAgdG8gdGhl IGxhcmdlIHVuY3J1c3RpZnkgcGF0Y2hlcy4NCj4gPiA+DQo+ID4gPiAgICAgT25lIG9wdGlvbiB0 byBwcm92aWRlIGEgZmFzdGVyIGV4cGVyaWVuY2UgaXMgdG8gcHJvdmlkZSBhbiBhbHRlcm5hdGUN Cj4gPiA+DQo+ID4gPiAgICAgdmVyc2lvbiBvZiB0aGUgZWRrMiByZXBvc2l0b3J5IGFzICJkb2N1 bWVudGF0aW9uIiB0aGF0IGhhcyB0aGUNCj4gPiA+DQo+ID4gPiAgICAgZW50aXJlIGhpc3Rvcnkg cmUtd3JpdHRlbiB3aXRoIHVuY3J1c3RpZnkgcnVuIG9uIGV2ZXJ5IGNvbW1pdC4NCj4gPiA+DQo+ ID4gPiAgICAgVGhlIHRvb2wgY2FsbGVkIGdpdC1maWx0ZXItcmVwbyBjYW4gYmUgdXNlZCB0byBw ZXJmb3JtIHRoaXMNCj4gPiA+DQo+ID4gPiAgICAgdHJhbnNmb3JtYXRpb24gYW5kIHJ1bnMgaW4g YSByZWFzb25hYmxlIHBlcmlvZCBvZiB0aW1lIChhIGZldyBob3VycykNCj4gPiA+DQo+ID4gPiAg ICAgaHR0cHM6Ly9naXRodWIuY29tL25ld3Jlbi9naXQtZmlsdGVyLXJlcG8gIDxodHRwczovL2dp dGh1Yi5jb20vbmV3cmVuL2dpdC1maWx0ZXItcmVwbz4NCj4gPiA+DQo+ID4gPiAgICAgaHR0cHM6 Ly9naXRodWIuY29tL25ld3Jlbi9naXQtZmlsdGVyLXJlcG8vYmxvYi9tYWluL2NvbnRyaWIvZmls dGVyLXJlcG8tZGVtb3MvbGludC1oaXN0b3J5DQo+ID4gPGh0dHBzOi8vZ2l0aHViLmNvbS9uZXdy ZW4vZ2l0LWZpbHRlci1yZXBvL2Jsb2IvbWFpbi9jb250cmliL2ZpbHRlci1yZXBvLWRlbW9zL2xp bnQtaGlzdG9yeT4NCj4gPiA+DQo+ID4gPiAgICAgVGhlIGZvbGxvd2luZyBzdGVwcyBjYW4gYmUg dXNlZCB0byBwZXJmb3JtIHRoaXMgdHJhbnNmb3JtYXRpb24uDQo+ID4gPg0KPiA+ID4gICAgIFRo aXMgaXMgdGhlIFdpbmRvd3MgdmVyc2lvbi4gSSB3aWxsIGFkZCB0aGUgTGludXggdmVyc2lvbiBz b29uLg0KPiA+ID4NCj4gPiA+ICAgICAqKiBXQVJOSU5HICoqVGhpcyBvcGVyYXRpb24gbW9kaWZp ZXMocmV3cml0ZXMpIGFsbCB0aGUgY29tbWl0cw0KPiA+ID4NCj4gPiA+ICAgICBpbiB0aGUgbG9j YWwgY29weSBvZiB0aGUgcmVwby5EbyBub3QgcGVyZm9ybQ0KPiA+ID4NCj4gPiA+ICAgICB0aGVz ZSBzdGVwcyBvbiBhIGxvY2FsIHJlcG8geW91IGFyZSB1c2luZyBmb3INCj4gPiA+DQo+ID4gPiAg ICAgYWN0aXZlIGRldmVsb3BtZW50Lg0KPiA+ID4NCj4gPiA+ICAgICAxKSBDbG9uZSBlZGsyIGlu dG8gYSBuZXcgZGlyZWN0b3J5IChzZWUgKipXQVJOSU5HKiopDQo+ID4gPg0KPiA+ID4gICAgIGdp dCBjbG9uZWh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRrMi5naXQgIDxodHRwczovL2dp dGh1Yi5jb20vdGlhbm9jb3JlL2VkazIuZ2l0PiAgZWRrMi11bmNydXN0aWZpZWQNCj4gPiA+DQo+ ID4gPiAgICAgY2QgZWRrMi11bmNydXN0aWZpZWQNCj4gPiA+DQo+ID4gPiAgICAgMikgU2V0dXAg cHl0aG9uIHZpcnR1YWwgZW52LCBpbnN0YWxsIHB5dG9vbHMsIGFuZCBydW4gc3R1YXJ0IGNvbW1h bmRzDQo+ID4gPg0KPiA+ID4gICAgIHRvIHNldHVwIGJ1aWxkIGVudmlyb25tZW50IHdoaWNoIGlu Y2x1ZGVzIGluc3RhbGxpbmcgdW5jcnVzdGlmeSB0b29scy4NCj4gPiA+DQo+ID4gPiAgICAgaHR0 cHM6Ly9naXRodWIuY29tL3RpYW5vY29yZS9lZGsyL3RyZWUvbWFzdGVyLy5weXRvb2wjcnVubmlu Zy1jaS1sb2NhbGx5DQo+ID4gPGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRrMi90cmVl L21hc3Rlci8ucHl0b29sI3J1bm5pbmctY2ktbG9jYWxseT4NCj4gPiA+DQo+ID4gPiAgICAgMykg TWFrZSBhIGJhY2t1cCBjb3B5IG9mIHBsdWdpbiBVbmNydXN0aWZ5Q2hlY2sgb3V0c2lkZSBXT1JL U1BBQ0UuDQo+ID4gPg0KPiA+ID4gICAgIChlLmcuIEM6XFRlbXBcVW5jcnVzdGlmeUNoZWNrKSBz byB0aGUgdW5jcnVzdGlmeSB0b29sIGV4ZWN1dGFibGUgYW5kDQo+ID4gPg0KPiA+ID4gICAgIEVE SyBJSSBzcGVjaWZpYyB1bmNydXN0aWZ5IGNvbmZpZ3VyYXRpb24gZmlsZSBhdmFpbGFibGUgd2hl biB3b3JraW5nDQo+ID4gPg0KPiA+ID4gICAgIHdpdGggYSBicmFuY2ggdGhhdCBkb2VzIG5vdCBo YXZlIHRob3NlIHRvb2xzIGluIGl0cyBzY29wZS4NCj4gPiA+DQo+ID4gPiAgICAgeGNvcHkgLnB5 dG9vbFxQbHVnaW5cVW5jcnVzdGlmeUNoZWNrIEM6XFRlbXBcVW5jcnVzdGlmeUNoZWNrDQo+ID4g Pg0KPiA+ID4gICAgIDQpIFVzZSBsaW50LWhpc3RvcnkucHkgZnJvbSBnaXQtZmlsdGVyLXJlcG8g ZXhhbXBsZXMNCj4gPiA+DQo+ID4gPiAgICAgaHR0cHM6Ly9naXRodWIuY29tL25ld3Jlbi9naXQt ZmlsdGVyLXJlcG8gIDxodHRwczovL2dpdGh1Yi5jb20vbmV3cmVuL2dpdC1maWx0ZXItcmVwbz4N Cj4gPiA+DQo+ID4gPiAgICAgaHR0cHM6Ly9naXRodWIuY29tL25ld3Jlbi9naXQtZmlsdGVyLXJl cG8vYmxvYi9tYWluL2NvbnRyaWIvZmlsdGVyLXJlcG8tZGVtb3MvbGludC1oaXN0b3J5DQo+ID4g PGh0dHBzOi8vZ2l0aHViLmNvbS9uZXdyZW4vZ2l0LWZpbHRlci1yZXBvL2Jsb2IvbWFpbi9jb250 cmliL2ZpbHRlci1yZXBvLWRlbW9zL2xpbnQtaGlzdG9yeT4NCj4gPiA+DQo+ID4gPiAgICAgTGlu ZSAjMTI3IC0gQWRkIHRyeSBleGNlcHQgYXJvdW5kIHN1YnByb2Nlc3MuY2hlY2tfY2FsbCgpIHdp dGggZXhjZXB0DQo+ID4gPg0KPiA+ID4gICAgIGJlaW5nIHBhc3MuVGhpcyBpcyByZXF1aXJlZCBi ZWNhdXNlIHRoZXJlIGFyZSBhIGZldyBjb21taXRzIG9mIEMNCj4gPiA+DQo+ID4gPiAgICAgZmls ZXMgaW4gdGhlIGVkazIgcmVwbyB0aGF0IGhhdmUgaW5jb3JyZWN0IEMgc3ludGF4IGFuZCBkbyBu b3QNCj4gPiA+DQo+ID4gPiAgICAgYnVpbGQgd2l0aCBhIEMgY29tcGlsZXIgYW5kIGJyZWFrIHRo ZSB1bmNydXN0aWZ5IHBhcnNlci5Ta2lwIHJlZm9ybWF0DQo+ID4gPg0KPiA+ID4gICAgIG9mIEMg ZmlsZXMgdGhhdCBjYW4gbm90IGJlIHBhcnNlZCBieSB1bmNydXN0aWZ5LlRoZXNlIHJhcmUgaW5z dGFuY2VzDQo+ID4gPg0KPiA+ID4gICAgIGFyZSBhZGRyZXNzZWQgaW4gdGhlIGNvbW1pdCB0aGF0 IGZpeGVzIHRoZSBDIHN5bnRheCBlcnJvci4NCj4gPiA+DQo+ID4gPiAgICAgUnVuIHRoaXMgc2xp Z2h0bHkgbW9kaWZpZWQgdmVyc2lvbiBvZiBsaW50LWhpc3RvcnkuSW5jbHVkZSBvbmx5DQo+ID4g Pg0KPiA+ID4gICAgIEMvSCBmaWxlcyBhbmQgZXhjbHVkZSBkaXJlY3RvcmllcyB0aGF0IHN0YXJ0 IHdpdGggJ1Rvb2xzJyBvciAnQmFzZVRvb2xzJy4NCj4gPiA+DQo+ID4gPiAgICAgVGhpcyBzdGVw IHRvb2sgYWJvdXQgMi4yIGhvdXJzIG9uIGEgbGFwdG9wLg0KPiA+ID4NCj4gPiA+ICAgICBsaW50 LWhpc3RvcnkucHkNCj4gPiA+DQo+ID4gPiAgICAgLS1yZWxldmFudCAicmV0dXJuIChub3QgZmls ZW5hbWUuc3RhcnRzd2l0aChiJ1Rvb2xzJykgYW5kIG5vdCBmaWxlbmFtZS5zdGFydHN3aXRoKGIn QmFzZVRvb2xzJykgYW5kDQo+ID4gKGZpbGVuYW1lLmVuZHN3aXRoKGInLmMnKSBvciBmaWxlbmFt ZS5lbmRzd2l0aChiJy5oJykpKSINCj4gPiA+DQo+ID4gPiAgICAgYzpcXHdvcmtcXEdpdEh1Ylxc dGlhbm9jb3JlXFxmb29cXFVuY3J1c3RpZnlDaGVja1xcbXUtdW5jcnVzdGlmeS1yZWxlYXNlX2V4 dGRlcFxcV2luZG93cy14ODZcXHVuY3J1c3RpZnkuZXhlIC1jDQo+ID4gYzpcXHdvcmtcXEdpdEh1 YlxcdGlhbm9jb3JlXFxmb29cXFVuY3J1c3RpZnlDaGVja1xcdW5jcnVzdGlmeS5jZmcgLS1yZXBs YWNlIC0tbm8tYmFja3VwIC0taWYtY2hhbmdlZA0KPiA+ID4NCj4gPiA+ICAgICBPcmRlciBvZiBQ UnMgdG8gYXBwbHkgZHVyaW5nIGV4dGVuZGVkIGhhcmQgZnJlZXplDQo+ID4gPg0KPiA+ID4gICAg ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+ID4g Pg0KPiA+ID4gICAgIDEpIFVwZGF0ZSBFbXVsYXRvclBrZyBXaW4gSG9zdCBbQnVpbGRPcHRpb25z XSBNU0ZUIENDX0ZMQUdTIHRvIG5vdCBmb3JjZSBkZWJ1ZyBpbmZvcm1hdGlvbg0KPiA+ID4NCj4g PiA+ICAgICAqaHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0z NzQ3ICA8aHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzQ3 Pg0KPiA+ID4NCj4gPiA+ICAgICAqaHR0cHM6Ly9naXRodWIuY29tL21ka2lubmV5L2VkazIvdHJl ZS9CdWdfMzc0N19FbXVsYXRvclBrZ19XaW5Ib3N0X1JlcHJvZHVjaWJsZUJ1aWxkDQo+ID4gPGh0 dHBzOi8vZ2l0aHViLmNvbS9tZGtpbm5leS9lZGsyL3RyZWUvQnVnXzM3NDdfRW11bGF0b3JQa2df V2luSG9zdF9SZXByb2R1Y2libGVCdWlsZD4NCj4gPiA+DQo+ID4gPiAgICAgKmh0dHBzOi8vZ2l0 aHViLmNvbS90aWFub2NvcmUvZWRrMi9wdWxsLzIyMTUgIDxodHRwczovL2dpdGh1Yi5jb20vdGlh bm9jb3JlL2VkazIvcHVsbC8yMjE1Pg0KPiA+ID4NCj4gPiA+ICAgICAqIFJlcXVpcmVkIGZvciBF bXVsYXRvclBrZyB0byBwYXNzIENvbXBhcmVCdWlsZCBmb3IgVlMyMDE5IElBMzIvWDY0IGJ1aWxk cy4NCj4gPiA+DQo+ID4gPiAgICAgKiBTdGF0dXM6IFJldmlldyBjb21wbGV0ZS5QUiBwdXNoZWQu DQo+ID4gPg0KPiA+ID4gICAgIDIpIEVjY0NoZWNrIHNob3VsZCBub3QgcmV2ZXJ0IHN0YWdlZCBh bmQgbG9jYWwgY2hhbmdlcw0KPiA+ID4NCj4gPiA+ICAgICAqaHR0cHM6Ly9idWd6aWxsYS50aWFu b2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTg2ICA8aHR0cHM6Ly9idWd6aWxsYS50aWFub2Nv cmUub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTg2Pg0KPiA+ID4NCj4gPiA+ICAgICAqaHR0cHM6Ly9n aXRodWIuY29tL21ka2lubmV5L2VkazIvdHJlZS9CdWdfMjk4Nl9FY2NDaGVja1JlbW92ZUdpdFJl dmVydF9WMg0KPiA+IDxodHRwczovL2dpdGh1Yi5jb20vbWRraW5uZXkvZWRrMi90cmVlL0J1Z18y OTg2X0VjY0NoZWNrUmVtb3ZlR2l0UmV2ZXJ0X1YyPg0KPiA+ID4NCj4gPiA+ICAgICAqaHR0cHM6 Ly9naXRodWIuY29tL3RpYW5vY29yZS9lZGsyL3B1bGwvMjIxNiAgPGh0dHBzOi8vZ2l0aHViLmNv bS90aWFub2NvcmUvZWRrMi9wdWxsLzIyMTY+DQo+ID4gPg0KPiA+ID4gICAgICogUmVxdWlyZWQg Zm9yIEVESyBJSSBDSSB0byBjb21wbGV0ZSBpbiBhIHJlYXNvbmFibGUgcGVyaW9kIG9mIHRpbWUg d2hlbg0KPiA+ID4NCj4gPiA+ICAgICBwcm9jZXNzaW5nIHRoZSA0MDAwKyBzb3VyY2UgZmlsZSBz dHlsZSBjaGFuZ2VzIG1hZGUgYnkgdW5jcnVzdGlmeS4NCj4gPiA+DQo+ID4gPiAgICAgKiBBbHNv IGZpeGVzIGNyaXRpY2FsIGJ1Z3MgdGhhdCBjYW4gcG90ZW50aWFsbHkgY29ycnVwdCBnaXQgc3Rh dGUgd2hlbg0KPiA+ID4NCj4gPiA+ICAgICBFY2NDaGVjayBpcyBydW4gbG9jYWxseS4NCj4gPiA+ DQo+ID4gPiAgICAgKiBTdGF0dXM6IFJldmlldyBjb21wbGV0ZS5QUiBwdXNoZWQuDQo+ID4gPg0K PiA+ID4gICAgIDMpIFVwZGF0ZSBweXRvb2wgTGljZW5zZUNoZWNrIHBsdWdpbiB0byB1c2UgdGVt cCBkaXJlY3RvcnkgZm9yIGRpZmYgb3V0cHV0IGZpbGUNCj4gPiA+DQo+ID4gPiAgICAgKmh0dHBz Oi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzc0NiAgPGh0dHBzOi8v YnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzc0Nj4NCj4gPiA+DQo+ID4g PiAgICAgKmh0dHBzOi8vZ2l0aHViLmNvbS9tZGtpbm5leS9lZGsyL3RyZWUvQnVnXzM3NDZfTGlj ZW5zZUNoZWNrVXNlRGlmZk91dHB1dEZpbGVfVjINCj4gPiA8aHR0cHM6Ly9naXRodWIuY29tL21k a2lubmV5L2VkazIvdHJlZS9CdWdfMzc0Nl9MaWNlbnNlQ2hlY2tVc2VEaWZmT3V0cHV0RmlsZV9W Mj4NCj4gPiA+DQo+ID4gPiAgICAgKmh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRrMi9w dWxsLzIyMTcgIDxodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazIvcHVsbC8yMjE3Pg0K PiA+ID4NCj4gPiA+ICAgICAqIFJlcXVpcmVkIHRvIHJlZHVjZSBFREsgSUkgQ0kgYnVpbGQgdGlt ZXMuDQo+ID4gPg0KPiA+ID4gICAgICogU3RhdHVzOiBSZXZpZXcgY29tcGxldGUuUFIgcHVzaGVk Lg0KPiA+ID4NCj4gPiA+ICAgICA0KSBVcGRhdGUgbWF4IGpvYiB0aW1lIGZyb20gNjAgbWluIHRv IDEyMCBtaW51dGVzIGluIC5henVyZXBpcGVsaW5lcy90ZW1wbGF0ZXMNCj4gPiA+DQo+ID4gPiAg ICAgKmh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzc1MCAg PGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzc1MD4NCj4g PiA+DQo+ID4gPiAgICAgKmh0dHBzOi8vZ2l0aHViLmNvbS9tZGtpbm5leS9lZGsyL3RyZWUvQnVn XzM3NTBfSW5jcmVhc2VBenVyZVBpcGVsaW5lc1RpbWVvdXQNCj4gPiA8aHR0cHM6Ly9naXRodWIu Y29tL21ka2lubmV5L2VkazIvdHJlZS9CdWdfMzc1MF9JbmNyZWFzZUF6dXJlUGlwZWxpbmVzVGlt ZW91dD4NCj4gPiA+DQo+ID4gPiAgICAgKmh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRr Mi9wdWxsLzIyMTkgIDxodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazIvcHVsbC8yMjE5 Pg0KPiA+ID4NCj4gPiA+ICAgICAqIFJlcXVpcmVkIHRvIGFsbG93IEVjY0NoZWNrIG9mIHVuY3J1 c3RpZnkgY2hhbmdlcyB0byBjb21wbGV0ZSBvbiBBenVyZQ0KPiA+ID4NCj4gPiA+ICAgICBQaXBl bGluZXMgQ0kgYWdlbnRzIHdpdGhvdXQgdGltaW5nIG91dC4NCj4gPiA+DQo+ID4gPiAgICAgKiBT dGF0dXM6IFJldmlldyBjb21wbGV0ZS5QUiBwdXNoZWQuDQo+ID4gPg0KPiA+ID4gICAgIDUpIFVw ZGF0ZSBQYWNrYWdlIFlBTUwgdG8gaWdub3JlIHNwZWNpZmljIEVDQyBmaWxlcy9lcnJvcnMNCj4g PiA+DQo+ID4gPiAgICAgKmh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5j Z2k/aWQ9Mzc0OSAgPGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/ aWQ9Mzc0OT4NCj4gPiA+DQo+ID4gPiAgICAgKmh0dHBzOi8vZ2l0aHViLmNvbS9tZGtpbm5leS9l ZGsyL3RyZWUvQnVnXzM3NDlfRWNjQ2hlY2tJZ25vcmVGaWxlc0Vycm9ycw0KPiA+IDxodHRwczov L2dpdGh1Yi5jb20vbWRraW5uZXkvZWRrMi90cmVlL0J1Z18zNzQ5X0VjY0NoZWNrSWdub3JlRmls ZXNFcnJvcnM+DQo+ID4gPg0KPiA+ID4gICAgICpodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3Jl L2VkazIvcHVsbC8yMjE4ICA8aHR0cHM6Ly9naXRodWIuY29tL3RpYW5vY29yZS9lZGsyL3B1bGwv MjIxOD4NCj4gPiA+DQo+ID4gPiAgICAgKiBSZXF1aXJlZCB0byBwYXNzIEVjY0NoZWNrDQo+ID4g Pg0KPiA+ID4gICAgICogU3RhdHVzOiBSZXZpZXcgY29tcGxldGUuIFBSIHB1c2hlZA0KPiA+ID4N Cj4gPiA+ICAgICA2KSBVbmNydXN0aWZ5IFNvdXJjZSBDaGFuZ2VzDQo+ID4gPg0KPiA+ID4gICAg ICpodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTM3MzcgIDxo dHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTM3Mzc+DQo+ID4g Pg0KPiA+ID4gICAgICpodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dp P2lkPTM3MzkgIDxodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lk PTM3Mzk+DQo+ID4gPg0KPiA+ID4gICAgICpodHRwczovL2dpdGh1Yi5jb20vbWRraW5uZXkvZWRr Mi90cmVlL0J1Z18zNzM3XzM3MzlfQXBwbHlVbmNydXN0aWZ5Q2hhbmdlc19WNQ0KPiA+IDxodHRw czovL2dpdGh1Yi5jb20vbWRraW5uZXkvZWRrMi90cmVlL0J1Z18zNzM3XzM3MzlfQXBwbHlVbmNy dXN0aWZ5Q2hhbmdlc19WNT4NCj4gPiA+DQo+ID4gPiAgICAgKmh0dHBzOi8vZ2l0aHViLmNvbS90 aWFub2NvcmUvZWRrMi9wdWxsLzIyMjkgIDxodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2Vk azIvcHVsbC8yMjI5Pg0KPiA+ID4NCj4gPiA+ICAgICAqIEJ1aWxkIGNvbXBhcmlzb24gcmVzdWx0 IFBBU1M6aHR0cHM6Ly9naXRodWIuY29tL21ka2lubmV5L2VkazIvYWN0aW9ucy9ydW5zLzE1MjE2 MTg4MzYNCj4gPiA8aHR0cHM6Ly9naXRodWIuY29tL21ka2lubmV5L2VkazIvYWN0aW9ucy9ydW5z LzE1MjE2MTg4MzY+DQo+ID4gPg0KPiA+ID4gICAgICogRUZJX0RfIC0+IERFQlVHIGNoYW5nZXMg cmVxdWlyZWQgdG8gcGFzcyBQYXRjaENoZWNrDQo+ID4gPg0KPiA+ID4gICAgICogVW5jcnVzdGlm eSBmb3JtYXQgY2hhbmdlcyByZXF1aXJlZCB0byBwYXNzIFVuY3J1c3RpZnlDaGVjaw0KPiA+ID4N Cj4gPiA+ICAgICAqIFN0YXR1czoNCj4gPiA+DQo+ID4gPiAgICAgV2FpdGluZyBmb3IgcmV2aWV3 DQo+ID4gPg0KPiA+ID4gICAgIDcpIFVuY3J1c3RpZnlDaGVjayBFREsgSUkgQ0kgUGx1Z2luDQo+ ID4gPg0KPiA+ID4gICAgICpodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcu Y2dpP2lkPTM3NDggIDxodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dp P2lkPTM3NDg+DQo+ID4gPg0KPiA+ID4gICAgICpodHRwczovL2dpdGh1Yi5jb20vbWRraW5uZXkv ZWRrMi90cmVlL0J1Z18zNzQ4X2FkZF91bmNydXN0aWZ5X2NpX3BsdWdpbl92Ng0KPiA+IDxodHRw czovL2dpdGh1Yi5jb20vbWRraW5uZXkvZWRrMi90cmVlL0J1Z18zNzQ4X2FkZF91bmNydXN0aWZ5 X2NpX3BsdWdpbl92Nj4NCj4gPiA+DQo+ID4gPiAgICAgKiBSZXF1aXJlZCB0byBlbmZvcmNlIGFs bCBQUnMgc3VibWl0dGVkIHRvIEVESyBJSSBDSSBtYXRjaCB1bmNydXN0aWZ5IGZvcm1hdC4NCj4g PiA+DQo+ID4gPiAgICAgKiBVbmNvbmRpdGlvbmFsbHkgY2hlY2tzIGFsbCBwYWNrYWdlcy5DYW4g bm90IGJlIGNvbW1pdHRlZCB1bnRpbCBhbGwgQy9IDQo+ID4gPg0KPiA+ID4gICAgIHNvdXJjZSBm aWxlcyBoYXZlIGJlZW4gdXBkYXRlZC4NCj4gPiA+DQo+ID4gPiAgICAgKiBTdGF0dXM6IFJldmll dyBjb21wbGV0ZQ0KPiA+ID4NCj4gPiA+ICAgICBDb21iaW5lZCBCcmFuY2gvUFIgZm9yIFJldmll dy9UZXN0DQo+ID4gPg0KPiA+ID4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0NCj4gPiA+DQo+ID4gPiAgICAgKiBCdWlsZCBDb21wYXJpc29uIHJlc3VsdHMgbXVzdCBwYXNz IDEwMCUgYWNyb3NzIHRoZSBmdWxsIHNldCBvZiBQUnMgYmVmb3JlDQo+ID4gPg0KPiA+ID4gICAg IHRoZSBpbmRpdmlkdWFsIFBScyBjYW4gYmUgcHVzaGVkIGluIHRoZSBvcmRlciBsaXN0ZWQgYWJv dmUuDQo+ID4gPg0KPiA+ID4gICAgICogQnJhbmNoOmh0dHBzOi8vZ2l0aHViLmNvbS9tZGtpbm5l eS9lZGsyL3RyZWUvVGVzdE9ubHlfVW5jcnVzdGlmeV9QUl9TZXJpZXMNCj4gPiA8aHR0cHM6Ly9n aXRodWIuY29tL21ka2lubmV5L2VkazIvdHJlZS9UZXN0T25seV9VbmNydXN0aWZ5X1BSX1Nlcmll cz4NCj4gPiA+DQo+ID4gPiAgICAgKiBQUjpodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2Vk azIvcHVsbC8yMjI5ICA8aHR0cHM6Ly9naXRodWIuY29tL3RpYW5vY29yZS9lZGsyL3B1bGwvMjIy OT4NCj4gPiA+DQo+ID4gPiAgICAgU3RhdHVzID0gUEFTUw0KPiA+ID4NCj4gPiA+ICAgICAqIENv bXBhcmVCdWlsZDoNCj4gPiA+DQo+ID4gPiAgICAgQnJhbmNoOmh0dHBzOi8vZ2l0aHViLmNvbS9t ZGtpbm5leS9lZGsyL3RyZWUvQnVnXzM3MzdfMzczOV9BcHBseVVuY3J1c3RpZnlDaGFuZ2VzX1Y1 DQo+ID4gPGh0dHBzOi8vZ2l0aHViLmNvbS9tZGtpbm5leS9lZGsyL3RyZWUvQnVnXzM3MzdfMzcz OV9BcHBseVVuY3J1c3RpZnlDaGFuZ2VzX1Y1Pg0KPiA+ID4NCj4gPiA+ICAgICAtLXJlZjE6ZWY5 YTA1OWNkYjE1ODQ0ZmU1MmE0OWFmMmJmN2Q4NmI5ZGQzZTliZg0KPiA+ID4NCj4gPiA+ICAgICAt LXJlZjI6QnVnXzM3MzdfMzczOV9BcHBseVVuY3J1c3RpZnlDaGFuZ2VzX1Y1DQo+ID4gPg0KPiA+ ID4gICAgIEV4dHJhIE9wdGlvbnM6IC1uIDQgLS1xdWlldA0KPiA+ID4NCj4gPiA+ICAgICBSZXN1 bHRzOmh0dHBzOi8vZ2l0aHViLmNvbS9tZGtpbm5leS9lZGsyL2FjdGlvbnMvcnVucy8xNTIxNjE4 ODM2DQo+ID4gPGh0dHBzOi8vZ2l0aHViLmNvbS9tZGtpbm5leS9lZGsyL2FjdGlvbnMvcnVucy8x NTIxNjE4ODM2Pg0KPiA+ID4NCj4gPiA+ICAgICAzMCBWUzIwMTkgYnVpbGQgY29tcGFyaXNvbnMg UEFTUw0KPiA+ID4NCj4gPiA+ICAgICA0MCBHQ0M1IGJ1aWxkIGNvbXBhcmlzb25zIFBBU1MNCj4g PiA+DQo+ID4gPiAgICAgMTAwJSBQQVNTDQo+ID4gPg0KPiA+ID4gICAgIFRoZSBmb2xsb3dpbmcg Z2l0IGxvZyBzaG93cyB0aGUgc2V0IG9mIHBhdGNoZXMgZnJvbSAtLXJlZjEgdG8gLS1yZWYgMmFj cm9zcw0KPiA+ID4NCj4gPiA+ICAgICB3aGljaCB0aGVyZSBhcmUgbm8gZGlmZmVyZW5jZXMgaW4g YW55IG9mIHRoZSBPQkovTElCL0RMTC9FRkkvRkZTL0ZWL0ZEIGZpbGVzLg0KPiA+ID4NCj4gPiA+ ICAgICAtLXJlZjINCj4gPiA+DQo+ID4gPiAgICAgYjdkNGJmMDY3NWI3IChIRUFEIC0+IEJ1Z18z NzM3XzM3MzlfQXBwbHlVbmNydXN0aWZ5Q2hhbmdlc19WNSkgVW5pdFRlc3RGcmFtZXdvcmtQa2c6 IEFwcGx5IHVuY3J1c2l0aWZ5IGNoYW5nZXMNCj4gPiA+DQo+ID4gPiAgICAgN2YwM2QyNWY2MGU3 IFVlZmlQYXlsb2FkUGtnOiBBcHBseSB1bmNydXNpdGlmeSBjaGFuZ2VzDQo+ID4gPg0KPiA+ID4g ICAgIDBiZmQ4ZDliNWFjOSBVZWZpQ3B1UGtnOiBBcHBseSB1bmNydXNpdGlmeSBjaGFuZ2VzDQo+ ID4gPg0KPiA+ID4gICAgIGUxY2Q5YmZiOWRlYSBTdGFuZGFsb25lTW1Qa2c6IEFwcGx5IHVuY3J1 c2l0aWZ5IGNoYW5nZXMNCj4gPiA+DQo+ID4gPiAgICAgNWRhMmY2NWJlMzc4IFNvdXJjZUxldmVs RGVidWdQa2c6IEFwcGx5IHVuY3J1c2l0aWZ5IGNoYW5nZXMNCj4gPiA+DQo+ID4gPiAgICAgOTVi ODZkZTA3ZTVkIFNpZ25lZENhcHN1bGVQa2c6IEFwcGx5IHVuY3J1c2l0aWZ5IGNoYW5nZXMNCj4g PiA+DQo+ID4gPiAgICAgZmU3MWQ5NzI0NmM0IFNoZWxsUGtnOiBBcHBseSB1bmNydXNpdGlmeSBj aGFuZ2VzDQo+ID4gPg0KPiA+ID4gICAgIDU0YzIxYzk1Mjk5MiBTZWN1cml0eVBrZzogQXBwbHkg dW5jcnVzaXRpZnkgY2hhbmdlcw0KPiA+ID4NCj4gPiA+ICAgICAxODdhMzc4NWYxMmIgUmVkZmlz aFBrZzogQXBwbHkgdW5jcnVzaXRpZnkgY2hhbmdlcw0KPiA+ID4NCj4gPiA+ICAgICA4MTAxMDAw MDJhNDYgUGNBdENoaXBzZXRQa2c6IEFwcGx5IHVuY3J1c2l0aWZ5IGNoYW5nZXMNCj4gPiA+DQo+ ID4gPiAgICAgMjc2YTY5NWMwY2YyIE92bWZQa2c6IEFwcGx5IHVuY3J1c2l0aWZ5IGNoYW5nZXMN Cj4gPiA+DQo+ID4gPiAgICAgMzAzYzBhOTFhYjA3IE5ldHdvcmtQa2c6IEFwcGx5IHVuY3J1c2l0 aWZ5IGNoYW5nZXMNCj4gPiA+DQo+ID4gPiAgICAgYmM4MDc5MmNkMWIxIE1kZVBrZzogQXBwbHkg dW5jcnVzaXRpZnkgY2hhbmdlcw0KPiA+ID4NCj4gPiA+ICAgICAzZWE4NmJlMTdhMmEgTWRlTW9k dWxlUGtnOiBBcHBseSB1bmNydXNpdGlmeSBjaGFuZ2VzDQo+ID4gPg0KPiA+ID4gICAgIGM3MGVm MTFlZDBjZCBJbnRlbEZzcDJXcmFwcGVyUGtnOiBBcHBseSB1bmNydXNpdGlmeSBjaGFuZ2VzDQo+ ID4gPg0KPiA+ID4gICAgIGMwMjkxMjIxZjI1MiBJbnRlbEZzcDJQa2c6IEFwcGx5IHVuY3J1c2l0 aWZ5IGNoYW5nZXMNCj4gPiA+DQo+ID4gPiAgICAgNmE0Nzk5NTJhNjkwIEZtcERldmljZVBrZzog QXBwbHkgdW5jcnVzaXRpZnkgY2hhbmdlcw0KPiA+ID4NCj4gPiA+ICAgICAzYTdjMDViNzA3MGQg RmF0UGtnOiBBcHBseSB1bmNydXNpdGlmeSBjaGFuZ2VzDQo+ID4gPg0KPiA+ID4gICAgIGI3ODlm OThjODk1OSBFbXVsYXRvclBrZzogQXBwbHkgdW5jcnVzaXRpZnkgY2hhbmdlcw0KPiA+ID4NCj4g PiA+ICAgICA5NTJkN2ExYzkyMjAgRW1iZWRkZWRQa2c6IEFwcGx5IHVuY3J1c2l0aWZ5IGNoYW5n ZXMNCj4gPiA+DQo+ID4gPiAgICAgYTFjYzk4ODFiYWI2IER5bmFtaWNUYWJsZXNQa2c6IEFwcGx5 IHVuY3J1c2l0aWZ5IGNoYW5nZXMNCj4gPiA+DQo+ID4gPiAgICAgNTA2NTRkZmU1Nzg1IENyeXB0 b1BrZzogQXBwbHkgdW5jcnVzaXRpZnkgY2hhbmdlcw0KPiA+ID4NCj4gPiA+ICAgICBlZDk2NWEw MmRmYTEgQXJtVmlydFBrZzogQXBwbHkgdW5jcnVzaXRpZnkgY2hhbmdlcw0KPiA+ID4NCj4gPiA+ ICAgICA5NzQ0MDIzZmJjNDYgQXJtUGxhdGZvcm1Qa2c6IEFwcGx5IHVuY3J1c2l0aWZ5IGNoYW5n ZXMNCj4gPiA+DQo+ID4gPiAgICAgN2ExY2RlNWY1YmJhIEFybVBrZzogQXBwbHkgdW5jcnVzaXRp ZnkgY2hhbmdlcw0KPiA+ID4NCj4gPiA+ICAgICAxOWQxN2UwOTEzZTggVWVmaUNwdVBrZzogQ2hh bmdlIHVzZSBvZiBFRklfRF8qIHRvIERFQlVHXyoNCj4gPiA+DQo+ID4gPiAgICAgZmZhNzE4YjRm OTk0IFNvdXJjZUxldmVsRGVidWdQa2c6IENoYW5nZSB1c2Ugb2YgRUZJX0RfKiB0byBERUJVR18q DQo+ID4gPg0KPiA+ID4gICAgIGI4NmNiM2M1ZTViNCBTaGVsbFBrZzogQ2hhbmdlIHVzZSBvZiBF RklfRF8qIHRvIERFQlVHXyoNCj4gPiA+DQo+ID4gPiAgICAgYzdjNDIyMDRkYzA3IFNlY3VyaXR5 UGtnOiBDaGFuZ2UgdXNlIG9mIEVGSV9EXyogdG8gREVCVUdfKg0KPiA+ID4NCj4gPiA+ICAgICAx NmI4ZTZmOTU4ZTQgUGNBdENoaXBzZXRQa2c6IENoYW5nZSB1c2Ugb2YgRUZJX0RfKiB0byBERUJV R18qDQo+ID4gPg0KPiA+ID4gICAgIDBhYzNmOGIyZGFjNSBPdm1mUGtnOiBDaGFuZ2UgdXNlIG9m IEVGSV9EXyogdG8gREVCVUdfKg0KPiA+ID4NCj4gPiA+ICAgICBiYzUwMDRiOGQyOTQgTmV0d29y a1BrZzogQ2hhbmdlIHVzZSBvZiBFRklfRF8qIHRvIERFQlVHXyoNCj4gPiA+DQo+ID4gPiAgICAg NmY2NzFhOGUyMzc3IE1kZVBrZzogQ2hhbmdlIHVzZSBvZiBFRklfRF8qIHRvIERFQlVHXyoNCj4g PiA+DQo+ID4gPiAgICAgYTEwYzYxMGZmOWEzIE1kZU1vZHVsZVBrZzogQ2hhbmdlIHVzZSBvZiBF RklfRF8qIHRvIERFQlVHXyoNCj4gPiA+DQo+ID4gPiAgICAgMDlhM2JkZGJhMzkwIEZhdFBrZzog Q2hhbmdlIHVzZSBvZiBFRklfRF8qIHRvIERFQlVHXyoNCj4gPiA+DQo+ID4gPiAgICAgNTljNjEz MTgyNDZhIEVtdWxhdG9yUGtnOiBDaGFuZ2UgdXNlIG9mIEVGSV9EXyogdG8gREVCVUdfKg0KPiA+ ID4NCj4gPiA+ICAgICAzYTgwMzY3ZGRhM2IgRW1iZWRkZWRQa2c6IENoYW5nZSB1c2Ugb2YgRUZJ X0RfKiB0byBERUJVR18qDQo+ID4gPg0KPiA+ID4gICAgIDIzZWIxYWFmODBjYSBBcm1WaXJ0UGtn OiBDaGFuZ2UgdXNlIG9mIEVGSV9EXyogdG8gREVCVUdfKg0KPiA+ID4NCj4gPiA+ICAgICA4NzU5 MTRiNDVjNTQgQXJtUGxhdGZvcm1Qa2c6IENoYW5nZSB1c2Ugb2YgRUZJX0RfKiB0byBERUJVR18q DQo+ID4gPg0KPiA+ID4gICAgIGViMmVjYTgyYjQ1MSBBcm1Qa2c6IENoYW5nZSB1c2Ugb2YgRUZJ X0RfKiB0byBERUJVR18qDQo+ID4gPg0KPiA+ID4gICAgIGYwZjNmNWFhZTdjNCAob3JpZ2luL21h c3Rlciwgb3JpZ2luL0hFQUQsIG1hc3RlcikgVW5pdFRlc3RGcmFtZXdvcmtQa2c6IFVwZGF0ZSBZ QU1MIHRvIGlnbm9yZSBzcGVjaWZpYyBFQ0MNCj4gPiBmaWxlcy9lcnJvcnMNCj4gPiA+DQo+ID4g PiAgICAgYzA1NzM0Nzk3NzkwIFVlZmlQYXlsb2FkUGtnOiBVcGRhdGUgWUFNTCB0byBpZ25vcmUg c3BlY2lmaWMgRUNDIGZpbGVzL2Vycm9ycw0KPiA+ID4NCj4gPiA+ICAgICBjMzBjNDBkNmM2M2Qg U3RhbmRhbG9uZU1tUGtnOiBVcGRhdGUgWUFNTCB0byBpZ25vcmUgc3BlY2lmaWMgRUNDIGZpbGVz L2Vycm9ycw0KPiA+ID4NCj4gPiA+ICAgICA5OTQ0NTA4ZTg1ZjEgU2hlbGxQa2c6IFVwZGF0ZSBZ QU1MIHRvIGlnbm9yZSBzcGVjaWZpYyBFQ0MgZmlsZXMvZXJyb3JzDQo+ID4gPg0KPiA+ID4gICAg IDYwZmE0MGJlNDU4ZCBTZWN1cml0eVBrZzogVXBkYXRlIFlBTUwgdG8gaWdub3JlIHNwZWNpZmlj IEVDQyBmaWxlcy9lcnJvcnMNCj4gPiA+DQo+ID4gPiAgICAgZGY3OTBjZDZiMzdlIE1kZVBrZzog VXBkYXRlIFlBTUwgdG8gaWdub3JlIHNwZWNpZmljIEVDQyBmaWxlcy9lcnJvcnMNCj4gPiA+DQo+ ID4gPiAgICAgOWRlYjkzNzA3NjZlIE1kZU1vZHVsZVBrZzogVXBkYXRlIFlBTUwgdG8gaWdub3Jl IHNwZWNpZmljIEVDQyBmaWxlcy9lcnJvcnMNCj4gPiA+DQo+ID4gPiAgICAgZDdkMzBlOGYyMTlm IEVtdWxhdG9yUGtnOiBVcGRhdGUgWUFNTCB0byBpZ25vcmUgc3BlY2lmaWMgRUNDIGZpbGVzL2Vy cm9ycw0KPiA+ID4NCj4gPiA+ICAgICBkNTc0NGVjYmE4MTMgQ3J5cHRvUGtnOiBVcGRhdGUgWUFN TCB0byBpZ25vcmUgc3BlY2lmaWMgRUNDIGZpbGVzL2Vycm9ycw0KPiA+ID4NCj4gPiA+ICAgICBj OTdmZWU4N2YwZjkgQXJtVmlydFBrZzogVXBkYXRlIFlBTUwgdG8gaWdub3JlIHNwZWNpZmljIEVD QyBmaWxlcy9lcnJvcnMNCj4gPiA+DQo+ID4gPiAgICAgMTkzOWZjOTU2OWYyIEFybVBsYXRmb3Jt UGtnOiBVcGRhdGUgWUFNTCB0byBpZ25vcmUgc3BlY2lmaWMgRUNDIGZpbGVzL2Vycm9ycw0KPiA+ ID4NCj4gPiA+ICAgICAzNjVkY2VkMmMzN2EgQXJtUGtnOiBVcGRhdGUgWUFNTCB0byBpZ25vcmUg c3BlY2lmaWMgRUNDIGZpbGVzL2Vycm9ycw0KPiA+ID4NCj4gPiA+ICAgICA3NmExY2U0ZDVmZWMg LmF6dXJlcGlwZWxpbmVzL3RlbXBsYXRlczogVXBkYXRlIG1heCBwaXBlbGluZSBqb2IgdGltZSB0 byAyIGhvdXJzDQo+ID4gPg0KPiA+ID4gICAgIDk5Zjg0ZmY0NzM5MCAucHl0b29scy9QbHVnaW4v TGljZW5zZUNoZWNrOiBVc2UgdGVtcCBkaXJlY3RvcnkgZm9yIGdpdCBkaWZmIG91dHB1dA0KPiA+ ID4NCj4gPiA+ICAgICAzMDE5ZjFiYmFiZjEgLnB5dG9vbC9QbHVnaW4vRWNjQ2hlY2s6IEFkZCBw ZXJmb3JtYW5jZSBvcHRpbWl6YXRpb25zDQo+ID4gPg0KPiA+ID4gICAgIDg1NDQ2MmJkMzQ3OSAu cHl0b29sL1BsdWdpbi9FY2NDaGVjazogUmVtb3ZlIHRlbXAgZGlyZWN0b3J5IG9uIGV4Y2VwdGlv bg0KPiA+ID4NCj4gPiA+ICAgICA2OTg3NzYxNGZkZWUgLnB5dG9vbC9QbHVnaW4vRWNjQ2hlY2s6 IFJlbW92ZSBSZXZlcnRDb2RlKCkNCj4gPiA+DQo+ID4gPiAgICAgLS1yZWYxDQo+ID4gPg0KPiA+ ID4gICAgIGVmOWEwNTljZGIxNSBFbXVsYXRvclBrZy9XaW4vSG9zdDogVXBkYXRlIENDX0ZMQUdT DQo+ID4gPg0KPiA+ID4gICAgIGJiMWJiYTNkNzc2NyAodGFnOiBlZGsyLXN0YWJsZTIwMjExMSkg TmV0d29ya1BrZzogRml4IGludmFsaWQgcG9pbnRlciBmb3IgRE5TIHJlc3BvbnNlIHRva2VuIG9u IGVycm9yDQo+ID4gPg0KPiA+ID4gICAgIEJlc3QgcmVnYXJkcywNCj4gPiA+DQo+ID4gPiAgICAg TWlrZQ0KPiA+ID4NCj4gPiA+IA0K