From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: KMS timings (Re: [PATCH 6/8] drm/bochs: phase 3: provide a custom ->atomic_commit implementation) Date: Tue, 21 Jul 2015 11:02:58 +0200 Message-ID: <20150721090258.GB16722@phenom.ffwll.local> References: <1437049241-11972-1-git-send-email-zhjwpku@gmail.com> <1437049241-11972-7-git-send-email-zhjwpku@gmail.com> <20150717090809.6c9d7d02@gmail.com> <20150720104609.10c01e4a@gmail.com> <20150720123548.0d9b6472@gmail.com> <20150720142100.GH16722@phenom.ffwll.local> <20150721100609.4c4d7f37@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f170.google.com (mail-wi0-f170.google.com [209.85.212.170]) by gabe.freedesktop.org (Postfix) with ESMTPS id 09FA06E919 for ; Tue, 21 Jul 2015 02:00:21 -0700 (PDT) Received: by wicgb10 with SMTP id gb10so48894310wic.1 for ; Tue, 21 Jul 2015 02:00:19 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20150721100609.4c4d7f37@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Pekka Paalanen Cc: Daniel Vetter , "dri-devel@lists.freedesktop.org" List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBKdWwgMjEsIDIwMTUgYXQgMTA6MDY6MDlBTSArMDMwMCwgUGVra2EgUGFhbGFuZW4g d3JvdGU6Cj4gT24gTW9uLCAyMCBKdWwgMjAxNSAxMDozMjozMSAtMDcwMAo+IFN0w6lwaGFuZSBN YXJjaGVzaW4gPHN0ZXBoYW5lLm1hcmNoZXNpbkBnbWFpbC5jb20+IHdyb3RlOgo+IAo+ID4gT24g TW9uLCBKdWwgMjAsIDIwMTUgYXQgNzoyMSBBTSwgRGFuaWVsIFZldHRlciA8ZGFuaWVsQGZmd2xs LmNoPiB3cm90ZToKPiA+ID4gT24gTW9uLCBKdWwgMjAsIDIwMTUgYXQgMTI6MzU6NDhQTSArMDMw MCwgUGVra2EgUGFhbGFuZW4gd3JvdGU6Cj4gPiA+PiBPbiBNb24sIDIwIEp1bCAyMDE1IDAxOjU4 OjMzIC0wNzAwCj4gPiA+PiBTdMOpcGhhbmUgTWFyY2hlc2luIDxzdGVwaGFuZS5tYXJjaGVzaW5A Z21haWwuY29tPiB3cm90ZToKPiA+ID4+Cj4gPiA+PiA+IE9uIE1vbiwgSnVsIDIwLCAyMDE1IGF0 IDEyOjQ2IEFNLCBQZWtrYSBQYWFsYW5lbiA8cHBhYWxhbmVuQGdtYWlsLmNvbT4gd3JvdGU6Cj4g PiA+PiA+ID4gT24gU3VuLCAxOSBKdWwgMjAxNSAxNzoyMDozMiAtMDcwMAo+ID4gPj4gPiA+IFN0 w6lwaGFuZSBNYXJjaGVzaW4gPHN0ZXBoYW5lLm1hcmNoZXNpbkBnbWFpbC5jb20+IHdyb3RlOgo+ ID4gPj4gPiA+Cj4gPiA+PiA+ID4+IE9uIFRodSwgSnVsIDE2LCAyMDE1IGF0IDExOjA4IFBNLCBQ ZWtrYSBQYWFsYW5lbiA8cHBhYWxhbmVuQGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiA+PiA+ID4+ID4K PiA+ID4+ID4gPj4gPiBPbiBUaHUsIDE2IEp1bCAyMDE1IDIwOjIwOjM5ICswODAwCj4gPiA+PiA+ ID4+ID4gSm9obiBIdW50ZXIgPHpoandwa3VAZ21haWwuY29tPiB3cm90ZToKPiA+ID4+ID4gPj4g Pgo+ID4gPj4gPiA+PiA+ID4gRnJvbTogWmhhbyBKdW53YW5nIDx6aGp3cGt1QGdtYWlsLmNvbT4K PiA+ID4+ID4gPj4gPiA+Cj4gPiA+PiA+ID4+ID4gPiBUaGlzIHN1cHBvcnRzIHRoZSBhc3luY2hy b25vdXMgY29tbWl0cywgcmVxdWlyZWQgZm9yIHBhZ2UtZmxpcHBpbmcKPiA+ID4+ID4gPj4gPiA+ IFNpbmNlIGl0J3MgdmlydHVhbCBodyBpdCdzIG9rIHRvIGNvbW1pdCBhc3luYyBzdHVmZiByaWdo dCBhd2F5LCB3ZQo+ID4gPj4gPiA+PiA+ID4gbmV2ZXIgaGF2ZSB0byB3YWl0IGZvciB2Ymxhbmsu Cj4gPiA+PiA+ID4+ID4KPiA+ID4+ID4gPj4gPiBIaSwKPiA+ID4+ID4gPj4gPgo+ID4gPj4gPiA+ PiA+IGluIHRoZW9yeSwgeWVzLiBUaGlzIGlzIHdoYXQgYSBwYXRjaCB0byBib2NocyBpbXBsZW1l bnRlZCBub3QgdG9vIGxvbmcKPiA+ID4+ID4gPj4gPiBhZ28sIHNvIEFGQUlLIHlvdSBhcmUgb25s eSByZXBsaWNhdGluZyB0aGUgZXhpc3RpbmcgYmVoYXZpb3VyLgo+ID4gPj4gPiA+PiA+Cj4gPiA+ PiA+ID4+ID4gSG93ZXZlciwgaWYgdXNlcnNwYWNlIGRvaW5nIGFuIGFzeW5jIGNvbW1pdCAob3Ig c3luYywgSSBzdXBwb3NlKSBkb2VzCj4gPiA+PiA+ID4+ID4gbm90IGluY3VyIGFueSB3YWl0cyBp biB0aGUga2VybmVsIGluIGUuZy4gc2VuZGluZyB0aGUgcGFnZSBmbGlwIGV2ZW50LAo+ID4gPj4g PiA+PiA+IHRoZW4gZmxpcCBkcml2ZW4gcHJvZ3JhbXMgKGUuZy4gYSBXYXlsYW5kIGNvbXBvc2l0 b3IsIHNheSwgV2VzdG9uKQo+ID4gPj4gPiA+PiA+IHdpbGwgYmUgcnVubmluZyBpdHMgcmVuZGVy aW5nIGxvb3AgYXMgYSBidXN5LWxvb3AsIGJlY2F1c2UgdGhlIGtlcm5lbAo+ID4gPj4gPiA+PiA+ IGRvZXMgbm90IHRocm90dGxlIGl0IHRvIHRoZSAodmlydHVhbCkgZGlzcGxheSByZWZyZXNoIHJh dGUuCj4gPiA+PiA+ID4+ID4KPiA+ID4+ID4gPj4gPiBUaGlzIHdpbGwgY2F1c2UgbWF4aW1hbCBD UFUgdXNhZ2UgYW5kIHBvb3IgdXNlciBleHBlcmllbmNlIGFzCj4gPiA+PiA+ID4+ID4gZXZlcnl0 aGluZyBlbHNlIG5lZWRzIHRvIGZpZ2h0IGZvciBDUFUgdGltZSBhbmQgZXZlbnQgZGlzcGF0Y2gg dG8gZ2V0Cj4gPiA+PiA+ID4+ID4gdGhyb3VnaCwgbGlrZSBpbnB1dC4KPiA+ID4+ID4gPj4gPgo+ ID4gPj4gPiA+PiA+IEkgd291bGQgaG9wZSBzb21lb25lIGNvdWxkIGRvIGEgZm9sbG93LXVwIHRv IGltcGxlbWVudCBhIHJlZnJlc2ggY3ljbGUKPiA+ID4+ID4gPj4gPiBlbXVsYXRpb24gYmFzZWQg b24gYSBjbG9jay4gVXNlcnNwYWNlIGV4cGVjdHMgcGFnZSBmbGlwcyB0byBoYXBwZW4gYXQKPiA+ ID4+ID4gPj4gPiBtb3N0IGF0IHJlZnJlc2ggcmF0ZSB3aGVuIGFza2luZyBmb3IgdmJsYW5rLXN5 bmNlZCBmbGlwcy4gSXQncyBvbmx5Cj4gPiA+PiA+ID4+ID4gbmF0dXJhbCBmb3IgdXNlcnNwYWNl IHRvIGRyaXZlIGl0cyByZW5kZXJpbmcgbG9vcCBiYXNlZCBvbiB0aGUgdmJsYW5rCj4gPiA+PiA+ ID4+ID4gY3ljbGUuCj4gPiA+PiA+ID4+Cj4gPiA+PiA+ID4+Cj4gPiA+PiA+ID4+IEkndmUgYmVl biBhc2tpbmcgbXlzZWxmIHRoZSBzYW1lIHF1ZXN0aW9uIChmb3IgdGhlIFVETCBkcml2ZXIpIGFu ZCBJJ20KPiA+ID4+ID4gPj4gbm90IHN1cmUgaWYgdGhpcyBwb2xpY3kgc2hvdWxkIGdvIGluIHRo ZSBrZXJuZWwuIEFmdGVyIGFsbCwgdGhlcmUKPiA+ID4+ID4gPj4gY291bGQgYmUgbGVnaXRpbWF0 ZSByZWFzb25zIGZvciB1c2VyIHNwYWNlIHRvIHJlbmRlciBsb3RzIG9mIGZyYW1lcwo+ID4gPj4g PiA+PiBwZXIgc2Vjb25kLiBJdCBzZWVtcyB0byBtZSB0aGF0IGlmIHVzZXIgc3BhY2UgZG9lc24n dCB3YW50IHRvbyBtYW55Cj4gPiA+PiA+ID4+IGZwcywgaXQgc2hvdWxkIGp1c3QgdGhyb3R0bGUg aXRzZWxmLgo+ID4gPj4gPiA+Cj4gPiA+PiA+ID4gSWYgdXNlcnNwYWNlIHdhbnRzIHRvIHJlbmRl ciBsb3RzIG9mIGZyYW1lcyBwZXIgc2Vjb25kLCBJTU8gaXQgc2hvdWxkCj4gPiA+PiA+ID4gbm90 IGJlIHVzaW5nIHZibGFuay1zeW5jZWQgb3BlcmF0aW9ucyBpbiBhIHdheSB0aGF0IG1heSB0aHJv dHRsZSBpdC4KPiA+ID4+ID4gPiBUaGUgbG90cyBvZiBmcmFtZXMgdXNlIGNhc2UgaXMgYWxyZWFk eSBub24td29ya2luZyBmb3IgdGhlIG1ham9yaXR5IG9mCj4gPiA+PiA+ID4gdGhlIGRyaXZlcnMg d2l0aG91dCBEUk1fTU9ERV9QQUdFX0ZMSVBfQVNZTkMsIHJpZ2h0Pwo+ID4gPj4gPiA+Cj4gPiA+ PiA+ID4gVGhlIHByb2JsZW0gaGVyZSBJIHNlZSBpcyB0aGF0IG9uZSBEUk0gZHJpdmVyIGRlY2lk ZXMgdG8gd29yayBkaWZmZXJlbnQKPiA+ID4+ID4gPiB0byBvdGhlciBEUk0gZHJpdmVycy4gQWxs IHJlYWwtaGFyZHdhcmUgRFJNIGRyaXZlcnMsIHdoZW4gYXNrZWQgdG8gZG8KPiA+ID4+ID4gPiB2 Ymxhbmstc3luY2VkIHVwZGF0ZSwgYWN0dWFsbHkgZG8gdGhyb3R0bGUgdG8gdGhlIHZibGFuayBB RkFJSy4KPiA+ID4+ID4KPiA+ID4+ID4gdWRsIGlzIGFuIGV4Y2VwdGlvbiBoZXJlLiBJdCBpcyAo YXJndWFibHkpIHJlYWwgaGFyZHdhcmUgYnV0IGRvZXNuJ3QgdGhyb3R0bGUuCj4gPiA+PiA+Cj4g PiA+PiA+ID4gSXMgaXQKPiA+ID4+ID4gPiB0b28gbXVjaCB0byBhc3N1bWUsIHRoYXQgdGhlIHZp ZGVvIG1vZGUgc2V0IGluIGEgZHJpdmVyIChyZWZyZXNoIHJhdGUpCj4gPiA+PiA+ID4gY29ycmVz cG9uZHMgdG8gdGhlIHZibGFuayByYXRlIHdoaWNoIGltcGxpY2l0bHkgZGVsYXlzIHRoZSBjb21w bGV0aW9uCj4gPiA+PiA+ID4gb2YgdmJsYW5rLXN5bmMnZCBvcGVyYXRpb25zIHRvIGF0IGxlYXN0 IHRoZSBuZXh0IHZibGFuayBib3VuZGFyeT8KPiA+ID4+ID4KPiA+ID4+ID4gSSB0aGluayBpdCdz IHdyb25nIHRvIG1ha2UgdXNlciBzcGFjZSB0aGluayB0aGF0IGEgdnN5bmNlZCBkaXNwbGF5Cj4g PiA+PiA+IGFsd2F5cyBtYXRjaGVzIHRoZSByZWZyZXNoIHJhdGUgaW4gYSB3b3JsZCB3aGVyZToK PiA+ID4+ID4KPiA+ID4+ID4gLSBzb21lIGRpc3BsYXlzIGhhdmUgdmFyaWFibGUgcmVmcmVzaCBy YXRlcyAobm90IGp1c3QgdGhlIGZhbmN5IG5ldwo+ID4gPj4gPiBzdHVmZiBsaWtlIGctc3luYywg bG9vayBmb3IgbHZkc19kb3duY2xvY2sgaW4gdGhlIGludGVsIGRyaXZlciBmb3IKPiA+ID4+ID4g ZXhhbXBsZSwgYWxzbyBjb25zaWRlciBEU0kgZGlzcGxheXMpCj4gPiA+PiA+Cj4gPiA+PiA+IC0g c29tZSBkaXNwbGF5cyBoYXZlIG5vIHJlZnJlc2ggcmF0ZSAodGhlIG9uZXMgd2UgYXJlIHRhbGtp bmcgYWJvdXQKPiA+ID4+ID4gaGVyZTogdWRsLCBib2Nocy4uLikKPiAKPiA+ID4gSW1vIGFpbWlu ZyBmb3IgdnJlZnJlc2ggdG8gYmUgYWNjdXJhdGUgaXMgZ29vZC4gRm9yIGdzeW5jIGFuZCBmcmll bmRzIEkKPiA+ID4gdGhpbmsgd2Ugc2hvdWxkIGhhdmUgYW4gZXhwbGljaXQgcmFuZ2Ugb3IgZmxh ZyB0byBtYWtlIHVzZXJzcGFjZSBhd2FyZSBvZgo+ID4gPiB3aGF0J3MgZ29pbmcgb24uCj4gPiAK PiA+IEkgdGhpbmsgdGhlIGNvbmNlcHQgb2YgdnJlZnJlc2ggaXMgZmxhd2VkIGFuZCBub3QgcmVh bGx5IGZ1dHVyZS1wcm9vZgo+ID4gKEkgZ2F2ZSBhIGZldyBleGFtcGxlcyBpbiBteSBwcmV2aW91 cyBlbWFpbCkuIEkgYWdyZWUgd2Ugc2hvdWxkIGtlZXAKPiA+IGl0IGFzIGxlZ2FjeSwgYnV0IHdl IHNob3VsZCBhZGQgc29tZXRoaW5nIGVsc2UgZm9yIHRoZSBtb3JlIGFkdmFuY2VkCj4gPiBjYXNl cy4KPiAKPiBSaWdodCwgc28gbGV0J3MgYWRkIHNvbWV0aGluZyBuZXcgZm9yIG5ldyBoYXJkd2Fy ZSBmZWF0dXJlcyBhbmQga2VlcAo+IHRoZSBleGlzdGluZyBiZWhhdmlvciBleGlzdGluZy4KPiAK PiBJIHN1cHBvc2UgdGhlIHByb2JsZW0gaXMgdGhhdCB0aGUgZXhpc3RpbmcgYmVoYXZpb3IgaXMg bm90IHJlYWxseQo+IGRvY3VtZW50ZWQgc28gd2UgaGF2ZSB0byByZXNvcnQgdG8gc2NyZWFtaW5n IHVzZXJzPwo+IAo+IElmIG9uZSBkb2VzIG5vdCBhc2sgZm9yIEFTWU5DIHdpdGggYSBwYWdlIGZs aXAsIGRvZXMgaXQgbWVhbiBmbGlwcGluZwo+IG9uIHRoZSBuZXh0IHZibGFuaywgb3IgZmxpcHBp bmcgc3VjaCB0aGF0IGl0IGNhbm5vdCB0ZWFyIGJ1dCBhbGxvd2luZwo+IHRlY2hpcXVlcyBsaWtl IHNjYW5saW5lIHdhaXRzPwoKU2luY2UgbGVnYWN5IHBhZ2VfZmxpcCBpcyBhbHdheXMgZm9yIHRo ZSBmdWxsIHByaW1hcnkgcGxhbmUgeW91IGNhbid0IGRvCnNjYW5saW5lIHdhaXRzIC0gaXQgY292 ZXJzIGV2ZXJ5dGhpbmcgYW55d2F5LgoKPiBJdCB1c2VkIHRvIGJlIHJlYXNvbmFibGUgdG8gYXNz dW1lIGEgY29uc3RhbnQgcmVmcmVzaCByYXRlIGFwYXJ0IGZyb20KPiBleHBsaWNpdCBtb2RlIGNo YW5nZXMuIFNob3VsZCB3ZSBrZWVwIHRoaXMgYXNzdW1wdGlvbiB0aGUgZGVmYXVsdCBhbmQKPiBh ZGQgQVBJIHRvIHNheSBkaWZmZXJlbnQ/Cj4gCj4gPiA+PiA+ID4gSSB0aGluaywgaWYgdGhlIGRy aXZlciBjYW5ub3QgaW1wbGVtZW50IHByb3BlciBzZW1hbnRpY3MgKHdoaWNoIElNTwo+ID4gPj4g PiA+IGluY2x1ZGVzIHRoZSB0aHJvdHRsaW5nKSBmb3IgdmJsYW5rLXN5bmMnZCBvcGVyYXRpb25z IGFuZCBpdCBkb2VzIG5vdAo+ID4gPj4gPiA+IHdhbnQgdG8gZmFrZSB0aGVtIHdpdGggYSBjbG9j aywgaXQgc2hvdWxkIGp1c3QgcmVmdXNlIHZibGFuay1zeW5jZWQKPiA+ID4+ID4gPiBvcGVyYXRp b25zLgo+ID4gPj4gPgo+ID4gPj4gPiBZZXMgcmVmdXNpbmcgdnN5bmNlZCBmbGlwcyBmb3IgdGhl c2UgZHJpdmVycyBzb3VuZHMgcmVhc29uYWJsZS4gQnV0Cj4gPiA+PiA+IHBsZWFzZSBsZXQncyBu b3QgYmFrZSBpbiBhbm90aGVyIGFzc3VtcHRpb24gaW4gdGhlIEFQSSAob3IgcmF0aGVyLAo+ID4g Pj4gPiBsZXQncyB0cnkgdG8gdW4tYmFrZSBpdCkuCj4gPiA+Pgo+ID4gPj4gQ291bGQgeW91IGJl IG1vcmUgc3BlY2lmaWMgb24gZXZlcnl0aGluZywgcGxlYXNlPwo+ID4gPj4KPiA+ID4+IFdoYXQg c2hvdWxkIGRyaXZlcnMgZG8gaW4gZGlmZmVyZW50IHNpdHVhdGlvbnMsIHdoYXQgZ3VhcmFudGVl cyB3ZSBkbwo+ID4gPj4gaGF2ZSwgYW5kIGhvdyBkb2VzIHVzZXJzcGFjZSBwcmVkaWN0IHRoZSBl YXJsaWVzdCBwb3NzaWJsZSBmbGlwIHRpbWU/Cj4gPiA+PiBIb3cgZG8geW91IGRlZmluZSBmbGlw IHRpbWUgdG8gYmVnaW4gd2l0aCwgaWYgaXQncyBub3QgdGllZCB0byB0aGUKPiA+ID4+IHNjYW5v dXQgY3ljbGUgKHZibGFuayk/Cj4gPiA+Pgo+ID4gPj4gSG93IHNob3VsZCBhIGNvbXBvc2l0b3Ig c2NoZWR1bGUgZXZleXRoaW5nLCBhbmQgd2hhdCBjYW4gaXQgdGVsbCB0byB0aGUKPiA+ID4+IGNs aWVudHMgYWJvdXQgdGhlIHRpbWluZ3MgaW4gdGhlIGltbWVkaWF0ZSBmdXR1cmU/Cj4gPiA+Pgo+ ID4gPj4gWW91IGdhdmUgbWUgdGhlIGZlZWxpbmcgdGhhdCBldmVyeXRoaW5nIEkgdGhvdWdodCBJ IGtuZXcgYW5kIHJlbGllZCBvbgo+ID4gPj4gaXMgd3JvbmcuCj4gPiA+Cj4gPiA+IEkgZ3Vlc3Mg d2UgZWl0aGVyIGtpY2sgb3V0IHBhZ2VfZmxpcCBmb3IgYWxsIGRyaXZlcnMgd2hvIGZha2UgaXQu IEFuZCBpZgo+ID4gPiB0aGF0J3MgY2F1c2luZyByZWdyZXNzaW9ucyB0aGVuIHdlIHByb2JhYmx5 IHdhbnQgdG8gZmFrZSBpdCB3aXRoIGEgdGltZXIuCj4gPiA+IFVucHJldHR5LCBidXQgc3VjaCBp cyB0aGUgZ2FtZSBvZiBiYWNrd2FyZHMgY29tcGF0IGZvcmV2ZXIuIEJ1dCBJJ20gbm90Cj4gPiA+ IHN1cmUgd2hldGhlciB3ZSBlc3RhYmxpc2hlZCB0aGF0IHdlIGhhdmUgYSBwcm9ibGVtIGFscmVh ZHksIGF0IGxlYXN0IEknbQo+ID4gPiBtaXNzaW5nIHVzZXJzIHNjcmVhbWluZyBhYm91dCB1ZGwv Ym9jaHMgJiBmcmllbmRzLgo+IAo+IEkgc3VwcG9zZSBub3QgaGVhcmluZyB1c2VycyBzY3JlYW0g aXMgdGhhdCBYLm9yZyBpcyBub3QgYWZmZWN0ZWQsCj4gYmVjYXVzZSBpdCBzaW1wbHkgZG9lc24n dCB3b3JrIGluIGEgd2F5IGl0IHdvdWxkIGJlIGFmZmVjdGVkPyBPciB0aGUKPiB2YXJpb3VzIERE WCdlbi4gVGhlIGNvbWJpbmF0aW9uIG9mIGFmZmVjdGVkIHVzZXJzcGFjZSB3aXRoIGRyaXZlcnMg bGlrZQo+IGJvY2hzIGlzIGV2ZW4gbW9yZSByYXJlLgo+IAo+IEkgZmlyc3QgaGVhcmQgYWJvdXQg V2VzdG9uIGhhdmluZyBhbiBhYnlzbWFsIHVzZXIgZXhwZXJpZW5jZSBvbgo+IGRybS9ib2NocyB3 aGVuIGEgY28td29ya2VyIHdhcyBsb29raW5nIGF0IHRlc3RpbmcgV2VzdG9uIGluCj4gUUVNVS9z dGR2Z2EsIHdoaWNoIGFjY29yZGluZyB0byBvdGhlcnMgd2FzIHN1cHBvc2VkIHRvIGJlIHRoZSBi ZXN0Cj4gd29ya2luZyBRRU1VIG91dHB1dCAvIERSTSBLTVMgZHJpdmVyIGNvbWJpbmF0aW9uLiBN aWdodCBoYXZlIHNvbWV0aGluZwo+IHRvIGRvIHdpdGggbmVlZGluZyBpdCBvbiBhIHZpcnR1YWwg QVJNIGNwdS4KPiAKPiBXZXN0b24gaW4gYSBWTSBoYXMgbm90IGJlZW4gdG9vIGF0dHJhY3RpdmUg YmVmb3JlLCBiZWNhdXNlIG9mIHRoZQo+IG1pc3NpbmcgRUdMIHBsYXRmb3JtIHN1cHBvcnQgZm9y IHN3cmFzdCwgYnV0IHRoYXQgaGFzIGJlZW4gZml4ZWQKPiByZWNlbnRseS4gSSd2ZSBhbHNvIGhl YXJkIHVzZXJzIChSZWJlY2NhQmxhY2tPUykgdG8ganVzdCByZXZlcnQgdG8KPiBXZXN0b24ncyBm YmRldiBiYWNrZW5kLCB3aGVuIHRoZSBEUk0gYmFja2VuZCBqdXN0IGRvZXNuJ3Qgd29yayByaWdo dCBpbgo+IGEgVk0uCj4gCj4gU28gSSB3b3VsZCBzYXkgaXQgaXMgYSBrbm93biBwcm9ibGVtIHdp dGggV2VzdG9uLCBidXQgdXNlcnMgdGVuZCB0bwo+IGp1c3QgZGlzbWlzcyBpdCByYXRoZXIgdGhh biBzdGFydCBwdXNoaW5nIGl0IGZvcndhcmQuIFdoZXRoZXIgeW91IGNvdW50Cj4gV2VzdG9uIGFz IGFuIGV4aXN0aW5nIHVzZXIgaW4gdGhlIGZpcnN0IHBsYWNlIGlzIHVwIHRvIHlvdSwgSSBzdXBw b3NlLgo+IAo+IEkgYXNrZWQgSmFzcGVyIGFib3V0IE11dHRlcjoKPiA8IHBxPiBKYXNwZXIsIHRy eWluZyB0byBmaW5kIHVzZXJzIG9mIHRoZSBLTVMgQVBJIHdobyB3b3VsZCB3b3JrIGJhZGx5LAo+ ICAgICAgIGlmIHBhZ2UgZmxpcHMgd2VyZSBzaWduYWxsZWQgYWx3YXlzIGltbWVkaWF0ZWx5Cj4g PCBKYXNwZXI+IHBxLCBvaCwgZ29kLCB1cy4KPiA8IEphc3Blcj4gcHEsIHdlJ2Qgc3BpbiBvdXJz ZWx2ZXMgaW4gYSBwYWludCBsb29wIHRvIGRlYXRoCj4gCj4gSSB0aGluayB0aGVyZSBtaWdodCBi ZSB0d28gZGlmZmVyZW50IHByb2JsZW1zIGhlcmU6IGEpIHNpZ25hbGxpbmcgcGFnZQo+IGZsaXBz IGltbWVkaWF0ZWx5LCBhbmQgYikgInZhcmlhYmxlIHJlZnJlc2ggcmF0ZSIgc3lzdGVtcyAvIG9u LWRlbWFuZAo+IHVwZGF0ZXMgbGlrZSBnLXN5bmMsIFVETCwgZXRjLgo+IAo+IE15IGltbWVkaWF0 ZSBjb25jZXJuIGlzIHRvIG91dGxhdyBpbW1lZGlhdGUgc2lnbmFsbGluZyBvZiBvcGVyYXRpb25z Cj4gdGhhdCBhcmUgaW50ZW5kZWQgdG8gYmUgdmJsYW5rLXN5bmNlZCAodGhvc2UgdGhhdCBoYXZl Cj4gdHJhZGl0aW9uYWxseSB0YWtlbiB0aW1lIHRvIGNvbXBsZXRlIG9uIHJlYWwgaGFyZHdhcmUs IGlmIHlvdSBkb24ndAo+IGxpa2UgdGhlIGRlZmluaXRpb24gb2YgdmJsYW5rLXN5bmNlZCkuCj4g Cj4gVGhlIHByb2JsZW0gd2l0aCB2YXJpYWJsZSByZWZyZXNoIHJhdGUgc3lzdGVtcyBpcyB1bnBy ZWRpY3RhYmlsaXR5LAo+IHdoaWNoIGlzIGRpZmZlcmVudC4gU3VibWl0dGluZyB1cGRhdGVzIHdp bGwgdGFrZSBzb21lIHRpbWUgaW4gYW55IGNhc2UsCj4gc28geW91IGNhbm5vdCByZWFsbHkgbG9v cCB0byBkZWF0aCAoSSBob3BlKS4gVGhlcmUgSSB3b3VsZCBiZSBoYXBweSB0bwo+IGp1c3Qga25v dyB0aGF0IHByZWRpY3Rpb25zIGJhc2VkIG9uIHBlcnBldHVhbCByZWZyZXNoIHJhdGUgYXJlIGlu dmFsaWQuCj4gVGhhdCB3b3VsZCBiZSBlbm91Z2ggZm9yIFdheWxhbmQgYXQgZmlyc3QuCj4gCj4g U3TDqXBoYW5lIGFsc28gcmFpc2VkIHRoZSBjb25jZXJuIHRoYXQgc2Nhbm91dCBkb3duY2xvY2tp bmcgZXRjLiBtYXkKPiBjYXVzZSBmbGlwcyB0byBiZSBxdWl0ZSBsYXRlIGZyb20gcHJlZGljdGVk LiBUaGlzIGlzIGxlc3Mgb2YgYSBwcm9ibGVtLAo+IHJlbmRlcmluZyBjYW4gYWxzbyB0YWtlIGFy Yml0cmFyeSB0aW1lcyBhbmQgc29mdHdhcmUgaXMgdXN1YWxseSB3cml0dGVuCj4gdG8gZGVhbCB3 aXRoIG1pc3NpbmcgZGVhZGxpbmVzLiBJdCdzIGEgcHJvYmxlbSB0aGF0IGhhcHBlbnMgYWxsIHRo ZQo+IHRpbWUgYW55d2F5LiBBcyBpdCBpcyBhIHByb2JsZW0gd2l0aCBwcmVkaWN0aW9uIGFjY3Vy YWN5LCB3ZSBjb3VsZCBqdXN0Cj4gd2F2ZSBpdCBvZmYgYnkgc2V0dGluZyB0aGUgaW1hZ2luYXJ5 ICJubyBjb25zdGFudCByZWZyZXNoIHJhdGUiIGZsYWcuCj4gSU1ITyB0aGlzIGlzIGEgcHJvYmxl bSB0aGF0IHNob3VsZCBiZSBzb2x2ZWQgYXQgYW5vdGhlciBvY2Nhc2lvbiwgaWYKPiBuZWNlc3Nh cnkuCgpEb3duY2xvY2tpbmcgc2hvdWxkIG9ubHkgYmUgYWJsZSB0byBkZWxheSB0aGUgdmVyeSBm aXJzdCBmcmFtZSBpbiBhCnNlcXVlbmNlICh2aWRlbyBwbGF5YmFjaywgYW5pbWF0aW9uKS4gSW1v IHdlIGNhbiBzaHJ1ZyB0aGF0IG9mZiBhcyAiY2xvY2sKc2tldyIgOy0pCgpJbW8gb25jZSBzb21l b25lIHVwZGF0ZXMgZnJhbWVzIHJlZ3VsYXJseSB2YmxhbmsgdGltZXN0YW1wcyBzaG91bGQgYmUK ZXZlbmx5IHNwYWNlZCBhbmQgcGFnZWZsaXBzIG5vdCBpbnN0YW50IChhdCBsZWFzdCBieSBkZWZh dWx0KS4KCj4gPiBZZWFoIEkgZG9uJ3QgdGhpbmsgSSBjYXJlIGFib3V0IHRoZSBvbGQgaW50ZXJm YWNlLCBpdCBpcyB3aGF0IGl0IGlzLgo+ID4gQnV0IHdlIHNob3VsZCBkZXNpZ24gc29tZXRoaW5n IHdoaWNoIHdvcmtzIHdlbGwgZm9yIHRoZSBmdXR1cmUgdXNlCj4gPiBjYXNlcy4KPiAKPiBBcmUg eW91IHJlZmVycmluZyB0byB0aGUgYXRvbWljIEFQSSBhcyB0aGUgb2xkIHRoaW5nPwo+IAo+IElu IHRoZSBlbmQsIHRoZSBxdWVzdGlvbiBpcyBob3cgcGFyYW5vaWQgc2hvdWxkIGRpc3BsYXkgc2Vy dmVycyBiZQo+IGFib3V0IHRoZSB0aW1pbmdzPyBEbyB3ZSBuZWVkIHRvIGZpeCBXZXN0b24sIE11 dHRlciBhbmQgbGlrZWx5IG90aGVycwo+IHRvIGRlYWwgd2l0aCBwYWdlIGZsaXBzIGJlaW5nIHNp Z25hbGxlZCBpbW1lZGlhdGVseSwgb3IgaXMgaXQgbW9yZQo+IGFwcHJvcHJpYXRlIHRvIGZpeCB0 aGUgRFJNIGRyaXZlcnMgdG8ga2VlcCB1cCB0aGUgaWxsdXNpb24gb2YgcHJvdmlkaW5nCj4gd2hh dCB0aGUgQVBJIGFwcGVhcnMgdG8gc3VnZ2VzdD8KCkkgZ3Vlc3MgdGhleSBjYW4ndCBhc3N1bWUg dG9vIG11Y2ggYWJvdXQgdmJsYW5rcyAodG9vIG1hbnkgZHJpdmVycyBkb24ndApldmVuIGJvdGhl ciB3aXRoIHByZWNpc2UvaXJxLWRlbGF5LWNvcnJlY3QgdGltZXN0YW1wcyksIGJ1dCBJIHRoaW5r CmFzc3VtaW5nIHRoYXQgZG9pbmcgYSBwYWdlX2ZsaXAgY29tcGxldGlvbiBldmVudCBiYXNlZCBy ZW5kZXJlciBzaG91bGRuJ3QKcmVzdWx0IGluIHNwaW5uaW5nIGlzIHJlYXNvbmFibGUuCgpJIGd1 ZXNzIGZvciBib2Nocy91ZGwgYW5kIG90aGVycyB3ZSBjb3VsZCBjcmVhdGUgYSBzbWFsbCBkcm0g ZHJpdmVyIHdoaWNoCmtlZXBzIHRyYWNrIG9mIHRoZSBsYXN0IHZibGFuayB0cyAod2UgaGF2ZSB0 aG9zZSBhbHJlYWR5KSBhbmQgc3VpdGFibGUKZGVsYXlzIHRoZSBldmVuL3RpbWVzdGFtcCB0byBr ZWVwIHVwIHRoZSBpbGx1c2lvbi4gT3Igd2UganVzdCByaXAgb3V0CnBhZ2VmbGlwIHN1cHBvcnQg Zm9yIHRob3NlIGRyaXZlcnMuIEJ1dCBpZiB3ZXN0b24mY28gY2FuJ3QgY29wZSB3aXRoIHRoYXQK dGhhdCB3b3VsZCBiZSB3b3JzZS4KLURhbmllbAotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBF bmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcg bGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK