From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dhinakaran Pandiyan Subject: Re: [PATCH 3/4] drm/i915: Remove the broken DP CRC support for g4x Date: Fri, 15 Feb 2019 13:06:32 -0800 Message-ID: References: <20190214192219.3858-1-ville.syrjala@linux.intel.com> <20190214192219.3858-3-ville.syrjala@linux.intel.com> <20190215124729.GQ20097@intel.com> Reply-To: dhinakaran.pandiyan@intel.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id A1F5D6EC7F for ; Fri, 15 Feb 2019 21:06:44 +0000 (UTC) In-Reply-To: <20190215124729.GQ20097@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 =?ISO-8859-1?Q?Syrj=E4l=E4?= Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCAyMDE5LTAyLTE1IGF0IDE0OjQ3ICswMjAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6 Cj4gT24gVGh1LCBGZWIgMTQsIDIwMTkgYXQgMDY6MjY6MjlQTSAtMDgwMCwgRGhpbmFrYXJhbiBQ YW5kaXlhbiB3cm90ZToKPiA+IE9uIFRodSwgMjAxOS0wMi0xNCBhdCAyMToyMiArMDIwMCwgVmls bGUgU3lyamFsYSB3cm90ZToKPiA+ID4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJq YWxhQGxpbnV4LmludGVsLmNvbT4KPiA+ID4gCj4gPiA+IERQIENSQ3MgZG9uJ3QgcmVhbGx5IHdv cmsgb24gZzR4LiBJZiB5b3Ugd2FudCBhbnkgQ1JDcyBvbiBEUCB5b3UKPiA+ID4gbXVzdAo+ID4g PiBzZWxlY3QgdGhlIENSQyBzb3VyY2UgYmVmb3JlIHRoZSBwb3J0IGlzIGVuYWJsZWQsIG90aGVy d2lzZSB0aGUKPiA+ID4gQ1JDCj4gPiA+IHNvdXJjZSBzZWxlY3QgYml0cyBzaW1wbHkgaWdub3Jl IGFueSB3cml0ZXMgdG8gdGhlbS4gQW5kIG9uY2UgdGhlCj4gPiA+IHBvcnQKPiA+ID4gaXMgZW5h YmxlZCB3ZSBtdXN0bid0IGNoYW5nZSB0aGUgQ1JDIHNvdXJjZSBzZWxlY3QgdW50aWwgdGhlIHBv cnQKPiA+ID4gaXMKPiA+ID4gZGlzYWJsZWQuIFRoYXQgYWxtb3N0IHdvcmtzLCBidXQgbm90IHF1 aXRlIDooIEV2ZW50dWFsbHkgdGhlIENSQwo+ID4gPiBzb3VyY2UKPiA+ID4gc2VsZWN0IGJpdHMg Z2V0IHBlcm1hbmVudGx5IHN0dWNrIG9uZSB3YXkgb3IgdGhlIG90aGVyLCBhbmQgYWZ0ZXIKPiA+ ID4gdGhhdAo+ID4gPiBhIHJlYm9vdCAob3IgcG9zc2libHkgYSBkaXNwbGF5IHJlc2V0KSBpcyBu ZWVkZWQgdG8gZ2V0IHdvcmtpbmcKPiA+ID4gQ1JDcwo+ID4gPiBvbiB0aGF0IHBpcGUgKG5vdCBt YXR0ZXIgd2hpY2ggQ1JDIHNvdXJjZSB3ZSB0cnkgdG8gdXNlKS4KPiA+ID4gCj4gPiA+IEFkZGl0 aW9uYWxseSB0aGUgREZUIHNjcmFtYmxlciByZXNldCBiaXRzIHdlJ3JlIHRyeWluZyB0byB1c2UK PiA+ID4gZG9uJ3QKPiA+ID4gc2VlbSB0byBleGlzdCBvbiBnNHguIFRoZXJlIGFyZSBzb21lIHBv dGVudGlhbGx5IHJlbGV2YW50IGxvb2tpbmcKPiA+ID4gYml0cwo+ID4gPiBpbiB0aGUgcGlwZSBy ZWdpc3RlcnMsIGJ1dCB3aGVuIEkgdHJpZWQgaXQgSSBnb3Qgc3RhYmxlIGxvb2tpbmcKPiA+ID4g Q1JDcwo+ID4gPiB3aXRob3V0IHNldHRpbmcgYW55IGJpdHMgZm9yIHRoaXMuCj4gPiA+IAo+ID4g PiBJZiB0aGVyZSBpcyBhIHdheSB0byBtYWtlIERQIENSQ3Mgd29yayByZWxpYWJseSBvbiBnNHgs IEkgd2Fzbid0Cj4gPiA+IGFibGUgdG8gZmluZCBpdC4gU28gbGV0J3MganVzdCByZW1vdmUgdGhl IGJyb2tlbiBjb2RlIHdlIGhhdmUuCj4gPiAKPiA+IAo+ID4gSSB0aGluayB3ZSBjYW4gbW9kaWZ5 IGk5eHhfcGlwZV9jcmNfYXV0b19zb3VyY2UoKSB0byBwaWNrICJwaXBlIgo+ID4gQ1JDCj4gPiB3 aGVuIHVzZXJzcGFjZSBzZWxlY3RzICJhdXRvIiBhbmQgdGhlIG91dHB1dCBpcyBEUC9lRFAuCj4g Cj4gTm9wZS4gU3BlYyBzYXlzOgo+ICJQaXBlIENSQyBzaG91bGQgbm90IGJlIHJ1biB3aGVuIERp c3BsYXkgUG9ydCBvciBUViBpcyBlbmFibGVkIG9uCj4gdGhpcwo+ICBwaXBlLiIKPiAKPiBhbmQK PiAKPiAiQ1JDIFNvdXJjZSBTZWxlY3Q6IFRoZXNlIGJpdHMgc2VsZWN0IHRoZSBzb3VyY2Ugb2Yg dGhlIGRhdGEgdG8gcHV0Cj4gaW50bwo+ICB0aGUgQ1JDIGxvZ2ljLgo+ICAwMDA6IFBpcGUgQSAo Tm90IGF2YWlsYWJsZSB3aGVuIERpc3BsYXlQb3J0IG9yIFRWIGlzIGVuYWJsZWQgb24gdGhpcwo+ ICBwaXBlKSIKPiAKQWZ0ZXIgZGlnZ2luZyB0aHJvdWdoIHNvbWUgb2xkIHNwZWNzLCBJIGRvIHNl ZSB0aGlzIHJlc3RyaWN0aW9uIGZvcgpnZW4tNCBhbmQgVkxWLCBidXQgZm9yIHNvbWUgcmVhc29u IG5vdCBmb3IgZ2VuLTMgb3IgQ0hWLiAKClRoZXJlIGlzIG5vIGdvb2QgY2hvaWNlIGZvciAiYXV0 byIgb3RoZXIgdGhhbiBEUCBhbmQgc2luY2UgRFAgZG9lcyBub3QKd29yaywgcmV0dXJuaW5nIC1F SU5WQUwgbWFrZXMgc2Vuc2UuClJldmlld2VkLWJ5OiBEaGluYWthcmFuIFBhbmRpeWFuIDxkaGlu YWthcmFuLnBhbmRpeWFuQGludGVsLmNvbT4KCj4gVGhvdWdoIEkgbXVzdCBhZG1pdCBJJ3ZlIG5l dmVyIGFjdHVhbGx5IHRyaWVkIGl0IHRvIHNlZSB3aGF0IGFjdHVhbGx5Cj4gaGFwcGVucy4KPiAK PiA+IAo+ID4gCj4gPiA+IAo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZp bGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4gPiAtLS0KPiA+ID4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3BpcGVfY3JjLmMgfCA4MCArKysrLS0tLS0tLS0tLS0tLS0tLS0KPiA+ ID4gLS0tLQo+ID4gPiAtLQo+ID4gPiAgMSBmaWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyks IDY5IGRlbGV0aW9ucygtKQo+ID4gPiAKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3BpcGVfY3JjLmMKPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9waXBlX2NyYy5jCj4gPiA+IGluZGV4IGZlMGZmODliOTgwYi4uNjZiYjdiMDMxNTM3IDEwMDY0 NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9waXBlX2NyYy5jCj4gPiA+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BpcGVfY3JjLmMKPiA+ID4gQEAgLTE5 MSw4ICsxOTEsNiBAQCBzdGF0aWMgaW50IGk5eHhfcGlwZV9jcmNfY3RsX3JlZyhzdHJ1Y3QKPiA+ ID4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiA+ICAJCQkJIGVudW0gaW50ZWxfcGlw ZV9jcmNfc291cmNlICpzb3VyY2UsCj4gPiA+ICAJCQkJIHUzMiAqdmFsKQo+ID4gPiAgewo+ID4g PiAtCWJvb2wgbmVlZF9zdGFibGVfc3ltYm9scyA9IGZhbHNlOwo+ID4gPiAtCj4gPiA+ICAJaWYg KCpzb3VyY2UgPT0gSU5URUxfUElQRV9DUkNfU09VUkNFX0FVVE8pIHsKPiA+ID4gIAkJaW50IHJl dCA9IGk5eHhfcGlwZV9jcmNfYXV0b19zb3VyY2UoZGV2X3ByaXYsIHBpcGUsCj4gPiA+IHNvdXJj ZSk7Cj4gPiA+ICAJCWlmIChyZXQpCj4gPiA+IEBAIC0yMDgsNTYgKzIwNiwyMyBAQCBzdGF0aWMg aW50IGk5eHhfcGlwZV9jcmNfY3RsX3JlZyhzdHJ1Y3QKPiA+ID4gZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCj4gPiA+ICAJCQlyZXR1cm4gLUVJTlZBTDsKPiA+ID4gIAkJKnZhbCA9IFBJUEVf Q1JDX0VOQUJMRSB8IFBJUEVfQ1JDX1NPVVJDRV9UVl9QUkU7Cj4gPiA+ICAJCWJyZWFrOwo+ID4g PiAtCWNhc2UgSU5URUxfUElQRV9DUkNfU09VUkNFX0RQX0I6Cj4gPiA+IC0JCWlmICghSVNfRzRY KGRldl9wcml2KSkKPiA+ID4gLQkJCXJldHVybiAtRUlOVkFMOwo+ID4gPiAtCQkqdmFsID0gUElQ RV9DUkNfRU5BQkxFIHwgUElQRV9DUkNfU09VUkNFX0RQX0JfRzRYOwo+ID4gPiAtCQluZWVkX3N0 YWJsZV9zeW1ib2xzID0gdHJ1ZTsKPiA+ID4gLQkJYnJlYWs7Cj4gPiA+IC0JY2FzZSBJTlRFTF9Q SVBFX0NSQ19TT1VSQ0VfRFBfQzoKPiA+ID4gLQkJaWYgKCFJU19HNFgoZGV2X3ByaXYpKQo+ID4g PiAtCQkJcmV0dXJuIC1FSU5WQUw7Cj4gPiA+IC0JCSp2YWwgPSBQSVBFX0NSQ19FTkFCTEUgfCBQ SVBFX0NSQ19TT1VSQ0VfRFBfQ19HNFg7Cj4gPiA+IC0JCW5lZWRfc3RhYmxlX3N5bWJvbHMgPSB0 cnVlOwo+ID4gPiAtCQlicmVhazsKPiA+ID4gLQljYXNlIElOVEVMX1BJUEVfQ1JDX1NPVVJDRV9E UF9EOgo+ID4gPiAtCQlpZiAoIUlTX0c0WChkZXZfcHJpdikpCj4gPiA+IC0JCQlyZXR1cm4gLUVJ TlZBTDsKPiA+ID4gLQkJKnZhbCA9IFBJUEVfQ1JDX0VOQUJMRSB8IFBJUEVfQ1JDX1NPVVJDRV9E UF9EX0c0WDsKPiA+ID4gLQkJbmVlZF9zdGFibGVfc3ltYm9scyA9IHRydWU7Cj4gPiA+IC0JCWJy ZWFrOwo+ID4gPiAgCWNhc2UgSU5URUxfUElQRV9DUkNfU09VUkNFX05PTkU6Cj4gPiA+ICAJCSp2 YWwgPSAwOwo+ID4gPiAgCQlicmVhazsKPiA+ID4gIAlkZWZhdWx0Ogo+ID4gPiArCQkvKgo+ID4g PiArCQkgKiBUaGUgRFAgQ1JDIHNvdXJjZSBkb2Vzbid0IHdvcmsgb24gZzR4Lgo+ID4gPiArCQkg KiBJdCBjYW4gYmUgbWFkZSB0byB3b3JrIHRvIHNvbWUgZGVncmVlIGJ5IHNlbGVjdGluZwo+ID4g PiArCQkgKiB0aGUgY29ycmVjdCBDUkMgc291cmNlIGJlZm9yZSB0aGUgcG9ydCBpcyBlbmFibGVk LAo+ID4gPiArCQkgKiBhbmQgbm90IHRvdWNoaW5nIHRoZSBDUkMgc291cmNlIGJpdHMgYWdhaW4g dW50aWwKPiA+ID4gKwkJICogdGhlIHBvcnQgaXMgZGlzYWJsZWQuIEJ1dCBldmVuIHRoZW4gdGhl IGJpdHMKPiA+ID4gKwkJICogZXZlbnR1YWxseSBnZXQgc3R1Y2sgYW5kIGEgcmVib290IGlzIG5l ZWRlZCB0byBnZXQKPiA+ID4gKwkJICogd29ya2luZyBDUkNzIG9uIHRoZSBwaXBlIGFnYWluLiBM ZXQncyBzaW1wbHkKPiA+ID4gKwkJICogcmVmdXNlIHRvIHVzZSBEUCBDUkNzIG9uIGc0eC4KPiA+ ID4gKwkJICovego+ID4gPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiA+ID4gIAl9Cj4gPiA+ICAKPiA+ ID4gLQkvKgo+ID4gPiAtCSAqIFdoZW4gdGhlIHBpcGUgQ1JDIHRhcCBwb2ludCBpcyBhZnRlciB0 aGUgdHJhbnNjb2RlcnMgd2UgbmVlZAo+ID4gPiAtCSAqIHRvIHR3ZWFrIHN5bWJvbC1sZXZlbCBm ZWF0dXJlcyB0byBwcm9kdWNlIGEgZGV0ZXJtaW5pc3RpYwo+ID4gPiBzZXJpZXMgb2YKPiA+ID4g LQkgKiBzeW1ib2xzIGZvciBhIGdpdmVuIGZyYW1lLiBXZSBuZWVkIHRvIHJlc2V0IHRob3NlIGZl YXR1cmVzCj4gPiA+IG9ubHkgb25jZQo+ID4gPiAtCSAqIGEgZnJhbWUgKGluc3RlYWQgb2YgZXZl cnkgbnRoIHN5bWJvbCk6Cj4gPiA+IC0JICogICAtIERDLWJhbGFuY2U6IHVzZWQgdG8gZW5zdXJl IGEgYmV0dGVyIGNsb2NrIHJlY292ZXJ5IGZyb20KPiA+ID4gdGhlIGRhdGEKPiA+ID4gLQkgKiAg ICAgbGluayAoU0RWTykKPiA+ID4gLQkgKiAgIC0gRGlzcGxheVBvcnQgc2NyYW1ibGluZzogdXNl ZCBmb3IgRU1JIHJlZHVjdGlvbgo+ID4gPiAtCSAqLwo+ID4gPiAtCWlmIChuZWVkX3N0YWJsZV9z eW1ib2xzKSB7Cj4gPiA+IC0JCXUzMiB0bXAgPSBJOTE1X1JFQUQoUE9SVF9ERlQyX0c0WCk7Cj4g PiA+IC0KPiA+ID4gLQkJV0FSTl9PTighSVNfRzRYKGRldl9wcml2KSk7Cj4gPiA+IC0KPiA+ID4g LQkJSTkxNV9XUklURShQT1JUX0RGVF9JOVhYLAo+ID4gPiAtCQkJICAgSTkxNV9SRUFEKFBPUlRf REZUX0k5WFgpIHwKPiA+ID4gRENfQkFMQU5DRV9SRVNFVCk7Cj4gPiA+IC0KPiA+ID4gLQkJaWYg KHBpcGUgPT0gUElQRV9BKQo+ID4gPiAtCQkJdG1wIHw9IFBJUEVfQV9TQ1JBTUJMRV9SRVNFVDsK PiA+ID4gLQkJZWxzZQo+ID4gPiAtCQkJdG1wIHw9IFBJUEVfQl9TQ1JBTUJMRV9SRVNFVDsKPiA+ ID4gLQo+ID4gPiAtCQlJOTE1X1dSSVRFKFBPUlRfREZUMl9HNFgsIHRtcCk7Cj4gPiA+IC0JfQo+ ID4gPiAtCj4gPiA+ICAJcmV0dXJuIDA7Cj4gPiA+ICB9Cj4gPiA+ICAKPiA+ID4gQEAgLTI4Miwy NCArMjQ3LDYgQEAgc3RhdGljIHZvaWQKPiA+ID4gdmx2X3VuZG9fcGlwZV9zY3JhbWJsZV9yZXNl dChzdHJ1Y3QKPiA+ID4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiA+ICAJaWYgKCEo dG1wICYgUElQRV9TQ1JBTUJMRV9SRVNFVF9NQVNLKSkKPiA+ID4gIAkJdG1wICY9IH5EQ19CQUxB TkNFX1JFU0VUX1ZMVjsKPiA+ID4gIAlJOTE1X1dSSVRFKFBPUlRfREZUMl9HNFgsIHRtcCk7Cj4g PiA+IC0KPiA+ID4gLX0KPiA+ID4gLQo+ID4gPiAtc3RhdGljIHZvaWQgZzR4X3VuZG9fcGlwZV9z Y3JhbWJsZV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQo+ID4gPiAqZGV2X3ByaXYsCj4g PiA+IC0JCQkJCSBlbnVtIHBpcGUgcGlwZSkKPiA+ID4gLXsKPiA+ID4gLQl1MzIgdG1wID0gSTkx NV9SRUFEKFBPUlRfREZUMl9HNFgpOwo+ID4gPiAtCj4gPiA+IC0JaWYgKHBpcGUgPT0gUElQRV9B KQo+ID4gPiAtCQl0bXAgJj0gflBJUEVfQV9TQ1JBTUJMRV9SRVNFVDsKPiA+ID4gLQllbHNlCj4g PiA+IC0JCXRtcCAmPSB+UElQRV9CX1NDUkFNQkxFX1JFU0VUOwo+ID4gPiAtCUk5MTVfV1JJVEUo UE9SVF9ERlQyX0c0WCwgdG1wKTsKPiA+ID4gLQo+ID4gPiAtCWlmICghKHRtcCAmIFBJUEVfU0NS QU1CTEVfUkVTRVRfTUFTSykpIHsKPiA+ID4gLQkJSTkxNV9XUklURShQT1JUX0RGVF9JOVhYLAo+ ID4gPiAtCQkJICAgSTkxNV9SRUFEKFBPUlRfREZUX0k5WFgpICYKPiA+ID4gfkRDX0JBTEFOQ0Vf UkVTRVQpOwo+ID4gPiAtCX0KPiA+ID4gIH0KPiA+ID4gIAo+ID4gPiAgc3RhdGljIGludCBpbGtf cGlwZV9jcmNfY3RsX3JlZyhlbnVtIGludGVsX3BpcGVfY3JjX3NvdXJjZQo+ID4gPiAqc291cmNl LAo+ID4gPiBAQCAtNDg1LDkgKzQzMiw2IEBAIHN0YXRpYyBpbnQgaTl4eF9jcmNfc291cmNlX3Zh bGlkKHN0cnVjdAo+ID4gPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ID4gIAlzd2l0 Y2ggKHNvdXJjZSkgewo+ID4gPiAgCWNhc2UgSU5URUxfUElQRV9DUkNfU09VUkNFX1BJUEU6Cj4g PiA+ICAJY2FzZSBJTlRFTF9QSVBFX0NSQ19TT1VSQ0VfVFY6Cj4gPiA+IC0JY2FzZSBJTlRFTF9Q SVBFX0NSQ19TT1VSQ0VfRFBfQjoKPiA+ID4gLQljYXNlIElOVEVMX1BJUEVfQ1JDX1NPVVJDRV9E UF9DOgo+ID4gPiAtCWNhc2UgSU5URUxfUElQRV9DUkNfU09VUkNFX0RQX0Q6Cj4gPiA+ICAJY2Fz ZSBJTlRFTF9QSVBFX0NSQ19TT1VSQ0VfTk9ORToKPiA+ID4gIAkJcmV0dXJuIDA7Cj4gPiA+ICAJ ZGVmYXVsdDoKPiA+ID4gQEAgLTYxMiw5ICs1NTYsNyBAQCBpbnQgaW50ZWxfY3J0Y19zZXRfY3Jj X3NvdXJjZShzdHJ1Y3QgZHJtX2NydGMKPiA+ID4gKmNydGMsIGNvbnN0IGNoYXIgKnNvdXJjZV9u YW1lKQo+ID4gPiAgCVBPU1RJTkdfUkVBRChQSVBFX0NSQ19DVEwoY3J0Yy0+aW5kZXgpKTsKPiA+ ID4gIAo+ID4gPiAgCWlmICghc291cmNlKSB7Cj4gPiA+IC0JCWlmIChJU19HNFgoZGV2X3ByaXYp KQo+ID4gPiAtCQkJZzR4X3VuZG9fcGlwZV9zY3JhbWJsZV9yZXNldChkZXZfcHJpdiwgY3J0Yy0K PiA+ID4gPiBpbmRleCk7Cj4gPiA+IAo+ID4gPiAtCQllbHNlIGlmIChJU19WQUxMRVlWSUVXKGRl dl9wcml2KSB8fAo+ID4gPiBJU19DSEVSUllWSUVXKGRldl9wcml2KSkKPiA+ID4gKwkJaWYgKElT X1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQo+ID4gPiAg CQkJdmx2X3VuZG9fcGlwZV9zY3JhbWJsZV9yZXNldChkZXZfcHJpdiwgY3J0Yy0KPiA+ID4gPiBp bmRleCk7Cj4gPiA+IAo+ID4gPiAgCQllbHNlIGlmICgoSVNfSEFTV0VMTChkZXZfcHJpdikgfHwK PiA+ID4gIAkJCSAgSVNfQlJPQURXRUxMKGRldl9wcml2KSkgJiYgY3J0Yy0+aW5kZXggPT0KPiA+ ID4gUElQRV9BKQo+IAo+IAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4