From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Kristian_H=C3=B8gsberg?= Subject: Re: [Mesa-dev] [PATCH v4 1/2] intel: 48b ppgtt support (EXEC_OBJECT_SUPPORTS_48B_ADDRESS flag) Date: Thu, 10 Dec 2015 11:40:40 -0800 Message-ID: References: <1441290239-31462-1-git-send-email-michel.thierry@intel.com> <1441290239-31462-2-git-send-email-michel.thierry@intel.com> <20150914135403.GA8219@mwiniars-desk1.igk.intel.com> <56128342.2070407@intel.com> <5613C8DB.9090403@intel.com> <561CF60B.7080507@intel.com> <561D1B6D.6080608@intel.com> <20151014071947.GT26718@phenom.ffwll.local> <561E4675.3050004@intel.com> <5661A202.4010709@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <5661A202.4010709@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Michel Thierry Cc: Emil Velikov , dri-devel , mesa-dev List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBEZWMgNCwgMjAxNSBhdCA2OjI0IEFNLCBNaWNoZWwgVGhpZXJyeSA8bWljaGVsLnRo aWVycnlAaW50ZWwuY29tPiB3cm90ZToKPiBPbiAxMS8xOC8yMDE1IDEwOjUzIFBNLCBLcmlzdGlh biBIw7hnc2Jlcmcgd3JvdGU6Cj4+Cj4+IE9uIFdlZCwgT2N0IDE0LCAyMDE1IGF0IDU6MTEgQU0s IE1pY2hlbCBUaGllcnJ5Cj4+IDxtaWNoZWwudGhpZXJyeUBpbnRlbC5jb20+IHdyb3RlOgo+Pj4K Pj4+IE9uIDEwLzE0LzIwMTUgODoxOSBBTSwgRGFuaWVsIFZldHRlciB3cm90ZToKPj4+Pgo+Pj4+ Cj4+Pj4gT24gVHVlLCBPY3QgMTMsIDIwMTUgYXQgMDI6NTE6MzZQTSAtMDcwMCwgS3Jpc3RpYW4g SMO4Z3NiZXJnIHdyb3RlOgo+Pj4+Pgo+Pj4+Pgo+Pj4+PiBPbiBUdWUsIE9jdCAxMywgMjAxNSBh dCA3OjU1IEFNLCBNaWNoZWwgVGhpZXJyeQo+Pj4+PiA8bWljaGVsLnRoaWVycnlAaW50ZWwuY29t PiB3cm90ZToKPj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4gT24gMTAvMTMvMjAxNSAzOjEzIFBNLCBFbWls IFZlbGlrb3Ygd3JvdGU6Cj4+Pj4+Pj4KPj4+Pj4+Pgo+Pj4+Pj4+Cj4+Pj4+Pj4gT24gMTMgT2N0 b2JlciAyMDE1IGF0IDEzOjE2LCBNaWNoZWwgVGhpZXJyeQo+Pj4+Pj4+IDxtaWNoZWwudGhpZXJy eUBpbnRlbC5jb20+Cj4+Pj4+Pj4gd3JvdGU6Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+ Pj4+Pj4+IE9uIDEwLzYvMjAxNSAyOjEyIFBNLCBNaWNoZWwgVGhpZXJyeSB3cm90ZToKPj4+Pj4+ Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBPbiAxMC81LzIwMTUg NzowNiBQTSwgS3Jpc3RpYW4gSMO4Z3NiZXJnIHdyb3RlOgo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4K Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gT24gTW9uLCBPY3QgNSwgMjAxNSBhdCA3 OjAzIEFNLCBNaWNoZWwgVGhpZXJyeQo+Pj4+Pj4+Pj4+IDxtaWNoZWwudGhpZXJyeUBpbnRlbC5j b20+IHdyb3RlOgo+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+ Pgo+Pj4+Pj4+Pj4+PiBPbiA5LzE0LzIwMTUgMjo1NCBQTSwgTWljaGHFgiBXaW5pYXJza2kgd3Jv dGU6Cj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pgo+ Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+IE9uIFRodSwgU2VwIDAzLCAyMDE1IGF0IDAzOjIzOjU4 UE0gKzAxMDAsIE1pY2hlbCBUaGllcnJ5IHdyb3RlOgo+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+ Pj4KPj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+ PiBHZW44KyBzdXBwb3J0cyA0OC1iaXQgdmlydHVhbCBhZGRyZXNzZXMsIGJ1dCBzb21lIG9iamVj dHMgbXVzdAo+Pj4+Pj4+Pj4+Pj4+IGFsd2F5cyBiZQo+Pj4+Pj4+Pj4+Pj4+IGFsbG9jYXRlZCBp bnNpZGUgdGhlIDMyLWJpdCBhZGRyZXNzIHJhbmdlLgo+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+ Pj4gSW4gc3BlY2lmaWMsIGFueSByZXNvdXJjZSB1c2VkIHdpdGggZmxhdC9oZWFwbGVzcwo+Pj4+ Pj4+Pj4+Pj4+ICgweDAwMDAwMDAwLTB4ZmZmZmYwMDApCj4+Pj4+Pj4+Pj4+Pj4gR2VuZXJhbCBT dGF0ZSBIZWFwIChHU0gpIG9yIEluc3RydWN0aW9uIFN0YXRlIEhlYXAgKElTSCkgbXVzdAo+Pj4+ Pj4+Pj4+Pj4+IGJlCj4+Pj4+Pj4+Pj4+Pj4gaW4KPj4+Pj4+Pj4+Pj4+PiBhCj4+Pj4+Pj4+Pj4+ Pj4gMzItYml0IHJhbmdlLCBiZWNhdXNlIHRoZSBHZW5lcmFsIFN0YXRlIE9mZnNldCBhbmQgSW5z dHJ1Y3Rpb24KPj4+Pj4+Pj4+Pj4+PiBTdGF0ZQo+Pj4+Pj4+Pj4+Pj4+IE9mZnNldAo+Pj4+Pj4+ Pj4+Pj4+IGFyZSBsaW1pdGVkIHRvIDMyLWJpdHMuCj4+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+ PiBUaGUgaTkxNSBkcml2ZXIgaGFzIGJlZW4gbW9kaWZpZWQgdG8gcHJvdmlkZSBhIGZsYWcgdG8g c2V0IHdoZW4KPj4+Pj4+Pj4+Pj4+PiB0aGUKPj4+Pj4+Pj4+Pj4+PiA0R0IKPj4+Pj4+Pj4+Pj4+ PiBsaW1pdCBpcyBub3QgbmVjZXNzYXJ5IGluIGEgZ2l2ZW4gYm8KPj4+Pj4+Pj4+Pj4+PiAoRVhF Q19PQkpFQ1RfU1VQUE9SVFNfNDhCX0FERFJFU1MpLgo+Pj4+Pj4+Pj4+Pj4+IDQ4LWJpdCByYW5n ZSB3aWxsIG9ubHkgYmUgdXNlZCB3aGVuIGV4cGxpY2l0bHkgcmVxdWVzdGVkLgo+Pj4+Pj4+Pj4+ Pj4+Cj4+Pj4+Pj4+Pj4+Pj4gQ2FsbGVycyB0byB0aGUgZXhpc3RpbmcgZHJtX2ludGVsX2JvX2Vt aXRfcmVsb2MgZnVuY3Rpb24gc2hvdWxkCj4+Pj4+Pj4+Pj4+Pj4gc2V0Cj4+Pj4+Pj4+Pj4+Pj4g dGhlCj4+Pj4+Pj4+Pj4+Pj4gdXNlXzQ4Yl9hZGRyZXNzX3JhbmdlIGZsYWcgYmVmb3JlaGFuZCwg aW4gb3JkZXIgdG8gdXNlIGZ1bGwKPj4+Pj4+Pj4+Pj4+PiBwcGd0dAo+Pj4+Pj4+Pj4+Pj4+IHJh bmdlLgo+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4gdjI6IE1ha2Ugc2V0L2NsZWFyIGZ1bmN0 aW9ucyBub3BzIG9uIHByZS1nZW44IHBsYXRmb3JtcywgYW5kCj4+Pj4+Pj4+Pj4+Pj4gdXNlCj4+ Pj4+Pj4+Pj4+Pj4gdGhlbQo+Pj4+Pj4+Pj4+Pj4+ICAgICAgICAgIGludGVybmFsbHkgaW4gZW1p dF9yZWxvYyBmdW5jdGlvbnMgKEJlbikKPj4+Pj4+Pj4+Pj4+PiAgICAgICAgICBzLzQ4QkFERFJF U1MvNDhCX0FERFJFU1MvIChEYXZlKQo+Pj4+Pj4+Pj4+Pj4+IHYzOiBLZWVwIHNldC9jbGVhciBm dW5jdGlvbnMgaW50ZXJuYWwsIG5vLW9uZSBuZWVkcyB0byB1c2UgdGhlbQo+Pj4+Pj4+Pj4+Pj4+ IGRpcmVjdGx5Lgo+Pj4+Pj4+Pj4+Pj4+IHY0OiBEb24ndCBzZXQgNDhiaXQtc3VwcG9ydCBmbGFn IGluIGVtaXQgcmVsb2MsIGNoZWNrIGZvciBwcGd0dAo+Pj4+Pj4+Pj4+Pj4+IHR5cGUKPj4+Pj4+ Pj4+Pj4+PiAgICAgICAgICBiZWZvcmUgZW5hYmxpbmcgc2V0L2NsZWFyIGZ1bmN0aW9uLCBwcmlu dCBmdWxsIG9mZnNldHMKPj4+Pj4+Pj4+Pj4+PiBpbgo+Pj4+Pj4+Pj4+Pj4+IGRlYnVnCj4+Pj4+ Pj4+Pj4+Pj4gICAgICAgICAgc3RhdGVtZW50cywgdXNpbmcgcG9ydCBvZiBsb3dlcl8zMl9iaXRz IGFuZAo+Pj4+Pj4+Pj4+Pj4+IHVwcGVyXzMyX2JpdHMKPj4+Pj4+Pj4+Pj4+PiBmcm9tIGxpbnV4 Cj4+Pj4+Pj4+Pj4+Pj4gICAgICAgICAga2VybmVsIChNaWNoYcWCKQo+Pj4+Pj4+Pj4+Pj4+Cj4+ Pj4+Pj4+Pj4+Pj4gUmVmZXJlbmNlczoKPj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+ Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+PiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hp dmVzL2ludGVsLWdmeC8yMDE1LUp1bHkvMDcyNjEyLmh0bWwKPj4+Pj4+Pj4+Pj4+PiBDYzogQmVu IFdpZGF3c2t5IDxiZW5AYndpZGF3c2submV0Pgo+Pj4+Pj4+Pj4+Pj4+IENjOiBNaWNoYcWCIFdp bmlhcnNraSA8bWljaGFsLndpbmlhcnNraUBpbnRlbC5jb20+Cj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+ Pj4+Pj4KPj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+ Cj4+Pj4+Pj4+Pj4+PiArS3Jpc3RpYW4KPj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+PiBMR1RNLgo+ Pj4+Pj4+Pj4+Pj4gQWNrZWQtYnk6IE1pY2hhxYIgV2luaWFyc2tpIDxtaWNoYWwud2luaWFyc2tp QGludGVsLmNvbT4KPj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogTWlj aGVsIFRoaWVycnkgPG1pY2hlbC50aGllcnJ5QGludGVsLmNvbT4KPj4+Pj4+Pj4+Pj4KPj4+Pj4+ Pj4+Pj4KPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4KPj4+ Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4gSGkgS3Jpc3RpYW4sCj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+ IE1vcmUgY29tbWVudHMgb24gdGhpcz8KPj4+Pj4+Pj4+Pj4gSSd2ZSByZXNlbnQgdGhlIG1lc2Eg cGF0Y2ggd2l0aCB0aGUgbGFzdCBjaGFuZ2VzCj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Cj4+Pj4+ Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+IChodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL2FyY2hpdmVzL2RyaS1kZXZlbC8yMDE1LU9jdG9iZXIvMDkxNzUyLmh0bWwpLgo+Pj4+Pj4+ Pj4+Pgo+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+PiBNaWNoYcWCIGhhcyBhZ3JlZWQgd2l0aCB0aGUg aW50ZXJmYWNlIGFuZCB3aWxsIHVzZSBpdCBmb3IgaGlzCj4+Pj4+Pj4+Pj4+IHdvcmsuCj4+Pj4+ Pj4+Pj4+IElmIG1lc2EgZG9lc24ndCBwbGFuIHRvIHVzZSB0aGlzIGZvciBub3csIGl0J3Mgb2su IFRoZSBrZXJuZWwKPj4+Pj4+Pj4+Pj4gY2hhbmdlcwo+Pj4+Pj4+Pj4+PiBoYXZlCj4+Pj4+Pj4+ Pj4+IGJlZW4gZG9uZSB0byBwcmV2ZW50IGFueSByZWdyZXNzaW9ucyB3aGVuIHRoZSBzdXBwb3J0 IDQ4LWJpdCBmbGFnCj4+Pj4+Pj4+Pj4+IGlzCj4+Pj4+Pj4+Pj4+IG5vdAo+Pj4+Pj4+Pj4+PiBz ZXQuCj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+ Pgo+Pj4+Pj4+Pj4+IEkgZGlkbid0IGdldCBhbnkgcmVwbGllcyB0byBteSBsYXN0IGNvbW1lbnRz IG9uIHRoaXM6Cj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gaHR0 cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9tZXNhLWRldi8yMDE1LUF1Z3VzdC8w OTEzOTguaHRtbAo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gQmFzaWNhbGx5LCBJIHRyaWVkIGV4cGxp Y2l0bHkgcGxhY2luZyBidWZmZXJzIGFib3ZlIDhHIGFuZCBkaWRuJ3QKPj4+Pj4+Pj4+PiBzZWUK Pj4+Pj4+Pj4+PiB0aGUgSFcgcHJvYmxlbSBkZXNjcmliZWQgKGllIGl0IGFsbCB3b3JrZWQgZmlu ZSkuICBJIHN0aWxsIHRoaW5rCj4+Pj4+Pj4+Pj4gdGhlcmUncyBzb21lIGNvbmZ1c2lvbiBhcyB0 byB3aGF0IHRoZSBXL0EgaXMgYWJvdXQuCj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiBIZXJlJ3MgbXkg dGFrZTogdGhlIFcvQSBpcyBhIFNXLW9ubHkgd29ya2Fyb3VuZCB0byBoYW5kbGUgdGhlCj4+Pj4+ Pj4+Pj4gY2FzZXMKPj4+Pj4+Pj4+PiB3aGVyZSBhIGRyaXZlciB1c2VzIGhlYXBsZXNzIGFuZCA0 OC1iaXQgcHBndHQuIFRoZSBwcm9ibGVtIGlzIHRoYXQKPj4+Pj4+Pj4+PiB0aGUKPj4+Pj4+Pj4+ PiBoZWFwcyBhcmUgbGltaXRlZCB0byA0RyBidXQgd2l0aCA0OGJpdCBwcGd0dCBhIGJ1ZmZlciBj YW4gYmUKPj4+Pj4+Pj4+PiBwbGFjZWQKPj4+Pj4+Pj4+PiBhbnl3aGVyZSBpdCB0aGUgNDggYml0 IGFkZHJlc3Mgc3BhY2UuIElmIHRoYXQgaGFwcGVucyBpdCdzCj4+Pj4+Pj4+Pj4gY29uc2lkZXJl ZGQKPj4+Pj4+Pj4+PiBvdXQtb2YtYm91bmRzIGZvciB0aGUgaGVhcCBhbmQgYWNjZXNzIGZhaWxz LiBUbyBwcmV2ZW50IHRoaXMgd2UKPj4+Pj4+Pj4+PiBuZWVkCj4+Pj4+Pj4+Pj4gdG8gbWFrZSBz dXJlIHRoZSBib3Mgd2UgYWRkcmVzcyBpbiBhIGhlYXBsZXNzIGZhc2hpb24gYXJlIHBsYWNlZAo+ Pj4+Pj4+Pj4+IGJlbG93Cj4+Pj4+Pj4+Pj4gNGcuCj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiBGb3Ig bWVzYSwgd2Ugb25seSBjb25maWd1cmUgZ2VuZXJhbCBzdGF0ZSBiYXNlIGFzIGhlYXAtbGVzcywg d2hpY2gKPj4+Pj4+Pj4+PiBhZmZlY3RzIHNjcmF0Y2ggYm9zLiBXaGF0IHRoaXMgYm9pbHMgZG93 biB0byBpcyB0aGF0IHdlIG5lZWQgdGhlCj4+Pj4+Pj4+Pj4gNEcKPj4+Pj4+Pj4+PiByZXN0cmlj dGlvbiBvbmx5IGZvciB0aGUgc2NyYXRjaCBib3Mgc2V0IHVwIG9uIDNEU1RBVEVfVlMsCj4+Pj4+ Pj4+Pj4gM0RTVEFURV9HUwo+Pj4+Pj4+Pj4+IGFuZCAzRFNUQVRFX1BTIChhbmQgdGVzc2VsYXRp b24gc3RhZ2UgZXZlbnR1YWxseSkuIExvb2sgZm9yIHRoZQo+Pj4+Pj4+Pj4+IE9VVF9SRUxPQzY0 IGZvciBzdGFnZS0+c2NyYXRjaF9ibyBpbiBnZW44X3ZzX3N0YXRlLmMsCj4+Pj4+Pj4+Pj4gZ2Vu OF9nc19zdGF0ZS5jCj4+Pj4+Pj4+Pj4gYW5kIGdlbjhfcHNfc3RhdGUuYwo+Pj4+Pj4+Pj4KPj4+ Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBJIHRoaW5rIGl0 IGFsc28gYWZmZWN0cyBfM0RTVEFURV9WSUVXUE9SVF9TVEFURV9QT0lOVEVSU19DQywgbWF5YmUK Pj4+Pj4+Pj4+IGl0Cj4+Pj4+Pj4+PiBpc24ndCBleGNsdXNpdmUgdG8gdGhlIHNjcmF0Y2ggYm9z ICh0aGUgZXJyb3Igc3RhdGUgcG9pbnRzIHRvIHRoYXQKPj4+Pj4+Pj4+IGluc3RydWN0aW9uKS4K Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBIaSwKPj4+Pj4+Pj4KPj4+Pj4+ Pj4gQW55bW9yZSBpbnB1dHMgYWJvdXQgdGhpcyBwYXRjaD8KPj4+Pj4+Pj4gQUZBSUssIGlmIGNo YW5nZXMgYXJlIHJlcXVpcmVkIGJhc2VkIG9uIGZ1cnRoZXIgY29tbWVudHMgZnJvbQo+Pj4+Pj4+ PiBLcmlzdGlhbiwKPj4+Pj4+Pj4gdGhlc2Ugd2lsbCBiZSBpbiB0aGUgbWVzYSBwYXRjaFsxXSwg bm90IGxpYmRybS4gQWxzbywgTWljaGHFgiB3aWxsCj4+Pj4+Pj4+IHVzZQo+Pj4+Pj4+PiB0aGlz Cj4+Pj4+Pj4+IGZsYWcgaW4gYW5vdGhlciBwcm9qZWN0Lgo+Pj4+Pj4+Pgo+Pj4+Pj4+IFRoZSBj b21tZW50IHNlZW1zIHF1aXRlIGJyaWVmIGFuZCBJJ20gbm90IHN1cmUgaXQgZnVsbHkgYWRkcmVz c2VzCj4+Pj4+Pj4gS3Jpc3RpYW4ncyBjb25jZXJuLiBJJ2Qgc3VzcGVjdCB0aGF0IHByb3ZpZGlu ZyByZWZlcmVuY2UgdG8gdGhlIEhXCj4+Pj4+Pj4gZG9jdW1lbnRhdGlvbiAoY29uZmlybWluZyB5 b3VyIGFzc3VtcHRpb24pIG1pZ2h0IGJlIGJlbmVmaWNpYWwuCj4+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+ PiBTdXJlLCBhdHRhY2hlZCBpcyB0aGUgaGFuZyBJIGdldCBpZiBJIGRvbid0IHNldCB0aGUgcmVz dHJpY3Rpb24gaW4KPj4+Pj4+IGdlbjhfbWlzY19zdGF0ZS5jIGFuZCB0cnkgdG8gdXNlIHRoZSBm dWxsIDQ4LWJpdCByYW5nZQo+Pj4+Pj4gKGk5MTVfZXJyb3Jfc3RhdGVfbm93YS50eHQpLiBUaGlz IGlzIGp1c3QgcnVubmluZyBnZnhiZW5jaCB0LXJleC4KPj4+Pj4+Cj4+Pj4+PiBJIHNlZSB0aGUg c2FtZSBoYW5nIHNpZ25hdHVyZSB3aGVuIGl0IGlzIG9ubHkgYXBwbGllZCB0byB0aGUgc2NyYXRj aAo+Pj4+Pj4gYm9zCj4+Pj4+PiAoaW4KPj4+Pj4+IGdlbjhfdnNfc3RhdGUuYywgZ2VuOF9nc19z dGF0ZS5jIGFuZCBnZW44X3BzX3N0YXRlLmMgLQo+Pj4+Pj4gaTkxNV9lcnJvcl9zdGF0ZV9zY3Jh dGNoYm8udHh0KS4KPj4+Pj4+Cj4+Pj4+PiAzRFNUQVRFX1ZJRVdQT1JUX1NUQVRFX1BPSU5URVJT X0NDICgweDc4MjMwMDAwKSBpcyBkZWZpbmVkIGhlcmU6Cj4+Pj4+Pgo+Pj4+Pj4KPj4+Pj4+IGh0 dHBzOi8vMDEub3JnL3NpdGVzL2RlZmF1bHQvZmlsZXMvZG9jdW1lbnRhdGlvbi9pbnRlbC1nZngt cHJtLW9zcmMtYmR3LXZvbDAyYS1jb21tYW5kcmVmZXJlbmNlLWluc3RydWN0aW9uc18wLnBkZgo+ Pj4+Pj4gKHBhZ2UgMjU2KQo+Pj4+Pgo+Pj4+Pgo+Pj4+Pgo+Pj4+PiBJIGFwcGxpZWQgeW91ciBt ZXNhIGFuZCBsaWJkcm0gcGF0Y2hlcyBhbmQgdGhlbiBiYWNrZWQgb3V0IHRoZSA0Rwo+Pj4+PiBy ZXN0cmljdGlvbiBpbiB0aGUgU1RBVEVfQkFTRV9BRERSRVNTIHJlbG9jYXRpb25zLiAgSSB3YXMg bm90IGFibGUgdG8KPj4+Pj4gcmVwcm9kdWNlIGFueSBoYW5nIHdpdGggdHJleCBvciBnbHhnZWFy cy4gSSBjb25maXJtZWQgKHVzaW5nCj4+Pj4+IElOVEVMX0RFQlVHPWJhdCkgdGhhdCBnZW0gYWN0 dWFsbHkgcGxhY2VkIEJPcyBhYm92ZSB0aGUgNEcgbWFyayBhbmQKPj4+Pj4gZ290IHRoaXM6Cj4+ Pj4+Cj4+Pj4+ICAgIDA6IDggQCAweGZmZmZmZmY5MDAwMCAobWlwdHJlZSkKPj4+Pj4gICAgMTog OSBAIDB4ZmZmZmZmZjc4MDAwIChoaXopCj4+Pj4+ICAgIDI6IDQgQCAweGZmZmZmZmY3NzAwMCAo cGlwZV9jb250cm9sIHdvcmthcm91bmQpCj4+Pj4+ICAgIDM6IDUgQCAweGZmZmZmZmY3NjAwMCAo cHJvZ3JhbSBjYWNoZSkKPj4+Pj4gICAgNDogMTIgQCAweDAwMDAwMDAwMDAwMCAobWlwdHJlZSkK Pj4+Pj4gICAgNTogNyBAIDB4MDAwMDAwMDAxMDAwIChpbWFnZSkKPj4+Pj4gICAgNjogMTAgQCAw eGZmZmZmZmY1YTAwMCAobWlwdHJlZSkKPj4+Pj4gICAgNzogMTMgQCAweGZmZmZmZmY1OTAwMCAo YnVmZmVyb2JqKQo+Pj4+PiAgICA4OiAxMSBAIDB4ZmZmZmZmZjUxMDAwIChidWZmZXJvYmopCj4+ Pj4+ICAgIDk6IDE0IEAgMHhmZmZmZmZmNTAwMDAgKGJ1ZmZlcm9iaikKPj4+Pj4gMTA6IDE1IEAg MHhmZmZmZmZmNDAwMDAgKGJhdGNoYnVmZmVyKUAweDAwMDAwMDAwIDAwMDAwMDIwIC0+IDgKPj4+ Pj4gKG1pcHRyZWUpQDB4MDAwMGZmZmYgZmZmOTAwMDAgKyAweDAwMDAwMDAwCj4+Pj4+IDEwOiAx NSBAIDB4ZmZmZmZmZjQwMDAwIChiYXRjaGJ1ZmZlcilAMHgwMDAwMDAwMCAwMDAwMDA0MCAtPiA5 Cj4+Pj4+IChoaXopQDB4MDAwMGZmZmYgZmZmNzgwMDAgKyAweDAwMDAwMDAwCj4+Pj4+IDEwOiAx NSBAIDB4ZmZmZmZmZjQwMDAwIChiYXRjaGJ1ZmZlcilAMHgwMDAwMDAwMCAwMDAwMDA5OCAtPiA0 Cj4+Pj4+IChwaXBlX2NvbnRyb2wgd29ya2Fyb3VuZClAMHgwMDAwZmZmZiBmZmY3NzAwMCArIDB4 MDAwMDAwMDAKPj4+Pj4gLi4uCj4+Pj4+Cj4+Pj4+IEluIHBhcnRpY3VsYXIsIHRoZSBtZXNhIGJh dGNoYnVmZmVyIGlzIHBsYWNlZCBhdCAweGZmZmZmZmY0MDAwMCwgYW5kCj4+Pj4+IGFsbCB0aGUg U1RBVEVfQkFTRV9BRERSRVNTIGhlYXBzIGFyZSBpbiB0aGF0IGJvLiBJbiBvdGhlciB3b3Jkcywg YWxsCj4+Pj4+IGhlYXAgYmFzZXMgYXJlIHNldCB0byAweGZmZmZmZmY0MDAwMC4KPj4+Pj4KPj4+ Pj4gVGhlIG9mZnNldCBpbiAzRFNUQVRFX1ZJRVdQT1JUX1NUQVRFX1BPSU5URVJTX0NDIGlzIGlu ZGVlZCBvbmx5IDMyCj4+Pj4+IGJpdHMsIGJ1dCB0aGF0IG9ubHkgYWZmZWN0cyBob3cgZmFyIGZy b20gdGhlIGR5bmFtaWMgc3RhdGUgYmFzZQo+Pj4+PiBhZGRyZXNzIHdlIGNhbiBwbGFjZSB0aGF0 LiBJbiBtZXNhcyBjYXNlLCBpdCdzIGFsd2F5cyBpbnNpZGUgdGhlIGJhdGNoCj4+Pj4+IGJ1ZmZl ciwgd2hpY2ggaXMgYXQgbW9zdCAzMmssIHNvIHRoYXQncyBuZXZlciBhIHByb2JsZW0uIElmIGEg ZHJpdmVyCj4+Pj4+IHVzZXMgZHluYW1pYyBzdGF0ZSBpbiBhIGhlYXBsZXNzIGZhc2hpb24sIHRo ZW4geW91IG5lZWQgdG8gYmUgY2FyZWZ1bAo+Pj4+PiB0byBwbGFjZSB0aGUgQ0Mgdmlld3BvcnQg c3RhdGUgYmVsb3cgNGcuCj4+Pj4+Cj4+Pj4+IFdoYXQgSSB3YXMgYWJsZSAgdG8gY29uZmlybSBp cyB0aGF0IHNjcmF0Y2ggYnVmZmVyIEkvTyAod2hpY2ggd2UgdXNlCj4+Pj4+IGZvciBzcGlsbGlu ZykgZG9lcyBicmVhayB3aXRoIDQ4IGJpdCBwcGd0dC4gSWYgeW91IHJ1biBnbHhnZWFycyB3aXRo Cj4+Pj4+IElOVEVMX0RFQlVHPXNwaWxsX2ZzIHNldCwgeW91IGNhbiBzZWUgbG90cyBvZiByZW5k ZXJpbmcgYXJ0aWZhY3RzIGFzCj4+Pj4+IHRoZSA0RyBsaW1pdCBvbiB0aGUgZ2VuZXJhbCBzdGF0 ZSBoZWFwIGNhcHMgYXR0ZW1wdHMgdG8gc3BpbGwgYW5kIGZpbGwKPj4+Pj4gZnJvbSB0aGUgdmVy dGV4IHNoYWRlci4gVXNpbmcgT1VUX1JFTE9DNjRfSU5TSURFXzRHKCkgd2hlbiBzZXR0aW5nIHVw Cj4+Pj4+IHRoZSBzY3JhdGNoIEJPcyBpbiAzRFNUQVRFX1ZTIGFuZCAzRFNUQVRFX1BTIGZpeGVz IHRoZSBwcm9ibGVtLgo+Pj4+Cj4+Pj4KPj4+Pgo+Pj4+IE9rLCBzbyB3ZSBkbyBzdGlsbCBuZWVk IHRoZSA0RyBsaW1pdCBiaXQgKGkuZS4gSSBkb24ndCBoYXZlIHRvIHJldmVydAo+Pj4+IHRoZQo+ Pj4+IGtlcm5lbCBzaWRlIGZvciBsYWNrIG9mIG9wZW4tc291cmNlIHVzZXJzcGFjZSksIGp1c3Qg bm90IGF0IHRoZSBwbGFjZSB3ZQo+Pj4+IG9yaWdpbmFsbHkgdGhvdWdodC4gSSBndWVzcyBsZXNz b24gbGVhcm5lZCBpcyB0byBhY3R1YWxseSB0ZXN0IHN0dWZmCj4+Pj4gZmlyc3QKPj4+PiBiZWZv cmUgSSBwdWxsIGluIHRoZSBrZXJuZWwgc2lkZS4gTWljaGVsLCBkaWQgeW91IG5vdCBzZWUgdGhl IHNwaWxsaW5nCj4+Pj4gY29ycnVwdGlvbnMgd2hlbiB0ZXN0aW5nIHRoZSBtZXNhIHBhdGNoZXM/ IEtyaXN0aWFuLCBkb2VzIHRoaXMgYWxzbyBibG93Cj4+Pj4gdXAgd2l0aCBqdXN0IGEgcGlnbGl0 IHJ1bj8KPj4+Pgo+Pj4KPj4+IFRoZXJlJ3MgbXVzdCBiZSBzb21ldGhpbmcgZWxzZSB3ZSBoYXZl IGRpZmZlcmVudCBpbiBvdXIgc3lzdGVtcy4KPj4+Cj4+PiBLcmlzdGlhbiBkb2Vzbid0IGdldCB0 aGUgaGFuZywgYW5kIGlmIEkgYmFjayBvdXQgdGhlIDRHIHJlc3RyaWN0aW9uIGluCj4+PiB0aGUK Pj4+IFNUQVRFX0JBU0VfQUREUkVTUywgSSBkb24ndCBzZWUgYW55IGNvcnJ1cHRpb24gd2hpbGUg cnVubmluZwo+Pj4gSU5URUxfREVCVUc9c3BpbGxfZnMgZ2x4Z2VhcnMuCj4+Cj4+Cj4+IEkgZG9u J3Qgd2FudCB0byBibG9jayB0aGlzLCBpbiBmYWN0LCBJIHZlcnkgbXVjaCB3YW50IHRvIHNlZSB0 aGlzIG1vdmUKPj4gZm9yd2FyZC4gSG93ZXZlciwgSSBjYW4ndCBhY2sgcGF0Y2hlcyB0aGF0IDEp IGZpeCBhIGdwdSBoYW5nIEkgY2FuJ3QKPj4gcmVwcm9kdWNlIGFuZCBJIGRvbid0IGFncmVlIHNo b3VsZCBiZSBhIHByb2JsZW0gKHRoZQo+PiBTVEFURV9CQVNFX0FERFJFU1MgcHJvYmxsZW0pIGFu ZCAyKSBkb24ndCBmaXggdGhlIGlzc3VlIHRoYXQgSSBzZWUgYW5kCj4+IHJlcHJvZHVjZWQgb24g bXkgQkRXICh0aGUgc3BpbGxpbmcgcHJvYmxlbSkuCj4+Cj4+IEknbGwgdHJ5IGEgZnVsbCBwaWds aXQgcnVuIHRvbW9ycm93IHdpdGggYm90aCBteSBtZXNhIHBhdGNoIGFuZAo+PiBNaWNoZWxzIGFu ZCBzZWUgd2hhdCBoYXBwZW5zLiBIb3dldmVyLCB0aGlzIGlzbid0IHRoZSBraW5kIG9mIHByb2Js ZW0KPj4gdGhhdCBvY2N1cnMgb25jZSBpbiBhIGJsdWUgbW9vbiBvciBmb3Igc29tZSBjb3JuZXIg Y2FzZSBwaWdsaXQgdGVzdC4KPj4gSWYgTWljaGVscyB1bmRlcnN0YW5kaW5nIG9mIHRoZSBodyBh bmQgdGhlIHdvcmthcm91bmQgaXMgY29ycmVjdCwKPj4gbm90aGluZyBzaG91bGQgd29yayB3aXRo b3V0IGhpcyBwYXRjaC4KPj4KPj4gVG8gbW92ZSBmb3J3YXJkIG9uIHRoaXMsIHVubGVzcyBzb21l dGhpbmcgbmV3IGNvbWVzIHVwIHdoZW4gcnVubmluZwo+PiBwaWdsaXQsIEkgY2FuIHRha2Ugb3du ZXJzaGlwIG9mIG1ha2luZyBtZXNhIHdvcmsgb25lIHdheSBvciB0aGUgb3RoZXIuCj4+IFRoZSBr ZXJuZWwgYW5kIGxpYmRybSB3b3JrIGlzIGZpbmUgYW5kIG1vc3Qgb2YgTWljaGVscyBtZXNhIHBh dGNoIGlzCj4+IGdvb2QuIElmIG1lc2EgYnJlYWtzIGRvd24gdGhlIHJvYWQgYmVjYXVzZSB3ZSBu ZWVkIHRvIGxpbWl0IHRoZQo+PiBTVEFURV9CQVNFX0FERFJFU1MgcmVsb2NzLCBJJ2xsIG93biB0 aGUgcHJvYmxlbSB0aGVuLgo+Pgo+PiBLcmlzdGlhbgo+Pgo+Cj4gVGhhbmtzIEtyaXN0aWFuLAo+ Cj4gTGV0IG1lIGtub3cgaWYgeW91IG5lZWQgc29tZXRoaW5nIGZyb20gaTkxNSBvciBsaWJkcm0g c2lkZS4KCkkndmUgcmV2aWV3ZWQgYW5kIHB1c2hlZCB0aGVzZSB0d28gcGF0Y2hlcy4gIEknbGwg c2VuZCBvdXQgdGhlIG1lc2EKcGF0Y2ggZm9yIHJldmlldyBpbiBhIGJpdCBhbmQgb25jZSB0aGF0 IGxhbmRzIHdlIGNhbiBkbyBhIGxpYmRybQpyZWxlYXNlLgoKS3Jpc3RpYW4KX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlz dApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK