From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [RFC PATCH 2/2] drm/i915/bxt: Adjusting the error in horizontal timings retrieval Date: Thu, 28 Apr 2016 17:11:48 +0300 Message-ID: <87pot9hlgb.fsf@intel.com> References: <1461053894-5058-1-git-send-email-ramalingam.c@intel.com> <1461053894-5058-2-git-send-email-ramalingam.c@intel.com> <20160427171118.GQ4329@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id ACA236E004 for ; Thu, 28 Apr 2016 14:11:52 +0000 (UTC) In-Reply-To: <20160427171118.GQ4329@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville =?utf-8?B?U3lyasOkbMOk?= , Ramalingam C Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAyNyBBcHIgMjAxNiwgVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4gd3JvdGU6Cj4gT24gVHVlLCBBcHIgMTksIDIwMTYgYXQgMDE6NDg6MTRQTSAr MDUzMCwgUmFtYWxpbmdhbSBDIHdyb3RlOgo+PiBJbiBCWFQgRFNJIHRoZXJlIGlzIG5vIHJlZ3Mg cHJvZ3JhbW1lZCB3aXRoIGZldyBob3Jpem9udGFsIHRpbWluZ3MKPj4gaW4gUGl4ZWxzIGJ1dCB0 eGJ5dGVjbGtocy4uIFNvIHJldHJpZXZhbCBwcm9jZXNzIGFkZHMgc29tZQo+PiBST1VORF9VUCBF UlJPUlMgaW4gdGhlIHByb2Nlc3Mgb2YgUElYRUxTPD09PnR4Ynl0ZWNsa2hzLgo+PiAKPj4gQWN0 dWFsbHkgaGVyZSBmb3IgdGhlIGdpdmVuIGFkanVzdGVkX21vZGUsIHdlIGFyZSBjYWxjdWxhdGlu ZyB0aGUKPj4gdmFsdWUgcHJvZ3JhbW1lZCB0byB0aGUgcG9ydCBhbmQgdGhlbiBiYWNrIHRvIHRo ZSBob3Jpem9udGFsIHRpbWluZwo+PiBwYXJhbSBpbiBwaXhlbHMuIFRoaXMgaXMgdGhlIGV4cGVj dGVkIHZhbHVlIGF0IHRoZSBlbmQgb2YgZ2V0X2NvbmZpZywKPj4gaW5jbHVkaW5nIHJvdW5kdXAg ZXJyb3JzLiBBbmQgaWYgdGhhdCBpcyBzYW1lIGFzIHJldHJpZXZlZCB2YWx1ZQo+PiBmcm9tIHBv cnQsIHRoZW4gcmV0cmlldmVkIChIVyBzdGF0ZSkgYWRqdXN0ZWRfbW9kZSdzIGhvcml6b250YWwK Pj4gdGltaW5ncyBhcmUgY29ycmVjdGVkIHRvIG1hdGNoIHdpdGggU1cgc3RhdGUgdG8gbnVsbGlm eSB0aGUgZXJyb3JzLgo+PiAKPj4gU2lnbmVkLW9mZi1ieTogUmFtYWxpbmdhbSBDIDxyYW1hbGlu Z2FtLmNAaW50ZWwuY29tPgo+PiAtLS0KPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rz aS5jIHwgICA5NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLQo+PiAgMSBm aWxlIGNoYW5nZWQsIDg4IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCj4+IAo+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kc2kuYwo+PiBpbmRleCBlMDI1OWU2Li44YTFiODcyIDEwMDY0NAo+PiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYwo+PiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kc2kuYwo+PiBAQCAtNDYsNiArNDYsMTQgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCB7Cj4+ICAJfSwKPj4gIH07Cj4+ICAKPj4gKy8qIHJldHVybiBwaXhlbHMgaW4gdGVy bXMgb2YgdHhieXRlY2xraHMgKi8KPj4gK3N0YXRpYyB1MTYgdHhieXRlY2xraHModTE2IHBpeGVs cywgaW50IGJwcCwgaW50IGxhbmVfY291bnQsCj4+ICsJCSAgICAgICB1MTYgYnVyc3RfbW9kZV9y YXRpbykKPj4gK3sKPj4gKwlyZXR1cm4gRElWX1JPVU5EX1VQKERJVl9ST1VORF9VUChwaXhlbHMg KiBicHAgKiBidXJzdF9tb2RlX3JhdGlvLAo+PiArCQkJCQkgOCAqIDEwMCksIGxhbmVfY291bnQp Owo+PiArfQo+PiArCj4+ICAvKiByZXR1cm4gcGl4ZWxzIGVxdXZhbGVudCB0byB0eGJ5dGVjbGto cyAqLwo+PiAgc3RhdGljIHUxNiBwaXhlbHNfZnJvbV90eGJ5dGVjbGtocyh1MTYgY2xrX2hzLCBp bnQgYnBwLCBpbnQgbGFuZV9jb3VudCwKPj4gIAkJCXUxNiBidXJzdF9tb2RlX3JhdGlvKQo+PiBA QCAtNzc5LDExICs3ODcsMTkgQEAgc3RhdGljIHZvaWQgYnh0X2RzaV9nZXRfcGlwZV9jb25maWco c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPj4gIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqYWRqdXN0ZWRfbW9kZSA9Cj4+ICAJCQkJCSZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3Rl ZF9tb2RlOwo+PiArCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlX3N3Owo+ PiArCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjOwo+PiAgCXN0cnVjdCBpbnRlbF9kc2kg KmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOwo+PiAgCXVuc2ln bmVkIGludCBsYW5lX2NvdW50ID0gaW50ZWxfZHNpLT5sYW5lX2NvdW50Owo+PiAgCXVuc2lnbmVk IGludCBicHAsIGZtdDsKPj4gIAllbnVtIHBvcnQgcG9ydDsKPj4gIAl1MTYgaGFjdGl2ZSwgaGZw LCBoc3luYywgaGJwLCB2ZnAsIHZzeW5jLCB2YnA7Cj4+ICsJdTE2IGhmcF9zdywgaHN5bmNfc3cs IGhicF9zdzsKPj4gKwl1MTYgY3J0Y19odG90YWxfc3csIGNydGNfaHN5bmNfc3RhcnRfc3csIGNy dGNfaHN5bmNfZW5kX3N3LAo+PiArCQkJCWNydGNfaGJsYW5rX3N0YXJ0X3N3LCBjcnRjX2hibGFu a19lbmRfc3c7Cj4+ICsKPj4gKwlpbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyLT5i YXNlLmNydGMpOwo+PiArCWFkanVzdGVkX21vZGVfc3cgPSAmaW50ZWxfY3J0Yy0+Y29uZmlnLT5i YXNlLmFkanVzdGVkX21vZGU7Cj4+Cj4gIAo+PiAgCS8qCj4+ICAJICogQXRsZWFzdCBvbmUgcG9y dCBpcyBhY3RpdmUgYXMgZW5jb2Rlci0+Z2V0X2NvbmZpZyBjYWxsZWQgb25seSBpZgo+PiBAQCAt ODQ3LDggKzg2Myw3OSBAQCBzdGF0aWMgdm9pZCBieHRfZHNpX2dldF9waXBlX2NvbmZpZyhzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPj4gIAlhZGp1c3RlZF9tb2RlLT5jcnRjX3ZzeW5j X2VuZCA9IHZzeW5jICsgYWRqdXN0ZWRfbW9kZS0+Y3J0Y192c3luY19zdGFydDsKPj4gIAlhZGp1 c3RlZF9tb2RlLT5jcnRjX3ZibGFua19zdGFydCA9IGFkanVzdGVkX21vZGUtPmNydGNfdmRpc3Bs YXk7Cj4+ICAJYWRqdXN0ZWRfbW9kZS0+Y3J0Y192YmxhbmtfZW5kID0gYWRqdXN0ZWRfbW9kZS0+ Y3J0Y192dG90YWw7Cj4+IC19Cj4+ICAKPj4gKwkvKgo+PiArCSAqIEluIEJYVCBEU0kgdGhlcmUg aXMgbm8gcmVncyBwcm9ncmFtbWVkIHdpdGggZmV3IGhvcml6b250YWwgdGltaW5ncwo+PiArCSAq IGluIFBpeGVscyBidXQgdHhieXRlY2xraHMuLiBTbyByZXRyaWV2YWwgcHJvY2VzcyBhZGRzIHNv bWUKPj4gKwkgKiBST1VORF9VUCBFUlJPUlMgaW4gdGhlIHByb2Nlc3Mgb2YgUElYRUxTPD09PnR4 Ynl0ZWNsa2hzLgo+PiArCSAqIEFjdHVhbGx5IGhlcmUgZm9yIHRoZSBnaXZlbiBhZGp1c3RlZF9t b2RlLCB3ZSBhcmUgY2FsY3VsYXRpbmcgdGhlCj4+ICsJICogdmFsdWUgcHJvZ3JhbW1lZCB0byB0 aGUgcG9ydCBhbmQgdGhlbiBiYWNrIHRvIHRoZSBob3Jpem9udGFsIHRpbWluZwo+PiArCSAqIHBh cmFtIGluIHBpeGVscy4gVGhpcyBpcyB0aGUgZXhwZWN0ZWQgdmFsdWUsIGluY2x1ZGluZyByb3Vu ZHVwIGVycm9ycwo+PiArCSAqIEFuZCBpZiB0aGF0IGlzIHNhbWUgYXMgcmV0cmlldmVkIHZhbHVl IGZyb20gcG9ydCwgdGhlbgo+PiArCSAqIChIVyBzdGF0ZSkgYWRqdXN0ZWRfbW9kZSdzIGhvcml6 b250YWwgdGltaW5ncyBhcmUgY29ycmVjdGVkIHRvCj4+ICsJICogbWF0Y2ggd2l0aCBTVyBzdGF0 ZSB0byBudWxsaWZ5IHRoZSBlcnJvcnMuCj4+ICsJICovCj4+ICsJLyogQ2FsY3VsYXRpbmcgdGhl IHZhbHVlIHByb2dyYW1tZWQgdG8gdGhlIFBvcnQgcmVnaXN0ZXIgKi8KPj4gKwloZnBfc3cgPSBh ZGp1c3RlZF9tb2RlX3N3LT5jcnRjX2hzeW5jX3N0YXJ0IC0KPj4gKwkJCQkJYWRqdXN0ZWRfbW9k ZV9zdy0+Y3J0Y19oZGlzcGxheTsKPj4gKwloc3luY19zdyA9IGFkanVzdGVkX21vZGVfc3ctPmNy dGNfaHN5bmNfZW5kIC0KPj4gKwkJCQkJYWRqdXN0ZWRfbW9kZV9zdy0+Y3J0Y19oc3luY19zdGFy dDsKPj4gKwloYnBfc3cgPSBhZGp1c3RlZF9tb2RlX3N3LT5jcnRjX2h0b3RhbCAtCj4+ICsJCQkJ CWFkanVzdGVkX21vZGVfc3ctPmNydGNfaHN5bmNfZW5kOwo+Cj4gU28gZHVyaW5nIHRoZSBpbml0 aWFsIHN0YXRlIHJlYWRvdXQgd2UgZ2V0IHBhc3NlZCBjcnRjLT5jb25maWcgYXMKPiBwaXBlX2Nv bmZpZywgYW5kIHNvIHdlJ2xsIGVuZCB1cCBjb21wYXJpbmcgdGhlIHRoaW5nIHdpdGggaXRzZWxm LiBUaGF0Cj4gc2hvdWxkIGJlIGZpbmUuIEEgYml0IG9mIGV4dHJhIGNhcmUgaXMgbmVlZGVkIHRv IG1ha2Ugc3VyZSB3ZSBkb24ndCB1c2UKPiBhbnl0aGluZyBmcm9tIGNydGMtPmNvbmZpZyBiZWZv cmUgd2UndmUgZmlsbGVkIGl0IG91dCB3aXRoIHNvbWV0aGluZywKPiBidXQgbG9va3MgbGlrZSB0 aGUgY29kZSBkb2VzIHRoaW5ncyBpbiB0aGUgcmlnaHQgb3JkZXIgKGdpdmVuIHRoZQo+IHByZXZp b3VzIHBhdGNoIHdoaWNoIGZpbGxzIG91dCBhbGwgdGhlIGh0aW1pbmdzIHdpdGggc29tZXRoaW5n KS4KPgo+IEkgdGhpbmsgdGhlIGJpZ2dlc3QgaXNzdWUgd2l0aCB0aGlzIHBhdGNoIGlzIHNlZWlu ZyB0aGUgZm9yZXN0IGZyb20gdGhlCj4gdHJlZXMuIFNvbWUgcmVmYWN0b3Jpbmcgd291bGQgYmUg Z29vZCBzbyB0aGF0IHdlJ2QgaGF2ZSBzb21lIGtpbmQgb2YKPiBodGltaW5nc197dG8sZnJvbX1f dHhieXRlY2xraHMoKSBmdW5jdGlvbnMgaW5zdGVhZCBvZiBkdXBsaWNhdGluZyB0aGUKPiBzYW1l IGNvZGUgbXVsdGlwbGUgdGltZXMuCgpBZ3JlZWQuIEhvd2V2ZXIsIEkgb3B0ZWQgdG8gcHVzaCB0 aGVtIGFzLWlzIGFzIHRoZXkgZml4IHRoZSBib290IGhhbmcsCmFuZCBsZWF2ZSB0aGUgcmVmYWN0 b3JpbmcgYXMgZm9sbG93LXVwLgoKQlIsCkphbmkuCgoKPgo+IFNvIHdoaWxlIGl0IGRvZXMgbG9v ayBxdWl0ZSBzdHJhbmdlIHRvIGJlIHVzaW5nIGNydGMtPmNvbmZpZyBpbiB0aGUKPiAuZ2V0X2Nv bmZpZygpIEkgdGhpbmsgaXQgc2hvdWxkIHdvcmsgb3V0Lgo+Cj4gQWNrZWQtYnk6IFZpbGxlIFN5 cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4KPj4gKwo+PiArCWlmIChp bnRlbF9kc2ktPmR1YWxfbGluaykgewo+PiArCQloZnBfc3cgLz0gMjsKPj4gKwkJaHN5bmNfc3cg Lz0gMjsKPj4gKwkJaGJwX3N3IC89IDI7Cj4+ICsJfQo+PiArCj4+ICsJaGZwX3N3ID0gdHhieXRl Y2xraHMoaGZwX3N3LCBicHAsIGxhbmVfY291bnQsCj4+ICsJCQkJCQlpbnRlbF9kc2ktPmJ1cnN0 X21vZGVfcmF0aW8pOwo+PiArCWhzeW5jX3N3ID0gdHhieXRlY2xraHMoaHN5bmNfc3csIGJwcCwg bGFuZV9jb3VudCwKPj4gKwkJCSAgICBpbnRlbF9kc2ktPmJ1cnN0X21vZGVfcmF0aW8pOwo+PiAr CWhicF9zdyA9IHR4Ynl0ZWNsa2hzKGhicF9zdywgYnBwLCBsYW5lX2NvdW50LAo+PiArCQkJCQkJ aW50ZWxfZHNpLT5idXJzdF9tb2RlX3JhdGlvKTsKPj4gKwo+PiArCS8qIFJldmVyc2UgY2FsY3Vs YXRpbmcgdGhlIGFkanVzdGVkIG1vZGUgcGFyYW1ldGVycyBmcm9tIHBvcnQgcmVnIHZhbHMqLwo+ PiArCWhmcF9zdyA9IHBpeGVsc19mcm9tX3R4Ynl0ZWNsa2hzKGhmcF9zdywgYnBwLCBsYW5lX2Nv dW50LAo+PiArCQkJCQkJaW50ZWxfZHNpLT5idXJzdF9tb2RlX3JhdGlvKTsKPj4gKwloc3luY19z dyA9IHBpeGVsc19mcm9tX3R4Ynl0ZWNsa2hzKGhzeW5jX3N3LCBicHAsIGxhbmVfY291bnQsCj4+ ICsJCQkJCQlpbnRlbF9kc2ktPmJ1cnN0X21vZGVfcmF0aW8pOwo+PiArCWhicF9zdyA9IHBpeGVs c19mcm9tX3R4Ynl0ZWNsa2hzKGhicF9zdywgYnBwLCBsYW5lX2NvdW50LAo+PiArCQkJCQkJaW50 ZWxfZHNpLT5idXJzdF9tb2RlX3JhdGlvKTsKPj4gKwo+PiArCWlmIChpbnRlbF9kc2ktPmR1YWxf bGluaykgewo+PiArCQloZnBfc3cgKj0gMjsKPj4gKwkJaHN5bmNfc3cgKj0gMjsKPj4gKwkJaGJw X3N3ICo9IDI7Cj4+ICsJfQo+PiArCj4+ICsJY3J0Y19odG90YWxfc3cgPSBhZGp1c3RlZF9tb2Rl X3N3LT5jcnRjX2hkaXNwbGF5ICsgaGZwX3N3ICsKPj4gKwkJCQkJCQloc3luY19zdyArIGhicF9z dzsKPj4gKwljcnRjX2hzeW5jX3N0YXJ0X3N3ID0gaGZwX3N3ICsgYWRqdXN0ZWRfbW9kZV9zdy0+ Y3J0Y19oZGlzcGxheTsKPj4gKwljcnRjX2hzeW5jX2VuZF9zdyA9IGhzeW5jX3N3ICsgY3J0Y19o c3luY19zdGFydF9zdzsKPj4gKwljcnRjX2hibGFua19zdGFydF9zdyA9IGFkanVzdGVkX21vZGVf c3ctPmNydGNfaGRpc3BsYXk7Cj4+ICsJY3J0Y19oYmxhbmtfZW5kX3N3ID0gY3J0Y19odG90YWxf c3c7Cj4+ICsKPj4gKwlpZiAoYWRqdXN0ZWRfbW9kZS0+Y3J0Y19odG90YWwgPT0gY3J0Y19odG90 YWxfc3cpCj4+ICsJCWFkanVzdGVkX21vZGUtPmNydGNfaHRvdGFsID0gYWRqdXN0ZWRfbW9kZV9z dy0+Y3J0Y19odG90YWw7Cj4+ICsKPj4gKwlpZiAoYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oc3luY19z dGFydCA9PSBjcnRjX2hzeW5jX3N0YXJ0X3N3KQo+PiArCQlhZGp1c3RlZF9tb2RlLT5jcnRjX2hz eW5jX3N0YXJ0ID0KPj4gKwkJCQkJYWRqdXN0ZWRfbW9kZV9zdy0+Y3J0Y19oc3luY19zdGFydDsK Pj4gKwo+PiArCWlmIChhZGp1c3RlZF9tb2RlLT5jcnRjX2hzeW5jX2VuZCA9PSBjcnRjX2hzeW5j X2VuZF9zdykKPj4gKwkJYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oc3luY19lbmQgPQo+PiArCQkJCQlh ZGp1c3RlZF9tb2RlX3N3LT5jcnRjX2hzeW5jX2VuZDsKPj4gKwo+PiArCWlmIChhZGp1c3RlZF9t b2RlLT5jcnRjX2hibGFua19zdGFydCA9PSBjcnRjX2hibGFua19zdGFydF9zdykKPj4gKwkJYWRq dXN0ZWRfbW9kZS0+Y3J0Y19oYmxhbmtfc3RhcnQgPQo+PiArCQkJCQlhZGp1c3RlZF9tb2RlX3N3 LT5jcnRjX2hibGFua19zdGFydDsKPj4gKwo+PiArCWlmIChhZGp1c3RlZF9tb2RlLT5jcnRjX2hi bGFua19lbmQgPT0gY3J0Y19oYmxhbmtfZW5kX3N3KQo+PiArCQlhZGp1c3RlZF9tb2RlLT5jcnRj X2hibGFua19lbmQgPQo+PiArCQkJCQlhZGp1c3RlZF9tb2RlX3N3LT5jcnRjX2hibGFua19lbmQ7 Cj4+ICt9Cj4+ICAKPj4gIHN0YXRpYyB2b2lkIGludGVsX2RzaV9nZXRfY29uZmlnKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAo+PiAgCQkJCSBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq cGlwZV9jb25maWcpCj4+IEBAIC05MTcsMTQgKzEwMDQsNiBAQCBzdGF0aWMgdTE2IHR4Y2xrZXNj KHUzMiBkaXZpZGVyLCB1bnNpZ25lZCBpbnQgdXMpCj4+ICAJfQo+PiAgfQo+PiAgCj4+IC0vKiBy ZXR1cm4gcGl4ZWxzIGluIHRlcm1zIG9mIHR4Ynl0ZWNsa2hzICovCj4+IC1zdGF0aWMgdTE2IHR4 Ynl0ZWNsa2hzKHUxNiBwaXhlbHMsIGludCBicHAsIGludCBsYW5lX2NvdW50LAo+PiAtCQkgICAg ICAgdTE2IGJ1cnN0X21vZGVfcmF0aW8pCj4+IC17Cj4+IC0JcmV0dXJuIERJVl9ST1VORF9VUChE SVZfUk9VTkRfVVAocGl4ZWxzICogYnBwICogYnVyc3RfbW9kZV9yYXRpbywKPj4gLQkJCQkJIDgg KiAxMDApLCBsYW5lX2NvdW50KTsKPj4gLX0KPj4gLQo+PiAgc3RhdGljIHZvaWQgc2V0X2RzaV90 aW1pbmdzKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPj4gIAkJCSAgICBjb25zdCBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSkKPj4gIHsKPj4gLS0gCj4+IDEuNy45 LjUKPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4g SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+PiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cj4+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4CgotLSAKSmFuaSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudGVy Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdm eCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=