From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: [PATCH v5 04/12] drm/i915: Attach content type property Date: Thu, 18 Apr 2019 14:27:57 +0530 Message-ID: <20190418085805.5648-5-ramalingam.c@intel.com> References: <20190418085805.5648-1-ramalingam.c@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190418085805.5648-1-ramalingam.c@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, daniel@ffwll.ch, gwan-gyeong.mun@intel.com List-Id: intel-gfx@lists.freedesktop.org QXR0YWNoZXMgdGhlIGNvbnRlbnQgdHlwZSBwcm9wZXJ0eSBmb3IgSERDUDIuMiBjYXBhYmxlIGNv bm5lY3RvcnMuCgpJbXBsZW1lbnRzIHRoZSB1cGRhdGUgb2YgY29udGVudCB0eXBlIGZyb20gcHJv cGVydHkgYW5kIGFwcGx5IHRoZQpyZXN0cmljdGlvbiBvbiBIRENQIHZlcnNpb24gc2VsZWN0aW9u LgoKdjI6CiAgcy9jcF9jb250ZW50X3R5cGUvY29udGVudF9wcm90ZWN0aW9uX3R5cGUgW2Rhbmll bF0KICBkaXNhYmxlIGF0IGhkY3BfYXRvbWljX2NoZWNrIHRvIGF2b2lkIGNoZWNrIGF0IGF0b21p Y19zZXRfcHJvcGVydHkKCVtNYWFydGVuXQp2MzoKICBzL2NvbnRlbnRfcHJvdGVjdGlvbl90eXBl L2hkY3BfY29udGVudF90eXBlIFtQZWtrYV0KdjQ6CiAgaGRjcCBkaXNhYmxlIGluY2FzZSBvZiB0 eXBlIGNoYW5nZSBpcyBtb3ZlZCBpbnRvIGNvbW1pdCBbZGFuaWVsXS4KClNpZ25lZC1vZmYtYnk6 IFJhbWFsaW5nYW0gQyA8cmFtYWxpbmdhbS5jQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kZGkuYyAgfCAzOCArKysrKysrKysrKysrKysrKysrKysrKystLS0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkY3AuYyB8IDQzICsrKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkY3AuaCB8ICAyICstCiAz IGZpbGVzIGNoYW5nZWQsIDYzIGluc2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGRpLmMKaW5kZXggMjRmOTEwNmVmY2M2Li5kZDliZWE4NDA5MzcgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RkaS5jCkBAIC0zNDc2LDcgKzM0NzYsOCBAQCBzdGF0aWMgdm9pZCBp bnRlbF9lbmFibGVfZGRpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCS8qIEVuYWJs ZSBoZGNwIGlmIGl0J3MgZGVzaXJlZCAqLwogCWlmIChjb25uX3N0YXRlLT5jb250ZW50X3Byb3Rl Y3Rpb24gPT0KIAkgICAgRFJNX01PREVfQ09OVEVOVF9QUk9URUNUSU9OX0RFU0lSRUQpCi0JCWlu dGVsX2hkY3BfZW5hYmxlKHRvX2ludGVsX2Nvbm5lY3Rvcihjb25uX3N0YXRlLT5jb25uZWN0b3Ip KTsKKwkJaW50ZWxfaGRjcF9lbmFibGUodG9faW50ZWxfY29ubmVjdG9yKGNvbm5fc3RhdGUtPmNv bm5lY3RvciksCisJCQkJICAodTgpY29ubl9zdGF0ZS0+aGRjcF9jb250ZW50X3R5cGUpOwogfQog CiBzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX2RkaV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKQEAgLTM1NDUsMTUgKzM1NDYsNDQgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3Vw ZGF0ZV9waXBlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJCSAgY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkJICBjb25zdCBzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKIHsKKwlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9y ICpjb25uZWN0b3IgPQorCQkJCXRvX2ludGVsX2Nvbm5lY3Rvcihjb25uX3N0YXRlLT5jb25uZWN0 b3IpOworCXN0cnVjdCBpbnRlbF9oZGNwICpoZGNwID0gJmNvbm5lY3Rvci0+aGRjcDsKKwlib29s ICByZV9lbmFibGVfaGRjcCA9IGZhbHNlOworCWludCByZXQgPSAtRUlOVkFMOworCiAJaWYgKCFp bnRlbF9jcnRjX2hhc190eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9IRE1JKSkKIAkJaW50 ZWxfZGRpX3VwZGF0ZV9waXBlX2RwKGVuY29kZXIsIGNydGNfc3RhdGUsIGNvbm5fc3RhdGUpOwog CisJLyoKKwkgKiBEdXJpbmcgdGhlIEhEQ1AgZW5jcnlwdGlvbiBzZXNzaW9uIGlmIFR5cGUgY2hh bmdlIGlzIHJlcXVlc3RlZCwKKwkgKiBkaXNhYmxlIHRoZSBIRENQIGFuZCByZWVuYWJsZSBpdCB3 aXRoIG5ldyBUWVBFIHZhbHVlLgorCSAqLwogCWlmIChjb25uX3N0YXRlLT5jb250ZW50X3Byb3Rl Y3Rpb24gPT0KLQkgICAgRFJNX01PREVfQ09OVEVOVF9QUk9URUNUSU9OX0RFU0lSRUQpCi0JCWlu dGVsX2hkY3BfZW5hYmxlKHRvX2ludGVsX2Nvbm5lY3Rvcihjb25uX3N0YXRlLT5jb25uZWN0b3Ip KTsKKwkgICAgRFJNX01PREVfQ09OVEVOVF9QUk9URUNUSU9OX0VOQUJMRUQgJiYKKwkgICAgY29u bl9zdGF0ZS0+aGRjcF9jb250ZW50X3R5cGUgIT0gaGRjcC0+Y29udGVudF90eXBlKSB7CisJCWlu dGVsX2hkY3BfZGlzYWJsZSh0b19pbnRlbF9jb25uZWN0b3IoY29ubl9zdGF0ZS0+Y29ubmVjdG9y KSk7CisJCXJlX2VuYWJsZV9oZGNwID0gdHJ1ZTsKKwl9CisKKwlpZiAoY29ubl9zdGF0ZS0+Y29u dGVudF9wcm90ZWN0aW9uID09CisJICAgIERSTV9NT0RFX0NPTlRFTlRfUFJPVEVDVElPTl9ERVNJ UkVEIHx8IHJlX2VuYWJsZV9oZGNwKQorCQlyZXQgPSBpbnRlbF9oZGNwX2VuYWJsZShjb25uZWN0 b3IsCisJCQkJCSh1OCljb25uX3N0YXRlLT5oZGNwX2NvbnRlbnRfdHlwZSk7CiAJZWxzZSBpZiAo Y29ubl9zdGF0ZS0+Y29udGVudF9wcm90ZWN0aW9uID09CiAJCSBEUk1fTU9ERV9DT05URU5UX1BS T1RFQ1RJT05fVU5ERVNJUkVEKQotCQlpbnRlbF9oZGNwX2Rpc2FibGUodG9faW50ZWxfY29ubmVj dG9yKGNvbm5fc3RhdGUtPmNvbm5lY3RvcikpOworCQlpbnRlbF9oZGNwX2Rpc2FibGUoY29ubmVj dG9yKTsKKworCS8qCisJICogRHVyaW5nIFR5cGUgY2hhbmdlIGhhbmRsaW5nIHJlLWVuYWJsaW5n IG9mIHRoZSBIRENQIGZhaWxlZC4gSGVuY2UKKwkgKiBjaGFuZ2VzIHN0YXRlIGFzIEVOQUJMRUQt PkRFU0lSRUQuCisJICovCisJaWYgKHJldCAmJiByZV9lbmFibGVfaGRjcCkgeworCQltdXRleF9s b2NrKCZoZGNwLT5tdXRleCk7CisJCWhkY3AtPnZhbHVlID0gRFJNX01PREVfQ09OVEVOVF9QUk9U RUNUSU9OX0RFU0lSRUQ7CisJCXNjaGVkdWxlX3dvcmsoJmhkY3AtPnByb3Bfd29yayk7CisJCW11 dGV4X3VubG9jaygmaGRjcC0+bXV0ZXgpOworCX0KIH0KIAogc3RhdGljIHZvaWQgaW50ZWxfZGRp X3NldF9maWFfbGFuZV9jb3VudChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkY3AuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2hkY3AuYwppbmRleCBhNjEzOTFkMzc0ZTguLjc3Mjk3NDY5N2I1YSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2hkY3AuYwpAQCAtMTcxNywxNCArMTcxNywxNSBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IGNvbXBvbmVudF9vcHMgaTkxNV9oZGNwX2NvbXBvbmVudF9vcHMgPSB7CiAJ LnVuYmluZCA9IGk5MTVfaGRjcF9jb21wb25lbnRfdW5iaW5kLAogfTsKIAotc3RhdGljIGlubGlu ZSBpbnQgaW5pdGlhbGl6ZV9oZGNwX3BvcnRfZGF0YShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpj b25uZWN0b3IpCitzdGF0aWMgaW5saW5lIGludCBpbml0aWFsaXplX2hkY3BfcG9ydF9kYXRhKHN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKKwkJCQkJICAgIGNvbnN0IHN0cnVjdCBp bnRlbF9oZGNwX3NoaW0gKnNoaW0pCiB7CiAJc3RydWN0IGludGVsX2hkY3AgKmhkY3AgPSAmY29u bmVjdG9yLT5oZGNwOwogCXN0cnVjdCBoZGNwX3BvcnRfZGF0YSAqZGF0YSA9ICZoZGNwLT5wb3J0 X2RhdGE7CiAKIAlkYXRhLT5wb3J0ID0gY29ubmVjdG9yLT5lbmNvZGVyLT5wb3J0OwogCWRhdGEt PnBvcnRfdHlwZSA9ICh1OClIRENQX1BPUlRfVFlQRV9JTlRFR1JBVEVEOwotCWRhdGEtPnByb3Rv Y29sID0gKHU4KWhkY3AtPnNoaW0tPnByb3RvY29sOworCWRhdGEtPnByb3RvY29sID0gKHU4KXNo aW0tPnByb3RvY29sOwogCiAJZGF0YS0+ayA9IDE7CiAJaWYgKCFkYXRhLT5zdHJlYW1zKQpAQCAt MTc3NCwxMiArMTc3NSwxMyBAQCB2b2lkIGludGVsX2hkY3BfY29tcG9uZW50X2luaXQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCX0KIH0KIAotc3RhdGljIHZvaWQgaW50ZWxf aGRjcDJfaW5pdChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCitzdGF0aWMgdm9p ZCBpbnRlbF9oZGNwMl9pbml0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKKwkJ CSAgICAgY29uc3Qgc3RydWN0IGludGVsX2hkY3Bfc2hpbSAqc2hpbSkKIHsKIAlzdHJ1Y3QgaW50 ZWxfaGRjcCAqaGRjcCA9ICZjb25uZWN0b3ItPmhkY3A7CiAJaW50IHJldDsKIAotCXJldCA9IGlu aXRpYWxpemVfaGRjcF9wb3J0X2RhdGEoY29ubmVjdG9yKTsKKwlyZXQgPSBpbml0aWFsaXplX2hk Y3BfcG9ydF9kYXRhKGNvbm5lY3Rvciwgc2hpbSk7CiAJaWYgKHJldCkgewogCQlEUk1fREVCVUdf S01TKCJNZWkgaGRjcCBkYXRhIGluaXQgZmFpbGVkXG4iKTsKIAkJcmV0dXJuOwpAQCAtMTc5OCwy NSArMTgwMCwyOCBAQCBpbnQgaW50ZWxfaGRjcF9pbml0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3Ig KmNvbm5lY3RvciwKIAlpZiAoIXNoaW0pCiAJCXJldHVybiAtRUlOVkFMOwogCisJaWYgKGlzX2hk Y3AyX3N1cHBvcnRlZChkZXZfcHJpdikpCisJCWludGVsX2hkY3AyX2luaXQoY29ubmVjdG9yLCBz aGltKTsKKwogCXJldCA9CiAJZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfY29udGVudF9wcm90ZWN0aW9u X3Byb3BlcnR5KCZjb25uZWN0b3ItPmJhc2UsCi0JCQkJCQkJIGZhbHNlKTsKLQlpZiAocmV0KQor CQkJCQkJCSBoZGNwLT5oZGNwMl9zdXBwb3J0ZWQpOworCWlmIChyZXQpIHsKKwkJaGRjcC0+aGRj cDJfc3VwcG9ydGVkID0gZmFsc2U7CisJCWtmcmVlKGhkY3AtPnBvcnRfZGF0YS5zdHJlYW1zKTsK IAkJcmV0dXJuIHJldDsKKwl9CiAKIAloZGNwLT5zaGltID0gc2hpbTsKIAltdXRleF9pbml0KCZo ZGNwLT5tdXRleCk7CiAJSU5JVF9ERUxBWUVEX1dPUksoJmhkY3AtPmNoZWNrX3dvcmssIGludGVs X2hkY3BfY2hlY2tfd29yayk7CiAJSU5JVF9XT1JLKCZoZGNwLT5wcm9wX3dvcmssIGludGVsX2hk Y3BfcHJvcF93b3JrKTsKLQotCWlmIChpc19oZGNwMl9zdXBwb3J0ZWQoZGV2X3ByaXYpKQotCQlp bnRlbF9oZGNwMl9pbml0KGNvbm5lY3Rvcik7CiAJaW5pdF93YWl0cXVldWVfaGVhZCgmaGRjcC0+ Y3BfaXJxX3F1ZXVlKTsKIAogCXJldHVybiAwOwogfQogCi1pbnQgaW50ZWxfaGRjcF9lbmFibGUo c3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQoraW50IGludGVsX2hkY3BfZW5hYmxl KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwgdTggY29udGVudF90eXBlKQogewog CXN0cnVjdCBpbnRlbF9oZGNwICpoZGNwID0gJmNvbm5lY3Rvci0+aGRjcDsKIAl1bnNpZ25lZCBs b25nIGNoZWNrX2xpbmtfaW50ZXJ2YWwgPSBEUk1fSERDUF9DSEVDS19QRVJJT0RfTVM7CkBAIC0x ODI3LDYgKzE4MzIsNyBAQCBpbnQgaW50ZWxfaGRjcF9lbmFibGUoc3RydWN0IGludGVsX2Nvbm5l Y3RvciAqY29ubmVjdG9yKQogCiAJbXV0ZXhfbG9jaygmaGRjcC0+bXV0ZXgpOwogCVdBUk5fT04o aGRjcC0+dmFsdWUgPT0gRFJNX01PREVfQ09OVEVOVF9QUk9URUNUSU9OX0VOQUJMRUQpOworCWhk Y3AtPmNvbnRlbnRfdHlwZSA9IGNvbnRlbnRfdHlwZTsKIAogCS8qCiAJICogQ29uc2lkZXJpbmcg dGhhdCBIRENQMi4yIGlzIG1vcmUgc2VjdXJlIHRoYW4gSERDUDEuNCwgSWYgdGhlIHNldHVwCkBA IC0xODM4LDggKzE4NDQsMTIgQEAgaW50IGludGVsX2hkY3BfZW5hYmxlKHN0cnVjdCBpbnRlbF9j b25uZWN0b3IgKmNvbm5lY3RvcikKIAkJCWNoZWNrX2xpbmtfaW50ZXJ2YWwgPSBEUk1fSERDUDJf Q0hFQ0tfUEVSSU9EX01TOwogCX0KIAotCS8qIFdoZW4gSERDUDIuMiBmYWlscywgSERDUDEuNCB3 aWxsIGJlIGF0dGVtcHRlZCAqLwotCWlmIChyZXQgJiYgaW50ZWxfaGRjcF9jYXBhYmxlKGNvbm5l Y3RvcikpIHsKKwkvKgorCSAqIFdoZW4gSERDUDIuMiBmYWlscyBhbmQgQ29udGVudCBUeXBlIGlz IG5vdCBUeXBlMSwgSERDUDEuNCB3aWxsCisJICogYmUgYXR0ZW1wdGVkLgorCSAqLworCWlmIChy ZXQgJiYgaW50ZWxfaGRjcF9jYXBhYmxlKGNvbm5lY3RvcikgJiYKKwkgICAgaGRjcC0+Y29udGVu dF90eXBlICE9IERSTV9NT0RFX0hEQ1BfQ09OVEVOVF9UWVBFMSkgewogCQlyZXQgPSBfaW50ZWxf aGRjcF9lbmFibGUoY29ubmVjdG9yKTsKIAl9CiAKQEAgLTE5MjEsMTIgKzE5MzEsMTUgQEAgdm9p ZCBpbnRlbF9oZGNwX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y LAogCiAJLyoKIAkgKiBOb3RoaW5nIHRvIGRvIGlmIHRoZSBzdGF0ZSBkaWRuJ3QgY2hhbmdlLCBv ciBIRENQIHdhcyBhY3RpdmF0ZWQgc2luY2UKLQkgKiB0aGUgbGFzdCBjb21taXQKKwkgKiB0aGUg bGFzdCBjb21taXQuIEFuZCBhbHNvIG5vIGNoYW5nZSBpbiBoZGNwIGNvbnRlbnQgdHlwZS4KIAkg Ki8KIAlpZiAob2xkX2NwID09IG5ld19jcCB8fAogCSAgICAob2xkX2NwID09IERSTV9NT0RFX0NP TlRFTlRfUFJPVEVDVElPTl9ERVNJUkVEICYmCi0JICAgICBuZXdfY3AgPT0gRFJNX01PREVfQ09O VEVOVF9QUk9URUNUSU9OX0VOQUJMRUQpKQotCQlyZXR1cm47CisJICAgICBuZXdfY3AgPT0gRFJN X01PREVfQ09OVEVOVF9QUk9URUNUSU9OX0VOQUJMRUQpKSB7CisJCWlmIChvbGRfc3RhdGUtPmhk Y3BfY29udGVudF90eXBlID09CisJCQkJbmV3X3N0YXRlLT5oZGNwX2NvbnRlbnRfdHlwZSkKKwkJ CXJldHVybjsKKwl9CiAKIAljcnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRfbmV3X2NydGNfc3Rh dGUobmV3X3N0YXRlLT5zdGF0ZSwKIAkJCQkJCSAgIG5ld19zdGF0ZS0+Y3J0Yyk7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZGNwLmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9oZGNwLmgKaW5kZXggYmU4ZGE4NWM4NjZhLi4xMzU1NWIwNTQ5MzAgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkY3AuaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9oZGNwLmgKQEAgLTIxLDcgKzIxLDcgQEAgdm9pZCBpbnRlbF9oZGNw X2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCQkJICAgICBz dHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqbmV3X3N0YXRlKTsKIGludCBpbnRlbF9oZGNwX2lu aXQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCQkgICAgY29uc3Qgc3RydWN0 IGludGVsX2hkY3Bfc2hpbSAqaGRjcF9zaGltKTsKLWludCBpbnRlbF9oZGNwX2VuYWJsZShzdHJ1 Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpOworaW50IGludGVsX2hkY3BfZW5hYmxlKHN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwgdTggY29udGVudF90eXBlKTsKIGludCBp bnRlbF9oZGNwX2Rpc2FibGUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsKIGJv b2wgaXNfaGRjcF9zdXBwb3J0ZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBl bnVtIHBvcnQgcG9ydCk7CiBib29sIGludGVsX2hkY3BfY2FwYWJsZShzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yICpjb25uZWN0b3IpOwotLSAKMi4xOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZng=