From mboxrd@z Thu Jan 1 00:00:00 1970 From: Uma Shankar Subject: [v10 01/12] drm: Add HDR source metadata property Date: Tue, 14 May 2019 23:06:23 +0530 Message-ID: <1557855394-12214-2-git-send-email-uma.shankar@intel.com> References: <1557855394-12214-1-git-send-email-uma.shankar@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1557855394-12214-1-git-send-email-uma.shankar@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 Cc: dcastagna@chromium.org, jonas@kwiboo.se, seanpaul@chromium.org List-Id: dri-devel@lists.freedesktop.org VGhpcyBwYXRjaCBhZGRzIGEgYmxvYiBwcm9wZXJ0eSB0byBnZXQgSERSIG1ldGFkYXRhCmluZm9y bWF0aW9uIGZyb20gdXNlcnNwYWNlLiBUaGlzIHdpbGwgYmUgc2VuZCBhcyBwYXJ0Cm9mIEFWSSBJ bmZvZnJhbWUgdG8gcGFuZWwuCgpJdCBhbHNvIGltcGxlbWVudHMgZ2V0KCkgYW5kIHNldCgpIGZ1 bmN0aW9ucyBmb3IgSERSIG91dHB1dAptZXRhZGF0YSBwcm9wZXJ0eS5UaGUgYmxvYiBkYXRhIGlz IHJlY2VpdmVkIGZyb20gdXNlcnNwYWNlIGFuZApzYXZlZCBpbiBjb25uZWN0b3Igc3RhdGUsIHRo ZSBzYW1lIGlzIHJldHVybmVkIGFzIGJsb2IgaW4gZ2V0CnByb3BlcnR5IGNhbGwgdG8gdXNlcnNw YWNlLgoKdjI6IFJlYmFzZSBhbmQgbW9kaWZpZWQgdGhlIG1ldGFkYXRhIHN0cnVjdHVyZSBlbGVt ZW50cwphcyBwZXIgVmlsbGUncyBQT0MgY2hhbmdlcy4KCnYzOiBObyBDaGFuZ2UKCnY0OiBBZGRy ZXNzZWQgU2hhc2hhbmsncyByZXZpZXcgY29tbWVudHMKCnY1OiBSZWJhc2UuCgp2NjogQWRkcmVz c2VkIEJyaWFuIFN0YXJrZXkncyByZXZpZXcgY29tbWVudHMsIGRlZmluZWQKbmV3IHN0cnVjdHVy ZSB3aXRoIGhlYWRlciBmb3IgZHluYW1pYyBtZXRhZGF0YSBzY2FsYWJpbGl0eS4KTWVyZ2UgZ2V0 L3NldCBwcm9wZXJ0eSBmdW5jdGlvbnMgZm9yIG1ldGFkYXRhIGluIHRoaXMgcGF0Y2guCgp2Nzog QWRkcmVzc2VkIEpvbmFzIEthcmxtYW4gcmV2aWV3IGNvbW1lbnRzIGFuZCBkZWZpbmVkIHNlcGFy YXRlCnN0cnVjdHVyZSBmb3IgaW5mb2ZyYW1lIHRvIGJldHRlciBhbGlnbiB3aXRoIENUQSA4NjEu RyBzcGVjLiBBZGRlZApTaGFzaGFuaydzIFJCLgoKdjg6IEFkZHJlc3NlZCBWaWxsZSdzIHJldmll dyBjb21tZW50cy4gTW92ZWQgc2luayBtZXRhZGF0YSBzdHJ1Y3R1cmUKb3V0IG9mIHVhcGkgaGVh ZGVycyBhcyBzdWdnZXN0ZWQgYnkgSm9uYXMgS2FybG1hbi4KCnY5OiBSZWJhc2UgYW5kIGFkZHJl c3NlZCBKb25hcyBLYXJsbWFuIHJldmlldyBjb21tZW50cy4KClNpZ25lZC1vZmYtYnk6IFVtYSBT aGFua2FyIDx1bWEuc2hhbmthckBpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBTaGFzaGFuayBTaGFy bWEgPHNoYXNoYW5rLnNoYXJtYUBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9h dG9taWMuYyAgICAgIHwgIDIgKysKIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYyB8 IDEzICsrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMgICB8ICA2 ICsrKysrKwogaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oICAgICAgIHwgMTEgKysrKysrKysr KysKIGluY2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZpZy5oICAgICB8ICA3ICsrKysrKysKIGluY2x1 ZGUvbGludXgvaGRtaS5oICAgICAgICAgICAgICB8IDI2ICsrKysrKysrKysrKysrKysrKysrKysr KysrCiBpbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmggICAgICAgfCAyMyArKysrKysrKysrKysr KysrKysrKysrKwogNyBmaWxlcyBjaGFuZ2VkLCA4OCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRv bWljLmMKaW5kZXggZjQ5MjRjYi4uMGQyNzE5NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2RybV9hdG9taWMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCkBAIC05MjUs NiArOTI1LDggQEAgc3RhdGljIHZvaWQgZHJtX2F0b21pY19jb25uZWN0b3JfcHJpbnRfc3RhdGUo c3RydWN0IGRybV9wcmludGVyICpwLAogCiAJZHJtX3ByaW50ZihwLCAiY29ubmVjdG9yWyV1XTog JXNcbiIsIGNvbm5lY3Rvci0+YmFzZS5pZCwgY29ubmVjdG9yLT5uYW1lKTsKIAlkcm1fcHJpbnRm KHAsICJcdGNydGM9JXNcbiIsIHN0YXRlLT5jcnRjID8gc3RhdGUtPmNydGMtPm5hbWUgOiAiKG51 bGwpIik7CisJZHJtX3ByaW50ZihwLCAiXHRoZHJfbWV0YWRhdGFfY2hhbmdlZD0lZFxuIiwKKwkJ ICAgc3RhdGUtPmhkcl9tZXRhZGF0YV9jaGFuZ2VkKTsKIAogCWlmIChjb25uZWN0b3ItPmNvbm5l Y3Rvcl90eXBlID09IERSTV9NT0RFX0NPTk5FQ1RPUl9XUklURUJBQ0spCiAJCWlmIChzdGF0ZS0+ d3JpdGViYWNrX2pvYiAmJiBzdGF0ZS0+d3JpdGViYWNrX2pvYi0+ZmIpCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0 b21pY191YXBpLmMKaW5kZXggNDEzMWU2Ni4uNGFhODJjOTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21p Y191YXBpLmMKQEAgLTY3Niw2ICs2NzYsOCBAQCBzdGF0aWMgaW50IGRybV9hdG9taWNfY29ubmVj dG9yX3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogewogCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmRldjsKIAlzdHJ1Y3QgZHJtX21vZGVf Y29uZmlnICpjb25maWcgPSAmZGV2LT5tb2RlX2NvbmZpZzsKKwlib29sIHJlcGxhY2VkID0gZmFs c2U7CisJaW50IHJldDsKIAogCWlmIChwcm9wZXJ0eSA9PSBjb25maWctPnByb3BfY3J0Y19pZCkg ewogCQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBkcm1fY3J0Y19maW5kKGRldiwgZmlsZV9wcml2 LCB2YWwpOwpAQCAtNzI2LDYgKzcyOCwxNCBAQCBzdGF0aWMgaW50IGRybV9hdG9taWNfY29ubmVj dG9yX3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCQkgKi8K IAkJaWYgKHN0YXRlLT5saW5rX3N0YXR1cyAhPSBEUk1fTElOS19TVEFUVVNfR09PRCkKIAkJCXN0 YXRlLT5saW5rX3N0YXR1cyA9IHZhbDsKKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+ aGRyX291dHB1dF9tZXRhZGF0YV9wcm9wZXJ0eSkgeworCQlyZXQgPSBkcm1fYXRvbWljX3JlcGxh Y2VfcHJvcGVydHlfYmxvYl9mcm9tX2lkKGRldiwKKwkJCQkmc3RhdGUtPmhkcl9vdXRwdXRfbWV0 YWRhdGEsCisJCQkJdmFsLAorCQkJCS0xLCBzaXplb2Yoc3RydWN0IGhkcl9vdXRwdXRfbWV0YWRh dGEpLAorCQkJCSZyZXBsYWNlZCk7CisJCXN0YXRlLT5oZHJfbWV0YWRhdGFfY2hhbmdlZCB8PSBy ZXBsYWNlZDsKKwkJcmV0dXJuIHJldDsKIAl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+ YXNwZWN0X3JhdGlvX3Byb3BlcnR5KSB7CiAJCXN0YXRlLT5waWN0dXJlX2FzcGVjdF9yYXRpbyA9 IHZhbDsKIAl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+Y29udGVudF90eXBlX3Byb3Bl cnR5KSB7CkBAIC04MTQsNiArODI0LDkgQEAgc3RhdGljIGludCBkcm1fYXRvbWljX2Nvbm5lY3Rv cl9zZXRfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAkJKnZhbCA9 IHN0YXRlLT5jb2xvcnNwYWNlOwogCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29ubmVjdG9yLT5z Y2FsaW5nX21vZGVfcHJvcGVydHkpIHsKIAkJKnZhbCA9IHN0YXRlLT5zY2FsaW5nX21vZGU7CisJ fSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25maWctPmhkcl9vdXRwdXRfbWV0YWRhdGFfcHJvcGVy dHkpIHsKKwkJKnZhbCA9IHN0YXRlLT5oZHJfb3V0cHV0X21ldGFkYXRhID8KKwkJCXN0YXRlLT5o ZHJfb3V0cHV0X21ldGFkYXRhLT5iYXNlLmlkIDogMDsKIAl9IGVsc2UgaWYgKHByb3BlcnR5ID09 IGNvbmZpZy0+Y29udGVudF9wcm90ZWN0aW9uX3Byb3BlcnR5KSB7CiAJCSp2YWwgPSBzdGF0ZS0+ Y29udGVudF9wcm90ZWN0aW9uOwogCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT53cml0 ZWJhY2tfZmJfaWRfcHJvcGVydHkpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f Y29ubmVjdG9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jCmluZGV4IDExZmNk MjUuLmM5YWM4YjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYwpAQCAtMTA1MSw2ICsxMDUxLDEy IEBAIGludCBkcm1fY29ubmVjdG9yX2NyZWF0ZV9zdGFuZGFyZF9wcm9wZXJ0aWVzKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCiAJCXJldHVybiAtRU5PTUVNOwogCWRldi0+bW9kZV9jb25maWcubm9u X2Rlc2t0b3BfcHJvcGVydHkgPSBwcm9wOwogCisJcHJvcCA9IGRybV9wcm9wZXJ0eV9jcmVhdGUo ZGV2LCBEUk1fTU9ERV9QUk9QX0JMT0IsCisJCQkJICAgIkhEUl9PVVRQVVRfTUVUQURBVEEiLCAw KTsKKwlpZiAoIXByb3ApCisJCXJldHVybiAtRU5PTUVNOworCWRldi0+bW9kZV9jb25maWcuaGRy X291dHB1dF9tZXRhZGF0YV9wcm9wZXJ0eSA9IHByb3A7CisKIAlyZXR1cm4gMDsKIH0KIApkaWZm IC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oIGIvaW5jbHVkZS9kcm0vZHJtX2Nv bm5lY3Rvci5oCmluZGV4IGUyNTdiODcuLjU0ZGFhNTQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJt L2RybV9jb25uZWN0b3IuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmgKQEAgLTYw Myw2ICs2MDMsMTMgQEAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgewogCSAqIGFuZCB0aGUg Y29ubmVjdG9yIGJwYyBsaW1pdGF0aW9ucyBvYnRhaW5lZCBmcm9tIGVkaWQuCiAJICovCiAJdTgg bWF4X2JwYzsKKworCS8qKgorCSAqIEBoZHJfb3V0cHV0X21ldGFkYXRhOgorCSAqIERSTSBibG9i IHByb3BlcnR5IGZvciBIRFIgb3V0cHV0IG1ldGFkYXRhCisJICovCisJc3RydWN0IGRybV9wcm9w ZXJ0eV9ibG9iICpoZHJfb3V0cHV0X21ldGFkYXRhOworCXU4IGhkcl9tZXRhZGF0YV9jaGFuZ2Vk IDogMTsKIH07CiAKIC8qKgpAQCAtMTIzNyw2ICsxMjQ0LDEwIEBAIHN0cnVjdCBkcm1fY29ubmVj dG9yIHsKIAkgKiAmZHJtX21vZGVfY29uZmlnLmNvbm5lY3Rvcl9mcmVlX3dvcmsuCiAJICovCiAJ c3RydWN0IGxsaXN0X25vZGUgZnJlZV9ub2RlOworCisJLyogSERSIG1ldGRhdGEgKi8KKwlzdHJ1 Y3QgaGRyX291dHB1dF9tZXRhZGF0YSBoZHJfb3V0cHV0X21ldGFkYXRhOworCXN0cnVjdCBoZHJf c2lua19tZXRhZGF0YSBoZHJfc2lua19tZXRhZGF0YTsKIH07CiAKICNkZWZpbmUgb2JqX3RvX2Nv bm5lY3Rvcih4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGRybV9jb25uZWN0b3IsIGJhc2UpCmRp ZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fbW9kZV9jb25maWcuaCBiL2luY2x1ZGUvZHJtL2Ry bV9tb2RlX2NvbmZpZy5oCmluZGV4IDU3NjRlZTMuLjU4Mjc4Y2MgMTAwNjQ0Ci0tLSBhL2luY2x1 ZGUvZHJtL2RybV9tb2RlX2NvbmZpZy5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZp Zy5oCkBAIC04NDIsNiArODQyLDEzIEBAIHN0cnVjdCBkcm1fbW9kZV9jb25maWcgewogCSAqLwog CXN0cnVjdCBkcm1fcHJvcGVydHkgKmNvbnRlbnRfcHJvdGVjdGlvbl9wcm9wZXJ0eTsKIAorCS8q KgorCSAqIGhkcl9vdXRwdXRfbWV0YWRhdGFfcHJvcGVydHk6IENvbm5lY3RvciBwcm9wZXJ0eSBj b250YWluaW5nIGhkcgorCSAqIG1ldGF0ZGEuIFRoaXMgd2lsbCBiZSBwcm92aWRlZCBieSB1c2Vy c3BhY2UgY29tcG9zaXRvcnMgYmFzZWQKKwkgKiBvbiBIRFIgY29udGVudAorCSAqLworCXN0cnVj dCBkcm1fcHJvcGVydHkgKmhkcl9vdXRwdXRfbWV0YWRhdGFfcHJvcGVydHk7CisKIAkvKiBkdW1i IGlvY3RsIHBhcmFtZXRlcnMgKi8KIAl1aW50MzJfdCBwcmVmZXJyZWRfZGVwdGgsIHByZWZlcl9z aGFkb3c7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvaGRtaS5oIGIvaW5jbHVkZS9saW51 eC9oZG1pLmgKaW5kZXggOTI3YWQ2NC4uNjc4MDQ3NiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51 eC9oZG1pLmgKKysrIGIvaW5jbHVkZS9saW51eC9oZG1pLmgKQEAgLTE1Miw2ICsxNTIsMTYgQEAg ZW51bSBoZG1pX2NvbnRlbnRfdHlwZSB7CiAJSERNSV9DT05URU5UX1RZUEVfR0FNRSwKIH07CiAK K2VudW0gaGRtaV9tZXRhZGF0YV90eXBlIHsKKwlIRE1JX1NUQVRJQ19NRVRBREFUQV9UWVBFMSA9 IDEsCit9OworCitlbnVtIGhkbWlfZW90ZiB7CisJSERNSV9FT1RGX1RSQURJVElPTkFMX0dBTU1B X1NEUiwKKwlIRE1JX0VPVEZfVFJBRElUSU9OQUxfR0FNTUFfSERSLAorCUhETUlfRU9URl9TTVBU RV9TVDIwODQsCit9OworCiBzdHJ1Y3QgaGRtaV9hdmlfaW5mb2ZyYW1lIHsKIAllbnVtIGhkbWlf aW5mb2ZyYW1lX3R5cGUgdHlwZTsKIAl1bnNpZ25lZCBjaGFyIHZlcnNpb247CkBAIC0zMjAsNiAr MzMwLDIyIEBAIHN0cnVjdCBoZG1pX3ZlbmRvcl9pbmZvZnJhbWUgewogCXVuc2lnbmVkIGludCBz M2RfZXh0X2RhdGE7CiB9OwogCisvKiBIRFIgTWV0YWRhdGEgYXMgcGVyIDg2MS5HIHNwZWMgKi8K K3N0cnVjdCBoZHJfc3RhdGljX21ldGFkYXRhIHsKKwlfX3U4IGVvdGY7CisJX191OCBtZXRhZGF0 YV90eXBlOworCV9fdTE2IG1heF9jbGw7CisJX191MTYgbWF4X2ZhbGw7CisJX191MTYgbWluX2Ns bDsKK307CisKK3N0cnVjdCBoZHJfc2lua19tZXRhZGF0YSB7CisJX191MzIgbWV0YWRhdGFfdHlw ZTsKKwl1bmlvbiB7CisJCXN0cnVjdCBoZHJfc3RhdGljX21ldGFkYXRhIGhkbWlfdHlwZTE7CisJ fTsKK307CisKIGludCBoZG1pX3ZlbmRvcl9pbmZvZnJhbWVfaW5pdChzdHJ1Y3QgaGRtaV92ZW5k b3JfaW5mb2ZyYW1lICpmcmFtZSk7CiBzc2l6ZV90IGhkbWlfdmVuZG9yX2luZm9mcmFtZV9wYWNr KHN0cnVjdCBoZG1pX3ZlbmRvcl9pbmZvZnJhbWUgKmZyYW1lLAogCQkJCSAgIHZvaWQgKmJ1ZmZl ciwgc2l6ZV90IHNpemUpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5o IGIvaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oCmluZGV4IDgzY2QxNjMuLjk5N2E3ZTAgMTAw NjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaAorKysgYi9pbmNsdWRlL3VhcGkv ZHJtL2RybV9tb2RlLmgKQEAgLTYzMCw2ICs2MzAsMjkgQEAgc3RydWN0IGRybV9jb2xvcl9sdXQg ewogCV9fdTE2IHJlc2VydmVkOwogfTsKIAorLyogSERSIE1ldGFkYXRhIEluZm9mcmFtZSBhcyBw ZXIgODYxLkcgc3BlYyAqLworc3RydWN0IGhkcl9tZXRhZGF0YV9pbmZvZnJhbWUgeworCV9fdTgg ZW90ZjsKKwlfX3U4IG1ldGFkYXRhX3R5cGU7CisJc3RydWN0IHsKKwkJX191MTYgeCwgeTsKKwkJ fSBkaXNwbGF5X3ByaW1hcmllc1szXTsKKwlzdHJ1Y3QgeworCQlfX3UxNiB4LCB5OworCQl9IHdo aXRlX3BvaW50OworCV9fdTE2IG1heF9kaXNwbGF5X21hc3RlcmluZ19sdW1pbmFuY2U7CisJX191 MTYgbWluX2Rpc3BsYXlfbWFzdGVyaW5nX2x1bWluYW5jZTsKKwlfX3UxNiBtYXhfY2xsOworCV9f dTE2IG1heF9mYWxsOworfTsKKworc3RydWN0IGhkcl9vdXRwdXRfbWV0YWRhdGEgeworCV9fdTMy IG1ldGFkYXRhX3R5cGU7CisJdW5pb24geworCQlzdHJ1Y3QgaGRyX21ldGFkYXRhX2luZm9mcmFt ZSBoZG1pX21ldGFkYXRhX3R5cGUxOworCX07Cit9OworCiAjZGVmaW5lIERSTV9NT0RFX1BBR0Vf RkxJUF9FVkVOVCAweDAxCiAjZGVmaW5lIERSTV9NT0RFX1BBR0VfRkxJUF9BU1lOQyAweDAyCiAj ZGVmaW5lIERSTV9NT0RFX1BBR0VfRkxJUF9UQVJHRVRfQUJTT0xVVEUgMHg0Ci0tIAoxLjkuMQoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4