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: liming.gao@intel.com) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by groups.io with SMTP; Mon, 29 Apr 2019 07:18:41 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 29 Apr 2019 07:18:40 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,409,1549958400"; d="scan'208";a="146793013" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by fmsmga007.fm.intel.com with ESMTP; 29 Apr 2019 07:18:40 -0700 Received: from fmsmsx156.amr.corp.intel.com (10.18.116.74) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.408.0; Mon, 29 Apr 2019 07:18:40 -0700 Received: from shsmsx153.ccr.corp.intel.com (10.239.6.53) by fmsmsx156.amr.corp.intel.com (10.18.116.74) with Microsoft SMTP Server (TLS) id 14.3.408.0; Mon, 29 Apr 2019 07:18:39 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.33]) by SHSMSX153.ccr.corp.intel.com ([169.254.12.150]) with mapi id 14.03.0415.000; Mon, 29 Apr 2019 22:18:38 +0800 From: "Liming Gao" To: Laszlo Ersek , "devel@edk2.groups.io" CC: "Wu, Jiaxin" , "Ye, Ting" , "Fu, Siyuan" Subject: Re: [edk2-devel] [Patch v3 2/3] NetworkPkg: Add DSC/FDF include segment files to NetworkPkg. Thread-Topic: [edk2-devel] [Patch v3 2/3] NetworkPkg: Add DSC/FDF include segment files to NetworkPkg. Thread-Index: AQHU/ow2H6bhVB8Wy0+9F6YRZbxFKaZTLxaQ Date: Mon, 29 Apr 2019 14:18:37 +0000 Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14E43F5C7@SHSMSX104.ccr.corp.intel.com> References: <20190425123735.10960-1-liming.gao@intel.com> <20190425123735.10960-3-liming.gao@intel.com> <4bc4a615-732f-a121-8a38-bac84ea1ee9f@redhat.com> In-Reply-To: <4bc4a615-732f-a121-8a38-bac84ea1ee9f@redhat.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiYmM2MWVkNzEtNWRkYS00MTc3LThhNTEtMDMxZTZmOTYwZTE5IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiQ01tYjdRZHZBTVoydTk2WmpTNkhxNkF3NVF0c1d3VjJ6bjZIQ2FJMHpTRGNiZXFiSkdlYzRhMFRCWnMza1JObCJ9 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: liming.gao@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBMYXN6bG8gRXJzZWsgW21haWx0 bzpsZXJzZWtAcmVkaGF0LmNvbV0NCj4gU2VudDogTW9uZGF5LCBBcHJpbCAyOSwgMjAxOSA5OjA1 IFBNDQo+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgR2FvLCBMaW1pbmcgPGxpbWluZy5nYW9A aW50ZWwuY29tPg0KPiBDYzogV3UsIEppYXhpbiA8amlheGluLnd1QGludGVsLmNvbT47IFllLCBU aW5nIDx0aW5nLnllQGludGVsLmNvbT47IEZ1LCBTaXl1YW4gPHNpeXVhbi5mdUBpbnRlbC5jb20+ DQo+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BhdGNoIHYzIDIvM10gTmV0d29ya1BrZzog QWRkIERTQy9GREYgaW5jbHVkZSBzZWdtZW50IGZpbGVzIHRvIE5ldHdvcmtQa2cuDQo+IA0KPiBP biAwNC8yNS8xOSAxNDozNywgTGltaW5nIEdhbyB3cm90ZToNCj4gPiBUaGlzIHBhdGNoIHByb3Zp ZGVzIGEgc2V0IG9mIGluY2x1ZGUgc2VnbWVudCBmaWxlcyBmb3IgcGxhdGZvcm0gb3duZXIgdG8N Cj4gPiBlYXNpbHkgZW5hYmxlL2Rpc2FibGUgbmV0d29yayBzdGFjayBzdXBwb3J0IG9uIHRoZWly IHBsYXRmb3JtLg0KPiA+DQo+ID4gRm9yIERTQywgdGhlcmUgYXJlOg0KPiA+IC0gYSAiTmV0d29y a0RlZmluZXMuZHNjLmluYyIgZm9yIHRoZSBbRGVmaW5lc10gc2VjdGlvbihzKSwNCj4gPiAtIGEg Ik5ldHdvcmtMaWJzLmRzYy5pbmMiIGZvciB0aGUgW0xpYnJhcnlDbGFzc2VzKl0gc2VjdGlvbihz KSwNCj4gPiAtIGEgIk5ldHdvcmtQY2RzLmRzYy5pbmMiIGZvciB0aGUgW1BjZHMqXSBzZWN0aW9u KHMpLA0KPiA+IC0gYSAiTmV0d29ya0NvbXBvbmVudHMuZHNjLmluYyIgZm9yIHRoZSBbQ29tcG9u ZW50cypdIHNlY3Rpb24ocykuDQo+ID4gRm9yIEZERiwgdGhlcmUgaXM6DQo+ID4gLSBhICJOZXR3 b3JrLmZkZi5pbmMiIGZvciB0aGUgW0Z2Kl0gc2VjdGlvbihzKS4NCj4gPg0KPiA+IFRoZXNlIGZp bGVzIGNhbiBiZSBhZGRlZCB0byB0aGUgcGxhdGZvcm0gRFNDL0ZERiBmaWxlIGJ5IHVzaW5nDQo+ ID4gICAhaW5jbHVkZSBOZXR3b3JrUGtnL3h4eA0KPiA+IHdoZXJlICJ4eHgiIGlzIHRoZSAqLmlu YyBmaWxlIG5hbWUuDQo+ID4NCj4gPiBBIHNldCBvZiBmbGFncyBjYW4gYmUgY2hhbmdlZCBiZWZv cmUgdGhlIGluY2x1ZGUgbGluZSBvciBpbiBidWlsZCBjb21tYW5kDQo+ID4gbGluZSAoIi1EIEZM QUc9VkFMVUUiKSB0byBlbmFibGUgb3IgZGlzYWJsZSByZWxhdGVkIGZlYXR1cmUgc2V0LCBwbGVh c2UNCj4gPiBjaGVjayAiTmV0d29ya0RlZmluZXMuZHNjLmluYyIgZm9yIGEgZGV0YWlsIGRlc2Ny aXB0aW9uIG9mIGVhY2ggZmxhZy4NCj4gDQo+ICgxKSBQbGVhc2UgY2xhcmlmeSB0aGlzIHBhcmFn cmFwaCBhcyBmb2xsb3dzOg0KPiANCj4gQSBwbGF0Zm9ybSBEU0MgZmlsZSBjYW4gZGl2ZXJnZSBm cm9tIHRoZSBkZWZhdWx0cyBpbg0KPiAiTmV0d29ya0RlZmluZXMuZHNjLmluYyIgYnkgc2V0dGlu ZyB0aGUgaW5kaXZpZHVhbCBERUZJTkVzIGJlZm9yZQ0KPiBpbmNsdWRpbmcgIk5ldHdvcmtEZWZp bmVzLmRzYy5pbmMiLg0KPiANCj4gKFRoZSBjdXJyZW50IHBhcmFncmFwaCBkb2VzIHNheSAiYmVm b3JlIHRoZSBpbmNsdWRlIGxpbmUiLCBidXQgaXQNCj4gZG9lc24ndCBzYXkgKndoaWNoKiBpbmNs dWRlIGxpbmUuIEkgaGFkIHRvIGNoZWNrDQo+ICJOZXR3b3JrRGVmaW5lcy5kc2MuaW5jIiB0byBz ZWUgdGhhdCBpdCAoY29ycmVjdGx5KSB1c2VzICIhaWZuZGVmDQo+IEZMQUcuLi4iLCB0byB1bmRl cnN0YW5kIHRoZSBpZGVhLikNCj4gDQpBZ3JlZS4gDQo+ID4NCj4gPiBUaGUgZGVmYXVsdCB2YWx1 ZSBvZiB0aGVzZSBmbGFncyBhcmU6DQo+ID4gICBERUZJTkUgTkVUV09SS19FTkFCTEUgICAgICAg ICAgICAgICAgID0gVFJVRQ0KPiA+ICAgREVGSU5FIE5FVFdPUktfU05QX0VOQUJMRSAgICAgICAg ICAgICA9IFRSVUUNCj4gPiAgIERFRklORSBORVRXT1JLX0lQNF9FTkFCTEUgICAgICAgICAgICAg PSBUUlVFDQo+ID4gICBERUZJTkUgTkVUV09SS19JUDZfRU5BQkxFICAgICAgICAgICAgID0gVFJV RQ0KPiA+ICAgREVGSU5FIE5FVFdPUktfVExTX0VOQUJMRSAgICAgICAgICAgICA9IFRSVUUNCj4g PiAgIERFRklORSBORVRXT1JLX0hUVFBfQk9PVF9FTkFCTEUgICAgICAgPSBUUlVFDQo+ID4gICBE RUZJTkUgTkVUV09SS19BTExPV19IVFRQX0NPTk5FQ1RJT05TID0gRkFMU0UNCj4gPiAgIERFRklO RSBORVRXT1JLX0lTQ1NJX0VOQUJMRSAgICAgICAgICAgPSBUUlVFDQo+ID4gICBERUZJTkUgTkVU V09SS19WTEFOX0VOQUJMRSAgICAgICAgICAgID0gVFJVRQ0KPiA+ICAgREVGSU5FIFBMQVRGT1JN WDY0X0VOQUJMRSAgICAgICAgICAgICA9IEZBTFNFDQo+IA0KPiAoMikgVGhlIFBMQVRGT1JNWDY0 X0VOQUJMRSBmbGFnIGxvb2tzIHVzZWxlc3M7IG5vdGhpbmcgZGVwZW5kcyBvbiBpdC4NCj4gDQo+ IC4uLiBsb29raW5nIGF0IHRoZSBuZXh0IHBhdGNoICh2MyAzLzMpLCBpdCBzZWVtcyB0aGF0IFBM QVRGT1JNWDY0X0VOQUJMRQ0KPiBoYXMgYSB1c2UgYWZ0ZXIgYWxsIC0tIGJ1dCBpdCBvbmx5IG1h dHRlcnMgZm9yIHBsYXRmb3JtcyB0aGF0IGluY2x1ZGUNCj4gdGhlICJoaWdoLWxldmVsIiBpbmNs dWRlIGZpbGVzLg0KPiANCj4gUGxlYXNlIG1vZGlmeSB0aGUgY29tbWl0IG1lc3NhZ2Ugb24gdGhp cyBwYXRjaCAoMi8zKSwgYW5kIGFsc28NCj4gIk5ldHdvcmtEZWZpbmVzLmRzYy5pbmMiLCB0byBl eHBsYWluIFBMQVRGT1JNWDY0X0VOQUJMRS4gKEkuZS4gYm90aCB0aGUNCj4gcHVycG9zZSBvZiB0 aGUgUExBVEZPUk1YNjRfRU5BQkxFIGZsYWcsIGFuZCBhbHNvIHRoZSBmYWN0IHRoYXQgaXQgY2Fu IGJlDQo+IGlnbm9yZWQgYnkgcGxhdGZvcm1zIHRoYXQgaW5jbHVkZSB0aGUgaW5kaXZpZHVhbCBJ TkMgZmlsZXMuKQ0KPiANCj4gLi4uIEFjdHVhbGx5LCB1bmRlciBwb2ludCAoOSkgYmVsb3csIEkg d2lsbCBzdWdnZXN0IGRyb3BwaW5nDQo+IFBMQVRGT1JNWDY0X0VOQUJMRSBhbHRvZ2V0aGVyLg0K PiANCkkgd2lsbCBtb3ZlIHRoaXMgZmxhZyBpbnRvIFBhdGNoICh2MyAzLzMpDQo+ID4NCj4gPiBS ZWxhdGVkIEJaOiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lk PTEyOTMNCj4gDQo+ICgzKSBQbGVhc2UgaW5jbHVkZSB0aGlzIEJaIGluIHRoZSByZWxlYXNlIHBs YW5uaW5nIHdpa2kgcGFnZTsgaXQgaXMNCj4gaW1wb3J0YW50IHRvIHBsYXRmb3JtczoNCj4gDQo+ IGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvdGlhbm9jb3JlLmdpdGh1Yi5pby93aWtpL0VE Sy1JSS1SZWxlYXNlLVBsYW5uaW5nDQo+IA0KWWVzLiBJIHdpbGwgdHJ5IHRvIGNhdGNoIDIwMTkw NSByZWxlYXNlLiBJIHdpbGwgdXBkYXRlIHJlbGVhc2luZyBwbGFubmluZyBhbmQgbm90ZXMuIA0K PiA+DQo+ID4gQ2M6IEppYXhpbiBXdSA8amlheGluLnd1QGludGVsLmNvbT4NCj4gPiBDYzogVGlu ZyBZZSA8dGluZy55ZUBpbnRlbC5jb20+DQo+ID4gU2lnbmVkLW9mZi1ieTogRnUgU2l5dWFuIDxz aXl1YW4uZnVAaW50ZWwuY29tPg0KPiA+IC0tLQ0KPiA+ICBOZXR3b3JrUGtnL05ldHdvcmsuZmRm LmluYyAgICAgICAgICAgfCAgNTYgKysrKysrKysrKysrKysrKw0KPiA+ICBOZXR3b3JrUGtnL05l dHdvcmtDb21wb25lbnRzLmRzYy5pbmMgfCAgNjEgKysrKysrKysrKysrKysrKysNCj4gPiAgTmV0 d29ya1BrZy9OZXR3b3JrRGVmaW5lcy5kc2MuaW5jICAgIHwgMTI2ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrDQo+ID4gIE5ldHdvcmtQa2cvTmV0d29ya0xpYnMuZHNjLmluYyAg ICAgICB8ICAxOSArKysrKysNCj4gPiAgTmV0d29ya1BrZy9OZXR3b3JrUGNkcy5kc2MuaW5jICAg ICAgIHwgIDE2ICsrKysrDQo+ID4gIDUgZmlsZXMgY2hhbmdlZCwgMjc4IGluc2VydGlvbnMoKykN Cj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IE5ldHdvcmtQa2cvTmV0d29yay5mZGYuaW5jDQo+ID4g IGNyZWF0ZSBtb2RlIDEwMDY0NCBOZXR3b3JrUGtnL05ldHdvcmtDb21wb25lbnRzLmRzYy5pbmMN Cj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IE5ldHdvcmtQa2cvTmV0d29ya0RlZmluZXMuZHNjLmlu Yw0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgTmV0d29ya1BrZy9OZXR3b3JrTGlicy5kc2MuaW5j DQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBOZXR3b3JrUGtnL05ldHdvcmtQY2RzLmRzYy5pbmMN Cj4gPg0KPiA+IGRpZmYgLS1naXQgYS9OZXR3b3JrUGtnL05ldHdvcmsuZmRmLmluYyBiL05ldHdv cmtQa2cvTmV0d29yay5mZGYuaW5jDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRl eCAwMDAwMDAwMDAwLi44NTE4YmFkMTJjDQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL05l dHdvcmtQa2cvTmV0d29yay5mZGYuaW5jDQo+ID4gQEAgLTAsMCArMSw1NiBAQA0KPiA+ICsjIyBA ZmlsZQ0KPiA+ICsjIE5ldHdvcmsgRkRGIGluY2x1ZGUgZmlsZSBmb3IgQWxsIEFyY2hpdGVjdHVy ZXMuDQo+ID4gKyMNCj4gPiArIyBUaGlzIGZpbGUgY2FuIGJlIGluY2x1ZGVkIHRvIGEgcGxhdGZv cm0gRkRGIGJ5IHVzaW5nICIhaW5jbHVkZSBOZXR3b3JrUGtnL05ldHdvcmsuZmRmLmluYyINCj4g DQo+ICg0KSBOb3QgdG9vIGltcG9ydGFudCwgYnV0IEkgc3VnZ2VzdCByZXdyYXBwaW5nIGFsbCBj b21tZW50cyB0byA4MCBjaGFycw0KPiBpZiBwb3NzaWJsZS4NCj4gDQo+ID4gKyMgdG8gYWRkIEVE S0lJIG5ldHdvcmsgc3RhY2sgZHJpdmVycyBhY2NvcmRpbmcgdG8gdGhlIHZhbHVlIG9mIGZsYWdz IGRlc2NyaWJlZCBpbg0KPiA+ICsjICJOZXR3b3JrUGtnL05ldHdvcmsuZHNjLmluYyIuDQo+ID4g KyMNCj4gPiArIyBDb3B5cmlnaHQgKGMpIDIwMTgsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmln aHRzIHJlc2VydmVkLjxCUj4NCj4gDQo+ICg1KSBXZSBzaG91bGQgcHJvYmFibHkgc2F5IDIwMTks IG9yIDIwMTgtMjAxOSBoZXJlLiAoVGhlIHJlc3Qgb2YgdGhlIG5ldw0KPiBmaWxlcyBzYXkgMjAx OS4pDQo+IA0KPiA+ICsjDQo+ID4gKyMgICAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0y LUNsYXVzZS1QYXRlbnQNCj4gPiArIw0KPiA+ICsNCj4gPiArIWlmICQoTkVUV09SS19FTkFCTEUp ID09IFRSVUUNCj4gPiArICBJTkYgIE1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvTmV0d29yay9EcGNE eGUvRHBjRHhlLmluZg0KPiA+ICsNCj4gPiArICAhaWYgJChORVRXT1JLX1NOUF9FTkFCTEUpID09 IFRSVUUNCj4gPiArICAgIElORiAgTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9OZXR3b3JrL1NucER4 ZS9TbnBEeGUuaW5mDQo+ID4gKyAgIWVuZGlmDQo+ID4gKw0KPiA+ICsgICFpZiAkKE5FVFdPUktf VkxBTl9FTkFCTEUpID09IFRSVUUNCj4gPiArICAgIElORiAgTWRlTW9kdWxlUGtnL1VuaXZlcnNh bC9OZXR3b3JrL1ZsYW5Db25maWdEeGUvVmxhbkNvbmZpZ0R4ZS5pbmYNCj4gPiArICAhZW5kaWYN Cj4gPiArDQo+ID4gKyAgSU5GICBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL05ldHdvcmsvTW5wRHhl L01ucER4ZS5pbmYNCj4gPiArDQo+ID4gKyAgIWlmICQoTkVUV09SS19JUDRfRU5BQkxFKSA9PSBU UlVFDQo+ID4gKyAgICBJTkYgIE1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvTmV0d29yay9BcnBEeGUv QXJwRHhlLmluZg0KPiA+ICsgICAgSU5GICBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL05ldHdvcmsv RGhjcDREeGUvRGhjcDREeGUuaW5mDQo+ID4gKyAgICBJTkYgIE1kZU1vZHVsZVBrZy9Vbml2ZXJz YWwvTmV0d29yay9JcDREeGUvSXA0RHhlLmluZg0KPiA+ICsgICAgSU5GICBNZGVNb2R1bGVQa2cv VW5pdmVyc2FsL05ldHdvcmsvVWRwNER4ZS9VZHA0RHhlLmluZg0KPiA+ICsgICAgSU5GICBNZGVN b2R1bGVQa2cvVW5pdmVyc2FsL05ldHdvcmsvTXRmdHA0RHhlL010ZnRwNER4ZS5pbmYNCj4gPiAr ICAhZW5kaWYNCj4gPiArDQo+ID4gKyAgIWlmICQoTkVUV09SS19JUDZfRU5BQkxFKSA9PSBUUlVF DQo+ID4gKyAgICBJTkYgIE5ldHdvcmtQa2cvRGhjcDZEeGUvRGhjcDZEeGUuaW5mDQo+ID4gKyAg ICBJTkYgIE5ldHdvcmtQa2cvSXA2RHhlL0lwNkR4ZS5pbmYNCj4gPiArICAgIElORiAgTmV0d29y a1BrZy9VZHA2RHhlL1VkcDZEeGUuaW5mDQo+ID4gKyAgICBJTkYgIE5ldHdvcmtQa2cvTXRmdHA2 RHhlL010ZnRwNkR4ZS5pbmYNCj4gPiArICAhZW5kaWYNCj4gPiArDQo+ID4gKyAgSU5GICBOZXR3 b3JrUGtnL1RjcER4ZS9UY3BEeGUuaW5mDQo+ID4gKyAgSU5GICBOZXR3b3JrUGtnL1VlZmlQeGVC Y0R4ZS9VZWZpUHhlQmNEeGUuaW5mDQo+ID4gKw0KPiA+ICsgICFpZiAkKE5FVFdPUktfVExTX0VO QUJMRSkgPT0gVFJVRQ0KPiA+ICsgICAgSU5GICBOZXR3b3JrUGtnL1Rsc0R4ZS9UbHNEeGUuaW5m DQo+ID4gKyAgICBJTkYgIE5ldHdvcmtQa2cvVGxzQXV0aENvbmZpZ0R4ZS9UbHNBdXRoQ29uZmln RHhlLmluZg0KPiA+ICsgICFlbmRpZg0KPiA+ICsNCj4gPiArICAhaWYgJChORVRXT1JLX0hUVFBf Qk9PVF9FTkFCTEUpID09IFRSVUUNCj4gPiArICAgIElORiAgTmV0d29ya1BrZy9EbnNEeGUvRG5z RHhlLmluZg0KPiA+ICsgICAgSU5GICBOZXR3b3JrUGtnL0h0dHBEeGUvSHR0cER4ZS5pbmYNCj4g PiArICAgIElORiAgTmV0d29ya1BrZy9IdHRwVXRpbGl0aWVzRHhlL0h0dHBVdGlsaXRpZXNEeGUu aW5mDQo+ID4gKyAgICBJTkYgIE5ldHdvcmtQa2cvSHR0cEJvb3REeGUvSHR0cEJvb3REeGUuaW5m DQo+ID4gKyAgIWVuZGlmDQo+IA0KPiAoNikgVGhpcyBkb2Vzbid0IGNvdmVyIE5FVFdPUktfSVND U0lfRU5BQkxFLA0KPiAiTmV0d29ya1BrZy9JU2NzaUR4ZS9JU2NzaUR4ZS5pbmYiLg0KPiANCj4g KFRoZSBEU0MgZmlsZSBkb2VzLikNCj4gDQo+IA0KPiAoNykgSXMgQXJwRHhlIHJlYWxseSBzcGVj aWZpYyB0byBJUHY0PyBJIGdyZXBwZWQgdGhlIElORiBmaWxlcyBmb3INCj4gImdFZmlBcnBQcm90 b2NvbEd1aWQiIGFuZCAiZ0VmaUFycFNlcnZpY2VCaW5kaW5nUHJvdG9jb2xHdWlkIiwgYW5kIHR3 bw0KPiBkcml2ZXJzIGNvbnN1bWUgdGhvc2U6DQo+IA0KPiAtIElwNER4ZQ0KPiAtIFVlZmlQeGVC Y0R4ZQ0KPiANCj4gVGhlIGxhdHRlciBkcml2ZXIgKFVlZmlQeGVCY0R4ZSkgaXMgbm90IHNwZWNp ZmljIHRvIElQdjQgdnMuIElQdjYuDQo+IFRoZXJlZm9yZSwgc2hvdWxkIHdlIGluY2x1ZGUgQXJw RHhlIHNpbXBseSB1bmRlciAiTkVUV09SS19FTkFCTEUiPw0KPiANCj4gKEkgc2VlIHRoYXQsIGVs c2V3aGVyZSwgd2UgaGF2ZSBhbiAhZXJyb3IgaWYgdGhlIHBsYXRmb3JtIG9yIHVzZXIgdHJpZXMN Cj4gdG8gZXhjbHVkZSBib3RoIElQdjQgYW5kIElQdjYsIGFuZCB0aGF0J3MgT0suIEhvd2V2ZXIs IGlmIHRoZSBwbGF0Zm9ybQ0KPiBvciB1c2VyIHBpY2tzIElQdjYgb25seSwgdGhlbiB0aGUgYWJv dmUgd2lsbCBwcmV2ZW50IHRoZW0gZnJvbSBoYXZpbmcNCj4gQXJwRHhlLCBhbmQgdGhlbiBQWEUg Ym9vdCBtaWdodCBub3Qgd29yay4pDQo+IA0KPiBIbW1tbSBJIGNvdWxkIGJlIHdyb25nIGFib3V0 IHRoaXM7IGluIHRoZSBVZWZpUHhlQmNEeGUgZHJpdmVyLCB0aGUgb25seQ0KPiByZWZlcmVuY2Vz IHRvIHRoZSBBUlAgcHJvdG9jb2wgR1VJRHMgYXJlIGluIHRoZSBmdW5jdGlvbnMNCj4gLSBQeGVC Y0dldE5pY0J5SXA0Q2hpbGRyZW4NCj4gLSBQeGVCY0Rlc3Ryb3lJcDRDaGlsZHJlbg0KPiAtIFB4 ZUJjQ3JlYXRlSXA0Q2hpbGRyZW4NCj4gDQo+IE9LLiBJIGd1ZXNzIEFSUCBpcyBhbiBJUHY0LW9u bHkgcmVxdWlyZW1lbnQgdGhlbi4NCj4gDQo+IA0KPiBPdGhlcndpc2UsIHRoaXMgRkRGIGluY2x1 ZGUgbG9va3MgZ29vZCwgY2hlY2tlZCBhZ2FpbnN0IHRoZSBPVk1GIEZERg0KPiBmaWxlcywgYW5k IGZyb20gIkFybVZpcnRRZW11RnZNYWluLmZkZi5pbmMiLiAoQXJtVmlydFhlbi5mZGYgZG9lc24n dA0KPiBpbmNsdWRlIHRoZSBuZXR3b3JrIHN0YWNrLikNCj4gDQo+ID4gKw0KPiA+ICshZW5kaWYN Cj4gPiBkaWZmIC0tZ2l0IGEvTmV0d29ya1BrZy9OZXR3b3JrQ29tcG9uZW50cy5kc2MuaW5jIGIv TmV0d29ya1BrZy9OZXR3b3JrQ29tcG9uZW50cy5kc2MuaW5jDQo+ID4gbmV3IGZpbGUgbW9kZSAx MDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAwLi5hZWRlNWVhOGJlDQo+ID4gLS0tIC9kZXYvbnVs bA0KPiA+ICsrKyBiL05ldHdvcmtQa2cvTmV0d29ya0NvbXBvbmVudHMuZHNjLmluYw0KPiA+IEBA IC0wLDAgKzEsNjEgQEANCj4gPiArIyMgQGZpbGUNCj4gPiArIyBOZXR3b3JrIERTQyBpbmNsdWRl IGZpbGUgZm9yIFtDb21wb25lbnRzKl0gc2VjdGlvbiBvZiBhbGwgQXJjaGl0ZWN0dXJlcy4NCj4g PiArIw0KPiA+ICsjIFRoaXMgZmlsZSBjYW4gYmUgaW5jbHVkZWQgdG8gdGhlIFtDb21wb25lbnRz Kl0gc2VjdGlvbihzKSBvZiBhIHBsYXRmb3JtIERTQyBmaWxlDQo+ID4gKyMgYnkgdXNpbmcgIiFp bmNsdWRlIE5ldHdvcmtQa2cvTmV0d29ya0NvbXBvbmVudHMuZHNjLmluYyIgdG8gc3BlY2lmeSB0 aGUgSU5GIGZpbGVzDQo+ID4gKyMgb2YgRURLSUkgbmV0d29yayBkcml2ZXJzIGFjY29yZGluZyB0 byB0aGUgdmFsdWUgb2YgZmxhZ3MgZGVzY3JpYmVkIGluDQo+ID4gKyMgIk5ldHdvcmtEZWZpbmVz LmRzYy5pbmMiLg0KPiA+ICsjDQo+ID4gKyMgQ29weXJpZ2h0IChjKSAyMDE5LCBJbnRlbCBDb3Jw b3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4gKyMNCj4gPiArIyAgICBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ICsjDQo+ID4gKyMj DQo+ID4gKw0KPiA+ICshaWYgJChORVRXT1JLX0VOQUJMRSkgPT0gVFJVRQ0KPiA+ICsgIE1kZU1v ZHVsZVBrZy9Vbml2ZXJzYWwvTmV0d29yay9EcGNEeGUvRHBjRHhlLmluZg0KPiA+ICsNCj4gPiAr ICAhaWYgJChORVRXT1JLX1NOUF9FTkFCTEUpID09IFRSVUUNCj4gPiArICAgIE1kZU1vZHVsZVBr Zy9Vbml2ZXJzYWwvTmV0d29yay9TbnBEeGUvU25wRHhlLmluZg0KPiA+ICsgICFlbmRpZg0KPiA+ ICsNCj4gPiArICAhaWYgJChORVRXT1JLX1ZMQU5fRU5BQkxFKSA9PSBUUlVFDQo+ID4gKyAgICBN ZGVNb2R1bGVQa2cvVW5pdmVyc2FsL05ldHdvcmsvVmxhbkNvbmZpZ0R4ZS9WbGFuQ29uZmlnRHhl LmluZg0KPiA+ICsgICFlbmRpZg0KPiA+ICsNCj4gPiArICBNZGVNb2R1bGVQa2cvVW5pdmVyc2Fs L05ldHdvcmsvTW5wRHhlL01ucER4ZS5pbmYNCj4gPiArDQo+ID4gKyAgIWlmICQoTkVUV09SS19J UDRfRU5BQkxFKSA9PSBUUlVFDQo+ID4gKyAgICBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL05ldHdv cmsvQXJwRHhlL0FycER4ZS5pbmYNCj4gPiArICAgIE1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvTmV0 d29yay9EaGNwNER4ZS9EaGNwNER4ZS5pbmYNCj4gPiArICAgIE1kZU1vZHVsZVBrZy9Vbml2ZXJz YWwvTmV0d29yay9JcDREeGUvSXA0RHhlLmluZg0KPiA+ICsgICAgTWRlTW9kdWxlUGtnL1VuaXZl cnNhbC9OZXR3b3JrL1VkcDREeGUvVWRwNER4ZS5pbmYNCj4gPiArICAgIE1kZU1vZHVsZVBrZy9V bml2ZXJzYWwvTmV0d29yay9NdGZ0cDREeGUvTXRmdHA0RHhlLmluZg0KPiA+ICsgICFlbmRpZg0K PiA+ICsNCj4gPiArICAhaWYgJChORVRXT1JLX0lQNl9FTkFCTEUpID09IFRSVUUNCj4gPiArICAg IE5ldHdvcmtQa2cvRGhjcDZEeGUvRGhjcDZEeGUuaW5mDQo+ID4gKyAgICBOZXR3b3JrUGtnL0lw NkR4ZS9JcDZEeGUuaW5mDQo+ID4gKyAgICBOZXR3b3JrUGtnL1VkcDZEeGUvVWRwNkR4ZS5pbmYN Cj4gPiArICAgIE5ldHdvcmtQa2cvTXRmdHA2RHhlL010ZnRwNkR4ZS5pbmYNCj4gPiArICAhZW5k aWYNCj4gPiArDQo+ID4gKyAgTmV0d29ya1BrZy9UY3BEeGUvVGNwRHhlLmluZg0KPiA+ICsgIE5l dHdvcmtQa2cvVWVmaVB4ZUJjRHhlL1VlZmlQeGVCY0R4ZS5pbmYNCj4gPiArDQo+ID4gKyAgIWlm ICQoTkVUV09SS19UTFNfRU5BQkxFKSA9PSBUUlVFDQo+ID4gKyAgICBOZXR3b3JrUGtnL1Rsc0R4 ZS9UbHNEeGUuaW5mDQo+ID4gKyAgICBOZXR3b3JrUGtnL1Rsc0F1dGhDb25maWdEeGUvVGxzQXV0 aENvbmZpZ0R4ZS5pbmYNCj4gPiArICAhZW5kaWYNCj4gPiArDQo+ID4gKyAgIWlmICQoTkVUV09S S19IVFRQX0JPT1RfRU5BQkxFKSA9PSBUUlVFDQo+ID4gKyAgICBOZXR3b3JrUGtnL0Ruc0R4ZS9E bnNEeGUuaW5mDQo+ID4gKyAgICBOZXR3b3JrUGtnL0h0dHBEeGUvSHR0cER4ZS5pbmYNCj4gPiAr ICAgIE5ldHdvcmtQa2cvSHR0cFV0aWxpdGllc0R4ZS9IdHRwVXRpbGl0aWVzRHhlLmluZg0KPiA+ ICsgICAgTmV0d29ya1BrZy9IdHRwQm9vdER4ZS9IdHRwQm9vdER4ZS5pbmYNCj4gPiArICAhZW5k aWYNCj4gPiArDQo+ID4gKyAgIWlmICQoTkVUV09SS19JU0NTSV9FTkFCTEUpID09IFRSVUUNCj4g PiArICAgIE5ldHdvcmtQa2cvSVNjc2lEeGUvSVNjc2lEeGUuaW5mDQo+ID4gKyAgIWVuZGlmDQo+ ID4gKyFlbmRpZg0KPiANCj4gT0ssIHRoaXMgbWF0Y2hlcyB0aGUgRkRGIGluY2x1ZGUgZmlsZSAo ZXhjZXB0IGZvciBJU2NzaUR4ZSwgYnV0IHRoYXQncyBhDQo+IHByb2JsZW0gSSBwb2ludGVkIG91 dCB1bmRlciAoNikpLg0KPiANCj4gVGhlIE5FVFdPUktfVExTX0VOQUJMRSBwYXJ0IGxvb2tzIGdv b2QgdG9vLiBJdCdzIHdvcnRoIG5vdGluZyB0aGF0IGl0DQo+IHdvbid0IGJlIHN1aXRhYmxlIGZv ciBPVk1GLCBiZWNhdXNlIE9WTUYgaG9va3MgVGxzQXV0aENvbmZpZ0xpYiBpbnRvDQo+IFRsc0F1 dGhDb25maWdEeGUsIGZvciBkeW5hbWljYWxseSBzZXR0aW5nIHRoZSB2YXJpYWJsZXMNCj4gIkh0 dHBUbHNDaXBoZXJMaXN0IiBhbmQgIlRsc0NhQ2VydGlmaWNhdGUiLg0KPiANCj4gQnV0LCB0aGF0 J3Mgbm90IGEgcHJvYmxlbSBmb3IgdGhpcyBnZW5lcmljIERTQyBpbmNsdWRlIGZpbGUuIE9WTUYg Y2FuDQo+IHNpbXBseSBzZXQgTkVUV09SS19UTFNfRU5BQkxFIHRvIEZBTFNFLCBhbmQgcHJlc2Vy dmUgaXRzIG93biAoY3VycmVudCkNCj4gVExTX0VOQUJMRSBidWlsZCBmbGFnLCBhbmQgZXZlcnl0 aGluZyBpbiB0aGUgRFNDL0ZERiB0aGF0IGRlcGVuZHMgb24NCj4gdGhhdCBwbGF0Zm9ybSBidWls ZCBmbGFnLg0KPiANCj4gPiBkaWZmIC0tZ2l0IGEvTmV0d29ya1BrZy9OZXR3b3JrRGVmaW5lcy5k c2MuaW5jIGIvTmV0d29ya1BrZy9OZXR3b3JrRGVmaW5lcy5kc2MuaW5jDQo+ID4gbmV3IGZpbGUg bW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAwLi43YTMxOGM5OGNhDQo+ID4gLS0tIC9k ZXYvbnVsbA0KPiA+ICsrKyBiL05ldHdvcmtQa2cvTmV0d29ya0RlZmluZXMuZHNjLmluYw0KPiA+ IEBAIC0wLDAgKzEsMTI2IEBADQo+ID4gKyMjIEBmaWxlDQo+ID4gKyMgTmV0d29yayBEU0MgaW5j bHVkZSBmaWxlIGZvciBbRGVmaW5lc10gc2VjdGlvbiBvZiBhbGwgQXJjaGl0ZWN0dXJlcy4NCj4g PiArIw0KPiA+ICsjIFRoaXMgZmlsZSBjYW4gYmUgaW5jbHVkZWQgdG8gdGhlIFtEZWZpbmVzXSBz ZWN0aW9uIG9mIGEgcGxhdGZvcm0gRFNDIGZpbGUgYnkNCj4gPiArIyB1c2luZyAiIWluY2x1ZGUg TmV0d29ya1BrZy9OZXR3b3JrRGVmaW5lcy5kc2MuaW5jIiB0byBzZXQgZGVmYXVsdCB2YWx1ZSBv Zg0KPiA+ICsjIGZsYWdzIGlmIHRoZXkgYXJlIG5vdCBkZWZpbmVkIHNvbWV3aGVyZSBlbHNlLCBh bmQgYWxzbyBjaGVjayB0aGUgdmFsdWUgdG8gc2VlDQo+ID4gKyMgaWYgdGhlcmUgaXMgYW55IGNv bmZsaWN0Lg0KPiA+ICsjDQo+ID4gKyMgVGhlc2UgZmxhZ3MgY2FuIGJlIGRlZmluZWQgYmVmb3Jl IHRoZSAhaW5jbHVkZSBsaW5lLCBvciBjaGFuZ2VkIG9uIHRoZSBjb21tYW5kDQo+ID4gKyMgbGlu ZSB0byBlbmFibGUgb3IgZGlzYWJsZSByZWxhdGVkIGZlYXR1cmUgc3VwcG9ydC4NCj4gPiArIyAg IC1EIEZMQUc9VkFMVUUNCj4gPiArIyBUaGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGVzZSBmbGFncyBh cmU6DQo+ID4gKyMgICBERUZJTkUgTkVUV09SS19FTkFCTEUgICAgICAgICAgICAgICAgID0gVFJV RQ0KPiA+ICsjICAgREVGSU5FIE5FVFdPUktfU05QX0VOQUJMRSAgICAgICAgICAgICA9IFRSVUUN Cj4gPiArIyAgIERFRklORSBORVRXT1JLX0lQNF9FTkFCTEUgICAgICAgICAgICAgPSBUUlVFDQo+ ID4gKyMgICBERUZJTkUgTkVUV09SS19JUDZfRU5BQkxFICAgICAgICAgICAgID0gVFJVRQ0KPiA+ ICsjICAgREVGSU5FIE5FVFdPUktfVExTX0VOQUJMRSAgICAgICAgICAgICA9IFRSVUUNCj4gPiAr IyAgIERFRklORSBORVRXT1JLX0hUVFBfQk9PVF9FTkFCTEUgICAgICAgPSBUUlVFDQo+ID4gKyMg ICBERUZJTkUgTkVUV09SS19BTExPV19IVFRQX0NPTk5FQ1RJT05TID0gRkFMU0UNCj4gPiArIyAg IERFRklORSBORVRXT1JLX0lTQ1NJX0VOQUJMRSAgICAgICAgICAgPSBUUlVFDQo+ID4gKyMgICBE RUZJTkUgTkVUV09SS19WTEFOX0VOQUJMRSAgICAgICAgICAgID0gVFJVRQ0KPiA+ICsjICAgREVG SU5FIFBMQVRGT1JNWDY0X0VOQUJMRSAgICAgICAgICAgICA9IEZBTFNFDQo+ID4gKyMNCj4gPiAr IyBDb3B5cmlnaHQgKGMpIDIwMTksIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2Vy dmVkLjxCUj4NCj4gPiArIw0KPiA+ICsjICAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0Qt Mi1DbGF1c2UtUGF0ZW50DQo+ID4gKyMNCj4gPiArIyMNCj4gPiArDQo+ID4gKyFpZm5kZWYgTkVU V09SS19FTkFCTEUNCj4gPiArICAjDQo+ID4gKyAgIyBUaGlzIGZsYWcgaXMgdG8gZW5hYmxlIG9y IGRpc2FibGUgdGhlIHdob2xlIG5ldHdvcmsgc3RhY2suDQo+ID4gKyAgIw0KPiA+ICsgIERFRklO RSBORVRXT1JLX0VOQUJMRSA9IFRSVUUNCj4gPiArIWVuZGlmDQo+ID4gKw0KPiA+ICshaWZuZGVm IE5FVFdPUktfU05QX0VOQUJMRQ0KPiA+ICsgICMNCj4gPiArICAjIFRoaXMgZmxhZyBpcyB0byBp bmNsdWRlIHRoZSBjb21tb24gU05QIGRyaXZlciBvciBub3QuDQo+ID4gKyAgIw0KPiA+ICsgIERF RklORSBORVRXT1JLX1NOUF9FTkFCTEUgPSBUUlVFDQo+ID4gKyFlbmRpZg0KPiA+ICsNCj4gPiAr IWlmbmRlZiBORVRXT1JLX1ZMQU5fRU5BQkxFDQo+ID4gKyAgIw0KPiA+ICsgICMgVGhpcyBmbGFn IGlzIHRvIGVuYWJsZSBvciBkaXNhYmxlIFZMQU4gZmVhdHVyZS4NCj4gPiArICAjDQo+ID4gKyAg REVGSU5FIE5FVFdPUktfVkxBTl9FTkFCTEUgPSBUUlVFDQo+ID4gKyFlbmRpZg0KPiA+ICsNCj4g PiArIWlmbmRlZiBORVRXT1JLX0lQNF9FTkFCTEUNCj4gPiArICAjDQo+ID4gKyAgIyBUaGlzIGZs YWcgaXMgdG8gZW5hYmxlIG9yIGRpc2FibGUgSVB2NCBuZXR3b3JrIHN0YWNrLg0KPiA+ICsgICMN Cj4gPiArICBERUZJTkUgTkVUV09SS19JUDRfRU5BQkxFID0gVFJVRQ0KPiA+ICshZW5kaWYNCj4g PiArDQo+ID4gKyFpZm5kZWYgTkVUV09SS19JUDZfRU5BQkxFDQo+ID4gKyAgIw0KPiA+ICsgICMg VGhpcyBmbGFnIGlzIHRvIGVuYWJsZSBvciBkaXNhYmxlIElQdjYgbmV0d29yayBzdGFjay4NCj4g PiArICAjDQo+ID4gKyAgREVGSU5FIE5FVFdPUktfSVA2X0VOQUJMRSA9IFRSVUUNCj4gPiArIWVu ZGlmDQo+ID4gKw0KPiA+ICshaWZuZGVmIE5FVFdPUktfVExTX0VOQUJMRQ0KPiA+ICsgICMNCj4g PiArICAjIFRoaXMgZmxhZyBpcyB0byBlbmFibGUgb3IgZGlzYWJsZSBUTFMgZmVhdHVyZS4NCj4g PiArICAjDQo+ID4gKyAgIyBOb3RlOiBUaGlzIGZlYXR1cmUgZGVwZW5kcyBvbiB0aGUgT3BlblNT TCBidWlsZGluZy4gVG8gZW5hYmxlIHRoaXMgZmVhdHVyZSwgcGxlYXNlDQo+ID4gKyAgIyAgICAg ICBmb2xsb3cgdGhlIGluc3RydWN0aW9ucyBmb3VuZCBpbiB0aGUgZmlsZSAiT3BlblNTTC1IT1dU Ty50eHQiIGxvY2F0ZWQgaW4NCj4gPiArICAjICAgICAgIENyeXB0b1BrZ1xMaWJyYXJ5XE9wZW5z c2xMaWIgdG8gZW5hYmxlIHRoZSBPcGVuU1NMIGJ1aWxkaW5nIGZpcnN0Lg0KPiA+ICsgICMgICAg ICAgVGhlIE9wZW5zc2xMaWIuaW5mIGxpYnJhcnkgaW5zdGFuY2Ugc2hvdWxkIGJlIHVzZWQgc2lu Y2UgbGlic3NsIGlzIHJlcXVpcmVkLg0KPiA+ICsgICMNCj4gPiArICBERUZJTkUgTkVUV09SS19U TFNfRU5BQkxFID0gVFJVRQ0KPiA+ICshZW5kaWYNCj4gPiArDQo+ID4gKyFpZm5kZWYgTkVUV09S S19IVFRQX0JPT1RfRU5BQkxFDQo+ID4gKyAgIw0KPiA+ICsgICMgVGhpcyBmbGFnIGlzIHRvIGVu YWJsZSBvciBkaXNhYmxlIEhUVFAoUykgYm9vdCBmZWF0dXJlLg0KPiA+ICsgICMNCj4gPiArICBE RUZJTkUgTkVUV09SS19IVFRQX0JPT1RfRU5BQkxFID0gVFJVRQ0KPiA+ICshZW5kaWYNCj4gPiAr DQo+ID4gKyFpZm5kZWYgTkVUV09SS19BTExPV19IVFRQX0NPTk5FQ1RJT05TDQo+ID4gKyAgIw0K PiA+ICsgICMgSW5kaWNhdGVzIHdoZXRoZXIgSFRUUCBjb25uZWN0aW9ucyAoaS5lLiwgdW5zZWN1 cmVkKSBhcmUgcGVybWl0dGVkIG9yIG5vdC4NCj4gPiArICAjDQo+ID4gKyAgIyBOb3RlOiBJZiBO RVRXT1JLX0FMTE9XX0hUVFBfQ09OTkVDVElPTlMgaXMgVFJVRSwgSFRUUCBjb25uZWN0aW9ucyBh cmUgYWxsb3dlZC4NCj4gPiArICAjICAgICAgIEJvdGggdGhlICJodHRwczovLyIgYW5kICJodHRw Oi8vIiBVUkkgc2NoZW1lcyBhcmUgcGVybWl0dGVkLiBPdGhlcndpc2UsIEhUVFANCj4gPiArICAj ICAgICAgIGNvbm5lY3Rpb25zIGFyZSBkZW5pZWQuIE9ubHkgdGhlICJodHRwczovLyIgVVJJIHNj aGVtZSBpcyBwZXJtaXR0ZWQuDQo+ID4gKyAgIw0KPiA+ICsgIERFRklORSBORVRXT1JLX0FMTE9X X0hUVFBfQ09OTkVDVElPTlMgPSBGQUxTRQ0KPiA+ICshZW5kaWYNCj4gPiArDQo+ID4gKyFpZm5k ZWYgTkVUV09SS19JU0NTSV9FTkFCTEUNCj4gPiArICAjDQo+ID4gKyAgIyBUaGlzIGZsYWcgaXMg dG8gZW5hYmxlIG9yIGRpc2FibGUgaVNDU0kgZmVhdHVyZS4NCj4gPiArICAjDQo+ID4gKyAgIyBO b3RlOiBUaGlzIGZlYXR1cmUgZGVwZW5kcyBvbiB0aGUgT3BlblNTTCBidWlsZGluZy4gVG8gZW5h YmxlIHRoaXMgZmVhdHVyZSwgcGxlYXNlDQo+ID4gKyAgIyAgICAgICBmb2xsb3cgdGhlIGluc3Ry dWN0aW9ucyBmb3VuZCBpbiB0aGUgZmlsZSAiT3BlblNTTC1IT1dUTy50eHQiIGxvY2F0ZWQgaW4N Cj4gPiArICAjICAgICAgIENyeXB0b1BrZ1xMaWJyYXJ5XE9wZW5zc2xMaWIgdG8gZW5hYmxlIHRo ZSBPcGVuU1NMIGJ1aWxkaW5nIGZpcnN0Lg0KPiA+ICsgICMgICAgICAgQm90aCBPcGVuc3NsTGli LmluZiBhbmQgT3BlbnNzbExpYkNyeXB0by5pbmYgbGlicmFyeSBpbnN0YW5jZSBjYW4gYmUgdXNl ZA0KPiA+ICsgICMgICAgICAgc2luY2UgbGlic3NsIGlzIG5vdCByZXF1aXJlZCBmb3IgaVNDU0ku DQo+ID4gKyAgIw0KPiA+ICsgIERFRklORSBORVRXT1JLX0lTQ1NJX0VOQUJMRSA9IFRSVUUNCj4g PiArIWVuZGlmDQo+ID4gKw0KPiA+ICshaWYgJChORVRXT1JLX0VOQUJMRSkgPT0gVFJVRQ0KPiA+ ICsgICMNCj4gPiArICAjIENoZWNrIHRoZSBmbGFncyB0byBzZWUgaWYgdGhlcmUgaXMgYW55IGNv bmZsaWN0Lg0KPiA+ICsgICMNCj4gPiArICAhaWYgKCQoTkVUV09SS19JUDRfRU5BQkxFKSA9PSBG QUxTRSkgQU5EICgkKE5FVFdPUktfSVA2X0VOQUJMRSkgPT0gRkFMU0UpDQo+ID4gKyAgICAhZXJy b3IgIk11c3QgZW5hYmxlIGF0IGxlYXN0IElQNCBvciBJUDYgc3RhY2sgaWYgTkVUV09SS19FTkFC TEUgaXMgc2V0IHRvIFRSVUUhIg0KPiA+ICsgICFlbmRpZg0KPiA+ICsNCj4gPiArICAhaWYgKCQo TkVUV09SS19IVFRQX0JPT1RfRU5BQkxFKSA9PSBUUlVFKSBBTkQgKCQoTkVUV09SS19UTFNfRU5B QkxFKSA9PSBGQUxTRSkgQU5EDQo+ICgkKE5FVFdPUktfQUxMT1dfSFRUUF9DT05ORUNUSU9OUykg PT0gRkFMU0UpDQo+ID4gKyAgICAhZXJyb3IgIk11c3QgZW5hYmxlIFRMUyB0byBzdXBwb3J0IEhU VFBTLCBvciBhbGxvdyB1bnNlY3VyZWQgSFRUUCBjb25uZWN0aW9uLCBpZiBORVRXT1JLX0hUVFBf Qk9PVF9FTkFCTEUgaXMgc2V0IHRvIFRSVUUhIg0KPiA+ICsgICFlbmRpZg0KPiANCj4gSW4gcHJh Y3RpY2UsIHRoaXMgaXMgZmluZSwgZnJvbSBhbiBPdm1mUGtnIGFuZCBBcm1WaXJ0UGtnIHBlcnNw ZWN0aXZlLA0KPiBzbyBJJ20gbm90IGFza2luZyBmb3IgdGhlIGNvZGUgdG8gYmUgY2hhbmdlZC4g QnV0LCBJIHRoaW5rIGl0J3Mgd29ydGgNCj4gcmFpc2luZyB0aGUgZm9sbG93aW5nIGF0IGxlYXN0 IGluIHRoZW9yeToNCj4gDQo+IEFib3ZlIEkgbWVudGlvbmVkIHRoYXQgcGxhdGZvcm1zIG1pZ2h0 IHdhbnQgdG8gc2V0ICJORVRXT1JLX1RMU19FTkFCTEUiDQo+IHRvIEZBTFNFLCBidXQgc3RpbGwg aW5jbHVkZSB0aGUgVExTIGRyaXZlcnMgd2l0aCB2YXJpb3VzIGxpYnJhcnkNCj4gaW5zdGFuY2Vz IGhvb2tlZCBpbnRvIHRoZW0uIEluIHRoYXQgY2FzZSwgdGhlIHNhbml0eSBjaGVjayBhYm92ZSB3 aWxsDQo+IGZvcmNlIHRoZW0sIHVuanVzdGlmaWVkbHksIHRvIHBlcm1pdCB1bnNlY3VyZWQgSFRU UCBjb25uZWN0aW9ucywgYmVjYXVzZQ0KPiBpdCB3aWxsIHRoaW5rIHRoYXQgVExTIGlzIGFic2Vu dC4NCj4gDQo+ICg4KSBUaGVyZWZvcmUsIHNob3VsZCB3ZSBpbnRyb2R1Y2UgYW4gIm92ZXJyaWRl IiBmbGFnIGZvciB0aGUgbGFzdA0KPiBzYW5pdHkgY2hlY2sgYWJvdmU/DQo+IA0KPiBBZ2Fpbiwg dGhpcyBpcyBub3QgYSBwcmFjdGljYWwgY29uY2VybiBmb3IgbWUgLS0gYm90aCBPdm1mUGtnIGFu ZA0KPiBBcm1WaXJ0UGtnIGVuYWJsZSB1bnNlY3VyZWQgSFRUUCBjb25uZWN0aW9ucyBhbHJlYWR5 LCBzbyB0aGUgYWJvdmUgY2hlY2sNCj4gd2lsbCBuZXZlciBmaXJlIGluIHRob3NlIHBsYXRmb3Jt cy4gSSdtIGZpbmUgaWYgd2UgZGVjaWRlIHRvIGFkZHJlc3MNCj4gdGhpcyAicHJvYmxlbSIgZmly c3Qgd2hlbiBhbiBhY3R1YWwgcGxhdGZvcm0gcnVucyBpbnRvIGl0Lg0KPiANCj4gPiArIWVuZGlm DQo+ID4gKw0KPiA+ICshaWZuZGVmIFBMQVRGT1JNWDY0X0VOQUJMRQ0KPiA+ICsgICMNCj4gPiAr ICAjIFBMQVRGT1JNWDY0X0VOQUJMRSBpcyBzZXQgdG8gVFJVRSB3aGVuIFBFSSBpcyBJQTMyIGFu ZCBEWEUgaXMgWDY0IHBsYXRmb3JtDQo+ID4gKyAgIw0KPiA+ICsgIERFRklORSBQTEFURk9STVg2 NF9FTkFCTEUgPSBGQUxTRQ0KPiA+ICshZW5kaWYNCj4gDQo+ICg5KSBJIGNvbW1lbnRlZCBvbiB0 aGlzIGZsYWcgdW5kZXIgKDIpIGFib3ZlIGFscmVhZHkuIEJ1dCwgbm93IHRoYXQgSSdtDQo+IHJl YWRpbmcgdGhlIGV4cGxhbmF0aW9uIHRvbywgYW5kIHJlLWNoZWNraW5nIHBhdGNoICJ2MyAzLzMi LCBJIHRoaW5rIHdlDQo+IHNob3VsZCBzaW1wbHkgKmVsaW1pbmF0ZSogdGhpcyBkZWZpbmUsIGFu ZCBpbiBwYXRjaCAzLCB3ZSBzaG91bGQgdXNlOg0KPiANCj4gICAhaWYgKCJYNjQiIGluICQoQVJD SCkpDQo+IA0KPiAgIFtDb21wb25lbnRzLlg2NF0NCj4gICAhaW5jbHVkZSBOZXR3b3JrUGtnL05l dHdvcmtDb21wb25lbnRzLmRzYy5pbmMNCj4gDQo+ICAgIWVsc2UNCj4gDQo+ICAgW0NvbXBvbmVu dHMuSUEzMiwgQ29tcG9uZW50cy5BUk0sIENvbXBvbmVudHMuQUFSQ0g2NF0NCj4gICAhaW5jbHVk ZSBOZXR3b3JrUGtnL05ldHdvcmtDb21wb25lbnRzLmRzYy5pbmMNCj4gDQo+ICAgIWVuZGlmDQo+ IA0KPiBCZWNhdXNlLCB0aGUgZmlyc3QgYnJhbmNoIHdpbGw6DQo+IA0KPiAtIGNvdmVyIElBMzIg UEVJICsgWDY0IERYRQ0KPiAgIChpbmNsdWRlIHRoZSBuZXR3b3JrIHN0YWNrIGluIERYRSBvbmx5 KQ0KPiANCj4gLSBjb3ZlciBYNjQgUEVJK0RYRQ0KPiAgIChhcyBpZiB3ZSBoYWQgd3JpdHRlbiBq dXN0IFtDb21wb25lbnRzXQ0KPiANCj4gYW5kIHRoZSBzZWNvbmQgYnJhbmNoIHdpbGw6DQo+IC0g Y292ZXIgSUEzMiBQRUkrRFhFDQo+IC0gY292ZXIgQVJNIFBFSStEWEUNCj4gLSBjb3ZlciBBQVJD SDY0IFBFSStEWEUNCj4gLSBleGNsdWRlIEVCQyBhbHRvZ2V0aGVyDQo+IA0KPiAoSW4gZmFjdCwg aWYgd2Ugd2VyZSB3aWxsaW5nIHRvIGlnbm9yZSBFQkMsIHRoZSBzZWNvbmQgYnJhbmNoIGNvdWxk DQo+IHNpbXBseSBzYXkgW0NvbXBvbmVudHNdLikNCj4gDQo+ID4gZGlmZiAtLWdpdCBhL05ldHdv cmtQa2cvTmV0d29ya0xpYnMuZHNjLmluYyBiL05ldHdvcmtQa2cvTmV0d29ya0xpYnMuZHNjLmlu Yw0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMDAwMC4uZGFjNmIz N2M2YQ0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9OZXR3b3JrUGtnL05ldHdvcmtMaWJz LmRzYy5pbmMNCj4gPiBAQCAtMCwwICsxLDE5IEBADQo+ID4gKyMjIEBmaWxlDQo+ID4gKyMgTmV0 d29yayBEU0MgaW5jbHVkZSBmaWxlIGZvciBbTGlicmFyeUNsYXNzZXMqXSBzZWN0aW9uIG9mIGFs bCBBcmNoaXRlY3R1cmVzLg0KPiA+ICsjDQo+ID4gKyMgVGhpcyBmaWxlIGNhbiBiZSBpbmNsdWRl ZCB0byB0aGUgW0xpYnJhcnlDbGFzc2VzKl0gc2VjdGlvbihzKSBvZiBhIHBsYXRmb3JtIERTQyBm aWxlDQo+ID4gKyMgYnkgdXNpbmcgIiFpbmNsdWRlIE5ldHdvcmtQa2cvTmV0d29ya0xpYnMuZHNj LmluYyIgdG8gc3BlY2lmeSB0aGUgbGlicmFyeSBpbnN0YW5jZXMNCj4gPiArIyBvZiBFREtJSSBu ZXR3b3JrIGxpYnJhcnkgY2xhc3Nlcy4NCj4gPiArIw0KPiA+ICsjIENvcHlyaWdodCAoYykgMjAx OSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ICsjDQo+ ID4gKyMgICAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4g PiArIw0KPiA+ICsjIw0KPiA+ICsNCj4gPiArICBEcGNMaWJ8TWRlTW9kdWxlUGtnL0xpYnJhcnkv RHhlRHBjTGliL0R4ZURwY0xpYi5pbmYNCj4gPiArICBOZXRMaWJ8TWRlTW9kdWxlUGtnL0xpYnJh cnkvRHhlTmV0TGliL0R4ZU5ldExpYi5pbmYNCj4gPiArICBJcElvTGlifE1kZU1vZHVsZVBrZy9M aWJyYXJ5L0R4ZUlwSW9MaWIvRHhlSXBJb0xpYi5pbmYNCj4gPiArICBVZHBJb0xpYnxNZGVNb2R1 bGVQa2cvTGlicmFyeS9EeGVVZHBJb0xpYi9EeGVVZHBJb0xpYi5pbmYNCj4gPiArICBUY3BJb0xp YnxNZGVNb2R1bGVQa2cvTGlicmFyeS9EeGVUY3BJb0xpYi9EeGVUY3BJb0xpYi5pbmYNCj4gPiAr ICBIdHRwTGlifE1kZU1vZHVsZVBrZy9MaWJyYXJ5L0R4ZUh0dHBMaWIvRHhlSHR0cExpYi5pbmYN Cj4gDQo+ICgxMCkgSWYgd2UgZGVjaWRlIHRvIHByb3ZpZGUgYWxsIHRoZXNlIGxpYiBjbGFzcyBy ZXNvbHV0aW9ucyB3aXRob3V0DQo+IGNoZWNraW5nIHRoZSBERUZJTkVzIC0tIGUuZy4sIHdlIGRl Y2lkZSB0byByZXNvbHZlIEh0dHBMaWIgd2l0aG91dA0KPiBjaGVja2luZyBIVFRQX0JPT1RfRU5B QkxFIC0tLCB0aGVuIHRoYXQncyBmaW5lLCBidXQgSU1PIHdlIHNob3VsZCBhZGQgYQ0KPiBzaW1w bGUgY29tbWVudCBhYm91dCBpdC4NCj4gDQo+ICgxMSkgSSB0aGluayB0aGUgZm9sbG93aW5nIGxp YiBjbGFzcyByZXNvbHV0aW9uIGlzIG1pc3Npbmc6DQo+IA0KPiAgIFRsc0xpYnxDcnlwdG9Qa2cv TGlicmFyeS9UbHNMaWIvVGxzTGliLmluZg0KPiANCj4gDQo+IE90aGVyIHRoYW4gdGhhdCwgSSBh Z3JlZSB0aGlzIGluY2x1ZGUgZmlsZSBpcyBnb29kLiBUaGUgT3BlblNTTCBsaWINCj4gY2xhc3Mg cmVzb2x1dGlvbiBjYW4gZGVwZW5kIG9uIG1hbnkgZmFjdG9ycywgYW5kIHRoZSBOZXR3b3JrUGtn IGFzcGVjdHMNCj4gYXJlIGFscmVhZHkgd2VsbCBleHBsYWluZWQgaW4gdGhlIERTQyBpbmNsdWRl IGZpbGUsIG5lYXIgdGhlDQo+IE5FVFdPUktfVExTX0VOQUJMRSBhbmQgTkVUV09SS19JU0NTSV9F TkFCTEUgZmxhZ3MuDQo+IA0KPiANCj4gDQo+ID4gZGlmZiAtLWdpdCBhL05ldHdvcmtQa2cvTmV0 d29ya1BjZHMuZHNjLmluYyBiL05ldHdvcmtQa2cvTmV0d29ya1BjZHMuZHNjLmluYw0KPiA+IG5l dyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMDAwMC4uZjg3NGIzODJlZg0KPiA+ IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9OZXR3b3JrUGtnL05ldHdvcmtQY2RzLmRzYy5pbmMN Cj4gPiBAQCAtMCwwICsxLDE2IEBADQo+ID4gKyMjIEBmaWxlDQo+ID4gKyMgTmV0d29yayBEU0Mg aW5jbHVkZSBmaWxlIGZvciBbUGNkcypdIHNlY3Rpb24gb2YgYWxsIEFyY2hpdGVjdHVyZXMuDQo+ ID4gKyMNCj4gPiArIyBUaGlzIGZpbGUgY2FuIGJlIGluY2x1ZGVkIHRvIHRoZSBbUGNkcypdIHNl Y3Rpb24ocykgb2YgYSBwbGF0Zm9ybSBEU0MgZmlsZQ0KPiA+ICsjIGJ5IHVzaW5nICIhaW5jbHVk ZSBOZXR3b3JrUGtnL05ldHdvcmtQY2RzLmRzYy5pbmMiIHRvIHNwZWNpZnkgUENEIHNldHRpbmdz DQo+ID4gKyMgYWNjb3JkaW5nIHRvIHRoZSB2YWx1ZSBvZiBmbGFncyBkZXNjcmliZWQgaW4gIk5l dHdvcmtEZWZpbmVzLmRzYy5pbmMiLg0KPiA+ICsjDQo+ID4gKyMgQ29weXJpZ2h0IChjKSAyMDE5 LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4gKyMNCj4g PiArIyAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ ICsjDQo+ID4gKyMjDQo+ID4gKw0KPiA+ICshaWYgJChORVRXT1JLX0FMTE9XX0hUVFBfQ09OTkVD VElPTlMpID09IFRSVUUNCj4gPiArICBnRWZpTmV0d29ya1BrZ1Rva2VuU3BhY2VHdWlkLlBjZEFs bG93SHR0cENvbm5lY3Rpb25zfFRSVUUNCj4gPiArIWVuZGlmDQo+ID4NCj4gDQo+IFRoaXMgZmls ZSBsb29rcyBnb29kLg0KPiANCj4gDQo+IFRoZSAidjMgMi8zIiBwYXRjaCBtYWtlcyBtZSBoYXBw eSAtLSB0aGFuayB5b3UgZm9yIHByb3ZpZGluZyB0aGUgaW5jbHVkZQ0KPiBzbmlwcGV0cyB3aXRo b3V0IHNlY3Rpb24gaGVhZGVycywgbGV0dGluZyB0aGUgcGxhdGZvcm0gcHJvdmlkZSBpdHMgb3du DQo+IHNlY3Rpb24gaGVhZGVycyENCj4gDQo+IExhc3psbw0K