From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (NAM11-DM6-obe.outbound.protection.outlook.com [40.107.223.73]) by mx.groups.io with SMTP id smtpd.web11.14906.1664766806919480440 for ; Sun, 02 Oct 2022 20:13:27 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@amd.com header.s=selector1 header.b=jS/ZpxDd; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: amd.com, ip: 40.107.223.73, mailfrom: abner.chang@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=W2Y9+nLx7ySQplNMDzX1rwB2/Dvg5bNZwnrkX1FwPMKv75bYtKcagY/8jma6g4dxN8Q5/zcuzmcu4NVLqgUqDMoNMt5RK0nF5pCky+DaP31XoSe+VmLc38GBiooMCw+V8UphvR98HkeyYctDogk5qdbgiZaeEG9AP9gIRWFkbIyKZmx2rC33d3mErku8m6tm4BU0e5nVGuTz8i97adowgm+9ODYmGm3tOIO73La+hiDmjMZpzVyJhtuiy7i9BUJOVytiCz/QjbGMs+jPHYgdbc8btmzDxH6iqmEjYgtBJJGhJkLqe+hZJg64IANruebJRPZuXzJIuu953f6lfg4uLg== 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=3IcjMgduiMA/AKIfXE9xJj14MkGhkRJ1xO3F5GfjJpg=; b=cnqWp/2TughtHbrGPWPvTER4hz0Y2Kn3uSfe9MyjZZ2/FijOEmqdjUzXSaQi825GZumpMTPw1W/z1ao/bKz4iuyczjBGQFjdh2FCDNfiSmTzOdbPEEViE5glbtc3Y0DnjWHvCJ66lz4yv+V0IyiFy8J2xyXeU+LEaa5MQ+i+MSIt0jsJlpcH/gKdxu6rX8pMoMVzzov8s0QlSLw71ohBGVjsLKpvONiK7EEUiJVSdxxME1NEoAbUZ/KQA950LqNpx7xF7b9S1WsVeLlDxSmkxM/uv64sPGr6Xgf3OvKBZVJByQ8JKJgJfnwFJl36a4/AtsSCYlnLgZ/QWBYLxHFoYg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3IcjMgduiMA/AKIfXE9xJj14MkGhkRJ1xO3F5GfjJpg=; b=jS/ZpxDdCC2+QWfTcva7EaWL7uDubWsuLK+BHACPTBF2Nw4qB2NiK9+AGd8hYtzbL/uvF/vfeHEKemuEiAQFDmC9wpHqk4rT2EFlCdwQDLxOBbDpyUxGHrTIlcQ58G9UEJtL1rnKw6ACm8VRqCIVlN2iL+8XsuI0HSiaEGsobW0= Received: from MN2PR12MB3966.namprd12.prod.outlook.com (2603:10b6:208:165::18) by DM4PR12MB5245.namprd12.prod.outlook.com (2603:10b6:5:398::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.24; Mon, 3 Oct 2022 03:13:24 +0000 Received: from MN2PR12MB3966.namprd12.prod.outlook.com ([fe80::dd29:6efb:1027:cfb2]) by MN2PR12MB3966.namprd12.prod.outlook.com ([fe80::dd29:6efb:1027:cfb2%5]) with mapi id 15.20.5676.028; Mon, 3 Oct 2022 03:13:24 +0000 From: "Chang, Abner" To: "Kinney, Michael D" , "devel@edk2.groups.io" , "quic_llindhol@quicinc.com" , "Ni, Ray" , "Attar, AbdulLateef (Abdul Lateef)" , Sunil V L CC: lichao , "Kirkendall, Garrett" , "Grimes, Paul" , "He, Jiangang" , Andrew Fish Subject: Re: [edk2-devel] The principles of EDK2 module reconstruction for archs Thread-Topic: [edk2-devel] The principles of EDK2 module reconstruction for archs Thread-Index: AdjPX4ZZG0rDXS4WTdOIWvoiYOLYcgC9rttQAC2dmIAADxJbkAAiVmtwAABqVrAAMdRUkAARY7IwAAF/rYAABYT70AB0Z6+A Date: Mon, 3 Oct 2022 03:13:24 +0000 Message-ID: References: <0c1ee7b8-9ecf-3f46-ac36-9d1464831263@quicinc.com> In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Enabled=true; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SetDate=2022-10-03T03:13:20Z; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Method=Standard; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Name=General; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ActionId=f6b45498-782b-4df0-a9c0-2aabd454a34c; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ContentBits=1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MN2PR12MB3966:EE_|DM4PR12MB5245:EE_ x-ms-office365-filtering-correlation-id: 6c365674-5e44-43ea-bab8-08daa4ed3bc3 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: QMS+5k7dzScp+iwvmPLn1dlFWH2wojccv/lVxgsq0DKtNwkIbDojg5VbyX/7V+Hv6WYi80cI/XmjG/yq0p83ZUg64a/NLji4n5HUcPyVrCZCCDdwXyXwCuWJEAwOnRV+EXBaMzv0+vOA6ip9wmxjRvkU0X1M/9p3EZ8Z6zuREnrwEw9dsRm5idvQ3TEIuwu6CKe5Fh9uWrOwKINavvzxNrRWxr4ttaZiNNSDyGzpAItf/2VjsArNACCm4oJnuxJSoX3ocWsFNrCFh+ZmQnYewzKdo7NUI1tXRuj7p8y76t54DXnuaRAdwug50XMNnSwCzKtlH4bkXtraA7CyYDcLvQ71AiwVwvFPYbY+ksPcnIBtn027GYBHsch8Jc1uZUWp5C7zCExJyRDLJblUihbPDEKxQzE9wKWiJklOJAVMM+25wrIOqe1uRawecvkMTW64iEG6MeORz8h3PYeuVP89PDijZgRFROIXtwf+UC+zzY2YqHTatSOmcQISbH5bmwWNnFw+FiIzcwlOk8zvUxArscic1rJKHgNcjMOYE9GPFCvxAPVcmI7AC+UGoGSO8J1mwRgIPhHHs4BUCtav5FvO2W/0RtpfUD7zij/MsNw8XklkXdQ5eJ+1QbRpHCvkJ011vZhRPBWjy9I5wz5dSKyZ5UdLvbspcADNJf3GLQvaXjvz6I1paUK80xeQuBxj1YACENLP5dwkxpJ9N1x1Fv/HgUNjneMou6ju2FEvIrGqvDT1OtCd887kghnT1qqlOdY3WqcNbkAVyMwU4D6rcPebQP0mOmEzhC4ddQG6YC0HtuVfwCudOgNqrvZ84PhaNvhLjgNjqwEtAmwNxytNJos4rA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR12MB3966.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(366004)(346002)(396003)(376002)(136003)(39860400002)(451199015)(66476007)(66446008)(76116006)(66946007)(64756008)(41300700001)(8676002)(4326008)(38100700002)(122000001)(66556008)(55016003)(186003)(2906002)(33656002)(83380400001)(52536014)(7696005)(6506007)(30864003)(8936002)(9686003)(86362001)(53546011)(5660300002)(38070700005)(26005)(45080400002)(71200400001)(66899015)(54906003)(478600001)(110136005)(19627235002)(966005)(316002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?YnlPQ2JuWDJKK2tLenVGdG92TWIwa3N1dTYvWmpVaEdySEloSVNCS0JyWHVv?= =?utf-8?B?Z0VpR0crZXlCVWNpcGlVNXJHSHBVK0IyanVPc1pjY0ZjRjBnWkhTSTRMTUl2?= =?utf-8?B?ajYrOGcyOGlrMW0rcjIxVkhCT2RPWGtjNVhFMzk1ak5zWHlSZWsxZ2FUZTBG?= =?utf-8?B?cVJKUVZGUTNTQm8vSnM5UHlvSTFJbmMxelNqUy85Umh3SnNVZURYNkJlQ2cw?= =?utf-8?B?b3czQU8rZnpXMVg3SmFTVWQxRENLOVM1Mk85NTJ5akJOanRPUkFWdUg5NHl6?= =?utf-8?B?MnVkdVhha1NYYzYwMU55VUdreFUyVHFOYXVUa2ZMaDF5Q2xVS3lrZU84ZmxB?= =?utf-8?B?TE56bjdiazZVN1ZkR2lVbXF3eEI5Tlg0OFJKZDdNaDltZU14ZG5GSGdQb1k2?= =?utf-8?B?KzMxTWRidDNvK3p5MkJlZ2JIVWpMOU8yY1J2akRsMWtuM09xYWI4cUw2QTh5?= =?utf-8?B?WFdmQzNjVUpzVUhESlRRZVI2TnIwK21XSjh2cUkrYmg3Q1Y0WlJibU55aFFr?= =?utf-8?B?T25xVjRmY01hQ29MckZMSktqQ0tZNzFJb0ZIbHlSUXUyNmZ3ZEhuL1pmSkgr?= =?utf-8?B?S0pMUkdzQUxqODYrK25vMHQ0R2ZqQUI1Ny9KWVN3WjQ0cnVoUHZUcmlRZEtB?= =?utf-8?B?czV0K2libHN3OWROV21xdVRXdEFiSWVMaHFUZENqZ0FwY3FHS3h2aDhMNXpZ?= =?utf-8?B?MWwxaWxVbHFmQnF3UnJJOUJMUzFiQmRaTndHdlhkd0V6d2pNK1o4dGZyNUEv?= =?utf-8?B?eklZUFlhVWdZYTB3Z2NoWTRQelVOSTVrcUYzSEJxenovYjNvbUovR252V3FG?= =?utf-8?B?LzVVQlZWeHEraVNGZTJ4bzIvdWJYQk0vTU9WRit3bmZ6UjhvbHhwVUMwZlZC?= =?utf-8?B?dVFwVFJKR3lkUFZheGlEOTFaRXdZTC9BQ2dmdXU1dGlic1AzQktQT2tKK1Fj?= =?utf-8?B?V1RPa2xvaS8zZktId3oySE5qU1U1OUhNRHJxSDBMaWlKSW40TzVJelJOaVNp?= =?utf-8?B?R1hrVWNZbERINGl1TUhjYUZQTFA4ZzJ5Z3hFT0ZPeHBrT2ZMOXlReFM3Vk9j?= =?utf-8?B?MCtIQ0pHckpSUkhCQjV3TlAvNUZrZGE5OG91NHpsZkx4UHE5cDN1emtkMlhV?= =?utf-8?B?aXF6MkVDKzdVUGxHWTVJY0ZaU2hzUURjWUZKbEduQzlTa2lNRGRHSVFERU9i?= =?utf-8?B?THlJUWdKcUZXVmtLYTJlcktGNHZoOWRxVmxjRjZzdGVSVzZuVTg3Q0w2MWky?= =?utf-8?B?NGd2NFJ0MjM5Ni8vYVdhd1E2MGxhWlJMcVN2emJjQXAzZkZFNmRMVVNWNTlW?= =?utf-8?B?Q05XcGZtdXV6d3U3V1l6QzNQWkl5YUV5cXFvTHlzb1pib0Z3dWxNSGlBQ2w1?= =?utf-8?B?SUJMMnNyc3pOQkNKUk9zQVhMeUVTeWFnUVJNMS9tb0lNcDJ1bllhMVNaVEJD?= =?utf-8?B?TjJUQjJGeTArSXc0UTVENTIxZXBzS3BuRVU0L21vZFB3WlZPSENNS3EzZ0FT?= =?utf-8?B?YXNiak1TcVFBWlpnSjhyTHBkU0poY0dnSFQ3NGc3d1dVTGgyWHYxSGFZU2h6?= =?utf-8?B?a2JmV0M0RDMzVzFHUEVkZU5BMmVCRUJMQVZGTWRKQW0xdFNiTlhIejk1cEhx?= =?utf-8?B?N25iM0pld040NkUrK3huc0duQ1FTY09WcVVZSTN4V1REcFNzNm9USDMrbmhq?= =?utf-8?B?ZzgrOERLb3RQMkNkTE53SDlDODE5UkFwYktGbUhhODRtMW5QT3RGdHFUMDBG?= =?utf-8?B?UzcvSlRrNE5YOWRoQVJoU3IvWktvOFlzSnNkZDhxbDQxQWxHcWZmSFNYclVv?= =?utf-8?B?S1BWOXlLMHJBTDdueGZrdHIyUjcwWFJxOXZFZk9OL3ZOTHYrYlRCeGtGL2Vl?= =?utf-8?B?bmxTNWJ0aGZvc1AvejNFTWFDdG9wZUJUeE9PMU43MGdtaldaWjN4ZWlyejA0?= =?utf-8?B?NlhaRDBLbmZvRFBsOUM3clV1d00xRFoveWJKWncwaGpkTE1FdUNORUxTS05C?= =?utf-8?B?ejFUN0orMURvYTNoV0JkVGwrdTdGRGtYVVZJV0YrdFQwdFN3ekFpTEtGbXRs?= =?utf-8?B?VGI5ZnNxSGU3WUtnYUpsYjhtUi8xY3d6Q1JlTllPeURMNlRaWTYvanBKaHRL?= =?utf-8?Q?nyrLW+tArPRjuUctHcb5mbJVu?= MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB3966.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6c365674-5e44-43ea-bab8-08daa4ed3bc3 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Oct 2022 03:13:24.2921 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: lhO3OFd5ztSjaeN1BXwhJu5VQQocz6a/Vjyy6bwL0OsocCuYU4hPFHP/Jv06Z39HJUhEcJWNw0hK9KUPFuCfzA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5245 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 W0FNRCBPZmZpY2lhbCBVc2UgT25seSAtIEdlbmVyYWxdDQoNCkhpIE1pa2UgYW5kIExlaWYsDQpG aXJzdCBvZiBhbGwsIHdlIGRvbuKAmXQgdXNlIGFyY2ggZm9sZGVyIGlmIHRoZSBtb2R1bGUgaXMg bWFpbmx5IGZvciBhIHNwZWNpZmljIGFyY2ggaW4gb2J2aW91c2x5LiBTbyB3ZSB3aWxsICBoYXZl IGJvdGggY29tbW9uIGFuZCBhcmNoLXNwZWNpZmljIGZpbGVzIGNvbnN0cnVjdGVkIHVuZGVyIG1v ZHVsZS9saWJyYXJ5IHJvb3QuDQpodHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvbWVzc2Fn ZS85NDU2Nw0KU21tQ3B1RmVhdHVyZUxpYlxJYTMyDQpTbW1DcHVGZWF0dXJlTGliXFg2NA0KU21t Q3B1RmVhdHVyZUxpYlxTbW1DcHVGZWF0dXJlTGliLmMNClNtbUNwdUZlYXR1cmVMaWJcU21tQ3B1 RmVhdHVyZUxpYkNvbW1vbi5jDQpTbW1DcHVGZWF0dXJlTGliXEludGVsU21tQ1B1RmVhdHVyZXNM aWINClNtbUNwdUZlYXR1cmVMaWJcQW1kbFNtbUNQdUZlYXR1cmVzTGliDQoNCg0KPiA+IENvdWxk IHdlIGNvbmNhdGVuYXRlIGFyY2hpdGVjdHVyZXM/DQo+ID4gSS5lLiBBQVJDSDY0X0FSTSwgSUEz Ml9YNjQsIEFBUkNINjRfUklTQ1Y2NC4uLiA/DQpMb29rcyBsaWtlIGJlbG93Pw0KDQpDcHVEeGVc SUEzMl9YNjRcSUEzMlxhYmMubmFzbQ0KQ3B1RHhlXElBMzJfWDY0XFg2NFxhYmMubmFzbQ0KQ3B1 RHhlXElBMzJfWDY0XENwdUR4ZS5jDQpDcHVEeGVcSUEzMl9YNjRcQW1kQ3B1RHhlLmMNCkNwdUR4 ZVxJQTMyX1g2NFxJbnRlbENwdUR4ZS5jDQpDcHVEeGVcUmlzY1Y2NFxDcHVEeGUuYw0KQ3B1RHhl XEFSTVxDcHVEeGUuYw0KQ3B1RHhlXA0KICAgICAgICAgICAgICAgQ3B1RHhlQ29tbW9uLmMgIC8v IElmIHJlcXVpcmVkLg0KICAgICAgICAgICAgICAgIENwdUR4ZS5pbmYgICAgICAgICAgICAgICAv LyBVc2UgSU5GIHNlY3Rpb24gYXJjaCBtb2RpZmllciBmb3IgWDg2LCBSSVNDLVYgYW5kIEFSTS4N CiAgICAgICAgICAgICAgICBDcHVEeGVBbWQuaW5mICAgICAgICAvLyBTZXBhcmF0ZSBJTkYgZm9y IEFNRC4NCg0KU2VlbXMgb2ssIGJ1dCBpcyBBQVJDSDY0X1JJU0NWNjQgYSByZWFsIGNhc2U/ICBP ciBpdCBtZWFucyB3ZSBjYW4gY3JlYXRlIGEgZm9sZGVyICJBQVJDSDY0X1JJU0NWNjQiIHdoZW4g dGhlcmUgYXJlIHNvbWUgY29tbW9uIGZpbGVzIHNoYXJlZCBieSBBQVJDSDY0IGFuZCBSSVNDVjY0 Pw0KDQpGb3IgdGhlIDMyLzY0IGJpdCBzdXBwb3J0LCBpdCBjYW4gc3RpbGwgc3RheSB1bmRlciBt b2R1bGUgcm9vdCBhbmQgZG9u4oCZdCBuZWVkIHRvIGFzc2lnbiBhIGZvbGRlciBmb3IgdGhlbSB1 bmxlc3MgdGhlIGFyY2ggaGFzIHRoZSBkaWZmZXJlbnQgaW1wbGVtZW50YXRpb24uDQpSZWdhcmRz LA0KQWJuZXINCg0KDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogS2lu bmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiBTZW50OiBTYXR1 cmRheSwgT2N0b2JlciAxLCAyMDIyIDI6NTIgQU0NCj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlv OyBxdWljX2xsaW5kaG9sQHF1aWNpbmMuY29tOyBDaGFuZywgQWJuZXINCj4gPEFibmVyLkNoYW5n QGFtZC5jb20+OyBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29tPjsgQXR0YXIsIEFiZHVsTGF0ZWVm DQo+IChBYmR1bCBMYXRlZWYpIDxBYmR1bExhdGVlZi5BdHRhckBhbWQuY29tPjsgU3VuaWwgViBM DQo+IDxzdW5pbHZsQHZlbnRhbmFtaWNyby5jb20+OyBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFl bC5kLmtpbm5leUBpbnRlbC5jb20+DQo+IENjOiBsaWNoYW8gPGxpY2hhb0Bsb29uZ3Nvbi5jbj47 IEtpcmtlbmRhbGwsIEdhcnJldHQNCj4gPEdhcnJldHQuS2lya2VuZGFsbEBhbWQuY29tPjsgR3Jp bWVzLCBQYXVsIDxQYXVsLkdyaW1lc0BhbWQuY29tPjsgSGUsDQo+IEppYW5nYW5nIDxKaWFuZ2Fu Zy5IZUBhbWQuY29tPjsgQW5kcmV3IEZpc2ggPGFmaXNoQGFwcGxlLmNvbT4NCj4gU3ViamVjdDog UkU6IFtlZGsyLWRldmVsXSBUaGUgcHJpbmNpcGxlcyBvZiBFREsyIG1vZHVsZSByZWNvbnN0cnVj dGlvbiBmb3IgYXJjaHMNCj4gDQo+IENhdXRpb246IFRoaXMgbWVzc2FnZSBvcmlnaW5hdGVkIGZy b20gYW4gRXh0ZXJuYWwgU291cmNlLiBVc2UgcHJvcGVyIGNhdXRpb24NCj4gd2hlbiBvcGVuaW5n IGF0dGFjaG1lbnRzLCBjbGlja2luZyBsaW5rcywgb3IgcmVzcG9uZGluZy4NCj4gDQo+IA0KPiBI aSBMZWlmLA0KPiANCj4gQ29uY2F0ZW5hdGlvbiBpcyBhIGdvb2QgaWRlYS4gIE1ha2VzIGl0IG1v cmUgb2J2aW91cyBhbmQgY2FuIGJlIGVhc2lseSBhZG9wdGVkDQo+IGZvciBuZXcgQ1BVIGFyY2hz Lg0KPiANCj4gVGhlcmUgaXMgYW4gYWRkaXRpb25hbCBjYXNlIHdoZXJlIGFuIGltcGxlbWVudGF0 aW9uIGRvZXMgbm90IGhhdmUgZGlmZmVyZW5jZXMNCj4gYmFzZWQgb24gQ1BVIEFyY2ggb3IgVmVu ZG9yLCBidXQgaXQgZG9lcyBoYXZlIGRpZmZlcmVuY2VzIGJhc2VkIG9uIHRoZSBiaXQtDQo+IHdp ZHRoIG9mIHRoZSBDUFUuICBUYWtlIEJhc2VTYWZlSW50TGliIGFzIGFuIGV4YW1wbGUuDQo+IEl0 IGhhcyBzb3VyY2UgZmlsZXMgZm9yIDMyLWJpdCBDUFVzLCA2NC1iaXQgQ1BVcywgYW5kIENQVSBh cmNoIHNwZWNpZmljIGZpbGUgZm9yIEViYw0KPiBiZWNhdXNlIEViYyBhZGFwdHMgdG8gMzItYml0 IG9yIDY0LWJpdCBkZXBlbmRpbmcgb24gdGhlIENQVSB0eXBlIHRoZSBFQkMNCj4gSW50ZXJwcmV0 ZXIgaXMgcnVubmluZy4NCj4gDQo+IE1kZVBrZy9MaWJyYXJ5L0Jhc2VTYWZlSW50TGliLw0KPiAg IEJhc2VTYWZlSW50TGliLmluZg0KPiAgIFNhZmVJbnRMaWIuYw0KPiAgIFNhZmVJbnRMaWIzMi5j DQo+ICAgU2FmZUludExpYjY0LmMNCj4gICBTYWZlSW50TGliRWJjLmMNCj4gDQo+IFNob3VsZCB3 ZSBhZGQgIjMyIiBhbmQgIjY0IiBhcyBzdXBwb3J0ZWQgc3VmZmljZXMgaW4gZmlsZSBuYW1lcz8N Cj4gDQo+IElmIHdlIHdhbnRlZCB0byBwdXQgdHlwZSBjb250ZW50IGludG8gYSBzdWJkaXJlY3Rv cnksIHdoYXQgd291bGQgYmUgdGhlDQo+IHN1Z2dlc3RlZCBkaXJlY3RvcnkgbmFtZSBmb3IgIjMy IiBhbmQgIjY0Ii4gIE9yIGRvIHdlIHdhbnQgdG8gcmVxdWlyZSB0aGlzIHR5cGUNCj4gb2YgZGlm ZmVyZW5jZSB0byBhbHdheXMgYmUgZmlsZXMgaW4gdG9wIGxldmVsIGRpcmVjdG9yeSBvZiB0aGUg bW9kdWxlcy9saWJyYXJ5Pw0KPiANCj4gQmVzdCByZWdhcmRzLA0KPiANCj4gTWlrZQ0KPiANCj4g DQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBkZXZlbEBlZGsyLmdy b3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZiBMZWlmDQo+ID4gTGlu ZGhvbG0NCj4gPiBTZW50OiBGcmlkYXksIFNlcHRlbWJlciAzMCwgMjAyMiA5OjA5IEFNDQo+ID4g VG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBLaW5uZXksIE1pY2hhZWwgRA0KPiA+IDxtaWNoYWVs LmQua2lubmV5QGludGVsLmNvbT47IENoYW5nLCBBYm5lciA8QWJuZXIuQ2hhbmdAYW1kLmNvbT47 IE5pLA0KPiA+IFJheSA8cmF5Lm5pQGludGVsLmNvbT47IEF0dGFyLCBBYmR1bExhdGVlZiAoQWJk dWwgTGF0ZWVmKQ0KPiA+IDxBYmR1bExhdGVlZi5BdHRhckBhbWQuY29tPjsgU3VuaWwgViBMIDxz dW5pbHZsQHZlbnRhbmFtaWNyby5jb20+DQo+ID4gQ2M6IGxpY2hhbyA8bGljaGFvQGxvb25nc29u LmNuPjsgS2lya2VuZGFsbCwgR2FycmV0dA0KPiA+IDxHYXJyZXR0LktpcmtlbmRhbGxAYW1kLmNv bT47IEdyaW1lcywgUGF1bCA8UGF1bC5HcmltZXNAYW1kLmNvbT47IEhlLA0KPiA+IEppYW5nYW5n IDxKaWFuZ2FuZy5IZUBhbWQuY29tPjsgQW5kcmV3IEZpc2ggPGFmaXNoQGFwcGxlLmNvbT4NCj4g PiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFRoZSBwcmluY2lwbGVzIG9mIEVESzIgbW9kdWxl IHJlY29uc3RydWN0aW9uDQo+ID4gZm9yIGFyY2hzDQo+ID4NCj4gPiBJIGFncmVlIHNpbWlsYXIg dGhpbmdzIHdpbGwgY2VydGFpbmx5IGhhcHBlbiBmb3IgQVJNL0FBUkNINjQsIHdoaWNoDQo+ID4g d2lsbCBwcm9iYWJseSBiZSBub3RpY2VhYmxlIHdoZW4gSSBzdGFydCBlcmFkaWNhdGluZyBBcm1Q a2cgYW5kDQo+ID4gcHV0dGluZyB0aGUgYXJjaC1zdGFuZGFyZCBiaXRzIGludG8gKG1vc3RseSkg TWRlUGtnLg0KPiA+DQo+ID4gQnV0IEkgbGlrZSB0aGUgYWJpbGl0eSB0byBzZWUgYWxyZWFkeSBh dCB0aGUgZmlsZXN5c3RlbSBsZXZlbCB3aGljaA0KPiA+IGZpbGVzIGJlbG9uZyB0byB0aGUgYXJj aGl0ZWN0dXJlIEknbSBjdXJyZW50bHkgd29ya2luZyBvbiBhbmQgd2hpY2ggZG9uJ3QuDQo+ID4N Cj4gPiBDb3VsZCB3ZSBjb25jYXRlbmF0ZSBhcmNoaXRlY3R1cmVzPw0KPiA+IEkuZS4gQUFSQ0g2 NF9BUk0sIElBMzJfWDY0LCBBQVJDSDY0X1JJU0NWNjQuLi4gPw0KPiA+DQo+ID4gLw0KPiA+ICAg ICAgTGVpZg0KPiA+DQo+ID4gT24gMjAyMi0wOS0zMCAwODoyOCwgTWljaGFlbCBEIEtpbm5leSB3 cm90ZToNCj4gPiA+IEhpIEFibmVyLA0KPiA+ID4NCj4gPiA+IE9uZSBjb21tZW50IGlzIG9uIGFk ZGluZyBhIG5ldyBDUFUgdHlwZSBkaXIgbmFtZSBvZiAnWDg2JyBmb3INCj4gPiA+IGNvbnRlbnQg dGhhdCBpcyBjb21tb24gZm9yIElBMzIvWDY0Lg0KPiA+ID4NCj4gPiA+IEkgY2FuIGltYWdpbmUg YSBzaW1pbGFyIGNhc2UgZm9yIEFSTS9BQVJDSDY0IGFuZCBmb3IgdGhlIFJJU0NWICgzMiwNCj4g PiA+IDY0LCAxMjgpIGNhc2VzLg0KPiA+ID4NCj4gPiA+IEkgdGhpbmsgSSB3b3VsZCBwcmVmZXIg dG8gZHJvcCBYODYgYW5kIGlmIHRoZXJlIGFyZSBmaWxlcyB0aGF0IGFyZQ0KPiA+ID4gY29tbW9u IHRvIG11bHRpcGxlIENQVSBhcmNoaXRlY3R1cmVzIHRoZW4gdGhleSBhcmUgY29uc2lkZXJlZCBj b21tb24NCj4gPiA+IGFuZCBhcmUgaW4gdG9wIGRpcmVjdG9yeSBvZiBtb2R1bGUgYW5kIHRoZSBm aWxlIGhlYWRlciBhbmQgSU5GIGZpbGUNCj4gPiA+IGNhbiBjbGVhcmx5IGRvY3VtZW50IHdoaWNo IENQVSBhcmNocyB0aGUgZmlsZSBhcHBsaWVzLg0KPiA+ID4NCj4gPiA+IE1pa2UNCj4gPiA+DQo+ ID4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+PiBGcm9tOiBDaGFuZywgQWJu ZXIgPEFibmVyLkNoYW5nQGFtZC5jb20+DQo+ID4gPj4gU2VudDogRnJpZGF5LCBTZXB0ZW1iZXIg MzAsIDIwMjIgMTI6MTEgQU0NCj4gPiA+PiBUbzogTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT47 IEF0dGFyLCBBYmR1bExhdGVlZiAoQWJkdWwgTGF0ZWVmKQ0KPiA+ID4+IDxBYmR1bExhdGVlZi5B dHRhckBhbWQuY29tPjsgU3VuaWwgViBMIDxzdW5pbHZsQHZlbnRhbmFtaWNyby5jb20+Ow0KPiA+ ID4+IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBLaW5uZXksIE1pY2hhZWwgRA0KPiA+ID4+IDxtaWNo YWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiA+PiBDYzogbGljaGFvIDxsaWNoYW9AbG9vbmdz b24uY24+OyBLaXJrZW5kYWxsLCBHYXJyZXR0DQo+ID4gPj4gPEdhcnJldHQuS2lya2VuZGFsbEBh bWQuY29tPjsgR3JpbWVzLCBQYXVsIDxQYXVsLkdyaW1lc0BhbWQuY29tPjsNCj4gPiA+PiBIZSwg SmlhbmdhbmcgPEppYW5nYW5nLkhlQGFtZC5jb20+OyBMZWlmIExpbmRob2xtDQo+ID4gPj4gPHF1 aWNfbGxpbmRob2xAcXVpY2luYy5jb20+OyBBbmRyZXcgRmlzaCA8YWZpc2hAYXBwbGUuY29tPg0K PiA+ID4+IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gVGhlIHByaW5jaXBsZXMgb2YgRURLMiBt b2R1bGUNCj4gPiA+PiByZWNvbnN0cnVjdGlvbiBmb3IgYXJjaHMNCj4gPiA+Pg0KPiA+ID4+IFtB TUQgT2ZmaWNpYWwgVXNlIE9ubHkgLSBHZW5lcmFsXQ0KPiA+ID4+DQo+ID4gPj4gVGhhbmtzIFJh eSwgaGVyZSBhcmUgbXkgcmVzcG9uc2VzLg0KPiA+ID4+IGh0dHBzOi8vbmFtMTEuc2FmZWxpbmtz LnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUyRmcNCj4gPiA+PiBpdGh1 Yi5jb20lMkZ0aWFub2NvcmUtZG9jcyUyRmVkazItQ0NvZGluZ1N0YW5kYXJkc1NwZWNpZmljYXRp b24lMkZwDQo+ID4gPj4NCj4gdWxsJTJGMiZhbXA7ZGF0YT0wNSU3QzAxJTdDQWJuZXIuQ2hhbmcl NDBhbWQuY29tJTdDN2MzMjkyYzhiZDJmNA0KPiA4NmYNCj4gPiA+Pg0KPiA5MjA5MDhkYWEzMTRl OGU2JTdDM2RkODk2MWZlNDg4NGU2MDhlMTFhODJkOTk0ZTE4M2QlN0MwJTdDMCU3QzYNCj4gMzgw MA0KPiA+ID4+DQo+IDE2MDc0NDU4NzY3NjglN0NVbmtub3duJTdDVFdGcGJHWnNiM2Q4ZXlKV0lq b2lNQzR3TGpBd01EQWlMQ0pRDQo+IElqb2lWDQo+ID4gPj4NCj4gMmx1TXpJaUxDSkJUaUk2SWsx aGFXd2lMQ0pYVkNJNk1uMCUzRCU3QzMwMDAlN0MlN0MlN0MmYW1wO3NkYXRhPQ0KPiBIQXENCj4g PiA+PiBvdTRKeVkxeXhEdGh1UTFkRUtjRjdRM280Vzc3T285ck9PdmtYTldVJTNEJmFtcDtyZXNl cnZlZD0wDQo+ID4gPj4NCj4gPiA+PiBAS2lubmV5LCBNaWNoYWVsIEQgd2UgbWF5IGFsc28gbmVl ZCB5b3VyIGNsYXJpZmljYXRpb24gb24gdGhlIGNvbW1lbnRzLg0KPiA+ID4+DQo+ID4gPj4NCj4g PiA+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+Pj4gRnJvbTogTmksIFJheSA8 cmF5Lm5pQGludGVsLmNvbT4NCj4gPiA+Pj4gU2VudDogVGh1cnNkYXksIFNlcHRlbWJlciAyOSwg MjAyMiAzOjQyIFBNDQo+ID4gPj4+IFRvOiBBdHRhciwgQWJkdWxMYXRlZWYgKEFiZHVsIExhdGVl ZikgPEFiZHVsTGF0ZWVmLkF0dGFyQGFtZC5jb20+Ow0KPiA+ID4+PiBDaGFuZywgQWJuZXIgPEFi bmVyLkNoYW5nQGFtZC5jb20+OyBTdW5pbCBWIEwNCj4gPiA+Pj4gPHN1bmlsdmxAdmVudGFuYW1p Y3JvLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gPj4+IENjOiBLaW5uZXksIE1pY2hh ZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBsaWNoYW8NCj4gPiA+Pj4gPGxpY2hh b0Bsb29uZ3Nvbi5jbj47IEtpcmtlbmRhbGwsIEdhcnJldHQNCj4gPiA+Pj4gPEdhcnJldHQuS2ly a2VuZGFsbEBhbWQuY29tPjsgR3JpbWVzLCBQYXVsIDxQYXVsLkdyaW1lc0BhbWQuY29tPjsNCj4g PiA+Pj4gSGUsIEppYW5nYW5nIDxKaWFuZ2FuZy5IZUBhbWQuY29tPjsgTGVpZiBMaW5kaG9sbQ0K PiA+ID4+PiA8cXVpY19sbGluZGhvbEBxdWljaW5jLmNvbT47IEFuZHJldyBGaXNoIDxhZmlzaEBh cHBsZS5jb20+DQo+ID4gPj4+IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gVGhlIHByaW5jaXBs ZXMgb2YgRURLMiBtb2R1bGUNCj4gPiA+Pj4gcmVjb25zdHJ1Y3Rpb24gZm9yIGFyY2hzDQo+ID4g Pj4+DQo+ID4gPj4+IENhdXRpb246IFRoaXMgbWVzc2FnZSBvcmlnaW5hdGVkIGZyb20gYW4gRXh0 ZXJuYWwgU291cmNlLiBVc2UNCj4gPiA+Pj4gcHJvcGVyIGNhdXRpb24gd2hlbiBvcGVuaW5nIGF0 dGFjaG1lbnRzLCBjbGlja2luZyBsaW5rcywgb3IgcmVzcG9uZGluZy4NCj4gPiA+Pj4NCj4gPiA+ Pj4NCj4gPiA+Pj4gQWJuZXIsDQo+ID4gPj4+IENvbW1lbnRzIGluDQo+ID4gPj4+IGh0dHBzOi8v bmFtMTEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUy Rg0KPiA+ID4+PiBnaXRoDQo+ID4gPj4+IHViLmNvbSUyRnRpYW5vY29yZS1kb2NzJTJGZWRrMi0N Cj4gPiA+Pj4gQ0NvZGluZ1N0YW5kYXJkc1NwZWNpZmljYXRpb24lMkZwdWxsJTJGMiUyM3B1bGxy ZXF1ZXN0cmV2aWV3LQ0KPiA+ID4+Pg0KPiAxMTI0NzYzMzExJmFtcDtkYXRhPTA1JTdDMDElN0NB Ym5lci5DaGFuZyU0MGFtZC5jb20lN0NkODI1ZTI0DQo+ID4gPj4+DQo+IDg2MjU1NDFlM2Y0M2Uw OGRhYTFlZTI4ODMlN0MzZGQ4OTYxZmU0ODg0ZTYwOGUxMWE4MmQ5OTRlMTgzZCU3QzANCj4gPiA+ Pj4NCj4gJTdDMCU3QzYzODAwMDM0MTUwMjg4NTU2NSU3Q1Vua25vd24lN0NUV0ZwYkdac2IzZDhl eUpXSWpvaU1DDQo+ID4gPj4+DQo+IDR3TGpBd01EQWlMQ0pRSWpvaVYybHVNeklpTENKQlRpSTZJ azFoYVd3aUxDSlhWQ0k2TW4wJTNEJTdDMzAwMCUNCj4gPiA+Pj4NCj4gN0MlN0MlN0MmYW1wO3Nk YXRhPVJYeGdwYkVyNml2YnFQMVI2JTJCM1J4bCUyQnlKQW5hVUp1YVlZS2RmQ0gNCj4gPiA+Pj4g OGpvOCUzRCZhbXA7cmVzZXJ2ZWQ9MA0KPiA+ID4+Pg0KPiA+ID4+PiBXZSBjYW4gZGlzY3VzcyBt b3JlIGluIHRvbW9ycm93J3MgbWVldGluZy4NCj4gPiA+Pj4NCj4gPiA+Pj4NCj4gPiA+Pj4+IC0t LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPj4+PiBGcm9tOiBBdHRhciwgQWJkdWxMYXRl ZWYgKEFiZHVsIExhdGVlZikNCj4gPiA+Pj4+IDxBYmR1bExhdGVlZi5BdHRhckBhbWQuY29tPg0K PiA+ID4+Pj4gU2VudDogVGh1cnNkYXksIFNlcHRlbWJlciAyOSwgMjAyMiAzOjExIFBNDQo+ID4g Pj4+PiBUbzogQ2hhbmcsIEFibmVyIDxBYm5lci5DaGFuZ0BhbWQuY29tPjsgU3VuaWwgViBMDQo+ ID4gPj4+PiA8c3VuaWx2bEB2ZW50YW5hbWljcm8uY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW87 IE5pLCBSYXkNCj4gPiA+Pj4+IDxyYXkubmlAaW50ZWwuY29tPg0KPiA+ID4+Pj4gQ2M6IEtpbm5l eSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IGxpY2hhbw0KPiA+ID4+ Pj4gPGxpY2hhb0Bsb29uZ3Nvbi5jbj47IEtpcmtlbmRhbGwsIEdhcnJldHQNCj4gPiA+Pj4+IDxH YXJyZXR0LktpcmtlbmRhbGxAYW1kLmNvbT47IEdyaW1lcywgUGF1bCA8UGF1bC5HcmltZXNAYW1k LmNvbT47DQo+ID4gPj4+IEhlLA0KPiA+ID4+Pj4gSmlhbmdhbmcgPEppYW5nYW5nLkhlQGFtZC5j b20+OyBMZWlmIExpbmRob2xtDQo+ID4gPj4+PiA8cXVpY19sbGluZGhvbEBxdWljaW5jLmNvbT47 IEFuZHJldyBGaXNoIDxhZmlzaEBhcHBsZS5jb20+DQo+ID4gPj4+PiBTdWJqZWN0OiBSRTogW2Vk azItZGV2ZWxdIFRoZSBwcmluY2lwbGVzIG9mIEVESzIgbW9kdWxlDQo+ID4gPj4+PiByZWNvbnN0 cnVjdGlvbiBmb3IgYXJjaHMNCj4gPiA+Pj4+DQo+ID4gPj4+PiBIaSBBYm5lciwNCj4gPiA+Pj4+ ICAgICAgTG9va3MgZ29vZCB0byBtZS4NCj4gPiA+Pj4+IFJldmlld2VkLWJ5OiAgQWJkdWwgTGF0 ZWVmIEF0dGFyIDxhYmRhdHRhckBhbWQuY29tPg0KPiA+ID4+Pj4NCj4gPiA+Pj4+IFRoYW5rcw0K PiA+ID4+Pj4gQWJkdUwNCj4gPiA+Pj4+DQo+ID4gPj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KPiA+ID4+Pj4gRnJvbTogQ2hhbmcsIEFibmVyIDxBYm5lci5DaGFuZ0BhbWQuY29tPg0K PiA+ID4+Pj4gU2VudDogMjggU2VwdGVtYmVyIDIwMjIgMjA6MzENCj4gPiA+Pj4+IFRvOiBTdW5p bCBWIEwgPHN1bmlsdmxAdmVudGFuYW1pY3JvLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvOw0K PiA+ID4+Pj4gcmF5Lm5pQGludGVsLmNvbQ0KPiA+ID4+Pj4gQ2M6IEtpbm5leSwgTWljaGFlbCBE IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IGxpY2hhbw0KPiA+ID4+Pj4gPGxpY2hhb0Bs b29uZ3Nvbi5jbj47IEtpcmtlbmRhbGwsIEdhcnJldHQNCj4gPiA+Pj4+IDxHYXJyZXR0Lktpcmtl bmRhbGxAYW1kLmNvbT47IEdyaW1lcywgUGF1bCA8UGF1bC5HcmltZXNAYW1kLmNvbT47DQo+ID4g Pj4+IEhlLA0KPiA+ID4+Pj4gSmlhbmdhbmcgPEppYW5nYW5nLkhlQGFtZC5jb20+OyBBdHRhciwg QWJkdWxMYXRlZWYgKEFiZHVsIExhdGVlZikNCj4gPiA+Pj4+IDxBYmR1bExhdGVlZi5BdHRhckBh bWQuY29tPjsgTGVpZiBMaW5kaG9sbQ0KPiA+ID4+Pj4gPHF1aWNfbGxpbmRob2xAcXVpY2luYy5j b20+OyBBbmRyZXcgRmlzaCA8YWZpc2hAYXBwbGUuY29tPg0KPiA+ID4+Pj4gU3ViamVjdDogUkU6 IFtlZGsyLWRldmVsXSBUaGUgcHJpbmNpcGxlcyBvZiBFREsyIG1vZHVsZQ0KPiA+ID4+Pj4gcmVj b25zdHJ1Y3Rpb24gZm9yIGFyY2hzDQo+ID4gPj4+Pg0KPiA+ID4+Pj4gW0FNRCBPZmZpY2lhbCBV c2UgT25seSAtIEdlbmVyYWxdDQo+ID4gPj4+Pg0KPiA+ID4+Pj4gSSBqdXN0IGhhZCBjcmVhdGVk IFBSIHRvIHVwZGF0ZSBlZGtJSSBDIGNvZGluZyBzdGFuZGFyZCBzcGVjIGZvcg0KPiA+ID4+Pj4g dGhlIGZpbGUgYW5kIGRpcmVjdG9yeSBuYW1pbmcuIFdlIGNhbiByZXZpZXcgYW5kIGNvbmZpcm0g dGhpcw0KPiA+ID4+Pj4gdXBkYXRlIGZpcnN0IGFuZCB0aGVuIGdvIGJhY2sgdG8gdGhlIHByaW5j aXBsZXMgb2YgRURLMiBtb2R1bGUNCj4gcmVjb25zdHJ1Y3Rpb24gZm9yIGFyY2hzLg0KPiA+ID4+ Pj4gSGVyZSBpcyB0aGUgUFI6DQo+ID4gPj4+Pg0KPiA+ID4+PiBodHRwczovL25hbTExLnNhZmVs aW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0cHMlM0ElMkYlMkYNCj4gPiA+Pj4g Z2l0aA0KPiA+ID4+Pj4gdWIuY29tJTJGdGlhbm9jb3JlLWRvY3MlMkZlZGsyLQ0KPiA+ID4+PiAm YW1wO2RhdGE9MDUlN0MwMSU3Q0FibmVyLkNoYW5nJTQwYW1kLmMNCj4gPiA+Pj4+DQo+ID4gPj4+ DQo+IG9tJTdDZDgyNWUyNDg2MjU1NDFlM2Y0M2UwOGRhYTFlZTI4ODMlN0MzZGQ4OTYxZmU0ODg0 ZTYwOGUxMWE4Mg0KPiA+ID4+PiBkOTk0ZTE4DQo+ID4gPj4+Pg0KPiA+ID4+Pg0KPiAzZCU3QzAl N0MwJTdDNjM4MDAwMzQxNTAyODg1NTY1JTdDVW5rbm93biU3Q1RXRnBiR1pzYjNkOGV5Sg0KPiA+ ID4+PiBXSWpvaU1DNHdMag0KPiA+ID4+Pj4NCj4gPiA+Pj4NCj4gQXdNREFpTENKUUlqb2lWMmx1 TXpJaUxDSkJUaUk2SWsxaGFXd2lMQ0pYVkNJNk1uMCUzRCU3QzMwMDAlN0MlDQo+ID4gPj4+IDdD JTdDJmENCj4gPiA+Pj4+DQo+ID4gPj4+DQo+IG1wO3NkYXRhPVg0ejlwdWo4MW5JR1RxdE14Qzlp Z0RaeUJQT1Q2T1RXU1UlMkJqb0lvd28lMkJFJTNEJmENCj4gPiA+Pj4gbXA7cmVzZXJ2DQo+ID4g Pj4+PiBlZD0wDQo+ID4gPj4+PiBDQ29kaW5nU3RhbmRhcmRzU3BlY2lmaWNhdGlvbi9wdWxsLzIN Cj4gPiA+Pj4+DQo+ID4gPj4+PiBUaGUgbmFtaW5nIHJ1bGUgaXMgbWFpbmx5IGZvciB0aGUgbmV3 IG1vZHVsZSBvciBuZXcgZmlsZSBJTU8uDQo+ID4gPj4+PiBTb21lIGV4aXN0aW5nIG1vZHVsZSBt YXkgbm90IG1lZXQgdGhlIGd1aWRlbGluZXMgbWVudGlvbmVkIGluIHRoaXMNCj4gc3BlYy4NCj4g PiA+Pj4+IFRodXMgd2UgbmVlZCB0aGUgcHJpbmNpcGxlcyBvZiBFREsyIG1vZHVsZSByZWNvbnN0 cnVjdGlvbiBvbiB0aGUNCj4gPiA+Pj4+IGV4aXN0aW5nIG1vZHVsZSB0byBzdXBwb3J0IG90aGVy IHByb2Nlc3NvciBhcmNocyBhbmQgbm90DQo+ID4gPj4+PiBpbXBhY3RpbmcgdGhlDQo+ID4gPj4+ IGV4aXN0aW5nIHBsYXRmb3JtcyAoZS5nLg0KPiA+ID4+Pj4gcmVuYW1lIHRoZSBJTkYgZmlsZSBv ciBkaXJlY3RvcnkgdG8gbWVldCB0aGUgZ3VpZGVsaW5lcykuDQo+ID4gPj4+Pg0KPiA+ID4+Pj4g U3VuaWwsIHNlZW1zIFJJU0MtViBDcHVEeGUgbWVldCB0aGUgZ3VpZGVsaW5lLiBQbGVhc2UgY2hl Y2sgaXQuDQo+ID4gPj4+PiBKdXN0IGZlZWwgdGhhdCBoYXZpbmcgIENwdUR4ZS5jIHRvIFJpc2N2 NjQgZm9sZGVyIGlzIG5vdCBxdWl0ZSBhDQo+ID4gPj4+PiBiZXN0IHNvbHV0aW9uLiBJIHRoaW5r IGF0IGxlYXN0IHdlIGNhbiBhYnN0cmFjdCB0aGUgcHJvdG9jb2wNCj4gPiA+Pj4+IHN0cnVjdHVy ZSBhbmQgcHJvdG9jb2wgaW5zdGFsbGF0aW9uIHVuZGVyIENwdUR4ZVwgYW5kIGhhdmUgdGhlDQo+ ID4gPj4+PiBhcmNoIGltcGxlbWVudGF0aW9uIHVuZGVyIGFyY2ggZm9sZGVyLiBXZSBjYW4gZGlz Y3VzcyB0aGlzIGxhdGVyDQo+ID4gPj4+PiBhZnRlciB3ZSBjb25maXJtaW5nIHRoZQ0KPiA+ID4+ PiBndWlkZWxpbmUgYW5kIHByaW5jaXBsZXMuDQo+ID4gPj4+Pg0KPiA+ID4+Pj4gVGhhbmtzDQo+ ID4gPj4+PiBBYm5lcg0KPiA+ID4+Pj4NCj4gPiA+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KPiA+ID4+Pj4+IEZyb206IFN1bmlsIFYgTCA8c3VuaWx2bEB2ZW50YW5hbWljcm8uY29t Pg0KPiA+ID4+Pj4+IFNlbnQ6IFdlZG5lc2RheSwgU2VwdGVtYmVyIDI4LCAyMDIyIDM6MzQgUE0N Cj4gPiA+Pj4+PiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IHJheS5uaUBpbnRlbC5jb20NCj4g PiA+Pj4+PiBDYzogQ2hhbmcsIEFibmVyIDxBYm5lci5DaGFuZ0BhbWQuY29tPjsgS2lubmV5LCBN aWNoYWVsIEQNCj4gPiA+Pj4+PiA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBsaWNoYW8g PGxpY2hhb0Bsb29uZ3Nvbi5jbj47DQo+ID4gPj4+Pj4gS2lya2VuZGFsbCwgR2FycmV0dCA8R2Fy cmV0dC5LaXJrZW5kYWxsQGFtZC5jb20+OyBHcmltZXMsIFBhdWwNCj4gPiA+Pj4+PiA8UGF1bC5H cmltZXNAYW1kLmNvbT47IEhlLCBKaWFuZ2FuZyA8SmlhbmdhbmcuSGVAYW1kLmNvbT47DQo+ID4g Pj4+Pj4gQXR0YXIsIEFiZHVsTGF0ZWVmIChBYmR1bCBMYXRlZWYpIDxBYmR1bExhdGVlZi5BdHRh ckBhbWQuY29tPjsNCj4gPiA+Pj4+PiBMZWlmIExpbmRob2xtIDxxdWljX2xsaW5kaG9sQHF1aWNp bmMuY29tPjsgQW5kcmV3IEZpc2gNCj4gPiA+Pj4+PiA8YWZpc2hAYXBwbGUuY29tPg0KPiA+ID4+ Pj4+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gVGhlIHByaW5jaXBsZXMgb2YgRURLMiBtb2R1 bGUNCj4gPiA+Pj4+PiByZWNvbnN0cnVjdGlvbiBmb3IgYXJjaHMNCj4gPiA+Pj4+Pg0KPiA+ID4+ Pj4+IENhdXRpb246IFRoaXMgbWVzc2FnZSBvcmlnaW5hdGVkIGZyb20gYW4gRXh0ZXJuYWwgU291 cmNlLiBVc2UNCj4gPiA+Pj4+PiBwcm9wZXIgY2F1dGlvbiB3aGVuIG9wZW5pbmcgYXR0YWNobWVu dHMsIGNsaWNraW5nIGxpbmtzLCBvciByZXNwb25kaW5nLg0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4N Cj4gPiA+Pj4+PiBPbiBXZWQsIFNlcCAyOCwgMjAyMiBhdCAwMzozMzo0NUFNICswMDAwLCBOaSwg UmF5IHdyb3RlOg0KPiA+ID4+Pj4+IEhpIFJheSwNCj4gPiA+Pj4+Pj4NCj4gPiA+Pj4+Pj4gICAg MS4gIFdoZW4gYSBuZXcgYXJjaCdzIGltcGxlbWVudGF0aW9uIGlzIGludHJvZHVjZWQgdG8gdGhl DQo+ID4gPj4+Pj4+IGV4aXN0aW5nDQo+ID4gPj4+Pj4gbW9kdWxlIHdoaWNoIHdhcyBkZXZlbG9w ZWQgZm9yIHRoZSBzcGVjaWZpYyBhcmNoOg0KPiA+ID4+Pj4+Pg0KPiA+ID4+Pj4+PiAgICAxLiAg VGhlIGZvbGRlciByZWNvbnN0cnVjdGlvbjoNCj4gPiA+Pj4+Pj4NCj4gPiA+Pj4+Pj4gICAgKiAg IENyZWF0ZSBhcmNoIGZvbGRlciBmb3IgdGhlIGV4aXN0aW5nIGFyY2ggaW1wbGVtZW50YXRpb24N Cj4gPiA+Pj4+Pj4gW1JheV0gRG8geW91IG1vdmUgZXhpc3RpbmcgYXJjaCBpbXBsZW1lbnRhdGlv biB0byB0aGF0IGFyY2ggZm9sZGVyPw0KPiA+ID4+Pj4+PiBJdCB3aWxsDQo+ID4gPj4+Pj4gYnJl YWsgZXhpc3RpbmcgcGxhdGZvcm1zIGEgbG90Lg0KPiA+ID4+Pj4+Pg0KPiA+ID4+Pj4+PiAgICAq ICAgQ3JlYXRlIHRoZSBhcmNoIGZvbGRlciBmb3IgdGhlIG5ldyBpbnRyb2R1Y2VkIGFyY2gNCj4g PiA+Pj4+Pj4gW1JheV0gSSBhZ3JlZS4gQnV0IGlmIHdlIGRvbid0IGNyZWF0ZSBhcmNoIGZvbGRl ciBmb3IgZXhpc3RpbmcNCj4gPiA+Pj4+Pj4gYXJjaA0KPiA+ID4+Pj4+IGltcGxlbWVudGF0aW9u LCB0aGUgcGtnIGxheW91dCB3aWxsIGJlIGEgbWVzcy4NCj4gPiA+Pj4+Pj4NCj4gPiA+Pj4+Pj4g W1JheV0gSGFyZCBmb3IgbWUgdG8gdW5kZXJzdGFuZCBhbGwgdGhlIHByaW5jaXBsZXMgaGVyZS4g TWF5YmUNCj4gPiA+Pj4+Pj4gd2UgcmV2aWV3DQo+ID4gPj4+Pj4gZXhpc3RpbmcgY29kZSBpbmNs dWRpbmcgdG8tYmUtdXBzdHJlYW1lZCBjb2RlIGFuZCBkZWNpZGUgaG93IHRvIGdvLg0KPiA+ID4+ Pj4+Pg0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4gQ291bGQgeW91IHBsZWFzZSB0YWtlIGEgbG9vayBi ZWxvdyBjaGFuZ2VzIHdoaWNoIGlzIHRyeWluZyB0bw0KPiA+ID4+Pj4+IGFkZCBSSVNDLVYgc3Vw cG9ydCBmb3IgQ3B1RHhlPw0KPiA+ID4+Pj4+DQo+ID4gPj4+Pg0KPiA+ID4+PiBodHRwczovL25h bTExLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0cHMlM0ElMkYlMkYN Cj4gPiA+Pj4gZ2l0aA0KPiA+ID4+Pj4+IHViLmNvbSUyRnRpYW5vY29yZSUyRmVkazItDQo+ID4g Pj4+Pj4NCj4gPiA+Pj4+DQo+ID4gPj4+DQo+IHN0YWdpbmclMkZjb21taXQlMkZiYmExYTExYmU0 N2RkMDkxNzM0ZTE4NWFmYmVkNzNlYTc1NzA4NzQ5JmFtcDsNCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4N Cj4gPiA+Pj4NCj4gZGF0YT0wNSU3QzAxJTdDYWJuZXIuY2hhbmclNDBhbWQuY29tJTdDYTQxOWU2 YTAxMGQzNGZkZTQ2NGIwOGQNCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4NCj4gPiA+Pj4NCj4gYWExMjNl MDgwJTdDM2RkODk2MWZlNDg4NGU2MDhlMTFhODJkOTk0ZTE4M2QlN0MwJTdDMCU3QzYzNzk5OTQ3 DQo+ID4gPj4+Pj4NCj4gPiA+Pj4+DQo+ID4gPj4+DQo+IDI3MzI0OTQ1MjclN0NVbmtub3duJTdD VFdGcGJHWnNiM2Q4ZXlKV0lqb2lNQzR3TGpBd01EQWlMQ0pRSWoNCj4gPiA+Pj4+Pg0KPiA+ID4+ Pj4NCj4gPiA+Pj4NCj4gb2lWMmx1TXpJaUxDSkJUaUk2SWsxaGFXd2lMQ0pYVkNJNk1uMCUzRCU3 QzMwMDAlN0MlN0MlN0MmYW1wO3NkDQo+ID4gPj4+Pj4NCj4gPiA+Pj4+DQo+ID4gPj4+DQo+IGF0 YT1WcTZwSkxubjh5SnJKaEZabjdMZkxiWnpydHBHNG4xVkxXZ0FpbDZKMzhVJTNEJmFtcDtyZXNl cnZlZD0wDQo+ID4gPj4+Pj4NCj4gPiA+Pj4+DQo+ID4gPj4+IGh0dHBzOi8vbmFtMTEuc2FmZWxp bmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUyRg0KPiA+ID4+PiBn aXRoDQo+ID4gPj4+Pj4gdWIuY29tJTJGdGlhbm9jb3JlJTJGZWRrMi0NCj4gPiA+Pj4+Pg0KPiA+ ID4+Pj4NCj4gPiA+Pj4NCj4gc3RhZ2luZyUyRmNvbW1pdCUyRjdmY2NmOTJhOTdhNmQwNjE4YTIw ZjEwNjIyMjIwZTc4YjM2ODc5MDYmYW1wO2RhDQo+ID4gPj4+Pj4NCj4gPiA+Pj4+DQo+ID4gPj4+ DQo+IHRhPTA1JTdDMDElN0NhYm5lci5jaGFuZyU0MGFtZC5jb20lN0NhNDE5ZTZhMDEwZDM0ZmRl NDY0YjA4ZGFhMQ0KPiA+ID4+Pj4+DQo+ID4gPj4+Pg0KPiA+ID4+Pg0KPiAyM2UwODAlN0MzZGQ4 OTYxZmU0ODg0ZTYwOGUxMWE4MmQ5OTRlMTgzZCU3QzAlN0MwJTdDNjM3OTk5NDcyNzMNCj4gPiA+ Pj4+Pg0KPiA+ID4+Pj4NCj4gPiA+Pj4NCj4gMjQ5NDUyNyU3Q1Vua25vd24lN0NUV0ZwYkdac2Iz ZDhleUpXSWpvaU1DNHdMakF3TURBaUxDSlFJam9pVg0KPiA+ID4+Pj4+DQo+ID4gPj4+Pg0KPiA+ ID4+Pg0KPiAybHVNeklpTENKQlRpSTZJazFoYVd3aUxDSlhWQ0k2TW4wJTNEJTdDMzAwMCU3QyU3 QyU3QyZhbXA7c2RhdGENCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4NCj4gPiA+Pj4NCj4gPXhGbXZVdjU4 dmg0QVVBTTE3UXk5RzVqWldGWmxLMk96dDNuanBHMWU4JTJCWSUzRCZhbXA7cmVzZXJ2DQo+ID4g Pj4+Pj4gZWQ9MA0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4gV2hhdCBkbyB5b3Ugc3VnZ2VzdCB3aXRo IGFib3ZlIGV4YW1wbGU/DQo+ID4gPj4+Pj4NCj4gPiA+Pj4+PiAxKSBDb21tb24gSU5GIGZvciBh bGwgYXJjaGl0ZWN0dXJlcyAtIGJ1dCBtb2RpZnkgSU5GIGFsb25lLCBubw0KPiA+ID4+Pj4+IFg4 NiBmb2xkZXIgY3JlYXRpb24uDQo+ID4gPj4+Pj4NCj4gPiA+Pj4+PiBUaGlzIGlzIHdoYXQgSSBo YXZlIGRvbmUgaW4gdGhlIGNvbW1pdCBhYm92ZS4gTWF5IGJlIG9mIGxlYXN0DQo+ID4gPj4+Pj4g aW1wYWN0IHRvIGV4aXN0aW5nIGNvZGUgc2luY2UgaXQgaXMgb25seSBJTkYgY2hhbmdlLiBCdXQg bGlrZQ0KPiA+ID4+Pj4+IHlvdSBtZW50aW9uZWQgdGhpcyBpcyBiaXQgd2VpcmQgdGhhdCBYODYg ZmlsZXMgd2lsbCByZW1haW4gaW4NCj4gPiA+Pj4+PiByb290IGZvbGRlciBkaXJlY3RseSBhbG9u ZyB3aXRoIHNvbWUgY29tbW9uIGZpbGVzLg0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4gMikgQ29tbW9u IElORiAoQ3B1RHhlLmluZikgKyBjcmVhdGUgYXJjaCBmb2xkZXJzIFg4NiwgWDY0LCBJQTMyLA0K PiA+ID4+Pj4+IFJpc2NWNjQgZXRjDQo+ID4gPj4+Pj4NCj4gPiA+Pj4+PiBJTU8sIHRoaXMgaXMg cHJvYmFibHkgdGhlIGJlc3QgYXBwcm9hY2guIFdoYXQgd291bGQgYmUgdGhlDQo+ID4gPj4+Pj4g Y2hhbGxlbmdlcyB3aXRoIHRoaXM/DQo+ID4gPj4+Pj4NCj4gPiA+Pj4+PiAzKSBTZXBhcmF0ZSBJ TkYgZm9yIGFyY2ggbGlrZSBDcHVEeGUuaW5mIGZvciB4ODYsDQo+ID4gPj4+Pj4gQ3B1RHhlUmlz Y1Y2NC5pbmYgZm9yDQo+ID4gPj4+PiBSSVNDLVYuDQo+ID4gPj4+Pj4NCj4gPiA+Pj4+PiBUaGlz IGFnYWluIHByb2JhYmx5IGlzIG5vdCBhIGdvb2QgaWRlYS4NCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+ IDQpIElmIHRoZSBtb2R1bGUvbGlicmFyeSBpcyBzcGVjaWZpYyB0byBvbmUgYXJjaCAoZXg6IFNN TShYODYpLA0KPiA+ID4+Pj4+IFNCSShSSVNDLVYpKSwgdGhlbiBjcmVhdGUgc2VwYXJhdGUgSU5G Lg0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4gVGhhbmtzIQ0KPiA+ID4+Pj4+IFN1bmlsDQo+ID4gPg0K PiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4NCj4gPg0KPiA+DQo+ID4NCj4gPiANCj4gPg0K