From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web11.42573.1585536445153597357 for ; Sun, 29 Mar 2020 19:47:25 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: jiewen.yao@intel.com) IronPort-SDR: a3eymXGGBtfudsPlfy9jtW1wIezbpEZB3RlyuGnliXf5dG9t4txVldO3wpLvVryEJyt9R5O+YQ NoEkXHR0G0XQ== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Mar 2020 19:47:24 -0700 IronPort-SDR: FOri5ipLw/H4niiHxFaFfX7I8Dp/MWZzHoUIRummjfN0Cx1F+eXwkqDW0Qqn4e1q1LRq8/BM1/ KjpUHadz3vHQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,322,1580803200"; d="scan'208";a="237214482" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by orsmga007.jf.intel.com with ESMTP; 29 Mar 2020 19:47:24 -0700 Received: from fmsmsx120.amr.corp.intel.com (10.18.124.208) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.439.0; Sun, 29 Mar 2020 19:47:23 -0700 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by fmsmsx120.amr.corp.intel.com (10.18.124.208) with Microsoft SMTP Server (TLS) id 14.3.439.0; Sun, 29 Mar 2020 19:47:23 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.138]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.209]) with mapi id 14.03.0439.000; Mon, 30 Mar 2020 10:47:20 +0800 From: "Yao, Jiewen" To: "Fu, Siyuan" , "Kinney, Michael D" , "devel@edk2.groups.io" , "Gao, Zhichao" CC: "Wang, Jian J" , "Lu, XiaoyuX" , Maciej Rabeda , "Wu, Jiaxin" Subject: Re: [edk2-devel] [PATCH 0/8] CryptoPkg: Retire the deprecate function Thread-Topic: [edk2-devel] [PATCH 0/8] CryptoPkg: Retire the deprecate function Thread-Index: AQHWA9r3vfbc0WLdPUSI70pQ90E/bahbNjmAgACIDrD//31yAIAAhwdggABbpICAAPEZQIAC1U+AgACHb+A= Date: Mon, 30 Mar 2020 02:47:19 +0000 Message-ID: <74D8A39837DF1E4DA445A8C0B3885C503F9B0CB0@shsmsx102.ccr.corp.intel.com> References: <20200327015629.2588-1-zhichao.gao@intel.com> <74D8A39837DF1E4DA445A8C0B3885C503F9A0490@shsmsx102.ccr.corp.intel.com> <74D8A39837DF1E4DA445A8C0B3885C503F9A08EF@shsmsx102.ccr.corp.intel.com> <74D8A39837DF1E4DA445A8C0B3885C503F9A3800@shsmsx102.ccr.corp.intel.com> In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Return-Path: jiewen.yao@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhhbmtzIFNpeXVhbi4NCkdvb2QsIHRoZW4gSSB0aGluayB3ZSBhcmUgYWxpZ25lZC4NCkkgYWdy ZWUgd2l0aCB5b3UgdGhhdCBpdCBpcyBiYWQgZXhhbXBsZSBiZWNhdXNlIHRoZSBuZWl0aGVyIHZl cnNpb24gbm9yIEdVSUQgaXMgdXBkYXRlZC4NCg0KV2UgY2FuIGhhdmUgYXQgbGVhc3QgdHdvIG9w dGlvbnMgaGVyZToNCjEpIFVwZGF0ZSB2ZXJzaW9uDQpXZSBjYW4gY2hhbmdlIG9sZCBBUEkgdG8g YmUgIlZPSUQgKlJlc2VydmVkIiBvciAiVU5TVVBQT1JUX0ZVTkMgIFJlc2VydmVkIiBpbiB0aGUg RURLSUlfQ1JZUFRPX1BST1RPQ09MLg0KDQpJIHJlYWxseSBkbyBub3Qgd2FudCB0byBzZWUgc29t ZXRoaW5nIGxpa2UgIkVES0lJX0NSWVBUT19NRDRfSU5JVCBNZDRJbml0IiBzdGlsbCBleGlzdGlu ZywgYmVjYXVzZSBpdCBtYXkgbGV0IHBlb3BsZSB0aGluayB3ZSBhcmUgc3RpbGwgc3VwcG9ydCBN RDQgYW5kIHVzZSBpdCBzb21ld2hlcmUuDQoNCjIpIFVwZGF0ZSBHVUlEDQpUaGVuIHdlIGNhbiBy ZW1vdmUgdGhlICJFREtJSV9DUllQVE9fTUQ0X0lOSVQgTWQ0SW5pdCIgY29tcGxldGVseS4NCk9m IGNvdXJzZSwgd2UgY2FuIHN0aWxsIHVwZGF0ZSB2ZXJzaW9uIGFsdGhvdWdoIGl0IGlzIG9wdGlv bmFsLg0KDQoNCkZvciBhZGRpbmcgbmV3IEFQSSwgSSB3aWxsIGRlZmluaXRlbHkgcHJlZmVyICMx Lg0KDQpGb3IgZGVwcmVjYXRpbmcgb2xkIEFQSSwgaWYgd2UgY2hvb3NlICMxLCB3ZSBuZWVkIGFk ZCAxNyByZXNlcnZlZCBmaWVsZHMgaW4gdGhpcyBwcm90b2NvbCBmb3IgTUQ0LCAzREVTIGFuZCBS QzQuDQpJZiB3ZSBkZWNpZGUgdG8gZGVwcmVjYXRlIEhNQUNfTUQ1L0hNQUNfU0hBMSBiZWNhdXNl IG9mIG5vIHVzYWdlLCB0aGVuIHdlIG5lZWQgaGF2ZSBhIHByb3RvY29sIHdpdGggMTU2IGZpZWxk cywgYW5kIDI5IG9mIHRoZW0gYXJlIHJlc2VydmVkLg0KQXMgc3VjaCwgSSBwcmVmZXIgIzIgaGVy ZSwgdW5sZXNzIHdlIGhhdmUgc3Ryb25nIHJlYXNvbiB0byBrZWVwIDI5IHJlc2VydmVkIGZpZWxk cyBpbiB0aGlzIHByb3RvY29sLg0KDQoNClRoYW5rIHlvdQ0KWWFvIEppZXdlbg0KIA0KDQo+IC0t LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEZ1LCBTaXl1YW4gPHNpeXVhbi5mdUBp bnRlbC5jb20+DQo+IFNlbnQ6IE1vbmRheSwgTWFyY2ggMzAsIDIwMjAgMTA6MTcgQU0NCj4gVG86 IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT47IEtpbm5leSwgTWljaGFlbCBEDQo+ IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBHYW8s IFpoaWNoYW8NCj4gPHpoaWNoYW8uZ2FvQGludGVsLmNvbT4NCj4gQ2M6IFdhbmcsIEppYW4gSiA8 amlhbi5qLndhbmdAaW50ZWwuY29tPjsgTHUsIFhpYW95dVggPHhpYW95dXgubHVAaW50ZWwuY29t PjsNCj4gTWFjaWVqIFJhYmVkYSA8bWFjaWVqLnJhYmVkYUBsaW51eC5pbnRlbC5jb20+OyBXdSwg SmlheGluDQo+IDxqaWF4aW4ud3VAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSRTogW2VkazItZGV2 ZWxdIFtQQVRDSCAwLzhdIENyeXB0b1BrZzogUmV0aXJlIHRoZSBkZXByZWNhdGUgZnVuY3Rpb24N Cj4gDQo+IEhpLCBKaWV3ZW4NCj4gDQo+IEkgYWdyZWUgd2l0aCBhbGwgdGhlIHN0cmF0ZWd5IHlv dSBsaXN0ZWQgZm9yIHRoZSBNb2R1bGl6YXRpb24gRlcgdXBkYXRlLCBhbmQNCj4gTWlrZSdzDQo+ IGZvciBjb21wYXRpYmlsaXR5IG1haW50ZW5hbmNlLiAgV2hpbGUgSSBoYXZlIGEgbGl0dGxlIGRp ZmZlcmVudCB1bmRlcnN0YW5kaW5nDQo+IGFib3V0DQo+ICJwZXJtYW5lbnQgYmluYXJ5IGNvbXBh dGliaWxpdHkiLiBNYWlubHkgYWJvdXQgd2hhdCBraW5kIG9mICJjb21wYXRpYmlsaXR5IiB3ZQ0K PiBoYXZlIHRvIHByb3ZpZGUuDQo+IA0KPiBJIGRvbid0IHRoaW5rICJjb21wYXRpYmlsaXR5ICIg bWVhbnMgd2UgY2Fubm90IGRlcHJlY2F0ZSBhbnkgb2xkIEFQSS4gSW5zdGVhZCBvZg0KPiB0aGF0 LCBJIHRoaW5rIHRoZSBnb2FsIGNvdWxkIGJlOg0KPiAtIElmIGFuIG9sZCBiaW5hcnkgaXMgdXNp bmcgdGhlIGRlcHJlY2F0ZWQgQVBJLCBpdCBzaG91bGQgYmUgYWJsZSB0byBmYWlsIGdyYWNlZnVs bHkuDQo+IC0gSWYgYW4gb2xkIGJpbmFyeSBpcyBOT1QgdXNpbmcgdGhlIGRlcHJlY2F0ZWQgQVBJ LCBpdCBzaG91bGQgbm90IGJlIGltcGFjdGVkIGFuZA0KPiBhYmxlIHRvIHdvcmsgYXMgYmVmb3Jl Lg0KPiANCj4gU28gaG93IHdlIGRlcHJlY2F0ZSBhbiBBUEkgZnJvbSB0aGlzIGludGVybmFsIHBy b3RvY29sIGlzIGltcG9ydGFudC4gVGhlDQo+IGN1cnJlbnQNCj4gcGF0Y2ggc2hvd3MgYSBiYWQg ZXhhbXBsZSwgaXQgcmVtb3ZlcyBtZW1iZXIgZnVuY3Rpb25zIGZyb20gdGhlIHByb3RvY29sDQo+ IHN0cnVjdHVyZSwgd2l0aG91dCBjaGFuZ2luZyB0aGUgcHJvdG9jb2wgR1VJRCBvciB2ZXJzaW9u IG51bWJlci4gSW4gc3VjaCBjYXNlLA0KPiBhbiBvbGQgYmluYXJ5IGNvbnN1bWVyIGhhcyBubyBt ZXRob2QgdG8ga25vdyBpZiBpdCdzIHdvcmtpbmcgd2l0aCBhbiBvbGQNCj4gcHJvdG9jb2wNCj4g b3IgYSBuZXcgb25lLCBhbmQgbWF5IGNhbGwgaW50byBpbmNvcnJlY3QgZnVuY3Rpb24gZXZlbiBp dCBkb2Vzbid0IHVzZSBhbnkgb2YgdGhlDQo+IGRlcHJlY2F0ZWQgQVBJcy4gVGhhdCdzIHNvbWV0 aGluZyBJIHdhbnQgdG8gYXZvaWQuDQo+IA0KPiBCZXN0IFJlZ2FyZHMNCj4gU2l5dWFuDQo+IA0K PiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogWWFvLCBKaWV3ZW4gPGpp ZXdlbi55YW9AaW50ZWwuY29tPg0KPiA+IFNlbnQ6IDIwMjDlubQz5pyIMjjml6UgNzo0Mw0KPiA+ IFRvOiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBkZXZl bEBlZGsyLmdyb3Vwcy5pbzsNCj4gPiBGdSwgU2l5dWFuIDxzaXl1YW4uZnVAaW50ZWwuY29tPjsg R2FvLCBaaGljaGFvIDx6aGljaGFvLmdhb0BpbnRlbC5jb20+DQo+ID4gQ2M6IFdhbmcsIEppYW4g SiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgTHUsIFhpYW95dVgNCj4gPiA8eGlhb3l1eC5sdUBp bnRlbC5jb20+OyBNYWNpZWogUmFiZWRhIDxtYWNpZWoucmFiZWRhQGxpbnV4LmludGVsLmNvbT47 DQo+ID4gV3UsIEppYXhpbiA8amlheGluLnd1QGludGVsLmNvbT4NCj4gPiBTdWJqZWN0OiBSRTog W2VkazItZGV2ZWxdIFtQQVRDSCAwLzhdIENyeXB0b1BrZzogUmV0aXJlIHRoZSBkZXByZWNhdGUN Cj4gPiBmdW5jdGlvbg0KPiA+DQo+ID4gVGhhbmtzIE1pa2UuDQo+ID4gSSB1bmRlcnN0YW5kIHRo ZSAqcHJpdmF0ZSBwcm90b2NvbCogbm93LiBJIHRoaW5rIGl0IGlzIE9LIHRvIHB1dA0KPiA+IENy eXB0b1Byb3RvY29sIGludG8gUHJpdmF0ZSBkaXIgdG8gc2V2ZXIgdGhhdCBwdXJwb3NlLg0KPiA+ IEFuZCBmb3IgcHJpdmF0ZSBBUEksIEkgZG9u4oCZdCBoYXZlIGNvbmNlcm4gb24gdGhlIGRhdGEg c3RydWN0dXJlLCBzaW5jZSBpdCBpcw0KPiA+IGludmlzaWJsZS4NCj4gPg0KPiA+IFNpeXVhbiBw cm92aWRlZCBiZWxvdyB1c2FnZSBhbmQgY29uY2VybjoNCj4gPiAiVGhlIGdvYWwgdG8gcHJvdmlk ZSBhIGRyaXZlciB2ZXJzaW9uIG9mIGNyeXB0byBzZXJ2aWNlIGlzIHRvIHN1cHBvcnQNCj4gPiBt b2R1bGl6YXRpb24NCj4gPiBGVyB1cGRhdGUsIHdoaWNoIG1lYW5zIHRoZSBjcnlwdG8gZHJpdmVy IG1heSBOT1QgYmUgdXBkYXRlZCB0b2dldGhlcg0KPiA+IHdpdGgNCj4gPiBpdHMgY29uc3VtZXIu IEEgcGxhdGZvcm0gbWF5IGNob29zZSB0byB1cGRhdGUgdGhlIGNyeXB0byBzZXJ2aWNlIGRyaXZl ciB0byBhDQo+ID4gbmV3IHZlcnNpb24gd2l0aCB0aGlzIHBhdGNoLCB0aGVuIGFsbCB0aGUgQmFz ZUNyeXB0b0xpYiBjb25zdW1lcnMgd2lsbCBiZQ0KPiA+IG1lc3NlZC4iDQo+ID4NCj4gPiBUaGlz IHVzYWdlIG1pZ2h0IGJlY29tZSBhIHByb2JsZW0sIHdoZW4gd2Ugd2FudCB0byBkZXByZWNhdGUg YW4gQVBJIGFuZA0KPiA+IGtlZXAgYmluYXJ5IGNvbXBhdGliaWxpdHkgYXQgc2FtZSB0aW1lLg0K PiA+IChUbyBiZSBzcGVjaWZpYywgSSBhbSBub3Qgd29ycmllZCBhYm91dCBzb3VyY2UgY29tcGF0 aWJpbGl0eSwgYmVjYXVzZSB3ZSBjYW4NCj4gPiB1cGRhdGUgYm90aCBwcm9kdWNlciBhbmQgY29u c3VtZXIuDQo+ID4gSSBhbSBub3Qgd29ycmllZCBhYm91dCBhZGRpbmcgQVBJLCBiZWNhdXNlIHRo ZXJlIHdpbGwgYmUgbm8gaXNzdWUgb24NCj4gPiBhcHBlbmRpbmcgYSBmdW5jdGlvbiBhdCB0aGUg ZW5kLikNCj4gPg0KPiA+IFRha2UgYmVsb3cgYXMgYW4gZXhhbXBsZToNCj4gPiBGaXJtd2FyZSBW ZXJzaW9uIDEwMCB1c2VzIENyeXB0byBWZXJzaW9uIDEwMC4NCj4gPiBXZSB3YW50IHRvIGRlcHJl Y2F0ZSBhIHByaXZhdGUgQVBJIGFuZCBjaGFuZ2UgdG8gYSBuZXcgb25lLiBTbywgd2UNCj4gPiB1 cGdyYWRlIENyeXB0byB0byBWZXJzaW9uIDEwMSBhbmQgdXBkYXRlIEZpcm13YXJlIHRvIFZlcnNp b24gMTAxLg0KPiA+IE9mIGNvdXJzZSwgd2UgbmVlZCBjaGFuZ2UgKmFsbCBvdGhlciBjb25zdW1l cnMqIGFuZCByZWJ1aWxkIGV2ZXJ5dGhpbmcNCj4gPiBtYWtlIHN1cmUgaXQgd29ya3MgY29ycmVj dGx5Lg0KPiA+IEhvd2V2ZXIsIGl0IGlzIGhhcmQgdG8gc3VwcG9ydCB0aGlzIGluICJtb2R1bGl6 YXRpb24gRlcgdXBkYXRlIiwgYmVjYXVzZSB3ZQ0KPiA+IGhhdmUgbm8gY2hhbmNlIHRvIHVwZGF0 ZSB0aGUgYmluYXJ5IG9mIGZpcm13YXJlIHZlcnNpb24gMTAwLg0KPiA+DQo+ID4gSWYgd2UgaGF2 ZSB0byBrZWVwICpwZXJtYW5lbnQgYmluYXJ5IGNvbXBhdGliaWxpdHkqLCB0aGVuIHdlIGNhbm5v dA0KPiA+IGRlcHJlY2F0ZSBhbnkgb2xkIEFQSSwganVzdCBiZWNhdXNlIHRoYXQgd2lsbCBicmVh ayBvbGQgY29uc3VtZXIuDQo+ID4gVGhhdCBicmluZ3MgbXVjaCB2YWxpZGF0aW9uIGJ1cmRlbiwg YmVjYXVzZSB5b3UgaGF2ZSB0byB0ZXN0IGV2ZXJ5IHVwZGF0ZQ0KPiA+IGluIG1hc3RlciB3aXRo IG9sZCBiaW5hcmllcywgYmVzaWRlcyB0aGUgbGF0ZXN0IGJpbmFyaWVzLg0KPiA+IFRoYXQgYWxz byBicmluZ3MgbWFpbnRlbmFuY2UgYnVyZGVuIGZvciB0aGUgdW51c2VkIG9sZCBBUEkuIFRoZSBv bmx5DQo+ID4gY29uc3VtZXIgaXMgaW4gdGhlIG9sZCBiaW5hcnkgYW5kIGludmlzaWJsZS4NCj4g PiBJIGRvbuKAmXQgYmVsaWV2ZSB0aGF0IGlzIHdoYXQgd2Ugd2FudC4NCj4gPg0KPiA+IE1vZHVs aXphdGlvbiBGVyB1cGRhdGUgaXMgZ29vZCBmZWF0dXJlLiBBbmQgd2UgY2FuIGhhdmUgZGlmZmVy ZW50IHN0cmF0ZWd5DQo+ID4gZm9yIHRoYXQgYmVzaWRlcyBrZWVwaW5nIHBlcm1hbmVudCBiaW5h cnkgY29tcGF0aWJpbGl0eS4NCj4gPiAxKSBNb2R1bGl6YXRpb24gRlcgdXBkYXRlIGNhbiBiZSBs aW1pdGVkIGEgcmFuZ2Ugb2YgdmVyc2lvbi4gQXQgc29tZSBwb2ludCwNCj4gPiB5b3UgaGF2ZSB0 byB1cGRhdGUgdGhlIHdob2xlIEZXLCBiZWNhdXNlIHRoZXJlIGFyZSB0b28gbWFueSBjaGFuZ2Vz IG9yDQo+ID4gaW5jb21wYXRpYmxlIGJpbmFyeSBjaGFuZ2VzLiBUaGUgY2FkZW5jZSBvZiBmdWxs IHVwZGF0ZSBjYW4gYmUgbG9uZ2VyIHRoYW4NCj4gPiB0aGUgb25lIG9mIHBhcnRpYWwgdXBkYXRl LiBGb3IgZXhhbXBsZSwgTGludXggb3Igd2luZG93cyBhcmUgbWFraW5nDQo+ID4gaW5jb21wYXRp YmxlIGNoYW5nZSBpbiBtYWpvciB2ZXJzaW9uIGFuZCBvbmx5IGtlZXAgY29tcGF0aWJpbGl0eSBp biBtaW5vcg0KPiA+IHZlcnNpb24uDQo+ID4gMikgQSBwcm9qZWN0IGNhbiBicmFuY2ggdGhlIHBy b2R1Y3Rpb24gbGF1bmNoIGZpcm13YXJlLCBhbmQgb25seSBrZWVwDQo+ID4gYmluYXJ5IGNvbXBh dGliaWxpdHkgYW5kIHN1cHBvcnQgdGhlIG1vZHVsaXphdGlvbiBGVyB1cGRhdGUgd2l0aGluIHRo aXMNCj4gPiBicmFuY2guIEFzIHN1Y2gsIHRoZSBiaWcgdXBkYXRlIGluIG1hc3RlciB3b24ndCBp bXBhY3QgdGhpcyBicmFuY2guIElmIGENCj4gPiBwcm9kdWN0aW9uIG1heSBjaG9vc2UgdG8gcmVz eW5jIHRvIG1hc3RlciwgYXQgdGhhdCB0aW1lIGEgZnVsbCBmaXJtd2FyZQ0KPiA+IHVwZGF0ZSBp cyByZXF1aXJlZC4gSSBndWVzcyBtb3N0IHBlb3BsZSBhcmUgdXNpbmcgdGhpcyB3YXkgaW4gYSBy ZWFsDQo+ID4gcHJvZHVjdGlvbi4NCj4gPg0KPiA+IFRob3VnaHQ/DQo+ID4NCj4gPiBUaGFuayB5 b3UNCj4gPiBZYW8gSmlld2VuDQo+ID4NCj4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4gPiA+IEZyb206IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGlu dGVsLmNvbT4NCj4gPiA+IFNlbnQ6IFNhdHVyZGF5LCBNYXJjaCAyOCwgMjAyMCAxMjozOCBBTQ0K PiA+ID4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBZYW8sIEppZXdlbiA8amlld2VuLnlhb0Bp bnRlbC5jb20+OyBGdSwgU2l5dWFuDQo+ID4gPiA8c2l5dWFuLmZ1QGludGVsLmNvbT47IEdhbywg WmhpY2hhbyA8emhpY2hhby5nYW9AaW50ZWwuY29tPjsgS2lubmV5LA0KPiA+ID4gTWljaGFlbCBE IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiA+IENjOiBXYW5nLCBKaWFuIEogPGpp YW4uai53YW5nQGludGVsLmNvbT47IEx1LCBYaWFveXVYDQo+ID4gPHhpYW95dXgubHVAaW50ZWwu Y29tPjsNCj4gPiA+IE1hY2llaiBSYWJlZGEgPG1hY2llai5yYWJlZGFAbGludXguaW50ZWwuY29t PjsgV3UsIEppYXhpbg0KPiA+ID4gPGppYXhpbi53dUBpbnRlbC5jb20+DQo+ID4gPiBTdWJqZWN0 OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSCAwLzhdIENyeXB0b1BrZzogUmV0aXJlIHRoZSBkZXBy ZWNhdGUNCj4gPiBmdW5jdGlvbg0KPiA+ID4NCj4gPiA+IEppZXdlbiwNCj4gPiA+DQo+ID4gPiBU aGUgcHVycG9zZSBvZiBwcml2YXRlIGluY2x1ZGVzIGlzIHRvIGtlZXAgbW9kdWxlcy9saWINCj4g PiA+IGluICpvdGhlciogcGFja2FnZXMgZnJvbSB1c2luZyBpbnRlcmZhY2VzIHRoYXQgYXJlIHRo ZQ0KPiA+ID4gcGFja2FnZSB3aXRoIHRoZSBwcml2YXRlIGludGVyZmFjZSBkb2VzIG5vdCB3YW50 IG90aGVyDQo+ID4gPiBwYWNrYWdlcyB0byB1c2UgYW5kIGRvZXMgbm90IHdhbnQgdG8gaGF2ZSB0 byBjb29yZGluYXRlDQo+ID4gPiB3aXRoIG90aGVyIHBhY2thZ2VzIGlmIHRoYXQgcGFja2FnZSBv d25lciBkZWNpZGVzIHRvDQo+ID4gPiBtYWtlIGNoYW5nZXMgdG8gdGhvc2UgcHJpdmF0ZSBpbnRl cmZhY2VzLg0KPiA+ID4NCj4gPiA+IEZvciBtb2R1bGVzL2xpYnMgd2l0aGluIHBhY2thZ2UgdGhh dCBkbyB1c2UgcHJpdmF0ZQ0KPiA+ID4gaW5jbHVkZXMsIHRoZSBwYWNrYWdlIG93bmVyIGdldHMg dG8gZGVjaWRlIGhvdyB0bw0KPiA+ID4gbWFpbnRhaW4gdGhlIGludGVyZmFjZXMgaW4gdGhlIHBy aXZhdGUgaW5jbHVkZXMgdG8NCj4gPiA+IHN1cHBvcnQgdGhvc2UgbW9kdWxlcy9saWJzLg0KPiA+ ID4NCj4gPiA+IEZvciBleGFtcGxlLCB0aGUgQ3J5cHRvUGtnIGhhcyBtb2R1bGVzIHRoYXQgYXJl DQo+ID4gPiBpbnRlbmRlZCB0byBiZSB1c2VkIGFzIHByZS1idWlsdCBiaW5hcmllcywgc28gdGhl DQo+ID4gPiBDcnlwdG9Qa2cgb3duZXIgbmVlZHMgdG8gbWFrZSBzdXJlIHRoZSBtYWludGVuYW5j ZQ0KPiA+ID4gb2YgdGhlIHByaXZhdGUgaW5jbHVkZXMgc3VwcG9ydHMgYm90aCB0aGUgc291cmNl IGFuZA0KPiA+ID4gYmluYXJ5IHVzZSBjYXNlcy4NCj4gPiA+DQo+ID4gPiBUaGUgcHJpdmF0ZSBQ cm90b2NvbC9QUEkgaW50ZXJmYWNlcyBpbiB0aGUgQ3J5cHRvUGtnDQo+ID4gPiB3ZXJlIGRlc2ln bmVkIHRvIHN1cHBvcnQgZnV0dXJlIGV4cGFuc2lvbi4gIFRoZSBmaXJzdA0KPiA+ID4gQVBJIGlu IHRoZSBQcm90b2NvbC9QUEkgaXMgR2V0VmVyc2lvbigpLiAgVGhlIHZlcnNpb24NCj4gPiA+IHZh bHVlIHJldHVybmVkIGNhbiBiZSB1c2VkIHRvIGhhdmUgZGlmZmVyZW50IGxheW91dHMNCj4gPiA+ IG9mIGZpZWxkcyBpbiB0aGUgUHJvdG9jb2wvUFBJLiAgSW4gb3JkZXIgdG8gc3VwcG9ydA0KPiA+ ID4gYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIEFQSXMgYXJlIGFkZGVkIHRvIHRoZSBlbmQNCj4g PiA+IG9mIHRoZSBQcm90b2NvbC9QUEkgc3RydWN0dXJlIGFzIHRoZSB2ZXJzaW9uIHZhbHVlDQo+ ID4gPiBpcyBpbmNyZWFzZWQuICBZb3Ugd2lsbCBub3RpY2UgdGhhdCB0aGVyZSBpcyBhbiBYNTA5 DQo+ID4gPiBzZXJ2aWNlIHRoYXQgd2FzIGFkZGVkIGZ1cnRoZXIgZG93biB0aGFuIHRoZSBpbml0 aWFsDQo+ID4gPiBncm91cGluZy4gIFRoaXMgaXMganVzdCBhbiBleGFtcGxlIG9mIGhvdyB0aGUg Q3J5cHRvUGtnDQo+ID4gPiBpcyBtYWludGFpbmluZyBhIHByaXZhdGUgaW50ZXJmYWNlIGZvciBi aW5hcnkgdXNlIGNhc2VzLg0KPiA+ID4gT3RoZXIgcGFja2FnZXMgbWF5IGNob29zZSBhbHRlcm5h dGUgdGVjaG5pcXVlcy4NCj4gPiA+DQo+ID4gPiBUaGFua3MsDQo+ID4gPg0KPiA+ID4gTWlrZQ0K PiA+ID4NCj4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gRnJvbTog ZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbg0KPiA+ID4gPiBC ZWhhbGYgT2YgWWFvLCBKaWV3ZW4NCj4gPiA+ID4gU2VudDogVGh1cnNkYXksIE1hcmNoIDI2LCAy MDIwIDk6NTkgUE0NCj4gPiA+ID4gVG86IEZ1LCBTaXl1YW4gPHNpeXVhbi5mdUBpbnRlbC5jb20+ Ow0KPiA+ID4gPiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgR2FvLCBaaGljaGFvDQo+ID4gPiA+IDx6 aGljaGFvLmdhb0BpbnRlbC5jb20+DQo+ID4gPiA+IENjOiBXYW5nLCBKaWFuIEogPGppYW4uai53 YW5nQGludGVsLmNvbT47IEx1LCBYaWFveXVYDQo+ID4gPiA+IDx4aWFveXV4Lmx1QGludGVsLmNv bT47IE1hY2llaiBSYWJlZGENCj4gPiA+ID4gPG1hY2llai5yYWJlZGFAbGludXguaW50ZWwuY29t PjsgV3UsIEppYXhpbg0KPiA+ID4gPiA8amlheGluLnd1QGludGVsLmNvbT4NCj4gPiA+ID4gU3Vi amVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggMC84XSBDcnlwdG9Qa2c6IFJldGlyZQ0KPiA+ ID4gPiB0aGUgZGVwcmVjYXRlIGZ1bmN0aW9uDQo+ID4gPiA+DQo+ID4gPiA+IFRoYW5rcyBTaXl1 bi4NCj4gPiA+ID4gSSB0aGluayBwcm9iYWJseSB3ZSBuZWVkIGRpc2N1c3MgdGhpcyBtb3JlLg0K PiA+ID4gPg0KPiA+ID4gPiAxKSBBYm91dCBwcml2YXRlIHYucy4gcHVibGljLg0KPiA+ID4gPg0K PiA+ID4gPiBUaGUgYmVuZWZpdCBmb3IgcHJpdmF0ZSBpbmNsdWRlIGlzIHRvIGlzb2xhdGUgZXh0 ZXJuYWwNCj4gPiA+ID4gaW50ZXJmYWNlIGFuZCBpbnRlcm5hbCBpbnRlcmZhY2UuDQo+ID4gPiA+ IEEgcGFja2FnZSBjYW4ga2VlcCB1cGRhdGluZyBpdHMgcHJpdmF0ZSBpbnRlcmZhY2Ugd2l0aG91 dA0KPiA+ID4gPiBpbXBhY3QgYW55IG90aGVyIHBhY2thZ2VzLg0KPiA+ID4gPiBIb3dldmVyLCBp biB0aGlzIGNhc2UsIGEgcHJpdmF0ZSBpbnRlcmZhY2UgdXBkYXRlIHdpbGwNCj4gPiA+ID4gYnJp bmcgYmluYXJ5IGNvbXBhdGliaWxpdHkgaXNzdWUgd2l0aCBvdGhlciBwYWNrYWdlLg0KPiA+ID4g PiBJIGFtIG5vdCBzdXJlIGl0IGlzIGFjY2VwdGFibGUgb3Igbm90Lg0KPiA+ID4gPg0KPiA+ID4g PiBNaWtlDQo+ID4gPiA+IERvIHlvdSBoYXZlIGFueSBjb21tZW50PyBJcyB0aGF0IHRoZSBkZXNp Z24gZ29hbCBvZg0KPiA+ID4gPiBwcml2YXRlIGludGVyZmFjZSAtIGp1c3Qga2VlcCBzb3VyY2Ug Y29kZSBjb21wYXRpYmlsaXR5LA0KPiA+ID4gPiBidXQgbm90IGJpbmFyeSBjb21wYXRpYmxpdHk/ DQo+ID4gPiA+DQo+ID4gPiA+IDIpIEFib3V0IHRoZSBwcm90b2NvbCBpdHNlbGYuDQo+ID4gPiA+ DQo+ID4gPiA+IE9uZSBjb25jZXJuIEkgaGF2ZSBpcyB0aGF0IHdlICpoYXJkY29kZSogdGhlIGFs Z29yaXRobSBpbg0KPiA+ID4gPiBwcm90b2NvbC4NCj4gPiA+ID4NCj4gPiA+ID4gV2Uga2VlcHMg YWRkaW5nIG5ldyBhbGdvcml0aG0gYW5kIHJlbW92aW5nIG9sZCBvbmUuIFRoYXQNCj4gPiA+ID4g bWVhbnMgdGhpcyBwcm90b2NvbCBpbnRlcmZhY2UgaXMgdW5zdGFibGUuDQo+ID4gPiA+DQo+ID4g PiA+IFRvZGF5LCB3ZSBoYXZlIGRlZmluZWQgU0hBMiBzZXQsIGFuZCBkZXByZWNhdGluZyBTSEEx IGFuZA0KPiA+ID4gPiBvbGRlciBvbmUuIFRvbW9ycm93IHdlIG1heSBuZWVkIGFkZCBTSEEzIHNl dC4NCj4gPiA+ID4gVG9kYXksIHdlIGhhdmUgUlNBUEtDUzFfMTUuIFRvbW9ycm93IHdlIHdpbGwg aGF2ZSBSU0FQU1MuDQo+ID4gPiA+IFNvbWUgb3RoZXIgbmV3IHNldCBvZiBhbGdvcml0aG1zIG1p Z2h0IGJlIGFkZGVkIGxhdGVyLA0KPiA+ID4gPiBzdWNoIGFzIEFFQUQsIEdNQUMuDQo+ID4gPiA+ DQo+ID4gPiA+IEZvciBhIHByb3RvY29sIGRlZmluaXRpb24sIEkgdGhpbmsgd2UgbmVlZCAqYWJz dHJhY3QgdGhlDQo+ID4gPiA+IGFjdGlvbiosIGJ1dCBub3QgKmFsZ29yaXRobSouDQo+ID4gPiA+ IE9uZSBnb29kIGV4YW1wbGUgaXMgdGhlIFVFRkkgSEFTSDIgUHJvdG9jb2wuDQo+ID4gPiA+IGh0 dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRrMi9ibG9iL21hc3Rlci9NZGVQa2cvSW5jbA0K PiA+ID4gPiB1ZGUvUHJvdG9jb2wvSGFzaDIuaA0KPiA+ID4gPiBJdCBqdXN0IHRlbGxzIHlvdSBk byB0aGUgaGFzaC4gWW91IG1heSBhZGQgbmV3IGFsZ29yaXRobQ0KPiA+ID4gPiBHVUlELg0KPiA+ ID4gPg0KPiA+ID4gPiBBbm90aGVyIGdvb2QgZXhhbXBsZSBpcyBpbnNpZGUgb2Ygb3BlbnNzbC4g Tm93IGl0IGlzDQo+ID4gPiA+IHVzaW5nIEVWUCBzdHlsZSBjaXBoZXIgYWxnby4NCj4gPiA+ID4g Rm9yIGV4YW1wbGUsDQo+ID4gPiA+IGh0dHBzOi8vd3d3Lm9wZW5zc2wub3JnL2RvY3MvbWFuMS4x LjEvbWFuMy9FVlBfRW5jcnlwdEluaQ0KPiA+ID4gPiB0X2V4Lmh0bWwNCj4gPiA+ID4gaHR0cHM6 Ly93d3cub3BlbnNzbC5vcmcvZG9jcy9tYW4xLjEuMC9tYW4zL0VWUF9DSVBIRVJfQ1RYDQo+ID4g PiA+IF9jdHJsLmh0bWwNCj4gPiA+ID4gVGhlIGNpcGhlciBpdHNlbGYgaXMgaW5wdXQgYXMgcGFy YW1ldGVyLg0KPiA+ID4gPg0KPiA+ID4gPiBUaGUgYmVuZWZpdCBpcyB0aGF0LCBpZiB3ZSB3YW50 IHRvIGRlcHJlY2F0ZSBhbg0KPiA+ID4gPiBhbGdvcml0aG0sIHRoZSBpbnRlcmZhY2UgY2FuIGJl IHVuY2hhbmdlZC4NCj4gPiA+ID4gSnVzdCB0aGUgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24gY2Fu IGJlIGNoYW5nZWQuDQo+ID4gPiA+IFRoZSBjdXJyZW50IFBDRCBtZWNoYW5pc20gY2FuIHN0aWxs IGJlIGFwcGxpZWQgdG8NCj4gPiA+ID4gaW50ZXJuYWwgaW1wbGVtZW50YXRpb24uDQo+ID4gPiA+ DQo+ID4gPiA+IENhbiB3ZSBnZXQgYSBjaGFuY2UgdG8gcmV2aXNpdC9yZWRlc2lnbiB0aGUgcHJv dG9jb2wgQVBJLA0KPiA+ID4gPiB3aGVuIHdlIG1vdmUgdG8gcHVibGljIGluY2x1ZGU/DQo+ID4g PiA+DQo+ID4gPiA+IFRoYW5rIHlvdQ0KPiA+ID4gPiBZYW8gSmlld2VuDQo+ID4gPiA+DQo+ID4g PiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiBGcm9tOiBGdSwgU2l5 dWFuIDxzaXl1YW4uZnVAaW50ZWwuY29tPg0KPiA+ID4gPiA+IFNlbnQ6IEZyaWRheSwgTWFyY2gg MjcsIDIwMjAgMTE6MDcgQU0NCj4gPiA+ID4gPiBUbzogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9A aW50ZWwuY29tPjsNCj4gPiA+ID4gZGV2ZWxAZWRrMi5ncm91cHMuaW87IEdhbywgWmhpY2hhbw0K PiA+ID4gPiA+IDx6aGljaGFvLmdhb0BpbnRlbC5jb20+DQo+ID4gPiA+ID4gQ2M6IFdhbmcsIEpp YW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgTHUsIFhpYW95dVgNCj4gPiA+ID4gPHhpYW95 dXgubHVAaW50ZWwuY29tPjsNCj4gPiA+ID4gPiBNYWNpZWogUmFiZWRhIDxtYWNpZWoucmFiZWRh QGxpbnV4LmludGVsLmNvbT47IFd1LA0KPiA+ID4gPiBKaWF4aW4NCj4gPiA+ID4gPiA8amlheGlu Lnd1QGludGVsLmNvbT4NCj4gPiA+ID4gPiBTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRD SCAwLzhdIENyeXB0b1BrZzogUmV0aXJlDQo+ID4gPiA+IHRoZSBkZXByZWNhdGUgZnVuY3Rpb24N Cj4gPiA+ID4gPg0KPiA+ID4gPiA+IEhpLCBKaWV3ZW4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEFs dGhvdWdoIHRoZSBwcm90b2NvbCBpcyBwcml2YXRlLCBhIGNvcnJlc3BvbmRpbmcNCj4gPiA+ID4g QmFzZUNyeXB0b0xpYiBpbnN0YW5jZSBpcw0KPiA+ID4gPiA+IG5vdCBwcml2YXRlLCBsaWtlIFBl aUNyeXB0TGliLmluZiwgUnVudGltZUNyeXB0TGliLA0KPiA+ID4gPiBldGMuIFRoZXNlIGxpYnJh cnkgaW5zdGFuY2VzDQo+ID4gPiA+ID4gd2lsbCBiZSBzdGF0aWMgbGlua2VkIHRvIHRoZSBjb25z dW1lciBkcml2ZXIsIGZvcg0KPiA+ID4gPiBleGFtcGxlIGFuIGlTQ1NJIG5ldHdvcmsgZHJpdmVy Lg0KPiA+ID4gPiA+IFNvIGFjdHVhbGx5IGl0J3Mgbm90IGEgInByaXZhdGUiIGNoYW5nZSBpbnNp ZGUNCj4gPiA+ID4gQ3J5cHRvUGtnLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gVGhlIGdvYWwgdG8g cHJvdmlkZSBhIGRyaXZlciB2ZXJzaW9uIG9mIGNyeXB0byBzZXJ2aWNlDQo+ID4gPiA+IGlzIHRv IHN1cHBvcnQgbW9kdWxpemF0aW9uDQo+ID4gPiA+ID4gRlcgdXBkYXRlLCB3aGljaCBtZWFucyB0 aGUgY3J5cHRvIGRyaXZlciBtYXkgTk9UIGJlDQo+ID4gPiA+IHVwZGF0ZWQgdG9nZXRoZXIgd2l0 aA0KPiA+ID4gPiA+IGl0cyBjb25zdW1lci4gQSBwbGF0Zm9ybSBtYXkgY2hvb3NlIHRvIHVwZGF0 ZSB0aGUNCj4gPiA+ID4gY3J5cHRvIHNlcnZpY2UgZHJpdmVyIHRvIGENCj4gPiA+ID4gPiBuZXcg dmVyc2lvbiB3aXRoIHRoaXMgcGF0Y2gsIHRoZW4gYWxsIHRoZSBCYXNlQ3J5cHRvTGliDQo+ID4g PiA+IGNvbnN1bWVycyB3aWxsIGJlDQo+ID4gPiA+ID4gbWVzc2VkLg0KPiA+ID4gPiA+DQo+ID4g PiA+ID4gQmVzdCBSZWdhcmRzDQo+ID4gPiA+ID4gU2l5dWFuDQo+ID4gPiA+ID4NCj4gPiA+ID4g PiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gPiBGcm9tOiBZYW8sIEpp ZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+DQo+ID4gPiA+ID4gPiBTZW50OiAyMDIw5bm0M+ac iDI35pelIDEwOjU4DQo+ID4gPiA+ID4gPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IEZ1LCBT aXl1YW4NCj4gPiA+ID4gPHNpeXVhbi5mdUBpbnRlbC5jb20+OyBHYW8sIFpoaWNoYW8NCj4gPiA+ ID4gPiA+IDx6aGljaGFvLmdhb0BpbnRlbC5jb20+DQo+ID4gPiA+ID4gPiBDYzogV2FuZywgSmlh biBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBMdSwgWGlhb3l1WA0KPiA+ID4gPiA+IDx4aWFv eXV4Lmx1QGludGVsLmNvbT47DQo+ID4gPiA+ID4gPiBNYWNpZWogUmFiZWRhIDxtYWNpZWoucmFi ZWRhQGxpbnV4LmludGVsLmNvbT47IFd1LA0KPiA+ID4gPiBKaWF4aW4NCj4gPiA+ID4gPiA+IDxq aWF4aW4ud3VAaW50ZWwuY29tPg0KPiA+ID4gPiA+ID4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVs XSBbUEFUQ0ggMC84XSBDcnlwdG9Qa2c6DQo+ID4gPiA+IFJldGlyZSB0aGUgZGVwcmVjYXRlDQo+ ID4gPiA+ID4gZnVuY3Rpb24NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBFREtJSV9DUllQVE9f UFJPVE9DT0wgaXMgKnByaXZhdGUqLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiBo dHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazIvYmxvYi9tYXN0ZXIvQ3J5cHRvUGtnL1AN Cj4gPiA+ID4gcml2YXRlL1Byb3RvY29sL0MNCj4gPiA+ID4gPiA+IHJ5cHRvLmgNCj4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiBXaHkgd2UgY2Fubm90IGNoYW5nZT8NCj4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4gPiA+ID4gPiA+ID4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVk azIuZ3JvdXBzLmlvPg0KPiA+ID4gPiBPbiBCZWhhbGYgT2YgU2l5dWFuLA0KPiA+ID4gPiA+IEZ1 DQo+ID4gPiA+ID4gPiA+IFNlbnQ6IEZyaWRheSwgTWFyY2ggMjcsIDIwMjAgMTA6NDcgQU0NCj4g PiA+ID4gPiA+ID4gVG86IEdhbywgWmhpY2hhbyA8emhpY2hhby5nYW9AaW50ZWwuY29tPjsNCj4g PiA+ID4gZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiA+ID4gPiA+ID4gQ2M6IFdhbmcsIEppYW4g SiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgTHUsDQo+ID4gPiA+IFhpYW95dVgNCj4gPiA+ID4g PiA+IDx4aWFveXV4Lmx1QGludGVsLmNvbT47DQo+ID4gPiA+ID4gPiA+IE1hY2llaiBSYWJlZGEg PG1hY2llai5yYWJlZGFAbGludXguaW50ZWwuY29tPjsgV3UsDQo+ID4gPiA+IEppYXhpbg0KPiA+ ID4gPiA+ID4gPiA8amlheGluLnd1QGludGVsLmNvbT4NCj4gPiA+ID4gPiA+ID4gU3ViamVjdDog UmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggMC84XSBDcnlwdG9Qa2c6DQo+ID4gPiA+IFJldGlyZSB0 aGUgZGVwcmVjYXRlDQo+ID4gPiA+ID4gPiBmdW5jdGlvbg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiBIaSwgWmhpY2hhbw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBXZSBzaG91 bGQgbmV2ZXIgbW92ZS9kZWxldGUgYSBtZW1iZXIgZmllbGQgb2YgYQ0KPiA+ID4gPiBwcmV2aW91 cyBkZWZpbmVkIHByb3RvY29sDQo+ID4gPiA+ID4gPiA+IEludGVyZmFjZS4gSW5zdGVhZCwgdGhl c2UgcHJvdG9jb2wgQVBJcyBzaGFsbCBiZQ0KPiA+ID4gPiBrZXB0IGFuZCByZXR1cm4gYW4gZXJy b3IgY29kZQ0KPiA+ID4gPiA+ID4gPiBJZiB0aGUgZnVuY3Rpb24gaXMgcmV0aXJlZC4gT3RoZXJ3 aXNlIHRoZSBjb25zdW1lcg0KPiA+ID4gPiBkcml2ZXIgbWF5IGNhbGwgaW50byBhbg0KPiA+ID4g PiA+ID4gPiBJbmNvcnJlY3QgZnVuY3Rpb24gaWYgaXQncyBidWlsZCB3aXRoIGRpZmZlcmVudA0K PiA+ID4gPiBjb2RlYmFzZS9QQ0Qgc2V0dGluZ3Mgd2l0aCB0aGUNCj4gPiA+ID4gPiA+ID4gQ3J5 cHRvIFBFSS9EWEUvU01NIGRyaXZlci4NCj4gPiA+ID4gPiA+ID4gVGhpcyBjb21tZW50IGFwcGxp ZXMgdG8gYWxsIHRoZQ0KPiA+ID4gPiBFREtJSV9DUllQVE9fUFJPVE9DT0wgcmVsYXRlZCBjaGFu Z2VzDQo+ID4gPiA+ID4gaW4NCj4gPiA+ID4gPiA+ID4geW91ciBwYXRjaCBzZXQuDQo+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEJlc3QgUmVnYXJkcw0KPiA+ID4gPiA+ID4gPiBTaXl1YW4N Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KPiA+ID4gPiA+ID4gPiA+IEZyb206IEdhbywgWmhpY2hhbyA8emhpY2hhby5nYW9AaW50ZWwu Y29tPg0KPiA+ID4gPiA+ID4gPiA+IFNlbnQ6IDIwMjDlubQz5pyIMjfml6UgOTo1Ng0KPiA+ID4g PiA+ID4gPiA+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+ID4gPiA+ID4gPiA+IENjOiBX YW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT47IEx1LA0KPiA+ID4gPiBYaWFveXVY DQo+ID4gPiA+ID4gPiA+IDx4aWFveXV4Lmx1QGludGVsLmNvbT47DQo+ID4gPiA+ID4gPiA+ID4g TWFjaWVqIFJhYmVkYSA8bWFjaWVqLnJhYmVkYUBsaW51eC5pbnRlbC5jb20+Ow0KPiA+ID4gPiBX dSwgSmlheGluDQo+ID4gPiA+ID4gPiA+ID4gPGppYXhpbi53dUBpbnRlbC5jb20+OyBGdSwgU2l5 dWFuDQo+ID4gPiA+IDxzaXl1YW4uZnVAaW50ZWwuY29tPg0KPiA+ID4gPiA+ID4gPiA+IFN1Ympl Y3Q6IFtQQVRDSCAwLzhdIENyeXB0b1BrZzogUmV0aXJlIHRoZQ0KPiA+ID4gPiBkZXByZWNhdGUg ZnVuY3Rpb24NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IFJFRjoNCj4gPiA+ID4g aHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjgyDQo+ID4g PiA+ID4gPiA+ID4gUkVGOg0KPiA+ID4gPiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcv c2hvd19idWcuY2dpP2lkPTE4OTgNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IE1E NCwgQVI0LCBUZGVzLCBBZXMgRWNiIG1vZGUsIE1ENSBhbmQgU0hBMSBpcyBub3QNCj4gPiA+ID4g c2VjdXJlIGFueSBsb25nZXIuDQo+ID4gPiA+ID4gPiA+ID4gVGhleSBhcmUgYWxsIGRlcHJlY2F0 ZWQuIEVkazIgd291bGQgbm90IHN1cHBvcnQNCj4gPiA+ID4gdGhlbSBhbnkgbG9uZ2VyLg0KPiA+ ID4gPiA+ID4gPiA+IFNvIHJlbW92ZSB0aGVtLg0KPiA+ID4gPiA+ID4gPiA+IEJ1dCB1ZWZpIHNw ZWMgd2FudCB0byBrZWVwIE1ENSBhbmQgU0hBMSBmb3INCj4gPiA+ID4gYmFja3dhcmRzIGNvbXBh dGliaWxpdHkuDQo+ID4gPiA+ID4gPiA+ID4gU28gYWRkIHR3byBwY2RzIHRvIGNvbnRyb2wgdGhl IE1ENSBhbmQgU0hBMQ0KPiA+ID4gPiBlbmFibGVtZW50LiBTZXQgdGhlIHBjZHMNCj4gPiA+ID4g PiA+ID4gPiBkZWZhdWx0IHZhbHVlIHRvIGZhbHNlIHRvIGluZGljYXRlIHRoZXkgYXJlDQo+ID4g PiA+IGRlcHJlY2F0ZWQuDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBOZXRXb3Jr UGtnJ3MgaVNDU0kgZHJpdmVyIHdvdWxkIGNvbnN1bWUgdGhlIE1ENQ0KPiA+ID4gPiBmdW5jdGlv biwgc28gY2hhbmdlDQo+ID4gPiA+ID4gPiA+ID4gdGhlIG1kNSBwY2QgdG8gVFVSRSB3aGVuIGlT Q1NJIGlzIGVuYWJsZWQuDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBDYzogSmlh biBKIFdhbmcgPGppYW4uai53YW5nQGludGVsLmNvbT4NCj4gPiA+ID4gPiA+ID4gPiBDYzogWGlh b3l1IEx1IDx4aWFveXV4Lmx1QGludGVsLmNvbT4NCj4gPiA+ID4gPiA+ID4gPiBDYzogTWFjaWVq IFJhYmVkYSA8bWFjaWVqLnJhYmVkYUBsaW51eC5pbnRlbC5jb20+DQo+ID4gPiA+ID4gPiA+ID4g Q2M6IEppYXhpbiBXdSA8amlheGluLnd1QGludGVsLmNvbT4NCj4gPiA+ID4gPiA+ID4gPiBDYzog U2l5dWFuIEZ1IDxzaXl1YW4uZnVAaW50ZWwuY29tPg0KPiA+ID4gPiA+ID4gPiA+IFNpZ25lZC1v ZmYtYnk6IFpoaWNoYW8gR2FvDQo+ID4gPiA+IDx6aGljaGFvLmdhb0BpbnRlbC5jb20+DQo+ID4g PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBaaGljaGFvIEdhbyAoOCk6DQo+ID4gPiA+ID4g PiA+ID4gICBDcnlwdG9Qa2cvQmFzZUNycHl0TGliOiBSZXRpcmUgTUQ0IGFsZ29yaXRobQ0KPiA+ ID4gPiA+ID4gPiA+ICAgQ3J5cHRvUGtnL0Jhc2VDcnlwdExpYjogUmV0aXJlIEFSQzQgYWxnb3Jp dGhtDQo+ID4gPiA+ID4gPiA+ID4gICBDcnlwdG9Qa2cvQmFzZUNyeXB0TGliOiBSZXRpcmUgdGhl IFRkZXMNCj4gPiA+ID4gYWxnb3JpdGhtDQo+ID4gPiA+ID4gPiA+ID4gICBDcnlwdG9Qa2cvQmFz ZUNyeXB0TGliOiBSZXRpcmUgQWVzIEVjYiBtb2RlDQo+ID4gPiA+IGFsZ29yaXRobQ0KPiA+ID4g PiA+ID4gPiA+ICAgQ3J5cHRvUGtnL2RlYzogQWRkIHBjZHMgdG8gYXZvaWQgYnVpbGRpbmcgdGhl DQo+ID4gPiA+IGRlcHJlY2F0ZWQgZnVuY3Rpb24NCj4gPiA+ID4gPiA+ID4gPiAgIE5ldFdvcmtQ a2cvUGNkLmluYzogRW5hYmxlIHRoZSBNRDUgZm9yIGlTQ1NJDQo+ID4gPiA+ID4gPiA+ID4gICBD cnlwdG8vQmFzZUNyeXB0TGliOiBVc2luZyBwY2QgdG8gY29udHJvbCBNRDUNCj4gPiA+ID4gZW5h YmxlbWVudA0KPiA+ID4gPiA+ID4gPiA+ICAgQ3J5cHRvUGtnL0Jhc2VDcnlwdExpYjogVXNlIFBj ZCB0byBjb250cm9sIHRoZQ0KPiA+ID4gPiBTSEExIGVuYWJsZW1lbnQNCj4gPiA+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gPiA+ICBDcnlwdG9Qa2cvQ3J5cHRvUGtnLmRlYyAgICAgICAgICAgICAg ICAgICAgICAgfA0KPiA+ID4gPiAxMSArDQo+ID4gPiA+ID4gPiA+ID4gIENyeXB0b1BrZy9Dcnlw dG9Qa2cudW5pICAgICAgICAgICAgICAgICAgICAgICB8DQo+ID4gPiA+IDExICsNCj4gPiA+ID4g PiA+ID4gPiAgQ3J5cHRvUGtnL0RyaXZlci9DcnlwdG8uYyAgICAgICAgICAgICAgICAgICAgIHwN Cj4gPiA+ID4gNjM0ICstLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ID4gPiA+ID4gPiA+ICBDcnlwdG9Q a2cvSW5jbHVkZS9MaWJyYXJ5L0Jhc2VDcnlwdExpYi5oICAgICAgfA0KPiA+ID4gPiA1NDggLS0t LS0tLS0tLS0tLS0tDQo+ID4gPiA+ID4gPiA+ID4gIC4uLi9MaWJyYXJ5L0Jhc2VDcnlwdExpYi9C YXNlQ3J5cHRMaWIuaW5mICAgICB8DQo+ID4gPiA+IDkgKy0NCj4gPiA+ID4gPiA+ID4gPiAgLi4u L0xpYnJhcnkvQmFzZUNyeXB0TGliL0NpcGhlci9DcnlwdEFlcy5jICAgIHwNCj4gPiA+ID4gMTE0 IC0tLS0NCj4gPiA+ID4gPiA+ID4gPiAgLi4uL0Jhc2VDcnlwdExpYi9DaXBoZXIvQ3J5cHRBZXNO dWxsLmMgICAgICAgIHwNCj4gPiA+ID4gNTIgLS0NCj4gPiA+ID4gPiA+ID4gPiAgLi4uL0xpYnJh cnkvQmFzZUNyeXB0TGliL0NpcGhlci9DcnlwdEFyYzQuYyAgIHwNCj4gPiA+ID4gMjA1IC0tLS0t LQ0KPiA+ID4gPiA+ID4gPiA+ICAuLi4vQmFzZUNyeXB0TGliL0NpcGhlci9DcnlwdEFyYzROdWxs LmMgICAgICAgfA0KPiA+ID4gPiAxMjQgLS0tLQ0KPiA+ID4gPiA+ID4gPiA+ICAuLi4vTGlicmFy eS9CYXNlQ3J5cHRMaWIvQ2lwaGVyL0NyeXB0VGRlcy5jICAgfA0KPiA+ID4gPiAzNjQgLS0tLS0t LS0tLQ0KPiA+ID4gPiA+ID4gPiA+ICAuLi4vQmFzZUNyeXB0TGliL0NpcGhlci9DcnlwdFRkZXNO dWxsLmMgICAgICAgfA0KPiA+ID4gPiAxNjAgLS0tLS0NCj4gPiA+ID4gPiA+ID4gPiAgLi4uL0xp YnJhcnkvQmFzZUNyeXB0TGliL0hhc2gvQ3J5cHRNZDQuYyAgICAgIHwNCj4gPiA+ID4gMjIzIC0t LS0tLQ0KPiA+ID4gPiA+ID4gPiA+ICAuLi4vTGlicmFyeS9CYXNlQ3J5cHRMaWIvSGFzaC9Dcnlw dE1kNE51bGwuYyAgfA0KPiA+ID4gPiAxNDMgLS0tLQ0KPiA+ID4gPiA+ID4gPiA+ICAuLi4vTGli cmFyeS9CYXNlQ3J5cHRMaWIvSGFzaC9DcnlwdE1kNS5jICAgICAgfA0KPiA+ID4gPiA1ICstDQo+ ID4gPiA+ID4gPiA+ID4gIC4uLi9MaWJyYXJ5L0Jhc2VDcnlwdExpYi9IbWFjL0NyeXB0SG1hY01k NS5jICB8DQo+ID4gPiA+IDMgKw0KPiA+ID4gPiA+ID4gPiA+ICAuLi4vQmFzZUNyeXB0TGliL0ht YWMvQ3J5cHRIbWFjTWQ1TnVsbC5jICAgICAgfA0KPiA+ID4gPiAzICsNCj4gPiA+ID4gPiA+ID4g PiAgLi4uL0xpYnJhcnkvQmFzZUNyeXB0TGliL0htYWMvQ3J5cHRIbWFjU2hhMS5jIHwNCj4gPiA+ ID4gMyArDQo+ID4gPiA+ID4gPiA+ID4gIC4uLi9CYXNlQ3J5cHRMaWIvSG1hYy9DcnlwdEhtYWNT aGExTnVsbC5jICAgICB8DQo+ID4gPiA+IDMgKw0KPiA+ID4gPiA+ID4gPiA+ICAuLi4vTGlicmFy eS9CYXNlQ3J5cHRMaWIvUGVpQ3J5cHRMaWIuaW5mICAgICAgfA0KPiA+ID4gPiAxMyArLQ0KPiA+ ID4gPiA+ID4gPiA+ICAuLi4vQmFzZUNyeXB0TGliL1BrL0NyeXB0UGtjczVQYmtkZjIuYyAgICAg ICAgfA0KPiA+ID4gPiAzICsNCj4gPiA+ID4gPiA+ID4gPiAgLi4uL0xpYnJhcnkvQmFzZUNyeXB0 TGliL1BrL0NyeXB0UnNhQmFzaWMuYyAgIHwNCj4gPiA+ID4gNSArDQo+ID4gPiA+ID4gPiA+ID4g IC4uLi9MaWJyYXJ5L0Jhc2VDcnlwdExpYi9Qay9DcnlwdFJzYUV4dC5jICAgICB8DQo+ID4gPiA+ IDUgKw0KPiA+ID4gPiA+ID4gPiA+ICAuLi4vTGlicmFyeS9CYXNlQ3J5cHRMaWIvUnVudGltZUNy eXB0TGliLmluZiAgfA0KPiA+ID4gPiAxMyArLQ0KPiA+ID4gPiA+ID4gPiA+ICAuLi4vTGlicmFy eS9CYXNlQ3J5cHRMaWIvU21tQ3J5cHRMaWIuaW5mICAgICAgfA0KPiA+ID4gPiAxMyArLQ0KPiA+ ID4gPiA+ID4gPiA+ICAuLi4vQmFzZUNyeXB0TGliTnVsbC9CYXNlQ3J5cHRMaWJOdWxsLmluZiAg ICAgfA0KPiA+ID4gPiAzIC0NCj4gPiA+ID4gPiA+ID4gPiAgLi4uL0Jhc2VDcnlwdExpYk51bGwv Q2lwaGVyL0NyeXB0QWVzTnVsbC5jICAgIHwNCj4gPiA+ID4gNTQgKy0NCj4gPiA+ID4gPiA+ID4g PiAgLi4uL0Jhc2VDcnlwdExpYk51bGwvQ2lwaGVyL0NyeXB0QXJjNE51bGwuYyAgIHwNCj4gPiA+ ID4gMTI0IC0tLS0NCj4gPiA+ID4gPiA+ID4gPiAgLi4uL0Jhc2VDcnlwdExpYk51bGwvQ2lwaGVy L0NyeXB0VGRlc051bGwuYyAgIHwNCj4gPiA+ID4gMTYwIC0tLS0tDQo+ID4gPiA+ID4gPiA+ID4g IC4uLi9CYXNlQ3J5cHRMaWJOdWxsL0hhc2gvQ3J5cHRNZDROdWxsLmMgICAgICB8DQo+ID4gPiA+ IDE0MyAtLS0tDQo+ID4gPiA+ID4gPiA+ID4gIC4uLi9CYXNlQ3J5cHRMaWJOdWxsL0hhc2gvQ3J5 cHRNZDVOdWxsLmMgICAgICB8DQo+ID4gPiA+IDMgKw0KPiA+ID4gPiA+ID4gPiA+ICAuLi4vQmFz ZUNyeXB0TGliTnVsbC9IbWFjL0NyeXB0SG1hY01kNU51bGwuYyAgfA0KPiA+ID4gPiAzICsNCj4g PiA+ID4gPiA+ID4gPiAgLi4uL0Jhc2VDcnlwdExpYk51bGwvSG1hYy9DcnlwdEhtYWNTaGExTnVs bC5jIHwNCj4gPiA+ID4gNCArLQ0KPiA+ID4gPiA+ID4gPiA+ICAuLi4vQmFzZUNyeXB0TGliT25Q cm90b2NvbFBwaS9DcnlwdExpYi5jICAgICAgfA0KPiA+ID4gPiA2MDQgKy0tLS0tLS0tLS0tLS0t LS0NCj4gPiA+ID4gPiA+ID4gPiAgLi4uL0xpYnJhcnkvQmFzZUhhc2hBcGlMaWIvQmFzZUhhc2hB cGlMaWIuYyAgIHwNCj4gPiA+ID4gMTIgKw0KPiA+ID4gPiA+ID4gPiA+ICAuLi4vTGlicmFyeS9C YXNlSGFzaEFwaUxpYi9CYXNlSGFzaEFwaUxpYi5pbmYgfA0KPiA+ID4gPiAxICsNCj4gPiA+ID4g PiA+ID4gPiAgQ3J5cHRvUGtnL1ByaXZhdGUvUHJvdG9jb2wvQ3J5cHRvLmggICAgICAgICAgIHwN Cj4gPiA+ID4gNTgzICstLS0tLS0tLS0tLS0tLS0NCj4gPiA+ID4gPiA+ID4gPiAgTmV0d29ya1Br Zy9OZXR3b3JrUGNkcy5kc2MuaW5jICAgICAgICAgICAgICAgIHwNCj4gPiA+ID4gNSArLQ0KPiA+ ID4gPiA+ID4gPiA+ICAzNyBmaWxlcyBjaGFuZ2VkLCAxNDUgaW5zZXJ0aW9ucygrKSwgNDIyMQ0K PiA+ID4gPiBkZWxldGlvbnMoLSkNCj4gPiA+ID4gPiA+ID4gPiAgZGVsZXRlIG1vZGUgMTAwNjQ0 DQo+ID4gPiA+IENyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VDcnlwdExpYi9DaXBoZXIvQ3J5cHRBcmM0 LmMNCj4gPiA+ID4gPiA+ID4gPiAgZGVsZXRlIG1vZGUgMTAwNjQ0DQo+ID4gPiA+ID4gPiBDcnlw dG9Qa2cvTGlicmFyeS9CYXNlQ3J5cHRMaWIvQ2lwaGVyL0NyeXB0QXJjNE51bGwuYw0KPiA+ID4g PiA+ID4gPiA+ICBkZWxldGUgbW9kZSAxMDA2NDQNCj4gPiA+ID4gQ3J5cHRvUGtnL0xpYnJhcnkv QmFzZUNyeXB0TGliL0NpcGhlci9DcnlwdFRkZXMuYw0KPiA+ID4gPiA+ID4gPiA+ICBkZWxldGUg bW9kZSAxMDA2NDQNCj4gPiA+ID4gPiA+IENyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VDcnlwdExpYi9D aXBoZXIvQ3J5cHRUZGVzTnVsbC5jDQo+ID4gPiA+ID4gPiA+ID4gIGRlbGV0ZSBtb2RlIDEwMDY0 NA0KPiA+ID4gPiBDcnlwdG9Qa2cvTGlicmFyeS9CYXNlQ3J5cHRMaWIvSGFzaC9DcnlwdE1kNC5j DQo+ID4gPiA+ID4gPiA+ID4gIGRlbGV0ZSBtb2RlIDEwMDY0NA0KPiA+ID4gPiA+IENyeXB0b1Br Zy9MaWJyYXJ5L0Jhc2VDcnlwdExpYi9IYXNoL0NyeXB0TWQ0TnVsbC5jDQo+ID4gPiA+ID4gPiA+ ID4gIGRlbGV0ZSBtb2RlIDEwMDY0NA0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+IENyeXB0b1Br Zy9MaWJyYXJ5L0Jhc2VDcnlwdExpYk51bGwvQ2lwaGVyL0NyeXB0QXJjNE51bGwuYw0KPiA+ID4g PiA+ID4gPiA+ICBkZWxldGUgbW9kZSAxMDA2NDQNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiBD cnlwdG9Qa2cvTGlicmFyeS9CYXNlQ3J5cHRMaWJOdWxsL0NpcGhlci9DcnlwdFRkZXNOdWxsLmMN Cj4gPiA+ID4gPiA+ID4gPiAgZGVsZXRlIG1vZGUgMTAwNjQ0DQo+ID4gPiA+ID4gPiA+DQo+ID4g PiA+IENyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VDcnlwdExpYk51bGwvSGFzaC9DcnlwdE1kNE51bGwu Yw0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gLS0NCj4gPiA+ID4gPiA+ID4gPiAy LjIxLjAud2luZG93cy4xDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiA+DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+IA0KDQo=