From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) (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 9BE3421A18AAA for ; Mon, 27 Mar 2017 17:45:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=intel.com; i=@intel.com; q=dns/txt; s=intel; t=1490661942; x=1522197942; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=ivJ+/vJqKyPbAwZfvh+O2U2ol2sNVgB8u4H+MLnfsyY=; b=RuAhQgiAsQkNbL+ShjpeTV2D3TKjWJSoI1ai96VpSsmzkaW/hZYDBIgu jPbeE5pEhp7Bc29IIjsa5eF6hpO3uw==; Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 27 Mar 2017 17:45:42 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.36,234,1486454400"; d="scan'208,217";a="1127828533" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by fmsmga001.fm.intel.com with ESMTP; 27 Mar 2017 17:45:42 -0700 Received: from fmsmsx112.amr.corp.intel.com (10.18.116.6) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 27 Mar 2017 17:45:41 -0700 Received: from shsmsx103.ccr.corp.intel.com (10.239.4.69) by FMSMSX112.amr.corp.intel.com (10.18.116.6) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 27 Mar 2017 17:45:40 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.212]) by SHSMSX103.ccr.corp.intel.com ([169.254.4.253]) with mapi id 14.03.0248.002; Tue, 28 Mar 2017 08:45:39 +0800 From: "Fan, Jeff" To: Brijesh Singh CC: Laszlo Ersek , "Kinney, Michael D" , "Justen, Jordan L" , "edk2-devel@ml01.01.org" , "Gao, Liming" , "leo.duran@amd.com" , "brijesh.singh@amd.com" , "Thomas.Lendacky@amd.com" Thread-Topic: [edk2] [RFC PATCH v2 01/10] OvmfPkg/Include: Define SEV specific CPUID and MSR Thread-Index: AQHSoofpt+VCu4Tce0u/TsD9XVsXI6GggJ+AgAGJ7HD//5dyAIAGtpwg//+/QACAAVriIA== Date: Tue, 28 Mar 2017 00:45:38 +0000 Message-ID: <542CF652F8836A4AB8DBFAAD40ED192A4C57CDDD@shsmsx102.ccr.corp.intel.com> References: <149013076154.27235.10725020825643505862.stgit@brijesh-build-machine> <149013076888.27235.3173588515291478806.stgit@brijesh-build-machine> <542CF652F8836A4AB8DBFAAD40ED192A4C569A29@shsmsx102.ccr.corp.intel.com> <542CF652F8836A4AB8DBFAAD40ED192A4C57C672@shsmsx102.ccr.corp.intel.com> In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMDFiYmFiMzQtMDQzOC00ODMyLWFmZTgtYmJmNDE2ZGYwZTJkIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6ImtNVGZnSmJXUU9HQTBrSWlCaWlUTXZHODFqSW11bk0yXC9ZQWRcLzRWb0hEcz0ifQ== x-ctpclassification: CTP_IC x-originating-ip: [10.239.127.40] MIME-Version: 1.0 X-Content-Filtered-By: Mailman/MimeDel 2.1.22 Subject: Re: [RFC PATCH v2 01/10] OvmfPkg/Include: Define SEV specific CPUID and MSR 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, 28 Mar 2017 00:45:42 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QnJpamVzaCwNCg0KVWVmaUNwdVBrZy9JbmNsdWRlL1JlZ2lzdGVyL0NwdWlkLmggZGVjbGFyZWQg dG8gc3VwcG9ydCBvbmUgdmVyc2lvbiBvZiBJbnRlbCBTRE0uDQoNCkJlZm9yZSB0aGUgbmV3IFNE TSBwdWJsaXNoaW5nLCB3ZSBjYW5ub3QgYXNzdW1lIHdoYXQgQ1BVSUQgbmFtaW5nIGFuZCBkZWZp bml0aW9ucyBhcmUuDQpJZiBuZXcgU0RNIGFkb3B0cyB0aGUgZXhhY3RseSBzYW1lIGRlZmluaXRp b25zIG9mIENQVUlEIGluIHRoZSBmdXR1cmUsIHdlIGNvdWxkIHNpbXBseSBpbmNsdWRlIFVlZmlD cHVQa2cvSW5jbHVkZS9SZWdpc3Rlci9DcHVpZC5oIGFuZCByZW1vdmUgb2xkIGRlZmluaXRpb25z Lg0KDQpUaGFua3MhDQpKZWZmDQoNCkZyb206IEJyaWplc2ggU2luZ2ggW21haWx0bzpicmlqZXNo LmtzaW5naEBnbWFpbC5jb21dDQpTZW50OiBNb25kYXksIE1hcmNoIDI3LCAyMDE3IDc6NTkgUE0N ClRvOiBGYW4sIEplZmYNCkNjOiBMYXN6bG8gRXJzZWs7IEtpbm5leSwgTWljaGFlbCBEOyBKdXN0 ZW4sIEpvcmRhbiBMOyBlZGsyLWRldmVsQG1sMDEuMDEub3JnOyBHYW8sIExpbWluZzsgbGVvLmR1 cmFuQGFtZC5jb207IGJyaWplc2guc2luZ2hAYW1kLmNvbTsgVGhvbWFzLkxlbmRhY2t5QGFtZC5j b20NClN1YmplY3Q6IFJlOiBbZWRrMl0gW1JGQyBQQVRDSCB2MiAwMS8xMF0gT3ZtZlBrZy9JbmNs dWRlOiBEZWZpbmUgU0VWIHNwZWNpZmljIENQVUlEIGFuZCBNU1INCg0KDQoNCk9uIE1vbiwgTWFy IDI3LCAyMDE3IGF0IDI6NTcgQU0sIEZhbiwgSmVmZiA8amVmZi5mYW5AaW50ZWwuY29tPG1haWx0 bzpqZWZmLmZhbkBpbnRlbC5jb20+PiB3cm90ZToNCkxhc3psbywNCg0KT25lIEFtZCBkaXJlY3Rv cnkgdW5kZXIgVWVmaUNwdVBrZy9JbmNsdWRlL1JlZ2lzdGVyIGlzIGJldHRlci4NCg0KRG9lcyBC cmlqZXNoL0xlbyBoYXZlIGFueSBjb21tZW50cywgb3IgaGF2ZSBvdGhlciBzdWdnZXN0aW9ucz8N Cg0KDQoNCkkgYW0gbm90IHN1cmUgaWYgY3JlYXRpbmcgYSBuZXcgVWVmaUNwdVBrZy9JbmNsdWRl L1JlZ2lzdGVyL0FtZC9DcHVpZCBpcyBhIGdvb2QgaWRlYSwgQ1BVSUQgRm44MDAwXzAwMUYNCmxl YWYgY2FuIGdvIGluIFVlZmlDcHVQa2cvSW5jbHVkZS9SZWdpc3Rlci9DcHVpZC5oLiBMb29raW5n IGF0IFVlZmlDcHVQa2cvSW5jbHVkZS9SZWdpc3Rlci9DcHVpZC5oIGluZGljYXRlcw0KdGhhdCB0 aGlzIGZpbGUgZGVmaW5lcyB0aGUgc3RhbmRhcmQgeDg2IENQVUlEJ3MuIFRoZSBkZWZpbml0aW9u IG9mIENQVUlEJ3MgbGlzdGVkIGluIHRoaXMgZmlsZSBhcmUgc2FtZSBvbiBib3RoIEludGVsDQph bmQgQU1EIHBsYXRmb3Jtcy4gSSB3YXMgdG9sZCBieSBvdXIgYXJjaGl0ZWN0dXJlIHRlYW0gdGhh dCBpZiBJbnRlbCBldmVyIGRlY2lkZXMgdG8gc3VwcG9ydCB0aGUgbmV3IGxlYWYgdGhlbiBpdCB3 aWxsDQpjb21wbHkgdG8gdGhlIGV4YWN0IHNhbWUgYml0IGRlZmluaXRpb24uDQoNCkkgYW0gYSBi aXQgdW5zdXJlIGFib3V0IHdoZXJlIHRoZSBNU1JfU0VWX1NUQVRVUyBzaG91bGQgZ28sIG9uZSBw YXJ0IG9mIG1lIHRoaW5rcyB0aGF0IHRoaXMgTVNSIHNob3VsZCBiZQ0KZGVmaW5lZCBpbiBPdm1m UGtnIGFuZCBvdGhlciBwYXJ0IHRoaW5rcyB0aGF0IGl0IGNhbiBnbyBpbnRvIFVlZmlDcHVQa2cv SW5jbHVkZS9BbWQvTXNyLmguIEl0IGlzIGEgcmVhZC1vbmx5IE1TUg0KYW5kIGhhcyBtZWFuaW5n IGluIGEgdmlydHVhbGl6YXRpb24gY29udGV4dCBoZW5jZSBJIHdhcyBtb3JlIGluY2xpbmVkIHRv d2FyZHMgZGVmaW5pbmcgaW50byBPdm1mUGtnIGluc3RlYWQgb2YgVWVmaUNwdVBrZy4NCg0KTGVv LCAgYW55IGNvbW1lbnRzL3N1Z2dlc3Rpb25zID8NCg0KLUJyaWplc2gNCg0KLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCkZyb206IExhc3psbyBFcnNlayBbbWFpbHRvOmxlcnNla0ByZWRoYXQu Y29tPG1haWx0bzpsZXJzZWtAcmVkaGF0LmNvbT5dDQpTZW50OiBUaHVyc2RheSwgTWFyY2ggMjMs IDIwMTcgNToyMCBQTQ0KVG86IEZhbiwgSmVmZjsgQnJpamVzaCBTaW5naDsgS2lubmV5LCBNaWNo YWVsIEQ7IEp1c3RlbiwgSm9yZGFuIEw7IGVkazItZGV2ZWxAbWwwMS4wMS5vcmc8bWFpbHRvOmVk azItZGV2ZWxAbWwwMS4wMS5vcmc+OyBHYW8sIExpbWluZw0KQ2M6IGxlby5kdXJhbkBhbWQuY29t PG1haWx0bzpsZW8uZHVyYW5AYW1kLmNvbT47IGJyaWplc2guc2luZ2hAYW1kLmNvbTxtYWlsdG86 YnJpamVzaC5zaW5naEBhbWQuY29tPjsgVGhvbWFzLkxlbmRhY2t5QGFtZC5jb208bWFpbHRvOlRo b21hcy5MZW5kYWNreUBhbWQuY29tPg0KU3ViamVjdDogUmU6IFtlZGsyXSBbUkZDIFBBVENIIHYy IDAxLzEwXSBPdm1mUGtnL0luY2x1ZGU6IERlZmluZSBTRVYgc3BlY2lmaWMgQ1BVSUQgYW5kIE1T Ug0KDQpPbiAwMy8yMy8xNyAwODo0MiwgRmFuLCBKZWZmIHdyb3RlOg0KPiBMYXN6bG8sDQo+DQo+ IFVlZmlDcHVQa2cvSW5jbHVkZS9SZWdpc3Rlci9DcHVpZC5oIGRlZmluZWQgdGhlIENQVUlEIG9u bHkgZGVzY3JpYmVkIGluIElBMzIgU0RNLg0KPiBVZWZpQ3B1UGtnL0luY2x1ZGUvUmVnaXN0ZXIv QXJjaGl0ZWN0dXJhbE1zci5oIGRlZmluZWQgdGhlIElBMzINCj4gQXJjaGl0ZWN0dXJhbCBNU1Jz IGluIElBMzIgU0RNIFVlZmlDcHVQa2cvSW5jbHVkZS9SZWdpc3Rlci9Nc3IveHh4eE1zci5oIGRl ZmluZWQgdGhlIElBMzIgTW9kZWwtc3BlY2lmaWMgTVNScyBpbiBJQTMyIFNETS4NCj4NCj4gSSBh bSBub3Qgc3VyZSBpZiBCcmlqZXNoL0xlbyBoYXMgc29tZSBpZGVhIHRvIHBsYWNlIFNFViBzcGVj aWZpYyBDUFVJRC9NU1JzIGRlZmluaXRpb25zLg0KPiBJIHRoaW5rIG9uZSBuZXcgZmlsZSBvciBu ZXcgZm9sZGVyIGlzIGJldHRlci4NCg0KSSBhZ3JlZSwgYm90aCB3b3VsZCB3b3JrIGZvciBtZS4g TXkgbWFpbiBwb2ludCBpcyB0aGF0IHRoaXMgZmVhdHVyZSBkZXBlbmRzIG9uIHBoeXNpY2FsIHBy b2Nlc3NvciBhdHRyaWJ1dGVzLCBub3Qgb24gZW11bGF0ZWQgKHZpcnR1YWwpIGhhcmR3YXJlIG9y IG9uIHZhcmlvdXMgaHlwZXJ2aXNvcnMsIHBsdXMgaXQgaXMgZGVmaW5lZCBpbiBhIHB1YmxpYyBp bmR1c3RyeSBzcGVjLCBzbyBpdCBzZWVtcyB0byBiZWxvbmcgdW5kZXIgVWVmaUNwdVBrZywgbm90 IE92bWZQa2cuDQoNCkhvdyBhYm91dA0KDQogIFVlZmlDcHVQa2cvSW5jbHVkZS9BbWRSZWdpc3Rl ci9DcHVpZC5oDQogIFVlZmlDcHVQa2cvSW5jbHVkZS9BbWRSZWdpc3Rlci9BcmNoaXRlY3R1cmFs TXNyLmgNCiAgVWVmaUNwdVBrZy9JbmNsdWRlL0FtZFJlZ2lzdGVyL01zci94eHh4TXNyLmgNCg0K b3IgZWxzZToNCg0KICBVZWZpQ3B1UGtnL0luY2x1ZGUvUmVnaXN0ZXIvQW1kL0NwdWlkLmgNCiAg VWVmaUNwdVBrZy9JbmNsdWRlL1JlZ2lzdGVyL0FtZC9BcmNoaXRlY3R1cmFsTXNyLmgNCiAgVWVm aUNwdVBrZy9JbmNsdWRlL1JlZ2lzdGVyL0FtZC9Nc3IveHh4eE1zci5oDQoNCihhcyBhcHByb3By aWF0ZSAtLSBJJ20gbm90IHNheWluZyB0aGF0IHRoaXMgcGF0Y2ggc2hvdWxkIGNyZWF0ZSBhbGwg b2YgdGhlc2UgZmlsZXMgLyBzdWJkaXJlY3RvcmllcyBhdCBvbmNlKS4NCg0KVGhhbmtzDQpMYXN6 bG8NCj4NCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZWRrMi1kZXZlbCBb bWFpbHRvOmVkazItZGV2ZWwtYm91bmNlc0BsaXN0cy4wMS5vcmc8bWFpbHRvOmVkazItZGV2ZWwt Ym91bmNlc0BsaXN0cy4wMS5vcmc+XSBPbiBCZWhhbGYgT2YNCj4gTGFzemxvIEVyc2VrDQo+IFNl bnQ6IFRodXJzZGF5LCBNYXJjaCAyMywgMjAxNyAxMjowNCBBTQ0KPiBUbzogQnJpamVzaCBTaW5n aDsgS2lubmV5LCBNaWNoYWVsIEQ7IEp1c3RlbiwgSm9yZGFuIEw7DQo+IGVkazItZGV2ZWxAbWww MS4wMS5vcmc8bWFpbHRvOmVkazItZGV2ZWxAbWwwMS4wMS5vcmc+OyBHYW8sIExpbWluZzsgRmFu LCBKZWZmDQo+IENjOiBsZW8uZHVyYW5AYW1kLmNvbTxtYWlsdG86bGVvLmR1cmFuQGFtZC5jb20+ OyBicmlqZXNoLnNpbmdoQGFtZC5jb208bWFpbHRvOmJyaWplc2guc2luZ2hAYW1kLmNvbT47IFRo b21hcy5MZW5kYWNreUBhbWQuY29tPG1haWx0bzpUaG9tYXMuTGVuZGFja3lAYW1kLmNvbT4NCj4g U3ViamVjdDogUmU6IFtlZGsyXSBbUkZDIFBBVENIIHYyIDAxLzEwXSBPdm1mUGtnL0luY2x1ZGU6 IERlZmluZSBTRVYNCj4gc3BlY2lmaWMgQ1BVSUQgYW5kIE1TUg0KPg0KPiBBZGRpbmcgSmVmZg0K Pg0KPiBPbiAwMy8yMS8xNyAyMjoxMiwgQnJpamVzaCBTaW5naCB3cm90ZToNCj4+IFRoZSBwYXRj aCBkZWZpbmVzIEFNRCdzIE1lbW9yeSBFbmNyeXB0aW9uIEluZm9ybWF0aW9uIENQVUlEIGxlYWYg KDB4ODAwMF8wMDFGKS4NCj4+IFRoZSBjb21wbGV0ZSBkZXNjcmlwdGlvbiBmb3IgdGhpcyBDUFVJ RCBsZWFmIGlzIGF2YWlsYWJsZSBpbiBBUE0NCj4+IHZvbHVtZSAyIFsxXSBTZWN0aW9uIDE1LjM0 IChTZWN1cmUgRW5jcnlwdGVkIFZpcnR1YWxpemF0aW9uKS4NCj4+DQo+PiBbMV0gaHR0cDovL3N1 cHBvcnQuYW1kLmNvbS9UZWNoRG9jcy8yNDU5My5wZGYNCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBC cmlqZXNoIFNpbmdoIDxicmlqZXNoLnNpbmdoQGFtZC5jb208bWFpbHRvOmJyaWplc2guc2luZ2hA YW1kLmNvbT4+DQo+PiAtLS0NCj4+ICBPdm1mUGtnL0luY2x1ZGUvUmVnaXN0ZXIvQW1kU2V2TWFw LmggfCAgMTMzDQo+PiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+PiAgMSBm aWxlIGNoYW5nZWQsIDEzMyBpbnNlcnRpb25zKCspDQo+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IE92 bWZQa2cvSW5jbHVkZS9SZWdpc3Rlci9BbWRTZXZNYXAuaA0KPj4NCj4+IGRpZmYgLS1naXQgYS9P dm1mUGtnL0luY2x1ZGUvUmVnaXN0ZXIvQW1kU2V2TWFwLmgNCj4+IGIvT3ZtZlBrZy9JbmNsdWRl L1JlZ2lzdGVyL0FtZFNldk1hcC5oDQo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4gaW5kZXgg MDAwMDAwMC4uZGU4MGYzOQ0KPj4gLS0tIC9kZXYvbnVsbA0KPj4gKysrIGIvT3ZtZlBrZy9JbmNs dWRlL1JlZ2lzdGVyL0FtZFNldk1hcC5oDQo+PiBAQCAtMCwwICsxLDEzMyBAQA0KPj4gKy8qKiBA ZmlsZQ0KPj4gKw0KPj4gK0FNRCBTZWN1cmUgRW5jcnlwdGVkIFZpcnR1YWxpemF0aW9uIChTRVYp IHNwZWNpZmljIENQVUlEIGFuZCBNU1INCj4+ICtkZWZpbml0aW9ucw0KPj4gKw0KPj4gK1RoZSBj b21wbGV0ZSBkZXNjcmlwdGlvbiBmb3IgdGhpcyBDUFVJRCBsZWFmIGlzIGF2YWlsYWJsZSBpbiBB UE0NCj4+ICt2b2x1bWUgMiAoU2VjdGlvbiAxNS4zNCkgaHR0cDovL3N1cHBvcnQuYW1kLmNvbS9U ZWNoRG9jcy8yNDU5My5wZGYNCj4+ICsNCj4+ICtDb3B5cmlnaHQgKGMpIDIwMTcsIEFkdmFuY2Vk IE1pY3JvIERldmljZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPj4gKw0KPj4gK1RoaXMg cHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIGxpY2Vuc2VkIGFuZCBt YWRlDQo+PiArYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUg QlNEIExpY2Vuc2Ugd2hpY2gNCj4+ICthY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4gIFRo ZSBmdWxsIHRleHQgb2YgdGhlIGxpY2Vuc2UgbWF5IGJlDQo+PiArZm91bmQgYXQgaHR0cDovL29w ZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocA0KPj4gKw0KPj4gK1RIRSBQUk9H UkFNIElTIERJU1RSSUJVVEVEIFVOREVSIFRIRSBCU0QgTElDRU5TRSBPTiBBTiAiQVMgSVMiDQo+ PiArQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBSRVNFTlRBVElPTlMgT0YgQU5ZIEtJ TkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQuDQo+PiArDQo+PiArKiovDQo+PiArDQo+PiAr I2lmbmRlZiBfX0FNRF9TRVZfTUFQX0hfXw0KPj4gKyNkZWZpbmUgX19BTURfU0VWX01BUF9IX18N Cj4+ICsNCj4+ICsjcHJhZ21hIHBhY2sgKDEpDQo+PiArDQo+PiArI2RlZmluZSBDUFVJRF9NRU1P UllfRU5DUllQVElPTl9JTkZPICAgICAgICAgICAgIDB4ODAwMDAwMUYNCj4+ICsNCj4+ICsvKioN Cj4+ICsgIENQVUlEIE1lbW9yeSBFbmNyeXB0aW9uIHN1cHBvcnQgaW5mb3JtYXRpb24gRUFYIGZv ciBDUFVJRCBsZWFmDQo+PiArICAjQ1BVSURfTUVNT1JZX0VOQ1JZUFRJT05fSU5GTy4NCj4+ICsq Ki8NCj4+ICt0eXBlZGVmIHVuaW9uIHsNCj4+ICsgIC8vLw0KPj4gKyAgLy8vIEluZGl2aWR1YWwg Yml0IGZpZWxkcw0KPj4gKyAgLy8vDQo+PiArICBzdHJ1Y3Qgew0KPj4gKyAgICAvLy8NCj4+ICsg ICAgLy8vIFtCaXQgMF0gU2VjdXJlIE1lbW9yeSBFbmNyeXB0aW9uIChTbWUpIFN1cHBvcnQNCj4+ ICsgICAgLy8vDQo+PiArICAgIFVJTlQzMiAgU21lQml0OjE7DQo+PiArDQo+PiArICAgIC8vLw0K Pj4gKyAgICAvLy8gW0JpdCAxXSBTZWN1cmUgRW5jcnlwdGVkIFZpcnR1YWxpemF0aW9uIChTZXYp IFN1cHBvcnQNCj4+ICsgICAgLy8vDQo+PiArICAgIFVJTlQzMiAgU2V2Qml0OjE7DQo+PiArDQo+ PiArICAgIC8vLw0KPj4gKyAgICAvLy8gW0JpdCAyXSBQYWdlIGZsdXNoIE1TUiBzdXBwb3J0DQo+ PiArICAgIC8vLw0KPj4gKyAgICBVSU5UMzIgIFBhZ2VGbHVzaE1zckJpdDoxOw0KPj4gKw0KPj4g KyAgICAvLy8NCj4+ICsgICAgLy8vIFtCaXQgM10gRW5jcnlwdGVkIHN0YXRlIHN1cHBvcnQNCj4+ ICsgICAgLy8vDQo+PiArICAgIFVJTlQzMiAgU2V2RXNCaXQ6MTsNCj4+ICsNCj4+ICsgICAgLy8v DQo+PiArICAgIC8vLyBbQml0IDQ6MzFdIFJlc2VydmVkDQo+PiArICAgIC8vLw0KPj4gKyAgICBV SU5UMzIgIFJlc2VydmVkQml0czoyODsNCj4+ICsgIH0gQml0czsNCj4+ICsgIC8vLw0KPj4gKyAg Ly8vIEFsbCBiaXQgZmllbGRzIGFzIGEgMzItYml0IHZhbHVlDQo+PiArICAvLy8NCj4+ICsgIFVJ TlQzMiAgVWludDMyOw0KPj4gK30gQ1BVSURfTUVNT1JZX0VOQ1JZUFRJT05fSU5GT19FQVg7DQo+ PiArDQo+PiArLyoqDQo+PiArICBDUFVJRCBNZW1vcnkgRW5jcnlwdGlvbiBzdXBwb3J0IGluZm9y bWF0aW9uIEVCWCBmb3IgQ1BVSUQgbGVhZg0KPj4gKyAgI0NQVUlEX01FTU9SWV9FTkNSWVBUSU9O X0lORk8uDQo+PiArKiovDQo+PiArdHlwZWRlZiB1bmlvbiB7DQo+PiArICAvLy8NCj4+ICsgIC8v LyBJbmRpdmlkdWFsIGJpdCBmaWVsZHMNCj4+ICsgIC8vLw0KPj4gKyAgc3RydWN0IHsNCj4+ICsg ICAgLy8vDQo+PiArICAgIC8vLyBbQml0IDA6NV0gUGFnZSB0YWJsZSBiaXQgbnVtYmVyIHVzZWQg dG8gZW5hYmxlIG1lbW9yeSBlbmNyeXB0aW9uDQo+PiArICAgIC8vLw0KPj4gKyAgICBVSU5UMzIg IFB0ZVBvc0JpdHM6NjsNCj4+ICsNCj4+ICsgICAgLy8vDQo+PiArICAgIC8vLyBbQml0IDY6MTFd IFJlZHVjdGlvbiBvZiBzeXN0ZW0gcGh5c2ljYWwgYWRkcmVzcyBzcGFjZSBiaXRzIHdoZW4gbWVt b3J5IGVuY3J5cHRpb24gaXMgZW5hYmxlZA0KPj4gKyAgICAvLy8NCj4+ICsgICAgVUlOVDMyICBS ZWR1Y2VkUGh5c0JpdHM6NTsNCj4+ICsNCj4+ICsgICAgLy8vDQo+PiArICAgIC8vLyBbQml0IDEy OjMxXSBSZXNlcnZlZA0KPj4gKyAgICAvLy8NCj4+ICsgICAgVUlOVDMyICBSZXNlcnZlZEJpdHM6 MjE7DQo+PiArICB9IEJpdHM7DQo+PiArICAvLy8NCj4+ICsgIC8vLyBBbGwgYml0IGZpZWxkcyBh cyBhIDMyLWJpdCB2YWx1ZQ0KPj4gKyAgLy8vDQo+PiArICBVSU5UMzIgIFVpbnQzMjsNCj4+ICt9 IENQVUlEX01FTU9SWV9FTkNSWVBUSU9OX0lORk9fRUJYOw0KPj4gKw0KPj4gKy8qKg0KPj4gKyAg U2VjdXJlIEVuY3J5cHRlZCBWaXJ0dWFsaXphdGlvbiAoU0VWKSBzdGF0dXMgcmVnaXN0ZXINCj4+ ICsNCj4+ICsqKi8NCj4+ICsjZGVmaW5lIE1TUl9TRVZfU1RBVFVTICAgICAgICAgICAgICAgICAg ICAgMHhjMDAxMDEzMQ0KPj4gKw0KPj4gKy8qKg0KPj4gKyAgTVNSIGluZm9ybWF0aW9uIHJldHVy bmVkIGZvciAjTVNSX1NFVl9TVEFUVVMgKiovIHR5cGVkZWYgdW5pb24gew0KPj4gKyAgLy8vDQo+ PiArICAvLy8gSW5kaXZpZHVhbCBiaXQgZmllbGRzDQo+PiArICAvLy8NCj4+ICsgIHN0cnVjdCB7 DQo+PiArICAgIC8vLw0KPj4gKyAgICAvLy8gW0JpdCAwXSBTZWN1cmUgRW5jcnlwdGVkIFZpcnR1 YWxpemF0aW9uIChTZXYpIGlzIGVuYWJsZWQNCj4+ICsgICAgLy8vDQo+PiArICAgIFVJTlQzMiAg U2V2Qml0OjE7DQo+PiArDQo+PiArICAgIC8vLw0KPj4gKyAgICAvLy8gW0JpdCAxXSBTZWN1cmUg RW5jcnlwdGVkIFZpcnR1YWxpemF0aW9uIEVuY3J5cHRlZCBTdGF0ZSAoU2V2RXMpIGlzIGVuYWJs ZWQNCj4+ICsgICAgLy8vDQo+PiArICAgIFVJTlQzMiAgU2V2RXNCaXQ6MTsNCj4+ICsNCj4+ICsg ICAgVUlOVDMyICBSZXNlcnZlZDozMDsNCj4+ICsgIH0gQml0czsNCj4+ICsgIC8vLw0KPj4gKyAg Ly8vIEFsbCBiaXQgZmllbGRzIGFzIGEgMzItYml0IHZhbHVlDQo+PiArICAvLy8NCj4+ICsgIFVJ TlQzMiAgVWludDMyOw0KPj4gKyAgLy8vDQo+PiArICAvLy8gQWxsIGJpdCBmaWVsZHMgYXMgYSA2 NC1iaXQgdmFsdWUNCj4+ICsgIC8vLw0KPj4gKyAgVUlOVDY0ICBVaW50NjQ7DQo+PiArfSBNU1Jf U0VWX1NUQVRVU19SRUdJU1RFUjsNCj4+ICsNCj4+ICsjZW5kaWYNCj4+DQo+PiBfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPj4gZWRrMi1kZXZlbCBtYWls aW5nIGxpc3QNCj4+IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnPG1haWx0bzplZGsyLWRldmVsQGxp c3RzLjAxLm9yZz4NCj4+IGh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGluZm8vZWRr Mi1kZXZlbA0KPj4NCj4NCj4gSSBmZWVsIHRoYXQgdGhlc2UgZGVmaW5pdGlvbnMgc2hvdWxkIGJl IGFkZGVkIHRvICJVZWZpQ3B1UGtnL0luY2x1ZGUvUmVnaXN0ZXIvQ3B1aWQuaCIsIG9yIGVsc2Ug dG8gYW5vdGhlciAobmV3KSBoZWFkZXIgZmlsZSBpbiB0aGF0IGRpcmVjdG9yeS4NCj4NCj4gSmVm Ziwgd2hhdCBkbyB5b3UgdGhpbms/DQo+DQo+IFRoYW5rcyENCj4gTGFzemxvDQo+IF9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+IGVkazItZGV2ZWwgbWFp bGluZyBsaXN0DQo+IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnPG1haWx0bzplZGsyLWRldmVsQGxp c3RzLjAxLm9yZz4NCj4gaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9lZGsy LWRldmVsDQo+DQoNCg0K