From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zheng, Lv" Subject: RE: [PATCH v2 5/5] ACPI: button: Obselete acpi_lid_open() invocations Date: Mon, 15 May 2017 03:55:37 +0000 Message-ID: <1AE640813FDE7649BE1B193DEA596E886CEA38F0@SHSMSX101.ccr.corp.intel.com> References: <2a779ae8c280c968b3237ac4a3d9580df7262a46.1493951798.git.lv.zheng@intel.com> <22b130fe0cf3fca19b0e14c69426fe36766cf2ee.1494311429.git.lv.zheng@intel.com> <1AE640813FDE7649BE1B193DEA596E886CEA2BB0@SHSMSX101.ccr.corp.intel.com> <1AE640813FDE7649BE1B193DEA596E886CEA2E0E@SHSMSX101.ccr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com ([134.134.136.20]:27553 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751799AbdEODzn (ORCPT ); Sun, 14 May 2017 23:55:43 -0400 In-Reply-To: Content-Language: en-US Sender: linux-acpi-owner@vger.kernel.org List-Id: linux-acpi@vger.kernel.org To: Benjamin Tissoires Cc: "Wysocki, Rafael J" , "Rafael J . Wysocki" , "Brown, Len" , Lv Zheng , ACPI Devel Maling List , "intel-gfx@lists.freedesktop.org" , "nouveau@lists.freedesktop.org" SGksIEJlbmphbWluDQoNCj4gRnJvbTogbGludXgtYWNwaS1vd25lckB2Z2VyLmtlcm5lbC5vcmcg W21haWx0bzpsaW51eC1hY3BpLW93bmVyQHZnZXIua2VybmVsLm9yZ10gT24gQmVoYWxmIE9mIEJl bmphbWluDQo+IFRpc3NvaXJlcw0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHYyIDUvNV0gQUNQSTog YnV0dG9uOiBPYnNlbGV0ZSBhY3BpX2xpZF9vcGVuKCkgaW52b2NhdGlvbnMNCj4gDQo+IEhpIEx2 LA0KPiANCj4gSSBhbSB0cnlpbmcgdG8gcmVkdWNlIHRoZSBudW1iZXIgb2YgcGFyYWxsZWwgZGlz Y3Vzc2lvbiB3ZSBoYXZlIG9uIHRoZQ0KPiBzYW1lIHN1YmplY3QsIGJ1dCB0aGVyZSBpcyBzb21l dGhpbmcgaGVyZSBJIGNhbid0IGxldCB5b3UgaGF2ZS4NCg0KT0suIFNvIGxldCdzIHN0b3AgdGFs a2luZyBpbiBQQVRDSCA0LTUuDQpUaGV5IGFyZSBhY3R1YWxseSBjbGVhbnVwcyBmcm9tIG15IHBv aW50IG9mIHZpZXcuDQoNCkluIGZhY3QsIEkgZG9uJ3Qgc2VlIGFueSBiaWcgY29uZmxpY3RzIGJl dHdlZW4gdXMuDQoNCk15IHBvaW50IG9mIHZpZXcgaXM6DQpUaGVyZSBpcyBhIGdhcCBiZXR3ZWVu IChCSU9TIGVuc3VyZWQvV2luZG93cyBleHBlY3RlZCkgYWNwaSBjb250cm9sIG1ldGhvZCBsaWQg ZGV2aWNlIGJlaGF2aW9yIGFuZCBMaW51eCB1c2VyIHNwYWNlIGV4cGVjdGVkIGFjcGkgY29udHJv bCBtZXRob2QgbGlkIGRldmljZSBiZWhhdmlvci4NCkJ1dHRvbiBkcml2ZXIgZGVmYXVsdCBiZWhh dmlvciBzaG91bGQgYmU6IGJ1dHRvbi5saWRfaW5pdF9zdGF0ZT1pZ25vcmUNCklmIHVzZXIgc3Bh Y2UgcHJvZ3JhbXMgaGF2ZSBzcGVjaWFsIG5lZWRzLCB0aGV5IGNhbiBmaXggcHJvYmxlbXMgb24g dGhlaXIgb3duLCB2aWEgdGhlIGZvbGxvd2luZyBtZWFuOg0KIGVjaG8gLW4gIm9wZW4iID4gL3N5 cy9tb2R1bGVzL2J1dHRvbi9wYXJhbWV0ZXJzL2xpZF9pbml0X3N0YXRlDQogZWNobyAtbiAiY2xv c2UiID4gL3N5cy9tb2R1bGVzL2J1dHRvbi9wYXJhbWV0ZXJzL2xpZF9pbml0X3N0YXRlDQpLZWVw aW5nIG9wZW4vY2xvc2UgbW9kZXMgaXMgYmVjYXVzZSBJIGRvbid0IHRoaW5rIHRoZXJlIGlzIGFu eSBidWcgaW4gYnV0dG9uIGRyaXZlci4NClNvIEkgbmVlZCB0byBwcmVwYXJlIHF1aXJrIG1vZGVz IGZyb20gYnV0dG9uIGRyaXZlcidzIHBvaW50IG9mIHZpZXcgYW5kIHVzZSB0aGVtIGFzIGEgcmVz cG9uc2UgdG8gcmVsYXRlZCBidWcgcmVwb3J0cyByZXBvcnRlZCBpbiBhY3BpIGNvbW11bml0eS4N CllvdXIgcG9pbnQgb2YgdmlldyBpczoNClRoZXJlIGlzIGEgZ2FwIGJldHdlZW4gKEJJT1MgZW5z dXJlZC9XaW5kb3dzIGV4cGVjdGVkKSBhY3BpIGNvbnRyb2wgbWV0aG9kIGxpZCBkZXZpY2UgYmVo YXZpb3IgYW5kIExpbnV4IHVzZXIgc3BhY2UgZXhwZWN0ZWQgYWNwaSBjb250cm9sIG1ldGhvZCBs aWQgZGV2aWNlIGJlaGF2aW9yLg0KQnV0dG9uIGRyaXZlciBkZWZhdWx0IGJlaGF2aW9yIHNob3Vs ZCBiZSAobm90IDEwMCUgc3VyZSBpZiB0aGlzIGlzIHlvdXIgb3Bpbmlvbik6IGJ1dHRvbi5saWRf aW5pdF9zdGF0ZT1tZXRob2QNCklmIHVzZXIgc3BhY2UgcHJvZ3JhbXMgaGF2ZSBzcGVjaWFsIG5l ZWRzLCB0aGV5IGNhbiBmaXggdGhlbSBvbiB0aGVpciBvd24sIHZpYSB0aGUgZm9sbG93aW5nIG1l YW46DQogbGliaW5wdXQ6bmFtZToqTGlkIFN3aXRjaCo6ZG1pOipzdm5NaWNyb3NvZnRDb3Jwb3Jh dGlvbjpwblN1cmZhY2UzOioNCiAgTElCSU5QVVRfQVRUUl9MSURfU1dJVENIX1JFTElBQklMSVRZ PXdyaXRlX29wZW4NCkZyb20gdGhpcyBwb2ludCBvZiB2aWV3LCB3ZSBhY3R1YWxseSBkb24ndCBu ZWVkIG9wZW4vY2xvc2UgbW9kZXMuDQoNCkl0IHNlZW1zIHdlIGp1c3QgbmVlZCB0byBkZXRlcm1p bmUgdGhlIGZvbGxvd2luZyBmaXJzdDoNCjEuIFdobyBzaG91bGQgYmUgcmVzcG9uc2libGUgZm9y IHNvbHZpbmcgYnVncyB0cmlnZ2VyZWQgYnkgdGhlIGNvbmZsaWN0IGJldHdlZW4gYmlvcyBhbmQg bGludXggdXNlciBzcGFjZSBleHBlY3RhdGlvbnM6DQogICBidXR0b24gZHJpdmVyPyBsaWJpbnB1 dD8gU29tZSBvdGhlciB1c2VyIHNwYWNlIHByb2dyYW1zPyBVc2Vycz8NCjIuIFdoYXQgc2hvdWxk IGJlIHRoZSBkZWZhdWx0IGJ1dHRvbiBkcml2ZXIgYmVoYXZpb3I/DQogICBidXR0b24ubGlkX2lu aXRfc3RhdGU9aWdub3JlPyBidXR0b24ubGlkX2luaXRfc3RhdGU9bWV0aG9kPw0KMy4gSWYgbm9u IGJ1dHRvbiBkcml2ZXIgcXVpcmtzIGFyZSB3b3JraW5nLCBidXR0b24gZHJpdmVyIHF1aXJrIG1v ZGVzIGFyZSB1c2VsZXNzLg0KICAgVGhlIHF1ZXN0aW9uIGlzOiBTaG91bGQgYnV0dG9uLmxpZF9p bml0X3N0YXRlPW9wZW4vY2xvc2UgYmUga2VwdD8NCjQuIEZyb20gYnV0dG9uIGRyaXZlcidzIHBv aW50IG9mIHZpZXcsIGJ1dHRvbi5saWRfaW5pdF9zdGF0ZT1pZ25vcmUgc2VlbXMgdG8gYmUgYWx3 YXlzIGNvcnJlY3QsIHNvIHdlIHdvbid0IGFiYW5kb24gaXQuDQogICBJZiB3ZSBjYW4gdXNlIGxp YmlucHV0IHRvIG1hbmFnZSBwbGF0Zm9ybSBxdWlya3MsIHRoZW4gYnV0dG9uLmxpZF9pbml0X3N0 YXRlPW1ldGhvZCBhbHNvIGxvb2tzIHVzZWxlc3MuDQogICBUaGUgcXVlc3Rpb24gaXM6IFNob3Vs ZCBidXR0b24ubGlkX2luaXRfc3RhdGU9bWV0aG9kIGJlIGtlcHQ/DQoNCkkgc2hvdWxkIGFsc28g bGV0IHlvdSBrbm93IG15IHByZWZlcmVuY2U6DQoxLiB1c2luZyBidXR0b24ubGlkX2luaXRfc3Rh dGU9aWdub3JlIGFuZCBidXR0b24ubGlkX2luaXRfc3RhdGU9bWV0aG9kIGFzIGRlZmF1bHQgYmVo YXZpb3IgaXMgb2sgZm9yIG1lIGlmIGFuc3dlciB0byAxIGlzIG5vdCBidXR0b24gZHJpdmVyLCBv dGhlcndpc2UgdXNpbmcgYnV0dG9uLmxpZF9pbml0X3N0YXRlPW1ldGhvZCBpcyBub3Qgb2sgZm9y IG1lDQoyLiBkZWxldGlvbiBvZiBidXR0b24ubGlkX2luaXRfc3RhdGU9b3Blbi9jbG9zZSBpcyBv ayBmb3IgbWUgaWYgYW5zd2VyIHRvIDEgaXMgbm90IGJ1dHRvbiBkcml2ZXIsIG90aGVyd2lzZSBk ZWxldGlvbiBvZiBidXR0b24ubGlkX2luaXRfc3RhdGU9b3Blbi9jbG9zZSBpcyBub3Qgb2sgZm9y IG1lDQozLiBkZWxldGlvbiBvZiBidXR0b24ubGlkX2luaXRfc3RhdGU9bWV0aG9kIGlzIGFsd2F5 cyBvayBmb3IgbWUNCg0KU2VlIHRoZSBiYXNlIGxpbmUgZnJvbSBteSBzaWRlIGlzIHZlcnkgY2xl YXI6DQpJZiBhY3BpIGNvbW11bml0eSBuZWVkIHRvIGhhbmRsZSBzdWNoIGJ1ZyByZXBvcnRzLCBi dXR0b24ubGlkX2luaXRfc3RhdGU9bWV0aG9kIGNhbm5vdCBiZSB0aGUgZGVmYXVsdCBiZWhhdmlv ci4NCldlIGFyZSBqdXN0IHVzaW5nIGEgZGlmZmVyZW50IGRlZmF1bHQgYmVoYXZpb3IgdGhhbiAi bWV0aG9kIiB0byBkcml2ZSB0aGluZ3MgdG8gcmVhY2ggdGhlIGZpbmFsIHJvb3QgY2F1c2VkIHNv bHV0aW9uLg0KDQpDb3VsZCB5b3UgbGV0IG1lIGtub3cgeW91ciBwcmVmZXJlbmNlIHNvIHRoYXQg d2UgY2FuIGZpZ3VyZSBvdXQgYW4gYWdyZWVtZW50IGJldHdlZW4gdXMuDQpUaG91Z2ggSSBkb24n dCBrbm93IGlmIGVuZCB1c2VycyB3aWxsIGJ1eSBpdCAodGhleSBtYXkga2VlcCBvbiBmaWxpbmcg cmVncmVzc2lvbiByZXBvcnRzIGluIEFDUEkgY29tbXVuaXR5KS4NCg0KQ2FuIHRoaXMgbWFrZSB0 aGUgZGlzY3Vzc2lvbiBzaW1wbGVyPw0KDQpTbyBiZWZvcmUgZGV0ZXJtaW5pbmcgd2hldGhlciB3 ZSBzaG91bGQga2VlcCBidXR0b24ubGlkX2luaXRfc3RhdGU9b3Blbi9jbG9zZSBvciBub3QuDQpX ZSBvYnZpb3VzbHkgc2hvdWxkIHN0b3AgdGFsa2luZyBoZXJlLg0KWW91IGNhbiBjb3B5IGFib3Zl IHF1ZXN0aW9ucyB0byBQQVRDSCAxLTIgZGlzY3Vzc2lvbiBhbmQgcmVwbHkgaW4gb3JkZXIgdG8g c3RvcCB0aGlzLg0KV2UgY2FuIHJldmlzaXQgUEFUQ0ggNC01IHdoZW4gdGhlIGJhc2ljIHF1ZXN0 aW9ucyBhcmUgYW5zd2VyZWQuIDopDQoNCj4gDQo+IE9uIEZyaSwgTWF5IDEyLCAyMDE3IGF0IDg6 MDggQU0sIFpoZW5nLCBMdiA8bHYuemhlbmdAaW50ZWwuY29tPiB3cm90ZToNCj4gPiBIaSwNCj4g Pg0KPiA+IElmIG15IHByZXZpb3VzIHJlcGx5IGlzIG5vdCBwZXJzdWFzaXZlIGVub3VnaC4NCj4g PiBMZXQgbWUgZG8gdGhhdCBpbiBhIGRpZmZlcmVudCB3YXkuDQo+ID4NCj4gPj4gRnJvbTogbGlu dXgtYWNwaS1vd25lckB2Z2VyLmtlcm5lbC5vcmcgW21haWx0bzpsaW51eC1hY3BpLW93bmVyQHZn ZXIua2VybmVsLm9yZ10gT24gQmVoYWxmIE9mIFpoZW5nLA0KPiA+PiBMdg0KPiA+PiBTdWJqZWN0 OiBSRTogW1BBVENIIHYyIDUvNV0gQUNQSTogYnV0dG9uOiBPYnNlbGV0ZSBhY3BpX2xpZF9vcGVu KCkgaW52b2NhdGlvbnMNCj4gPj4NCj4gPj4gSGksDQo+ID4+DQo+ID4+ID4gRnJvbTogQmVuamFt aW4gVGlzc29pcmVzIFttYWlsdG86YmVuamFtaW4udGlzc29pcmVzQGdtYWlsLmNvbV0NCj4gPj4g PiBTdWJqZWN0OiBSZTogW1BBVENIIHYyIDUvNV0gQUNQSTogYnV0dG9uOiBPYnNlbGV0ZSBhY3Bp X2xpZF9vcGVuKCkgaW52b2NhdGlvbnMNCj4gPj4gPg0KPiA+PiA+IE9uIFR1ZSwgTWF5IDksIDIw MTcgYXQgOTowMiBBTSwgTHYgWmhlbmcgPGx2LnpoZW5nQGludGVsLmNvbT4gd3JvdGU6DQo+ID4+ ID4gPiBTaW5jZSBub3RpZmljYXRpb24gc2lkZSBoYXMgYmVlbiBjaGFuZ2VkIHRvIGFsd2F5cyBu b3RpZnkga2VybmVsIGxpc3RlbmVycw0KPiA+PiA+ID4gdXNpbmcgX0xJRCByZXR1cm5pbmcgdmFs dWUuIE5vdyBsaXN0ZW5lcnMgbmVlZG4ndCBpbnZva2UgYWNwaV9saWRfb3BlbigpLA0KPiA+PiA+ ID4gaXQgc2hvdWxkIHVzZSBhIHNwZWMgc3VnZ2VzdGVkIGNvbnRyb2wgbWV0aG9kIGxpZCBkZXZp Y2UgdXNhZ2UgbW9kZWw6DQo+ID4+ID4gPiByZWdpc3RlciBsaWQgbm90aWZpY2F0aW9uIGFuZCB1 c2UgdGhlIG5vdGlmaWVkIHZhbHVlIGluc3RlYWQsIHdoaWNoIGlzIHRoZQ0KPiA+PiA+ID4gb25s eSB3YXkgdG8gZW5zdXJlIHRoZSB2YWx1ZSBpcyBjb3JyZWN0IGZvciAiYnV0dG9uLmxpZF9pbml0 X3N0YXRlPWlnbm9yZSINCj4gPj4gPiA+IG1vZGUgb3Igb3RoZXIgbW9kZXMgd2l0aCAiYnV0dG9u LmxpZF9mYWtlX2V2ZW50cz1OIiBzcGVjaWZpZWQuDQo+ID4+ID4gPg0KPiA+PiA+ID4gVGhpcyBw YXRjaCBmaXhlcyBpOTE1IGRyaXZlciB0byBkcm9wIGFjcGlfbGlkX29wZW4oKSB1c2VyLiBJdCdz IG5vdA0KPiA+PiA+ID4gcG9zc2libGUgdG8gY2hhbmdlIG5vdXZlYXVfY29ubmVjdG9yLmMgdXNl ciB1c2luZyBhIHNpbXBsZSB3YXkgbm93LiBTbyB0aGlzDQo+ID4+ID4gPiBwYXRjaCBvbmx5IG1h cmtzIGFjcGlfbGlkX29wZW4oKSBhcyBkZXByZWNhdGVkIHRvIGFjY2VsZXJhdGUgdGhpcyBwcm9j ZXNzDQo+ID4+ID4gPiBieSBpbmRpY2F0aW5nIHRoaXMgY2hhbmdlIHRvIHRoZSBub3V2ZWF1IGRl dmVsb3BlcnMuDQo+ID4+ID4NCj4gPj4gPiBJZiAgdGhlIG9ubHkgMiB1c2VycyBvZiBhY3BpX2xp ZF9vcGVuKCkgYXJlIGludGVsIGFuZCBub3V2ZWF1LCBhbmQgaWYNCj4gPj4gPiB0aGV5IHNob3Vs ZCByZWx5IG9uIHRoZSB2YWx1ZSBzdG9yZWQgaW4gdGhlIGlucHV0IG5vZGUsIG5vdCB0aGUgb25l DQo+ID4+ID4gZXhwb3J0ZWQgYnkgdGhlIF9MSUQgbWV0aG9kICh3aGljaCBjYW4gYmUgd3Jvbmcg b24gc29tZSBwbGF0Zm9ybXMpLA0KPiA+PiA+IGhvdyBhYm91dCBzaW1wbHkgY2hhbmdpbmcgdGhl IGltcGxlbWVudGF0aW9uIG9mIGFjcGlfbGlkX29wZW4oKSB0bw0KPiA+PiA+IGZldGNoIHRoZSB2 YWx1ZSBmcm9tIHRoZSBpbnB1dCBub2RlIGRpcmVjdGx5Pw0KPiA+DQo+ID4gSWYgYWNwaV9saWRf b3BlbigpIHJldHVybnMgc3RvcmVkIHZhbHVlIGluIGlucHV0IG5vZGUsDQo+ID4gdGhlbiBpdCBh Y3R1YWxseSByZXR1cm5zIHRoZSB2YWx1ZSB3ZSBub3RpZmllZCB0byB0aGUgaW5wdXQgbGF5ZXIu DQo+ID4gV2hpbGUgaTkxNSBhbmQgbm91dmVhdSBleHBsaWNpdGx5IGRvIG5vdCB0cnVzdCB0aGF0 IHZhbHVlIGFuZCBpbnZva2UgYWNwaV9saWRfb3BlbigpLg0KPiA+DQo+ID4gRm9yIGJ1dHRvbi5s aWRfaW5pdF9zdGF0ZT1tZXRob2QsIFBBVENIIDQvNSBpcyB1c2VsZXNzIGFzIHRoZSB2YWx1ZXMg YXJlIHNhbWUuDQo+ID4NCj4gPiBIb3dldmVyIGluIG15IHJlcGx5IG9mIFBBVENIIDIuDQo+ID4g SSBleHBsYWluZWQgdGhlIGRpZmZlcmVuY2Ugb2YgbWV0aG9kL2Nsb3NlLCBmb3IgdGhlIHNhbWUg cmVhc29uLCB3ZSBjYW4gYWxzbyBzZW5zZSB0aGUgZGlmZmVyZW5jZSBvZg0KPiBtZXRob2Qvb3Bl bi4NCj4gPiBUaGUgZGlmZmVyZW5jZSB0aGVuIGNhbiBleHBsYWluIHRoZSB1c2VmdWxuZXNzIG9m IG9wZW4vY2xvc2UgbW9kZXMuDQo+ID4NCj4gPiBHaXZlbiBvcGVuL2Nsb3NlIG1vZGVzIGFyZSBh bGwgdXNlZnVsOg0KPiA+IGJ1dHRvbi5saWRfaW5pdF9zdGF0ZT1vcGVuDQo+ID4gMS4gYnV0dG9u IGRyaXZlciBzZW5kcyBvcGVuIHRvIGlucHV0IGxheWVyIGFmdGVyIGJvb3QvcmVzdW1lDQo+ID4g Mi4gaTkxNS9ub3V2ZWF1IHVzZXMgX0xJRCByZXR1cm4gdmFsdWUgYWZ0ZXIgYm9vdC9yZXN1bWUN Cj4gPiBJZiBfTElEIHJldHVybiB2YWx1ZSBhZnRlciBib290L3Jlc3VtZSBpcyAiY2xvc2UiLCB0 aGV5IGFyZSBkaWZmZXJlbnQuDQo+ID4NCj4gPiBidXR0b24ubGlkX2luaXRfc3RhdGU9Y2xvc2UN Cj4gPiAxLiBidXR0b24gZHJpdmVyIHNlbmRzIGNsb3NlIHRvIGlucHV0IGxheWVyIGFmdGVyIGJv b3QvcmVzdW1lDQo+ID4gMi4gaTkxNS9ub3V2ZWF1IHVzZXMgX0xJRCByZXR1cm4gdmFsdWUgYWZ0 ZXIgYm9vdC9yZXN1bWUNCj4gPiBJZiBfTElEIHJldHVybiB2YWx1ZSBhZnRlciBib290L3Jlc3Vt ZSBpcyAib3BlbiIsIHRoZXkgYXJlIGRpZmZlcmVudC4NCj4gPg0KPiA+IFRoZSBvbmx5IHdheSB0 byBiZSBjb25zaXN0ZW50IHRvIG9sZCBpOTE1L25vdXZlYXUgYmVoYXZpb3IgaXM6DQo+ID4gYnV0 dG9uLmxpZF9pbml0X3N0YXRlPW9wZW4vY2xvc2UNCj4gDQo+IEJ1dCB0aGVzZSB0d28gbW9kZXMg YXJlIHdyb25nIGluIHRoZSBhYnNvbHV0ZSBjYXNlOg0KPiAtIGEgbGFwdG9wIGhhcyBubyByZWFz b25zIGZvciBub3QgYmVpbmcgcG93ZXJlZCB1cCB3aXRoIHRoZSBsaWQNCj4gcGh5c2ljYWxseSBj bG9zZWQgKHdha2Ugb24gbGFuPykgLT4gc28gb3BlbiBpcyBhbiBhcHByb3hpbWF0aW9uDQo+IGFs cmVhZHkgbWFkZSBvbiBnb29kIGFzc3VtcHRpb24gdGhhdCB0aGVyZSBpcyBub3QgYSBoaWdoIGNo YW5jZSBvZiB0aGUNCj4gdXNlcnMgcG93ZXJpbmcvcmVzdW1pbmcgdGhlIGxhcHRvcCB3aXRoIHRo ZSBsaWQgY2xvc2VkDQo+IC0gaW4gdGhlICJjbG9zZSIgY2FzZSwgdGhpcyBzZXR0aW5nIHdvcmtz IGZvciBkb2NrZWQgbGFwdG9wcywgYnV0IGlmDQo+IHRoZSBsYXB0b3AgY2FuIGJlIGRvY2tlZCwg aXQgY2FuIGFsc28gYmUgdW5kb2NrZWQuIEFuZCBpZiB5b3UgYm9vdA0KPiB3aXRoIGJ1dHRvbi5s aWRfaW5pdF9zdGF0ZT1jbG9zZSwgdW5kb2NrIHlvdXIgbGFwdG9wLCBnbyBpbnRvIHN1c3BlbmQs DQo+IHJlc3VtZSAtPiB0aGUgbGlkIHN0YXRlIGlzIG5vdyAiY2xvc2VkIiB3aGlsZSBpdCBzaG91 bGQgYmUgb3BlbmVkLg0KPiANCj4gU28gbm8sIHRoZXNlIGFyZSBqdXN0IHdvcmthcm91bmRzLiBp OTE1L25vdXZlYXUgZXhwZWN0IHRoZSBhY3BpL2J1dHRvbg0KPiBzdGF0ZSB0byBiZSByZWxpYWJs ZSwgb3IgdGhleSBzaG91bGQgaWdub3JlIGl0LiBCdXQgeW91IGNhbid0IGZha2UNCj4gZXZlbnRz IHdoZW4geW91IGFyZSBub3QgYWJzb2x1dGVseSBzdXJlIG9mIHdoYXQgaXMgaGFwcGVuaW5nLg0K PiANCj4gPiAxLiBidXR0b24gZHJpdmVyIHNlbmRzIG9wZW4vY2xvc2UgdG8gaW5wdXQgbGF5ZXIg YWZ0ZXIgYm9vdC9yZXN1bWUNCj4gPiAyLiBidXR0b24gZHJpdmVyIHNlbmRzIF9MSUQgcmV0dXJu IHZhbHVlIHRvIGk5MTUgYWZ0ZXIgYm9vdC9yZXN1bWUgKFBBVENIIDQpDQo+ID4gU28gdGhhdCBp OTE1IGNhbiBqdXN0IHVzZSB0aGUgbm90aWZpZWQgdmFsdWUgaW4gdGhpcyBwYXRjaCAoUEFUQ0gg NSkuDQo+ID4gRm9yIG5vdXZlYXUsIG5vIGNoYW5nZSBoYXMgYmVlbiBtYWRlIGZvciBub3csIGFu ZCBhcyBhIGNvbmNlcXVlbmNlLCBhY3BpX2xpZF9vcGVuKCkgaXMgc3RpbGwga2VwdA0KPiBidXQg bWFya2VkIGFzIGRlcHJlY2F0ZWQuDQo+ID4NCj4gPj4NCj4gPj4gU2VlIG15IHJlcGx5IG9mIFBB VENIIDQuDQo+ID4+IEl0IHNlZW1zIHRoZXkgdHJ1c3QgX0xJRCByZXR1cm4gdmFsdWUgbW9yZSB0 aGFuIHdoYXQgd2Ugc2VuZCB0byB0aGVtLg0KPiA+Pg0KPiA+PiBXZSBjYW4gYWN0dWFsbHkgc2Vu ZCBmYWtlZCAib3Blbi9jbG9zZSIgdG8gdGhlbSB3aGVuIGJ1dHRvbi5saWRfaW5pdF9zdGF0ZT1v cGVuL2Nsb3NlIGlzIHNwZWNpZmllZC4NCj4gPj4NCj4gPj4gU28gdGhlc2UgMiBwYXRjaGVzIFtQ QVRDSCA0LTUvNV0gYXJlIHVzZWQgdG8gZG8gYSBzbWFsbCBjbGVhbnVwIGZvciBsaWQgZXZlbnQg bm90aWZpZXIgQVBJcy4NCj4gPj4gSSB0aGluayB0aGV5IGFyZSBub3Qgc3RyaWN0bHkgcmVsYXRl ZCB0byB0aGUgbGlkIGlzc3VlcyB3ZSBhcmUgdGFsa2luZyBhYm91dC4NCj4gPg0KPiA+IFNlZSBE b2N1bWVudGF0aW9uL2FjcGkvYWNwaS1saWQudHh0Og0KPiA+IFRoZSBfTElEIGNvbnRyb2wgbWV0 aG9kIGlzIGRlc2NyaWJlZCB0byByZXR1cm4gdGhlICJjdXJyZW50IiBsaWQgc3RhdGUuDQo+ID4g SG93ZXZlciB0aGUgd29yZCBvZiAiY3VycmVudCIgaGFzIGFtYmlndWl0eSwgc29tZSBidWdneSBB TUwgdGFibGVzIHJldHVybg0KPiA+IHRoZSBsaWQgc3RhdGUgdXBvbiB0aGUgbGFzdCBsaWQgbm90 aWZpY2F0aW9uIGluc3RlYWQgb2YgcmV0dXJuaW5nIHRoZSBsaWQNCj4gPiBzdGF0ZSB1cG9uIHRo ZSBsYXN0IF9MSUQgZXZhbHVhdGlvbi4NCj4gPg0KPiA+IEluIG9yZGVyIHRvIGhhdmUgYWNwaSBs aWQgZXZlbnQgbm90aWZpZXIgQVBJIGNvbXBsaWFudCB0byB0aGUgYWJvdmUgbWVudGlvbmVkIGJv dGggImJ1Z2d5IiBhbmQNCj4gIm5vbmJ1Z2d5IiBpbXBsZW1lbnRhdGlvbi4NCj4gPiBUaGUgZW5z dXJlZCBsaWQgZXZlbnQgbW9kZWwgaW50ZXJmYWNlIHNob3VsZCBiZToNCj4gPiAxLiBMaWQgZXZl bnQgbm90aWZpZXIgbGlzdGVuZXJzIGludm9rZXMgYWNwaV9saWRfbm90aWZpZXJfcmVnaXN0ZXIo KS4NCj4gPiAyLiBBbmQgaW4gdGhlIGNhbGxiYWNrLCB1c2VzIF9MSUQgcmV0dXJuIHZhbHVlLg0K PiA+IFRoaXMgaXMgYWxzbyB0aGUgb25seSBwb3NzaWJsZSB3YXkgdG8gY29tYmluZSAicmVjZWl2 aW5nIGxpZCBub3RpZnkiIGFuZCAiZXZhbHVhdGUgX0xJRCIgaW50byAxDQo+IHNpbmdsZSBhdG9t aWMgb3BlcmF0aW9uLg0KPiA+DQo+ID4gU28gSSB0cmVuZCB0byByZW1vdmUgYWNwaV9saWRfb3Bl bigpIGFuZCBlbmZvcmNlIHRoZSBuZXcgQVBJLg0KPiA+DQo+ID4gQXMgYSBjb25jbHVzaW9uLCBQ QVRDSCA0LTUNCj4gPiAxLiBtYWtlcyBhIGhpZGRlbiBsb2dpYyBleHBsaWNpdCAtIHRoZSBsaWQg ZXZlbnQgbGlzdGVuZXJzIGFsd2F5cyB1c2UgX0xJRCByZXR1cm4gdmFsdWUuIExlc3MgaGlkZGVu DQo+IGxvZ2ljcyBzaG91bGQgbGVhdmUgbGVzcyBjaGFuY2VzIG9mIGJ1Z3MuDQo+ID4gMi4gaXMg YW4gaW1wbGVtZW50YXRpb24gZm9yIG91ciBkb2N1bWVudGVkIEFDUEkgbGlkIGV2ZW50IG1vZGVs Lg0KPiA+IEFuZCB0aGUgaW1wbGVtZW50YXRpb24gaXMgZG9uZSBpbiBhIHJlZ3Jlc3Npb24gc2Fm ZSB3YXkuDQo+IA0KPiBJIHVuZGVyc3RhbmQgYWxsIG9mIHRoYXQuIEJ1dCBteSBwb2ludCBpcyBz dGlsbCB0aGF0IG9uIHNvbWUNCj4gcGxhdGZvcm1zLCB0aGUgbGlkIGFjcGkgc3RhdGUgaXMgbm90 IHJlbGlhYmxlLCBhbmQgdGhlIGNvZGUgaW4NCj4gaTkxNS9ub3V2ZWF1IGlzIG5vdCBtYWRlIGZv ciB0aG9zZSBwbGF0Zm9ybXMuIFNvIHRoZSBpZGVhbCBzb2x1dGlvbiBpcw0KPiB0byBrbm93IHdo aWNoIHBsYXRmb3JtcyBhcmUgcHJvYmxlbWF0aWMgYW5kIHRha2UgdGhlIHJpZ2h0IGRlY2lzaW9u cw0KPiBoYXZpbmcgZXZlcnl0aGluZyBhdCBoYW5kcy4gSnVzdCAiZml4aW5nIiB0aGUgaW50ZXJu YWwgQVBJIHdvbid0IGhlbHANCj4gdGVhY2hpbmcgdGhlc2UgZHJpdmVycyB0byBub3QgbWFrZSB0 aGUgYXNzdW1wdGlvbiB0aGF0IHRoZSBfTElEIGFjcGkNCj4gY2FsbCBpcyBhbHdheXMgY29ycmVj dC4NCj4gDQo+IFNvIHllcywgbm91dmVhdS9pOTE1IG1pZ2h0IG5lZWQgdG8gYmUgZml4ZWQsIGJ1 dCBJTU8sIGZpeGluZw0KPiBhY3BpL2J1dHRvbiB0byByZXBvcnQgY29ycmVjdCAodHJ1ZSwgYWNj dXJhdGUsIGFjdHVhbCwgb3IgcGh5c2ljYWwgaWYNCj4geW91IHByZWZlcikgaXMgdGhlIGJlc3Qs IGZ1dHVyZSBwcm9vZiB3YXkgKG1pbnVzIHBsYXRmb3JtIHF1aXJrcykuDQoNClRoaXMgbGVhZHMg dG8gZW5kbGVzcyBkaXNjdXNzaW9uLg0KTGV0J3MgbWFrZSBhZ3JlZW1lbnQgb24gYWJvdmUgcXVl c3Rpb25zIGZpcnN0Lg0KDQpDaGVlcnMsDQpMdg0KDQo+IA0KPiBDaGVlcnMsDQo+IEJlbmphbWlu DQo+IA0KPiA+DQo+ID4gVGhhbmtzLA0KPiA+IEx2DQo+ID4NCj4gPj4NCj4gPj4gQ2hlZXJzLA0K PiA+PiBMdg0KPiA+Pg0KPiA+PiA+DQo+ID4+ID4gQ2hlZXJzLA0KPiA+PiA+IEJlbmphbWluDQo+ ID4+ID4NCj4gPj4gPiA+DQo+ID4+ID4gPiBDYzogPGludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmc+DQo+ID4+ID4gPiBDYzogPG5vdXZlYXVAbGlzdHMuZnJlZWRlc2t0b3Aub3JnPg0KPiA+ PiA+ID4gU2lnbmVkLW9mZi1ieTogTHYgWmhlbmcgPGx2LnpoZW5nQGludGVsLmNvbT4NCj4gPj4g PiA+IC0tLQ0KPiA+PiA+ID4gIGRyaXZlcnMvYWNwaS9idXR0b24uYyAgICAgICAgICAgICB8IDcg KysrKysrLQ0KPiA+PiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2x2ZHMuYyB8IDIg Ky0NCj4gPj4gPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlv bnMoLSkNCj4gPj4gPiA+DQo+ID4+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL2J1dHRv bi5jIGIvZHJpdmVycy9hY3BpL2J1dHRvbi5jDQo+ID4+ID4gPiBpbmRleCA3ZmYzYTc1Li41MGQ3 ODk4IDEwMDY0NA0KPiA+PiA+ID4gLS0tIGEvZHJpdmVycy9hY3BpL2J1dHRvbi5jDQo+ID4+ID4g PiArKysgYi9kcml2ZXJzL2FjcGkvYnV0dG9uLmMNCj4gPj4gPiA+IEBAIC0zNDgsNyArMzQ4LDEy IEBAIGludCBhY3BpX2xpZF9ub3RpZmllcl91bnJlZ2lzdGVyKHN0cnVjdCBub3RpZmllcl9ibG9j ayAqbmIpDQo+ID4+ID4gPiAgfQ0KPiA+PiA+ID4gIEVYUE9SVF9TWU1CT0woYWNwaV9saWRfbm90 aWZpZXJfdW5yZWdpc3Rlcik7DQo+ID4+ID4gPg0KPiA+PiA+ID4gLWludCBhY3BpX2xpZF9vcGVu KHZvaWQpDQo+ID4+ID4gPiArLyoNCj4gPj4gPiA+ICsgKiBUaGUgaW50ZW50aW9uYWwgdXNhZ2Ug bW9kZWwgaXMgdG8gcmVnaXN0ZXIgYSBsaWQgbm90aWZpZXIgYW5kIHVzZSB0aGUNCj4gPj4gPiA+ ICsgKiBub3RpZmllZCB2YWx1ZSBpbnN0ZWFkLiBEaXJlY3RseSBldmFsdWF0aW5nIF9MSUQgd2l0 aG91dCBzZWVpbmcgYQ0KPiA+PiA+ID4gKyAqIE5vdGlmeShsaWQsIDB4ODApIGlzIG5vdCByZWxp YWJsZS4NCj4gPj4gPiA+ICsgKi8NCj4gPj4gPiA+ICtpbnQgX19kZXByZWNhdGVkIGFjcGlfbGlk X29wZW4odm9pZCkNCj4gPj4gPiA+ICB7DQo+ID4+ID4gPiAgICAgICAgIGlmICghbGlkX2Rldmlj ZSkNCj4gPj4gPiA+ICAgICAgICAgICAgICAgICByZXR1cm4gLUVOT0RFVjsNCj4gPj4gPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sdmRzLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9sdmRzLmMNCj4gPj4gPiA+IGluZGV4IDljYTRkYzQuLjhjYTkwODAg MTAwNjQ0DQo+ID4+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sdmRzLmMN Cj4gPj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2x2ZHMuYw0KPiA+PiA+ ID4gQEAgLTU0OCw3ICs1NDgsNyBAQCBzdGF0aWMgaW50IGludGVsX2xpZF9ub3RpZnkoc3RydWN0 IG5vdGlmaWVyX2Jsb2NrICpuYiwgdW5zaWduZWQgbG9uZyB2YWwsDQo+ID4+ID4gPiAgICAgICAg IC8qIERvbid0IGZvcmNlIG1vZGVzZXQgb24gbWFjaGluZXMgd2hlcmUgaXQgY2F1c2VzIGEgR1BV IGxvY2t1cCAqLw0KPiA+PiA+ID4gICAgICAgICBpZiAoZG1pX2NoZWNrX3N5c3RlbShpbnRlbF9u b19tb2Rlc2V0X29uX2xpZCkpDQo+ID4+ID4gPiAgICAgICAgICAgICAgICAgZ290byBleGl0Ow0K PiA+PiA+ID4gLSAgICAgICBpZiAoIWFjcGlfbGlkX29wZW4oKSkgew0KPiA+PiA+ID4gKyAgICAg ICBpZiAoIXZhbCkgew0KPiA+PiA+ID4gICAgICAgICAgICAgICAgIC8qIGRvIG1vZGVzZXQgb24g bmV4dCBsaWQgb3BlbiBldmVudCAqLw0KPiA+PiA+ID4gICAgICAgICAgICAgICAgIGRldl9wcml2 LT5tb2Rlc2V0X3Jlc3RvcmUgPSBNT0RFU0VUX09OX0xJRF9PUEVOOw0KPiA+PiA+ID4gICAgICAg ICAgICAgICAgIGdvdG8gZXhpdDsNCj4gPj4gPiA+IC0tDQo+ID4+ID4gPiAyLjcuNA0KPiA+PiA+ ID4NCj4gPj4gPiA+IC0tDQo+ID4+ID4gPiBUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMgbGlzdDog c2VuZCB0aGUgbGluZSAidW5zdWJzY3JpYmUgbGludXgtYWNwaSIgaW4NCj4gPj4gPiA+IHRoZSBi b2R5IG9mIGEgbWVzc2FnZSB0byBtYWpvcmRvbW9Admdlci5rZXJuZWwub3JnDQo+ID4+ID4gPiBN b3JlIG1ham9yZG9tbyBpbmZvIGF0ICBodHRwOi8vdmdlci5rZXJuZWwub3JnL21ham9yZG9tby1p bmZvLmh0bWwNCj4gPj4gIO+/ve+/vey5uyDvv70m77+9fu+/vSbvv70g77+977+9Ky3vv73vv73d tiDvv73vv71377+977+9y5vvv73vv73vv71t77+9Yu+/ve+/vVpy77+977+977+977+9Xm7vv71y 77+977+977+9eu+/vSDvv73vv71o77+977+977+977+9Ju+/ve+/vSDvv71H77+977+977+9aO+/ vSAo77+96ZqODQo+ID4+IO+/vd2iaiLvv73vv70g77+9IG3vv73vv73vv73vv73vv71677+93pbv v73vv73vv71m77+977+977+9aO+/ve+/ve+/vX7vv71t77+9DQo+IC0tDQo+IFRvIHVuc3Vic2Ny aWJlIGZyb20gdGhpcyBsaXN0OiBzZW5kIHRoZSBsaW5lICJ1bnN1YnNjcmliZSBsaW51eC1hY3Bp IiBpbg0KPiB0aGUgYm9keSBvZiBhIG1lc3NhZ2UgdG8gbWFqb3Jkb21vQHZnZXIua2VybmVsLm9y Zw0KPiBNb3JlIG1ham9yZG9tbyBpbmZvIGF0ICBodHRwOi8vdmdlci5rZXJuZWwub3JnL21ham9y ZG9tby1pbmZvLmh0bWwNCg==