From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH] drm/i915/cnp: Backlight support for CNP. Date: Fri, 05 May 2017 19:50:27 +0300 Message-ID: <8760hf5ju4.fsf@intel.com> References: <87d1c9vqfg.fsf@intel.com> <1493855051-23056-1-git-send-email-anusha.srivatsa@intel.com> <87fuglotyi.fsf@intel.com> <83F5C7385F545743AD4FB2A62F75B073019BEB82@ORSMSX108.amr.corp.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 ESMTPS id F37FB6E702 for ; Fri, 5 May 2017 16:50:38 +0000 (UTC) In-Reply-To: <83F5C7385F545743AD4FB2A62F75B073019BEB82@ORSMSX108.amr.corp.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Srivatsa, Anusha" , "intel-gfx@lists.freedesktop.org" Cc: "Vivi, Rodrigo" List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCAwNSBNYXkgMjAxNywgIlNyaXZhdHNhLCBBbnVzaGEiIDxhbnVzaGEuc3JpdmF0c2FA aW50ZWwuY29tPiB3cm90ZToKPj4tLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+PkZyb206IE5p a3VsYSwgSmFuaQo+PlNlbnQ6IFRodXJzZGF5LCBNYXkgNCwgMjAxNyAyOjI1IEFNCj4+VG86IFNy aXZhdHNhLCBBbnVzaGEgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5jb20+OyBpbnRlbC0KPj5nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+Q2M6IFZpdmksIFJvZHJpZ28gPHJvZHJpZ28udml2aUBp bnRlbC5jb20+OyBWaWxsZSBTeXJqYWxhCj4+PHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29t PjsgU3JpdmF0c2EsIEFudXNoYSA8YW51c2hhLnNyaXZhdHNhQGludGVsLmNvbT4KPj5TdWJqZWN0 OiBSZTogW1BBVENIXSBkcm0vaTkxNS9jbnA6IEJhY2tsaWdodCBzdXBwb3J0IGZvciBDTlAuCj4+ Cj4+T24gV2VkLCAwMyBNYXkgMjAxNywgQW51c2hhIFNyaXZhdHNhIDxhbnVzaGEuc3JpdmF0c2FA aW50ZWwuY29tPiB3cm90ZToKPj4+IEZyb206IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGlu dGVsLmNvbT4KPj4+Cj4+PiBTcGxpdCBvdXQgQlhUIGFuZCBDTlAncyBzZXR1cF9iYWNrbGlnaHQo KSxlbmFibGVfYmFja2xpZ2h0KCksCj4+PiBkaXNhYmxlX2JhY2tsaWdodCgpIGFuZCBoel90b19w d20oKSBpbnRvIHR3byBzZXBhcmF0ZSBmdW5jdGlvbnMKPj4+IGluc3RlYWQgb2YgcmV1c2luZyBC WFQgZnVuY3Rpb24uCj4+Pgo+Pj4gUmV1c2Ugc2V0X2JhY2tsaWdodCgpIGFuZCBnZXRfYmFja2xp Z2h0KCkgc2luY2UgdGhleSBoYXZlIG5vIHJlZmVyZW5jZQo+Pj4gdG8gdGhlIHV0aWxpdHkgcGlu Lgo+Pj4KPj4+IHYyOiBSZXVzZSBCWFQgZnVuY3Rpb25zIHdpdGggY29udHJvbGxlciAwIGluc3Rl YWQgb2YKPj4+ICAgICByZWRlZmluaW5nIGl0LiAoSmFuaSkuCj4+PiAgICAgVXNlIGRldl9wcml2 LT5yYXdjbGtfZnJlcSBpbnN0ZWFkIG9mIGdldHRpbmcgdGhlIHZhbHVlCj4+PiAgICAgZnJvbSBT RlVTRV9TVFJBUC4KPj4+IHYzOiBBdm9pZCBzZXR1cCBiYWNrbGlnaCBjb250cm9sbGVyIGFsb25n IHdpdGggaG9va3MgYW5kCj4+PiAgICAgZnVsbHkgcmV1c2UgaG9va3Mgc2V0dXAgYXMgc3VnZ2Vz dGVkIGJ5IEphbmkuCj4+PiB2NDogQ2xlYW4gdXAgY29tbWl0IG1lc3NhZ2UuCj4+PiB2NTogSW1w bGVtZW50IHBlciBQQ0ggaW5zdGVhZCBwZXIgcGxhdGZvcm0uCj4+Pgo+Pj4gdjY6IEludHJvZHVj ZSBhIG5ldyBmdW5jdGlvbiBmb3IgQ05QLihKYW5pIGFuZCBWaWxsZSkKPj4+Cj4+PiB2NzogU3F1 YXNoIHRoZSBhbGwgQ05QIEJhY2tsaWdodCBzdXBwb3J0IHBhdGNoZXMgaW50byBhIHNpbmdsZSBw YXRjaC4KPj4+IChKYW5pKQo+Pj4KPj4+IHY4OiBDb3JyZWN0IGluZGVudGF0aW9uLCByZW1vdmUg dW5uZWVkZWQgYmxhbmsgbGluZXMgYW5kIGNvcnJlY3QgbWFpbAo+Pj4gYWRkcmVzcyAoSmFuaSku Cj4+Pgo+Pj4gUmV2aWV3ZWQtYnk6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBpbnRlbC5jb20+ Cj4+Cj4+WXVwLiBXaGF0J3MgdGhlIHBsYW4gZm9yIG1lcmdpbmcgdGhlIHNlcmllcywgaW5jbC4g dGhpcyBwYXRjaD8KPgo+IFllcy4gVGhpcyB3aWxsIGJlIG1lcmdlZCBhcyBwYXJ0IG9mIENOUCBz ZXJpZXMuCgpPZiBjb3Vyc2UsIGJ1dCB3aGF0J3MgdGhlIHBsYW4gZm9yIG1lcmdpbmcgdGhlIHNl cmllcz8KCkJSLApKYW5pLgoKCj4KPiBBbnVzaGEKPj5CUiwKPj5KYW5pLgo+Pgo+Pgo+Pj4gU3Vn Z2VzdGVkLWJ5OiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgo+Pj4gU3VnZ2Vz dGVkLWJ5OiBWaWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJqYWxhQGludGVsLmNvbT4KPj4+IENjOiBW aWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPj4+IENjOiBKYW5p IE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgo+Pj4gU2lnbmVkLW9mZi1ieTogQW51c2hh IFNyaXZhdHNhIDxhbnVzaGEuc3JpdmF0c2FAaW50ZWwuY29tPgo+Pj4gU2lnbmVkLW9mZi1ieTog Um9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgo+Pj4gLS0tCj4+PiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYyB8IDg4Cj4+PiArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0tLQo+Pj4gIDEgZmlsZSBjaGFuZ2VkLCA4MyBpbnNlcnRpb25zKCsp LCA1IGRlbGV0aW9ucygtKQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9wYW5lbC5jCj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMK Pj4+IGluZGV4IDE5NzhiZWMuLjhlZTYxYzEgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9wYW5lbC5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wYW5lbC5jCj4+PiBAQCAtNzk2LDYgKzc5NiwxOSBAQCBzdGF0aWMgdm9pZCBieHRfZGlzYWJs ZV9iYWNrbGlnaHQoc3RydWN0Cj4+aW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4+PiAgCX0K Pj4+ICB9Cj4+Pgo+Pj4gK3N0YXRpYyB2b2lkIGNucF9kaXNhYmxlX2JhY2tsaWdodChzdHJ1Y3Qg aW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4+PiArewo+Pj4gKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwo+Pj4gKwlz dHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0gJmNvbm5lY3Rvci0+cGFuZWw7Cj4+PiArCXUzMiB0 bXAsIHZhbDsKPj4+ICsKPj4+ICsJaW50ZWxfcGFuZWxfYWN0dWFsbHlfc2V0X2JhY2tsaWdodChj b25uZWN0b3IsIDApOwo+Pj4gKwo+Pj4gKwl0bXAgPSBJOTE1X1JFQUQoQlhUX0JMQ19QV01fQ1RM KHBhbmVsLT5iYWNrbGlnaHQuY29udHJvbGxlcikpOwo+Pj4gKwlJOTE1X1dSSVRFKEJYVF9CTENf UFdNX0NUTChwYW5lbC0+YmFja2xpZ2h0LmNvbnRyb2xsZXIpLAo+Pj4gKwkJICAgdG1wICYgfkJY VF9CTENfUFdNX0VOQUJMRSk7Cj4+PiArfQo+Pj4gKwo+Pj4gIHN0YXRpYyB2b2lkIHB3bV9kaXNh YmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4+PiB7Cj4+ PiAgCXN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwgPSAmY29ubmVjdG9yLT5wYW5lbDsgQEAgLTEw NzYsNiArMTA4OSwzNgo+Pj4gQEAgc3RhdGljIHZvaWQgYnh0X2VuYWJsZV9iYWNrbGlnaHQoc3Ry dWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+Pj4gIAkJCXB3bV9jdGwgfCBCWFRfQkxD X1BXTV9FTkFCTEUpOwo+Pj4gIH0KPj4+Cj4+PiArc3RhdGljIHZvaWQgY25wX2VuYWJsZV9iYWNr bGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKSB7Cj4+PiArCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7 Cj4+PiArCXN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwgPSAmY29ubmVjdG9yLT5wYW5lbDsKPj4+ ICsJZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9nZXRfcGlwZV9mcm9tX2Nvbm5lY3Rvcihjb25uZWN0 b3IpOwo+Pj4gKwl1MzIgcHdtX2N0bCwgdmFsOwo+Pj4gKwo+Pj4gKwlwd21fY3RsID0gSTkxNV9S RUFEKEJYVF9CTENfUFdNX0NUTChwYW5lbC0+YmFja2xpZ2h0LmNvbnRyb2xsZXIpKTsKPj4+ICsJ aWYgKHB3bV9jdGwgJiBCWFRfQkxDX1BXTV9FTkFCTEUpIHsKPj4+ICsJCURSTV9ERUJVR19LTVMo ImJhY2tsaWdodCBhbHJlYWR5IGVuYWJsZWRcbiIpOwo+Pj4gKwkJcHdtX2N0bCAmPSB+QlhUX0JM Q19QV01fRU5BQkxFOwo+Pj4gKwkJSTkxNV9XUklURShCWFRfQkxDX1BXTV9DVEwocGFuZWwtPmJh Y2tsaWdodC5jb250cm9sbGVyKSwKPj4+ICsJCQkgICBwd21fY3RsKTsKPj4+ICsJfQo+Pj4gKwo+ Pj4gKwlJOTE1X1dSSVRFKEJYVF9CTENfUFdNX0ZSRVEocGFuZWwtPmJhY2tsaWdodC5jb250cm9s bGVyKSwKPj4+ICsJCSAgIHBhbmVsLT5iYWNrbGlnaHQubWF4KTsKPj4+ICsKPj4+ICsJaW50ZWxf cGFuZWxfYWN0dWFsbHlfc2V0X2JhY2tsaWdodChjb25uZWN0b3IsCj4+PiArcGFuZWwtPmJhY2ts aWdodC5sZXZlbCk7Cj4+PiArCj4+PiArCXB3bV9jdGwgPSAwOwo+Pj4gKwlpZiAocGFuZWwtPmJh Y2tsaWdodC5hY3RpdmVfbG93X3B3bSkKPj4+ICsJCXB3bV9jdGwgfD0gQlhUX0JMQ19QV01fUE9M QVJJVFk7Cj4+PiArCj4+PiArCUk5MTVfV1JJVEUoQlhUX0JMQ19QV01fQ1RMKHBhbmVsLT5iYWNr bGlnaHQuY29udHJvbGxlciksIHB3bV9jdGwpOwo+Pj4gKwlQT1NUSU5HX1JFQUQoQlhUX0JMQ19Q V01fQ1RMKHBhbmVsLT5iYWNrbGlnaHQuY29udHJvbGxlcikpOwo+Pj4gKwlJOTE1X1dSSVRFKEJY VF9CTENfUFdNX0NUTChwYW5lbC0+YmFja2xpZ2h0LmNvbnRyb2xsZXIpLAo+Pj4gKwkJICAgcHdt X2N0bCB8IEJYVF9CTENfUFdNX0VOQUJMRSk7Cj4+PiArfQo+Pj4gKwo+Pj4gIHN0YXRpYyB2b2lk IHB3bV9lbmFibGVfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikK Pj4+IHsKPj4+ICAJc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25uZWN0b3ItPnBhbmVs OyBAQCAtMTY0NSw2ICsxNjg4LDM3Cj4+PiBAQCBieHRfc2V0dXBfYmFja2xpZ2h0KHN0cnVjdCBp bnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwgZW51bSBwaXBlCj4+dW51c2VkKQo+Pj4gIAlyZXR1 cm4gMDsKPj4+ICB9Cj4+Pgo+Pj4gK3N0YXRpYyBpbnQKPj4+ICtjbnBfc2V0dXBfYmFja2xpZ2h0 KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwgZW51bSBwaXBlCj4+PiArdW51c2Vk KSB7Cj4+PiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29u bmVjdG9yLT5iYXNlLmRldik7Cj4+PiArCXN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwgPSAmY29u bmVjdG9yLT5wYW5lbDsKPj4+ICsJdTMyIHB3bV9jdGwsIHZhbDsKPj4+ICsKPj4+ICsJcGFuZWwt PmJhY2tsaWdodC5jb250cm9sbGVyID0gZGV2X3ByaXYtPnZidC5iYWNrbGlnaHQuY29udHJvbGxl cjsKPj4+ICsKPj4+ICsJcHdtX2N0bCA9IEk5MTVfUkVBRChCWFRfQkxDX1BXTV9DVEwocGFuZWwt PmJhY2tsaWdodC5jb250cm9sbGVyKSk7Cj4+PiArCj4+PiArCXBhbmVsLT5iYWNrbGlnaHQuYWN0 aXZlX2xvd19wd20gPSBwd21fY3RsICYKPj5CWFRfQkxDX1BXTV9QT0xBUklUWTsKPj4+ICsJcGFu ZWwtPmJhY2tsaWdodC5tYXggPQo+Pj4gKwkJSTkxNV9SRUFEKEJYVF9CTENfUFdNX0ZSRVEocGFu ZWwtPmJhY2tsaWdodC5jb250cm9sbGVyKSk7Cj4+PiArCj4+PiArCWlmICghcGFuZWwtPmJhY2ts aWdodC5tYXgpCj4+PiArCQlwYW5lbC0+YmFja2xpZ2h0Lm1heCA9IGdldF9iYWNrbGlnaHRfbWF4 X3ZidChjb25uZWN0b3IpOwo+Pj4gKwo+Pj4gKwlpZiAoIXBhbmVsLT5iYWNrbGlnaHQubWF4KQo+ Pj4gKwkJcmV0dXJuIC1FTk9ERVY7Cj4+PiArCj4+PiArCXZhbCA9IGJ4dF9nZXRfYmFja2xpZ2h0 KGNvbm5lY3Rvcik7Cj4+PiArCXZhbCA9IGludGVsX3BhbmVsX2NvbXB1dGVfYnJpZ2h0bmVzcyhj b25uZWN0b3IsIHZhbCk7Cj4+PiArCXBhbmVsLT5iYWNrbGlnaHQubGV2ZWwgPSBjbGFtcCh2YWws IHBhbmVsLT5iYWNrbGlnaHQubWluLAo+Pj4gKwkJCQkgICAgICAgcGFuZWwtPmJhY2tsaWdodC5t YXgpOwo+Pj4gKwo+Pj4gKwlwYW5lbC0+YmFja2xpZ2h0LmVuYWJsZWQgPSBwd21fY3RsICYgQlhU X0JMQ19QV01fRU5BQkxFOwo+Pj4gKwo+Pj4gKwlyZXR1cm4gMDsKPj4+ICt9Cj4+PiArCj4+PiAg c3RhdGljIGludCBwd21fc2V0dXBfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNv bm5lY3RvciwKPj4+ICAJCQkgICAgICAgZW51bSBwaXBlIHBpcGUpCj4+PiAgewo+Pj4gQEAgLTE3 NTQsMTYgKzE4MjgsMjAgQEAgaW50ZWxfcGFuZWxfaW5pdF9iYWNrbGlnaHRfZnVuY3Moc3RydWN0 IGludGVsX3BhbmVsCj4+KnBhbmVsKQo+Pj4gIAkgICAgaW50ZWxfZHNpX2Rjc19pbml0X2JhY2ts aWdodF9mdW5jcyhjb25uZWN0b3IpID09IDApCj4+PiAgCQlyZXR1cm47Cj4+Pgo+Pj4gLQlpZiAo SVNfR0VOOV9MUChkZXZfcHJpdikgfHwgSEFTX1BDSF9DTlAoZGV2X3ByaXYpKSB7Cj4+PiArCWlm IChJU19HRU45X0xQKGRldl9wcml2KSkgewo+Pj4gIAkJcGFuZWwtPmJhY2tsaWdodC5zZXR1cCA9 IGJ4dF9zZXR1cF9iYWNrbGlnaHQ7Cj4+PiAgCQlwYW5lbC0+YmFja2xpZ2h0LmVuYWJsZSA9IGJ4 dF9lbmFibGVfYmFja2xpZ2h0Owo+Pj4gIAkJcGFuZWwtPmJhY2tsaWdodC5kaXNhYmxlID0gYnh0 X2Rpc2FibGVfYmFja2xpZ2h0Owo+Pj4gIAkJcGFuZWwtPmJhY2tsaWdodC5zZXQgPSBieHRfc2V0 X2JhY2tsaWdodDsKPj4+ICAJCXBhbmVsLT5iYWNrbGlnaHQuZ2V0ID0gYnh0X2dldF9iYWNrbGln aHQ7Cj4+PiAtCQlpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpCj4+PiAtCQkJcGFuZWwtPmJhY2ts aWdodC5oel90b19wd20gPSBieHRfaHpfdG9fcHdtOwo+Pj4gLQkJZWxzZQo+Pj4gLQkJCXBhbmVs LT5iYWNrbGlnaHQuaHpfdG9fcHdtID0gY25wX2h6X3RvX3B3bTsKPj4+ICsJCXBhbmVsLT5iYWNr bGlnaHQuaHpfdG9fcHdtID0gYnh0X2h6X3RvX3B3bTsKPj4+ICsJfSBlbHNlIGlmIChIQVNfUENI X0NOUChkZXZfcHJpdikpIHsKPj4+ICsJCXBhbmVsLT5iYWNrbGlnaHQuc2V0dXAgPSBjbnBfc2V0 dXBfYmFja2xpZ2h0Owo+Pj4gKwkJcGFuZWwtPmJhY2tsaWdodC5lbmFibGUgPSBjbnBfZW5hYmxl X2JhY2tsaWdodDsKPj4+ICsJCXBhbmVsLT5iYWNrbGlnaHQuZGlzYWJsZSA9IGNucF9kaXNhYmxl X2JhY2tsaWdodDsKPj4+ICsJCXBhbmVsLT5iYWNrbGlnaHQuc2V0ID0gYnh0X3NldF9iYWNrbGln aHQ7Cj4+PiArCQlwYW5lbC0+YmFja2xpZ2h0LmdldCA9IGJ4dF9nZXRfYmFja2xpZ2h0Owo+Pj4g KwkJcGFuZWwtPmJhY2tsaWdodC5oel90b19wd20gPSBjbnBfaHpfdG9fcHdtOwo+Pj4gIAl9IGVs c2UgaWYgKEhBU19QQ0hfTFBUKGRldl9wcml2KSB8fCBIQVNfUENIX1NQVChkZXZfcHJpdikgfHwK Pj4+ICAJCSAgIEhBU19QQ0hfS0JQKGRldl9wcml2KSkgewo+Pj4gIAkJcGFuZWwtPmJhY2tsaWdo dC5zZXR1cCA9IGxwdF9zZXR1cF9iYWNrbGlnaHQ7Cj4+Cj4+LS0KPj5KYW5pIE5pa3VsYSwgSW50 ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKCi0tIApKYW5pIE5pa3VsYSwgSW50ZWwg T3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cg==