From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH 4/5] drm/i915: Track page table reload need Date: Thu, 19 Mar 2015 11:01:36 +0200 Message-ID: <873851mkcv.fsf@gaia.fi.intel.com> References: <1426521658-28408-1-git-send-email-michel.thierry@intel.com> <1426521658-28408-5-git-send-email-michel.thierry@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 3876A6E995 for ; Thu, 19 Mar 2015 02:01:41 -0700 (PDT) In-Reply-To: <1426521658-28408-5-git-send-email-michel.thierry@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Michel Thierry , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org TWljaGVsIFRoaWVycnkgPG1pY2hlbC50aGllcnJ5QGludGVsLmNvbT4gd3JpdGVzOgoKPiBGcm9t OiBCZW4gV2lkYXdza3kgPGJlbmphbWluLndpZGF3c2t5QGludGVsLmNvbT4KPgo+IFRoaXMgcGF0 Y2ggd2FzIGZvcm1lcmx5IGtub3duIGFzLCAiRm9yY2UgcGQgcmVzdG9yZSB3aGVuIFBERXMgY2hh bmdlLAo+IGdlbjYtNy4iIEkgaGFkIHRvIGNoYW5nZSB0aGUgbmFtZSBiZWNhdXNlIGl0IGlzIG5l ZWRlZCBmb3IgR0VOOCB0b28uCj4KPiBUaGUgcmVhbCBpc3N1ZSB0aGlzIGlzIHRyeWluZyB0byBz b2x2ZSBpcyB3aGVuIGEgbmV3IG9iamVjdCBpcyBtYXBwZWQKPiBpbnRvIHRoZSBjdXJyZW50IGFk ZHJlc3Mgc3BhY2UuIFRoZSBHUFUgZG9lcyBub3Qgc25vb3AgdGhlIG5ldyBtYXBwaW5nCj4gc28g d2UgbXVzdCBkbyB0aGUgZ2VuIHNwZWNpZmljIGFjdGlvbiB0byByZWxvYWQgdGhlIHBhZ2UgdGFi bGVzLgo+Cj4gR0VOOCBhbmQgR0VONyBkbyBkaWZmZXIgaW4gdGhlIHdheSB0aGV5IGxvYWQgcGFn ZSB0YWJsZXMgZm9yIHRoZSBSQ1MuCj4gR0VOOCBkb2VzIHNvIHdpdGggdGhlIGNvbnRleHQgcmVz dG9yZSwgd2hpbGUgR0VONyByZXF1aXJlcyB0aGUgcHJvcGVyCj4gbG9hZCBjb21tYW5kcyBpbiB0 aGUgY29tbWFuZCBzdHJlYW1lci4gTm9uLXJlbmRlciBpcyBzaW1pbGFyIGZvciBib3RoLgo+Cj4g Q2F2ZWF0IGZvciBHRU43Cj4gVGhlIGRvY3Mgc2F5IHlvdSBjYW5ub3QgY2hhbmdlIHRoZSBQREVz IG9mIGEgY3VycmVudGx5IHJ1bm5pbmcgY29udGV4dC4KPiBXZSBuZXZlciBtYXAgbmV3IFBERXMg b2YgYSBydW5uaW5nIGNvbnRleHQsIGFuZCBleHBlY3QgdGhlbSB0byBiZQo+IHByZXNlbnQgLSBz byBJIHRoaW5rIHRoaXMgaXMgb2theS4gKFdlIGNhbiB1bm1hcCwgYnV0IHRoaXMgc2hvdWxkIGFs c28KPiBiZSBva2F5IHNpbmNlIHdlIG9ubHkgdW5tYXAgdW5yZWZlcmVuY2VkIG9iamVjdHMgdGhh dCB0aGUgR1BVIHNob3VsZG4ndAo+IGJlIHRyeWluZ3RvIHZhLT5wYSB4bGF0ZS4pIFRoZSBNSV9T RVRfQ09OVEVYVCBjb21tYW5kIGRvZXMgaGF2ZSBhIGZsYWcKPiB0byBzaWduYWwgdGhhdCBldmVu IGlmIHRoZSBjb250ZXh0IGlzIHRoZSBzYW1lLCBmb3JjZSBhIHJlbG9hZC4gSXQncwo+IHVuY2xl YXIgZXhhY3RseSB3aGF0IHRoaXMgZG9lcywgYnV0IEkgaGF2ZSBhIGh1bmNoIGl0J3MgdGhlIHJp Z2h0IHRoaW5nCj4gdG8gZG8uCj4KPiBUaGUgbG9naWMgYXNzdW1lcyB0aGF0IHdlIGFsd2F5cyBl bWl0IGEgY29udGV4dCBzd2l0Y2ggYWZ0ZXIgbWFwcGluZyBuZXcKPiBQREVzLCBhbmQgYmVmb3Jl IHdlIHN1Ym1pdCBhIGJhdGNoLiBUaGlzIGlzIHRoZSBjYXNlIHRvZGF5LCBhbmQgaGFzIGJlZW4K PiB0aGUgY2FzZSBzaW5jZSB0aGUgaW5jZXB0aW9uIG9mIGhhcmR3YXJlIGNvbnRleHRzLiBBIG5v dGUgaW4gdGhlIGNvbW1lbnQKPiBsZXQncyB0aGUgdXNlciBrbm93Lgo+Cj4gSXQncyBub3QganVz dCBmb3IgZ2VuOC4gSWYgdGhlIGN1cnJlbnQgY29udGV4dCBoYXMgbWFwcGluZ3MgY2hhbmdlLCB3 ZQo+IG5lZWQgYSBjb250ZXh0IHJlbG9hZCB0byBzd2l0Y2gKPgo+IHYyOiBSZWJhc2VkIGFmdGVy IHBwZ3R0IGNsZWFuIHVwIHBhdGNoZXMuIFNwbGl0IHRoZSB3YXJuaW5nIGZvciBhbGlhc2luZwo+ IGFuZCB0cnVlIHBwZ3R0IG9wdGlvbnMuIEFuZCBkbyBub3QgYnJlYWsgYWxpYXNpbmcgcHBndHQs IHdoZXJlIHRvLT5wcGd0dAo+IGlzIGFsd2F5cyBudWxsLgo+Cj4gdjM6IEludmFsaWRhdGUgUFBH VFQgVExCcyBpbnNpZGUgYWxsb2NfdmFfcmFuZ2UuCj4KPiB2NDogUmVuYW1lIHBwZ3R0X2ludmFs aWRhdGVfdGxicyB0byBtYXJrX3RsYnNfZGlydHkgYW5kIG1vdmUKPiBwZF9kaXJ0eV9yaW5ncyBm cm9tIGk5MTVfYWRkcmVzc19zcGFjZSB0byBpOTE1X2h3X3BwZ3R0LiBGaXhlcyB3aGVuCj4gbmVp dGhlciBjdHgtPnBwZ3R0IGFuZCBhbGlhc2luZ19wcGd0dCBleGlzdC4KPgo+IHY1OiBSZW1vdmVk IHJlZmVyZW5jZXMgdG8gdGVhcmRvd25fdmFfcmFuZ2UuCj4KPiB2NjogVXBkYXRlZCBuZWVkc19w ZF9sb2FkX3ByZS9wb3N0Lgo+Cj4gU2lnbmVkLW9mZi1ieTogQmVuIFdpZGF3c2t5IDxiZW5AYndp ZGF3c2submV0Pgo+IFNpZ25lZC1vZmYtYnk6IE1pY2hlbCBUaGllcnJ5IDxtaWNoZWwudGhpZXJy eUBpbnRlbC5jb20+ICh2MispCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2NvbnRleHQuYyAgICB8IDI2ICsrKysrKysrKysrKysrKysrKysrLS0tLS0tCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyB8IDExICsrKysrKysrKysrCj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jICAgICAgICB8IDExICsrKysrKysrKysr Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oICAgICAgICB8ICAxICsKPiAg NCBmaWxlcyBjaGFuZ2VkLCA0MyBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQo+Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwo+IGluZGV4IGI2ZWE4NWQuLjkxOTdm ZjQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCj4gQEAgLTU3 Myw4ICs1NzMsMjAgQEAgc3RhdGljIGlubGluZSBib29sIHNob3VsZF9za2lwX3N3aXRjaChzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ICAJCQkJICAgICAgc3RydWN0IGludGVsX2NvbnRl eHQgKmZyb20sCj4gIAkJCQkgICAgICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqdG8pCj4gIHsKPiAt CWlmIChmcm9tID09IHRvICYmICF0by0+cmVtYXBfc2xpY2UpCj4gLQkJcmV0dXJuIHRydWU7Cj4g KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSByaW5nLT5kZXYtPmRldl9wcml2 YXRlOwo+ICsKPiArCWlmICh0by0+cmVtYXBfc2xpY2UpCj4gKwkJcmV0dXJuIGZhbHNlOwo+ICsK PiArCWlmICh0by0+cHBndHQpIHsKPiArCQlpZiAoZnJvbSA9PSB0byAmJiAhdGVzdF9iaXQocmlu Zy0+aWQsCj4gKwkJCQkmdG8tPnBwZ3R0LT5wZF9kaXJ0eV9yaW5ncykpCj4gKwkJCXJldHVybiB0 cnVlOwo+ICsJfSBlbHNlIGlmIChkZXZfcHJpdi0+bW0uYWxpYXNpbmdfcHBndHQpIHsKPiArCQlp ZiAoZnJvbSA9PSB0byAmJiAhdGVzdF9iaXQocmluZy0+aWQsCj4gKwkJCQkmZGV2X3ByaXYtPm1t LmFsaWFzaW5nX3BwZ3R0LT5wZF9kaXJ0eV9yaW5ncykpCj4gKwkJCXJldHVybiB0cnVlOwo+ICsJ fQo+ICAKPiAgCXJldHVybiBmYWxzZTsKPiAgfQo+IEBAIC02MTAsMTAgKzYyMiw3IEBAIG5lZWRz X3BkX2xvYWRfcG9zdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLCBzdHJ1Y3QgaW50ZWxf Y29udGV4dCAqdG8pCj4gIAlpZiAocmluZyAhPSAmZGV2X3ByaXYtPnJpbmdbUkNTXSkKPiAgCQly ZXR1cm4gZmFsc2U7Cj4gIAo+IC0JaWYgKCF0by0+bGVnYWN5X2h3X2N0eC5pbml0aWFsaXplZCkK PiAtCQlyZXR1cm4gdHJ1ZTsKPiAtCj4gLQlpZiAoaTkxNV9nZW1fY29udGV4dF9pc19kZWZhdWx0 KHRvKSkKPiArCWlmICgmdG8tPnBwZ3R0LT5wZF9kaXJ0eV9yaW5ncykKCmlmICh0by0+cHBndHQt PnBkX2RpcnR5X3JpbmdzKSA/Cgo+ICAJCXJldHVybiB0cnVlOwo+ICAKPiAgCXJldHVybiBmYWxz ZTsKPiBAQCAtNjY0LDYgKzY3Myw5IEBAIHN0YXRpYyBpbnQgZG9fc3dpdGNoKHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKnJpbmcsCj4gIAkJcmV0ID0gdG8tPnBwZ3R0LT5zd2l0Y2hfbW0odG8tPnBw Z3R0LCByaW5nKTsKPiAgCQlpZiAocmV0KQo+ICAJCQlnb3RvIHVucGluX291dDsKPiArCj4gKwkJ LyogRG9pbmcgYSBQRCBsb2FkIGFsd2F5cyByZWxvYWRzIHRoZSBwYWdlIGRpcnMgKi8KPiArCQlj bGVhcl9iaXQocmluZy0+aWQsICZ0by0+cHBndHQtPnBkX2RpcnR5X3JpbmdzKTsKPiAgCX0KPiAg Cj4gIAlpZiAocmluZyAhPSAmZGV2X3ByaXYtPnJpbmdbUkNTXSkgewo+IEBAIC02OTYsNiArNzA4 LDggQEAgc3RhdGljIGludCBkb19zd2l0Y2goc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywK PiAgCj4gIAlpZiAoIXRvLT5sZWdhY3lfaHdfY3R4LmluaXRpYWxpemVkIHx8IGk5MTVfZ2VtX2Nv bnRleHRfaXNfZGVmYXVsdCh0bykpCj4gIAkJaHdfZmxhZ3MgfD0gTUlfUkVTVE9SRV9JTkhJQklU Owo+ICsJZWxzZSBpZiAodG8tPnBwZ3R0ICYmIHRlc3RfYW5kX2NsZWFyX2JpdChyaW5nLT5pZCwg JnRvLT5wcGd0dC0+cGRfZGlydHlfcmluZ3MpKQo+ICsJCWh3X2ZsYWdzIHw9IE1JX0ZPUkNFX1JF U1RPUkU7Cj4gIAo+ICAJcmV0ID0gbWlfc2V0X2NvbnRleHQocmluZywgdG8sIGh3X2ZsYWdzKTsK PiAgCWlmIChyZXQpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2V4ZWNidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIu Ywo+IGluZGV4IGRjMTBiYzQuLmZkMDI0MWEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZXhlY2J1ZmZlci5jCj4gQEAgLTExODcsNiArMTE4NywxMyBAQCBpOTE1X2dlbV9y aW5nYnVmZmVyX3N1Ym1pc3Npb24oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9m aWxlICpmaWxlLAo+ICAJaWYgKHJldCkKPiAgCQlnb3RvIGVycm9yOwo+ICAKPiArCWlmIChjdHgt PnBwZ3R0KQo+ICsJCVdBUk4oY3R4LT5wcGd0dC0+cGRfZGlydHlfcmluZ3MgJiAoMTw8cmluZy0+ aWQpLAo+ICsJCQkiJXMgZGlkbid0IGNsZWFyIHJlbG9hZFxuIiwgcmluZy0+bmFtZSk7Cj4gKwll bHNlIGlmIChkZXZfcHJpdi0+bW0uYWxpYXNpbmdfcHBndHQpCj4gKwkJV0FSTihkZXZfcHJpdi0+ bW0uYWxpYXNpbmdfcHBndHQtPnBkX2RpcnR5X3JpbmdzICYKPiArCQkJKDE8PHJpbmctPmlkKSwg IiVzIGRpZG4ndCBjbGVhciByZWxvYWRcbiIsIHJpbmctPm5hbWUpOwo+ICsKPiAgCWluc3RwX21v ZGUgPSBhcmdzLT5mbGFncyAmIEk5MTVfRVhFQ19DT05TVEFOVFNfTUFTSzsKPiAgCWluc3RwX21h c2sgPSBJOTE1X0VYRUNfQ09OU1RBTlRTX01BU0s7Cj4gIAlzd2l0Y2ggKGluc3RwX21vZGUpIHsK PiBAQCAtMTQ1Niw2ICsxNDYzLDEwIEBAIGk5MTVfZ2VtX2RvX2V4ZWNidWZmZXIoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgCWlmIChyZXQpCj4gIAkJZ290byBlcnI7Cj4g IAo+ICsJLyogWFhYOiBSZXNlcnZlIGhhcyBwb3NzaWJseSBjaGFuZ2UgUERFcyB3aGljaCBtZWFu cyB3ZSBtdXN0IGRvIGEKPiArCSAqIGNvbnRleHQgc3dpdGNoIGJlZm9yZSB3ZSBjYW4gY29oZXJl bnRseSByZWFkIHNvbWUgb2YgdGhlIHJlc2VydmVkCj4gKwkgKiBWTUFzLiAqLwo+ICsKCldpdGgg Z2d0dCB3ZSBzaG91bGQgYmUgYWx3YXlzIGJlIHNhZmUgYXMgdGhlIHB0ZXMgYXJlIHNub29wZWQu IEFuZCB3ZQpkb24ndCBkbyBkeW5hbWljIGFsbG9jYXRpb24gb24gdGhlIGdndHQgYW55d2F5cy4g U28gd2h5IHdlIG5lZWQgdGhlCmN0eCBzd2l0Y2g/CgpBcyBJIGZhaWwgdG8gY29ubmVjdCB0aGUg ZG90cywgY291bGQgeW91IHBsZWFzZSBlbGFib3JhdGUgdGhlIGNvbW1lbnQKc2VjdGlvbi4KCi0t TWlrYQoKPiAgCS8qIFRoZSBvYmplY3RzIGFyZSBpbiB0aGVpciBmaW5hbCBsb2NhdGlvbnMsIGFw cGx5IHRoZSByZWxvY2F0aW9ucy4gKi8KPiAgCWlmIChuZWVkX3JlbG9jcykKPiAgCQlyZXQgPSBp OTE1X2dlbV9leGVjYnVmZmVyX3JlbG9jYXRlKGViKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9ndHQuYwo+IGluZGV4IGM1MGI0YWIuLjE3NThmZDkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9ndHQuYwo+IEBAIC0xMTYxLDYgKzExNjEsMTYgQEAgc3RhdGljIHZvaWQgZ2VuNl9w cGd0dF91bm1hcF9wYWdlcyhzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQpCj4gIAkJCSAgICAg ICA0MDk2LCBQQ0lfRE1BX0JJRElSRUNUSU9OQUwpOwo+ICB9Cj4gIAo+ICsvKiBQREUgVExCcyBh cmUgYSBwYWluIGludmFsaWRhdGUgcHJlIEdFTjguIEl0IHJlcXVpcmVzIGEgY29udGV4dCByZWxv YWQuIElmIHdlCj4gKyAqIGFyZSBzd2l0Y2hpbmcgYmV0d2VlbiBjb250ZXh0cyB3aXRoIHRoZSBz YW1lIExSQ0EsIHdlIGFsc28gbXVzdCBkbyBhIGZvcmNlCj4gKyAqIHJlc3RvcmUuCj4gKyAqLwo+ ICtzdGF0aWMgaW5saW5lIHZvaWQgbWFya190bGJzX2RpcnR5KHN0cnVjdCBpOTE1X2h3X3BwZ3R0 ICpwcGd0dCkKPiArewo+ICsJLyogSWYgY3VycmVudCB2bSAhPSB2bSwgKi8KPiArCXBwZ3R0LT5w ZF9kaXJ0eV9yaW5ncyA9IElOVEVMX0lORk8ocHBndHQtPmJhc2UuZGV2KS0+cmluZ19tYXNrOwo+ ICt9Cj4gKwo+ICBzdGF0aWMgaW50IGdlbjZfYWxsb2NfdmFfcmFuZ2Uoc3RydWN0IGk5MTVfYWRk cmVzc19zcGFjZSAqdm0sCj4gIAkJCSAgICAgICB1aW50NjRfdCBzdGFydCwgdWludDY0X3QgbGVu Z3RoKQo+ICB7Cj4gQEAgLTExODAsNiArMTE5MCw3IEBAIHN0YXRpYyBpbnQgZ2VuNl9hbGxvY192 YV9yYW5nZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiAgCQkJCUdFTjZfUFRFUyk7 Cj4gIAl9Cj4gIAo+ICsJbWFya190bGJzX2RpcnR5KHBwZ3R0KTsKPiAgCXJldHVybiAwOwo+ICB9 Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCj4gaW5kZXggYzMwYWY2Mi4uMDc0 YjFmYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaAo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCj4gQEAgLTMwMCw2ICsz MDAsNyBAQCBzdHJ1Y3QgaTkxNV9od19wcGd0dCB7Cj4gIAlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3Nw YWNlIGJhc2U7Cj4gIAlzdHJ1Y3Qga3JlZiByZWY7Cj4gIAlzdHJ1Y3QgZHJtX21tX25vZGUgbm9k ZTsKPiArCXVuc2lnbmVkIGxvbmcgcGRfZGlydHlfcmluZ3M7Cj4gIAl1bnNpZ25lZCBudW1fcGRf ZW50cmllczsKPiAgCXVuc2lnbmVkIG51bV9wZF9wYWdlczsgLyogZ2VuOCsgKi8KPiAgCXVuaW9u IHsKPiAtLSAKPiAyLjEuMQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo=