From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: [PATCH 3/6] drm/amdgpu: add powerplay sclk OD support through sysfs Date: Fri, 13 May 2016 14:48:53 -0400 Message-ID: <1463165336-14878-4-git-send-email-alexander.deucher@amd.com> References: <1463165336-14878-1-git-send-email-alexander.deucher@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-io0-x241.google.com (mail-io0-x241.google.com [IPv6:2607:f8b0:4001:c06::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3C1DB6EAF5 for ; Fri, 13 May 2016 18:49:07 +0000 (UTC) Received: by mail-io0-x241.google.com with SMTP id k129so16250689iof.3 for ; Fri, 13 May 2016 11:49:07 -0700 (PDT) In-Reply-To: <1463165336-14878-1-git-send-email-alexander.deucher@amd.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Eric Huang , Alex Deucher List-Id: dri-devel@lists.freedesktop.org RnJvbTogRXJpYyBIdWFuZyA8SmluSHVpRXJpYy5IdWFuZ0BhbWQuY29tPgoKQWRkIGEgbmV3IHN5 c2ZzIGVudHJ5IHBwX3NjbGtfb2QgdG8gc3VwcG9ydCBzY2xrIG92ZXJkcml2ZShPRCkgb3ZlcmNs b2NraW5nLAp0aGUgZW50cnkgaXMgcmVhZC93cml0ZSwgdGhlIHZhbHVlIG9mIGlucHV0L291dHB1 dCBpcyBhbiBpbnRlZ2VyIHdoaWNoIGlzIHRoZQpvdmVyIHBlcmNlbnRhZ2Ugb2YgdGhlIGhpZ2hl c3Qgc2Nsay4KClJldmlld2VkLWJ5OiBBbGV4IERldWNoZXIgPGFsZXhhbmRlci5kZXVjaGVyQGFt ZC5jb20+ClNpZ25lZC1vZmYtYnk6IEVyaWMgSHVhbmcgPEppbkh1aUVyaWMuSHVhbmdAYW1kLmNv bT4KU2lnbmVkLW9mZi1ieTogQWxleCBEZXVjaGVyIDxhbGV4YW5kZXIuZGV1Y2hlckBhbWQuY29t PgotLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oICAgICAgICAgICAgICAg fCAgNiArKysKIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9wbS5jICAgICAgICAg ICAgfCA0OSArKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dl cnBsYXkvYW1kX3Bvd2VycGxheS5jICAgICB8IDQ0ICsrKysrKysrKysrKysrKysrKysrCiBkcml2 ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9pbmMvYW1kX3Bvd2VycGxheS5oIHwgIDIgKwogZHJp dmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaW5jL2h3bWdyLmggICAgICAgICB8ICAyICsKIDUg ZmlsZXMgY2hhbmdlZCwgMTAzIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdS5oCmluZGV4IDk5MmYwMGIuLjM2N2RiYzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdS5oCkBAIC0yMzM1LDYgKzIzMzUsMTIgQEAgYW1kZ3B1X2dldF9zZG1hX2luc3RhbmNlKHN0 cnVjdCBhbWRncHVfcmluZyAqcmluZykKICNkZWZpbmUgYW1kZ3B1X2RwbV9mb3JjZV9jbG9ja19s ZXZlbChhZGV2LCB0eXBlLCBsZXZlbCkgXAogCQkoYWRldiktPnBvd2VycGxheS5wcF9mdW5jcy0+ Zm9yY2VfY2xvY2tfbGV2ZWwoKGFkZXYpLT5wb3dlcnBsYXkucHBfaGFuZGxlLCB0eXBlLCBsZXZl bCkKIAorI2RlZmluZSBhbWRncHVfZHBtX2dldF9zY2xrX29kKGFkZXYpIFwKKwkoYWRldiktPnBv d2VycGxheS5wcF9mdW5jcy0+Z2V0X3NjbGtfb2QoKGFkZXYpLT5wb3dlcnBsYXkucHBfaGFuZGxl KQorCisjZGVmaW5lIGFtZGdwdV9kcG1fc2V0X3NjbGtfb2QoYWRldiwgdmFsdWUpIFwKKwkoYWRl diktPnBvd2VycGxheS5wcF9mdW5jcy0+c2V0X3NjbGtfb2QoKGFkZXYpLT5wb3dlcnBsYXkucHBf aGFuZGxlLCB2YWx1ZSkKKwogI2RlZmluZSBhbWRncHVfZHBtX2Rpc3BhdGNoX3Rhc2soYWRldiwg ZXZlbnRfaWQsIGlucHV0LCBvdXRwdXQpCQlcCiAJKGFkZXYpLT5wb3dlcnBsYXkucHBfZnVuY3Mt PmRpc3BhdGNoX3Rhc2tzKChhZGV2KS0+cG93ZXJwbGF5LnBwX2hhbmRsZSwgKGV2ZW50X2lkKSwg KGlucHV0KSwgKG91dHB1dCkpCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3BtLmMK aW5kZXggNTg5YjM2ZS4uZjdlY2FmNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X3BtLmMKQEAgLTQ3MSw2ICs0NzEsNDYgQEAgZmFpbDoKIAlyZXR1cm4gY291bnQ7CiB9CiAKK3N0 YXRpYyBzc2l6ZV90IGFtZGdwdV9nZXRfcHBfc2Nsa19vZChzdHJ1Y3QgZGV2aWNlICpkZXYsCisJ CXN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAorCQljaGFyICpidWYpCit7CisJc3RydWN0 IGRybV9kZXZpY2UgKmRkZXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKwlzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiA9IGRkZXYtPmRldl9wcml2YXRlOworCXVpbnQzMl90IHZhbHVlID0gMDsK KworCWlmIChhZGV2LT5wcF9lbmFibGVkKQorCQl2YWx1ZSA9IGFtZGdwdV9kcG1fZ2V0X3NjbGtf b2QoYWRldik7CisKKwlyZXR1cm4gc25wcmludGYoYnVmLCBQQUdFX1NJWkUsICIlZFxuIiwgdmFs dWUpOzsKK30KKworc3RhdGljIHNzaXplX3QgYW1kZ3B1X3NldF9wcF9zY2xrX29kKHN0cnVjdCBk ZXZpY2UgKmRldiwKKwkJc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCisJCWNvbnN0IGNo YXIgKmJ1ZiwKKwkJc2l6ZV90IGNvdW50KQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZGV2ID0g ZGV2X2dldF9kcnZkYXRhKGRldik7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBkZGV2 LT5kZXZfcHJpdmF0ZTsKKwlpbnQgcmV0OworCWxvbmcgaW50IHZhbHVlOworCisJcmV0ID0ga3N0 cnRvbChidWYsIDAsICZ2YWx1ZSk7CisKKwlpZiAocmV0KSB7CisJCWNvdW50ID0gLUVJTlZBTDsK KwkJZ290byBmYWlsOworCX0KKworCWlmIChhZGV2LT5wcF9lbmFibGVkKQorCQlhbWRncHVfZHBt X3NldF9zY2xrX29kKGFkZXYsICh1aW50MzJfdCl2YWx1ZSk7CisKKwlhbWRncHVfZHBtX2Rpc3Bh dGNoX3Rhc2soYWRldiwgQU1EX1BQX0VWRU5UX1JFQURKVVNUX1BPV0VSX1NUQVRFLCBOVUxMLCBO VUxMKTsKKworZmFpbDoKKwlyZXR1cm4gY291bnQ7Cit9CisKIHN0YXRpYyBERVZJQ0VfQVRUUihw b3dlcl9kcG1fc3RhdGUsIFNfSVJVR08gfCBTX0lXVVNSLCBhbWRncHVfZ2V0X2RwbV9zdGF0ZSwg YW1kZ3B1X3NldF9kcG1fc3RhdGUpOwogc3RhdGljIERFVklDRV9BVFRSKHBvd2VyX2RwbV9mb3Jj ZV9wZXJmb3JtYW5jZV9sZXZlbCwgU19JUlVHTyB8IFNfSVdVU1IsCiAJCSAgIGFtZGdwdV9nZXRf ZHBtX2ZvcmNlZF9wZXJmb3JtYW5jZV9sZXZlbCwKQEAgLTQ5Miw2ICs1MzIsOSBAQCBzdGF0aWMg REVWSUNFX0FUVFIocHBfZHBtX21jbGssIFNfSVJVR08gfCBTX0lXVVNSLAogc3RhdGljIERFVklD RV9BVFRSKHBwX2RwbV9wY2llLCBTX0lSVUdPIHwgU19JV1VTUiwKIAkJYW1kZ3B1X2dldF9wcF9k cG1fcGNpZSwKIAkJYW1kZ3B1X3NldF9wcF9kcG1fcGNpZSk7CitzdGF0aWMgREVWSUNFX0FUVFIo cHBfc2Nsa19vZCwgU19JUlVHTyB8IFNfSVdVU1IsCisJCWFtZGdwdV9nZXRfcHBfc2Nsa19vZCwK KwkJYW1kZ3B1X3NldF9wcF9zY2xrX29kKTsKIAogc3RhdGljIHNzaXplX3QgYW1kZ3B1X2h3bW9u X3Nob3dfdGVtcChzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCQkJICAgICAgc3RydWN0IGRldmljZV9h dHRyaWJ1dGUgKmF0dHIsCkBAIC0xMTI1LDYgKzExNjgsMTEgQEAgaW50IGFtZGdwdV9wbV9zeXNm c19pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQkJRFJNX0VSUk9SKCJmYWlsZWQg dG8gY3JlYXRlIGRldmljZSBmaWxlIHBwX2RwbV9wY2llXG4iKTsKIAkJCXJldHVybiByZXQ7CiAJ CX0KKwkJcmV0ID0gZGV2aWNlX2NyZWF0ZV9maWxlKGFkZXYtPmRldiwgJmRldl9hdHRyX3BwX3Nj bGtfb2QpOworCQlpZiAocmV0KSB7CisJCQlEUk1fRVJST1IoImZhaWxlZCB0byBjcmVhdGUgZGV2 aWNlIGZpbGUgcHBfc2Nsa19vZFxuIik7CisJCQlyZXR1cm4gcmV0OworCQl9CiAJfQogCXJldCA9 IGFtZGdwdV9kZWJ1Z2ZzX3BtX2luaXQoYWRldik7CiAJaWYgKHJldCkgewpAQCAtMTE1MSw2ICsx MTk5LDcgQEAgdm9pZCBhbWRncHVfcG1fc3lzZnNfZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldikKIAkJZGV2aWNlX3JlbW92ZV9maWxlKGFkZXYtPmRldiwgJmRldl9hdHRyX3BwX2RwbV9z Y2xrKTsKIAkJZGV2aWNlX3JlbW92ZV9maWxlKGFkZXYtPmRldiwgJmRldl9hdHRyX3BwX2RwbV9t Y2xrKTsKIAkJZGV2aWNlX3JlbW92ZV9maWxlKGFkZXYtPmRldiwgJmRldl9hdHRyX3BwX2RwbV9w Y2llKTsKKwkJZGV2aWNlX3JlbW92ZV9maWxlKGFkZXYtPmRldiwgJmRldl9hdHRyX3BwX3NjbGtf b2QpOwogCX0KIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkv YW1kX3Bvd2VycGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvYW1kX3Bvd2Vy cGxheS5jCmluZGV4IDhlMzQ1YmYuLmUwZjI0NDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvcG93ZXJwbGF5L2FtZF9wb3dlcnBsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L3Bvd2VycGxheS9hbWRfcG93ZXJwbGF5LmMKQEAgLTUzMCw2ICs1MzAsMTAgQEAgaW50IHBwX2Rw bV9kaXNwYXRjaF90YXNrcyh2b2lkICpoYW5kbGUsIGVudW0gYW1kX3BwX2V2ZW50IGV2ZW50X2lk LCB2b2lkICppbnB1dCwKIAljYXNlIEFNRF9QUF9FVkVOVF9DT01QTEVURV9JTklUOgogCQlyZXQg PSBwZW1faGFuZGxlX2V2ZW50KHBwX2hhbmRsZS0+ZXZlbnRtZ3IsIGV2ZW50X2lkLCAmZGF0YSk7 CiAJCWJyZWFrOworCWNhc2UgQU1EX1BQX0VWRU5UX1JFQURKVVNUX1BPV0VSX1NUQVRFOgorCQlw cF9oYW5kbGUtPmh3bWdyLT5jdXJyZW50X3BzID0gcHBfaGFuZGxlLT5od21nci0+Ym9vdF9wczsK KwkJcmV0ID0gcGVtX2hhbmRsZV9ldmVudChwcF9oYW5kbGUtPmV2ZW50bWdyLCBldmVudF9pZCwg JmRhdGEpOworCQlicmVhazsKIAlkZWZhdWx0OgogCQlicmVhazsKIAl9CkBAIC04MDAsNiArODA0 LDQ0IEBAIHN0YXRpYyBpbnQgcHBfZHBtX3ByaW50X2Nsb2NrX2xldmVscyh2b2lkICpoYW5kbGUs CiAJcmV0dXJuIGh3bWdyLT5od21ncl9mdW5jLT5wcmludF9jbG9ja19sZXZlbHMoaHdtZ3IsIHR5 cGUsIGJ1Zik7CiB9CiAKK3N0YXRpYyBpbnQgcHBfZHBtX2dldF9zY2xrX29kKHZvaWQgKmhhbmRs ZSkKK3sKKwlzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyOworCisJaWYgKCFoYW5kbGUpCisJCXJldHVy biAtRUlOVkFMOworCisJaHdtZ3IgPSAoKHN0cnVjdCBwcF9pbnN0YW5jZSAqKWhhbmRsZSktPmh3 bWdyOworCisJUFBfQ0hFQ0tfSFcoaHdtZ3IpOworCisJaWYgKGh3bWdyLT5od21ncl9mdW5jLT5n ZXRfc2Nsa19vZCA9PSBOVUxMKSB7CisJCXByaW50ayhLRVJOX0lORk8gIiVzIHdhcyBub3QgaW1w bGVtZW50ZWQuXG4iLCBfX2Z1bmNfXyk7CisJCXJldHVybiAwOworCX0KKworCXJldHVybiBod21n ci0+aHdtZ3JfZnVuYy0+Z2V0X3NjbGtfb2QoaHdtZ3IpOworfQorCitzdGF0aWMgaW50IHBwX2Rw bV9zZXRfc2Nsa19vZCh2b2lkICpoYW5kbGUsIHVpbnQzMl90IHZhbHVlKQoreworCXN0cnVjdCBw cF9od21nciAqaHdtZ3I7CisKKwlpZiAoIWhhbmRsZSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlo d21nciA9ICgoc3RydWN0IHBwX2luc3RhbmNlICopaGFuZGxlKS0+aHdtZ3I7CisKKwlQUF9DSEVD S19IVyhod21ncik7CisKKwlpZiAoaHdtZ3ItPmh3bWdyX2Z1bmMtPnNldF9zY2xrX29kID09IE5V TEwpIHsKKwkJcHJpbnRrKEtFUk5fSU5GTyAiJXMgd2FzIG5vdCBpbXBsZW1lbnRlZC5cbiIsIF9f ZnVuY19fKTsKKwkJcmV0dXJuIDA7CisJfQorCisJcmV0dXJuIGh3bWdyLT5od21ncl9mdW5jLT5z ZXRfc2Nsa19vZChod21nciwgdmFsdWUpOworfQorCiBjb25zdCBzdHJ1Y3QgYW1kX3Bvd2VycGxh eV9mdW5jcyBwcF9kcG1fZnVuY3MgPSB7CiAJLmdldF90ZW1wZXJhdHVyZSA9IHBwX2RwbV9nZXRf dGVtcGVyYXR1cmUsCiAJLmxvYWRfZmlybXdhcmUgPSBwcF9kcG1fbG9hZF9mdywKQEAgLTgyMiw2 ICs4NjQsOCBAQCBjb25zdCBzdHJ1Y3QgYW1kX3Bvd2VycGxheV9mdW5jcyBwcF9kcG1fZnVuY3Mg PSB7CiAJLnNldF9wcF90YWJsZSA9IHBwX2RwbV9zZXRfcHBfdGFibGUsCiAJLmZvcmNlX2Nsb2Nr X2xldmVsID0gcHBfZHBtX2ZvcmNlX2Nsb2NrX2xldmVsLAogCS5wcmludF9jbG9ja19sZXZlbHMg PSBwcF9kcG1fcHJpbnRfY2xvY2tfbGV2ZWxzLAorCS5nZXRfc2Nsa19vZCA9IHBwX2RwbV9nZXRf c2Nsa19vZCwKKwkuc2V0X3NjbGtfb2QgPSBwcF9kcG1fc2V0X3NjbGtfb2QsCiB9OwogCiBzdGF0 aWMgaW50IGFtZF9wcF9pbnN0YW5jZV9pbml0KHN0cnVjdCBhbWRfcHBfaW5pdCAqcHBfaW5pdCwK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2luYy9hbWRfcG93ZXJw bGF5LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9pbmMvYW1kX3Bvd2VycGxheS5o CmluZGV4IDUwYjM2N2QuLjE1NGQ0MDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv cG93ZXJwbGF5L2luYy9hbWRfcG93ZXJwbGF5LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9w b3dlcnBsYXkvaW5jL2FtZF9wb3dlcnBsYXkuaApAQCAtMzQyLDYgKzM0Miw4IEBAIHN0cnVjdCBh bWRfcG93ZXJwbGF5X2Z1bmNzIHsKIAlpbnQgKCpzZXRfcHBfdGFibGUpKHZvaWQgKmhhbmRsZSwg Y29uc3QgY2hhciAqYnVmLCBzaXplX3Qgc2l6ZSk7CiAJaW50ICgqZm9yY2VfY2xvY2tfbGV2ZWwp KHZvaWQgKmhhbmRsZSwgZW51bSBwcF9jbG9ja190eXBlIHR5cGUsIHVpbnQzMl90IG1hc2spOwog CWludCAoKnByaW50X2Nsb2NrX2xldmVscykodm9pZCAqaGFuZGxlLCBlbnVtIHBwX2Nsb2NrX3R5 cGUgdHlwZSwgY2hhciAqYnVmKTsKKwlpbnQgKCpnZXRfc2Nsa19vZCkodm9pZCAqaGFuZGxlKTsK KwlpbnQgKCpzZXRfc2Nsa19vZCkodm9pZCAqaGFuZGxlLCB1aW50MzJfdCB2YWx1ZSk7CiB9Owog CiBzdHJ1Y3QgYW1kX3Bvd2VycGxheSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1k L3Bvd2VycGxheS9pbmMvaHdtZ3IuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2lu Yy9od21nci5oCmluZGV4IDI4ZjU3MTQuLjM3ZWJmYTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvcG93ZXJwbGF5L2luYy9od21nci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv cG93ZXJwbGF5L2luYy9od21nci5oCkBAIC0zMzgsNiArMzM4LDggQEAgc3RydWN0IHBwX2h3bWdy X2Z1bmMgewogCWludCAoKmZvcmNlX2Nsb2NrX2xldmVsKShzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdy LCBlbnVtIHBwX2Nsb2NrX3R5cGUgdHlwZSwgdWludDMyX3QgbWFzayk7CiAJaW50ICgqcHJpbnRf Y2xvY2tfbGV2ZWxzKShzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyLCBlbnVtIHBwX2Nsb2NrX3R5cGUg dHlwZSwgY2hhciAqYnVmKTsKIAlpbnQgKCplbmFibGVfcGVyX2N1X3Bvd2VyX2dhdGluZykoc3Ry dWN0IHBwX2h3bWdyICpod21nciwgYm9vbCBlbmFibGUpOworCWludCAoKmdldF9zY2xrX29kKShz dHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyKTsKKwlpbnQgKCpzZXRfc2Nsa19vZCkoc3RydWN0IHBwX2h3 bWdyICpod21nciwgdWludDMyX3QgdmFsdWUpOwogfTsKIAogc3RydWN0IHBwX3RhYmxlX2Z1bmMg ewotLSAKMi41LjUKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZl bAo=