From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [PATCH v4 6/8] drm/i915: Nuke fbc members from intel_crtc->atomic, v2. Date: Mon, 15 Feb 2016 15:31:17 +0100 Message-ID: <56C1E135.20406@linux.intel.com> References: <1455108583-29227-1-git-send-email-maarten.lankhorst@linux.intel.com> <1455108583-29227-7-git-send-email-maarten.lankhorst@linux.intel.com> <1455285409.2594.81.camel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 925DE6E1A5 for ; Mon, 15 Feb 2016 14:31:19 +0000 (UTC) In-Reply-To: <1455285409.2594.81.camel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Zanoni, Paulo R" , "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T3AgMTItMDItMTYgb20gMTQ6NTYgc2NocmVlZiBaYW5vbmksIFBhdWxvIFI6Cj4gRW0gUXVhLCAy MDE2LTAyLTEwIMOgcyAxMzo0OSArMDEwMCwgTWFhcnRlbiBMYW5raG9yc3QgZXNjcmV2ZXU6Cj4+ IEZhY3RvciBvdXQgaW50ZWxfZmJjX3N1cHBvcnRzX3JvdGF0aW9uCj4gXiBub3QgYW55bW9yZQo+ Cj4KPj4gIGFuZCB1c2UgaXQgaW4KPj4gcHJlX3BsYW5lX3VwZGF0ZSBhcyB3ZWxsLiBUaGlzIGxl YXZlcyBpbnRlbF9jcnRjLT5hdG9taWMKPj4gZW1wdHksIHNvIHJlbW92ZSBpdCB0b28uCj4+Cj4+ IENoYW5nZXMgc2luY2UgdjE6Cj4+IC0gQWRkIGEgaW50ZWxfZmJjX3N1cHBvcnRzX3JvdGF0aW9u IGhlbHBlci4KPiBDaGFuZ2VzIHNpbmNlIHYyOgo+IC0gTm8gbW9yZSBuZWVkIGZvciByb3RhdGlv biBzcGVjaWFsLWNhc2luZy4KPgo+IChJIHN1cHBvc2UgeW91IGFsc28gaGF2ZSB0byBlZGl0IHRo ZSBjb21taXQgdGl0bGUgdG8gYmUgdjMpCj4KPj4gU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5r aG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPj4gLS0tCj4+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCA1OCArKysrKysrKysrKysrLS0tLS0t LS0tLS0tLQo+PiAtLS0tLS0tLS0tCj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aCAgICAgfCAxNSAtLS0tLS0tLS0tCj4+ICAyIGZpbGVzIGNoYW5nZWQsIDIwIGluc2VydGlvbnMo KyksIDUzIGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jCj4+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jCj4+IGluZGV4IDU0YmU4YTI1NWYxZi4uMDBjYjI2MWM2Nzg3IDEwMDY0NAo+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4+IEBAIC00NzgyLDExICs0NzgyLDkgQEAgc3RhdGlj IHZvaWQgaW50ZWxfcG9zdF9wbGFuZV91cGRhdGUoc3RydWN0Cj4+IGludGVsX2NydGNfc3RhdGUg Km9sZF9jcnRjX3N0YXRlKQo+PiAgewo+PiAgCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9f aW50ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0KPj4+IGJhc2UuY3J0Yyk7Cj4+ICAJc3RydWN0IGRy bV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSA9IG9sZF9jcnRjX3N0YXRlLQo+Pj4gYmFzZS5zdGF0 ZTsKPj4gLQlzdHJ1Y3QgaW50ZWxfY3J0Y19hdG9taWNfY29tbWl0ICphdG9taWMgPSAmY3J0Yy0+ YXRvbWljOwo+PiAgCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZyA9Cj4+ICAJ CXRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+YmFzZS5zdGF0ZSk7Cj4+ICAJc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2Owo+PiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4+ICAJc3RydWN0IGRybV9wbGFuZSAqcHJp bWFyeSA9IGNydGMtPmJhc2UucHJpbWFyeTsKPj4gIAlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpv bGRfcHJpX3N0YXRlID0KPj4gIAkJZHJtX2F0b21pY19nZXRfZXhpc3RpbmdfcGxhbmVfc3RhdGUo b2xkX3N0YXRlLAo+PiBwcmltYXJ5KTsKPj4gQEAgLTQ3OTgsMjIgKzQ3OTYsMTkgQEAgc3RhdGlj IHZvaWQgaW50ZWxfcG9zdF9wbGFuZV91cGRhdGUoc3RydWN0Cj4+IGludGVsX2NydGNfc3RhdGUg Km9sZF9jcnRjX3N0YXRlKQo+PiAgCWlmIChwaXBlX2NvbmZpZy0+d21fY2hhbmdlZCAmJiBwaXBl X2NvbmZpZy0+YmFzZS5hY3RpdmUpCj4+ICAJCWludGVsX3VwZGF0ZV93YXRlcm1hcmtzKCZjcnRj LT5iYXNlKTsKPj4gIAo+PiAtCWlmIChhdG9taWMtPnVwZGF0ZV9mYmMpCj4+IC0JCWludGVsX2Zi Y19wb3N0X3VwZGF0ZShjcnRjKTsKPj4gLQo+PiAgCWlmIChvbGRfcHJpX3N0YXRlKSB7Cj4gRm9y IGEgY29kZSByZWFkZXIgdGhhdCBpcyBub3QgdmVyeSBmYW1pbGlhciB3aXRoIGFsbCB0aGUgYXRv bWljIGhpc3RvcnkKPiBhbmQgaXRzIGRldGFpbHMsIGl0J3Mgbm90IHRyaXZpYWwgdG8gY29uY2x1 ZGUgdGhhdCAiaWYKPiAoZHJtX2F0b21pY19nZXRfZXhpc3RpbmdfcGxhbmVfc3RhdGUocHJpbWFy eSkpIiwgdGhlbiB3ZSdyZSB1cGRhdGluZwo+IHRoZSBwcmltYXJ5IHBsYW5lIG9uIHRoaXMgYXRv bWljIGNvbW1pdC4gQW5kIGJlZm9yZSB0aGlzIHBhdGNoLCBpdCdzCj4gbXVjaCBtdWNoIGVhc2ll ciB0byBjb25jbHVkZSB0aGF0IHVwZGF0ZV9mYmMgd2lsbCBiZSB0cnVlIHdoZW4gYW4KPiBhdG9t aWMgdXBkYXRlIGlzIHRvdWNoaW5nIHRoZSBwcmltYXJ5IHBsYW5lIGJlY2F1c2UgdGhhdCdzIGV4 cGxpY2l0bHkKPiBzdGF0ZWQgYnkgdGhlIGNvZC4KPgo+IFNvIGFsdGhvdWdoICJsZXQncyBraWxs IHRoaXMgcmVkdW5kYW50IHN0cnVjdCIgc291bmRzIGdvb2QsIGl0IHNlZW1zIHRvCj4gbWUgdGhh dCBjb2RlIGNsYXJpdHkgaXMgZ29pbmcgYXdheSB3aXRoIHRoaXMgcGF0Y2gsIHNvIEkgd29uZGVy IGlmIHRoZQo+IGJlbmVmaXRzIG9mIHRoZSBwYXRjaCBvdXR3ZWlnaCB0aGUgZG93bnNpZGVzLiBJ c24ndCB0aGVyZSBzb21ldGhpbmcKPiBlbHNlIHdlIGNvdWxkIGRvIGFib3V0IHRoaXMsIHN1Y2gg YXMgc29tZSByZW5hbWluZywgb3IgYWRkaW5nIHNvbWUKPiBmdW5jdGlvbiBhbGlhc2VzIG9yIGp1 c3QgZXh0cmEgY29tbWVudGluZz8KPgo+PiAgCQlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBy aW1hcnlfc3RhdGUgPQo+PiAgCQkJdG9faW50ZWxfcGxhbmVfc3RhdGUocHJpbWFyeS0+c3RhdGUp Owo+PiAgCQlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKm9sZF9wcmltYXJ5X3N0YXRlID0KPj4g IAkJCXRvX2ludGVsX3BsYW5lX3N0YXRlKG9sZF9wcmlfc3RhdGUpOwo+PiAgCj4+ICsJCWludGVs X2ZiY19wb3N0X3VwZGF0ZShjcnRjKTsKPj4gKwo+PiAgCQlpZiAocHJpbWFyeV9zdGF0ZS0+dmlz aWJsZSAmJgo+PiAgCQkgICAgKG5lZWRzX21vZGVzZXQoJnBpcGVfY29uZmlnLT5iYXNlKSB8fAo+ PiAgCQkgICAgICFvbGRfcHJpbWFyeV9zdGF0ZS0+dmlzaWJsZSkpCj4+ICAJCQlpbnRlbF9wb3N0 X2VuYWJsZV9wcmltYXJ5KCZjcnRjLT5iYXNlKTsKPj4gIAl9Cj4+IC0KPj4gLQltZW1zZXQoYXRv bWljLCAwLCBzaXplb2YoKmF0b21pYykpOwo+PiAgfQo+PiAgCj4+ICBzdGF0aWMgdm9pZCBpbnRl bF9wcmVfcGxhbmVfdXBkYXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlCj4+ICpvbGRfY3J0Y19z dGF0ZSkKPj4gQEAgLTQ4MjEsNyArNDgxNiw2IEBAIHN0YXRpYyB2b2lkIGludGVsX3ByZV9wbGFu ZV91cGRhdGUoc3RydWN0Cj4+IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlKQo+PiAg CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0K Pj4+IGJhc2UuY3J0Yyk7Cj4+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2Uu ZGV2Owo+PiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3By aXZhdGU7Cj4+IC0Jc3RydWN0IGludGVsX2NydGNfYXRvbWljX2NvbW1pdCAqYXRvbWljID0gJmNy dGMtPmF0b21pYzsKPj4gIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcgPQo+ PiAgCQl0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPmJhc2Uuc3RhdGUpOwo+PiAgCXN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpvbGRfc3RhdGUgPSBvbGRfY3J0Y19zdGF0ZS0KPj4+IGJhc2Uuc3Rh dGU7Cj4+IEBAIC00ODMwLDE3ICs0ODI0LDE3IEBAIHN0YXRpYyB2b2lkIGludGVsX3ByZV9wbGFu ZV91cGRhdGUoc3RydWN0Cj4+IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlKQo+PiAg CQlkcm1fYXRvbWljX2dldF9leGlzdGluZ19wbGFuZV9zdGF0ZShvbGRfc3RhdGUsCj4+IHByaW1h cnkpOwo+PiAgCWJvb2wgbW9kZXNldCA9IG5lZWRzX21vZGVzZXQoJnBpcGVfY29uZmlnLT5iYXNl KTsKPj4gIAo+PiAtCWlmIChhdG9taWMtPnVwZGF0ZV9mYmMpCj4+IC0JCWludGVsX2ZiY19wcmVf dXBkYXRlKGNydGMpOwo+PiAtCj4+ICAJaWYgKG9sZF9wcmlfc3RhdGUpIHsKPj4gIAkJc3RydWN0 IGludGVsX3BsYW5lX3N0YXRlICpwcmltYXJ5X3N0YXRlID0KPj4gIAkJCXRvX2ludGVsX3BsYW5l X3N0YXRlKHByaW1hcnktPnN0YXRlKTsKPj4gIAkJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpv bGRfcHJpbWFyeV9zdGF0ZSA9Cj4+ICAJCQl0b19pbnRlbF9wbGFuZV9zdGF0ZShvbGRfcHJpX3N0 YXRlKTsKPj4gKwkJYm9vbCB0dXJuX29mZiA9IG9sZF9wcmltYXJ5X3N0YXRlLT52aXNpYmxlICYm Cj4+ICsJCSAgICAobW9kZXNldCB8fCAhcHJpbWFyeV9zdGF0ZS0+dmlzaWJsZSk7IAo+IE5vdCBy ZWFsbHkgcmVsYXRlZCB0byB0aGUgcGF0Y2gsIGJ1dCBvayB0byBrZWVwIHNpbmNlIGl0J3MgdHJp dmlhbC4uLgo+Cj4+ICsKPj4gKwkJaW50ZWxfZmJjX3ByZV91cGRhdGUoY3J0Yyk7Cj4+ICAKPj4g LQkJaWYgKG9sZF9wcmltYXJ5X3N0YXRlLT52aXNpYmxlICYmCj4+IC0JCSAgICAobW9kZXNldCB8 fCAhcHJpbWFyeV9zdGF0ZS0+dmlzaWJsZSkpCj4+ICsJCWlmICh0dXJuX29mZikKPj4gIAkJCWlu dGVsX3ByZV9kaXNhYmxlX3ByaW1hcnkoJmNydGMtPmJhc2UpOwo+PiAgCX0KPj4gIAo+PiBAQCAt MTE4MjIsMjcgKzExODE2LDE3IEBAIGludCBpbnRlbF9wbGFuZV9hdG9taWNfY2FsY19jaGFuZ2Vz KHN0cnVjdAo+PiBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPj4gIAlpZiAodmlzaWJsZSB8 fCB3YXNfdmlzaWJsZSkKPj4gIAkJcGlwZV9jb25maWctPmZiX2JpdHMgfD0gdG9faW50ZWxfcGxh bmUocGxhbmUpLQo+Pj4gZnJvbnRidWZmZXJfYml0Owo+PiAgCj4+IC0Jc3dpdGNoIChwbGFuZS0+ dHlwZSkgewo+PiAtCWNhc2UgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWToKPj4gLQkJaW50ZWxfY3J0 Yy0+YXRvbWljLnVwZGF0ZV9mYmMgPSB0cnVlOwo+PiAtCj4+IC0JCWJyZWFrOwo+PiAtCWNhc2Ug RFJNX1BMQU5FX1RZUEVfQ1VSU09SOgo+PiAtCQlicmVhazsKPj4gLQljYXNlIERSTV9QTEFORV9U WVBFX09WRVJMQVk6Cj4+IC0JCS8qCj4+IC0JCSAqIFdhQ3hTUkRpc2FibGVkRm9yU3ByaXRlU2Nh bGluZzppdmIKPj4gLQkJICoKPj4gLQkJICogY3N0YXRlLT51cGRhdGVfd20gd2FzIGFscmVhZHkg c2V0IGFib3ZlLCBzbyB0aGlzCj4+IGZsYWcgd2lsbAo+PiAtCQkgKiB0YWtlIGVmZmVjdCB3aGVu IHdlIGNvbW1pdCBhbmQgcHJvZ3JhbQo+PiB3YXRlcm1hcmtzLgo+PiAtCQkgKi8KPj4gLQkJaWYg KElTX0lWWUJSSURHRShkZXYpICYmCj4+IC0JCSAgICBuZWVkc19zY2FsaW5nKHRvX2ludGVsX3Bs YW5lX3N0YXRlKHBsYW5lX3N0YXRlKSkKPj4gJiYKPj4gLQkJICAgICFuZWVkc19zY2FsaW5nKG9s ZF9wbGFuZV9zdGF0ZSkpCj4+IC0JCQlwaXBlX2NvbmZpZy0+ZGlzYWJsZV9scF93bSA9IHRydWU7 Cj4+ICsJLyoKPj4gKwkgKiBXYUN4U1JEaXNhYmxlZEZvclNwcml0ZVNjYWxpbmc6aXZiCj4+ICsJ ICoKPj4gKwkgKiBjc3RhdGUtPnVwZGF0ZV93bSB3YXMgYWxyZWFkeSBzZXQgYWJvdmUsIHNvIHRo aXMgZmxhZwo+PiB3aWxsCj4+ICsJICogdGFrZSBlZmZlY3Qgd2hlbiB3ZSBjb21taXQgYW5kIHBy b2dyYW0gd2F0ZXJtYXJrcy4KPj4gKwkgKi8KPj4gKwlpZiAocGxhbmUtPnR5cGUgPT0gRFJNX1BM QU5FX1RZUEVfT1ZFUkxBWSAmJgo+PiBJU19JVllCUklER0UoZGV2KSAmJgo+PiArCSAgICBuZWVk c19zY2FsaW5nKHRvX2ludGVsX3BsYW5lX3N0YXRlKHBsYW5lX3N0YXRlKSkgJiYKPj4gKwkgICAg IW5lZWRzX3NjYWxpbmcob2xkX3BsYW5lX3N0YXRlKSkKPj4gKwkJcGlwZV9jb25maWctPmRpc2Fi bGVfbHBfd20gPSB0cnVlOwo+PiAgCj4+IC0JCWJyZWFrOwo+PiAtCX0KPj4gIAlyZXR1cm4gMDsK Pj4gIH0KPj4gIAo+PiBAQCAtMTMyNDEsOSArMTMyMjUsNiBAQCBzdGF0aWMgaW50IGludGVsX2F0 b21pY19jaGVjayhzdHJ1Y3QKPj4gZHJtX2RldmljZSAqZGV2LAo+PiAgCQlzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqcGlwZV9jb25maWcgPQo+PiAgCQkJdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRj X3N0YXRlKTsKPj4gIAo+PiAtCQltZW1zZXQoJnRvX2ludGVsX2NydGMoY3J0YyktPmF0b21pYywg MCwKPj4gLQkJICAgICAgIHNpemVvZihzdHJ1Y3QgaW50ZWxfY3J0Y19hdG9taWNfY29tbWl0KSk7 Cj4+IC0KPj4gIAkJLyogQ2F0Y2ggSTkxNV9NT0RFX0ZMQUdfSU5IRVJJVEVEICovCj4+ICAJCWlm IChjcnRjX3N0YXRlLT5tb2RlLnByaXZhdGVfZmxhZ3MgIT0gY3J0Yy0+c3RhdGUtCj4+PiBtb2Rl LnByaXZhdGVfZmxhZ3MpCj4+ICAJCQljcnRjX3N0YXRlLT5tb2RlX2NoYW5nZWQgPSB0cnVlOwo+ PiBAQCAtMTM1MjgsMTIgKzEzNTA5LDEzIEBAIHN0YXRpYyBpbnQgaW50ZWxfYXRvbWljX2NvbW1p dChzdHJ1Y3QKPj4gZHJtX2RldmljZSAqZGV2LAo+PiAgCQlpZiAoIW1vZGVzZXQpCj4+ICAJCQlp bnRlbF9wcmVfcGxhbmVfdXBkYXRlKHRvX2ludGVsX2NydGNfc3RhdGUoYwo+PiBydGNfc3RhdGUp KTsKPj4gIAo+PiAtCQlpZiAoY3J0Yy0+c3RhdGUtPmFjdGl2ZSAmJiBpbnRlbF9jcnRjLQo+Pj4g YXRvbWljLnVwZGF0ZV9mYmMpCj4+ICsJCWlmICgobW9kZXNldCB8fCB1cGRhdGVfcGlwZSkgJiYg Y3J0Yy0+c3RhdGUtPmFjdGl2ZSkKPiBTYW1lIGhlcmU6IG5vdCBlYXN5IGZvciBtZSB0byB2ZXJp ZnkgdGhpbmdzIGFyZSB0aGUgc2FtZSBub3cuIEV2ZW4KPiB3b3JzZTogdGhlIGNoZWNrIGZvciAi aXMgdGhpcyBhdG9taWMgY29tbWl0IHRvdWNoaW5nIHRoZSBwcmltYXJ5Cj4gcGxhbmU/IiBpcyBu b3cgd3JpdHRlbiBpbiBhIGNvbXBsZXRlbHkgZGlmZmVyZW50IHdheSB0aGFuIHRoZSBvbmUKPiBp bnRyb2R1Y2VkIGFib3ZlLiBNYXliZSB0aGVyZSdzIHNvbWV0aGluZyB3ZSBjb3VsZCBkbyB0byBt YWtlIHRoZSBjb2RlCj4gZWFzaWVyIHRvIHJlYWQuCk5vLCB0aGlzIGlzIGNhbGxlZCBub3cgZXZl cnkgdGltZSB3aGVuIHRoZSBjcnRjIGhhcyBhIG1vZGVzZXQgb3IgdXBkYXRlX3BpcGUsIGV2ZW4g d2l0aCBubyBwcmltYXJ5IHBsYW5lLgpUaGlzIGlzIGJlY2F1c2UgYXRvbWljIG1heSBzZXQgYSBt b2RlIHdpdGhvdXQgaGF2aW5nIGEgcHJpbWFyeSBwbGFuZSwgYW5kIGluIHRoYXQgY2FzZSBmYmNf ZW5hYmxlIG1heSBuZXZlciBiZSBjYWxsZWQuClNlZW1lZCBsaWtlIGEgYnVnIGluIHRoZSBvcmln aW5hbCBjb2RlLi4KCn5NYWFydGVuCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo=