From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH 31/67] drm/i915/cnl: Allow dynamic cdclk changes on CNL Date: Tue, 6 Jun 2017 11:12:09 -0700 Message-ID: References: <1491506163-14587-1-git-send-email-rodrigo.vivi@intel.com> <1491506163-14587-31-git-send-email-rodrigo.vivi@intel.com> <20170605152206.GC28137@ideak-desk.fi.intel.com> <1496680879.20038.7.camel@rdvivi-vienna> <20170605165512.GX12629@intel.com> <1496683431.9821.1.camel@dk-H97M-D3H> <1496771917.9821.17.camel@dk-H97M-D3H> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pg0-x243.google.com (mail-pg0-x243.google.com [IPv6:2607:f8b0:400e:c05::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 93B9089EA9 for ; Tue, 6 Jun 2017 18:12:10 +0000 (UTC) Received: by mail-pg0-x243.google.com with SMTP id f127so13666559pgc.2 for ; Tue, 06 Jun 2017 11:12:10 -0700 (PDT) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Pandiyan, Dhinakaran" Cc: "Nikula, Jani" , "intel-gfx@lists.freedesktop.org" , "Vivi, Rodrigo" List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBKdW4gNiwgMjAxNyBhdCAxMTowOSBBTSwgUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZp dmlAZ21haWwuY29tPiB3cm90ZToKPiBPbiBUdWUsIEp1biA2LCAyMDE3IGF0IDEwOjM5IEFNLCBQ YW5kaXlhbiwgRGhpbmFrYXJhbgo+IDxkaGluYWthcmFuLnBhbmRpeWFuQGludGVsLmNvbT4gd3Jv dGU6Cj4+IE9uIFR1ZSwgMjAxNy0wNi0wNiBhdCAwODoyNCAtMDcwMCwgUm9kcmlnbyBWaXZpIHdy b3RlOgo+Pj4gT24gTW9uLCBKdW4gNSwgMjAxNyBhdCAxMDowNCBBTSwgUGFuZGl5YW4sIERoaW5h a2FyYW4KPj4+IDxkaGluYWthcmFuLnBhbmRpeWFuQGludGVsLmNvbT4gd3JvdGU6Cj4+PiA+IE9u IE1vbiwgMjAxNy0wNi0wNSBhdCAxOTo1NSArMDMwMCwgVmlsbGUgU3lyasOkbMOkIHdyb3RlOgo+ Pj4gPj4gT24gTW9uLCBKdW4gMDUsIDIwMTcgYXQgMDQ6NDE6MDdQTSArMDAwMCwgVml2aSwgUm9k cmlnbyB3cm90ZToKPj4+ID4+ID4gT24gTW9uLCAyMDE3LTA2LTA1IGF0IDE4OjIyICswMzAwLCBJ bXJlIERlYWsgd3JvdGU6Cj4+PiA+PiA+ID4gT24gVGh1LCBBcHIgMDYsIDIwMTcgYXQgMTI6MTU6 MjdQTSAtMDcwMCwgUm9kcmlnbyBWaXZpIHdyb3RlOgo+Pj4gPj4gPiA+ID4gQWxsIHRoZSBsb3cg bGV2ZWwgY2RjbGsgYml0cyBhcmUgcHJlc2VudCwgc28gbGV0J3MgYWRkIHRoZSByZXF1aXJlZAo+ Pj4gPj4gPiA+ID4gaG9va3MgdG8gcmVjb25maWd1cmUgY2RjbGsgb24gdGhlIGZseS4KPj4+ID4+ ID4gPiA+Cj4+PiA+PiA+ID4gPiB2MjogUmViYXNlIGR1ZSB0byBjbmxfc2FuaXRpemVfY2RjbGso KQo+Pj4gPj4gPiA+ID4gdjM6IFJlYmFzZWQgYnkgUm9kcmlnbyBvbiB0b3Agb2YgVmlsbGUncyBj ZGNsayByZXdvcmsuCj4+PiA+PiA+ID4gPiB2NDogUmViYXNlIG1vdmluZyBjbmxfY2FsY19jZGNs ayB1cCB0byBmb2xsb3cgc2FtZSBvcmRlcgo+Pj4gPj4gPiA+ID4gICAgIGFzIHByZXZpb3VzIHBs YXRmb3Jtcy4KPj4+ID4+ID4gPiA+Cj4+PiA+PiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBT eXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+Pj4gPj4gPiA+ID4gU2ln bmVkLW9mZi1ieTogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgo+Pj4gPj4g PiA+ID4gLS0tCj4+PiA+PiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY2RjbGsu YyB8IDU0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCj4+PiA+PiA+ID4g PiAgMSBmaWxlIGNoYW5nZWQsIDUyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCj4+PiA+ PiA+ID4gPgo+Pj4gPj4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2NkY2xrLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jZGNsay5jCj4+PiA+PiA+ ID4gPiBpbmRleCBmOWJhMWU3Li5hOGMyNTRiIDEwMDY0NAo+Pj4gPj4gPiA+ID4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY2RjbGsuYwo+Pj4gPj4gPiA+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfY2RjbGsuYwo+Pj4gPj4gPiA+ID4gQEAgLTE0MDAsNiArMTQw MCwxNiBAQCB2b2lkIGJ4dF91bmluaXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQo+Pj4gPj4gPiA+ID4gICAgICAgICBieHRfc2V0X2NkY2xrKGRldl9wcml2LCAmY2Rj bGtfc3RhdGUpOwo+Pj4gPj4gPiA+ID4gIH0KPj4+ID4+ID4gPiA+Cj4+PiA+PiA+ID4gPiArc3Rh dGljIGludCBjbmxfY2FsY19jZGNsayhpbnQgbWF4X3BpeGNsaykKPj4+ID4+ID4gPiA+ICt7Cj4+ PiA+PiA+ID4gPiArICAgICAgIGlmIChtYXhfcGl4Y2xrID4gMzM2MDAwKQo+Pj4gPj4gPiA+ID4g KyAgICAgICAgICAgICAgIHJldHVybiA1MjgwMDA7Cj4+PiA+PiA+ID4gPiArICAgICAgIGVsc2Ug aWYgKG1heF9waXhjbGsgPiAxNjgwMDApCj4+PiA+PiA+ID4gPiArICAgICAgICAgICAgICAgcmV0 dXJuIDMzNjAwMDsKPj4+ID4+ID4gPiA+ICsgICAgICAgZWxzZQo+Pj4gPj4gPiA+ID4gKyAgICAg ICAgICAgICAgIHJldHVybiAxNjgwMDA7Cj4+PiA+PiA+ID4gPiArfQo+Pj4gPj4gPiA+ID4gKwo+ Pj4gPj4gPiA+ID4gIHN0YXRpYyB2b2lkIGNubF9jZGNsa19wbGxfdXBkYXRlKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4+ID4+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUpCj4+PiA+ PiA+ID4gPiAgewo+Pj4gPj4gPiA+ID4gQEAgLTE2NDAsNyArMTY1MCw3IEBAIHZvaWQgY25sX2lu aXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+Pj4gPj4gPiA+ID4K Pj4+ID4+ID4gPiA+ICAgICAgICAgY2RjbGtfc3RhdGUgPSBkZXZfcHJpdi0+Y2RjbGsuaHc7Cj4+ PiA+PiA+ID4gPgo+Pj4gPj4gPiA+ID4gLSAgICAgICBjZGNsa19zdGF0ZS5jZGNsayA9IDE2ODAw MDsKPj4+ID4+ID4gPiA+ICsgICAgICAgY2RjbGtfc3RhdGUuY2RjbGsgPSBjbmxfY2FsY19jZGNs aygwKTsKPj4+ID4+ID4gPiA+ICAgICAgICAgY2RjbGtfc3RhdGUudmNvID0gY25sX2NkY2xrX3Bs bF92Y28oZGV2X3ByaXYsIGNkY2xrX3N0YXRlLmNkY2xrKTsKPj4+ID4+ID4gPiA+Cj4+PiA+PiA+ ID4gPiAgICAgICAgIGNubF9zZXRfY2RjbGsoZGV2X3ByaXYsICZjZGNsa19zdGF0ZSk7Cj4+PiA+ PiA+ID4gPiBAQCAtMTkyOCw2ICsxOTM4LDQwIEBAIHN0YXRpYyBpbnQgYnh0X21vZGVzZXRfY2Fs Y19jZGNsayhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4+PiA+PiA+ID4gPiAgICAg ICAgIHJldHVybiAwOwo+Pj4gPj4gPiA+ID4gIH0KPj4+ID4+ID4gPiA+Cj4+PiA+PiA+ID4gPiAr c3RhdGljIGludCBjbmxfbW9kZXNldF9jYWxjX2NkY2xrKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpzdGF0ZSkKPj4+ID4+ID4gPiA+ICt7Cj4+PiA+PiA+ID4gPiArICAgICAgIHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUtPmRldik7Cj4+PiA+PiA+ID4g PiArICAgICAgIHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKmludGVsX3N0YXRlID0KPj4+ID4+ ID4gPiA+ICsgICAgICAgICAgICAgICB0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUpOwo+Pj4g Pj4gPiA+ID4gKyAgICAgICBpbnQgbWF4X3BpeGNsayA9IGludGVsX21heF9waXhlbF9yYXRlKHN0 YXRlKTsKPj4+ID4+ID4gPiA+ICsgICAgICAgaW50IGNkY2xrLCB2Y287Cj4+PiA+PiA+ID4gPiAr Cj4+PiA+PiA+ID4gPiArICAgICAgIGNkY2xrID0gY25sX2NhbGNfY2RjbGsobWF4X3BpeGNsayk7 Cj4+PiA+PiA+ID4gPiArICAgICAgIHZjbyA9IGNubF9jZGNsa19wbGxfdmNvKGRldl9wcml2LCBj ZGNsayk7Cj4+PiA+PiA+ID4KPj4+ID4+ID4gPiBUaGUgc3BlYyBzYXlzIG5vdCB0byBzZXQgQ0RD TEsgdG8gMTY4TUh6IGlmIGF1ZGlvIGlzIHVzZWQgd2l0aCA5Nk1Iego+Pj4gPj4gPiA+IEJDTEss IHdoYXQncyB0aGUgcGxhbiB0byBhZGQgdGhhdCBjb25zdHJhaW50PyBBdCBsZWFzdCB0aGVyZSBj b3VsZCBiZSBhCj4+PiA+PiA+ID4gVE9ETzogaGVyZS4KPj4+ID4+ID4KPj4+ID4+ID4gVGhhdCdz IGEgZ29vZCBxdWVzdGlvbi4KPj4+ID4+ID4gRG8gd2UgaGF2ZSB3YXlzIHRvIGtub3cgdGhlIGF1 ZGlvIGZyZXE/Cj4+PiA+PiA+IE9yIHdlIG5lZWQgdG8gYWRkIGZldyBleHRyYSBob29rcz8KPj4+ ID4+ID4gQW5kIGFncmVlLCBhdCBsZWFzdCBhIFRPRE8gb3IgRklYTUUgaGVyZSBpcyBuZWVkZWQg d2hpbGUgd2UgZG9udCBoYXZlIGEKPj4+ID4+ID4gY2xlYXIgcGF0aC4KPj4+ID4+Cj4+PiA+PiBi ZHdfYWRqdXN0X21pbl9waXBlX3BpeGVsX3JhdGUoKSBqdXN0IGFzc3VtZXMgOTZNSHouIFRoZXJl IHdhcyBzb21lCj4+PiA+PiBkaXNjdXNzaW9uIG9uIHRoZSB0b3BpYywgYW5kIEkgZm91bmQgc29t ZSByZWdpc3RlciB0aGF0IHBvc3NpYmx5IGNvdWxkCj4+PiA+PiB0ZWxsIHVzIHNvbWV0aGluZy4g QnV0IHRoZSBiZXN0IHNvbHV0aW9uIHdvdWxkIHByb2JhYmx5IGludm9sdmUgcXVlcnlpbmcKPj4+ ID4+IGl0IGZyb20gdGhlIGF1ZGlvIGRyaXZlci4KPj4+ID4+Cj4+PiA+Cj4+PiA+IFRoZSBsYXN0 IHRpbWUgSSBjaGVja2VkIHdpdGggdGhlIGF1ZGlvIGZvbGtzLCB0aGUgZHJpdmVyIGRvZXMgbm90 IGNoYW5nZQo+Pj4gPiB0aGUgQkNMSyBmcmVxLiBhbmQgdGhlIGRlZmF1bHQgaXMgOTYgTUh6Lgo+ Pj4KPj4+IFNvLCB3aGF0IHNob3VsZCB3ZSBkbyBmb3Igbm93PyBCbG9jayAxNjg/IFJlbW92ZSAx Njg/Cj4+Cj4+IEFzIFZpbGxlIHdyb3RlLCBiZHdfYWRqdXN0X21pbl9waXBlX3BpeGVsX3JhdGUo KSBhbHJlYWR5IGRvZXMgdGhhdC4gWW91Cj4+IGp1c3QgaGF2ZSB0byBtb2RpZnkgaW50ZWxfbWF4 X3BpeGVsX3JhdGUoKSB0byBpbmNsdWRlIENOTCB0b28uCj4KCm9oLCBzbyBqdXN0IHNxdWFzaCBb UEFUQ0ggNjcvNjddIGRybS9pOTE1L2NubDogQWRqdXN0IG1pbiBwaXhlbHJhdGUuCmhlcmU/Cgo+ Cj4+Cj4+IC1ESwo+Pgo+Pj4KPj4+ID4KPj4+ID4KPj4+ID4+ID4KPj4+ID4+ID4gPgo+Pj4gPj4g PiA+ID4gKwo+Pj4gPj4gPiA+ID4gKyAgICAgICBpZiAoY2RjbGsgPiBkZXZfcHJpdi0+bWF4X2Nk Y2xrX2ZyZXEpIHsKPj4+ID4+ID4gPiA+ICsgICAgICAgICAgICAgICBEUk1fREVCVUdfS01TKCJy ZXF1ZXN0ZWQgY2RjbGsgKCVkIGtIeikgZXhjZWVkcyBtYXggKCVkIGtIeilcbiIsCj4+PiA+PiA+ ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZGNsaywgZGV2X3ByaXYtPm1heF9j ZGNsa19mcmVxKTsKPj4+ID4+ID4gPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsK Pj4+ID4+ID4gPiA+ICsgICAgICAgfQo+Pj4gPj4gPiA+ID4gKwo+Pj4gPj4gPiA+ID4gKyAgICAg ICBpbnRlbF9zdGF0ZS0+Y2RjbGsubG9naWNhbC52Y28gPSB2Y287Cj4+PiA+PiA+ID4gPiArICAg ICAgIGludGVsX3N0YXRlLT5jZGNsay5sb2dpY2FsLmNkY2xrID0gY2RjbGs7Cj4+PiA+PiA+ID4g PiArCj4+PiA+PiA+ID4gPiArICAgICAgIGlmICghaW50ZWxfc3RhdGUtPmFjdGl2ZV9jcnRjcykg ewo+Pj4gPj4gPiA+ID4gKyAgICAgICAgICAgICAgIGNkY2xrID0gY25sX2NhbGNfY2RjbGsoMCk7 Cj4+PiA+PiA+ID4gPiArICAgICAgICAgICAgICAgdmNvID0gY25sX2NkY2xrX3BsbF92Y28oZGV2 X3ByaXYsIGNkY2xrKTsKPj4+ID4+ID4gPiA+ICsKPj4+ID4+ID4gPiA+ICsgICAgICAgICAgICAg ICBpbnRlbF9zdGF0ZS0+Y2RjbGsuYWN0dWFsLnZjbyA9IHZjbzsKPj4+ID4+ID4gPiA+ICsgICAg ICAgICAgICAgICBpbnRlbF9zdGF0ZS0+Y2RjbGsuYWN0dWFsLmNkY2xrID0gY2RjbGs7Cj4+PiA+ PiA+ID4gPiArICAgICAgIH0gZWxzZSB7Cj4+PiA+PiA+ID4gPiArICAgICAgICAgICAgICAgaW50 ZWxfc3RhdGUtPmNkY2xrLmFjdHVhbCA9Cj4+PiA+PiA+ID4gPiArICAgICAgICAgICAgICAgICAg ICAgICBpbnRlbF9zdGF0ZS0+Y2RjbGsubG9naWNhbDsKPj4+ID4+ID4gPiA+ICsgICAgICAgfQo+ Pj4gPj4gPiA+ID4gKwo+Pj4gPj4gPiA+ID4gKyAgICAgICByZXR1cm4gMDsKPj4+ID4+ID4gPiA+ ICt9Cj4+PiA+PiA+ID4gPiArCj4+PiA+PiA+ID4gPiAgc3RhdGljIGludCBpbnRlbF9jb21wdXRl X21heF9kb3RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+Pj4gPj4gPiA+ ID4gIHsKPj4+ID4+ID4gPiA+ICAgICAgICAgaW50IG1heF9jZGNsa19mcmVxID0gZGV2X3ByaXYt Pm1heF9jZGNsa19mcmVxOwo+Pj4gPj4gPiA+ID4gQEAgLTE5NTksNyArMjAwMyw5IEBAIHN0YXRp YyBpbnQgaW50ZWxfY29tcHV0ZV9tYXhfZG90Y2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKPj4+ID4+ID4gPiA+ICAgKi8KPj4+ID4+ID4gPiA+ICB2b2lkIGludGVsX3VwZGF0 ZV9tYXhfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+Pj4gPj4gPiA+ ID4gIHsKPj4+ID4+ID4gPiA+IC0gICAgICAgaWYgKElTX0dFTjlfQkMoZGV2X3ByaXYpKSB7Cj4+ PiA+PiA+ID4gPiArICAgICAgIGlmIChJU19DQU5OT05MQUtFKGRldl9wcml2KSkgewo+Pj4gPj4g PiA+ID4gKyAgICAgICAgICAgICAgIGRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSA9IDUyODAwMDsK Pj4+ID4+ID4gPiA+ICsgICAgICAgfSBlbHNlIGlmIChJU19HRU45X0JDKGRldl9wcml2KSkgewo+ Pj4gPj4gPiA+ID4gICAgICAgICAgICAgICAgIHUzMiBsaW1pdCA9IEk5MTVfUkVBRChTS0xfREZT TSkgJiBTS0xfREZTTV9DRENMS19MSU1JVF9NQVNLOwo+Pj4gPj4gPiA+ID4gICAgICAgICAgICAg ICAgIGludCBtYXhfY2RjbGssIHZjbzsKPj4+ID4+ID4gPiA+Cj4+PiA+PiA+ID4gPiBAQCAtMjE1 OCw2ICsyMjA0LDEwIEBAIHZvaWQgaW50ZWxfaW5pdF9jZGNsa19ob29rcyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4+PiA+PiA+ID4gPiAgICAgICAgICAgICAgICAgZGV2X3By aXYtPmRpc3BsYXkuc2V0X2NkY2xrID0gc2tsX3NldF9jZGNsazsKPj4+ID4+ID4gPiA+ICAgICAg ICAgICAgICAgICBkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NhbGNfY2RjbGsgPQo+Pj4gPj4g PiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgc2tsX21vZGVzZXRfY2FsY19jZGNsazsKPj4+ ID4+ID4gPiA+ICsgICAgICAgfSBlbHNlIGlmIChJU19DQU5OT05MQUtFKGRldl9wcml2KSkgewo+ Pj4gPj4gPiA+ID4gKyAgICAgICAgICAgICAgIGRldl9wcml2LT5kaXNwbGF5LnNldF9jZGNsayA9 IGNubF9zZXRfY2RjbGs7Cj4+PiA+PiA+ID4gPiArICAgICAgICAgICAgICAgZGV2X3ByaXYtPmRp c3BsYXkubW9kZXNldF9jYWxjX2NkY2xrID0KPj4+ID4+ID4gPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgIGNubF9tb2Rlc2V0X2NhbGNfY2RjbGs7Cj4+PiA+PiA+ID4gPiAgICAgICAgIH0KPj4+ ID4+ID4gPiA+Cj4+PiA+PiA+ID4gPiAgICAgICAgIGlmIChJU19DQU5OT05MQUtFKGRldl9wcml2 KSkKPj4+ID4+ID4gPiA+IC0tCj4+PiA+PiA+ID4gPiAxLjkuMQo+Pj4gPj4gPiA+ID4KPj4+ID4+ ID4gPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+ PiA+PiA+ID4gPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4+PiA+PiA+ID4gPiBJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+PiA+PiA+ID4gPiBodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+Pj4gPj4gPgo+Pj4gPj4KPj4+ID4K Pj4+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4+ ID4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+Pj4gPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCj4+PiA+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4Cj4+Pgo+Pj4KPj4+Cj4+Cj4KPgo+Cj4gLS0KPiBSb2RyaWdvIFZpdmkKPiBC bG9nOiBodHRwOi8vYmxvZy52aXZpLmVuZy5icgoKCgotLSAKUm9kcmlnbyBWaXZpCkJsb2c6IGh0 dHA6Ly9ibG9nLnZpdmkuZW5nLmJyCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo=