From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.126, mailfrom: bob.c.feng@intel.com) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by groups.io with SMTP; Mon, 13 May 2019 05:23:07 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 May 2019 05:23:07 -0700 X-ExtLoop1: 1 Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by orsmga006.jf.intel.com with ESMTP; 13 May 2019 05:23:06 -0700 Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.408.0; Mon, 13 May 2019 05:23:06 -0700 Received: from shsmsx101.ccr.corp.intel.com ([169.254.1.129]) by SHSMSX104.ccr.corp.intel.com ([169.254.5.33]) with mapi id 14.03.0415.000; Mon, 13 May 2019 20:23:04 +0800 From: "Bob Feng" To: Laszlo Ersek , "Rodriguez, Christian" , "devel@edk2.groups.io" , "felixp@ami.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/i7cCL6EiFDTTClRqpD6Zi8UwAgADnRACAAFzmAIAABSqAgAADq4CABC86gIAAkE1g Date: Mon, 13 May 2019 12:23:04 +0000 Message-ID: <08650203BA1BD64D8AD9B6D5D74A85D16010CE58@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: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMjQzNTY2ZTItZDQ0ZC00ZjVkLWI1NDgtNjBjY2M0NWEwNTU0IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiYTJHMXB0bUN1bjVHbkFxb2cwMlhiSFoxVUkybFdxc3hzSXdIbW5vcmZWbm1VXC9nVVdlRGlOMEFuWnZcLzk4VFplIn0= 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 SSB0aGluayBjaGVja2luZyBpZiBbU291cmNlXSBpbmNsdWRlcyBhbGwgdGhlICJzb3VyY2UiIGZp bGUgdW5kZXIgbW9kdWxlJ3MgZm9sZGVyIGZvciBlYWNoIG1vZHVsZSBkdXJpbmcgYnVpbGQgd291 bGQgbWFrZSBidWlsZCBzbG93IGRvd24sIHdlIGhhdmUgYmVlbiBkb2luZyBhIGxvdCB0byBpbXBy b3ZlIHRoZSBidWlsZCBwZXJmb3JtYW5jZS4NCk1heWJlIHdlIGNvdWxkIGNyZWF0ZSBhIG5ldyBw eXRob24gc2NyaXB0IHVuZGVyIEJhc2VUb29scy9TY3JpcHRzIGZvbGRlciB0byBkbyB0aGlzIGNo ZWNrLg0KDQpUaGFua3MsDQpCb2IgDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9t OiBMYXN6bG8gRXJzZWsgW21haWx0bzpsZXJzZWtAcmVkaGF0LmNvbV0gDQpTZW50OiBNb25kYXks IE1heSAxMywgMjAxOSA3OjM5IFBNDQpUbzogUm9kcmlndWV6LCBDaHJpc3RpYW4gPGNocmlzdGlh bi5yb2RyaWd1ZXpAaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW87IGZlbGl4cEBhbWku Y29tDQpDYzogRmVuZywgQm9iIEMgPGJvYi5jLmZlbmdAaW50ZWwuY29tPjsgR2FvLCBMaW1pbmcg PGxpbWluZy5nYW9AaW50ZWwuY29tPjsgWmh1LCBZb25naG9uZyA8eW9uZ2hvbmcuemh1QGludGVs LmNvbT4NClN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIXSBCYXNlVG9vbHM6IEluY2x1 ZGUgaGVhZGVycyBub3QgbWVudGlvbmVkIGluIGluZiBhcmUgbm90IGhhc2hlZA0KDQpPbiAwNS8x MC8xOSAyMTo0NSwgUm9kcmlndWV6LCBDaHJpc3RpYW4gd3JvdGU6DQo+IEhhc2hpbmcgaXMgbm90 IGNoYW5naW5nIGZpbGUgZm9ybWF0IHJlcXVpcmVtZW50cyBhcyBCYXNldG9vbHMgaGFzIG5vIHJl cXVpcmVtZW50IG9uIHRoaXMgZXZlbiB0aG91Z2ggdGhlIHNwZWMgZG9lcyBoYXZlIGZpbGUgcmVx dWlyZW1lbnRzLiBUaGF0J3Mgd2h5IHRoZSBpbml0aWFsIHBhdGNoIHdhcyBhIHdvcmthcm91bmQg b2Ygc29ydHMgYmVjYXVzZSBpdCBpcyBhbGxvd2VkIGJ5IEJhc2V0b29scyB0byBoYXZlIGxvY2Fs IGhlYWRlcnMgbm90IGluIHRoZSBzb3VyY2VzIHNlY3Rpb24gb2YgdGhlIG1ldGEgZmlsZS4NCj4g DQo+IEFsd2F5cyBicmVha2luZyB0aGUgYnVpbGQgaXMgb3V0c2lkZSBvZiB0aGUgc2NvcGUgb2Yg dGhpcyBCWiBhbmQgbXkgcHJvamVjdCBwcmlvcml0aWVzLiBJIGFncmVlIGl0IHNob3VsZCBiZSBk b25lLCBidXQgaXQncyBvdXQgb2YgbXkgc2NvcGUuDQo+IA0KPiBJIGFtIHNwZWNpZmljYWxseSB0 YXJnZXRpbmcgdGhlIGhhc2hpbmcgZmVhdHVyZSwgd2hpY2ggcmVsaWVzIG9uIFVFRkkgU3BlYyBy ZXF1aXJlbWVudHMuDQoNCkkgdGhpbmsgYnJlYWtpbmcgdGhlIGJ1aWxkIGltbWVkaWF0ZWx5IChh bmQgdW5jb25kaXRpb25hbGx5KSBjb3VsZCBjYXRjaCBwbGF0Zm9ybXMgYnkgc3VycHJpc2UuIENh biB3ZSBtYWtlIHRoaXMgYSB3YXJuaW5nIHZzLiBhbiBlcnJvcj8gQW5kLCBJJ20gdG90YWxseSBP SyBpZiBpdCdzIGF2YWlsYWJsZSBvbmx5IHdpdGggLS1oYXNoLCBmb3Igbm93Lg0KDQpCVFcgLS0g SSdtIG5vdCBzdXJlIHdoeSB0aGUgVUVGSSBzcGVjIGlzIHJlbGV2YW50IGhlcmUuDQoNClRoYW5r cw0KTGFzemxvDQoNCj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+PiBGcm9tOiBkZXZl bEBlZGsyLmdyb3Vwcy5pbyBbbWFpbHRvOmRldmVsQGVkazIuZ3JvdXBzLmlvXSBPbiBCZWhhbGYg T2YgDQo+PiBGZWxpeCBQb2x5dWRvdg0KPj4gU2VudDogRnJpZGF5LCBNYXkgMTAsIDIwMTkgMTI6 MzIgUE0NCj4+IFRvOiBSb2RyaWd1ZXosIENocmlzdGlhbiA8Y2hyaXN0aWFuLnJvZHJpZ3VlekBp bnRlbC5jb20+OyANCj4+IGRldmVsQGVkazIuZ3JvdXBzLmlvOyAnbGVyc2VrQHJlZGhhdC5jb20n IDxsZXJzZWtAcmVkaGF0LmNvbT4NCj4+IENjOiBGZW5nLCBCb2IgQyA8Ym9iLmMuZmVuZ0BpbnRl bC5jb20+OyBHYW8sIExpbWluZyANCj4+IDxsaW1pbmcuZ2FvQGludGVsLmNvbT47IFpodSwgWW9u Z2hvbmcgPHlvbmdob25nLnpodUBpbnRlbC5jb20+DQo+PiBTdWJqZWN0OiBSZTogW2VkazItZGV2 ZWxdIFtQQVRDSF0gQmFzZVRvb2xzOiBJbmNsdWRlIGhlYWRlcnMgbm90IA0KPj4gbWVudGlvbmVk IGluIGluZiBhcmUgbm90IGhhc2hlZA0KPj4NCj4+IE15IHN1Z2dlc3Rpb24gd291bGQgYmUgdG8g YWx3YXlzIGJyZWFrIGEgYnVpbGQgKG5vIG1hdHRlciB3aGF0IHRoZSANCj4+IGhhc2hpbmcgc2V0 dGluZ3MgYXJlKS4NCj4+IEhhc2hpbmcgaXMganVzdCBhbiBvcHRpbWl6YXRpb24gdGVjaG5pcXVl LCB1c2FnZSBvZiB3aGljaCBzaG91bGQgbm90IA0KPj4gYmUgY2hhbmdpbmcgc291cmNlIGZpbGUg Zm9ybWF0dGluZyByZXF1aXJlbWVudHMuDQo+Pg0KPj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQo+Pj4gRnJvbTogUm9kcmlndWV6LCBDaHJpc3RpYW4gW21haWx0bzpjaHJpc3RpYW4ucm9k cmlndWV6QGludGVsLmNvbV0NCj4+PiBTZW50OiBGcmlkYXksIE1heSAxMCwgMjAxOSAzOjE0IFBN DQo+Pj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBGZWxpeCBQb2x5dWRvdjsgJ2xlcnNla0By ZWRoYXQuY29tJw0KPj4+IENjOiBGZW5nLCBCb2IgQzsgR2FvLCBMaW1pbmc7IFpodSwgWW9uZ2hv bmcNCj4+PiBTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSF0gQmFzZVRvb2xzOiBJbmNs dWRlIGhlYWRlcnMgbm90IA0KPj4+IG1lbnRpb25lZCBpbiBpbmYgYXJlIG5vdCBoYXNoZWQNCj4+ Pg0KPj4+IEFmdGVyIHRhbGtpbmcgdG8gbXkgY29sbGVhZ3VlcyBhYm91dCB0aGlzLCB0aGUgZGly ZWN0aW9uIHNlZW1zIHRvIGJlIA0KPj4+IHRvIGZ1bmRhbWVudGFsbHkgY2hhbmdlIHRoaXMgQlou IEluc3RlYWQgb2YgYnVpbGRpbmcgdGhpcyBzb3J0IG9mIA0KPj4+IHdvcmthcm91bmQgZmVhdHVy ZSwgd2Ugc2hvdWxkIHVzZSB0aGUgaW5mb3JtYXRpb24gZ2F0aGVyZWQgZnJvbSB0aGlzDQo+PiBm ZWF0dXJlIHRvIGNhdXNlIHRoZSBidWlsZCB0byBicmVhayB3aGVuIHRoZSBoYXNoIGZlYXR1cmUg aXMgZW5hYmxlZC4gDQo+PiBUaGlzIHdvdWxkIGZvcmNlIHVzZXJzIG9mIHRoZSBoYXNoIGZlYXR1 cmUgdG8gYmUgVUVGSSBzcGVjIGNvbXBsYWludC4NCj4+Pg0KPj4+IFdoYXQgZG8geW91IGd1eXMg dGhpbms7IExhc3psbyBhbmQgRmVsaXg/DQo+Pj4NCj4+PiBJJ2xsIHVwZGF0ZSB0aGUgQlogd2hl biBJIGdldCB5b3VyIGlucHV0Lg0KPj4+DQo+Pj4gVGhhbmtzLA0KPj4+IENocmlzdGlhbiBSb2Ry aWd1ZXoNCj4+Pg0KPj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPj4+PiBGcm9tOiBk ZXZlbEBlZGsyLmdyb3Vwcy5pbyBbbWFpbHRvOmRldmVsQGVkazIuZ3JvdXBzLmlvXSBPbiBCZWhh bGYgDQo+Pj4+IE9mIEZlbGl4IFBvbHl1ZG92DQo+Pj4+IFNlbnQ6IEZyaWRheSwgTWF5IDEwLCAy MDE5IDY6NDEgQU0NCj4+Pj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyAnbGVyc2VrQHJlZGhh dC5jb20nIDxsZXJzZWtAcmVkaGF0LmNvbT47IA0KPj4+PiBSb2RyaWd1ZXosIENocmlzdGlhbiA8 Y2hyaXN0aWFuLnJvZHJpZ3VlekBpbnRlbC5jb20+DQo+Pj4+IENjOiBGZW5nLCBCb2IgQyA8Ym9i LmMuZmVuZ0BpbnRlbC5jb20+OyBHYW8sIExpbWluZyANCj4+Pj4gPGxpbWluZy5nYW9AaW50ZWwu Y29tPjsgWmh1LCBZb25naG9uZyA8eW9uZ2hvbmcuemh1QGludGVsLmNvbT4NCj4+Pj4gU3ViamVj dDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0hdIEJhc2VUb29sczogSW5jbHVkZSBoZWFkZXJzIG5v dCANCj4+Pj4gbWVudGlvbmVkIGluIGluZiBhcmUgbm90IGhhc2hlZA0KPj4+Pg0KPj4+Pj4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+Pj4+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlv IFttYWlsdG86ZGV2ZWxAZWRrMi5ncm91cHMuaW9dIE9uIEJlaGFsZiANCj4+Pj4+IE9mIExhc3ps byBFcnNlaw0KPj4+Pj4gU2VudDogVGh1cnNkYXksIE1heSAwOSwgMjAxOSA3OjUzIFBNDQo+Pj4+ Pg0KPj4+Pj4gSGVsbG8gQ2hyaXN0aWFuLA0KPj4+Pj4NCj4+Pj4+IE9uIDA1LzA5LzE5IDIzOjI3 LCBDaHJpc3RpYW4gUm9kcmlndWV6IHdyb3RlOg0KPj4+Pj4+IEJaOiBodHRwczovL2J1Z3ppbGxh LnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODcNCj4+Pj4+Pg0KPj4+Pj4+IEdldCBh IGxpc3Qgb2YgbG9jYWwgaGVhZGVyIGZpbGVzIHRoYXQgYXJlIG5vdCBwcmVzZW50IGluIHRoZSAN Cj4+Pj4+PiBNZXRhRmlsZSBmb3IgdGhpcyBtb2R1bGUuIEFkZCB0aG9zZSBsb2NhbCBoZWFkZXIg ZmlsZXMgaW50byB0aGUgDQo+Pj4+Pj4gaGFzaGluZyBhbGdvcml0aG0gZm9yIGEgbW9kdWxlLiBJ ZiBhIGxvY2FsIGhlYWRlciBmaWxlIGlzIG5vdCANCj4+Pj4+PiBwcmVzZW50IGluIHRoZSBNZXRh RmlsZSwgdGhlIG1vZHVsZSB3aWxsIHN0aWxsIGJ1aWxkIGNvcnJlY3RseSANCj4+Pj4+PiB0aG91 Z2ggdGhlIGhhc2hpbmcgc3lzdGVtIGRpZG4ndCBrbm93IGFib3V0IGl0IGJlZm9yZS4NCj4+Pj4+ Pg0KPj4+Pj4+IFNpZ25lZC1vZmYtYnk6IENocmlzdGlhbiBSb2RyaWd1ZXogDQo+Pj4+Pj4gPGNo cmlzdGlhbi5yb2RyaWd1ZXpAaW50ZWwuY29tPg0KPj4+Pj4+IENjOiBCb2IgRmVuZyA8Ym9iLmMu ZmVuZ0BpbnRlbC5jb20+DQo+Pj4+Pj4gQ2M6IExpbWluZyBHYW8gPGxpbWluZy5nYW9AaW50ZWwu Y29tPg0KPj4+Pj4+IENjOiBZb25naG9uZyBaaHUgPHlvbmdob25nLnpodUBpbnRlbC5jb20+DQo+ Pj4+Pj4gLS0tDQo+Pj4+Pj4gIEJhc2VUb29scy9Tb3VyY2UvUHl0aG9uL0F1dG9HZW4vQXV0b0dl bi5weSB8IDI0DQo+Pj4+Pj4gKysrKysrKysrKysrKysrKysrKysrKysrDQo+Pj4+Pj4gIDEgZmls ZSBjaGFuZ2VkLCAyNCBpbnNlcnRpb25zKCspDQo+Pj4+Pg0KPj4+Pj4gSSBzYXcgdGhlIEJaIHNv b24gYWZ0ZXIgaXQgd2FzIHJlcG9ydGVkLiBJIGFsbW9zdCBjb21tZW50ZWQsIGJ1dCANCj4+Pj4+ IHVsdGltYXRlbHkgSSBjb3VsZG4ndCBkZWNpZGUgd2hhdCB0aGUgcmVhbCB1c2UgY2FzZSB3YXMu DQo+Pj4+Pg0KPj4+Pj4gV2l0aCB0aGlzIHBhcnRpY3VsYXIgdXNlIGNhc2UgKGkuZS4gSU5GIGZp bGUgaXMgbWlzc2luZyBzb21lIA0KPj4+Pj4gbW9kdWxlLXNwZWNpZmljIGhlYWRlciBmaWxlcyB0 aGF0IGl0IGNvdWxkIGVhc2lseSBsaXN0KSwgSSB0aGluayBJIA0KPj4+Pj4gZGlzYWdyZWUsIG1p bGRseSAobm90IHRvbyBzdHJvbmdseSkuIEUuZy4sIHdlIGZpeGVkIHN1Y2ggb21pc3Npb25zIA0K Pj4+Pj4gaW4gYSBidW5jaCBvZiBJTkYgZmlsZXMsIGxhc3QgTWFyY2gsIGluIHRoZSBzZXJpZXMN Cj4+Pj4NCj4+Pj4gSSBhZ3JlZSB3aXRoIExhemxvLg0KPj4+PiBBY2NvcmRpbmcgdG8gc2VjdGlv biAzLjkgb2YgdGhlIElORiBzcGVjaWZpY2F0aW9uIChodHRwczovL2VkazItDQo+Pj4+IGRvY3Mu Z2l0Ym9va3MuaW8vZWRrLWlpLWluZi0NCj4+Pj4gc3BlY2lmaWNhdGlvbi8zX2Vka19paV9pbmZf ZmlsZV9mb3JtYXQvMzlfW3NvdXJjZXNdX3NlY3Rpb25zLmh0bWwpLA0KPj4+PiBhbGwgc291cmNl IGZpbGVzIChpbmNsdWRpbmcgbW9kdWxlIGhlYWRlciBmaWxlcykgbXVzdCBiZSBsaXN0ZWQgaW4g DQo+Pj4+IHRoZSBbU291cmNlc10gc2VjdGlvbi4NCj4+Pj4gSGVyZSBpcyB0aGUgcXVvdGU6DQo+ Pj4+ICJBbGwgSElJIFVuaWNvZGUgZm9ybWF0IGZpbGVzIG11c3QgYmUgbGlzdGVkIGluIHRoaXMg c2VjdGlvbiBhcyANCj4+Pj4gd2VsbCBhcyBhbnkgb3RoZXIgInNvdXJjZSIgdHlwZSBmaWxlLCBz dWNoIGFzIGxvY2FsIG1vZHVsZSBoZWFkZXIgDQo+Pj4+IGZpbGVzLCBWZnIgZmlsZXMsDQo+PiBl dGMuICINCj4+Pj4NCj4+Pj4gU28sIGlmIGZpbGUgWCBpcyB1c2VkIGJ5IG1vZHVsZSBZLCBidXQg aXMgbm90IGxpc3RlZCBpbiBZLmluZiwgaXQncyANCj4+Pj4gYSB2aW9sYXRpb24gb2YgdGhlIElO RiBzcGVjLiwgd2hpY2ggbWFrZXMgaXQgYSBidWcgdGhhdCBoYXMgdG8gYmUgZml4ZWQuDQo+Pj4+ DQo+Pj4+DQo+Pj4+IFBsZWFzZSBjb25zaWRlciB0aGUgZW52aXJvbm1lbnQgYmVmb3JlIHByaW50 aW5nIHRoaXMgZW1haWwuDQo+Pj4+DQo+Pj4+IFRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQgaW4g dGhpcyBtZXNzYWdlIG1heSBiZSBjb25maWRlbnRpYWwgYW5kIA0KPj4+PiBwcm9wcmlldGFyeSB0 byBBbWVyaWNhbiBNZWdhdHJlbmRzLCBJbmMuICBUaGlzIGNvbW11bmljYXRpb24gaXMgDQo+Pj4+ IGludGVuZGVkIHRvIGJlIHJlYWQgb25seSBieSB0aGUgaW5kaXZpZHVhbCBvciBlbnRpdHkgdG8g d2hvbSBpdCBpcyANCj4+Pj4gYWRkcmVzc2VkIG9yIGJ5IHRoZWlyIGRlc2lnbmVlLiBJZiB0aGUg cmVhZGVyIG9mIHRoaXMgbWVzc2FnZSBpcyANCj4+Pj4gbm90IHRoZSBpbnRlbmRlZCByZWNpcGll bnQsIHlvdSBhcmUgb24gbm90aWNlIHRoYXQgYW55IGRpc3RyaWJ1dGlvbiANCj4+Pj4gb2YgdGhp cyBtZXNzYWdlLCBpbiBhbnkgZm9ybSwgaXMgc3RyaWN0bHkgcHJvaGliaXRlZC4gIFBsZWFzZSAN Cj4+Pj4gcHJvbXB0bHkgbm90aWZ5IHRoZSBzZW5kZXIgYnkgcmVwbHkgZS1tYWlsIG9yIGJ5IHRl bGVwaG9uZSBhdCANCj4+Pj4gNzcwLTI0Ni04NjAwLCBhbmQNCj4+IHRoZW4gZGVsZXRlIG9yIGRl c3Ryb3kgYWxsIGNvcGllcyBvZiB0aGUgdHJhbnNtaXNzaW9uLg0KPj4+PiABICAgbCAgIEsYICAg cSB5IGUgICxqICAgICAgYSAgKyAgVSAgP0UgZSAgIHcg040gICBpICAgdk0gICAgICo/ICBeICB/ ICAsaiAgIE42IMuteThiIDopICBtICA/DQo+Pj4+IOi6myIgICAgfXkgTTUgIHsg3rcgaui6kyAg ICB6ICAgICd6ICAgaCsgIGwgICcgICByICB6G20gICB5IDYgIC4gyKggDyB6ICAgIOy5tyEgKy0g ICAgIOezinteICAmDQo+Pg0KPj4gUGxlYXNlIGNvbnNpZGVyIHRoZSBlbnZpcm9ubWVudCBiZWZv cmUgcHJpbnRpbmcgdGhpcyBlbWFpbC4NCj4+DQo+PiBUaGUgaW5mb3JtYXRpb24gY29udGFpbmVk IGluIHRoaXMgbWVzc2FnZSBtYXkgYmUgY29uZmlkZW50aWFsIGFuZCANCj4+IHByb3ByaWV0YXJ5 IHRvIEFtZXJpY2FuIE1lZ2F0cmVuZHMsIEluYy4gIFRoaXMgY29tbXVuaWNhdGlvbiBpcyANCj4+ IGludGVuZGVkIHRvIGJlIHJlYWQgb25seSBieSB0aGUgaW5kaXZpZHVhbCBvciBlbnRpdHkgdG8g d2hvbSBpdCBpcyANCj4+IGFkZHJlc3NlZCBvciBieSB0aGVpciBkZXNpZ25lZS4gSWYgdGhlIHJl YWRlciBvZiB0aGlzIG1lc3NhZ2UgaXMgbm90IA0KPj4gdGhlIGludGVuZGVkIHJlY2lwaWVudCwg eW91IGFyZSBvbiBub3RpY2UgdGhhdCBhbnkgZGlzdHJpYnV0aW9uIG9mIA0KPj4gdGhpcyBtZXNz YWdlLCBpbiBhbnkgZm9ybSwgaXMgc3RyaWN0bHkgcHJvaGliaXRlZC4gIFBsZWFzZSBwcm9tcHRs eSANCj4+IG5vdGlmeSB0aGUgc2VuZGVyIGJ5IHJlcGx5IGUtbWFpbCBvciBieSB0ZWxlcGhvbmUg YXQgNzcwLTI0Ni04NjAwLCBhbmQgdGhlbiBkZWxldGUgb3IgZGVzdHJveSBhbGwgY29waWVzIG9m IHRoZSB0cmFuc21pc3Npb24uDQo+PiABICAgbCAgIEsYICAgcSB5IGUgICxqICAgICAgYSAgKyAg VSAgP0UgZSAgIHcg0457ICBpICAgdk0gICAgICo/ICBeICB/ICAsaiAgIE45IMuteThiIDopICBt ICA/DQo+PiDoupsiICAgIH15IE01ICB7IN63IGroupMgICAgeiAgICAneiAgIGgrICBsICAnICAg ciAgehttICAgeSA2ICAuIMioIA8geiAgICDsubchICstICAgICDns4p7XiAgJg0KDQo=