From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Pandiyan, Dhinakaran" Subject: Re: [PATCH v7 9/9] drm/i915: Set PWM divider to match desired frequency in vbt Date: Mon, 15 May 2017 23:07:03 +0000 Message-ID: <1494890825.12250.48.camel@dk-H97M-D3H> References: <20170511230225.142870-1-puthik@chromium.org> <20170511230225.142870-10-puthik@chromium.org> <1494635550.12250.19.camel@dk-H97M-D3H> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-US Content-ID: <33B66A82F846DB4F9832E1F993069DAB@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "puthik@chromium.org" Cc: "intel-gfx@lists.freedesktop.org" , "dri-devel@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCAyMDE3LTA1LTEyIGF0IDE3OjMxIC0wNzAwLCBQdXRoaWtvcm4gVm9yYXZvb3RpdmF0 IHdyb3RlOg0KPiANCj4gDQo+IA0KPiBPbiBGcmksIE1heSAxMiwgMjAxNyBhdCA1OjEyIFBNLCBQ YW5kaXlhbiwgRGhpbmFrYXJhbg0KPiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5jb20+IHdy b3RlOg0KPiAgICAgICAgIE9uIFRodSwgMjAxNy0wNS0xMSBhdCAxNjowMiAtMDcwMCwgUHV0aGlr b3JuIFZvcmF2b290aXZhdA0KPiAgICAgICAgIHdyb3RlOg0KPiAgICAgICAgID4gUmVhZCBkZXNp cmVkIFBXTSBmcmVxdWVuY3kgZnJvbSBwYW5lbCB2YnQgYW5kIGNhbGN1bGF0ZSB0aGUNCj4gICAg ICAgICA+IHZhbHVlIGZvciBkaXZpZGVyIGluIERQQ0QgYWRkcmVzcyAweDcyNCBhbmQgMHg3Mjgg dG8gaGF2ZQ0KPiAgICAgICAgID4gYXMgbWFueSBiaXRzIGFzIHBvc3NpYmxlIGZvciBQV00gZHV0 eSBjeWxlIGZvciBncmFudWxhcml0eQ0KPiAgICAgICAgIG9mDQo+ICAgICAgICAgPiBicmlnaHRu ZXNzIGFkanVzdG1lbnQgd2hpbGUgdGhlIGZyZXF1ZW5jeSBpcyBzdGlsbCB3aXRoaW4NCj4gICAg ICAgICAyNSUNCj4gICAgICAgICA+IG9mIHRoZSBkZXNpcmVkIGZyZXF1ZW5jeS4NCj4gICAgICAg ICANCj4gICAgICAgICBJIHJlYWQgYSBmZXcgZURQIHBhbmVsIGRhdGEgc2hlZXRzLCB0aGUgUFdN IGZyZXF1ZW5jaWVzIGFsbA0KPiAgICAgICAgIHN0YXJ0IGZyb20NCj4gICAgICAgICB+MjAwSHou IElmIHRoZSBWQlQgY2hvb3NlcyB0aGlzIGxvd2VzdCB2YWx1ZSB0byBhbGxvdyBmb3IgbW9yZQ0K PiAgICAgICAgIGJyaWdodG5lc3MgY29udHJvbCwgYW5kIHRoZW4gdGhpcyBwYXRjaCBsb3dlcnMg dGhlIHZhbHVlIGJ5DQo+ICAgICAgICAgYW5vdGhlciAyNSUsDQo+ICAgICAgICAgd2UnbGwgZW5k IHVwIGJlbG93IHRoZSBwYW5lbCBhbGxvd2VkIFBXTSBmcmVxdWVuY3kuDQo+ICAgICAgICAgDQo+ ICAgICAgICAgSW4gZmFjdCwgb25lIG9mIHRoZSBzeXN0ZW1zIEkgY2hlY2tlZCBoYWQgUFdNIGZy ZXF1ZW5jeSBhcw0KPiAgICAgICAgIDIwMEh6IGluIFZCVA0KPiAgICAgICAgIGFuZCB0aGUgcGFu ZWwgZGF0YXNoZWV0IGFsc28gaGFkIFBXTSBmcmVxdWVuY3kgcmFuZ2Ugc3RhcnRpbmcNCj4gICAg ICAgICBmcm9tDQo+ICAgICAgICAgMjAwSHouIEhhdmUgeW91IGNvbnNpZGVyZWQgdGhpcyBjYXNl Pw0KPiAgICAgICAgIA0KPiBUaGUgc3BlYyBzYWlkICJBIGdpdmVuIExDRCBwYW5lbCB0eXBpY2Fs bHkgaGFzIGEgbGltaXRlZCByYW5nZSBvZg0KPiBiYWNrbGlnaHQgZnJlcXVlbmN5IGNhcGFiaWxp dHkuIA0KPiBUbyBsaW1pdCB0aGUgcHJvZ3JhbW1hYmxlIGZyZXF1ZW5jeSByYW5nZSwgbGltaXRh dGlvbnMgYXJlIHBsYWNlZCBvbg0KPiB0aGUgYWxsb3dhYmxlIHRvdGFsIGRpdmlkZXIgcmF0aW8g d2l0aCB0aGUgU2luayBkZXZpY2UiDQo+ICBTbyBJIHRoaW5rIGl0IHNob3VsZCBiZSBhdXRvIGNh cCB0byAyMDBIeiBpbiB0aGlzIGNhc2UuDQo+ICANCj4gICAgICAgICAtREsNCj4gICAgICAgICA+ DQo+ICAgICAgICAgPiBTaWduZWQtb2ZmLWJ5OiBQdXRoaWtvcm4gVm9yYXZvb3RpdmF0IDxwdXRo aWtAY2hyb21pdW0ub3JnPg0KPiAgICAgICAgID4gLS0tDQo+ICAgICAgICAgPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHBfYXV4X2JhY2tsaWdodC5jIHwgODENCj4gICAgICAgICArKysr KysrKysrKysrKysrKysrKysrKysrKysNCj4gICAgICAgICA+ICAxIGZpbGUgY2hhbmdlZCwgODEg aW5zZXJ0aW9ucygrKQ0KPiAgICAgICAgID4NCj4gICAgICAgICA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9hdXhfYmFja2xpZ2h0LmMNCj4gICAgICAgICBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX2F1eF9iYWNrbGlnaHQuYw0KPiAgICAgICAgID4g aW5kZXggMGI0ODg1MTAxM2NjLi42ZjEwYTJmMWFiNzYgMTAwNjQ0DQo+ICAgICAgICAgPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9hdXhfYmFja2xpZ2h0LmMNCj4gICAgICAg ICA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX2F1eF9iYWNrbGlnaHQuYw0K PiAgICAgICAgID4gQEAgLTExMywxMiArMTEzLDg2IEBADQo+ICAgICAgICAgaW50ZWxfZHBfYXV4 X3NldF9keW5hbWljX2JhY2tsaWdodF9wZXJjZW50KHN0cnVjdCBpbnRlbF9kcA0KPiAgICAgICAg ICppbnRlbF9kcCwNCj4gICAgICAgICA+ICAgICAgIH0NCj4gICAgICAgICA+ICB9DQo+ICAgICAg ICAgPg0KPiAgICAgICAgID4gKy8qDQo+ICAgICAgICAgPiArICogU2V0IFBXTSBGcmVxdWVuY3kg ZGl2aWRlciB0byBtYXRjaCBkZXNpcmVkIGZyZXF1ZW5jeSBpbg0KPiAgICAgICAgIHZidC4NCj4g ICAgICAgICA+ICsgKiBUaGUgUFdNIEZyZXF1ZW5jeSBpcyBjYWxjdWxhdGVkIGFzIDI3TWh6IC8g KEYgeCBQKS4NCj4gICAgICAgICA+ICsgKiAtIFdoZXJlIEYgPSBQV00gRnJlcXVlbmN5IFByZS1E aXZpZGVyIHZhbHVlIHByb2dyYW1tZWQNCj4gICAgICAgICBieSBmaWVsZCA3OjAgb2YgdGhlDQo+ ICAgICAgICAgPiArICogICAgICAgICAgICAgRURQX0JBQ0tMSUdIVF9GUkVRX1NFVCByZWdpc3Rl ciAoRFBDRA0KPiAgICAgICAgIEFkZHJlc3MgMDA3MjhoKQ0KPiAgICAgICAgID4gKyAqIC0gV2hl cmUgUCA9IDJeUG4sIHdoZXJlIFBuIGlzIHRoZSB2YWx1ZSBwcm9ncmFtbWVkIGJ5DQo+ICAgICAg ICAgZmllbGQgNDowIG9mIHRoZQ0KPiAgICAgICAgID4gKyAqICAgICAgICAgICAgIEVEUF9QV01H RU5fQklUX0NPVU5UIHJlZ2lzdGVyIChEUENEIEFkZHJlc3MNCj4gICAgICAgICAwMDcyNGgpDQo+ ICAgICAgICAgPiArICovDQo+ICAgICAgICAgPiArc3RhdGljIHZvaWQgaW50ZWxfZHBfYXV4X3Nl dF9wd21fZnJlcShzdHJ1Y3QNCj4gICAgICAgICBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikN Cj4gICAgICAgICA+ICt7DQo+ICAgICAgICAgPiArICAgICBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPQ0KPiAgICAgICAgIHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7DQo+ ICAgICAgICAgPiArICAgICBzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0NCj4gICAgICAgICBl bmNfdG9faW50ZWxfZHAoJmNvbm5lY3Rvci0+ZW5jb2Rlci0+YmFzZSk7DQo+ICAgICAgICAgPiAr ICAgICBpbnQgZnJlcSwgZnhwLCBmeHBfbWluLCBmeHBfbWF4LCBmeHBfYWN0dWFsLCBmID0gMTsN Cj4gICAgICAgICA+ICsgICAgIHU4IHBuLCBwbl9taW4sIHBuX21heDsNCj4gICAgICAgICA+ICsN Cj4gICAgICAgICA+ICsgICAgIC8qIEZpbmQgZGVzaXJlZCB2YWx1ZSBvZiAoRiB4IFApDQo+ICAg ICAgICAgPiArICAgICAgKiBOb3RlIHRoYXQsIGlmIEYgeCBQIGlzIG91dCBvZiBzdXBwb3J0ZWQg cmFuZ2UsIHRoZQ0KPiAgICAgICAgIG1heGltdW0gdmFsdWUgb3INCj4gICAgICAgICA+ICsgICAg ICAqIG1pbmltdW0gdmFsdWUgd2lsbCBhcHBsaWVkIGF1dG9tYXRpY2FsbHkuIFNvIG5vDQo+ICAg ICAgICAgbmVlZCB0byBjaGVjayB0aGF0Lg0KPiAgICAgICAgID4gKyAgICAgICovDQo+ICAgICAg ICAgPiArICAgICBmcmVxID0gZGV2X3ByaXYtPnZidC5iYWNrbGlnaHQucHdtX2ZyZXFfaHo7DQo+ ICAgICAgICAgPiArICAgICBEUk1fREVCVUdfS01TKCJWQlQgZGVmaW5lZCBiYWNrbGlnaHQgZnJl cXVlbmN5ICV1IEh6DQo+ICAgICAgICAgXG4iLCBmcmVxKTsNCj4gICAgICAgICA+ICsgICAgIGlm ICghZnJlcSkgew0KPiAgICAgICAgID4gKyAgICAgICAgICAgICBEUk1fREVCVUdfS01TKCJVc2Ug cGFuZWwgZGVmYXVsdCBiYWNrbGlnaHQNCj4gICAgICAgICBmcmVxdWVuY3lcbiIpOw0KPiAgICAg ICAgID4gKyAgICAgICAgICAgICByZXR1cm47DQo+ICAgICAgICAgPiArICAgICB9DQo+ICAgICAg ICAgPiArDQo+ICAgICAgICAgPiArICAgICBmeHAgPSBLSHooRFBfRURQX0JBQ0tMSUdIVF9GUkVR X0JBU0VfS0haKSAvIGZyZXE7DQo+ICAgICAgICAgPiArDQo+ICAgICAgICAgPiArICAgICAvKiBV c2UgaGlnaGVzdCBwb3NzaWJsZSB2YWx1ZSBvZiBQbiBmb3IgbW9yZQ0KPiAgICAgICAgIGdyYW51 bGFyaXR5IG9mIGJyaWdodG5lc3MNCj4gICAgICAgICA+ICsgICAgICAqIGFkanVzdG1lbnQgd2hp bGUgc2F0aWZ5aW5nIHRoZSBjb25kaXRpb25zIGJlbG93Lg0KPiAgICAgICAgID4gKyAgICAgICog LSBQbiBpcyBpbiB0aGUgcmFuZ2Ugb2YgUG5fbWluIGFuZCBQbl9tYXgNCj4gICAgICAgICA+ICsg ICAgICAqIC0gRiBpcyBpbiB0aGUgcmFuZ2Ugb2YgMSBhbmQgMjU1DQo+ICAgICAgICAgPiArICAg ICAgKiAtIEVmZmVjdGl2ZSBmcmVxdWVuY3kgaXMgd2l0aGluIDI1JSBvZiBkZXNpcmVkDQo+ICAg ICAgICAgZnJlcXVlbmN5Lg0KPiAgICAgICAgID4gKyAgICAgICovDQo+ICAgICAgICAgPiArICAg ICBpZiAoZHJtX2RwX2RwY2RfcmVhZGIoJmludGVsX2RwLT5hdXgsDQo+ICAgICAgICAgPiArDQo+ ICAgICAgICAgRFBfRURQX1BXTUdFTl9CSVRfQ09VTlRfQ0FQX01JTiwgJnBuX21pbikgIT0gMSkg ew0KPiAgICAgICAgID4gKyAgICAgICAgICAgICBEUk1fREVCVUdfS01TKCJGYWlsZWQgdG8gcmVh ZCBwd21nZW4gYml0IGNvdW50DQo+ICAgICAgICAgY2FwIG1pblxuIik7DQo+ICAgICAgICAgPiAr ICAgICAgICAgICAgIHJldHVybjsNCj4gICAgICAgICA+ICsgICAgIH0NCj4gICAgICAgICA+ICsg ICAgIGlmIChkcm1fZHBfZHBjZF9yZWFkYigmaW50ZWxfZHAtPmF1eCwNCj4gICAgICAgICA+ICsN Cj4gICAgICAgICBEUF9FRFBfUFdNR0VOX0JJVF9DT1VOVF9DQVBfTUFYLCAmcG5fbWF4KSAhPSAx KSB7DQo+ICAgICAgICAgPiArICAgICAgICAgICAgIERSTV9ERUJVR19LTVMoIkZhaWxlZCB0byBy ZWFkIHB3bWdlbiBiaXQgY291bnQNCj4gICAgICAgICBjYXAgbWF4XG4iKTsNCj4gICAgICAgICA+ ICsgICAgICAgICAgICAgcmV0dXJuOw0KPiAgICAgICAgID4gKyAgICAgfQ0KPiAgICAgICAgID4g KyAgICAgcG5fbWluICY9IERQX0VEUF9QV01HRU5fQklUX0NPVU5UX01BU0s7DQo+ICAgICAgICAg PiArICAgICBwbl9tYXggJj0gRFBfRURQX1BXTUdFTl9CSVRfQ09VTlRfTUFTSzsNCj4gICAgICAg ICA+ICsNCj4gICAgICAgICA+ICsgICAgIGZ4cF9taW4gPSBmeHAgKiAzIC8gNDsNCj4gICAgICAg ICA+ICsgICAgIGZ4cF9tYXggPSBmeHAgKiA1IC8gNDsNCj4gICAgICAgICANCj4gICAgICAgICAN Cj4gICAgICAgICBZb3UgYXJlIGFsbG93aW5nIGZ4cCBiZXR3ZWVuICsvLSAyNSUgb2YgdGhlIGFj dHVhbC4gVGhpcyBpc24ndA0KPiAgICAgICAgIHNhbWUgYXMNCj4gICAgICAgICB0aGUgIkVmZmVj dGl2ZSBmcmVxdWVuY3kgaXMgd2l0aGluIDI1JSBvZiBkZXNpcmVkIGZyZXF1ZW5jeS4iDQo+ICAg ICAgICAgcmlnaHQ/IFRoZQ0KPiAgICAgICAgIGZyZXF1ZW5jeSBjYW4gdmFyeSBiZXR3ZWVuIC0y MCUgYW5kICszMyUuDQo+ICAgICAgICAgDQo+ICAgICAgICAgDQo+IFlvdSBhcmUgcmlnaHQuDQo+ IFlvdSB3YW50IG1lIHRvIGNoYW5nZSBjb21taXQgbWVzc2FnZSB0byByZWZsZWN0IHRoaXMgb3Ig Y2hhbmdlIHRoZQ0KPiBjb2RlIHRvDQo+IG1hdGNoIHRoZSBjb21taXQgbWVzc2FnZT8gIA0KDQpJ IGFtIG9rYXkgd2l0aCBmaXhpbmcgdGhlIGNvbW1lbnQgYW5kIGNvbW1pdCBtZXNzYWdlLiBJcyB0 aGUgMjUlDQphcmJpdHJhcnkgb3IgYmFzZWQgb24gdGhlIGRpc3RhbmNlcyBiZXR3ZWVuIHRoZSBw b3NzaWJsZSB2YWx1ZXM/IFBsZWFzZQ0KbWFrZSBhIG5vdGUgaW4gdGhlIGNvbW1lbnQgaWYgaXQn cyB0aGUgZm9ybWVyLg0KDQoNCj4gICAgICAgICA+ICsgICAgIGlmIChmeHBfbWluIDwgKDEgPDwg cG5fbWluKSB8fCAoMjU1IDw8IHBuX21heCkgPA0KPiAgICAgICAgIGZ4cF9tYXgpIHsNCg0KDQoN Cj4gICAgICAgICA+ICsgICAgICAgICAgICAgRFJNX0RFQlVHX0tNUygiVkJUIGRlZmluZWQgYmFj a2xpZ2h0IGZyZXF1ZW5jeQ0KPiAgICAgICAgIG91dCBvZiByYW5nZVxuIik7DQo+ICAgICAgICAg PiArICAgICAgICAgICAgIHJldHVybjsNCj4gICAgICAgICA+ICsgICAgIH0NCj4gICAgICAgICA+ ICsNCj4gICAgICAgICA+ICsgICAgIGZvciAocG4gPSBwbl9tYXg7IHBuID4gcG5fbWluOyBwbi0t KSB7DQoNCklzIHRoZXJlIGEgcmVhc29uIHRoaXMgaXMgbm90IHBuID49IHBuX21pbj8NCg0KDQo+ ICAgICAgICAgPiArICAgICAgICAgICAgIGYgPSBjbGFtcChmeHAgPj4gcG4sIDEsIDI1NSk7DQo+ ICAgICAgICAgPiArICAgICAgICAgICAgIGZ4cF9hY3R1YWwgPSBmIDw8IHBuOw0KPiAgICAgICAg ID4gKyAgICAgICAgICAgICBpZiAoZnhwX21pbiA8PSBmeHBfYWN0dWFsICYmIGZ4cF9hY3R1YWwg PD0NCj4gICAgICAgICBmeHBfbWF4KQ0KPiAgICAgICAgID4gKyAgICAgICAgICAgICAgICAgICAg IGJyZWFrOw0KPiAgICAgICAgID4gKyAgICAgfQ0KPiAgICAgICAgID4gKw0KPiAgICAgICAgID4g KyAgICAgaWYgKGRybV9kcF9kcGNkX3dyaXRlYigmaW50ZWxfZHAtPmF1eCwNCj4gICAgICAgICA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFBfRURQX1BXTUdFTl9CSVRfQ09VTlQsIHBu KSA8DQo+ICAgICAgICAgMCkgew0KPiAgICAgICAgID4gKyAgICAgICAgICAgICBEUk1fREVCVUdf S01TKCJGYWlsZWQgdG8gd3JpdGUgYXV4IHB3bWdlbiBiaXQNCj4gICAgICAgICBjb3VudFxuIik7 DQoNCg0KSWYgdGhlIG51bWJlciBvZiBicmlnaHRuZXNzIGNvbnRyb2wgYml0cyBhcmUgY2hhbmdp bmcsIHRoZSBtYXguDQpicmlnaHRuZXNzIHZhbHVlIGNoYW5nZXMgdG9vLg0KDQpQbGVhc2Ugc2Vl IGludGVsX2RwX2F1eF9zZXR1cF9iYWNrbGlnaHQoKS4NCg0KDQoNCj4gICAgICAgICA+ICsgICAg ICAgICAgICAgcmV0dXJuOw0KPiAgICAgICAgID4gKyAgICAgfQ0KPiAgICAgICAgID4gKyAgICAg aWYgKGRybV9kcF9kcGNkX3dyaXRlYigmaW50ZWxfZHAtPmF1eCwNCj4gICAgICAgICA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgRFBfRURQX0JBQ0tMSUdIVF9GUkVRX1NFVCwgKHU4KQ0K PiAgICAgICAgIGYpIDwgMCkgew0KPiAgICAgICAgID4gKyAgICAgICAgICAgICBEUk1fREVCVUdf S01TKCJGYWlsZWQgdG8gd3JpdGUgYXV4IGJhY2tsaWdodA0KPiAgICAgICAgIGZyZXFcbiIpOw0K PiAgICAgICAgID4gKyAgICAgICAgICAgICByZXR1cm47DQo+ICAgICAgICAgPiArICAgICB9DQo+ ICAgICAgICAgPiArfQ0KPiAgICAgICAgID4gKw0KPiAgICAgICAgID4gIHN0YXRpYyB2b2lkIGlu dGVsX2RwX2F1eF9lbmFibGVfYmFja2xpZ2h0KHN0cnVjdA0KPiAgICAgICAgIGludGVsX2Nvbm5l Y3RvciAqY29ubmVjdG9yKQ0KPiAgICAgICAgID4gIHsNCj4gICAgICAgICA+ICAgICAgIHN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHAgPQ0KPiAgICAgICAgIGVuY190b19pbnRlbF9kcCgmY29ubmVj dG9yLT5lbmNvZGVyLT5iYXNlKTsNCj4gICAgICAgICA+ICAgICAgIHVpbnQ4X3QgZHBjZF9idWYg PSAwOw0KPiAgICAgICAgID4gICAgICAgdWludDhfdCBuZXdfZHBjZF9idWYgPSAwOw0KPiAgICAg ICAgID4gICAgICAgdWludDhfdCBlZHBfYmFja2xpZ2h0X21vZGUgPSAwOw0KPiAgICAgICAgID4g KyAgICAgYm9vbCBmcmVxX2NhcDsNCj4gICAgICAgICA+DQo+ICAgICAgICAgPiAgICAgICBpZiAo ZHJtX2RwX2RwY2RfcmVhZGIoJmludGVsX2RwLT5hdXgsDQo+ICAgICAgICAgPiAgICAgICAgICAg ICAgICAgICAgICAgRFBfRURQX0JBQ0tMSUdIVF9NT0RFX1NFVF9SRUdJU1RFUiwNCj4gICAgICAg ICAmZHBjZF9idWYpICE9IDEpIHsNCj4gICAgICAgICA+IEBAIC0xNTEsNiArMjI1LDEwIEBAIHN0 YXRpYyB2b2lkDQo+ICAgICAgICAgaW50ZWxfZHBfYXV4X2VuYWJsZV9iYWNrbGlnaHQoc3RydWN0 IGludGVsX2Nvbm5lY3Rvcg0KPiAgICAgICAgICpjb25uZWN0b3IpDQo+ICAgICAgICAgPiAgICAg ICAgICAgICAgIERSTV9ERUJVR19LTVMoIkVuYWJsZSBkeW5hbWljIGJyaWdodG5lc3MuXG4iKTsN Cj4gICAgICAgICA+ICAgICAgIH0NCj4gICAgICAgICA+DQo+ICAgICAgICAgPiArICAgICBmcmVx X2NhcCA9IGludGVsX2RwLT5lZHBfZHBjZFsyXSAmDQo+ICAgICAgICAgRFBfRURQX0JBQ0tMSUdI VF9GUkVRX0FVWF9TRVRfQ0FQOw0KPiAgICAgICAgID4gKyAgICAgaWYgKGZyZXFfY2FwKQ0KPiAg ICAgICAgID4gKyAgICAgICAgICAgICBuZXdfZHBjZF9idWYgfD0NCj4gICAgICAgICBEUF9FRFBf QkFDS0xJR0hUX0ZSRVFfQVVYX1NFVF9FTkFCTEU7DQo+ICAgICAgICAgPiArDQo+ICAgICAgICAg PiAgICAgICBpZiAobmV3X2RwY2RfYnVmICE9IGRwY2RfYnVmKSB7DQo+ICAgICAgICAgPiAgICAg ICAgICAgICAgIGlmIChkcm1fZHBfZHBjZF93cml0ZWIoJmludGVsX2RwLT5hdXgsDQo+ICAgICAg ICAgPiAgICAgICAgICAgICAgICAgICAgICAgRFBfRURQX0JBQ0tMSUdIVF9NT0RFX1NFVF9SRUdJ U1RFUiwNCj4gICAgICAgICBuZXdfZHBjZF9idWYpIDwgMCkgew0KPiAgICAgICAgID4gQEAgLTE1 OCw2ICsyMzYsOSBAQCBzdGF0aWMgdm9pZA0KPiAgICAgICAgIGludGVsX2RwX2F1eF9lbmFibGVf YmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3INCj4gICAgICAgICAqY29ubmVjdG9yKQ0K PiAgICAgICAgID4gICAgICAgICAgICAgICB9DQo+ICAgICAgICAgPiAgICAgICB9DQo+ICAgICAg ICAgPg0KPiAgICAgICAgID4gKyAgICAgaWYgKGZyZXFfY2FwKQ0KPiAgICAgICAgID4gKyAgICAg ICAgICAgICBpbnRlbF9kcF9hdXhfc2V0X3B3bV9mcmVxKGNvbm5lY3Rvcik7DQo+ICAgICAgICAg PiArDQo+ICAgICAgICAgPiAgICAgICBzZXRfYXV4X2JhY2tsaWdodF9lbmFibGUoaW50ZWxfZHAs IHRydWUpOw0KPiAgICAgICAgID4gICAgICAgaW50ZWxfZHBfYXV4X3NldF9iYWNrbGlnaHQoY29u bmVjdG9yLA0KPiAgICAgICAgIGNvbm5lY3Rvci0+cGFuZWwuYmFja2xpZ2h0LmxldmVsKTsNCj4g ICAgICAgICA+ICB9DQo+ICAgICAgICAgDQo+ICAgICAgICAgDQo+IA0KPiANCj4gX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdA0KPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnDQo+IGh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4DQoNCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=