From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 6/7] drm/i915: add frontbuffer tracking to FBC Date: Thu, 5 Mar 2015 12:52:39 +0100 Message-ID: <20150305115239.GR18775@phenom.ffwll.local> References: <1423855427-2098-1-git-send-email-przanoni@gmail.com> <1423855427-2098-7-git-send-email-przanoni@gmail.com> <1425502393.3366.42.camel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-we0-f177.google.com (mail-we0-f177.google.com [74.125.82.177]) by gabe.freedesktop.org (Postfix) with ESMTP id B1DBA89A9A for ; Thu, 5 Mar 2015 03:51:00 -0800 (PST) Received: by wevm14 with SMTP id m14so52395846wev.8 for ; Thu, 05 Mar 2015 03:51:00 -0800 (PST) Content-Disposition: inline In-Reply-To: <1425502393.3366.42.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: "Vivi, Rodrigo" Cc: "intel-gfx@lists.freedesktop.org" , "Zanoni, Paulo R" List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBNYXIgMDQsIDIwMTUgYXQgMDg6NTQ6MjFQTSArMDAwMCwgVml2aSwgUm9kcmlnbyB3 cm90ZToKPiBPbiBXZWQsIDIwMTUtMDMtMDQgYXQgMTU6MDMgLTAzMDAsIFBhdWxvIFphbm9uaSB3 cm90ZToKPiA+IDIwMTUtMDMtMDMgMjE6NTcgR01ULTAzOjAwIFJvZHJpZ28gVml2aSA8cm9kcmln by52aXZpQGdtYWlsLmNvbT46Cj4gPiA+IE9uIEZyaSwgRmViIDEzLCAyMDE1IGF0IDExOjIzIEFN LCBQYXVsbyBaYW5vbmkgPHByemFub25pQGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiA+PiBGcm9tOiBQ YXVsbyBaYW5vbmkgPHBhdWxvLnIuemFub25pQGludGVsLmNvbT4KPiA+ID4+Cj4gPiA+PiBLaWxs IHRoZSBibHQvcmVuZGVyIHRyYWNraW5nIHdlIGN1cnJlbnRseSBoYXZlIGFuZCB1c2UgdGhlIGZy b250YnVmZmVyCj4gPiA+PiB0cmFja2luZyBpbmZyYXN0cnVjdHVyZS4KPiA+ID4+Cj4gPiA+PiBE b24ndCBlbmFibGUgdGhpbmdzIGJ5IGRlZmF1bHQgeWV0Lgo+ID4gPj4KPiA+ID4+IHYyOiAoUm9k cmlnbykgRml4IHNtYWxsIGNvbmZsaWN0IG9uIHJlYmFzZSBhbmQgdHlwbyBhdCBzdWJqZWN0Lgo+ ID4gPj4gdjM6IChQYXVsbykgUmViYXNlIG9uIFJFTkRFUl9DUyBjaGFuZ2UuCj4gPiA+PiB2NDog KFBhdWxvKSBSZWJhc2UuCj4gPiA+PiB2NTogKFBhdWxvKSBTaW1wbGlmeTogZmx1c2hlcyBkb24n dCBoYXZlIG9yaWdpbiAoRGFuaWVsKS4KPiA+ID4+ICAgICAgICAgICAgIEFsc28gcmViYXNlIGR1 ZSB0byBwYXRjaCBvcmRlciBjaGFuZ2VzLgo+ID4gPj4KPiA+ID4+IFNpZ25lZC1vZmYtYnk6IFJv ZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KPiA+ID4+IFNpZ25lZC1vZmYtYnk6 IFBhdWxvIFphbm9uaSA8cGF1bG8uci56YW5vbmlAaW50ZWwuY29tPgo+ID4gPj4gLS0tCj4gPiA+ PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICB8IDEwICstLS0KPiA+ ID4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgICAgIHwgIDYgKystCj4g PiA+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMgICAgICAgICB8IDkxICsrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCj4gPiA+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZnJvbnRidWZmZXIuYyB8IDE0ICstLS0tCj4gPiA+PiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcmluZ2J1ZmZlci5jICB8IDQxICstLS0tLS0tLS0tLS0tCj4gPiA+PiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oICB8ICAxIC0KPiA+ID4+ICA2IGZpbGVz IGNoYW5nZWQsIDY1IGluc2VydGlvbnMoKyksIDk4IGRlbGV0aW9ucygtKQo+ID4gPj4KPiA+ID4+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gPj4gaW5kZXggMzBhYWE4ZS4uNzY4MGNhMCAxMDA2 NDQKPiA+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+ID4+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+ID4+IEBAIC03ODMsNiArNzgz LDggQEAgc3RydWN0IGk5MTVfZmJjIHsKPiA+ID4+ICAgICAgICAgdW5zaWduZWQgbG9uZyB1bmNv bXByZXNzZWRfc2l6ZTsKPiA+ID4+ICAgICAgICAgdW5zaWduZWQgdGhyZXNob2xkOwo+ID4gPj4g ICAgICAgICB1bnNpZ25lZCBpbnQgZmJfaWQ7Cj4gPiA+PiArICAgICAgIHVuc2lnbmVkIGludCBw b3NzaWJsZV9mcmFtZWJ1ZmZlcl9iaXRzOwo+ID4gPj4gKyAgICAgICB1bnNpZ25lZCBpbnQgYnVz eV9iaXRzOwo+ID4gPgo+ID4gPiBJJ20gbm90IHN1cmUgaWYgSSB1bmRlcnN0b29kIHdoeSB5b3Ug a2VlcCAyIHZhcmlhYmxlcyBoZXJlPwo+ID4gCj4gPiBBZnRlciBEYW5pZWwncyBsYXN0IHN1Z2dl c3Rpb24sIHRoZSBwb3NzaWJsZV9mcmFtZWJ1ZmZlcl9iaXRzIGNvdWxkCj4gPiBwcm9iYWJseSBi ZSByZW1vdmVkIGFuZCBsZWZ0IGFzIGEgbG9jYWwgdmFyaWFibGUgYXQgaW50ZWxfZmJjX3ZhbGlk YXRlCj4gPiBub3c6IGl0J3MganVzdCBhIG1hdHRlciBvZiBjb2Rpbmcgc3R5bGUuIFNvbWUgcGxh dGZvcm1zIHN1cHBvcnQgRkJDIG9uCj4gPiBtb3JlIHRoYW4ganVzdCBwaXBlIEEsIHNvIHRoaXMg dmFyaWFibGUgaXMgdXNlZCB0byBzaW1wbGlmeSBjaGVja3MKPiA+IHJlbGF0ZWQgdG8gdGhpcy4K PiA+IAo+ID4gVGhlIGJ1c3lfYml0cyB3YXMgYWxzbyBwYXJ0IG9mIERhbmllbCdzIGxhc3QgcmVx dWVzdDogd2UgbmVlZCB0byBzdG9yZQo+ID4gd2hpY2ggYml0cyB0cmlnZ2VyZWQgaW50ZWxfZmJj X2ludmFsaWRhdGUgY2FsbHMsIGFuZCB0aGVuIGNoZWNrIHRoZW0KPiA+IHdoZW4gaW50ZWxfZmJj X2ZsdXNoIGlzIGNhbGxlZC4KPiAKPiBHb3QgaXQuCj4gVGhhbmtzIGZvciBleHBsYWluaW5nIGl0 Lgo+IAo+ID4gCj4gPiA+IElzIGl0IGJlY2F1c2Ugd2Uga2VlcCBlbmFibGluZy9kaXNhYmxpbmcg ZmJjIHdpdGggdXBkYXRlcyBhbGwgb3ZlciB0aGUgY29kZT8KPiA+ID4gSW4gdGhpcyBjYXNlIGl0 IGlzIG9rIHdlIGp1c3QgbmVlZCB0byBraWxsIGl0IHdoZW4gd2Uga2lsbCB1cGRhdGVfZmJjLi4u Cj4gPiAKPiA+IEkgZG9uJ3QgdW5kZXJzdGFuZCB3aGF0IHlvdSBtZWFuIGhlcmUuIFBsZWFzZSBj bGFyaWZ5Lgo+IAo+IEkgaGFkIG1pc3N1bmRlcnN0b29kIHRoZSByZWFzb24gb2YgcG9zc2libGVf ZnJvbnRidWZmZXIgYml0cywgc29ycnkuCj4gQnV0IGFib3V0IGtpbGxpbmcgdXBkYXRlX2ZiYyBJ IGJlbGlldmUgdGhhdCBhZnRlciBmcm9udGJ1ZmZlciByZXdvcmsgaXMKPiBpbiBwbGFjZSB3ZSBk b24ndCBuZWVkIHRvIHVzZSB0aGF0IHVwZGF0ZV9mYmMgZnVuY3Rpb24gdGhhdCBkaXNhYmxlIGFu ZAo+IGVuYWJsZSBmYmMgb24gdGhlIGNhc2VzIHdlIGtuZXcgaXQgY291bGQgZmFpbC4gV2l0aCBm cm9udGJ1ZmZlciBiaXRzIHdlCj4gY291bGQgbGV0IGl0IGFsd2F5cyBlbmFibGVkIGFuZCBraWNr aW5nIHdpdGggZnJvbnRidWZmZXIgYml0cy4KPiAKPiA+IAo+ID4gPgo+ID4gPj4gICAgICAgICBz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YzsKPiA+ID4+ICAgICAgICAgaW50IHk7Cj4gPiA+Pgo+ID4g Pj4gQEAgLTc5NSwxNCArNzk3LDYgQEAgc3RydWN0IGk5MTVfZmJjIHsKPiA+ID4+ICAgICAgICAg ICogcG9zc2libGUuICovCj4gPiA+PiAgICAgICAgIGJvb2wgZW5hYmxlZDsKPiA+ID4+Cj4gPiA+ PiAtICAgICAgIC8qIE9uIGdlbjggc29tZSByaW5ncyBjYW5ub250IHBlcmZvcm0gZmJjIGNsZWFu IG9wZXJhdGlvbiBzbyBmb3Igbm93Cj4gPiA+PiAtICAgICAgICAqIHdlIGFyZSBkb2luZyB0aGlz IG9uIFNXIHdpdGggbW1pby4KPiA+ID4+IC0gICAgICAgICogVGhpcyB2YXJpYWJsZSB3b3JrcyBp biB0aGUgb3Bwb3NpdGUgaW5mb3JtYXRpb24gZGlyZWN0aW9uCj4gPiA+PiAtICAgICAgICAqIG9m IHJpbmctPmZiY19kaXJ0eSB0ZWxsaW5nIHNvZnR3YXJlIG9uIGZyb250YnVmZmVyIHRyYWNraW5n Cj4gPiA+PiAtICAgICAgICAqIHRvIHBlcmZvcm0gdGhlIGNhY2hlIGNsZWFuIG9uIHN3IHNpZGUu Cj4gPiA+PiAtICAgICAgICAqLwo+ID4gPj4gLSAgICAgICBib29sIG5lZWRfc3dfY2FjaGVfY2xl YW47Cj4gPiA+PiAtCj4gPiA+PiAgICAgICAgIHN0cnVjdCBpbnRlbF9mYmNfd29yayB7Cj4gPiA+ PiAgICAgICAgICAgICAgICAgc3RydWN0IGRlbGF5ZWRfd29yayB3b3JrOwo+ID4gPj4gICAgICAg ICAgICAgICAgIHN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiA+ID4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oCj4gPiA+PiBpbmRleCAwNWQwYTQzZi4uNTcxMTc0ZiAxMDA2NDQKPiA+ID4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiA+PiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gPj4gQEAgLTEwOTEsNyArMTA5MSwxMSBAQCBib29s IGludGVsX2ZiY19lbmFibGVkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ID4gPj4gIHZvaWQg aW50ZWxfZmJjX3VwZGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiA+ID4+ICB2b2lkIGlu dGVsX2ZiY19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gPiA+PiAg dm9pZCBpbnRlbF9mYmNfZGlzYWJsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiA+ID4+IC12 b2lkIGJkd19mYmNfc3dfZmx1c2goc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIHZhbHVlKTsK PiA+ID4+ICt2b2lkIGludGVsX2ZiY19pbnZhbGlkYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKPiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50 IGZyb250YnVmZmVyX2JpdHMsCj4gPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0g ZmJfb3Bfb3JpZ2luIG9yaWdpbik7Cj4gPiA+PiArdm9pZCBpbnRlbF9mYmNfZmx1c2goc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gPj4gKyAgICAgICAgICAgICAgICAgICAg dW5zaWduZWQgaW50IGZyb250YnVmZmVyX2JpdHMpOwo+ID4gPj4KPiA+ID4+ICAvKiBpbnRlbF9o ZG1pLmMgKi8KPiA+ID4+ICB2b2lkIGludGVsX2hkbWlfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCBpbnQgaGRtaV9yZWcsIGVudW0gcG9ydCBwb3J0KTsKPiA+ID4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2ZiYy5jCj4gPiA+PiBpbmRleCA2MThmN2JkLi45ZmNmNDQ2IDEwMDY0NAo+ID4gPj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKPiA+ID4+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jCj4gPiA+PiBAQCAtMTc0LDI5ICsxNzQsMTAgQEAgc3Rh dGljIGJvb2wgZzR4X2ZiY19lbmFibGVkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gPiA+PiAg ICAgICAgIHJldHVybiBJOTE1X1JFQUQoRFBGQ19DT05UUk9MKSAmIERQRkNfQ1RMX0VOOwo+ID4g Pj4gIH0KPiA+ID4+Cj4gPiA+PiAtc3RhdGljIHZvaWQgc25iX2ZiY19ibGl0X3VwZGF0ZShzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gPj4gK3N0YXRpYyB2b2lkIGludGVsX2ZiY19udWtlKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ID4+ICB7Cj4gPiA+PiAtICAgICAg IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4g PiA+PiAtICAgICAgIHUzMiBibHRfZWNvc2twZDsKPiA+ID4+IC0KPiA+ID4+IC0gICAgICAgLyog TWFrZSBzdXJlIGJsaXR0ZXIgbm90aWZpZXMgRkJDIG9mIHdyaXRlcyAqLwo+ID4gPj4gLQo+ID4g Pj4gLSAgICAgICAvKiBCbGl0dGVyIGlzIHBhcnQgb2YgTWVkaWEgcG93ZXJ3ZWxsIG9uIFZMVi4g Tm8gaW1wYWN0IG9mCj4gPiA+PiAtICAgICAgICAqIGhpcyBwYXJhbSBpbiBvdGhlciBwbGF0Zm9y bXMgZm9yIG5vdyAqLwo+ID4gPj4gLSAgICAgICBpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2dldChk ZXZfcHJpdiwgRk9SQ0VXQUtFX01FRElBKTsKPiA+ID4+IC0KPiA+ID4+IC0gICAgICAgYmx0X2Vj b3NrcGQgPSBJOTE1X1JFQUQoR0VONl9CTElUVEVSX0VDT1NLUEQpOwo+ID4gPj4gLSAgICAgICBi bHRfZWNvc2twZCB8PSBHRU42X0JMSVRURVJfRkJDX05PVElGWSA8PAo+ID4gPj4gLSAgICAgICAg ICAgICAgIEdFTjZfQkxJVFRFUl9MT0NLX1NISUZUOwo+ID4gPj4gLSAgICAgICBJOTE1X1dSSVRF KEdFTjZfQkxJVFRFUl9FQ09TS1BELCBibHRfZWNvc2twZCk7Cj4gPiA+PiAtICAgICAgIGJsdF9l Y29za3BkIHw9IEdFTjZfQkxJVFRFUl9GQkNfTk9USUZZOwo+ID4gPj4gLSAgICAgICBJOTE1X1dS SVRFKEdFTjZfQkxJVFRFUl9FQ09TS1BELCBibHRfZWNvc2twZCk7Cj4gPiA+PiAtICAgICAgIGJs dF9lY29za3BkICY9IH4oR0VONl9CTElUVEVSX0ZCQ19OT1RJRlkgPDwKPiA+ID4+IC0gICAgICAg ICAgICAgICAgICAgICAgICBHRU42X0JMSVRURVJfTE9DS19TSElGVCk7Cj4gPiA+PiAtICAgICAg IEk5MTVfV1JJVEUoR0VONl9CTElUVEVSX0VDT1NLUEQsIGJsdF9lY29za3BkKTsKPiA+ID4+IC0g ICAgICAgUE9TVElOR19SRUFEKEdFTjZfQkxJVFRFUl9FQ09TS1BEKTsKPiA+ID4+IC0KPiA+ID4+ IC0gICAgICAgaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9wdXQoZGV2X3ByaXYsIEZPUkNFV0FLRV9N RURJQSk7Cj4gPiA+Cj4gPiA+IEFyZSB5b3Ugc3VyZSB0aGlzIGNvbnRpbnVlIHdvcmtpbmcgb24g c25iPyBvciBzaG91bGQgd2UgZnVsbHkgcmVtb3ZlCj4gPiA+IGZiYyBzdXBwb3J0IGZvciBzbmIg YW5kIG9sZGVyPwo+ID4gPgo+ID4gPiBBbnl3YXkgSSBiZWxpZXZlIHRoaXMgY291bGQgYmUgaW4g YSBkaWZmZXJlbnQgcGF0Y2guCj4gPiAKPiA+IFdlbGwsIHRoZSB3aG9sZSBpZGVhIG9mIHVzaW5n IHRoZSBzb2Z3YXJlLWJhc2VkIGZyb250YnVmZmVyIHRyYWNraW5nCj4gPiBtZWNoYW5pc20gaXMg dG8gZ2V0IHJpZCBvZiBhbGwgdGhlIGhhcmR3YXJlLWJhc2VkIHN0dWZmLgo+IAo+IEhtLCBJIHN0 aWxsIGhhdmUgYSBjb25jZXJuIGhlcmUuIFdlIHdvdWxkIG5lZWQgdG8gdGVzdCBvbiB0aG9zZQo+ IHBsYXRmb3JtcyB0byBiZSBjZXJ0YWluLiBUaGUgcmVhc29uIGZvciB0aGF0IGlzIHRoYXQgSFcg dHJhY2tpbmcgc3RpbGwKPiB3b3JrcyBzbyBpdCBjYW4gbGV0IHRoZSBidWZmZXIgaW4gYSBzdGFn ZSB0aGF0IGNvbXByZXNzaW9uIGlzIHVuYWJsZSB0bwo+IHN0YXJ0Li4uIHNhbWUgcmVhc29uIHRo YXQgd2Ugc3RpbGwgbmVlZCBib3RoIGxpbmVzIGJlbG93IG9uIEJEVy4KCkFmYWlrIHRoZSBmZW5j ZSBiYXNlZCB0cmFja2luZyBvbmx5IGludmFsaWRhdGVzIHNwZWNpZmljIGxpbmVzLiBFdmVyeXRo aW5nCmVsc2Ugc2hvdWxkbid0IGJlIHJlcXVpcmVkIGFueSBtb3JlIHdpdGggdGhpcyBwYXRjaC4K Cj4gQW55d2F5IHRoaXMgd291bGRuJ3QgYnJlYWsgYW55dGhpbmcgYW5kIGl0IHRoaXMgcmV3b3Jr IHdhcyBhIGdyZWF0Cj4gaW1wcm92ZW1lbnQgc28gZmVlbCBmcmVlIHRvIHVzZQo+IAo+IFJldmll d2VkLWJ5OiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+CgpRdWV1ZWQgZm9y IC1uZXh0LCB0aGFua3MgZm9yIHRoZSBwYXRjaC4KLURhbmllbAotLSAKRGFuaWVsIFZldHRlcgpT b2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KKzQxICgwKSA3OSAzNjUgNTcgNDgg LSBodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo=