From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH v10b 4/6] drm/i915: Interrupt driven fences Date: Tue, 21 Jun 2016 17:27:05 +0100 Message-ID: <57696AD9.9080001@linux.intel.com> References: <1466081680-2344-5-git-send-email-John.C.Harrison@Intel.com> <1466161520-36366-1-git-send-email-John.C.Harrison@Intel.com> <57691AA5.1040103@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id D7E576E767 for ; Tue, 21 Jun 2016 16:27:07 +0000 (UTC) In-Reply-To: <57691AA5.1040103@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: John.C.Harrison@Intel.com, Intel-GFX@Lists.FreeDesktop.Org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDIxLzA2LzE2IDExOjQ0LCBUdnJ0a28gVXJzdWxpbiB3cm90ZToKPgo+IE9uIDE3LzA2LzE2 IDEyOjA1LCBKb2huLkMuSGFycmlzb25ASW50ZWwuY29tIHdyb3RlOgo+PiBGcm9tOiBKb2huIEhh cnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgo+Pgo+PiBUaGUgaW50ZW5kZWQgdXNh Z2UgbW9kZWwgZm9yIHN0cnVjdCBmZW5jZSBpcyB0aGF0IHRoZSBzaWduYWxsZWQgc3RhdHVzCj4+ IHNob3VsZCBiZSBzZXQgb24gZGVtYW5kIHJhdGhlciB0aGFuIHBvbGxlZC4gVGhhdCBpcywgdGhl cmUgc2hvdWxkIG5vdAo+PiBiZSBhIG5lZWQgZm9yIGEgJ3NpZ25hbGVkJyBmdW5jdGlvbiB0byBi ZSBjYWxsZWQgZXZlcnl0aW1lIHRoZSBzdGF0dXMKPj4gaXMgcXVlcmllZC4gSW5zdGVhZCwgJ3Nv bWV0aGluZycgc2hvdWxkIGJlIGRvbmUgdG8gZW5hYmxlIGEgc2lnbmFsCj4+IGNhbGxiYWNrIGZy b20gdGhlIGhhcmR3YXJlIHdoaWNoIHdpbGwgdXBkYXRlIHRoZSBzdGF0ZSBkaXJlY3RseS4gSW4K Pj4gdGhlIGNhc2Ugb2YgcmVxdWVzdHMsIHRoaXMgaXMgdGhlIHNlcW5vIHVwZGF0ZSBpbnRlcnJ1 cHQuIFRoZSBpZGVhIGlzCj4+IHRoYXQgdGhpcyBjYWxsYmFjayB3aWxsIG9ubHkgYmUgZW5hYmxl ZCBvbiBkZW1hbmQgd2hlbiBzb21ldGhpbmcKPj4gYWN0dWFsbHkgdHJpZXMgdG8gd2FpdCBvbiB0 aGUgZmVuY2UuCj4+Cj4+IFRoaXMgY2hhbmdlIHJlbW92ZXMgdGhlIHBvbGxpbmcgdGVzdCBhbmQg cmVwbGFjZXMgaXQgd2l0aCB0aGUgY2FsbGJhY2sKPj4gc2NoZW1lLiBFYWNoIGZlbmNlIGlzIGFk ZGVkIHRvIGEgJ3BsZWFzZSBwb2tlIG1lJyBsaXN0IGF0IHRoZSBzdGFydCBvZgo+PiBpOTE1X2Fk ZF9yZXF1ZXN0KCkuIFRoZSBpbnRlcnJ1cHQgaGFuZGxlciAodmlhIGEgZGVmZXJyZWQgd29yayBx dWV1ZSkKPj4gdGhlbiBzY2FucyB0aHJvdWdoIHRoZSAncG9rZSBtZScgbGlzdCB3aGVuIGEgbmV3 IHNlcW5vIHBvcHMgb3V0IGFuZAo+PiBzaWduYWxzIGFueSBtYXRjaGluZyBmZW5jZS9yZXF1ZXN0 LiBUaGUgZmVuY2UgaXMgdGhlbiByZW1vdmVkIGZyb20gdGhlCj4+IGxpc3Qgc28gdGhlIGVudGly ZSByZXF1ZXN0IHN0YWNrIGRvZXMgbm90IG5lZWQgdG8gYmUgc2Nhbm5lZCBldmVyeQo+PiB0aW1l LiBUaGUgZmVuY2UgaXMgYWRkZWQgdG8gdGhlIGxpc3QgYmVmb3JlIHRoZSBjb21tYW5kcyB0byBn ZW5lcmF0ZQo+PiB0aGUgc2Vxbm8gaW50ZXJydXB0IGFyZSBhZGRlZCB0byB0aGUgcmluZy4gVGh1 cyB0aGUgc2VxdWVuY2UgaXMKPj4gZ3VhcmFudGVlZCB0byBiZSByYWNlIGZyZWUgaWYgdGhlIGlu dGVycnVwdCBpcyBhbHJlYWR5IGVuYWJsZWQuCj4+Cj4+IE5vdGUgdGhhdCB0aGUgaW50ZXJydXB0 IGlzIG9ubHkgZW5hYmxlZCBvbiBkZW1hbmQgKGkuZS4gd2hlbgo+PiBfX3dhaXRfcmVxdWVzdCgp IGlzIGNhbGxlZCkuIFRodXMgdGhlcmUgaXMgc3RpbGwgYSBwb3RlbnRpYWwgcmFjZSB3aGVuCj4+ IGVuYWJsaW5nIHRoZSBpbnRlcnJ1cHQgYXMgdGhlIHJlcXVlc3QgbWF5IGFscmVhZHkgaGF2ZSBj b21wbGV0ZWQuCj4+IEhvd2V2ZXIsIHRoaXMgaXMgc2ltcGx5IHNvbHZlZCBieSBjYWxsaW5nIHRo ZSBpbnRlcnJ1cHQgcHJvY2Vzc2luZwo+PiBjb2RlIGltbWVkaWF0ZWx5IGFmdGVyIGVuYWJsaW5n IHRoZSBpbnRlcnJ1cHQgYW5kIHRoZXJlYnkgY2hlY2tpbmcgZm9yCj4+IGFscmVhZHkgY29tcGxl dGVkIHJlcXVlc3RzLgo+Pgo+PiBMYXN0bHksIHRoZSByaW5nIGNsZWFuIHVwIGNvZGUgaGFzIHRo ZSBwb3NzaWJpbGl0eSB0byBjYW5jZWwKPj4gb3V0c3RhbmRpbmcgcmVxdWVzdHMgKGUuZy4gYmVj YXVzZSBURFIgaGFzIHJlc2V0IHRoZSByaW5nKS4gVGhlc2UKPj4gcmVxdWVzdHMgd2lsbCBuZXZl ciBnZXQgc2lnbmFsbGVkIGFuZCBzbyBtdXN0IGJlIHJlbW92ZWQgZnJvbSB0aGUKPj4gc2lnbmFs IGxpc3QgbWFudWFsbHkuIFRoaXMgaXMgZG9uZSBieSBzZXR0aW5nIGEgJ2NhbmNlbGxlZCcgZmxh ZyBhbmQKPj4gdGhlbiBjYWxsaW5nIHRoZSByZWd1bGFyIG5vdGlmeS9yZXRpcmUgY29kZSBwYXRo IHJhdGhlciB0aGFuCj4+IGF0dGVtcHRpbmcgdG8gZHVwbGljYXRlIHRoZSBsaXN0IG1hbmlwdWxh dGF0aW9uIGFuZCBjbGVhbiB1cCBjb2RlIGluCj4+IG11bHRpcGxlIHBsYWNlcy4gVGhpcyBhbHNv IGF2b2lkcyBhbnkgcmFjZSBjb25kaXRpb24gd2hlcmUgdGhlCj4+IGNhbmNlbGxhdGlvbiByZXF1 ZXN0IG1pZ2h0IG9jY3VyIGFmdGVyL2R1cmluZyB0aGUgY29tcGxldGlvbiBpbnRlcnJ1cHQKPj4g YWN0dWFsbHkgYXJyaXZpbmcuCj4+Cj4+IHYyOiBVcGRhdGVkIHRvIHRha2UgYWR2YW50YWdlIG9m IHRoZSByZXF1ZXN0IHVucmVmZXJlbmNlIG5vIGxvbmdlcgo+PiByZXF1aXJpbmcgdGhlIG11dGV4 IGxvY2suCj4+Cj4+IHYzOiBNb3ZlIHRoZSBzaWduYWwgbGlzdCBwcm9jZXNzaW5nIGFyb3VuZCB0 byBwcmV2ZW50IHVuc3VibWl0dGVkCj4+IHJlcXVlc3RzIGJlaW5nIGFkZGVkIHRvIHRoZSBsaXN0 LiBUaGlzIHdhcyBvY2N1cnJpbmcgb24gQW5kcm9pZAo+PiBiZWNhdXNlIHRoZSBuYXRpdmUgc3lu YyBpbXBsZW1lbnRhdGlvbiBjYWxscyB0aGUKPj4gZmVuY2UtPmVuYWJsZV9zaWduYWxsaW5nIEFQ SSBpbW1lZGlhdGVseSBvbiBmZW5jZSBjcmVhdGlvbi4KPj4KPj4gVXBkYXRlZCBhZnRlciByZXZp ZXcgY29tbWVudHMgYnkgVHZydGtvIFVyc3VsaW4uIFJlbmFtZWQgbGlzdCBub2RlcyB0bwo+PiAn bGluaycgaW5zdGVhZCBvZiAnbGlzdCcuIEFkZGVkIHN1cHBvcnQgZm9yIHJldHVybmluZyBhbiBl cnJvciBjb2RlIG9uCj4+IGEgY2FuY2VsbGVkIGZlbmNlLiBVcGRhdGUgbGlzdCBwcm9jZXNzaW5n IHRvIGJlIG1vcmUgZWZmaWNpZW50L3NhZmVyCj4+IHdpdGggcmVzcGVjdCB0byBzcGlubG9ja3Mu Cj4+Cj4+IHY1OiBNYWRlIGk5MTVfZ2VtX3JlcXVlc3Rfc3VibWl0IGEgc3RhdGljIGFzIGl0IGlz IG9ubHkgZXZlciBjYWxsZWQKPj4gZnJvbSBvbmUgcGxhY2UuCj4+Cj4+IEZpeGVkIHVwIHRoZSBs b3cgbGF0ZW5jeSB3YWl0IG9wdGltaXNhdGlvbi4gVGhlIHRpbWUgZGVsYXkgYmV0d2VlbiB0aGUK Pj4gc2Vxbm8gdmFsdWUgYmVpbmcgdG8gbWVtb3J5IGFuZCB0aGUgZHJpdmUncyBJU1IgcnVubmlu ZyBjYW4gYmUKPj4gc2lnbmlmaWNhbnQsIGF0IGxlYXN0IGZvciB0aGUgd2FpdCByZXF1ZXN0IG1p Y3JvLWJlbmNobWFyay4gVGhpcyBjYW4KPj4gYmUgZ3JlYXRseSBpbXByb3ZlZCBieSBleHBsaWNp dGx5IGNoZWNraW5nIGZvciBzZXFubyB1cGRhdGVzIGluIHRoZQo+PiBwcmUtd2FpdCBidXN5IHBv bGwgbG9vcC4gQWxzbyBhZGRlZCBzb21lIGRvY3VtZW50YXRpb24gY29tbWVudHMgdG8gdGhlCj4+ IGJ1c3kgcG9sbCBjb2RlLgo+Pgo+PiBGaXhlZCB1cCBzdXBwb3J0IGZvciB0aGUgZmFraW5nIG9m IGxvc3QgaW50ZXJydXB0cwo+PiAodGVzdF9pcnFfcmluZ3MvbWlzc2VkX2lycV9yaW5ncykuIFRo YXQgaXMsIHRoZXJlIGlzIGFuIElHVCB0ZXN0IHRoYXQKPj4gdGVsbHMgdGhlIGRyaXZlciB0byBs b29zZSBpbnRlcnJ1cHRzIGRlbGliZXJhdGVseSBhbmQgdGhlbiBjaGVjayB0aGF0Cj4+IGV2ZXJ5 dGhpbmcgc3RpbGwgd29ya3MgYXMgZXhwZWN0ZWQgKGFsYmVpdCBtdWNoIHNsb3dlcikuCj4+Cj4+ IFVwZGF0ZXMgZnJvbSByZXZpZXcgY29tbWVudHM6IHVzZSBub24gSVJRLXNhdmUgc3BpbmxvY2tp bmcsIGVhcmx5IGV4aXQKPj4gb24gV0FSTiBhbmQgaW1wcm92ZWQgY29tbWVudHMgKFR2cnRrbyBV cnN1bGluKS4KPj4KPj4gdjY6IFVwZGF0ZWQgdG8gbmV3ZXIgbmlndGhseSBhbmQgcmVzb2x2ZWQg Y29uZmxpY3RzIGFyb3VuZCB0aGUKPj4gd2FpdF9yZXF1ZXN0IGJ1c3kgc3BpbiBvcHRpbWlzYXRp b24uIEFsc28gZml4ZWQgYSByYWNlIGNvbmRpdGlvbgo+PiBiZXR3ZWVuIHRoaXMgZWFybHkgZXhp dCBwYXRoIGFuZCB0aGUgcmVndWxhciBjb21wbGV0aW9uIHBhdGguCj4+Cj4+IHY3OiBVcGRhdGVk IHRvIG5ld2VyIG5pZ2h0bHkgLSBsb3RzIG9mIHJpbmcgLT4gZW5naW5lIHJlbmFtaW5nIHBsdXMg YW4KPj4gaW50ZXJmYWNlIGNoYW5nZSBvbiBnZXRfc2Vxbm8oKS4gQWxzbyBhZGRlZCBhIGxpc3Rf ZW1wdHkoKSBjaGVjawo+PiBiZWZvcmUgYWNxdXJpbmcgc3BpbmxvY2tzIGFuZCBkb2luZyBsaXN0 IHByb2Nlc3NpbmcuCj4+Cj4+IHY4OiBVcGRhdGVkIHRvIG5ld2VyIG5pZ2h0bHkgLSBjaGFuZ2Vz IHRvIHJlcXVlc3QgY2xlYW4gdXAgY29kZSBtZWFuCj4+IG5vbiBvZiB0aGUgZGVmZXJyZWQgZnJl ZSBtZXNzIGlzIG5lZWRlZCBhbnkgbW9yZS4KPj4KPj4gdjk6IE1vdmVkIHRoZSByZXF1ZXN0IGNv bXBsZXRpb24gcHJvY2Vzc2luZyBvdXQgb2YgdGhlIGludGVycnVwdAo+PiBoYW5kbGVyIGFuZCBp bnRvIGEgd29ya2VyIHRocmVhZCAoQ2hyaXMgV2lsc29uKS4KPj4KPj4gdjEwOiBDaGFuZ2VkIHRv IGFuIHVuLW9yZGVyZWQgd29yayBxdWV1ZSB0byBhbGxvdyBwYXJhbGxlbCBwcm9jZXNzaW5nCj4+ IG9mIGRpZmZlcmVudCBlbmdpbmVzLiBBbHNvIHNldCB0aGUgaGlnaCBwcmlvcml0eSBmbGFnIGZv ciByZWR1Y2VkCj4+IGxhdGVuY3kuIFJlbW92ZWQgc29tZSB1bm5lY2Vzc2FyeSBjaGVja3MgZm9y IGludmFsaWQgc2Vxbm8gdmFsdWVzLgo+PiBJbXByb3ZlZC9hZGRlZCBzb21lIGNvbW1lbnRzIGFu ZCBXQVJOcy4gTW92ZWQgYSBzcGlubG9jayByZWxlYXNlIGEgZmV3Cj4+IGxpbmVzIGxhdGVyIHRv IG1ha2UgdGhlICdsb2NrZWQnIHBhcmFtZXRlciBvZgo+PiBpOTE1X2dlbV9yZXF1ZXN0X2VuYWJs ZV9pbnRlcnJ1cHQgcmVkdW5kYW50IGFuZCByZW1vdmVkIGl0LiBBbHNvCj4+IHNodWZmbGVkIHRo ZSBmdW5jdGlvbiBhcm91bmQgaW4gdGhlIGZpbGUgc28gYXMgdG8gbWFrZSBpdCBzdGF0aWMgYW5k Cj4+IHJlbW92ZSBpdCBmcm9tIHRoZSBoZWFkZXIgZmlsZS4gQ29ycmVjdGVkIHRoZSB1c2Ugb2YK Pj4gZmVuY2Vfc2lnbmFsX2xvY2tlZCgpIHRvIGZlbmNlX3NpZ25hbCgpIGluIHRoZSByZXRpcmUg Y29kZS4gRHJvcHBlZAo+PiB0aGUgaXJxIHNhdmUgcGFydCBvZiB0aGUgc3BpbiBsb2NrIGNhbGxz IGluIHRoZSBub3RpZnkgY29kZSBhcyB0aGlzIGlzCj4+IG5vIGxvbmdlciBjYWxsZWQgZnJvbSB0 aGUgSVNSLiBDaGFuZ2VkIHRoZSBjYWxsIG9mCj4+IGk5MTVfZ2VtX3JldGlyZV9yZXF1ZXN0c19y aW5nKCkgaW4gdGhlIHJlc2V0IGNsZWFudXAgY29kZSB0bwo+PiBpOTE1X2dlbV9yZXF1ZXN0X25v dGlmeSgpIGluc3RlYWQgYXMgdGhlIGZvcm1lciBpcyBqdXN0IGR1cGxpY2F0aW5nIGEKPj4gbG90 IG9mIG9wZXJhdGlvbnMuCj4+IFtSZXZpZXcgY29tbWVudHMgZnJvbSBNYWFydGVuIExhbmtob3Jz dCAmIFR2cnRrbyBVcnN1bGluXQo+Pgo+PiBNYWRlIHRoZSBjYWxsIHRvIF9ub3RpZnkoKSBmcm9t IF9yZXRpcmVfcmVxdWVzdHNfcmluZygpIGNvbmRpdGlvbmFsIG9uCj4+IGludGVycnVwdHMgbm90 IGJlaW5nIGVuYWJsZWQgYXMgaXQgaXMgb25seSBhIHJhY2UgY29uZGl0aW9uIHdvcmsKPj4gYXJv dW5kIGZvciB0aGF0IGNhc2UuIEFsc28gcmUtaW5zdGF0ZWQgdGhlIGxhenlfY29oZXJlbmN5IGZs YWcgKGJ1dAo+PiBub3cgb24gdGhlIF9ub3RpZnkoKSBmdW5jdGlvbikgdG8gcmVkdWNlIHRoZSBv dmVyaGVhZCBvZgo+PiBfcmV0aXJlX3JlcXVlc3RzX3JpbmcoKSBjYWxsaW5nIF9ub3RpZnkoKSBs b3RzIGFuZCBsb3RzIChldmVuIHdpdGggdGhlCj4+IGFudGktaW50ZXJydXB0IGNoZWNrKS4KPj4K Pj4gVXBkYXRlZCBmb3IgeWV0IG1vcmUgbmlnaHRseSBjaGFuZ2VzICh1NjQgZm9yIGZlbmNlIGNv bnRleHQpLgo+Pgo+PiB2MTBiOiBSZS1vcmRlcmVkIHRoZSBmZW5jZSBzaWduYWwgYW5kIElSUSBy ZWxlYXNlIGluIF9ub3RpZnkoKSB0byBmaXgKPj4gYSByYWNlCj4+IGNvbmRpdGlvbiB3aGVuIGRp c2FibGluZyBpbnRlcnJ1cHRzLiBBbHNvLCBtb3ZlZCB0aGUgd2FrZV91cF9hbGwoKQo+PiBjYWxs IGZyb20gdGhlIElSUSBoYW5kbGVyIHRvIHRoZSB3b3JrZXIgdGhyZWFkIHRvIHByZXZlbnQgdGhl IHdha2UgdXAKPj4gb2Ygd2FpdGluZyB0aHJlYWRzIGZyb20gb3ZlcnRha2luZyB0aGUgc2lnbmFs bGluZyBvZiB0aGUgcmVxdWVzdC4KPgo+IEkgd2FzIGNvbmNlcm5lZCBieSB0aGUgc2Vjb25kIHBh cnQgb2YgdGhpcyBjaGFuZ2Ugd2hpY2ggd2lsbCBpbmNyZWFzZQo+IHRoZSB3YWtlLXVwIGxhdGVu Y3kgZm9yIHRoZSB3YWl0ZXJzIGFuZCBoYXMgYXNrZWQgSm9obiBkbyBkbyBzb21lIHF1aWNrCj4g bG93LWxldmVsIChnZW1fbGF0ZW5jeSkgdGVzdGluZy4KPgo+IFByZWxpbWluYXJ5IHJlc3VsdHMg d2VyZSBhIGJpdCBzdHJhbmdlIHdpdGggc21hbGwgYmF0Y2hlcyBleHBlcmllbmNpbmcKPiB0aGUg ZXhwZWN0ZWQgc2xvd2Rvd24gYnV0IGxhcmdlIG9uZSBiZWluZyBzaWduaWZpY2FudGx5IGZhc3Rl ci4KPgo+IFNpbmNlIGhlIGlzIG91dCB0aGlzIHdlZWsgSSB3aWxsIHRyeSBhbmQgcnVuIHNvbWUg bW9yZSBiZW5jaG1hcmtzIG9uIHRoaXMuCj4KPiBUbyByZS1pdGVyYXRlLCBjb25jZXJuIGlzIG1v dmluZyB0aGUgd2FrZV91cF9hbGwoJmVuZ2luZS0+aXJxX3F1ZXVlKQo+IGZyb20gbm90aWZ5X3Jp bmcgKGhhcmQgaXJxKSB0byB0aGUgZmVuY2Ugbm90aWZ5IHdvcmtlci4gVGhpcyBhZGRzIG9uZQo+ IGFkZGl0aW9uYWwgc2NoZWR1bGluZyB3YWtldXAgbGF0ZW5jeSB0byB0aGUgd2FpdGVycyB3aGlj aCB1c2UgdGhlIGk5MTUgQVBJLgoKT2theSwgYmVuY2htYXJraW5nIGlzIGRvbmUgYW5kIGdvb2Qg bmV3cyBmaXJzdC4KClN5bk1hcmsyIGFuZCBHZnhCZW5jaCBzaG93IHByb2JhYmx5IG9ubHkgbm9p c2Ugb24gYWxtb3N0IGFsbCB0ZXN0cy4gV2hhdCAKcmVncmVzc2VzIGlzIE9nbEJhdGNoWzU2N10g YmV0d2VlbiAyLTUlLCBPZ2xNdWx0aXRocmVhZCBieSAxMCUsIApPZ2xEcnZTdGF0ZSBieSAyJSBh bmQgT2dsRHJ2Q3R4IGJ5IDMwJS4KCkFzIGZhciBhcyBJIHJlbWVtYmVyIHRob3NlIGFyZSBub3Qg aW1wb3J0YW50IGluIGdlbmVyYWwgc28gdGhhdCBpcyBnb29kLgoKQnV0IGFzIGV4cGVjdGVkIGxv dy1sZXZlbCB0ZXN0aW5nIHdpdGggZ2VtX2xhdGVuY3ksIHdpdGggdGhyZWUgc2V0cyBvZiAKYmF0 Y2hlcywgemVybyBsZW5ndGgsIDEwMCBOT1BzIGFuZCAxMDAwIE5PUHMgc2hvdyBvbiBhdmVyYWdl IDUtNiUgbGVzcyAKdGhyb3VnaHB1dCBhbmQgYXJvdW5kIDE4JSB3b3JzZSB3YWtldXAgbGF0ZW5j eS4KClJlZ2FyZHMsCgpUdnJ0a28KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==