From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [PATCH 1/2] drm/i915: Enable scanline read for gen9 dsi Date: Tue, 19 Sep 2017 09:25:40 +0200 Message-ID: References: <1505391181-9477-2-git-send-email-vidya.srinivas@intel.com> <1505741541-30907-1-git-send-email-vidya.srinivas@intel.com> <20170918142451.GA4914@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 157336E511 for ; Tue, 19 Sep 2017 07:25:43 +0000 (UTC) In-Reply-To: <20170918142451.GA4914@intel.com> 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: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: intel-gfx@lists.freedesktop.org, Vidya Srinivas List-Id: intel-gfx@lists.freedesktop.org T3AgMTgtMDktMTcgb20gMTY6MjQgc2NocmVlZiBWaWxsZSBTeXJqw6Rsw6Q6Cj4gT24gTW9uLCBT ZXAgMTgsIDIwMTcgYXQgMDM6NTc6MzhQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9yc3Qgd3JvdGU6 Cj4+IE9wIDE4LTA5LTE3IG9tIDE1OjMyIHNjaHJlZWYgVmlkeWEgU3Jpbml2YXM6Cj4+PiBGcm9t OiBVbWEgU2hhbmthciA8dW1hLnNoYW5rYXJAaW50ZWwuY29tPgo+Pj4KPj4+IEZvciBnZW45IHBs YXRmb3JtcywgZHNpIHRpbWluZ3MgYXJlIGRyaXZlbiBmcm9tIHBvcnQgaW5zdGVhZCBvZiBwaXBl Cj4+PiAodW5saWtlIGRkaSkuIFRodXMsIHdlIGNhbid0IHJlbHkgb24gcGlwZSByZWdpc3RlcnMg dG8gZ2V0IHRoZSB0aW1pbmcKPj4+IGluZm9ybWF0aW9uLiBFdmVuIHNjYW5saW5lIHJlZ2lzdGVy IHJlYWQgd2lsbCBub3QgYmUgZnVuY3Rpb25hbC4KPj4+IFRoaXMgaXMgY2F1c2luZyB2Ymxhbmsg ZXZhc2lvbiBsb2dpYyB0byBmYWlsIHNpbmNlIGl0IHJlbGllcyBvbgo+Pj4gc2NhbmxpbmUsIGNh dXNpbmcgYXRvbWljIHVwZGF0ZSBmYWlsdXJlIHdhcm5pbmdzLgo+Pj4KPj4+IFRoaXMgcGF0Y2gg dXNlcyBwaXBlIGZyYW1lc3RhbXAgYW5kIGN1cnJlbnQgdGltZXN0YW1wIHJlZ2lzdGVycwo+Pj4g dG8gY2FsY3VsYXRlIHNjYW5saW5lLiBUaGlzIGlzIGFuIGluZGlyZWN0IHdheSB0byBnZXQgdGhl IHNjYW5saW5lLgo+Pj4gSXQgaGVscHMgcmVzb2x2ZSBhdG9taWMgdXBkYXRlIGZhaWx1cmUgZm9y IGdlbjkgZHNpIHBsYXRmb3Jtcy4KPj4+Cj4+PiB2MjogQWRkcmVzc2VkIFZpbGxlIGFuZCBEYW5p ZWwncyByZXZpZXcgY29tbWVudHMuIFVwZGF0ZWQgdGhlCj4+PiByZWdpc3RlciBNQUNST3MsIGhh bmRsZWQgcmFjZSBjb25kaXRpb24gZm9yIHJlZ2lzdGVyIHJlYWRzLAo+Pj4gZXh0cmFjdGVkIHRp bWluZ3MgZnJvbSB0aGUgaHdtb2RlLiBSZW1vdmVkIHRoZSBkZXBlbmRlbmN5IG9uCj4+PiBjcnRj LT5jb25maWcgdG8gZ2V0IHRoZSBlbmNvZGVyIHR5cGUuCj4+Pgo+Pj4gdjM6IE1hZGUgZ2V0IHNj YW5saW5lIGZ1bmN0aW9uIGdlbmVyaWMKPj4+Cj4+PiBDcmVkaXRzLXRvOiBWaWxsZSBTeXJqw6Rs w6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+Pj4gU2lnbmVkLW9mZi1ieTogVW1h IFNoYW5rYXIgPHVtYS5zaGFua2FyQGludGVsLmNvbT4KPj4+IFNpZ25lZC1vZmYtYnk6IENoYW5k cmEgS29uZHVydSA8Y2hhbmRyYS5rb25kdXJ1QGludGVsLmNvbT4KPj4+IFNpZ25lZC1vZmYtYnk6 IFZpZHlhIFNyaW5pdmFzIDx2aWR5YS5zcmluaXZhc0BpbnRlbC5jb20+Cj4+PiAtLS0KPj4+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgfCAgMiArKwo+Pj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgICAgICB8ICA3ICsrKysrCj4+PiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAgIHwgMTEgKysrKysrKwo+Pj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDYwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKwo+Pj4gIDQgZmlsZXMgY2hhbmdlZCwgODAgaW5zZXJ0aW9ucygrKQo+Pj4KPj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaAo+Pj4gaW5kZXggMWNjMzFhNS4uZDllZmU4MyAxMDA2NDQKPj4+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4+IEBAIC00MDg1LDYgKzQwODUsOCBAQCB2b2lkIGlu dGVsX3NiaV93cml0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUxNiByZWcs IHUzMiB2YWx1ZSwKPj4+ICB1MzIgdmx2X2ZsaXNkc2lfcmVhZChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsIHUzMiByZWcpOwo+Pj4gIHZvaWQgdmx2X2ZsaXNkc2lfd3JpdGUoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgcmVnLCB1MzIgdmFsKTsKPj4+ICAK Pj4+ICt1MzIgZ2VuOV9nZXRfc2NhbmxpbmUoc3RydWN0IGludGVsX2NydGMgKmNydGMpOwo+Pj4g Kwo+Pj4gIC8qIGludGVsX2RwaW9fcGh5LmMgKi8KPj4+ICB2b2lkIGJ4dF9wb3J0X3RvX3BoeV9j aGFubmVsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQs Cj4+PiAgCQkJICAgICBlbnVtIGRwaW9fcGh5ICpwaHksIGVudW0gZHBpb19jaGFubmVsICpjaCk7 Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPj4+IGluZGV4IDVkMzkxZTYuLjQ3NjY4ZGQgMTAw NjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4+PiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4+PiBAQCAtNzgxLDYgKzc4MSw3IEBAIHN0 YXRpYyBpbnQgX19pbnRlbF9nZXRfY3J0Y19zY2FubGluZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YykKPj4+ICAJc3RydWN0IGRybV92YmxhbmtfY3J0YyAqdmJsYW5rOwo+Pj4gIAllbnVtIHBpcGUg cGlwZSA9IGNydGMtPnBpcGU7Cj4+PiAgCWludCBwb3NpdGlvbiwgdnRvdGFsOwo+Pj4gKwlzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcjsKPj4+ICAKPj4+ICAJaWYgKCFjcnRjLT5hY3RpdmUp Cj4+PiAgCQlyZXR1cm4gLTE7Cj4+PiBAQCAtNzkyLDYgKzc5MywxMiBAQCBzdGF0aWMgaW50IF9f aW50ZWxfZ2V0X2NydGNfc2NhbmxpbmUoc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4+PiAgCWlm IChtb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfSU5URVJMQUNFKQo+Pj4gIAkJdnRvdGFsIC89 IDI7Cj4+PiAgCj4+PiArCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSB8fCBJU19HRU1JTklMQUtF KGRldl9wcml2KSkgewo+Pj4gKwkJZm9yX2VhY2hfZW5jb2Rlcl9vbl9jcnRjKGNydGMtPmJhc2Uu ZGV2LCAmY3J0Yy0+YmFzZSwgZW5jb2RlcikKPj4+ICsJCQlpZiAoZW5jb2Rlci0+dHlwZSA9PSBJ TlRFTF9PVVRQVVRfRFNJKQo+Pj4gKwkJCQlyZXR1cm4gZ2VuOV9nZXRfc2NhbmxpbmUoY3J0Yyk7 Cj4+IEkgcmVhbGx5IHRoaW5rIHdlIHNob3VsZG4ndCBsb29wIG92ZXIgYWxsIGVuY29kZXJzIGZv ciBzb21ldGhpbmcgYXMgY3JpdGljYWwgYXMgX19pbnRlbF9nZXRfY3J0Y19zY2FubGluZS4uCj4+ PiArCX0KPj4+ICsKPj4+ICAJaWYgKElTX0dFTjIoZGV2X3ByaXYpKQo+Pj4gIAkJcG9zaXRpb24g PSBJOTE1X1JFQURfRlcoUElQRURTTChwaXBlKSkgJiBEU0xfTElORU1BU0tfR0VOMjsKPj4+ICAJ ZWxzZQo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4+PiBpbmRleCAwYjAzMjYwLi44NTE2OGVl IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+Pj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+Pj4gQEAgLTg4MDIsNiArODgwMiwx NyBAQCBlbnVtIHNrbF9wb3dlcl9nYXRlIHsKPj4+ICAjZGVmaW5lIE1JUElPX1RYRVNDX0NMS19E SVYyCQkJX01NSU8oMHgxNjAwMDgpCj4+PiAgI2RlZmluZSAgR0xLX1RYX0VTQ19DTEtfRElWMl9N QVNLCQkJMHgzRkYKPj4+ICAKPj4+ICsvKiBHZW40KyBUaW1lc3RhbXAgYW5kIFBpcGUgRnJhbWUg dGltZSBzdGFtcCByZWdpc3RlcnMgKi8KPj4+ICsjZGVmaW5lIEdFTjRfVElNRVNUQU1QX0NUUglf TU1JTyhNQ0hCQVJfTUlSUk9SX0JBU0UgKyAweDIzNTgpCj4+PiArI2RlZmluZSBHRU43X1RJTUVT VEFNUF9DVFIJX01NSU8oMHg0NDA3MCkKPj4+ICsKPj4+ICsjZGVmaW5lIF9QSVBFX0ZSTVRNU1RN UF9BCQkweDcwMDQ4Cj4+PiArI2RlZmluZSBfUElQRV9GUk1UTVNUTVBfQgkJMHg3MTA0OAo+Pj4g KyNkZWZpbmUgX0lWQl9QSVBFX0ZSTVRNU1RNUF9DCTB4NzIwNDgKPj4+ICsjZGVmaW5lIFBJUEVf RlJNVE1TVE1QKHBpcGUpCQlcCj4+PiArCQkJX01NSU9fUElQRTMoKHBpcGUpLCBfUElQRV9GUk1U TVNUTVBfQSwgXAo+Pj4gKwkJCQlfUElQRV9GUk1UTVNUTVBfQiwgX0lWQl9QSVBFX0ZSTVRNU1RN UF9DKQo+Pj4gKwo+Pj4gIC8qIEJYVCBNSVBJIGNsb2NrIGNvbnRyb2xzICovCj4+PiAgI2RlZmlu ZSBCWFRfTUFYX1ZBUl9PVVRQVVRfS0haCQkJMzk1MDAKPj4+ICAKPj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMKPj4+IGluZGV4IDA4NzE4MDcuLjYwMTAzMmYgMTAwNjQ0Cj4+PiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+Pj4gQEAgLTEwMzUyLDYgKzEwMzUyLDY2 IEBAIHN0YXRpYyBib29sIG5lZWRzX3NjYWxpbmcoY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0 YXRlICpzdGF0ZSkKPj4+ICAJcmV0dXJuIChzcmNfdyAhPSBkc3RfdyB8fCBzcmNfaCAhPSBkc3Rf aCk7Cj4+PiAgfQo+Pj4gIAo+Pj4gKy8qCj4+PiArICogRm9yIEdlbjkgRFNJLCBwaXBlIHNjYW5s aW5lIHJlZ2lzdGVyIHdpbGwgbm90Cj4+PiArICogd29yayB0byBnZXQgdGhlIHNjYW5saW5lIHNp bmNlIHRoZSB0aW1pbmdzCj4+PiArICogYXJlIGRyaXZlbiBmcm9tIHRoZSBQT1JUICh1bmxpa2Ug RERJIGVuY29kZXJzKS4KPj4+ICsgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgdXNlIEZyYW1lc3RhbXAg YW5kIGN1cnJlbnQKPj4+ICsgKiB0aW1lc3RhbXAgcmVnaXN0ZXJzIHRvIGNhbGN1bGF0ZSB0aGUg c2NhbmxpbmUuCj4+PiArICovCj4+PiArdTMyIGdlbjlfZ2V0X3NjYW5saW5lKHN0cnVjdCBpbnRl bF9jcnRjICpjcnRjKQo+Pj4gK3sKPj4+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMt PmJhc2UuZGV2Owo+Pj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGRldik7Cj4+PiArCXUzMiBjcnRjX3ZibGFua19zdGFydCA9IGNydGMtPmJhc2UubW9kZS5j cnRjX3ZibGFua19zdGFydDsKPj4+ICsJdTMyIGNydGNfdnRvdGFsID0gY3J0Yy0+YmFzZS5tb2Rl LmNydGNfdnRvdGFsOwo+Pj4gKwl1MzIgY3J0Y19odG90YWwgPSBjcnRjLT5iYXNlLm1vZGUuY3J0 Y19odG90YWw7Cj4+PiArCXUzMiBjcnRjX2Nsb2NrID0gY3J0Yy0+YmFzZS5tb2RlLmNydGNfY2xv Y2s7Cj4+PiArCXU2NCBzY2FubGluZSA9IDAsIHNjYW5fcHJldl90aW1lLCBzY2FuX2N1cnJfdGlt ZSwgc2Nhbl9wb3N0X3RpbWU7Cj4+IEFyZW4ndCBhbGwgdGhvc2UgMCBzaW5jZSB0aGV5J3JlIG9u bHkgc2V0IGZvciBjcnRjX3N0YXRlLT5hZGp1c3RlZF9tb2RlLCB3aGlsZSBjcnRjLT5tb2RlIGlz IGFzc2lnbmVkIHRvIGNydGNfc3RhdGUtPm1vZGU/IFlvdSdkIHByb2JhYmx5IG5lZWQgdG8gbG9v ayBhdCBkZXYtPnZibGFua1tjcnRjLT5waXBlXS5od21vZGUgZm9yIHRob3NlLCB3aGljaCBzaG91 bGQgaGF2ZSBiZWVuIHBhc3NlZCBhcyBwYXJhbWV0ZXIuLgo+PiBXaXRoIGEgYml0IG9mIGx1Y2sg eW91IGNvdWxkIGV2ZW4gdXNlIHRoZSBkZXJpdmVkIG5zIHZhbHVlcyBzZXQgaW4gZHJtX2NhbGNf dGltZXN0YW1waW5nX2NvbnN0YW50cywgc28geW91IGRvbid0IGhhdmUgdG8gZG8gdGhlIG1hdGgg aGVyZSB5b3Vyc2VsZi4KPiBJSVJDIHRoZSBkZXJpdmVkIHZhbHVlcyBlbmRlZCB1cCBoYXZpbmcg cXVpdGUgYSBiaXQgb2Ygcm91bmRpbmcgZXJyb3IKPiBpbiB0aGVtLiBPciBtYXliZSB0aGF0IGp1 c3QgdGhlIHBpeGVsIGR1cmF0aW9uICh3aGljaCBJSVJDIEkgbnVrZWQKPiBhbHJlYWR5KS4gSSB3 b3VsZCBoYXZlIG51a2VkIHRoZSBsaW5lIGR1cmF0aW9uIHRvbyBpZiBpdCB3YXNuJ3QgZm9yCj4g bm91dmVhdSB1c2luZyBpdC4gU28gSSB0aGluayBJJ2QgcmF0aGVyIG5vdCBleHBhbmQgaXRzIHVz ZS4KPgo+IE5vdCBzdXJlIHdlJ2QgYWN0dWFsbHkgc2F2ZSBhbnl0aGluZyBieSB1c2luZyB0aGUg ZGVyaXZlZCB2YWx1ZSBhbnl3YXkuCj4gV2UnbGwgc3RpbGwgaGF2ZSB0byBkbyB0aGUgZXhwZW5z aXZlIGRpdmlzaW9uIGF0IGxlYXN0LiBIbW0uIEkgZ3Vlc3Mgd2UKPiBjb3VsZCBnZXQgcmlkIG9m IG9uZSBtdWx0aXBsaWNhdGlvbi4KPgo+Pj4gKwlXQVJOX09OKCFjcnRjX3Z0b3RhbCk7Cj4+PiAr CWlmICghY3J0Y192dG90YWwpCj4+PiArCQlyZXR1cm4gc2NhbmxpbmU7Cj4+PiArCj4+PiArCS8q IFRvIGF2b2lkIHRoZSByYWNlIGNvbmRpdGlvbiB3aGVyZSB3ZSBtaWdodCBjcm9zcyBpbnRvIHRo ZQo+Pj4gKwkgKiBuZXh0IHZibGFuayBqdXN0IGJldHdlZW4gdGhlIFBJUEVfRlJNVE1TVE1QIGFu ZCBUSU1FU1RBTVBfQ1RSCj4+PiArCSAqIHJlYWRzLiBXZSBtYWtlIHN1cmUgd2UgcmVhZCBQSVBF X0ZSTVRNU1RNUCBhbmQgVElNRVNUQU1QX0NUUgo+Pj4gKwkgKiBkdXJpbmcgdGhlIHNhbWUgZnJh bWUuCj4+PiArCSAqLwo+Pj4gKwlkbyB7Cj4+PiArCQkvKgo+Pj4gKwkJICogVGhpcyBmaWVsZCBw cm92aWRlcyByZWFkIGJhY2sgb2YgdGhlIGRpc3BsYXkKPj4+ICsJCSAqIHBpcGUgZnJhbWUgdGlt ZSBzdGFtcC4gVGhlIHRpbWUgc3RhbXAgdmFsdWUKPj4+ICsJCSAqIGlzIHNhbXBsZWQgYXQgZXZl cnkgc3RhcnQgb2YgdmVydGljYWwgYmxhbmsuCj4+PiArCQkgKi8KPj4+ICsJCXNjYW5fcHJldl90 aW1lID0gSTkxNV9SRUFEX0ZXKFBJUEVfRlJNVE1TVE1QKGNydGMtPnBpcGUpKTsKPj4+ICsKPj4+ ICsJCS8qCj4+PiArCQkgKiBUaGUgVElNRVNUQU1QX0NUUiByZWdpc3RlciBoYXMgdGhlIGN1cnJl bnQKPj4+ICsJCSAqIHRpbWUgc3RhbXAgdmFsdWUuCj4+PiArCQkgKi8KPj4+ICsJCXNjYW5fY3Vy cl90aW1lID0gSTkxNV9SRUFEX0ZXKEdFTjdfVElNRVNUQU1QX0NUUik7Cj4+PiArCj4+PiArCQlz Y2FuX3Bvc3RfdGltZSA9IEk5MTVfUkVBRF9GVyhQSVBFX0ZSTVRNU1RNUChjcnRjLT5waXBlKSk7 Cj4+PiArCX0gd2hpbGUgKHNjYW5fcG9zdF90aW1lICE9IHNjYW5fcHJldl90aW1lKTsKPj4+ICsK Pj4+ICsJLyoKPj4+ICsJICogU2luY2UgdGhlIHJlZ2lzdGVyIGlzIDMyIGJpdCBhbmQgdGhlIHZh bHVlcwo+Pj4gKwkgKiBjYW4gb3ZlcmZsb3cgYW5kIHdyYXAgYXJvdW5kLCBtYWtpbmcgc3VyZQo+ Pj4gKwkgKiBjdXJyZW50IHRpbWUgYWNjb3VudHMgZm9yIHRoZSByZWdpc3Rlcgo+Pj4gKwkgKiB3 cmFwCj4+PiArCSAqLwo+Pj4gKwlpZiAoc2Nhbl9jdXJyX3RpbWUgPCBzY2FuX3ByZXZfdGltZSkK Pj4+ICsJCXNjYW5fY3Vycl90aW1lICs9IDB4MTAwMDAwMDAwOwo+Pj4gKwo+Pj4gKwlzY2FubGlu ZSA9IGRpdl91NjQobXVsX3U2NF91MzJfc2hyKChzY2FuX2N1cnJfdGltZSAtIHNjYW5fcHJldl90 aW1lKSwKPj4gSXNuJ3QgbXVsX3U2NF91MzJfZGl2IGV4YWN0bHkgd2hhdCB5b3Ugd2FudCBoZXJl Pwo+IEkgdGhpbmsgd2UnZCBhY3R1YWxseSB3YW50IGEgbXVsX3UzMl91MzJfZGl2KCkuIEJ1dCB0 aGF0IGRvZXNuJ3Qgc2VlbQo+IHRvIGV4aXN0LgpZZWFoLCBjb3VsZG4ndCBmaW5kIGl0IGVpdGhl ci4gOigKCldoeSBkbyB3ZSBldmVuIHVzZSB0aGUgbWFjcm9zLCBjYW4ndCB3ZSBzaW1wbHkgZG8g dGhlIG11bHRpcGxpY2F0aW9ucyBhbmQgZGl2aWRlIHdpdGhvdXQ/Cmk5MTUgaXMgb25seSBvbiB4 ODYgYW55d2F5LiA6KQo+Pj4gKwkJCQkJY3J0Y19jbG9jaywgMCksIDEwMDAgKiBjcnRjX2h0b3Rh bCk7Cj4+PiArCXNjYW5saW5lID0gbWluKHNjYW5saW5lLCAodTY0KShjcnRjX3Z0b3RhbCAtIDEp KTsKPj4+ICsJc2NhbmxpbmUgPSAoc2NhbmxpbmUgKyBjcnRjX3ZibGFua19zdGFydCkgJSBjcnRj X3Z0b3RhbDsKPj4+ICsKPj4+ICsJcmV0dXJuIHNjYW5saW5lOwo+Pj4gK30KPj4+ICsKPj4+ICBp bnQgaW50ZWxfcGxhbmVfYXRvbWljX2NhbGNfY2hhbmdlcyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCj4+PiAgCQkJCSAgICBzdHJ1Y3QgZHJtX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUsCj4+PiAgCQkJCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3Rh dGUgKm9sZF9wbGFuZV9zdGF0ZSwKPj4KPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KPj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+PiBJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==