From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH v4] drm/i915: Move execlists irq handler to a bottom half Date: Mon, 4 Apr 2016 13:51:25 +0100 Message-ID: <5702634D.6060507@linux.intel.com> References: <20160325125607.GB27742@nuc-i3427.alporthouse.com> <1459768316-6670-1-git-send-email-tvrtko.ursulin@linux.intel.com> <20160404112759.GC26271@nuc-i3427.alporthouse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTP id 9449D6E5C9 for ; Mon, 4 Apr 2016 12:51:30 +0000 (UTC) In-Reply-To: <20160404112759.GC26271@nuc-i3427.alporthouse.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , Intel-gfx@lists.freedesktop.org, Tvrtko Ursulin , Imre Deak List-Id: intel-gfx@lists.freedesktop.org Ck9uIDA0LzA0LzE2IDEyOjI3LCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4gT24gTW9uLCBBcHIgMDQs IDIwMTYgYXQgMTI6MTE6NTZQTSArMDEwMCwgVHZydGtvIFVyc3VsaW4gd3JvdGU6Cj4+IEZyb206 IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Cj4+Cj4+IERvaW5nIGEg bG90IG9mIHdvcmsgaW4gdGhlIGludGVycnVwdCBoYW5kbGVyIGludHJvZHVjZXMgaHVnZQo+PiBs YXRlbmNpZXMgdG8gdGhlIHN5c3RlbSBhcyBhIHdob2xlLgo+Pgo+PiBNb3N0IGRyYW1hdGljIGVm ZmVjdCBjYW4gYmUgc2VlbiBieSBydW5uaW5nIGFuIGFsbCBlbmdpbmUKPj4gc3RyZXNzIHRlc3Qg bGlrZSBpZ3QvZ2VtX2V4ZWNfbm9wL2FsbCB3aGVyZSwgd2hlbiB0aGUga2VybmVsCj4+IGNvbmZp ZyBpcyBsZWFuIGVub3VnaCwgdGhlIHdob2xlIHN5c3RlbSBjYW4gYmUgYnJvdWdodCBpbnRvCj4+ IG11bHRpLXNlY29uZCBwZXJpb2RzIG9mIGNvbXBsZXRlIG5vbi1pbnRlcmFjdGl2dHkuIFRoYXQg Y2FuCj4+IGxvb2sgZm9yIGV4YW1wbGUgbGlrZSB0aGlzOgo+Pgo+PiAgIE5NSSB3YXRjaGRvZzog QlVHOiBzb2Z0IGxvY2t1cCAtIENQVSMwIHN0dWNrIGZvciAyM3MhIFtrd29ya2VyL3U4OjM6MTQz XQo+PiAgIE1vZHVsZXMgbGlua2VkIGluOiBbcmVkYWN0ZWQgZm9yIGJyZXZpdHldCj4+ICAgQ1BV OiAwIFBJRDogMTQzIENvbW06IGt3b3JrZXIvdTg6MyBUYWludGVkOiBHICAgICBVICAgICAgIEwg IDQuNS4wLTE2MDMyMSsgIzE4Mwo+PiAgIEhhcmR3YXJlIG5hbWU6IEludGVsIENvcnBvcmF0aW9u IEJyb2Fkd2VsbCBDbGllbnQgcGxhdGZvcm0vV2hpdGVUaXAgTW91bnRhaW4gMQo+PiAgIFdvcmtx dWV1ZTogaTkxNSBnZW42X3BtX3Jwc193b3JrIFtpOTE1XQo+PiAgIHRhc2s6IGZmZmY4ODAwYWFl ODgwMDAgdGk6IGZmZmY4ODAwYWFlOTAwMDAgdGFzay50aTogZmZmZjg4MDBhYWU5MDAwMAo+PiAg IFJJUDogMDAxMDpbPGZmZmZmZmZmODEwNGEzYzI+XSAgWzxmZmZmZmZmZjgxMDRhM2MyPl0gX19k b19zb2Z0aXJxKzB4NzIvMHgxZDAKPj4gICBSU1A6IDAwMDA6ZmZmZjg4MDE0ZjQwM2YzOCAgRUZM QUdTOiAwMDAwMDIwNgo+PiAgIFJBWDogZmZmZjg4MDBhYWU5NDAwMCBSQlg6IDAwMDAwMDAwMDAw MDAwMDAgUkNYOiAwMDAwMDAwMDAwMDAwNmUwCj4+ICAgUkRYOiAwMDAwMDAwMDAwMDAwMDIwIFJT STogMDAwMDAwMDAwNDIwODA2MCBSREk6IDAwMDAwMDAwMDAyMTVkODAKPj4gICBSQlA6IGZmZmY4 ODAxNGY0MDNmODAgUjA4OiAwMDAwMDAwYjFiNDJjMTgwIFIwOTogMDAwMDAwMDAwMDAwMDAyMgo+ PiAgIFIxMDogMDAwMDAwMDAwMDAwMDAwNCBSMTE6IDAwMDAwMDAwZmZmZmZmZmYgUjEyOiAwMDAw MDAwMDAwMDBhMDMwCj4+ICAgUjEzOiAwMDAwMDAwMDAwMDAwMDgyIFIxNDogZmZmZjg4MDBhYTRk MDA4MCBSMTU6IDAwMDAwMDAwMDAwMDAwODIKPj4gICBGUzogIDAwMDAwMDAwMDAwMDAwMDAoMDAw MCkgR1M6ZmZmZjg4MDE0ZjQwMDAwMCgwMDAwKSBrbmxHUzowMDAwMDAwMDAwMDAwMDAwCj4+ICAg Q1M6ICAwMDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4MDA1MDAzMwo+PiAgIENS MjogMDAwMDdmYTUzYjkwYzAwMCBDUjM6IDAwMDAwMDAwMDFhMGEwMDAgQ1I0OiAwMDAwMDAwMDAw MTQwNmYwCj4+ICAgRFIwOiAwMDAwMDAwMDAwMDAwMDAwIERSMTogMDAwMDAwMDAwMDAwMDAwMCBE UjI6IDAwMDAwMDAwMDAwMDAwMDAKPj4gICBEUjM6IDAwMDAwMDAwMDAwMDAwMDAgRFI2OiAwMDAw MDAwMGZmZmUwZmYwIERSNzogMDAwMDAwMDAwMDAwMDQwMAo+PiAgIFN0YWNrOgo+PiAgICAwNDIw ODA2MDFiMzM4NjlmIGZmZmY4ODAwYWFlOTQwMDAgMDAwMDAwMDBmZmZjMjY3OCBmZmZmODgwMTAw MDAwMDBhCj4+ICAgIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwYTAzMCAwMDAwMDAwMDAw MDA1MzAyIGZmZmY4ODAwYWE0ZDAwODAKPj4gICAgMDAwMDAwMDAwMDAwMDIwNiBmZmZmODgwMTRm NDAzZjkwIGZmZmZmZmZmODEwNGE3MTYgZmZmZjg4MDE0ZjQwM2ZhOAo+PiAgIENhbGwgVHJhY2U6 Cj4+ICAgIDxJUlE+Cj4+ICAgIFs8ZmZmZmZmZmY4MTA0YTcxNj5dIGlycV9leGl0KzB4ODYvMHg5 MAo+PiAgICBbPGZmZmZmZmZmODEwMzFlN2Q+XSBzbXBfYXBpY190aW1lcl9pbnRlcnJ1cHQrMHgz ZC8weDUwCj4+ICAgIFs8ZmZmZmZmZmY4MTRmM2VhYz5dIGFwaWNfdGltZXJfaW50ZXJydXB0KzB4 N2MvMHg5MAo+PiAgICA8RU9JPgo+PiAgICBbPGZmZmZmZmZmYTAxYzViNDA+XSA/IGdlbjhfd3Jp dGU2NCsweDFhMC8weDFhMCBbaTkxNV0KPj4gICAgWzxmZmZmZmZmZjgxNGYyYjM5Pl0gPyBfcmF3 X3NwaW5fdW5sb2NrX2lycXJlc3RvcmUrMHg5LzB4MjAKPj4gICAgWzxmZmZmZmZmZmEwMWM1YzQ0 Pl0gZ2VuOF93cml0ZTMyKzB4MTA0LzB4MWEwIFtpOTE1XQo+PiAgICBbPGZmZmZmZmZmODEzMmM2 YTI+XSA/IG5fdHR5X3JlY2VpdmVfYnVmX2NvbW1vbisweDM3Mi8weGFlMAo+PiAgICBbPGZmZmZm ZmZmYTAxN2NjOWU+XSBnZW42X3NldF9ycHNfdGhyZXNob2xkcysweDFiZS8weDMzMCBbaTkxNV0K Pj4gICAgWzxmZmZmZmZmZmEwMTdlYWYwPl0gZ2VuNl9zZXRfcnBzKzB4NzAvMHgyMDAgW2k5MTVd Cj4+ICAgIFs8ZmZmZmZmZmZhMDE4NTM3NT5dIGludGVsX3NldF9ycHMrMHgyNS8weDMwIFtpOTE1 XQo+PiAgICBbPGZmZmZmZmZmYTAxNzY4ZmQ+XSBnZW42X3BtX3Jwc193b3JrKzB4MTBkLzB4MmUw IFtpOTE1XQo+PiAgICBbPGZmZmZmZmZmODEwNjM4NTI+XSA/IGZpbmlzaF90YXNrX3N3aXRjaCsw eDcyLzB4MWMwCj4+ICAgIFs8ZmZmZmZmZmY4MTA1YWIyOT5dIHByb2Nlc3Nfb25lX3dvcmsrMHgx MzkvMHgzNTAKPj4gICAgWzxmZmZmZmZmZjgxMDViMTg2Pl0gd29ya2VyX3RocmVhZCsweDEyNi8w eDQ5MAo+PiAgICBbPGZmZmZmZmZmODEwNWIwNjA+XSA/IHJlc2N1ZXJfdGhyZWFkKzB4MzIwLzB4 MzIwCj4+ICAgIFs8ZmZmZmZmZmY4MTA1ZmE2ND5dIGt0aHJlYWQrMHhjNC8weGUwCj4+ICAgIFs8 ZmZmZmZmZmY4MTA1ZjlhMD5dID8ga3RocmVhZF9jcmVhdGVfb25fbm9kZSsweDE3MC8weDE3MAo+ PiAgICBbPGZmZmZmZmZmODE0ZjM1MWY+XSByZXRfZnJvbV9mb3JrKzB4M2YvMHg3MAo+PiAgICBb PGZmZmZmZmZmODEwNWY5YTA+XSA/IGt0aHJlYWRfY3JlYXRlX29uX25vZGUrMHgxNzAvMHgxNzAK Pj4KPj4gSSBjb3VsZCBub3QgZXhwbGFpbiwgb3IgZmluZCBhIGNvZGUgcGF0aCwgd2hpY2ggd291 bGQgZXhwbGFpbgo+PiBhICsyMCBzZWNvbmQgbG9ja3VwLCBidXQgZnJvbSBzb21lIGluc3RydW1l bnRhdGlvbiBpdCB3YXMKPj4gYXBwYXJlbnQgdGhlIGludGVycnVwdHMgb2ZmIHByb3BvcnRpb24g b2YgdGltZSB3YXMgYmV0d2Vlbgo+PiAxMC0yNSUgdW5kZXIgaGVhdnkgbG9hZCB3aGljaCBpcyBx dWl0ZSBiYWQuCj4+Cj4+IFdoZW4gYSBpbnRlcnJ1cHQgImNsaWZmIiBpcyByZWFjaGVkLCB3aGlj aCB3YXMgPn4zMjBrIGlycS9zIG9uCj4+IG15IG1hY2hpbmUsIHRoZSB3aG9sZSBzeXN0ZW0gZ29l cyBpbnRvIGEgdGVycmlibGUgc3RhdGUgb2YgdGhlCj4+IGFib3ZlIGRlc2NyaWJlZCBtdWx0aS1z ZWNvbmQgbG9ja3Vwcy4KPj4KPj4gQnkgbW92aW5nIHRoZSBHVCBpbnRlcnJ1cHQgaGFuZGxpbmcg dG8gYSB0YXNrbGV0IGluIGEgbW9zdAo+PiBzaW1wbGUgd2F5LCB0aGUgcHJvYmxlbSBhYm92ZSBk aXNhcHBlYXJzIGNvbXBsZXRlbHkuCj4+Cj4+IFRlc3RpbmcgdGhlIGVmZmVjdCBvbiBzeXRlbS13 aWRlIGxhdGVuY2llcyB1c2luZwo+PiBpZ3QvZ2VtX3N5c2xhdGVuY3kgc2hvd3MgdGhlIGZvbGxv d2luZyBiZWZvcmUgdGhpcyBwYXRjaDoKPj4KPj4gZ2VtX3N5c2xhdGVuY3k6IGN5Y2xlcz0xNTMy NzM5LCBsYXRlbmN5IG1lYW49NDE2NTMxLjgyOXVzIG1heD0yNDk5MjM3dXMKPj4gZ2VtX3N5c2xh dGVuY3k6IGN5Y2xlcz0xODM5NDM0LCBsYXRlbmN5IG1lYW49MTQ1ODA5OS4xNTd1cyBtYXg9NDk5 ODk0NHVzCj4+IGdlbV9zeXNsYXRlbmN5OiBjeWNsZXM9MTQzMjU3MCwgbGF0ZW5jeSBtZWFuPTI2 ODguNDUxdXMgbWF4PTEyMDExODV1cwo+PiBnZW1fc3lzbGF0ZW5jeTogY3ljbGVzPTE1MzM1NDMs IGxhdGVuY3kgbWVhbj00MTY1MjAuNDk5dXMgbWF4PTI0OTg4ODZ1cwo+Pgo+PiBUaGlzIHNob3dz IHRoYXQgdGhlIHVucmVsYXRlZCBwcm9jZXNzIGlzIGV4cGVyaWVuY2luZyBodWdlCj4+IGRlbGF5 cyBpbiBpdHMgd2FrZS11cCBsYXRlbmN5LiBBZnRlciB0aGUgcGF0Y2ggdGhlIHJlc3VsdHMKPj4g bG9vayBsaWtlIHRoaXM6Cj4+Cj4+IGdlbV9zeXNsYXRlbmN5OiBjeWNsZXM9ODA4OTA3LCBsYXRl bmN5IG1lYW49NTMuMTMzdXMgbWF4PTE2NDB1cwo+PiBnZW1fc3lzbGF0ZW5jeTogY3ljbGVzPTg2 MjE1NCwgbGF0ZW5jeSBtZWFuPTYyLjc3OHVzIG1heD0yMTE3dXMKPj4gZ2VtX3N5c2xhdGVuY3k6 IGN5Y2xlcz04NTYwMzksIGxhdGVuY3kgbWVhbj01OC4wNzl1cyBtYXg9MjEyM3VzCj4+IGdlbV9z eXNsYXRlbmN5OiBjeWNsZXM9ODQxNjgzLCBsYXRlbmN5IG1lYW49NTYuOTE0dXMgbWF4PTE2Njd1 cwo+Pgo+PiBTaG93aW5nIGEgaHVnZSBpbXByb3ZlbWVudCBpbiB0aGUgdW5yZWxhdGVkIHByb2Nl c3Mgd2FrZS11cAo+PiBsYXRlbmN5LiBJdCBhbHNvIHNob3dzIGFuIGFwcHJveGltYXRlIGhhbHZp bmcgaW4gdGhlIG51bWJlcgo+PiBvZiB0b3RhbCBlbXB0eSBiYXRjaGVzIHN1Ym1pdHRlZCBkdXJp bmcgdGhlIHRlc3QuIFRoaXMgbWF5Cj4+IG5vdCBiZSB3b3JyeWluZyBzaW5jZSB0aGUgdGVzdCBw dXRzIHRoZSBkcml2ZXIgdW5kZXIKPj4gYSB2ZXJ5IHVucmVhbGlzdGljIGxvYWQgd2l0aCBuY3B1 IHRocmVhZHMgZG9pbmcgZW1wdHkgYmF0Y2gKPj4gc3VibWlzc2lvbiB0byBhbGwgR1BVIGVuZ2lu ZXMgZWFjaC4KPj4KPj4gQW5vdGhlciBiZW5lZml0IGNvbXBhcmVkIHRvIHRoZSBoYXJkLWlycSBo YW5kbGluZyBpcyB0aGF0IG5vdwo+PiB3b3JrIG9uIGFsbCBlbmdpbmVzIGNhbiBiZSBkaXNwYXRj aGVkIGluIHBhcmFsbGVsIHNpbmNlIHdlIGNhbgo+PiBoYXZlIHVwIHRvIG51bWJlciBvZiBDUFVz IGFjdGl2ZSB0YXNrbGV0cy4gKFdoaWxlIHByZXZpb3VzbHkKPj4gYSBzaW5nbGUgaGFyZC1pcnEg d291bGQgc2VyaWFsbHkgZGlzcGF0Y2ggb24gb25lIGVuZ2luZSBhZnRlcgo+PiBhbm90aGVyLikK Pj4KPj4gTW9yZSBpbnRlcmVzdGluZyBzY2VuYXJpbyB3aXRoIHJlZ2FyZHMgdG8gdGhyb3VnaHB1 dCBpcwo+PiAiZ2VtX2xhdGVuY3kgLW4gMTAwIiB3aGljaCAgc2hvd3MgMjUlIGJldHRlciB0aHJv dWdocHV0IGFuZAo+PiBDUFUgdXNhZ2UsIGFuZCAxNCUgYmV0dGVyIGRpc3BhdGNoIGxhdGVuY2ll cy4KPj4KPj4gSSBkaWQgbm90IGZpbmQgYW55IGdhaW5zIG9yIHJlZ3Jlc3Npb25zIHdpdGggU3lu bWFyazIgb3IKPj4gR0xiZW5jaCB1bmRlciBsaWdodCB0ZXN0aW5nLiBNb3JlIGJlbmNobWFya2lu ZyBpcyBjZXJ0YWlubHkKPj4gcmVxdWlyZWQuCj4+Cj4+IHYyOgo+PiAgICAgKiBleGVjbGlzdHNf bG9jayBzaG91bGQgYmUgdGFrZW4gYXMgc3Bpbl9sb2NrX2JoIHdoZW4KPj4gICAgICAgcXVldWlu ZyB3b3JrIGZyb20gdXNlcnNwYWNlIG5vdy4gKENocmlzIFdpbHNvbikKPj4gICAgICogdW5jb3Jl LmxvY2sgbXVzdCBiZSB0YWtlbiB3aXRoIHNwaW5fbG9ja19pcnEgd2hlbgo+PiAgICAgICBzdWJt aXR0aW5nIHJlcXVlc3RzIHNpbmNlIHRoYXQgbm93IHJ1bnMgZnJvbSBlaXRoZXIKPj4gICAgICAg c29mdGlycSBvciBwcm9jZXNzIGNvbnRleHQuCj4+Cj4+IHYzOgo+PiAgICAgKiBFeHBhbmRlZCBj b21taXQgbWVzc2FnZSB3aXRoIG1vcmUgdGVzdGluZyBkYXRhOwo+PiAgICAgKiBjb252ZXJ0ZWQg bWlzc2VkIGxvY2tpbmcgc2l0ZXMgdG8gX2JoOwo+PiAgICAgKiBhZGRlZCBleGVjbGlzdF9sb2Nr IGNvbW1lbnQuIChDaHJpcyBXaWxzb24pCj4+Cj4+IHY0Ogo+PiAgICAgKiBNZW50aW9uIGRpc3Bh dGNoIHBhcmFsbGVsaXNtIGluIGNvbW1pdC4gKENocmlzIFdpbHNvbikKPj4gICAgICogRG8gbm90 IGhvbGQgdW5jb3JlLmxvY2sgb3ZlciBNTUlPIHJlYWRzIHNpbmNlIHRoZSBibG9jawo+PiAgICAg ICBpcyBhbHJlYWR5IHNlcmlhbGlzZWQgcGVyLWVuZ2luZSB2aWEgdGhlIHRhc2tsZXQgaXRzZWxm Lgo+PiAgICAgICAoQ2hyaXMgV2lsc29uKQo+PiAgICAgKiBpbnRlbF9scmNfaXJxX2hhbmRsZXIg c2hvdWxkIGJlIHN0YXRpYy4gKENocmlzIFdpbHNvbikKPj4gICAgICogQ2FuY2VsL3N5bmMgdGhl IHRhc2tsZXQgb24gR1BVIHJlc2V0LiAoQ2hyaXMgV2lsc29uKQo+PiAgICAgKiBEb2N1bWVudCBh bmQgV0FSTiB0aGF0IHRhc2tsZXQgY2Fubm90IGJlIGFjdGl2ZS9wZW5kaW5nCj4+ICAgICAgIG9u IGVuZ2luZSBjbGVhbnVwLiAoQ2hyaXMgV2lsc29uL0ltcmUgRGVhaykKPj4KPj4gU2lnbmVkLW9m Zi1ieTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KPj4gQ2M6IENo cmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+PiBDYzogSW1yZSBEZWFrIDxp bXJlLmRlYWtAaW50ZWwuY29tPgo+PiBUZXN0Y2FzZTogaWd0L2dlbV9leGVjX25vcC9hbGwKPj4g QnVnemlsbGE6IGh0dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTk0 MzUwCj4+IFJldmlld2VkLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51 az4KPgo+IERpZG4ndCBzcG90IGFueXRoaW5nIGVsc2UgaW4gdGVzdGluZyBvdmVyIHRoZSBsYXN0 IHdlZWsuIFRoZXJlIGFyZSBhCj4gbnVtYmVyIG9mIGZvbGxvdyB1cCBpbXByb3ZlbWVudHMgd2Ug Y2FuIG1ha2UgdG8gaW50ZWxfbHJjX2lycV9oYW5kbGVyKCkKPiB0byBoYWx2ZSBpdHMgZXhlY3V0 aW9uIHRpbWUgKG1pbm9yIGltcHJvdmVtZW50IHRvIGV4ZWNsaXN0IHRocm91Z2hwdXQsCj4gbWFq b3IgaW1wcm92ZW1lbnQgdG8gc3lzbGF0ZW5jeSkgd2hpY2ggZm9jdXMgb24gc3RyZWFtbGluaW5n IHRoZQo+IHJlZ2lzdGVyIHJlYWRzIGFuZCBjb250ZXh0LXVucXVldWVpbmcgKGJ1dCB0aGUgcGF0 Y2hlcyBJIGhhdmUgZGVwZW5kIG9uCj4gZXNvdGVyaWMgZmVhdHVyZXMgbGlrZSBzdHJ1Y3RfbXV0 ZXgtbGVzcyByZXF1ZXN0cykuCgpXb3VsZCB0aGF0IGJlIHRoZSBqdXN0ICJkcm0vaTkxNTogTW92 ZSByZWxlYXNpbmcgb2YgdGhlIEdFTSByZXF1ZXN0IGZyb20gCmZyZWUgdG8gcmV0aXJlL2NhbmNl bCIgb3IgbW9yZT8gVGhlIGZvcm1lciBjb3VsZCBiZSBwdWxsZWQgb3V0IGZyb20geW91ciAKcGls ZSBlYXNpbHkgZXZlbiBpZiBpdCBkb2Vzbid0IHNvbHZlIGFueXRoaW5nIG1ham9yIG9uIGl0cyBv d24gaXQgaXMgYSAKbmljZSBjbGVhbnVwLgoKUmVnYXJkcywKClR2cnRrbwpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK