From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mx.groups.io with SMTP id smtpd.web10.5516.1608703822149834483 for ; Tue, 22 Dec 2020 22:10:22 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=m7AvRYxG; spf=pass (domain: intel.com, ip: 134.134.136.31, mailfrom: michael.d.kinney@intel.com) IronPort-SDR: 3lsVOozWstfeXh7V+0y7KglBwwvCgBMNfPNScynLecsWy+aF3BqY8BTWJ72cAPPAVLKa+7JHM9 6NAZLaXe//KA== X-IronPort-AV: E=McAfee;i="6000,8403,9843"; a="237528258" X-IronPort-AV: E=Sophos;i="5.78,441,1599548400"; d="scan'208";a="237528258" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Dec 2020 22:10:21 -0800 IronPort-SDR: wzF2UxRpYcD4xp3M6khkhIaq7H5Eb8B8HtyQnO4irPJrIN/aPzpBWxS5qSzJtzjnPrjFwxRTG3 7hOOZ/PH5GzQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.78,441,1599548400"; d="scan'208";a="346090651" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga006.jf.intel.com with ESMTP; 22 Dec 2020 22:10:21 -0800 Received: from orsmsx603.amr.corp.intel.com (10.22.229.16) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 22 Dec 2020 22:10:20 -0800 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Tue, 22 Dec 2020 22:10:20 -0800 Received: from NAM04-SN1-obe.outbound.protection.outlook.com (104.47.44.50) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Tue, 22 Dec 2020 22:10:20 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=njp1fjdvh0g++JbRStsKFaPAhPyHhiEkBZ1eqAo4XplevJXpVxkrBfaBRSi3fx3c7Mwwmtttxnczy/Ll+/Igc3ifltzJaBSoH+q7U+ZAMvPr/XO8YzfmhvR+UITC4jbrdhMpMnOF6JklcJL/jbkp6+GgN7dIZdM9YBLRFM6hM/HxCWR9s9A/QvRs3F0Hn6VCsYr3dm3qBwx+dpebbY5sW7nnaXdM+YoXTw5feLyt8lNO+eQmfYvpcKZymh2B3XM2+eWkxljTVEbKRq+hDJoNIKtLz/LZ6QgLBRVSkSJ3w9ebeKu8Q15GTzDBHj73mbsZqnda8L5Yn8m+J1DiTTZJbA== 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=geUxiHXTLSG7vN/mBSB6vGAJZjNN1YnRL1XzPMSbn+c=; b=ZmemIGZ52m3OeYczg/vGbzqiS6l9iAVtwgnXKU140iafFBRqCGlMDam5Pq6JczU7H545jz2WuwHU74JZ9VbozqTYdhpIIOkviTi/ZL7UephM1eb24jK2ApwmkJjK3mrQ9wbwlGajngBf7LJDKO55ZLd0HSpBfo4aq+O9kadqzYpx3uv2IAUiU1pdbbSEJ0vjEAa3VLpblq0a6ItPaJidQJoQ54AShYlEiefxkBSwpXdcdXjKaKfbWNRXRNSzVZYuBv+OQotQdKylspVrnjOGcDtp9USjR47V4B7xe/YYHLFU9tgqqt7epqrD7JovZYPzwMu6fZdwPKIw9hlmuJXVsw== 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=geUxiHXTLSG7vN/mBSB6vGAJZjNN1YnRL1XzPMSbn+c=; b=m7AvRYxGvMe6YRAHPmxHo67Nb8WfSqkB3l3H9EiLkie0jYxDBMkEDBdc97J1vhKoKyIwZAiwVG06iy/TOPhm+JSw6H9HO4JnPqUvlM4twLMdiMdJOfbS1OGtdd7UpR2irWIjitHov8kXs60Y1Htkzs9j6/9fKcwIgsfuoQNEns0= Received: from BL0PR11MB3236.namprd11.prod.outlook.com (2603:10b6:208:60::18) by MN2PR11MB4254.namprd11.prod.outlook.com (2603:10b6:208:18f::29) 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 06:10:17 +0000 Received: from BL0PR11MB3236.namprd11.prod.outlook.com ([fe80::9112:3701:9e1a:3f78]) by BL0PR11MB3236.namprd11.prod.outlook.com ([fe80::9112:3701:9e1a:3f78%6]) with mapi id 15.20.3676.033; Wed, 23 Dec 2020 06:10:17 +0000 From: "Michael D Kinney" To: "Chang, Abner (HPS SW/FW Technologist)" , "devel@edk2.groups.io" , "Kinney, Michael D" 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+e5YmRTCg3N6oAUjyQgACDDDCAAS12sIACG79QgAAbGlA= Date: Wed, 23 Dec 2020 06:10:17 +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: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: hpe.com; dkim=none (message not signed) header.d=none;hpe.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [24.19.191.44] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 8bc5c94a-c591-43f3-a79e-08d8a7096bd6 x-ms-traffictypediagnostic: MN2PR11MB4254: 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: iaU3w12UpLxkuajfE+z+JmU5mYe9AHk3QBivI6wqgGnZrglsY7s+n9bVZo00CiYOfip8AA7qBdtRNZ2d/1bB8aOHN8hllCvfCZQlNrZJV9tQuy7+xvoYnluyGp3/p6htZ3ReFAlDbU5AEps7CXC3cL3QPJyjelwec3eMpLDn+dFUmDStwPrRCionr2OgWbsomjVfZ6sqLDm+MefLHl9ILCZpNbjGm7a/1PTrPXLBxSpNzlZLZw5FrJbgQCp7DZzaYFfsPUoQIusTktoe4uuUw/Ckpgp+R3eNDUTrdczxa1mxSDrHWZs5u6A6e+lY4Mb/idiXSi/BeJj0L5AxxMh5DSEkEmDluNV0W6847dA5D78iKHLWF/rl5UqYQOolvLmF7BPAh+wpWeXQNHuMBpR4QpP129ks0hzj09ARrmA4k9iTqrzhUSX6swO4ddFZGb99x0SM334SKF9JO6nd3X9Vkg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL0PR11MB3236.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(396003)(39860400002)(376002)(346002)(136003)(366004)(83380400001)(26005)(110136005)(54906003)(30864003)(55016002)(66446008)(4326008)(966005)(71200400001)(66476007)(33656002)(64756008)(66556008)(8936002)(19627235002)(296002)(7416002)(8676002)(52536014)(478600001)(186003)(316002)(5660300002)(86362001)(76116006)(7696005)(66946007)(9686003)(2906002)(6506007)(53546011)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?RzlMVW9lWHViZXNWcDJPWEhaRU55ZGFGeGp4cW4yTzFlYmtlOGJGNEtQZklF?= =?utf-8?B?TFRwTUVrRHNwZTNVV2k5dVFqNkkvWjA2azRVSVpIUkVwVnBXMWdDRXhleWE5?= =?utf-8?B?QXZuZUxrUnc1Q1l4MEhGK3FKSzFhL0VPL2puZW4vMURscHBCbVh0QndtTW1I?= =?utf-8?B?MVlRdFRNQjNJUmlJekI1ck5FMlFYbnpvNUpSMjVZYnFla3oyN21vamFPcXZx?= =?utf-8?B?dENuZmlabmtESlljaTZjSHdna1NteU9hOHhUZHo2a0x1cHBSaG0vY1pVVitO?= =?utf-8?B?S1psbHRWYzJVTXNvQWxta29Vam9za3U5NDc5Uzd5cEp6aVBsUHp0MEVXcWp5?= =?utf-8?B?Zi9pcGRMVURPUU9rcFlhUDRBNWFMNklKUms2N0lSQVcrKzlFMlVzN29OaDY3?= =?utf-8?B?RDRDbXdtemc0WVpKSC93bklrZzEvOUlrdWl2bmZrR1RMeEQxRFBjSWlPUUJJ?= =?utf-8?B?Zng2aFN5WjZzVFd2bkV2cnl2ampqRHpYWmZ4VnZ5Nm5zSys1YzJGSGo5NllW?= =?utf-8?B?Y1FMT3EzYmNVTUt0czRrS3o2VzJ3ay9IVnYxYXQ5azNVazFsMzNLdGZ2d2gy?= =?utf-8?B?UmxIS3ZnbVRpMytlUHhKemNkemVldWw0ZlRqM1JjQkRaZU9BL1FVUk51KzNS?= =?utf-8?B?cWJnbWEzTzJIeUtZeHc1WXc5bG5kTnhiTlhiZHNCYnpBaTBrS3l6bDJmTFZ3?= =?utf-8?B?SWNseHhxb1lKOW80MDBRWWhNREFJWkJQVWZOMUVNTHRzTEFQQTBySTZkbnU5?= =?utf-8?B?d3VmUjhMUFRZNmZ6R3RLUkxUNDAwTDExZFgyTkJERXNuV01aTHczZXRVaE1S?= =?utf-8?B?eThLaVNNMnpqRUJMejRjaVJ3WFZxbzV5TkFHYUxsSWx5aEhCT1d0R09KZGFu?= =?utf-8?B?eTM5dDgwcVVIWnlrb2kwUkswVjhZWFhDZ1BnNnZ2eGhkZVRsdVJWU29Sa1lz?= =?utf-8?B?SThjbDR0VnNkdFQ2VFl0UnlCSGRzZkV0UDhNQkErMUVXQkR4ZFRhTDJjQWNP?= =?utf-8?B?UGNrZFQ2aDMxTUVmL3VSSENIdzl3UFkwSS9QajNJKzNQeENuVmNJQzU3YjYr?= =?utf-8?B?czZ4VzE5dmpJUVFkcFJvK3JZcGMrMnVEN09XSzFLWkd4VVFzL2lBOGRNQVlR?= =?utf-8?B?NDBIOHIwL3BiY08yQ0t4b3JSWkl4K1dRMHVWNGs5Wk14S3F3Z3ZCVkRNbUpz?= =?utf-8?B?TWNuWlVnTTd6YXhtOCttcWY5d2R5ZnZtbEZPNGFkbS9pQTE5VE9EWVJ4dzM3?= =?utf-8?B?anZWYXNZeFJDYi9NNys5eEsveVNEekhZcmFPVDNFSXgrSUFiTDA2ZmVkQmZr?= =?utf-8?Q?7313PdTqa/+EA=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BL0PR11MB3236.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8bc5c94a-c591-43f3-a79e-08d8a7096bd6 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Dec 2020 06:10:17.7809 (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: 6o+bHM3E2KMEbotjpyrkdMSfJxfQ94L/ycGunzVKaJkOEhmt9VCUA2U8FdRP13kqzp+VUYhjpr6QzhsEM2N4j8Xgu0cVSUg16s98A6h6Kbc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4254 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 SGkgQWJuZXIsDQoNClJlc3BvbnNlIGJlbG93Lg0KDQpNaWtlDQoNCg0KPiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBDaGFuZywgQWJuZXIgKEhQUyBTVy9GVyBUZWNobm9sb2dp c3QpIDxhYm5lci5jaGFuZ0BocGUuY29tPg0KPiBTZW50OiBUdWVzZGF5LCBEZWNlbWJlciAyMiwg MjAyMCA4OjQwIFBNDQo+IFRvOiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBp bnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiBDYzogU2VhbiBCcm9nYW4gPHNlYW4u YnJvZ2FuQG1pY3Jvc29mdC5jb20+OyBCcmV0IEJhcmtlbGV3IDxCcmV0LkJhcmtlbGV3QG1pY3Jv c29mdC5jb20+OyBBbmRyZXcgRmlzaCA8YWZpc2hAYXBwbGUuY29tPjsNCj4gTGFzemxvIEVyc2Vr IDxsZXJzZWtAcmVkaGF0LmNvbT47IExlaWYgTGluZGhvbG0gPGxlaWZAbnV2aWFpbmMuY29tPjsg TGltaW5nIEdhbyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsgV2FuZywgTmlja2xlDQo+IChI UFMgU1cpIDxuaWNrbGUud2FuZ0BocGUuY29tPjsgTydIYW5sZXksIFBldGVyIChFWEwpIDxwZXRl ci5vaGFubGV5QGhwZS5jb20+DQo+IFN1YmplY3Q6IFJFOiBbUEFUQ0ggdjggMC82XSBqYW5zc29u IGVkazIgcG9ydA0KPiANCj4gDQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ ID4gRnJvbTogS2lubmV5LCBNaWNoYWVsIEQgW21haWx0bzptaWNoYWVsLmQua2lubmV5QGludGVs LmNvbV0NCj4gPiBTZW50OiBXZWRuZXNkYXksIERlY2VtYmVyIDIzLCAyMDIwIDI6MTQgQU0NCj4g PiBUbzogQ2hhbmcsIEFibmVyIChIUFMgU1cvRlcgVGVjaG5vbG9naXN0KSA8YWJuZXIuY2hhbmdA aHBlLmNvbT47DQo+ID4gZGV2ZWxAZWRrMi5ncm91cHMuaW87IEtpbm5leSwgTWljaGFlbCBEIDxt aWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiBDYzogU2VhbiBCcm9nYW4gPHNlYW4uYnJv Z2FuQG1pY3Jvc29mdC5jb20+OyBCcmV0IEJhcmtlbGV3DQo+ID4gPEJyZXQuQmFya2VsZXdAbWlj cm9zb2Z0LmNvbT47IEFuZHJldyBGaXNoIDxhZmlzaEBhcHBsZS5jb20+OyBMYXN6bG8NCj4gPiBF cnNlayA8bGVyc2VrQHJlZGhhdC5jb20+OyBMZWlmIExpbmRob2xtIDxsZWlmQG51dmlhaW5jLmNv bT47IExpbWluZyBHYW8NCj4gPiA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsgV2FuZywgTmlj a2xlIChIUFMgU1cpDQo+ID4gPG5pY2tsZS53YW5nQGhwZS5jb20+OyBPJ0hhbmxleSwgUGV0ZXIg KEVYTCkgPHBldGVyLm9oYW5sZXlAaHBlLmNvbT4NCj4gPiBTdWJqZWN0OiBSRTogW1BBVENIIHY4 IDAvNl0gamFuc3NvbiBlZGsyIHBvcnQNCj4gPg0KPiA+IEhpIEFibmVyLA0KPiA+DQo+ID4gQSBm ZXcgY29tbWVudHMgYmVsb3cuDQo+ID4NCj4gPiBCZXN0IHJlZ2FyZHMsDQo+ID4NCj4gPiBNaWtl DQo+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBDaGFu ZywgQWJuZXIgKEhQUyBTVy9GVyBUZWNobm9sb2dpc3QpIDxhYm5lci5jaGFuZ0BocGUuY29tPg0K PiA+ID4gU2VudDogTW9uZGF5LCBEZWNlbWJlciAyMSwgMjAyMCAxMjoxNyBBTQ0KPiA+ID4gVG86 IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47DQo+ID4gPiBk ZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+ID4gQ2M6IFNlYW4gQnJvZ2FuIDxzZWFuLmJyb2dhbkBt aWNyb3NvZnQuY29tPjsgQnJldCBCYXJrZWxldw0KPiA+ID4gPEJyZXQuQmFya2VsZXdAbWljcm9z b2Z0LmNvbT47IEFuZHJldyBGaXNoIDxhZmlzaEBhcHBsZS5jb20+OyBMYXN6bG8NCj4gPiA+IEVy c2VrIDxsZXJzZWtAcmVkaGF0LmNvbT47IExlaWYgTGluZGhvbG0gPGxlaWZAbnV2aWFpbmMuY29t PjsgTGltaW5nDQo+ID4gPiBHYW8gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IFdhbmcsIE5p Y2tsZSAoSFBTIFNXKQ0KPiA+ID4gPG5pY2tsZS53YW5nQGhwZS5jb20+OyBPJ0hhbmxleSwgUGV0 ZXIgKEVYTCkNCj4gPiA8cGV0ZXIub2hhbmxleUBocGUuY29tPg0KPiA+ID4gU3ViamVjdDogUkU6 IFtQQVRDSCB2OCAwLzZdIGphbnNzb24gZWRrMiBwb3J0DQo+ID4gPg0KPiA+ID4gTWlrZSwgcmVz cG9uc2UgaW4gYmVsb3cuIEFsc28gdjkgaXMgc2VudC4NCj4gPiA+DQo+ID4gPiBUaGFua3MgZm9y IHJldmlldyB0aGlzIGluIGRldGFpbC4NCj4gPiA+IEFibmVyDQo+ID4gPg0KPiA+ID4gPiAtLS0t LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiBGcm9tOiBLaW5uZXksIE1pY2hhZWwgRCBb bWFpbHRvOm1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tXQ0KPiA+ID4gPiBTZW50OiBNb25kYXks IERlY2VtYmVyIDIxLCAyMDIwIDM6NDMgQU0NCj4gPiA+ID4gVG86IENoYW5nLCBBYm5lciAoSFBT IFNXL0ZXIFRlY2hub2xvZ2lzdCkgPGFibmVyLmNoYW5nQGhwZS5jb20+Ow0KPiA+ID4gPiBkZXZl bEBlZGsyLmdyb3Vwcy5pbzsgS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50 ZWwuY29tPg0KPiA+ID4gPiBDYzogU2VhbiBCcm9nYW4gPHNlYW4uYnJvZ2FuQG1pY3Jvc29mdC5j b20+OyBCcmV0IEJhcmtlbGV3DQo+ID4gPiA+IDxCcmV0LkJhcmtlbGV3QG1pY3Jvc29mdC5jb20+ OyBBbmRyZXcgRmlzaCA8YWZpc2hAYXBwbGUuY29tPjsNCj4gPiBMYXN6bG8NCj4gPiA+ID4gRXJz ZWsgPGxlcnNla0ByZWRoYXQuY29tPjsgTGVpZiBMaW5kaG9sbSA8bGVpZkBudXZpYWluYy5jb20+ OyBMaW1pbmcNCj4gPiA+ID4gR2FvIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+OyBXYW5nLCBO aWNrbGUgKEhQUyBTVykNCj4gPiA+ID4gPG5pY2tsZS53YW5nQGhwZS5jb20+OyBPJ0hhbmxleSwg UGV0ZXIgKEVYTCkNCj4gPiA8cGV0ZXIub2hhbmxleUBocGUuY29tPg0KPiA+ID4gPiBTdWJqZWN0 OiBSRTogW1BBVENIIHY4IDAvNl0gamFuc3NvbiBlZGsyIHBvcnQNCj4gPiA+ID4NCj4gPiA+ID4g SGkgQWJuZXIsDQo+ID4gPiA+DQo+ID4gPiA+IFRoZSBpbmNsdWRlIHBhdGggaW4gdGhlIFtJbmNs dWRlLkNvbW1vbi5Qcml2YXRlXSBzZWN0aW9uIHNob3VsZCBub3QNCj4gPiA+ID4gYmUgaW4gdGhl IHNhbWUgZmlsZSBwYXRoIGFzIHRoZSBbSW5jbHVkZV0gc2VjdGlvbi4gIFRoaXMgYWxsb3dzDQo+ ID4gPiA+IHByaXZhdGUgaW5jbHVkZSBmaWxlcyB0byBiZSBhY2Nlc3NlZC4NCj4gPiA+ID4NCj4g PiA+ID4gSW5zdGVhZCwgeW91IHNob3VsZCBjcmVhdGUgYSBuZXcgdG9wIGxldmVsIHBhY2thZ2Ug ZGlyZWN0b3J5IGNhbGxlZA0KPiA+ID4gPiBQcml2YXRlSW5jbHVkZSBhbmQgcHV0IGFsbCBub24t cHVibGljIGluY2x1ZGUgY29udGVudCBpbiB0aGF0DQo+ID4gPiA+IGRpcmVjdG9yeS4gIFRoZSBV bml0VGVzdEZyYW1ld29ya1BrZyBpcyBhIGdvb2QgcmVmZXJlbmNlIHRoYXQNCj4gPiA+ID4gZGVt b25zdHJhdGVzIHRoaXMgZGVzaWduIHBhdHRlcm4uDQo+ID4gPiBZZXMsIHRoaXMgbG9va3MgYmV0 dGVyLiBBbGwgQ3J0IGhlYWRlciBmaWxlcyBhbmQgQ3J0TGliLmggd2lsbCBiZSBtb3ZlZCB0bw0K PiA+IHVuZGVyIFByaXZhdGVJbmNsdWRlLg0KPiA+ID4gPg0KPiA+ID4gPiBUaGUgbGlicmFyeSBj bGFzcyBuYW1lIENydExpYiBpcyB2ZXJ5IGdlbmVyaWMgYW5kIHRoZSBsaWJyYXJ5IGNsYXNzDQo+ ID4gPiA+IGlzIGluIHRoZSBwdWJsaWMgaW5jbHVkZXMgc28gaXQgaXMgZXhwb3J0ZWQgYXMgYSBw dWJsaWMgaW50ZXJmYWNlIGZyb20gdGhlDQo+ID4gUmVkZmlzaFBrZy4NCj4gPiA+ID4gVGhpcyBD cnRMaWIgaW1wbGVtZW50YXRpb24gYXBwZWFycyB0byBiZSB0dW5lZCB0byBzdXBwb3J0IHRoZQ0K PiA+ID4gPiBkZXBlbmRlbmNpZXMgZm9yIHRoZSBqYW5zc29uIHN1Ym1vZHVsZS4gIEkgcmVjb21t ZW5kIGNoYW5naW5nIHRoZQ0KPiA+ID4gPiBsaWJyYXJ5IGNsYXNzIG5hbWUgYW5kIHRoZSBsaWJy YXJ5IGluc3RhbmNlIG5hbWUgc28gaXQgaXMgY2xlYXIgdGhhdA0KPiA+ID4gPiB0aGlzIENydExp YiBpcyBvbmx5IGZvciBqYW5zc29uLg0KPiA+ID4gPiBQZXJoYXBzICdKYW5zc29uQ3J0TGliJy4N Cj4gPiA+IFRoZSBDcnRMaWIgaXMgbm90IHVzZWQgYnkgamFubnNvbiBsaWIsIGxpYnJlZGZpc2gg YXMgd2VsbA0KPiA+ID4gKGh0dHBzOi8vZ2l0aHViLmNvbS9ETVRGL2xpYnJlZGZpc2gpLiBTbyBK YW5zc29uQ3J0TGliIGlzIG5vdCBhIGdvb2QNCj4gPiBuYW1pbmcsIHdpbGwga2VlcCB0aGF0IGFz IGl0Lg0KPiA+ID4NCj4gPiA+ID5BbHNvLCBkb2VzIHRoaXMgbGlicmFyeSBjbGFzcyAoQ3J0TGli LmgpIG5lZWQgdG8gYmUgIGV4cG9ydGVkIGZyb20NCj4gPiA+ID5SZWRmaXNoUGtnIGFzIGEgcHVi bGljIGludGVyZmFjZT8NCj4gPiA+IE5vLCBpdCB3aWxsIGJlIG1vdmVkIHRvIHVuZGVyIFByaXZh dGVJbmNsdWRlLg0KPiA+ID4NCj4gPiA+IElmIENydExpYi5oIGlzIGRlZmluZWQgYXMgYSBwcml2 YXRlIGxpYnJhcnkgYW5kIENydExpYi5oIGlzIGluDQo+ID4gPiBQcml2YXRlSW5jbHVkZSB3aGlj aCBpcyBub3QgZXhwb3NlZCB0byBvdGhlciBwYWNrYWdlcywgdGhlbiB3aHkgZG8gd2UNCj4gPiBj YXJlIGFib3V0IHRoZSBuYW1pbmcgb2YgQ3J0TGliIGlzIHRvbyBnZW5lcmljPyBXaGljaCBpcyB0 aGUgcHJpdmF0ZSBsaWJyYXJ5DQo+ID4gdW5kZXIgUmVkZmlzaFBrZy4NCj4gPiA+IE1vdmUgdGhv c2UgaGVhZGVyIGZpbGVzIHRvIHVuZGVyIFByaXZhdGVJbmNsdWRlIHNlZW1zIGNsZWFyIHRvIHBl b3BsZQ0KPiA+ID4gdGhhdCBDcnRMaWIgaXMgb25seSBmb3IgUmVkZmlzaFBrZy4gSSB0aGluayB3 ZSBkb27igJl0IGhhdmUgdG8gY2hhbmdlIHRoZQ0KPiA+IG5hbWluZyBpbiB0aGlzIGNhc2UuDQo+ ID4NCj4gPiBJbiBnZW5lcmFsIEkgYWdyZWUsIGJ1dCB0aGVyZSBpcyBvbmUgcGxhY2Ugd2hlcmUg dGhlIGxpYiBtYXBwaW5nIGhhcyB3aWRlcg0KPiA+IHNjb3BlLCBhbmQgdGhhdCBpcyBpbiBhIHBs YXRmb3JtIERTQyBmaWxlLiAgVGhlIGxpYiBjbGFzcyBuYW1lIENydExpYiBoYXMgdG8gYmUNCj4g PiBsaXN0ZWQgaW4gdGhlIERTQyBmaWxlLiAgSWYgbW9yZSB0aGFuIG9uZSBwYWNrYWdlIGRlZmlu ZXMgYSBsaWJyYXJ5IGNsYXNzIGNhbGxlZA0KPiA+IENydExpYiwgdGhlbiB0aGUgbGFzdCBtYXBw aW5nIHVzZWQgd2lsbCBiZSB1c2VkIGZvciBhbGwgbW9kdWxlcyBpZiBpdCBpcyBsaXN0ZWQgaW4N Cj4gPiB0aGUgW0xpYnJhcnlDbGFzc2VzXSBzZWN0aW9uIG9mIHRoZSBEU0MgZmlsZS4gIFRoZSBv bmx5IHdhcyB0byBoYW5kbGUgdGhpcyB0eXBlDQo+ID4gb2YgbmFtZSBjb2xsaXNpb24gaXMgdG8g dXNlIGEgbW9kdWxlIHNjb3BlZCBsaWJyYXJ5IG1hcHBpbmcgaW4gdGhlDQo+ID4gPExpYnJhcnlD bGFzc2VzPiBzZWN0aW9uIG9mIGVhY2ggaW5kaXZpZHVhbCBtb2R1bGUgdGhhdCB1c2VzIGEgQ3J0 TGliLiAgSSBhbQ0KPiA+IG9ubHkgdHJ5aW5nIHRvIGF2b2lkIHRoZSBwb3RlbnRpYWwgZm9yIGZ1 dHVyZSBuYW1lIGNvbGxpc2lvbnMgZm9yIGEgbGlicmFyeQ0KPiA+IGNsYXNzL2luc3RhbmNlIHRo YXQgaXMgc3BlY2lmaWMgdG8gdGhlIEpTT04gdXNlIGNhc2UuDQo+ID4NCj4gPiBXZSByZWNvZ25p emUgdGhhdCBzZXZlcmFsIG1vZHVsZXMgaW4gZWRrMiBoYXZlIHRoaXMgdHlwZSBvZiBnYXNrZXQg YmV0d2Vlbg0KPiA+IGFuIEVESyBJSSBlbnYgYW5kIGEgc3RhbmRhcmQgQyBsaWIuICBXZSBtYXkg ZmluZCBhIHdlIHRvIGltcGxlbWVudCBhIG1vcmUNCj4gPiBnZW5lcmljIGdhc2tldCBhbmQgcmV0 aXJlIHRoZSB1c2Ugb2YgdGhlIGltcGxlbWVudGF0aW9uIHNwZWNpZmljIG9uZXMuICBUaGlzIGlz DQo+ID4gYW5vdGhlciByZWFzb24gdG8gdXNlIGFuIGltcGxlbWVudGF0aW9uIHNwZWNpZmljIG5h bWUgaW4gdGhpcyB1c2UgY2FzZSBhbmQNCj4gPiBiZSBhYmxlIHRvIGludHJvZHVjZSBhIG1vcmUg Z2VuZXJpYyBuYW1lIGluIHRoZSBmdXR1cmUuDQo+ID4NCj4gPiBBbm90aGVyIGNvbW1lbnQgYmVs b3cgdG8gc2VlIGlmIHRoZXJlIGlzIGEgd2F5IHRvIGF2b2lkIGludHJvZHVjaW5nIGEgQ3J0TGli DQo+ID4gY2xhc3MuDQo+ID4NCj4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ICogUmVkZmlzaFBrZy9J bmNsdWRlL0xpYnJhcnkvQ3J0TGliLmgNCj4gPiA+ID4gICArIFJlbW92ZSByZWZlcmVuY2UgdG8g TURFX0NQVV9JQTY0LiAgVGhpcyBoYXMgYmVlbiByZXRpcmVkIGZyb20NCj4gPiA+ID4gdGhlDQo+ ID4gPiA+IGVkazIgcmVwby4NCj4gPiA+IE9rLg0KPiA+ID4gPiAgICsgSSBkbyBzZWUgb25lIHJl bWFpbmluZyByZWZlcmVuY2UgdG8gdGhpcyBpbiB0aGUgQ3J5cHRvUGtnIHRoYXQgbmVlZCB0bw0K PiA+IGJlDQo+ID4gPiA+ICAgICByZW1vdmVkLg0KPiA+ID4gPg0KPiA+ID4gPiAqIFJlZGZpc2hQ a2cvSW5jbHVkZS9MaWJyYXJ5L0pzb25MaWIuaA0KPiA+ID4gPiAgICsgU29tZSBvZiB0aGUgZnVu Y3Rpb24gZGVzY3JpcHRpb25zIGFyZSB2ZXJ5IGJyaWVmIGFuZCBJIGNhbiBub3QgdGVsbA0KPiA+ ID4gPiAgICAgaG93IHRvIHVzZSB0aGUgc2VydmljZSBmcm9tIHRoZSBkZXNjcmlwdGlvbiBhbmQg bW9yZSBpbXBvcnRhbnRseSwgSQ0KPiA+ID4gPiAgICAgd291bGQgbm90IGtub3cgaG93IHRvIHdy aXRlIGEgdW5pdCB0ZXN0IHRvIHZlcmlmeSB0aGUgZXhwZWN0ZWQNCj4gPiBiZWhhdmlvci4NCj4g PiA+ID4gICAgIFNpbmNlIHRoZXNlIGFyZSBhIHNldCBvZiBwdWJsaWMgQVBJcyBmcm9tIHRoaXMg cGFja2FnZSB0aGF0IHlvdQ0KPiA+ID4gPiAgICAgZXhwZWN0IG1vZHVsZXMvbGlicyBmcm9tIG91 dHNpZGUgb2YgUmVkZmlzaFBrZyB0byB1c2UsIHRoZW4gYWxsIG9mDQo+ID4gPiA+ICAgICB0aGVz ZSBwdWJsaWMgQVBJcyBtdXN0IGJlIGZ1bGx5IGRvY3VtZW50ZWQuDQo+ID4gPiBNb3N0IG9mIHRo ZSBBUEkgaW4gSnNvbkxpYiBhcmUgd3JhcHBlcnMgb2YgbmF0aXZlIGphbnNzb24gQVBJcy4gV2Ug Y2FuDQo+ID4gPiBtZW50aW9uIHRoZSBVUkwgdG8gamFuc3NvbiBBUEkgcmVmZXJlbmNlIGRvY3Vt ZW50IGluIGZpbGUgaGVhZGVyLg0KPiA+ID4gaHR0cHM6Ly91cmxkZWZlbnNlLnByb29mcG9pbnQu Y29tL3YyL3VybD91PWh0dHBzLQ0KPiA+IDNBX19qYW5zc29uLnJlYWR0aGVkbw0KPiA+ID4NCj4g PiBjcy5pb19lbl8yLjEzX2luZGV4Lmh0bWwmZD1Ed0lHYVEmYz1DNWI4elJRTzFtaUdtQmVWWjJM RldnJnI9Xw0KPiA+IFNONkZaQk40DQo+ID4gPiBWZ2k0VWxrc2t6NnFVM05ZUk8wM25IcDlQN1o1 cTU5QTNFJm09dmQtDQo+ID4gdVB6ODY0Y3pvWUE1QzdZYVBncVhmZFBqdjRjNWtCDQo+ID4gPiB6 VHdWNjBOdk5RJnM9YWNWek4zeDR5TkQwamtnNDRiSjQ4Wmt5UHl1Z2p3c1l2VUdkRDRuSkw3NCZl PQ0KPiA+ID4gSSB3aWxsIHJldmlldyBhbGwgZnVuY3Rpb24gaGVhZGVyIGFnYWluLCAgcGxlYXNl IGNoZWNrIHY5IHBhdGNoIGxhdGVyLg0KPiA+ID4NCj4gPiA+ID4gICArIEFyZSB0aGVyZSBhbnkg b2YgdGhlc2UgQVBJcyB0aGF0IGFyZSBub3QgcmVhbGx5IG5lZWRlZCBieSBtb2R1bGVzL2xpYnMN Cj4gPiA+ID4gICAgIG91dHNpZGUgdGhlIFJlZGZpc2hQa2c/ICBJdCB3b3VsZCBiZSBiZXR0ZXIg dG8gcmVtb3ZlIEFQSXMgdGhhdCBhcmUNCj4gPiA+ID4gICAgIG5vdCBuZWVkZWQgb3V0c2lkZSBS ZWRmaXNoUGtnIGZyb20gdGhpcyBwdWJsaWMgaW5jbHVkZSBmaWxlLg0KPiA+ID4gPiAgICsgQSBj b3VwbGUgZXhhbXBsZXMgdGhhdCBzdG9vZCBvdXQgYXJlOg0KPiA+ID4gPiAgICAgSnNvbkRlY3Jl YXNlUmVmZXJlbmNlKCkNCj4gPiA+ID4gICAgIEpzb25JbmNyZWFzZVJlZmVyZW5jZSgpDQo+ID4g PiA+ICAgICBKc29uT2JqZWN0SXRlcmF0b3IoKQ0KPiA+ID4gPiAgICAgSnNvbk9iamVjdEl0ZXJh dG9yVmFsdWUoKQ0KPiA+ID4gPiAgICAgSnNvbk9iamVjdEl0ZXJhdG9yTmV4dCgpDQo+ID4gPiBU aGUgbmF0aXZlIGphbnNzb24gQVBJcyBvZiBhbGwgYWJvdmUgd3JhcHBlcnMgYXJlIHVzZWQgaW4g bGlicmVkZmlzaC4NCj4gPiA+IFNvIHRoYXQgaXMgdGhlIHBvdGVudGlhbCB1c2UgY2FzZSBmb3Ig b3RoZXIgSlNPTiBhcHBsaWNhdGlvbnMuDQo+ID4NCj4gPiBDYW4geW91IHByb3ZpZGUgYSBwb2lu dGVyIHRvIGFuIGV4YW1wbGUgb2YgdGhpcyB1c2UgY2FzZT8NCj4gPg0KPiA+IEkgYW0gdHJ5aW5n IHRvIG1ha2Ugc3VyZSB3ZSBhcmUgZG9pbmcgdGhlIHJpZ2h0IGRlc2lnbiBvZiBSZWRmaXNoUGtn IHdpdGgNCj4gPiByZXNwZWN0IHRvIENydExpYiBmb3IgdGhpcyB1c2UgY2FzZS4gIEFyZSB0aGVz ZSBhcmUgSlNPTiBhcHBzIHRoYXQgZG8gbm90IHVzZQ0KPiA+IEpzb25MaWIsIGJ1dCBhcmUgZXhw ZWN0ZWQgdG8gYnVpbGQgaW4gYW4gRURLIElJIGJ1aWxkIGVudmlyb25tZW50PyAgV291bGQNCj4g PiB0aGVzZSBKU09OIGFwcHMgcmVxdWlyZSBtb3JlIHN0YW5kYXJkIEMgbGliIHNlcnZpY2VzIHRo YW4gdGhlIENydExpYiB1c2VkIHRvDQo+ID4gYnVpbGQgSnNvbkxpYj8gIFdoZXJlIHdvdWxkIHRo b3NlIGFkZGl0aW9uYWwgQyBsaWIgc2VydmljZXMgY29tZSBmcm9tPw0KPiA+DQo+ID4gVGhlcmUg aXMgYSBzdGFuZGFyZCBDIGxpYiBpbiBlZGsyLWxpYmMuICBXb3VsZCB0aGF0IGJlIHJlcXVpcmVk IHRvIGJ1aWxkIHRoZQ0KPiA+IEpTT04gYXBwcy4NCj4gPg0KPiA+IEluIG90aGVyIHVzZXMgb2Yg c3VibW9kdWxlcyB3aXRoIEMgbGliIGRlcGVuZGVuY2llcywgYSBuZXcgQ3J0TGliIGxpa2UgbGli DQo+ID4gY2xhc3Mgd2FzIG5vdCBhZGRlZCBhbmQgaW5zdGVhZCB0aGUgc3VwcG9ydCB3YXMgYWRk ZWQgZGlyZWN0bHkgdG8gdGhlIEVESyBJSQ0KPiA+IHdyYXBwZXIgQVBJcy4gU29tZSBleGFtcGxl cyBhcmU6DQo+ID4gICAqIE1kZU1vZHVsZVBrZ1xMaWJyYXJ5XEJyb3RsaUN1c3RvbURlY29tcHJl c3NMaWINCj4gPiAgICogTWRlTW9kdWxlUGtnXFVuaXZlcnNhbFxSZWd1bGFyRXhwcmVzc2lvbkR4 ZQ0KPiA+DQo+ID4gSWYgdGhlcmUgYXJlIHVzZSBjYXNlcyB3aGVyZSB0aGUgQ3J0TGliIHdpbGwg YmUgYWRkZWQgdG8gYW4gSU5GIG91dHNpZGUgdGhlDQo+ID4gUmVkZmlzaFBrZywgdGhlbiBJIHN0 aWxsIHRoaW5rIHRoZSBuYW1lIG5lZWRzIHRvIGJlIGNoYW5nZWQgdG8gYmUgc3BlY2lmaWMgdG8N Cj4gPiB0aGUgSlNPTiB1c2UgY2FzZS4NCj4gQ3J0TGliIHNob3VsZCBub3QgYmUgYWRkZWQgdG8g SU5GIG91dHNpZGUgUmVkZmlzaFBrZywgYnV0IGl0IHdpbGwgYmUgYWRkZWQgdG8gcGxhdGZvcm0g RFNDIGZpbGUuDQo+ID4NCj4gPiBJZiB0aGUgdXNlIG9mIENydExpYiBpcyBvbmx5IHdpdGhpbiB0 aGUgUmVkZmlzaFBrZywgdGhlbiB0aGUgTGlicmFyeSBDbGFzcyBjYW4gYmUNCj4gPiBkZWNsYXJl ZCBpbiBhIFtMaWJyYXJ5Q2xhc3Nlcy5Db21tb24uUHJpdmF0ZV0gc2VjdGlvbiBvZiB0aGUgREVD IGZpbGUuICBTZWUNCj4gPiBVbml0VGVzdEZyYW1ld29ya1BrZyBmb3IgZXhhbXBsZXMNCj4gQmVj YXVzZSBDcnRMaWIsIEpzb25MaWIgYW5kIG90aGVyIFJlZGZpc2hQa2cgbW9kdWxlcyB3aWxsIGJl IGluY2x1ZGVkIGluIG90aGVyIHBhY2thZ2UgZHNjIGZpbGUgKGUuZy4gRW11bGF0b3JQa2cpLg0K PiBXaGF0IGlmIGluIEVtdWxhdG9yUGtnIG9uZSBDcnRMaWIgbGlicmFyeWNsYXNzIG1hcHMgdG8g dGhlIHByaXZhdGUgb25lIHVuZGVyIFJlZGZpc2hQa2csIGJ1dCBhbm90aGVyIHdpdGggdGhlIHNh bWUgbmFtZSBpcw0KPiB0aGUgcHVibGljIGxpYnJhcnkgcHJvdmlkZWQgYnkgb3RoZXIgcGFja2Fn ZSAoZS5nLiBNZGVNb2R1bGVQa2cpIGFuZCB1c2VkIGJ5IG1vZHVsZXMgb3RoZXIgdGhhbiBSZWRm aXNoUGtnPw0KPiBJcyBlZGsyIGJ1aWxkIHRvb2wgdGhhdCBzbWFydCB0byBsaW5rIHRoZSBwcml2 YXRlIENydExpYiBmb3IgUmVkZmlzaFBrZyBtb2R1bGVzIGFuZCBhbGwgb3RoZXIgbm9uIFJlZGZp c2hQa2cgbW9kdWxlcyBhcmUNCj4gbGlua2VkIHdpdGggdGhlIHB1YmxpYyBvbmU/DQo+IA0KPiBB Ym5lcg0KPiANCg0KTm8uICBOb3QgdGhhdCBzbWFydC4NCg0KVGhlcmUgYXJlIGdsb2JhbCBsaWIg Y2xhc3MgLT4gbGliIGluc3RhbmNlIG1hcHBpbmcgaW4gW0xpYnJhcnlDbGFzc2VzXSBzZWN0aW9u cyBvZiBEU0MgZmlsZXMuICBJZiB0aGUgc2FtZSBsaWIgY2xhc3MNCmlzIGxpc3RlZCBtb3JlIHRo YW4gb25jZSwgdGhlbiB0aGUgbGFzdCBtYXBwaW5nIHdpbnMuDQoNCklmIGEgbW9kdWxlIHNjb3Bl ZCA8TGlicmFyeUNsYXNzZXM+IHNlY3Rpb24gaXMgdXNlZCwgdGhlbiB0aGVuIGxhc3QgbWFwcGlu ZyBpbiB0aGUgc2NvcGUgb2YgdGhhdCBtb2R1bGUgd2lucy4NCg0KSWYgdGhlIHNhbWUgbGliIGNs YXNzIG5hbWUgaXMgZGVjbGFyZWQgYnkgbW9yZSB0aGFuIG9uZSBwYWNrYWdlIHVzZWQgaW4gYSBw bGF0Zm9ybSBEU0MsIHRoZW4gdGhlIG9ubHkNCnJlbWVkaWF0aW9uIGlzIHRvIHJlbW92ZSB1c2Ug b2YgdGhlIGdsb2JhbCBbTGlicmFyeUNsYXNzZXNdIHNlY3Rpb24gYW5kIHVzZSBhIG1vZHVsZSBz Y29wZSA8TGlicmFyeUNsYXNzZXM+DQpzZWN0aW9uIGluIGV2ZXJ5IG1vZHVsZSB0aGF0IGRlcGVu ZHMgb24gdGhhdCBsaWIgY2xhc3MgbmFtZS4NCg0KPiA+DQo+ID4gPg0KPiA+ID4gPiAgICsgSnNv bkR1bXBTdHJpbmcoKQ0KPiA+ID4gPiAgICAgZnVuYyBoZWFkZXIgcGFyYW1zIGRvIG5vdCBtYXRj aCBmdW5jIHByb3RvdHlwZQ0KPiA+ID4gPiAgICAgRG9lcyBub3QgZGVzY3JpYmUgd2hvIGFsbG9j YXRlcyB0aGUgcmV0dXJuIGJ1ZmZlciBhbmQgd2hvDQo+ID4gPiA+ICAgICBpcyByZXNwb25zaWJs ZSBmb3IgZnJlZWluZyB0aGUgYnVmZmVyIHJldHVybmVkLg0KPiA+ID4gPiAgICAgV2hhdCBkbyBG bGFncyBkbz8gIFdoYXQgaXMgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzDQo+ID4gPiA+ICAg ICBmdW5jdGlvbiBhbmQgSnNvblRvVGV4dCgpPw0KPiA+ID4gSW4gSnNvblRvVGV4dCwgaXQgb25s eSBjb252ZXJ0cyBKU09OIGFycmF5IGFuZCBvYmplY3QgdG8gdGV4dC4gV2UNCj4gPiA+IGNvdWxk IGp1c3QgcmVtb3ZlIHRoaXMgZm9yIG5vdyBiZWNhdXNlIEkgZG9u4oCZdCByZWFsbHkgcmVtZW1i ZXIgdGhlIHJlYXNvbg0KPiA+IHRvIGNyZWF0ZSB0aGlzIGZ1bmN0aW9uLCBpdCBoYXMgYmVlbiBh IHdoaWxlLiBTZWVtcyB0byBtZSBpdCBpcyBmaW5lIHRvIHJlbW92ZQ0KPiA+IHRoaXMgZnVuY3Rp b24uDQo+ID4gPg0KPiA+ID4gPiAgICsgSnNvbkxvYWRCdWZmZXIoKSAtIEVycm9yIHBhcmFtIGRl c2NyaXB0aW9uIG1pc3NpbmcNCj4gPiA+ID4gICArIEpzb25BcnJheUdldFZhbHVlKCkgZG9lcyBu b3QgZGVzY3JpYmUgdGhlIGNvbmRpdGlvbnMgTlVMTA0KPiA+ID4gPiAgICAgaXMgcmV0dXJuZWQu DQo+ID4gPiA+ICAgKyBKc29uT2JqZWN0R2V0S2V5cygpLiAgUmV0dXJuIHR5cGUgaXMgQ0hBUjgq Ki4gIFdoYXQNCj4gPiA+ID4gICAgIGZ1bmN0aW9uIG5lZWQgdG8gYmUgY2FsbGVkIHRvIGZyZWUg dGhlIGFycmF5Pw0KPiA+ID4gQWxsIGFib3ZlIGFkZHJlc3NlZC4NCj4gPiA+DQo+ID4gPiA+ICAg KyBKc29uVmFsdWVHZXRBc2NpaVN0cmluZygpIGFuZCBKc29uVmFsdWVHZXRVbmljb2RlU3RyaW5n KCkNCj4gPiA+ID4gICAgIGFyZSBhc3ltbWV0cmljLiAgVGhlIEFzY2lpIG9uZSBzdGF0ZXMgdGhh dCBjaGFuZ2Ugd2lsbA0KPiA+ID4gPiAgICAgbW9kaWZ5IHRoZSBvcmlnaW5hbCBzdHJpbmcuICBU aGUgVW5pY29kZSBvbmUgc2F5cyB0aGF0IHRoZQ0KPiA+ID4gPiAgICAgY2FsbGVyIG5lZWRzIHRv IGZyZWUgdGhlIHJldHVybmVkIHN0cmluZy4gIEFueSByZWFzb24gd2UNCj4gPiA+ID4gICAgIGNh biBub3QgbWFrZSB0aGVtIHN5bW1ldHJpYz8NCj4gPiA+IEphbnNzb24gZG9lc24ndCBzdXBwb3J0 IFVuaWNvZGUgc3RyaW5nLiBUaGUgbWVtb3J5IG9mIHRoZSB1bmljb2RlDQo+ID4gPiBzdHJpbmcg cmV0dXJuZWQgYnkgSnNvblZhbHVlR2V0VW5pY29kZVN0cmluZyBJcyBhbGxvY2F0ZWQgYnkNCj4g PiBVVEY4U3RyVG9VQ1MyKCkuDQo+ID4gPiAgPiBBbHNvLCBpZiBBc2NpaSBvbmUgc2hvdWxkDQo+ ID4gPiA+ICAgICBub3QgYmUgbW9kaWZpZWQsIHdoeSBpc27igJl0IHRoZSByZXR1cm4gdHlwZSBD T05TVD8NCj4gPiA+IFllcy4gd2lsbCBkbyB0aGF0Lg0KPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4g KiBSZWRmaXNoUGtnL0xpYnJhcnkvQmFzZVVjczJVdGY4TGliL0Jhc2VVY3MyVXRmOExpYi5pbmYN Cj4gPiA+ID4gICArIENoYW5nZSBbU291cmNlcy5jb21tb25dIHRvIFtTb3VyY2VzXQ0KPiA+ID4g ZG9uZQ0KPiA+ID4gPiAqIFJlZGZpc2hQa2cvTGlicmFyeS9DcnRMaWIvQ3J0TGliLmluZg0KPiA+ ID4gPiAgICsgRG9lcyB0aGlzIGxpYiBpbnN0YW5jZSByZWFsbHkgZGVwZW5kIG9uIE1kZU1vZHVs ZVBrZz8NCj4gPiA+IFllcywgU29ydExpYg0KPiA+ID4gPiAgICsgSGF2ZSB5b3UgcmV2aWV3ZWQg dGhlIG1vZHVsZSB0eXBlcyB0aGlzIGxpYiBpbnN0YW5jZSBpcw0KPiA+ID4gPiAgICAgY29tcGF0 aWJsZSB3aXRoPyAgV2h5IGRvZXMgaXQgbmVlZCB0byBzdXBwb3J0IERYRV9DT1JFPw0KPiA+ID4g PiAgICAgQXJlIHRoZWlyIEpzb25MaWIgdXNlIGNhc2VzIGZvciBEWEVfUlVOVElNRSBhbmQgU01N IGRyaXZlcnM/DQo+ID4gPiA+ICAgICBJZiB0aGVyZSBhcmUgU01NIHVzZSBjYXNlcywgdGhlbiB3 aHkgaXMgTU0gZXhjbHVkZWQ/DQo+ID4gPiBXaWxsIGp1c3Qga2VlcCBEWEVfRFJWRVIsIFVFRklf QVBQTElDQVRJT04gYW5kIFVFRklfRFJJVkVSLiBUaGVzZQ0KPiA+IGFyZQ0KPiA+ID4gbW9kdWxl IHR5cGVzIGhhdmUgcG90ZW50aWFsIHVzZSBjYXNlcyBJIGNhbiB0aGluayBvZiBub3cuDQo+ID4g PiA+DQo+ID4gPiA+ICogUmVkZmlzaFBrZy9MaWJyYXJ5L0pzb25MaWINCj4gPiA+ID4gICArIFJl YWRtZS5yc3Qgc3RpbGwgaGFzIHJlZmVyZW5jZXMgdG8gSmFuc3Nvbkpzb25MaWJNYXBwaW5nLmgN Cj4gPiA+IGRvbmUNCj4gPiA+ID4gICArIEhhdmUgeW91IHJldmlld2VkIHRoZSBtb2R1bGUgdHlw ZXMgdGhpcyBsaWIgaW5zdGFuY2UgaXMNCj4gPiA+ID4gICAgIGNvbXBhdGlibGUgd2l0aD8gIFdo eSBkb2VzIGl0IG5lZWQgdG8gc3VwcG9ydCBEWEVfQ09SRT8NCj4gPiA+ID4gICAgIEFyZSB0aGVp ciBKc29uTGliIHVzZSBjYXNlcyBmb3IgRFhFX1JVTlRJTUUgYW5kIFNNTSBkcml2ZXJzPw0KPiA+ ID4gPiAgICAgSWYgdGhlcmUgYXJlIFNNTSB1c2UgY2FzZXMsIHRoZW4gd2h5IGlzIE1NIGV4Y2x1 ZGVkPw0KPiA+ID4gQW5zd2VyZWQgYWJvdmUNCj4gPiA+ID4gICArIEpzb25MaWIuaW5mIGhhcyBh IFtCdWlsZE9wdGlvbnNdIHNlY3Rpb24gdGhhdCBkaXNhYmxlcyBzb21lIHdhcm5pbmdzDQo+ID4g dGhhdA0KPiA+ID4gPiAgICAgbWFrZSBtZSBjb25jZXJuZWQgdGhhdCB0aGlzIGxpYnJhcnkgbWF5 IGhhdmUgc29tZSBpc3N1ZXMgd2l0aA0KPiA+ID4gPiAzMi1iaXQgYnVpbGRzLg0KPiA+ID4gPiAg ICAgSGF2ZSB5b3UgZnVsbHkgdmFsaWRhdGVkIGFsbCAzMi1iaXQgQ1BVIGJ1aWxkcyBhbmQgdmFs aWRhdGVkIHRoZQ0KPiA+IGZ1bmN0aW9uYWxpdHkNCj4gPiA+ID4gICAgIG9mIGFsbCBzZXJ2aWNl cyBmcm9tIHRoZSBKc29uTGliIGZvciBhbGwgcmFuZ2VzIG9mIGlucHV0IHZhbHVlcz8NCj4gPiA+ IFllcywgSUEzMiBidWlsZCBpcyB2YWxpZGF0ZWQuIEJ1dCBub3QgdmFsaWRhdGluZyBvbiB0aGUN Cj4gPiA+IGZ1bmN0aW9uYWxpdGllcyBJQTMyLiBJIGRvbid0IGhhdmUgdGhhdCB1c2UgY2FzZSwg d2UgY2FuIGdldCBiYWNrIHRvIGZpeCB0aGUNCj4gPiBpc3N1ZSBpZiBhbnkgd2hlbiAgc29tZW9u ZSBydW5zIHRoaXMgb24gSUEzMi4NCj4gPg0KPiA+IEkgZGlkIHNvbWUgbG9jYWwgdGVzdGluZyB3 aXRoIFZTMjAxOS4gIEkgZm91bmQgdGhhdCBhIG11Y2ggc21hbGxlciBzZXQgb2YNCj4gPiB3YXJu aW5nIGRpc2FibGVzIGFyZSByZXF1aXJlZCBmb3IgSUEzMiBhbmQgWDY0IGFuZCB0aGUgc2V0IGlz IGRpZmZlcmVudCBmb3INCj4gPiBJQTMyIGFuZCBYNjQuICBDYW4geW91IHJldmlldyB3aGF0IGlz IG5lZWRlZCBhbmQgbWluaW1pemUgdGhlIHJlcXVpcmVkIHNldA0KPiA+IG9mIGVhY2ggc3VwcG9y dGVkIGFyY2g/DQo+ID4NCj4gPiAgIE1TRlQ6Kl8qX1g2NF9DQ19GTEFHUyA9IC93ZDQyNDQgL3dk NDA5MCAvd2Q0MzM0DQo+ID4gL0RIQVZFX0NPTkZJR19IPTEgL1VfV0lOMzIgL1VXSU42NCAvVV9N U0NfVkVSDQo+ID4gICBNU0ZUOipfKl9JQTMyX0NDX0ZMQUdTID0gL3dkNDI0NCAvd2Q0MDkwIC9E SEFWRV9DT05GSUdfSD0xDQo+ID4gL1VfV0lOMzIgL1VXSU42NCAvVV9NU0NfVkVSDQo+ID4NCj4g PiA+ID4NCj4gPiA+ID4gKiBSZWRmaXNoTGlicy5kc2MuaW5jDQo+ID4gPiA+ICAgSXQgaXMgYmV0 dGVyIHRvIGFkZCBbTGlicmFyeUNsYXNzZXNdIHN0YXRlbWVudCB0byB0aGlzIGZpbGUsIHNvIGl0 DQo+ID4gPiA+ICAgY2FuIGJlIGluY2x1ZGUgYW55d2hlcmUgaW4gYSBEU0MgZmlsZS4gIFdpdGgg Y3VycmVudCBpbXBsZW1lbnRhdGlvbg0KPiA+ID4gPiAgIGlmIGl0IGlzIG5vdCBpbmNsdWRlZCB3 aXRoaW4gYSBbTGlicmFyeUNsYXNzZXNdIHNlY3Rpb24sIGl0IHdpbGwNCj4gPiA+ID4gICBnZW5l cmF0ZSBhIGJ1aWxkIGVycm9yLg0KPiA+ID4gSSB3aWxsIHNlcGFyYXRlIHRoaXMgdG8gYW5vdGhl ciBzZXQgb2YgcGF0Y2guIERvbuKAmXQgbWl4IHVwIHdpdGggamFuc3NvbiBlZGsyDQo+ID4gcG9y dC4NCj4gPiA+DQo+ID4gPiA+WW91IG1pZ2h0IGFsc28gY29uc2lkZXIgY2hhbmdpbmcgdGhlIG5h bWUNCj4gPiA+ID4gICBvZiB0aGlzIGZpbGUgaW4gY2FzZSB5b3Ugd2FudCB0byBhZGQgbW9yZSB0 aGFuIGp1c3QgbGliIG1hcHBpbmdzDQo+ID4gPiA+ICAgdG8gdGhpcyBmaWxlIGluIHRoZSBmdXR1 cmUuICBTZWUgVW5pdFRlc3RGcmFtd29ya1BrZyBmb3IgZXhhbXBsZXMuDQo+ID4gPiA+DQo+ID4g PiA+IEJlc3QgcmVnYXJkcywNCj4gPiA+ID4NCj4gPiA+ID4gTWlrZQ0KPiA+ID4gPg0KPiA+ID4g PiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gRnJvbTogQWJuZXIgQ2hh bmcgPGFibmVyLmNoYW5nQGhwZS5jb20+DQo+ID4gPiA+ID4gU2VudDogVGh1cnNkYXksIERlY2Vt YmVyIDE3LCAyMDIwIDU6MTkgQU0NCj4gPiA+ID4gPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8N Cj4gPiA+ID4gPiBDYzogU2VhbiBCcm9nYW4gPHNlYW4uYnJvZ2FuQG1pY3Jvc29mdC5jb20+OyBC cmV0IEJhcmtlbGV3DQo+ID4gPiA+ID4gPEJyZXQuQmFya2VsZXdAbWljcm9zb2Z0LmNvbT47IEFu ZHJldyBGaXNoIDxhZmlzaEBhcHBsZS5jb20+Ow0KPiA+ID4gPiA+IExhc3psbyBFcnNlayA8bGVy c2VrQHJlZGhhdC5jb20+OyBMZWlmIExpbmRob2xtDQo+ID4gPiA+ID4gPGxlaWZAbnV2aWFpbmMu Y29tPjsgS2lubmV5LCBNaWNoYWVsIEQNCj4gPiA+ID4gPiA8bWljaGFlbC5kLmtpbm5leUBpbnRl bC5jb20+OyBMaW1pbmcgR2FvDQo+ID4gPiA+ID4gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47 IE5pY2tsZSBXYW5nIDxuaWNrbGUud2FuZ0BocGUuY29tPjsNCj4gPiA+ID4gUGV0ZXINCj4gPiA+ ID4gPiBPJ0hhbmxleSA8cGV0ZXIub2hhbmxleUBocGUuY29tPg0KPiA+ID4gPiA+IFN1YmplY3Q6 IFtQQVRDSCB2OCAwLzZdIGphbnNzb24gZWRrMiBwb3J0DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBJ biB2OCwgLSBBc3NpZ25lIHBhdGNoIGZpbGUgb3JkZXINCj4gPiA+ID4gPiAgICAgICAgLSBBZGQg QWNrZWQtYnkgdGFncw0KPiA+ID4gPiA+IEluIHY3LCAtIFJlbW92ZSBDIFJUQyBoZWFkZXIgZmls ZXMgdG8gdW5kZXIgW0luY2x1ZGUuQ29tbW9uLlByaXZhdGVdDQo+ID4gPiA+ID4gICAgICAgICAg aW4gUmVkZmlzaFBrZy5kZWMuDQo+ID4gPiA+ID4gICAgICAgIC0gYWRkcmVzcyBjb21tZW50cyBn aXZlbiBieSBNaWtlIEtpbm5leS4NCj4gPiA+ID4gPiBJbiB2NiwgUmVtb3ZlIEphbnNzb25Kc29u TWFwcGluZy5oIEluIHY1LCBtb3ZlIEJhc2VVY3MyVXRmOExpYiB0bw0KPiA+ID4gPiA+IHVuZGVy IFJlZGZpc2hQa2cuDQo+ID4gPiA+ID4gSW4gdjQsDQo+ID4gPiA+ID4gICAgICAgIC0gQWRkcmVz cyByZXZpZXcgY29tbWVudHMNCj4gPiA+ID4gPiAgICAgICAgLSBTZXBlcmF0ZSBDUlQgZnVuY3Rp b25zIHRvIGEgaW5kaXZpZHVsZSBsaWJyYXJ5IENydExpYiB1bmRlcg0KPiA+ID4gPiA+ICAgICAg ICAgIFJlZGZpc2hQa2cuDQo+ID4gPiA+ID4gICAgICAgIC0gU2VwZXJhdGUgVUNTMi1VVEY4IGZ1 bmN0aW9ucyB0byBhIGluZGl2aWR1bGUgbGlicmFyeQ0KPiA+ID4gPiA+ICAgICAgICAgIEJhc2VV Y3MyVXRmOExpYiB1bmRlciBNZGVNb2R1bGVQa2cuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBJbiB2 MywgQWRkIGphbnNzb24gbGlicmFyeSBhcyB0aGUgcmVxdWlyZWQgc3VibW91ZGxlIGluDQo+ID4g PiA+ID4gICAgICAgIENpU2V0dGluZ3MucHkgZm9yIENJIHRlc3QuDQo+ID4gPiA+ID4gSW4gdjIs IEpzb25MaWIgaXMgbW92ZWQgdG8gdW5kZXIgUmVkZmlzaFBrZy4NCj4gPiA+ID4gPg0KPiA+ID4g PiA+IGVkazIgSlNPTiBsaWJyYXJ5IGlzIGJhc2VkIG9uIGphbnNzb24gb3BlbiBzb3VyY2UNCj4g PiA+ID4gPiAoaHR0cHM6Ly9naXRodWIuY29tL2FraGVyb24vamFuc3NvbikgYW5kIHdyYXBwZWQg YXMgYW4gZWRrMiBsaWJyYXJ5Lg0KPiA+ID4gPiA+IGVkazIgSnNvbkxpYiB3aWxsIGJlIHVzZWQg YnkgZWRrMiBSZWRmaXNoIGZlYXR1cmUgZHJpdmVycyAobm90DQo+ID4gPiA+ID4gY29udHJpYnV0 ZWQgeWV0KSBhbmQgdGhlIGVkazIgcG9ydCBvZiBsaWJyZWRmaXNoIGxpYnJhcnkgKG5vdA0KPiA+ ID4gPiA+IGNvbnRyaWJ1dGVkIHlldCkgYmFzZWQgb24gRE1URiBHaXRIdWINCj4gPiA+ID4gPiAo aHR0cHM6Ly9naXRodWIuY29tL0RNVEYvbGlicmVkZmlzaCkuDQo+ID4gPiA+ID4NCj4gPiA+ID4g PiBKYW5zc29uIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZShyZWZlciB0byBSZWFk TWUucnN0IHVuZGVyDQo+ID4gZWRrMikuDQo+ID4gPiA+ID4gSXQgaXMgdXNlZCBpbiBwcm9kdWN0 aW9uIGFuZCBpdHMgQVBJIGlzIHN0YWJsZS4gSW4gVUVGSS9FREtJSQ0KPiA+ID4gPiA+IGVudmly b25tZW50LCBSZWRmaXNoIHByb2plY3QgY29uc3VtZXMgamFuc3NvbiB0byBhY2hpZXZlIEpTT04N Cj4gPiA+ID4gb3BlcmF0aW9ucy4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICogSmFuc3NvbiB2ZXJz aW9uIG9uIGVkazI6IDIuMTMuMQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gKiBFREtJSSBqYW5zc29u IGxpYnJhcnkgd3JhcHBlcjoNCj4gPiA+ID4gPiAgICAtIEpzb25MaWIuaDoNCj4gPiA+ID4gPiAg ICAgIFRoaXMgaXMgdGhlIGRlbmlmaXRpb25zIG9mIEVES0lJIEpTT04gQVBJcyB3aGljaCBhcmUg bWFwcGVkIHRvDQo+ID4gPiA+ID4gICAgICBqYW5uc29uIGZ1bmNpdG9ucyBhY2NvcmRpbmdseS4N Cj4gPiA+ID4gPg0KPiA+ID4gPiA+ICAgIC0gSmFuc3Nvbkpzb25MaWJNYXBwaW5nLmg6DQo+ID4g PiA+ID4gICAgICBUaGlzIGlzIHRoZSB3cmFwcGVyIGZpbGUgdG8gbWFwIGZ1bmNpdG9ucyBhbmQg ZGVmaW5pdGlvbnMgdXNlZCBpbg0KPiA+ID4gPiA+ICAgICAgbmF0aXZlIGphbm5zb24gYXBwbGlj YXRpb25zIHRvIGVkazIgSnNvbkxpYi4gVGhpcyBhdm9pZHMgdGhlDQo+ID4gPiA+ID4gICAgICBt b2RpZmljYXRpb25zIG9uIG5hdGl2ZSBqYW5uc29uIGFwcGxpY2F0aW9ucyB0byBiZSBidWlsdCB1 bmRlcg0KPiA+ID4gPiA+ICAgICAgZWRrMiBlbnZpcm9ubWVudC4NCj4gPiA+ID4gPg0KPiA+ID4g PiA+ICpLbm93biBpc3N1ZToNCj4gPiA+ID4gPiAgIEJ1aWxkIGZhaWwgd2l0aCBqYW5zc29uL3Ny Yy9sb2FkLmMsIG92ZXJycmlkZSBhbmQgYWRkIGNvZGUgaW4gbG9hZC5jDQo+ID4gPiA+ID4gICB0 byBjb25kaXRpb25hbGx5IHVzZSBzdGRpbiBhY2NvcmRpbmcgdG8gSEFWRV9VTklTVERfSCBtYWNy by4NCj4gPiA+ID4gPiAgIFRoZSBQUiBpcyBzdWJtaXR0ZWQgdG8gamFuc3NvbiBvcGVuIHNvdXJj ZSBjb21tdW5pdHkuDQo+ID4gPiA+ID4gICBodHRwczovL2dpdGh1Yi5jb20vYWtoZXJvbi9qYW5z c29uL3B1bGwvNTU4DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBBYm5lciBD aGFuZyA8YWJuZXIuY2hhbmdAaHBlLmNvbT4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IENjOiBTZWFu IEJyb2dhbiA8c2Vhbi5icm9nYW5AbWljcm9zb2Z0LmNvbT4NCj4gPiA+ID4gPiBDYzogQnJldCBC YXJrZWxldyA8QnJldC5CYXJrZWxld0BtaWNyb3NvZnQuY29tPg0KPiA+ID4gPiA+IENjOiBBbmRy ZXcgRmlzaCA8YWZpc2hAYXBwbGUuY29tPg0KPiA+ID4gPiA+IENjOiBMYXN6bG8gRXJzZWsgPGxl cnNla0ByZWRoYXQuY29tPg0KPiA+ID4gPiA+IENjOiBMZWlmIExpbmRob2xtIDxsZWlmQG51dmlh aW5jLmNvbT4NCj4gPiA+ID4gPiBDYzogTWljaGFlbCBEIEtpbm5leSA8bWljaGFlbC5kLmtpbm5l eUBpbnRlbC5jb20+DQo+ID4gPiA+ID4gQ2M6IExpbWluZyBHYW8gPGdhb2xpbWluZ0BieW9zb2Z0 LmNvbS5jbj4NCj4gPiA+ID4gPiBDYzogTmlja2xlIFdhbmcgPG5pY2tsZS53YW5nQGhwZS5jb20+ DQo+ID4gPiA+ID4gQ2M6IFBldGVyIE8nSGFubGV5IDxwZXRlci5vaGFubGV5QGhwZS5jb20+DQo+ ID4gPiA+ID4NCj4gPiA+ID4gPiBBYm5lciBDaGFuZyAoNik6DQo+ID4gPiA+ID4gICBSZWRmaXNo UGtnL1VjczJVdGY4bGliOiBVQ1MyIHRvIFVGVDggbWFuaXB1bGF0aW9uIGxpYnJhcnkNCj4gPiA+ ID4gPiAgIGVkazI6IGphbnNzb24gc3VibW9kdWxlIGZvciBlZGsyIEpTT04gbGlicmFyeQ0KPiA+ ID4gPiA+ICAgUmVkZmlzaFBrZy9DcnRMaWI6IEMgcnVudGltZSBsaWJyYXJ5DQo+ID4gPiA+ID4g ICBSZWRmaXNoUGtnL2xpYnJhcnk6IEVESzIgcG9ydCBvZiBqYW5zc29uIGxpYnJhcnkNCj4gPiA+ ID4gPiAgIFJlZGZpc2hQa2c6IEFkZCBFREsyIHBvcnQgb2YgamFuc3NvbiBsaWJyYXJ5IHRvIGJ1 aWxkDQo+ID4gPiA+ID4gICAucHl0b29sOiBBZGQgcmVxdWlyZWQgc3VibW9kdWxlIGZvciBKc29u TGliDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAgLmdpdG1vZHVsZXMgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgMyArDQo+ID4gPiA+ID4gIC5weXRvb2wvQ0lTZXR0aW5ncy5w eSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKw0KPiA+ID4gPiA+ICBSZWFkTWUucnN0 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsNCj4gPiA+ID4gPiAg UmVkZmlzaFBrZy9JbmNsdWRlL0NydC9hc3NlcnQuaCAgICAgICAgICAgICAgIHwgICAxNiArDQo+ ID4gPiA+ID4gIFJlZGZpc2hQa2cvSW5jbHVkZS9DcnQvZXJybm8uaCAgICAgICAgICAgICAgICB8 ICAgMTYgKw0KPiA+ID4gPiA+ICBSZWRmaXNoUGtnL0luY2x1ZGUvQ3J0L2xpbWl0cy5oICAgICAg ICAgICAgICAgfCAgIDE2ICsNCj4gPiA+ID4gPiAgUmVkZmlzaFBrZy9JbmNsdWRlL0NydC9tYXRo LmggICAgICAgICAgICAgICAgIHwgICAxNiArDQo+ID4gPiA+ID4gIFJlZGZpc2hQa2cvSW5jbHVk ZS9DcnQvc3RkYXJnLmggICAgICAgICAgICAgICB8ICAgMTUgKw0KPiA+ID4gPiA+ICBSZWRmaXNo UGtnL0luY2x1ZGUvQ3J0L3N0ZGRlZi5oICAgICAgICAgICAgICAgfCAgIDE2ICsNCj4gPiA+ID4g PiAgUmVkZmlzaFBrZy9JbmNsdWRlL0NydC9zdGRpby5oICAgICAgICAgICAgICAgIHwgICAxNSAr DQo+ID4gPiA+ID4gIFJlZGZpc2hQa2cvSW5jbHVkZS9DcnQvc3RkbGliLmggICAgICAgICAgICAg ICB8ICAgMTYgKw0KPiA+ID4gPiA+ICBSZWRmaXNoUGtnL0luY2x1ZGUvQ3J0L3N0cmluZy5oICAg ICAgICAgICAgICAgfCAgIDE2ICsNCj4gPiA+ID4gPiAgUmVkZmlzaFBrZy9JbmNsdWRlL0NydC9z eXMvdGltZS5oICAgICAgICAgICAgIHwgICAxNSArDQo+ID4gPiA+ID4gIFJlZGZpc2hQa2cvSW5j bHVkZS9DcnQvc3lzL3R5cGVzLmggICAgICAgICAgICB8ICAgMTUgKw0KPiA+ID4gPiA+ICBSZWRm aXNoUGtnL0luY2x1ZGUvQ3J0L3RpbWUuaCAgICAgICAgICAgICAgICAgfCAgIDE1ICsNCj4gPiA+ ID4gPiAgUmVkZmlzaFBrZy9JbmNsdWRlL0xpYnJhcnkvQmFzZVVjczJVdGY4TGliLmggIHwgICA2 MSArDQo+ID4gPiA+ID4gIFJlZGZpc2hQa2cvSW5jbHVkZS9MaWJyYXJ5L0NydExpYi5oICAgICAg ICAgICB8ICAxOTEgKysrDQo+ID4gPiA+ID4gIFJlZGZpc2hQa2cvSW5jbHVkZS9MaWJyYXJ5L0pz b25MaWIuaCAgICAgICAgICB8ICA3NjMgKysrKysrKysrKysNCj4gPiA+ID4gPiAgLi4uL0xpYnJh cnkvQmFzZVVjczJVdGY4TGliL0Jhc2VVY3MyVXRmOExpYi5jIHwgIDQyMSArKysrKysrDQo+ID4g PiA+ID4gIC4uLi9CYXNlVWNzMlV0ZjhMaWIvQmFzZVVjczJVdGY4TGliLmluZiAgICAgICB8ICAg MzEgKw0KPiA+ID4gPiA+ICBSZWRmaXNoUGtnL0xpYnJhcnkvQ3J0TGliL0NydExpYi5jICAgICAg ICAgICAgfCAgNTk1ICsrKysrKysrKw0KPiA+ID4gPiA+ICBSZWRmaXNoUGtnL0xpYnJhcnkvQ3J0 TGliL0NydExpYi5pbmYgICAgICAgICAgfCAgIDM4ICsNCj4gPiA+ID4gPiAgUmVkZmlzaFBrZy9M aWJyYXJ5L0pzb25MaWIvSnNvbkxpYi5jICAgICAgICAgIHwgIDk2NCArKysrKysrKysrKysrKw0K PiA+ID4gPiA+ICBSZWRmaXNoUGtnL0xpYnJhcnkvSnNvbkxpYi9Kc29uTGliLmluZiAgICAgICAg fCAgIDg5ICsrDQo+ID4gPiA+ID4gIFJlZGZpc2hQa2cvTGlicmFyeS9Kc29uTGliL1JlYWRtZS5y c3QgICAgICAgICB8ICAgNDAgKw0KPiA+ID4gPiA+ICBSZWRmaXNoUGtnL0xpYnJhcnkvSnNvbkxp Yi9qYW5zc29uICAgICAgICAgICAgfCAgICAxICsNCj4gPiA+ID4gPiAgUmVkZmlzaFBrZy9MaWJy YXJ5L0pzb25MaWIvamFuc3Nvbl9jb25maWcuaCAgIHwgICA0MSArDQo+ID4gPiA+ID4gIC4uLi9M aWJyYXJ5L0pzb25MaWIvamFuc3Nvbl9wcml2YXRlX2NvbmZpZy5oICB8ICAgMTkgKw0KPiA+ID4g PiA+ICBSZWRmaXNoUGtnL0xpYnJhcnkvSnNvbkxpYi9sb2FkLmMgICAgICAgICAgICAgfCAxMTEx ICsrKysrKysrKysrKysrKysrDQo+ID4gPiA+ID4gIFJlZGZpc2hQa2cvUmVkZmlzaExpYnMuZHNj LmluYyAgICAgICAgICAgICAgICB8ICAgIDMgKw0KPiA+ID4gPiA+ICBSZWRmaXNoUGtnL1JlZGZp c2hQa2cuY2kueWFtbCAgICAgICAgICAgICAgICAgfCAgIDI1ICsNCj4gPiA+ID4gPiAgUmVkZmlz aFBrZy9SZWRmaXNoUGtnLmRlYyAgICAgICAgICAgICAgICAgICAgIHwgICAyNSArDQo+ID4gPiA+ ID4gIFJlZGZpc2hQa2cvUmVkZmlzaFBrZy5kc2MgICAgICAgICAgICAgICAgICAgICB8ICAgIDMg Kw0KPiA+ID4gPiA+ICAzMyBmaWxlcyBjaGFuZ2VkLCA0NjE0IGluc2VydGlvbnMoKykgIGNyZWF0 ZSBtb2RlIDEwMDY0NA0KPiA+ID4gPiA+IFJlZGZpc2hQa2cvSW5jbHVkZS9DcnQvYXNzZXJ0Lmgg IGNyZWF0ZSBtb2RlDQo+ID4gPiA+ID4gMTAwNjQ0IFJlZGZpc2hQa2cvSW5jbHVkZS9DcnQvZXJy bm8uaCAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4gPiA+ID4gUmVkZmlzaFBrZy9JbmNsdWRlL0Ny dC9saW1pdHMuaCAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4gPiA+ID4gUmVkZmlzaFBrZy9JbmNs dWRlL0NydC9tYXRoLmggIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+ID4gPiA+IFJlZGZpc2hQa2cv SW5jbHVkZS9DcnQvc3RkYXJnLmggIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+ID4gPiA+IFJlZGZp c2hQa2cvSW5jbHVkZS9DcnQvc3RkZGVmLmggIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+ID4gPiA+ IFJlZGZpc2hQa2cvSW5jbHVkZS9DcnQvc3RkaW8uaCAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4g PiA+ID4gUmVkZmlzaFBrZy9JbmNsdWRlL0NydC9zdGRsaWIuaCAgY3JlYXRlIG1vZGUgMTAwNjQ0 DQo+ID4gPiA+ID4gUmVkZmlzaFBrZy9JbmNsdWRlL0NydC9zdHJpbmcuaCAgY3JlYXRlIG1vZGUg MTAwNjQ0DQo+ID4gPiA+ID4gUmVkZmlzaFBrZy9JbmNsdWRlL0NydC9zeXMvdGltZS5oICBjcmVh dGUgbW9kZSAxMDA2NDQNCj4gPiA+ID4gPiBSZWRmaXNoUGtnL0luY2x1ZGUvQ3J0L3N5cy90eXBl cy5oDQo+ID4gPiA+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBSZWRmaXNoUGtnL0luY2x1ZGUvQ3J0 L3RpbWUuaCAgY3JlYXRlIG1vZGUNCj4gPiA+ID4gPiAxMDA2NDQgUmVkZmlzaFBrZy9JbmNsdWRl L0xpYnJhcnkvQmFzZVVjczJVdGY4TGliLmgNCj4gPiA+ID4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0 IFJlZGZpc2hQa2cvSW5jbHVkZS9MaWJyYXJ5L0NydExpYi5oDQo+ID4gPiA+ID4gIGNyZWF0ZSBt b2RlIDEwMDY0NCBSZWRmaXNoUGtnL0luY2x1ZGUvTGlicmFyeS9Kc29uTGliLmgNCj4gPiA+ID4g PiAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4gPiA+ID4gUmVkZmlzaFBrZy9MaWJyYXJ5L0Jhc2VV Y3MyVXRmOExpYi9CYXNlVWNzMlV0ZjhMaWIuYw0KPiA+ID4gPiA+ICBjcmVhdGUgbW9kZSAxMDA2 NDQNCj4gPiA+ID4gPiBSZWRmaXNoUGtnL0xpYnJhcnkvQmFzZVVjczJVdGY4TGliL0Jhc2VVY3My VXRmOExpYi5pbmYNCj4gPiA+ID4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IFJlZGZpc2hQa2cvTGli cmFyeS9DcnRMaWIvQ3J0TGliLmMNCj4gPiA+ID4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IFJlZGZp c2hQa2cvTGlicmFyeS9DcnRMaWIvQ3J0TGliLmluZg0KPiA+ID4gPiA+ICBjcmVhdGUgbW9kZSAx MDA2NDQgUmVkZmlzaFBrZy9MaWJyYXJ5L0pzb25MaWIvSnNvbkxpYi5jDQo+ID4gPiA+ID4gIGNy ZWF0ZSBtb2RlIDEwMDY0NCBSZWRmaXNoUGtnL0xpYnJhcnkvSnNvbkxpYi9Kc29uTGliLmluZg0K PiA+ID4gPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgUmVkZmlzaFBrZy9MaWJyYXJ5L0pzb25MaWIv UmVhZG1lLnJzdA0KPiA+ID4gPiA+ICBjcmVhdGUgbW9kZSAxNjAwMDAgUmVkZmlzaFBrZy9MaWJy YXJ5L0pzb25MaWIvamFuc3Nvbg0KPiA+ID4gPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgUmVkZmlz aFBrZy9MaWJyYXJ5L0pzb25MaWIvamFuc3Nvbl9jb25maWcuaA0KPiA+ID4gPiA+ICBjcmVhdGUg bW9kZSAxMDA2NDQNCj4gPiA+ID4gPiBSZWRmaXNoUGtnL0xpYnJhcnkvSnNvbkxpYi9qYW5zc29u X3ByaXZhdGVfY29uZmlnLmgNCj4gPiA+ID4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IFJlZGZpc2hQ a2cvTGlicmFyeS9Kc29uTGliL2xvYWQuYw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gLS0NCj4gPiA+ ID4gPiAyLjE3LjENCj4gPiA+DQo+IA0KDQo=