From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [RFC PATCH] drm/edid: index CEA/HDMI mode tables using the VIC Date: Thu, 3 Dec 2015 11:53:59 +0200 Message-ID: <20151203095359.GY4437@intel.com> References: <1448983014-26551-1-git-send-email-jani.nikula@intel.com> <20151201152445.GF4437@intel.com> <87si3l2hun.fsf@intel.com> <20151202122422.GX4437@intel.com> <87h9k12ekc.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id D12576EBA0 for ; Thu, 3 Dec 2015 01:54:26 -0800 (PST) Content-Disposition: inline In-Reply-To: <87h9k12ekc.fsf@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Jani Nikula Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBEZWMgMDIsIDIwMTUgYXQgMDI6NTc6MzlQTSArMDIwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gT24gV2VkLCAwMiBEZWMgMjAxNSwgVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxh QGxpbnV4LmludGVsLmNvbT4gd3JvdGU6Cj4gPiBPbiBXZWQsIERlYyAwMiwgMjAxNSBhdCAwMTo0 Njo0MFBNICswMjAwLCBKYW5pIE5pa3VsYSB3cm90ZToKPiA+PiBPbiBUdWUsIDAxIERlYyAyMDE1 LCBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPiB3cm90ZToK PiA+PiA+IE9uIFR1ZSwgRGVjIDAxLCAyMDE1IGF0IDA1OjE2OjU0UE0gKzAyMDAsIEphbmkgTmlr dWxhIHdyb3RlOgo+ID4+ID4+IEFkZCBhIGR1bW15IGVudHJ5IHRvIENFQS9IRE1JIG1vZGUgdGFi bGVzIHNvIHRoZXkgY2FuIGJlIGluZGV4ZWQKPiA+PiA+PiBkaXJlY3RseSB1c2luZyB0aGUgVklD LCBhdm9pZGluZyBhICsxLy0xIGRhbmNlIGhlcmUgYW5kIHRoZXJlLiBUaGlzIGFkZHMKPiA+PiA+ PiBjbGFyaXR5IHRvIHRoZSBlcnJvciBjaGVja2luZyBmb3IgdmFyaW91cyBmdW5jdGlvbnMgdGhh dCByZXR1cm4gdGhlIFZJQwo+ID4+ID4+IG9uIHN1Y2Nlc3MgYW5kIHplcm8gb24gZmFpbHVyZTsg d2Ugbm93IGV4cGxpY2l0bHkgY2hlY2sgZm9yIDAgaW5zdGVhZCBvZgo+ID4+ID4+IGp1c3Qgc3Vi dHJhY3Rpbmcgb25lIGZyb20gYW4gdW5zaWduZWQgdHlwZS4KPiA+PiA+PiAKPiA+PiA+PiBDYzog VmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+PiA+PiBT aWduZWQtb2ZmLWJ5OiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgo+ID4+ID4+ IAo+ID4+ID4+IC0tLQo+ID4+ID4+IAo+ID4+ID4+IFRoaXMgaXMgb24gdG9wIG9mCj4gPj4gPj4g Cj4gPj4gPj4gY29tbWl0IDRjNmJjZjQ0NTQ5OTA3Y2I1MGI2N2Y5OGViMTM3MTdhNGFkYzZiMzMK PiA+PiA+PiBBdXRob3I6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRl bC5jb20+Cj4gPj4gPj4gRGF0ZTogICBNb24gTm92IDE2IDIxOjA1OjEyIDIwMTUgKzAyMDAKPiA+ PiA+PiAKPiA+PiA+PiAgICAgZHJtL2VkaWQ6IE1ha2UgdGhlIGRldGFpbGVkIHRpbWluZyBDRUEv SERNSSBtb2RlIGZpeHVwIGFjY2VwdCB1cCB0byA1a0h6IGNsb2NrIGRpZmZlcmVuY2UKPiA+PiA+ PiAKPiA+PiA+PiBpbiBkcm0taW50ZWwvdG9waWMvZHJtLW1pc2MKPiA+PiA+PiAtLS0KPiA+PiA+ PiAgZHJpdmVycy9ncHUvZHJtL2RybV9lZGlkLmMgfCA4NCArKysrKysrKysrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4gPj4gIDEgZmlsZSBjaGFuZ2VkLCA0MyBpbnNl cnRpb25zKCspLCA0MSBkZWxldGlvbnMoLSkKPiA+PiA+PiAKPiA+PiA+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2RybV9lZGlkLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYwo+ ID4+ID4+IGluZGV4IGMyMTRmMTI0NmNiNC4uYWVhMDllYWU0MDdlIDEwMDY0NAo+ID4+ID4+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jCj4gPj4gPj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9lZGlkLmMKPiA+PiA+IDxzbmlwPgo+ID4+ID4+IEBAIC0yNzEzLDE2ICsyNzE2LDE2 IEBAIGFkZF9hbHRlcm5hdGVfY2VhX21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IsIHN0cnVjdCBlZGlkICplZGlkKQo+ID4+ID4+ICAJbGlzdF9mb3JfZWFjaF9lbnRyeShtb2Rl LCAmY29ubmVjdG9yLT5wcm9iZWRfbW9kZXMsIGhlYWQpIHsKPiA+PiA+PiAgCQljb25zdCBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqY2VhX21vZGUgPSBOVUxMOwo+ID4+ID4+ICAJCXN0cnVjdCBk cm1fZGlzcGxheV9tb2RlICpuZXdtb2RlOwo+ID4+ID4+IC0JCXU4IG1vZGVfaWR4ID0gZHJtX21h dGNoX2NlYV9tb2RlKG1vZGUpIC0gMTsKPiA+PiA+PiArCQl1OCB2aWMgPSBkcm1fbWF0Y2hfY2Vh X21vZGUobW9kZSk7Cj4gPj4gPj4gIAkJdW5zaWduZWQgaW50IGNsb2NrMSwgY2xvY2syOwo+ID4+ ID4+ICAKPiA+PiA+PiAtCQlpZiAobW9kZV9pZHggPCBBUlJBWV9TSVpFKGVkaWRfY2VhX21vZGVz KSkgewo+ID4+ID4+IC0JCQljZWFfbW9kZSA9ICZlZGlkX2NlYV9tb2Rlc1ttb2RlX2lkeF07Cj4g Pj4gPj4gKwkJaWYgKHZpYyA+IDAgJiYgdmljIDwgQVJSQVlfU0laRShlZGlkX2NlYV9tb2Rlcykp IHsKPiA+PiA+Cj4gPj4gPiBNYXliZSBhZGQgc29tZSBzb3J0IG9mIHZpY19pc192YWxpZCgpIGhl bHBlcnMgdG8gYXZvaWQgZHVwbGljYXRpbmcKPiA+PiA+IHRoZXNlIGluIHNvIG1hbnkgcGxhY2Vz Pwo+ID4+IAo+ID4+IEFueSB0aG91Z2h0cyBvbiBob3cgdGhhdCBzaG91bGQgaGFuZGxlIENFQSB2 cy4gSERNSSBWSUNzLCBjb21wYXJpbmcKPiA+PiBhZ2FpbnN0IEFSUkFZX1NJWkUoZWRpZF9jZWFf bW9kZXMpIGFuZCBBUlJBWV9TSVpFKGVkaWRfNGtfbW9kZXMpPwo+ID4KPiA+IEkgd2FzIHRoaW5r aW5nIG9uZSBmdW5jdGlvbiBmb3IgZWFjaCB0eXBlLCBhbmQgeWVhaCBqdXN0Cj4gPgo+ID4gcmV0 dXJuIHZpYyAhPSAwICYmIHZpYyA8IEFSUkFZX1NJWkUod2hhdGV2ZXJfbW9kZXMpOwo+ID4KPiA+ IG9yIHNvbWV0aGluZyBhbG9uZyB0aG9zZSBsaW5lcy4KPiA+Cj4gPj4gCj4gPj4gQWRkIHZlcnNp b25zIG9mIGRybV9tYXRjaF8qX21vZGUqKCkgdGhhdCByZXR1cm4gc3RydWN0IGRybV9kaXNwbGF5 X21vZGUKPiA+PiAqIG9yIE5VTEwgb24gZXJyb3JzPwo+ID4KPiA+IFNvbWUgdGltZSBhZ28gSSB3 YXMgcmVhZGluIHRoZSBEUCBzcGVjLCBhbmQgZW5kZWQgdXAgc2tldGNoaW5nIG91dAo+ID4gc29t ZSBmdW5jdGlvbnMgdGhhdCBtaWdodCBoZWxwIGRlYWwgd2l0aCBFRElEbGVzcyBEUCBicmFuY2gg ZGV2aWNlcy4KPiA+IEZvciB0aGF0IEkgY29va2VkIHVwIGEgZnVuY3Rpb24gdG8gcmV0dXJuIGEg cG9pbnRlciB0byB0aGUgYXBwcm9wcmlhdGUKPiA+IENFQSBtb2RlIGJhc2VkIG9uIHRoZSB2aWMg KG9yIE5VTEwgZm9yIGJhZCB2aWNzKS4gU28gSSBndWVzcyBpZiB5b3UgZGlkCj4gPiBzb21ldGhp bmcgbGlrZSB0aGF0ICsgdGFrZSB0aGUgYWxyZWFkeSBleGlzdGluZyBtYXRjaCBmdW5jdGlvbiwg eW91Cj4gPiBjb3VsZCB3cmFwIHRoZW0gaW4gYSBuZWF0IHBhY2thZ2UgdGhhdCByZXR1cm5zIHRo ZSBtYXRjaGluZyBjZWEgbW9kZQo+ID4gZm9yIHdoYXRldmVyIG1vZGUgaXMgcGFzc2VkIGluLgo+ IAo+IE1tbWgsIHNvIGhvdyBhYm91dCBqdXN0IHRha2luZyB0aGlzIHBhdGNoIGFzLWlzIGZvciBu b3cuLi4/CgpXZSBjYW4gZG8gdGhhdC4gQnV0IEkganVzdCBmaWd1cmVkIGl0IHdvdWxkbid0IGJl IHRvbyBtdWNoIGV4dHJhIHdvcmsKdG8geWFuayB5YW5rIHRoZSAiaXMgdGhpcyBhIHZhbGlkIHZp YyIgbG9naWMgaW50byB0d28gc21hbGwgZnVuY3Rpb25zLgoKPiAKPiBCUiwKPiBKYW5pLgo+IAo+ IAo+ID4KPiA+PiAKPiA+PiBCUiwKPiA+PiBKYW5pLgo+ID4+IAo+ID4+IAo+ID4+ID4KPiA+PiA+ IE90aGVyd2lzZSBJIGxpa2UgaXQuCj4gPj4gPgo+ID4+ID4+ICsJCQljZWFfbW9kZSA9ICZlZGlk X2NlYV9tb2Rlc1t2aWNdOwo+ID4+ID4+ICAJCQljbG9jazIgPSBjZWFfbW9kZV9hbHRlcm5hdGVf Y2xvY2soY2VhX21vZGUpOwo+ID4+ID4+ICAJCX0gZWxzZSB7Cj4gPj4gPj4gLQkJCW1vZGVfaWR4 ID0gZHJtX21hdGNoX2hkbWlfbW9kZShtb2RlKSAtIDE7Cj4gPj4gPj4gLQkJCWlmIChtb2RlX2lk eCA8IEFSUkFZX1NJWkUoZWRpZF80a19tb2RlcykpIHsKPiA+PiA+PiAtCQkJCWNlYV9tb2RlID0g JmVkaWRfNGtfbW9kZXNbbW9kZV9pZHhdOwo+ID4+ID4+ICsJCQl2aWMgPSBkcm1fbWF0Y2hfaGRt aV9tb2RlKG1vZGUpOwo+ID4+ID4+ICsJCQlpZiAodmljID4gMCAmJiB2aWMgPCBBUlJBWV9TSVpF KGVkaWRfNGtfbW9kZXMpKSB7Cj4gPj4gPj4gKwkJCQljZWFfbW9kZSA9ICZlZGlkXzRrX21vZGVz W3ZpY107Cj4gPj4gPj4gIAkJCQljbG9jazIgPSBoZG1pX21vZGVfYWx0ZXJuYXRlX2Nsb2NrKGNl YV9tb2RlKTsKPiA+PiA+PiAgCQkJfQo+ID4+ID4+ICAJCX0KPiA+PiA+PiBAQCAtMjc3MywxNyAr Mjc3NiwxNyBAQCBkcm1fZGlzcGxheV9tb2RlX2Zyb21fdmljX2luZGV4KHN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IsCj4gPj4gPj4gIHsKPiA+PiA+PiAgCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBjb25uZWN0b3ItPmRldjsKPiA+PiA+PiAgCXN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICpuZXdtb2RlOwo+ID4+ID4+IC0JdTggY2VhX21vZGU7Cj4gPj4gPj4gKwl1OCB2aWM7Cj4gPj4g Pj4gIAo+ID4+ID4+ICAJaWYgKHZpZGVvX2RiID09IE5VTEwgfHwgdmlkZW9faW5kZXggPj0gdmlk ZW9fbGVuKQo+ID4+ID4+ICAJCXJldHVybiBOVUxMOwo+ID4+ID4+ICAKPiA+PiA+PiAgCS8qIENF QSBtb2RlcyBhcmUgbnVtYmVyZWQgMS4uMTI3ICovCj4gPj4gPj4gLQljZWFfbW9kZSA9ICh2aWRl b19kYlt2aWRlb19pbmRleF0gJiAxMjcpIC0gMTsKPiA+PiA+PiAtCWlmIChjZWFfbW9kZSA+PSBB UlJBWV9TSVpFKGVkaWRfY2VhX21vZGVzKSkKPiA+PiA+PiArCXZpYyA9ICh2aWRlb19kYlt2aWRl b19pbmRleF0gJiAxMjcpOwo+ID4+ID4+ICsJaWYgKHZpYyA9PSAwIHx8IHZpYyA+PSBBUlJBWV9T SVpFKGVkaWRfY2VhX21vZGVzKSkKPiA+PiA+PiAgCQlyZXR1cm4gTlVMTDsKPiA+PiA+PiAgCj4g Pj4gPj4gLQluZXdtb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKGRldiwgJmVkaWRfY2VhX21vZGVz W2NlYV9tb2RlXSk7Cj4gPj4gPj4gKwluZXdtb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKGRldiwg JmVkaWRfY2VhX21vZGVzW3ZpY10pOwo+ID4+ID4+ICAJaWYgKCFuZXdtb2RlKQo+ID4+ID4+ICAJ CXJldHVybiBOVUxMOwo+ID4+ID4+ICAKPiA+PiA+PiBAQCAtMjg3OCw4ICsyODgxLDcgQEAgc3Rh dGljIGludCBhZGRfaGRtaV9tb2RlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIHU4 IHZpYykKPiA+PiA+PiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmRldjsK PiA+PiA+PiAgCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpuZXdtb2RlOwo+ID4+ID4+ICAKPiA+ PiA+PiAtCXZpYy0tOyAvKiBWSUNzIHN0YXJ0IGF0IDEgKi8KPiA+PiA+PiAtCWlmICh2aWMgPj0g QVJSQVlfU0laRShlZGlkXzRrX21vZGVzKSkgewo+ID4+ID4+ICsJaWYgKHZpYyA9PSAwIHx8IHZp YyA+PSBBUlJBWV9TSVpFKGVkaWRfNGtfbW9kZXMpKSB7Cj4gPj4gPj4gIAkJRFJNX0VSUk9SKCJV bmtub3duIEhETUkgVklDOiAlZFxuIiwgdmljKTsKPiA+PiA+PiAgCQlyZXR1cm4gMDsKPiA+PiA+ PiAgCX0KPiA+PiA+PiBAQCAtMzE3MCwyNCArMzE3MiwyNCBAQCBzdGF0aWMgdm9pZCBmaXh1cF9k ZXRhaWxlZF9jZWFfbW9kZV9jbG9jayhzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSkKPiA+ PiA+PiAgewo+ID4+ID4+ICAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmNlYV9tb2Rl Owo+ID4+ID4+ICAJaW50IGNsb2NrMSwgY2xvY2syLCBjbG9jazsKPiA+PiA+PiAtCXU4IG1vZGVf aWR4Owo+ID4+ID4+ICsJdTggdmljOwo+ID4+ID4+ICAJY29uc3QgY2hhciAqdHlwZTsKPiA+PiA+ PiAgCj4gPj4gPj4gIAkvKgo+ID4+ID4+ICAJICogYWxsb3cgNWtIeiBjbG9jayBkaWZmZXJlbmNl IGVpdGhlciB3YXkgdG8gYWNjb3VudCBmb3IKPiA+PiA+PiAgCSAqIHRoZSAxMGtIeiBjbG9jayBy ZXNvbHV0aW9uIGxpbWl0IG9mIGRldGFpbGVkIHRpbWluZ3MuCj4gPj4gPj4gIAkgKi8KPiA+PiA+ PiAtCW1vZGVfaWR4ID0gZHJtX21hdGNoX2NlYV9tb2RlX2Nsb2NrX3RvbGVyYW5jZShtb2RlLCA1 KSAtIDE7Cj4gPj4gPj4gLQlpZiAobW9kZV9pZHggPCBBUlJBWV9TSVpFKGVkaWRfY2VhX21vZGVz KSkgewo+ID4+ID4+ICsJdmljID0gZHJtX21hdGNoX2NlYV9tb2RlX2Nsb2NrX3RvbGVyYW5jZSht b2RlLCA1KTsKPiA+PiA+PiArCWlmICh2aWMgPiAwICYmIHZpYyA8IEFSUkFZX1NJWkUoZWRpZF9j ZWFfbW9kZXMpKSB7Cj4gPj4gPj4gIAkJdHlwZSA9ICJDRUEiOwo+ID4+ID4+IC0JCWNlYV9tb2Rl ID0gJmVkaWRfY2VhX21vZGVzW21vZGVfaWR4XTsKPiA+PiA+PiArCQljZWFfbW9kZSA9ICZlZGlk X2NlYV9tb2Rlc1t2aWNdOwo+ID4+ID4+ICAJCWNsb2NrMSA9IGNlYV9tb2RlLT5jbG9jazsKPiA+ PiA+PiAgCQljbG9jazIgPSBjZWFfbW9kZV9hbHRlcm5hdGVfY2xvY2soY2VhX21vZGUpOwo+ID4+ ID4+ICAJfSBlbHNlIHsKPiA+PiA+PiAtCQltb2RlX2lkeCA9IGRybV9tYXRjaF9oZG1pX21vZGVf Y2xvY2tfdG9sZXJhbmNlKG1vZGUsIDUpIC0gMTsKPiA+PiA+PiAtCQlpZiAobW9kZV9pZHggPCBB UlJBWV9TSVpFKGVkaWRfNGtfbW9kZXMpKSB7Cj4gPj4gPj4gKwkJdmljID0gZHJtX21hdGNoX2hk bWlfbW9kZV9jbG9ja190b2xlcmFuY2UobW9kZSwgNSk7Cj4gPj4gPj4gKwkJaWYgKHZpYyA+IDAg JiYgdmljIDwgQVJSQVlfU0laRShlZGlkXzRrX21vZGVzKSkgewo+ID4+ID4+ICAJCQl0eXBlID0g IkhETUkiOwo+ID4+ID4+IC0JCQljZWFfbW9kZSA9ICZlZGlkXzRrX21vZGVzW21vZGVfaWR4XTsK PiA+PiA+PiArCQkJY2VhX21vZGUgPSAmZWRpZF80a19tb2Rlc1t2aWNdOwo+ID4+ID4+ICAJCQlj bG9jazEgPSBjZWFfbW9kZS0+Y2xvY2s7Cj4gPj4gPj4gIAkJCWNsb2NrMiA9IGhkbWlfbW9kZV9h bHRlcm5hdGVfY2xvY2soY2VhX21vZGUpOwo+ID4+ID4+ICAJCX0gZWxzZSB7Cj4gPj4gPj4gQEAg LTMyMDUsNyArMzIwNyw3IEBAIHN0YXRpYyB2b2lkIGZpeHVwX2RldGFpbGVkX2NlYV9tb2RlX2Ns b2NrKHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKQo+ID4+ID4+ICAJCXJldHVybjsKPiA+ PiA+PiAgCj4gPj4gPj4gIAlEUk1fREVCVUcoImRldGFpbGVkIG1vZGUgbWF0Y2hlcyAlcyBWSUMg JWQsIGFkanVzdGluZyBjbG9jayAlZCAtPiAlZFxuIiwKPiA+PiA+PiAtCQkgIHR5cGUsIG1vZGVf aWR4ICsgMSwgbW9kZS0+Y2xvY2ssIGNsb2NrKTsKPiA+PiA+PiArCQkgIHR5cGUsIHZpYywgbW9k ZS0+Y2xvY2ssIGNsb2NrKTsKPiA+PiA+PiAgCW1vZGUtPmNsb2NrID0gY2xvY2s7Cj4gPj4gPj4g IH0KPiA+PiA+PiAgCj4gPj4gPj4gLS0gCj4gPj4gPj4gMi4xLjQKPiA+PiAKPiA+PiAtLSAKPiA+ PiBKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKPiAKPiAt LSAKPiBKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKCi0t IApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vZHJpLWRldmVsCg==