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.web11.1993.1615335910679581068 for ; Tue, 09 Mar 2021 16:25:11 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=MH2/QU8j; spf=pass (domain: intel.com, ip: 134.134.136.31, mailfrom: jiewen.yao@intel.com) IronPort-SDR: MZ2HhnyM3Mykn8R/JQ6Of2oPREVf5TOzT04Y5cQ9eQuvDEsB0YX2Gljzkdyg/NUOYw0Vy0tYPG DO3JGSPg8ZRg== X-IronPort-AV: E=McAfee;i="6000,8403,9917"; a="249722059" X-IronPort-AV: E=Sophos;i="5.81,236,1610438400"; d="scan'208";a="249722059" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Mar 2021 16:25:09 -0800 IronPort-SDR: wpuDANtzPpnXLowmwXo3TYZCsBgGHJuPem0tdk7rh6UIV3Lp+pb3n3VFQdLUpufDDKiuoGo//F 4BmhZYF9AjKA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.81,236,1610438400"; d="scan'208";a="376736490" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmsmga007.fm.intel.com with ESMTP; 09 Mar 2021 16:25:09 -0800 Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Tue, 9 Mar 2021 16:25:08 -0800 Received: from fmsmsx602.amr.corp.intel.com (10.18.126.82) by fmsmsx607.amr.corp.intel.com (10.18.126.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Tue, 9 Mar 2021 16:25:08 -0800 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2 via Frontend Transport; Tue, 9 Mar 2021 16:25:08 -0800 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.176) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2106.2; Tue, 9 Mar 2021 16:25:08 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TdrT0tnF3zj/QKiaZb0ezmcfAUGtlEzy0mVtq+7J4ghJjUicTofMquIZL7EhxTtRFQ7sM/qsUW06F91xmrSOeyMhA5ur2eJTPybfP99NbxBWyXepwr+Ec5ez99y4VAjJIx4hF+heEQz3oSmUzaVamqoSHZLUY2PEyd6CccldHGug1RSDlFkmLcnP0bh9BX3PtrYQ06vbmXlIFUMiiwh05P33FgxdSndTInzOq9WmYUlbVKxx1i3Jej+WtE1wgOcgG8WkRTSKhsPfMVHGGgzIN5DgpwEk8HUkUvKvRD5d1FksKZYT/fQsEL4tTsHlKw5/+wa4chP3wkJ3pNsD/MACOQ== 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=P++6LZ1XcLbtKqUQ4/u3JU1rGvUqKOYnpO7xwOB/wc4=; b=C3lVGmhL2D/bBUqn9KEGQcHySAKRNd7ilzafMMqmzSXfUQTb4rW2WIDqkuODqUuvFFHv6GhI23WbPyXTmgCDkEn5fqmL7JkgApF99kNVrcJh8ZAtDcIJHUqWgFWgVWTVRHdnKndkk5F+4IkMFsEPKcXIT+gJiMKNJW3MfAU/RuDMlIDpro/+h64nyHOnZAmqylHHw+l0qGP/vqRbejeHbcEYLaSDxsJjD5JbYK1R18QPIH17ZXsLpPsr15x5WeqQVS000eRQzHTCybmQ+qq86wdgDqanScHaeI3euEpuw+9oC4Tqvz1uNa2p4X+OKHOPAgUH5xfZcj0Pj4R6OWbXzA== 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=P++6LZ1XcLbtKqUQ4/u3JU1rGvUqKOYnpO7xwOB/wc4=; b=MH2/QU8jmdYp7ncFFlj3IQEu9gaj6+LdE59MRcvbIfEpn8OG7+XIu3HLPeLPENDQCzj5AxkheUV+DtD2ETcQjC76oZ2ZaHAc+1t0P6ERM1FKceN09dAJzbyEONUuZ5r9vhJCeL0lbYJkL4qy0EWaKZrpw4aMuPOaYmiMaI66O5g= Received: from BY5PR11MB4166.namprd11.prod.outlook.com (2603:10b6:a03:191::25) by SJ0PR11MB4991.namprd11.prod.outlook.com (2603:10b6:a03:2df::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3912.17; Wed, 10 Mar 2021 00:25:06 +0000 Received: from BY5PR11MB4166.namprd11.prod.outlook.com ([fe80::5983:f233:56d6:8132]) by BY5PR11MB4166.namprd11.prod.outlook.com ([fe80::5983:f233:56d6:8132%4]) with mapi id 15.20.3912.027; Wed, 10 Mar 2021 00:25:06 +0000 From: "Yao, Jiewen" To: Laszlo Ersek , "Xu, Min M" , "devel@edk2.groups.io" CC: Liming Gao , "Liu, Zhiguang" , "Justen, Jordan L" , "Tom Lendacky" , Brijesh Singh , James Bottomley , Tobin Feldman-Fitzthum , Dov Murik , "Dr. David Alan Gilbert" Subject: Re: [PATCH V3 0/3] Add TdxLib support for Intel TDX Thread-Topic: [PATCH V3 0/3] Add TdxLib support for Intel TDX Thread-Index: AQHXFKtg6uDSHpZhk0y2lvgIEzirn6p7nhKAgAAClICAALtoAA== Date: Wed, 10 Mar 2021 00:25:05 +0000 Message-ID: References: <2e6e8275-e5f2-c8f3-e30a-f1ee51d279fd@redhat.com> In-Reply-To: <2e6e8275-e5f2-c8f3-e30a-f1ee51d279fd@redhat.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [101.87.139.49] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: a1af1f1e-b458-490c-e2b7-08d8e35af476 x-ms-traffictypediagnostic: SJ0PR11MB4991: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: NgPQ8HFnvCmyKD4Z5CzMWof/udnmixmu5e6aQFI3ffgwSt2cZ3t09flx6tvZW88N+qTZ4xj3mbWNRHwjT6s8+YpoNiD6mR+IRiZX4kuQsM7UYdG78qam9LLO6LqxBa0G9UQ6Iw5EDzuTNF3iPozsbC3qywcRyWifXMYEPBz+MLeIGx6cKlBtOmvRt93GlsBfN1DwXZqaqCoOyal1XIc8CR8FSgOSE0QOffOLf4lMkYigwl+jaQnXFTiQD5rDHmacs4UAMKKMIXzHHIftSOXlAOGI8fzkXKIxRoE3L07h7j/72S6egi/erOuPDNExM7rO6yvdoDJiTQnIL7+ehXYsbLsDZmbjud1jfwAwHxF+SR6gqjNow9+DEelCMs8q6/O/x0q63EiEZDSQZEZpbn3NZbe/xWc3D2xSV5cRHIF7iu044oLqsbF4cfA+y9jMge8rNHC3n0PLESVl9ZQ19fZRGL/aFxJBCfb/G53nPuJUligJM9MHo0N/IKDWw1Y1oYdE0i+QJ7iKex1x5OiWRF4nKhHhbD6zzoFA89XsNLEMJZfCMDhrVQcKIdcbP4lCQWUtxJZ98BczsjKWQF2Ra4SCJtyJJ9FXup3sMhu4eHTFJnI= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR11MB4166.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(136003)(366004)(346002)(39860400002)(376002)(396003)(86362001)(64756008)(5660300002)(9686003)(2906002)(8936002)(71200400001)(316002)(6506007)(8676002)(66476007)(4326008)(66556008)(33656002)(83380400001)(478600001)(186003)(54906003)(26005)(66946007)(52536014)(110136005)(53546011)(966005)(55016002)(7696005)(66446008)(76116006);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?Rnk5cFNVcUxxaGhOdnhjL2J2YUtzcStrSkU1SmltN3d1U1JpeHFGM2YxOXZo?= =?utf-8?B?RmJZbDlmNHd5cnpjcEg1ZEJoeDU1Sm5BWG1QYVI1SDJqK1lWc0lxeU4rN2pL?= =?utf-8?B?QmJJYVFLaDZoQitsMTdMZW54dGpEMG5LUWxBQ1FNbCtTQkN5YTV5a29rSnlx?= =?utf-8?B?U0JaZ09YZXVIRzF1NG4rRkFGQVMwU3FuS1l4WVRtVGRDenpMNHhiV05jeEFU?= =?utf-8?B?eUZFa21EK1RwN1BvUzZ1bC9KZEE3b0FKZWI2T3pHazhLVHd6ZjM4OStaeEU4?= =?utf-8?B?RlN2c3ZFR1NsZUNBQ0hjVnRIcVRrbVo2b1BQV3c0ZDhlckdmUmFMbzhsS1ZI?= =?utf-8?B?M0VFclFCS3Z0RW04Q2d3aWE0VWNaTUhUL2pqY1hLNzYzYmNDM2pNakpwaTM2?= =?utf-8?B?MnpvcytxZlFPQmZyVzVtbnFtS0l2Nm8ydHd2RWp2Wmw0dTZVU050WldPQnAw?= =?utf-8?B?OE5TN3R4MGVSRmZZUDNlT2tSdDR6QTBhemtPNmlOS0NVcHRLUGI1SjhFSHFr?= =?utf-8?B?T1Nsa0E2SG5mSDFSM3MyOGRIU2dCRUZQUGNkTzFheEgrV2xjWjk5WHQzNmd5?= =?utf-8?B?aDJZR0dNOXd3eU92c0h6dXg0ZE5FZTdaYnhxYXkzYXNmaEYwQ0xnaGwzbSt1?= =?utf-8?B?clBCVkcwZGdSaUtlRWU3ZjNBOUJpYnpwNzcvREc4azFKZ3BCMk5lbTFJS1lw?= =?utf-8?B?UDJyQlpGVVNzWk9jbFQ5UE1HMXltNStTT2FvQzBGSzU1V2tMSW1vRENmKzh2?= =?utf-8?B?QWJWeDJNS2ViMjdFWWdWdWVjYXNxczM4elZwNWdmUGh5QUJXOXlQaHNOQzdX?= =?utf-8?B?UTZjbzI2Z2s5SWd5VStVRlFyYVd2eU9YUlBSU2JBc045UG1ZN0c1R1lpN201?= =?utf-8?B?Q3R6bmZwUERMdTRxVXorTmhEUFVLR0lWUmVpd2x6S2tpYkJTTGMrTUFGSVVx?= =?utf-8?B?N3pkYkdlRTk4L0xKRjk0THlhQTgrcnBzV2NKc1FPM3hlbjV4Y2ZSalJ6M2Uy?= =?utf-8?B?VkdLcEV2MFF3OTdIN0N2RVM4TTdMSFhlY3RFN3FzakxWQ2hTMXlJRHVYamZJ?= =?utf-8?B?cExYQ2c3MkRYWGdkYkllUXlJUXNEbHdNMktvQXRkSEY2T3NiRHNGUUNDWTJq?= =?utf-8?B?Sjc4U3hJMjk2ZzFSVGVuS3phS3BKT3B1aHVBTkdRaFA3Mm1kTTE1MENLTkN4?= =?utf-8?B?eC9NSURnWFFuc0VMSHRqZWFKT1NzTEcvL2gvSkl4KzBxSHA4TW5GeDZFb1li?= =?utf-8?B?amhnRWczUk5lSHFhTVYySlZOQ0FQTHZpMlhlZ0lrdWtiM2xBOThXNVF1S1VZ?= =?utf-8?B?ajN4ektFUXNmWmt2NnVSTWZodm50OFp2cTdmOEtvV3hnYXF1dzdXTWVwZllj?= =?utf-8?B?R2dBZnhFbnlIMUF5andDdFZpbG9Lem5sakxCcDl6MXJOdHdNQmRuUTJvdC9w?= =?utf-8?B?K1g1Y2xXYkJCU0pyaThwQkpwUWkvWDlRVGQ5RXl6ZmdsRG5sQWhRcFZVS3NP?= =?utf-8?B?eEkxbFBNUWVKS0E1aUFpaU5pT2VsZTd5NmY3V2NKbEQzVWMrKzFsT3dMcE9N?= =?utf-8?B?TGdLQ1lFcG1wejA1QWNGVDlCWVJDazRTSFV6a0FDMk1FZGhiLythenNvMDlm?= =?utf-8?B?VHNQbUdIZG5RbGtKcUhKbm1pLzY0SS9zNmY1SjVBTGVQaHFFVW92RlBSRXlp?= =?utf-8?B?c1VBYXVWS1d2eTB4bnIxWU5kVGJyZE9Gbk5ML0hKNm1mWFhkMFZKUGxlNXJJ?= =?utf-8?Q?gsWOXK34fpygCtFMWEVBmuJuPBwcq8ygD69PWCR?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BY5PR11MB4166.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a1af1f1e-b458-490c-e2b7-08d8e35af476 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Mar 2021 00:25:05.9349 (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: /pbjWqEs4+ii7PXsMSeP+v1nlrOCVcsB6glenpSqtwNdrTWIksynaZ1IFt1pGx1ymMuC9uesZfFSEBFJ+3Hvsg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB4991 Return-Path: jiewen.yao@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VmVyeSBnb29kIHN1Z2dlc3Rpb24uIFRoYW5rcyBMYXN6bG8uDQoNCkZvciAzKSwgTWluIFh1IGFu ZCBJIHdpbGwgYmUgdGhlIHJldmlld2VyIGZvciBJbnRlbCBURFggY2hhbmdlIGZvciBPVk1GLg0K DQpGb3IgNiksIGFncmVlLiBBbHRob3VnaCB0aGVyZSBpcyBzb21lIGFyY2hpdGVjdHVyZSBkaWZm ZXJlbmNlLCBlLmcsIEFNRCB1c2luZyBQU1AgLSBhIGNvLXByb2Nlc3NvciB3aGlsZSBJbnRlbCB1 c2luZyBURFggbW9kdWxlIC0gYSBuZXcgQ1BVIGV4ZWN1dGlvbiBtb2RlLCB3ZSBzaG91bGQgYWxp Z24gYXMgbXVjaCBhcyBwb3NzaWJsZSBiZXR3ZWVuIEludGVsIFREWCBhbmQgQU1EIFNFViwgZXNw ZWNpYWxseSBmb3IgcHVyZSBzb2Z0d2FyZSBhcmNoaXRlY3R1cmUuDQpJIHdpbGwgYmUgdGhlIElu dGVsIHJldmlld2VyIGZvciBjb25maWRlbnRpYWwgY29tcHV0aW5nIHRvcGljLg0KV2VsY29tZSBB TUQvSUJNLy4uLiBoYXZpbmcgYSByZXByZXNlbnRhdGl2ZSB0b28uDQoNCk1pbiBhbmQgSSB3aWxs IHN5bmMgYW5kIHN1Ym1pdCB0aGUgcGF0Y2ggZm9yIG1haW50YWluZXIudHh0DQoNCg0KVGhhbmsg eW91DQpZYW8gSmlld2VuIA0KDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJv bTogTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT4NCj4gU2VudDogVHVlc2RheSwgTWFy Y2ggOSwgMjAyMSA5OjA2IFBNDQo+IFRvOiBYdSwgTWluIE0gPG1pbi5tLnh1QGludGVsLmNvbT47 IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+IENjOiBMaW1pbmcgR2FvIDxnYW9saW1pbmdAYnlvc29m dC5jb20uY24+OyBMaXUsIFpoaWd1YW5nDQo+IDx6aGlndWFuZy5saXVAaW50ZWwuY29tPjsgSnVz dGVuLCBKb3JkYW4gTCA8am9yZGFuLmwuanVzdGVuQGludGVsLmNvbT47IFlhbywNCj4gSmlld2Vu IDxqaWV3ZW4ueWFvQGludGVsLmNvbT47IFRvbSBMZW5kYWNreSA8dGhvbWFzLmxlbmRhY2t5QGFt ZC5jb20+Ow0KPiBCcmlqZXNoIFNpbmdoIDxicmlqZXNoLnNpbmdoQGFtZC5jb20+OyBKYW1lcyBC b3R0b21sZXkNCj4gPGplamJAbGludXguaWJtLmNvbT47IFRvYmluIEZlbGRtYW4tRml0enRodW0g PHRvYmluQGlibS5jb20+OyBEb3YgTXVyaWsNCj4gPERvdi5NdXJpazFAaWwuaWJtLmNvbT47IERy LiBEYXZpZCBBbGFuIEdpbGJlcnQgPGRnaWxiZXJ0QHJlZGhhdC5jb20+DQo+IFN1YmplY3Q6IFJl OiBbUEFUQ0ggVjMgMC8zXSBBZGQgVGR4TGliIHN1cHBvcnQgZm9yIEludGVsIFREWA0KPiANCj4g T24gMDMvMDkvMjEgMTM6NTcsIExhc3psbyBFcnNlayB3cm90ZToNCj4gPiBPbiAwMy8wOS8yMSAw NzoxMiwgTWluIFh1IHdyb3RlOg0KPiA+PiBSRUY6IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3Jl Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzI0OQ0KPiA+Pg0KPiA+PiBUaGUgcGF0Y2ggc2VyaWVzIHBy b3ZpZGVzIGxpYiBzdXBwb3J0IGZvciBJbnRlbCBUcnVzdCBEb21haW4gRXh0ZW5zaW9ucw0KPiA+ PiAoSW50ZWwgVERYKS4NCj4gPj4NCj4gPj4gSW50ZWwncyBUcnVzdCBEb21haW4gRXh0ZW5zaW9u cyAoSW50ZWwgVERYKSByZWZlcnMgdG8gYW4gSW50ZWwgdGVjaG5vbG9neQ0KPiA+PiB0aGF0IGV4 dGVuZHMgVmlydHVhbCBNYWNoaW5lcyBFeHRlbnNpb25zIChWTVgpIGFuZCBNdWx0aS1LZXkgVG90 YWwgTWVtb3J5DQo+ID4+IEVuY3J5cHRpb24gKE1LVE1FKSB3aXRoIGEgbmV3IGtpbmQgb2Ygdmly dXRhbCBtYWNoaW5lcyBndWVzdCBjYWxsZWQgYQ0KPiA+PiBUcnVzdCBEb21haW4gKFREKS4gQSBU RCBpcyBkZXNpbmdlZCB0byBydW4gaW4gYSBDUFUgbW9kZSB0aGF0IHByb3RlY3RzIHRoZQ0KPiA+ PiBjb25maWRlbnRpYWxpdHkgb2YgVEQgbWVtb3J5IGNvbnRlbnRzIGFuZCB0aGUgVEQncyBDUFUg c3RhdGUgZnJvbSBvdGhlcg0KPiA+PiBzb2Z0d2FyZSwgaW5jbHVkaW5nIHRoZSBob3N0aW5nIFZp cnR1YWwtTWFjaGluZSBNb25pdG9yIChWTU0pLCB1bmxlc3MNCj4gPj4gZXhwbGljaXRseSBzaGFy ZWQgYnkgdGhlIFREIGl0c2VsZi4NCj4gPj4NCj4gPj4gVGhlIEludGVsIFREWCBtb2R1bGUgdXNl cyB0aGUgaW5zdHJ1Y3Rpb24tc2V0IGFyY2hpdGVjdHVyZSBmb3IgSW50ZWwgVERYDQo+ID4+IGFu ZCB0aGUgTUtUTUUgZW5naW5lIGluIHRoZSBTT0MgdG8gaGVscCBzZXJ2ZSBhcyBhbiBpbnRlcm1l ZGlhcnkgYmV0d2Vlbg0KPiA+PiB0aGUgaG9zdCBWTU0gYW5kIHRoZSBndWVzdCBURC4gVERDQUxM IGlzIHRoZSBpbnN0cnVjdGlvbiB3aGljaCBhbGxvd3MgVEQNCj4gPj4gZ3Vlc3QgcHJpdmlsZWdl ZCBzb2Z0d2FyZSB0byBtYWtlIGEgY2FsbCBmb3Igc2VydmljZSBpbnRvIGFuIHVuZGVybHlpbmcN Cj4gPj4gVERYLW1vZHVsZS4NCj4gPj4NCj4gPj4gVGR4TGliIGlzIGNyZWF0ZWQgd2l0aCBmdW5j dGlvbnMgdG8gcGVyZm9ybSB0aGUgcmVsYXRlZCBUZHggb3BlcmF0aW9uLg0KPiA+PiBUaGlzIGlu Y2x1ZGVzIGZ1bmN0aW9ucyBmb3I6DQo+ID4+ICAgLSBUZENhbGwgICAgICAgICA6IHRvIGNhdXNl IGEgVk0gZXhpdCB0byB0aGUgSW50ZWwgVERYIG1vZHVsZQ0KPiA+PiAgIC0gVGRWbUNhbGwgICAg ICAgOiBpdCBpcyBhIGxlYWYgZnVuY3Rpb24gMCBmb3IgVERDQUxMDQo+ID4+ICAgLSBUZFZtQ2Fs bENwdWlkICA6IGVuYWJsZSB0aGUgVEQgZ3Vlc3QgdG8gcmVxdWVzdCBWTU0gdG8gZW11bGF0ZSBD UFVJRA0KPiA+PiAgIC0gVGRSZXBvcnQgICAgICAgOiB0byByZXRyaWV2ZSBURFJFUE9SVF9TVFJV Q1QNCj4gPj4gICAtIFRkQWNjZXB0UGFnZXMgIDogdG8gYWNjZXB0IHBlbmRpbmcgcHJpdmF0ZSBw YWdlcw0KPiA+PiAgIC0gVGRFeHRlbmRSdG1yICAgOiB0byBleHRlbmQgb25lIG9mIHRoZSBSVE1S IHJlZ2lzdGVycw0KPiA+Pg0KPiA+PiBUaGUgYmFzZSBmdW5jdGlvbiBpbiBNZGVQa2cgd2lsbCBu b3QgZG8gYW55dGhpbmcgYW5kIHdpbGwgcmV0dXJuIGFuIGVycm9yDQo+ID4+IGlmIGEgcmV0dXJu IHZhbHVlIGlzIHJlcXVpcmVkLiBJdCBpcyBleHBlY3RlZCB0aGF0IG90aGVyIHBhY2thZ2VzDQo+ ID4+IChsaWtlIE92bWZQa2cpIHdpbGwgY3JlYXRlIGEgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSB0 byBmdWxseSBzdXBwb3J0IGEgVEQNCj4gPj4gZ3Vlc3QuDQo+ID4+DQo+ID4+IFdlIGNyZWF0ZSBh biBPVk1GIHZlcnNpb24gb2YgdGhpcyBsaWJyYXJ5IHRvIGJlZ2luIHRoZSBwcm9jZXNzIG9mIHBy b3ZpZGluZw0KPiA+PiBmdWxsIHN1cHBvcnQgb2YgVERYIGluIE9WTUYuDQo+ID4+DQo+ID4+IFRv IHN1cHBvcnQgdGhlIGVtdWxhdGlvbiBhbmQgdGVzdCBwdXJwb3NlLCAyIFBDRHMgYXJlIGFkZGVk IGluIE92bWZQa2cuZGVjDQo+ID4+ICAgLSBQY2RVc2VUZHhBY2NlcHRQYWdlDQo+ID4+ICAgICBJ bmRpY2F0ZSB3aGV0aGVyIFRkQ2FsbChBY2NlcHRQYWdlKSBpcyB1c2VkLg0KPiA+PiAgIC0gUGNk VXNlVGR4RW11bGF0aW9uDQo+ID4+ICAgICBJbmRpY2F0ZSB3aGV0aGVyIFRkeEVtdWxhdGlvbiBp cyB1c2VkLg0KPiA+DQo+ID4gKDEpIHBlciBKaWV3ZW4ncyBmZWVkYmFjaywgcGxlYXNlIGRyb3Ag dGhlc2UgUENEcyAtLSBpbXBvcnRhbnRseSwgcGxlYXNlDQo+ID4gZHJvcCBEQi1lbmNvZGVkIGlu c3RydWN0aW9ucyBpbiBhc3NlbWJseSBzb3VyY2UgY29kZQ0KPiA+DQo+ID4gKDIpIEl0J3Mgbm90 IHJlYWxseSBoZWxwZnVsIHRvIHBvc3QgdGhyZWUgdmVyc2lvbnMgb2YgYSBwYXRjaCBzZXQgb3Zl cg0KPiA+IHRoZSBjb3Vyc2Ugb2YgYSBmZXcgaG91cnMuIEkgZG9uJ3Qgc3VnZ2VzdCBwb3N0aW5n IG1vcmUgZnJlcXVlbnRseSB0aGFuDQo+ID4gb25jZSBwZXIgZGF5LCB1bmxlc3MgYWdyZWVkIG90 aGVyd2lzZS4NCj4gPg0KPiA+ICgzKSBQbGVhc2UgYWRkIGEgbmV3IHNlY3Rpb24gdG8gTWFpbnRh aW5lcnMudHh0IGZvciBURFggY29udGVudCBpbg0KPiA+IE92bWZQa2cuIEF0IGxlYXN0IHR3byBJ bnRlbCBkZXZlbG9wZXJzIHNob3VsZCBiZSBsaXN0ZWQgdGhlcmUgYXMNCj4gPiBSZXZpZXdlcnMu IEknZCBsaWtlIHRvIHBlcm1hbmVudGx5IGRlbGVnYXRlIFREWCByZXZpZXdzIHRvIEludGVsDQo+ ID4gY29udHJpYnV0b3JzLg0KPiA+DQo+ID4gU2VlIGFsc28gdGhlICJPdm1mUGtnOiBTRVYtcmVs YXRlZCBtb2R1bGVzIiBzZWN0aW9uIGluICJNYWludGFpbmVycy50eHQiLg0KPiA+DQo+ID4gKDQp IFRoZSBwYXRjaGVzIGNvbnRhaW4gbnVtZXJvdXMgc3R5bGUgaXNzdWVzOg0KPiA+DQo+ID4gLSBv dmVybG9uZyBsaW5lcywNCj4gPg0KPiA+IC0gaW5jb21wbGV0ZSAiQHJldHZhbCIgY29tbWVudHMs DQo+ID4NCj4gPiAtIExpYnJhcnkgI2luY2x1ZGUgZGlyZWN0aXZlcyBtaXhlZCB3aXRoIG5vbi1s aWJyYXJ5ICNpbmNsdWRlIGRpcmVjdGl2ZXMsDQo+ID4NCj4gPiAtIHZhcmlhYmxlcyB0aGF0IHNo b3VsZCBiZSBTVEFUSUMgYnV0IGFyZSBub3QgZGVjbGFyZWQgbGlrZSB0aGF0LA0KPiA+DQo+ID4g LSB3aGl0ZXNwYWNlIGVycm9yczogbWlzc2luZyBzcGFjZSBjaGFyYWN0ZXIgYmV0d2VlbiBmdW5j dGlvbiBkZXNpZ25hdG9yDQo+ID4gKG9yIG1hY3JvIG5hbWUpIGFuZCBvcGVuaW5nIHBhcmVuDQo+ ID4NCj4gPiAtIG1vcmUgd2hpdGVzcGFjZSBlcnJvcnM6IG1pc3Npbmcgc3BhY2UgY2hhcmFjdGVy cyBhcm91bmQgImlmIiBhbmQNCj4gPiAiZWxzZSIga2V5d29yZHMNCj4gPg0KPiA+ICg1KSBTb21l IG9mIHRoZSBzb3VyY2UgZmlsZXMgaGF2ZSBvdXRkYXRlZCBsaWNlbnNlIGJsb2NrcyAoZS5nLiwN Cj4gPiBvcGVuLWNvZGluZyB0aGUgMi1jbGF1c2UgQlNETCBhbmQgc3RhdGluZyBhIGNvcHlyaWdo dCB5ZWFyIG9mIDIwMjAsDQo+ID4gcmF0aGVyIHRoYW4gc3RhdGluZyAyMDIxIGFuZCB1c2luZyAi U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6DQo+ID4gQlNELTItQ2xhdXNlLVBhdGVudCIpDQo+ID4N Cj4gPiBQbGVhc2UgZ28gb3ZlciB0aGUgcGF0Y2hlcyB3aXRoIGEgZmluZS10b290aGVkIGNvbWIg YW5kIHJlZnJlc2ggdGhlbS4NCj4gPg0KPiA+ICg2KSBJdCB3b3VsZCBiZSBuaWNlIGlmIFNFVi1y ZWxhdGVkIHBhdGNoIHNldHMgYW5kIFREWC1yZWxhdGVkIHBhdGNoDQo+ID4gc2V0cyB3ZXJlIGNy b3NzLUNDJ2QgYmV0d2VlbiBBTUQgYW5kIEludGVsIGNvbnRyaWJ1dG9ycy4gKFdpdGggdGhlDQo+ ID4gaW50ZW50IGJlaW5nIGNvZGUgcmV1c2UsIGFuZCBwZXJoYXBzICJkZXNpZ24gcmV1c2UiLikN Cj4gPg0KPiA+IE1heWJlIHdlIHNob3VsZCBoYXZlIGFuIGFkZGl0aW9uYWwgImNvbmZpZGVudGlh bCBjb21wdXRpbmciIHJldmlld2Vycw0KPiA+IHNlY3Rpb24gaW4gIk1haW50YWluZXJzLnR4dCIs IGNvdmVyaW5nIGJvdGggU0VWIGFuZCBURFggbW9kdWxlcy4gVGhpcw0KPiA+IHdvdWxkIGFsbG93 IGZvciBhIHdpZGVyIHNldCBvZiBDQydzLCB3aXRob3V0IG9ic2N1cmluZyB3aG8gc2hvdWxkIHJl dmlldw0KPiA+IFREWCB2cy4gd2hvIHNob3VsZCByZXZpZXcgU0VWLiBJIHRoaW5rIHRoaXMgdW5p ZmllZCBzZWN0aW9uIHNob3VsZCBsaXN0DQo+ID4gYSBudW1iZXIgb2YgSUJNIGRldmVsb3BlcnMg dG9vLg0KPiANCj4gKDcpIFNvbWUgbW9yZSBhZG1pbiBzdHVmZjoNCj4gDQo+ICg3YSkgZXZlcnkg cGF0Y2ggaW4gdGhpcyBzZXJpZXMgc2hvdWxkIGNhcnJ5IHRoZSBmb2xsb3dpbmcgbGluZSBpbiB0 aGUNCj4gY29tbWl0IG1lc3NhZ2U6DQo+IA0KPiBSZWY6IGh0dHBzOi8vYnVnemlsbGEudGlhbm9j b3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzI0OQ0KPiANCj4gKDdiKSB3aGVuZXZlciB5b3UgcG9z dCBhIG5ldyB2ZXJzaW9uIG9mIHRoZSBwYXRjaCBzZXQsIHBsZWFzZSBhZGQgYSBuZXcNCj4gY29t bWVudCB0byA8aHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0z MjQ5PiwNCj4gbGlua2luZyB0aGUganVzdC1wb3N0ZWQgdmVyc2lvbiAodGhlIGNvdmVyIGxldHRl ciBlbWFpbCkgZnJvbSB0aGUNCj4gbWFpbGluZyBsaXN0IGFyY2hpdmUuDQo+IA0KPiBUaGlzIGlz IGltcG9ydGFudCBpbiBjYXNlIHdlIHdhbnQgdG8gcmV2aWV3IHRoZSBldm9sdXRpb24gb2YgdGhl IHBhdGNoDQo+IHNlcmllcyBsYXRlci4gSXQncyBtb3JlIGRpZmZpY3VsdCB0byBmaW5kIHJlbGV2 YW50IGVtYWlsIHRocmVhZHMgbGF0ZXINCj4gdGhhbiB0byBsaW5rIGVhY2ggcG9zdGluZyBpbW1l ZGlhdGVseSBpbiB0aGUgYnVnemlsbGEgdGlja2V0Lg0KPiANCj4gVGhhbmtzDQo+IExhc3psbw0K DQo=