From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mx.groups.io with SMTP id smtpd.web11.3096.1578384341193272029 for ; Tue, 07 Jan 2020 00:05:41 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.88, mailfrom: zhichao.gao@intel.com) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 07 Jan 2020 00:05:40 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,404,1571727600"; d="scan'208";a="217649205" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by fmsmga008.fm.intel.com with ESMTP; 07 Jan 2020 00:05:40 -0800 Received: from fmsmsx118.amr.corp.intel.com (10.18.116.18) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 7 Jan 2020 00:05:40 -0800 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by fmsmsx118.amr.corp.intel.com (10.18.116.18) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 7 Jan 2020 00:05:40 -0800 Received: from shsmsx101.ccr.corp.intel.com ([169.254.1.30]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.55]) with mapi id 14.03.0439.000; Tue, 7 Jan 2020 16:05:37 +0800 From: "Gao, Zhichao" To: "Yao, Jiewen" , "devel@edk2.groups.io" CC: "Wang, Jian J" , "Zhang, Chao B" , "Justen, Jordan L" , Laszlo Ersek , Ard Biesheuvel , =?utf-8?B?TWFyYy1BbmRyw6kgTHVyZWF1?= , "Stefan Berger" Subject: Re: [edk2-devel] [PATCH 00/13] Extend and fix the TCG/TCG2 Physical Presence Interface Thread-Topic: [edk2-devel] [PATCH 00/13] Extend and fix the TCG/TCG2 Physical Presence Interface Thread-Index: AQHVweKINv4kHl9GkkOll1rQ3CYyxKfYQblggAAS/uCAABT/kIAABbtggAZE/HA= Date: Tue, 7 Jan 2020 08:05:34 +0000 Message-ID: <3CE959C139B4C44DBEA1810E3AA6F9000B8BF958@SHSMSX101.ccr.corp.intel.com> References: <20200103030428.28176-1-zhichao.gao@intel.com> <74D8A39837DF1E4DA445A8C0B3885C503F8C9AAA@shsmsx102.ccr.corp.intel.com> <3CE959C139B4C44DBEA1810E3AA6F9000B8BBFA2@SHSMSX101.ccr.corp.intel.com> <15E649625DE7E06B.2038@groups.io> <74D8A39837DF1E4DA445A8C0B3885C503F8C9DEB@shsmsx102.ccr.corp.intel.com> In-Reply-To: <74D8A39837DF1E4DA445A8C0B3885C503F8C9DEB@shsmsx102.ccr.corp.intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiYWFiY2ExZDctMmVlZi00MTM5LWFhYTYtMzA1ZjA5NzllMDllIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiVW1IUVltSWVHanY2YVd4Q2ZyNnlrdCtkcVc2RHNTMDNjaGhsN3ZTa1RNUnVEaFlCbyt5V2ZBTVcwWkdZZFZnSCJ9 x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Return-Path: zhichao.gao@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogWWFvLCBKaWV3ZW4gPGpp ZXdlbi55YW9AaW50ZWwuY29tPg0KPiBTZW50OiBGcmlkYXksIEphbnVhcnkgMywgMjAyMCAxOjU5 IFBNDQo+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9A aW50ZWwuY29tPjsgR2FvLCBaaGljaGFvDQo+IDx6aGljaGFvLmdhb0BpbnRlbC5jb20+DQo+IENj OiBXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT47IFpoYW5nLCBDaGFvIEINCj4g PGNoYW8uYi56aGFuZ0BpbnRlbC5jb20+OyBKdXN0ZW4sIEpvcmRhbiBMIDxqb3JkYW4ubC5qdXN0 ZW5AaW50ZWwuY29tPjsNCj4gTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT47IEFyZCBC aWVzaGV1dmVsIDxhcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnPjsNCj4gTWFyYy1BbmRyw6kgTHVy ZWF1IDxtYXJjYW5kcmUubHVyZWF1QHJlZGhhdC5jb20+OyBTdGVmYW4gQmVyZ2VyDQo+IDxzdGVm YW5iQGxpbnV4LmlibS5jb20+DQo+IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENIIDAw LzEzXSBFeHRlbmQgYW5kIGZpeCB0aGUgVENHL1RDRzIgUGh5c2ljYWwNCj4gUHJlc2VuY2UgSW50 ZXJmYWNlDQo+IA0KPiBTb21lIG90aGVyIGNvbW1lbnQ6DQo+IA0KPiA2LiBJIGRpc2FncmVlIHRv IG1vdmUgTnZEYXRhLmggdG8gc2VjdXJpdHlQa2cuDQo+IFRoaXMgaXMgZGVzaWduZWQgdG8gYmUg YW4gaW50ZXJuYWwgdmFyaWFibGUuDQo+IFdoeSBpdCBuZWVkIHRvIG1vdmUgdG8gc2VjdXJpdHkg cGtnIHRvIHNoYXJlIHdpdGggb3RoZXIgZHJpdmVyPw0KPiANCj4gSSBhZ3JlZSB0aGF0IGR1cGxp Y2F0aW5nIGNvZGUgaXMgYmFkIHNvbHV0aW9uLg0KPiBBbmQgZXhwb3NpbmcgaW50ZXJuYWwgZGF0 YSBzdHJ1Y3R1cmUgaXMgYXMgYmFkIGFzIGR1cGxpY2F0aW5nIGNvZGUuDQo+IA0KPiBCeSBkZXNp Z24sIHRoZSBwbGF0Zm9ybSBjYW4gaGF2ZSBpdHMgb3duIFRDRyBwbGF0Zm9ybSBsaWIgYW5kIGl0 cyBvd24gTnZEYXRhLmguDQo+IFdvdWxkIHlvdSBwbGVhc2UgaGVscCBtZSB1bmRlcnN0YW5kIHdo eSB0aGlzIGlzIG5lZWRlZD8NCg0KU29tZSBkZWZpbml0aW9ucyBpbiB0aGUgTnZEYXRhLmggYXJl IHVzZWZ1bCBmb3IgVGNnMlZlcm5kb3JMaWIsIHN1Y2ggYXM6DQojZGVmaW5lIFRQTV9ERVZJQ0Vf TlVMTCAgICAgICAgICAgMA0KI2RlZmluZSBUUE1fREVWSUNFXzFfMiAgICAgICAgICAgIDENCiNk ZWZpbmUgVFBNX0RFVklDRV8yXzBfRFRQTSAgICAgICAyDQojZGVmaW5lIFRQTV9ERVZJQ0VfTUlO ICAgICAgICAgICAgVFBNX0RFVklDRV8xXzINCiNkZWZpbmUgVFBNX0RFVklDRV9NQVggICAgICAg ICAgICBUUE1fREVWSUNFXzJfMF9EVFBNDQojZGVmaW5lIFRQTV9ERVZJQ0VfREVGQVVMVCAgICAg ICAgVFBNX0RFVklDRV8xXzINCkknZCBiZXR0ZXIgdG8gbW92ZSB0aGUgY29tbW9uIGRlZmluaXRp b24gdG8gYSBub3JtYWwgdGNnIGRldmljZSByZWxhdGVkIGhlYWRlciBmaWxlIGluc3RlYWQgb2Yg bW92aW5nIHRoaXMgZmlsZS4NCg0KPiANCj4gNy4gUmVtb3ZpbmcgYXNzZXJ0IGhhcyBubyByZWxh dGlvbnNoaXAgd2l0aCB0aGlzIGV4dGVuZCBQUEkgaW50ZXJmYWNlLg0KPiBJZiB5b3Ugd2FudCwg cGxlYXNlIGZpbGUgYW5vdGhlciBCdWd6aWxsYSBhbmQgaGFuZGxlIGl0IHNlcGFyYXRlbHkuDQo+ IA0KPiA4LiBGaXhpbmcgYnVnIHRvIGZvbGxvdyBzcGVjIGlzIGdvb2QuDQo+IEJ1dCBJIGRvIG5v dCBzZWUgdGhlIHJlbGF0aW9uc2hpcCB3aXRoIHRoZSBQUEkgaW50ZXJmYWNlIGV4dGVuc2lvbi4N Cj4gUGxlYXNlIGZpbGUgYW5vdGhlciBCdWd6aWxsYSBhbmQgaGFuZGxlIHRoYXQgc2VwYXJhdGVs eS4NCj4gDQoNCkZvciAjNywgIzggYW5kIG90aGVyIG5vbi1leHRlbmQgY2hhbmdlcywgSSB3b3Vs ZCBhZGQgbmV3IEJ1Z3ppbGxhIHRvIHNlcGFyYXRlIHRoZSBwYXRjaGVzLg0KDQpUaGFua3MsDQpa aGljaGFvDQoNCj4gDQo+IFRoYW5rIHlvdQ0KPiBZYW8gSmlld2VuDQo+IA0KPiANCj4gDQo+ID4g LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5p byA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZiBZYW8sDQo+ID4gSmlld2VuDQo+ ID4gU2VudDogRnJpZGF5LCBKYW51YXJ5IDMsIDIwMjAgMTozMCBQTQ0KPiA+IFRvOiBHYW8sIFpo aWNoYW8gPHpoaWNoYW8uZ2FvQGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4g Q2M6IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgWmhhbmcsIENoYW8gQg0K PiA+IDxjaGFvLmIuemhhbmdAaW50ZWwuY29tPjsgSnVzdGVuLCBKb3JkYW4gTA0KPiA+IDxqb3Jk YW4ubC5qdXN0ZW5AaW50ZWwuY29tPjsgTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT47 IEFyZA0KPiA+IEJpZXNoZXV2ZWwgPGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc+OyBNYXJjLUFu ZHLDqSBMdXJlYXUNCj4gPiA8bWFyY2FuZHJlLmx1cmVhdUByZWRoYXQuY29tPjsgU3RlZmFuIEJl cmdlciA8c3RlZmFuYkBsaW51eC5pYm0uY29tPg0KPiA+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZl bF0gW1BBVENIIDAwLzEzXSBFeHRlbmQgYW5kIGZpeCB0aGUgVENHL1RDRzINCj4gPiBQaHlzaWNh bCBQcmVzZW5jZSBJbnRlcmZhY2UNCj4gPg0KPiA+IFdoYXQgaXMgdGhlIHBsYXRmb3JtIHVzZSBj YXNlPw0KPiA+IFBsZWFzZSBnaXZlIGF0IGxlYXN0IHNvbWUgZXhhbXBsZXMuDQo+ID4NCj4gPg0K PiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+IEZyb206IEdhbywgWmhpY2hh byA8emhpY2hhby5nYW9AaW50ZWwuY29tPg0KPiA+ID4gU2VudDogRnJpZGF5LCBKYW51YXJ5IDMs IDIwMjAgMTowOCBQTQ0KPiA+ID4gVG86IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNv bT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gPiBDYzogV2FuZywgSmlhbiBKIDxqaWFuLmou d2FuZ0BpbnRlbC5jb20+OyBaaGFuZywgQ2hhbyBCDQo+ID4gPiA8Y2hhby5iLnpoYW5nQGludGVs LmNvbT47IEp1c3RlbiwgSm9yZGFuIEwNCj4gPiA+IDxqb3JkYW4ubC5qdXN0ZW5AaW50ZWwuY29t PjsgTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT47IEFyZA0KPiA+ID4gQmllc2hldXZl bA0KPiA+IDxhcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnPjsNCj4gPiA+IE1hcmMtQW5kcsOpIEx1 cmVhdSA8bWFyY2FuZHJlLmx1cmVhdUByZWRoYXQuY29tPjsgU3RlZmFuIEJlcmdlcg0KPiA+ID4g PHN0ZWZhbmJAbGludXguaWJtLmNvbT4NCj4gPiA+IFN1YmplY3Q6IFJFOiBbUEFUQ0ggMDAvMTNd IEV4dGVuZCBhbmQgZml4IHRoZSBUQ0cvVENHMiBQaHlzaWNhbA0KPiA+ID4gUHJlc2VuY2UgSW50 ZXJmYWNlDQo+ID4gPg0KPiA+ID4gU2VlIGJlbG93Lg0KPiA+ID4NCj4gPiA+ID4gLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gRnJvbTogWWFvLCBKaWV3ZW4NCj4gPiA+ID4gU2Vu dDogRnJpZGF5LCBKYW51YXJ5IDMsIDIwMjAgMTE6MDkgQU0NCj4gPiA+ID4gVG86IEdhbywgWmhp Y2hhbyA8emhpY2hhby5nYW9AaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiA+ ID4gQ2M6IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgWmhhbmcsIENoYW8g Qg0KPiA+ID4gPiA8Y2hhby5iLnpoYW5nQGludGVsLmNvbT47IEp1c3RlbiwgSm9yZGFuIEwNCj4g PiA+ID4gPGpvcmRhbi5sLmp1c3RlbkBpbnRlbC5jb20+OyBMYXN6bG8gRXJzZWsgPGxlcnNla0By ZWRoYXQuY29tPjsgQXJkDQo+ID4gPiA+IEJpZXNoZXV2ZWwgPGFyZC5iaWVzaGV1dmVsQGxpbmFy by5vcmc+OyBNYXJjLUFuZHLDqSBMdXJlYXUNCj4gPiA+ID4gPG1hcmNhbmRyZS5sdXJlYXVAcmVk aGF0LmNvbT47IFN0ZWZhbiBCZXJnZXINCj4gPiA+ID4gPHN0ZWZhbmJAbGludXguaWJtLmNvbT4N Cj4gPiA+ID4gU3ViamVjdDogUkU6IFtQQVRDSCAwMC8xM10gRXh0ZW5kIGFuZCBmaXggdGhlIFRD Ry9UQ0cyIFBoeXNpY2FsDQo+ID4gPiA+IFByZXNlbmNlIEludGVyZmFjZQ0KPiA+ID4gPg0KPiA+ ID4gPiBIaQ0KPiA+ID4gPiBJIGFtIG5vdCBjbGVhciBvbiB0aGUgcHVycG9zZSBvZiB0aGlzIGV4 dGVuc2lvbi4NCj4gPiA+ID4NCj4gPiA+ID4gVGhlIEJ1Z3ppbGxhIGp1c3QgZGVzY3JpYmVzIHRo ZSBzb2x1dGlvbi4NCj4gPiA+ID4gQnV0IHdoYXQgaXMgdGhlIHByb2JsZW0geW91IGFyZSB0cnlp bmcgdG8gcmVzb2x2ZT8NCj4gPiA+ID4NCj4gPiA+ID4gSSBjb21wbGV0ZWx5IGRvbuKAmXQgdW5k ZXJzdGFuZC4NCj4gPiA+ID4NCj4gPiA+ID4gUGxlYXNlIGRvIGNvbnNpZGVyIGFkZCB0aGUgYmFj a2dyb3VuZCBpbmZvcm1hdGlvbiB0aGVyZS4NCj4gPiA+ID4gT3IgaXQgaXMgaGFyZCBmb3IgbWUg dG8gY29tbWVudC4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gVGhhbmsgeW91DQo+ID4gPiA+ IFlhbyBKaWV3ZW4NCj4gPiA+ID4NCj4gPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KPiA+ID4gPiA+IEZyb206IEdhbywgWmhpY2hhbyA8emhpY2hhby5nYW9AaW50ZWwuY29tPg0K PiA+ID4gPiA+IFNlbnQ6IEZyaWRheSwgSmFudWFyeSAzLCAyMDIwIDExOjA0IEFNDQo+ID4gPiA+ ID4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gPiA+ID4gQ2M6IFlhbywgSmlld2VuIDxq aWV3ZW4ueWFvQGludGVsLmNvbT47IFdhbmcsIEppYW4gSg0KPiA+ID4gPiA+IDxqaWFuLmoud2Fu Z0BpbnRlbC5jb20+OyBaaGFuZywgQ2hhbyBCIDxjaGFvLmIuemhhbmdAaW50ZWwuY29tPjsNCj4g PiA+ID4gPiBKdXN0ZW4sIEpvcmRhbiBMIDxqb3JkYW4ubC5qdXN0ZW5AaW50ZWwuY29tPjsgTGFz emxvIEVyc2VrDQo+ID4gPiA+ID4gPGxlcnNla0ByZWRoYXQuY29tPjsgQXJkIEJpZXNoZXV2ZWwg PGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc+Ow0KPiA+ID4gPiA+IE1hcmMtQW5kcsOpIEx1cmVh dSA8bWFyY2FuZHJlLmx1cmVhdUByZWRoYXQuY29tPjsgU3RlZmFuIEJlcmdlcg0KPiA+ID4gPiA+ IDxzdGVmYW5iQGxpbnV4LmlibS5jb20+DQo+ID4gPiA+ID4gU3ViamVjdDogW1BBVENIIDAwLzEz XSBFeHRlbmQgYW5kIGZpeCB0aGUgVENHL1RDRzIgUGh5c2ljYWwNCj4gPiA+ID4gPiBQcmVzZW5j ZSBJbnRlcmZhY2UNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFJFRjogaHR0cHM6Ly9idWd6aWxsYS50 aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDQzDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAx LiBBZGQgdHdvIGludGVyZmFjZXMgVGNnMlBwVmVuZG9yTGliRXhlY3V0ZVBlbmRpbmdSZXF1ZXN0 RXggYW5kDQo+ID4gPiA+ID4gVGNnMlBwVmVuZG9yTGliU3VibWl0UmVxdWVzdFRvUHJlT1NGdW5j dGlvbkV4IHRvIFRjZzJQcFZlbmRvckxpYi4NCj4gPiBJdA0KPiA+ID4gPiA+IGhhcyBvbmUgbW9y ZSBwYXJhbWV0ZXIgUFBEYXRhICh0eXBlIEVGSV9UQ0cyX1BIWVNJQ0FMX1BSRVNFTkNFKQ0KPiA+ ID4gPiA+IHRvIHRyYW5zZmVyIG1vcmUgZGF0YS4NCj4gPiA+ID4gPiAyLiBVc2UgdGhlIEV4IHZl cnNpb24gaW5zdGVhZCBvZiBvcmlnaW5hbCBvbmUgaW4NCj4gPiA+ID4gPiBUY2cyUGh5c2ljYWxQ cmVzZW5jZUxpYiAzLiBBZGQgYSBwY2QNCj4gPiA+ID4gPiBQY2RQaHlzaWNhbFByZXNlbmNlVXNl ckNvbmZpcm1UaW1lb3V0IHRvIGNvbnRyb2wgdGhlIHVzZXINCj4gPiA+ID4gPiBjb25maXJtIGlu cHV0IGtleSB0aW1lb3V0Lg0KPiA+ID4gPiA+IDQuIEFkZCBGdW5jdGlvbkluZGV4IHRvIHN0cnVj dHVyZSB0eXBlDQo+ID4gPiA+ID4gRUZJX1RDRzJfUEhZU0lDQUxfUFJFU0VOQ0UgdG8gdHJhbnNm ZXINCj4gPiA+ID4gPiBtVGNnTnZzLT5QaHlzaWNhbFByZXNlbmNlLlBhcmFtZXRlciBkYXRhLg0K PiA+ID4gPiA+IDUuIEFkZCBwYXJhbWV0ZXIgRnVuY3Rpb25JbmRleCB0bw0KPiA+ID4gPiA+IFRj ZzJQaHlzaWNhbFByZXNlbmNlTGliU3VibWl0UmVxdWVzdFRvUHJlT1NGdW5jdGlvbkV4DQo+ID4g PiA+ID4gdG8gaW5pdGlhbGl6ZSB0aGUgUFBkYXRhLg0KPiA+ID4NCj4gPiA+IEJhY2tncm91bmQ6 DQo+ID4gPiBTb21lIHBsYXRmb3JtcyBpbXBsZW1lbnQgdGhlaXIgb3duIFRjZzJQcFZlbmRvckxp YiBhbmQgd2FudCB0bw0KPiA+ID4gb3BlcmF0ZSB3aXRoIG1vcmUgcGFyYW1ldGVycy4NCj4gPiA+ DQo+ID4gPiAjMS0jMiBhbmQgIzQtIzUgY2hhbmdlcyBhaW0gdG8gYWRkIGV4dGVuZCB0aGUgaW50 ZXJmYWNlIHdpdGggUFBkYXRhLg0KPiA+ID4gUFBkYXRhIHBvaW50ZXIgY2FuIHRyYW5zZmVyIG1v c3Qgb2YgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciB0byBkbyB0aGUNCj4gb3BlcmF0aW9uLg0KPiA+ ID4gQWxsIHRoZSBleHRlbmQgY2hhbmdlcyBpcyBmb3IgdGhlIFBQZGF0YSBhbmQgdHJhbnNmZXIg dG8gdGhlDQo+ID4gPiBwbGF0Zm9ybSBpbXBsZW1lbnRlZCBpbnRlcmZhY2VzLiBUaGlzIHdvdWxk IGFmZmVjdCB0aGUgcGxhdGZvcm1zDQo+ID4gPiB3aGljaCBpbXBsZW1lbnQNCj4gPiB0aGVpcg0K PiA+ID4gb3duIFRjZzJQcFZlbmRvckxpYi4NCj4gPiA+IEJ1dCBmb3Igb3BlbiBzb3VyY2UgcGxh dGZvcm0sIEkgZGlkbid0IHNlZSBhbnkgaW1wbGVtZW50YXRpb24gb2YgaXQuDQo+ID4gPg0KPiA+ ID4gIzMgYWltcyB0byBhZGQgYSBwY2QgdG8gbGV0IHRoZSBjdXN0b21lcnMgdG8gZGVjaWRlIHdo ZXRoZXIgdG8gd2FpdA0KPiA+ID4gZm9yIHRoZSBpbnB1dCBmb3JldmVyIG9yIHdpdGggYSB0aW1l b3V0IGNvdW50Lg0KPiA+ID4NCj4gPiA+ID4gPiA2LiBNb3ZlIFRjZzJDb25maWdOdkRhdGEuaCBm cm9tIFNlY3VyaXR5UGtnL1RjZy9UY2cyQ29uZmlnIHRvDQo+ID4gPiA+ID4gU2VjdXJpdHlQa2cv SW5jbHVkZS4NCj4gPiA+ID4gPiBJdCBpcyB1c2VmdWwgZm9yIHBsYXRmb3JtIGNvZGUgdG8gaW1w bGVtZW50IHRoZWlyIG93bg0KPiA+ID4gVGNnMlBoeXNpY2FsUHJlc2VuY2VMaWIuDQo+ID4gPg0K PiA+ID4gIzYgaXMgYSBtb3ZlbWVudCB0byBkZWNyZWFzZSB0aGUgZHVwbGljYXRlZCBjb2RlIGF0 IHBsYXRmb3JtIHNpZGUgaWYNCj4gPiA+IHRoZSBwbGF0Zm9ybSBjb2RlIGltcGxlbWVudCBpdHMg b3duIFRDRyBsaWJyYXJ5IG9yIGRyaXZlci4NCj4gPiA+DQo+ID4gPiA+ID4gNy4gUmVwbGFjZSB0 aGUgQVNTRVJUIHdpdGggZXJyb3IgY29kZSByZXR1cm4gaW4NCj4gPiA+ID4gPiBUcG1QaHlzaWNh bFByZXNlbmNlTGliDQo+ID4gPg0KPiA+ID4gIzcgYWltcyB0byByZW1vdmUgdGhlIEFTU0VSVCBi ZWNhdXNlIGl0IGlzIG5vdCBjcml0aWNhbC4gQVNTRVJUIHdoZW4NCj4gPiA+IGZhaWwgdG8NCj4g PiBjYWxsDQo+ID4gPiBUcG1QaHlzaWNhbFByZXNlbmNlIGFuZCBHZXRUcG1DYXBhYmlsaXR5IGlz IG5vdCBhIGdvb2QgYmVoYXZpb3IuDQo+ID4gPg0KPiA+ID4gPiA+IDguIEZpeCBvbmUgb3BlcmF0 aW9uDQo+ID4gPiA+ID4gKFBIWVNJQ0FMX1BSRVNFTkNFX0RFQUNUSVZBVEVfRElTQUJMRV9PV05F Ul9GQUxTRSkgZmxvdyBvZg0KPiA+ID4gPiA+IFRjZ1BoeXNpY2FsUHJlc2VuY2VMaWIgKHJlZmVy IHRvIFBoeXNpY2FsIFByZXNlbmNlIEludGVyZmFjZSBTcGVjIFBhZ2UNCj4gMzcpLg0KPiA+ID4N Cj4gPiA+ICM4IGlzIGEgYnVnIGZpeCB0byBmb2xsb3cgdGhlIHNwZWMuDQo+ID4gPg0KPiA+ID4g VGhhbmtzLA0KPiA+ID4gWmhpY2hhbw0KPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IENjOiBK aWV3ZW4gWWFvIDxqaWV3ZW4ueWFvQGludGVsLmNvbT4NCj4gPiA+ID4gPiBDYzogSmlhbiBKIFdh bmcgPGppYW4uai53YW5nQGludGVsLmNvbT4NCj4gPiA+ID4gPiBDYzogQ2hhbyBaaGFuZyA8Y2hh by5iLnpoYW5nQGludGVsLmNvbT4NCj4gPiA+ID4gPiBDYzogSm9yZGFuIEp1c3RlbiA8am9yZGFu LmwuanVzdGVuQGludGVsLmNvbT4NCj4gPiA+ID4gPiBDYzogTGFzemxvIEVyc2VrIDxsZXJzZWtA cmVkaGF0LmNvbT4NCj4gPiA+ID4gPiBDYzogQXJkIEJpZXNoZXV2ZWwgPGFyZC5iaWVzaGV1dmVs QGxpbmFyby5vcmc+DQo+ID4gPiA+ID4gQ2M6IE1hcmMtQW5kcsOpIEx1cmVhdSA8bWFyY2FuZHJl Lmx1cmVhdUByZWRoYXQuY29tPg0KPiA+ID4gPiA+IENjOiBTdGVmYW4gQmVyZ2VyIDxzdGVmYW5i QGxpbnV4LmlibS5jb20+DQo+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogWmhpY2hhbyBHYW8gPHpo aWNoYW8uZ2FvQGludGVsLmNvbT4gWmhpY2hhbyBHYW8gKDEzKToNCj4gPiA+ID4gPiAgIFNlY3Vy aXR5UGtnL1RjZzJQcFZlcm5kb3JMaWI6IEFkZCB0d28gRXggZnVuY3Rpb24gdG8gaGFuZGxlIFBQ ZGF0YQ0KPiA+ID4gPiA+ICAgU2VjdXJpdHlQa2cvVGNnMlBwVmVuZG9yTGliOiBBZGQgaW1wbGVt ZW50YXRpb24gb2YgbmV3IEV4IGZ1bmN0aW9uDQo+ID4gPiA+ID4gICBTZWN1cml0eVBrZy9UY2cy UGh5c2ljYWxQcmVzZW5jZUxpYjogVXNlIHRoZSBuZXcgRXggZnVuY3Rpb24NCj4gPiA+ID4gPiAg IFNlY3VyaXR5UGtnL1NtbVRjZzJQaHlzaWNhbFByZXNlbmNlTGliOiBVc2UgdGhlIG5ldyBFeCBm dW5jdGlvbg0KPiA+ID4gPiA+ICAgU2VjdXJpdHlQa2cvZGVjOiBBZGQgYSBwY2QgZm9yIHVzZXIg cmVzcG9uc2Ugd2FpdCB0aW1lDQo+ID4gPiA+ID4gICBPdm1mUGtnL1RjZzJQaHlzaWNhbFByZXNl bmNlTGliOiBVc2UgcGNkIGZvciB1c2VyIHJlc3BvbnNlIHdhaXQgdGltZQ0KPiA+ID4gPiA+ICAg U2VjdXJpdHlQa2cvVGNnMlBoeXNpY2FsUHJlc2VuY2VMaWI6IFVzZSBQY2QgZm9yIHVzZXIgcmVz cCB3YWl0IHRpbWUNCj4gPiA+ID4gPiAgIFNlY3VyaXR5UGtnL1RjZ1B5aHNpY2FsUHJlc2VuY2VM aWI6IFVzZSBQY2QgZm9yIHVzZXIgcmVzcCB3YWl0IHRpbWUNCj4gPiA+ID4gPiAgIFNlY3VyaXR5 UGtnL1RjZzJQaHlzaWNhbFByZXNlbmNlRGF0YS5oOiBBZGQgRnVuY3Rpb25JbmRleCBmb3IgUFBk YXRhDQo+ID4gPiA+ID4gICBTZWN1cml0eVBrZy9UY2cyUGh5c2ljYWxQcmVzZW5jZUxpYjogRXh0 ZW5kIHRoZSBzdWJtaXQgcHJlT1MgZnVuYw0KPiA+ID4gPiA+ICAgU2VjdXJpdHlQa2c6IE1vdmUg dGhlIFRjZzJDb25maWdOdkRhdGEuaCB0byBJbmNsdWRlIGZvbGRlcg0KPiA+ID4gPiA+ICAgU2Vj dXJpdHlQa2cvVGNnUGh5c2ljYWxQcmVzZW5jZUxpYjogUmVwbGFjZSB0aGUgQVNTRVJUIHdpdGgg ZXJyb3INCj4gY29kZQ0KPiA+ID4gPiA+ICAgU2VjdXJpdHlQa2cvVGNnUGh5c2ljYWxQcmVzZW5j ZUxpYjogRml4IHRoZSBvcGVyYXRpb24gb2YgMTENCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICAuLi4v RHhlVGNnMlBoeXNpY2FsUHJlc2VuY2VMaWIuYyAgICAgICAgICAgICAgfCAgNjMgKysrKysrKy0t LQ0KPiA+ID4gPiA+ICAuLi4vRHhlVGNnMlBoeXNpY2FsUHJlc2VuY2VMaWIuaW5mICAgICAgICAg ICAgfCAgIDYgKy0NCj4gPiA+ID4gPiAgLi4uL0luY2x1ZGUvR3VpZC9UY2cyUGh5c2ljYWxQcmVz ZW5jZURhdGEuaCAgIHwgICAzICstDQo+ID4gPiA+ID4gIC4uLi9JbmNsdWRlL0xpYnJhcnkvVGNn MlBoeXNpY2FsUHJlc2VuY2VMaWIuaCB8ICAgNCArLQ0KPiA+ID4gPiA+ICBTZWN1cml0eVBrZy9J bmNsdWRlL0xpYnJhcnkvVGNnMlBwVmVuZG9yTGliLmggfCAgNTQgKysrKysrKystDQo+ID4gPiA+ ID4gIC4uLi9UY2cyQ29uZmlnID0+IEluY2x1ZGV9L1RjZzJDb25maWdOdkRhdGEuaCB8ICAgMiAr LQ0KPiA+ID4gPiA+ICAuLi4vRHhlVGNnMlBoeXNpY2FsUHJlc2VuY2VMaWIuYyAgICAgICAgICAg ICAgfCAgNjggKysrKysrKystLS0NCj4gPiA+ID4gPiAgLi4uL0R4ZVRjZzJQaHlzaWNhbFByZXNl bmNlTGliLmluZiAgICAgICAgICAgIHwgICA0ICstDQo+ID4gPiA+ID4gIC4uLi9EeGVUY2dQaHlz aWNhbFByZXNlbmNlTGliLmMgICAgICAgICAgICAgICB8IDExMCArKysrKysrKysrKystLS0tLS0N Cj4gPiA+ID4gPiAgLi4uL0R4ZVRjZ1BoeXNpY2FsUHJlc2VuY2VMaWIuaW5mICAgICAgICAgICAg IHwgICA2ICstDQo+ID4gPiA+ID4gIC4uLi9TbW1UY2cyUGh5c2ljYWxQcmVzZW5jZUxpYi5jICAg ICAgICAgICAgICB8ICAxNSArKy0NCj4gPiA+ID4gPiAgLi4uL1RjZzJQcFZlbmRvckxpYk51bGwv VGNnMlBwVmVuZG9yTGliTnVsbC5jIHwgIDYxICsrKysrKysrKy0NCj4gPiA+ID4gPiAgU2VjdXJp dHlQa2cvU2VjdXJpdHlQa2cuZGVjICAgICAgICAgICAgICAgICAgIHwgICA3ICstDQo+ID4gPiA+ ID4gIFNlY3VyaXR5UGtnL1NlY3VyaXR5UGtnLnVuaSAgICAgICAgICAgICAgICAgICB8ICAgNyAr LQ0KPiA+ID4gPiA+ICBTZWN1cml0eVBrZy9UY2cvVGNnMkNvbmZpZy9UY2cyQ29uZmlnLnZmciAg ICAgfCAgIDQgKy0NCj4gPiA+ID4gPiAgU2VjdXJpdHlQa2cvVGNnL1RjZzJDb25maWcvVGNnMkNv bmZpZ0R4ZS5pbmYgIHwgICAzICstDQo+ID4gPiA+ID4gIFNlY3VyaXR5UGtnL1RjZy9UY2cyQ29u ZmlnL1RjZzJDb25maWdJbXBsLmggICB8ICAgNCArLQ0KPiA+ID4gPiA+ICBTZWN1cml0eVBrZy9U Y2cvVGNnMkNvbmZpZy9UY2cyQ29uZmlnUGVpLmluZiAgfCAgIDMgKy0NCj4gPiA+ID4gPiAgU2Vj dXJpdHlQa2cvVGNnL1RjZzJDb25maWcvVGNnMkNvbmZpZ1BlaW0uYyAgIHwgICA0ICstDQo+ID4g PiA+ID4gIFNlY3VyaXR5UGtnL1RjZy9UY2cyQ29uZmlnL1RwbURldGVjdGlvbi5jICAgICB8ICAg NCArLQ0KPiA+ID4gPiA+ICBTZWN1cml0eVBrZy9UY2cvVGNnMlNtbS9UY2cyU21tLmMgICAgICAg ICAgICAgfCAgMTAgKy0NCj4gPiA+ID4gPiAgMjEgZmlsZXMgY2hhbmdlZCwgMzQ3IGluc2VydGlv bnMoKyksIDk1IGRlbGV0aW9ucygtKSAgcmVuYW1lDQo+ID4gPiA+ID4gU2VjdXJpdHlQa2cve1Rj Zy9UY2cyQ29uZmlnID0+IEluY2x1ZGV9L1RjZzJDb25maWdOdkRhdGEuaCAoOTQlKQ0KPiA+ID4g PiA+DQo+ID4gPiA+ID4gLS0NCj4gPiA+ID4gPiAyLjIxLjAud2luZG93cy4xDQo+ID4NCj4gPg0K PiA+IA0KDQo=