From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] drm/i915: Do NOT skip the first 4k of stolen memory for pre-allocated buffers Date: Mon, 9 Apr 2018 10:30:00 +0200 Message-ID: <20180409083000.GK31310@phenom.ffwll.local> References: <57542ba3-b9d3-7603-f5d6-a3e9addd661b@redhat.com> <152241386519.28244.4073756569022574057@mail.alporthouse.com> <89d3f73e-5885-0716-5f27-c277690ba307@redhat.com> <20180404155016.GF5453@intel.com> <1da08657-8590-2bf7-6915-5043b4b7e7af@redhat.com> <20180404204901.GJ5453@intel.com> <64ef7b6d-09d5-048f-6386-6c5706db66ba@redhat.com> <20180406160611.GQ5453@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Hans de Goede Cc: intel-gfx , dri-devel@lists.freedesktop.org, Rodrigo Vivi List-Id: dri-devel@lists.freedesktop.org T24gU2F0LCBBcHIgMDcsIDIwMTggYXQgMTE6MzQ6NTdBTSArMDIwMCwgSGFucyBkZSBHb2VkZSB3 cm90ZToKPiBIaSwKPiAKPiBPbiAwNi0wNC0xOCAxODowNiwgVmlsbGUgU3lyasOkbMOkIHdyb3Rl Ogo+ID4gT24gVGh1LCBBcHIgMDUsIDIwMTggYXQgMDE6Mzc6MzFQTSArMDIwMCwgSGFucyBkZSBH b2VkZSB3cm90ZToKPiA+ID4gSGksCj4gPiA+IAo+ID4gPiBPbiAwNC0wNC0xOCAyMjo0OSwgVmls bGUgU3lyasOkbMOkIHdyb3RlOgo+ID4gPiA+IE9uIFdlZCwgQXByIDA0LCAyMDE4IGF0IDEwOjA2 OjI5UE0gKzAyMDAsIEhhbnMgZGUgR29lZGUgd3JvdGU6Cj4gPiA+ID4gPiBIaSwKPiA+ID4gPiA+ IAo+ID4gPiA+ID4gT24gMDQtMDQtMTggMTc6NTAsIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToKPiA+ ID4gPiA+ID4gT24gRnJpLCBNYXIgMzAsIDIwMTggYXQgMDQ6MjY6NTNQTSArMDIwMCwgSGFucyBk ZSBHb2VkZSB3cm90ZToKPiA+ID4gPiA+ID4gPiBIaSwKPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ ID4gPiBPbiAzMC0wMy0xOCAxNToyNSwgSGFucyBkZSBHb2VkZSB3cm90ZToKPiA+ID4gPiA+ID4g PiA+IEhpLAo+ID4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gPiBPbiAzMC0wMy0xOCAxNDo0 NCwgQ2hyaXMgV2lsc29uIHdyb3RlOgo+ID4gPiA+ID4gPiA+ID4gPiBRdW90aW5nIEhhbnMgZGUg R29lZGUgKDIwMTgtMDMtMzAgMTM6Mzc6NDApCj4gPiA+ID4gPiA+ID4gPiA+ID4gSGksCj4gPiA+ ID4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gPiA+ID4gT24gMzAtMDMtMTggMTQ6MzAsIENo cmlzIFdpbHNvbiB3cm90ZToKPiA+ID4gPiA+ID4gPiA+ID4gPiA+IFF1b3RpbmcgSGFucyBkZSBH b2VkZSAoMjAxOC0wMy0zMCAxMzoyNzoxNSkKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gQmVmb3Jl IHRoaXMgY29tbWl0IHRoZSBXYVNraXBTdG9sZW5NZW1vcnlGaXJzdFBhZ2Ugd29ya2Fyb3VuZCBj b2RlIHdhcwo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBza2lwcGluZyB0aGUgZmlyc3QgNGsgYnkg cGFzc2luZyA0MDk2IGFzIHN0YXJ0IG9mIHRoZSBhZGRyZXNzIHJhbmdlIHBhc3NlZAo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiB0byBkcm1fbW1faW5pdCgpLiBUaGlzIG1lYW5zIHRoYXQgY2FsbGlu ZyBkcm1fbW1fcmVzZXJ2ZV9ub2RlKCkgdG8gdHJ5IGFuZAo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiByZXNlcnZlIHRoZSBmaXJtd2FyZSBmcmFtZWJ1ZmZlciBzbyB0aGF0IHdlIGNhbiBpbmhlcml0 IGl0IHdvdWxkIGFsd2F5cwo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBmYWlsLCBhcyB0aGUgZmly bXdhcmUgZnJhbWVidWZmZXIgc3RhcnRzIGF0IGFkZHJlc3MgMC4KPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IENvbW1pdCBkNDM1Mzc2MTA0NzAgKCJkcm0v aTkxNTogc2tpcCB0aGUgZmlyc3QgNGsgb2Ygc3RvbGVuIG1lbW9yeSBvbgo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiBldmVyeXRoaW5nID49IGdlbjgiKSBzYXlzIGluIGl0cyBjb21taXQgbWVzc2Fn ZTogIlRoaXMgaXMgY29uZmlybWVkIHRvIGZpeAo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBTa3ls YWtlIHNjcmVlbiBmbGlja2VyaW5nIGlzc3VlcyAocHJvYmFibHkgY2F1c2VkIGJ5IHRoZSBmYWN0 IHRoYXQgd2UKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gaW5pdGlhbGl6ZWQgYSByaW5nIGluIHRo ZSBmaXJzdCBwYWdlIG9mIHN0b2xlbiwgYnV0IEkgZGlkbid0IDEwMCUgY29uZmlybQo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiB0aGlzIHRoZW9yeSkuIgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAK PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gV2hpY2ggc3VnZ2VzdHMgdGhhdCBpdCBpcyBzYWZlIHRv IHVzZSB0aGUgZmlyc3QgcGFnZSBmb3IgYSBsaW5lYXIKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g ZnJhbWVidWZmZXIgYXMgdGhlIGZpcm13YXJlIGlzIGRvaW5nLgo+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiAKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gVGhpcyBjb21taXQgYWx3YXlzIHBhc3NlcyAw IGFzIHN0YXJ0IHRvIGRybV9tbV9pbml0KCkgYW5kIHdvcmtzIGFyb3VuZAo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiBXYVNraXBTdG9sZW5NZW1vcnlGaXJzdFBhZ2UgaW4gaTkxNV9nZW1fc3RvbGVu X2luc2VydF9ub2RlX2luX3JhbmdlKCkKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gYnkgaW5zdXJp bmcgdGhlIHN0YXJ0IGFkZHJlc3MgcGFzc2VkIGJ5IHRvIGRybV9tbV9pbnNlcnRfbm9kZV9pbl9y YW5nZSgpCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGlzIGFsd2F5cyA0ayBvciBtb3JlLiBBbGwg ZW50cnkgcG9pbnRzIHRvIGk5MTVfZ2VtX3N0b2xlbi5jIGdvIHRocm91Z2gKPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gaTkxNV9nZW1fc3RvbGVuX2luc2VydF9ub2RlX2luX3JhbmdlKCksIHNvIHRo YXQgYW55IG5ld2x5IGFsbG9jYXRlZAo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBvYmplY3RzIHN1 Y2ggYXMgcmluZy1idWZmZXJzIHdpbGwgbm90IGJlIGFsbG9jYXRlZCBpbiB0aGUgZmlyc3QgNGsu Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBUaGUgb25l IGV4Y2VwdGlvbiBpcyBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbl9mb3JfcHJlYWxsb2Nh dGVkKCkKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gd2hpY2ggZGlyZWN0bHkgY2FsbHMgZHJtX21t X3Jlc2VydmVfbm9kZSgpIHdoaWNoIG5vdyB3aWxsIGJlIGFibGUgdG8KPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gdXNlIHRoZSBmaXJzdCA0ay4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gCj4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+IFRoaXMgZml4ZXMgdGhlIGk5MTUgZHJpdmVyIG5vIGxvbmdlciBi ZWluZyBhYmxlIHRvIGluaGVyaXQgdGhlIGZpcm13YXJlCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ IGZyYW1lYnVmZmVyIG9uIGdlbjgrLCB3aGljaCBmaXhlcyB0aGUgdmlkZW8gb3V0cHV0IGNoYW5n aW5nIGZyb20gdGhlCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHZlbmRvciBsb2dvIHRvIGEgYmxh Y2sgc2NyZWVuIGFzIHNvb24gYXMgdGhlIGk5MTUgZHJpdmVyIGlzIGxvYWRlZAo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiAob24gc3lzdGVtcyB3aXRob3V0IGZiY29uKS4KPiA+ID4gPiA+ID4gPiA+ ID4gPiA+IAo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gV2UndmUgYmVlbiB0b2xkIGJ5IHRoZSBIVyBn dXlzIG5vdCB0byB1c2UgdGhlIGZpcnN0IHBhZ2UuIChUaGF0J3MgbXkKPiA+ID4gPiA+ID4gPiA+ ID4gPiA+IHVuZGVyc3RhbmRpbmcgZnJvbSBldmVyeSB0aW1lIHRoaXMgZ2V0cyBxdWVzdGlvbmVk LikKPiA+ID4gPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiA+ID4gPiBZZXQgdGhlIEdPUCBp cyBoYXBwaWx5IHVzaW5nIHRoZSBmaXJzdCBwYWdlLiBJIHRoaW5rIHdlIG1heSBuZWVkIHRvIG1h a2UKPiA+ID4gPiA+ID4gPiA+ID4gPiBhIGRpZmZlcmVuY2UgaGVyZSBiZXR3ZWVuIHRoZSBHUFUg bm90IHVzaW5nIHRoZSBmaXJzdCBwYWdlIGFuZCB0aGUKPiA+ID4gPiA+ID4gPiA+ID4gPiBkaXNw bGF5IGVuZ2luZS9waXBlbGluZSBub3QgdXNpbmcgdGhlIGZpcnN0IHBhZ2UuIE5vdGUgdGhhdCBt eSBwYXRjaAo+ID4gPiA+ID4gPiA+ID4gPiA+IG9ubHkgaW5mbHVlbmNlcyB0aGUgaW5oZXJpdGlu ZyBvZiB0aGUgaW5pdGlhbCBmcmFtZWJ1ZmZlciBhcyBhbGxvY2F0ZWQKPiA+ID4gPiA+ID4gPiA+ ID4gPiBieSB0aGUgR09QLiBJdCBkb2VzIG5vdCBpbmZsdWVuY2UgYW55IG90aGVyIGFsbG9jYXRp b25zIGZyb20gdGhlCj4gPiA+ID4gPiA+ID4gPiA+ID4gcmVzZXJ2ZWQgcmFuZ2UsIHRob3NlIHdp bGwgc3RpbGwgYWxsIGF2b2lkIHRoZSBmaXJzdCBwYWdlLgo+ID4gPiA+ID4gPiA+ID4gPiA+IAo+ ID4gPiA+ID4gPiA+ID4gPiA+IFdpdGhvdXQgdGhpcyBwYXRjaCBmYXN0Ym9vdCAvIGZsaWNrZXJm cmVlIHN1cHBvcnQgaXMgZXNzZW50aWFsbHkgYnJva2VuCj4gPiA+ID4gPiA+ID4gPiA+ID4gb24g YW55IGdlbjgrIGhhcmR3YXJlIGdpdmVuIHRoYXQgb25lIG9mIHRoZSBnb2FscyBvZiBhdG9taWMg aXMgdG8gYmUKPiA+ID4gPiA+ID4gPiA+ID4gPiBhYmxlIHRvIGRvIGZsaWNrZXJmcmVlIHRyYW5z aXRpb25zIEkgdGhpbmsgdGhhdCB0aGlzIHdhcnJhbnRzIGEgY2xvc2VyCj4gPiA+ID4gPiA+ID4g PiA+ID4gbG9vayB0aGVuIGp1c3Qgc2ltcGx5IHNheWluZyBuZXZlciB1c2UgdGhlIGZpcnN0IHBh Z2UuCj4gPiA+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+ID4gPiBUaGUgY29uY2VybiBpcyB3 aGF0IGVsc2UgKGkuZS4gbm90aGluZyB0aGF0IHdlIGFsbG9jYXRlZCBvdXJzZWx2ZXMpIHRoYXQK PiA+ID4gPiA+ID4gPiA+ID4gbWF5IGJlIGluIHRoZSBmaXJzdCBwYWdlLi4uCj4gPiA+ID4gPiA+ ID4gPiAKPiA+ID4gPiA+ID4gPiA+IEdpdmVuIHRoYXQgdGhlIEdPUCBoYXMgcHV0IGl0cyBmcmFt ZWJ1ZmZlciB0aGVyZSBhdCBsZWFzdCBhdCBib290IHRoZXJlCj4gPiA+ID4gPiA+ID4gPiBpcyBu b3RoaW5nIHRoZXJlLCBvdGhlcndpc2UgaXQgd291bGQgc2hvdyB1cCBvbiB0aGUgZGlzcGxheS4K PiA+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+ID4gV2UgaGF2ZSBhIHdob2xlIGJ1bmNoIG9m IGNvZGUgdG8gaW5oZXJpdCB0aGUgQklPUyBmYiBpbiBpbnRlbF9kaXNwbGF5LmMKPiA+ID4gPiA+ ID4gPiA+IGFuZCBBRkFJSyB0aGF0IGNvZGUgaXMgdGhlcmUgYmVjYXVzZSB0aGlzIGluaGVyaXRp bmcgdGhlIEJJT1MgZmIgaXMKPiA+ID4gPiA+ID4gPiA+IGRlZW1lZCBhbiBpbXBvcnRhbnQgZmVh dHVyZS4gU28gSSdtIG5vdCBoYXBweSBhdCBhbGwgd2l0aCB0aGUgaGFuZHdhdnkKPiA+ID4gPiA+ ID4gPiA+IGJlc3QgdG8gbm90IHRvdWNoIGl0IGFuc3dlciBJJ20gZ2V0dGluZyB0byB0aGlzIHBh dGNoLgo+ID4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gPiBVbmxlc3MgdGhlcmUgYXJlIHNv bWUgY2xlYXIgYW5zd2VyIGZyb20gdGhlIGhhcmR3YXJlIGZvbGtzIHdoaWNoIHNwZWNpZmljYWxs eQo+ID4gPiA+ID4gPiA+ID4gc2F5IHdlIGNhbm5vdCBwdXQgYSBmcmFtZWJ1ZmZlciB0aGVyZSAo YW5kIHRoZW4gd2h5IGlzIHRoZSBHT1AgZG9pbmcgaXQ/KQo+ID4gPiA+ID4gPiA+ID4gdGhlbiBJ IGJlbGlldmUgdGhhdCB0aGUgYmVzdCB3YXkgZm9yd2FyZCBoZXJlIGlzIHRvIGdldCB2YXJpb3Vz IHBlb3BsZSB0bwo+ID4gPiA+ID4gPiA+ID4gdGVzdCB3aXRoIHRoaXMgcGF0Y2ggYW5kIHRoZSBi ZXN0IHdheSB0byBkbyB0aGF0IGlzIHByb2JhYmx5IHRvIHB1dCBpdAo+ID4gPiA+ID4gPiA+ID4g aW4gbmV4dC4gTm90ZSBJIGRlbGliZXJhdGVseSBkaWQgbm90IGFkZCBhIENjIHN0YWJsZS4KPiA+ ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiBUbyBlbGFib3JhdGUgb24gdGhpcywgdGhlIGV4Y2x1 ZGluZyBvZiB0aGUgZmlyc3QgNGsgb2YgdGhlIHN0b2xlbiBtZW1vcnkKPiA+ID4gPiA+ID4gPiBy ZWdpb24gY2F1c2VzIGludGVsX2FsbG9jX2luaXRpYWxfcGxhbmVfb2JqKCkgZnJvbSBpbnRlbF9k aXNwbGF5LmMgdG8gZmFpbCwKPiA+ID4gPiA+ID4gPiB3aGljaCBpbiB0dXJuIGNhdXNlcyBpbnRl bF9maW5kX2luaXRpYWxfcGxhbmVfb2JqKCkgdG8gY2FsbAo+ID4gPiA+ID4gPiA+IGludGVsX3Bs YW5lX2Rpc2FibGVfbm9hdG9taWMoaW50ZWxfY3J0YywgaW50ZWxfcGxhbmUpOyB3aGljaCB0ZW1w b3JhcmlseQo+ID4gPiA+ID4gPiA+IGNvbXBsZXRlbHkgdHVybnMgb2ZmIHRoZSBkaXNwbGF5IHdo aWNoIGxlYWRzIHRvIGEgdmVyeSB1Z2x5IGZsaWNrZXJpbmcKPiA+ID4gPiA+ID4gPiBvZiB0aGUg ZGlzcGxheSBhdCBib290IChhcyB3ZWxsIGFzIHJlcGxhY2luZyB0aGUgdmVuZG9yIGxvZ28gd2l0 aCBhCj4gPiA+ID4gPiA+ID4gYmxhY2sgc2NyZWVuKS4KPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ ID4gPiBJIHRoaW5rIHdlIGNhbiBhbGwgYWdyZWUgdGhhdCB0aGlzIGJlaGF2aW9yIGlzIHVuZGVz aXJhYmxlIGFuZCBldmVuIGEKPiA+ID4gPiA+ID4gPiByZWdyZXNzaW9uIGluIGJlaGF2aW9yIGNh dXNlZCBieSB0aGUgZml4IHRvIGV4Y2x1ZGUgdGhlIGZpcnN0IDRrLgo+ID4gPiA+ID4gPiA+IAo+ ID4gPiA+ID4gPiA+IENocmlzLCBpZiBteSBwYXRjaCBpcyBub3QgYW4gYWNjZXB0YWJsZSB3YXkg dG8gZml4IHRoaXMsIHRoZW4gaG93IGRvIHlvdQo+ID4gPiA+ID4gPiA+IHN1Z2dlc3QgdGhhdCB3 ZSBmaXggdGhpcz8KPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiBEaWdnaW5nIGEgYml0IGRl ZXBlciBJIGZvdW5kIHRoaXM6Cj4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gaHR0cHM6Ly8w MS5vcmcvc2l0ZXMvZGVmYXVsdC9maWxlcy9kb2N1bWVudGF0aW9uL2ludGVsLWdmeC1wcm0tb3Ny Yy1rYmwtdm9sMTYtd29ya2Fyb3VuZHMucGRmCj4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4g V2hpY2ggc2F5czoKPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiAiV2FTa2lwU3RvbGVuTWVt b3J5Rmlyc3RQYWdlOgo+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+IFdBIHRvIHNraXAgdGhl IGZpcnN0IHBhZ2Ugb2Ygc3RvbGVuCj4gPiA+ID4gPiA+ID4gbWVtb3J5IGR1ZSB0byBzcG9yYWRp YyBIVyB3cml0ZSBvbiAqQ1MgSWRsZSIKPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiBBbmQg YWxzbyBhYm91dCBGQkM6Cj4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gIkZpcnN0IGxpbmUg b2YgRkJDIGdldHRpbmcgY29ycnVwdGVkIHdoZW4gRkJDCj4gPiA+ID4gPiA+ID4gY29tcHJlc3Nl ZCBmcmFtZSBidWZmZXIgb2Zmc2V0IGlzIHByb2dyYW1tZWQgdG8KPiA+ID4gPiA+ID4gPiB6ZXJv LiBDb21tYW5kIHN0cmVhbWVycyBhcmUgZG9pbmcgZmx1c2ggd3JpdGVzIHRvCj4gPiA+ID4gPiA+ ID4gYmFzZSBvZiBzdG9sZW4uCj4gPiA+ID4gPiA+ID4gV0E6IE5ldyByZXN0cmljdGlvbiB0byBw cm9ncmFtIEZCQyBjb21wcmVzc2VkCj4gPiA+ID4gPiA+ID4gZnJhbWUgYnVmZmVyIG9mZnNldCB0 byBhdCBsZWFzdCA0S0IuIgo+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+IFNvIHVzaW5nIHRo ZSBmaXJzdCA0a0IgZm9yIHRoZSAqZnJhbWVidWZmZXIqIGFzIGRvbmUgYnkgdGhlIEdPUCB3aWxs Cj4gPiA+ID4gPiA+ID4gbm90IGNhdXNlIGFueSBtYWpvciBwcm9ibGVtcyAoZnJlZXplcywgaGFu Z3MsIGV0Yy4pLCBhbmQgY29tbWl0Cj4gPiA+ID4gPiA+ID4gZDQzNTM3NjEwNDcwICgiZHJtL2k5 MTU6IHNraXAgdGhlIGZpcnN0IDRrIG9mIHN0b2xlbiBtZW1vcnkgb24KPiA+ID4gPiA+ID4gPiBl dmVyeXRoaW5nID49IGdlbjgiKSB3YXMgY29ycmVjdCBpbiBkZWR1Y2luZyB0aGF0IHRoZSBwcm9i bGVtIHdhcwo+ID4gPiA+ID4gPiA+IGxpa2VseSB0aGF0IHNvbWUgKnZpdGFsKiBpbmZvcm1hdGlv biB3YXMgYmVpbmcgc3RvcmVkIGkgdGhlIGZpcnN0IDRrCj4gPiA+ID4gPiA+ID4gYW5kIHRoYXQg Z28gb3ZlcndyaXR0ZW4uCj4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gQnV0IHRoZSBjb250 ZW50cyBvZiB0aGUgKGZpcnN0IGxpbmVzIG9mKSB0aGUgZnJhbWVidWZmZXIgbWF5IGJlY29tZQo+ ID4gPiA+ID4gPiA+IGNvcnJ1cHRlZCBvbmNlIHdlIGFjdHVhbGx5IHN0YXJ0IHVzaW5nIHRoZSBj b21tYW5kLXN0cmVhbWVycywgd2hpY2gKPiA+ID4gPiA+ID4gPiBpcyBzdGlsbCB2ZXJ5IG11Y2gg bm90IHdhbnRlZC4KPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiBJbiBwcmFjdGljZSBYb3Jn IG9yIFdheWxhbmQgd2lsbCBsaWtlbHkgaGF2ZSBzZXR1cCBhbm90aGVyIGZyYW1lYnVmZmVyCj4g PiA+ID4gPiA+ID4gYnkgdGhlIHRpbWUgdGhlIGNvbW1hbmQtc3RyZWFtZXJzIHdpbGwgc3RhcnQg dG8gZ2V0IHVzZWQuCj4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gQWx0ZXJuYXRpdmVseSB3 ZSBjb3VsZCBzdGFydCB3aXRoIGluaGVyaXRpbmcgdGhlIEJJT1MgZnJhbWVidWZmZXIKPiA+ID4g PiA+ID4gPiAoYXMgbXkgcGF0Y2ggYWxsb3dzKSBzbyB0aGF0IHdlIGRvbid0IGdldCB0aGUgZmxp Y2tlciBhbmQgdGhlbiBzb29uCj4gPiA+ID4gPiA+ID4gYWZ0ZXJ3YXJkcyBhdG9taWNhbGx5IHRy YW5zaXQgdG8gYSBuZXcgZnJhbWVidWZmZXIgKHdoaWNoIHNob3VsZAo+ID4gPiA+ID4gPiA+IGNv bnRhaW4gYSBjb3B5IG9mIHRoZSBCSU9TIGZiIGNvbnRlbnRzKSBhdCBhIGRpZmZlcmVudCBsb2Nh dGlvbi4KPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IFdoYXQgSSBzdWdnZXN0ZWQgbG9uZyBhZ28g d2FzIHRvIGNvcHkganVzdCB0aGUgZmlyc3QgcGFnZSBhbmQgYWRqdXN0IHRoZQo+ID4gPiA+ID4g PiBzZyBsaXN0LiBCdXQgSSdtIG5vdCBzdXJlIGlmIG91ciBzdG9sZW4gZ2VtIGNvZGUgd291bGQg YmUgaGFwcHkgd2l0aCBhbgo+ID4gPiA+ID4gPiBzZyBsaXN0IHdpdGggdHdvIGVudHJpZXMgaW5z dGVhZCBvZiBvbmUuCj4gPiA+ID4gPiAKPiA+ID4gPiA+IEJ1dCB0aGF0IHdvdWxkIHN0aWxsIHJl cXVpcmUgYW4gYXRvbWljLW1vZGVzZXQgdG8gaW5zdGFsbCB0aGUgbmV3IHNnLWxpc3QsCj4gPiA+ ID4gPiByaWdodD8KPiA+ID4gPiAKPiA+ID4gPiBQZXJoYXBzIG5vdC4gTm90IHN1cmUgaWYgdGhl IHB0ZSB1cGRhdGUgd291bGQgYmUgYXRvbWljIGVub3VnaCB0byBqdXN0Cj4gPiA+ID4gY2hhbmdl IGl0IHVuZGVybmVhdGggdGhlIGRpc3BsYXkgZW5naW5lIHdpdGhvdXQgaWxsIGVmZmVjdHMsIGFu ZCB0aGVuCj4gPiA+ID4gZG8gdGhlIGVxdWl2YWxlbnQgb2YgYSBwYWdlIGZsaXAgdG8gaW52YWxp ZGF0ZSB0aGUgVExCcy4KPiA+ID4gPiAKPiA+ID4gPiA+IFRoZW4gd2UgbWlnaHQganVzdCBhcyB3 ZWxsIHNpbXBseSBhbGxvYyBhIG5ldyBmYiBhbmQgY29weSB0aGUKPiA+ID4gPiA+IGNvbnRlbnRz IG92ZXIsIG9yIGFyZSB5b3Ugd29ycmllZCB0aGF0IHdpdGggc2F5IGEgNGsgZmIgdGhhdCB0YWtl cyB0b28KPiA+ID4gPiA+IG11Y2ggdGltZT8gRldJVyBJIGNhbiBzZWUgaG93IHRoZSBzaW5nbGUg bWVtY3B5IHRoaXMgaW52b2x2ZXMgd2lsbCB0YWtlCj4gPiA+ID4gPiBzb21lIHRpbWUsIGJ1dCBJ IGRvbid0IHRha2UgaXQgd2lsbCB0YWtlIHNvIGxvbmcgYXMgdG8gYmUgYSBwcm9ibGVtLgo+ID4g PiA+IAo+ID4gPiA+IE1haW5seSBqdXN0IGEgcXVlc3Rpb24gb2Yga2VlcGluZyBpdCBpbiBzdG9s ZW4uCj4gPiA+IAo+ID4gPiBBaCBJIHNlZS4KPiA+ID4gCj4gPiA+ID4gQXNzdW1pbmcgd2Ugd2Fu dCB0byBrZWVwCj4gPiA+ID4gdGhpbmdzIGluIHN0b2xlbiwgd2hpY2ggaXMgYSBtYXR0ZXIgb2Yg c29tZSBkZWJhdGUgYXMgRkJDIG5lZWRzIHN0b2xlbgo+ID4gPiA+IGFuZCBwZW9wbGUgbWlnaHQg bm90IGJlIGhhcHB5IGlmIGl0J3MgYWxsIHRha2VuIHVwIGJ5IGZiZGV2Lgo+ID4gPiA+IAo+ID4g PiA+ID4gCj4gPiA+ID4gPiBBbnl3YXlzIEkgY291bGQgdXNlIHNvbWUgaGVscCB3aXRoIGltcGxl bWVudGluZyBlaXRoZXIgc29sdXRpb24gYXMgSSdtCj4gPiA+ID4gPiBub3QgZmFtaWxpYXIgd2l0 aCB0aGUgaW52b2x2ZWQgcGFydHMgb2YgdGhlIGNvZGUuIEkgd2lsbCBoYXBwaWx5IHRlc3QKPiA+ ID4gPiA+IGEgcGF0Y2ggZm9yIHRoaXMuIEtlZXAgaW4gbWluZCB0aGF0IGZvciB0aGlzIHRvIHdv cmsgbXkgb3JpZ2luYWwgcGF0Y2gKPiA+ID4gPiA+IHdpbGwgYWxzbyBiZSBuZWNlc3Nhcnkgc28g dGhhdCB0aGUgaW5pdGlhbCB0YWtlb3ZlciBvZiB0aGUgZmlybXdhcmUKPiA+ID4gPiA+IGZiIHdp bGwgd29yay4KPiA+ID4gPiAKPiA+ID4gPiBJIGd1ZXNzIHRoZSB0cmlja2llc3QgcGFydCB3b3Vs ZCBiZSBnZXR0aW5nIGJvdGggdGhlIG9sZCBhbmQgbmV3Cj4gPiA+ID4gbG9jYXRpb24gb2YgdGhl IHBhZ2UgbWFwcGVkIGluIHRoZSBnZ3R0IGF0IHRoZSBzYW1lIHRpbWUuIFNhZGx5IHlvdSdyZQo+ ID4gPiA+IG5vdCBhbGxvd2VkIHRvIGFjY2VzcyBzdG9sZW4gZGlyZWN0bHkuIFNvIEkgc3VwcG9z ZSB0aGlzIHBhcnQgd291bGQKPiA+ID4gPiBpbnZvbHZlIHNvbWUgZmFpcmx5IGxvdyBsZXZlbCBm cm9iYmluZyBvZiB0aGUgZ2d0dCBwdGVzIGFuZCBhCj4gPiA+ID4gbWFudWFsIGlvcmVtYXAoKSBv ZiB0aGUgbWF0Y2hpbmcgcmFuZ2VzIG9mIHRoZSBhcGVydHVyZS4KPiA+ID4gCj4gPiA+IEhtbSwg eW91J3JlIHRhbGtpbmcgYWJvdXQgd2hhdCBuZWVkcyB0byBiZSBkb25lIHRvIGNvcHkgdGhlIGNv bnRlbnRzIGhlcmUsCj4gPiA+IHJpZ2h0Pwo+ID4gCj4gPiBZZWFoLgo+IAo+IFNvIHRoaW5raW5n IG1vcmUgYWJvdXQgdGhpcywgZm9yIHRoZSBvbGQgLyBCSU9TIGZyYW1lYnVmZmVyIHRoZXJlCj4g YWxyZWFkeSBpcyBhIG1hcHBpbmcgc2V0dXAgZm9yIGVmaWZiIHVzZSBhbmQgZm9yIHRoZSBuZXcg b25lIHdlCj4gc2hvdWxkIGFsc28gYWxyZWFkeSBzZXQgdXAgYSBtYXBwaW5nIHdoZW4gd2UgY3Jl YXRlIGl0LCBzbyBJIHRoaW5rCj4gd2UgY2FuIHJlYWxseSBqdXN0IGRvIGEgbWVtY3B5IGhlcmUg YWZ0ZXIgY3JlYXRpbmcgYSBuZXcgZnJhbWVidWZmZXI/Cj4gCj4gQW55d2F5cyBJIHdpbGwgcnVu IHRoZSB0ZXN0cyBEYW5pZWwgYXNrZWQgbWUgdG8gcnVuIGZpcnN0LgoKWWVhaCBsZXQncyBub3Qg aW52ZW50IHNvbHV0aW9ucyBmb3IgcHJvYmxlbXMgd2UgbWlnaHQgbm90IGV2ZW4gaGF2ZSA6LSkK LURhbmllbAotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9y YXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==