From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 07/50] drm/i915: Introduce context->enter() and context->exit() Date: Fri, 12 Apr 2019 14:00:45 +0100 Message-ID: References: <20190412085410.10392-1-chris@chris-wilson.co.uk> <20190412085410.10392-8-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0C5DE89113 for ; Fri, 12 Apr 2019 13:00:48 +0000 (UTC) In-Reply-To: <20190412085410.10392-8-chris@chris-wilson.co.uk> Content-Language: en-US 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 List-Id: intel-gfx@lists.freedesktop.org Ck9uIDEyLzA0LzIwMTkgMDk6NTMsIENocmlzIFdpbHNvbiB3cm90ZToKPiBXZSB3aXNoIHRvIHN0 YXJ0IHNlZ3JlZ2F0aW5nIHRoZSBwb3dlciBtYW5hZ2VtZW50IGludG8gZGlmZmVyZW50IGNvbnRy b2wKPiBkb21haW5zLCBib3RoIHdpdGggcmVzcGVjdCB0byB0aGUgaGFyZHdhcmUgYW5kIHRoZSB1 c2VyIGludGVyZmFjZS4gVGhlCj4gZmlyc3Qgc3RlcCBpcyB0aGF0IGF0IHRoZSBsb3dlc3QgbGV2 ZWwgZmxvdyBvZiByZXF1ZXN0cywgd2Ugd2FudCB0bwo+IHByb2Nlc3MgYSBjb250ZXh0IGV2ZW50 IChhbmQgbm90IGEgZ2xvYmFsIEdFTSBvcGVyYXRpb24pLiBJbiB0aGlzIHBhdGNoLAo+IHdlIGlu dHJvZHVjZSB0aGUgY29udGV4dCBjYWxsYmFja3MgdGhhdCBpbiBmdXR1cmUgcGF0Y2hlcyB3aWxs IGJlCj4gcmVkaXJlY3RlZCB0byBwZXItZW5naW5lIGludGVyZmFjZXMgbGVhZGluZyB0byBnbG9i YWwgb3BlcmF0aW9ucyBhcwo+IHJlcXVpcmVkLgo+IAo+IFRoZSBpbnRlbnQgaXMgdGhhdCB0aGlz IHdpbGwgYmUgZ3VhcmRlZCBieSB0aGUgdGltZWxpbmUtPm11dGV4LCBleGNlcHQKPiB0aGF0IHJl dGlyaW5nIGhhcyBub3QgcXVpdGUgZmluaXNoZWQgdHJhbnNpdGlvbmluZyBvdmVyIGZyb20gYmVp bmcKPiBndWFyZGVkIGJ5IHN0cnVjdF9tdXRleC4gU28gYXQgdGhlIG1vbWVudCBpdCBpcyBwcm90 ZWN0ZWQgYnkKPiBzdHJ1Y3RfbXV0ZXggd2l0aCBhIHJlbWluZGVkIHRvIHN3aXRjaC4KPiAKPiB2 MjogUmVuYW1lIGRlZmF1bHQgaGFuZGxlcnMgdG8gaW50ZWxfY29udGV4dF9lbnRlcl9lbmdpbmUu Cj4gCj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28u dWs+Cj4gQ2M6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Cj4gLS0t Cj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9jb250ZXh0LmMgICAgICAgfCAxNyAr KysrKysrKysrKysrKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dC5o ICAgICAgIHwgMjEgKysrKysrKysrKysrKysrKysrCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9pbnRlbF9jb250ZXh0X3R5cGVzLmggfCAgNSArKysrKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvaW50ZWxfbHJjLmMgICAgICAgICAgIHwgIDMgKysrCj4gICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC9pbnRlbF9yaW5nYnVmZmVyLmMgICAgfCAgMyArKysKPiAgIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L21vY2tfZW5naW5lLmMgICAgICAgICB8ICAzICsrKwo+ICAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMgICAgICAgICAgIHwgMjIgKysrKy0tLS0tLS0tLS0tLS0t LQo+ICAgNyBmaWxlcyBjaGFuZ2VkLCA1NiBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkK PiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dC5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dC5jCj4gaW5kZXggZWJkMWU1 OTE5YTRhLi40NDEwZTIwZThlMTMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvaW50ZWxfY29udGV4dC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxf Y29udGV4dC5jCj4gQEAgLTI2NiwzICsyNjYsMjAgQEAgaW50IF9faW5pdCBpOTE1X2dsb2JhbF9j b250ZXh0X2luaXQodm9pZCkKPiAgIAlpOTE1X2dsb2JhbF9yZWdpc3RlcigmZ2xvYmFsLmJhc2Up Owo+ICAgCXJldHVybiAwOwo+ICAgfQo+ICsKPiArdm9pZCBpbnRlbF9jb250ZXh0X2VudGVyX2Vu Z2luZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICppOTE1ID0gY2UtPmdlbV9jb250ZXh0LT5pOTE1Owo+ICsKPiArCWlmICghaTkxNS0+ Z3QuYWN0aXZlX3JlcXVlc3RzKyspCj4gKwkJaTkxNV9nZW1fdW5wYXJrKGk5MTUpOwo+ICt9Cj4g Kwo+ICt2b2lkIGludGVsX2NvbnRleHRfZXhpdF9lbmdpbmUoc3RydWN0IGludGVsX2NvbnRleHQg KmNlKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGNlLT5nZW1fY29u dGV4dC0+aTkxNTsKPiArCj4gKwlHRU1fQlVHX09OKCFpOTE1LT5ndC5hY3RpdmVfcmVxdWVzdHMp Owo+ICsJaWYgKCEtLWk5MTUtPmd0LmFjdGl2ZV9yZXF1ZXN0cykKPiArCQlpOTE1X2dlbV9wYXJr KGk5MTUpOwo+ICt9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVs X2NvbnRleHQuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2NvbnRleHQuaAo+IGlu ZGV4IGViYzg2MWIxYTQ5ZS4uYjczMmNmOTllZmNiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L2ludGVsX2NvbnRleHQuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L2ludGVsX2NvbnRleHQuaAo+IEBAIC03Myw2ICs3MywyNyBAQCBzdGF0aWMgaW5saW5lIHZv aWQgX19pbnRlbF9jb250ZXh0X3BpbihzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCj4gICAKPiAg IHZvaWQgaW50ZWxfY29udGV4dF91bnBpbihzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpOwo+ICAg Cj4gK3ZvaWQgaW50ZWxfY29udGV4dF9lbnRlcl9lbmdpbmUoc3RydWN0IGludGVsX2NvbnRleHQg KmNlKTsKPiArdm9pZCBpbnRlbF9jb250ZXh0X2V4aXRfZW5naW5lKHN0cnVjdCBpbnRlbF9jb250 ZXh0ICpjZSk7Cj4gKwo+ICtzdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfY29udGV4dF9lbnRlcihz dHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCj4gK3sKPiArCWlmICghY2UtPmFjdGl2ZV9jb3VudCsr KQo+ICsJCWNlLT5vcHMtPmVudGVyKGNlKTsKPiArfQo+ICsKPiArc3RhdGljIGlubGluZSB2b2lk IGludGVsX2NvbnRleHRfbWFya19hY3RpdmUoc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQo+ICt7 Cj4gKwkrK2NlLT5hY3RpdmVfY291bnQ7Cj4gK30KPiArCj4gK3N0YXRpYyBpbmxpbmUgdm9pZCBp bnRlbF9jb250ZXh0X2V4aXQoc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQo+ICt7Cj4gKwlHRU1f QlVHX09OKCFjZS0+YWN0aXZlX2NvdW50KTsKPiArCWlmICghLS1jZS0+YWN0aXZlX2NvdW50KQo+ ICsJCWNlLT5vcHMtPmV4aXQoY2UpOwo+ICt9Cj4gKwo+ICAgc3RhdGljIGlubGluZSBzdHJ1Y3Qg aW50ZWxfY29udGV4dCAqaW50ZWxfY29udGV4dF9nZXQoc3RydWN0IGludGVsX2NvbnRleHQgKmNl KQo+ICAgewo+ICAgCWtyZWZfZ2V0KCZjZS0+cmVmKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dF90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvaW50ZWxfY29udGV4dF90eXBlcy5oCj4gaW5kZXggOWVjNGY3ODdjOTA4Li5mMDJkMjc3 MzRlM2IgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4 dF90eXBlcy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dF90 eXBlcy5oCj4gQEAgLTI1LDYgKzI1LDkgQEAgc3RydWN0IGludGVsX2NvbnRleHRfb3BzIHsKPiAg IAlpbnQgKCpwaW4pKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSk7Cj4gICAJdm9pZCAoKnVucGlu KShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpOwo+ICAgCj4gKwl2b2lkICgqZW50ZXIpKHN0cnVj dCBpbnRlbF9jb250ZXh0ICpjZSk7Cj4gKwl2b2lkICgqZXhpdCkoc3RydWN0IGludGVsX2NvbnRl eHQgKmNlKTsKPiArCj4gICAJdm9pZCAoKnJlc2V0KShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2Up Owo+ICAgCXZvaWQgKCpkZXN0cm95KShzdHJ1Y3Qga3JlZiAqa3JlZik7Cj4gICB9Owo+IEBAIC00 Niw2ICs0OSw4IEBAIHN0cnVjdCBpbnRlbF9jb250ZXh0IHsKPiAgIAl1MzIgKmxyY19yZWdfc3Rh dGU7Cj4gICAJdTY0IGxyY19kZXNjOwo+ICAgCj4gKwl1bnNpZ25lZCBpbnQgYWN0aXZlX2NvdW50 OyAvKiBub3Rpb25hbGx5IHByb3RlY3RlZCBieSB0aW1lbGluZS0+bXV0ZXggKi8KPiArCj4gICAJ YXRvbWljX3QgcGluX2NvdW50Owo+ICAgCXN0cnVjdCBtdXRleCBwaW5fbXV0ZXg7IC8qIGd1YXJk cyBwaW5uaW5nIGFuZCBhc3NvY2lhdGVkIG9uLWdwdWluZyAqLwo+ICAgCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvaW50ZWxfbHJjLmMKPiBpbmRleCBlYTk0Zjg3NjRlNDUuLjVlYjlhOGFmMmNhMSAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9scmMuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2xyYy5jCj4gQEAgLTEzMTUsNiArMTMxNSw5IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfY29udGV4dF9vcHMgZXhlY2xpc3RzX2NvbnRleHRf b3BzID0gewo+ICAgCS5waW4gPSBleGVjbGlzdHNfY29udGV4dF9waW4sCj4gICAJLnVucGluID0g ZXhlY2xpc3RzX2NvbnRleHRfdW5waW4sCj4gICAKPiArCS5lbnRlciA9IGludGVsX2NvbnRleHRf ZW50ZXJfZW5naW5lLAo+ICsJLmV4aXQgPSBpbnRlbF9jb250ZXh0X2V4aXRfZW5naW5lLAo+ICsK PiAgIAkucmVzZXQgPSBleGVjbGlzdHNfY29udGV4dF9yZXNldCwKPiAgIAkuZGVzdHJveSA9IGV4 ZWNsaXN0c19jb250ZXh0X2Rlc3Ryb3ksCj4gICB9Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC9pbnRlbF9yaW5nYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9pbnRlbF9yaW5nYnVmZmVyLmMKPiBpbmRleCBiY2M4NDJiOGJiZTcuLjdhMTk5YzZiYjI3MiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yaW5nYnVmZmVyLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yaW5nYnVmZmVyLmMKPiBAQCAt MTUxNiw2ICsxNTE2LDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9jb250ZXh0X29wcyBy aW5nX2NvbnRleHRfb3BzID0gewo+ICAgCS5waW4gPSByaW5nX2NvbnRleHRfcGluLAo+ICAgCS51 bnBpbiA9IHJpbmdfY29udGV4dF91bnBpbiwKPiAgIAo+ICsJLmVudGVyID0gaW50ZWxfY29udGV4 dF9lbnRlcl9lbmdpbmUsCj4gKwkuZXhpdCA9IGludGVsX2NvbnRleHRfZXhpdF9lbmdpbmUsCj4g Kwo+ICAgCS5yZXNldCA9IHJpbmdfY29udGV4dF9yZXNldCwKPiAgIAkuZGVzdHJveSA9IHJpbmdf Y29udGV4dF9kZXN0cm95LAo+ICAgfTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvbW9ja19lbmdpbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L21vY2tfZW5naW5l LmMKPiBpbmRleCA0MTRhZmQyZjI3ZmUuLmJjZmViMGM2Nzk5NyAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC9tb2NrX2VuZ2luZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvbW9ja19lbmdpbmUuYwo+IEBAIC0xNTcsNiArMTU3LDkgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBpbnRlbF9jb250ZXh0X29wcyBtb2NrX2NvbnRleHRfb3BzID0gewo+ICAgCS5waW4g PSBtb2NrX2NvbnRleHRfcGluLAo+ICAgCS51bnBpbiA9IG1vY2tfY29udGV4dF91bnBpbiwKPiAg IAo+ICsJLmVudGVyID0gaW50ZWxfY29udGV4dF9lbnRlcl9lbmdpbmUsCj4gKwkuZXhpdCA9IGlu dGVsX2NvbnRleHRfZXhpdF9lbmdpbmUsCj4gKwo+ICAgCS5kZXN0cm95ID0gbW9ja19jb250ZXh0 X2Rlc3Ryb3ksCj4gICB9Owo+ICAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcmVxdWVzdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMKPiBp bmRleCAyZDViOGNiNmY4YjguLmQ5MWFmZTQyOTE3MiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVxdWVzdC5jCj4gQEAgLTEzMSwxOSArMTMxLDYgQEAgaTkxNV9yZXF1ZXN0X3JlbW92ZV9m cm9tX2NsaWVudChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0KQo+ICAgCXNwaW5fdW5sb2Nr KCZmaWxlX3ByaXYtPm1tLmxvY2spOwo+ICAgfQo+ICAgCj4gLXN0YXRpYyB2b2lkIHJlc2VydmVf Z3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4gLXsKPiAtCWlmICghaTkxNS0+Z3Qu YWN0aXZlX3JlcXVlc3RzKyspCj4gLQkJaTkxNV9nZW1fdW5wYXJrKGk5MTUpOwo+IC19Cj4gLQo+ IC1zdGF0aWMgdm9pZCB1bnJlc2VydmVfZ3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUp Cj4gLXsKPiAtCUdFTV9CVUdfT04oIWk5MTUtPmd0LmFjdGl2ZV9yZXF1ZXN0cyk7Cj4gLQlpZiAo IS0taTkxNS0+Z3QuYWN0aXZlX3JlcXVlc3RzKQo+IC0JCWk5MTVfZ2VtX3BhcmsoaTkxNSk7Cj4g LX0KPiAtCj4gICBzdGF0aWMgdm9pZCBhZHZhbmNlX3Jpbmcoc3RydWN0IGk5MTVfcmVxdWVzdCAq cmVxdWVzdCkKPiAgIHsKPiAgIAlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHJlcXVlc3QtPnJp bmc7Cj4gQEAgLTMwMSwxMSArMjg4LDEwIEBAIHN0YXRpYyB2b2lkIGk5MTVfcmVxdWVzdF9yZXRp cmUoc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCkKPiAgIAo+ICAgCWk5MTVfcmVxdWVzdF9y ZW1vdmVfZnJvbV9jbGllbnQocmVxdWVzdCk7Cj4gICAKPiAtCWludGVsX2NvbnRleHRfdW5waW4o cmVxdWVzdC0+aHdfY29udGV4dCk7Cj4gLQo+ICAgCV9fcmV0aXJlX2VuZ2luZV91cHRvKHJlcXVl c3QtPmVuZ2luZSwgcmVxdWVzdCk7Cj4gICAKPiAtCXVucmVzZXJ2ZV9ndChyZXF1ZXN0LT5pOTE1 KTsKPiArCWludGVsX2NvbnRleHRfZXhpdChyZXF1ZXN0LT5od19jb250ZXh0KTsKPiArCWludGVs X2NvbnRleHRfdW5waW4ocmVxdWVzdC0+aHdfY29udGV4dCk7Cj4gICAKPiAgIAlpOTE1X3NjaGVk X25vZGVfZmluaSgmcmVxdWVzdC0+c2NoZWQpOwo+ICAgCWk5MTVfcmVxdWVzdF9wdXQocmVxdWVz dCk7Cj4gQEAgLTY1OSw4ICs2NDUsOCBAQCBpOTE1X3JlcXVlc3RfYWxsb2Moc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lLCBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4KQo+ICAgCWlm IChJU19FUlIoY2UpKQo+ICAgCQlyZXR1cm4gRVJSX0NBU1QoY2UpOwo+ICAgCj4gLQlyZXNlcnZl X2d0KGk5MTUpOwo+ICAgCW11dGV4X2xvY2soJmNlLT5yaW5nLT50aW1lbGluZS0+bXV0ZXgpOwo+ ICsJaW50ZWxfY29udGV4dF9lbnRlcihjZSk7Cj4gICAKPiAgIAkvKiBNb3ZlIG91ciBvbGRlc3Qg cmVxdWVzdCB0byB0aGUgc2xhYi1jYWNoZSAoaWYgbm90IGluIHVzZSEpICovCj4gICAJcnEgPSBs aXN0X2ZpcnN0X2VudHJ5KCZjZS0+cmluZy0+cmVxdWVzdF9saXN0LCB0eXBlb2YoKnJxKSwgcmlu Z19saW5rKTsKPiBAQCAtNzkxLDggKzc3Nyw4IEBAIGk5MTVfcmVxdWVzdF9hbGxvYyhzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgpCj4g ICBlcnJfZnJlZToKPiAgIAlrbWVtX2NhY2hlX2ZyZWUoZ2xvYmFsLnNsYWJfcmVxdWVzdHMsIHJx KTsKPiAgIGVycl91bnJlc2VydmU6Cj4gKwlpbnRlbF9jb250ZXh0X2V4aXQoY2UpOwo+ICAgCW11 dGV4X3VubG9jaygmY2UtPnJpbmctPnRpbWVsaW5lLT5tdXRleCk7Cj4gLQl1bnJlc2VydmVfZ3Qo aTkxNSk7Cj4gICAJaW50ZWxfY29udGV4dF91bnBpbihjZSk7Cj4gICAJcmV0dXJuIEVSUl9QVFIo cmV0KTsKPiAgIH0KPiAKClJldmlld2VkLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3Vs aW5AaW50ZWwuY29tPgoKUmVnYXJkcywKClR2cnRrbwpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZng=