From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm/i915/ehl: Add support for DPLL4 (v7) Date: Fri, 14 Jun 2019 22:22:05 +0300 Message-ID: <20190614192205.GG5942@intel.com> References: <20190606092253.GC4301@ideak-desk.fi.intel.com> <20190607232326.20720-1-vivek.kasireddy@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1BF1F8973E for ; Fri, 14 Jun 2019 19:22:09 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190607232326.20720-1-vivek.kasireddy@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Vivek Kasireddy Cc: intel-gfx@lists.freedesktop.org, Lucas De Marchi List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBKdW4gMDcsIDIwMTkgYXQgMDQ6MjM6MjZQTSAtMDcwMCwgVml2ZWsgS2FzaXJlZGR5 IHdyb3RlOgo+IFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBEUExMNCBvbiBFSEwgdGhhdCBp bmNsdWRlIHRoZQo+IGZvbGxvd2luZyByZXN0cmljdGlvbnM6Cj4gCj4gLSBEUExMNCBjYW5ub3Qg YmUgdXNlZCB3aXRoIERESUEgKGNvbWJvIHBvcnQgQSBpbnRlcm5hbCBlRFAgdXNhZ2UpLgo+ICAg RFBMTDQgY2FuIGJlIHVzZWQgd2l0aCBvdGhlciBERElzLCBpbmNsdWRpbmcgRERJRAo+ICAgKGNv bWJvIHBvcnQgQSBleHRlcm5hbCB1c2FnZSkuCj4gCj4gLSBEUExMNCBjYW5ub3QgYmUgZW5hYmxl ZCB3aGVuIERDNSBvciBEQzYgYXJlIGVuYWJsZWQuCj4gCj4gLSBUaGUgRFBMTDQgZW5hYmxlLCBs b2NrLCBwb3dlciBlbmFibGVkLCBhbmQgcG93ZXIgc3RhdGUgYXJlIGNvbm5lY3RlZAo+ICAgdG8g dGhlIE1HUExMMV9FTkFCTEUgcmVnaXN0ZXIuCj4gCj4gdjI6IChzdWdnZXN0aW9ucyBmcm9tIEJv YiBQYWF1d2UpCj4gLSBSZXdvcmsgZWhsX2dldF9kcGxsKCkgZnVuY3Rpb24gdG8gY2FsbCBpbnRl bF9maW5kX3NoYXJlZF9kcGxsKCkgYW5kCj4gICBpdGVyYXRlIHR3aWNlOiBvbmNlIGZvciBDb21i byBwbGxzIGFuZCBvbmNlIGZvciBNRyBwbGxzLgo+IAo+IC0gVXNlIE1HIHBsbCBmdW5jcyBmb3Ig RFBMTDQgaW5zdGVhZCBvZiBjcmVhdGluZyBuZXcgb25lcyBhbmQgbW9kaWZ5Cj4gICBtZ19wbGxf ZW5hYmxlIHRvIGluY2x1ZGUgdGhlIHJlc3RyaWN0aW9ucyBmb3IgRUhMLgo+IAo+IHYzOiBGaXgg Y29tcGlsYXRpb24gZXJyb3IKPiAKPiB2NDogKHN1Z2dlc3Rpb25zIGZyb20gTHVjYXMgYW5kIFZp bGxlKQo+IC0gVHJlYXQgRFBMTDQgYXMgYSBjb21ibyBwaHkgUExMIGFuZCBub3QgYXMgTUcgUExM Cj4gLSBEaXNhYmxlIERDIHN0YXRlcyB3aGVuIHRoaXMgRFBMTCBpcyBiZWluZyBlbmFibGVkCj4g LSBSZXVzZSBpY2xfZ2V0X2RwbGwgaW5zdGVhZCBvZiBjcmVhdGluZyBhIHNlcGFyYXRlIG9uZSBm b3IgRUhMCj4gCj4gdjU6IChzdWdnZXN0aW9uIGZyb20gVmlsbGUpCj4gLSBSZWZjb3VudCB0aGUg REMgT0ZGIHBvd2VyIGRvbWFpbnMgZHVyaW5nIHRoZSBlbmFibGluZyBhbmQgZGlzYWJsaW5nCj4g ICBvZiB0aGlzIERQTEwuCj4gCj4gdjY6IHJlYmFzZQo+IAo+IHY3OiAoc3VnZ2VzdGlvbiBmcm9t IEltcmUpCj4gLSBBZGQgYSBuZXcgcG93ZXIgZG9tYWluIGluc3RlYWQgb2YgaXRlcmF0aW5nIG92 ZXIgdGhlIGRvbWFpbnMKPiAgIGFzc29pY2F0ZWQgd2l0aCBEQyBPRkYgcG93ZXIgd2VsbC4KPiAK PiBDYzogTHVjYXMgRGUgTWFyY2hpIDxsdWNhcy5kZW1hcmNoaUBpbnRlbC5jb20+Cj4gQ2M6IEpv c8OpIFJvYmVydG8gZGUgU291emEgPGpvc2Uuc291emFAaW50ZWwuY29tPgo+IENjOiBWaWxsZSBT eXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IENjOiBNYXR0IFJvcGVy IDxtYXR0aGV3LmQucm9wZXJAaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IFZpdmVrIEthc2ly ZWRkeSA8dml2ZWsua2FzaXJlZGR5QGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheV9wb3dlci5jIHwgIDMgKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheV9wb3dlci5oIHwgIDEgKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcGxsX21nci5jICAgICAgfCA0NCArKysrKysrKysrKysrKysrKysrKy0tCj4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmggICAgICB8ICA2ICsrKwo+ICA0IGZpbGVz IGNoYW5nZWQsIDUxIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXlfcG93ZXIuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXlfcG93ZXIuYwo+IGluZGV4IDI3OGE3ZWRjOTRmNS4u MjEzNGQ4YjQzZjU4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXlfcG93ZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXlf cG93ZXIuYwo+IEBAIC0xMTYsNiArMTE2LDggQEAgaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW5f c3RyKGVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gZG9tYWluKQo+ICAJCXJldHVybiAi TU9ERVNFVCI7Cj4gIAljYXNlIFBPV0VSX0RPTUFJTl9HVF9JUlE6Cj4gIAkJcmV0dXJuICJHVF9J UlEiOwo+ICsJY2FzZSBQT1dFUl9ET01BSU5fRFBMTDQ6Cj4gKwkJcmV0dXJuICJEUExMNCI7Cj4g IAlkZWZhdWx0Ogo+ICAJCU1JU1NJTkdfQ0FTRShkb21haW4pOwo+ICAJCXJldHVybiAiPyI7Cj4g QEAgLTIzNTcsNiArMjM1OSw3IEBAIHZvaWQgaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJSUNMX1BXXzJfUE9XRVJfRE9NQUlOUyB8 CQkJXAo+ICAJQklUX1VMTChQT1dFUl9ET01BSU5fTU9ERVNFVCkgfAkJCVwKPiAgCUJJVF9VTEwo UE9XRVJfRE9NQUlOX0FVWF9BKSB8CQkJXAo+ICsJQklUX1VMTChQT1dFUl9ET01BSU5fRFBMTDQp IHwJCQlcCj4gIAlCSVRfVUxMKFBPV0VSX0RPTUFJTl9JTklUKSkKPiAgCj4gICNkZWZpbmUgSUNM X0RESV9JT19BX1BPV0VSX0RPTUFJTlMgKAkJCVwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheV9wb3dlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheV9wb3dlci5oCj4gaW5kZXggZmY1N2IwYTdmZTU5Li5jY2NjNDcyNjYyNzkgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheV9wb3dlci5oCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheV9wb3dlci5oCj4gQEAgLTU5 LDYgKzU5LDcgQEAgZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiB7Cj4gIAlQT1dFUl9E T01BSU5fR01CVVMsCj4gIAlQT1dFUl9ET01BSU5fTU9ERVNFVCwKPiAgCVBPV0VSX0RPTUFJTl9H VF9JUlEsCj4gKwlQT1dFUl9ET01BSU5fRFBMTDQsCgpQcm9iYWJseSBzaG91bGQgZ2l2ZSB0aGlz IGEgYml0IG1vcmUgYWJzdHJhY3QgbmFtZS4gX0RQTExfTk9fREMgPwoKT3Igc2hvdWxkIHdlIGp1 c3QgbWFrZSBpdCBhIGdlbmVyaWMgX05PX0RDIHBvd2VyIGRvbWFpbj8KClRob3VnaCBpdCdzIGEg Yml0IGFubm95aW5nIHRoYXQgd2UgbGVhayB0aGUgREMgeWVzIHZzLiBubyBpbnRvIHBvd2VyCmRv bWFpbnMgd2hpY2ggYXJlIHN1cHBvc2VkIHRvIGJlIHByZXR0eSBhYnN0cmFjdC4KCkhtbS4gT3Ig d2UgY291bGQganVzdCBhYnVzZSB0aGUgTU9ERVNFVCBkb21haW4gaGVyZSBhcyB0aGF0J3MKcHJl dHR5IG11Y2ggdGhlICJtYWtlIHN1cmUgbXkgUExMcyBhcmVuJ3Qgc2h1dCBkb3duIiBkb21haW4/ Cgo+ICAJUE9XRVJfRE9NQUlOX0lOSVQsCj4gIAo+ICAJUE9XRVJfRE9NQUlOX05VTSwKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmMKPiBpbmRleCA2OTc4N2YyNTk2NzcuLjNkNzEy ZjU0ZGM1NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21n ci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYwo+IEBAIC0y ODA2LDYgKzI4MDYsMTIgQEAgaWNsX2dldF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlLAo+ICAJaWYgKGludGVsX3BvcnRfaXNfY29tYm9waHkoZGV2X3ByaXYsIHBvcnQp KSB7Cj4gIAkJbWluID0gRFBMTF9JRF9JQ0xfRFBMTDA7Cj4gIAkJbWF4ID0gRFBMTF9JRF9JQ0xf RFBMTDE7Cj4gKwo+ICsJCWlmIChJU19FTEtIQVJUTEFLRShkZXZfcHJpdikpIHsKPiArCQkJaWYg KGVuY29kZXItPnR5cGUgIT0gSU5URUxfT1VUUFVUX0VEUCkKPiArCQkJCW1heCA9IERQTExfSURf RUhMX0RQTEw0OwoKSSB0aGluayB3ZSB3YW50CgpJU19FSEwgJiYgcG9ydCAhPSBQT1JUX0EKCgo+ ICsJCX0KPiArCj4gIAkJcmV0ID0gaWNsX2NhbGNfZHBsbF9zdGF0ZShjcnRjX3N0YXRlLCBlbmNv ZGVyKTsKPiAgCX0gZWxzZSBpZiAoaW50ZWxfcG9ydF9pc190YyhkZXZfcHJpdiwgcG9ydCkpIHsK PiAgCQlpZiAoZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRfRFBfTVNUKSB7Cj4gQEAgLTI5 NDUsOCArMjk1MSwxNCBAQCBzdGF0aWMgYm9vbCBjb21ib19wbGxfZ2V0X2h3X3N0YXRlKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQkJCSAgIHN0cnVjdCBpbnRlbF9zaGFy ZWRfZHBsbCAqcGxsLAo+ICAJCQkJICAgc3RydWN0IGludGVsX2RwbGxfaHdfc3RhdGUgKmh3X3N0 YXRlKQo+ICB7Cj4gLQlyZXR1cm4gaWNsX3BsbF9nZXRfaHdfc3RhdGUoZGV2X3ByaXYsIHBsbCwg aHdfc3RhdGUsCj4gLQkJCQkgICAgQ05MX0RQTExfRU5BQkxFKHBsbC0+aW5mby0+aWQpKTsKPiAr CWk5MTVfcmVnX3QgZW5hYmxlX3JlZyA9IENOTF9EUExMX0VOQUJMRShwbGwtPmluZm8tPmlkKTsK PiArCj4gKwlpZiAoSVNfRUxLSEFSVExBS0UoZGV2X3ByaXYpICYmCj4gKwkgICAgcGxsLT5pbmZv LT5pZCA9PSBEUExMX0lEX0VITF9EUExMNCkgewo+ICsJCWVuYWJsZV9yZWcgPSBNR19QTExfRU5B QkxFKDApOwo+ICsJfQo+ICsKPiArCXJldHVybiBpY2xfcGxsX2dldF9od19zdGF0ZShkZXZfcHJp diwgcGxsLCBod19zdGF0ZSwgZW5hYmxlX3JlZyk7Cj4gIH0KPiAgCj4gIHN0YXRpYyBib29sIHRi dF9wbGxfZ2V0X2h3X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiBA QCAtMzA1Nyw2ICszMDY5LDE5IEBAIHN0YXRpYyB2b2lkIGNvbWJvX3BsbF9lbmFibGUoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICB7Cj4gIAlpOTE1X3JlZ190IGVuYWJsZV9y ZWcgPSBDTkxfRFBMTF9FTkFCTEUocGxsLT5pbmZvLT5pZCk7Cj4gIAo+ICsJaWYgKElTX0VMS0hB UlRMQUtFKGRldl9wcml2KSAmJgo+ICsJICAgIHBsbC0+aW5mby0+aWQgPT0gRFBMTF9JRF9FSExf RFBMTDQpIHsKPiArCQllbmFibGVfcmVnID0gTUdfUExMX0VOQUJMRSgwKTsKPiArCj4gKwkJLyoK PiArCQkgKiBXZSBuZWVkIHRvIGRpc2FibGUgREMgc3RhdGVzIHdoZW4gdGhpcyBEUExMIGlzIGVu YWJsZWQuCj4gKwkJICogVGhpcyBjYW4gYmUgZG9uZSBieSB0YWtpbmcgYSByZWZlcmVuY2Ugb24g RFBMTDQgcG93ZXIKPiArCQkgKiBkb21haW4uCj4gKwkJICovCj4gKwkJcGxsLT53YWtlcmVmID0g aW50ZWxfZGlzcGxheV9wb3dlcl9nZXQoZGV2X3ByaXYsCj4gKwkJCQkJCSAgICAgICBQT1dFUl9E T01BSU5fRFBMTDQpOwo+ICsJfQo+ICsKPiAgCWljbF9wbGxfcG93ZXJfZW5hYmxlKGRldl9wcml2 LCBwbGwsIGVuYWJsZV9yZWcpOwo+ICAKPiAgCWljbF9kcGxsX3dyaXRlKGRldl9wcml2LCBwbGwp Owo+IEBAIC0zMTUyLDcgKzMxNzcsMTkgQEAgc3RhdGljIHZvaWQgaWNsX3BsbF9kaXNhYmxlKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgc3RhdGljIHZvaWQgY29tYm9fcGxs X2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCQkgICAgICBz dHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbCkKPiAgewo+IC0JaWNsX3BsbF9kaXNhYmxlKGRl dl9wcml2LCBwbGwsIENOTF9EUExMX0VOQUJMRShwbGwtPmluZm8tPmlkKSk7Cj4gKwlpOTE1X3Jl Z190IGVuYWJsZV9yZWcgPSBDTkxfRFBMTF9FTkFCTEUocGxsLT5pbmZvLT5pZCk7Cj4gKwo+ICsJ aWYgKElTX0VMS0hBUlRMQUtFKGRldl9wcml2KSAmJgo+ICsJICAgIHBsbC0+aW5mby0+aWQgPT0g RFBMTF9JRF9FSExfRFBMTDQpIHsKPiArCQllbmFibGVfcmVnID0gTUdfUExMX0VOQUJMRSgwKTsK PiArCQlpY2xfcGxsX2Rpc2FibGUoZGV2X3ByaXYsIHBsbCwgZW5hYmxlX3JlZyk7Cj4gKwo+ICsJ CWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9wcml2LCBQT1dFUl9ET01BSU5fRFBMTDQsCj4g KwkJCQkJcGxsLT53YWtlcmVmKTsKCldoYXQgaGFwcGVucyBpZiB3ZSBkaWRuJ3QgdHVybiBvbiB0 aGUgRFBMTCBvdXJzZWxmPwpJZS4gdGhlIEJJT1MgZGlkIGl0PwoKPiArCQlyZXR1cm47Cj4gKwl9 Cj4gKwo+ICsJaWNsX3BsbF9kaXNhYmxlKGRldl9wcml2LCBwbGwsIGVuYWJsZV9yZWcpOwo+ICB9 Cj4gIAo+ICBzdGF0aWMgdm9pZCB0YnRfcGxsX2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAo+IEBAIC0zMjMwLDYgKzMyNjcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IGludGVsX2RwbGxfbWdyIGljbF9wbGxfbWdyID0gewo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRw bGxfaW5mbyBlaGxfcGxsc1tdID0gewo+ICAJeyAiRFBMTCAwIiwgJmNvbWJvX3BsbF9mdW5jcywg RFBMTF9JRF9JQ0xfRFBMTDAsIDAgfSwKPiAgCXsgIkRQTEwgMSIsICZjb21ib19wbGxfZnVuY3Ms IERQTExfSURfSUNMX0RQTEwxLCAwIH0sCj4gKwl7ICJEUExMIDQiLCAmY29tYm9fcGxsX2Z1bmNz LCBEUExMX0lEX0VITF9EUExMNCwgMCB9LAo+ICAJeyB9LAo+ICB9Owo+ICAKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwbGxfbWdyLmgKPiBpbmRleCBiNWRkOWM3YWQ3NzIuLjczNThiMWE1MjVl MSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5oCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuaAo+IEBAIC0yOCw2ICsy OCw3IEBACj4gICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgo+ICAKPiAgI2luY2x1ZGUgImludGVs X2Rpc3BsYXkuaCIKPiArI2luY2x1ZGUgImludGVsX3dha2VyZWYuaCIKPiAgCj4gIC8qRklYTUU6 IE1vdmUgdGhpcyB0byBhIG1vcmUgYXBwcm9wcmlhdGUgcGxhY2UuICovCj4gICNkZWZpbmUgYWJz X2RpZmYoYSwgYikgKHsJCQlcCj4gQEAgLTExNyw2ICsxMTgsMTAgQEAgZW51bSBpbnRlbF9kcGxs X2lkIHsKPiAgCSAqIEBEUExMX0lEX0lDTF9EUExMMTogSUNMIGNvbWJvIFBIWSBEUExMMQo+ICAJ ICovCj4gIAlEUExMX0lEX0lDTF9EUExMMSA9IDEsCj4gKwkvKioKPiArCSAqIEBEUExMX0lEX0VI TF9EUExMNDogRUhMIGNvbWJvIFBIWSBEUExMNAo+ICsJICovCj4gKwlEUExMX0lEX0VITF9EUExM NCA9IDIsCj4gIAkvKioKPiAgCSAqIEBEUExMX0lEX0lDTF9UQlRQTEw6IElDTCBUQlQgUExMCj4g IAkgKi8KPiBAQCAtMzEyLDYgKzMxNyw3IEBAIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCB7Cj4g IAkgKiBAaW5mbzogcGxhdGZvcm0gc3BlY2lmaWMgaW5mbwo+ICAJICovCj4gIAljb25zdCBzdHJ1 Y3QgZHBsbF9pbmZvICppbmZvOwo+ICsJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7Cj4gIH07Cj4g IAo+ICAjZGVmaW5lIFNLTF9EUExMMCAwCj4gLS0gCj4gMi4yMS4wCgotLSAKVmlsbGUgU3lyasOk bMOkCkludGVsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==