From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrzej Hajda Subject: Re: [PATCH v2 1/2] drm/mipi-dsi: add (LPM) Low Power Mode transfer support Date: Mon, 11 Aug 2014 10:05:20 +0200 Message-ID: <53E87940.5010002@samsung.com> References: <20140807065801.GD17340@ulmo> <53E32FF6.6050402@samsung.com> <20140807090859.GD13315@ulmo.nvidia.com> <53E3599F.3020301@samsung.com> <20140807110925.GA31594@ulmo.nvidia.com> <53E379A8.1020506@samsung.com> <20140807131713.GB1540@ulmo.nvidia.com> <53E38191.1050308@samsung.com> <20140807135500.GA27417@ulmo.nvidia.com> <53E42BCB.5090608@samsung.com> <20140808070311.GA5387@ulmo> <53E47E23.1050302@samsung.com> <53E4921D.3090907@samsung.com> <53E49AF4.5020403@samsung.com> <53E86C31.2020702@samsung.com> <53E8745E.8080107@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-reply-to: <53E8745E.8080107@samsung.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Inki Dae Cc: treding@nvidia.com, linux-samsung-soc@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: linux-samsung-soc@vger.kernel.org T24gMDgvMTEvMjAxNCAwOTo0NCBBTSwgQW5kcnplaiBIYWpkYSB3cm90ZToKPiBPbiAwOC8xMS8y MDE0IDA5OjA5IEFNLCBJbmtpIERhZSB3cm90ZToKPj4gT24gMjAxNOuFhCAwOOyblCAwOOydvCAx ODo0MCwgQW5kcnplaiBIYWpkYSB3cm90ZToKPj4+IE9uIDA4LzA4LzIwMTQgMTE6MDIgQU0sIEFu ZHJ6ZWogSGFqZGEgd3JvdGU6Cj4+Pj4gT24gMDgvMDgvMjAxNCAwOTozNyBBTSwgSW5raSBEYWUg d3JvdGU6Cj4+Pj4+IE9uIDIwMTTrhYQgMDjsm5QgMDjsnbwgMTY6MDMsIFRoaWVycnkgUmVkaW5n IHdyb3RlOgo+Pj4+Pj4gT24gRnJpLCBBdWcgMDgsIDIwMTQgYXQgMTA6NDU6NDdBTSArMDkwMCwg SW5raSBEYWUgd3JvdGU6Cj4+Pj4+Pj4gT24gMjAxNOuFhCAwOOyblCAwN+ydvCAyMjo1NSwgVGhp ZXJyeSBSZWRpbmcgd3JvdGU6Cj4+Pj4+Pj4+IE9uIFRodSwgQXVnIDA3LCAyMDE0IGF0IDEwOjM5 OjI5UE0gKzA5MDAsIElua2kgRGFlIHdyb3RlOgo+Pj4+Pj4+Pj4gT24gMjAxNOuFhCAwOOyblCAw N+ydvCAyMjoxNywgVGhpZXJyeSBSZWRpbmcgd3JvdGU6Cj4+Pj4+Pj4+Pj4gT24gVGh1LCBBdWcg MDcsIDIwMTQgYXQgMTA6MDU6NDRQTSArMDkwMCwgSW5raSBEYWUgd3JvdGU6Cj4+Pj4+Pj4+Pj4+ IE9uIDIwMTTrhYQgMDjsm5QgMDfsnbwgMjA6MDksIFRoaWVycnkgUmVkaW5nIHdyb3RlOgo+Pj4+ Pj4+Pj4+Pj4gT24gVGh1LCBBdWcgMDcsIDIwMTQgYXQgMDc6NDk6MDNQTSArMDkwMCwgSW5raSBE YWUgd3JvdGU6Cj4+Pj4+Pj4+Pj4+Pj4gT24gMjAxNOuFhCAwOOyblCAwN+ydvCAxODowOSwgVGhp ZXJyeSBSZWRpbmcgd3JvdGU6Cj4+Pj4+Pj4+Pj4+Pj4+IE9uIFRodSwgQXVnIDA3LCAyMDE0IGF0 IDA0OjUxOjE4UE0gKzA5MDAsIElua2kgRGFlIHdyb3RlOgo+Pj4+Pj4+Pj4+Pj4+Pj4gT24gMjAx NOuFhCAwOOyblCAwN+ydvCAxNTo1OCwgVGhpZXJyeSBSZWRpbmcgd3JvdGU6Cj4+Pj4+Pj4+Pj4+ Pj4+Pj4gT24gVGh1LCBBdWcgMDcsIDIwMTQgYXQgMDI6MDk6MTlBTSArMDkwMCwgSW5raSBEYWUg d3JvdGU6Cj4+Pj4+Pj4+Pj4+Pj4+Pj4+IDIwMTQtMDgtMDYgMTY6NDMgR01UKzA5OjAwIFRoaWVy cnkgUmVkaW5nIDx0aGllcnJ5LnJlZGluZ0BnbWFpbC5jb20+Ogo+Pj4+Pj4+Pj4+Pj4+PiBbLi4u XQo+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gQXMgZmFyIGFzIEkgY2FuIHRlbGwgbm9uLWNvbnRpbnVvdXMg bW9kZSBzaW1wbHkgbWVhbnMgdGhhdCB0aGUgaG9zdCBjYW4KPj4+Pj4+Pj4+Pj4+Pj4+Pj4+IHR1 cm4gb2ZmIHRoZSBIUyBjbG9jayBhZnRlciBhIGhpZ2gtc3BlZWQgdHJhbnNtaXNzaW9uLiBJIHRo aW5rIEFuZHJ6ZWoKPj4+Pj4+Pj4+Pj4+Pj4+Pj4+IG1lbnRpb25lZCB0aGlzIGFscmVhZHkgaW4g YW5vdGhlciBzdWJ0aHJlYWQsIGJ1dCB0aGlzIGlzIGFuIG9wdGlvbmFsCj4+Pj4+Pj4+Pj4+Pj4+ Pj4+PiBtb2RlIHRoYXQgcGVyaXBoZXJhbHMgY2FuIHN1cHBvcnQgaWYgdGhleSBoYXZlIGV4dHJh IGNpcmN1aXRyeSB0aGF0Cj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiBwcm92aWRlcyBhbiBpbnRlcm5hbCBj bG9jay4gUGVyaXBoZXJhbHMgdGhhdCBkb24ndCBoYXZlIHN1Y2ggY2lyY3VpdHJ5Cj4+Pj4+Pj4+ Pj4+Pj4+Pj4+PiBtYXkgcmVseSBvbiB0aGUgSFMgY2xvY2sgdG8gcGVyZm9ybSBpbiBiZXR3ZWVu IHRyYW5zbWlzc2lvbnMgYW5kCj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiB0aGVyZWZvcmUgcmVxdWlyZSB0 aGUgSFMgY2xvY2sgdG8gYmUgYWx3YXlzIG9uIChjb250aW51b3VzIG1vZGUpLiBUaGF0J3MKPj4+ Pj4+Pj4+Pj4+Pj4+Pj4+IHdoYXQgdGhlIE1JUElfRFNJX0NMT0NLX05PTl9DT05USU5VT1VTIGZs YWcgaXM6IGl0IGFkdmVydGlzZXMgdGhhdCB0aGUKPj4+Pj4+Pj4+Pj4+Pj4+Pj4+IHBlcmlwaGVy YWwgc3VwcG9ydHMgbm9uLWNvbnRpbnVvdXMgbW9kZSBhbmQgdGhlcmVmb3JlIHRoZSBob3N0IGNh biB0dXJuCj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiB0aGUgSFMgY2xvY2sgb2ZmIGFmdGVyIGhpZ2gtc3Bl ZWQgdHJhbnNtaXNzaW9ucy4KPj4+Pj4+Pj4+Pj4+Pj4+Pj4gV2hhdCBJIGRvbid0IG1ha2Ugc3Vy ZSBpcyB0aGlzIHNlbnRlbmNlLiBXaXRoCj4+Pj4+Pj4+Pj4+Pj4+Pj4+IE1JUElfRFNJX0NMT0NL X05PTl9DT05USVVPVVMgZmxhZywgSSBndWVzcyB0d28gcG9zc2libGUgb3BlcmF0aW9ucy4KPj4+ Pj4+Pj4+Pj4+Pj4+Pj4gT25lIGlzLAo+Pj4+Pj4+Pj4+Pj4+Pj4+PiAxLiBob3N0IGNvbnRyb2xs ZXIgd2lsbCBnZW5lcmF0ZXMgc2lnbmFscyBpZiBhIGJpdCBvZiBhIHJlZ2lzdGVyCj4+Pj4+Pj4+ Pj4+Pj4+Pj4+IHJlbGF0ZWQgdG8gbm9uLWNvbnRpZ3VvdXMgY2xvY2sgbW9kZSBpcyBzZXQgb3Ig dW5zZXQuCj4+Pj4+Pj4+Pj4+Pj4+Pj4+IDIuIEFuZCB0aGVuIHZpZGVvIGRhdGEgaXMgdHJhbnNt aXR0ZWQgdG8gcGFuZWwgaW4gSFMgbW9kZS4KPj4+Pj4+Pj4+Pj4+Pj4+Pj4gMy4gQW5kIHRoZW4g RC1QSFkgZGV0ZWN0cyBMUC0xMSBzaWduYWwgKHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSBsYW5lIGFs bAo+Pj4+Pj4+Pj4+Pj4+Pj4+PiBhcmUgaGlnaCkuCj4+Pj4+Pj4+Pj4+Pj4+Pj4+IDQuIEFuZCB0 aGVuIEQtUEhZIGRpc2FibGVzIEhTIGNsb2NrIG9mIGhvc3QgY29udHJvbGxlci4KPj4+Pj4+Pj4+ Pj4+Pj4+Pj4gNS4gQXQgdGhpcyB0aW1lLCBvcGVyYXRpb24gbW9kZSBvZiBob3N0IGNvbnRyb2xs ZXIgYmVjb21lcyBMUE0uCj4+Pj4+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4+Pj4+IE90aGVy IGlzLAo+Pj4+Pj4+Pj4+Pj4+Pj4+PiAxLiBob3N0IGNvbnRyb2xsZXIgd2lsbCBnZW5lcmF0ZXMg c2lnbmFscyBpZiBhIGJpdCBvZiBhIHJlZ2lzdGVyCj4+Pj4+Pj4+Pj4+Pj4+Pj4+IHJlbGF0ZWQg dG8gbm9uLWNvbnRpZ3VvdXMgY2xvY2sgbW9kZSBpcyBzZXQgb3IgdW5zZXQuCj4+Pj4+Pj4+Pj4+ Pj4+Pj4+IDIuIEFuZCB0aGVuIEQtUEhZIGRldGVjdHMgTFAtMTEgc2lnbmFsIChwb3NpdGl2ZSBh bmQgbmVnYXRpdmUgbGFuZSBhbGwKPj4+Pj4+Pj4+Pj4+Pj4+Pj4gYXJlIGhpZ2gpLgo+Pj4+Pj4+ Pj4+Pj4+Pj4+PiAzLiBBbmQgdGhlbiB2aWRlbyBkYXRhIGlzIHRyYW5zbWl0dGVkIHRvIHBhbmVs IGluIExQTS4KPj4+Pj4+Pj4+Pj4+Pj4+Pj4gNC4gQXQgdGhpcyB0aW1lLCBvcGVyYXRpb24gbW9k ZSBvZiBob3N0IGNvbnRyb2xsZXIgYmVjb21lcyBMUE0uCj4+Pj4+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+ Pj4+Pj4+Pj4+Pj4+IEl0IHNlZW1zIHRoYXQgeW91IHNheXMgbGF0dGVyIGNhc2UuCj4+Pj4+Pj4+ Pj4+Pj4+Pj4gTm8uIEhpZ2ggc3BlZWQgY2xvY2sgYW5kIGxvdyBwb3dlciBtb2RlIGFyZSBvcnRo b2dvbmFsLiBOb24tY29udGludW91cwo+Pj4+Pj4+Pj4+Pj4+Pj4+IG1vZGUgc2ltcGx5IG1lYW5z IHRoYXQgdGhlIGNsb2NrIGxhbmUgZW50ZXJzIExQLTExIGJldHdlZW4gSFMKPj4+Pj4+Pj4+Pj4+ Pj4+PiB0cmFuc21pc3Npb25zIChzZWUgNS42ICJDbG9jayBNYW5hZ2VtZW50IiBvZiB0aGUgRFNJ IHNwZWNpZmljYXRpb24pLgo+Pj4+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4+PiBJdCBzZWVt cyB0aGF0IGNsb2NrIGxhbmUgZW50ZXJzIExQLTExIHJlZ2FyZGxlc3Mgb2YgSFMgY2xvY2sgZW5h YmxlZCBpZgo+Pj4+Pj4+Pj4+Pj4+Pj4gbm9uLWNvbnRpbm91cyBtb2RlIGlzIHVzZWQuIFJpZ2h0 Pwo+Pj4+Pj4+Pj4+Pj4+PiBObywgSSB0aGluayBhcyBsb25nIGFzIEhTIGNsb2NrIGlzIGVuYWJs ZWQgdGhlIGNsb2NrIGxhbmUgd29uJ3QgZW50ZXIKPj4+Pj4+Pj4+Pj4+Pj4gTFAtMTEuIE5vbi1j b250aW51b3VzIG1vZGUgbWVhbnMgdGhhdCB0aGUgY29udHJvbGxlciBjYW4gZGlzYWJsZSB0aGUg SFMKPj4+Pj4+Pj4+Pj4+Pj4gY2xvY2sgYmV0d2VlbiBIUyB0cmFuc21pc3Npb25zLiBTbyBpbiBu b24tY29udGludW91cyBtb2RlIHRoZSBjbG9jayBsYW5lCj4+Pj4+Pj4+Pj4+Pj4+IGNhbiBlbnRl ciBMUC0xMSBiZWNhdXNlIHRoZSBjb250cm9sbGVyIGRpc2FibGVzIHRoZSBIUyBjbG9jay4KPj4+ Pj4+Pj4+Pj4+PiBJdCBtYWtlcyBtZSBhIGxpdHRsZSBiaXQgY29uZnVzaW5nLiBZb3Ugc2FpZCAi aWYgSFMgY2xvY2sgaXMgZW5hYmxlZCwKPj4+Pj4+Pj4+Pj4+PiB0aGUgdGhlIGNsb2NrIGxhbmUg d29uJ3QgZW50ZXIgTFAtMTEiIEJ1dCB5b3Ugc2FpZCBhZ2FpbiAidGhlIGNsb2NrIGxhbmUKPj4+ Pj4+Pj4+Pj4+PiBjYW4gZW50ZXIgTFAtMTEgYmVjYXVzZSB0aGUgY29udHJvbGxlciBkaXNhYmxl cyB0aGUgSFMgY2xvY2siIFdoYXQgaXMKPj4+Pj4+Pj4+Pj4+PiB0aGUgbWVhbmluZz8KPj4+Pj4+ Pj4+Pj4+IEl0IG1lYW5zIHRoYXQgaWYgdGhlIEhTIGNsb2NrIGlzIGVuYWJsZWQsIHRoZW4gdGhl IGNsb2NrIGxhbmUgaXMgbm90IGluCj4+Pj4+Pj4+Pj4+PiBMUC0xMS4gV2hlbiB0aGUgSFMgY2xv Y2sgc3RvcHMsIHRoZW4gdGhlIGNsb2NrIGxhbmUgZW50ZXJzIExQLTExLgo+Pj4+Pj4+Pj4+Pj4K Pj4+Pj4+Pj4+Pj4+Pj4gSW4gY29udGludW91cyBtb2RlLCB0aGVuIHRoZSBjbG9jayB3aWxsIG5l dmVyIGJlIGRpc2FibGVkLCBoZW5jZSB0aGUKPj4+Pj4+Pj4+Pj4+Pj4gY2xvY2sgbGFuZSB3aWxs IG5ldmVyIGVudGVyIExQLTExLgo+Pj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+Pj4gQW5kIGFs c28gaXQgc2VlbXMgdGhhdCBub24tY29udGlub3VzIG1vZGUgaXMgZGlmZmVyZW50IGZyb20gTFBN IGF0IGFsbAo+Pj4+Pj4+Pj4+Pj4+Pj4gYmVjYXVzZSB3aXRoIG5vbi1jb250aW51b3VzIG1vZGUs IGNvbW1hbmQgZGF0YSBpcyB0cmFuc21pdHRlZCB0byBwYW5lbAo+Pj4+Pj4+Pj4+Pj4+Pj4gaW4g SFMgbW9kZSwgYnV0IHdpdGggTFBNLCBjb21tYW5kIGRhdGEgaXMgdHJhbnNtaXR0ZWQgdG8gcGFu ZWwgaW4gTFAKPj4+Pj4+Pj4+Pj4+Pj4+IG1vZGUuIEFsc28gcmlnaHQ/Cj4+Pj4+Pj4+Pj4+Pj4+ IE5vLiBJIHRoaW5rIHlvdSBjYW4gc2VuZCBjb21tYW5kIGRhdGEgdG8gdGhlIHBlcmlwaGVyYWwg aW4gbG93IHBvd2VyCj4+Pj4+Pj4+Pj4+Pj4+IG1vZGUgaW4gYm90aCBjb250aW51b3VzIGFuZCBu b24tY29udGludW91cyBjbG9jayBtb2Rlcy4KPj4+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+Pj4+ IElmIHNvLCBzaG91bGRuJ3QgdGhlIGhvc3QgZHJpdmVyIGRpc2FibGUgSFMgY2xvY2ssIGluIGNh c2Ugb2YgTFAgbW9kZSwKPj4+Pj4+Pj4+Pj4+Pj4+IGJlZm9yZSB0aGUgaG9zdCBkcml2ZXIgdHJh bnNtaXRzIGNvbW1hbmQgZGF0YT8KPj4+Pj4+Pj4+Pj4+Pj4gTm8uIElmIHRoZSBwZXJpcGhlcmFs IGRvZXNuJ3Qgc3VwcG9ydCBub24tY29udGludW91cyBtb2RlLCB0aGVuIHRoZSBIUwo+Pj4+Pj4+ Pj4+Pj4+PiBjbG9jayBtdXN0IG5ldmVyIGJlIHR1cm5lZCBvZmYuIE9uIHRoZSBvdGhlciBoYW5k LCBpZiB0aGUgcGVyaXBoZXJhbAo+Pj4+Pj4+Pj4+Pj4+PiBzdXBwb3J0cyBub24tY29udGludW91 cyBtb2RlLCB0aGVuIHRoZSBEU0kgaG9zdCBzaG91bGQgYXV0b21hdGljYWxseQo+Pj4+Pj4+Pj4+ Pj4+PiBkaXNhYmxlIHRoZSBIUyBjbG9jayBiZXR3ZWVuIGhpZ2gtc3BlZWQgdHJhbnNtaXNzaW9u cy4gVGhhdCBtZWFucyBpZiBhCj4+Pj4+Pj4+Pj4+Pj4+IHBhY2tldCBpcyB0cmFuc21pdHRlZCBp biBsb3cgcG93ZXIgbW9kZSB0aGUgRFNJIGhvc3Qgd2lsbCBub3QgYmUKPj4+Pj4+Pj4+Pj4+Pj4g dHJhbnNtaXR0aW5nIGluIGhpZ2gtc3BlZWQgbW9kZSBhbmQgdGhlcmVmb3JlIGRpc2FibGUgdGhl IEhTIGNsb2NrLgo+Pj4+Pj4+Pj4+Pj4+IFdoYXQgaXMgTFBNIHlvdSB0aGluaz8gSSB0aG91Z2h0 IExQTSBpcyBMUC0xMSBhbmQgSFMgY2xvY2sgZGlzYWJsZWQuIFNvCj4+Pj4+Pj4+Pj4+Pj4gZm9y IExQTSB0cmFuc2ZlciwgbGFuZXMgc2hvdWxkIGJlIExQLTExIHN0YXRlIGFuZCBhbHNvIEhTIGNs b2NrIG9mIHRoZQo+Pj4+Pj4+Pj4+Pj4+IGhvc3QgY29udHJvbGxlciBzaG91bGQgYmUgZGlzYWJs ZWQuCj4+Pj4+Pj4+Pj4+PiBOby4gSSBkb24ndCB0aGluayBhbnkgdHJhbnNtaXNzaW9ucyBjYW4g aGFwcGVuIHdoZW4gYWxsIGxhbmVzIGFyZSBpbgo+Pj4+Pj4+Pj4+Pj4gTFAtMTEgc3RhdGUuIFRo ZSBNSVBJX0RTSV9NU0dfVVNFX0xQTSBpcyB1c2VkIHRvIHNwZWNpZnkgdGhhdCBhIHBhY2tldAo+ Pj4+Pj4+Pj4+Pj4gc2hvdWxkIGJlIHRyYW5zbWl0dGVkIGluIGxvdyBwb3dlciBtb2RlIChzZWUg TFAgVHJhbnNtaXNzaW9uIGluIDIuMQo+Pj4+Pj4+Pj4+Pj4gIkRlZmluaXRpb25zIiBvZiB0aGUg TUlQSSBEU0kgc3BlY2lmaWNhdGlvbikuCj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+PiBIbS4uIEkg c2VlLiBJIG1lYW50LAo+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+PiBpZiAoZmxhZ3MgJiBNSVBJX0RT SV9NU0dfVVNFX0xQTSkKPj4+Pj4+Pj4+Pj4gICAgICAgIGRpc2FibGUgSFMgY2xvY2sgPC0gcmVx dWlyZWQuCj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+IHRyYW5zbWl0IGNvbW1hbmQgZGF0YSA8LSBp biBMUE0uCj4+Pj4+Pj4+Pj4gTm8uIERpc2FibGluZyB0aGUgSFMgY2xvY2sgaXMgbm90IHJlcXVp cmVkIGZvciBMUE0gbW9kZS4gSW4gZmFjdCBpZiB0aGUKPj4+Pj4+Pj4+PiBwZXJpcGhlcmFsIHNw ZWNpZmllcyB0aGF0IGl0IGRvZXNuJ3Qgc3VwcG9ydCBub24tY29udGludW91cyBtb2RlIHRoZW4K Pj4+Pj4+Pj4+PiB0aGUgSFMgY2xvY2sgbXVzdCAqbmV2ZXIqIGJlIGRpc2FibGVkIGFzIGxvbmcg YXMgdGhlIHBlcmlwaGVyYWwgaXMgaW4KPj4+Pj4+Pj4+PiB1c2UuCj4+Pj4+Pj4+Pj4KPj4+Pj4+ Pj4+PiBNSVBJX0RTSV9NU0dfVVNFX0xQTSBhbmQgTUlQSV9EU0lfQ0xPQ0tfTk9OX0NPTlRJTlVP VVMgYXJlIHVucmVsYXRlZCBhbmQKPj4+Pj4+Pj4+PiBuZWVkIHRvIGJlIGNvbnNpZGVyZWQgc2Vw YXJhdGVseS4KPj4+Pj4+Pj4+IEkgbWVudGlvbmVkIGFscmVhZHkgTFBNIGFuZCBOT05fQ09OVElO VU9VUyBhcmUgdW5yZWxhdGVkLgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IEl0IHNlZW1zIHRoYXQgeW91 IHNheSB0aGUgb25seSB3YXkgdG8gdHJhbnNmZXIgY29tbWFuZCBkYXRhIGluIExQTSBpcwo+Pj4+ Pj4+Pj4gbm9uLWNvbnRpbnVvdXMgY2xvY2sgbW9kZS4KPj4+Pj4+Pj4gTm8sIHRoYXQncyBub3Qg d2hhdCBJJ20gc2F5aW5nLgo+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gSG93ZXZlciwgeW91IHNhaWQgYW5k IGFsc28gdGhlIHNwZWMgc2F5cywgIk5vbi1jb250aW51b3VzIG1vZGUgc2ltcGx5Cj4+Pj4+Pj4+ PiBtZWFucyB0aGF0IHRoZSBjbG9jayBsYW5lIGVudGVycyBMUC0xMSBiZXR3ZWVuIEhTIHRyYW5z bWlzc2lvbnMiLgo+Pj4+Pj4+Pj4gRG9lc24ndCAqYmV0d2VlbiBIUyB0cmFuc21pc3Npb25zIiBt ZWFuIHRoZSBjb21tYW5kIGRhdGEgaXMgdHJhbnNtaXR0ZWQKPj4+Pj4+Pj4+IGluIEhTLCAqbm90 IGluIExQTSosIGFuZCBjbG9jayBsYW5lIGVudGVycyBMUC0xMSBiZXR3ZWVuIHRoZW0/Cj4+Pj4+ Pj4+IE5vdCBuZWNlc3NhcmlseS4gWW91IGNhbiB0cmFuc21pdCBjb21tYW5kIHBhY2tldHMgaW4g aGlnaC1zcGVlZCBtb2RlLAo+Pj4+Pj4+PiBidXQgeW91IGRvbid0IGhhdmUgdG8uIElmIHlvdSB0 cmFuc21pdCBwYWNrZXRzIGluIGxvdyBwb3dlciBtb2RlLCB0aGVuCj4+Pj4+Pj4gVGhhdCB3b3Vs ZCBtYXkgd2h5IHdlIGFyZSBtZW50aW9uaW5nIHNhbWUgY29tbWVudHMgcmVwZWF0ZWRseS4KPj4+ Pj4+Pgo+Pj4+Pj4+IEluIG15IGNhc2UsIGhvc3QgZHJpdmVyIHdhaXRzIGZvciB0aGUgbGFuZSBz dG9wIHN0YXRlIChMUC0xMSksIGFuZCB0aGVuCj4+Pj4+Pj4gZGlzYWJsZXMgSFMgY2xvY2sgdG8g dHJhbnNtaXQgY29tbWFuZCBkYXRhIGluIExQTS4gT2YgY291cnNlLCBJJ20gbm90Cj4+Pj4+Pj4g c3VyZSB0aGF0IHlldCBpdCdzIGNvcnJlY3Qgd2F5Lgo+Pj4+Pj4gVGhhdCdzIGNvbmZ1c2luZy4g SG93IGNhbiB0aGUgbGFuZSBnbyB0byBMUC0xMSB3aGVuIHRoZSBjbG9jayBpcyBzdGlsbAo+Pj4+ Pj4gcnVubmluZz8KPj4+Pj4gQWN0dWFsbHksIHdlIGFyZSBkb2luZyBzby4gSWYgdGhlIGNsb2Nr IGlzIHN0aWxsIHJ1bm5pbmcgdGhlbiBkc2kgZHJpdmVyCj4+Pj4+IHdpbGwgd2FpdCBmb3Igc3Rv cCBzdGF0ZSBvZiB0aGUgY2xvY2sgYW5kIGRhdGEgbGFuZXMuIEtub3cgdGhhdCB0aGlzIGlzCj4+ Pj4+IHZhbGlkIG9ubHkgd2hlbiBpbml0aWFsIHRpbWUgLSBqdXN0IG9uZSB0aW1lIHNpbmNlIHBv d2VyIHVwLgo+Pj4+Pgo+Pj4+PiAJLyogQ2hlY2sgY2xvY2sgYW5kIGRhdGEgbGFuZSBzdGF0ZSBh cmUgc3RvcCBzdGF0ZSAqLwo+Pj4+PiAJdGltZW91dCA9IDEwMDsKPj4+Pj4gCWRvIHsKPj4+Pj4g CQlpZiAodGltZW91dC0tID09IDApIHsKPj4+Pj4gCQkJZGV2X2Vycihkc2ktPmRldiwgIndhaXRp bmcgZm9yIGJ1cyBsYW5lcyB0aW1lZCBvdXRcbiIpOwo+Pj4+PiAJCQlyZXR1cm4gLUVGQVVMVDsK Pj4+Pj4gCQl9Cj4+Pj4+Cj4+Pj4+IAkJcmVnID0gcmVhZGwoZHNpLT5yZWdfYmFzZSArIERTSU1f U1RBVFVTX1JFRyk7Cj4+Pj4+IAkJaWYgKChyZWcgJiBEU0lNX1NUT1BfU1RBVEVfREFUKGxhbmVz X21hc2spKQo+Pj4+PiAJCSAgICAhPSBEU0lNX1NUT1BfU1RBVEVfREFUKGxhbmVzX21hc2spKQo+ Pj4+PiAJCQljb250aW51ZTsKPj4+Pj4gCX0gd2hpbGUgKCEocmVnICYgKERTSU1fU1RPUF9TVEFU RV9DTEsgfCBEU0lNX1RYX1JFQURZX0hTX0NMSykpKTsKPj4+PiBUaGlzIGlzIG9ubHkgaW4gaW5p dGlhbGl6YXRpb24gcGhhc2Ugb2YgRFNJLiAnSWYnIGluc2lkZSB0aGUgbG9vcCBpcwo+Pj4+IHF1 aXRlIGNsZWFyCj4+Pj4gLSBpdCBjaGVja3MgZm9yIExQMTEgb24gYWxsIHJlcXVlc3RlZCBkYXRh IGxhbmVzLiAnd2hpbGUnIGNoZWNrIGlzCj4+Pj4gbGl0dGxlIGJpdCBzdXNwaWNpb3VzLgo+Pj4+ IEl0IHNlZW1zIHRvIGJlIG9ubHkgZm9yIG5vbi1jb250aW51b3VzIGNsb2NrIGJlaGF2aW9yLCBv biB0aGUgb3RoZXIgc2lkZQo+Pj4+IGl0IGlzIGFjY29yZGluZyB0byBndWlkZWxpbmVzCj4+Pj4g aW4gc3BlY3MuCj4+PiBBZnRlciByZXZpZXdpbmcgaXQgYWdhaW4gJ3doaWxlJyBjaGVjayBsb29r cyBPSyA6KSwgc29ycnkgZm9yIG5vaXNlLgo+Pj4gTG9vcCBleGl0cyB3L28gdGltZW91dCBlaXRo ZXIgSFNfQ0xLIGlzIHJlYWR5IChjb250aW51b3VzIGNsb2NrCj4+PiBiZWhhdmlvcikgZWl0aGVy IEhTX0NMSyBpcyBzdG9wcGVkIChub24tY29udGludW91cyBjbG9jayBiZWhhdmlvcikuCj4+Pgo+ Pj4gUmVnYXJkcwo+Pj4gQW5kcnplago+Pj4KPj4+PiBJbmtpLCBoYXZlIHlvdSB0cmllZCB0byB0 YWtlIGFuIGFzc3VtcHRpb24geW91ciBwYW5lbCByZXF1aXJlcwo+Pj4+IGNvbnRpbnVvdXMgY2xv Y2sgYmVoYXZpb3IgYW5kIGV4eW5vcwo+Pj4+IGRzaSBkcml2ZXIgY3VycmVudGx5IHN1cHBvcnRz IG9ubHkgbm9uLWNvbnRpbnVvdXMgY2xvY2sgYmVoYXZpb3IsIHNvIGl0Cj4+Pj4gbmVlZHMgc29t ZSBmaXhlcyB0byBtYWtlIGl0IHdvcmsuCj4+IEknbSBub3Qgc3VyZSB5ZXQuIEFsbCBJIGNhbiBz YXkgaXMgdGhhdCB0aGUgcGFuZWwgd29ya3Mgd2VsbCBvbmx5IHdpdGgKPj4gY2xlYXJpbmcgRFNJ TV9UWF9SRVFVRVNUX0hTQ0xLIGFuZCBEU0lNX0NNRF9MUERUX0xQLgo+IEkgaGF2ZSBwZXJmb3Jt ZWQgc2ltcGxlIHRlc3Q6IEkgaGF2ZSBlbmFibGVkL2Rpc2FibGVkIERTSU1fVFhfUkVRVUVTVF9I U0NMSwo+IGFuZCB0ZXN0ZWQgRFNJTV9TVE9QX1NUQVRFX0NMSyB8IERTSU1fVFhfUkVBRFlfSFNf Q0xLIGJpdHMgYXQgdGhlIGVuZAo+IG9mIHRoZSBpbml0aWFsaXphdGlvbi4gVGhlIHJlc3VsdDoK PiBhKSBEU0lNX1RYX1JFUVVFU1RfSFNDTEsgPT0gMCA9PiBEU0lNX1RYX1JFQURZX0hTX0NMSyBz ZXQKPiBiKSBEU0lNX1RYX1JFUVVFU1RfSFNDTEsgPT0gMSA9PiBEU0lNX1NUT1BfU1RBVEVfQ0xL IHNldAo+Cj4gSXQgY2xlYXJseSBpbmRpY2F0ZXMgdGhhdCBEU0lNX1RYX1JFUVVFU1RfSFNDTEsg aXMgZXF1aXZhbGVudCBvZgo+IG5vbi1jb250aW51b3VzIGNsb2NrIGJlaGF2aW9yLgo+IFNvIHlv dXIgcGFuZWwgcmVxdWlyZXMgY29udGludW91cyBjbG9jayBiZWhhdmlvcihEU0lNX1RYX1JFUVVF U1RfSFNDTEsKPiA9PSAwKS4KVXBzLCBkaWQgc3R1cGlkIG1pc3Rha2UsIGl0IGlzIG9wcG9zaXRl OgoKYSkgRFNJTV9UWF9SRVFVRVNUX0hTQ0xLID09IDEgPT4gRFNJTV9UWF9SRUFEWV9IU19DTEsg c2V0CmIpIERTSU1fVFhfUkVRVUVTVF9IU0NMSyA9PSAwID0+IERTSU1fU1RPUF9TVEFURV9DTEsg c2V0CgpTbyBEU0lNX1RYX1JFUVVFU1RfSFNDTEsgaXMgZXF1aXZhbGVudCBvZiBjb250aW51b3Vz IGNsb2NrIGJlaGF2aW9yLgoKU28gaXQgbWVhbnMgeW91ciBwYW5lbCByZXF1aXJlcyBub24tY29u dGludW91cyBjbG9jayBiZWhhdmlvciBhbmQgdGhpcwpzZWVtcyBxdWl0ZSBzdHJhbmdlLgoKUmVn YXJkcwpBbmRyemVqCgo+Cj4gUmVnYXJkaW5nIERTSU1fQ01EX0xQRFRfTFAgeW91IHdyb3RlIGl0 IHNob3VsZCBiZSBjbGVhcmVkIGluIGNhc2Ugb2YKPiB5b3VyIHBhbmVsLiBJdCBtZWFucwo+IHlv dSBuZWVkIEhTIG1vZGUgdHJhbnNmZXIuCj4KPiBSZWdhcmRzCj4gQW5kcnplago+Cj4+IEFuZCBt b3JlIHRoaW5nLCB3ZSBuZWVkIHRvIGNoZWNrIHRoYXQgZGlzYWJsaW5nIHRoZXNlIHR3byBmbGFn cyBtZWFucwo+PiBub24tY29udGludW91cyBjbG9jayBtb2RlIG9yIGp1c3QgbG93IHBvd2VyIHRy YW5zZmVyLgo+PiBJIHRoaW5rIHRoZXNlIHR3byBmbGFncyBhbGwgc2hvdWxkIGJlIGFsc28gZGlz YWJsZWQgaW4gY2FzZSBwZXJpcGhlcmFsCj4+IGRvZXNuJ3Qgc3VwcG9ydCBub24tY29udGludW91 cyBjbG9jayBidXQgd2FudCB0byB0cmFuc21pdCBkYXRhIGluIGxvdyBwb3dlci4KPj4gSW4gdGhp cyBjYXNlLCB3aGF0IHNob3VsZCB3ZSBjYWxsIHRoaXMgbW9kZT8KPj4KPj4+PiBFeHlub3Mgc3Bl Y3MgYXJlIHZlcnkgdW5jbGVhciBvbiB0aGUgc3ViamVjdCBzbyBpdCBpcyBoYXJkIHRvIGd1ZXNz IGhvdwo+Pj4+IHRoZSByZWdpc3RlcnMgc2hvdWxkIGJlIGNvbmZpZ3VyZWQKPj4gRm9yIHRoaXMs IFlvdW5nanVuIGFyZSB0cnlpbmcgdG8gY29udGFjdCBIVyBndXlzLgo+Pgo+PiBUaGFua3MsCj4+ IElua2kgRGFlCj4+Cj4+Pj4gdG8gaGF2ZSBjb250aW51b3VzL25vbi1jb250aW51b3VzIGNsb2Nr IGJlaGF2aW9yLgo+Pj4+Cj4+Pj4gUmVnYXJkcwo+Pj4+IEFuZHJ6ZWoKPj4+Pgo+Pj4+Pj4+IElu IFRlZ3JhLCBXaGF0IHRvIGRvIGZvciBpdD8KPj4+Pj4+IFRoZXJlIGFyZSB0d28gYml0cyBpbiB0 d28gc2VwYXJhdGUgcmVnaXN0ZXJzIGZvciB0aGlzOgo+Pj4+Pj4KPj4+Pj4+IAlEU0lfSE9TVF9D T05UUk9MOgo+Pj4+Pj4gCSAgYml0IDU6IERTSV9ISUdIX1NQRUVEX1RSQU5TOiBEU0kgaGlnaCBz cGVlZCB0cmFuc21pc3Npb24gb2YKPj4+Pj4+IAkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcGFja2V0cwo+Pj4+Pj4gCSAgICAtIDAgPSBMT1c6IGxvdyBzcGVlZAo+Pj4+Pj4gCSAgICAt IDEgPSBISUdIOiBoaWdoIHNwZWVkCj4+Pj4+Pgo+Pj4+Pj4gCURTSV9DT05UUk9MOgo+Pj4+Pj4g CSAgYml0IDIwOiBEU0lfSFNfQ0xLX0NUUkw6IENvbnRyb2wgZm9yIHRoZSBIUyBjbG9jayBsYW5l Cj4+Pj4+PiAJICAgIC0gMCA9IENPTlRJTlVPVVM6IEhTIGNsb2NrIGlzIG9uIGFsbCB0aGUgdGlt ZQo+Pj4+Pj4gCSAgICAtIDEgPSBUWF9PTkxZOiBIUyBjbG9jayBpcyBvbmx5IGFjdGl2ZSBkdXJp bmcgSFMKPj4+Pj4+IAkgICAgICAgICAgICAgICAgICAgdHJhbnNtaXNzaW9ucwo+Pj4+Pj4KPj4+ Pj4+IFNvIGlmIHRoZSBwZXJpcGhlcmFsIHN1cHBvcnRzIG5vbi1jb250aW51b3VzIG1vZGUgb2Yg b3BlcmF0aW9uIHdlIHNldAo+Pj4+Pj4gdGhlIERTSV9IU19DTEtfQ1RSTCBiaXQsIG90aGVyd2lz ZSB3ZSBjbGVhciBpdCB0byBtYWtlIHN1cmUgdGhlIGNsb2NrCj4+Pj4+PiByZW1haW5zIG9uIGFs bCB0aGUgdGltZS4KPj4+Pj4+Cj4+Pj4+PiBXaGVuIGEgcGFja2V0IGlzIHRvIGJlIHRyYW5zbWl0 dGVkIGluIGhpZ2ggc3BlZWQgbW9kZSwgd2Ugc2V0IHRoZQo+Pj4+Pj4gRFNJX0hJR0hfU1BFRURf VFJBTlMgYml0LiBGb3IgbG93IHBvd2VyIG1vZGUgdHJhbnNtaXNzaW9ucyB0aGF0IGJpdCBpcwo+ Pj4+Pj4gY2xlYXJlZC4KPj4+Pj4gVGhhdCBpcyBleGFjdGx5IHdoYXQgSSB3YW50LiBJbiB5b3Vy IGNhc2UsIGlmIHlvdSB3YW50IHRvIHRyYW5zbWl0Cj4+Pj4+IGNvbW1hbmQgZGF0YSBpbiBMb3cg UG93ZXIgTW9kZSBpbiBjYXNlIG9mIHN1cHBvcnRpbmcgbm9uLWNvbnRpbnVvdXMKPj4+Pj4gY2xv Y2sgbW9kZSwgdGhlbiB5b3Ugd291bGQgc2V0IERTSV9IU19DTEtfQ1RSTCAoVFhfT05MWSksIGFu ZCBhbHNvIHlvdQo+Pj4+PiB3b3VsZCBjbGVhciBEU0lfSElHSF9TUEVFRF9UUkFOUyAoTE9XKS4K Pj4+Pj4KPj4+Pj4gU28gSSBndWVzcywKPj4+Pj4KPj4+Pj4gaWYgKGZsYWdzICYgTUlQSV9EU0lf TU9ERV9OT05fQ09OVElOVU9VUykgewo+Pj4+PiAgICAgICAgIGRpc2FibGUgRFNJX0hJR0hfU1BF RURfVFJBTlM7ICAgPC0gTE9XCj4+Pj4+ICAgICAgICAgZW5hYmxlIERTSV9IU19DTEtfQ1RSTDsg PC0gVFhfT05MWQo+Pj4+PiB9Cj4+Pj4+Cj4+Pj4+IHRyYW5zbWl0IGNvbW1hbmQgZGF0YSA8LSBp biBMUE0uCj4+Pj4+Cj4+Pj4+IEhvd2V2ZXIsIHdoYXQgaWYgdGhlIHBlcmlwaGVyYWwgZG9lc24n dCBzdXBwb3J0IG5vbi1jb250aW51b3VzIGJ1dCB3YW50Cj4+Pj4+IHRvIHRyYW5zbWl0IGNvbW1h bmQgZGF0YSBpbiBMUE0/IElzIHRoYXQgIGltcG9zc2libGU/Cj4+Pj4+Cj4+Pj4+IFRoYW5rcywK Pj4+Pj4gSW5raSBEYWUKPj4+Pj4KPj4+Pj4+IFRoaWVycnkKPj4+Pj4+Cj4+Pj4gX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4+PiBkcmktZGV2ZWwgbWFp bGluZyBsaXN0Cj4+Pj4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+Pj4+IGh0dHA6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKPj4+Pgo+ Pj4gLS0KPj4+IFRvIHVuc3Vic2NyaWJlIGZyb20gdGhpcyBsaXN0OiBzZW5kIHRoZSBsaW5lICJ1 bnN1YnNjcmliZSBsaW51eC1zYW1zdW5nLXNvYyIgaW4KPj4+IHRoZSBib2R5IG9mIGEgbWVzc2Fn ZSB0byBtYWpvcmRvbW9Admdlci5rZXJuZWwub3JnCj4+PiBNb3JlIG1ham9yZG9tbyBpbmZvIGF0 ICBodHRwOi8vdmdlci5rZXJuZWwub3JnL21ham9yZG9tby1pbmZvLmh0bWwKPj4+CgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGlu ZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=