From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Shankar, Uma" Subject: Re: [PATCH] drm/i915: Enable scanline read for gen9 dsi Date: Tue, 12 Sep 2017 14:21:42 +0000 Message-ID: References: <1504878535-28667-1-git-send-email-vidya.srinivas@intel.com> <20170908144759.GH4914@intel.com> <20170911175019.GN4914@intel.com> <20170912133332.GP4914@intel.com> <20170912141242.GQ4914@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2C5B66E65D for ; Tue, 12 Sep 2017 14:22:01 +0000 (UTC) In-Reply-To: <20170912141242.GQ4914@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: =?iso-8859-1?Q?Ville_Syrj=E4l=E4?= Cc: "intel-gfx@lists.freedesktop.org" , "Srinivas, Vidya" List-Id: intel-gfx@lists.freedesktop.org Cgo+LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPkZyb206IFZpbGxlIFN5cmrDpGzDpCBbbWFp bHRvOnZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tXQo+U2VudDogVHVlc2RheSwgU2VwdGVt YmVyIDEyLCAyMDE3IDc6NDMgUE0KPlRvOiBTaGFua2FyLCBVbWEgPHVtYS5zaGFua2FyQGludGVs LmNvbT4KPkNjOiBpbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnOyBTcmluaXZhcywgVmlk eWEgPHZpZHlhLnNyaW5pdmFzQGludGVsLmNvbT4KPlN1YmplY3Q6IFJlOiBbUEFUQ0hdIGRybS9p OTE1OiBFbmFibGUgc2NhbmxpbmUgcmVhZCBmb3IgZ2VuOSBkc2kKPgo+T24gVHVlLCBTZXAgMTIs IDIwMTcgYXQgMDE6NDA6NThQTSArMDAwMCwgU2hhbmthciwgVW1hIHdyb3RlOgo+Pgo+Pgo+PiA+ LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPj4gPkZyb206IFZpbGxlIFN5cmrDpGzDpCBbbWFp bHRvOnZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tXQo+PiA+U2VudDogVHVlc2RheSwgU2Vw dGVtYmVyIDEyLCAyMDE3IDc6MDQgUE0KPj4gPlRvOiBTaGFua2FyLCBVbWEgPHVtYS5zaGFua2Fy QGludGVsLmNvbT4KPj4gPkNjOiBpbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnOyBTcmlu aXZhcywgVmlkeWEKPj4gPjx2aWR5YS5zcmluaXZhc0BpbnRlbC5jb20+Cj4+ID5TdWJqZWN0OiBS ZTogW1BBVENIXSBkcm0vaTkxNTogRW5hYmxlIHNjYW5saW5lIHJlYWQgZm9yIGdlbjkgZHNpCj4+ ID4KPj4gPj4gPj4+Cj4+ID4+ID4+PiA+LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPj4gPj4g Pj4+ID5Gcm9tOiBWaWxsZSBTeXJqw6Rsw6QgW21haWx0bzp2aWxsZS5zeXJqYWxhQGxpbnV4Lmlu dGVsLmNvbV0KPj4gPj4gPj4+ID5TZW50OiBGcmlkYXksIFNlcHRlbWJlciA4LCAyMDE3IDg6MTgg UE0KPj4gPj4gPj4+ID5UbzogU3Jpbml2YXMsIFZpZHlhIDx2aWR5YS5zcmluaXZhc0BpbnRlbC5j b20+Cj4+ID4+ID4+PiA+Q2M6IGludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmc7IEthaG9s YSwgTWlrYQo+PiA+PiA+Pj4gPjxtaWthLmthaG9sYUBpbnRlbC5jb20+OyBLYW1hdGgsIFN1bmls Cj4+ID4+ID4+PiA+PHN1bmlsLmthbWF0aEBpbnRlbC5jb20+OyBTaGFua2FyLCBVbWEKPj4gPj4g Pj4+ID48dW1hLnNoYW5rYXJAaW50ZWwuY29tPjsgS29uZHVydSwgQ2hhbmRyYQo+PiA+PiA+Pj4g PjxjaGFuZHJhLmtvbmR1cnVAaW50ZWwuY29tPgo+PiA+PiA+Pj4gPlN1YmplY3Q6IFJlOiBbUEFU Q0hdIGRybS9pOTE1OiBFbmFibGUgc2NhbmxpbmUgcmVhZCBmb3IgZ2VuOQo+PiA+PiA+Pj4gPmRz aQo+PiA+PiA+Pj4gPgo+PiA+PiA+Pj4gPk9uIEZyaSwgU2VwIDA4LCAyMDE3IGF0IDA3OjE4OjU1 UE0gKzA1MzAsIFZpZHlhIFNyaW5pdmFzIHdyb3RlOgo+PiA+PiA+Pj4gPj4gRnJvbTogVW1hIFNo YW5rYXIgPHVtYS5zaGFua2FyQGludGVsLmNvbT4KPj4gPj4gPj4+ID4+Cj4+ID4+ID4+PiA+PiBG b3IgZ2VuOSBwbGF0Zm9ybXMsIGRzaSB0aW1pbmdzIGFyZSBkcml2ZW4gZnJvbSBwb3J0IGluc3Rl YWQKPj4gPj4gPj4+ID4+IG9mIHBpcGUgKHVubGlrZSBkZGkpLiBUaHVzLCB3ZSBjYW4ndCByZWx5 IG9uIHBpcGUgcmVnaXN0ZXJzCj4+ID4+ID4+PiA+PiB0byBnZXQgdGhlIHRpbWluZyBpbmZvcm1h dGlvbi4gRXZlbiBzY2FubGluZSByZWdpc3RlciByZWFkCj4+ID4+ID4+PiA+PiB3aWxsIG5vdCBi ZQo+PiA+ZnVuY3Rpb25hbC4KPj4gPj4gPj4+ID4+IFRoaXMgaXMgY2F1c2luZyB2YmxhbmsgZXZh c2lvbiBsb2dpYyB0byBmYWlsIHNpbmNlIGl0IHJlbGllcwo+PiA+PiA+Pj4gPj4gb24gc2Nhbmxp bmUsIGNhdXNpbmcgYXRvbWljIHVwZGF0ZSBmYWlsdXJlIHdhcm5pbmdzLgo+PiA+PiA+Pj4gPj4K Pj4gPj4gPj4+ID4+IFRoaXMgcGF0Y2ggdXNlcyBwaXBlIGZyYW1lc3RhbXAgYW5kIGN1cnJlbnQg dGltZXN0YW1wCj4+ID4+ID4+PiA+PiByZWdpc3RlcnMgdG8gY2FsY3VsYXRlIHNjYW5saW5lLiBU aGlzIGlzIGFuIGluZGlyZWN0IHdheSB0byBnZXQgdGhlCj5zY2FubGluZS4KPj4gPj4gPj4+ID4+ IEl0IGhlbHBzIHJlc29sdmUgYXRvbWljIHVwZGF0ZSBmYWlsdXJlIGZvciBnZW45IGRzaSBwbGF0 Zm9ybXMuCj4+ID4+ID4+PiA+Pgo+PiA+PiA+Pj4gPj4gU2lnbmVkLW9mZi1ieTogVW1hIFNoYW5r YXIgPHVtYS5zaGFua2FyQGludGVsLmNvbT4KPj4gPj4gPj4+ID4+IFNpZ25lZC1vZmYtYnk6IENo YW5kcmEgS29uZHVydSA8Y2hhbmRyYS5rb25kdXJ1QGludGVsLmNvbT4KPj4gPj4gPj4+ID4+IFNp Z25lZC1vZmYtYnk6IFZpZHlhIFNyaW5pdmFzIDx2aWR5YS5zcmluaXZhc0BpbnRlbC5jb20+Cj4+ ID4+ID4+PiA+PiAtLS0KPj4gPj4gPj4+ID4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oICB8ICAyICsrCj4+ID4+ID4+PiA+PiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5j ICB8ICA1ICsrKysrCj4+ID4+ID4+PiA+PiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5o ICB8ICAzICsrKwo+PiA+PiA+Pj4gPj4gZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMg fCA0Ngo+PiA+PiA+Pj4gPj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Kwo+PiA+PiA+Pj4gPj4gIDQgZmlsZXMgY2hhbmdlZCwgNTYgaW5zZXJ0aW9ucygrKQo+PiA+PiA+ Pj4gPj4KPj4gPj4gPj4+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oCj4+ID4+ID4+PiA+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggaW5k ZXggZDA3ZDExMC4uNDIxM2I1NAo+PiA+PiA+Pj4gPj4gMTAwNjQ0Cj4+ID4+ID4+PiA+PiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+ID4+ID4+PiA+PiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+ID4+ID4+PiA+PiBAQCAtNDA3Nyw2ICs0MDc3 LDggQEAgdm9pZCBpbnRlbF9zYmlfd3JpdGUoc3RydWN0Cj4+ID4+ID4+PiA+PiBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwgdTE2IHJlZywgdTMyIHZhbHVlLAo+PiA+PiA+Pj4gPj4gIHUzMiB2 bHZfZmxpc2RzaV9yZWFkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyCj4+ ID4+ID4+PiA+PiByZWcpOyB2b2lkIHZsdl9mbGlzZHNpX3dyaXRlKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlCj4+ID4+ID4+PiA+PiAqZGV2X3ByaXYsCj4+ID4+ID4+PiA+PiB1MzIgcmVnLAo+PiA+ PiA+Pj4gPj4gdTMyIHZhbCk7Cj4+ID4+ID4+PiA+Pgo+PiA+PiA+Pj4gPj4gK3UzMiBieHRfZHNp X2dldF9zY2FubGluZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yyk7Cj4+ID4+ID4+PiA+PiArCj4+ ID4+ID4+PiA+PiAgLyogaW50ZWxfZHBpb19waHkuYyAqLwo+PiA+PiA+Pj4gPj4gIHZvaWQgYnh0 X3BvcnRfdG9fcGh5X2NoYW5uZWwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPj4gPj4gPj4+ID4+ ICpkZXZfcHJpdiwgZW51bSBwb3J0Cj4+ID4+ID4+PiA+cG9ydCwKPj4gPj4gPj4+ID4+ICAJCQkg ICAgIGVudW0gZHBpb19waHkgKnBoeSwgZW51bSBkcGlvX2NoYW5uZWwKPj4gPipjaCk7IGRpZmYg LS0KPj4gPj4gPj4+ID5naXQKPj4gPj4gPj4+ID4+IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9pcnEuYwo+PiA+PiA+Pj4gPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIGlu ZGV4IDVkMzkxZTYuLjMxYWE3ZjAKPj4gPj4gPj4+ID4+IDEwMDY0NAo+PiA+PiA+Pj4gPj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+PiA+PiA+Pj4gPj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+PiA+PiA+Pj4gPj4gQEAgLTc4MSw2ICs3ODEs NyBAQCBzdGF0aWMgaW50Cj4+ID4+ID4+PiA+PiBfX2ludGVsX2dldF9jcnRjX3NjYW5saW5lKHN0 cnVjdCBpbnRlbF9jcnRjCj4+ID4+ID4+PiA+KmNydGMpCj4+ID4+ID4+PiA+PiAgCXN0cnVjdCBk cm1fdmJsYW5rX2NydGMgKnZibGFuazsKPj4gPj4gPj4+ID4+ICAJZW51bSBwaXBlIHBpcGUgPSBj cnRjLT5waXBlOwo+PiA+PiA+Pj4gPj4gIAlpbnQgcG9zaXRpb24sIHZ0b3RhbDsKPj4gPj4gPj4+ ID4+ICsJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyOwo+PiA+PiA+Pj4gPj4KPj4gPj4g Pj4+ID4+ICAJaWYgKCFjcnRjLT5hY3RpdmUpCj4+ID4+ID4+PiA+PiAgCQlyZXR1cm4gLTE7Cj4+ ID4+ID4+PiA+PiBAQCAtNzkyLDYgKzc5MywxMCBAQCBzdGF0aWMgaW50Cj4+ID4+ID4+PiA+PiBf X2ludGVsX2dldF9jcnRjX3NjYW5saW5lKHN0cnVjdCBpbnRlbF9jcnRjCj4+ID4+ID4+PiA+KmNy dGMpCj4+ID4+ID4+PiA+PiAgCWlmIChtb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfSU5URVJM QUNFKQo+PiA+PiA+Pj4gPj4gIAkJdnRvdGFsIC89IDI7Cj4+ID4+ID4+PiA+Pgo+PiA+PiA+Pj4g Pj4gKwljcHVfdHJhbnNjb2RlciA9IGNydGMtPmNvbmZpZy0+Y3B1X3RyYW5zY29kZXI7Cj4+ID4+ ID4+PiA+Cj4+ID4+ID4+PiA+SHVtbS4gV291bGQgYmUgbmljZSB0byBiZSBhYmxlIHRvIGRvIHRo aXMgd2l0aG91dCBhZGRpbmcgbW9yZQo+PiA+PiA+Pj4gPmNydGMtPmNvbmZpZyB1c2VzLiBXZSdy ZSBwcmV0dHkgbXVjaCB0cnlpbmcgdG8gZ2V0IHJpZCBvZiB0aGF0IGd1eS4KPj4gPj4gPj4+ID4K Pj4gPj4gPj4+Cj4+ID4+ID4+PiBXaWxsIHRyeSB0byBmaW5kIGFuIGFsdGVybmF0ZSB3YXkgdG8g ZG8gdGhpcy4KPj4gPj4gPj4+Cj4+ID4+ID4+PiA+PiArCWlmIChJU19CUk9YVE9OKGRldl9wcml2 KSAmJiB0cmFuc2NvZGVyX2lzX2RzaShjcHVfdHJhbnNjb2RlcikpCj4+ID4+ID4+PiA+PiArCQly ZXR1cm4gYnh0X2RzaV9nZXRfc2NhbmxpbmUoY3J0Yyk7Cj4+ID4+ID4+PiA+PiArCj4+ID4+ID4+ PiA+PiAgCWlmIChJU19HRU4yKGRldl9wcml2KSkKPj4gPj4gPj4+ID4+ICAJCXBvc2l0aW9uID0g STkxNV9SRUFEX0ZXKFBJUEVEU0wocGlwZSkpICYKPj4gPj4gPj4+ID5EU0xfTElORU1BU0tfR0VO MjsKPj4gPj4gPj4+ID4+ICAJZWxzZQo+PiA+PiA+Pj4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPj4gPj4gPj4+ID4+IGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9yZWcuaCBpbmRleCA5YTczZWEwLi41NDU4MmRlCj4+ID4+ID4+PiA+PiAxMDA2NDQK Pj4gPj4gPj4+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPj4gPj4g Pj4+ID4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPj4gPj4gPj4+ID4+ IEBAIC04ODAyLDYgKzg4MDIsOSBAQCBlbnVtIHNrbF9wb3dlcl9nYXRlIHsgICNkZWZpbmUKPj4g Pj4gPj4+ID4+IE1JUElPX1RYRVNDX0NMS19ESVYyCj4+ID4JX01NSU8oMHgxNjAwMDgpCj4+ID4+ ID4+PiA+PiAgI2RlZmluZSAgR0xLX1RYX0VTQ19DTEtfRElWMl9NQVNLCQkJMHgzRkYKPj4gPj4g Pj4+ID4+Cj4+ID4+ID4+PiA+PiArI2RlZmluZSBCWFRfVElNRVNUQU1QX0NUUglfTU1JTygweDQ0 MDcwKQo+PiA+PiA+Pj4gPj4gKyNkZWZpbmUgQlhUX1BJUEVfRlJNVE1TVE1QX0EJX01NSU8oMHg3 MDA0OCkKPj4gPj4gPj4+ID4KPj4gPj4gPj4+ID5QbGVhc2UgYWRkIHByb3BlciBwYXJhbWV0cml6 ZWQgZGVmaW5lIHRoYXQgd29ya3MgZm9yIGFsbCBwaXBlcy4KPj4gPj4gPj4+ID4KPj4gPj4gPj4+ Cj4+ID4+ID4+PiBXaWxsIGFkZCB0aGF0Lgo+PiA+PiA+Pj4KPj4gPj4gPj4+ID4+ICsKPj4gPj4g Pj4+ID4+ICAvKiBCWFQgTUlQSSBjbG9jayBjb250cm9scyAqLwo+PiA+PiA+Pj4gPj4gICNkZWZp bmUgQlhUX01BWF9WQVJfT1VUUFVUX0tIWgkJCTM5NTAwCj4+ID4+ID4+PiA+Pgo+PiA+PiA+Pj4g Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCj4+ID4+ID4+ PiA+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCj4+ID4+ID4+PiA+PiBpbmRl eCAyYTBmNWQzLi5kMTQ1YmE0IDEwMDY0NAo+PiA+PiA+Pj4gPj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHNpLmMKPj4gPj4gPj4+ID4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RzaS5jCj4+ID4+ID4+PiA+PiBAQCAtMTYyMSw2ICsxNjIxLDUyIEBAIHN0YXRp YyBpbnQgaW50ZWxfZHNpX2dldF9tb2RlcyhzdHJ1Y3QKPj4gPj4gPj4+ID5kcm1fY29ubmVjdG9y ICpjb25uZWN0b3IpCj4+ID4+ID4+PiA+PiAgCXJldHVybiAxOwo+PiA+PiA+Pj4gPj4gIH0KPj4g Pj4gPj4+ID4+Cj4+ID4+ID4+PiA+PiArLyoKPj4gPj4gPj4+ID4+ICsgKiBGb3IgR2VuOSBEU0ks IHBpcGUgc2NhbmxpbmUgcmVnaXN0ZXIgd2lsbCBub3QKPj4gPj4gPj4+ID4+ICsgKiB3b3JrIHRv IGdldCB0aGUgc2NhbmxpbmUgc2luY2UgdGhlIHRpbWluZ3MKPj4gPj4gPj4+ID4+ICsgKiBhcmUg ZHJpdmVuIGZyb20gdGhlIFBPUlQgKHVubGlrZSBEREkgZW5jb2RlcnMpLgo+PiA+PiA+Pj4gPj4g KyAqIFRoaXMgZnVuY3Rpb24gd2lsbCB1c2UgRnJhbWVzdGFtcCBhbmQgY3VycmVudAo+PiA+PiA+ Pj4gPj4gKyAqIHRpbWVzdGFtcCByZWdpc3RlcnMgdG8gY2FsY3VsYXRlIHRoZSBzY2FubGluZS4K Pj4gPj4gPj4+ID4+ICsgKi8KPj4gPj4gPj4+ID4+ICt1MzIgYnh0X2RzaV9nZXRfc2NhbmxpbmUo c3RydWN0IGludGVsX2NydGMgKmNydGMpIHsKPj4gPj4gPj4+ID4+ICsJc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGNydGMtPmJhc2UuZGV2Owo+PiA+PiA+Pj4gPj4gKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4+ID4+ID4+PiA+PiArCXUzMiB2cmVm cmVzaCA9IGNydGMtPmJhc2UubW9kZS52cmVmcmVzaDsKPj4gPj4gPj4+ID4+ICsJdTMyIHVsUHJl dlRpbWUsIHVsQ3VyclRpbWUsIHZ0b3RhbCwgdWxTY2FubGluZU5vMiA9IDA7Cj4+ID4+ID4+PiA+ Cj4+ID4+ID4+PiA+UGxlYXNlIGdldCByaWQgb2YgdGhlIGh1bmdhcmlhbiBub3RhdGlvbi4KPj4g Pj4gPj4+ID4KPj4gPj4gPj4+Cj4+ID4+ID4+PiBZZXMsIHdpbGwgZml4IHRoaXMuCj4+ID4+ID4+ Pgo+PiA+PiA+Pj4gPj4gKwl1aW50X2ZpeGVkXzE2XzE2X3QgdWxTY2FubGluZVRpbWU7Cj4+ID4+ ID4+PiA+PiArCj4+ID4+ID4+PiA+PiArCS8qCj4+ID4+ID4+PiA+PiArCSAqIFRoaXMgZmllbGQg cHJvdmlkZXMgcmVhZCBiYWNrIG9mIHRoZSBkaXNwbGF5Cj4+ID4+ID4+PiA+PiArCSAqIHBpcGUg ZnJhbWUgdGltZSBzdGFtcC4gVGhlIHRpbWUgc3RhbXAgdmFsdWUKPj4gPj4gPj4+ID4+ICsJICog aXMgc2FtcGxlZCBhdCBldmVyeSBzdGFydCBvZiB2ZXJ0aWNhbCBibGFuay4KPj4gPj4gPj4+ID4+ ICsJICovCj4+ID4+ID4+PiA+PiArCXVsUHJldlRpbWUgPSBJOTE1X1JFQURfRlcoQlhUX1BJUEVf RlJNVE1TVE1QX0EpOwo+PiA+PiA+Pj4gPj4gKwo+PiA+PiA+Pj4gPj4gKwkvKgo+PiA+PiA+Pj4g Pj4gKwkgKiBUaGUgVElNRVNUQU1QX0NUUiByZWdpc3RlciBoYXMgdGhlIGN1cnJlbnQKPj4gPj4g Pj4+ID4+ICsJICogdGltZSBzdGFtcCB2YWx1ZS4KPj4gPj4gPj4+ID4+ICsJICovCj4+ID4+ID4+ PiA+PiArCXVsQ3VyclRpbWUgPSBJOTE1X1JFQURfRlcoQlhUX1RJTUVTVEFNUF9DVFIpOwo+PiA+ PiA+Pj4gPj4gKwo+PiA+PiA+Pj4gPj4gKwkvKiBUaGUgUE9SVCBmb3IgRFNJIHdpbGwgYWx3YXlz IGJlIDAgc2luY2UKPj4gPj4gPj4+ID4+ICsJICogaXNvbGF0ZWQgUE9SVEMgY2Fubm90IGJlIGVu YWJsZWQgZm9yIEdlbjkKPj4gPj4gPj4+ID4+ICsJICogRFNJLiBIZW5jZSB1c2luZyBQT1JUX0Eg aS5lIDAgdG8gZXh0cmFjdAo+PiA+PiA+Pj4gPj4gKwkgKiB0aGUgVlRPVEFMIHZhbHVlLgo+PiA+ PiA+Pj4gPj4gKwkgKi8KPj4gPj4gPj4+ID4+ICsJdnRvdGFsID0gSTkxNV9SRUFEX0ZXKEJYVF9N SVBJX1RSQU5TX1ZUT1RBTCgwKSk7Cj4+ID4+ID4+PiA+Cj4+ID4+ID4+PiA+VGhpcyB2YWx1ZSBj YW4gYmUgZHVnIG91dCBmcm9tIHRoZSBod21vZGUuCj4+ID4+ID4+PiA+Cj4+ID4+ID4+Pgo+PiA+ PiA+Pj4gWWVzLCB3aWxsIGdldCBpdCBmcm9tIGh3bW9kZSBhbmQgZHJvcCB0aGlzIGNoYW5nZS4K Pj4gPj4gPj4+Cj4+ID4+ID4+PiA+PiArCVdBUk5fT04oIXZ0b3RhbCk7Cj4+ID4+ID4+PiA+PiAr CWlmICghdnRvdGFsKQo+PiA+PiA+Pj4gPj4gKwkJcmV0dXJuIHVsU2NhbmxpbmVObzI7Cj4+ID4+ ID4+PiA+PiArCj4+ID4+ID4+PiA+PiArCXVsU2NhbmxpbmVUaW1lID0gZGl2X2ZpeGVkMTYoMTAw MDAwMCwgdnRvdGFsICogdnJlZnJlc2gpOwo+PiA+PiA+Pj4gPj4gKwl1bFNjYW5saW5lTm8yID0g ZGl2X3JvdW5kX3VwX3UzMl9maXhlZDE2KCh1bEN1cnJUaW1lIC0KPj4gPnVsUHJldlRpbWUpLAo+ PiA+PiA+Pj4gPj4gKwkJCQkJCXVsU2NhbmxpbmVUaW1lKTsKPj4gPj4gPj4+ID4KPj4gPj4gPj4+ ID5Tb21ldGhpbmcgbGlrZToKPj4gPj4gPj4+ID5zY2FubGluZSA9IGRpdl91NjQobXVsX3UzMl91 MzIoY3VyciAtIHByZXYsIGNydGNfY2xvY2spLAo+PiA+PiA+Pj4gPgkJICAgMTAwMCAqIGNydGNf aHRvdGFsKTsKPj4gPj4gPj4+ID4KPj4gPj4gPj4+ID4+ICsJdWxTY2FubGluZU5vMiA9ICh1bFNj YW5saW5lTm8yICsgdnRvdGFsKSAlIHZ0b3RhbDsKPj4gPj4gPj4+ID4KPj4gPj4gPj4+ID5JIHRo aW5rIHRoYXQgd291bGQgaGF2ZSB0byBiZSBzb21ldGhpbmcgbGlrZToKPj4gPj4gPj4+ID5yZXR1 cm4gKHNjYW5saW5lICsgdmJsYW5rX3N0YXJ0KSAlIHZ0b3RhbDsKPj4gPj4gPj4+ID4KPj4gPj4g Pj4+Cj4+ID4+ID4+PiBZZXMgeW91IGFyZSByaWdodC4gSXQgc2hvdWxkIGJlIHZibGFua19zdGFy dC4gV2lsbCBmaXggdGhpcy4KPj4gPj4gPj4+Cj4+ID4+ID4+PiA+QWxsIGluIGFsbCB0aGlzIGxv b2tzIGxpa2UgYSBwcmV0dHkgZGVjZW50IGFwcHJvYWNoIHRvIHRoZSBEU0kgcHJvYmxlbS4KPj4g Pj4gPj4+ID4KPj4gPj4gPj4+ID5PbmUgY29uY2VybiBoZXJlIGlzIHJvdW5kaW5nIGlzc3VlcyBh bmQgaW5hY2N1cmFjaWVzIGluIG91cgo+PiA+PiA+Pj4gPmNydGNfY2xvY2suIEJ1dCBzaW5jZSB0 aGUgZnJhbWUgdGltZXN0YW1wIGlzIHNhbXBsZWQgYXQgdmJsYW5rCj4+ID4+ID4+PiA+c3RhcnQg SSBndWVzcyB3ZSBjYW4ndCBhY2NpZGVudGFsbHkgZ2V0IGFuIGFuc3dlciB0aGF0J3MKPj4gPj4g Pj4+ID5lYXJsaWVyIHRoYW4gdmJsYW5rX3N0YXJ0IGFzIGxvbmcgYXMgd2UgcmVhbGx5IHBhc3Nl ZCB2YmxhbmsKPj4gPj4gPj4+ID5zdGFydCBhbHJlYWR5LiBUaGF0IHNob3VsZAo+PiA+PiA+Pm1h a2UgdGhpcyBhdCBsZWFzdCBzdWl0YWJsZSBmb3IgdmJsYW5rIHRpbWVzdGFtcHMuCj4+ID4+ID4+ Pgo+PiA+PiA+Pj4gSSBhbHNvIGZlZWwgdGhlIHNhbWUsIHRoaXMgc2l0dWF0aW9uIHNob3VsZCBu ZXZlciBvY2N1ci4KPj4gPj4gPj4+Cj4+ID4+ID4+PiA+QW5kIGZvcgo+PiA+PiA+Pj4gPnRoZSBh dG9taWMgZXZhZGUsIEkgZ3Vlc3MgaWYgd2UgY2xhbXAgb3VyIHRoZSBzY2FubGluZSBiZWZvcmUK Pj4gPj4gPj4+ID50aGUKPj4gPj4gPj4+ID4rdmJsYW5rX3N0YXJ0IHN1Y2ggdGhhdCBpdCBuZXZl ciByZWFjaGVzIHZ0b3RhbCwgd2UgY2FuJ3QgYmUKPj4gPj4gPj4+ID4rc3VyZSB0aGF0Cj4+ID4+ ID4+PiA+b3VyIHZibGFuayBldmFkZSBuZXZlciBpbmRpY2F0ZXMgdGhhdCB3ZSBhbHJlYWR5IHJl YWNoZWQgdGhlCj4+ID4+ID4+PiA+c3RhcnQgb2YgdmJsYW5rIHByZW1hdHVyZWx5Lgo+PiA+PiA+ Pj4gPgo+PiA+PiA+Pj4gPlNvIG1heWJlIHNvbWV0aGluZyBsaWtlOgo+PiA+PiA+Pj4gPnNjYWxp bmUgPSBkaXZfdTY0KC4uLik7Cj4+ID4+ID4+PiA+c2NhbmxpbmUgPSBtaW4oc2NhbmxpbmUsIHZ0 b3RhbCAtIDEpOwo+PiA+PiA+Pj4KPj4gPj4gPj4+IEkgYW0gbm90IHN1cmUgaWYgdGhlIHZhbHVl IG9mIHNjYW5saW5lIHJldHVybmVkIGNhbiBldmVyIGJlCj4+ID4+ID4+PiBncmVhdGVyIHRoYW4g dnRvdGFsIC0KPj4gPj4gPj4xLgo+PiA+PiA+Pj4gQnV0IHdlIGNhbiBoYXZlIGEgY2hlY2sganVz dCB0byBiZSBzYWZlLiBOb3Qgc3VyZSBpZiBJIGZ1bGx5Cj4+ID4+ID4+PiBnb3QgeW91ciBwb2lu dAo+PiA+aGVyZS4KPj4gPj4gPj4KPj4gPj4gPj5UaGUgcG9pbnQgaXMgdGhhdCB0aGUgdGltZXN0 YW1wIGNvdW50ZXIgbWlnaHQgdGljayBhdCBhIHNsaWdodGx5Cj4+ID4+ID4+ZmFzdGVyIHJhdGUg dGhhbiB3ZSBtaWdodCB0aGluay4gVGh1cyB3ZSBtaWdodCBlbmQgdXAgd2l0aCBtb3JlCj4+ID4+ ID4+dGlja3MgaW4gb25lIGZyYW1lIHRoYW4gd2hhdCB3ZSBjYWxjdWxhdGVkIGFzIHRoZSBtYXhp bXVtIGZvbQo+PiA+PiA+PmNydGNfY2xvY2sgZXRjLiBCdXQgaWYgd2UgY2xhbXAgdGhlIHZhbHVl IGxpa2UgSSBzdWdnZXN0ZWQgdGhlbgo+PiA+PiA+PmF0IGxlYXN0IHdlIHNob3VsZCBuZXZlciBn ZXQgYW4gYW5zd2VyIHRoYXQgdGVsbHMgdXMgd2UncmUKPj4gPj4gPj5hbHJlYWR5IHBhc3QgdGhl IHN0YXJ0IG9mIHZibGFuayB3aGVuIGluIHJlYWxpdHkKPj4gPj4gPndlJ3JlIG5vdC4KPj4gPj4g Pj4KPj4gPj4gPj5PZiBjb3Vyc2UgYXMgRGFuaWVsIHBvaW50ZWQgb3V0IHdlIG1pZ2h0IGFsc28g Z2V0IGludG8gdHJvdWJsZSBpZgo+PiA+PiA+PnRoZSBjb3VudGVyIHRpY2tzIHNsb3dlciB0aGFu IGV4cGVjdGVkLiBUaGF0IGNvdWxkIGxlYWQgdXMgdG8KPj4gPj4gPj50aGluayB0aGF0IHdlIGRv bid0IG5lZWQgdG8gZG8gdGhlIHZibGFuayBldmFkZSB3aGVuIGluIGZhY3Qgd2UgZG8uCj4+ID4+ ID4+Cj4+ID4+Cj4+ID4+IEhpIFZpbGxlLAo+PiA+PiBXZSB0cmllZCB0byB0ZXN0IHdpdGggdGhp cyBjb25kaXRpb24gYW5kIGFyZSBjYWxjdWxhdGluZyB3cm9uZyBzY2FubGluZXMuCj4+ID4+IEZv ciBleDoKPj4gPj4gWyAgIDc5LjQxODk0M10gW2RybTpieHRfZHNpX2dldF9zY2FubGluZV0gKkVS Uk9SKiBzY2FubGluZSA9IDIyNTM0LAo+PiA+Y3J0Y192dG90YWwtMSA9IDEyMTEsIG1pbiBvZiB0 d28gPSAxMjExCj4+ID4KPj4gPldlbGwsIHRoYXQgc2NhbmxpbmUgbnVtYmVyIGxvb2tzIHRvdGFs bHkgYm9ndXMuIEhvdyBkaWQgeW91IGNhbGN1bGF0ZSBpdAo+ZXhhY3RseT8KPj4gPgo+Pgo+PiBJ ZiB3ZSBoYXZlIG11bHRpcGxlIHNjYW5zIG9uIHRoZSBzYW1lIGZyYW1lIChubyBuZXcgZmxpcCBi ZWluZwo+PiBpc3N1ZWQpLiBQcmV2IHRpbWVzdGFtcCB2YWx1ZSB3aGljaCBpcyByZWFkIGZyb20g RnJhbWV0aW1lIFN0YW1wIHdpbGwKPj4gcmVtYWluIHNhbWUsIGJ1dCBjdXJyZW50IHRpbWUgc3Rh bXAgd2lsbCBrZWVwIG9uIGluY3JlbWVudGluZy4KPgo+VGhlIGZyYW1lIHRpbWVzdGFtcCBzaG91 bGQgZ2V0IHNhbXBsZWQgb24gZXZlcnkgdmJsYW5rLCB3aGVyZWFzIHRoZSBmbGlwCj50aW1lc3Rh bXAgb25seSB3aGVuIGEgZmxpcCBvY2N1cnMuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgdGlt ZXN0YW1wIHJlZ2lzdGVyPwo+CgpZZXMsIHdlIGFyZSB1c2luZyB3aGF0IGlzIHRoZXJlIGluIHRo ZSBwYXRjaC4gCk5hbWUgUGlwZSBBIEZyYW1lIFRpbWUgU3RhbXAKU3ltYm9sIFBJUEVfRlJNVE1T VE1QX0EKU3RhcnQgMHg3MDA0OApFbmQgMHg3MDA0QgoKSXRzIGJlaGF2aW5nIGFzIEZMSVAgVGlt ZXN0YW1wIHRob3VnaCAobm90IGJlaW5nIHVwZGF0ZWQgb24gZXZlcnkgdmJsYW5rX3N0YXJ0KS4K QXRsZWFzdCB3aXRoIHRoZSByZWFkYmFjayB3aGF0IHdlIGdldCBvbiBBUEwuIAoKPi0tCj5WaWxs ZSBTeXJqw6Rsw6QKPkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZngK