From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tomeu Vizoso Subject: Re: [PATCH v3 1/2] drm/virtio: Add window server support Date: Tue, 6 Feb 2018 13:41:52 +0100 Message-ID: References: <20180126135803.29781-1-tomeu.vizoso@collabora.com> <20180126135803.29781-2-tomeu.vizoso@collabora.com> <20180201163623.5cs2ysykg5wgulf4@sirius.home.kraxel.org> <49785e0d-936a-c3b4-62dd-aafc7083a942@collabora.com> <20180205122017.4vb5nlpodkq2uhxa@sirius.home.kraxel.org> <20180205160322.sntv5uoqp5o7flnh@sirius.home.kraxel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from bhuna.collabora.co.uk (bhuna.collabora.co.uk [IPv6:2a00:1098:0:82:1000:25:2eeb:e3e3]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5245E6E140 for ; Tue, 6 Feb 2018 12:41:56 +0000 (UTC) In-Reply-To: <20180205160322.sntv5uoqp5o7flnh@sirius.home.kraxel.org> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Gerd Hoffmann Cc: "Michael S. Tsirkin" , David Airlie , Stefan Hajnoczi , Jason Wang , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, virtualization@lists.linux-foundation.org, kernel@collabora.com List-Id: dri-devel@lists.freedesktop.org T24gMDIvMDUvMjAxOCAwNTowMyBQTSwgR2VyZCBIb2ZmbWFubiB3cm90ZToKPiBPbiBNb24sIEZl YiAwNSwgMjAxOCBhdCAwMzo0NjoxN1BNICswMTAwLCBUb21ldSBWaXpvc28gd3JvdGU6Cj4+IE9u IDAyLzA1LzIwMTggMDE6MjAgUE0sIEdlcmQgSG9mZm1hbm4gd3JvdGU6Cj4+PiAgICAgSGksCj4+ Pgo+Pj4+PiBXaHkgbm90IHVzZSB2aXJ0aW8tdnNvY2sgdG8gcnVuIHRoZSB3YXlsYW5kIHByb3Rv Y29sPyBJIGRvbid0IGxpa2UKPj4+Pj4gdGhlIGlkZWEgdG8gZHVwbGljYXRlIHNvbWV0aGluZyB3 aXRoIHZlcnkgc2ltbGlhciBmdW5jdGlvbmFsaXR5IGluCj4+Pj4+IHZpcnRpby1ncHUuCj4+Pj4K Pj4+PiBUaGUgcmVhc29uIGZvciBhYmFuZG9uaW5nIHRoYXQgYXBwcm9hY2ggd2FzIHRoZSB0eXBl IG9mIG9iamVjdHMgdGhhdAo+Pj4+IGNvdWxkIGJlIHNoYXJlZCB2aWEgdmlydGlvLXZzb2NrIHdv dWxkIGJlIGV4dHJlbWVseSBsaW1pdGVkLiBCZXNpZGVzCj4+Pj4gdGhhdCBiZWluZyBwb3RlbnRp YWxseSBjb25mdXNpbmcgdG8gdXNlcnMsIGl0IHdvdWxkIG1lYW4gZnJvbSB0aGUKPj4+PiBpbXBs ZW1lbnRhdGlvbiBzaWRlIHRoYXQgZWl0aGVyIHZpcnRpby12c29jayB3b3VsZCBnYWluIGEgZGVw ZW5kZW5jeSBvbgo+Pj4+IHRoZSBkcm0gc3Vic3lzdGVtLCBvciBhbiBhcHByb3ByaWF0ZSBhYnN0 cmFjdGlvbiBmb3Igc2hhcmVhYmxlIGJ1ZmZlcnMKPj4+PiB3b3VsZCBuZWVkIHRvIGJlIGFkZGVk IGZvciBsaXR0bGUgZ2Fpbi4KPj4+Cj4+PiBXZWxsLCBuby4gIFRoZSBpZGVhIGlzIHRoYXQgdmly dGlvLXZzb2NrIGFuZCB2aXJ0aW8tZ3B1IGFyZSB1c2VkIGxhcmdlbHkKPj4+IGFzLWlzLCB3aXRo b3V0IGtub3dpbmcgYWJvdXQgZWFjaCBvdGhlci4gIFRoZSBndWVzdCB3YXlsYW5kIHByb3h5IHdo aWNoCj4+PiBkb2VzIHRoZSBidWZmZXIgbWFuYWdlbWVudCB0YWxrcyB0byBib3RoIGRldmljZXMu Cj4+Cj4+IE5vdGUgdGhhdCB0aGUgcHJveHkgd29uJ3Qga25vdyBhbnl0aGluZyBhYm91dCBidWZm ZXJzIGlmIGNsaWVudHMgb3B0LWluIGZvcgo+PiB6ZXJvLWNvcHkgc3VwcG9ydCAodGhleSBhbGxv Y2F0ZSB0aGUgYnVmZmVycyBpbiBhIHdheSB0aGF0IGFsbG93cyBmb3IKPj4gc2hhcmluZyB3aXRo IHRoZSBob3N0KS4KPiAKPiBIbW0/ICBJJ20gYXNzdW1pbmcgdGhlIHdheWxhbmQgY2xpZW50IChp biB0aGUgZ3Vlc3QpIHRhbGtzIHRvIHRoZQo+IHdheWxhbmQgcHJveHksIHVzaW5nIHRoZSB3YXls YW5kIHByb3RvY29sLCBsaWtlIGl0IHdvdWxkIHRhbGsgdG8gYQo+IHdheWxhbmQgZGlzcGxheSBz ZXJ2ZXIuICBCdWZmZXJzIG11c3QgYmUgcGFzc2VkIGZyb20gY2xpZW50IHRvCj4gc2VydmVyL3By b3h5IHNvbWVob3csIHByb2JhYmx5IHVzaW5nIGZkIHBhc3NpbmcsIHNvIHdoZXJlIGlzIHRoZQo+ IHByb2JsZW0/Cj4gCj4gT3IgZGlkIEkgbWlzdW5kZXJzdGFuZCB0aGUgcm9sZSBvZiB0aGUgcHJv eHk/CgpIaSBHZXJkLAoKaXQncyBzdGFydGluZyB0byBsb29rIHRvIG1lIHRoYXQgd2UncmUgdGFs a2luZyBhIGJpdCBwYXN0IHRoZSBvdGhlciwgc28gCkkgaGF2ZSBwYXN0ZWQgYmVsb3cgYSBmZXcg d29yZHMgZGVzY3JpYmluZyBteSBjdXJyZW50IHBsYW4gcmVnYXJkaW5nIHRoZSAKMyBrZXkgc2Nl bmFyaW9zIHRoYXQgSSdtIGFkZHJlc3NpbmcuCgpJIG1lbnRpb24gYmVsb3cgS1ZNX1NFVF9VU0VS X01FTU9SWV9SRUdJT04sIGJ1dCBJIGd1ZXNzIHdlIGNhbiBkaXNjdXNzIAphbHRlcm5hdGl2ZXMg c3VjaCBhcyB0aGUgb25lIHlvdSBhcmUgcHJvcG9zaW5nIHVzaW5nIFBDSSBCQVJzIGF0IGEgbGF0 ZXIgCnN0YWdlLgoKSSByZWFsbHkgdGhpbmsgdGhhdCB3aGF0ZXZlciB3ZSBjb21lIHVwIHdpdGgg bmVlZHMgdG8gc3VwcG9ydCAzRCBjbGllbnRzIAphcyB3ZWxsLgoKCkNyZWF0aW9uIG9mIHNoYXJl YWJsZSBidWZmZXIgYnkgZ3Vlc3QKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQoKMS4gQ2xpZW50IHJlcXVlc3RzIHZpcnRpbyBkcml2ZXIgdG8gY3JlYXRl IGEgYnVmZmVyIHN1aXRhYmxlIGZvciBzaGFyaW5nIAp3aXRoIGhvc3QgKERSTV9WSVJUR1BVX1JF U09VUkNFX0NSRUFURSkKCjIuIFZpcnRpbyBkcml2ZXIgY3JlYXRlcyBhIG5ldyByZXNvdXJjZSBJ RCBhbmQgcGFzc2VzIHRoZSByZXF1ZXN0IHRvIApRRU1VIChWSVJUSU9fR1BVX0NNRF9SRVNPVVJD RV9DUkVBVEVfMkQpCgozLiBRRU1VIGNyZWF0ZXMgYSBzaG1lbSBmaWxlIChmb3IgZXhhbXBsZSB3 aXRoIG1rb3N0ZW1wKSwgYXNzb2NpYXRlcyAKdGhhdCBGRCB3aXRoIHRoZSBJRCBvZiB0aGlzIHJl c291cmNlCgo0LiBRRU1VIG1hcHMgdGhhdCBidWZmZXIgdG8gdGhlIGd1ZXN0J3MgYWRkcmVzcyBz cGFjZSAKKEtWTV9TRVRfVVNFUl9NRU1PUllfUkVHSU9OKSwgcGFzc2VzIHRoZSBndWVzdCBQRk4g dG8gdGhlIHZpcnRpbyBkcml2ZXIKCjUuIERSTV9WSVJUR1BVX1JFU09VUkNFX0NSRUFURSByZXR1 cm5zIHRoZSByZXNvdXJjZSBpZCBqdXN0IGNyZWF0ZWQKCjYuIENsaWVudCBtbWFwcyBpdCB3aXRo IERSTV9JT0NUTF9WSVJUR1BVX01BUCttbWFwIGFuZCBjYW4gcmVuZGVyIHRvIGl0Cgo3LiBHZXRz IGEgRkQgd2l0aCBEUk1fSU9DVExfUFJJTUVfSEFORExFX1RPX0ZEIHRoYXQgY2FuIGJlIHNlbnQg YXJvdW5kCgoKU2VuZCBvZiBzaGFyZWFibGUgYnVmZmVyIGJ5IGd1ZXN0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKMS4gQ2xpZW50IHNlbmRzIHRoZSBob3N0 IGEgbWVzc2FnZSB0aGF0IHJlZmVycyB0byB0aGlzIGJ1ZmZlciwgcGFzc2luZyAKdGhlIEZEIHVz aW5nIFNDTV9SSUdIVFMKCjIuIEd1ZXN0IHByb3h5IHBhc3NlcyB0aGUgbWVzc2FnZSAoc2VyaWFs aXplZCBkYXRhICsgRkRzKSBvbiB0byB0aGUgCnZpcnRpbyBkcml2ZXIgcmVzcG9uc2FibGUgZm9y IHdpbnNydiBzdXBwb3J0CgozLiB2aXJ0aW8gZHJpdmVyIHB1dHMgdGhlIGRhdGEgYW5kIHRoZSBy ZXNvdXJjZSBpZHMgY29ycmVzcG9uZGluZyB0byB0aGUgCkZEcyBpbiBhIHZpcnRxdWV1ZSwga2lj a3MgaXQKCjQuIFFFTVUgcG9wcyBkYXRhK2J1ZmZlcnMgZnJvbSB0aGUgdmlydHF1ZXVlLCBsb29r cyB1cCBzaG1lbSBGRCBmb3IgZWFjaCAKcmVzb3VyY2UsIHNlbmRzIGRhdGEgKyBGRHMgdG8gdGhl IGNvbXBvc2l0b3Igd2l0aCBTQ01fUklHSFRTCgoKUmVjZXB0aW9uIG9mIGJ1ZmZlciBmcm9tIHRo ZSBjb21wb3NpdG9yCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCgoxLiBRRU1VIHJlYWRzIGZyb20gdGhlIHNvY2tldCBhbmQgZ2V0cyBhIEZEIHZp YSBTQ01fUklHSFRTCgoyLiBRRU1VIG1tYXBzIHRoZSBGRCBhbmQgbWFwcyB0aGUgcmVzdWx0aW5n IHBvaW50ZXIgdG8gdGhlIGd1ZXN0IHZpYSAKS1ZNX1NFVF9VU0VSX01FTU9SWV9SRUdJT04KCjMu IFFFTVUgc2VuZHMgdGhlIGd1ZXN0IFBGTiBhbG9uZyB0aGUgcHJlc2VudGF0aW9uIGRhdGEgdG8g dGhlIHZpcnRpbyAKZHJpdmVyIChWSVJUSU9fR1BVX0NNRF9XSU5TUlZfUlgpCgo0LiBWaXJ0aW8g ZHJpdmVyIHdyYXBzIGEgRkQgYXJvdW5kIHRoYXQgUEZOLCBwdXRzIGl0IGluIGEgcXVldWUKCjUu IEd1ZXN0IHByb3h5IGNhbGxzIERSTV9JT0NUTF9WSVJUR1BVX1dJTlNSVl9SWCBhbmQgZ2V0cyBk YXRhIHBsdXMgdGhhdCBGRAoKNi4gR3Vlc3QgcHJveHkgc2VuZHMgdGhhdCBkYXRhICsgRkQgdG8g dGhlIGNsaWVudCB2aWEgU0NNX1JJR0hUUwoKNy4gQ2xpZW50IGdldHMgRkQsIG1tYXBzIGl0IGFu ZCByZWFkcyB0aGUgZGF0YSBmcm9tIHRoZSBjb21wb3NpdG9yCgoKClRoYW5rcywKClRvbWV1CgoK Pj4+Pj4gSWYgeW91IGhhdmUgYSBndWVzdCBwcm94eSBhbnl3YXkgdXNpbmcgdmlydGlvLXNvY2sg Zm9yIHRoZSBwcm90b2NvbAo+Pj4+PiBzdHJlYW0gYW5kIHZpcnRpby1ncHUgZm9yIGJ1ZmZlciBz aGFyaW5nIChhbmQgc29tZSBkYXkgM2QgcmVuZGVyaW5nCj4+Pj4+IHRvbykgc2hvdWxkIHdvcmsg ZmluZSBJIHRoaW5rLgo+Pj4+Cj4+Pj4gSWYgSSB1bmRlcnN0YW5kIGNvcnJlY3RseSB5b3VyIHBy b3Bvc2FsLCB2aXJ0aW8tZ3B1IHdvdWxkIGJlIHVzZWQgZm9yCj4+Pj4gY3JlYXRpbmcgYnVmZmVy cyB0aGF0IGNvdWxkIGJlIHNoYXJlZCBhY3Jvc3MgZG9tYWlucywgYnV0IHNvbWV0aGluZwo+Pj4+ IGVxdWl2YWxlbnQgdG8gU0NNX1JJR0hUUyB3b3VsZCBzdGlsbCBiZSBuZWVkZWQgaW4gdmlydGlv LXZzb2NrPwo+Pj4KPj4+IFllcywgdGhlIHByb3h5IHdvdWxkIHNlbmQgYSByZWZlcmVuY2UgdG8g dGhlIGJ1ZmZlciBvdmVyIHZpcnRpby12c29jay4KPj4+IEkgd2FzIG1vcmUgdGhpbmtpbmcgYWJv dXQgYSBzdHJ1Y3Qgc3BlY2lmeWluZyBzb21ldGhpbmcgbGlrZQo+Pj4gInJlc3NvdXJjZS1pZCA0 MiBvbiB2aXJ0aW8tZ3B1LXBjaSBkZXZpY2UgaW4gc2xvdCAxOjIzLjAiIGluc3RlYWQgb2YKPj4+ IHVzaW5nIFNDTV9SSUdIVFMuCj4+Cj4+IENhbiB5b3UgZXh0ZW5kIG9uIHRoaXM/IEknbSBoYXZp bmcgdHJvdWJsZSBmaWd1cmluZyBvdXQgaG93IHRoaXMgY291bGQgd29yawo+PiBpbiBhIHdheSB0 aGF0IGtlZXBzIHByb3RvY29sIGRhdGEgdG9nZXRoZXIgd2l0aCB0aGUgcmVzb3VyY2VzIGl0IHJl ZmVycyB0by4KPiAKPiBEb24ndCBrbm93IG11Y2ggYWJvdXQgdGhlIHdheWxhbmQgcHJvdG9jb2wu ICBBc3N1bWluZyB5b3UgYXJlIHBhc3NpbmcKPiBidWZmZXJzIGFzIGZpbGUgaGFuZGxlcywgdG9n ZXRoZXIgd2l0aCBzb21lIGluZm9ybWF0aW9uIHdoYXQga2luZCBvZgo+IGJ1ZmZlciB0aGlzIGlz IChzeXN2IHNobSwgZG1hLWJ1ZiwgLi4uKS4KPiAKPiBXZSBoYXZlIGEgcHJveHkgb24gYm90aCBl bmRzLiAgT25lIHJ1bm5pbmcgaW4gdGhlIGd1ZXN0LCBvbmUgb24gdGhlIGhvc3QKPiAoYmUgaXQg cWVtdSBvciBzb21lIGV4dGVybmFsIG9uZSkuICBTbyB0aGVzZSB0d28gaGF2ZSB0byBhZ3JlZSBv biBob3cgdG8KPiBwYXNzIGJ1ZmZlcnMgZnJvbSBvbmUgdG8gdGhlIG90aGVyLiAgT25lIHdheSB3 b3VsZCBiZSB0byBoYXZlIHRoZW0gdGFsawo+IGEgc2ltcGxlIG1ldGEgcHJvdG9jb2wgdG8gZWFj aCBvdGhlciwgd2l0aCAiaGVyZSBjb21lcyBhIGNodW5rIHdheWxhbmQKPiBwcm90b2NvbCB0byBw YXNzIGFsb25nIiBhbmQgImhlcmUgaXMgYSBidWZmZXIgbWdtdCBtZXNzYWdlIi4gIFBvc3NpYmx5 Cj4gaXQgaXMgYmV0dGVyIHRvIGV4dGVuZCB0aGUgd2F5bGFuZCBwcm90b2NvbCB0byBhbHNvIGNv dmVyIHRoaXMgbmV3IGtpbmQKPiBvZiBidWZmZXIsIHNvIHlvdSBkb24ndCBuZWVkIHRoZSBtZXRh IHByb3RvY29sLgo+IAo+IFRoZSBwcm94aWVzIHdvdWxkIHRhbGsgbm9ybWFsIHdheWxhbmQgcHJv dG9jb2wgdG8gdGhlIGNsaWVudCAoaW4gdGhlCj4gZ3Vlc3QpIGFuZCB0aGUgc2VydmVyIChvbiB0 aGUgaG9zdCkuICBUaGV5IHdpbGwgaGF2ZSB0byB0cmFuc2Zvcm0gdGhlCj4gYnVmZmVyIGludG8g c29tZXRoaW5nIHRoZXkgY2FuIHBhc3MgYWxvbmcgdXNpbmcgdGhlIHdheWxhbmQgcHJvdG9jb2wu Cj4gCj4+Pj4+IFdoYXQgaXMgdGhlIHBsYW4gZm9yIHRoZSBob3N0IHNpZGU/IEkgc2VlIGJhc2lj YWxseSB0d28gb3B0aW9ucy4gRWl0aGVyCj4+Pj4+IGltcGxlbWVudCB0aGUgaG9zdCB3YXlsYW5k IHByb3h5IGRpcmVjdGx5IGluIHFlbXUuIE9yCj4+Pj4+IGltcGxlbWVudCBpdCBhcyBzZXBhcmF0 ZSBwcm9jZXNzLCB3aGljaCB0aGVuIG5lZWRzIHNvbWUgaGVscCBmcm9tCj4+Pj4+IHFlbXUgdG8g Z2V0IGFjY2VzcyB0byB0aGUgYnVmZmVycy4gVGhlIGxhdGVyIHdvdWxkIGFsbG93IHFlbXUgcnVu bmluZwo+Pj4+PiBpbmRlcGVuZGFudCBmcm9tIHRoZSBkZXNrdG9wIHNlc3Npb24uCj4+Pj4KPj4+ PiBSZWdhcmRpbmcgc3luY2hyb25pemluZyBidWZmZXJzLCB0aGlzIHdpbGwgc3RvcCBiZWNvbWlu ZyBuZWVkZWQgaW4KPj4+PiBzdWJzZXF1ZW50IGNvbW1pdHMgYXMgYWxsIHNoYXJlZCBtZW1vcnkg aXMgYWxsb2NhdGVkIGluIHRoZSBob3N0IGFuZAo+Pj4+IG1hcHBlZCB0byB0aGUgZ3Vlc3Qgdmlh IEtWTV9TRVRfVVNFUl9NRU1PUllfUkVHSU9OLgo+Pj4KPj4+IC0tdmVyYm9zZSBwbGVhc2UuICBU aGUgcWVtdSBwYXRjaGVzIGxpbmtlZCBmcm9tIHRoZSBjb3ZlciBsZXR0ZXIgbm90Cj4+PiBleGFj dGx5IGhlbHBmdWwgaW4gdW5kZXJzdGFuZGluZyBob3cgYWxsIHRoaXMgaXMgc3VwcG9zZWQgdG8g d29yay4KPj4KPj4gQSBjbGllbnQgd2lsbCBhbGxvY2F0ZSBhIGJ1ZmZlciB3aXRoIERSTV9WSVJU R1BVX1JFU09VUkNFX0NSRUFURSwgZXhwb3J0IGl0Cj4+IGFuZCBwYXNzIHRoZSBGRCB0byB0aGUg Y29tcG9zaXRvciAodmlhIHRoZSBwcm94eSkuCj4+Cj4+IER1cmluZyByZXNvdXJjZSBjcmVhdGlv biwgUUVNVSB3b3VsZCBhbGxvY2F0ZSBhIHNobWVtIGJ1ZmZlciBhbmQgbWFwIGl0IGludG8KPj4g dGhlIGd1ZXN0IHdpdGggS1ZNX1NFVF9VU0VSX01FTU9SWV9SRUdJT04uCj4gCj4gU28gdGhlIGJ1 ZmZlciBtYWdpY2FsbHkgc2hvd3MgdXAgc29tZXdoZXJlIGluIHRoZSBwaHlzaWNhbCBhZGRyZXNz IHNwYWNlCj4gb2YgdGhlIGd1ZXN0PyAgVGhhdCBraW5kIGlmIG1hZ2ljIHVzdWFsbHkgaXNuJ3Qg YSB2ZXJ5IGdvb2QgaWRlYS4KPiAKPj4gV2hlbiBhIEZEIGNvbWVzIGZyb20gdGhlIGNvbXBvc2l0 b3IsIFFFTVUgbW1hcHMgaXQgYW5kIG1hcHMgdGhhdCB2aXJ0dWFsCj4+IGFkZHJlc3MgdG8gdGhl IGd1ZXN0IHZpYSBLVk1fU0VUX1VTRVJfTUVNT1JZX1JFR0lPTi4KPj4KPj4gV2hlbiB0aGUgZ3Vl c3QgcHJveHkgcmVhZHMgZnJvbSB0aGUgd2luc3J2IHNvY2tldCwgaXQgd2lsbCBnZXQgYSBGRCB0 aGF0Cj4+IHdyYXBzIHRoZSBidWZmZXIgcmVmZXJlbmNlZCBhYm92ZS4KPj4KPj4gV2hlbiB0aGUg Y2xpZW50IHJlYWRzIGZyb20gdGhlIGd1ZXN0IHByb3h5LCBpdCB3b3VsZCBnZXQgYSBGRCB0aGF0 Cj4+IHJlZmVyZW5jZXMgdGhhdCBzYW1lIGJ1ZmZlciBhbmQgd291bGQgbW1hcCBpdC4gQXQgdGhh dCBwb2ludCwgdGhlIGNsaWVudCBpcwo+PiByZWFkaW5nIGZyb20gdGhlIHNhbWUgcGh5c2ljYWwg cGFnZXMgd2hlcmUgdGhlIGNvbXBvc2l0b3Igd3JvdGUgdG8uCj4gCj4gSG1tLiAgSSBhbGx3YXlz IGFzc3VtZWQgdGhlIHdheWxhbmQgY2xpZW50IGFsbG9jYXRlcyB0aGUgYnVmZmVycywgbm90Cj4g dGhlIHNlcnZlci4gIElzIHRoYXQgd3Jvbmc/Cj4gCj4gV2hhdCBpcyB5b3VyIHBsYW4gZm9yIDNk IGFjY2VsZXJhdGlvbiBzdXBwb3J0Pwo+IAo+PiBUbyBiZSBjbGVhciwgSSdtIG5vdCBhZ2FpbnN0 IHNvbHZpbmcgdGhpcyB2aWEgc29tZSBmb3JtIG9mIHJlc3RyaWN0ZWQgRkQKPj4gcGFzc2luZyBp biB2aXJ0aW8tdnNvY2ssIGJ1dCBTdGVmYW4gKGFkZGVkIHRvIENDKSB0aG91Z2h0IHRoYXQgaXQg d291bGQgYmUKPj4gY2xlYW5lciB0byBkbyBpdCBhbGwgd2l0aGluIHZpcnRpby1ncHUuCj4gCj4g V2VsbCwgd2hlbiB0YXJnZXRpbmcgM2QgYWNjZWxlcmF0aW9uIGl0IG1ha2VzIGFsb3Qgb2Ygc2Vu c2UgdG8gdXNlCj4gdmlydGlvLWdwdS4gIEFuZCBpdCBtYWtlcyBzZW5zZSB0byBoYXZlIDJkIGFu ZCAzZCBtb2RlcyB3b3JrIGFzIHNpbWxpYXIKPiBhcyBwb3NzaWJsZS4gIFRoYXQgaXMgbm90IHRo ZSBkaXJlY3Rpb24geW91IGFyZSB0YWtpbmcgd2l0aCB5b3VyCj4gcHJvcG9zYWwgdGhvdWdoIC4u Lgo+IAo+IElmIHlvdSBkb24ndCBwbGFuIGZvciAzZCBzdXBwb3J0IEknbSB3b25kZXJpbmcgd2hl bmV2ZXIgdmlydGlvLWdwdSBpcyBhCj4gZ29vZCBwaWNrLiAgTWFwcGluZyB0cmlja2VyeSBhc2lk ZSwgeW91IHdvdWxkbid0IGdldCBsaW5lYXIgYnVmZmVycwo+IHdoaWNoIGNhbiBlYXNpbHkgYmUg c2hhcmVkIGJldHdlZW4gaG9zdCBhbmQgZ3Vlc3QsIGJlY2F1c2UgZ3Vlc3QgYnVmZmVycwo+IGFy ZSBub3QgcmVxdWlyZWQgdG8gYmUgbGluZWFyIGluIGd1ZXN0IHBoeXNpY2FsIG1lbW9yeS4gIE9u ZSBjb3B5IHdpbGwKPiBiZSBuZWVkZWQsIGZyb20gKHNjYXR0ZXJlZCkgZ3Vlc3QgcGh5c2ljYWwg bWVtb3J5IGJ1ZmZlciB0byAobGluZWFyKQo+IGhvc3QgYnVmZmVyLgo+IAo+IE9uZSBwb3NzaWJs ZSBhbHRlcm5hdGl2ZSB3b3VsZCBiZSB0byBidWlsZCBvbiBzdGR2Z2EuICBJdCBoYXMgYSBwY2kK PiBtZW1vcnkgYmFyLCBpdCBoYXMgYSBkcm0gZHJpdmVyIChib2Nocykgd2hpY2ggYWxsb3dzIGFs bG9jYXRpbmcgZHJtCj4gYnVmZmVycyBpbiB0aGF0IGJhci4gIFRoZXkgYXJlIGxpbmVhciBidWZm ZXJzIGluIGJvdGggZ3Vlc3QgcGh5c2ljYWwgYW5kCj4gaG9zdCB2aXJ0dWFsIG1lbW9yeS4gIElm IHdlIGFkZCBhbiBvcHRpb24gdG8gcWVtdSB0byBhbGxvY2F0ZSB0aGUgbWVtb3J5Cj4gYmFyIGlu IHN5c3Ygc2hhcmVkIG1lbW9yeSBpdCBjYW4gZWFzaWx5IGJlIGV4cG9ydGVkIHRvIG90aGVyIHBy b2Nlc3Nlcwo+IG9uIHRoZSBob3N0LiAgVGhlIHdheWxhbmQgY2xpZW50IGluIHRoZSBndWVzdCBj YW4gbWFwIGl0IGRpcmVjdGx5IHRvbywKPiBpdCBvbmx5IG5lZWRzIHRvIGNyZWF0ZSBhIGRybSBi dWZmZXIgYW5kIG1tYXAgaXQuICBZb3UgY2FuIGdldCB6ZXJvLWNvcHkKPiB3aXRob3V0IGhhdmlu ZyB0byBwbGF5IG1hcHBpbmcgdHJpY2tzLgo+IAo+IGNoZWVycywKPiAgICBHZXJkCj4gCj4gCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBt YWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=