From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Pandiyan, Dhinakaran" Subject: Re: [PATCH] drm/i915/cnp: Backlight support for CNP. Date: Fri, 5 May 2017 20:34:47 +0000 Message-ID: <1494017673.26187.12.camel@dk-H97M-D3H> References: <87d1c9vqfg.fsf@intel.com> <1493855051-23056-1-git-send-email-anusha.srivatsa@intel.com> <87fuglotyi.fsf@intel.com> <83F5C7385F545743AD4FB2A62F75B073019BEB82@ORSMSX108.amr.corp.intel.com> <8760hf5ju4.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 32C856E72C for ; Fri, 5 May 2017 20:34:49 +0000 (UTC) In-Reply-To: <8760hf5ju4.fsf@intel.com> Content-Language: en-US Content-ID: <6B8CA22B156A2A41BEB560DD62ED98D3@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Nikula, Jani" Cc: "intel-gfx@lists.freedesktop.org" , "Vivi, Rodrigo" List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCAyMDE3LTA1LTA1IGF0IDE5OjUwICswMzAwLCBKYW5pIE5pa3VsYSB3cm90ZToNCj4g T24gRnJpLCAwNSBNYXkgMjAxNywgIlNyaXZhdHNhLCBBbnVzaGEiIDxhbnVzaGEuc3JpdmF0c2FA aW50ZWwuY29tPiB3cm90ZToNCj4gPj4tLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PkZy b206IE5pa3VsYSwgSmFuaQ0KPiA+PlNlbnQ6IFRodXJzZGF5LCBNYXkgNCwgMjAxNyAyOjI1IEFN DQo+ID4+VG86IFNyaXZhdHNhLCBBbnVzaGEgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5jb20+OyBp bnRlbC0NCj4gPj5nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnDQo+ID4+Q2M6IFZpdmksIFJvZHJp Z28gPHJvZHJpZ28udml2aUBpbnRlbC5jb20+OyBWaWxsZSBTeXJqYWxhDQo+ID4+PHZpbGxlLnN5 cmphbGFAbGludXguaW50ZWwuY29tPjsgU3JpdmF0c2EsIEFudXNoYSA8YW51c2hhLnNyaXZhdHNh QGludGVsLmNvbT4NCj4gPj5TdWJqZWN0OiBSZTogW1BBVENIXSBkcm0vaTkxNS9jbnA6IEJhY2ts aWdodCBzdXBwb3J0IGZvciBDTlAuDQo+ID4+DQo+ID4+T24gV2VkLCAwMyBNYXkgMjAxNywgQW51 c2hhIFNyaXZhdHNhIDxhbnVzaGEuc3JpdmF0c2FAaW50ZWwuY29tPiB3cm90ZToNCj4gPj4+IEZy b206IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4NCj4gPj4+DQo+ID4+PiBT cGxpdCBvdXQgQlhUIGFuZCBDTlAncyBzZXR1cF9iYWNrbGlnaHQoKSxlbmFibGVfYmFja2xpZ2h0 KCksDQo+ID4+PiBkaXNhYmxlX2JhY2tsaWdodCgpIGFuZCBoel90b19wd20oKSBpbnRvIHR3byBz ZXBhcmF0ZSBmdW5jdGlvbnMNCj4gPj4+IGluc3RlYWQgb2YgcmV1c2luZyBCWFQgZnVuY3Rpb24u DQo+ID4+Pg0KPiA+Pj4gUmV1c2Ugc2V0X2JhY2tsaWdodCgpIGFuZCBnZXRfYmFja2xpZ2h0KCkg c2luY2UgdGhleSBoYXZlIG5vIHJlZmVyZW5jZQ0KPiA+Pj4gdG8gdGhlIHV0aWxpdHkgcGluLg0K PiA+Pj4NCj4gPj4+IHYyOiBSZXVzZSBCWFQgZnVuY3Rpb25zIHdpdGggY29udHJvbGxlciAwIGlu c3RlYWQgb2YNCj4gPj4+ICAgICByZWRlZmluaW5nIGl0LiAoSmFuaSkuDQo+ID4+PiAgICAgVXNl IGRldl9wcml2LT5yYXdjbGtfZnJlcSBpbnN0ZWFkIG9mIGdldHRpbmcgdGhlIHZhbHVlDQo+ID4+ PiAgICAgZnJvbSBTRlVTRV9TVFJBUC4NCj4gPj4+IHYzOiBBdm9pZCBzZXR1cCBiYWNrbGlnaCBj b250cm9sbGVyIGFsb25nIHdpdGggaG9va3MgYW5kDQo+ID4+PiAgICAgZnVsbHkgcmV1c2UgaG9v a3Mgc2V0dXAgYXMgc3VnZ2VzdGVkIGJ5IEphbmkuDQo+ID4+PiB2NDogQ2xlYW4gdXAgY29tbWl0 IG1lc3NhZ2UuDQo+ID4+PiB2NTogSW1wbGVtZW50IHBlciBQQ0ggaW5zdGVhZCBwZXIgcGxhdGZv cm0uDQo+ID4+Pg0KPiA+Pj4gdjY6IEludHJvZHVjZSBhIG5ldyBmdW5jdGlvbiBmb3IgQ05QLihK YW5pIGFuZCBWaWxsZSkNCj4gPj4+DQo+ID4+PiB2NzogU3F1YXNoIHRoZSBhbGwgQ05QIEJhY2ts aWdodCBzdXBwb3J0IHBhdGNoZXMgaW50byBhIHNpbmdsZSBwYXRjaC4NCj4gPj4+IChKYW5pKQ0K PiA+Pj4NCj4gPj4+IHY4OiBDb3JyZWN0IGluZGVudGF0aW9uLCByZW1vdmUgdW5uZWVkZWQgYmxh bmsgbGluZXMgYW5kIGNvcnJlY3QgbWFpbA0KPiA+Pj4gYWRkcmVzcyAoSmFuaSkuDQo+ID4+Pg0K PiA+Pj4gUmV2aWV3ZWQtYnk6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBpbnRlbC5jb20+DQo+ ID4+DQo+ID4+WXVwLiBXaGF0J3MgdGhlIHBsYW4gZm9yIG1lcmdpbmcgdGhlIHNlcmllcywgaW5j bC4gdGhpcyBwYXRjaD8NCj4gPg0KPiA+IFllcy4gVGhpcyB3aWxsIGJlIG1lcmdlZCBhcyBwYXJ0 IG9mIENOUCBzZXJpZXMuDQo+IA0KPiBPZiBjb3Vyc2UsIGJ1dCB3aGF0J3MgdGhlIHBsYW4gZm9y IG1lcmdpbmcgdGhlIHNlcmllcz8NCj4gDQo+IEJSLA0KPiBKYW5pLg0KPiANCg0KVGhpcyBwYXRj aCBpcyA0LzY3IGluIFJvZHJpZ28ncyBzZXJpZXMuIEl0IG1ha2VzIHNlbnNlIHRvIG1lcmdlIHRo ZSB0b3ANCnNpeCAoQ05QIFBDSCkgcGF0Y2hlcyBpbiBSb2RyaWdvJ3Mgc2VyaWVzIGFuZCB0aGVu IGZvY3VzIG9uIHRoZSByZXN0DQphZnRlciB0aGF0LiBPdXQgb2YgdGhlIHRvcCBzaXgsIDYvNjcg c3RpbGwgbmVlZHMgYSBSLUIuDQoNCkFudXNoYSwgY2FuIHlvdSBwbGVhc2UgcmViYXNlIGFuZCBz dWJtaXQgUm9kcmlnbydzIGZpcnN0IHNpeCBwYXRjaGVzDQoocmVwbGFjaW5nIDQvNjcgd2l0aCB0 aGlzKSA/IA0KDQoNCi1ESw0KDQoNCj4gDQo+ID4NCj4gPiBBbnVzaGENCj4gPj5CUiwNCj4gPj5K YW5pLg0KPiA+Pg0KPiA+Pg0KPiA+Pj4gU3VnZ2VzdGVkLWJ5OiBKYW5pIE5pa3VsYSA8amFuaS5u aWt1bGFAaW50ZWwuY29tPg0KPiA+Pj4gU3VnZ2VzdGVkLWJ5OiBWaWxsZSBTeXJqYWxhIDx2aWxs ZS5zeXJqYWxhQGludGVsLmNvbT4NCj4gPj4+IENjOiBWaWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJq YWxhQGxpbnV4LmludGVsLmNvbT4NCj4gPj4+IENjOiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFA aW50ZWwuY29tPg0KPiA+Pj4gU2lnbmVkLW9mZi1ieTogQW51c2hhIFNyaXZhdHNhIDxhbnVzaGEu c3JpdmF0c2FAaW50ZWwuY29tPg0KPiA+Pj4gU2lnbmVkLW9mZi1ieTogUm9kcmlnbyBWaXZpIDxy b2RyaWdvLnZpdmlAaW50ZWwuY29tPg0KPiA+Pj4gLS0tDQo+ID4+PiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcGFuZWwuYyB8IDg4DQo+ID4+PiArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0tLQ0KPiA+Pj4gIDEgZmlsZSBjaGFuZ2VkLCA4MyBpbnNlcnRpb25zKCspLCA1 IGRlbGV0aW9ucygtKQ0KPiA+Pj4NCj4gPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wYW5lbC5jDQo+ID4+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bh bmVsLmMNCj4gPj4+IGluZGV4IDE5NzhiZWMuLjhlZTYxYzEgMTAwNjQ0DQo+ID4+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jDQo+ID4+PiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jDQo+ID4+PiBAQCAtNzk2LDYgKzc5NiwxOSBAQCBzdGF0 aWMgdm9pZCBieHRfZGlzYWJsZV9iYWNrbGlnaHQoc3RydWN0DQo+ID4+aW50ZWxfY29ubmVjdG9y ICpjb25uZWN0b3IpDQo+ID4+PiAgCX0NCj4gPj4+ICB9DQo+ID4+Pg0KPiA+Pj4gK3N0YXRpYyB2 b2lkIGNucF9kaXNhYmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0 b3IpDQo+ID4+PiArew0KPiA+Pj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOw0KPiA+Pj4gKwlzdHJ1Y3QgaW50ZWxfcGFu ZWwgKnBhbmVsID0gJmNvbm5lY3Rvci0+cGFuZWw7DQo+ID4+PiArCXUzMiB0bXAsIHZhbDsNCj4g Pj4+ICsNCj4gPj4+ICsJaW50ZWxfcGFuZWxfYWN0dWFsbHlfc2V0X2JhY2tsaWdodChjb25uZWN0 b3IsIDApOw0KPiA+Pj4gKw0KPiA+Pj4gKwl0bXAgPSBJOTE1X1JFQUQoQlhUX0JMQ19QV01fQ1RM KHBhbmVsLT5iYWNrbGlnaHQuY29udHJvbGxlcikpOw0KPiA+Pj4gKwlJOTE1X1dSSVRFKEJYVF9C TENfUFdNX0NUTChwYW5lbC0+YmFja2xpZ2h0LmNvbnRyb2xsZXIpLA0KPiA+Pj4gKwkJICAgdG1w ICYgfkJYVF9CTENfUFdNX0VOQUJMRSk7DQo+ID4+PiArfQ0KPiA+Pj4gKw0KPiA+Pj4gIHN0YXRp YyB2b2lkIHB3bV9kaXNhYmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25u ZWN0b3IpDQo+ID4+PiB7DQo+ID4+PiAgCXN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwgPSAmY29u bmVjdG9yLT5wYW5lbDsgQEAgLTEwNzYsNiArMTA4OSwzNg0KPiA+Pj4gQEAgc3RhdGljIHZvaWQg Ynh0X2VuYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQ0K PiA+Pj4gIAkJCXB3bV9jdGwgfCBCWFRfQkxDX1BXTV9FTkFCTEUpOw0KPiA+Pj4gIH0NCj4gPj4+ DQo+ID4+PiArc3RhdGljIHZvaWQgY25wX2VuYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nv bm5lY3RvciAqY29ubmVjdG9yKSB7DQo+ID4+PiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7DQo+ID4+PiArCXN0cnVjdCBp bnRlbF9wYW5lbCAqcGFuZWwgPSAmY29ubmVjdG9yLT5wYW5lbDsNCj4gPj4+ICsJZW51bSBwaXBl IHBpcGUgPSBpbnRlbF9nZXRfcGlwZV9mcm9tX2Nvbm5lY3Rvcihjb25uZWN0b3IpOw0KPiA+Pj4g Kwl1MzIgcHdtX2N0bCwgdmFsOw0KPiA+Pj4gKw0KPiA+Pj4gKwlwd21fY3RsID0gSTkxNV9SRUFE KEJYVF9CTENfUFdNX0NUTChwYW5lbC0+YmFja2xpZ2h0LmNvbnRyb2xsZXIpKTsNCj4gPj4+ICsJ aWYgKHB3bV9jdGwgJiBCWFRfQkxDX1BXTV9FTkFCTEUpIHsNCj4gPj4+ICsJCURSTV9ERUJVR19L TVMoImJhY2tsaWdodCBhbHJlYWR5IGVuYWJsZWRcbiIpOw0KPiA+Pj4gKwkJcHdtX2N0bCAmPSB+ QlhUX0JMQ19QV01fRU5BQkxFOw0KPiA+Pj4gKwkJSTkxNV9XUklURShCWFRfQkxDX1BXTV9DVEwo cGFuZWwtPmJhY2tsaWdodC5jb250cm9sbGVyKSwNCj4gPj4+ICsJCQkgICBwd21fY3RsKTsNCj4g Pj4+ICsJfQ0KPiA+Pj4gKw0KPiA+Pj4gKwlJOTE1X1dSSVRFKEJYVF9CTENfUFdNX0ZSRVEocGFu ZWwtPmJhY2tsaWdodC5jb250cm9sbGVyKSwNCj4gPj4+ICsJCSAgIHBhbmVsLT5iYWNrbGlnaHQu bWF4KTsNCj4gPj4+ICsNCj4gPj4+ICsJaW50ZWxfcGFuZWxfYWN0dWFsbHlfc2V0X2JhY2tsaWdo dChjb25uZWN0b3IsDQo+ID4+PiArcGFuZWwtPmJhY2tsaWdodC5sZXZlbCk7DQo+ID4+PiArDQo+ ID4+PiArCXB3bV9jdGwgPSAwOw0KPiA+Pj4gKwlpZiAocGFuZWwtPmJhY2tsaWdodC5hY3RpdmVf bG93X3B3bSkNCj4gPj4+ICsJCXB3bV9jdGwgfD0gQlhUX0JMQ19QV01fUE9MQVJJVFk7DQo+ID4+ PiArDQo+ID4+PiArCUk5MTVfV1JJVEUoQlhUX0JMQ19QV01fQ1RMKHBhbmVsLT5iYWNrbGlnaHQu Y29udHJvbGxlciksIHB3bV9jdGwpOw0KPiA+Pj4gKwlQT1NUSU5HX1JFQUQoQlhUX0JMQ19QV01f Q1RMKHBhbmVsLT5iYWNrbGlnaHQuY29udHJvbGxlcikpOw0KPiA+Pj4gKwlJOTE1X1dSSVRFKEJY VF9CTENfUFdNX0NUTChwYW5lbC0+YmFja2xpZ2h0LmNvbnRyb2xsZXIpLA0KPiA+Pj4gKwkJICAg cHdtX2N0bCB8IEJYVF9CTENfUFdNX0VOQUJMRSk7DQo+ID4+PiArfQ0KPiA+Pj4gKw0KPiA+Pj4g IHN0YXRpYyB2b2lkIHB3bV9lbmFibGVfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3Ig KmNvbm5lY3RvcikNCj4gPj4+IHsNCj4gPj4+ICAJc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9 ICZjb25uZWN0b3ItPnBhbmVsOyBAQCAtMTY0NSw2ICsxNjg4LDM3DQo+ID4+PiBAQCBieHRfc2V0 dXBfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwgZW51bSBwaXBl DQo+ID4+dW51c2VkKQ0KPiA+Pj4gIAlyZXR1cm4gMDsNCj4gPj4+ICB9DQo+ID4+Pg0KPiA+Pj4g K3N0YXRpYyBpbnQNCj4gPj4+ICtjbnBfc2V0dXBfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25u ZWN0b3IgKmNvbm5lY3RvciwgZW51bSBwaXBlDQo+ID4+PiArdW51c2VkKSB7DQo+ID4+PiArCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNl LmRldik7DQo+ID4+PiArCXN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwgPSAmY29ubmVjdG9yLT5w YW5lbDsNCj4gPj4+ICsJdTMyIHB3bV9jdGwsIHZhbDsNCj4gPj4+ICsNCj4gPj4+ICsJcGFuZWwt PmJhY2tsaWdodC5jb250cm9sbGVyID0gZGV2X3ByaXYtPnZidC5iYWNrbGlnaHQuY29udHJvbGxl cjsNCj4gPj4+ICsNCj4gPj4+ICsJcHdtX2N0bCA9IEk5MTVfUkVBRChCWFRfQkxDX1BXTV9DVEwo cGFuZWwtPmJhY2tsaWdodC5jb250cm9sbGVyKSk7DQo+ID4+PiArDQo+ID4+PiArCXBhbmVsLT5i YWNrbGlnaHQuYWN0aXZlX2xvd19wd20gPSBwd21fY3RsICYNCj4gPj5CWFRfQkxDX1BXTV9QT0xB UklUWTsNCj4gPj4+ICsJcGFuZWwtPmJhY2tsaWdodC5tYXggPQ0KPiA+Pj4gKwkJSTkxNV9SRUFE KEJYVF9CTENfUFdNX0ZSRVEocGFuZWwtPmJhY2tsaWdodC5jb250cm9sbGVyKSk7DQo+ID4+PiAr DQo+ID4+PiArCWlmICghcGFuZWwtPmJhY2tsaWdodC5tYXgpDQo+ID4+PiArCQlwYW5lbC0+YmFj a2xpZ2h0Lm1heCA9IGdldF9iYWNrbGlnaHRfbWF4X3ZidChjb25uZWN0b3IpOw0KPiA+Pj4gKw0K PiA+Pj4gKwlpZiAoIXBhbmVsLT5iYWNrbGlnaHQubWF4KQ0KPiA+Pj4gKwkJcmV0dXJuIC1FTk9E RVY7DQo+ID4+PiArDQo+ID4+PiArCXZhbCA9IGJ4dF9nZXRfYmFja2xpZ2h0KGNvbm5lY3Rvcik7 DQo+ID4+PiArCXZhbCA9IGludGVsX3BhbmVsX2NvbXB1dGVfYnJpZ2h0bmVzcyhjb25uZWN0b3Is IHZhbCk7DQo+ID4+PiArCXBhbmVsLT5iYWNrbGlnaHQubGV2ZWwgPSBjbGFtcCh2YWwsIHBhbmVs LT5iYWNrbGlnaHQubWluLA0KPiA+Pj4gKwkJCQkgICAgICAgcGFuZWwtPmJhY2tsaWdodC5tYXgp Ow0KPiA+Pj4gKw0KPiA+Pj4gKwlwYW5lbC0+YmFja2xpZ2h0LmVuYWJsZWQgPSBwd21fY3RsICYg QlhUX0JMQ19QV01fRU5BQkxFOw0KPiA+Pj4gKw0KPiA+Pj4gKwlyZXR1cm4gMDsNCj4gPj4+ICt9 DQo+ID4+PiArDQo+ID4+PiAgc3RhdGljIGludCBwd21fc2V0dXBfYmFja2xpZ2h0KHN0cnVjdCBp bnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwNCj4gPj4+ICAJCQkgICAgICAgZW51bSBwaXBlIHBp cGUpDQo+ID4+PiAgew0KPiA+Pj4gQEAgLTE3NTQsMTYgKzE4MjgsMjAgQEAgaW50ZWxfcGFuZWxf aW5pdF9iYWNrbGlnaHRfZnVuY3Moc3RydWN0IGludGVsX3BhbmVsDQo+ID4+KnBhbmVsKQ0KPiA+ Pj4gIAkgICAgaW50ZWxfZHNpX2Rjc19pbml0X2JhY2tsaWdodF9mdW5jcyhjb25uZWN0b3IpID09 IDApDQo+ID4+PiAgCQlyZXR1cm47DQo+ID4+Pg0KPiA+Pj4gLQlpZiAoSVNfR0VOOV9MUChkZXZf cHJpdikgfHwgSEFTX1BDSF9DTlAoZGV2X3ByaXYpKSB7DQo+ID4+PiArCWlmIChJU19HRU45X0xQ KGRldl9wcml2KSkgew0KPiA+Pj4gIAkJcGFuZWwtPmJhY2tsaWdodC5zZXR1cCA9IGJ4dF9zZXR1 cF9iYWNrbGlnaHQ7DQo+ID4+PiAgCQlwYW5lbC0+YmFja2xpZ2h0LmVuYWJsZSA9IGJ4dF9lbmFi bGVfYmFja2xpZ2h0Ow0KPiA+Pj4gIAkJcGFuZWwtPmJhY2tsaWdodC5kaXNhYmxlID0gYnh0X2Rp c2FibGVfYmFja2xpZ2h0Ow0KPiA+Pj4gIAkJcGFuZWwtPmJhY2tsaWdodC5zZXQgPSBieHRfc2V0 X2JhY2tsaWdodDsNCj4gPj4+ICAJCXBhbmVsLT5iYWNrbGlnaHQuZ2V0ID0gYnh0X2dldF9iYWNr bGlnaHQ7DQo+ID4+PiAtCQlpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpDQo+ID4+PiAtCQkJcGFu ZWwtPmJhY2tsaWdodC5oel90b19wd20gPSBieHRfaHpfdG9fcHdtOw0KPiA+Pj4gLQkJZWxzZQ0K PiA+Pj4gLQkJCXBhbmVsLT5iYWNrbGlnaHQuaHpfdG9fcHdtID0gY25wX2h6X3RvX3B3bTsNCj4g Pj4+ICsJCXBhbmVsLT5iYWNrbGlnaHQuaHpfdG9fcHdtID0gYnh0X2h6X3RvX3B3bTsNCj4gPj4+ ICsJfSBlbHNlIGlmIChIQVNfUENIX0NOUChkZXZfcHJpdikpIHsNCj4gPj4+ICsJCXBhbmVsLT5i YWNrbGlnaHQuc2V0dXAgPSBjbnBfc2V0dXBfYmFja2xpZ2h0Ow0KPiA+Pj4gKwkJcGFuZWwtPmJh Y2tsaWdodC5lbmFibGUgPSBjbnBfZW5hYmxlX2JhY2tsaWdodDsNCj4gPj4+ICsJCXBhbmVsLT5i YWNrbGlnaHQuZGlzYWJsZSA9IGNucF9kaXNhYmxlX2JhY2tsaWdodDsNCj4gPj4+ICsJCXBhbmVs LT5iYWNrbGlnaHQuc2V0ID0gYnh0X3NldF9iYWNrbGlnaHQ7DQo+ID4+PiArCQlwYW5lbC0+YmFj a2xpZ2h0LmdldCA9IGJ4dF9nZXRfYmFja2xpZ2h0Ow0KPiA+Pj4gKwkJcGFuZWwtPmJhY2tsaWdo dC5oel90b19wd20gPSBjbnBfaHpfdG9fcHdtOw0KPiA+Pj4gIAl9IGVsc2UgaWYgKEhBU19QQ0hf TFBUKGRldl9wcml2KSB8fCBIQVNfUENIX1NQVChkZXZfcHJpdikgfHwNCj4gPj4+ICAJCSAgIEhB U19QQ0hfS0JQKGRldl9wcml2KSkgew0KPiA+Pj4gIAkJcGFuZWwtPmJhY2tsaWdodC5zZXR1cCA9 IGxwdF9zZXR1cF9iYWNrbGlnaHQ7DQo+ID4+DQo+ID4+LS0NCj4gPj5KYW5pIE5pa3VsYSwgSW50 ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXINCj4gDQoNCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=