From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-002e3701.pphosted.com (mx0b-002e3701.pphosted.com [148.163.143.35]) by mx.groups.io with SMTP id smtpd.web12.6333.1608710057199753212 for ; Tue, 22 Dec 2020 23:54:17 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@hpe.com header.s=pps0720 header.b=bJD+lQ2t; spf=pass (domain: hpe.com, ip: 148.163.143.35, mailfrom: prvs=0626e1097a=abner.chang@hpe.com) Received: from pps.filterd (m0150244.ppops.net [127.0.0.1]) by mx0b-002e3701.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 0BN7llKi002973; Wed, 23 Dec 2020 07:53:56 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hpe.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pps0720; bh=5gzu7Xx4ckRtMm+5+X633ancoYuEM5VMreZ/TWOFLvU=; b=bJD+lQ2tPHAg1rHc/QgzM9pbqaewpMu+wcHHR4N7DEqJXhQtx1zIiSxov9oVMydu5nrf 6AeFVSk7WOuXFwoqufuDBR0F48FsCRkuaKhNpNaXtm2PJtzMCGEKD7qm8HvMBHD1ecSI DalC18Dr7jdP+Z48O0WAo9UZaryx70yFrHqOfBQq3MMG+moT3Ho2/5XYRYUcjKRfdGTa UnPeSnQqcXFCUuoWu9NE5opah2RTZm/3EmCvzBpeiZZf3wkq6hn3CIeYpv9Ga2d0G/CY H0tT6itWvpIeW5ob1SPSqopIUwd83dDGT1ornajkLFUqcwP2RGloyHHvMblQczROimGg jg== Received: from g2t2353.austin.hpe.com (g2t2353.austin.hpe.com [15.233.44.26]) by mx0b-002e3701.pphosted.com with ESMTP id 35kwwmh7xg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 23 Dec 2020 07:53:55 +0000 Received: from G1W8108.americas.hpqcorp.net (g1w8108.austin.hp.com [16.193.72.60]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by g2t2353.austin.hpe.com (Postfix) with ESMTPS id D5B9D8B; Wed, 23 Dec 2020 07:53:54 +0000 (UTC) Received: from G9W8454.americas.hpqcorp.net (2002:10d8:a104::10d8:a104) by G1W8108.americas.hpqcorp.net (2002:10c1:483c::10c1:483c) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 23 Dec 2020 07:53:54 +0000 Received: from NAM02-CY1-obe.outbound.protection.outlook.com (15.241.52.11) by G9W8454.americas.hpqcorp.net (16.216.161.4) with Microsoft SMTP Server (TLS) id 15.0.1497.2 via Frontend Transport; Wed, 23 Dec 2020 07:53:54 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eRWPri/CqywoVvEAh9d5qBWg4bTo814dvts4881gXysBv02qQupjEEBb3hwV7xDurhnon9MZRvOrEs7N2tyZ9U3LetNVhy+4hRdDTC5mOPS5srschnjnF44hZsNtsurFHu3uy+ZUSvepJjWTFC7CtB+T313dZTA5J9l9XqTdUYqEnAHHIrbBIstaT5iraHDPnnqUkEZJ3Rwv+scc+r7TM6/Ly7wJsBw5j9LS7YPTJRd7PKvvF821ZOfHoGhOw6KHZZ/UETx5HFKNWBE3zEKDGHg2OshFAm+LuTXA8fInQigoF2oYoDFsMZs9IFtecXzRoxRrdAeyjRyP16GLvpVcUg== 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-SenderADCheck; bh=UAXmwzhgrhPKv0iQPDBr2xOAfRw8tiOkFADNXDZbpx0=; b=ClxVNvrSwLAyO3ROl+fo41Edb6F7WIess9VHVj4hJlg0aqqiDeImsZIJxIeULHq0m3RBkcAL0RA3TEdYFglc8DAv8v64oXd+1OFdHgesGDpZHsRxulvNSLI+fdBACH0MM9alBiGHdWVeXLFbXYz0cOWKqE7qi++sP+5bJwdEqiGxvnPSLTL7ooSTssUu4tMaomNGBf9nmiUtpyeWTjJxgHWToLHkOi7FiSa6teHKuiZpttjSGjAtfZHdLchgxdvhBCZq2n6PUAjyBQqdEARw0FwBj6t/Va4pjU47mIK/s4s00kWrkeNt0fJEi25tm8LJSKonnsE1cvaNTiT6Y6iLbw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=hpe.com; dmarc=pass action=none header.from=hpe.com; dkim=pass header.d=hpe.com; arc=none Received: from CS1PR8401MB1144.NAMPRD84.PROD.OUTLOOK.COM (2a01:111:e400:7508::16) by CS1PR8401MB0581.NAMPRD84.PROD.OUTLOOK.COM (2a01:111:e400:7514::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3700.27; Wed, 23 Dec 2020 07:53:52 +0000 Received: from CS1PR8401MB1144.NAMPRD84.PROD.OUTLOOK.COM ([fe80::a094:ed67:fb40:340e]) by CS1PR8401MB1144.NAMPRD84.PROD.OUTLOOK.COM ([fe80::a094:ed67:fb40:340e%10]) with mapi id 15.20.3676.033; Wed, 23 Dec 2020 07:53:52 +0000 From: "Abner Chang" To: "Kinney, Michael D" , "devel@edk2.groups.io" CC: Sean Brogan , Bret Barkelew , Andrew Fish , Laszlo Ersek , Leif Lindholm , Liming Gao , "Wang, Nickle (HPS SW)" , "O'Hanley, Peter (EXL)" Subject: Re: [PATCH v8 0/6] jansson edk2 port Thread-Topic: [PATCH v8 0/6] jansson edk2 port Thread-Index: AQHW1N4KALZdXXzZjU+e5YmRTCg3N6oAUjyQgACDDDCAAS12sIACG79QgAAbGlCAAB32MA== Date: Wed, 23 Dec 2020 07:53:52 +0000 Message-ID: References: <20201217131839.3762-1-abner.chang@hpe.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=hpe.com; x-originating-ip: [165.225.116.142] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: df4fac55-df7e-45de-7195-08d8a717e3f3 x-ms-traffictypediagnostic: CS1PR8401MB0581: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: rc5qe5bMOIGuFTujjPY3n1HwW9/HnaCOyTYBNBCg81ysk6OhxXBh8vpU9Jc/Me4BJW7jFFBo3dJjfDlWKahZWdXEBkSw01aPHh4Ma9OlV4PBiBfj3FMYcUK1ILjFOmEnwty5tQCIymTIVHxuHpQpB9ObOklzi4gbfZ3PZUwgfqmV4MAtZNxgJxdzxJFVEkcwCC11Za8XVJ2YVtztvk2DfSjCEyaL4pKw/FDe2QZDjkZA9aSYGeU832W8JOOm6K1poqIUNUd0SSHzRYwlkXoc7oLkeZICH/f77a3YMPM+kLEEb57DbOSK07eENhRncTv76lMQKQ1YMT8kGR7LwuQRcK0ASXozY1kpFjtB/7R/IlOARu4x1B3SARY4sswAXU4uva0Uz+66sNyk+7SWeBnvWl7opxLSOWWHZbkILiUUQUT19JB+/wQJ7oUkTYFugXxoELoG+WfqGfx9tjasQh7gjg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CS1PR8401MB1144.NAMPRD84.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(136003)(396003)(39860400002)(376002)(366004)(346002)(54906003)(53546011)(66946007)(4326008)(52536014)(66556008)(64756008)(66446008)(66476007)(76116006)(55236004)(5660300002)(33656002)(8676002)(9686003)(6506007)(30864003)(55016002)(86362001)(71200400001)(8936002)(478600001)(186003)(316002)(7696005)(19627235002)(966005)(110136005)(83380400001)(26005)(2906002)(579004)(559001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?UWF0MVA5eDJ4dzdtNTY2WUdVVmxZNlEvejBOMGRZZ0Zqam1SZkJhemQwOGdw?= =?utf-8?B?NlJUajVOay9PeWpobUE2Qkc2ZmNwK1czYjk5cHFoZ0l6Q2tTZTJoUWFwQ1Zh?= =?utf-8?B?K3hjK0djUkpQRnBBZ0VkbDV1WDduWXJMT2k2QjRaVkh4RmZ4N1Q5VVpkTHNw?= =?utf-8?B?VjJzSmRWMmp3cUNvaU1XMDdveVUzTW95NkhrOUx0dTUxRE5oOUxNQ0Z0ZXp4?= =?utf-8?B?UG1hL2l5MUVNa0tKRExtQlQ5RUd5ZHRFUXE2ZGYvanNraEpVOXF6emk1NFds?= =?utf-8?B?ZG9SSXp1YVNZOUxQWFdiVUxJOHpzeVdPWVIxUWl4d0ZQUEhzN1U4eUk5bjVB?= =?utf-8?B?Uk5COXMycXFNZmZ3ZkNBN25Nc21OZExGOFBIZXpQUFlVZTJNK0RYdllXTFo0?= =?utf-8?B?cWhnSkVqNitsb1o0cW94N3BKM2dML1NVZkpYZCsycit6SGV6eHRpNjNMQWRD?= =?utf-8?B?NjhEdWtzM282bDZTOGdubkJYYUo1N2FuZXl4ay9xbWxkTFBsa2NvZEFNUDlX?= =?utf-8?B?MVR6SVpkWkxtbWJ4SFlGbzlaa0V5Q1E3Qzlpcmp4Z2h0WHAxekpzUFBSZGpj?= =?utf-8?B?MnlzOTlFbWcya2l1ZkpvVzlhNHJBYjVnK1JuY2orWW5EMGJQKzBDV3ZDNUda?= =?utf-8?B?ZklEODNNMjBrN05pcFRINGZXQmZLZzFIK3NXSCt1SWJjM2hvRUxyUUtSWFhK?= =?utf-8?B?RFFZWlo2c29pbVh4V1NDVCs0QlY2MmRHMWVjTTduQjdITXQ4aW1kNkxiM0lK?= =?utf-8?B?VDVHYnlYRnVRbVl3OStGbkxYdXdxT0VybkVpcFFNbENQcHhSSzMwK2pmZmZx?= =?utf-8?B?YmFYUklFdG03eXlZV3EwK1daRDd3SVN0QjVObGJveWhSTjdYYTRvMXZmdDR2?= =?utf-8?B?blZCZkhFZlQvbjVLYlhTZUlOMXMwYzErK3FHVml2bDlzcXQxakVBT3JzQXQ2?= =?utf-8?B?eUN3ZjA4RnMvVmRCRmhZNGlxbWRXRHlwQWgxL0UyRHNwQW8yZEhiT2dUK3lS?= =?utf-8?B?YzdjQUxocXl1N2JpMk5WVGU4T083TXByUkZtUGNoTzczVnhuVjFESWpsaWU2?= =?utf-8?B?MXdWRUtQaWkxTnBydGhFWVB6OGh6OFlpTE1Qdjl2MS8vVFVXZmhodHZ1Z2dD?= =?utf-8?B?Um10U3IwdlE1NWxqeDQyMFJ3dS9RelIyS25KNWo2SG4xZHBSbnc1Qjd5OVBj?= =?utf-8?B?dk0zL0R5Q1NBYkNkN1prYU9YSHJ4czJIVSt5dmxzTVZ6M1lGME9Ca0V2NkJ1?= =?utf-8?B?NEw4WHMzWHJORFNGVllRbjg5UlJmWmZ1WHhyeHgreTNFaEs0NWxZRmpTZG0v?= =?utf-8?Q?wS63lcgWQC2hQ=3D?= X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CS1PR8401MB1144.NAMPRD84.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: df4fac55-df7e-45de-7195-08d8a717e3f3 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Dec 2020 07:53:52.2094 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 105b2061-b669-4b31-92ac-24d304d195dc X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: +uLpl3Qoe31b2UjD3hZcofpgyqQpNK/om3fml9VEgvGQi/N0m5NhkTHSZkdqGDQzFgqA3UqAVwW5WCF5fOFDzw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CS1PR8401MB0581 X-OriginatorOrg: hpe.com X-Proofpoint-UnRewURL: 0 URL was un-rewritten MIME-Version: 1.0 X-HPE-SCL: -1 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.343,18.0.737 definitions=2020-12-23_02:2020-12-21,2020-12-23 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 lowpriorityscore=0 clxscore=1015 suspectscore=0 mlxlogscore=999 adultscore=0 phishscore=0 mlxscore=0 malwarescore=0 spamscore=0 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2012230059 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogS2lubmV5LCBNaWNoYWVs IEQgW21haWx0bzptaWNoYWVsLmQua2lubmV5QGludGVsLmNvbV0NCj4gU2VudDogV2VkbmVzZGF5 LCBEZWNlbWJlciAyMywgMjAyMCAyOjEwIFBNDQo+IFRvOiBDaGFuZywgQWJuZXIgKEhQUyBTVy9G VyBUZWNobm9sb2dpc3QpIDxhYm5lci5jaGFuZ0BocGUuY29tPjsNCj4gZGV2ZWxAZWRrMi5ncm91 cHMuaW87IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4g Q2M6IFNlYW4gQnJvZ2FuIDxzZWFuLmJyb2dhbkBtaWNyb3NvZnQuY29tPjsgQnJldCBCYXJrZWxl dw0KPiA8QnJldC5CYXJrZWxld0BtaWNyb3NvZnQuY29tPjsgQW5kcmV3IEZpc2ggPGFmaXNoQGFw cGxlLmNvbT47IExhc3psbw0KPiBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+OyBMZWlmIExpbmRo b2xtIDxsZWlmQG51dmlhaW5jLmNvbT47IExpbWluZyBHYW8NCj4gPGdhb2xpbWluZ0BieW9zb2Z0 LmNvbS5jbj47IFdhbmcsIE5pY2tsZSAoSFBTIFNXKQ0KPiA8bmlja2xlLndhbmdAaHBlLmNvbT47 IE8nSGFubGV5LCBQZXRlciAoRVhMKSA8cGV0ZXIub2hhbmxleUBocGUuY29tPg0KPiBTdWJqZWN0 OiBSRTogW1BBVENIIHY4IDAvNl0gamFuc3NvbiBlZGsyIHBvcnQNCj4gDQo+IEhpIEFibmVyLA0K PiANCj4gUmVzcG9uc2UgYmVsb3cuDQo+IA0KPiBNaWtlDQo+IA0KPiANCj4gPiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IENoYW5nLCBBYm5lciAoSFBTIFNXL0ZXIFRlY2hu b2xvZ2lzdCkgPGFibmVyLmNoYW5nQGhwZS5jb20+DQo+ID4gU2VudDogVHVlc2RheSwgRGVjZW1i ZXIgMjIsIDIwMjAgODo0MCBQTQ0KPiA+IFRvOiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5k Lmtpbm5leUBpbnRlbC5jb20+Ow0KPiA+IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gQ2M6IFNl YW4gQnJvZ2FuIDxzZWFuLmJyb2dhbkBtaWNyb3NvZnQuY29tPjsgQnJldCBCYXJrZWxldw0KPiA+ IDxCcmV0LkJhcmtlbGV3QG1pY3Jvc29mdC5jb20+OyBBbmRyZXcgRmlzaCA8YWZpc2hAYXBwbGUu Y29tPjsgTGFzemxvDQo+ID4gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPjsgTGVpZiBMaW5kaG9s bSA8bGVpZkBudXZpYWluYy5jb20+OyBMaW1pbmcNCj4gPiBHYW8gPGdhb2xpbWluZ0BieW9zb2Z0 LmNvbS5jbj47IFdhbmcsIE5pY2tsZSAoSFBTIFNXKQ0KPiA+IDxuaWNrbGUud2FuZ0BocGUuY29t PjsgTydIYW5sZXksIFBldGVyIChFWEwpDQo+IDxwZXRlci5vaGFubGV5QGhwZS5jb20+DQo+ID4g U3ViamVjdDogUkU6IFtQQVRDSCB2OCAwLzZdIGphbnNzb24gZWRrMiBwb3J0DQo+ID4NCj4gPg0K PiA+DQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogS2lubmV5 LCBNaWNoYWVsIEQgW21haWx0bzptaWNoYWVsLmQua2lubmV5QGludGVsLmNvbV0NCj4gPiA+IFNl bnQ6IFdlZG5lc2RheSwgRGVjZW1iZXIgMjMsIDIwMjAgMjoxNCBBTQ0KPiA+ID4gVG86IENoYW5n LCBBYm5lciAoSFBTIFNXL0ZXIFRlY2hub2xvZ2lzdCkgPGFibmVyLmNoYW5nQGhwZS5jb20+Ow0K PiA+ID4gZGV2ZWxAZWRrMi5ncm91cHMuaW87IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQu a2lubmV5QGludGVsLmNvbT4NCj4gPiA+IENjOiBTZWFuIEJyb2dhbiA8c2Vhbi5icm9nYW5AbWlj cm9zb2Z0LmNvbT47IEJyZXQgQmFya2VsZXcNCj4gPiA+IDxCcmV0LkJhcmtlbGV3QG1pY3Jvc29m dC5jb20+OyBBbmRyZXcgRmlzaCA8YWZpc2hAYXBwbGUuY29tPjsNCj4gTGFzemxvDQo+ID4gPiBF cnNlayA8bGVyc2VrQHJlZGhhdC5jb20+OyBMZWlmIExpbmRob2xtIDxsZWlmQG51dmlhaW5jLmNv bT47IExpbWluZw0KPiA+ID4gR2FvIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+OyBXYW5nLCBO aWNrbGUgKEhQUyBTVykNCj4gPiA+IDxuaWNrbGUud2FuZ0BocGUuY29tPjsgTydIYW5sZXksIFBl dGVyIChFWEwpDQo+IDxwZXRlci5vaGFubGV5QGhwZS5jb20+DQo+ID4gPiBTdWJqZWN0OiBSRTog W1BBVENIIHY4IDAvNl0gamFuc3NvbiBlZGsyIHBvcnQNCj4gPiA+DQo+ID4gPiBIaSBBYm5lciwN Cj4gPiA+DQo+ID4gPiBBIGZldyBjb21tZW50cyBiZWxvdy4NCj4gPiA+DQo+ID4gPiBCZXN0IHJl Z2FyZHMsDQo+ID4gPg0KPiA+ID4gTWlrZQ0KPiA+ID4NCj4gPiA+ID4gLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0NCj4gPiA+ID4gRnJvbTogQ2hhbmcsIEFibmVyIChIUFMgU1cvRlcgVGVjaG5v bG9naXN0KQ0KPiA8YWJuZXIuY2hhbmdAaHBlLmNvbT4NCj4gPiA+ID4gU2VudDogTW9uZGF5LCBE ZWNlbWJlciAyMSwgMjAyMCAxMjoxNyBBTQ0KPiA+ID4gPiBUbzogS2lubmV5LCBNaWNoYWVsIEQg PG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsNCj4gPiA+ID4gZGV2ZWxAZWRrMi5ncm91cHMu aW8NCj4gPiA+ID4gQ2M6IFNlYW4gQnJvZ2FuIDxzZWFuLmJyb2dhbkBtaWNyb3NvZnQuY29tPjsg QnJldCBCYXJrZWxldw0KPiA+ID4gPiA8QnJldC5CYXJrZWxld0BtaWNyb3NvZnQuY29tPjsgQW5k cmV3IEZpc2ggPGFmaXNoQGFwcGxlLmNvbT47DQo+ID4gPiA+IExhc3psbyBFcnNlayA8bGVyc2Vr QHJlZGhhdC5jb20+OyBMZWlmIExpbmRob2xtDQo+ID4gPiA+IDxsZWlmQG51dmlhaW5jLmNvbT47 IExpbWluZyBHYW8gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IFdhbmcsDQo+ID4gPiA+IE5p Y2tsZSAoSFBTIFNXKSA8bmlja2xlLndhbmdAaHBlLmNvbT47IE8nSGFubGV5LCBQZXRlciAoRVhM KQ0KPiA+ID4gPHBldGVyLm9oYW5sZXlAaHBlLmNvbT4NCj4gPiA+ID4gU3ViamVjdDogUkU6IFtQ QVRDSCB2OCAwLzZdIGphbnNzb24gZWRrMiBwb3J0DQo+ID4gPiA+DQo+ID4gPiA+IE1pa2UsIHJl c3BvbnNlIGluIGJlbG93LiBBbHNvIHY5IGlzIHNlbnQuDQo+ID4gPiA+DQo+ID4gPiA+IFRoYW5r cyBmb3IgcmV2aWV3IHRoaXMgaW4gZGV0YWlsLg0KPiA+ID4gPiBBYm5lcg0KPiA+ID4gPg0KPiA+ ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gRnJvbTogS2lubmV5 LCBNaWNoYWVsIEQgW21haWx0bzptaWNoYWVsLmQua2lubmV5QGludGVsLmNvbV0NCj4gPiA+ID4g PiBTZW50OiBNb25kYXksIERlY2VtYmVyIDIxLCAyMDIwIDM6NDMgQU0NCj4gPiA+ID4gPiBUbzog Q2hhbmcsIEFibmVyIChIUFMgU1cvRlcgVGVjaG5vbG9naXN0KQ0KPiA8YWJuZXIuY2hhbmdAaHBl LmNvbT47DQo+ID4gPiA+ID4gZGV2ZWxAZWRrMi5ncm91cHMuaW87IEtpbm5leSwgTWljaGFlbCBE DQo+ID4gPiA+ID4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+ID4gPiA+IENjOiBT ZWFuIEJyb2dhbiA8c2Vhbi5icm9nYW5AbWljcm9zb2Z0LmNvbT47IEJyZXQgQmFya2VsZXcNCj4g PiA+ID4gPiA8QnJldC5CYXJrZWxld0BtaWNyb3NvZnQuY29tPjsgQW5kcmV3IEZpc2ggPGFmaXNo QGFwcGxlLmNvbT47DQo+ID4gPiBMYXN6bG8NCj4gPiA+ID4gPiBFcnNlayA8bGVyc2VrQHJlZGhh dC5jb20+OyBMZWlmIExpbmRob2xtIDxsZWlmQG51dmlhaW5jLmNvbT47DQo+ID4gPiA+ID4gTGlt aW5nIEdhbyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsgV2FuZywgTmlja2xlIChIUFMgU1cp DQo+ID4gPiA+ID4gPG5pY2tsZS53YW5nQGhwZS5jb20+OyBPJ0hhbmxleSwgUGV0ZXIgKEVYTCkN Cj4gPiA+IDxwZXRlci5vaGFubGV5QGhwZS5jb20+DQo+ID4gPiA+ID4gU3ViamVjdDogUkU6IFtQ QVRDSCB2OCAwLzZdIGphbnNzb24gZWRrMiBwb3J0DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBIaSBB Ym5lciwNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFRoZSBpbmNsdWRlIHBhdGggaW4gdGhlIFtJbmNs dWRlLkNvbW1vbi5Qcml2YXRlXSBzZWN0aW9uIHNob3VsZA0KPiA+ID4gPiA+IG5vdCBiZSBpbiB0 aGUgc2FtZSBmaWxlIHBhdGggYXMgdGhlIFtJbmNsdWRlXSBzZWN0aW9uLiAgVGhpcw0KPiA+ID4g PiA+IGFsbG93cyBwcml2YXRlIGluY2x1ZGUgZmlsZXMgdG8gYmUgYWNjZXNzZWQuDQo+ID4gPiA+ ID4NCj4gPiA+ID4gPiBJbnN0ZWFkLCB5b3Ugc2hvdWxkIGNyZWF0ZSBhIG5ldyB0b3AgbGV2ZWwg cGFja2FnZSBkaXJlY3RvcnkNCj4gPiA+ID4gPiBjYWxsZWQgUHJpdmF0ZUluY2x1ZGUgYW5kIHB1 dCBhbGwgbm9uLXB1YmxpYyBpbmNsdWRlIGNvbnRlbnQgaW4NCj4gPiA+ID4gPiB0aGF0IGRpcmVj dG9yeS4gIFRoZSBVbml0VGVzdEZyYW1ld29ya1BrZyBpcyBhIGdvb2QgcmVmZXJlbmNlDQo+ID4g PiA+ID4gdGhhdCBkZW1vbnN0cmF0ZXMgdGhpcyBkZXNpZ24gcGF0dGVybi4NCj4gPiA+ID4gWWVz LCB0aGlzIGxvb2tzIGJldHRlci4gQWxsIENydCBoZWFkZXIgZmlsZXMgYW5kIENydExpYi5oIHdp bGwgYmUNCj4gPiA+ID4gbW92ZWQgdG8NCj4gPiA+IHVuZGVyIFByaXZhdGVJbmNsdWRlLg0KPiA+ ID4gPiA+DQo+ID4gPiA+ID4gVGhlIGxpYnJhcnkgY2xhc3MgbmFtZSBDcnRMaWIgaXMgdmVyeSBn ZW5lcmljIGFuZCB0aGUgbGlicmFyeQ0KPiA+ID4gPiA+IGNsYXNzIGlzIGluIHRoZSBwdWJsaWMg aW5jbHVkZXMgc28gaXQgaXMgZXhwb3J0ZWQgYXMgYSBwdWJsaWMNCj4gPiA+ID4gPiBpbnRlcmZh Y2UgZnJvbSB0aGUNCj4gPiA+IFJlZGZpc2hQa2cuDQo+ID4gPiA+ID4gVGhpcyBDcnRMaWIgaW1w bGVtZW50YXRpb24gYXBwZWFycyB0byBiZSB0dW5lZCB0byBzdXBwb3J0IHRoZQ0KPiA+ID4gPiA+ IGRlcGVuZGVuY2llcyBmb3IgdGhlIGphbnNzb24gc3VibW9kdWxlLiAgSSByZWNvbW1lbmQgY2hh bmdpbmcNCj4gPiA+ID4gPiB0aGUgbGlicmFyeSBjbGFzcyBuYW1lIGFuZCB0aGUgbGlicmFyeSBp bnN0YW5jZSBuYW1lIHNvIGl0IGlzDQo+ID4gPiA+ID4gY2xlYXIgdGhhdCB0aGlzIENydExpYiBp cyBvbmx5IGZvciBqYW5zc29uLg0KPiA+ID4gPiA+IFBlcmhhcHMgJ0phbnNzb25DcnRMaWInLg0K PiA+ID4gPiBUaGUgQ3J0TGliIGlzIG5vdCB1c2VkIGJ5IGphbm5zb24gbGliLCBsaWJyZWRmaXNo IGFzIHdlbGwNCj4gPiA+ID4gKGh0dHBzOi8vZ2l0aHViLmNvbS9ETVRGL2xpYnJlZGZpc2gpLiBT byBKYW5zc29uQ3J0TGliIGlzIG5vdCBhDQo+ID4gPiA+IGdvb2QNCj4gPiA+IG5hbWluZywgd2ls bCBrZWVwIHRoYXQgYXMgaXQuDQo+ID4gPiA+DQo+ID4gPiA+ID5BbHNvLCBkb2VzIHRoaXMgbGli cmFyeSBjbGFzcyAoQ3J0TGliLmgpIG5lZWQgdG8gYmUgIGV4cG9ydGVkDQo+ID4gPiA+ID5mcm9t IFJlZGZpc2hQa2cgYXMgYSBwdWJsaWMgaW50ZXJmYWNlPw0KPiA+ID4gPiBObywgaXQgd2lsbCBi ZSBtb3ZlZCB0byB1bmRlciBQcml2YXRlSW5jbHVkZS4NCj4gPiA+ID4NCj4gPiA+ID4gSWYgQ3J0 TGliLmggaXMgZGVmaW5lZCBhcyBhIHByaXZhdGUgbGlicmFyeSBhbmQgQ3J0TGliLmggaXMgaW4N Cj4gPiA+ID4gUHJpdmF0ZUluY2x1ZGUgd2hpY2ggaXMgbm90IGV4cG9zZWQgdG8gb3RoZXIgcGFj a2FnZXMsIHRoZW4gd2h5IGRvDQo+ID4gPiA+IHdlDQo+ID4gPiBjYXJlIGFib3V0IHRoZSBuYW1p bmcgb2YgQ3J0TGliIGlzIHRvbyBnZW5lcmljPyBXaGljaCBpcyB0aGUgcHJpdmF0ZQ0KPiA+ID4g bGlicmFyeSB1bmRlciBSZWRmaXNoUGtnLg0KPiA+ID4gPiBNb3ZlIHRob3NlIGhlYWRlciBmaWxl cyB0byB1bmRlciBQcml2YXRlSW5jbHVkZSBzZWVtcyBjbGVhciB0bw0KPiA+ID4gPiBwZW9wbGUg dGhhdCBDcnRMaWIgaXMgb25seSBmb3IgUmVkZmlzaFBrZy4gSSB0aGluayB3ZSBkb27igJl0IGhh dmUNCj4gPiA+ID4gdG8gY2hhbmdlIHRoZQ0KPiA+ID4gbmFtaW5nIGluIHRoaXMgY2FzZS4NCj4g PiA+DQo+ID4gPiBJbiBnZW5lcmFsIEkgYWdyZWUsIGJ1dCB0aGVyZSBpcyBvbmUgcGxhY2Ugd2hl cmUgdGhlIGxpYiBtYXBwaW5nIGhhcw0KPiA+ID4gd2lkZXIgc2NvcGUsIGFuZCB0aGF0IGlzIGlu IGEgcGxhdGZvcm0gRFNDIGZpbGUuICBUaGUgbGliIGNsYXNzIG5hbWUNCj4gPiA+IENydExpYiBo YXMgdG8gYmUgbGlzdGVkIGluIHRoZSBEU0MgZmlsZS4gIElmIG1vcmUgdGhhbiBvbmUgcGFja2Fn ZQ0KPiA+ID4gZGVmaW5lcyBhIGxpYnJhcnkgY2xhc3MgY2FsbGVkIENydExpYiwgdGhlbiB0aGUg bGFzdCBtYXBwaW5nIHVzZWQNCj4gPiA+IHdpbGwgYmUgdXNlZCBmb3IgYWxsIG1vZHVsZXMgaWYg aXQgaXMgbGlzdGVkIGluIHRoZSBbTGlicmFyeUNsYXNzZXNdDQo+ID4gPiBzZWN0aW9uIG9mIHRo ZSBEU0MgZmlsZS4gIFRoZSBvbmx5IHdhcyB0byBoYW5kbGUgdGhpcyB0eXBlIG9mIG5hbWUNCj4g PiA+IGNvbGxpc2lvbiBpcyB0byB1c2UgYSBtb2R1bGUgc2NvcGVkIGxpYnJhcnkgbWFwcGluZyBp biB0aGUNCj4gPiA+IDxMaWJyYXJ5Q2xhc3Nlcz4gc2VjdGlvbiBvZiBlYWNoIGluZGl2aWR1YWwg bW9kdWxlIHRoYXQgdXNlcyBhDQo+ID4gPiBDcnRMaWIuICBJIGFtIG9ubHkgdHJ5aW5nIHRvIGF2 b2lkIHRoZSBwb3RlbnRpYWwgZm9yIGZ1dHVyZSBuYW1lIGNvbGxpc2lvbnMNCj4gZm9yIGEgbGli cmFyeSBjbGFzcy9pbnN0YW5jZSB0aGF0IGlzIHNwZWNpZmljIHRvIHRoZSBKU09OIHVzZSBjYXNl Lg0KPiA+ID4NCj4gPiA+IFdlIHJlY29nbml6ZSB0aGF0IHNldmVyYWwgbW9kdWxlcyBpbiBlZGsy IGhhdmUgdGhpcyB0eXBlIG9mIGdhc2tldA0KPiA+ID4gYmV0d2VlbiBhbiBFREsgSUkgZW52IGFu ZCBhIHN0YW5kYXJkIEMgbGliLiAgV2UgbWF5IGZpbmQgYSB3ZSB0bw0KPiA+ID4gaW1wbGVtZW50 IGEgbW9yZSBnZW5lcmljIGdhc2tldCBhbmQgcmV0aXJlIHRoZSB1c2Ugb2YgdGhlDQo+ID4gPiBp bXBsZW1lbnRhdGlvbiBzcGVjaWZpYyBvbmVzLiAgVGhpcyBpcyBhbm90aGVyIHJlYXNvbiB0byB1 c2UgYW4NCj4gPiA+IGltcGxlbWVudGF0aW9uIHNwZWNpZmljIG5hbWUgaW4gdGhpcyB1c2UgY2Fz ZSBhbmQgYmUgYWJsZSB0byBpbnRyb2R1Y2UgYQ0KPiBtb3JlIGdlbmVyaWMgbmFtZSBpbiB0aGUg ZnV0dXJlLg0KPiA+ID4NCj4gPiA+IEFub3RoZXIgY29tbWVudCBiZWxvdyB0byBzZWUgaWYgdGhl cmUgaXMgYSB3YXkgdG8gYXZvaWQgaW50cm9kdWNpbmcNCj4gPiA+IGEgQ3J0TGliIGNsYXNzLg0K PiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICogUmVkZmlzaFBrZy9JbmNsdWRl L0xpYnJhcnkvQ3J0TGliLmgNCj4gPiA+ID4gPiAgICsgUmVtb3ZlIHJlZmVyZW5jZSB0byBNREVf Q1BVX0lBNjQuICBUaGlzIGhhcyBiZWVuIHJldGlyZWQNCj4gPiA+ID4gPiBmcm9tIHRoZQ0KPiA+ ID4gPiA+IGVkazIgcmVwby4NCj4gPiA+ID4gT2suDQo+ID4gPiA+ID4gICArIEkgZG8gc2VlIG9u ZSByZW1haW5pbmcgcmVmZXJlbmNlIHRvIHRoaXMgaW4gdGhlIENyeXB0b1BrZw0KPiA+ID4gPiA+ IHRoYXQgbmVlZCB0bw0KPiA+ID4gYmUNCj4gPiA+ID4gPiAgICAgcmVtb3ZlZC4NCj4gPiA+ID4g Pg0KPiA+ID4gPiA+ICogUmVkZmlzaFBrZy9JbmNsdWRlL0xpYnJhcnkvSnNvbkxpYi5oDQo+ID4g PiA+ID4gICArIFNvbWUgb2YgdGhlIGZ1bmN0aW9uIGRlc2NyaXB0aW9ucyBhcmUgdmVyeSBicmll ZiBhbmQgSSBjYW4gbm90IHRlbGwNCj4gPiA+ID4gPiAgICAgaG93IHRvIHVzZSB0aGUgc2Vydmlj ZSBmcm9tIHRoZSBkZXNjcmlwdGlvbiBhbmQgbW9yZSBpbXBvcnRhbnRseSwgSQ0KPiA+ID4gPiA+ ICAgICB3b3VsZCBub3Qga25vdyBob3cgdG8gd3JpdGUgYSB1bml0IHRlc3QgdG8gdmVyaWZ5IHRo ZQ0KPiA+ID4gPiA+IGV4cGVjdGVkDQo+ID4gPiBiZWhhdmlvci4NCj4gPiA+ID4gPiAgICAgU2lu Y2UgdGhlc2UgYXJlIGEgc2V0IG9mIHB1YmxpYyBBUElzIGZyb20gdGhpcyBwYWNrYWdlIHRoYXQg eW91DQo+ID4gPiA+ID4gICAgIGV4cGVjdCBtb2R1bGVzL2xpYnMgZnJvbSBvdXRzaWRlIG9mIFJl ZGZpc2hQa2cgdG8gdXNlLCB0aGVuIGFsbCBvZg0KPiA+ID4gPiA+ICAgICB0aGVzZSBwdWJsaWMg QVBJcyBtdXN0IGJlIGZ1bGx5IGRvY3VtZW50ZWQuDQo+ID4gPiA+IE1vc3Qgb2YgdGhlIEFQSSBp biBKc29uTGliIGFyZSB3cmFwcGVycyBvZiBuYXRpdmUgamFuc3NvbiBBUElzLiBXZQ0KPiA+ID4g PiBjYW4gbWVudGlvbiB0aGUgVVJMIHRvIGphbnNzb24gQVBJIHJlZmVyZW5jZSBkb2N1bWVudCBp biBmaWxlIGhlYWRlci4NCj4gPiA+ID4gSU5WQUxJRCBVUkkgUkVNT1ZFRA0KPiA+ID4gM0FfX2ph bnNzb24ucmVhZHRoZWRvDQo+ID4gPiA+DQo+ID4gPg0KPiBjcy5pb19lbl8yLjEzX2luZGV4Lmh0 bWwmZD1Ed0lHYVEmYz1DNWI4elJRTzFtaUdtQmVWWjJMRldnJnI9Xw0KPiA+ID4gU042RlpCTjQN Cj4gPiA+ID4gVmdpNFVsa3NrejZxVTNOWVJPMDNuSHA5UDdaNXE1OUEzRSZtPXZkLQ0KPiA+ID4g dVB6ODY0Y3pvWUE1QzdZYVBncVhmZFBqdjRjNWtCDQo+ID4gPiA+DQo+IHpUd1Y2ME52TlEmcz1h Y1Z6TjN4NHlORDBqa2c0NGJKNDhaa3lQeXVnandzWXZVR2RENG5KTDc0JmU9DQo+ID4gPiA+IEkg d2lsbCByZXZpZXcgYWxsIGZ1bmN0aW9uIGhlYWRlciBhZ2FpbiwgIHBsZWFzZSBjaGVjayB2OSBw YXRjaCBsYXRlci4NCj4gPiA+ID4NCj4gPiA+ID4gPiAgICsgQXJlIHRoZXJlIGFueSBvZiB0aGVz ZSBBUElzIHRoYXQgYXJlIG5vdCByZWFsbHkgbmVlZGVkIGJ5DQo+IG1vZHVsZXMvbGlicw0KPiA+ ID4gPiA+ICAgICBvdXRzaWRlIHRoZSBSZWRmaXNoUGtnPyAgSXQgd291bGQgYmUgYmV0dGVyIHRv IHJlbW92ZSBBUElzIHRoYXQgYXJlDQo+ID4gPiA+ID4gICAgIG5vdCBuZWVkZWQgb3V0c2lkZSBS ZWRmaXNoUGtnIGZyb20gdGhpcyBwdWJsaWMgaW5jbHVkZSBmaWxlLg0KPiA+ID4gPiA+ICAgKyBB IGNvdXBsZSBleGFtcGxlcyB0aGF0IHN0b29kIG91dCBhcmU6DQo+ID4gPiA+ID4gICAgIEpzb25E ZWNyZWFzZVJlZmVyZW5jZSgpDQo+ID4gPiA+ID4gICAgIEpzb25JbmNyZWFzZVJlZmVyZW5jZSgp DQo+ID4gPiA+ID4gICAgIEpzb25PYmplY3RJdGVyYXRvcigpDQo+ID4gPiA+ID4gICAgIEpzb25P YmplY3RJdGVyYXRvclZhbHVlKCkNCj4gPiA+ID4gPiAgICAgSnNvbk9iamVjdEl0ZXJhdG9yTmV4 dCgpDQo+ID4gPiA+IFRoZSBuYXRpdmUgamFuc3NvbiBBUElzIG9mIGFsbCBhYm92ZSB3cmFwcGVy cyBhcmUgdXNlZCBpbiBsaWJyZWRmaXNoLg0KPiA+ID4gPiBTbyB0aGF0IGlzIHRoZSBwb3RlbnRp YWwgdXNlIGNhc2UgZm9yIG90aGVyIEpTT04gYXBwbGljYXRpb25zLg0KPiA+ID4NCj4gPiA+IENh biB5b3UgcHJvdmlkZSBhIHBvaW50ZXIgdG8gYW4gZXhhbXBsZSBvZiB0aGlzIHVzZSBjYXNlPw0K PiA+ID4NCj4gPiA+IEkgYW0gdHJ5aW5nIHRvIG1ha2Ugc3VyZSB3ZSBhcmUgZG9pbmcgdGhlIHJp Z2h0IGRlc2lnbiBvZiBSZWRmaXNoUGtnDQo+ID4gPiB3aXRoIHJlc3BlY3QgdG8gQ3J0TGliIGZv ciB0aGlzIHVzZSBjYXNlLiAgQXJlIHRoZXNlIGFyZSBKU09OIGFwcHMNCj4gPiA+IHRoYXQgZG8g bm90IHVzZSBKc29uTGliLCBidXQgYXJlIGV4cGVjdGVkIHRvIGJ1aWxkIGluIGFuIEVESyBJSQ0K PiA+ID4gYnVpbGQgZW52aXJvbm1lbnQ/ICBXb3VsZCB0aGVzZSBKU09OIGFwcHMgcmVxdWlyZSBt b3JlIHN0YW5kYXJkIEMNCj4gPiA+IGxpYiBzZXJ2aWNlcyB0aGFuIHRoZSBDcnRMaWIgdXNlZCB0 byBidWlsZCBKc29uTGliPyAgV2hlcmUgd291bGQgdGhvc2UNCj4gYWRkaXRpb25hbCBDIGxpYiBz ZXJ2aWNlcyBjb21lIGZyb20/DQo+ID4gPg0KPiA+ID4gVGhlcmUgaXMgYSBzdGFuZGFyZCBDIGxp YiBpbiBlZGsyLWxpYmMuICBXb3VsZCB0aGF0IGJlIHJlcXVpcmVkIHRvDQo+ID4gPiBidWlsZCB0 aGUgSlNPTiBhcHBzLg0KPiA+ID4NCj4gPiA+IEluIG90aGVyIHVzZXMgb2Ygc3VibW9kdWxlcyB3 aXRoIEMgbGliIGRlcGVuZGVuY2llcywgYSBuZXcgQ3J0TGliDQo+ID4gPiBsaWtlIGxpYiBjbGFz cyB3YXMgbm90IGFkZGVkIGFuZCBpbnN0ZWFkIHRoZSBzdXBwb3J0IHdhcyBhZGRlZA0KPiA+ID4g ZGlyZWN0bHkgdG8gdGhlIEVESyBJSSB3cmFwcGVyIEFQSXMuIFNvbWUgZXhhbXBsZXMgYXJlOg0K PiA+ID4gICAqIE1kZU1vZHVsZVBrZ1xMaWJyYXJ5XEJyb3RsaUN1c3RvbURlY29tcHJlc3NMaWIN Cj4gPiA+ICAgKiBNZGVNb2R1bGVQa2dcVW5pdmVyc2FsXFJlZ3VsYXJFeHByZXNzaW9uRHhlDQo+ ID4gPg0KPiA+ID4gSWYgdGhlcmUgYXJlIHVzZSBjYXNlcyB3aGVyZSB0aGUgQ3J0TGliIHdpbGwg YmUgYWRkZWQgdG8gYW4gSU5GDQo+ID4gPiBvdXRzaWRlIHRoZSBSZWRmaXNoUGtnLCB0aGVuIEkg c3RpbGwgdGhpbmsgdGhlIG5hbWUgbmVlZHMgdG8gYmUNCj4gPiA+IGNoYW5nZWQgdG8gYmUgc3Bl Y2lmaWMgdG8gdGhlIEpTT04gdXNlIGNhc2UuDQo+ID4gQ3J0TGliIHNob3VsZCBub3QgYmUgYWRk ZWQgdG8gSU5GIG91dHNpZGUgUmVkZmlzaFBrZywgYnV0IGl0IHdpbGwgYmUgYWRkZWQNCj4gdG8g cGxhdGZvcm0gRFNDIGZpbGUuDQo+ID4gPg0KPiA+ID4gSWYgdGhlIHVzZSBvZiBDcnRMaWIgaXMg b25seSB3aXRoaW4gdGhlIFJlZGZpc2hQa2csIHRoZW4gdGhlIExpYnJhcnkNCj4gPiA+IENsYXNz IGNhbiBiZSBkZWNsYXJlZCBpbiBhIFtMaWJyYXJ5Q2xhc3Nlcy5Db21tb24uUHJpdmF0ZV0gc2Vj dGlvbg0KPiA+ID4gb2YgdGhlIERFQyBmaWxlLiAgU2VlIFVuaXRUZXN0RnJhbWV3b3JrUGtnIGZv ciBleGFtcGxlcw0KPiA+IEJlY2F1c2UgQ3J0TGliLCBKc29uTGliIGFuZCBvdGhlciBSZWRmaXNo UGtnIG1vZHVsZXMgd2lsbCBiZSBpbmNsdWRlZCBpbg0KPiBvdGhlciBwYWNrYWdlIGRzYyBmaWxl IChlLmcuIEVtdWxhdG9yUGtnKS4NCj4gPiBXaGF0IGlmIGluIEVtdWxhdG9yUGtnIG9uZSBDcnRM aWIgbGlicmFyeWNsYXNzIG1hcHMgdG8gdGhlIHByaXZhdGUgb25lDQo+ID4gdW5kZXIgUmVkZmlz aFBrZywgYnV0IGFub3RoZXIgd2l0aCB0aGUgc2FtZSBuYW1lIGlzIHRoZSBwdWJsaWMgbGlicmFy eQ0KPiBwcm92aWRlZCBieSBvdGhlciBwYWNrYWdlIChlLmcuIE1kZU1vZHVsZVBrZykgYW5kIHVz ZWQgYnkgbW9kdWxlcw0KPiBvdGhlciB0aGFuIFJlZGZpc2hQa2c/DQo+ID4gSXMgZWRrMiBidWls ZCB0b29sIHRoYXQgc21hcnQgdG8gbGluayB0aGUgcHJpdmF0ZSBDcnRMaWIgZm9yDQo+ID4gUmVk ZmlzaFBrZyBtb2R1bGVzIGFuZCBhbGwgb3RoZXIgbm9uIFJlZGZpc2hQa2cgbW9kdWxlcyBhcmUg bGlua2VkIHdpdGgNCj4gdGhlIHB1YmxpYyBvbmU/DQo+ID4NCj4gPiBBYm5lcg0KPiA+DQo+IA0K PiBOby4gIE5vdCB0aGF0IHNtYXJ0Lg0KPiANCj4gVGhlcmUgYXJlIGdsb2JhbCBsaWIgY2xhc3Mg LT4gbGliIGluc3RhbmNlIG1hcHBpbmcgaW4gW0xpYnJhcnlDbGFzc2VzXSBzZWN0aW9ucyBvZg0K PiBEU0MgZmlsZXMuICBJZiB0aGUgc2FtZSBsaWIgY2xhc3MgaXMgbGlzdGVkIG1vcmUgdGhhbiBv bmNlLCB0aGVuIHRoZSBsYXN0IG1hcHBpbmcNCj4gd2lucy4NCj4gDQo+IElmIGEgbW9kdWxlIHNj b3BlZCA8TGlicmFyeUNsYXNzZXM+IHNlY3Rpb24gaXMgdXNlZCwgdGhlbiB0aGVuIGxhc3QgbWFw cGluZw0KPiBpbiB0aGUgc2NvcGUgb2YgdGhhdCBtb2R1bGUgd2lucy4NCj4gDQo+IElmIHRoZSBz YW1lIGxpYiBjbGFzcyBuYW1lIGlzIGRlY2xhcmVkIGJ5IG1vcmUgdGhhbiBvbmUgcGFja2FnZSB1 c2VkIGluIGENCj4gcGxhdGZvcm0gRFNDLCB0aGVuIHRoZSBvbmx5IHJlbWVkaWF0aW9uIGlzIHRv IHJlbW92ZSB1c2Ugb2YgdGhlIGdsb2JhbA0KPiBbTGlicmFyeUNsYXNzZXNdIHNlY3Rpb24gYW5k IHVzZSBhIG1vZHVsZSBzY29wZSA8TGlicmFyeUNsYXNzZXM+IHNlY3Rpb24gaW4NCj4gZXZlcnkg bW9kdWxlIHRoYXQgZGVwZW5kcyBvbiB0aGF0IGxpYiBjbGFzcyBuYW1lLg0KT2ssIEkgd2lsbCBy ZW5hbWUgaXQgdG8gUmVkZmlzaENydExpYi4NCg0KQWJuZXINCj4gDQo+ID4gPg0KPiA+ID4gPg0K PiA+ID4gPiA+ICAgKyBKc29uRHVtcFN0cmluZygpDQo+ID4gPiA+ID4gICAgIGZ1bmMgaGVhZGVy IHBhcmFtcyBkbyBub3QgbWF0Y2ggZnVuYyBwcm90b3R5cGUNCj4gPiA+ID4gPiAgICAgRG9lcyBu b3QgZGVzY3JpYmUgd2hvIGFsbG9jYXRlcyB0aGUgcmV0dXJuIGJ1ZmZlciBhbmQgd2hvDQo+ID4g PiA+ID4gICAgIGlzIHJlc3BvbnNpYmxlIGZvciBmcmVlaW5nIHRoZSBidWZmZXIgcmV0dXJuZWQu DQo+ID4gPiA+ID4gICAgIFdoYXQgZG8gRmxhZ3MgZG8/ICBXaGF0IGlzIHRoZSBkaWZmZXJlbmNl IGJldHdlZW4gdGhpcw0KPiA+ID4gPiA+ICAgICBmdW5jdGlvbiBhbmQgSnNvblRvVGV4dCgpPw0K PiA+ID4gPiBJbiBKc29uVG9UZXh0LCBpdCBvbmx5IGNvbnZlcnRzIEpTT04gYXJyYXkgYW5kIG9i amVjdCB0byB0ZXh0LiBXZQ0KPiA+ID4gPiBjb3VsZCBqdXN0IHJlbW92ZSB0aGlzIGZvciBub3cg YmVjYXVzZSBJIGRvbuKAmXQgcmVhbGx5IHJlbWVtYmVyIHRoZQ0KPiA+ID4gPiByZWFzb24NCj4g PiA+IHRvIGNyZWF0ZSB0aGlzIGZ1bmN0aW9uLCBpdCBoYXMgYmVlbiBhIHdoaWxlLiBTZWVtcyB0 byBtZSBpdCBpcyBmaW5lDQo+ID4gPiB0byByZW1vdmUgdGhpcyBmdW5jdGlvbi4NCj4gPiA+ID4N Cj4gPiA+ID4gPiAgICsgSnNvbkxvYWRCdWZmZXIoKSAtIEVycm9yIHBhcmFtIGRlc2NyaXB0aW9u IG1pc3NpbmcNCj4gPiA+ID4gPiAgICsgSnNvbkFycmF5R2V0VmFsdWUoKSBkb2VzIG5vdCBkZXNj cmliZSB0aGUgY29uZGl0aW9ucyBOVUxMDQo+ID4gPiA+ID4gICAgIGlzIHJldHVybmVkLg0KPiA+ ID4gPiA+ICAgKyBKc29uT2JqZWN0R2V0S2V5cygpLiAgUmV0dXJuIHR5cGUgaXMgQ0hBUjgqKi4g IFdoYXQNCj4gPiA+ID4gPiAgICAgZnVuY3Rpb24gbmVlZCB0byBiZSBjYWxsZWQgdG8gZnJlZSB0 aGUgYXJyYXk/DQo+ID4gPiA+IEFsbCBhYm92ZSBhZGRyZXNzZWQuDQo+ID4gPiA+DQo+ID4gPiA+ ID4gICArIEpzb25WYWx1ZUdldEFzY2lpU3RyaW5nKCkgYW5kIEpzb25WYWx1ZUdldFVuaWNvZGVT dHJpbmcoKQ0KPiA+ID4gPiA+ICAgICBhcmUgYXN5bW1ldHJpYy4gIFRoZSBBc2NpaSBvbmUgc3Rh dGVzIHRoYXQgY2hhbmdlIHdpbGwNCj4gPiA+ID4gPiAgICAgbW9kaWZ5IHRoZSBvcmlnaW5hbCBz dHJpbmcuICBUaGUgVW5pY29kZSBvbmUgc2F5cyB0aGF0IHRoZQ0KPiA+ID4gPiA+ICAgICBjYWxs ZXIgbmVlZHMgdG8gZnJlZSB0aGUgcmV0dXJuZWQgc3RyaW5nLiAgQW55IHJlYXNvbiB3ZQ0KPiA+ ID4gPiA+ICAgICBjYW4gbm90IG1ha2UgdGhlbSBzeW1tZXRyaWM/DQo+ID4gPiA+IEphbnNzb24g ZG9lc24ndCBzdXBwb3J0IFVuaWNvZGUgc3RyaW5nLiBUaGUgbWVtb3J5IG9mIHRoZSB1bmljb2Rl DQo+ID4gPiA+IHN0cmluZyByZXR1cm5lZCBieSBKc29uVmFsdWVHZXRVbmljb2RlU3RyaW5nIElz IGFsbG9jYXRlZCBieQ0KPiA+ID4gVVRGOFN0clRvVUNTMigpLg0KPiA+ID4gPiAgPiBBbHNvLCBp ZiBBc2NpaSBvbmUgc2hvdWxkDQo+ID4gPiA+ID4gICAgIG5vdCBiZSBtb2RpZmllZCwgd2h5IGlz buKAmXQgdGhlIHJldHVybiB0eXBlIENPTlNUPw0KPiA+ID4gPiBZZXMuIHdpbGwgZG8gdGhhdC4N Cj4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICogUmVkZmlzaFBrZy9MaWJyYXJ5L0Jhc2VV Y3MyVXRmOExpYi9CYXNlVWNzMlV0ZjhMaWIuaW5mDQo+ID4gPiA+ID4gICArIENoYW5nZSBbU291 cmNlcy5jb21tb25dIHRvIFtTb3VyY2VzXQ0KPiA+ID4gPiBkb25lDQo+ID4gPiA+ID4gKiBSZWRm aXNoUGtnL0xpYnJhcnkvQ3J0TGliL0NydExpYi5pbmYNCj4gPiA+ID4gPiAgICsgRG9lcyB0aGlz IGxpYiBpbnN0YW5jZSByZWFsbHkgZGVwZW5kIG9uIE1kZU1vZHVsZVBrZz8NCj4gPiA+ID4gWWVz LCBTb3J0TGliDQo+ID4gPiA+ID4gICArIEhhdmUgeW91IHJldmlld2VkIHRoZSBtb2R1bGUgdHlw ZXMgdGhpcyBsaWIgaW5zdGFuY2UgaXMNCj4gPiA+ID4gPiAgICAgY29tcGF0aWJsZSB3aXRoPyAg V2h5IGRvZXMgaXQgbmVlZCB0byBzdXBwb3J0IERYRV9DT1JFPw0KPiA+ID4gPiA+ICAgICBBcmUg dGhlaXIgSnNvbkxpYiB1c2UgY2FzZXMgZm9yIERYRV9SVU5USU1FIGFuZCBTTU0gZHJpdmVycz8N Cj4gPiA+ID4gPiAgICAgSWYgdGhlcmUgYXJlIFNNTSB1c2UgY2FzZXMsIHRoZW4gd2h5IGlzIE1N IGV4Y2x1ZGVkPw0KPiA+ID4gPiBXaWxsIGp1c3Qga2VlcCBEWEVfRFJWRVIsIFVFRklfQVBQTElD QVRJT04gYW5kIFVFRklfRFJJVkVSLg0KPiBUaGVzZQ0KPiA+ID4gYXJlDQo+ID4gPiA+IG1vZHVs ZSB0eXBlcyBoYXZlIHBvdGVudGlhbCB1c2UgY2FzZXMgSSBjYW4gdGhpbmsgb2Ygbm93Lg0KPiA+ ID4gPiA+DQo+ID4gPiA+ID4gKiBSZWRmaXNoUGtnL0xpYnJhcnkvSnNvbkxpYg0KPiA+ID4gPiA+ ICAgKyBSZWFkbWUucnN0IHN0aWxsIGhhcyByZWZlcmVuY2VzIHRvIEphbnNzb25Kc29uTGliTWFw cGluZy5oDQo+ID4gPiA+IGRvbmUNCj4gPiA+ID4gPiAgICsgSGF2ZSB5b3UgcmV2aWV3ZWQgdGhl IG1vZHVsZSB0eXBlcyB0aGlzIGxpYiBpbnN0YW5jZSBpcw0KPiA+ID4gPiA+ICAgICBjb21wYXRp YmxlIHdpdGg/ICBXaHkgZG9lcyBpdCBuZWVkIHRvIHN1cHBvcnQgRFhFX0NPUkU/DQo+ID4gPiA+ ID4gICAgIEFyZSB0aGVpciBKc29uTGliIHVzZSBjYXNlcyBmb3IgRFhFX1JVTlRJTUUgYW5kIFNN TSBkcml2ZXJzPw0KPiA+ID4gPiA+ICAgICBJZiB0aGVyZSBhcmUgU01NIHVzZSBjYXNlcywgdGhl biB3aHkgaXMgTU0gZXhjbHVkZWQ/DQo+ID4gPiA+IEFuc3dlcmVkIGFib3ZlDQo+ID4gPiA+ID4g ICArIEpzb25MaWIuaW5mIGhhcyBhIFtCdWlsZE9wdGlvbnNdIHNlY3Rpb24gdGhhdCBkaXNhYmxl cyBzb21lDQo+ID4gPiA+ID4gd2FybmluZ3MNCj4gPiA+IHRoYXQNCj4gPiA+ID4gPiAgICAgbWFr ZSBtZSBjb25jZXJuZWQgdGhhdCB0aGlzIGxpYnJhcnkgbWF5IGhhdmUgc29tZSBpc3N1ZXMNCj4g PiA+ID4gPiB3aXRoIDMyLWJpdCBidWlsZHMuDQo+ID4gPiA+ID4gICAgIEhhdmUgeW91IGZ1bGx5 IHZhbGlkYXRlZCBhbGwgMzItYml0IENQVSBidWlsZHMgYW5kIHZhbGlkYXRlZA0KPiA+ID4gPiA+ IHRoZQ0KPiA+ID4gZnVuY3Rpb25hbGl0eQ0KPiA+ID4gPiA+ICAgICBvZiBhbGwgc2VydmljZXMg ZnJvbSB0aGUgSnNvbkxpYiBmb3IgYWxsIHJhbmdlcyBvZiBpbnB1dCB2YWx1ZXM/DQo+ID4gPiA+ IFllcywgSUEzMiBidWlsZCBpcyB2YWxpZGF0ZWQuIEJ1dCBub3QgdmFsaWRhdGluZyBvbiB0aGUN Cj4gPiA+ID4gZnVuY3Rpb25hbGl0aWVzIElBMzIuIEkgZG9uJ3QgaGF2ZSB0aGF0IHVzZSBjYXNl LCB3ZSBjYW4gZ2V0IGJhY2sNCj4gPiA+ID4gdG8gZml4IHRoZQ0KPiA+ID4gaXNzdWUgaWYgYW55 IHdoZW4gIHNvbWVvbmUgcnVucyB0aGlzIG9uIElBMzIuDQo+ID4gPg0KPiA+ID4gSSBkaWQgc29t ZSBsb2NhbCB0ZXN0aW5nIHdpdGggVlMyMDE5LiAgSSBmb3VuZCB0aGF0IGEgbXVjaCBzbWFsbGVy DQo+ID4gPiBzZXQgb2Ygd2FybmluZyBkaXNhYmxlcyBhcmUgcmVxdWlyZWQgZm9yIElBMzIgYW5k IFg2NCBhbmQgdGhlIHNldCBpcw0KPiA+ID4gZGlmZmVyZW50IGZvcg0KPiA+ID4gSUEzMiBhbmQg WDY0LiAgQ2FuIHlvdSByZXZpZXcgd2hhdCBpcyBuZWVkZWQgYW5kIG1pbmltaXplIHRoZQ0KPiA+ ID4gcmVxdWlyZWQgc2V0IG9mIGVhY2ggc3VwcG9ydGVkIGFyY2g/DQo+ID4gPg0KPiA+ID4gICBN U0ZUOipfKl9YNjRfQ0NfRkxBR1MgPSAvd2Q0MjQ0IC93ZDQwOTAgL3dkNDMzNA0KPiA+ID4gL0RI QVZFX0NPTkZJR19IPTEgL1VfV0lOMzIgL1VXSU42NCAvVV9NU0NfVkVSDQo+ID4gPiAgIE1TRlQ6 Kl8qX0lBMzJfQ0NfRkxBR1MgPSAvd2Q0MjQ0IC93ZDQwOTAgL0RIQVZFX0NPTkZJR19IPTENCj4g PiA+IC9VX1dJTjMyIC9VV0lONjQgL1VfTVNDX1ZFUg0KPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4g PiA+ICogUmVkZmlzaExpYnMuZHNjLmluYw0KPiA+ID4gPiA+ICAgSXQgaXMgYmV0dGVyIHRvIGFk ZCBbTGlicmFyeUNsYXNzZXNdIHN0YXRlbWVudCB0byB0aGlzIGZpbGUsIHNvIGl0DQo+ID4gPiA+ ID4gICBjYW4gYmUgaW5jbHVkZSBhbnl3aGVyZSBpbiBhIERTQyBmaWxlLiAgV2l0aCBjdXJyZW50 IGltcGxlbWVudGF0aW9uDQo+ID4gPiA+ID4gICBpZiBpdCBpcyBub3QgaW5jbHVkZWQgd2l0aGlu IGEgW0xpYnJhcnlDbGFzc2VzXSBzZWN0aW9uLCBpdCB3aWxsDQo+ID4gPiA+ID4gICBnZW5lcmF0 ZSBhIGJ1aWxkIGVycm9yLg0KPiA+ID4gPiBJIHdpbGwgc2VwYXJhdGUgdGhpcyB0byBhbm90aGVy IHNldCBvZiBwYXRjaC4gRG9u4oCZdCBtaXggdXAgd2l0aA0KPiA+ID4gPiBqYW5zc29uIGVkazIN Cj4gPiA+IHBvcnQuDQo+ID4gPiA+DQo+ID4gPiA+ID5Zb3UgbWlnaHQgYWxzbyBjb25zaWRlciBj aGFuZ2luZyB0aGUgbmFtZQ0KPiA+ID4gPiA+ICAgb2YgdGhpcyBmaWxlIGluIGNhc2UgeW91IHdh bnQgdG8gYWRkIG1vcmUgdGhhbiBqdXN0IGxpYiBtYXBwaW5ncw0KPiA+ID4gPiA+ICAgdG8gdGhp cyBmaWxlIGluIHRoZSBmdXR1cmUuICBTZWUgVW5pdFRlc3RGcmFtd29ya1BrZyBmb3IgZXhhbXBs ZXMuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBCZXN0IHJlZ2FyZHMsDQo+ID4gPiA+ID4NCj4gPiA+ ID4gPiBNaWtlDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQo+ID4gPiA+ID4gPiBGcm9tOiBBYm5lciBDaGFuZyA8YWJuZXIuY2hhbmdAaHBlLmNvbT4N Cj4gPiA+ID4gPiA+IFNlbnQ6IFRodXJzZGF5LCBEZWNlbWJlciAxNywgMjAyMCA1OjE5IEFNDQo+ ID4gPiA+ID4gPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiA+ID4gPiA+IENjOiBTZWFu IEJyb2dhbiA8c2Vhbi5icm9nYW5AbWljcm9zb2Z0LmNvbT47IEJyZXQgQmFya2VsZXcNCj4gPiA+ ID4gPiA+IDxCcmV0LkJhcmtlbGV3QG1pY3Jvc29mdC5jb20+OyBBbmRyZXcgRmlzaCA8YWZpc2hA YXBwbGUuY29tPjsNCj4gPiA+ID4gPiA+IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+ OyBMZWlmIExpbmRob2xtDQo+ID4gPiA+ID4gPiA8bGVpZkBudXZpYWluYy5jb20+OyBLaW5uZXks IE1pY2hhZWwgRA0KPiA+ID4gPiA+ID4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgTGlt aW5nIEdhbw0KPiA+ID4gPiA+ID4gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IE5pY2tsZSBX YW5nDQo+IDxuaWNrbGUud2FuZ0BocGUuY29tPjsNCj4gPiA+ID4gPiBQZXRlcg0KPiA+ID4gPiA+ ID4gTydIYW5sZXkgPHBldGVyLm9oYW5sZXlAaHBlLmNvbT4NCj4gPiA+ID4gPiA+IFN1YmplY3Q6 IFtQQVRDSCB2OCAwLzZdIGphbnNzb24gZWRrMiBwb3J0DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gSW4gdjgsIC0gQXNzaWduZSBwYXRjaCBmaWxlIG9yZGVyDQo+ID4gPiA+ID4gPiAgICAgICAg LSBBZGQgQWNrZWQtYnkgdGFncw0KPiA+ID4gPiA+ID4gSW4gdjcsIC0gUmVtb3ZlIEMgUlRDIGhl YWRlciBmaWxlcyB0byB1bmRlcg0KPiBbSW5jbHVkZS5Db21tb24uUHJpdmF0ZV0NCj4gPiA+ID4g PiA+ICAgICAgICAgIGluIFJlZGZpc2hQa2cuZGVjLg0KPiA+ID4gPiA+ID4gICAgICAgIC0gYWRk cmVzcyBjb21tZW50cyBnaXZlbiBieSBNaWtlIEtpbm5leS4NCj4gPiA+ID4gPiA+IEluIHY2LCBS ZW1vdmUgSmFuc3Nvbkpzb25NYXBwaW5nLmggSW4gdjUsIG1vdmUgQmFzZVVjczJVdGY4TGliDQo+ ID4gPiA+ID4gPiB0byB1bmRlciBSZWRmaXNoUGtnLg0KPiA+ID4gPiA+ID4gSW4gdjQsDQo+ID4g PiA+ID4gPiAgICAgICAgLSBBZGRyZXNzIHJldmlldyBjb21tZW50cw0KPiA+ID4gPiA+ID4gICAg ICAgIC0gU2VwZXJhdGUgQ1JUIGZ1bmN0aW9ucyB0byBhIGluZGl2aWR1bGUgbGlicmFyeSBDcnRM aWIgdW5kZXINCj4gPiA+ID4gPiA+ICAgICAgICAgIFJlZGZpc2hQa2cuDQo+ID4gPiA+ID4gPiAg ICAgICAgLSBTZXBlcmF0ZSBVQ1MyLVVURjggZnVuY3Rpb25zIHRvIGEgaW5kaXZpZHVsZSBsaWJy YXJ5DQo+ID4gPiA+ID4gPiAgICAgICAgICBCYXNlVWNzMlV0ZjhMaWIgdW5kZXIgTWRlTW9kdWxl UGtnLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEluIHYzLCBBZGQgamFuc3NvbiBsaWJyYXJ5 IGFzIHRoZSByZXF1aXJlZCBzdWJtb3VkbGUgaW4NCj4gPiA+ID4gPiA+ICAgICAgICBDaVNldHRp bmdzLnB5IGZvciBDSSB0ZXN0Lg0KPiA+ID4gPiA+ID4gSW4gdjIsIEpzb25MaWIgaXMgbW92ZWQg dG8gdW5kZXIgUmVkZmlzaFBrZy4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBlZGsyIEpTT04g bGlicmFyeSBpcyBiYXNlZCBvbiBqYW5zc29uIG9wZW4gc291cmNlDQo+ID4gPiA+ID4gPiAoaHR0 cHM6Ly9naXRodWIuY29tL2FraGVyb24vamFuc3NvbikgYW5kIHdyYXBwZWQgYXMgYW4gZWRrMg0K PiBsaWJyYXJ5Lg0KPiA+ID4gPiA+ID4gZWRrMiBKc29uTGliIHdpbGwgYmUgdXNlZCBieSBlZGsy IFJlZGZpc2ggZmVhdHVyZSBkcml2ZXJzIChub3QNCj4gPiA+ID4gPiA+IGNvbnRyaWJ1dGVkIHll dCkgYW5kIHRoZSBlZGsyIHBvcnQgb2YgbGlicmVkZmlzaCBsaWJyYXJ5IChub3QNCj4gPiA+ID4g PiA+IGNvbnRyaWJ1dGVkIHlldCkgYmFzZWQgb24gRE1URiBHaXRIdWINCj4gPiA+ID4gPiA+ICho dHRwczovL2dpdGh1Yi5jb20vRE1URi9saWJyZWRmaXNoKS4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiBKYW5zc29uIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZShyZWZlciB0byBS ZWFkTWUucnN0DQo+ID4gPiA+ID4gPiB1bmRlcg0KPiA+ID4gZWRrMikuDQo+ID4gPiA+ID4gPiBJ dCBpcyB1c2VkIGluIHByb2R1Y3Rpb24gYW5kIGl0cyBBUEkgaXMgc3RhYmxlLiBJbiBVRUZJL0VE S0lJDQo+ID4gPiA+ID4gPiBlbnZpcm9ubWVudCwgUmVkZmlzaCBwcm9qZWN0IGNvbnN1bWVzIGph bnNzb24gdG8gYWNoaWV2ZSBKU09ODQo+ID4gPiA+ID4gb3BlcmF0aW9ucy4NCj4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiAqIEphbnNzb24gdmVyc2lvbiBvbiBlZGsyOiAyLjEzLjENCj4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiAqIEVES0lJIGphbnNzb24gbGlicmFyeSB3cmFwcGVyOg0KPiA+ID4g PiA+ID4gICAgLSBKc29uTGliLmg6DQo+ID4gPiA+ID4gPiAgICAgIFRoaXMgaXMgdGhlIGRlbmlm aXRpb25zIG9mIEVES0lJIEpTT04gQVBJcyB3aGljaCBhcmUgbWFwcGVkIHRvDQo+ID4gPiA+ID4g PiAgICAgIGphbm5zb24gZnVuY2l0b25zIGFjY29yZGluZ2x5Lg0KPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+ICAgIC0gSmFuc3Nvbkpzb25MaWJNYXBwaW5nLmg6DQo+ID4gPiA+ID4gPiAgICAgIFRo aXMgaXMgdGhlIHdyYXBwZXIgZmlsZSB0byBtYXAgZnVuY2l0b25zIGFuZCBkZWZpbml0aW9ucyB1 c2VkIGluDQo+ID4gPiA+ID4gPiAgICAgIG5hdGl2ZSBqYW5uc29uIGFwcGxpY2F0aW9ucyB0byBl ZGsyIEpzb25MaWIuIFRoaXMgYXZvaWRzIHRoZQ0KPiA+ID4gPiA+ID4gICAgICBtb2RpZmljYXRp b25zIG9uIG5hdGl2ZSBqYW5uc29uIGFwcGxpY2F0aW9ucyB0byBiZSBidWlsdCB1bmRlcg0KPiA+ ID4gPiA+ID4gICAgICBlZGsyIGVudmlyb25tZW50Lg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ICpLbm93biBpc3N1ZToNCj4gPiA+ID4gPiA+ICAgQnVpbGQgZmFpbCB3aXRoIGphbnNzb24vc3Jj L2xvYWQuYywgb3ZlcnJyaWRlIGFuZCBhZGQgY29kZSBpbiBsb2FkLmMNCj4gPiA+ID4gPiA+ICAg dG8gY29uZGl0aW9uYWxseSB1c2Ugc3RkaW4gYWNjb3JkaW5nIHRvIEhBVkVfVU5JU1REX0ggbWFj cm8uDQo+ID4gPiA+ID4gPiAgIFRoZSBQUiBpcyBzdWJtaXR0ZWQgdG8gamFuc3NvbiBvcGVuIHNv dXJjZSBjb21tdW5pdHkuDQo+ID4gPiA+ID4gPiAgIGh0dHBzOi8vZ2l0aHViLmNvbS9ha2hlcm9u L2phbnNzb24vcHVsbC81NTgNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5 OiBBYm5lciBDaGFuZyA8YWJuZXIuY2hhbmdAaHBlLmNvbT4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiBDYzogU2VhbiBCcm9nYW4gPHNlYW4uYnJvZ2FuQG1pY3Jvc29mdC5jb20+DQo+ID4gPiA+ ID4gPiBDYzogQnJldCBCYXJrZWxldyA8QnJldC5CYXJrZWxld0BtaWNyb3NvZnQuY29tPg0KPiA+ ID4gPiA+ID4gQ2M6IEFuZHJldyBGaXNoIDxhZmlzaEBhcHBsZS5jb20+DQo+ID4gPiA+ID4gPiBD YzogTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT4NCj4gPiA+ID4gPiA+IENjOiBMZWlm IExpbmRob2xtIDxsZWlmQG51dmlhaW5jLmNvbT4NCj4gPiA+ID4gPiA+IENjOiBNaWNoYWVsIEQg S2lubmV5IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiA+ID4gPiA+IENjOiBMaW1p bmcgR2FvIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+DQo+ID4gPiA+ID4gPiBDYzogTmlja2xl IFdhbmcgPG5pY2tsZS53YW5nQGhwZS5jb20+DQo+ID4gPiA+ID4gPiBDYzogUGV0ZXIgTydIYW5s ZXkgPHBldGVyLm9oYW5sZXlAaHBlLmNvbT4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBBYm5l ciBDaGFuZyAoNik6DQo+ID4gPiA+ID4gPiAgIFJlZGZpc2hQa2cvVWNzMlV0ZjhsaWI6IFVDUzIg dG8gVUZUOCBtYW5pcHVsYXRpb24gbGlicmFyeQ0KPiA+ID4gPiA+ID4gICBlZGsyOiBqYW5zc29u IHN1Ym1vZHVsZSBmb3IgZWRrMiBKU09OIGxpYnJhcnkNCj4gPiA+ID4gPiA+ICAgUmVkZmlzaFBr Zy9DcnRMaWI6IEMgcnVudGltZSBsaWJyYXJ5DQo+ID4gPiA+ID4gPiAgIFJlZGZpc2hQa2cvbGli cmFyeTogRURLMiBwb3J0IG9mIGphbnNzb24gbGlicmFyeQ0KPiA+ID4gPiA+ID4gICBSZWRmaXNo UGtnOiBBZGQgRURLMiBwb3J0IG9mIGphbnNzb24gbGlicmFyeSB0byBidWlsZA0KPiA+ID4gPiA+ ID4gICAucHl0b29sOiBBZGQgcmVxdWlyZWQgc3VibW9kdWxlIGZvciBKc29uTGliDQo+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gIC5naXRtb2R1bGVzICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgIDMgKw0KPiA+ID4gPiA+ID4gIC5weXRvb2wvQ0lTZXR0aW5ncy5weSAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKw0KPiA+ID4gPiA+ID4gIFJlYWRNZS5yc3QgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEgKw0KPiA+ID4gPiA+ID4gIFJl ZGZpc2hQa2cvSW5jbHVkZS9DcnQvYXNzZXJ0LmggICAgICAgICAgICAgICB8ICAgMTYgKw0KPiA+ ID4gPiA+ID4gIFJlZGZpc2hQa2cvSW5jbHVkZS9DcnQvZXJybm8uaCAgICAgICAgICAgICAgICB8 ICAgMTYgKw0KPiA+ID4gPiA+ID4gIFJlZGZpc2hQa2cvSW5jbHVkZS9DcnQvbGltaXRzLmggICAg ICAgICAgICAgICB8ICAgMTYgKw0KPiA+ID4gPiA+ID4gIFJlZGZpc2hQa2cvSW5jbHVkZS9DcnQv bWF0aC5oICAgICAgICAgICAgICAgICB8ICAgMTYgKw0KPiA+ID4gPiA+ID4gIFJlZGZpc2hQa2cv SW5jbHVkZS9DcnQvc3RkYXJnLmggICAgICAgICAgICAgICB8ICAgMTUgKw0KPiA+ID4gPiA+ID4g IFJlZGZpc2hQa2cvSW5jbHVkZS9DcnQvc3RkZGVmLmggICAgICAgICAgICAgICB8ICAgMTYgKw0K PiA+ID4gPiA+ID4gIFJlZGZpc2hQa2cvSW5jbHVkZS9DcnQvc3RkaW8uaCAgICAgICAgICAgICAg ICB8ICAgMTUgKw0KPiA+ID4gPiA+ID4gIFJlZGZpc2hQa2cvSW5jbHVkZS9DcnQvc3RkbGliLmgg ICAgICAgICAgICAgICB8ICAgMTYgKw0KPiA+ID4gPiA+ID4gIFJlZGZpc2hQa2cvSW5jbHVkZS9D cnQvc3RyaW5nLmggICAgICAgICAgICAgICB8ICAgMTYgKw0KPiA+ID4gPiA+ID4gIFJlZGZpc2hQ a2cvSW5jbHVkZS9DcnQvc3lzL3RpbWUuaCAgICAgICAgICAgICB8ICAgMTUgKw0KPiA+ID4gPiA+ ID4gIFJlZGZpc2hQa2cvSW5jbHVkZS9DcnQvc3lzL3R5cGVzLmggICAgICAgICAgICB8ICAgMTUg Kw0KPiA+ID4gPiA+ID4gIFJlZGZpc2hQa2cvSW5jbHVkZS9DcnQvdGltZS5oICAgICAgICAgICAg ICAgICB8ICAgMTUgKw0KPiA+ID4gPiA+ID4gIFJlZGZpc2hQa2cvSW5jbHVkZS9MaWJyYXJ5L0Jh c2VVY3MyVXRmOExpYi5oICB8ICAgNjEgKw0KPiA+ID4gPiA+ID4gIFJlZGZpc2hQa2cvSW5jbHVk ZS9MaWJyYXJ5L0NydExpYi5oICAgICAgICAgICB8ICAxOTEgKysrDQo+ID4gPiA+ID4gPiAgUmVk ZmlzaFBrZy9JbmNsdWRlL0xpYnJhcnkvSnNvbkxpYi5oICAgICAgICAgIHwgIDc2MyArKysrKysr KysrKw0KPiA+ID4gPiA+ID4gIC4uLi9MaWJyYXJ5L0Jhc2VVY3MyVXRmOExpYi9CYXNlVWNzMlV0 ZjhMaWIuYyB8ICA0MjEgKysrKysrKw0KPiA+ID4gPiA+ID4gIC4uLi9CYXNlVWNzMlV0ZjhMaWIv QmFzZVVjczJVdGY4TGliLmluZiAgICAgICB8ICAgMzEgKw0KPiA+ID4gPiA+ID4gIFJlZGZpc2hQ a2cvTGlicmFyeS9DcnRMaWIvQ3J0TGliLmMgICAgICAgICAgICB8ICA1OTUgKysrKysrKysrDQo+ ID4gPiA+ID4gPiAgUmVkZmlzaFBrZy9MaWJyYXJ5L0NydExpYi9DcnRMaWIuaW5mICAgICAgICAg IHwgICAzOCArDQo+ID4gPiA+ID4gPiAgUmVkZmlzaFBrZy9MaWJyYXJ5L0pzb25MaWIvSnNvbkxp Yi5jICAgICAgICAgIHwgIDk2NCArKysrKysrKysrKysrKw0KPiA+ID4gPiA+ID4gIFJlZGZpc2hQ a2cvTGlicmFyeS9Kc29uTGliL0pzb25MaWIuaW5mICAgICAgICB8ICAgODkgKysNCj4gPiA+ID4g PiA+ICBSZWRmaXNoUGtnL0xpYnJhcnkvSnNvbkxpYi9SZWFkbWUucnN0ICAgICAgICAgfCAgIDQw ICsNCj4gPiA+ID4gPiA+ICBSZWRmaXNoUGtnL0xpYnJhcnkvSnNvbkxpYi9qYW5zc29uICAgICAg ICAgICAgfCAgICAxICsNCj4gPiA+ID4gPiA+ICBSZWRmaXNoUGtnL0xpYnJhcnkvSnNvbkxpYi9q YW5zc29uX2NvbmZpZy5oICAgfCAgIDQxICsNCj4gPiA+ID4gPiA+ICAuLi4vTGlicmFyeS9Kc29u TGliL2phbnNzb25fcHJpdmF0ZV9jb25maWcuaCAgfCAgIDE5ICsNCj4gPiA+ID4gPiA+ICBSZWRm aXNoUGtnL0xpYnJhcnkvSnNvbkxpYi9sb2FkLmMgICAgICAgICAgICAgfCAxMTExDQo+ICsrKysr KysrKysrKysrKysrDQo+ID4gPiA+ID4gPiAgUmVkZmlzaFBrZy9SZWRmaXNoTGlicy5kc2MuaW5j ICAgICAgICAgICAgICAgIHwgICAgMyArDQo+ID4gPiA+ID4gPiAgUmVkZmlzaFBrZy9SZWRmaXNo UGtnLmNpLnlhbWwgICAgICAgICAgICAgICAgIHwgICAyNSArDQo+ID4gPiA+ID4gPiAgUmVkZmlz aFBrZy9SZWRmaXNoUGtnLmRlYyAgICAgICAgICAgICAgICAgICAgIHwgICAyNSArDQo+ID4gPiA+ ID4gPiAgUmVkZmlzaFBrZy9SZWRmaXNoUGtnLmRzYyAgICAgICAgICAgICAgICAgICAgIHwgICAg MyArDQo+ID4gPiA+ID4gPiAgMzMgZmlsZXMgY2hhbmdlZCwgNDYxNCBpbnNlcnRpb25zKCspICBj cmVhdGUgbW9kZSAxMDA2NDQNCj4gPiA+ID4gPiA+IFJlZGZpc2hQa2cvSW5jbHVkZS9DcnQvYXNz ZXJ0LmggIGNyZWF0ZSBtb2RlDQo+ID4gPiA+ID4gPiAxMDA2NDQgUmVkZmlzaFBrZy9JbmNsdWRl L0NydC9lcnJuby5oICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPiA+ID4gPiA+IFJlZGZpc2hQa2cv SW5jbHVkZS9DcnQvbGltaXRzLmggIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+ID4gPiA+ID4gUmVk ZmlzaFBrZy9JbmNsdWRlL0NydC9tYXRoLmggIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+ID4gPiA+ ID4gUmVkZmlzaFBrZy9JbmNsdWRlL0NydC9zdGRhcmcuaCAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ ID4gPiA+ID4gPiBSZWRmaXNoUGtnL0luY2x1ZGUvQ3J0L3N0ZGRlZi5oICBjcmVhdGUgbW9kZSAx MDA2NDQNCj4gPiA+ID4gPiA+IFJlZGZpc2hQa2cvSW5jbHVkZS9DcnQvc3RkaW8uaCAgY3JlYXRl IG1vZGUgMTAwNjQ0DQo+ID4gPiA+ID4gPiBSZWRmaXNoUGtnL0luY2x1ZGUvQ3J0L3N0ZGxpYi5o ICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPiA+ID4gPiA+IFJlZGZpc2hQa2cvSW5jbHVkZS9DcnQv c3RyaW5nLmggIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+ID4gPiA+ID4gUmVkZmlzaFBrZy9JbmNs dWRlL0NydC9zeXMvdGltZS5oICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPiA+ID4gPiA+IFJlZGZp c2hQa2cvSW5jbHVkZS9DcnQvc3lzL3R5cGVzLmgNCj4gPiA+ID4gPiA+ICBjcmVhdGUgbW9kZSAx MDA2NDQgUmVkZmlzaFBrZy9JbmNsdWRlL0NydC90aW1lLmggIGNyZWF0ZSBtb2RlDQo+ID4gPiA+ ID4gPiAxMDA2NDQgUmVkZmlzaFBrZy9JbmNsdWRlL0xpYnJhcnkvQmFzZVVjczJVdGY4TGliLmgN Cj4gPiA+ID4gPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgUmVkZmlzaFBrZy9JbmNsdWRlL0xpYnJh cnkvQ3J0TGliLmgNCj4gPiA+ID4gPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgUmVkZmlzaFBrZy9J bmNsdWRlL0xpYnJhcnkvSnNvbkxpYi5oDQo+ID4gPiA+ID4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0 DQo+ID4gPiA+ID4gPiBSZWRmaXNoUGtnL0xpYnJhcnkvQmFzZVVjczJVdGY4TGliL0Jhc2VVY3My VXRmOExpYi5jDQo+ID4gPiA+ID4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4gPiA+ID4gPiBS ZWRmaXNoUGtnL0xpYnJhcnkvQmFzZVVjczJVdGY4TGliL0Jhc2VVY3MyVXRmOExpYi5pbmYNCj4g PiA+ID4gPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgUmVkZmlzaFBrZy9MaWJyYXJ5L0NydExpYi9D cnRMaWIuYw0KPiA+ID4gPiA+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBSZWRmaXNoUGtnL0xpYnJh cnkvQ3J0TGliL0NydExpYi5pbmYNCj4gPiA+ID4gPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgUmVk ZmlzaFBrZy9MaWJyYXJ5L0pzb25MaWIvSnNvbkxpYi5jDQo+ID4gPiA+ID4gPiAgY3JlYXRlIG1v ZGUgMTAwNjQ0IFJlZGZpc2hQa2cvTGlicmFyeS9Kc29uTGliL0pzb25MaWIuaW5mDQo+ID4gPiA+ ID4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IFJlZGZpc2hQa2cvTGlicmFyeS9Kc29uTGliL1JlYWRt ZS5yc3QNCj4gPiA+ID4gPiA+ICBjcmVhdGUgbW9kZSAxNjAwMDAgUmVkZmlzaFBrZy9MaWJyYXJ5 L0pzb25MaWIvamFuc3Nvbg0KPiA+ID4gPiA+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+ID4g PiA+ID4gUmVkZmlzaFBrZy9MaWJyYXJ5L0pzb25MaWIvamFuc3Nvbl9jb25maWcuaA0KPiA+ID4g PiA+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+ID4gPiA+ID4gUmVkZmlzaFBrZy9MaWJyYXJ5 L0pzb25MaWIvamFuc3Nvbl9wcml2YXRlX2NvbmZpZy5oDQo+ID4gPiA+ID4gPiAgY3JlYXRlIG1v ZGUgMTAwNjQ0IFJlZGZpc2hQa2cvTGlicmFyeS9Kc29uTGliL2xvYWQuYw0KPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+IC0tDQo+ID4gPiA+ID4gPiAyLjE3LjENCj4gPiA+ID4NCj4gPg0KDQo=