From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 3/6] drm/i915/lvds: Restore initial HW state during encoder enabling Date: Tue, 9 Aug 2016 15:48:40 +0300 Message-ID: <20160809124840.GM4329@intel.com> References: <1470742452-5240-1-git-send-email-imre.deak@intel.com> <1470742452-5240-4-git-send-email-imre.deak@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 ESMTP id B31E26E560 for ; Tue, 9 Aug 2016 12:48:43 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1470742452-5240-4-git-send-email-imre.deak@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Imre Deak Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBBdWcgMDksIDIwMTYgYXQgMDI6MzQ6MDlQTSArMDMwMCwgSW1yZSBEZWFrIHdyb3Rl Ogo+IEF0bSB0aGUgTFZEUyBlbmNvZGVyIGRlcGVuZHMgb24gdGhlIFBQUyBIVyBjb250ZXh0IGJl aW5nIHNhdmVkL3Jlc3RvcmVkCj4gZnJvbSBnZW5lcmljIHN1c3BlbmQvcmVzdW1lIGNvZGUuIFNp bmNlIHRoZSBQUFMgaXMgc3BlY2lmaWMgdG8gdGhlIExWRFMKPiBhbmQgZURQIGVuY29kZXJzIGEg Y2xlYW5lciB3YXkgaXMgdG8gcmVpbml0aWFsaXplIGl0IGR1cmluZyBlbmNvZGVyCj4gZW5hYmxp bmcsIHNvIGRvIHRoaXMgaGVyZSBmb3IgTFZEUy4gRm9sbG93LXVwIHBhdGNoZXMgd2lsbCBpbml0 IHRoZSBQUFMKPiBmb3IgdGhlIGVEUCBlbmNvZGVyIHNpbWlsYXJseSBhbmQgcmVtb3ZlIHRoZSBz dXNwZW5kL3Jlc3VtZSB0aW1lIHNhdmUgLwo+IHJlc3RvcmUuCj4gCj4gU2lnbmVkLW9mZi1ieTog SW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3JlZy5oICAgfCAgIDEgKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9s dmRzLmMgfCAxMDMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KPiAgMiBm aWxlcyBjaGFuZ2VkLCA5MSBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKPiAKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcmVnLmgKPiBpbmRleCA4ODk1MDhmLi5kYTgyNzQ0IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3JlZy5oCj4gQEAgLTM3MTAsNiArMzcxMCw3IEBAIGVudW0gewo+ICAKPiAgI2Rl ZmluZSBfUFBfT05fREVMQVlTCQkJMHg2MTIwOAo+ICAjZGVmaW5lIFBQX09OX0RFTEFZUyhwcHNf aWR4KQkJX01NSU9fUFBTKHBwc19pZHgsIF9QUF9PTl9ERUxBWVMpCj4gKyNkZWZpbmUgIFBBTkVM X1BPUlRfU0VMRUNUX1NISUZUCTMwCj4gICNkZWZpbmUgIFBBTkVMX1BPUlRfU0VMRUNUX01BU0sJ CSgzIDw8IDMwKQo+ICAjZGVmaW5lICBQQU5FTF9QT1JUX1NFTEVDVF9MVkRTCQkoMCA8PCAzMCkK PiAgI2RlZmluZSAgUEFORUxfUE9SVF9TRUxFQ1RfRFBBCQkoMSA8PCAzMCkKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbHZkcy5jCj4gaW5kZXggYzU3MzlmYy4uZDUxNThlNSAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sdmRzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9sdmRzLmMKPiBAQCAtNDgsNiArNDgsMjAgQEAgc3RydWN0IGludGVsX2x2ZHNf Y29ubmVjdG9yIHsKPiAgCXN0cnVjdCBub3RpZmllcl9ibG9jayBsaWRfbm90aWZpZXI7Cj4gIH07 Cj4gIAo+ICtzdHJ1Y3QgaW50ZWxfbHZkc19wcHMgewo+ICsJLyogMTAwdXMgdW5pdHMgKi8KPiAr CWludCB0MV90MjsKPiArCWludCB0MzsKPiArCWludCB0NDsKPiArCWludCB0NTsKPiArCWludCB0 eDsKPiArCj4gKwlpbnQgZGl2aWRlcjsKPiArCj4gKwlpbnQgcG9ydDsKPiArCWJvb2wgcmVzZXRf b25fcG93ZXJkb3duOwo+ICt9Owo+ICsKPiAgc3RydWN0IGludGVsX2x2ZHNfZW5jb2RlciB7Cj4g IAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciBiYXNlOwo+ICAKPiBAQCAtNTUsNiArNjksOSBAQCBzdHJ1 Y3QgaW50ZWxfbHZkc19lbmNvZGVyIHsKPiAgCWk5MTVfcmVnX3QgcmVnOwo+ICAJdTMyIGEzX3Bv d2VyOwo+ICAKPiArCXN0cnVjdCBpbnRlbF9sdmRzX3BwcyBpbml0X3BwczsKPiArCXUzMiBpbml0 X2x2ZHNfdmFsOwo+ICsKPiAgCXN0cnVjdCBpbnRlbF9sdmRzX2Nvbm5lY3RvciAqYXR0YWNoZWRf Y29ubmVjdG9yOwo+ICB9Owo+ICAKPiBAQCAtMTM2LDYgKzE1Myw3MiBAQCBzdGF0aWMgdm9pZCBp bnRlbF9sdmRzX2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAlw aXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sgPSBwaXBlX2NvbmZpZy0+ cG9ydF9jbG9jazsKPiAgfQo+ICAKPiArc3RhdGljIHZvaWQgaW50ZWxfbHZkc19wcHNfZ2V0X2h3 X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiArCQkJCQlzdHJ1Y3Qg aW50ZWxfbHZkc19wcHMgKnBwcykKPiArewo+ICsJdTMyIHZhbDsKPiArCj4gKwlwcHMtPnJlc2V0 X29uX3Bvd2VyZG93biA9IEk5MTVfUkVBRChQUF9DT05UUk9MKDApKSAmIFBBTkVMX1BPV0VSX1JF U0VUOwo+ICsKPiArCXZhbCA9IEk5MTVfUkVBRChQUF9PTl9ERUxBWVMoMCkpOwo+ICsJcHBzLT5w b3J0ID0gKHZhbCAmIFBBTkVMX1BPUlRfU0VMRUNUX01BU0spID4+Cj4gKwkJICAgIFBBTkVMX1BP UlRfU0VMRUNUX1NISUZUOwo+ICsJcHBzLT50MV90MiA9ICh2YWwgJiBQQU5FTF9QT1dFUl9VUF9E RUxBWV9NQVNLKSA+Pgo+ICsJCSAgICAgUEFORUxfUE9XRVJfVVBfREVMQVlfU0hJRlQ7Cj4gKwlw cHMtPnQ1ID0gKHZhbCAmIFBBTkVMX0xJR0hUX09OX0RFTEFZX01BU0spID4+Cj4gKwkJICBQQU5F TF9MSUdIVF9PTl9ERUxBWV9TSElGVDsKPiArCj4gKwl2YWwgPSBJOTE1X1JFQUQoUFBfT0ZGX0RF TEFZUygwKSk7Cj4gKwlwcHMtPnQzID0gKHZhbCAmIFBBTkVMX1BPV0VSX0RPV05fREVMQVlfTUFT SykgPj4KPiArCQkgIFBBTkVMX1BPV0VSX0RPV05fREVMQVlfU0hJRlQ7Cj4gKwlwcHMtPnR4ID0g KHZhbCAmIFBBTkVMX0xJR0hUX09GRl9ERUxBWV9NQVNLKSA+Pgo+ICsJCSAgUEFORUxfTElHSFRf T0ZGX0RFTEFZX1NISUZUOwo+ICsKPiArCXZhbCA9IEk5MTVfUkVBRChQUF9ESVZJU09SKDApKTsK PiArCXBwcy0+ZGl2aWRlciA9ICh2YWwgJiBQUF9SRUZFUkVOQ0VfRElWSURFUl9NQVNLKSA+Pgo+ ICsJCSAgICAgICBQUF9SRUZFUkVOQ0VfRElWSURFUl9TSElGVDsKPiArCS8qIENvbnZlcnQgZnJv bSAxMDBtcyB0byAxMDB1cyB1bml0cyAqLwo+ICsJcHBzLT50NCA9ICgodmFsICYgUEFORUxfUE9X RVJfQ1lDTEVfREVMQVlfTUFTSykgPj4KPiArCQkgICBQQU5FTF9QT1dFUl9DWUNMRV9ERUxBWV9T SElGVCkgKiAxMDAwOwoKVGhpcyBzaG91bGQgaGF2ZSB0aGUgKzEgb2Zmc2V0IGhhbmRsaW5nIEkg dGhpbmsuIEhtbS4gTG9va3MgbGlrZSB3ZSBtZXNzCnRoYXQgdXAgZXZlbiBmb3IgZURQIDooCgo+ ICsKPiArCWlmIChJTlRFTF9JTkZPKGRldl9wcml2KS0+Z2VuIDw9IDQgJiYKPiArCSAgICBwcHMt PnQxX3QyID09IDAgJiYgcHBzLT50NSA9PSAwICYmIHBwcy0+dDMgPT0gMCAmJiBwcHMtPnR4ID09 IDApIHsKPiArCQlEUk1fREVCVUdfS01TKCJQYW5lbCBwb3dlciB0aW1pbmdzIHVuaW5pdGlhbGl6 ZWQsICIKPiArCQkJICAgICAgInNldHRpbmcgZGVmYXVsdHNcbiIpOwo+ICsJCS8qIFNldCBUMiB0 byA0MG1zIGFuZCBUNSB0byAyMDBtcyBpbiAxMDAgdXNlYyB1bml0cyAqLwo+ICsJCXBwcy0+dDFf dDIgPSA0MCAqIDEwOwo+ICsJCXBwcy0+dDUgPSAyMDAgKiAxMDsKPiArCQkvKiBTZXQgVDMgdG8g MzVtcyBhbmQgVHggdG8gMjAwbXMgaW4gMTAwIHVzZWMgdW5pdHMgKi8KPiArCQlwcHMtPnQzID0g MzUgKiAxMDsKPiArCQlwcHMtPnR4ID0gMjAwICogMTA7CgpOb3Qgc3VyZSB3aGVyZSB0aGVzZSBj YW1lIGZyb20gb3JpZ2luYWxseS4gVGhlIHNwZ3cgc3BlYyB0ZWxscyB1czoKCm1pbgltYXgKdDEJ MC41CTEwCnQyCTAJNTAKdDMJMAk1MAp0NAkyMDAJLQp0NQkyMDAJLQp0NgkyMDAJLQp0NwkwCTEw CgpTbyBtYXliZSB3ZSBzaG91bGQgYXQgbGVhc3Qgc2V0IHQ0PTIwMCBoZXJlIGJhc2VkIG9uIHRo ZSBtaW5pbXVtIHQ0CmRlbGF5IGluIHRoZSBzcGVjLCBwcm9iYWJseSBzaG91bGQgYWRkIHRoZSBt YXggdDcgdGltZSB0aGVyZSBhcyB3ZWxsCmFzIHRoYXQncyB3aGF0IHRoZSBwb3dlciBjeWNsZSBk ZWxheXMgc2VlbXMgdG8gYmUgcmVhbGx5OiB0NCt0Ny4KQnNwZWMgc2VlbXMgdG8gY2xhaW0gdGhh dCBzcGd3IHNwZWMgaGFzIGFuIHVwcGVyIGxpbWl0IG9mIDQwMCBmb3IgdGhpcywKYnV0IEkgY2Fu J3Qgc2VlIHRoYXQgYXQgbGVhc3QgaW4gdGhlIGNvcHkgSSBmb3VuZC4KCkFuZCBtYXliZSBidW1w IHVwIHQxX3QyPTYwIGFuZCB0Mz01MCBiYXNlZCBvbiB0aGUgbWF4IGRlbGF5IGZvciB0aG9zZQpp biB0aGUgc3BlYz8KCkFueXdheXMsIHRoaXMgaXMgYWxsIG1hdGVyaWFsIGZvciBhIHNlcGFyYXRl IHBhdGNoIGZvciBzdXJlLgoKPiArCX0KPiArCj4gKwlEUk1fREVCVUdfRFJJVkVSKCJMVkRTIFBQ Uzp0MSt0MiAlZCB0MyAlZCB0NCAlZCB0NSAlZCB0eCAlZCAiCj4gKwkJCSAiZGl2aWRlciAlZCBw b3J0ICVkIHJlc2V0X29uX3Bvd2VyZG93biAlZFxuIiwKPiArCQkJIHBwcy0+dDFfdDIsIHBwcy0+ dDMsIHBwcy0+dDQsIHBwcy0+dDUsIHBwcy0+dHgsCj4gKwkJCSBwcHMtPmRpdmlkZXIsIHBwcy0+ cG9ydCwgcHBzLT5yZXNldF9vbl9wb3dlcmRvd24pOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBp bnRlbF9sdmRzX3Bwc19pbml0X2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK PiArCQkJCSAgIHN0cnVjdCBpbnRlbF9sdmRzX3BwcyAqcHBzKQo+ICt7Cj4gKwl1MzIgdmFsOwo+ ICsKPiArCXZhbCA9IEk5MTVfUkVBRChQUF9DT05UUk9MKDApKTsKPiArCVdBUk5fT04oKHZhbCAm IFBBTkVMX1VOTE9DS19NQVNLKSAhPSBQQU5FTF9VTkxPQ0tfUkVHUyk7Cj4gKwlpZiAocHBzLT5y ZXNldF9vbl9wb3dlcmRvd24pCj4gKwkJdmFsIHw9IFBBTkVMX1BPV0VSX1JFU0VUOwoKSG1tLiBN YXliZSB3ZSBjYW4ganVzdCBhbHdheXMgc2V0IHRoaXMgYml0PyBIbW0sIHdlIGFsc28gdG90YWxs eSBmYWlsIHRvCmRlYWwgd2l0aCB0aGUgcmVsYXRlZCBJQlggdy9hIGluIHRoZSBMVkRTIGNvZGUu IFNob3VsZCBwcm9iYWJseSBmaXggdGhhdAp1cCBhcyB3ZWxsIGFzIGEgZm9sbG93dXAuCgo+ICsJ STkxNV9XUklURShQUF9DT05UUk9MKDApLCB2YWwpOwo+ICsKPiArCUk5MTVfV1JJVEUoUFBfT05f REVMQVlTKDApLCAocHBzLT5wb3J0IDw8IFBBTkVMX1BPUlRfU0VMRUNUX1NISUZUKSB8Cj4gKwkJ CQkgICAgKHBwcy0+dDFfdDIgPDwgUEFORUxfUE9XRVJfVVBfREVMQVlfU0hJRlQpIHwKPiArCQkJ CSAgICAocHBzLT50NSA8PCBQQU5FTF9MSUdIVF9PTl9ERUxBWV9TSElGVCkpOwo+ICsJSTkxNV9X UklURShQUF9PRkZfREVMQVlTKDApLCAocHBzLT50MyA8PCBQQU5FTF9QT1dFUl9ET1dOX0RFTEFZ X1NISUZUKSB8Cj4gKwkJCQkgICAgIChwcHMtPnR4IDw8IFBBTkVMX0xJR0hUX09GRl9ERUxBWV9T SElGVCkpOwo+ICsJSTkxNV9XUklURShQUF9ESVZJU09SKDApLCAocHBzLT5kaXZpZGVyIDw8IFBQ X1JFRkVSRU5DRV9ESVZJREVSX1NISUZUKSB8Cj4gKwkJCQkgICgocHBzLT50NCAvIDEwMDApIDw8 IFBBTkVMX1BPV0VSX0NZQ0xFX0RFTEFZX1NISUZUKSk7CgpESVZfUk9VTkRfVVAoKSBJIHRoaW5r LCBhbmQgbWF5YmUgdGhlICsxIGhhbmRsaW5nLiBUaG91Z2ggSSBjYW4ndCByZWFsbHkKdGVsbCBp ZiB0aGUgc3BlYyBoYXMgaW50ZW5kZWQgdGhlICsxIHRvIGJlIGEgcmVwbGFjZW1lbnQgZm9yIHJv dW5kaW5nCnVwLCBvciBkbyB3ZSBuZWVkIHRvIGRvIGJvdGguIEJvdGggd291bGQgc2VlbSBsaWtl IHRoZSBzYWZlIGNob2ljZS4gR2VuMgpCc3BlYyBkb2Vzbid0IG1lbnRpb24gdGhlICsxLCBidXQg aXQgc2F5cyB3cml0aW5nIDAgd2lsbCBldmVuIGFib3J0IGFueQpvbmdvaW5nIGRlbGF5LgoKPiAr fQo+ICsKPiAgc3RhdGljIHZvaWQgaW50ZWxfcHJlX2VuYWJsZV9sdmRzKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyKQo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfbHZkc19lbmNvZGVyICpsdmRz X2VuY29kZXIgPSB0b19sdmRzX2VuY29kZXIoJmVuY29kZXItPmJhc2UpOwo+IEBAIC0xNTQsNyAr MjM3LDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfcHJlX2VuYWJsZV9sdmRzKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyKQo+ICAJCWFzc2VydF9wbGxfZGlzYWJsZWQoZGV2X3ByaXYsIHBpcGUp Owo+ICAJfQo+ICAKPiAtCXRlbXAgPSBJOTE1X1JFQUQobHZkc19lbmNvZGVyLT5yZWcpOwo+ICsJ aW50ZWxfbHZkc19wcHNfaW5pdF9odyhkZXZfcHJpdiwgJmx2ZHNfZW5jb2Rlci0+aW5pdF9wcHMp Owo+ICsKPiArCXRlbXAgPSBsdmRzX2VuY29kZXItPmluaXRfbHZkc192YWw7Cj4gIAl0ZW1wIHw9 IExWRFNfUE9SVF9FTiB8IExWRFNfQTBBMl9DTEtBX1BPV0VSX1VQOwo+ICAKPiAgCWlmIChIQVNf UENIX0NQVChkZXYpKSB7Cj4gQEAgLTkyMiwxOCArMTAwNyw2IEBAIHZvaWQgaW50ZWxfbHZkc19p bml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAkJRFJNX0RFQlVHX0tNUygiTFZEUyBpcyBu b3QgcHJlc2VudCBpbiBWQlQsIGJ1dCBlbmFibGVkIGFueXdheVxuIik7Cj4gIAl9Cj4gIAo+IC0J IC8qIFNldCB0aGUgUGFuZWwgUG93ZXIgT24vT2ZmIHRpbWluZ3MgaWYgdW5pbml0aWFsaXplZC4g Ki8KPiAtCWlmIChJTlRFTF9JTkZPKGRldl9wcml2KS0+Z2VuIDwgNSAmJgo+IC0JICAgIEk5MTVf UkVBRChQUF9PTl9ERUxBWVMoMCkpID09IDAgJiYgSTkxNV9SRUFEKFBQX09GRl9ERUxBWVMoMCkp ID09IDApIHsKPiAtCQkvKiBTZXQgVDIgdG8gNDBtcyBhbmQgVDUgdG8gMjAwbXMgKi8KPiAtCQlJ OTE1X1dSSVRFKFBQX09OX0RFTEFZUygwKSwgMHgwMTkwMDdkMCk7Cj4gLQo+IC0JCS8qIFNldCBU MyB0byAzNW1zIGFuZCBUeCB0byAyMDBtcyAqLwo+IC0JCUk5MTVfV1JJVEUoUFBfT0ZGX0RFTEFZ UygwKSwgMHgwMTVlMDdkMCk7Cj4gLQo+IC0JCURSTV9ERUJVR19LTVMoIlBhbmVsIHBvd2VyIHRp bWluZ3MgdW5pbml0aWFsaXplZCwgc2V0dGluZyBkZWZhdWx0c1xuIik7Cj4gLQl9Cj4gLQo+ICAJ bHZkc19lbmNvZGVyID0ga3phbGxvYyhzaXplb2YoKmx2ZHNfZW5jb2RlciksIEdGUF9LRVJORUwp Owo+ICAJaWYgKCFsdmRzX2VuY29kZXIpCj4gIAkJcmV0dXJuOwo+IEBAIC05OTksNiArMTA3Miwx MCBAQCB2b2lkIGludGVsX2x2ZHNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJCQkJ ICAgICAgZGV2LT5tb2RlX2NvbmZpZy5zY2FsaW5nX21vZGVfcHJvcGVydHksCj4gIAkJCQkgICAg ICBEUk1fTU9ERV9TQ0FMRV9BU1BFQ1QpOwo+ICAJaW50ZWxfY29ubmVjdG9yLT5wYW5lbC5maXR0 aW5nX21vZGUgPSBEUk1fTU9ERV9TQ0FMRV9BU1BFQ1Q7Cj4gKwo+ICsJaW50ZWxfbHZkc19wcHNf Z2V0X2h3X3N0YXRlKGRldl9wcml2LCAmbHZkc19lbmNvZGVyLT5pbml0X3Bwcyk7Cj4gKwlsdmRz X2VuY29kZXItPmluaXRfbHZkc192YWwgPSBsdmRzOwo+ICsKPiAgCS8qCj4gIAkgKiBMVkRTIGRp c2NvdmVyeToKPiAgCSAqIDEpIGNoZWNrIGZvciBFRElEIG9uIEREQwo+IC0tIAo+IDIuNS4wCj4g Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRl bC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cgot LSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK