From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: Re: [PATCH 1/1] cameraif: add ABI for para-virtual camera Date: Mon, 10 Sep 2018 12:52:38 +0300 Message-ID: <2a39c994-118f-a17e-c40a-f5fbbad1cb03@epam.com> References: <20180731093142.3828-1-andr2000@gmail.com> <20180731093142.3828-2-andr2000@gmail.com> <73b69e31-d36d-d89f-20d6-d59dbefe395e@xs4all.nl> <7134b3ad-9fcf-0139-41b3-67a3dbc8224d@xs4all.nl> <51f97715-454a-0242-b381-29944d77d5b5@gmail.com> <3c6bb5c8-eeb4-fd09-407a-5a77b29b56c3@xs4all.nl> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1fzIsH-0004gS-Hq for xen-devel@lists.xenproject.org; Mon, 10 Sep 2018 09:52:53 +0000 In-Reply-To: <3c6bb5c8-eeb4-fd09-407a-5a77b29b56c3@xs4all.nl> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Hans Verkuil , Oleksandr Andrushchenko , xen-devel@lists.xenproject.org, konrad.wilk@oracle.com, jgross@suse.com, boris.ostrovsky@oracle.com, mchehab@kernel.org, linux-media@vger.kernel.org, sakari.ailus@linux.intel.com, koji.matsuoka.xm@renesas.com List-Id: xen-devel@lists.xenproject.org T24gMDkvMTAvMjAxOCAxMjowNCBQTSwgSGFucyBWZXJrdWlsIHdyb3RlOgo+IE9uIDA5LzEwLzIw MTggMTA6MjQgQU0sIE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOgo+PiBPbiAwOS8xMC8y MDE4IDEwOjUzIEFNLCBIYW5zIFZlcmt1aWwgd3JvdGU6Cj4+PiBIaSBPbGVrc2FuZHIsCj4+Pgo+ Pj4gT24gMDkvMTAvMjAxOCAwOToxNiBBTSwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6 Cj4gPHNuaXA+Cj4KPj4+Pj4gSSBzdXNwZWN0IHRoYXQgeW91IGxpa2VseSB3aWxsIHdhbnQgdG8g c3VwcG9ydCBzdWNoIHNvdXJjZXMgZXZlbnR1YWxseSwgc28KPj4+Pj4gaXQgcGF5cyB0byBkZXNp Z24gdGhpcyB3aXRoIHRoYXQgaW4gbWluZC4KPj4+PiBBZ2FpbiwgSSB0aGluayB0aGF0IHRoaXMg aXMgdGhlIGJhY2tlbmQgdG8gaGlkZSB0aGVzZQo+Pj4+IHVzZS1jYXNlcyBmcm9tIHRoZSBmcm9u dGVuZC4KPj4+IEknbSBub3Qgc3VyZSB5b3UgY2FuOiBzYXkgeW91IGFyZSBwbGF5aW5nIGEgYmx1 cmF5IGNvbm5lY3RlZCB0byB0aGUgc3lzdGVtCj4+PiB3aXRoIEhETUksIHRoZW4gaWYgdGhlcmUg aXMgYSByZXNvbHV0aW9uIGNoYW5nZSwgd2hhdCBkbyB5b3UgZG8/IFlvdSBjYW4gdGVhcgo+Pj4g ZXZlcnl0aGluZyBkb3duIGFuZCBidWlsZCBpdCB1cCBhZ2Fpbiwgb3IgeW91IGNhbiBqdXN0IHRl bGwgZnJvbnRlbmRzIHRoYXQKPj4+IHNvbWV0aGluZyBjaGFuZ2VkIGFuZCB0aGF0IHRoZXkgaGF2 ZSB0byBsb29rIGF0IHRoZSBuZXcgdmNhbWVyYSBjb25maWd1cmF0aW9uLgo+Pj4KPj4+IFRoZSBs YXR0ZXIgc2VlbXMgdG8gYmUgbW9yZSBzZW5zaWJsZSB0byBtZS4gSXQgaXMgcmVhbGx5IG5vdCBt dWNoIHRoYXQgeW91Cj4+PiBuZWVkIHRvIGRvOiBhbGwgeW91IHJlYWxseSBuZWVkIGlzIGFuIGV2 ZW50IHNpZ25hbGxpbmcgdGhhdCBzb21ldGhpbmcgY2hhbmdlZC4KPj4+IEluIFY0TDIgdGhhdCdz IHRoZSBWNEwyX0VWRU5UX1NPVVJDRV9DSEFOR0UuCj4+IHdlbGwsIHRoaXMgY29tcGxpY2F0ZXMg dGhpbmdzIGEgbG90IGFzIEknbGwgaGF2ZSB0bwo+PiByZS1hbGxvY2F0ZSBidWZmZXJzIC0gcmln aHQ/Cj4gUmlnaHQuIERpZmZlcmVudCByZXNvbHV0aW9ucyBtZWFucyBkaWZmZXJlbnQgc2l6ZWQg YnVmZmVycyBhbmQgdXN1YWxseSBsb3RzIG9mCj4gY2hhbmdlcyB0aHJvdWdob3V0IHRoZSB3aG9s ZSB2aWRlbyBwaXBlbGluZSwgd2hpY2ggaW4gdGhpcyBjYXNlIGNhbiBldmVuCj4gZ28gaW50byBt dWx0aXBsZSBWTXMuCj4KPiBPbmUgYWRkaXRpb25hbCB0aGluZyB0byBrZWVwIGluIG1pbmQgZm9y IHRoZSBmdXR1cmU6IFY0TDJfRVZFTlRfU09VUkNFX0NIQU5HRQo+IGhhcyBhIGZsYWdzIGZpZWxk IHRoYXQgdGVsbHMgdXNlcnNwYWNlIHdoYXQgY2hhbmdlZC4gUmlnaHQgbm93IHRoYXQgaXMganVz dCB0aGUKPiByZXNvbHV0aW9uLCBidXQgaW4gdGhlIGZ1dHVyZSB5b3UgY2FuIGV4cGVjdCBmbGFn cyBmb3IgY2FzZXMgd2hlcmUganVzdCB0aGUKPiBjb2xvcnNwYWNlIGluZm9ybWF0aW9uIGNoYW5n ZXMsIGJ1dCBub3QgdGhlIHJlc29sdXRpb24uCj4KPiBXaGljaCByZW1pbmRzIG1lIG9mIHR3byBp bXBvcnRhbnQgbWlzc2luZyBwaWVjZXMgb2YgaW5mb3JtYXRpb24gaW4geW91ciBwcm90b2NvbDoK Pgo+IDEpIFlvdSBuZWVkIHRvIGNvbW11bmljYXRlIHRoZSBjb2xvcnNwYWNlIGRhdGE6Cj4KPiAt IGNvbG9yc3BhY2UKPiAtIHhmZXJfZnVuYwo+IC0geWNiY3JfZW5jL2hzdl9lbmMgKHVubGlrZWx5 IHlvdSBldmVyIHdhbnQgdG8gc3VwcG9ydCBIU1YgcGl4ZWxmb3JtYXRzLCBzbyBJCj4gICAgdGhp bmsgeW91IGNhbiBpZ25vcmUgaHN2X2VuYykKPiAtIHF1YW50aXphdGlvbgo+Cj4gU2VlIGh0dHBz Oi8vaHZlcmt1aWwuaG9tZS54czRhbGwubmwvc3BlYy91YXBpL3Y0bC9waXhmbXQtdjRsMi5odG1s I2MudjRsMl9waXhfZm9ybWF0Cj4gYW5kIHRoZSBsaW5rcyB0byB0aGUgY29sb3JzcGFjZSBzZWN0 aW9ucyBpbiB0aGUgVjRMMiBzcGVjIGZvciBkZXRhaWxzKS4KPgo+IFRoaXMgaW5mb3JtYXRpb24g aXMgcGFydCBvZiB0aGUgZm9ybWF0LCBpdCBpcyByZXBvcnRlZCBieSB0aGUgZHJpdmVyLgpJJ2xs IHRha2UgYSBsb29rIGFuZCB0aGluayB3aGF0IGNhbiBiZSBwdXQgYW5kIGhvdyBpbnRvIHRoZSBw cm90b2NvbCwKZG8geW91IHRoaW5rIEknbGwgaGF2ZSB0byBpbXBsZW1lbnQgYWxsIHRoZSBhYm92 ZSBmb3IKdGhpcyBzdGFnZT8KCj4KPiAyKSBJZiB5b3Ugc3VwcG9ydCBpbnRlcmxhY2VkIGZvcm1h dHMgYW5kIFY0TDJfRklFTERfQUxURVJOQVRFIChpLmUuCj4gICAgIGVhY2ggYnVmZmVyIGNvbnRh aW5zIGEgc2luZ2xlIGZpZWxkKSwgdGhlbiB5b3UgbmVlZCB0byBiZSBhYmxlIHRvIHRlbGwKPiAg ICAgdXNlcnNwYWNlIHdoZXRoZXIgdGhlIGRlcXVldWVkIGJ1ZmZlciBjb250YWlucyBhIHRvcCBv ciBib3R0b20gZmllbGQuCkkgdGhpbmsgYXQgdGhlIGZpcnN0IHN0YWdlIHdlIGNhbiBhc3N1bWUg dGhhdCBpbnRlcmxhY2VkCmZvcm1hdHMgYXJlIG5vdCBzdXBwb3J0ZWQgYW5kIGFkZCBzdWNoIHN1 cHBvcnQgbGF0ZXIgaWYgbmVlZCBiZS4KPgo+IEFsc28sIHdoYXQgdG8gZG8gd2l0aCBkcm9wcGVk IGZyYW1lcy9maWVsZHM6IFY0TDIgaGFzIGEgc2VxdWVuY2UgY291bnRlciBhbmQKPiB0aW1lc3Rh bXAgdGhhdCBjYW4gaGVscCBkZXRlY3RpbmcgdGhhdC4gWW91IHByb2JhYmx5IG5lZWQgc29tZXRo aW5nIHNpbWlsYXIuCk9rLCB0aGlzIGNhbiBiZSByZXBvcnRlZCBhcyBwYXJ0IG9mIFhFTkNBTUVS QV9FVlRfRlJBTUVfQVZBSUwgZXZlbnQKPgo+PiBCdXQgYW55d2F5cywgSSBjYW4gYWRkCj4+ICNk ZWZpbmUgWEVOQ0FNRVJBX0VWVF9DRkdfQ0hBTkdFICAgICAgIDB4MDEKPj4gaW4gdGhlIHByb3Rv Y29sLCBzbyB3ZSBjYW4gYWRkcmVzcyB0aGlzIHVzZS1jYXNlCj4gPHNuaXA+Cj4KPj4+PiAxLiBz ZXQgZm9ybWF0IGNvbW1hbmQ6Cj4+Pj4gICAgICogcGl4ZWxfZm9ybWF0IC0gdWludDMyX3QsIHBp eGVsIGZvcm1hdCB0byBiZSB1c2VkLCBGT1VSQ0MgY29kZS4KPj4+PiAgICAgKiB3aWR0aCAtIHVp bnQzMl90LCB3aWR0aCBpbiBwaXhlbHMuCj4+Pj4gICAgICogaGVpZ2h0IC0gdWludDMyX3QsIGhl aWdodCBpbiBwaXhlbHMuCj4+Pj4KPj4+PiAyLiBTZXQgZnJhbWUgcmF0ZSBjb21tYW5kOgo+Pj4+ ICAgICArICogZnJhbWVfcmF0ZV9udW1lciAtIHVpbnQzMl90LCBudW1lcmF0b3Igb2YgdGhlIGZy YW1lIHJhdGUuCj4+Pj4gICAgICsgKiBmcmFtZV9yYXRlX2Rlbm9tIC0gdWludDMyX3QsIGRlbm9t aW5hdG9yIG9mIHRoZSBmcmFtZSByYXRlLgo+Pj4+Cj4+Pj4gMy4gU2V0L3JlcXVlc3QgbnVtIGJ1 ZnM6Cj4+Pj4gICAgICogbnVtX2J1ZnMgLSB1aW50OF90LCBkZXNpcmVkIG51bWJlciBvZiBidWZm ZXJzIHRvIGJlIHVzZWQuCj4+PiBJIGxpa2UgdGhpcyBtdWNoIGJldHRlci4gMSsyIGNvdWxkIGJl IGNvbWJpbmVkLCBidXQgMyBzaG91bGQgZGVmaW5pdGVseSByZW1haW4KPj4+IHNlcGFyYXRlLgo+ PiBvaywgdGhlbiAxKzIgY29tYmluZWQgKyAzIHNlcGFyYXRlLgo+PiBEbyB5b3UgdGhpbmsgd2Ug Y2FuIHN0aWxsIG5hbWUgMSsyIGFzICJzZXRfZm9ybWF0IiBvciAic2V0X2NvbmZpZyIKPj4gd2ls bCBmaXQgYmV0dGVyPwo+IHNldF9mb3JtYXQgaXMgY2xvc2VyIHRvIFNfRk1UIGFzIHVzZWQgaW4g VjRMMiwgc28gSSBoYXZlIGEgc2xpZ2h0IHByZWZlcmVuY2UKPiBmb3IgdGhhdCwgYnV0IGl0IGlz IHJlYWxseSB1cCB0byB5b3UuCkknbGwgcHJvYmFibHkgc3RpY2sgdG8gU0VUX0NPTkZJRyBoZXJl Cj4KPj4+Pj4+ICsgKgo+Pj4+Pj4gKyAqIFNlZSByZXNwb25zZSBmb3JtYXQgZm9yIHRoaXMgcmVx dWVzdC4KPj4+Pj4+ICsgKgo+Pj4+Pj4gKyAqIE5vdGVzOgo+Pj4+Pj4gKyAqICAtIGZyb250ZW5k IG11c3QgY2hlY2sgdGhlIGNvcnJlc3BvbmRpbmcgcmVzcG9uc2UgaW4gb3JkZXIgdG8gc2VlCj4+ Pj4+PiArICogICAgaWYgdGhlIHZhbHVlcyByZXBvcnRlZCBiYWNrIGJ5IHRoZSBiYWNrZW5kIGRv IG1hdGNoIHRoZSBkZXNpcmVkIG9uZXMKPj4+Pj4+ICsgKiAgICBhbmQgY2FuIGJlIGFjY2VwdGVk Lgo+Pj4+Pj4gKyAqICAtIGZyb250ZW5kIG1heSBzZW5kIG11bHRpcGxlIFhFTkNBTUVSQV9PUF9T RVRfQ09ORklHIHJlcXVlc3RzIGJlZm9yZQo+Pj4+Pj4gKyAqICAgIHNlbmRpbmcgWEVOQ0FNRVJB X09QX1NUUkVBTV9TVEFSVCByZXF1ZXN0IHRvIHVwZGF0ZSBvciB0dW5lIHRoZQo+Pj4+Pj4gKyAq ICAgIGNvbmZpZ3VyYXRpb24uCj4+Pj4+PiArICovCj4+Pj4+PiArc3RydWN0IHhlbmNhbWVyYV9j b25maWcgewo+Pj4+Pj4gKyAgICB1aW50MzJfdCBwaXhlbF9mb3JtYXQ7Cj4+Pj4+PiArICAgIHVp bnQzMl90IHdpZHRoOwo+Pj4+Pj4gKyAgICB1aW50MzJfdCBoZWlnaHQ7Cj4+Pj4+PiArICAgIHVp bnQzMl90IGZyYW1lX3JhdGVfbm9tOwo+Pj4+Pj4gKyAgICB1aW50MzJfdCBmcmFtZV9yYXRlX2Rl bm9tOwo+Pj4+Pj4gKyAgICB1aW50OF90IG51bV9idWZzOwo+Pj4+Pj4gK307Cj4+Pj4+PiArCj4+ Pj4+PiArLyoKPj4+Pj4+ICsgKiBSZXF1ZXN0IGJ1ZmZlciBkZXRhaWxzIC0gcmVxdWVzdCBjYW1l cmEgYnVmZmVyJ3MgbWVtb3J5IGxheW91dC4KPj4+Pj4+ICsgKiBkZXRhaWxlZCBkZXNjcmlwdGlv bjoKPj4+Pj4+ICsgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAg MiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0Cj4+Pj4+PiArICogKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ Pj4+PiArICogfCAgICAgICAgICAgICAgIGlkICAgICAgICAgICAgICAgIHxfR0VUX0JVRl9ERVRB SUxTfCAgIHJlc2VydmVkICAgICB8IDQKPj4+Pj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4+Pj4+ICsg KiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgOAo+Pj4+Pj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+Pj4+Pj4gKyAqIHwvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvfAo+Pj4+Pj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+Pj4+Pj4gKyAqIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA2 NAo+Pj4+Pj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+Pj4+Pj4gKyAqCj4+Pj4+PiArICogU2VlIHJlc3Bv bnNlIGZvcm1hdCBmb3IgdGhpcyByZXF1ZXN0Lgo+Pj4+Pj4gKyAqCj4+Pj4+PiArICoKPj4+Pj4+ ICsgKiBSZXF1ZXN0IGNhbWVyYSBidWZmZXIgY3JlYXRpb246Cj4+Pj4+PiArICogICAgICAgICAw ICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAzICAgICAg ICBvY3RldAo+Pj4+Pj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+Pj4+Pj4gKyAqIHwgICAgICAgICAgICAg ICBpZCAgICAgICAgICAgICAgICB8IF9PUF9CVUZfQ1JFQVRFIHwgICByZXNlcnZlZCAgICAgfCA0 Cj4+Pj4+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+Pj4+PiArICogfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgKPj4+Pj4+ ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSsKPj4+Pj4+ICsgKiB8ICAgICAgaW5kZXggICAgIHwgICAgICAgICAg ICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgIHwgMTIKPj4+Pj4+ICsgKiAr LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSsKPj4+Pj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JlZl9k aXJlY3RvcnkgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYKPj4+Pj4+ICsgKiArLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSsKPj4+Pj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjAKPj4+Pj4+ICsgKiArLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsK Pj4+Pj4+ICsgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKPj4+Pj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4+Pj4+ICsg KiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgNjQKPj4+Pj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4+Pj4+ICsgKgo+Pj4+ Pj4gKyAqIEFuIGF0dGVtcHQgdG8gY3JlYXRlIG11bHRpcGxlIGJ1ZmZlcnMgd2l0aCB0aGUgc2Ft ZSBpbmRleCBpcyBhbiBlcnJvci4KPj4+Pj4+ICsgKiBpbmRleCBjYW4gYmUgcmUtdXNlZCBhZnRl ciBkZXN0cm95aW5nIHRoZSBjb3JyZXNwb25kaW5nIGNhbWVyYSBidWZmZXIuCj4+Pj4+PiArICoK Pj4+Pj4+ICsgKiBpbmRleCAtIHVpbnQ4X3QsIGluZGV4IG9mIHRoZSBidWZmZXIgdG8gYmUgY3Jl YXRlZC4KPj4+Pj4+ICsgKiBncmVmX2RpcmVjdG9yeSAtIGdyYW50X3JlZl90LCBhIHJlZmVyZW5j ZSB0byB0aGUgZmlyc3Qgc2hhcmVkIHBhZ2UKPj4+Pj4+ICsgKiAgIGRlc2NyaWJpbmcgc2hhcmVk IGJ1ZmZlciByZWZlcmVuY2VzLiBUaGUgc2l6ZSBvZiB0aGUgYnVmZmVyIGlzIGVxdWFsIHRvCj4+ Pj4+PiArICogICBYRU5DQU1FUkFfT1BfR0VUX0JVRl9ERVRBSUxTLnNpemUgcmVzcG9uc2UuIEF0 IGxlYXN0IG9uZSBwYWdlIGV4aXN0cy4gSWYKPj4+Pj4+ICsgKiAgIHNoYXJlZCBidWZmZXIgc2l6 ZSBleGNlZWRzIHdoYXQgY2FuIGJlIGFkZHJlc3NlZCBieSB0aGlzIHNpbmdsZSBwYWdlLAo+Pj4+ Pj4gKyAqICAgdGhlbiByZWZlcmVuY2UgdG8gdGhlIG5leHQgc2hhcmVkIHBhZ2UgbXVzdCBiZSBz dXBwbGllZCAoc2VlCj4+Pj4+PiArICogICBncmVmX2Rpcl9uZXh0X3BhZ2UgYmVsb3cpLgo+Pj4+ PiBJdCBtaWdodCBiZSBiZXR0ZXIgdG8gYWxsb2NhdGUgYWxsIGJ1ZmZlcnMgaW4gb25lIGdvLCBp LmUuIHdoYXQgVklESU9DX1JFUUJVRlMKPj4+Pj4gZG9lcy4KPj4+PiBXZWxsLCBJIHN0aWxsIHRo aW5rIGl0IGlzIGJldHRlciB0byBoYXZlIGEgcGVyIGJ1ZmZlciBpbnRlcmZhY2UKPj4+PiBpbiB0 aGUgcHJvdG9jb2wgYXMgaXQgaXMgZG9uZSBmb3Igb3RoZXIgWGVuIHZpcnR1YWwgZGV2aWNlcy4K Pj4+PiBTbywgSSdsbCBrZWVwIHRoaXMgYXMgaXMgZm9yIG5vdzogVklESU9DX1JFUUJVRlMgY2Fu IHN0aWxsIGRvCj4+Pj4gd2hhdCBpdCBkb2VzIGludGVybmFsbHkgaW4gdGhlIGZyb250ZW5kIGRy aXZlcgo+Pj4gSSBtYXkgaGF2ZSBtaXN1bmRlcnN0b29kIHRoZSBvcmlnaW5hbCBBUEkuIFRoZSBu ZXdseSBwcm9wb3NlZCBYRU5DQU1FUkFfT1BfQlVGX1JFUVVFU1QKPj4+IG1hcHMgdG8gUkVRQlVG UywgcmlnaHQ/IEFuZCB0aGVuIEJVRl9DUkVBVEUvREVTVFJPWSBqdXN0IHNldCB1cCB0aGUgc2hh cmVkIGJ1ZmZlcgo+Pj4gbWFwcGluZ3MgZm9yIHRoZSBidWZmZXJzIGNyZWF0ZWQgYnkgUkVRQlVG Uy4gSWYgdGhhdCdzIHRoZSBzZXF1ZW5jZSwgdGhlbiBpdCBtYWtlcwo+Pj4gc2Vuc2UuIEknbSBu b3Qgc3VyZSBhYm91dCB0aGUgbmFtaW5nLgo+Pj4KPj4+IFlvdSBtaWdodCB3YW50IHRvIG1ha2Ug aXQgY2xlYXIgdGhhdCBYRU5DQU1FUkFfT1BfQlVGX1JFUVVFU1QgYWxsb2NhdGVzIHRoZSBidWZm ZXJzCj4+PiBvbiB0aGUgYmFja2VuZCwgYW5kIHNvIGNhbiBmYWlsLiBBbHNvLCB0aGUgYWN0dWFs IG51bWJlciBvZiBhbGxvY2F0ZWQgYnVmZmVycyBpbgo+Pj4gY2FzZSBvZiBzdWNjZXNzIGNhbiBi ZSBtb3JlIG9yIGxlc3MgdGhhbiB3aGF0IHdhcyByZXF1ZXN0ZWQuCj4+IFRoZSBidWZmZXJzIGNh biBiZSBhbGxvY2F0ZWQgYW5kIHNoYXJlZCBieSBlaXRoZXIgYmFja2VuZCBvciBmcm9udGVuZDog c2VlCj4+ICJiZS1hbGxvYyIgY29uZmlndXJhdGlvbiBvcHRpb24gdGVsbGluZyB3aGljaCBkb21h aW4gKFZNKSBzaGFyZXMKPj4gdGhlIFhlbiBncmFudCByZWZlcmVuY2VzIHRvIHRoZSBwYWdlcyBv ZiB0aGUgYnVmZmVyOiBlaXRoZXIgZnJvbnRlbmQKPj4gb3IgYmFja2VuZC4KPiBJZiB5b3Ugd2Fu dCB0byBkbyB6ZXJvLWNvcHkgdmlkZW8gY2FwdHVyZSwKdGhpcyBpcyB0aGUgZ29hbAo+ICAgdGhl biB5b3UgbmVlZCB0byBrbm93IHdoaWNoCj4gZGV2aWNlIGluIHlvdXIgdmlkZW8gcGlwZWxpbmUg KHdoaWNoIG5vdyBjb3ZlcnMgYm90aCBhY3R1YWwgaGFyZHdhcmUgYW5kCj4gbXVsdGlwbGUgVk1z KSBoYXMgdGhlIHN0cmljdGVzdCBtZW1vcnkgbGF5b3V0IHJlcXVpcmVtZW50cy4gT2Z0ZW4gdGhl Cj4gdmlkZW8gSFcgcmVxdWlyZXMgY29udGlndW91cyBwaHlzaWNhbCBtZW1vcnkgZm9yIHRoZSBi dWZmZXJzLCB3aGljaCBtZWFucwo+IHlvdSBjYW4ndCBqdXN0IGdpdmUgaXQgYSBwaWVjZSBvZiBu b24tY29udGlnIG1lbW9yeSBhbGxvY2F0ZWQgZWxzZXdoZXJlLgpXZSBoYXZlIGFscmVhZHkgaW1w bGVtZW50ZWQgemVybyBjb3B5aW5nIHVzZS1jYXNlcyBmb3IKdmlydHVhbCBkaXNwbGF5LCBwbGVh c2Ugc2VlIFsxXSBhbmQgWzJdIHdoaWNoIGFyZSBkbWEtYnVmCmJhc2VkIHdoaWNoIGNhbiBjb3Bl IHdpdGggcmVhbCBIVyByZXN0cmljdGlvbnMgeW91IG1lbnRpb24uCkFuZCBpbiB0aGF0IGNhc2Ug d2UgY2FuIGltcGxlbWVudCB6ZXJvLWNvcHlpbmcgYm90aCB3YXlzLAplLmcuIHdoZW4gdGhlIFhl biBncmFudCByZWZlcmVuY2VzIGFyZSBzaGFyZWQgYnkgZWl0aGVyCmJhY2tlbmQgb3IgZnJvbnRl bmQuIFRoaXMgaXMgZGlmZmVyZW50IGZyb20gY2FtZXJhIHVzZS1jYXNlczoKYSBzaW5nbGUgYnVm ZmVyIG5lZWRzIHRvIGJlIHNoYXJlZCB3aXRoIG11bHRpcGxlIGZyb250ZW5kcywKc28gemVyby1j b3B5aW5nIGlzIG9ubHkgcG9zc2libGUgd2hlbiBiYWNrZW5kIGFsbG9jYXRlcyB0aGUgcmVmZXJl bmNlcwphbmQgc2hhcmVzIHRob3NlIHdpdGggZnJvbnRlbmRzLiBUaGUgd2F5IHdoZW4gZnJvbnRl bmQgYWxsb2NhdGVzCnRoZSBidWZmZXJzIGFuZCBzdGlsbCB3ZSBjYW4gaW1wbGVtZW50IHplcm8t Y29weWluZyBpcyB3aGVuCnRoZXJlIGlzIGEgc2luZ2xlIGZyb250ZW5kIGluIHRoZSBzeXN0ZW0s IG90aGVyd2lzZSB3ZQpuZWVkIHRvIGNvcHkgdGhlIGltYWdlcyBmcm9tIGJhY2tlbmQncyBidWZm ZXJzIGludG8gZnJvbnRlbmQncwpvbmVzLgo+IEluIHByYWN0aWNlIHlvdSBoYXZlIHR3byBwb3Nz aWJsZSBtZW1vcnkgbW9kZWxzIHlvdSBjYW4gdXNlIHdpdGggVjRMMiBkcml2ZXJzOgo+IE1NQVAg KGkuZS4gYWxsb2NhdGVkIGJ5IHRoZSBkcml2ZXIgYW5kIHRoZSBidWZmZXJzIGNhbiwgaWYgbmVl ZGVkLCBiZSBleHBvcnRlZAo+IGFzIGRtYWJ1ZiBoYW5kbGVzIHdpdGggVklESU9DX0VYUEJVRiks IG9yIERNQUJVRiB3aGVyZSBidWZmZXJzIGFyZSBhbGxvY2F0ZWQKPiBlbHNld2hlcmUgYW5kIGlt cG9ydGVkIHRvIFY0TDIsIHdoaWNoIG1heSBmYWlsIGlmIGl0IGRvZXNuJ3QgbWF0Y2ggdGhlIEhX Cj4gcmVxdWlyZW1lbnRzLgpGb3IgdGhlIGZyb250ZW5kIGl0IGlzIHBvc3NpYmxlIHRvIHdvcmsg d2l0aCBib3RoIE1NQVAvRE1BQlVGCmFuZCB0aGUgcmVzdCBpcyBvbiB0aGUgYmFja2VuZCdzIHNp ZGUgLSB0aGlzIHdhcyBwcm92ZW4gYnkKdmlydHVhbCBkaXNwbGF5IGltcGxlbWVudGF0aW9uLCBz byBJIHNlZSBubyBwcm9ibGVtIGhlcmUKZm9yIHZpcnR1YWwgY2FtZXJhLgo+Cj4+IFNvLCBJIHdh cyBtb3JlIHRoaW5raW5nIHRoYXQgaW4gY2FzZSBvZiBWNEwyIGJhc2VkIGZyb250ZW5kIGRyaXZl cjoKPj4gMS4gRnJvbnRlbmQgc2VydmVzIFJFUUJVRlMgaW9jdGwgYW5kIGFza3MgdGhlIGJhY2tl bmQgd2l0aAo+PiBYRU5DQU1FUkFfT1BfQlVGX1JFUVVFU1QKPj4gaWYgaXQgY2FuIGhhbmRsZSB0 aGF0IG1hbnkgYnVmZmVycyBhbmQgZ2V0cyBudW1iZXIgb2YgYnVmZmVycyB0byBiZSB1c2VkCj4+ IGFuZCBidWZmZXIgc3RydWN0dXJlIChudW1iZXIgb2YgcGxhbmVzLCBzaXplcywgb2Zmc2V0cyBl dGMuKSBhcyB0aGUgcmVwbHkKPj4gdG8gdGhhdCByZXF1ZXN0Cj4+IDIuIEZyb250ZW5kIGNyZWF0 ZXMgbiBidWZmZXJzIHdpdGggWEVOQ0FNRVJBX09QX0JVRl9DUkVBVEUKPj4gMy4gRnJvbnRlbmQg cmV0dXJucyBmcm9tIFJFUUJVRlMgaW9jdGwgd2l0aCBhY3R1YWwgbnVtYmVyIG9mIGJ1ZmZlcnMK Pj4gYWxsb2NhdGVkCj4gUmVnYXJkcywKPgo+IAlIYW5zClRoYW5rIHlvdSwKT2xla3NhbmRyCgpb MV0gaHR0cHM6Ly9lbGl4aXIuYm9vdGxpbi5jb20vbGludXgvdjQuMTktcmMzL3NvdXJjZS9kcml2 ZXJzL2dwdS9kcm0veGVuClsyXSAKaHR0cHM6Ly9lbGl4aXIuYm9vdGxpbi5jb20vbGludXgvdjQu MTktcmMzL3NvdXJjZS9kcml2ZXJzL3hlbi9nbnRkZXYtZG1hYnVmLmMKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QK WGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5v cmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=