From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: Re: [PATCH 0/1] drm/xen-zcopy: Add Xen zero-copy helper DRM driver Date: Tue, 24 Apr 2018 12:24:42 +0200 Message-ID: References: <76cdc65a-7bb1-9377-7bc5-6164e32f7b5d@gmail.com> <20180423115242.ywdwqblj2aseu3fr@citrix.com> <61105351-8896-072b-abf0-757c7f6c0edf@gmail.com> <30ddb005-96c8-f47c-2e23-4e0d354e5842@gmail.com> <6089d701-5221-75b4-38eb-b23bc5dc30cd@suse.com> <85fc8f82-6d4d-9343-2737-85b7d7391168@gmail.com> <0657bbb5-5cb7-4c63-5490-fbfc7dec1e59@suse.com> <20180424100132.5573sg2hhbhpkr7c@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 1fAv7w-0001pD-Qz for xen-devel@lists.xenproject.org; Tue, 24 Apr 2018 10:24:48 +0000 In-Reply-To: Content-Language: de-DE List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Oleksandr Andrushchenko , Wei Liu , Dongwon Kim Cc: Artem Mygaiev , Oleksandr Andrushchenko , Ian Jackson , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, airlied@linux.ie, "Potrola, MateuszX" , daniel.vetter@intel.com, xen-devel@lists.xenproject.org, Boris Ostrovsky , =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= List-Id: xen-devel@lists.xenproject.org T24gMjQvMDQvMTggMTI6MTQsIE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOgo+IE9uIDA0 LzI0LzIwMTggMDE6MDEgUE0sIFdlaSBMaXUgd3JvdGU6Cj4+IE9uIFR1ZSwgQXByIDI0LCAyMDE4 IGF0IDExOjA4OjQxQU0gKzAyMDAsIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6Cj4+PiBPbiAyNC8wNC8x OCAxMTowMywgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6Cj4+Pj4gT24gMDQvMjQvMjAx OCAxMTo0MCBBTSwgSnVlcmdlbiBHcm9zcyB3cm90ZToKPj4+Pj4gT24gMjQvMDQvMTggMTA6MDcs IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOgo+Pj4+Pj4gT24gMDQvMjQvMjAxOCAxMDo1 MSBBTSwgSnVlcmdlbiBHcm9zcyB3cm90ZToKPj4+Pj4+PiBPbiAyNC8wNC8xOCAwNzo0MywgT2xl a3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6Cj4+Pj4+Pj4+IE9uIDA0LzI0LzIwMTggMDE6NDEg QU0sIEJvcmlzIE9zdHJvdnNreSB3cm90ZToKPj4+Pj4+Pj4+IE9uIDA0LzIzLzIwMTggMDg6MTAg QU0sIE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOgo+Pj4+Pj4+Pj4+IE9uIDA0LzIzLzIw MTggMDI6NTIgUE0sIFdlaSBMaXUgd3JvdGU6Cj4+Pj4+Pj4+Pj4+IE9uIEZyaSwgQXByIDIwLCAy MDE4IGF0IDAyOjI1OjIwUE0gKzAzMDAsIE9sZWtzYW5kcgo+Pj4+Pj4+Pj4+PiBBbmRydXNoY2hl bmtvCj4+Pj4+Pj4+Pj4+IHdyb3RlOgo+Pj4+Pj4+Pj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgIHRo ZSBnbnRkZXYuCj4+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4+IEkgdGhpbmsgdGhpcyBpcyBn ZW5lcmljIGVub3VnaCB0aGF0IGl0IGNvdWxkIGJlCj4+Pj4+Pj4+Pj4+Pj4+IGltcGxlbWVudGVk IGJ5IGEKPj4+Pj4+Pj4+Pj4+Pj4gZGV2aWNlIG5vdCB0aWVkIHRvIFhlbi4gQUZBSUNUIHRoZSBo eXBlcl9kbWEgZ3V5cyBhbHNvIHdhbnRlZAo+Pj4+Pj4+Pj4+Pj4+PiBzb21ldGhpbmcgc2ltaWxh ciB0byB0aGlzLgo+Pj4+Pj4+Pj4+Pj4+IFlvdSBjYW4ndCBqdXN0IHdyYXAgcmFuZG9tIHVzZXJz cGFjZSBtZW1vcnkgaW50byBhIGRtYS1idWYuCj4+Pj4+Pj4+Pj4+Pj4gV2UndmUKPj4+Pj4+Pj4+ Pj4+PiBqdXN0IGhhZAo+Pj4+Pj4+Pj4+Pj4+IHRoaXMgZGlzY3Vzc2lvbiB3aXRoIGt2bS9xZW11 IGZvbGtzLCB3aG8gcHJvcG9zZWQganVzdAo+Pj4+Pj4+Pj4+Pj4+IHRoYXQsIGFuZAo+Pj4+Pj4+ Pj4+Pj4+IGFmdGVyIGEKPj4+Pj4+Pj4+Pj4+PiBiaXQgb2YgZGlzY3Vzc2lvbiB0aGV5J2xsIG5v dyB0cnkgdG8gaGF2ZSBhIGRyaXZlciB3aGljaCBqdXN0Cj4+Pj4+Pj4+Pj4+Pj4gd3JhcHMgYQo+ Pj4+Pj4+Pj4+Pj4+IG1lbWZkIGludG8gYSBkbWEtYnVmLgo+Pj4+Pj4+Pj4+Pj4gU28sIHdlIGhh dmUgdG8gZGVjaWRlIGVpdGhlciB3ZSBpbnRyb2R1Y2UgYSBuZXcgZHJpdmVyCj4+Pj4+Pj4+Pj4+ PiAoc2F5LCB1bmRlciBkcml2ZXJzL3hlbi94ZW4tZG1hLWJ1Zikgb3IgZXh0ZW5kIHRoZSBleGlz dGluZwo+Pj4+Pj4+Pj4+Pj4gZ250ZGV2L2JhbGxvb24gdG8gc3VwcG9ydCBkbWEtYnVmIHVzZS1j YXNlcy4KPj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+PiBDYW4gYW55Ym9keSBmcm9tIFhlbiBjb21t dW5pdHkgZXhwcmVzcyB0aGVpciBwcmVmZXJlbmNlIGhlcmU/Cj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+ Pj4+PiBPbGVrc2FuZHIgdGFsa2VkIHRvIG1lIG9uIElSQyBhYm91dCB0aGlzLCBoZSBzYWlkIGEg ZmV3IElPQ1RMcwo+Pj4+Pj4+Pj4+PiBuZWVkIHRvCj4+Pj4+Pj4+Pj4+IGJlIGFkZGVkIHRvIGVp dGhlciBleGlzdGluZyBkcml2ZXJzIG9yIGEgbmV3IGRyaXZlci4KPj4+Pj4+Pj4+Pj4KPj4+Pj4+ Pj4+Pj4gSSB3ZW50IHRocm91Z2ggdGhpcyB0aHJlYWQgdHdpY2UgYW5kIHNraW1tZWQgdGhyb3Vn aCB0aGUKPj4+Pj4+Pj4+Pj4gcmVsZXZhbnQKPj4+Pj4+Pj4+Pj4gZG9jdW1lbnRzLCBidXQgSSBj b3VsZG4ndCBzZWUgYW55IG9idmlvdXMgcHJvcyBhbmQgY29ucyBmb3IKPj4+Pj4+Pj4+Pj4gZWl0 aGVyCj4+Pj4+Pj4+Pj4+IGFwcHJvYWNoLiBTbyBJIGRvbid0IHJlYWxseSBoYXZlIGFuIG9waW5p b24gb24gdGhpcy4KPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4gQnV0LCBhc3N1bWluZyBpZiBpbXBs ZW1lbnRlZCBpbiBleGlzdGluZyBkcml2ZXJzLCB0aG9zZSBJT0NUTHMKPj4+Pj4+Pj4+Pj4gbmVl ZCB0bwo+Pj4+Pj4+Pj4+PiBiZSBhZGRlZCB0byBkaWZmZXJlbnQgZHJpdmVycywgd2hpY2ggbWVh bnMgdXNlcnNwYWNlIHByb2dyYW0KPj4+Pj4+Pj4+Pj4gbmVlZHMgdG8KPj4+Pj4+Pj4+Pj4gd3Jp dGUgbW9yZSBjb2RlIGFuZCBnZXQgbW9yZSBoYW5kbGVzLCBpdCB3b3VsZCBiZSBzbGlnaHRseQo+ Pj4+Pj4+Pj4+PiBiZXR0ZXIgdG8KPj4+Pj4+Pj4+Pj4gaW1wbGVtZW50IGEgbmV3IGRyaXZlciBm cm9tIHRoYXQgcGVyc3BlY3RpdmUuCj4+Pj4+Pj4+Pj4gSWYgZ250ZGV2L2JhbGxvb24gZXh0ZW5z aW9uIGlzIHN0aWxsIGNvbnNpZGVyZWQ6Cj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiBBbGwgdGhlIElP Q1RMcyB3aWxsIGJlIGluIGdudGRldiBkcml2ZXIgKGluIGN1cnJlbnQgeGVuLXpjb3B5Cj4+Pj4+ Pj4+Pj4gdGVybWlub2xvZ3kpOgo+Pj4+Pj4+Pj4+IMKgwqDCoMKgwqAtIERSTV9JQ09UTF9YRU5f WkNPUFlfRFVNQl9GUk9NX1JFRlMKPj4+Pj4+Pj4+PiDCoMKgwqDCoMKgLSBEUk1fSU9DVExfWEVO X1pDT1BZX0RVTUJfVE9fUkVGUwo+Pj4+Pj4+Pj4+IMKgwqDCoMKgwqAtIERSTV9JT0NUTF9YRU5f WkNPUFlfRFVNQl9XQUlUX0ZSRUUKPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+IEJhbGxvb24gZHJpdmVy IGV4dGVuc2lvbiwgd2hpY2ggaXMgbmVlZGVkIGZvciBjb250aWd1b3VzL0RNQQo+Pj4+Pj4+Pj4+ IGJ1ZmZlcnMsIHdpbGwgYmUgdG8gcHJvdmlkZSBuZXcgKmtlcm5lbCBBUEkqLCBubyBVQVBJIGlz IG5lZWRlZC4KPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gU28gSSBhbSBvYnZpb3VzbHkgYSBiaXQgbGF0 ZSB0byB0aGlzIHRocmVhZCwgYnV0IHdoeSBkbyB5b3UgbmVlZAo+Pj4+Pj4+Pj4gdG8gYWRkCj4+ Pj4+Pj4+PiBuZXcgaW9jdGxzIHRvIGdudGRldiBhbmQgYmFsbG9vbj8gRG9lc24ndCB0aGlzIGRy aXZlciBtYW5hZ2UgdG8gZG8KPj4+Pj4+Pj4+IHdoYXQKPj4+Pj4+Pj4+IHlvdSB3YW50IHdpdGhv dXQgYW55IGV4dGVuc2lvbnM/Cj4+Pj4+Pj4+IDEuIEkgb25seSAobWF5KSBuZWVkIHRvIGFkZCBJ T0NUTHMgdG8gZ250ZGV2Cj4+Pj4+Pj4+IDIuIGJhbGxvb24gZHJpdmVyIG5lZWRzIHRvIGJlIGV4 dGVuZGVkLCBzbyBpdCBjYW4gYWxsb2NhdGUKPj4+Pj4+Pj4gY29udGlndW91cyAoRE1BKSBtZW1v cnksIG5vdCBJT0NUTHMvVUFQSSBoZXJlLCBhbGwgbGl2ZXMKPj4+Pj4+Pj4gaW4gdGhlIGtlcm5l bC4KPj4+Pj4+Pj4gMy4gVGhlIHJlYXNvbiBJIG5lZWQgdG8gZXh0ZW5kIGdudHRhYiB3aXRoIG5l dyBJT0NUTHMgaXMgdG8KPj4+Pj4+Pj4gcHJvdmlkZSBuZXcgZnVuY3Rpb25hbGl0eSB0byBjcmVh dGUgYSBkbWEtYnVmIGZyb20gZ3JhbnQgcmVmZXJlbmNlcwo+Pj4+Pj4+PiBhbmQgdG8gcHJvZHVj ZSBncmFudCByZWZlcmVuY2VzIGZvciBhIGRtYS1idWYuIFRoaXMgaXMgd2hhdCBJCj4+Pj4+Pj4+ IGhhdmUgYXMKPj4+Pj4+Pj4gVUFQSQo+Pj4+Pj4+PiBkZXNjcmlwdGlvbiBmb3IgeGVuLXpjb3B5 IGRyaXZlcjoKPj4+Pj4+Pj4KPj4+Pj4+Pj4gMS4gRFJNX0lPQ1RMX1hFTl9aQ09QWV9EVU1CX0ZS T01fUkVGUwo+Pj4+Pj4+PiBUaGlzIHdpbGwgY3JlYXRlIGEgRFJNIGR1bWIgYnVmZmVyIGZyb20g Z3JhbnQgcmVmZXJlbmNlcyBwcm92aWRlZAo+Pj4+Pj4+PiBieSB0aGUgZnJvbnRlbmQuIFRoZSBp bnRlbmRlZCB1c2FnZSBpczoKPj4+Pj4+Pj4gwqDCoMKgwqAgLSBGcm9udGVuZAo+Pj4+Pj4+PiDC oMKgwqDCoMKgwqAgLSBjcmVhdGVzIGEgZHVtYi9kaXNwbGF5IGJ1ZmZlciBhbmQgYWxsb2NhdGVz IG1lbW9yeQo+Pj4+Pj4+PiDCoMKgwqDCoMKgwqAgLSBncmFudHMgZm9yZWlnbiBhY2Nlc3MgdG8g dGhlIGJ1ZmZlciBwYWdlcwo+Pj4+Pj4+PiDCoMKgwqDCoMKgwqAgLSBwYXNzZXMgZ3JhbnRlZCBy ZWZlcmVuY2VzIHRvIHRoZSBiYWNrZW5kCj4+Pj4+Pj4+IMKgwqDCoMKgIC0gQmFja2VuZAo+Pj4+ Pj4+PiDCoMKgwqDCoMKgwqAgLSBpc3N1ZXMgRFJNX1hFTl9aQ09QWV9EVU1CX0ZST01fUkVGUyBp b2N0bCB0byBtYXAKPj4+Pj4+Pj4gwqDCoMKgwqDCoMKgwqDCoCBncmFudGVkIHJlZmVyZW5jZXMg YW5kIGNyZWF0ZSBhIGR1bWIgYnVmZmVyCj4+Pj4+Pj4+IMKgwqDCoMKgwqDCoCAtIHJlcXVlc3Rz IGhhbmRsZSB0byBmZCBjb252ZXJzaW9uIHZpYQo+Pj4+Pj4+PiBEUk1fSU9DVExfUFJJTUVfSEFO RExFX1RPX0ZECj4+Pj4+Pj4+IMKgwqDCoMKgwqDCoCAtIHJlcXVlc3RzIHJlYWwgSFcgZHJpdmVy L2NvbnN1bWVyIHRvIGltcG9ydCB0aGUgUFJJTUUKPj4+Pj4+Pj4gYnVmZmVyCj4+Pj4+Pj4+IHdp dGgKPj4+Pj4+Pj4gwqDCoMKgwqDCoMKgwqDCoCBEUk1fSU9DVExfUFJJTUVfRkRfVE9fSEFORExF Cj4+Pj4+Pj4+IMKgwqDCoMKgwqDCoCAtIHVzZXMgaGFuZGxlIHJldHVybmVkIGJ5IHRoZSByZWFs IEhXIGRyaXZlcgo+Pj4+Pj4+PiDCoMKgwqDCoCAtIGF0IHRoZSBlbmQ6Cj4+Pj4+Pj4+IMKgwqDC oMKgwqDCoCBvIGNsb3NlcyByZWFsIEhXIGRyaXZlcidzIGhhbmRsZSB3aXRoIERSTV9JT0NUTF9H RU1fQ0xPU0UKPj4+Pj4+Pj4gwqDCoMKgwqDCoMKgIG8gY2xvc2VzIHplcm8tY29weSBkcml2ZXIn cyBoYW5kbGUgd2l0aCBEUk1fSU9DVExfR0VNX0NMT1NFCj4+Pj4+Pj4+IMKgwqDCoMKgwqDCoCBv IGNsb3NlcyBmaWxlIGRlc2NyaXB0b3Igb2YgdGhlIGV4cG9ydGVkIGJ1ZmZlcgo+Pj4+Pj4+Pgo+ Pj4+Pj4+PiAyLiBEUk1fSU9DVExfWEVOX1pDT1BZX0RVTUJfVE9fUkVGUwo+Pj4+Pj4+PiBUaGlz IHdpbGwgZ3JhbnQgcmVmZXJlbmNlcyB0byBhIGR1bWIvZGlzcGxheSBidWZmZXIncyBtZW1vcnkK Pj4+Pj4+Pj4gcHJvdmlkZWQgYnkKPj4+Pj4+Pj4gdGhlCj4+Pj4+Pj4+IGJhY2tlbmQuIFRoZSBp bnRlbmRlZCB1c2FnZSBpczoKPj4+Pj4+Pj4gwqDCoMKgwqAgLSBGcm9udGVuZAo+Pj4+Pj4+PiDC oMKgwqDCoMKgwqAgLSByZXF1ZXN0cyBiYWNrZW5kIHRvIGFsbG9jYXRlIGR1bWIvZGlzcGxheSBi dWZmZXIgYW5kIGdyYW50Cj4+Pj4+Pj4+IHJlZmVyZW5jZXMKPj4+Pj4+Pj4gwqDCoMKgwqDCoMKg wqDCoCB0byBpdHMgcGFnZXMKPj4+Pj4+Pj4gwqDCoMKgwqAgLSBCYWNrZW5kCj4+Pj4+Pj4+IMKg wqDCoMKgwqDCoCAtIHJlcXVlc3RzIHJlYWwgSFcgZHJpdmVyIHRvIGNyZWF0ZSBhIGR1bWIgd2l0 aAo+Pj4+Pj4+PiBEUk1fSU9DVExfTU9ERV9DUkVBVEVfRFVNQgo+Pj4+Pj4+PiDCoMKgwqDCoMKg wqAgLSByZXF1ZXN0cyBoYW5kbGUgdG8gZmQgY29udmVyc2lvbiB2aWEKPj4+Pj4+Pj4gRFJNX0lP Q1RMX1BSSU1FX0hBTkRMRV9UT19GRAo+Pj4+Pj4+PiDCoMKgwqDCoMKgwqAgLSByZXF1ZXN0cyB6 ZXJvLWNvcHkgZHJpdmVyIHRvIGltcG9ydCB0aGUgUFJJTUUgYnVmZmVyIHdpdGgKPj4+Pj4+Pj4g wqDCoMKgwqDCoMKgwqDCoCBEUk1fSU9DVExfUFJJTUVfRkRfVE9fSEFORExFCj4+Pj4+Pj4+IMKg wqDCoMKgwqDCoCAtIGlzc3VlcyBEUk1fWEVOX1pDT1BZX0RVTUJfVE9fUkVGUyBpb2N0bCB0bwo+ Pj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgIGdyYW50IHJlZmVyZW5jZXMgdG8gdGhlIGJ1ZmZlcidz IG1lbW9yeS4KPj4+Pj4+Pj4gwqDCoMKgwqDCoMKgIC0gcGFzc2VzIGdyYW50IHJlZmVyZW5jZXMg dG8gdGhlIGZyb250ZW5kCj4+Pj4+Pj4+IMKgwqDCoMKgLSBhdCB0aGUgZW5kOgo+Pj4+Pj4+PiDC oMKgwqDCoMKgwqAgLSBjbG9zZXMgemVyby1jb3B5IGRyaXZlcidzIGhhbmRsZSB3aXRoIERSTV9J T0NUTF9HRU1fQ0xPU0UKPj4+Pj4+Pj4gwqDCoMKgwqDCoMKgIC0gY2xvc2VzIHJlYWwgSFcgZHJp dmVyJ3MgaGFuZGxlIHdpdGggRFJNX0lPQ1RMX0dFTV9DTE9TRQo+Pj4+Pj4+PiDCoMKgwqDCoMKg wqAgLSBjbG9zZXMgZmlsZSBkZXNjcmlwdG9yIG9mIHRoZSBpbXBvcnRlZCBidWZmZXIKPj4+Pj4+ Pj4KPj4+Pj4+Pj4gMy4gRFJNX1hFTl9aQ09QWV9EVU1CX1dBSVRfRlJFRQo+Pj4+Pj4+PiBUaGlz IHdpbGwgYmxvY2sgdW50aWwgdGhlIGR1bWIgYnVmZmVyIHdpdGggdGhlIHdhaXQgaGFuZGxlCj4+ Pj4+Pj4+IHByb3ZpZGVkIGJlCj4+Pj4+Pj4+IGZyZWVkOgo+Pj4+Pj4+PiB0aGlzIGlzIG5lZWRl ZCBmb3Igc3luY2hyb25pemF0aW9uIGJldHdlZW4gZnJvbnRlbmQgYW5kIGJhY2tlbmQgaW4KPj4+ Pj4+Pj4gY2FzZQo+Pj4+Pj4+PiBmcm9udGVuZCBwcm92aWRlcyBncmFudCByZWZlcmVuY2VzIG9m IHRoZSBidWZmZXIgdmlhCj4+Pj4+Pj4+IERSTV9YRU5fWkNPUFlfRFVNQl9GUk9NX1JFRlMgSU9D VEwgYW5kIHdoaWNoIG11c3QgYmUgcmVsZWFzZWQKPj4+Pj4+Pj4gYmVmb3JlCj4+Pj4+Pj4+IGJh Y2tlbmQgcmVwbGllcyB3aXRoIFhFTkRJU1BMX09QX0RCVUZfREVTVFJPWSByZXNwb25zZS4KPj4+ Pj4+Pj4gd2FpdF9oYW5kbGUgbXVzdCBiZSB0aGUgc2FtZSB2YWx1ZSByZXR1cm5lZCB3aGlsZSBj YWxsaW5nCj4+Pj4+Pj4+IERSTV9YRU5fWkNPUFlfRFVNQl9GUk9NX1JFRlMgSU9DVEwuCj4+Pj4+ Pj4+Cj4+Pj4+Pj4+IFNvLCBhcyB5b3UgY2FuIHNlZSB0aGUgYWJvdmUgZnVuY3Rpb25hbGl0eSBp cyBub3QgY292ZXJlZCBieSB0aGUKPj4+Pj4+Pj4gZXhpc3RpbmcgVUFQSQo+Pj4+Pj4+PiBvZiB0 aGUgZ250ZGV2IGRyaXZlci4KPj4+Pj4+Pj4gTm93LCBpZiB3ZSBjaGFuZ2UgZHVtYiAtPiBkbWEt YnVmIGFuZCByZW1vdmUgRFJNIGNvZGUgKHdoaWNoIGlzCj4+Pj4+Pj4+IG9ubHkgYQo+Pj4+Pj4+ PiB3cmFwcGVyCj4+Pj4+Pj4+IGhlcmUgb24gdG9wIG9mIGRtYS1idWYpIHdlIGdldCBuZXcgZHJp dmVyIGZvciBkbWEtYnVmIGZvciBYZW4uCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IFRoaXMgaXMgd2h5IEkg aGF2ZSAyIG9wdGlvbnMgaGVyZTogZWl0aGVyIGNyZWF0ZSBhIGRlZGljYXRlZCBkcml2ZXIKPj4+ Pj4+Pj4gZm9yCj4+Pj4+Pj4+IHRoaXMKPj4+Pj4+Pj4gKGUuZy4gcmUtd29yayB4ZW4temNvcHkg dG8gYmUgRFJNIGluZGVwZW5kZW50IGFuZCBwdXQgaXQgdW5kZXIKPj4+Pj4+Pj4gZHJpdmVycy94 ZW4veGVuLWRtYS1idWYsIGZvciBleGFtcGxlKSBvciBleHRlbmQgdGhlIGV4aXN0aW5nIGdudGRl dgo+Pj4+Pj4+PiBkcml2ZXIKPj4+Pj4+Pj4gd2l0aCB0aGUgYWJvdmUgVUFQSSArIG1ha2UgY2hh bmdlcyB0byB0aGUgYmFsbG9vbiBkcml2ZXIgdG8gcHJvdmlkZQo+Pj4+Pj4+PiBrZXJuZWwKPj4+ Pj4+Pj4gQVBJIGZvciBETUEgYnVmZmVyIGFsbG9jYXRpb25zLgo+Pj4+Pj4+IFdoaWNoIHVzZXIg Y29tcG9uZW50IHdvdWxkIHVzZSB0aGUgbmV3IGlvY3Rscz8KPj4+Pj4+IEl0IGlzIGN1cnJlbnRs eSB1c2VkIGJ5IHRoZSBkaXNwbGF5IGJhY2tlbmQgWzFdIGFuZCB3aWxsCj4+Pj4+PiBwcm9iYWJs eSBiZSB1c2VkIGJ5IHRoZSBoeXBlci1kbWFidWYgZnJvbnRlbmQvYmFja2VuZAo+Pj4+Pj4gKERv bmd3b24gZnJvbSBJbnRlbCBjYW4gcHJvdmlkZSBtb3JlIGluZm8gb24gdGhpcykuCj4+Pj4+Pj4g SSdtIGFza2luZyBiZWNhdXNlIEknbSBub3QgdmVyeSBmb25kIG9mIGFkZGluZyBtb3JlIGxpbnV4 IHNwZWNpZmljCj4+Pj4+Pj4gZnVuY3Rpb25zIHRvIGxpYmdudHRhYiB3aGljaCBhcmUgbm90IHJl bGF0ZWQgdG8gYSBzcGVjaWZpYyBYZW4KPj4+Pj4+PiB2ZXJzaW9uLAo+Pj4+Pj4+IGJ1dCB0byBh IGtlcm5lbCB2ZXJzaW9uLgo+Pj4+Pj4gSG0sIEkgd2FzIG5vdCB0aGlua2luZyBhYm91dCB0aGlz IFVBUEkgdG8gYmUgYWRkZWQgdG8gbGliZ250dGFiLgo+Pj4+Pj4gSXQgc2VlbXMgaXQgY2FuIGJl IHVzZWQgZGlyZWN0bHkgdy9vIHdyYXBwZXJzIGluIHVzZXItc3BhY2UKPj4+Pj4gV291bGQgdGhp cyBwcm9ncmFtIHVzZSBsaWJnbnR0YWIgaW4gcGFyYWxsZWw/Cj4+Pj4gSW4gY2FzZSBvZiB0aGUg ZGlzcGxheSBiYWNrZW5kIC0geWVzLCBmb3Igc2hhcmVkIHJpbmdzLAo+Pj4+IGV4dHJhY3Rpbmcg Z3JlZnMgZnJvbSBkaXNwbGlmIHByb3RvY29sIGl0IHVzZXMgZ250ZGV2IHZpYQo+Pj4+IGhlbHBl ciBsaWJyYXJ5IFsxXQo+Pj4+PiDCoMKgIElmIHllcyBob3cgd291bGQgdGhlIHR3bwo+Pj4+PiB1 c2FnZSBwYXRocyBiZSBjb21iaW5lZCAoc2FtZSBhcHBsaWVzIHRvIHRoZSBzZXBhcmF0ZSBkcml2 ZXIsIGJ0dyk/Cj4+Pj4+IFRoZQo+Pj4+PiBnbnRkZXYgZHJpdmVyIG1hbmFnZXMgcmVzb3VyY2Vz IHBlciBmaWxlIGRlc2NyaXB0b3IgYW5kIGxpYmdudHRhYiBpcwo+Pj4+PiBoaWRpbmcgdGhlIGZp bGUgZGVzY3JpcHRvciBpdCBpcyB1c2luZyBmb3IgYSBjb25uZWN0aW9uLgo+Pj4+IEFoLCBhdCB0 aGUgbW9tZW50IHRoZSBVQVBJIHdhcyBub3QgdXNlZCBpbiBwYXJhbGxlbCBhcyB0aGVyZSB3ZXJl Cj4+Pj4gMiBkcml2ZXJzIGZvciB0aGF0OiBnbnRkZXYgKyB4ZW4temNvcHkgd2l0aCBkaWZmZXJl bnQgVUFQSXMuCj4+Pj4gQnV0IG5vdywgaWYgd2UgZXh0ZW5kIGdudGRldiB3aXRoIHRoZSBuZXcg QVBJIHRoZW4geW91IGFyZSByaWd0aDoKPj4+PiBlaXRoZXIgbGliZ250dGFiIG5lZWRzIHRvIGJl IGV4dGVuZGVkIG9yIHRoYXQgbmV3IHBhcnQgb2YgdGhlCj4+Pj4gZ250ZGV2IFVBUEkgbmVlZHMg dG8gYmUgb3Blbi1jb2RlZCBieSB0aGUgYmFja2VuZAo+Pj4+PiDCoMKgIE9yIHdvdWxkIHRoZQo+ Pj4+PiB1c2VyIHByb2dyYW0gdXNlIG9ubHkgdGhlIG5ldyBkcml2ZXIgZm9yIGNvbW11bmljYXRp bmcgd2l0aCB0aGUgZ250ZGV2Cj4+Pj4+IGRyaXZlcj8gSW4gdGhpcyBjYXNlIGl0IG1pZ2h0IGJl IGFuIG9wdGlvbiB0byBleHRlbmQgdGhlIGdudGRldiBkcml2ZXIKPj4+Pj4gdG8gcHJlc2VudCBh IG5ldyBkZXZpY2UgKGUuZy4gImdudGRtYWRldiIpIGZvciB0aGF0IHB1cnBvc2UuCj4+Pj4gTm8s IGl0IHNlZW1zIHRoYXQgbGliZ250dGFiIGFuZCB0aGlzIG5ldyBkcml2ZXIncyBVQVBJIHdpbGwg YmUgdXNlZAo+Pj4+IGluIHBhcmFsbGVsCj4+Pj4+Pj4gU28gZG9pbmcgdGhpcyBpbiBhIHNlcGFy YXRlIGRyaXZlciBzZWVtcyB0byBiZSB0aGUgYmV0dGVyIG9wdGlvbiBpbgo+Pj4+Pj4+IHRoaXMg cmVnYXJkLgo+Pj4+Pj4gV2VsbCwgZnJvbSBtYWludGVuYW5jZSBQT1YgaXQgaXMgZWFzaWVyIGZv ciBtZSB0byBoYXZlIGl0IGFsbCBpbgo+Pj4+Pj4gYSBzZXBhcmF0ZSBkcml2ZXIgYXMgYWxsIGRt YS1idWYgcmVsYXRlZCBmdW5jdGlvbmFsaXR5IHdpbGwKPj4+Pj4+IHJlc2lkZSBhdCBvbmUgcGxh Y2UuIFRoaXMgYWxzbyBtZWFucyB0aGF0IG5vIGNoYW5nZXMgdG8gZXhpc3RpbmcKPj4+Pj4+IGRy aXZlcnMgd2lsbCBiZSBuZWVkZWQgKGlmIGl0IGlzIG9rIHRvIGhhdmUgYmFsbG9vbmluZyBpbi9v dXQKPj4+Pj4+IGNvZGUgZm9yIERNQSBidWZmZXJzIChhbGxvY2F0ZWQgd2l0aCBkbWFfYWxsb2Nf eHh4KSBub3QgaW4gdGhlCj4+Pj4+PiBiYWxsb29uCj4+Pj4+PiBkcml2ZXIpCj4+Pj4+IEkgdGhp bmsgaW4gdGhlIGVuZCB0aGlzIHJlYWxseSBkZXBlbmRzIG9uIGhvdyB0aGUgY29tcGxldGUgc29s dXRpb24KPj4+Pj4gd2lsbCBsb29rIGxpa2UuIGdudGRldiBpcyBhIHNwZWNpYWwgd3JhcHBlciBm b3IgdGhlIGdudHRhYiBkcml2ZXIuCj4+Pj4+IEluIGNhc2UgdGhlIG5ldyBkbWEtYnVmIGRyaXZl ciBuZWVkcyB0byB1c2UgcGFydHMgb2YgZ250ZGV2IEknZCByYXRoZXIKPj4+Pj4gaGF2ZSBhIG5l dyBkcml2ZXIgYWJvdmUgZ250dGFiICgiZ250dXNlciI/KSB1c2VkIGJ5IGdudGRldiBhbmQKPj4+ Pj4gZG1hLWJ1Zi4KPj4+PiBUaGUgbmV3IGRyaXZlciBkb2Vzbid0IHVzZSBnbnRkZXYncyBleGlz dGluZyBBUEksIGJ1dCBleHRlbmRzIGl0LAo+Pj4+IGUuZy4gYnkgYWRkaW5nIG5ldyB3YXlzIHRv IGV4cG9ydC9pbXBvcnQgZ3JlZnMgZm9yIGEgZG1hLWJ1ZiBhbmQKPj4+PiBtYW5hZ2UgZG1hLWJ1 ZidzIGtlcm5lbCBvcHMuIFRodXMsIGdudGRldiwgd2hpY2ggYWxyZWFkeSBwcm92aWRlcwo+Pj4+ IFVBUEksIHNlZW1zIHRvIGJlIGEgZ29vZCBjYW5kaWRhdGUgZm9yIHN1Y2ggYW4gZXh0ZW5zaW9u Cj4+PiBTbyB0aGlzIHdvdWxkIG1lYW4geW91IG5lZWQgYSBtb2RpZmljYXRpb24gb2YgbGliZ250 dGFiLCByaWdodD8gVGhpcyBpcwo+Pj4gc29tZXRoaW5nIHRoZSBYZW4gdG9vbHMgbWFpbnRhaW5l cnMgbmVlZCB0byBkZWNpZGUuIEluIGNhc2UgdGhleSBkb24ndAo+Pj4gb2JqZWN0IGV4dGVuZGlu ZyB0aGUgZ250ZGV2IGRyaXZlciB3b3VsZCBiZSB0aGUgbmF0dXJhbCB0aGluZyB0byBkby4KPj4+ Cj4+IFRoYXQgc2hvdWxkIGJlIGZpbmUuIE1vc3Qgb2YgbGliZ250dGFiIGRvZXMgaXMgdG8gd3Jh cCBleGlzdGluZyBrZXJuZWwKPj4gaW50ZXJmYWNlcyBhbmQgZXhwb3NlIHRoZW0gc2Vuc2libHkg dG8gdXNlciBzcGFjZSBwcm9ncmFtcy4gSWYgZ250dGFiCj4+IGRldmljZSBpcyBleHRlbmRlZCwg bGliZ250dGFiIHNob3VsZCBiZSBleHRlbmRlZCBhY2NvcmRpbmdseS4gSWYgYSBuZXcKPj4gZGV2 aWNlIGlzIGNyZWF0ZWQsIGEgbmV3IGxpYnJhcnkgc2hvdWxkIGJlIGFkZGVkLiBFaXRoZXIgd2F5 IHRoZXJlIHdpbGwKPj4gYmUgbmV3IHRvb2xzdGFjayBjb2RlIGludm9sdmVkLCB3aGljaCBpcyBu b3QgYSBwcm9ibGVtIGluIGdlbmVyYWwuCj4gR3JlYXQsIHNvIGZpbmFsbHkgSSBzZWUgdGhlIGZv bGxvd2luZyBhcHByb2FjaCB0byBoYXZlIGdlbmVyaWMKPiBkbWEtYnVmIHVzZS1jYXNlcyBzdXBw b3J0IGZvciBYZW4gKHdoaWNoIGNhbiBiZSB1c2VkIGZvciBtYW55IHB1cnBvc2VzLAo+IGUuZy4g R1BVL0RSTSBidWZmZXIgc2hhcmluZywgVjRMLCBoeXBlci1kbWFidWYgZXRjLik6Cj4gCj4gMS4g RXh0ZW5kIExpbnV4IGdudGRldiBkcml2ZXIgdG8gc3VwcG9ydCAzIG5ldyBJT0NUTHMgZGlzY3Vz c2VkIHByZXZpb3VzbHkKPiAyLiBFeHRlbmQgbGliZ250dGFiIHRvIHByb3ZpZGUgVUFQSSBmb3Ig dGhvc2UgLSBMaW51eCBvbmx5IGFzIGRtYS1idWYKPiBpcyBhIExpbnV4IHRoaW5nCj4gMy4gRXh0 ZW5kIGtlcm5lbCBBUEkgb2YgdGhlIExpbnV4IGJhbGxvb24gZHJpdmVyIHRvIGFsbG93IGRtYV9h bGxvY194eHggd2F5Cj4gb2YgbWVtb3J5IGFsbG9jYXRpb25zCj4gCj4gSWYgdGhlIGFib3ZlIGxv b2tzIG9rLCB0aGVuIEkgY2FuIHN0YXJ0IHByb3RvdHlwaW5nLCBzbyB3ZSBjYW4gZGlzY3Vzcwo+ IGltcGxlbWVudGF0aW9uIGRldGFpbHMKCkZpbmUgZm9yIG1lLgoKCkp1ZXJnZW4KCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5n IGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJv amVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=