From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v3 1/4] drm/edid: Abstract away cea_edid_modes[] Date: Thu, 3 Oct 2019 16:55:36 +0300 Message-ID: <20191003135536.GI1208@intel.com> References: <20190925135502.24055-1-ville.syrjala@linux.intel.com> <20190925135502.24055-2-ville.syrjala@linux.intel.com> <8f5dd796-dff5-bd23-54b3-e7c13f70b6f9@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <8f5dd796-dff5-bd23-54b3-e7c13f70b6f9@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Sharma, Shashank" Cc: Hans Verkuil , Intel Graphics Development , dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBPY3QgMDMsIDIwMTkgYXQgMDE6NDY6MTZQTSArMDUzMCwgU2hhcm1hLCBTaGFzaGFu ayB3cm90ZToKPiBIZWxsbyBWaWxsZSwKPiAKPiBPbiA5LzI1LzIwMTkgNzoyNCBQTSwgVmlsbGUg U3lyamFsYSB3cm90ZToKPiA+IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20+Cj4gPgo+ID4gV2UncmUgZ29pbmcgdG8gbmVlZCB0d28gY2VhIG1vZGUg dGFibGVzIChvbiBmb3IgVklDcyA8IDEyOCwKPiA+IGFub3RoZXIgb25lIGZvciBWSUNzID49IDE5 MykuIFRvIHRoYXQgZW5kIHJlcGxhY2UgdGhlIGRpcmVjdAo+ID4gZWRpZF9jZWFfbW9kZXNbXSBs b29rdXBzIHdpdGggYSBmdW5jdGlvbiBjYWxsLiBBbmQgd2UnbGwgcmVuYW1lCj4gPiB0aGUgYXJy YXkgdG8gZWRpZF9jZWFfbW9kZXNfMFtdIHRvIGluZGljYXRoZSBob3cgaXQncyB0byBiZQo+IFNo b3VsZCB3ZSBjYWxsIGl0IHNvbWV0aGluZyB3aGljaCBpbmRpY2F0ZXMgdGhlIHNwZWMgdmVyc2lv biwgaW5zdGVhZCBvZiAKPiBhIHJhbmRvbSAnMCcsIGxpa2UgZWRpZF9jZWFfODYxX0ZfbW9kZXNb XSBhbmQgdGhlIG5leHQgb25lIGFzIF9HX21vZGVzIAo+IG9yIENUQV8zIG1vZGVzID8KClRoZSBz cGVjIHZlcnNpb24gaXMgbm90IHBhcnRpY3VsYXJseSBpbnRlcmVzdGluZy4gTmV3IHNwZWNzIGp1 c3QgYWRkIG1vcmUKbW9kZXMuIElmIHdlIHJlYWxseSB3YW50IHRvIGluZGljYXRlIHRoYXQgc29t ZWhvdyBJIHRoaW5rIGEgZmV3IGNvbW1lbnRzCndvdWxkIGRvLgoKPiA+IGluZGV4ZWQuCj4gPgo+ ID4gQ2M6IEhhbnMgVmVya3VpbCA8aGFuc3ZlcmtAY2lzY28uY29tPgo+ID4gQ2M6IFNoYXNoYW5r IFNoYXJtYSA8c2hhc2hhbmsuc2hhcm1hQGludGVsLmNvbT4KPiA+IFNpZ25lZC1vZmYtYnk6IFZp bGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiAtLS0KPiA+ ICAgZHJpdmVycy9ncHUvZHJtL2RybV9lZGlkLmMgfCA4MCArKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLQo+ID4gICAxIGZpbGUgY2hhbmdlZCwgNTggaW5zZXJ0aW9ucygrKSwg MjIgZGVsZXRpb25zKC0pCj4gPgo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f ZWRpZC5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9lZGlkLmMKPiA+IGluZGV4IDNjOTcwM2IwODQ5 MS4uYjcwMGZjMDc1MjU3IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9lZGlk LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jCj4gPiBAQCAtNzA3LDEyICs3 MDcsMTEgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtaW5pbW9kZSBleHRyYV9tb2Rlc1tdID0gewo+ ID4gICB9Owo+ID4gICAKPiA+ICAgLyoKPiA+IC0gKiBQcm9iYWJseSB0YWtlbiBmcm9tIENFQS04 NjEgc3BlYy4KPiA+IC0gKiBUaGlzIHRhYmxlIGlzIGNvbnZlcnRlZCBmcm9tIHhvcmcncyBody94 ZnJlZTg2L21vZGVzL3hmODZFZGlkTW9kZXMuYy4KPiA+ICsgKiBGcm9tIENFQS9DVEEtODYxIHNw ZWMuCj4gPiAgICAqCj4gPiAtICogSW5kZXggdXNpbmcgdGhlIFZJQy4KPiA+ICsgKiBJbmRleCB3 aXRoIFZJQy4KPiA+ICAgICovCj4gPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9t b2RlIGVkaWRfY2VhX21vZGVzW10gPSB7Cj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZGlz cGxheV9tb2RlIGVkaWRfY2VhX21vZGVzXzBbXSA9IHsKPiA+ICAgCS8qIDAgLSBkdW1teSwgVklD cyBzdGFydCBhdCAxICovCj4gPiAgIAl7IH0sCj4gPiAgIAkvKiAxIC0gNjQweDQ4MEA2MEh6IDQ6 MyAqLwo+ID4gQEAgLTMwNjcsNiArMzA2NiwyNSBAQCBzdGF0aWMgdTggKmRybV9maW5kX2NlYV9l eHRlbnNpb24oY29uc3Qgc3RydWN0IGVkaWQgKmVkaWQpCj4gPiAgIAlyZXR1cm4gY2VhOwo+ID4g ICB9Cj4gPiAgIAo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqY2Vh X21vZGVfZm9yX3ZpYyh1OCB2aWMpCj4gPiArewo+ID4gKwlpZiAoIXZpYykKPiA+ICsJCXJldHVy biBOVUxMOwo+ID4gKwlpZiAodmljIDwgQVJSQVlfU0laRShlZGlkX2NlYV9tb2Rlc18wKSkKPiA+ ICsJCXJldHVybiAmZWRpZF9jZWFfbW9kZXNfMFt2aWNdOwo+ID4gKwlyZXR1cm4gTlVMTDsKPiA+ ICt9Cj4gPiArCj4gPiArc3RhdGljIHU4IGNlYV9udW1fdmljcyh2b2lkKQo+ID4gK3sKPiA+ICsJ cmV0dXJuIEFSUkFZX1NJWkUoZWRpZF9jZWFfbW9kZXNfMCk7Cj4gPiArfQo+ID4gKwo+ID4gK3N0 YXRpYyB1OCBjZWFfbmV4dF92aWModTggdmljKQo+ID4gK3sKPiA+ICsJcmV0dXJuIHZpYyArIDE7 Cj4gSXMgdGhlcmUgYW55IHNwZWNpZmljIHJlYXNvbiBmb3IgYWRkaW5nIGEgbmV3IGhlbHBlciBm dW5jdGlvbiwganVzdCB0byAKPiByZXR1cm4gdmljICsgMSA/CgpTZWUgdGhlIG5leHQgcGF0Y2gu Cgo+ID4gK30KPiA+ICsKPiA+ICAgLyoKPiA+ICAgICogQ2FsY3VsYXRlIHRoZSBhbHRlcm5hdGUg Y2xvY2sgZm9yIHRoZSBDRUEgbW9kZQo+ID4gICAgKiAoNjBIeiB2cy4gNTkuOTRIeiBldGMuKQo+ ID4gQEAgLTMxMDQsMTQgKzMxMjIsMTQgQEAgY2VhX21vZGVfYWx0ZXJuYXRlX3RpbWluZ3ModTgg dmljLCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSkKPiA+ICAgCSAqIGdldCB0aGUgb3Ro ZXIgdmFyaWFudHMgYnkgc2ltcGx5IGluY3JlYXNpbmcgdGhlCj4gPiAgIAkgKiB2ZXJ0aWNhbCBm cm9udCBwb3JjaCBsZW5ndGguCj4gPiAgIAkgKi8KPiA+IC0JQlVJTERfQlVHX09OKGVkaWRfY2Vh X21vZGVzWzhdLnZ0b3RhbCAhPSAyNjIgfHwKPiA+IC0JCSAgICAgZWRpZF9jZWFfbW9kZXNbOV0u dnRvdGFsICE9IDI2MiB8fAo+ID4gLQkJICAgICBlZGlkX2NlYV9tb2Rlc1sxMl0udnRvdGFsICE9 IDI2MiB8fAo+ID4gLQkJICAgICBlZGlkX2NlYV9tb2Rlc1sxM10udnRvdGFsICE9IDI2MiB8fAo+ ID4gLQkJICAgICBlZGlkX2NlYV9tb2Rlc1syM10udnRvdGFsICE9IDMxMiB8fAo+ID4gLQkJICAg ICBlZGlkX2NlYV9tb2Rlc1syNF0udnRvdGFsICE9IDMxMiB8fAo+ID4gLQkJICAgICBlZGlkX2Nl YV9tb2Rlc1syN10udnRvdGFsICE9IDMxMiB8fAo+ID4gLQkJICAgICBlZGlkX2NlYV9tb2Rlc1sy OF0udnRvdGFsICE9IDMxMik7Cj4gPiArCUJVSUxEX0JVR19PTihjZWFfbW9kZV9mb3JfdmljKDgp LT52dG90YWwgIT0gMjYyIHx8Cj4gPiArCQkgICAgIGNlYV9tb2RlX2Zvcl92aWMoOSktPnZ0b3Rh bCAhPSAyNjIgfHwKPiA+ICsJCSAgICAgY2VhX21vZGVfZm9yX3ZpYygxMiktPnZ0b3RhbCAhPSAy NjIgfHwKPiA+ICsJCSAgICAgY2VhX21vZGVfZm9yX3ZpYygxMyktPnZ0b3RhbCAhPSAyNjIgfHwK PiA+ICsJCSAgICAgY2VhX21vZGVfZm9yX3ZpYygyMyktPnZ0b3RhbCAhPSAzMTIgfHwKPiA+ICsJ CSAgICAgY2VhX21vZGVfZm9yX3ZpYygyNCktPnZ0b3RhbCAhPSAzMTIgfHwKPiA+ICsJCSAgICAg Y2VhX21vZGVfZm9yX3ZpYygyNyktPnZ0b3RhbCAhPSAzMTIgfHwKPiA+ICsJCSAgICAgY2VhX21v ZGVfZm9yX3ZpYygyOCktPnZ0b3RhbCAhPSAzMTIpOwo+ID4gICAKPiA+ICAgCWlmICgoKHZpYyA9 PSA4IHx8IHZpYyA9PSA5IHx8Cj4gPiAgIAkgICAgICB2aWMgPT0gMTIgfHwgdmljID09IDEzKSAm JiBtb2RlLT52dG90YWwgPCAyNjMpIHx8Cj4gPiBAQCAtMzEzOSwxMCArMzE1NywxNiBAQCBzdGF0 aWMgdTggZHJtX21hdGNoX2NlYV9tb2RlX2Nsb2NrX3RvbGVyYW5jZShjb25zdCBzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSAqdG9fbQo+ID4gICAJaWYgKHRvX21hdGNoLT5waWN0dXJlX2FzcGVjdF9y YXRpbykKPiA+ICAgCQltYXRjaF9mbGFncyB8PSBEUk1fTU9ERV9NQVRDSF9BU1BFQ1RfUkFUSU87 Cj4gPiAgIAo+ID4gLQlmb3IgKHZpYyA9IDE7IHZpYyA8IEFSUkFZX1NJWkUoZWRpZF9jZWFfbW9k ZXMpOyB2aWMrKykgewo+ID4gLQkJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgY2VhX21vZGUgPSBl ZGlkX2NlYV9tb2Rlc1t2aWNdOwo+ID4gKwlmb3IgKHZpYyA9IDE7IHZpYyA8IGNlYV9udW1fdmlj cygpOyB2aWMgPSBjZWFfbmV4dF92aWModmljKSkgewo+ID4gKwkJY29uc3Qgc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKm1vZGUgPSBjZWFfbW9kZV9mb3JfdmljKHZpYyk7Cj4gPiArCQlzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSBjZWFfbW9kZTsKPiA+ICAgCQl1bnNpZ25lZCBpbnQgY2xvY2sxLCBj bG9jazI7Cj4gPiAgIAo+ID4gKwkJaWYgKCFtb2RlKQo+ID4gKwkJCWNvbnRpbnVlOwo+ID4gKwo+ ID4gKwkJY2VhX21vZGUgPSAqbW9kZTsKPiA+ICsKPiA+ICAgCQkvKiBDaGVjayBib3RoIDYwSHog YW5kIDU5Ljk0SHogKi8KPiA+ICAgCQljbG9jazEgPSBjZWFfbW9kZS5jbG9jazsKPiA+ICAgCQlj bG9jazIgPSBjZWFfbW9kZV9hbHRlcm5hdGVfY2xvY2soJmNlYV9tb2RlKTsKPiA+IEBAIC0zMTc4 LDEwICszMjAyLDE2IEBAIHU4IGRybV9tYXRjaF9jZWFfbW9kZShjb25zdCBzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqdG9fbWF0Y2gpCj4gPiAgIAlpZiAodG9fbWF0Y2gtPnBpY3R1cmVfYXNwZWN0 X3JhdGlvKQo+ID4gICAJCW1hdGNoX2ZsYWdzIHw9IERSTV9NT0RFX01BVENIX0FTUEVDVF9SQVRJ TzsKPiA+ICAgCj4gPiAtCWZvciAodmljID0gMTsgdmljIDwgQVJSQVlfU0laRShlZGlkX2NlYV9t b2Rlcyk7IHZpYysrKSB7Cj4gPiAtCQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBjZWFfbW9kZSA9 IGVkaWRfY2VhX21vZGVzW3ZpY107Cj4gPiArCWZvciAodmljID0gMTsgdmljIDwgY2VhX251bV92 aWNzKCk7IHZpYyA9IGNlYV9uZXh0X3ZpYyh2aWMpKSB7Cj4gQWdhaW4sIHdoeSBub3QganVzdCB2 aWMrPTEgOikgPwo+ID4gKwkJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUgPSBj ZWFfbW9kZV9mb3JfdmljKHZpYyk7Cj4gPiArCQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBjZWFf bW9kZTsKPiA+ICAgCQl1bnNpZ25lZCBpbnQgY2xvY2sxLCBjbG9jazI7Cj4gPiAgIAo+ID4gKwkJ aWYgKCFtb2RlKQo+ID4gKwkJCWNvbnRpbnVlOwo+ID4gKwo+ID4gKwkJY2VhX21vZGUgPSAqbW9k ZTsKPiA+ICsKPiA+ICAgCQkvKiBDaGVjayBib3RoIDYwSHogYW5kIDU5Ljk0SHogKi8KPiA+ICAg CQljbG9jazEgPSBjZWFfbW9kZS5jbG9jazsKPiA+ICAgCQljbG9jazIgPSBjZWFfbW9kZV9hbHRl cm5hdGVfY2xvY2soJmNlYV9tb2RlKTsKPiA+IEBAIC0zMjAyLDcgKzMyMzIsNyBAQCBFWFBPUlRf U1lNQk9MKGRybV9tYXRjaF9jZWFfbW9kZSk7Cj4gPiAgIAo+ID4gICBzdGF0aWMgYm9vbCBkcm1f dmFsaWRfY2VhX3ZpYyh1OCB2aWMpCj4gPiAgIHsKPiA+IC0JcmV0dXJuIHZpYyA+IDAgJiYgdmlj IDwgQVJSQVlfU0laRShlZGlkX2NlYV9tb2Rlcyk7Cj4gPiArCXJldHVybiBjZWFfbW9kZV9mb3Jf dmljKHZpYykgIT0gTlVMTDsKPiA+ICAgfQo+ID4gICAKPiA+ICAgLyoqCj4gPiBAQCAtMzIxNCw3 ICszMjQ0LDEzIEBAIHN0YXRpYyBib29sIGRybV92YWxpZF9jZWFfdmljKHU4IHZpYykKPiA+ICAg ICovCj4gPiAgIGVudW0gaGRtaV9waWN0dXJlX2FzcGVjdCBkcm1fZ2V0X2NlYV9hc3BlY3RfcmF0 aW8oY29uc3QgdTggdmlkZW9fY29kZSkKPiA+ICAgewo+ID4gLQlyZXR1cm4gZWRpZF9jZWFfbW9k ZXNbdmlkZW9fY29kZV0ucGljdHVyZV9hc3BlY3RfcmF0aW87Cj4gPiArCWNvbnN0IHN0cnVjdCBk cm1fZGlzcGxheV9tb2RlICptb2RlOwo+ID4gKwo+ID4gKwltb2RlID0gY2VhX21vZGVfZm9yX3Zp Yyh2aWRlb19jb2RlKTsKPiA+ICsJaWYgKG1vZGUpCj4gPiArCQlyZXR1cm4gbW9kZS0+cGljdHVy ZV9hc3BlY3RfcmF0aW87Cj4gPiArCj4gPiArCXJldHVybiBIRE1JX1BJQ1RVUkVfQVNQRUNUX05P TkU7Cj4gPiAgIH0KPiA+ICAgRVhQT1JUX1NZTUJPTChkcm1fZ2V0X2NlYV9hc3BlY3RfcmF0aW8p Owo+ID4gICAKPiA+IEBAIC0zMzIzLDcgKzMzNTksNyBAQCBhZGRfYWx0ZXJuYXRlX2NlYV9tb2Rl cyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBzdHJ1Y3QgZWRpZCAqZWRpZCkKPiA+ ICAgCQl1bnNpZ25lZCBpbnQgY2xvY2sxLCBjbG9jazI7Cj4gPiAgIAo+ID4gICAJCWlmIChkcm1f dmFsaWRfY2VhX3ZpYyh2aWMpKSB7Cj4gPiAtCQkJY2VhX21vZGUgPSAmZWRpZF9jZWFfbW9kZXNb dmljXTsKPiA+ICsJCQljZWFfbW9kZSA9IGNlYV9tb2RlX2Zvcl92aWModmljKTsKPiA+ICAgCQkJ Y2xvY2syID0gY2VhX21vZGVfYWx0ZXJuYXRlX2Nsb2NrKGNlYV9tb2RlKTsKPiA+ICAgCQl9IGVs c2Ugewo+ID4gICAJCQl2aWMgPSBkcm1fbWF0Y2hfaGRtaV9tb2RlKG1vZGUpOwo+ID4gQEAgLTMz OTgsNyArMzQzNCw3IEBAIGRybV9kaXNwbGF5X21vZGVfZnJvbV92aWNfaW5kZXgoc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiA+ICAgCWlmICghZHJtX3ZhbGlkX2NlYV92aWModmlj KSkKPiA+ICAgCQlyZXR1cm4gTlVMTDsKPiA+ICAgCj4gPiAtCW5ld21vZGUgPSBkcm1fbW9kZV9k dXBsaWNhdGUoZGV2LCAmZWRpZF9jZWFfbW9kZXNbdmljXSk7Cj4gPiArCW5ld21vZGUgPSBkcm1f bW9kZV9kdXBsaWNhdGUoZGV2LCBjZWFfbW9kZV9mb3JfdmljKHZpYykpOwo+ID4gICAJaWYgKCFu ZXdtb2RlKQo+ID4gICAJCXJldHVybiBOVUxMOwo+ID4gICAKPiA+IEBAIC0zNDMyLDcgKzM0Njgs NyBAQCBzdGF0aWMgaW50IGRvX3k0MjB2ZGJfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3RvciwKPiA+ICAgCQlpZiAoIWRybV92YWxpZF9jZWFfdmljKHZpYykpCj4gPiAgIAkJCWNv bnRpbnVlOwo+ID4gICAKPiA+IC0JCW5ld21vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUoZGV2LCAm ZWRpZF9jZWFfbW9kZXNbdmljXSk7Cj4gPiArCQluZXdtb2RlID0gZHJtX21vZGVfZHVwbGljYXRl KGRldiwgY2VhX21vZGVfZm9yX3ZpYyh2aWMpKTsKPiA+ICAgCQlpZiAoIW5ld21vZGUpCj4gPiAg IAkJCWJyZWFrOwo+ID4gICAJCWJpdG1hcF9zZXQoaGRtaS0+eTQyMF92ZGJfbW9kZXMsIHZpYywg MSk7Cj4gPiBAQCAtNDAwMSw3ICs0MDM3LDcgQEAgc3RhdGljIHZvaWQgZml4dXBfZGV0YWlsZWRf Y2VhX21vZGVfY2xvY2soc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpCj4gPiAgIAl2aWMg PSBkcm1fbWF0Y2hfY2VhX21vZGVfY2xvY2tfdG9sZXJhbmNlKG1vZGUsIDUpOwo+ID4gICAJaWYg KGRybV92YWxpZF9jZWFfdmljKHZpYykpIHsKPiA+ICAgCQl0eXBlID0gIkNFQSI7Cj4gPiAtCQlj ZWFfbW9kZSA9ICZlZGlkX2NlYV9tb2Rlc1t2aWNdOwo+ID4gKwkJY2VhX21vZGUgPSBjZWFfbW9k ZV9mb3JfdmljKHZpYyk7Cj4gPiAgIAkJY2xvY2sxID0gY2VhX21vZGUtPmNsb2NrOwo+ID4gICAJ CWNsb2NrMiA9IGNlYV9tb2RlX2FsdGVybmF0ZV9jbG9jayhjZWFfbW9kZSk7Cj4gPiAgIAl9IGVs c2Ugewo+IC0gU2hhc2hhbmsKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4