From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: Re: [PATCH 0/1] drm/xen-zcopy: Add Xen zero-copy helper DRM driver Date: Tue, 24 Apr 2018 11:01:32 +0100 Message-ID: <20180424100132.5573sg2hhbhpkr7c__28314.7454531447$1524564037$gmane$org@citrix.com> 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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1fAulW-0008MJ-AX for xen-devel@lists.xenproject.org; Tue, 24 Apr 2018 10:01:38 +0000 Content-Disposition: inline In-Reply-To: <0657bbb5-5cb7-4c63-5490-fbfc7dec1e59@suse.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Juergen Gross Cc: Artem Mygaiev , Wei Liu , Dongwon Kim , Oleksandr Andrushchenko , "Oleksandr_Andrushchenko@epam.com" , 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 , Roger Pau =?iso-8859-1?Q?Monn=E9?= List-Id: xen-devel@lists.xenproject.org T24gVHVlLCBBcHIgMjQsIDIwMTggYXQgMTE6MDg6NDFBTSArMDIwMCwgSnVlcmdlbiBHcm9zcyB3 cm90ZToKPiBPbiAyNC8wNC8xOCAxMTowMywgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6 Cj4gPiBPbiAwNC8yNC8yMDE4IDExOjQwIEFNLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOgo+ID4+IE9u IDI0LzA0LzE4IDEwOjA3LCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToKPiA+Pj4gT24g MDQvMjQvMjAxOCAxMDo1MSBBTSwgSnVlcmdlbiBHcm9zcyB3cm90ZToKPiA+Pj4+IE9uIDI0LzA0 LzE4IDA3OjQzLCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToKPiA+Pj4+PiBPbiAwNC8y NC8yMDE4IDAxOjQxIEFNLCBCb3JpcyBPc3Ryb3Zza3kgd3JvdGU6Cj4gPj4+Pj4+IE9uIDA0LzIz LzIwMTggMDg6MTAgQU0sIE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIHdyb3RlOgo+ID4+Pj4+Pj4g T24gMDQvMjMvMjAxOCAwMjo1MiBQTSwgV2VpIExpdSB3cm90ZToKPiA+Pj4+Pj4+PiBPbiBGcmks IEFwciAyMCwgMjAxOCBhdCAwMjoyNToyMFBNICswMzAwLCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5r bwo+ID4+Pj4+Pj4+IHdyb3RlOgo+ID4+Pj4+Pj4+Pj4+IMKgwqDCoMKgwqDCoMKgIHRoZSBnbnRk ZXYuCj4gPj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+PiBJIHRoaW5rIHRoaXMgaXMgZ2VuZXJpYyBl bm91Z2ggdGhhdCBpdCBjb3VsZCBiZSBpbXBsZW1lbnRlZCBieSBhCj4gPj4+Pj4+Pj4+Pj4gZGV2 aWNlIG5vdCB0aWVkIHRvIFhlbi4gQUZBSUNUIHRoZSBoeXBlcl9kbWEgZ3V5cyBhbHNvIHdhbnRl ZAo+ID4+Pj4+Pj4+Pj4+IHNvbWV0aGluZyBzaW1pbGFyIHRvIHRoaXMuCj4gPj4+Pj4+Pj4+PiBZ b3UgY2FuJ3QganVzdCB3cmFwIHJhbmRvbSB1c2Vyc3BhY2UgbWVtb3J5IGludG8gYSBkbWEtYnVm LiBXZSd2ZQo+ID4+Pj4+Pj4+Pj4ganVzdCBoYWQKPiA+Pj4+Pj4+Pj4+IHRoaXMgZGlzY3Vzc2lv biB3aXRoIGt2bS9xZW11IGZvbGtzLCB3aG8gcHJvcG9zZWQganVzdCB0aGF0LCBhbmQKPiA+Pj4+ Pj4+Pj4+IGFmdGVyIGEKPiA+Pj4+Pj4+Pj4+IGJpdCBvZiBkaXNjdXNzaW9uIHRoZXknbGwgbm93 IHRyeSB0byBoYXZlIGEgZHJpdmVyIHdoaWNoIGp1c3QKPiA+Pj4+Pj4+Pj4+IHdyYXBzIGEKPiA+ Pj4+Pj4+Pj4+IG1lbWZkIGludG8gYSBkbWEtYnVmLgo+ID4+Pj4+Pj4+PiBTbywgd2UgaGF2ZSB0 byBkZWNpZGUgZWl0aGVyIHdlIGludHJvZHVjZSBhIG5ldyBkcml2ZXIKPiA+Pj4+Pj4+Pj4gKHNh eSwgdW5kZXIgZHJpdmVycy94ZW4veGVuLWRtYS1idWYpIG9yIGV4dGVuZCB0aGUgZXhpc3RpbmcK PiA+Pj4+Pj4+Pj4gZ250ZGV2L2JhbGxvb24gdG8gc3VwcG9ydCBkbWEtYnVmIHVzZS1jYXNlcy4K PiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gQ2FuIGFueWJvZHkgZnJvbSBYZW4gY29tbXVuaXR5IGV4 cHJlc3MgdGhlaXIgcHJlZmVyZW5jZSBoZXJlPwo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+IE9sZWtz YW5kciB0YWxrZWQgdG8gbWUgb24gSVJDIGFib3V0IHRoaXMsIGhlIHNhaWQgYSBmZXcgSU9DVExz Cj4gPj4+Pj4+Pj4gbmVlZCB0bwo+ID4+Pj4+Pj4+IGJlIGFkZGVkIHRvIGVpdGhlciBleGlzdGlu ZyBkcml2ZXJzIG9yIGEgbmV3IGRyaXZlci4KPiA+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+IEkgd2VudCB0 aHJvdWdoIHRoaXMgdGhyZWFkIHR3aWNlIGFuZCBza2ltbWVkIHRocm91Z2ggdGhlIHJlbGV2YW50 Cj4gPj4+Pj4+Pj4gZG9jdW1lbnRzLCBidXQgSSBjb3VsZG4ndCBzZWUgYW55IG9idmlvdXMgcHJv cyBhbmQgY29ucyBmb3IgZWl0aGVyCj4gPj4+Pj4+Pj4gYXBwcm9hY2guIFNvIEkgZG9uJ3QgcmVh bGx5IGhhdmUgYW4gb3BpbmlvbiBvbiB0aGlzLgo+ID4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4gQnV0LCBh c3N1bWluZyBpZiBpbXBsZW1lbnRlZCBpbiBleGlzdGluZyBkcml2ZXJzLCB0aG9zZSBJT0NUTHMK PiA+Pj4+Pj4+PiBuZWVkIHRvCj4gPj4+Pj4+Pj4gYmUgYWRkZWQgdG8gZGlmZmVyZW50IGRyaXZl cnMsIHdoaWNoIG1lYW5zIHVzZXJzcGFjZSBwcm9ncmFtCj4gPj4+Pj4+Pj4gbmVlZHMgdG8KPiA+ Pj4+Pj4+PiB3cml0ZSBtb3JlIGNvZGUgYW5kIGdldCBtb3JlIGhhbmRsZXMsIGl0IHdvdWxkIGJl IHNsaWdodGx5Cj4gPj4+Pj4+Pj4gYmV0dGVyIHRvCj4gPj4+Pj4+Pj4gaW1wbGVtZW50IGEgbmV3 IGRyaXZlciBmcm9tIHRoYXQgcGVyc3BlY3RpdmUuCj4gPj4+Pj4+PiBJZiBnbnRkZXYvYmFsbG9v biBleHRlbnNpb24gaXMgc3RpbGwgY29uc2lkZXJlZDoKPiA+Pj4+Pj4+Cj4gPj4+Pj4+PiBBbGwg dGhlIElPQ1RMcyB3aWxsIGJlIGluIGdudGRldiBkcml2ZXIgKGluIGN1cnJlbnQgeGVuLXpjb3B5 Cj4gPj4+Pj4+PiB0ZXJtaW5vbG9neSk6Cj4gPj4+Pj4+PiDCoMKgwqDCoC0gRFJNX0lDT1RMX1hF Tl9aQ09QWV9EVU1CX0ZST01fUkVGUwo+ID4+Pj4+Pj4gwqDCoMKgwqAtIERSTV9JT0NUTF9YRU5f WkNPUFlfRFVNQl9UT19SRUZTCj4gPj4+Pj4+PiDCoMKgwqDCoC0gRFJNX0lPQ1RMX1hFTl9aQ09Q WV9EVU1CX1dBSVRfRlJFRQo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+IEJhbGxvb24gZHJpdmVyIGV4dGVu c2lvbiwgd2hpY2ggaXMgbmVlZGVkIGZvciBjb250aWd1b3VzL0RNQQo+ID4+Pj4+Pj4gYnVmZmVy cywgd2lsbCBiZSB0byBwcm92aWRlIG5ldyAqa2VybmVsIEFQSSosIG5vIFVBUEkgaXMgbmVlZGVk Lgo+ID4+Pj4+Pj4KPiA+Pj4+Pj4gU28gSSBhbSBvYnZpb3VzbHkgYSBiaXQgbGF0ZSB0byB0aGlz IHRocmVhZCwgYnV0IHdoeSBkbyB5b3UgbmVlZAo+ID4+Pj4+PiB0byBhZGQKPiA+Pj4+Pj4gbmV3 IGlvY3RscyB0byBnbnRkZXYgYW5kIGJhbGxvb24/IERvZXNuJ3QgdGhpcyBkcml2ZXIgbWFuYWdl IHRvIGRvCj4gPj4+Pj4+IHdoYXQKPiA+Pj4+Pj4geW91IHdhbnQgd2l0aG91dCBhbnkgZXh0ZW5z aW9ucz8KPiA+Pj4+PiAxLiBJIG9ubHkgKG1heSkgbmVlZCB0byBhZGQgSU9DVExzIHRvIGdudGRl dgo+ID4+Pj4+IDIuIGJhbGxvb24gZHJpdmVyIG5lZWRzIHRvIGJlIGV4dGVuZGVkLCBzbyBpdCBj YW4gYWxsb2NhdGUKPiA+Pj4+PiBjb250aWd1b3VzIChETUEpIG1lbW9yeSwgbm90IElPQ1RMcy9V QVBJIGhlcmUsIGFsbCBsaXZlcwo+ID4+Pj4+IGluIHRoZSBrZXJuZWwuCj4gPj4+Pj4gMy4gVGhl IHJlYXNvbiBJIG5lZWQgdG8gZXh0ZW5kIGdudHRhYiB3aXRoIG5ldyBJT0NUTHMgaXMgdG8KPiA+ Pj4+PiBwcm92aWRlIG5ldyBmdW5jdGlvbmFsaXR5IHRvIGNyZWF0ZSBhIGRtYS1idWYgZnJvbSBn cmFudCByZWZlcmVuY2VzCj4gPj4+Pj4gYW5kIHRvIHByb2R1Y2UgZ3JhbnQgcmVmZXJlbmNlcyBm b3IgYSBkbWEtYnVmLiBUaGlzIGlzIHdoYXQgSSBoYXZlIGFzCj4gPj4+Pj4gVUFQSQo+ID4+Pj4+ IGRlc2NyaXB0aW9uIGZvciB4ZW4temNvcHkgZHJpdmVyOgo+ID4+Pj4+Cj4gPj4+Pj4gMS4gRFJN X0lPQ1RMX1hFTl9aQ09QWV9EVU1CX0ZST01fUkVGUwo+ID4+Pj4+IFRoaXMgd2lsbCBjcmVhdGUg YSBEUk0gZHVtYiBidWZmZXIgZnJvbSBncmFudCByZWZlcmVuY2VzIHByb3ZpZGVkCj4gPj4+Pj4g YnkgdGhlIGZyb250ZW5kLiBUaGUgaW50ZW5kZWQgdXNhZ2UgaXM6Cj4gPj4+Pj4gwqDCoMKgIC0g RnJvbnRlbmQKPiA+Pj4+PiDCoMKgwqDCoMKgIC0gY3JlYXRlcyBhIGR1bWIvZGlzcGxheSBidWZm ZXIgYW5kIGFsbG9jYXRlcyBtZW1vcnkKPiA+Pj4+PiDCoMKgwqDCoMKgIC0gZ3JhbnRzIGZvcmVp Z24gYWNjZXNzIHRvIHRoZSBidWZmZXIgcGFnZXMKPiA+Pj4+PiDCoMKgwqDCoMKgIC0gcGFzc2Vz IGdyYW50ZWQgcmVmZXJlbmNlcyB0byB0aGUgYmFja2VuZAo+ID4+Pj4+IMKgwqDCoCAtIEJhY2tl bmQKPiA+Pj4+PiDCoMKgwqDCoMKgIC0gaXNzdWVzIERSTV9YRU5fWkNPUFlfRFVNQl9GUk9NX1JF RlMgaW9jdGwgdG8gbWFwCj4gPj4+Pj4gwqDCoMKgwqDCoMKgwqAgZ3JhbnRlZCByZWZlcmVuY2Vz IGFuZCBjcmVhdGUgYSBkdW1iIGJ1ZmZlcgo+ID4+Pj4+IMKgwqDCoMKgwqAgLSByZXF1ZXN0cyBo YW5kbGUgdG8gZmQgY29udmVyc2lvbiB2aWEKPiA+Pj4+PiBEUk1fSU9DVExfUFJJTUVfSEFORExF X1RPX0ZECj4gPj4+Pj4gwqDCoMKgwqDCoCAtIHJlcXVlc3RzIHJlYWwgSFcgZHJpdmVyL2NvbnN1 bWVyIHRvIGltcG9ydCB0aGUgUFJJTUUgYnVmZmVyCj4gPj4+Pj4gd2l0aAo+ID4+Pj4+IMKgwqDC oMKgwqDCoMKgIERSTV9JT0NUTF9QUklNRV9GRF9UT19IQU5ETEUKPiA+Pj4+PiDCoMKgwqDCoMKg IC0gdXNlcyBoYW5kbGUgcmV0dXJuZWQgYnkgdGhlIHJlYWwgSFcgZHJpdmVyCj4gPj4+Pj4gwqDC oMKgIC0gYXQgdGhlIGVuZDoKPiA+Pj4+PiDCoMKgwqDCoMKgIG8gY2xvc2VzIHJlYWwgSFcgZHJp dmVyJ3MgaGFuZGxlIHdpdGggRFJNX0lPQ1RMX0dFTV9DTE9TRQo+ID4+Pj4+IMKgwqDCoMKgwqAg byBjbG9zZXMgemVyby1jb3B5IGRyaXZlcidzIGhhbmRsZSB3aXRoIERSTV9JT0NUTF9HRU1fQ0xP U0UKPiA+Pj4+PiDCoMKgwqDCoMKgIG8gY2xvc2VzIGZpbGUgZGVzY3JpcHRvciBvZiB0aGUgZXhw b3J0ZWQgYnVmZmVyCj4gPj4+Pj4KPiA+Pj4+PiAyLiBEUk1fSU9DVExfWEVOX1pDT1BZX0RVTUJf VE9fUkVGUwo+ID4+Pj4+IFRoaXMgd2lsbCBncmFudCByZWZlcmVuY2VzIHRvIGEgZHVtYi9kaXNw bGF5IGJ1ZmZlcidzIG1lbW9yeQo+ID4+Pj4+IHByb3ZpZGVkIGJ5Cj4gPj4+Pj4gdGhlCj4gPj4+ Pj4gYmFja2VuZC4gVGhlIGludGVuZGVkIHVzYWdlIGlzOgo+ID4+Pj4+IMKgwqDCoCAtIEZyb250 ZW5kCj4gPj4+Pj4gwqDCoMKgwqDCoCAtIHJlcXVlc3RzIGJhY2tlbmQgdG8gYWxsb2NhdGUgZHVt Yi9kaXNwbGF5IGJ1ZmZlciBhbmQgZ3JhbnQKPiA+Pj4+PiByZWZlcmVuY2VzCj4gPj4+Pj4gwqDC oMKgwqDCoMKgwqAgdG8gaXRzIHBhZ2VzCj4gPj4+Pj4gwqDCoMKgIC0gQmFja2VuZAo+ID4+Pj4+ IMKgwqDCoMKgwqAgLSByZXF1ZXN0cyByZWFsIEhXIGRyaXZlciB0byBjcmVhdGUgYSBkdW1iIHdp dGgKPiA+Pj4+PiBEUk1fSU9DVExfTU9ERV9DUkVBVEVfRFVNQgo+ID4+Pj4+IMKgwqDCoMKgwqAg LSByZXF1ZXN0cyBoYW5kbGUgdG8gZmQgY29udmVyc2lvbiB2aWEKPiA+Pj4+PiBEUk1fSU9DVExf UFJJTUVfSEFORExFX1RPX0ZECj4gPj4+Pj4gwqDCoMKgwqDCoCAtIHJlcXVlc3RzIHplcm8tY29w eSBkcml2ZXIgdG8gaW1wb3J0IHRoZSBQUklNRSBidWZmZXIgd2l0aAo+ID4+Pj4+IMKgwqDCoMKg wqDCoMKgIERSTV9JT0NUTF9QUklNRV9GRF9UT19IQU5ETEUKPiA+Pj4+PiDCoMKgwqDCoMKgIC0g aXNzdWVzIERSTV9YRU5fWkNPUFlfRFVNQl9UT19SRUZTIGlvY3RsIHRvCj4gPj4+Pj4gwqDCoMKg wqDCoMKgwqAgZ3JhbnQgcmVmZXJlbmNlcyB0byB0aGUgYnVmZmVyJ3MgbWVtb3J5Lgo+ID4+Pj4+ IMKgwqDCoMKgwqAgLSBwYXNzZXMgZ3JhbnQgcmVmZXJlbmNlcyB0byB0aGUgZnJvbnRlbmQKPiA+ Pj4+PiDCoMKgwqAtIGF0IHRoZSBlbmQ6Cj4gPj4+Pj4gwqDCoMKgwqDCoCAtIGNsb3NlcyB6ZXJv LWNvcHkgZHJpdmVyJ3MgaGFuZGxlIHdpdGggRFJNX0lPQ1RMX0dFTV9DTE9TRQo+ID4+Pj4+IMKg wqDCoMKgwqAgLSBjbG9zZXMgcmVhbCBIVyBkcml2ZXIncyBoYW5kbGUgd2l0aCBEUk1fSU9DVExf R0VNX0NMT1NFCj4gPj4+Pj4gwqDCoMKgwqDCoCAtIGNsb3NlcyBmaWxlIGRlc2NyaXB0b3Igb2Yg dGhlIGltcG9ydGVkIGJ1ZmZlcgo+ID4+Pj4+Cj4gPj4+Pj4gMy4gRFJNX1hFTl9aQ09QWV9EVU1C X1dBSVRfRlJFRQo+ID4+Pj4+IFRoaXMgd2lsbCBibG9jayB1bnRpbCB0aGUgZHVtYiBidWZmZXIg d2l0aCB0aGUgd2FpdCBoYW5kbGUgcHJvdmlkZWQgYmUKPiA+Pj4+PiBmcmVlZDoKPiA+Pj4+PiB0 aGlzIGlzIG5lZWRlZCBmb3Igc3luY2hyb25pemF0aW9uIGJldHdlZW4gZnJvbnRlbmQgYW5kIGJh Y2tlbmQgaW4KPiA+Pj4+PiBjYXNlCj4gPj4+Pj4gZnJvbnRlbmQgcHJvdmlkZXMgZ3JhbnQgcmVm ZXJlbmNlcyBvZiB0aGUgYnVmZmVyIHZpYQo+ID4+Pj4+IERSTV9YRU5fWkNPUFlfRFVNQl9GUk9N X1JFRlMgSU9DVEwgYW5kIHdoaWNoIG11c3QgYmUgcmVsZWFzZWQgYmVmb3JlCj4gPj4+Pj4gYmFj a2VuZCByZXBsaWVzIHdpdGggWEVORElTUExfT1BfREJVRl9ERVNUUk9ZIHJlc3BvbnNlLgo+ID4+ Pj4+IHdhaXRfaGFuZGxlIG11c3QgYmUgdGhlIHNhbWUgdmFsdWUgcmV0dXJuZWQgd2hpbGUgY2Fs bGluZwo+ID4+Pj4+IERSTV9YRU5fWkNPUFlfRFVNQl9GUk9NX1JFRlMgSU9DVEwuCj4gPj4+Pj4K PiA+Pj4+PiBTbywgYXMgeW91IGNhbiBzZWUgdGhlIGFib3ZlIGZ1bmN0aW9uYWxpdHkgaXMgbm90 IGNvdmVyZWQgYnkgdGhlCj4gPj4+Pj4gZXhpc3RpbmcgVUFQSQo+ID4+Pj4+IG9mIHRoZSBnbnRk ZXYgZHJpdmVyLgo+ID4+Pj4+IE5vdywgaWYgd2UgY2hhbmdlIGR1bWIgLT4gZG1hLWJ1ZiBhbmQg cmVtb3ZlIERSTSBjb2RlICh3aGljaCBpcyBvbmx5IGEKPiA+Pj4+PiB3cmFwcGVyCj4gPj4+Pj4g aGVyZSBvbiB0b3Agb2YgZG1hLWJ1Zikgd2UgZ2V0IG5ldyBkcml2ZXIgZm9yIGRtYS1idWYgZm9y IFhlbi4KPiA+Pj4+Pgo+ID4+Pj4+IFRoaXMgaXMgd2h5IEkgaGF2ZSAyIG9wdGlvbnMgaGVyZTog ZWl0aGVyIGNyZWF0ZSBhIGRlZGljYXRlZCBkcml2ZXIKPiA+Pj4+PiBmb3IKPiA+Pj4+PiB0aGlz Cj4gPj4+Pj4gKGUuZy4gcmUtd29yayB4ZW4temNvcHkgdG8gYmUgRFJNIGluZGVwZW5kZW50IGFu ZCBwdXQgaXQgdW5kZXIKPiA+Pj4+PiBkcml2ZXJzL3hlbi94ZW4tZG1hLWJ1ZiwgZm9yIGV4YW1w bGUpIG9yIGV4dGVuZCB0aGUgZXhpc3RpbmcgZ250ZGV2Cj4gPj4+Pj4gZHJpdmVyCj4gPj4+Pj4g d2l0aCB0aGUgYWJvdmUgVUFQSSArIG1ha2UgY2hhbmdlcyB0byB0aGUgYmFsbG9vbiBkcml2ZXIg dG8gcHJvdmlkZQo+ID4+Pj4+IGtlcm5lbAo+ID4+Pj4+IEFQSSBmb3IgRE1BIGJ1ZmZlciBhbGxv Y2F0aW9ucy4KPiA+Pj4+IFdoaWNoIHVzZXIgY29tcG9uZW50IHdvdWxkIHVzZSB0aGUgbmV3IGlv Y3Rscz8KPiA+Pj4gSXQgaXMgY3VycmVudGx5IHVzZWQgYnkgdGhlIGRpc3BsYXkgYmFja2VuZCBb MV0gYW5kIHdpbGwKPiA+Pj4gcHJvYmFibHkgYmUgdXNlZCBieSB0aGUgaHlwZXItZG1hYnVmIGZy b250ZW5kL2JhY2tlbmQKPiA+Pj4gKERvbmd3b24gZnJvbSBJbnRlbCBjYW4gcHJvdmlkZSBtb3Jl IGluZm8gb24gdGhpcykuCj4gPj4+PiBJJ20gYXNraW5nIGJlY2F1c2UgSSdtIG5vdCB2ZXJ5IGZv bmQgb2YgYWRkaW5nIG1vcmUgbGludXggc3BlY2lmaWMKPiA+Pj4+IGZ1bmN0aW9ucyB0byBsaWJn bnR0YWIgd2hpY2ggYXJlIG5vdCByZWxhdGVkIHRvIGEgc3BlY2lmaWMgWGVuIHZlcnNpb24sCj4g Pj4+PiBidXQgdG8gYSBrZXJuZWwgdmVyc2lvbi4KPiA+Pj4gSG0sIEkgd2FzIG5vdCB0aGlua2lu ZyBhYm91dCB0aGlzIFVBUEkgdG8gYmUgYWRkZWQgdG8gbGliZ250dGFiLgo+ID4+PiBJdCBzZWVt cyBpdCBjYW4gYmUgdXNlZCBkaXJlY3RseSB3L28gd3JhcHBlcnMgaW4gdXNlci1zcGFjZQo+ID4+ IFdvdWxkIHRoaXMgcHJvZ3JhbSB1c2UgbGliZ250dGFiIGluIHBhcmFsbGVsPwo+ID4gSW4gY2Fz ZSBvZiB0aGUgZGlzcGxheSBiYWNrZW5kIC0geWVzLCBmb3Igc2hhcmVkIHJpbmdzLAo+ID4gZXh0 cmFjdGluZyBncmVmcyBmcm9tIGRpc3BsaWYgcHJvdG9jb2wgaXQgdXNlcyBnbnRkZXYgdmlhCj4g PiBoZWxwZXIgbGlicmFyeSBbMV0KPiA+PiDCoCBJZiB5ZXMgaG93IHdvdWxkIHRoZSB0d28KPiA+ PiB1c2FnZSBwYXRocyBiZSBjb21iaW5lZCAoc2FtZSBhcHBsaWVzIHRvIHRoZSBzZXBhcmF0ZSBk cml2ZXIsIGJ0dyk/IFRoZQo+ID4+IGdudGRldiBkcml2ZXIgbWFuYWdlcyByZXNvdXJjZXMgcGVy IGZpbGUgZGVzY3JpcHRvciBhbmQgbGliZ250dGFiIGlzCj4gPj4gaGlkaW5nIHRoZSBmaWxlIGRl c2NyaXB0b3IgaXQgaXMgdXNpbmcgZm9yIGEgY29ubmVjdGlvbi4KPiA+IEFoLCBhdCB0aGUgbW9t ZW50IHRoZSBVQVBJIHdhcyBub3QgdXNlZCBpbiBwYXJhbGxlbCBhcyB0aGVyZSB3ZXJlCj4gPiAy IGRyaXZlcnMgZm9yIHRoYXQ6IGdudGRldiArIHhlbi16Y29weSB3aXRoIGRpZmZlcmVudCBVQVBJ cy4KPiA+IEJ1dCBub3csIGlmIHdlIGV4dGVuZCBnbnRkZXYgd2l0aCB0aGUgbmV3IEFQSSB0aGVu IHlvdSBhcmUgcmlndGg6Cj4gPiBlaXRoZXIgbGliZ250dGFiIG5lZWRzIHRvIGJlIGV4dGVuZGVk IG9yIHRoYXQgbmV3IHBhcnQgb2YgdGhlCj4gPiBnbnRkZXYgVUFQSSBuZWVkcyB0byBiZSBvcGVu LWNvZGVkIGJ5IHRoZSBiYWNrZW5kCj4gPj4gwqAgT3Igd291bGQgdGhlCj4gPj4gdXNlciBwcm9n cmFtIHVzZSBvbmx5IHRoZSBuZXcgZHJpdmVyIGZvciBjb21tdW5pY2F0aW5nIHdpdGggdGhlIGdu dGRldgo+ID4+IGRyaXZlcj8gSW4gdGhpcyBjYXNlIGl0IG1pZ2h0IGJlIGFuIG9wdGlvbiB0byBl eHRlbmQgdGhlIGdudGRldiBkcml2ZXIKPiA+PiB0byBwcmVzZW50IGEgbmV3IGRldmljZSAoZS5n LiAiZ250ZG1hZGV2IikgZm9yIHRoYXQgcHVycG9zZS4KPiA+IE5vLCBpdCBzZWVtcyB0aGF0IGxp YmdudHRhYiBhbmQgdGhpcyBuZXcgZHJpdmVyJ3MgVUFQSSB3aWxsIGJlIHVzZWQKPiA+IGluIHBh cmFsbGVsCj4gPj4+PiBTbyBkb2luZyB0aGlzIGluIGEgc2VwYXJhdGUgZHJpdmVyIHNlZW1zIHRv IGJlIHRoZSBiZXR0ZXIgb3B0aW9uIGluCj4gPj4+PiB0aGlzIHJlZ2FyZC4KPiA+Pj4gV2VsbCwg ZnJvbSBtYWludGVuYW5jZSBQT1YgaXQgaXMgZWFzaWVyIGZvciBtZSB0byBoYXZlIGl0IGFsbCBp bgo+ID4+PiBhIHNlcGFyYXRlIGRyaXZlciBhcyBhbGwgZG1hLWJ1ZiByZWxhdGVkIGZ1bmN0aW9u YWxpdHkgd2lsbAo+ID4+PiByZXNpZGUgYXQgb25lIHBsYWNlLiBUaGlzIGFsc28gbWVhbnMgdGhh dCBubyBjaGFuZ2VzIHRvIGV4aXN0aW5nCj4gPj4+IGRyaXZlcnMgd2lsbCBiZSBuZWVkZWQgKGlm IGl0IGlzIG9rIHRvIGhhdmUgYmFsbG9vbmluZyBpbi9vdXQKPiA+Pj4gY29kZSBmb3IgRE1BIGJ1 ZmZlcnMgKGFsbG9jYXRlZCB3aXRoIGRtYV9hbGxvY194eHgpIG5vdCBpbiB0aGUgYmFsbG9vbgo+ ID4+PiBkcml2ZXIpCj4gPj4gSSB0aGluayBpbiB0aGUgZW5kIHRoaXMgcmVhbGx5IGRlcGVuZHMg b24gaG93IHRoZSBjb21wbGV0ZSBzb2x1dGlvbgo+ID4+IHdpbGwgbG9vayBsaWtlLiBnbnRkZXYg aXMgYSBzcGVjaWFsIHdyYXBwZXIgZm9yIHRoZSBnbnR0YWIgZHJpdmVyLgo+ID4+IEluIGNhc2Ug dGhlIG5ldyBkbWEtYnVmIGRyaXZlciBuZWVkcyB0byB1c2UgcGFydHMgb2YgZ250ZGV2IEknZCBy YXRoZXIKPiA+PiBoYXZlIGEgbmV3IGRyaXZlciBhYm92ZSBnbnR0YWIgKCJnbnR1c2VyIj8pIHVz ZWQgYnkgZ250ZGV2IGFuZCBkbWEtYnVmLgo+ID4gVGhlIG5ldyBkcml2ZXIgZG9lc24ndCB1c2Ug Z250ZGV2J3MgZXhpc3RpbmcgQVBJLCBidXQgZXh0ZW5kcyBpdCwKPiA+IGUuZy4gYnkgYWRkaW5n IG5ldyB3YXlzIHRvIGV4cG9ydC9pbXBvcnQgZ3JlZnMgZm9yIGEgZG1hLWJ1ZiBhbmQKPiA+IG1h bmFnZSBkbWEtYnVmJ3Mga2VybmVsIG9wcy4gVGh1cywgZ250ZGV2LCB3aGljaCBhbHJlYWR5IHBy b3ZpZGVzCj4gPiBVQVBJLCBzZWVtcyB0byBiZSBhIGdvb2QgY2FuZGlkYXRlIGZvciBzdWNoIGFu IGV4dGVuc2lvbgo+IAo+IFNvIHRoaXMgd291bGQgbWVhbiB5b3UgbmVlZCBhIG1vZGlmaWNhdGlv biBvZiBsaWJnbnR0YWIsIHJpZ2h0PyBUaGlzIGlzCj4gc29tZXRoaW5nIHRoZSBYZW4gdG9vbHMg bWFpbnRhaW5lcnMgbmVlZCB0byBkZWNpZGUuIEluIGNhc2UgdGhleSBkb24ndAo+IG9iamVjdCBl eHRlbmRpbmcgdGhlIGdudGRldiBkcml2ZXIgd291bGQgYmUgdGhlIG5hdHVyYWwgdGhpbmcgdG8g ZG8uCj4gCgpUaGF0IHNob3VsZCBiZSBmaW5lLiBNb3N0IG9mIGxpYmdudHRhYiBkb2VzIGlzIHRv IHdyYXAgZXhpc3Rpbmcga2VybmVsCmludGVyZmFjZXMgYW5kIGV4cG9zZSB0aGVtIHNlbnNpYmx5 IHRvIHVzZXIgc3BhY2UgcHJvZ3JhbXMuIElmIGdudHRhYgpkZXZpY2UgaXMgZXh0ZW5kZWQsIGxp YmdudHRhYiBzaG91bGQgYmUgZXh0ZW5kZWQgYWNjb3JkaW5nbHkuIElmIGEgbmV3CmRldmljZSBp cyBjcmVhdGVkLCBhIG5ldyBsaWJyYXJ5IHNob3VsZCBiZSBhZGRlZC4gRWl0aGVyIHdheSB0aGVy ZSB3aWxsCmJlIG5ldyB0b29sc3RhY2sgY29kZSBpbnZvbHZlZCwgd2hpY2ggaXMgbm90IGEgcHJv YmxlbSBpbiBnZW5lcmFsLgoKV2VpLgoKPiAKPiBKdWVyZ2VuCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1k ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21h aWxtYW4vbGlzdGluZm8veGVuLWRldmVs