From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.65; helo=mga03.intel.com; envelope-from=benjamin.you@intel.com; receiver=edk2-devel@lists.01.org Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 0CC4F20D7B26C for ; Thu, 31 May 2018 17:44:16 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 31 May 2018 17:44:16 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.49,464,1520924400"; d="scan'208";a="60815698" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by orsmga001.jf.intel.com with ESMTP; 31 May 2018 17:44:16 -0700 Received: from fmsmsx102.amr.corp.intel.com (10.18.124.200) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 31 May 2018 17:44:16 -0700 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by FMSMSX102.amr.corp.intel.com (10.18.124.200) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 31 May 2018 17:44:15 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.51]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.70]) with mapi id 14.03.0319.002; Fri, 1 Jun 2018 08:44:13 +0800 From: "You, Benjamin" To: Matt Delco CC: "edk2-devel@lists.01.org" , "Ma, Maurice" , "Agyeman, Prince" Thread-Topic: [PATCH] CorebootModulePkg/CbSupportDxe: Enable ACPI via cmd register Thread-Index: AQHT9gWwEf0JCLzh8EuUjXnZV8NjR6RH8s0A//9+rACAAbLGMIAAvaQAgAC0JUA= Date: Fri, 1 Jun 2018 00:44:14 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNjJmNTljYmMtYzcwZi00NDM2LWE0YmItNWNjNjE3NDJlNzIyIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiZ0k2blJ5R3pHa25RdlY3eW82eHpGcG54NCtLbGtZZDhlNHAxajNYU3daSTZCbTArXC9mNnVLNkk5YnFxTFpnSFUifQ== dlp-product: dlpe-windows dlp-version: 11.0.200.100 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH] CorebootModulePkg/CbSupportDxe: Enable ACPI via cmd register X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Jun 2018 00:44:17 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGksIE1hdHQsDQoNClRoYW5rcy4gV291bGQgeW91IGxpa2UgdG8gcHJvdmlkZSBhbiB1cGRhdGVk IHBhdGNoPw0KDQpUaGFua3MsDQoNCi0gYmVuDQoNCj4gRnJvbTogTWF0dCBEZWxjbyBbbWFpbHRv OmRlbGNvQGdvb2dsZS5jb21dIA0KPiBTZW50OiBGcmlkYXksIEp1bmUgMSwgMjAxOCA1OjU1IEFN DQo+IFRvOiBZb3UsIEJlbmphbWluIDxiZW5qYW1pbi55b3VAaW50ZWwuY29tPg0KPiBDYzogZWRr Mi1kZXZlbEBsaXN0cy4wMS5vcmc7IE1hLCBNYXVyaWNlIDxtYXVyaWNlLm1hQGludGVsLmNvbT47 IEFneWVtYW4sIFByaW5jZSA8cHJpbmNlLmFneWVtYW5AaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBS ZTogW1BBVENIXSBDb3JlYm9vdE1vZHVsZVBrZy9DYlN1cHBvcnREeGU6IEVuYWJsZSBBQ1BJIHZp YSBjbWQgcmVnaXN0ZXINCj4gDQo+IEhpLA0KPiANCj4gSSBjb21tZW50ZWQgb3V0IHRoZSBib2R5 IG9mIE9uUmVhZHlUb0Jvb3QoKSBhbmQgdGhlIHJlc3VsdCBpcyBhcyBleHBlY3RlZCAoaS5lLiwg QUNQSSBldmVudHMgYXJlIHN0aWxsIHJlY2VpdmVkLCBwcmVzdW1hYmx5IGJlY2F1c2UgdGhlIE9T IGVuYWJsZWQgQUNQSSBmb3IgaXRzZWxmKS4NCj4gDQo+ID4gT24gV2VkLCBNYXkgMzAsIDIwMTgg YXQgNzo1MiBQTSwgWW91LCBCZW5qYW1pbiA8YmVuamFtaW4ueW91QGludGVsLmNvbT4gd3JvdGU6 DQo+ID4gSGksIE1hdHQsDQo+ID4gDQo+ID4gVGhlIG9yaWdpbmFsIFNDSV9FTiBzZXR0aW5nIGNv ZGUgd2FzIGFkZGVkIHRvIGNvdmVyIHNvbWUgZWFybHkgYnVnZ3kgDQo+ID4gZmlybXdhcmUgaW1w bGVtZW50YXRpb24gdGhhdCBmYWlscyB0byBlbmFibGUgU01NLCBhbmQvb3IgZmFpbHMgdG8gZmls bCBGQURUIA0KPiA+IHByb3Blcmx5LCBhbmQgc3RpbGwgbmVlZHMgYW4gU0NJX0VOIHRvIHRyYW5z aXRpb24gdG8gQUNQSSBtb2RlLg0KPiA+IA0KPiA+IEhvd2V2ZXIsIGFzIHlvdSBwb2ludGVkIG91 dCwgc2V0dGluZyBpdCBpbiBQYXlsb2FkIGlzIG5vdCB0aGUgY29ycmVjdCB3YXkNCj4gPiAgdG8g YWRkcmVzcyB0aGUgaXNzdWUsIHdoaWNoIGFsc28gaGFzIHNvbWUgc2lkZSBlZmZlY3RzIGFzIGlu IHlvdXIgY2FzZS4gDQo+ID4gSW5zdGVhZCwgUGF5bG9hZCBzaG91bGQgb3V0cHV0IHNvbWUgcmVt aW5kaW5nIG1lc3NhZ2UgdG8gZGV2ZWxvcGVyIHRvIGZpeCANCj4gPiB0aGUgZmlybXdhcmUgdGhh dCBydW5zIGJlZm9yZSBQYXlsb2FkLg0KPiA+IA0KPiA+IFRoYW5rcywNCj4gPiANCj4gPiAtIGJl bg0KPiA+IA0KPiA+ID4gRnJvbTogTWF0dCBEZWxjbyBbbWFpbHRvOmRlbGNvQGdvb2dsZS5jb21d IA0KPiA+ID4gU2VudDogV2VkbmVzZGF5LCBNYXkgMzAsIDIwMTggNDo0MCBQTQ0KPiA+ID4gVG86 IFlvdSwgQmVuamFtaW4gPGJlbmphbWluLnlvdUBpbnRlbC5jb20+DQo+ID4gPiBDYzogZWRrMi1k ZXZlbEBsaXN0cy4wMS5vcmc7IE1hLCBNYXVyaWNlIDxtYXVyaWNlLm1hQGludGVsLmNvbT47IEFn eWVtYW4sIFByaW5jZSA8cHJpbmNlLmFneWVtYW5AaW50ZWwuY29tPg0KPiA+ID4gU3ViamVjdDog UmU6IFtQQVRDSF0gQ29yZWJvb3RNb2R1bGVQa2cvQ2JTdXBwb3J0RHhlOiBFbmFibGUgQUNQSSB2 aWEgY21kIHJlZ2lzdGVyDQo+ID4gPiANCj4gPiA+IEhpLCB0aGFua3MgZm9yIHRha2luZyBhIGxv b2suICBJIGFncmVlIHRoYXQgdGhpcyBzZWVtcyBsaWtlIHRoZSBPUydzIHJlc3BvbnNpYmlsaXR5 IHRvIGVuYWJsZSBBQ1BJIGFuZCBJIHdhcyB0ZW1wdGVkIHRvIGp1c3QgcmVtb3ZlIHRoZSBzZXR0 aW5nIG9mIFNDSV9FTi4gIEhvd2V2ZXIsIEkgZmlndXJlZCB0aGF0IHRoZXJlIHdhcyBsaWtlbHkg YSByZWFzb24gdGhhdCBzb21lb25lIGJvdGhlcmVkIHRvIGFkZCB0aGUgZnVuY3Rpb24gaW4gdGhl IGZpcnN0IHBsYWNlIHNvIEkgd2VudCB3aXRoIHdoYXQgc2VlbWVkIGxpa2UgdGhlIG1vcmUgY29u c2VydmF0aXZlIGZpeC4gIEkgY2FuIHRyeSB0ZXN0aW5nIHRoZSByZW1vdmFsIG9mIFNDSV9FTiB0 aG91Z2ggSSdsbCBsaWtlbHkgYmUgYXQgYSByZW1vdGUgb2ZmaWNlIGZvciB0aGUgbmV4dCAyIGRh eXMgc28gaXQgbWF5IGJlIDMgb3IgbW9yZSBkYXlzIGJlZm9yZSBJIGNhbiB1cGRhdGUgdGhlIGZs YXNoIG9uIHRoZSBwbGF0Zm9ybSB0byBwZXJmb3JtIHRoZSBleHBlcmltZW50Lg0KPiA+ID4gDQo+ ID4gPiBPbiBXZWQsIE1heSAzMCwgMjAxOCBhdCAxOjI3IEFNLCBZb3UsIEJlbmphbWluIDxiZW5q YW1pbi55b3VAaW50ZWwuY29tPiB3cm90ZToNCj4gPiA+IEhpIE1hdHQsDQo+ID4gPiANCj4gPiA+ IFRoaXMgaXMgaW5kZWVkIGEgYnVnLiBUaGUgUGF5bG9hZCBzaG91bGQgbm90IHNldCB0aGUgU0NJ X0VOIGJpdC4gDQo+ID4gPiANCj4gPiA+IEhvd2V2ZXIsIHRoZSBQYXlsb2FkIHNob3VsZCBub3Qg dHJpZ2dlciBhbiBTTUkgZWl0aGVyLiBJdCBpcyBPUydzIA0KPiA+ID4gcmVzcG9uc2liaWxpdHkg dG8gZW5hYmxlIEFDUEkgYnkgZm9sbG93aW5nIEZBRFQncyBpbnN0cnVjdGlvbiB0byB3cml0ZSAN Cj4gPiA+IHNvbWUgdmFsdWUgdG8gc29tZSBwb3J0Lg0KPiA+ID4gDQo+ID4gPiBXZSB0aGluayBh IGJldHRlciBmaXggbWlnaHQgYmU6DQo+ID4gPiAxKSBSZW1vdmUgdGhlIFNDSV9FTiBzZXR0aW5n IGNvZGUgaW4gUmVhZHlUb0Jvb3QgZXZlbnQgaGFuZGxlciwNCj4gPiA+IDIpIEFkZCBzb21lIGNo ZWNraW5nIGluIENiUGFyc2VGYWR0SW5mbygpIGluIENiUGFyc2VMaWIuYyB0byBvdXRwdXQgc29t ZSANCj4gPiA+ICAgIHdhcm5pbmcgbWVzc2FnZSBhbmQgQVNTRVJUIChGQUxTRSkgaWYgQUxMIG9m IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyANCj4gPiA+ICAgIGFyZSBtZXQ6DQo+ID4gPiAgICAt IEhBUkRXQVJFX1JFRFVDRURfQUNQSSBpcyBub3Qgc2V0DQo+ID4gPiAgICAtIFNNSV9DTUQgZmll bGQgaXMgemVybyAoaW5kaWNhdGluZyBubyBuZWVkIHRvIHN3aXRjaCBtb2RlLCBoZW5jZSANCj4g PiA+ICAgICAgdGhlIHBsYXRmb3JtIGJlaW5nIGluIEFDUEkgbW9kZSkNCj4gPiA+ICAgIC0gU0NJ X0VOIGJpdCBpcyB6ZXJvIChpbmRpY2F0aW5nIG5vdCBpbiBBQ1BJIG1vZGUpDQo+ID4gPiANCj4g PiA+IEl0ZW0gMikgYWJvdmUgaXMgdG8gcmVtaW5kIHRoZSBkZXZlbG9wZXIgdGhhdCBpbiB0aGlz IGNhc2UsIHRoZXJlIG1heSBiZSBhIA0KPiA+ID4gYnVnIGluIHRoZSBmaXJtd2FyZSB0aGF0IHJ1 bnMgYmVmb3JlIHRoZSBQYXlsb2FkLg0KPiA+ID4gDQo+ID4gPiBDb3VsZCB5b3UgcGxlYXNlIHRy eSBvbiB5b3VyIHBsYXRmb3JtIHRvIGNvbXBsZXRlbHkgcmVtb3ZlIHRoZSBTQ0lfRU4gDQo+ID4g PiBzZXR0aW5nIGNvZGUgaW4gUmVhZFRvQm9vdCBldmVudCBoYW5kbGVyLCBhbmQgc2VlIGlmIGl0 IHdvcmtzIHByb3Blcmx5IA0KPiA+ID4gKGUuZy4sIEFDUEkgZXZlbnRzIGRlbGl2ZXJlZCBjb3Jy ZWN0bHkpPw0KPiA+ID4gDQo+ID4gPiBUaGFua3MsDQo+ID4gPiANCj4gPiA+IC0gYmVuDQo+ID4g PiANCj4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gRnJvbTogTWF0 dCBEZWxjbyBbbWFpbHRvOmRlbGNvQGdvb2dsZS5jb21dIA0KPiA+ID4gPiBTZW50OiBNb25kYXks IE1heSAyOCwgMjAxOCA1OjU3IEFNDQo+ID4gPiA+IFRvOiBlZGsyLWRldmVsQGxpc3RzLjAxLm9y Zw0KPiA+ID4gPiBDYzogTWEsIE1hdXJpY2UgPG1hdXJpY2UubWFAaW50ZWwuY29tPjsgQWd5ZW1h biwgUHJpbmNlIDxwcmluY2UuYWd5ZW1hbkBpbnRlbC5jb20+OyBZb3UsIEJlbmphbWluIDxiZW5q YW1pbi55b3VAaW50ZWwuY29tPg0KPiA+ID4gPiBTdWJqZWN0OiBbUEFUQ0hdIENvcmVib290TW9k dWxlUGtnL0NiU3VwcG9ydER4ZTogRW5hYmxlIEFDUEkgdmlhIGNtZCByZWdpc3Rlcg0KPiA+ID4g PiANCj4gPiA+ID4gVGhlIGV4aXN0aW5nIGNvZGUgc2V0cyB0aGUgU0NJX0VOIGJpdCBkaXJlY3Rs eSwgd2hpY2ggaXMgYSB2aW9sYXRpb24NCj4gPiA+ID4gb2YgdGhlIEFDUEkgc3BlYyAoIkl0IGlz IHRoZSByZXNwb25zaWJpbGl0eSBvZiB0aGUgaGFyZHdhcmUgdG8gc2V0IG9yDQo+ID4gPiA+IHJl c2V0IHRoaXMgYml0LiBPU1BNIGFsd2F5cyBwcmVzZXJ2ZXMgdGhpcyBiaXQgcG9zaXRpb24iKS4g VGhlIHByb3Blcg0KPiA+ID4gPiB3YXkgdG8gY2F1c2UgdGhpcyBiaXQgdG8gYml0IHNldCBpcyB0 byByZWZlcmVuY2UgdGhlIEZBRFQgdGFibGUgYW5kDQo+ID4gPiA+IHdyaXRlIHRoZSB2YWx1ZSBv ZiBBQ1BJX0VOQUJMRSB0byBTTUlfQ01ELiAgVGhlIFNNSSB3aWxsIGluIHR1cm4gc2V0DQo+ID4g PiA+IHRoZSBTQ0lfRU4gYml0Lg0KPiA+ID4gPiANCj4gPiA+ID4gUHJpb3IgdG8gdGhpcyBjaGFu Z2UgQUNQSSBldmVudHMgd2VyZSBub3QgYmVpbmcgZGVsaXZlcmVkIGJlY2F1c2UNCj4gPiA+ID4g QUNQSSB3YXMgbm90IHByb3Blcmx5IGVuYWJsZWQgYW5kIHRoZSBPUyBhbHNvIGRpZCBub3QgYXR0 ZW1wdA0KPiA+ID4gPiB0byBlbmFibGUgQUNQSSBzaW5jZSBpdCBzZWVzIHRoYXQgU0NJX0VOIGlz IGFscmVhZHkgc2V0LiAgQWZ0ZXIgdGhpcw0KPiA+ID4gPiBjaGFuZ2UgSSBvYnNlcnZlZCB0aGF0 IEFDUEkgZXZlbnRzIHdlcmUgbm93IGJlaW5nIGRlbGl2ZXJlZCBwcm9wZXJseS4NCj4gPiA+ID4g DQo+ID4gPiA+IENjOiBNYXVyaWNlIE1hIDxtYXVyaWNlLm1hQGludGVsLmNvbT4NCj4gPiA+ID4g Q2M6IFByaW5jZSBBZ3llbWFuIDxwcmluY2UuYWd5ZW1hbkBpbnRlbC5jb20+DQo+ID4gPiA+IENj OiBCZW5qYW1pbiBZb3UgPGJlbmphbWluLnlvdUBpbnRlbC5jb20+DQo+ID4gPiA+IA0KPiA+ID4g PiBDb250cmlidXRlZC11bmRlcjogVGlhbm9Db3JlIENvbnRyaWJ1dGlvbiBBZ3JlZW1lbnQgMS4w DQo+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IE1hdHQgRGVsY28gPGRlbGNvQGdvb2dsZS5jb20+DQo+ ID4gPiA+IC0tLQ0KPiA+ID4gPiAgQ29yZWJvb3RNb2R1bGVQa2cvQ2JTdXBwb3J0RHhlL0NiU3Vw cG9ydER4ZS5jIHwgNzkgKysrKysrKysrKysrKysrKy0tLQ0KPiA+ID4gPiAgLi4uL0NiU3VwcG9y dER4ZS9DYlN1cHBvcnREeGUuaW5mICAgICAgICAgICAgIHwgIDEgKw0KPiA+ID4gPiAgMiBmaWxl cyBjaGFuZ2VkLCA2OCBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkNCj4gPiA+ID4gDQo+ ID4gPiA+IGRpZmYgLS1naXQgYS9Db3JlYm9vdE1vZHVsZVBrZy9DYlN1cHBvcnREeGUvQ2JTdXBw b3J0RHhlLmMgYi9Db3JlYm9vdE1vZHVsZVBrZy9DYlN1cHBvcnREeGUvQ2JTdXBwb3J0RHhlLmMN Cj4gPiA+ID4gaW5kZXggYzUyNmM5ZTg3MS4uNGM3OTE3ZmYyYSAxMDA3NTUNCj4gPiA+ID4gLS0t IGEvQ29yZWJvb3RNb2R1bGVQa2cvQ2JTdXBwb3J0RHhlL0NiU3VwcG9ydER4ZS5jDQo+ID4gPiA+ ICsrKyBiL0NvcmVib290TW9kdWxlUGtnL0NiU3VwcG9ydER4ZS9DYlN1cHBvcnREeGUuYw0KPiA+ ID4gPiBAQCAtMTQsNyArMTQsMTAgQEANCj4gPiA+ID4gICoqLw0KPiA+ID4gPiAgI2luY2x1ZGUg IkNiU3VwcG9ydER4ZS5oIg0KPiA+ID4gPiAgDQo+ID4gPiA+IC1VSU5UTiBtUG1DdHJsUmVnID0g MDsNCj4gPiA+ID4gK0JPT0xFQU4gbVNtaVBvcnRGb3VuZCA9IEZBTFNFOw0KPiA+ID4gPiArVUlO VE4gbVNtaUNvbW1hbmRQb3J0ID0gMDsNCj4gPiA+ID4gK1VJTlQ4IG1BY3BpRW5hYmxlID0gMDsN Cj4gPiA+ID4gKw0KPiA+ID4gPiAgLyoqDQo+ID4gPiA+ICAgIFJlc2VydmUgTU1JTy9JTyByZXNv dXJjZSBpbiBHQ0QNCj4gPiA+ID4gIA0KPiA+ID4gPiBAQCAtMTA3LDkgKzExMCw2MyBAQCBPblJl YWR5VG9Cb290ICgNCj4gPiA+ID4gICAgLy8NCj4gPiA+ID4gICAgLy8gRW5hYmxlIFNDSQ0KPiA+ ID4gPiAgICAvLw0KPiA+ID4gPiAtICBJb09yMTYgKG1QbUN0cmxSZWcsIEJJVDApOw0KPiA+ID4g PiArICBpZiAoIW1TbWlQb3J0Rm91bmQpIHsNCj4gPiA+ID4gKyAgICBERUJVRyAoKERFQlVHX0VS Uk9SLCAiU01JIHBvcnQgbm90IGtub3duIHNvIGNhbiBub3QgZW5hYmxlIFNDSVxuIikpOw0KPiA+ ID4gPiArICB9IGVsc2Ugew0KPiA+ID4gPiArICAgIElvV3JpdGU4IChtU21pQ29tbWFuZFBvcnQs IG1BY3BpRW5hYmxlKTsNCj4gPiA+ID4gKyAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiRW5hYmxl IEFDUEkgYXQgMHglbHggd2l0aCAweCV4IGJlZm9yZSBib290XG4iLCAoVUlOVDY0KW1TbWlDb21t YW5kUG9ydCwgKFVJTlQzMiltQWNwaUVuYWJsZSkpOw0KPiA+ID4gPiArICB9DQo+ID4gPiA+ICt9 DQo+ID4gPiA+ICsNCj4gPiA+ID4gKy8qKg0KPiA+ID4gPiArICBMb29rdXAgcG9ydCBhbmQgdmFs dWUgZm9yIGVuYWJsaW5nIEFDUEkNCj4gPiA+ID4gKw0KPiA+ID4gPiArICBAcGFyYW1baW5dIFN5 c3RlbVRhYmxlICAgIEEgcG9pbnRlciB0byB0aGUgRUZJIFN5c3RlbSBUYWJsZS4NCj4gPiA+ID4g IA0KPiA+ID4gPiAtICBERUJVRyAoKEVGSV9EX0VSUk9SLCAiRW5hYmxlIFNDSSBiaXQgYXQgMHgl bHggYmVmb3JlIGJvb3RcbiIsIChVSU5UNjQpbVBtQ3RybFJlZykpOw0KPiA+ID4gPiArKiovDQo+ ID4gPiA+ICtWT0lEDQo+ID4gPiA+ICtGaW5kQWNwaUZhZHRUYWJsZUluZm8gKA0KPiA+ID4gPiAr ICBJTiBFRklfU1lTVEVNX1RBQkxFICAgKlN5c3RlbVRhYmxlDQo+ID4gPiA+ICsgICkNCj4gPiA+ ID4gK3sNCj4gPiA+ID4gKyAgRUZJX0FDUElfMl8wX1JPT1RfU1lTVEVNX0RFU0NSSVBUSU9OX1BP SU5URVIgICpSc2RwOw0KPiA+ID4gPiArICBFRklfQUNQSV9ERVNDUklQVElPTl9IRUFERVIgICAg ICAgICAgICAgICAgICAgKlJzZHQ7DQo+ID4gPiA+ICsgIEVGSV9BQ1BJXzJfMF9GSVhFRF9BQ1BJ X0RFU0NSSVBUSU9OX1RBQkxFICAgICAqRmFkdDsNCj4gPiA+ID4gKyAgVUlOVE4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4Ow0KPiA+ID4gPiArICBSc2RwICA9 IE5VTEw7DQo+ID4gPiA+ICsgIFJzZHQgID0gTlVMTDsNCj4gPiA+ID4gKyAgRmFkdCAgPSBOVUxM Ow0KPiA+ID4gPiArDQo+ID4gPiA+ICsgIGZvciAoSW5kZXggPSAwOyBJbmRleCA8IFN5c3RlbVRh YmxlLT5OdW1iZXJPZlRhYmxlRW50cmllczsgSW5kZXgrKykgew0KPiA+ID4gPiArICAgIGlmIChD b21wYXJlR3VpZCAoJihTeXN0ZW1UYWJsZS0+Q29uZmlndXJhdGlvblRhYmxlW0luZGV4XS5WZW5k b3JHdWlkKSwgJmdFZmlBY3BpMjBUYWJsZUd1aWQpKSB7DQo+ID4gPiA+ICsgICAgICBSc2RwID0g U3lzdGVtVGFibGUtPkNvbmZpZ3VyYXRpb25UYWJsZVtJbmRleF0uVmVuZG9yVGFibGU7DQo+ID4g PiA+ICsgICAgICBicmVhazsNCj4gPiA+ID4gKyAgICB9DQo+ID4gPiA+ICsgIH0NCj4gPiA+ID4g KyAgaWYgKFJzZHAgPT0gTlVMTCkgew0KPiA+ID4gPiArICAgIHJldHVybjsNCj4gPiA+ID4gKyAg fQ0KPiA+ID4gPiArDQo+ID4gPiA+ICsgIFJzZHQgPSAoRUZJX0FDUElfREVTQ1JJUFRJT05fSEVB REVSICopKFVJTlROKSBSc2RwLT5Sc2R0QWRkcmVzczsNCj4gPiA+ID4gKyAgaWYgKFJzZHQgPT0g TlVMTCB8fCBSc2R0LT5TaWduYXR1cmUgIT0gRUZJX0FDUElfMl8wX1JPT1RfU1lTVEVNX0RFU0NS SVBUSU9OX1RBQkxFX1NJR05BVFVSRSkgew0KPiA+ID4gPiArICAgIHJldHVybjsNCj4gPiA+ID4g KyAgfQ0KPiA+ID4gPiArICBmb3IgKEluZGV4ID0gc2l6ZW9mIChFRklfQUNQSV9ERVNDUklQVElP Tl9IRUFERVIpOyBJbmRleCA8IFJzZHQtPkxlbmd0aDsgSW5kZXggPSBJbmRleCArIHNpemVvZiAo VUlOVDMyKSkgew0KPiA+ID4gPiArICAgIFVJTlQzMiBEYXRhMzIgID0gKihVSU5UMzIgKikgKChV SU5UOCAqKSBSc2R0ICsgSW5kZXgpOw0KPiA+ID4gPiArICAgIEZhZHQgICAgPSAoRUZJX0FDUElf Ml8wX0ZJWEVEX0FDUElfREVTQ1JJUFRJT05fVEFCTEUgKikgKFVJTlQzMiAqKSAoVUlOVE4pIERh dGEzMjsNCj4gPiA+ID4gKyAgICBpZiAoRmFkdC0+SGVhZGVyLlNpZ25hdHVyZSA9PSBFRklfQUNQ SV8yXzBfRklYRURfQUNQSV9ERVNDUklQVElPTl9UQUJMRV9TSUdOQVRVUkUpIHsNCj4gPiA+ID4g KyAgICAgIGJyZWFrOw0KPiA+ID4gPiArICAgIH0NCj4gPiA+ID4gKyAgfQ0KPiA+ID4gPiArDQo+ ID4gPiA+ICsgIGlmIChGYWR0ID09IE5VTEwgfHwgRmFkdC0+SGVhZGVyLlNpZ25hdHVyZSAhPSBF RklfQUNQSV8yXzBfRklYRURfQUNQSV9ERVNDUklQVElPTl9UQUJMRV9TSUdOQVRVUkUpIHsNCj4g PiA+ID4gKyAgICByZXR1cm47DQo+ID4gPiA+ICsgIH0NCj4gPiA+ID4gKw0KPiA+ID4gPiArICBt U21pUG9ydEZvdW5kID0gVFJVRTsNCj4gPiA+ID4gKyAgbVNtaUNvbW1hbmRQb3J0ID0gRmFkdC0+ U21pQ21kOw0KPiA+ID4gPiArICBtQWNwaUVuYWJsZSA9IEZhZHQtPkFjcGlFbmFibGU7DQo+ID4g PiA+ICsgIHJldHVybjsNCj4gPiA+ID4gIH0NCj4gPiA+ID4gIA0KPiA+ID4gPiAgLyoqDQo+ID4g PiA+IEBAIC0xMzMsNyArMTkwLDYgQEAgQ2JEeGVFbnRyeVBvaW50ICgNCj4gPiA+ID4gICAgRUZJ X0VWRU5UICBSZWFkeVRvQm9vdEV2ZW50Ow0KPiA+ID4gPiAgICBFRklfSE9CX0dVSURfVFlQRSAg Kkd1aWRIb2I7DQo+ID4gPiA+ICAgIFNZU1RFTV9UQUJMRV9JTkZPICAqcFN5c3RlbVRhYmxlSW5m bzsNCj4gPiA+ID4gLSAgQUNQSV9CT0FSRF9JTkZPICAgICpwQWNwaUJvYXJkSW5mbzsNCj4gPiA+ ID4gICAgRlJBTUVfQlVGRkVSX0lORk8gICpGYkluZm87DQo+ID4gPiA+ICANCj4gPiA+ID4gICAg U3RhdHVzID0gRUZJX1NVQ0NFU1M7DQo+ID4gPiA+IEBAIC0xNzIsMTQgKzIyOCwxNCBAQCBDYkR4 ZUVudHJ5UG9pbnQgKA0KPiA+ID4gPiAgICB9DQo+ID4gPiA+ICANCj4gPiA+ID4gICAgLy8NCj4g PiA+ID4gLSAgLy8gRmluZCB0aGUgYWNwaSBib2FyZCBpbmZvcm1hdGlvbiBndWlkIGhvYg0KPiA+ ID4gPiArICAvLyBGaW5kIHRoZSBTTUkgcG9ydCBpbiB0aGUgRkFEVCB0YWJsZSBpbiBhY3BpDQo+ ID4gPiA+ICAgIC8vDQo+ID4gPiA+IC0gIEd1aWRIb2IgPSBHZXRGaXJzdEd1aWRIb2IgKCZnVWVm aUFjcGlCb2FyZEluZm9HdWlkKTsNCj4gPiA+ID4gLSAgQVNTRVJUIChHdWlkSG9iICE9IE5VTEwp Ow0KPiA+ID4gPiAtICBwQWNwaUJvYXJkSW5mbyA9IChBQ1BJX0JPQVJEX0lORk8gKilHRVRfR1VJ RF9IT0JfREFUQSAoR3VpZEhvYik7DQo+ID4gPiA+IC0NCj4gPiA+ID4gLSAgbVBtQ3RybFJlZyA9 IChVSU5UTilwQWNwaUJvYXJkSW5mby0+UG1DdHJsUmVnQmFzZTsNCj4gPiA+ID4gLSAgREVCVUcg KChFRklfRF9FUlJPUiwgIlBtQ3RybFJlZyBhdCAweCVseFxuIiwgKFVJTlQ2NCltUG1DdHJsUmVn KSk7DQo+ID4gPiA+ICsgIEZpbmRBY3BpRmFkdFRhYmxlSW5mbyhTeXN0ZW1UYWJsZSk7DQo+ID4g PiA+ICsgIGlmIChtU21pUG9ydEZvdW5kKSB7DQo+ID4gPiA+ICsgICAgREVCVUcgKChERUJVR19F UlJPUiwgIkZvdW5kIEFDUEkgZW5hYmxlIGluZm8gaW4gRkFEVDogMHglbHggMHgleFxuIiwgKFVJ TlQ2NCltU21pQ29tbWFuZFBvcnQsIChVSU5UMzIpbUFjcGlFbmFibGUpKTsNCj4gPiA+ID4gKyAg fSBlbHNlIHsNCj4gPiA+ID4gKyAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiRmFpbGVkIHRvIGZp bmQgRkFEVCBpbmZvIGZvciBlbmFibGluZyBBQ1BJXG4iKSk7DQo+ID4gPiA+ICsgIH0NCj4gPiA+ ID4gIA0KPiA+ID4gPiAgICAvLw0KPiA+ID4gPiAgICAvLyBGaW5kIHRoZSBmcmFtZSBidWZmZXIg aW5mb3JtYXRpb24gYW5kIHVwZGF0ZSBQQ0RzDQo+ID4gPiA+IEBAIC0yMTIsNCArMjY4LDMgQEAg Q2JEeGVFbnRyeVBvaW50ICgNCj4gPiA+ID4gIA0KPiA+ID4gPiAgICByZXR1cm4gRUZJX1NVQ0NF U1M7DQo+ID4gPiA+ICB9DQo+ID4gPiA+IC0NCj4gPiA+ID4gZGlmZiAtLWdpdCBhL0NvcmVib290 TW9kdWxlUGtnL0NiU3VwcG9ydER4ZS9DYlN1cHBvcnREeGUuaW5mIGIvQ29yZWJvb3RNb2R1bGVQ a2cvQ2JTdXBwb3J0RHhlL0NiU3VwcG9ydER4ZS5pbmYNCj4gPiA+ID4gaW5kZXggOTkyNDUxODNl YS4uZTMzNGRhZmRiNyAxMDA2NDQNCj4gPiA+ID4gLS0tIGEvQ29yZWJvb3RNb2R1bGVQa2cvQ2JT dXBwb3J0RHhlL0NiU3VwcG9ydER4ZS5pbmYNCj4gPiA+ID4gKysrIGIvQ29yZWJvb3RNb2R1bGVQ a2cvQ2JTdXBwb3J0RHhlL0NiU3VwcG9ydER4ZS5pbmYNCj4gPiA+ID4gQEAgLTUxLDYgKzUxLDcg QEANCj4gPiA+ID4gIA0KPiA+ID4gPiAgW0d1aWRzXQ0KPiA+ID4gPiAgICBnRWZpQWNwaVRhYmxl R3VpZA0KPiA+ID4gPiArICBnRWZpQWNwaTIwVGFibGVHdWlkDQo+ID4gPiA+ICAgIGdFZmlTbWJp b3NUYWJsZUd1aWQNCj4gPiA+ID4gICAgZ1VlZmlTeXN0ZW1UYWJsZUluZm9HdWlkDQo+ID4gPiA+ ICAgIGdVZWZpQWNwaUJvYXJkSW5mb0d1aWQNCj4gPiA+ID4gLS0gDQo+ID4gPiA+IDIuMTcuMC45 MjEuZ2YyMjY1OWFkNDYtZ29vZw0KDQo=