From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lucas De Marchi Subject: [PATCH v3 23/23] drm/i915/tgl: Gen-12 media compression Date: Fri, 23 Aug 2019 01:20:55 -0700 Message-ID: <20190823082055.5992-24-lucas.demarchi@intel.com> References: <20190823082055.5992-1-lucas.demarchi@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id EC9456EC39 for ; Fri, 23 Aug 2019 08:54:11 +0000 (UTC) In-Reply-To: <20190823082055.5992-1-lucas.demarchi@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 Cc: Dhinakaran Pandiyan List-Id: intel-gfx@lists.freedesktop.org RnJvbTogRGhpbmFrYXJhbiBQYW5kaXlhbiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5jb20+ CgpHZW4tMTIgZGlzcGxheSBjYW4gZGVjb21wcmVzcyBzdXJmYWNlcyBjb21wcmVzc2VkIGJ5IHRo ZSBtZWRpYSBlbmdpbmUuCkRldGVjdCB0aGUgbW9kaWZpZXIgY29ycmVzcG9uZGluZyB0byBtZWRp YSBjb21wcmVzc2lvbiB0byBlbmFibGUKZGVjb21wcmVzc2lvbiBmb3IgWVVWIGFuZCBBUkdCIHBh Y2tlZCBmb3JtYXRzLiBBIG5ldyBtb2RpZmllciBpcyBhZGRlZApzbyB0aGF0IHRoZSBkcml2ZXIg Y2FuIGRpc3Rpbmd1aXNoIGJldHdlZW4gbWVkaWEgYW5kIHJlbmRlciBjb21wcmVzc2VkCmJ1ZmZl cnMuIFVubGlrZSByZW5kZXIgZGVjb21wcmVzc2lvbiwgcGxhbmUgNiBhbmQgIHBsYW5lIDcgZG8g bm90IHN1cHBvcnQKbWVkaWEgZGVjb21wcmVzc2lvbi4KCnYyOiBGaXggY2hlY2twYXRjaCB3YXJu aW5ncyBvbiBjb2RlIHN0eWxlIChMdWNhcykKCkJzcGVjOiAyOTY5NQoKQ2M6IFZpbGxlIFN5cmrD pGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IERoaW5h a2FyYW4gUGFuZGl5YW4gPGRoaW5ha2FyYW4ucGFuZGl5YW5AaW50ZWwuY29tPgpTaWduZWQtb2Zm LWJ5OiBMdWNhcyBEZSBNYXJjaGkgPGx1Y2FzLmRlbWFyY2hpQGludGVsLmNvbT4KLS0tCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYyB8IDIzICsrKysrKysrKysr KysrKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Nwcml0ZS5jICB8 IDIwICsrKysrKysrKysrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAg ICAgICAgICAgICB8ICAxICsKIDMgZmlsZXMgY2hhbmdlZCwgMzcgaW5zZXJ0aW9ucygrKSwgNyBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxh eS5jCmluZGV4IDE5MGFkYmZmZTA1NS4uMThmZjQ2MzFmODczIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwpAQCAtMTkxMyw2ICsxOTEzLDcgQEAgaW50 ZWxfdGlsZV93aWR0aF9ieXRlcyhjb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwgaW50 IGNvbG9yX3BsYW5lKQogCQkJcmV0dXJuIDEyODsKIAkJLyogZmFsbCB0aHJvdWdoICovCiAJY2Fz ZSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9HRU4xMl9SQ19DQ1M6CisJY2FzZSBJOTE1X0ZPUk1B VF9NT0RfWV9USUxFRF9HRU4xMl9NQ19DQ1M6CiAJCWlmIChjb2xvcl9wbGFuZSA9PSAxKQogCQkJ cmV0dXJuIGNwcDsKIAkJLyogZmFsbCB0aHJvdWdoICovCkBAIC0yMDUwLDYgKzIwNTEsNyBAQCBz dGF0aWMgdW5zaWduZWQgaW50IGludGVsX3N1cmZfYWxpZ25tZW50KGNvbnN0IHN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiLAogCQkJcmV0dXJuIDI1NiAqIDEwMjQ7CiAJCXJldHVybiAwOwogCWNh c2UgSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfR0VOMTJfUkNfQ0NTOgorCWNhc2UgSTkxNV9GT1JN QVRfTU9EX1lfVElMRURfR0VOMTJfTUNfQ0NTOgogCQlyZXR1cm4gNCAqIDQgKiAxMDI0OwogCWNh c2UgSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfQ0NTOgogCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1lm X1RJTEVEX0NDUzoKQEAgLTIyNDgsOCArMjI1MCwxNSBAQCBzdGF0aWMgdTMyIGludGVsX2FkanVz dF90aWxlX29mZnNldChpbnQgKngsIGludCAqeSwKIAogc3RhdGljIGJvb2wgaXNfc3VyZmFjZV9s aW5lYXIodTY0IG1vZGlmaWVyLCBpbnQgY29sb3JfcGxhbmUpCiB7Ci0JcmV0dXJuIG1vZGlmaWVy ID09IERSTV9GT1JNQVRfTU9EX0xJTkVBUiB8fAotCSAgICAgICAobW9kaWZpZXIgPT0gSTkxNV9G T1JNQVRfTU9EX1lfVElMRURfR0VOMTJfUkNfQ0NTICYmIGNvbG9yX3BsYW5lID09IDEpOworCXN3 aXRjaCAobW9kaWZpZXIpIHsKKwljYXNlIERSTV9GT1JNQVRfTU9EX0xJTkVBUjoKKwkJcmV0dXJu IHRydWU7CisJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9HRU4xMl9SQ19DQ1M6CisJY2Fz ZSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9HRU4xMl9NQ19DQ1M6CisJCXJldHVybiBjb2xvcl9w bGFuZSA9PSAxOworCWRlZmF1bHQ6CisJCXJldHVybiBmYWxzZTsKKwl9CiB9CiAKIHN0YXRpYyB1 MzIgaW50ZWxfYWRqdXN0X2FsaWduZWRfb2Zmc2V0KGludCAqeCwgaW50ICp5LApAQCAtMjQzNyw2 ICsyNDQ2LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBpbnRlbF9mYl9tb2RpZmllcl90b190aWxp bmcodTY0IGZiX21vZGlmaWVyKQogCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQ6CiAJY2Fz ZSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9DQ1M6CiAJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWV9U SUxFRF9HRU4xMl9SQ19DQ1M6CisJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9HRU4xMl9N Q19DQ1M6CiAJCXJldHVybiBJOTE1X1RJTElOR19ZOwogCWRlZmF1bHQ6CiAJCXJldHVybiBJOTE1 X1RJTElOR19OT05FOwpAQCAtMjUxMCw2ICsyNTIwLDcgQEAgaW50ZWxfZ2V0X2Zvcm1hdF9pbmZv KGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyICpjbWQpCiAJCQkJCSAgQVJSQVlfU0laRShz a2xfY2NzX2Zvcm1hdHMpLAogCQkJCQkgIGNtZC0+cGl4ZWxfZm9ybWF0KTsKIAljYXNlIEk5MTVf Rk9STUFUX01PRF9ZX1RJTEVEX0dFTjEyX1JDX0NDUzoKKwljYXNlIEk5MTVfRk9STUFUX01PRF9Z X1RJTEVEX0dFTjEyX01DX0NDUzoKIAkJcmV0dXJuIGxvb2t1cF9mb3JtYXRfaW5mbyhnZW4xMl9j Y3NfZm9ybWF0cywKIAkJCQkJICBBUlJBWV9TSVpFKGdlbjEyX2Njc19mb3JtYXRzKSwKIAkJCQkJ ICBjbWQtPnBpeGVsX2Zvcm1hdCk7CkBAIC0yNTIxLDYgKzI1MzIsNyBAQCBpbnRlbF9nZXRfZm9y bWF0X2luZm8oY29uc3Qgc3RydWN0IGRybV9tb2RlX2ZiX2NtZDIgKmNtZCkKIGJvb2wgaXNfY2Nz X21vZGlmaWVyKHU2NCBtb2RpZmllcikKIHsKIAlyZXR1cm4gbW9kaWZpZXIgPT0gSTkxNV9GT1JN QVRfTU9EX1lfVElMRURfR0VOMTJfUkNfQ0NTIHx8CisJICAgICAgIG1vZGlmaWVyID09IEk5MTVf Rk9STUFUX01PRF9ZX1RJTEVEX0dFTjEyX01DX0NDUyB8fAogCSAgICAgICBtb2RpZmllciA9PSBJ OTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9DQ1MgfHwKIAkgICAgICAgbW9kaWZpZXIgPT0gSTkxNV9G T1JNQVRfTU9EX1lmX1RJTEVEX0NDUzsKIH0KQEAgLTQwOTMsNiArNDEwNSw4IEBAIHN0YXRpYyB1 MzIgc2tsX3BsYW5lX2N0bF90aWxpbmcodTY0IGZiX21vZGlmaWVyKQogCQkvKiBmYWxsIHRocm91 Z2ggKi8KIAljYXNlIEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEX0dFTjEyX1JDX0NDUzoKIAkJcmV0 dXJuIFBMQU5FX0NUTF9USUxFRF9ZIHwgUExBTkVfQ1RMX1JFTkRFUl9ERUNPTVBSRVNTSU9OX0VO QUJMRTsKKwljYXNlIEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEX0dFTjEyX01DX0NDUzoKKwkJcmV0 dXJuIFBMQU5FX0NUTF9USUxFRF9ZIHwgUExBTkVfQ1RMX01FRElBX0RFQ09NUFJFU1NJT05fRU5B QkxFOwogCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1lmX1RJTEVEOgogCQlyZXR1cm4gUExBTkVfQ1RM X1RJTEVEX1lGOwogCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1lmX1RJTEVEX0NDUzoKQEAgLTk4NzAs NiArOTg4NCw4IEBAIHNreWxha2VfZ2V0X2luaXRpYWxfcGxhbmVfY29uZmlnKHN0cnVjdCBpbnRl bF9jcnRjICpjcnRjLAogCQkJZmItPm1vZGlmaWVyID0gSU5URUxfR0VOKGRldl9wcml2KSA+PSAx MiA/CiAJCQkJSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfR0VOMTJfUkNfQ0NTIDoKIAkJCQlJOTE1 X0ZPUk1BVF9NT0RfWV9USUxFRF9DQ1M7CisJCWVsc2UgaWYgKHZhbCAmIFBMQU5FX0NUTF9NRURJ QV9ERUNPTVBSRVNTSU9OX0VOQUJMRSkKKwkJCWZiLT5tb2RpZmllciA9IEk5MTVfRk9STUFUX01P RF9ZX1RJTEVEX0dFTjEyX01DX0NDUzsKIAkJZWxzZQogCQkJZmItPm1vZGlmaWVyID0gSTkxNV9G T1JNQVRfTU9EX1lfVElMRUQ7CiAJCWJyZWFrOwpAQCAtMTU3NDAsNyArMTU3NTYsOCBAQCBzdGF0 aWMgaW50IGludGVsX2ZyYW1lYnVmZmVyX2luaXQoc3RydWN0IGludGVsX2ZyYW1lYnVmZmVyICpp bnRlbF9mYiwKIAkJICogVGhlIG1haW4gc3VyZmFjZSBwaXRjaCBtdXN0IGJlIHBhZGVkIHRvIGEg bXVsdGlwbGUgb2YgZm91cgogCQkgKiB0aWxlIHdpZHRocy4KIAkJICovCi0JCWlmIChmYi0+bW9k aWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfR0VOMTJfUkNfQ0NTICYmCisJCWlmICgo ZmItPm1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEX0dFTjEyX1JDX0NDUyB8fAor CQkgICAgIGZiLT5tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9HRU4xMl9NQ19D Q1MpICYmCiAJCSAgICBpID09IDApCiAJCQlzdHJpZGVfYWxpZ25tZW50ICo9IDQ7CiAKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc3ByaXRlLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Nwcml0ZS5jCmluZGV4IDczZDMyMDE3YmU4 OS4uNWRmM2E4OTkwNjhlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX3Nwcml0ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf c3ByaXRlLmMKQEAgLTE3NDksNyArMTc0OSw4IEBAIHN0YXRpYyBpbnQgc2tsX3BsYW5lX2NoZWNr X2ZiKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCSAgICAgZmIt Pm1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9ZZl9USUxFRCB8fAogCSAgICAgZmItPm1vZGlm aWVyID09IEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEX0NDUyB8fAogCSAgICAgZmItPm1vZGlmaWVy ID09IEk5MTVfRk9STUFUX01PRF9ZZl9USUxFRF9DQ1MgfHwKLQkgICAgIGZiLT5tb2RpZmllciA9 PSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9HRU4xMl9SQ19DQ1MpKSB7CisJICAgICBmYi0+bW9k aWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfR0VOMTJfUkNfQ0NTIHx8CisJICAgICBm Yi0+bW9kaWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfR0VOMTJfTUNfQ0NTKSkgewog CQlEUk1fREVCVUdfS01TKCJZL1lmIHRpbGluZyBub3Qgc3VwcG9ydGVkIGluIElGLUlEIG1vZGVc biIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CkBAIC0yMTYzLDYgKzIxNjQsNyBAQCBzdGF0aWMg Y29uc3QgdTY0IHNrbF9wbGFuZV9mb3JtYXRfbW9kaWZpZXJzX2Njc1tdID0gewogCiBzdGF0aWMg Y29uc3QgdTY0IGdlbjEyX3BsYW5lX2Zvcm1hdF9tb2RpZmllcnNfY2NzW10gPSB7CiAJSTkxNV9G T1JNQVRfTU9EX1lfVElMRURfR0VOMTJfUkNfQ0NTLAorCUk5MTVfRk9STUFUX01PRF9ZX1RJTEVE X0dFTjEyX01DX0NDUywKIAlJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRCwKIAlJOTE1X0ZPUk1BVF9N T0RfWF9USUxFRCwKIAlEUk1fRk9STUFUX01PRF9MSU5FQVIsCkBAIC0yMzIwLDcgKzIzMjIsMTMg QEAgc3RhdGljIGJvb2wgc2tsX3BsYW5lX2Zvcm1hdF9tb2Rfc3VwcG9ydGVkKHN0cnVjdCBkcm1f cGxhbmUgKl9wbGFuZSwKIHN0YXRpYyBib29sIGdlbjEyX3BsYW5lX2Zvcm1hdF9tb2Rfc3VwcG9y dGVkKHN0cnVjdCBkcm1fcGxhbmUgKl9wbGFuZSwKIAkJCQkJICAgICB1MzIgZm9ybWF0LCB1NjQg bW9kaWZpZXIpCiB7CisJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSA9IHRvX2ludGVsX3BsYW5l KF9wbGFuZSk7CisKIAlzd2l0Y2ggKG1vZGlmaWVyKSB7CisJY2FzZSBJOTE1X0ZPUk1BVF9NT0Rf WV9USUxFRF9HRU4xMl9NQ19DQ1M6CisJCWlmIChwbGFuZS0+aWQgPj0gUExBTkVfU1BSSVRFNCkK KwkJCXJldHVybiBmYWxzZTsKKwkJLyogZmFsbCB0aHJvdWdoICovCiAJY2FzZSBEUk1fRk9STUFU X01PRF9MSU5FQVI6CiAJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWF9USUxFRDoKIAljYXNlIEk5MTVf Rk9STUFUX01PRF9ZX1RJTEVEOgpAQCAtMjMzOCwxNCArMjM0NiwxOCBAQCBzdGF0aWMgYm9vbCBn ZW4xMl9wbGFuZV9mb3JtYXRfbW9kX3N1cHBvcnRlZChzdHJ1Y3QgZHJtX3BsYW5lICpfcGxhbmUs CiAJCWlmIChpc19jY3NfbW9kaWZpZXIobW9kaWZpZXIpKQogCQkJcmV0dXJuIHRydWU7CiAJCS8q IGZhbGwgdGhyb3VnaCAqLwotCWNhc2UgRFJNX0ZPUk1BVF9SR0I1NjU6Ci0JY2FzZSBEUk1fRk9S TUFUX1hSR0IyMTAxMDEwOgotCWNhc2UgRFJNX0ZPUk1BVF9YQkdSMjEwMTAxMDoKIAljYXNlIERS TV9GT1JNQVRfWVVZVjoKIAljYXNlIERSTV9GT1JNQVRfWVZZVToKIAljYXNlIERSTV9GT1JNQVRf VVlWWToKIAljYXNlIERSTV9GT1JNQVRfVllVWToKKwkJaWYgKG1vZGlmaWVyID09IEk5MTVfRk9S TUFUX01PRF9ZX1RJTEVEX0dFTjEyX01DX0NDUykKKwkJCXJldHVybiB0cnVlOworCQkvKiBmYWxs IHRocm91Z2ggKi8KKwkvKiBUT0RPOiBNZWRpYSBkZWNvbXByZXNzaW9uIGRvZXMgc3VwcG9ydCBO VjEyICovCiAJY2FzZSBEUk1fRk9STUFUX05WMTI6CisJY2FzZSBEUk1fRk9STUFUX1JHQjU2NToK KwljYXNlIERSTV9GT1JNQVRfWFJHQjIxMDEwMTA6CisJY2FzZSBEUk1fRk9STUFUX1hCR1IyMTAx MDEwOgogCWNhc2UgRFJNX0ZPUk1BVF9DODoKIAkJaWYgKG1vZGlmaWVyID09IERSTV9GT1JNQVRf TU9EX0xJTkVBUiB8fAogCQkgICAgbW9kaWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQg fHwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCmluZGV4IGZmZmFlZDBjYTNjZC4uMTg2ZWU4MjE1ZjQ2 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKQEAgLTY2ODQsNiArNjY4NCw3IEBAIGVudW0gewog I2RlZmluZSAgIFBMQU5FX0NUTF9USUxFRF9ZCQkJKDQgPDwgMTApCiAjZGVmaW5lICAgUExBTkVf Q1RMX1RJTEVEX1lGCQkJKDUgPDwgMTApCiAjZGVmaW5lICAgUExBTkVfQ1RMX0ZMSVBfSE9SSVpP TlRBTAkJKDEgPDwgOCkKKyNkZWZpbmUgICBQTEFORV9DVExfTUVESUFfREVDT01QUkVTU0lPTl9F TkFCTEUJKDEgPDwgNCkgLyogVEdMKyAqLwogI2RlZmluZSAgIFBMQU5FX0NUTF9BTFBIQV9NQVNL CQkJKDB4MyA8PCA0KSAvKiBQcmUtR0xLICovCiAjZGVmaW5lICAgUExBTkVfQ1RMX0FMUEhBX0RJ U0FCTEUJCSgwIDw8IDQpCiAjZGVmaW5lICAgUExBTkVfQ1RMX0FMUEhBX1NXX1BSRU1VTFRJUExZ CSgyIDw8IDQpCi0tIAoyLjIzLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeA==