From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jim Bride Subject: Re: [PATCH 4/4] drm/i915/psr: Account for sink CRC raciness on some panels Date: Mon, 8 May 2017 10:29:23 -0700 Message-ID: <20170508172923.GC3243@shiv> References: <1494018126-30190-1-git-send-email-jim.bride@linux.intel.com> <1494018126-30190-5-git-send-email-jim.bride@linux.intel.com> <87lgq7af00.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 39D6F89E0E for ; Mon, 8 May 2017 17:31:29 +0000 (UTC) Content-Disposition: inline In-Reply-To: <87lgq7af00.fsf@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula Cc: intel-gfx@lists.freedesktop.org, Paulo Zanoni , Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBNYXkgMDgsIDIwMTcgYXQgMTI6MTI6NDdQTSArMDMwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gT24gU2F0LCAwNiBNYXkgMjAxNywgSmltIEJyaWRlIDxqaW0uYnJpZGVAbGludXguaW50 ZWwuY29tPiB3cm90ZToKPiA+IEFjY29yZGluZyB0byB0aGUgZURQIHNwZWMsIHdoZW4gdGhlIGNv dW50IGZpZWxkIGluIFRFU1RfU0lOS19NSVNDCj4gPiBpbmNyZW1lbnRzIHRoZW4gdGhlIHNpeCBi eXRlcyBvZiBzaW5rIENSQyBpbmZvcm1hdGlvbiBpbiB0aGUgRFBDRAo+ID4gc2hvdWxkIGJlIHZh bGlkLiAgVW5mb3J0dW5hdGVseSwgdGhpcyBkb2Vzbid0IHNlZW0gdG8gYmUgdGhlIGNhc2UKPiA+ IG9uIHNvbWUgcGFuZWxzLCBhbmQgYXMgYSByZXN1bHQgd2UgZ2V0IHNvbWUgaW5jb3JyZWN0IGFu ZCBpbmNvbnNpc3RlbnQKPiA+IHZhbHVlcyBmcm9tIHRoZSBzaW5rIENSQyBEUENEIGxvY2F0aW9u cyBhdCB0aW1lcy4gIFRoaXMgcHJvYmxlbSBleGhpYml0cwo+ID4gaXRzZWxmIG1vcmUgb24gZmFz dGVyIHByb2Nlc3NvcnMgKHJlbGF0aXZlIGZhaWx1cmUgcmF0ZXMgSFNXIDwgU0tMIDwgS0JMLikK PiA+IEluIG9yZGVyIHRvIHRyeSBhbmQgYWNjb3VudCBmb3IgdGhpcywgd2UgdHJ5IGEgbG90IGhh cmRlciB0byByZWFkIHRoZSBzaW5rCj4gPiBDUkMgdW50aWwgd2UgZ2V0IGNvbnNpc3RlbnQgdmFs dWVzIHR3aWNlIGluIGEgcm93IGJlZm9yZSByZXR1cm5pbmcgd2hhdCB3ZQo+ID4gcmVhZCBhbmQg ZGVsYXkgZm9yIGEgdGltZSBiZWZvcmUgdHJ5aW5nIHRvIHJlYWQuICBXZSBzdGlsbCBzZWUgc29t ZQo+ID4gb2NjYXNpb25hbCBmYWlsdXJlcywgYnV0IHJlYWRpbmcgdGhlIHNpbmsgQ1JDIGlzIG11 Y2ggbW9yZSByZWxpYWJsZSwKPiA+IHBhcnRpY3VsYXJseSBvbiBTS0wgYW5kIEtCTCwgd2l0aCB0 aGVzZSBjaGFuZ2VzIHRoYW4gd2l0aG91dC4KPiAKPiBSZXRyeWluZyBzZWVtcyBsaWtlIGEgZ29v ZCBpZGVhLiBCdXQgdGhpcyBwYXRjaCByZXRyaWVzIHVwIHRvIDM2IHRpbWVzCj4gaWYgdGhlIHR3 byBjb25zZWN1dGl2ZSByZWFkcyBkb24ndCBtYXRjaCwgd2hpY2ggaXMgZXhjZXNzaXZlLgoKSSBk b24ndCBzZWUgd2hlcmUgeW91J3JlIGdldHRpbmcgMzYgZnJvbTsgdGhlIGxvb3AgcnVucyB0aHJv dWdoIHNpeCB0aW1lcy4KCj4gVGhlIHNsZWVwcyBzaG91bGQgcHJvYmFibHkgYmUgYSBzZXBhcmF0 ZSBjaGFuZ2UuIEFsc28gbm90IGhhcHB5IGFib3V0Cj4gdGhlIG1hZ2ljIG51bWJlcnMgdGhlcmUu CgpMb29waW5nIHcvbyB0aGUgc2xlZXBzIGRvZXNuJ3QgbWFrZSBhIHRvbiBvZiBzZW5zZSBJTUhP LiAgVGhlIG51bWJlcnMKd2VyZSBmb3VuZCBleHBlcmltZW50YWxseSBvbiBLQkwsIHdoaWNoIHNl ZW1lZCB0byBtb3JlIGVhc2lseQpleGVyY2lzZSB0aGUgcmFjZSB0aGF0IHRoaXMgcGF0Y2ggaXMg bWVhbnQgdG8gYWRkcmVzcy4gIElkZWFsbHkgdGhlCnBhbmVscyB3b3VsZCBub3QgaW5jcmVtZW50 IHRoZSBjb3VudGVyIHVudGlsIHRoZXkgd2VyZSBzdXJlIHRoYXQgdGhlCkNSQyBkYXRhIGluIHRo ZSBEUENEIGFjdHVhbGx5IHJlZmxlY3RlZCByZWFsaXR5LiAgVW5mb3J0dW5hdGVseSwgdGhpcwpp c24ndCB3aGF0IHdlJ3JlIHNlZWluZy4gIEkgd2lsbCBjcmVhdGUgYSBjb3VwbGUgb2YgI2RlZmlu ZXMgZm9yIHRoZQpzbGVlcCB2YWx1ZXMsIGF0IGxlYXN0LCB3aXRoIHNvbWUgY29tbWVudHMgYWJv dXQgdGhlbS4gIAoKPiBBbHNvLCB0aGVyZSBhcmUgcGxlbnR5IG9mIHdoYXQgc2VlbSBsaWtlIHVu cmVsYXRlZCBjaGFuZ2VzLiBXaGl0ZXNwYWNlLAo+IGRlYnVnIGxvZ2dpbmcsIGVycm9yIGNoZWNr aW5nLCBldGMuCgpJIGxvb2tlZCBhdCB0aGlzIGFzIHJlZmFjdG9yaW5nIHRoZSBleGlzdGluZyBp bXBsZW1lbnRhdGlvbiwgc28gSQp3ZW50IGFoZWFkIGFuZCBhZGRlZCBzb21lIGRlYnVnZ2luZyBp bmZvOyB0aGUgZXJyb3IgY2hlY2tpbmcgaXMKcGFydCBvZiB0aGUgcmVmYWN0b3JpbmcuICBHaXZl biB0aGUgaGlzdG9yeSBvZiBwcm9ibGVtcyB3aXRoIHRoaXMKZnVuY3Rpb25hbGl0eSB0aGF0IHNl ZW1lZCB3YXJyYW50ZWQuICBJIGRpZCBub3RpY2Ugb25lIGxpbmUgb2YKd2hpdGVzcGFjZSBjaGFu Z2UgdGhhdCBzbnVjayBpbiAod2hlcmUgSSBtaXNzZWQgdGhhdCBJIHJlbW92ZWQgYQpibGFuayBs aW5lLikgIEkgY2FuIHRha2Ugb3V0IHRoZSBkZWJ1ZyBwcmludHMgZm9yIHRoZSBzdWNjZXNzCmNh c2VzIGlmIHRoZXkgc2VlbSBleGNlc3NpdmUgKGFuZCBJJ2xsIHJlc3RvcmUgdGhlIGRlbGV0ZWQK YmxhbmsgbGluZSBmb3IgdGhlIG5leHQgdmVyc2lvbiBvZiB0aGUgcGF0Y2guKQoKSmltCgoKPiAK PiBCUiwKPiBKYW5pLgo+IAo+IAo+ID4KPiA+IENjOiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2 aUBpbnRlbC5jb20+Cj4gPiBDYzogUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5j b20+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBKaW0gQnJpZGUgPGppbS5icmlkZUBsaW51eC5pbnRlbC5j b20+Cj4gPiAtLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyB8IDE0 ICsrKysrKystLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAgIHwgNTcg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQo+ID4gIDIgZmlsZXMgY2hhbmdl ZCwgNjEgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCj4gPgo+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kZWJ1Z2ZzLmMKPiA+IGluZGV4IDg3MGM0NzAuLjQ5MDI0NzMgMTAwNjQ0Cj4gPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiA+IEBAIC0yNzE4LDcgKzI3MTgsNyBAQCBz dGF0aWMgaW50IGk5MTVfc2lua19jcmMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQo+ ID4gIAlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3I7Cj4gPiAgCXN0cnVjdCBkcm1f Y29ubmVjdG9yX2xpc3RfaXRlciBjb25uX2l0ZXI7Cj4gPiAgCXN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHAgPSBOVUxMOwo+ID4gLQlpbnQgcmV0Owo+ID4gKwlpbnQgcmV0LCB0cmllcyA9IDY7Cj4g PiAgCXU4IGNyY1s2XTsKPiA+ICAKPiA+ICAJZHJtX21vZGVzZXRfbG9ja19hbGwoZGV2KTsKPiA+ IEBAIC0yNzM4LDkgKzI3MzgsMTcgQEAgc3RhdGljIGludCBpOTE1X3NpbmtfY3JjKHN0cnVjdCBz ZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKPiA+ICAKPiA+ICAJCWludGVsX2RwID0gZW5jX3RvX2lu dGVsX2RwKGNvbm5lY3Rvci0+YmFzZS5zdGF0ZS0+YmVzdF9lbmNvZGVyKTsKPiA+ICAKPiA+IC0J CXJldCA9IGludGVsX2RwX3NpbmtfY3JjKGludGVsX2RwLCBjcmMpOwo+ID4gLQkJaWYgKHJldCkK PiA+ICsJCW1lbXNldChjcmMsIDAsIDYpOwo+ID4gKwkJZG8gewo+ID4gKwkJCXJldCA9IGludGVs X2RwX3NpbmtfY3JjKGludGVsX2RwLCBjcmMpOwo+ID4gKwkJCWlmIChyZXQgPT0gLUVUSU1FRE9V VCkKPiA+ICsJCQkJdXNsZWVwX3JhbmdlKDUwMCwgNzAwKTsKPiA+ICsJCX0gd2hpbGUgKChyZXQg PT0gLUVUSU1FRE9VVCkgJiYgLS10cmllcyk7Cj4gPiArCj4gPiArCQlpZiAocmV0ICE9IDApIHsK PiA+ICsJCQlzZXFfcHJpbnRmKG0sICIwMDAwMDAwMDAwMDBcbiIpOwo+ID4gIAkJCWdvdG8gb3V0 Owo+ID4gKwkJfQo+ID4gIAo+ID4gIAkJc2VxX3ByaW50ZihtLCAiJTAyeCUwMnglMDJ4JTAyeCUw MnglMDJ4XG4iLAo+ID4gIAkJCSAgIGNyY1swXSwgY3JjWzFdLCBjcmNbMl0sCj4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwLmMKPiA+IGluZGV4IDA2YjhiZDQuLjIxN2JjMDYgMTAwNjQ0Cj4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcC5jCj4gPiBAQCAtMzg3NywxMyArMzg3NywxNSBAQCBzdGF0aWMgaW50 IGludGVsX2RwX3NpbmtfY3JjX3N0b3Aoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ICAK PiA+ICAJZG8gewo+ID4gIAkJaW50ZWxfd2FpdF9mb3JfdmJsYW5rKGRldl9wcml2LCBpbnRlbF9j cnRjLT5waXBlKTsKPiA+IC0KPiA+ICsJCXVzbGVlcF9yYW5nZSgxNjcwMCwgMTcwMDApOwo+ID4g IAkJaWYgKGRybV9kcF9kcGNkX3JlYWRiKCZpbnRlbF9kcC0+YXV4LAo+ID4gIAkJCQkgICAgICBE UF9URVNUX1NJTktfTUlTQywgJmJ1ZikgPCAwKSB7Cj4gPiArCQkJRFJNX0RFQlVHX0tNUygiQ291 bGQgbm90IHJlYWQgVEVTVF9TSU5LX01JU0NcbiIpOwo+ID4gIAkJCXJldCA9IC1FSU87Cj4gPiAg CQkJZ290byBvdXQ7Cj4gPiAgCQl9Cj4gPiAgCQljb3VudCA9IGJ1ZiAmIERQX1RFU1RfQ09VTlRf TUFTSzsKPiA+ICsJCURSTV9ERUJVR19LTVMoIlBTUiBjb3VudCBpcyAlZFxuIiwgY291bnQpOwo+ ID4gIAl9IHdoaWxlICgtLWF0dGVtcHRzICYmIGNvdW50KTsKPiA+ICAKPiA+ICAJaWYgKGF0dGVt cHRzID09IDApIHsKPiA+IEBAIC0zOTI4LDYgKzM5MzAsOCBAQCBzdGF0aWMgaW50IGludGVsX2Rw X3NpbmtfY3JjX3N0YXJ0KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiAgCX0KPiA+ICAK PiA+ICAJaW50ZWxfd2FpdF9mb3JfdmJsYW5rKGRldl9wcml2LCBpbnRlbF9jcnRjLT5waXBlKTsK PiA+ICsJdXNsZWVwX3JhbmdlKDE2NzAwLCAxNzAwMCk7Cj4gPiArCURSTV9ERUJVR19LTVMoIlBT UiBTdWNjZXNzZnVsbHkgc3RhcnRlZCBzaW5rIENSQ1xuIik7Cj4gPiAgCXJldHVybiAwOwo+ID4g IH0KPiA+ICAKPiA+IEBAIC0zOTM5LDIxICszOTQzLDMwIEBAIGludCBpbnRlbF9kcF9zaW5rX2Ny YyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCB1OCAqY3JjKQo+ID4gIAl1OCBidWY7Cj4gPiAg CWludCBjb3VudCwgcmV0Owo+ID4gIAlpbnQgYXR0ZW1wdHMgPSA2Owo+ID4gKwl1OCBvbGRfY3Jj WzZdOwo+ID4gKwo+ID4gKwlpZiAoY3JjICE9IE5VTEwpCj4gPiArCQltZW1zZXQoY3JjLCAwLCA2 KTsKPiA+ICsJZWxzZQo+ID4gKwkJcmV0dXJuIC1FTk9NRU07Cj4gPiAgCj4gPiAgCXJldCA9IGlu dGVsX2RwX3NpbmtfY3JjX3N0YXJ0KGludGVsX2RwKTsKPiA+IC0JaWYgKHJldCkKPiA+ICsJaWYg KHJldCkgewo+ID4gKwkJRFJNX0RFQlVHX0tNUygiQ291bGQgbm90IHN0YXJ0IHNpbmsgY3JjOyBy ZXQgJWRcbiIsIHJldCk7Cj4gPiAgCQlyZXR1cm4gcmV0Owo+ID4gKwl9Cj4gPiAgCj4gPiAgCWRv IHsKPiA+ICAJCWludGVsX3dhaXRfZm9yX3ZibGFuayhkZXZfcHJpdiwgaW50ZWxfY3J0Yy0+cGlw ZSk7Cj4gPiArCQl1c2xlZXBfcmFuZ2UoMTY3MDAsIDE3MDAwKTsKPiA+ICAKPiA+ICAJCWlmIChk cm1fZHBfZHBjZF9yZWFkYigmaW50ZWxfZHAtPmF1eCwKPiA+ICAJCQkJICAgICAgRFBfVEVTVF9T SU5LX01JU0MsICZidWYpIDwgMCkgewo+ID4gKwkJCURSTV9ERUJVR19LTVMoIkNvdW5kIG5vdCBy ZWFkIFRFU1RfU0lOS19NSVNDXG4iKTsKPiA+ICAJCQlyZXQgPSAtRUlPOwo+ID4gIAkJCWdvdG8g c3RvcDsKPiA+ICAJCX0KPiA+ICAJCWNvdW50ID0gYnVmICYgRFBfVEVTVF9DT1VOVF9NQVNLOwo+ ID4gLQo+ID4gIAl9IHdoaWxlICgtLWF0dGVtcHRzICYmIGNvdW50ID09IDApOwo+ID4gIAo+ID4g IAlpZiAoYXR0ZW1wdHMgPT0gMCkgewo+ID4gQEAgLTM5NjIsMTEgKzM5NzUsNDEgQEAgaW50IGlu dGVsX2RwX3NpbmtfY3JjKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIHU4ICpjcmMpCj4gPiAg CQlnb3RvIHN0b3A7Cj4gPiAgCX0KPiA+ICAKPiA+IC0JaWYgKGRybV9kcF9kcGNkX3JlYWQoJmlu dGVsX2RwLT5hdXgsIERQX1RFU1RfQ1JDX1JfQ1IsIGNyYywgNikgPCAwKSB7Cj4gPiAtCQlyZXQg PSAtRUlPOwo+ID4gLQkJZ290byBzdG9wOwo+ID4gLQl9Cj4gPiArCWF0dGVtcHRzID0gNjsKPiA+ ICsJbWVtc2V0KG9sZF9jcmMsIDB4RkYsIDYpOwo+ID4gKwlkbyB7Cj4gPiArCQlpbnRlbF93YWl0 X2Zvcl92YmxhbmsoZGV2X3ByaXYsIGludGVsX2NydGMtPnBpcGUpOwo+ID4gKwkJdXNsZWVwX3Jh bmdlKDE2NTAwLCAxNzAwMCk7Cj4gPiArCQlpZiAoZHJtX2RwX2RwY2RfcmVhZCgmaW50ZWxfZHAt PmF1eCwgRFBfVEVTVF9DUkNfUl9DUiwKPiA+ICsJCQkJICAgICBjcmMsIDYpIDwgMCkgewo+ID4g KwkJCURSTV9ERUJVR19LTVMoIkNvdWxkIG5vdCByZWFkIHNpbmsgY3JjXG4iKTsKPiA+ICsJCQly ZXQgPSAtRUlPOwo+ID4gKwkJCWdvdG8gc3RvcDsKPiA+ICsJCX0KPiA+ICsKPiA+ICsJCWlmICht ZW1jbXAob2xkX2NyYywgY3JjLCA2KSA9PSAwKSB7Cj4gPiArCQkJRFJNX0RFQlVHX0tNUygiUFNS IEFjdGl2ZTogJTNzIE1hdGNoaW5nIGNyYyB2YWx1ZXMgZm91bmQ6Igo+ID4gKwkJCQkgICAgICAi JTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4XG4iLAo+ID4gKwkJCQkgICAgICB5ZXNubyhkZXZfcHJp di0+cHNyLmFjdGl2ZSksCj4gPiArCQkJCSAgICAgIGNyY1swXSwgY3JjWzFdLCBjcmNbMl0sCj4g PiArCQkJCSAgICAgIGNyY1szXSwgY3JjWzRdLCBjcmNbNV0pOwo+ID4gKwkJCXJldCA9IDA7Cj4g PiArCQkJZ290byBzdG9wOwo+ID4gKwkJfSBlbHNlIHsKPiA+ICsJCQlEUk1fREVCVUdfS01TKCJQ U1IgQWN0aXZlOiAlM3MgY3JjICUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCAiCj4gPiArCQkJCSAg ICAgICJkb2Vzbid0IG1hdGNoICIKPiA+ICsJCQkJICAgICAgInByZXZpb3VzICUwMnglMDJ4JTAy eCUwMnglMDJ4JTAyeFxuIiwKPiA+ICsJCQkJICAgICAgeWVzbm8oZGV2X3ByaXYtPnBzci5hY3Rp dmUpLAo+ID4gKwkJCQkgICAgICBjcmNbMF0sIGNyY1sxXSwgY3JjWzJdLAo+ID4gKwkJCQkgICAg ICBjcmNbM10sIGNyY1s0XSwgY3JjWzVdLAo+ID4gKwkJCQkgICAgICBvbGRfY3JjWzBdLCBvbGRf Y3JjWzFdLCBvbGRfY3JjWzJdLAo+ID4gKwkJCQkgICAgICBvbGRfY3JjWzNdLCBvbGRfY3JjWzRd LCBvbGRfY3JjWzVdKTsKPiA+ICsJCQltZW1jcHkob2xkX2NyYywgY3JjLCA2KTsKPiA+ICsJCX0K PiA+ICsJfSB3aGlsZSAoLS1hdHRlbXB0cyk7Cj4gPiAgCj4gPiArCURSTV9ERUJVR19LTVMoIkZh aWxlZCB0byBnZXQgQ1JDIGFmdGVyIDYgYXR0ZW1wdHMuXG4iKTsKPiA+ICsJcmV0ID0gLUVUSU1F RE9VVDsKPiA+ICBzdG9wOgo+ID4gIAlpbnRlbF9kcF9zaW5rX2NyY19zdG9wKGludGVsX2RwKTsK PiA+ICAJcmV0dXJuIHJldDsKPiAKPiAtLSAKPiBKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3Vy Y2UgVGVjaG5vbG9neSBDZW50ZXIKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==