From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Thulasimani, Sivakumar" Subject: Re: [PATCH] drm/i915: Wait for PP cycle delay only if panel is in power off sequence Date: Fri, 11 Dec 2015 16:55:37 +0530 Message-ID: <566AB2B1.90107@intel.com> References: <1449667308-24296-1-git-send-email-shobhit.kumar@intel.com> <20151209135711.GE4437@intel.com> <20151209150453.GA29974@nuc-i3427.alporthouse.com> <20151209160517.GH4437@intel.com> <56694656.8040607@linux.intel.com> <20151210131537.GO4437@intel.com> <20151210133845.GR4437@intel.com> <56698E85.2090704@intel.com> <20151210150210.GA4437@intel.com> 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 ESMTP id 2AD556ED76 for ; Fri, 11 Dec 2015 03:25:40 -0800 (PST) In-Reply-To: <20151210150210.GA4437@intel.com> 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: Shobhit Kumar , intel-gfx List-Id: intel-gfx@lists.freedesktop.org CgpPbiAxMi8xMC8yMDE1IDg6MzIgUE0sIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToKPiBPbiBUaHUs IERlYyAxMCwgMjAxNSBhdCAwODowOTowMVBNICswNTMwLCBUaHVsYXNpbWFuaSwgU2l2YWt1bWFy IHdyb3RlOgo+Pgo+PiBPbiAxMi8xMC8yMDE1IDc6MDggUE0sIFZpbGxlIFN5cmrDpGzDpCB3cm90 ZToKPj4+IE9uIFRodSwgRGVjIDEwLCAyMDE1IGF0IDAzOjE1OjM3UE0gKzAyMDAsIFZpbGxlIFN5 cmrDpGzDpCB3cm90ZToKPj4+PiBPbiBUaHUsIERlYyAxMCwgMjAxNSBhdCAwMzowMTowMlBNICsw NTMwLCBLdW1hciwgU2hvYmhpdCB3cm90ZToKPj4+Pj4gT24gMTIvMDkvMjAxNSAwOTozNSBQTSwg VmlsbGUgU3lyasOkbMOkIHdyb3RlOgo+Pj4+Pj4gT24gV2VkLCBEZWMgMDksIDIwMTUgYXQgMDg6 NTk6MjZQTSArMDUzMCwgU2hvYmhpdCBLdW1hciB3cm90ZToKPj4+Pj4+PiBPbiBXZWQsIERlYyA5 LCAyMDE1IGF0IDg6MzQgUE0sIENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVr PiB3cm90ZToKPj4+Pj4+Pj4gT24gV2VkLCBEZWMgMDksIDIwMTUgYXQgMDg6MDc6MTBQTSArMDUz MCwgU2hvYmhpdCBLdW1hciB3cm90ZToKPj4+Pj4+Pj4+IE9uIFdlZCwgRGVjIDksIDIwMTUgYXQg NzoyNyBQTSwgVmlsbGUgU3lyasOkbMOkCj4+Pj4+Pj4+PiA8dmlsbGUuc3lyamFsYUBsaW51eC5p bnRlbC5jb20+IHdyb3RlOgo+Pj4+Pj4+Pj4+IE9uIFdlZCwgRGVjIDA5LCAyMDE1IGF0IDA2OjUx OjQ4UE0gKzA1MzAsIFNob2JoaXQgS3VtYXIgd3JvdGU6Cj4+Pj4+Pj4+Pj4+IER1cmluZyByZXN1 bWUsIHdoaWxlIHR1cm5pbmcgdGhlIEVEUCBwYW5lbCBwb3dlciBvbiwgd2UgbmVlZCBub3Qgd2Fp dAo+Pj4+Pj4+Pj4+PiBibGluZGx5IGZvciBwYW5lbF9wb3dlcl9jeWNsZV9kZWxheS4gQ2hlY2sg aWYgcGFuZWwgcG93ZXIgZG93biBzZXF1ZW5jZQo+Pj4+Pj4+Pj4+PiBpbiBwcm9ncmVzcyBhbmQg dGhlbiBvbmx5IHdhaXQuIFRoaXMgaW1wcm92ZXMgb3VyIHJlc3VtZSB0aW1lIHNpZ25pZmljYW50 bHkuCj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6IFNob2JoaXQgS3VtYXIg PHNob2JoaXQua3VtYXJAaW50ZWwuY29tPgo+Pj4+Pj4+Pj4+PiAtLS0KPj4+Pj4+Pj4+Pj4gICAg IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgfCAxNyArKysrKysrKysrKysrKysrLQo+ Pj4+Pj4+Pj4+PiAgICAgMSBmaWxlIGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDEgZGVsZXRp b24oLSkKPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4+Pj4+ Pj4+Pj4+IGluZGV4IGYzMzVjOTIuLjEwZWM2NjkgMTAwNjQ0Cj4+Pj4+Pj4+Pj4+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPj4+Pj4+Pj4+Pj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+Pj4+Pj4+Pj4+PiBAQCAtNjE3LDYgKzYxNywyMCBAQCBz dGF0aWMgYm9vbCBlZHBfaGF2ZV9wYW5lbF9wb3dlcihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw KQo+Pj4+Pj4+Pj4+PiAgICAgICAgICByZXR1cm4gKEk5MTVfUkVBRChfcHBfc3RhdF9yZWcoaW50 ZWxfZHApKSAmIFBQX09OKSAhPSAwOwo+Pj4+Pj4+Pj4+PiAgICAgfQo+Pj4+Pj4+Pj4+Pgo+Pj4+ Pj4+Pj4+PiArc3RhdGljIGJvb2wgZWRwX3BhbmVsX29mZl9zZXEoc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCkKPj4+Pj4+Pj4+Pj4gK3sKPj4+Pj4+Pj4+Pj4gKyAgICAgc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGludGVsX2RwX3RvX2RldihpbnRlbF9kcCk7Cj4+Pj4+Pj4+Pj4+ICsgICAgIHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4+Pj4+ Pj4+Pj4+ICsKPj4+Pj4+Pj4+Pj4gKyAgICAgbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYt PnBwc19tdXRleCk7Cj4+Pj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4+Pj4gKyAgICAgaWYgKElTX1ZBTExF WVZJRVcoZGV2KSAmJgo+Pj4+Pj4+Pj4+PiArICAgICAgICAgaW50ZWxfZHAtPnBwc19waXBlID09 IElOVkFMSURfUElQRSkKPj4+Pj4+Pj4+Pj4gKyAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cj4+ Pj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4+Pj4gKyAgICAgcmV0dXJuIChJOTE1X1JFQUQoX3BwX3N0YXRf cmVnKGludGVsX2RwKSkgJiBQUF9TRVFVRU5DRV9QT1dFUl9ET1dOKSAhPSAwOwo+Pj4+Pj4+Pj4+ PiArfQo+Pj4+Pj4+Pj4+IFRoaXMgZG9lbnMndCBtYWtlIHNlbnNlIHRvIG1lLiBUaGUgcG93ZXIg ZG93biBjeWNsZSBtYXkgaGF2ZQo+Pj4+Pj4+Pj4+IGNvbXBsZXRlZCBqdXN0IGJlZm9yZSwgYW5k IHNvIHRoaXMgd291bGQgY2xhaW0gd2UgZG9uJ3QgaGF2ZSB0bwo+Pj4+Pj4+Pj4+IHdhaXQgZm9y IHRoZSBwb3dlcl9jeWNsZV9kZWxheS4KPj4+Pj4+Pj4+IE5vdCBzdXJlIEkgdW5kZXJzdGFuZCB5 b3VyIGNvbmNlcm4gY29ycmVjdGx5LiBZb3UgYXJlIHJpZ2h0LCBwb3dlcgo+Pj4+Pj4+Pj4gZG93 biBjeWNsZSBtYXkgaGF2ZSBjb21wbGV0ZWQganVzdCBiZWZvcmUgYW5kIGlmIGl0IGhhcyB0aGVu IHdlIGRvbid0Cj4+Pj4+Pj4+PiBuZWVkIHRvIHdhaXQuIEJ1dCBpbiBjYXNlIHRoZSBwb3dlciBk b3duIGN5Y2xlIGlzIGluIHByb2dyZXNzIGFzIHBlcgo+Pj4+Pj4+Pj4gaW50ZXJuYWwgc3RhdGUs IHRoZW4gd2UgbmVlZCB0byB3YWl0IGZvciBpdCB0byBjb21wbGV0ZS4gVGhpcyB3aWxsCj4+Pj4+ Pj4+PiBoYXBwZW4gZm9yIGV4YW1wbGUgaW4gbm9uLXN1c3BlbmQgZGlzYWJsZSBwYXRoIGFuZCB3 aWxsIGJlIGhhbmRsZWQKPj4+Pj4+Pj4+IGNvcnJlY3RseS4gSW4gY2FzZSBvZiBhY3R1YWwgc3Vz cGVuZC9yZXN1bWUsIHRoaXMgd291bGQgaGF2ZQo+Pj4+Pj4+Pj4gc3VjY2Vzc2Z1bGx5IGNvbXBs ZXRlZCBhbmQgd2lsbCBza2lwIHRoZSB3YWl0IGFzIGl0IGlzIG5vdCBuZWVkZWQKPj4+Pj4+Pj4+ IGJlZm9yZSBlbmFibGluZyBwYW5lbCBwb3dlci4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+ICsKPj4+ Pj4+Pj4+Pj4gICAgIHN0YXRpYyBib29sIGVkcF9oYXZlX3BhbmVsX3ZkZChzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwKQo+Pj4+Pj4+Pj4+PiAgICAgewo+Pj4+Pj4+Pj4+PiAgICAgICAgICBzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKTsKPj4+Pj4+Pj4+ Pj4gQEAgLTIwMjUsNyArMjAzOSw4IEBAIHN0YXRpYyB2b2lkIGVkcF9wYW5lbF9vbihzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwKQo+Pj4+Pj4+Pj4+PiAgICAgICAgICAgICAgICAgICBwb3J0X25h bWUoZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApLT5wb3J0KSkpCj4+Pj4+Pj4+Pj4+ICAgICAgICAg ICAgICAgICAgcmV0dXJuOwo+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+PiAtICAgICB3YWl0X3BhbmVs X3Bvd2VyX2N5Y2xlKGludGVsX2RwKTsKPj4+Pj4+Pj4+Pj4gKyAgICAgaWYgKGVkcF9wYW5lbF9v ZmZfc2VxKGludGVsX2RwKSkKPj4+Pj4+Pj4+Pj4gKyAgICAgICAgICAgICB3YWl0X3BhbmVsX3Bv d2VyX2N5Y2xlKGludGVsX2RwKTsKPj4+Pj4+Pj4gTG9va2luZyBpbiBmcm9tIHRoZSBzaWRlLCBJ IGhhdmUgbm8gaWRlYSB3aGF0IHRoaXMgaXMgbWVhbnQgdG8gZG8uIEF0Cj4+Pj4+Pj4+IHRoZSB2 ZXJ5IGxlYXN0IHlvdSBuZWVkIHlvdXIgZXhwbGFuYXRvcnkgcGFyYWdyYXBoIGhlcmUgd2hpY2gg d291bGQKPj4+Pj4+Pj4gaW5jbHVkZSB3aGF0IGV4YWN0bHkgeW91IGFyZSB3YWl0aW5nIGZvciBh dCB0aGUgc3RhcnQgb2YgZWRwX3BhbmVsX29uCj4+Pj4+Pj4+IChhbmQgcGxlYXNlIHRyeSBhbmQg ZmluZCBhIGJldHRlciBuYW1lIGZvciBlZHBfcGFuZWxfb2ZmX3NlcSgpKS4KPj4+Pj4+PiBJIHdp bGwgYWRkIGEgY29tbWVudC4gQmFzaWNhbGx5IEkgYW0gbm90IGFkZGl0aW9uYWxseSB3YWl0aW5n LCBidXQKPj4+Pj4+PiBjb252ZXJ0aW5nIHRoZSB3YWl0IHdoaWNoIHdhcyBhbHJlYWR5IHRoZXJl IHRvIGEgY29uZGl0aW9uYWwgd2FpdC4gVGhlCj4+Pj4+Pj4gZWRwX3BhbmVsX29mZl9zZXEsIGNo ZWNrcyBpZiBwYW5lbCBwb3dlciBkb3duIHNlcXVlbmNlIGlzIGluIHByb2dyZXNzLgo+Pj4+Pj4+ IEluIHRoYXQgY2FzZSB3ZSBuZWVkIHRvIHdhaXQgZm9yIHRoZSBwYW5lbCBwb3dlciBjeWNsZSBk ZWxheS4gSWYgaXQgaXMKPj4+Pj4+PiBub3QgaW4gdGhhdCBzZXF1ZW5jZSwgdGhlcmUgaXMgbm8g bmVlZCB0byB3YWl0LiBJIHdpbGwgbWFrZSBhbiBhdHRlbXB0Cj4+Pj4+Pj4gYWdhaW4gb24gdGhl IG5hbWluZyBpbiBuZXh0IHBhdGNoIHVwZGF0ZS4KPj4+Pj4+IEFzIGZhciBJIHJlbWViZXIgeW91 IG5lZWQgdG8gd2FpdCBmb3IgcG93ZXJfY3ljbGVfZGVsYXkgYmV0d2VlbiBwb3dlcgo+Pj4+Pj4g ZG93biBjeWNsZSBhbmQgcG93ZXIgdXAgY3ljbGUuIFlvdSdyZSB0cnlpbmcgdG8gdGhyb3cgdGhh dCB3YWl0IGF3YXkKPj4+Pj4+IGVudGlyZWx5LCB1bmxlc3MgdGhlIGZ1bmN0aW9uIGhhcHBlbnMg Z2V0IGNhbGxlZCB3aGlsZSB0aGUgcG93ZXIgZG93bgo+Pj4+PiBZZXMgeW91IGFyZSByaWdodCBh bmQgSSByZWFsaXplIEkgbWFkZSBhIG1pc3Rha2UgaW4gbXkgcGF0Y2ggd2hpY2ggaXMKPj4+Pj4g bm90IGNoZWNraW5nIFBQX0NZQ0xFX0RFTEFZX0FDVElWRSBiaXQuCj4+Pj4+Cj4+Pj4+PiBjeWNs ZSBpcyBzdGlsbCBpbiBwcm9ncmVzcy4gV2Ugc2hvdWxkIGFscmVhZHkgb3B0aW1pemUgYXdheSBy ZWR1bmRhbnQKPj4+Pj4+IHdhaXRzIGJ5IHRyYWNraW5nIHRoZSBlbmQgb2YgdGhlIHBvd2VyIGRv d24gY3ljbGUgd2l0aCB0aGUgamlmZmllcwo+Pj4+Pj4gdHJhY2tpbmcuCj4+Pj4+Pgo+Pj4+Pj4g QWN0dWFsbHkgbG9va2luZyBhdCB0aGUgY29kZSB0aGUgcG93ZXJfY3ljbGVfZGVsYXkgZ2V0cyBj b3VudGVkIGZyb20KPj4+Pj4+IHRoZSBzdGFydCBvZiB0aGUgbGFzdCBwb3dlciBkb3duIGN5Y2xl LCBzbyBzdXBwb3NlZGx5IGl0J3MgYWx3YXlzIGF0Cj4+Pj4+PiBsZWFzdCBhcyBsb25nIGFzIHRo ZSBwb3dlciBkb3duIGN5Y2xlLCBhbmQgdHlwaWNhbGx5IGl0J3MgcXVpdGUgYSBiaXQKPj4+Pj4+ IGxvbmdlciB0aGF0IHRoYXQuIEJ1dCB0aGF0IGRvZXNuJ3QgY2hhbmdlIHRoZSBmYWN0IHRoYXQg eW91IGNhbid0Cj4+Pj4+PiBqdXN0IHNraXAgaXQgYmVjYXVzZSB0aGUgcG93ZXIgZG93biBjeWNs ZSBkZWxheSBoYXBwZW5lZCB0byBlbmQKPj4+Pj4+IGFscmVhZHkuCj4+Pj4+Pgo+Pj4+Pj4gU28g d2hhdCB3ZSBkbyBub3cgaXM6Cj4+Pj4+PiAxLiBpbml0aWF0ZSBwb3dlciBkb3duIGN5Y2xlCj4+ Pj4+PiAyLiBsYXN0X3Bvd2VyX2N5Y2xlPWppZmZpZXMKPj4+Pj4+IDMuIHdhaXQgZm9yIHBvd2Vy IGRvd24gKEkgc3VwcG9zZSB0aGlzIGFjdHVhbGx5IHdhaXRzCj4+Pj4+PiAgICAgICB1bnRpbCB0 aGUgcG93ZXIgZG93biBkZWxheSBoYXMgcGFzc2VkIHNpbmNlIHRoYXQncwo+Pj4+Pj4gICAgICAg cHJvZ3JhbW1lcyBpbnRvIHRoZSBQUFMpLgo+Pj4+Pj4gNC4gd2FpdCBmb3IgcG93ZXJfY3ljbGVf ZGVsYXkgZnJvbSBsYXN0X3Bvd2VyX2N5Y2xlCj4+Pj4+PiA1LiBpbml0aWF0ZSBwb3dlciB1cCBj eWNsZQo+Pj4+Pj4KPj4+Pj4+IEkgdGhpbmsgd2l0aCB5b3VyIHBhdGNoIHN0ZXAgNCB3b3VsZCBh bHdheXMgYmUgc2tpcHBlZCBzaW5jZSB0aGUKPj4+Pj4+IHBvd2VyIGRvd24gY3ljbGUgaGFzIGFs cmVhZHkgZW5kZWQsIGFuZCB0aGVuIHdlIGZhaWwgdG8gaG9ub3IgdGhlCj4+Pj4+PiBwb3dlciBj eWNsZSBkZWxheS4KPj4+Pj4gWWVzLCBJIGFncmVlLiBJIG1pc3NlZCBjaGVja2luZyBmb3IgUFBf Q1lDTEVfREVMQVlfQUNUSVZFLiBBZGRpbmcgdGhhdAo+Pj4+PiBjaGVjayB3aWxsIHRha2UgY2Fy ZSBvZiB0aGlzIHNjZW5hcmlvIEkgZ3Vlc3MgPwo+Pj4+IE5vcGUuIFRoZSB2ZGQgZm9yY2UgYml0 IGRvZXNuJ3QgcmVzcGVjdCB0aGUgUFBTIHN0YXRlIG1hY2hpbmUsIHNvIHdlCj4+Pj4gbXVzdCBk byB0aGUgd2FpdHMgbWFudWFsbHkgaW5zdGVhZC4gQW5kIGluIHRoZW9yeSB5b3VyIHBhdGNoIHdv dWxkbid0Cj4+Pj4gZG8gYW55dGhpbmcgYW55d2F5IHNpbmNlIHRoZSBzbGVlcCBhbHJlYWR5IHRh a2VzIGludG8gYWNjb3VudCB3aGVuIHRoZQo+Pj4+IHBvd2VyIGN5Y2xlIGRlbGF5IHN0YXJ0ZWQu Cj4+Pj4KPj4+PiBUaGUgZmFjdCB0aGF0IHdlIHVzZSBtc2xlZXAoKSBtYXkgYWN0dWFsbHkgbWFr ZSB0aG9zZSBzbGVlcHMgc29tZXdoYXQKPj4+PiBsb25nZXIsIGFuZCBtYXliZSB3ZSBzaG91bGQg YWxzbyB0aGluayBhYm91dCBzd2l0Y2hpbmcgdG8gdXNsZWVwX3JhbmdlKCkKPj4+PiBoZXJlLgo+ Pj4gT2gsIGFuZCB3ZSBtYXkgd2FudCB0byBzdG9wIHVzaW5nIHRoZSBwb3dlciBzZXF1ZW5jZXIg Zm9yY2VkIGRlbGF5LAo+Pj4gYXQgbGVhc3QgZm9yIHRoZSBwb3dlciB1cCBkZWxheSBzaW5jZSB3 ZSBjb3VsZCB0aGVuIHNwZWVkIHVwIHRoZSBwb3dlcgo+Pj4gdXAgdGltZSBieSB3YWl0aW5nIGZv ciB0aGUgbG9uZyBIUEQgaW5zdGVhZC4gQ2xpbnQgZXZlbiBzZW50IGEgcGF0Y2ggZm9yCj4+PiB0 aGF0LCBidXQgSSBkb24ndCB0aGluayBpdCBhY3R1YWxseSBjaGFuZ2UgdGhlIFBQUyBkZWxheXMu IEJ1dCBtYXliZQo+Pj4gdGhlIFBQUyB3b24ndCByZWFsbHkga2ljayBpbiBkdWUgdG8gb3VyIHVz ZSBvZiB0aGUgdmRkIGZvcmNlIGJpdCBkdXJpbmcKPj4+IHBhbmVsIHBvd2VyIHVwPwo+Pj4KPj4+ IFRoZSBiYWhhdmlvdXIgb2YgdGhlIFBQUyBkZWxheXMgdnMuIHRoZSB2ZGQgZm9yY2UgYml0IGlz bid0IGFjdHVhbGx5Cj4+PiBkb2N1bWVudGVkLCBzbyBpdCB3b3VsZCBiZSBzb21ldGhpbmcgdGhh dCBjb3VsZCBiZSBzdHVkaWVkIGEgYml0IGJ5Cj4+PiBiYW5naW5nIG9uIHRoZSBoYXJkd2FyZS4g UHJvYmFibHkgYmVzdCBkb25lIG9uIGEgbWFjaGluZSB3aGVyZSB0aGVyZSdzCj4+PiBubyBsb2Nh bCBwYW5lbCB0byBhdm9pZCBkYW1hZ2luZyBpdCBpZiB0aGluZ3MgZ28gYmFkLgo+PiBpIHRoaW5r IGkgdXBkYXRlZCBhYm91dCB1c2luZyBocGQvZWRpZCByZWFkIGluc3RlYWQgb2Ygd2FpdGluZyBl bnRpcmUgVDMKPj4gZGVsYXkgZm9yIHBvd2VyIG9uCj4+IGR1cmluZyBJUkMgY2hhdCBzb21ldGlt ZSBiYWNrIHRvIGRhbnZldC4gaW4gc2hvcnQgaXQgZG9lcyBub3Qgd29yayBhY3Jvc3MKPj4gYWxs IHBhbmVscywgaXQgY2F1c2VzIGJsb29taW5nIGVmZmVjdCBvbiBzb21lIHBhbmVscyByZXN1bHRp bmcgaW4gcGFuZWwKPj4gZmFpbGluZwo+PiB0byB0dXJuIG9uLCB3aGljaCB3aWxsIGFsc28gYWZm ZWN0IHBhbmVsIGxpZmUuCj4gOiggSSB3YXMgaG9waW5nIHdlIGNvdWxkIHVzZSBpdCBmb3IgZURQ LCBidXQgSSBndWVzcyBiZWluZyBhbiBvcHRpbWlzdAo+IHdoZW4gaXQgY29tZXMgdG8gaGFyZHdh cmUgbmV2ZXIgcGF5cyBvZmYuCj4KPiBJIHdvbmRlciBpZiB3ZSBjb3VsZCBhdCBsZWFzdCBzdGFy dCBkb2luZyBzb21lIG9mIHRoZSBBVVggY29tbXVuaWNhdGlvbgo+IHNvb25lci4gVGhhdCBpcywg bWF5YmUgd2UgY2FuIGRvIGF0IGxlYXN0IHRoZSBEUF9MSU5LX0JXX1NFVCBhbmQgdGhlCj4gRFBf RE9XTlNQUkVBRF9DVFJMIERQQ0Qgd3JpdGVzIGFmdGVyIGdldHRpbmcgdGhlIEhQRCwgYW5kIG9u bHkgdGhlbgo+IHdhaXQgZm9yIHRoZSBlbmQgb2YgdGhlIHBvd2VyIG9uIGRlbGF5IGp1c3QgYmVm b3JlIHN0YXJ0aW5nIHRoZQo+IGxpbmsgdHJhaW5pbmc/IEFuZCB0aGUgc2FtZSBmb3IgYW55IG90 aGVyIEFVWCBjaGF0dGVyIHdoZW4gdGhlIHBhbmVsCj4gaXMgb3RoZXJ3aXNlIHBvd2VyZWQgb2Zm Pwo+CjopIHR3byBwYXJ0cyB0byBvcHRpbWl6YXRpb24gb2Ygc3VjaCBEUENEIGF1eCBjb21tdW5p Y2F0aW9ucwoxKSB0aGV5IGNhbiBjaGFuZ2UgZHVyaW5nIG1vZGVzZXQgc28gd2UgY2FuIG5ldmVy IGJlIHN1cmUgaWYgdGhlIHZhbHVlIAp3aWxsIGJlIGZpbmFsCjIpIHRob3NlIGFyZSB0b28gc21h bGwgb3BlcmF0aW9ucyB0byBoZWxwIGluIGFueSBtYWpvciB3YXkgZm9yIHBvd2VyIG9uLgoKU29t ZSBtb3JlIGNvc3RseS90aW1lIGNvbnN1bWluZyBvcGVyYXRpb25zIHdlIGNhbiBvcHRpbWl6ZSB0 byAiYm9vdCB0byAKZWRwIiBhcmUKMSkgYXZvaWQgVkREICYgUFBTIG9uLzBmZi4gaS5lICB0b3Rh bGx5IGF2b2lkIGRvaW5nIGFueSBtb2Rlc2V0IG9wLCAKc2luY2UgZURQIHVzdWFsbHkKaGFzIG9u ZSBvciB0d28gbW9kZXMgaXQgaXMgaGlnaGx5IGxpa2VseSB0aGF0IHdlIHdpbGwgYXBwbHkgdGhl IHNhbWUgbW9kZQpicm91Z2h0IHVwIGJ5IEJJT1MsIHNvIGFueSBlZmZvcnQgb24gb3VyIHNpZGUg aXMganVzdCByZWRvaW5nIHN0dWZmLgoyKSBpZiB0aGUgYWJvdmUgaXMgbm90IHBvc3NpYmxlLCB3 ZSBjYW4gcmVtb3ZlIGFzIG11Y2ggb2YgVkREIG9mZi9vbgppbiBvdXIgZmxvdyBhcyBwb3NzaWJs ZS4oZWFjaCBvZmYgd2lsbCB0YWtlIHRoZSBlbnRpcmUgUG93ZXIgZG93biBkZWxheSB0aW1lCmFu ZCB0aGUgbmV4dCBvbiB3aWxsIHRha2UgcG93ZXIgb24gZGVsYXkgdGltZSkKMykgb3VyIGRwY2Qg cmVhZC93cml0ZSBsb2dpYyBzaG91bGQgYmUgb3B0aW1pemVkLCBvdXIgd2hvbGUgTGluayB0cmFp bmluZwpvbiBDSFQgaXMgdGFraW5nIH4xNW1zLCB3aGljaCBzaG91bGQgaGF2ZSBiZWVuIGNvbXBs ZXRlZCBpbiB1bmRlciAxMG1zLgoKaWYgd2UgaW1wbGVtZW50IHBvaW50IDEgYWJvdmUgZm9yIGJv b3QvczQgcmVzdW1lIHdlIGNhbiBicmluZyBkb3duIG1vZGVzZXQKdGltZSBmb3IgZWRwIGFsb25l IHNjZW5hcmlvIHRvIGZldyBtcy4KaSBkb24ndCB3YW50IHRvIGtlZXAgdGFsa2luZyBidXQgbm90 IGRvaW5nIGFueXRoaW5nLCB3aWxsIGZpbmlzaCBteSAKY29tcGxpYW5jZQphY3Rpdml0aWVzIChp bmNsdWRpbmcgdXBzdHJlYW1pbmcpIGFuZCB0aGVuIHdpbGwgdHJ5IHRvIHRhcmdldCBlYWNoIG9m IAp0aGUgYWJvdmUuIDopCgpyZWdhcmRzLApTaXZha3VtYXIKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==