From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id CFB9D21AE30D0 for ; Tue, 6 Jun 2017 07:54:30 -0700 (PDT) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga105.jf.intel.com with ESMTP; 06 Jun 2017 07:55:37 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.39,306,1493708400"; d="scan'208,217";a="977410699" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by orsmga003.jf.intel.com with ESMTP; 06 Jun 2017 07:55:36 -0700 Received: from fmsmsx152.amr.corp.intel.com (10.18.125.5) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 6 Jun 2017 07:54:11 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by FMSMSX152.amr.corp.intel.com (10.18.125.5) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 6 Jun 2017 07:54:11 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.146]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.197]) with mapi id 14.03.0319.002; Tue, 6 Jun 2017 22:54:08 +0800 From: "Yao, Jiewen" To: Brijesh Singh , "Zeng, Star" , "Justen, Jordan L" , Laszlo Ersek , "edk2-devel@lists.01.org" , "Dong, Eric" CC: "Thomas.Lendacky@amd.com" , "Gao, Liming" , "leo.duran@amd.com" , "Fan, Jeff" , "Yao, Jiewen" Thread-Topic: [edk2] [PATCH v6 00/17] x86: Secure Encrypted Virtualization (AMD) Thread-Index: AQHS1i6XS3nccqY8p0ihaGPO2ea5zKIGlS8AgAQSUICAAJ0DgIAAFskAgAPHAYCAABkkAIAHHyQAgAA22ACAAA+sgIAAHKOAgAE3sqA= Date: Tue, 6 Jun 2017 14:54:08 +0000 Message-ID: <74D8A39837DF1E4DA445A8C0B3885C503A964542@shsmsx102.ccr.corp.intel.com> References: <1495809845-32472-1-git-send-email-brijesh.singh@amd.com> <149583274037.25973.13062338567511386932@jljusten-skl> <6ecd0138-454e-6a6e-d034-beaf63466120@redhat.com> <149609029319.5770.13917390389219314003@jljusten-skl> <14301d64-9fa3-8231-42c1-52c2dcd9f96f@amd.com> <149630284935.10663.16670660897918560882@jljusten-skl> <661e46af-5e1c-733a-d027-1ae2e3052a28@amd.com> <149671154262.11907.18297341281786344033@jljusten-skl> <0C09AFA07DD0434D9E2A0C6AEB0483103B8E3C1D@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: 10.0.102.7 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 X-Content-Filtered-By: Mailman/MimeDel 2.1.22 Subject: Re: [PATCH v6 00/17] x86: Secure Encrypted Virtualization (AMD) X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Jun 2017 14:54:31 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkNCkl0IHRha2VzIG1lIHNvbWUgdGltZSB0byByZWFkIGFsbCBlbWFpbCBiZWxvdy4gSSBiZWxp ZXZlIGFsbCBvZiB1cyBoYXZlIGEgY2xlYW4gdW5kZXJzdGFuZGluZyBvbiB3aGF0IHByb2JsZW0g d2UgaGF2ZSBub3cgYW5kIHRoZSBwb3NzaWJsZSBzb2x1dGlvbnMgdG8gY2xlYXIgQyBiaXQgYXJl IGJlbG93DQoNCjEpICAgICAgIEluIER4ZUlwbCwgd2hlbiBpdCBidWlsZHMgcGFnZSB0YWJsZS4N Cg0KMikgICAgICAgSW4gRHhlQ29yZQ0KDQphKSAgICAgICAgIEJ5IHVzZSBDcHVBcmNoDQoNCmIp ICAgICAgICAgQnkgdXNlIHBhZ2UgdGFibGUgbGliDQoNCmMpICAgICAgICAgQnkgdXNlIGEgR0NE IHVwZGF0ZSBjYWxsYmFjaw0KDQpkKSAgICAgICAgIEJ5IHVzZSBQbGF0Zm9ybUhvb2sgbGliDQoN CjMpICAgICAgIEluIGEgc3RhbmRhbG9uZSBBbWRTZXYgZHJpdmVyLg0KDQpIZXJlIGlzIG15IHRo b3VnaHQ6DQoyLmEpIGlzIG5vdCBwb3NzaWJsZSwgcGVyIExlb+KAmXMgaW52ZXN0aWdhdGlvbi4N CjIuYikgaXMgbm90IGEgZ29vZCBkZXNpZ24sIGJlY2F1c2Ugd2UgZG8gbm90IGludHJvZHVjZSBh bnkgQ3B1IFNwZWNpZmljIHRoaW5nIHRvIER4ZUNvcmUgc28gZmFyLg0KMi5jKSBhbmQgMi5kKSBh cmUgc2FtZS4gSSBkbyBub3Qgc3VnZ2VzdCB3ZSBhZGQgYSBwcml2YXRlIGludGVyZmFjZSB0byB0 aGUgY29yZSBqdXN0IHRvIHN1cHBvcnQgb25lIHNwZWNpZmljIGZlYXR1cmUuDQoNCjEpIGlzIG9u ZSBwb3NzaWJsZSBzb2x1dGlvbiwgSSBzdWdnZXN0ZWQgYmVmb3JlLiBCdXQgaWYgTGVvL0xhc3ps byB0aGluayBpdCBpcyB0b28gaGFyZCB0byBpbXBsZW1lbnQsIEkgYW0gT0suDQoNCklmIDEpIGNh bm5vdCBiZSBjaG9zZW4sIEkgc3RpbGwgdGhpbmsgMykgaXMgdGhlIGJlc3QgaWRlYS4NCkl0IG1h a2VzIHRoZSBjb2RlIHZlcnkgY2xlYW4gYnkgaW50cm9kdWNpbmcgYSBzdGFuZGFsb25lIGRyaXZl ciB0byByZXNvbHZlIHRoZSBwcm9ibGVtLg0KWmVybyBpbXBhY3Qgb24gZXhpc3RpbmcgcGxhdGZv cm0uDQpJZiB0aGlzIGZlYXR1cmUgaXMgbm90IG5lZWRlZCwganVzdCByZW1vdmUgdGhlIGRyaXZl ci4NCg0KSSBkbyBub3Qgc2VlIGFueSBpc3N1ZSBvbiB1c2luZyBhIHByaW9yaSwgYmVjYXVzZTog QSkg4oCcYSBwcmlvcmnigJ0gaXMgY2xlYXJseSBkZWZpbmVkIGluIFBJIHNwZWMsIEIpIOKAnGEg cHJpb3Jp4oCdIGhhcyBhbHJlYWR5IGJlZW4gd2lkZWx5IHVzZWQgaW4gY3VycmVudCBwbGF0Zm9y bSBpbiBFREtJSSBvcGVuIHNvdXJjZSwgYXMgd2VsbCBhcyBjbG9zZSBzb3VyY2UgcGxhdGZvcm0u DQoNClRoYW5rIHlvdQ0KWWFvIEppZXdlbg0KDQoNCg0KRnJvbTogQnJpamVzaCBTaW5naCBbbWFp bHRvOmJyaWplc2guc2luZ2hAYW1kLmNvbV0NClNlbnQ6IFR1ZXNkYXksIEp1bmUgNiwgMjAxNyAx MTo1MSBBTQ0KVG86IFplbmcsIFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+OyBKdXN0ZW4sIEpv cmRhbiBMIDxqb3JkYW4ubC5qdXN0ZW5AaW50ZWwuY29tPjsgTGFzemxvIEVyc2VrIDxsZXJzZWtA cmVkaGF0LmNvbT47IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnOyBEb25nLCBFcmljIDxlcmljLmRv bmdAaW50ZWwuY29tPjsgWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPg0KQ2M6IFRo b21hcy5MZW5kYWNreUBhbWQuY29tOyBHYW8sIExpbWluZyA8bGltaW5nLmdhb0BpbnRlbC5jb20+ OyBsZW8uZHVyYW5AYW1kLmNvbTsgRmFuLCBKZWZmIDxqZWZmLmZhbkBpbnRlbC5jb20+DQpTdWJq ZWN0OiBSZTogW2VkazJdIFtQQVRDSCB2NiAwMC8xN10geDg2OiBTZWN1cmUgRW5jcnlwdGVkIFZp cnR1YWxpemF0aW9uIChBTUQpDQoNCkhpIEpvcmRhbiwNCg0KDQpPbiA2LzUvMTcgOTowOCBQTSwg WmVuZywgU3RhciB3cm90ZToNCj4gSSB3YXMgbm90IHRyYWNraW5nIHRoaXMgdGhyZWFkLg0KPiBK aWV3ZW4gd2lsbCBoZWxwIGdpdmUgY29tbWVudHMgYWJvdXQgdGhlIHBvdGVudGlhbCBjaGFuZ2Ug aW4gTWRlTW9kdWxlUGtnLg0KPg0KPiBUaGFua3MsDQo+IFN0YXINCj4gLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0NCj4gRnJvbTogSnVzdGVuLCBKb3JkYW4gTA0KPiBTZW50OiBUdWVzZGF5LCBK dW5lIDYsIDIwMTcgOToxMiBBTQ0KPiBUbzogQnJpamVzaCBTaW5naCA8YnJpamVzaC5zaW5naEBh bWQuY29tPG1haWx0bzpicmlqZXNoLnNpbmdoQGFtZC5jb20+PjsgTGFzemxvIEVyc2VrIDxsZXJz ZWtAcmVkaGF0LmNvbTxtYWlsdG86bGVyc2VrQHJlZGhhdC5jb20+PjsgZWRrMi1kZXZlbEBsaXN0 cy4wMS5vcmc8bWFpbHRvOmVkazItZGV2ZWxAbGlzdHMuMDEub3JnPjsgWmVuZywgU3RhciA8c3Rh ci56ZW5nQGludGVsLmNvbTxtYWlsdG86c3Rhci56ZW5nQGludGVsLmNvbT4+OyBEb25nLCBFcmlj IDxlcmljLmRvbmdAaW50ZWwuY29tPG1haWx0bzplcmljLmRvbmdAaW50ZWwuY29tPj4NCj4gQ2M6 IFRob21hcy5MZW5kYWNreUBhbWQuY29tPG1haWx0bzpUaG9tYXMuTGVuZGFja3lAYW1kLmNvbT47 IEdhbywgTGltaW5nIDxsaW1pbmcuZ2FvQGludGVsLmNvbTxtYWlsdG86bGltaW5nLmdhb0BpbnRl bC5jb20+PjsgbGVvLmR1cmFuQGFtZC5jb208bWFpbHRvOmxlby5kdXJhbkBhbWQuY29tPjsgWWFv LCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPG1haWx0bzpqaWV3ZW4ueWFvQGludGVsLmNv bT4+OyBGYW4sIEplZmYgPGplZmYuZmFuQGludGVsLmNvbTxtYWlsdG86amVmZi5mYW5AaW50ZWwu Y29tPj4NCj4gU3ViamVjdDogUmU6IFtlZGsyXSBbUEFUQ0ggdjYgMDAvMTddIHg4NjogU2VjdXJl IEVuY3J5cHRlZCBWaXJ0dWFsaXphdGlvbiAoQU1EKQ0KPg0KPiBPbiAyMDE3LTA2LTA1IDE0OjU2 OjA0LCBCcmlqZXNoIFNpbmdoIHdyb3RlOg0KPj4gT24gMDYvMDEvMjAxNyAwNDoxMCBBTSwgTGFz emxvIEVyc2VrIHdyb3RlOg0KPj4+IE9uIDA2LzAxLzE3IDA5OjQwLCBKb3JkYW4gSnVzdGVuIHdy b3RlOg0KPj4+PiBJbiBodHRwczovL2xpc3RzLjAxLm9yZy9waXBlcm1haWwvZWRrMi1kZXZlbC8y MDE3LUFwcmlsLzAwOTg4My5odG1sDQo+Pj4+IExlbyBzYWlkIHRoYXQgRHhlSXBsIHdvbid0IHdv cmsgYmVjYXVzZSBuZXcgSS9PIHJhbmdlcyBtaWdodCBiZSBhZGRlZC4NCj4+Pj4gSSBkb24ndCB1 bmRlcnN0YW5kIHRoaXMsIGJlY2F1c2UgaXNuJ3QgRHhlSXBsIGFuZCBhbiBlYXJseSBBUFJJT1JJ DQo+Pj4+IGVudHJ5IGFyZSByb3VnaGx5IGVxdWl2YWxlbnQgaW4gdGhlIGJvb3Qgc2VxdWVuY2U/ DQo+Pj4gSSB0aGluayB5b3UgYXJlIHJpZ2h0LiBJIGJlbGlldmUgYSBwYXRjaCBmb3IgdGhpcyBl eGFjdCBpZGVhIGhhc24ndA0KPj4+IGJlZW4gcG9zdGVkIHlldC4gSmlld2VuJ3MgbWVzc2FnZSB0 aGF0IHlvdSBsaW5rZWQgYWJvdmUgY29udGFpbnMgdGhlDQo+Pj4gZXhwcmVzc2lvbg0KPj4+DQo+ Pj4gICAgICBhbHdheXMgY2xlYXIgU0VWIG1hc2sgZm9yIE1NSU8gKmFuZCBhbGwgcmVzdCoNCj4+ Pg0KPj4+IChlbXBoYXNpcyBtaW5lKSwgd2hpY2ggSSB0aGluayB3ZSBtYXkgaGF2ZSBtaXNzZWQg KmluIGNvbWJpbmF0aW9uDQo+Pj4gd2l0aCogdGhlIER4ZUlwbC4NCj4+Pg0KPj4+IFNvIHRoZSBp ZGVhIHdvdWxkIGJlIHRvIGl0ZXJhdGUgb3ZlciBhbGwgdGhlIEhPQnMgaW4gdGhlIER4ZUlwbCBQ RUlNLg0KPj4+IEtlZXAgdGhlIEMgYml0IHNldCBmb3Igc3lzdGVtIG1lbW9yeSByZWdpb25zLiBD bGVhciB0aGUgQyBiaXQgZm9yDQo+Pj4gTU1JTyByZWdpb25zIHRoYXQgYXJlIGtub3duIGZyb20g dGhlIEhPQiBsaXN0LiBBbHNvIGNsZWFyIHRoZSBDIGJpdA0KPj4+IGV2ZXJ5d2hlcmUgZWxzZSBp biB0aGUgYWRkcmVzcyBzcGFjZSAoa25vd24gZnJvbSB0aGUgQ1BVIEhPQikgd2hlcmUNCj4+PiBu byBjb3ZlcmFnZSBpcyBwcm92aWRlZCBieSBhbnkgbWVtb3J5IHJlc291cmNlIGRlc2NyaXB0b3Ig SE9CLg0KPj4+DQo+Pj4gVGhpcyBpcyBnb2luZyB0byBiZSBoYXJkZXIgdGhhbiB0aGUgY3VycmVu dCBhcHByb2FjaCwgYmVjYXVzZToNCj4+Pg0KPj4+IC0gVGhlIGN1cnJlbnQgYXBwcm9hY2ggY2Fu IHdvcmsgb2ZmIG9mIHRoZSBHQ0QgbWVtb3J5IHNwYWNlIG1hcCwNCj4+PiB3aGljaCBwcm92aWRl cyBleHBsaWNpdCBOb25FeGlzdGVudCBlbnRyaWVzLCBjb3ZlcmluZyB0aGUgZW50aXJlDQo+Pj4g YWRkcmVzcyBzcGFjZSAoYWNjb3JkaW5nIHRvIHRoZSBDUFUgSE9CKS4NCj4+Pg0KPj4+IC0gSG93 ZXZlciwgdGhlIER4ZUlwbCBtZXRob2Qgd291bGQgdGFrZSBwbGFjZSBiZWZvcmUgZW50ZXJpbmcg RFhFLA0KPj4+IHNvIG5vIEdDRCBtZW1vcnkgc3BhY2UgbWFwIHdvdWxkIGJlIGF2YWlsYWJsZSAt LSB0aGUgIk5vbkV4aXN0ZW50Ig0KPj4+IGVudHJpZXMgd291bGQgaGF2ZSB0byBiZSBzeW50aGVz aXplZCBtYW51YWxseSBmcm9tIHRoZSBhZGRyZXNzIHNwYWNlDQo+Pj4gc2l6ZSAoa25vd24gZnJv bSB0aGUgQ1BVIEhPQikgYW5kIHRoZSBsYWNrIG9mIGNvdmVyYWdlIGJ5IG1lbW9yeQ0KPj4+IHJl c291cmNlIGRlc2NyaXB0b3IgSE9Ccy4NCj4+Pg0KPj4+IEJhc2ljYWxseSwgaW4gb3JkZXIgdG8g bW92ZSB0aGUgY3VycmVudCBHQ0QgbWVtb3J5IHNwYWNlIG1hcA0KPj4+IHRyYXZlcnNhbCBmcm9t IGVhcmx5IERYRSB0byBsYXRlIFBFSSwgdGhlIG1lbW9yeSBzcGFjZSBtYXAgYnVpbGRpbmcNCj4+ PiBsb2dpYyBvZiB0aGUgRFhFIENvcmUgd291bGQgaGF2ZSB0byBiZSBkdXBsaWNhdGVkIGluIHRo ZSBEeGVJcGwNCj4+PiBQRUlNLiBJZiBJIHVuZGVyc3RhbmQgY29ycmVjdGx5LiAoVGhlIER4ZUlw bCBQRUlNIG1heSBhbHJlYWR5DQo+Pj4gY29udGFpbiB2ZXJ5IHNpbWlsYXIgY29kZSwgZm9yIHRo ZSBwYWdlIHRhYmxlIGJ1aWxkaW5nLCB3aGljaCBtaWdodA0KPj4+IG5vdCBiZSBkaWZmaWN1bHQg dG8gZXh0ZW5kIGxpa2UgdGhpcyAtLSBJIGhhdmVuJ3QgbG9va2VkLikNCj4+Pg0KPj4+IElzIHRo aXMgd2hhdCB5b3UgaGF2ZSBpbiBtaW5kPw0KPj4+DQo+PiBEbyB5b3UgaGF2ZSBhbnkgZnVydGhl ciB0aG91Z2h0IG9uIHRoaXM/DQo+IFJlZ2FyZGluZyBMYXN6bG8ncyBmZWVkYmFjaywgSSdtIG5v dCBjb252aW5jZWQgdGhhdCBpdCB3b3VsZCBiZSBleGNlc3NpdmVseSBkaWZmaWN1bHQgdG8gYWNj b21wbGlzaCB0aGlzIGluIER4ZUlwbC4gKEknbSBub3Qgc2F5aW5nIHRoYXQgSSBjb3VsZG4ndCBi ZSBjb252aW5jZWQuIDopDQo+DQo+IEFzIGZhciBhcyBJIGNhbiBzZWUsIHRoaXMgaXMgYW4gYXJj aGl0ZWN0dXJhbGx5IGRlZmluZWQgQU1EIGZlYXR1cmUuDQo+IChJcyB0aGlzIHRydWUsIG9yIGlz IEJhc2VNZW1jcnlwdFNldkxpYiBhY3R1YWxseSBPVk1GIHNwZWNpZmljPykNCg0KWWVzLCBTRVYg aXMgQU1ELVYgYXJjaGl0ZWN0dXJlIGV4dGVuc2lvbiBhbmQgaXRzIGFwcGxpY2FibGUgdG8NCnZp cnR1YWxpemF0aW9uIHBsYXRmb3JtIG9ubHkgKHdlIGNhbiBzYXlzIEJhc2VNZW1FbmNyeXB0U2V2 TGliIGlzIE9WTUYNCnNwZWNpZmljKS4NCj4gWW91J3ZlIGFzc2VydGVkIHRoYXQgaXQgc2hvdWxk IHdvcmsgKFNFViB3b3VsZCBub3QgYmUgZGV0ZWN0ZWQpIHdpdGggYW55IEludGVsIHByb2Nlc3Nv ciBhcyB3ZWxsLiBUaGVyZWZvcmUsIEkgZG9uJ3Qgc2VlIGEgZ29vZCByZWFzb24gdGhhdCB3ZSBz aG91bGRuJ3QgYmUgYWJsZSB0byBzdXBwb3J0IGl0IGluIG1vZHVsZXMgdGhhdCBhbHJlYWR5IGhh dmUNCj4gSUEzMi9YNjQgc3BlY2lmaWMgY29kZS4gKEknbSByZWNhbGxpbmcNCj4gODgxODEzZDdh OTNkOTAwOWM4NzM1MTViMDQzYzQxYzQ1NTQ3NzllNC4pDQo+DQo+IFNpbmNlIER4ZUlwbCBidWls ZHMgdGhlIElBMzIvWDY0IHBhZ2UgdGFibGVzLCBhbmQgeW91IG5lZWQgdG8gbW9kaWZ5IHRoZSBw YWdlIHRhYmxlcyBmb3IgdGhpcyBmZWF0dXJlIChjb3JyZWN0PyksIEkgdGhpbmsgd2Ugc2hvdWxk IHRyeSB0byBzdXBwb3J0IHRoZSBmZWF0dXJlIHRoZXJlIGlmIGl0IGlzIGZlYXNpYmxlLiBJIGNh biB1bmRlcnN0YW5kIHRoZSBhcmd1bWVudCB0aGF0IHRoaXMgZG9lc24ndCBhcHBseSB0byBhbGwg bm9uLVZNIHBsYXRmb3Jtcywgc28gSSB0aGluayB3ZSBjb3VsZCBhZGQgYSBQQ0Qgd2hpY2ggZGlz YWJsZXMgdGhpcyBzdXBwb3J0IGJ5IGRlZmF1bHQuDQo+DQo+IEkgZG9uJ3Qga25vdyB0aGF0IHRo ZSBvd25lcnMgb2YgTWRlTW9kdWxlUGtnIGFuZCBVZWZpQ3B1UGtnIHdpbGwgYWdyZWUgd2l0aCBt ZSB0aG91Z2guDQoNCkkgYW0gZmxleGlibGUgdG8gaW1wbGVtZW50IEFQUklPUkkgb3IgUGxhdGZv cm0gaG9va3MgTGliLiBCdXQgb25lIHRoaW5nDQpJIHdhbnQgdG8gaGlnaGxpZ2h0IGlzOiBJJ2xs IHByZWZlciBjbGVhcmluZyBDLWJpdCAgdGhyb3VnaA0KQmFzZU1lbUVuY3J5cHRTZXZMaWIgZnVu Y3Rpb25zLiBPbmUgb2YgdGhlIG1haW4gcmVhc29uIGZvciBkb2luZyBzbyAtIEluDQpmdXR1cmUg d2hlbiB3ZSBhZGQgbWlncmF0aW9uIHN1cHBvcnQgZm9yIHRoZSBTRVYgZ3Vlc3QgdGhlbiB3ZSB3 aWxsIGJlDQpyZXF1aXJlZCB0byBub3RpZnkgdGhlIHVuZW5jcnlwdGVkIHBhZ2UgcmFuZ2UgdG8g aHlwZXZpc29yICggdGhyb3VnaA0KaHlwZXJjYWxsKS4gRHVyaW5nIG1pZ3JhdGlvbiBwaGFzZSwg SHlwZXJ2aXNvciB3aWxsIHVzZSB0aGlzIGluZm9ybWF0aW9uDQp0byBtYWtlIGRlY2lzaW9uIG9u IHdoZXRoZXIgdG8gaW52b2tlIHRoZSBTRVYgZmlybXdhcmUgdG8gZW5jcnlwdCB0aGUNCm1lbW9y eSByZWdpb24gZm9yIHRyYW5zcG9ydCBwdXJwb3Nlcy4gSWYgY2xlYXJpbmcgQy1iaXQgbG9naWMg aXMNCmNvbnRhaW5lZCBpbnNpZGUgQmFzZU1lbUVuY3J5cHRTZXZMaWIgdGhlbiBpdCB3aWxsIG1h a2UgbGlmZSBtdWNoIGVhc2llci4NCg0KPj4gSW4gbWVhbnRpbWUsIEkgaGF2ZSBiZWVuIGxvb2tp bmcgaW50byBNZGVNb2R1bGUvQ29yZS9EeGUvRHhlTWFpbiB0bw0KPj4gc2VlIGlmIEkgY2FuIGlu dm9rZSBhIHBsYXRmb3JtIGRlcGVuZGVudCBsaWJyYXJ5IHRvIGNsZWFyIEMtYml0IGJlZm9yZQ0K Pj4gRHhlTWFpbiBmaW5pc2hlcyBpdHMgZXhlY3V0aW9uLiBBcyBMYXN6bG8gcG9pbnRlZCwgY3Vy cmVudCBhcHByb2FjaCBpcw0KPj4gdXNpbmcgR0NEIG1lbW9yeSBzcGFjZSBtYXAgdG8gZ2V0IE1N SU8gYW5kIE5vbkV4aXN0ZW50IGVudHJpZXMuIEkgaGF2ZQ0KPj4gcHVzaGVkIHR3byBwYXRjaGVz IGluIG15IGRldmVsb3BtZW50IGJyYW5jaCB0byBzaG93IHdoYXQgSSBoYXZlIGJlZW4gZG9pbmc6 DQo+Pg0KPj4gMSkgYWRkIGEgbmV3IG51bGwgRHhlR2NkQ29yZVBsYXRmb3JtSG9va0xpYg0KPj4N Cj4+IGh0dHBzOi8vZ2l0aHViLmNvbS9jb2RvbWFuaWEvZWRrMi9jb21taXQvMTcxZjgxNjM3NmIz YjA2NzdjYmZiOTAyNzFhOTQNCj4+IGE5MjBkN2FkNzJkDQo+Pg0KPj4gVGhlIGxpYnJhcnkgcHJv dmlkZXMgYSBmdW5jdGlvbiAiRHhlR2NkQ29yZVBsYXRmb3JtSG9va1JlYWR5IiB3aGljaA0KPj4g Y2FuIGJlIGNhbGxlZCBieSBEeGVNYWluIGp1c3QgYWZ0ZXIgaXQgaW5pdGlhbGl6ZXMgdGhlIEdj ZFNlcnZpY2VzDQo+PiAod2hpY2ggd2lsbCBndWFyYW50ZWUgdGhhdCBHY2QgbWVtb3J5IHNwYWNl IG1hcCBpcyBhdmFpbGFibGUpLg0KPiBSZWdhcmRpbmcgaG9va2luZyBpbnRvIER4ZUNvcmUsIEkg ZG9uJ3QgdGhpbmsgaXQgaXMgdGhlIGJlc3QgYXBwcm9hY2gsIGJ1dCBpdCBpcyBiZXR0ZXIgdGhh biBBUFJJT1JJLiBJIHdvbmRlciBpZiB0aGUgTWRlTW9kdWxlUGtnIG93bmVycyBjb3VsZCBqdW1w IGluIHdpdGggYW4gb3Bpbmlvbi4gKEhvcGVmdWxseSBiZXNpZGVzIGp1c3QgcHVzaGluZyB0aGUg cHJvYmxlbSBhd2F5IHZpYSBBUFJJT1JJLikNCg0KSmlld2VuLCBhbnkgY29tbWVudHMgPw0KDQo+ IC1Kb3JkYW4NCj4NCj4+IDIpIG92ZXJyaWRlIER4ZUdjZENvcmVQbGF0Zm9ybUhvb2tMaWIgaW5z aWRlIHRoZSBPdm1mIHRvIGNsZWFyIHRoZSBDLWJpdCB3aGVuDQo+PiAgIFNFViBpcyBkZXRlY3Rl ZC4NCj4+DQo+PiBodHRwczovL2dpdGh1Yi5jb20vY29kb21hbmlhL2VkazIvY29tbWl0LzkxNGNl OTA0Y2ExYjc2NDdjOTY2NTYyNTk2YmE1DQo+PiAzYzk1OTQ5ZjY1OQ0KPj4NCj4+IEkndmUgdGVz dGVkIHRoZSBhcHByb2FjaCBhbmQgaXQgc2VlbXMgdG8gd29yay4gSXMgdGhpcyBzb21ldGhpbmcN Cj4+IGFsaWduZWQgd2l0aCB5b3VyIHRoaW5raW5nPw0KPj4NCj4+DQo+Pj4gVGhhbmtzDQo+Pj4g TGFzemxvDQo+Pj4NCj4+Pj4gLUpvcmRhbg0KPj4+Pg0KPj4+Pj4gSW4gc2Vjb25kIHBhdGNoDQo+ Pj4+PiBbMl0sIExlbyB0cmllZCB0byBpbnRyb2R1Y2UgYSBuZXcgbm90aWZ5IHByb3RvY29sIHRv IGdldCBNTUlPDQo+Pj4+PiBhZGQvcmVtb3ZlIGV2ZW50cy4gRHVyaW5nIGRpc2N1c3Npb24gSmll d2VuIHN1Z2dlc3RlZCB0byBsb29rIGludG8NCj4+Pj4+IGFkZGluZyBhIG5ldyBwbGF0Zm9ybSBk cml2ZXIgaW50byBBUFJJT1JJIHRvIGF2b2lkIHRoZSBuZWVkIGZvcg0KPj4+Pj4gYW55IG1vZGlm aWNhdGlvbnMgaW5zaWRlIHRoZSBHY2Rjb3JlIC0gdGhpcyBzZWVtcyB3b3JrYWJsZQ0KPj4+Pj4g c29sdXRpb24gd2hpY2ggZGlkIG5vdCByZXF1aXJlIGFkZGluZyBhbnkgQ1BVIHNwZWNpZmljIGNv ZGUgaW5zaWRlIHRoZSBHY2QuDQo+Pj4+Pg0KPj4+Pj4gWzFdDQo+Pj4+PiBodHRwczovL2xpc3Rz LjAxLm9yZy9waXBlcm1haWwvZWRrMi1kZXZlbC8yMDE3LU1hcmNoLzAwODk3NC5odG1sDQo+Pj4+ PiBbMl0NCj4+Pj4+IGh0dHBzOi8vbGlzdHMuMDEub3JnL3BpcGVybWFpbC9lZGsyLWRldmVsLzIw MTctQXByaWwvMDA5ODUyLmh0bWwNCj4+Pj4+DQo+PiBfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXw0KPj4gZWRrMi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4+IGVk azItZGV2ZWxAbGlzdHMuMDEub3JnPG1haWx0bzplZGsyLWRldmVsQGxpc3RzLjAxLm9yZz4NCj4+ IGh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGluZm8vZWRrMi1kZXZlbA0K