From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.88, mailfrom: bob.c.feng@intel.com) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by groups.io with SMTP; Mon, 13 May 2019 04:41:27 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 May 2019 04:41:26 -0700 X-ExtLoop1: 1 Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga007.jf.intel.com with ESMTP; 13 May 2019 04:41:26 -0700 Received: from fmsmsx111.amr.corp.intel.com (10.18.116.5) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.408.0; Mon, 13 May 2019 04:41:26 -0700 Received: from shsmsx106.ccr.corp.intel.com (10.239.4.159) by fmsmsx111.amr.corp.intel.com (10.18.116.5) with Microsoft SMTP Server (TLS) id 14.3.408.0; Mon, 13 May 2019 04:41:25 -0700 Received: from shsmsx101.ccr.corp.intel.com ([169.254.1.129]) by SHSMSX106.ccr.corp.intel.com ([169.254.10.213]) with mapi id 14.03.0415.000; Mon, 13 May 2019 19:41:24 +0800 From: "Bob Feng" To: "Rodriguez, Christian" , "devel@edk2.groups.io" , "felixp@ami.com" , "'lersek@redhat.com'" CC: "Gao, Liming" , "Zhu, Yonghong" Subject: Re: [edk2-devel] [PATCH] BaseTools: Include headers not mentioned in inf are not hashed Thread-Topic: [edk2-devel] [PATCH] BaseTools: Include headers not mentioned in inf are not hashed Thread-Index: AQHVBq4MvM/i7cCL6EiFDTTClRqpD6Zi8UwAgADnRACAAFzmAIAABSqAgAADq4CABLRg4A== Date: Mon, 13 May 2019 11:41:23 +0000 Message-ID: <08650203BA1BD64D8AD9B6D5D74A85D16010CDA3@SHSMSX101.ccr.corp.intel.com> References: <20190509212719.6156-1-christian.rodriguez@intel.com> <9333E191E0D52B4999CE63A99BA663A00302C89341@atlms1.us.megatrends.com> <3A7DCC9A944C6149BF832E1C9B718ABC01EDA3B3@ORSMSX112.amr.corp.intel.com> <9333E191E0D52B4999CE63A99BA663A00302C89592@atlms1.us.megatrends.com> <3A7DCC9A944C6149BF832E1C9B718ABC01EDA3F1@ORSMSX112.amr.corp.intel.com> In-Reply-To: <3A7DCC9A944C6149BF832E1C9B718ABC01EDA3F1@ORSMSX112.amr.corp.intel.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNGU5Y2I3NGYtNTY2Yi00YTllLTgwNmYtMmQ3YjM0NzM1NzVlIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiaUhsV0ZZQ01cLzFpVUcxaTR5OVRwYnJzQktkSHo0VDVcL1dnRjVGXC9BcGw2YkxWR1lWa01YdUM1ZHZncmpUeVFXTSJ9 x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.600.7 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Return-Path: bob.c.feng@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgQ2hyaXN0aWFuLA0KDQpNb2R1bGVNYWtlZmlsZS5HZXRGaWxlRGVwZW5kZW5jeSgpICBnZXRz IHRoZSBoZWFkZXIgZmlsZSByZWN1cnNpdmVseSBmb3IgZWFjaCBzb3VyY2UgZmlsZSB1bmRlciBJ bmYgW1NvdXJjZXNdIHNlY3Rpb24uIFlvdSBjYW4gY2hlY2sgaWYgdGhpcyBmdW5jdGlvbiBjYW4g cmVzb2x2ZSB0aGUgcHJvYmxlbS4NCg0KVGhhbmtzLA0KQm9iDQoNCi0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQpGcm9tOiBSb2RyaWd1ZXosIENocmlzdGlhbiANClNlbnQ6IFNhdHVyZGF5LCBN YXkgMTEsIDIwMTkgMzo0NSBBTQ0KVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBmZWxpeHBAYW1p LmNvbTsgJ2xlcnNla0ByZWRoYXQuY29tJyA8bGVyc2VrQHJlZGhhdC5jb20+DQpDYzogRmVuZywg Qm9iIEMgPGJvYi5jLmZlbmdAaW50ZWwuY29tPjsgR2FvLCBMaW1pbmcgPGxpbWluZy5nYW9AaW50 ZWwuY29tPjsgWmh1LCBZb25naG9uZyA8eW9uZ2hvbmcuemh1QGludGVsLmNvbT4NClN1YmplY3Q6 IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENIXSBCYXNlVG9vbHM6IEluY2x1ZGUgaGVhZGVycyBub3Qg bWVudGlvbmVkIGluIGluZiBhcmUgbm90IGhhc2hlZA0KDQpIYXNoaW5nIGlzIG5vdCBjaGFuZ2lu ZyBmaWxlIGZvcm1hdCByZXF1aXJlbWVudHMgYXMgQmFzZXRvb2xzIGhhcyBubyByZXF1aXJlbWVu dCBvbiB0aGlzIGV2ZW4gdGhvdWdoIHRoZSBzcGVjIGRvZXMgaGF2ZSBmaWxlIHJlcXVpcmVtZW50 cy4gVGhhdCdzIHdoeSB0aGUgaW5pdGlhbCBwYXRjaCB3YXMgYSB3b3JrYXJvdW5kIG9mIHNvcnRz IGJlY2F1c2UgaXQgaXMgYWxsb3dlZCBieSBCYXNldG9vbHMgdG8gaGF2ZSBsb2NhbCBoZWFkZXJz IG5vdCBpbiB0aGUgc291cmNlcyBzZWN0aW9uIG9mIHRoZSBtZXRhIGZpbGUuDQoNCkFsd2F5cyBi cmVha2luZyB0aGUgYnVpbGQgaXMgb3V0c2lkZSBvZiB0aGUgc2NvcGUgb2YgdGhpcyBCWiBhbmQg bXkgcHJvamVjdCBwcmlvcml0aWVzLiBJIGFncmVlIGl0IHNob3VsZCBiZSBkb25lLCBidXQgaXQn cyBvdXQgb2YgbXkgc2NvcGUuDQoNCkkgYW0gc3BlY2lmaWNhbGx5IHRhcmdldGluZyB0aGUgaGFz aGluZyBmZWF0dXJlLCB3aGljaCByZWxpZXMgb24gVUVGSSBTcGVjIHJlcXVpcmVtZW50cy4NCg0K Pi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+RnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8g W21haWx0bzpkZXZlbEBlZGsyLmdyb3Vwcy5pb10gT24gQmVoYWxmIE9mIA0KPkZlbGl4IFBvbHl1 ZG92DQo+U2VudDogRnJpZGF5LCBNYXkgMTAsIDIwMTkgMTI6MzIgUE0NCj5UbzogUm9kcmlndWV6 LCBDaHJpc3RpYW4gPGNocmlzdGlhbi5yb2RyaWd1ZXpAaW50ZWwuY29tPjsgDQo+ZGV2ZWxAZWRr Mi5ncm91cHMuaW87ICdsZXJzZWtAcmVkaGF0LmNvbScgPGxlcnNla0ByZWRoYXQuY29tPg0KPkNj OiBGZW5nLCBCb2IgQyA8Ym9iLmMuZmVuZ0BpbnRlbC5jb20+OyBHYW8sIExpbWluZyANCj48bGlt aW5nLmdhb0BpbnRlbC5jb20+OyBaaHUsIFlvbmdob25nIDx5b25naG9uZy56aHVAaW50ZWwuY29t Pg0KPlN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIXSBCYXNlVG9vbHM6IEluY2x1ZGUg aGVhZGVycyBub3QgDQo+bWVudGlvbmVkIGluIGluZiBhcmUgbm90IGhhc2hlZA0KPg0KPk15IHN1 Z2dlc3Rpb24gd291bGQgYmUgdG8gYWx3YXlzIGJyZWFrIGEgYnVpbGQgKG5vIG1hdHRlciB3aGF0 IHRoZSANCj5oYXNoaW5nIHNldHRpbmdzIGFyZSkuDQo+SGFzaGluZyBpcyBqdXN0IGFuIG9wdGlt aXphdGlvbiB0ZWNobmlxdWUsIHVzYWdlIG9mIHdoaWNoIHNob3VsZCBub3QgYmUgDQo+Y2hhbmdp bmcgc291cmNlIGZpbGUgZm9ybWF0dGluZyByZXF1aXJlbWVudHMuDQo+DQo+PiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPj4gRnJvbTogUm9kcmlndWV6LCBDaHJpc3RpYW4gW21haWx0bzpj aHJpc3RpYW4ucm9kcmlndWV6QGludGVsLmNvbV0NCj4+IFNlbnQ6IEZyaWRheSwgTWF5IDEwLCAy MDE5IDM6MTQgUE0NCj4+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgRmVsaXggUG9seXVkb3Y7 ICdsZXJzZWtAcmVkaGF0LmNvbScNCj4+IENjOiBGZW5nLCBCb2IgQzsgR2FvLCBMaW1pbmc7IFpo dSwgWW9uZ2hvbmcNCj4+IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENIXSBCYXNlVG9v bHM6IEluY2x1ZGUgaGVhZGVycyBub3QgDQo+PiBtZW50aW9uZWQgaW4gaW5mIGFyZSBub3QgaGFz aGVkDQo+Pg0KPj4gQWZ0ZXIgdGFsa2luZyB0byBteSBjb2xsZWFndWVzIGFib3V0IHRoaXMsIHRo ZSBkaXJlY3Rpb24gc2VlbXMgdG8gYmUgDQo+PiB0byBmdW5kYW1lbnRhbGx5IGNoYW5nZSB0aGlz IEJaLiBJbnN0ZWFkIG9mIGJ1aWxkaW5nIHRoaXMgc29ydCBvZiANCj4+IHdvcmthcm91bmQgZmVh dHVyZSwgd2Ugc2hvdWxkIHVzZSB0aGUgaW5mb3JtYXRpb24gZ2F0aGVyZWQgZnJvbSB0aGlzDQo+ ZmVhdHVyZSB0byBjYXVzZSB0aGUgYnVpbGQgdG8gYnJlYWsgd2hlbiB0aGUgaGFzaCBmZWF0dXJl IGlzIGVuYWJsZWQuIA0KPlRoaXMgd291bGQgZm9yY2UgdXNlcnMgb2YgdGhlIGhhc2ggZmVhdHVy ZSB0byBiZSBVRUZJIHNwZWMgY29tcGxhaW50Lg0KPj4NCj4+IFdoYXQgZG8geW91IGd1eXMgdGhp bms7IExhc3psbyBhbmQgRmVsaXg/DQo+Pg0KPj4gSSdsbCB1cGRhdGUgdGhlIEJaIHdoZW4gSSBn ZXQgeW91ciBpbnB1dC4NCj4+DQo+PiBUaGFua3MsDQo+PiBDaHJpc3RpYW4gUm9kcmlndWV6DQo+ Pg0KPj4gPi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+PiA+RnJvbTogZGV2ZWxAZWRrMi5n cm91cHMuaW8gW21haWx0bzpkZXZlbEBlZGsyLmdyb3Vwcy5pb10gT24gQmVoYWxmIA0KPj4gPk9m IEZlbGl4IFBvbHl1ZG92DQo+PiA+U2VudDogRnJpZGF5LCBNYXkgMTAsIDIwMTkgNjo0MSBBTQ0K Pj4gPlRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgJ2xlcnNla0ByZWRoYXQuY29tJyA8bGVyc2Vr QHJlZGhhdC5jb20+OyANCj4+ID5Sb2RyaWd1ZXosIENocmlzdGlhbiA8Y2hyaXN0aWFuLnJvZHJp Z3VlekBpbnRlbC5jb20+DQo+PiA+Q2M6IEZlbmcsIEJvYiBDIDxib2IuYy5mZW5nQGludGVsLmNv bT47IEdhbywgTGltaW5nIA0KPj4gPjxsaW1pbmcuZ2FvQGludGVsLmNvbT47IFpodSwgWW9uZ2hv bmcgPHlvbmdob25nLnpodUBpbnRlbC5jb20+DQo+PiA+U3ViamVjdDogUmU6IFtlZGsyLWRldmVs XSBbUEFUQ0hdIEJhc2VUb29sczogSW5jbHVkZSBoZWFkZXJzIG5vdCANCj4+ID5tZW50aW9uZWQg aW4gaW5mIGFyZSBub3QgaGFzaGVkDQo+PiA+DQo+PiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KPj4gPj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gW21haWx0bzpkZXZlbEBlZGsy Lmdyb3Vwcy5pb10gT24gQmVoYWxmIA0KPj4gPj4gT2YgTGFzemxvIEVyc2VrDQo+PiA+PiBTZW50 OiBUaHVyc2RheSwgTWF5IDA5LCAyMDE5IDc6NTMgUE0NCj4+ID4+DQo+PiA+PiBIZWxsbyBDaHJp c3RpYW4sDQo+PiA+Pg0KPj4gPj4gT24gMDUvMDkvMTkgMjM6MjcsIENocmlzdGlhbiBSb2RyaWd1 ZXogd3JvdGU6DQo+PiA+PiA+IEJaOiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hv d19idWcuY2dpP2lkPTE3ODcNCj4+ID4+ID4NCj4+ID4+ID4gR2V0IGEgbGlzdCBvZiBsb2NhbCBo ZWFkZXIgZmlsZXMgdGhhdCBhcmUgbm90IHByZXNlbnQgaW4gdGhlIA0KPj4gPj4gPiBNZXRhRmls ZSBmb3IgdGhpcyBtb2R1bGUuIEFkZCB0aG9zZSBsb2NhbCBoZWFkZXIgZmlsZXMgaW50byB0aGUg DQo+PiA+PiA+IGhhc2hpbmcgYWxnb3JpdGhtIGZvciBhIG1vZHVsZS4gSWYgYSBsb2NhbCBoZWFk ZXIgZmlsZSBpcyBub3QgDQo+PiA+PiA+IHByZXNlbnQgaW4gdGhlIE1ldGFGaWxlLCB0aGUgbW9k dWxlIHdpbGwgc3RpbGwgYnVpbGQgY29ycmVjdGx5IA0KPj4gPj4gPiB0aG91Z2ggdGhlIGhhc2hp bmcgc3lzdGVtIGRpZG4ndCBrbm93IGFib3V0IGl0IGJlZm9yZS4NCj4+ID4+ID4NCj4+ID4+ID4g U2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIFJvZHJpZ3VleiANCj4+ID4+ID4gPGNocmlzdGlhbi5y b2RyaWd1ZXpAaW50ZWwuY29tPg0KPj4gPj4gPiBDYzogQm9iIEZlbmcgPGJvYi5jLmZlbmdAaW50 ZWwuY29tPg0KPj4gPj4gPiBDYzogTGltaW5nIEdhbyA8bGltaW5nLmdhb0BpbnRlbC5jb20+DQo+ PiA+PiA+IENjOiBZb25naG9uZyBaaHUgPHlvbmdob25nLnpodUBpbnRlbC5jb20+DQo+PiA+PiA+ IC0tLQ0KPj4gPj4gPiAgQmFzZVRvb2xzL1NvdXJjZS9QeXRob24vQXV0b0dlbi9BdXRvR2VuLnB5 IHwgMjQNCj4+ID4+ID4gKysrKysrKysrKysrKysrKysrKysrKysrDQo+PiA+PiA+ICAxIGZpbGUg Y2hhbmdlZCwgMjQgaW5zZXJ0aW9ucygrKQ0KPj4gPj4NCj4+ID4+IEkgc2F3IHRoZSBCWiBzb29u IGFmdGVyIGl0IHdhcyByZXBvcnRlZC4gSSBhbG1vc3QgY29tbWVudGVkLCBidXQgDQo+PiA+PiB1 bHRpbWF0ZWx5IEkgY291bGRuJ3QgZGVjaWRlIHdoYXQgdGhlIHJlYWwgdXNlIGNhc2Ugd2FzLg0K Pj4gPj4NCj4+ID4+IFdpdGggdGhpcyBwYXJ0aWN1bGFyIHVzZSBjYXNlIChpLmUuIElORiBmaWxl IGlzIG1pc3Npbmcgc29tZSANCj4+ID4+IG1vZHVsZS1zcGVjaWZpYyBoZWFkZXIgZmlsZXMgdGhh dCBpdCBjb3VsZCBlYXNpbHkgbGlzdCksIEkgdGhpbmsgSSANCj4+ID4+IGRpc2FncmVlLCBtaWxk bHkgKG5vdCB0b28gc3Ryb25nbHkpLiBFLmcuLCB3ZSBmaXhlZCBzdWNoIG9taXNzaW9ucyANCj4+ ID4+IGluIGEgYnVuY2ggb2YgSU5GIGZpbGVzLCBsYXN0IE1hcmNoLCBpbiB0aGUgc2VyaWVzDQo+ PiA+DQo+PiA+SSBhZ3JlZSB3aXRoIExhemxvLg0KPj4gPkFjY29yZGluZyB0byBzZWN0aW9uIDMu OSBvZiB0aGUgSU5GIHNwZWNpZmljYXRpb24gKGh0dHBzOi8vZWRrMi0NCj4+ID5kb2NzLmdpdGJv b2tzLmlvL2Vkay1paS1pbmYtDQo+PiA+c3BlY2lmaWNhdGlvbi8zX2Vka19paV9pbmZfZmlsZV9m b3JtYXQvMzlfW3NvdXJjZXNdX3NlY3Rpb25zLmh0bWwpLA0KPj4gPmFsbCBzb3VyY2UgZmlsZXMg KGluY2x1ZGluZyBtb2R1bGUgaGVhZGVyIGZpbGVzKSBtdXN0IGJlIGxpc3RlZCBpbiANCj4+ID50 aGUgW1NvdXJjZXNdIHNlY3Rpb24uDQo+PiA+SGVyZSBpcyB0aGUgcXVvdGU6DQo+PiA+IkFsbCBI SUkgVW5pY29kZSBmb3JtYXQgZmlsZXMgbXVzdCBiZSBsaXN0ZWQgaW4gdGhpcyBzZWN0aW9uIGFz IHdlbGwgDQo+PiA+YXMgYW55IG90aGVyICJzb3VyY2UiIHR5cGUgZmlsZSwgc3VjaCBhcyBsb2Nh bCBtb2R1bGUgaGVhZGVyIGZpbGVzLCANCj4+ID5WZnIgZmlsZXMsDQo+ZXRjLiAiDQo+PiA+DQo+ PiA+U28sIGlmIGZpbGUgWCBpcyB1c2VkIGJ5IG1vZHVsZSBZLCBidXQgaXMgbm90IGxpc3RlZCBp biBZLmluZiwgaXQncyANCj4+ID5hIHZpb2xhdGlvbiBvZiB0aGUgSU5GIHNwZWMuLCB3aGljaCBt YWtlcyBpdCBhIGJ1ZyB0aGF0IGhhcyB0byBiZSBmaXhlZC4NCj4+ID4NCj4+ID4NCj4+ID5QbGVh c2UgY29uc2lkZXIgdGhlIGVudmlyb25tZW50IGJlZm9yZSBwcmludGluZyB0aGlzIGVtYWlsLg0K Pj4gPg0KPj4gPlRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQgaW4gdGhpcyBtZXNzYWdlIG1heSBi ZSBjb25maWRlbnRpYWwgYW5kIA0KPj4gPnByb3ByaWV0YXJ5IHRvIEFtZXJpY2FuIE1lZ2F0cmVu ZHMsIEluYy4gIFRoaXMgY29tbXVuaWNhdGlvbiBpcyANCj4+ID5pbnRlbmRlZCB0byBiZSByZWFk IG9ubHkgYnkgdGhlIGluZGl2aWR1YWwgb3IgZW50aXR5IHRvIHdob20gaXQgaXMgDQo+PiA+YWRk cmVzc2VkIG9yIGJ5IHRoZWlyIGRlc2lnbmVlLiBJZiB0aGUgcmVhZGVyIG9mIHRoaXMgbWVzc2Fn ZSBpcyBub3QgDQo+PiA+dGhlIGludGVuZGVkIHJlY2lwaWVudCwgeW91IGFyZSBvbiBub3RpY2Ug dGhhdCBhbnkgZGlzdHJpYnV0aW9uIG9mIA0KPj4gPnRoaXMgbWVzc2FnZSwgaW4gYW55IGZvcm0s IGlzIHN0cmljdGx5IHByb2hpYml0ZWQuICBQbGVhc2UgcHJvbXB0bHkgDQo+PiA+bm90aWZ5IHRo ZSBzZW5kZXIgYnkgcmVwbHkgZS1tYWlsIG9yIGJ5IHRlbGVwaG9uZSBhdCA3NzAtMjQ2LTg2MDAs IA0KPj4gPmFuZA0KPnRoZW4gZGVsZXRlIG9yIGRlc3Ryb3kgYWxsIGNvcGllcyBvZiB0aGUgdHJh bnNtaXNzaW9uLg0KPj4gPgEgICBsICAgSxggICBxIHkgZSAgLGogICAgICBhICArICBVICA/RSBl ICAgdyDTjSAgIGkgICB2TSAgICAgKj8gIF4gIH8gICxqICAgTjYgy615OGIgOikgIG0gID8NCj4+ ID7oupsiICAgIH15IE01ICB7IN63IGroupMgICAgeiAgICAneiAgIGgrICBsICAnICAgciAgehtt ICAgeSA2ICAuIMioIA8geiAgICDsubchICstICAgICDns4p7XiAgJg0KPg0KPlBsZWFzZSBjb25z aWRlciB0aGUgZW52aXJvbm1lbnQgYmVmb3JlIHByaW50aW5nIHRoaXMgZW1haWwuDQo+DQo+VGhl IGluZm9ybWF0aW9uIGNvbnRhaW5lZCBpbiB0aGlzIG1lc3NhZ2UgbWF5IGJlIGNvbmZpZGVudGlh bCBhbmQgDQo+cHJvcHJpZXRhcnkgdG8gQW1lcmljYW4gTWVnYXRyZW5kcywgSW5jLiAgVGhpcyBj b21tdW5pY2F0aW9uIGlzIA0KPmludGVuZGVkIHRvIGJlIHJlYWQgb25seSBieSB0aGUgaW5kaXZp ZHVhbCBvciBlbnRpdHkgdG8gd2hvbSBpdCBpcyANCj5hZGRyZXNzZWQgb3IgYnkgdGhlaXIgZGVz aWduZWUuIElmIHRoZSByZWFkZXIgb2YgdGhpcyBtZXNzYWdlIGlzIG5vdCANCj50aGUgaW50ZW5k ZWQgcmVjaXBpZW50LCB5b3UgYXJlIG9uIG5vdGljZSB0aGF0IGFueSBkaXN0cmlidXRpb24gb2Yg dGhpcyANCj5tZXNzYWdlLCBpbiBhbnkgZm9ybSwgaXMgc3RyaWN0bHkgcHJvaGliaXRlZC4gIFBs ZWFzZSBwcm9tcHRseSBub3RpZnkgDQo+dGhlIHNlbmRlciBieSByZXBseSBlLW1haWwgb3IgYnkg dGVsZXBob25lIGF0IDc3MC0yNDYtODYwMCwgYW5kIHRoZW4gZGVsZXRlIG9yIGRlc3Ryb3kgYWxs IGNvcGllcyBvZiB0aGUgdHJhbnNtaXNzaW9uLg0KPgEgICBsICAgSxggICBxIHkgZSAgLGogICAg ICBhICArICBVICA/RSBlICAgdyDTjnsgIGkgICB2TSAgICAgKj8gIF4gIH8gICxqICAgTjkgy615 OGIgOikgIG0gID8NCj7oupsiICAgIH15IE01ICB7IN63IGroupMgICAgeiAgICAneiAgIGgrICBs ICAnICAgciAgehttICAgeSA2ICAuIMioIA8geiAgICDsubchICstICAgICDns4p7XiAgJg0K