From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 1/4] drm/i915: kill {bdw, bxt}_modeset_calc_cdclk Date: Fri, 17 Feb 2017 15:51:57 +0200 Message-ID: <20170217135157.GQ31595@intel.com> References: <1487337727-9813-1-git-send-email-paulo.r.zanoni@intel.com> <1487337727-9813-2-git-send-email-paulo.r.zanoni@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id AD5076ED1C for ; Fri, 17 Feb 2017 13:52:15 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1487337727-9813-2-git-send-email-paulo.r.zanoni@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Paulo Zanoni Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBGZWIgMTcsIDIwMTcgYXQgMTE6MjI6MDRBTSAtMDIwMCwgUGF1bG8gWmFub25pIHdy b3RlOgo+IFRoZSBmdW5jdGlvbnMgYXJlIHByZXR0eSBtdWNoIHRoZSBzYW1lLCBleGNlcHQgZm9y IHRoZSBDRENMSyBhbmQgVkNPCj4gY2FsY3VsYXRpb25zLiBBZGQgQkRXIHN1cHBvcnQgdG8gdmx2 X21vZGVzZXRfY2FsY19jZGNsaygpIGFuZCBhZGQKPiBCWFQvR0xLIHN1cHBvcnQgdG8gc2tsX21v ZGVzZXRfY2FsY19jZGNsaygpLiBUaGUgdHdvIHJlYW1pbmluZwo+IGZ1bmN0aW9ucyBhcmUgc3Rp bGwgdmVyeSBzaW1pbGFyLCBleGNlcHQgZm9yIHRoZSBmYWN0IHRoYXQgdGhlIHZsdgo+IHZlcnNp b24gZG9lc24ndCB0b3VjaCB0aGUgVkNPLiBGdXJ0aGVyIHBhdGNoZXMgY291bGQgdW5pZnkgdGhl bSBldmVuCj4gbW9yZSBpZiB0aGF0J3MgZGVzaXJlZC4KPiAKPiBXaGlsZSBhdCBpdCwgbWVyZ2Ug c29tZSBsaW5lcyB0aGF0IGNhbiBmaXQgODAgY29sdW1ucyBpbiB0aG9zZQo+IGZ1bmN0aW9ucy4K PiAKPiBTaWduZWQtb2ZmLWJ5OiBQYXVsbyBaYW5vbmkgPHBhdWxvLnIuemFub25pQGludGVsLmNv bT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY2RjbGsuYyB8IDEyMCArKysr KysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCAzMCBp bnNlcnRpb25zKCspLCA5MCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfY2RjbGsuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Nk Y2xrLmMKPiBpbmRleCBkNjQzYzBjLi5kNTA1ZmYxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2NkY2xrLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9jZGNsay5jCj4gQEAgLTE0OTksNDUgKzE0OTksMTggQEAgc3RhdGljIGludCBpbnRlbF9tYXhf cGl4ZWxfcmF0ZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gIHN0YXRpYyBpbnQg dmx2X21vZGVzZXRfY2FsY19jZGNsayhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4g IHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUt PmRldik7Cj4gLQlpbnQgbWF4X3BpeGNsayA9IGludGVsX21heF9waXhlbF9yYXRlKHN0YXRlKTsK PiAtCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKmludGVsX3N0YXRlID0KPiAtCQl0b19pbnRl bF9hdG9taWNfc3RhdGUoc3RhdGUpOwo+IC0JaW50IGNkY2xrOwo+IC0KPiAtCWNkY2xrID0gdmx2 X2NhbGNfY2RjbGsoZGV2X3ByaXYsIG1heF9waXhjbGspOwo+IC0KPiAtCWlmIChjZGNsayA+IGRl dl9wcml2LT5tYXhfY2RjbGtfZnJlcSkgewo+IC0JCURSTV9ERUJVR19LTVMoInJlcXVlc3RlZCBj ZGNsayAoJWQga0h6KSBleGNlZWRzIG1heCAoJWQga0h6KVxuIiwKPiAtCQkJICAgICAgY2RjbGss IGRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSk7Cj4gLQkJcmV0dXJuIC1FSU5WQUw7Cj4gLQl9Cj4g LQo+IC0JaW50ZWxfc3RhdGUtPmNkY2xrLmxvZ2ljYWwuY2RjbGsgPSBjZGNsazsKPiAtCj4gLQlp ZiAoIWludGVsX3N0YXRlLT5hY3RpdmVfY3J0Y3MpIHsKPiAtCQljZGNsayA9IHZsdl9jYWxjX2Nk Y2xrKGRldl9wcml2LCAwKTsKPiAtCj4gLQkJaW50ZWxfc3RhdGUtPmNkY2xrLmFjdHVhbC5jZGNs ayA9IGNkY2xrOwo+IC0JfSBlbHNlIHsKPiAtCQlpbnRlbF9zdGF0ZS0+Y2RjbGsuYWN0dWFsID0K PiAtCQkJaW50ZWxfc3RhdGUtPmNkY2xrLmxvZ2ljYWw7Cj4gLQl9Cj4gLQo+IC0JcmV0dXJuIDA7 Cj4gLX0KPiAtCj4gLXN0YXRpYyBpbnQgYmR3X21vZGVzZXRfY2FsY19jZGNsayhzdHJ1Y3QgZHJt X2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gLXsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUtPmRldik7Cj4gIAlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0 YXRlICppbnRlbF9zdGF0ZSA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSk7Cj4gIAlpbnQg bWF4X3BpeGNsayA9IGludGVsX21heF9waXhlbF9yYXRlKHN0YXRlKTsKPiAgCWludCBjZGNsazsK PiAgCj4gIAkvKgo+IC0JICogRklYTUUgc2hvdWxkIGFsc28gYWNjb3VudCBmb3IgcGxhbmUgcmF0 aW8KPiAtCSAqIG9uY2UgNjRicHAgcGl4ZWwgZm9ybWF0cyBhcmUgc3VwcG9ydGVkLgo+ICsJICog RklYTUU6IEJyb2Fkd2VsbCBzaG91bGQgYWxzbyBhY2NvdW50IGZvciBwbGFuZSByYXRpbyBvbmNl IDY0YnBwIHBpeGVsCj4gKwkgKiBmb3JtYXRzIGFyZSBzdXBwb3J0ZWQuCgpCVFcgdGhlc2UgcmVz dHJpY3Rpb25zIGFmZmVjdCBwcmV0dHkgbXVjaCBhbGwgcGxhdGZvcm1zLCBzbyBzcGVjaWZ5aW5n IHRoZQpwbGF0Zm9ybXMgaW4gdGhlIGNvbW1lbnQgaXMgcmF0aGVyIHJlZHVuZGFudC4KCj4gIAkg Ki8KPiAtCWNkY2xrID0gYmR3X2NhbGNfY2RjbGsobWF4X3BpeGNsayk7Cj4gKwlpZiAoSVNfQlJP QURXRUxMKGRldl9wcml2KSkKPiArCQljZGNsayA9IGJkd19jYWxjX2NkY2xrKG1heF9waXhjbGsp Owo+ICsJZWxzZQo+ICsJCWNkY2xrID0gdmx2X2NhbGNfY2RjbGsoZGV2X3ByaXYsIG1heF9waXhj bGspOwo+ICAKPiAgCWlmIChjZGNsayA+IGRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSkgewo+ICAJ CURSTV9ERUJVR19LTVMoInJlcXVlc3RlZCBjZGNsayAoJWQga0h6KSBleGNlZWRzIG1heCAoJWQg a0h6KVxuIiwKPiBAQCAtMTU0OCwxMiArMTUyMSwxNCBAQCBzdGF0aWMgaW50IGJkd19tb2Rlc2V0 X2NhbGNfY2RjbGsoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICAJaW50ZWxfc3Rh dGUtPmNkY2xrLmxvZ2ljYWwuY2RjbGsgPSBjZGNsazsKPiAgCj4gIAlpZiAoIWludGVsX3N0YXRl LT5hY3RpdmVfY3J0Y3MpIHsKPiAtCQljZGNsayA9IGJkd19jYWxjX2NkY2xrKDApOwo+ICsJCWlm IChJU19CUk9BRFdFTEwoZGV2X3ByaXYpKQo+ICsJCQljZGNsayA9IGJkd19jYWxjX2NkY2xrKDAp Owo+ICsJCWVsc2UKPiArCQkJY2RjbGsgPSB2bHZfY2FsY19jZGNsayhkZXZfcHJpdiwgMCk7Cj4g IAo+ICAJCWludGVsX3N0YXRlLT5jZGNsay5hY3R1YWwuY2RjbGsgPSBjZGNsazsKPiAgCX0gZWxz ZSB7Cj4gLQkJaW50ZWxfc3RhdGUtPmNkY2xrLmFjdHVhbCA9Cj4gLQkJCWludGVsX3N0YXRlLT5j ZGNsay5sb2dpY2FsOwo+ICsJCWludGVsX3N0YXRlLT5jZGNsay5hY3R1YWwgPSBpbnRlbF9zdGF0 ZS0+Y2RjbGsubG9naWNhbDsKPiAgCX0KPiAgCj4gIAlyZXR1cm4gMDsKPiBAQCAtMTU2MSw1NyAr MTUzNiwyNiBAQCBzdGF0aWMgaW50IGJkd19tb2Rlc2V0X2NhbGNfY2RjbGsoc3RydWN0IGRybV9h dG9taWNfc3RhdGUgKnN0YXRlKQo+ICAKPiAgc3RhdGljIGludCBza2xfbW9kZXNldF9jYWxjX2Nk Y2xrKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGludGVs X2F0b21pY19zdGF0ZSAqaW50ZWxfc3RhdGUgPSB0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUp Owo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+ ZGV2KTsKPiAtCWNvbnN0IGludCBtYXhfcGl4Y2xrID0gaW50ZWxfbWF4X3BpeGVsX3JhdGUoc3Rh dGUpOwo+ICsJc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqaW50ZWxfc3RhdGUgPSB0b19pbnRl bF9hdG9taWNfc3RhdGUoc3RhdGUpOwo+ICsJaW50IG1heF9waXhjbGsgPSBpbnRlbF9tYXhfcGl4 ZWxfcmF0ZShzdGF0ZSk7Cj4gIAlpbnQgY2RjbGssIHZjbzsKPiAgCj4gLQl2Y28gPSBpbnRlbF9z dGF0ZS0+Y2RjbGsubG9naWNhbC52Y287Cj4gLQlpZiAoIXZjbykKPiAtCQl2Y28gPSBkZXZfcHJp di0+c2tsX3ByZWZlcnJlZF92Y29fZnJlcTsKPiAtCj4gIAkvKgo+IC0JICogRklYTUUgc2hvdWxk IGFsc28gYWNjb3VudCBmb3IgcGxhbmUgcmF0aW8KPiAtCSAqIG9uY2UgNjRicHAgcGl4ZWwgZm9y bWF0cyBhcmUgc3VwcG9ydGVkLgo+ICsJICogRklYTUU6IFNreWxha2UvS2FieWxha2Ugc2hvdWxk IGFsc28gYWNjb3VudCBmb3IgcGxhbmUgcmF0aW8gb25jZQo+ICsJICogNjRicHAgcGl4ZWwgZm9y bWF0cyBhcmUgc3VwcG9ydGVkLgo+ICAJICovCj4gLQljZGNsayA9IHNrbF9jYWxjX2NkY2xrKG1h eF9waXhjbGssIHZjbyk7Cj4gLQo+IC0JaWYgKGNkY2xrID4gZGV2X3ByaXYtPm1heF9jZGNsa19m cmVxKSB7Cj4gLQkJRFJNX0RFQlVHX0tNUygicmVxdWVzdGVkIGNkY2xrICglZCBrSHopIGV4Y2Vl ZHMgbWF4ICglZCBrSHopXG4iLAo+IC0JCQkgICAgICBjZGNsaywgZGV2X3ByaXYtPm1heF9jZGNs a19mcmVxKTsKPiAtCQlyZXR1cm4gLUVJTlZBTDsKPiAtCX0KPiAtCj4gLQlpbnRlbF9zdGF0ZS0+ Y2RjbGsubG9naWNhbC52Y28gPSB2Y287Cj4gLQlpbnRlbF9zdGF0ZS0+Y2RjbGsubG9naWNhbC5j ZGNsayA9IGNkY2xrOwo+IC0KPiAtCWlmICghaW50ZWxfc3RhdGUtPmFjdGl2ZV9jcnRjcykgewo+ IC0JCWNkY2xrID0gc2tsX2NhbGNfY2RjbGsoMCwgdmNvKTsKPiAtCj4gLQkJaW50ZWxfc3RhdGUt PmNkY2xrLmFjdHVhbC52Y28gPSB2Y287Cj4gLQkJaW50ZWxfc3RhdGUtPmNkY2xrLmFjdHVhbC5j ZGNsayA9IGNkY2xrOwo+IC0JfSBlbHNlIHsKPiAtCQlpbnRlbF9zdGF0ZS0+Y2RjbGsuYWN0dWFs ID0KPiAtCQkJaW50ZWxfc3RhdGUtPmNkY2xrLmxvZ2ljYWw7Cj4gLQl9Cj4gLQo+IC0JcmV0dXJu IDA7Cj4gLX0KPiAtCj4gLXN0YXRpYyBpbnQgYnh0X21vZGVzZXRfY2FsY19jZGNsayhzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gLXsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUtPmRldik7Cj4gLQlpbnQgbWF4X3BpeGNsayA9IGlu dGVsX21heF9waXhlbF9yYXRlKHN0YXRlKTsKPiAtCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUg KmludGVsX3N0YXRlID0KPiAtCQl0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUpOwo+IC0JaW50 IGNkY2xrLCB2Y287Cj4gLQo+ICAJaWYgKElTX0dFTUlOSUxBS0UoZGV2X3ByaXYpKSB7Cj4gIAkJ Y2RjbGsgPSBnbGtfY2FsY19jZGNsayhtYXhfcGl4Y2xrKTsKPiAgCQl2Y28gPSBnbGtfZGVfcGxs X3ZjbyhkZXZfcHJpdiwgY2RjbGspOwo+IC0JfSBlbHNlIHsKPiArCX0gZWxzZSBpZiAoSVNfQlJP WFRPTihkZXZfcHJpdikpIHsKPiAgCQljZGNsayA9IGJ4dF9jYWxjX2NkY2xrKG1heF9waXhjbGsp Owo+ICAJCXZjbyA9IGJ4dF9kZV9wbGxfdmNvKGRldl9wcml2LCBjZGNsayk7Cj4gKwl9IGVsc2Ug ewo+ICsJCXZjbyA9IGludGVsX3N0YXRlLT5jZGNsay5sb2dpY2FsLnZjbzsKPiArCQlpZiAoIXZj bykKPiArCQkJdmNvID0gZGV2X3ByaXYtPnNrbF9wcmVmZXJyZWRfdmNvX2ZyZXE7Cj4gKwkJY2Rj bGsgPSBza2xfY2FsY19jZGNsayhtYXhfcGl4Y2xrLCB2Y28pOwo+ICAJfQo+ICAKPiAgCWlmIChj ZGNsayA+IGRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSkgewo+IEBAIC0xNjI3LDE2ICsxNTcxLDE3 IEBAIHN0YXRpYyBpbnQgYnh0X21vZGVzZXRfY2FsY19jZGNsayhzdHJ1Y3QgZHJtX2F0b21pY19z dGF0ZSAqc3RhdGUpCj4gIAkJaWYgKElTX0dFTUlOSUxBS0UoZGV2X3ByaXYpKSB7Cj4gIAkJCWNk Y2xrID0gZ2xrX2NhbGNfY2RjbGsoMCk7Cj4gIAkJCXZjbyA9IGdsa19kZV9wbGxfdmNvKGRldl9w cml2LCBjZGNsayk7Cj4gLQkJfSBlbHNlIHsKPiArCQl9IGVsc2UgaWYgKElTX0JST1hUT04oZGV2 X3ByaXYpKSB7Cj4gIAkJCWNkY2xrID0gYnh0X2NhbGNfY2RjbGsoMCk7Cj4gIAkJCXZjbyA9IGJ4 dF9kZV9wbGxfdmNvKGRldl9wcml2LCBjZGNsayk7Cj4gKwkJfSBlbHNlIHsKPiArCQkJY2RjbGsg PSBza2xfY2FsY19jZGNsaygwLCB2Y28pOwo+ICAJCX0KPiAgCj4gIAkJaW50ZWxfc3RhdGUtPmNk Y2xrLmFjdHVhbC52Y28gPSB2Y287Cj4gIAkJaW50ZWxfc3RhdGUtPmNkY2xrLmFjdHVhbC5jZGNs ayA9IGNkY2xrOwo+ICAJfSBlbHNlIHsKPiAtCQlpbnRlbF9zdGF0ZS0+Y2RjbGsuYWN0dWFsID0K PiAtCQkJaW50ZWxfc3RhdGUtPmNkY2xrLmxvZ2ljYWw7Cj4gKwkJaW50ZWxfc3RhdGUtPmNkY2xr LmFjdHVhbCA9IGludGVsX3N0YXRlLT5jZGNsay5sb2dpY2FsOwo+ICAJfQo+ICAKPiAgCXJldHVy biAwOwo+IEBAIC0xODIzLDI0ICsxNzY4LDE5IEBAIHZvaWQgaW50ZWxfaW5pdF9jZGNsa19ob29r cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIHsKPiAgCWlmIChJU19DSEVS UllWSUVXKGRldl9wcml2KSkgewo+ICAJCWRldl9wcml2LT5kaXNwbGF5LnNldF9jZGNsayA9IGNo dl9zZXRfY2RjbGs7Cj4gLQkJZGV2X3ByaXYtPmRpc3BsYXkubW9kZXNldF9jYWxjX2NkY2xrID0K PiAtCQkJdmx2X21vZGVzZXRfY2FsY19jZGNsazsKPiArCQlkZXZfcHJpdi0+ZGlzcGxheS5tb2Rl c2V0X2NhbGNfY2RjbGsgPSB2bHZfbW9kZXNldF9jYWxjX2NkY2xrOwo+ICAJfSBlbHNlIGlmIChJ U19WQUxMRVlWSUVXKGRldl9wcml2KSkgewo+ICAJCWRldl9wcml2LT5kaXNwbGF5LnNldF9jZGNs ayA9IHZsdl9zZXRfY2RjbGs7Cj4gLQkJZGV2X3ByaXYtPmRpc3BsYXkubW9kZXNldF9jYWxjX2Nk Y2xrID0KPiAtCQkJdmx2X21vZGVzZXRfY2FsY19jZGNsazsKPiArCQlkZXZfcHJpdi0+ZGlzcGxh eS5tb2Rlc2V0X2NhbGNfY2RjbGsgPSB2bHZfbW9kZXNldF9jYWxjX2NkY2xrOwo+ICAJfSBlbHNl IGlmIChJU19CUk9BRFdFTEwoZGV2X3ByaXYpKSB7Cj4gIAkJZGV2X3ByaXYtPmRpc3BsYXkuc2V0 X2NkY2xrID0gYmR3X3NldF9jZGNsazsKPiAtCQlkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2Nh bGNfY2RjbGsgPQo+IC0JCQliZHdfbW9kZXNldF9jYWxjX2NkY2xrOwo+ICsJCWRldl9wcml2LT5k aXNwbGF5Lm1vZGVzZXRfY2FsY19jZGNsayA9IHZsdl9tb2Rlc2V0X2NhbGNfY2RjbGs7Cj4gIAl9 IGVsc2UgaWYgKElTX0dFTjlfTFAoZGV2X3ByaXYpKSB7Cj4gIAkJZGV2X3ByaXYtPmRpc3BsYXku c2V0X2NkY2xrID0gYnh0X3NldF9jZGNsazsKPiAtCQlkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0 X2NhbGNfY2RjbGsgPQo+IC0JCQlieHRfbW9kZXNldF9jYWxjX2NkY2xrOwo+ICsJCWRldl9wcml2 LT5kaXNwbGF5Lm1vZGVzZXRfY2FsY19jZGNsayA9IHNrbF9tb2Rlc2V0X2NhbGNfY2RjbGs7Cj4g IAl9IGVsc2UgaWYgKElTX0dFTjlfQkMoZGV2X3ByaXYpKSB7Cj4gIAkJZGV2X3ByaXYtPmRpc3Bs YXkuc2V0X2NkY2xrID0gc2tsX3NldF9jZGNsazsKPiAtCQlkZXZfcHJpdi0+ZGlzcGxheS5tb2Rl c2V0X2NhbGNfY2RjbGsgPQo+IC0JCQlza2xfbW9kZXNldF9jYWxjX2NkY2xrOwo+ICsJCWRldl9w cml2LT5kaXNwbGF5Lm1vZGVzZXRfY2FsY19jZGNsayA9IHNrbF9tb2Rlc2V0X2NhbGNfY2RjbGs7 Cj4gIAl9Cj4gIAo+ICAJaWYgKElTX0dFTjlfQkMoZGV2X3ByaXYpKQo+IC0tIAo+IDIuNy40Cj4g Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRl bC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cgot LSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK