From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [Intel-gfx] [PATCH] drm/i915: Do NOT skip the first 4k of stolen memory for pre-allocated buffers Date: Fri, 6 Apr 2018 19:06:11 +0300 Message-ID: <20180406160611.GQ5453@intel.com> References: <20180330122715.18209-1-hdegoede@redhat.com> <152241303027.28244.1808321725923870922@mail.alporthouse.com> <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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <64ef7b6d-09d5-048f-6386-6c5706db66ba@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Hans de Goede Cc: intel-gfx , dri-devel@lists.freedesktop.org, Rodrigo Vivi List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBBcHIgMDUsIDIwMTggYXQgMDE6Mzc6MzFQTSArMDIwMCwgSGFucyBkZSBHb2VkZSB3 cm90ZToKPiBIaSwKPiAKPiBPbiAwNC0wNC0xOCAyMjo0OSwgVmlsbGUgU3lyasOkbMOkIHdyb3Rl Ogo+ID4gT24gV2VkLCBBcHIgMDQsIDIwMTggYXQgMTA6MDY6MjlQTSArMDIwMCwgSGFucyBkZSBH b2VkZSB3cm90ZToKPiA+PiBIaSwKPiA+Pgo+ID4+IE9uIDA0LTA0LTE4IDE3OjUwLCBWaWxsZSBT eXJqw6Rsw6Qgd3JvdGU6Cj4gPj4+IE9uIEZyaSwgTWFyIDMwLCAyMDE4IGF0IDA0OjI2OjUzUE0g KzAyMDAsIEhhbnMgZGUgR29lZGUgd3JvdGU6Cj4gPj4+PiBIaSwKPiA+Pj4+Cj4gPj4+PiBPbiAz MC0wMy0xOCAxNToyNSwgSGFucyBkZSBHb2VkZSB3cm90ZToKPiA+Pj4+PiBIaSwKPiA+Pj4+Pgo+ ID4+Pj4+IE9uIDMwLTAzLTE4IDE0OjQ0LCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4gPj4+Pj4+IFF1 b3RpbmcgSGFucyBkZSBHb2VkZSAoMjAxOC0wMy0zMCAxMzozNzo0MCkKPiA+Pj4+Pj4+IEhpLAo+ ID4+Pj4+Pj4KPiA+Pj4+Pj4+IE9uIDMwLTAzLTE4IDE0OjMwLCBDaHJpcyBXaWxzb24gd3JvdGU6 Cj4gPj4+Pj4+Pj4gUXVvdGluZyBIYW5zIGRlIEdvZWRlICgyMDE4LTAzLTMwIDEzOjI3OjE1KQo+ ID4+Pj4+Pj4+PiBCZWZvcmUgdGhpcyBjb21taXQgdGhlIFdhU2tpcFN0b2xlbk1lbW9yeUZpcnN0 UGFnZSB3b3JrYXJvdW5kIGNvZGUgd2FzCj4gPj4+Pj4+Pj4+IHNraXBwaW5nIHRoZSBmaXJzdCA0 ayBieSBwYXNzaW5nIDQwOTYgYXMgc3RhcnQgb2YgdGhlIGFkZHJlc3MgcmFuZ2UgcGFzc2VkCj4g Pj4+Pj4+Pj4+IHRvIGRybV9tbV9pbml0KCkuIFRoaXMgbWVhbnMgdGhhdCBjYWxsaW5nIGRybV9t bV9yZXNlcnZlX25vZGUoKSB0byB0cnkgYW5kCj4gPj4+Pj4+Pj4+IHJlc2VydmUgdGhlIGZpcm13 YXJlIGZyYW1lYnVmZmVyIHNvIHRoYXQgd2UgY2FuIGluaGVyaXQgaXQgd291bGQgYWx3YXlzCj4g Pj4+Pj4+Pj4+IGZhaWwsIGFzIHRoZSBmaXJtd2FyZSBmcmFtZWJ1ZmZlciBzdGFydHMgYXQgYWRk cmVzcyAwLgo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBDb21taXQgZDQzNTM3NjEwNDcwICgiZHJt L2k5MTU6IHNraXAgdGhlIGZpcnN0IDRrIG9mIHN0b2xlbiBtZW1vcnkgb24KPiA+Pj4+Pj4+Pj4g ZXZlcnl0aGluZyA+PSBnZW44Iikgc2F5cyBpbiBpdHMgY29tbWl0IG1lc3NhZ2U6ICJUaGlzIGlz IGNvbmZpcm1lZCB0byBmaXgKPiA+Pj4+Pj4+Pj4gU2t5bGFrZSBzY3JlZW4gZmxpY2tlcmluZyBp c3N1ZXMgKHByb2JhYmx5IGNhdXNlZCBieSB0aGUgZmFjdCB0aGF0IHdlCj4gPj4+Pj4+Pj4+IGlu aXRpYWxpemVkIGEgcmluZyBpbiB0aGUgZmlyc3QgcGFnZSBvZiBzdG9sZW4sIGJ1dCBJIGRpZG4n dCAxMDAlIGNvbmZpcm0KPiA+Pj4+Pj4+Pj4gdGhpcyB0aGVvcnkpLiIKPiA+Pj4+Pj4+Pj4KPiA+ Pj4+Pj4+Pj4gV2hpY2ggc3VnZ2VzdHMgdGhhdCBpdCBpcyBzYWZlIHRvIHVzZSB0aGUgZmlyc3Qg cGFnZSBmb3IgYSBsaW5lYXIKPiA+Pj4+Pj4+Pj4gZnJhbWVidWZmZXIgYXMgdGhlIGZpcm13YXJl IGlzIGRvaW5nLgo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBUaGlzIGNvbW1pdCBhbHdheXMgcGFz c2VzIDAgYXMgc3RhcnQgdG8gZHJtX21tX2luaXQoKSBhbmQgd29ya3MgYXJvdW5kCj4gPj4+Pj4+ Pj4+IFdhU2tpcFN0b2xlbk1lbW9yeUZpcnN0UGFnZSBpbiBpOTE1X2dlbV9zdG9sZW5faW5zZXJ0 X25vZGVfaW5fcmFuZ2UoKQo+ID4+Pj4+Pj4+PiBieSBpbnN1cmluZyB0aGUgc3RhcnQgYWRkcmVz cyBwYXNzZWQgYnkgdG8gZHJtX21tX2luc2VydF9ub2RlX2luX3JhbmdlKCkKPiA+Pj4+Pj4+Pj4g aXMgYWx3YXlzIDRrIG9yIG1vcmUuIEFsbCBlbnRyeSBwb2ludHMgdG8gaTkxNV9nZW1fc3RvbGVu LmMgZ28gdGhyb3VnaAo+ID4+Pj4+Pj4+PiBpOTE1X2dlbV9zdG9sZW5faW5zZXJ0X25vZGVfaW5f cmFuZ2UoKSwgc28gdGhhdCBhbnkgbmV3bHkgYWxsb2NhdGVkCj4gPj4+Pj4+Pj4+IG9iamVjdHMg c3VjaCBhcyByaW5nLWJ1ZmZlcnMgd2lsbCBub3QgYmUgYWxsb2NhdGVkIGluIHRoZSBmaXJzdCA0 ay4KPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gVGhlIG9uZSBleGNlcHRpb24gaXMgaTkxNV9nZW1f b2JqZWN0X2NyZWF0ZV9zdG9sZW5fZm9yX3ByZWFsbG9jYXRlZCgpCj4gPj4+Pj4+Pj4+IHdoaWNo IGRpcmVjdGx5IGNhbGxzIGRybV9tbV9yZXNlcnZlX25vZGUoKSB3aGljaCBub3cgd2lsbCBiZSBh YmxlIHRvCj4gPj4+Pj4+Pj4+IHVzZSB0aGUgZmlyc3QgNGsuCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+ Pj4+IFRoaXMgZml4ZXMgdGhlIGk5MTUgZHJpdmVyIG5vIGxvbmdlciBiZWluZyBhYmxlIHRvIGlu aGVyaXQgdGhlIGZpcm13YXJlCj4gPj4+Pj4+Pj4+IGZyYW1lYnVmZmVyIG9uIGdlbjgrLCB3aGlj aCBmaXhlcyB0aGUgdmlkZW8gb3V0cHV0IGNoYW5naW5nIGZyb20gdGhlCj4gPj4+Pj4+Pj4+IHZl bmRvciBsb2dvIHRvIGEgYmxhY2sgc2NyZWVuIGFzIHNvb24gYXMgdGhlIGk5MTUgZHJpdmVyIGlz IGxvYWRlZAo+ID4+Pj4+Pj4+PiAob24gc3lzdGVtcyB3aXRob3V0IGZiY29uKS4KPiA+Pj4+Pj4+ Pgo+ID4+Pj4+Pj4+IFdlJ3ZlIGJlZW4gdG9sZCBieSB0aGUgSFcgZ3V5cyBub3QgdG8gdXNlIHRo ZSBmaXJzdCBwYWdlLiAoVGhhdCdzIG15Cj4gPj4+Pj4+Pj4gdW5kZXJzdGFuZGluZyBmcm9tIGV2 ZXJ5IHRpbWUgdGhpcyBnZXRzIHF1ZXN0aW9uZWQuKQo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+IFlldCB0 aGUgR09QIGlzIGhhcHBpbHkgdXNpbmcgdGhlIGZpcnN0IHBhZ2UuIEkgdGhpbmsgd2UgbWF5IG5l ZWQgdG8gbWFrZQo+ID4+Pj4+Pj4gYSBkaWZmZXJlbmNlIGhlcmUgYmV0d2VlbiB0aGUgR1BVIG5v dCB1c2luZyB0aGUgZmlyc3QgcGFnZSBhbmQgdGhlCj4gPj4+Pj4+PiBkaXNwbGF5IGVuZ2luZS9w aXBlbGluZSBub3QgdXNpbmcgdGhlIGZpcnN0IHBhZ2UuIE5vdGUgdGhhdCBteSBwYXRjaAo+ID4+ Pj4+Pj4gb25seSBpbmZsdWVuY2VzIHRoZSBpbmhlcml0aW5nIG9mIHRoZSBpbml0aWFsIGZyYW1l YnVmZmVyIGFzIGFsbG9jYXRlZAo+ID4+Pj4+Pj4gYnkgdGhlIEdPUC4gSXQgZG9lcyBub3QgaW5m bHVlbmNlIGFueSBvdGhlciBhbGxvY2F0aW9ucyBmcm9tIHRoZQo+ID4+Pj4+Pj4gcmVzZXJ2ZWQg cmFuZ2UsIHRob3NlIHdpbGwgc3RpbGwgYWxsIGF2b2lkIHRoZSBmaXJzdCBwYWdlLgo+ID4+Pj4+ Pj4KPiA+Pj4+Pj4+IFdpdGhvdXQgdGhpcyBwYXRjaCBmYXN0Ym9vdCAvIGZsaWNrZXJmcmVlIHN1 cHBvcnQgaXMgZXNzZW50aWFsbHkgYnJva2VuCj4gPj4+Pj4+PiBvbiBhbnkgZ2VuOCsgaGFyZHdh cmUgZ2l2ZW4gdGhhdCBvbmUgb2YgdGhlIGdvYWxzIG9mIGF0b21pYyBpcyB0byBiZQo+ID4+Pj4+ Pj4gYWJsZSB0byBkbyBmbGlja2VyZnJlZSB0cmFuc2l0aW9ucyBJIHRoaW5rIHRoYXQgdGhpcyB3 YXJyYW50cyBhIGNsb3Nlcgo+ID4+Pj4+Pj4gbG9vayB0aGVuIGp1c3Qgc2ltcGx5IHNheWluZyBu ZXZlciB1c2UgdGhlIGZpcnN0IHBhZ2UuCj4gPj4+Pj4+Cj4gPj4+Pj4+IFRoZSBjb25jZXJuIGlz IHdoYXQgZWxzZSAoaS5lLiBub3RoaW5nIHRoYXQgd2UgYWxsb2NhdGVkIG91cnNlbHZlcykgdGhh dAo+ID4+Pj4+PiBtYXkgYmUgaW4gdGhlIGZpcnN0IHBhZ2UuLi4KPiA+Pj4+Pgo+ID4+Pj4+IEdp dmVuIHRoYXQgdGhlIEdPUCBoYXMgcHV0IGl0cyBmcmFtZWJ1ZmZlciB0aGVyZSBhdCBsZWFzdCBh dCBib290IHRoZXJlCj4gPj4+Pj4gaXMgbm90aGluZyB0aGVyZSwgb3RoZXJ3aXNlIGl0IHdvdWxk IHNob3cgdXAgb24gdGhlIGRpc3BsYXkuCj4gPj4+Pj4KPiA+Pj4+PiBXZSBoYXZlIGEgd2hvbGUg YnVuY2ggb2YgY29kZSB0byBpbmhlcml0IHRoZSBCSU9TIGZiIGluIGludGVsX2Rpc3BsYXkuYwo+ ID4+Pj4+IGFuZCBBRkFJSyB0aGF0IGNvZGUgaXMgdGhlcmUgYmVjYXVzZSB0aGlzIGluaGVyaXRp bmcgdGhlIEJJT1MgZmIgaXMKPiA+Pj4+PiBkZWVtZWQgYW4gaW1wb3J0YW50IGZlYXR1cmUuIFNv IEknbSBub3QgaGFwcHkgYXQgYWxsIHdpdGggdGhlIGhhbmR3YXZ5Cj4gPj4+Pj4gYmVzdCB0byBu b3QgdG91Y2ggaXQgYW5zd2VyIEknbSBnZXR0aW5nIHRvIHRoaXMgcGF0Y2guCj4gPj4+Pj4KPiA+ Pj4+PiBVbmxlc3MgdGhlcmUgYXJlIHNvbWUgY2xlYXIgYW5zd2VyIGZyb20gdGhlIGhhcmR3YXJl IGZvbGtzIHdoaWNoIHNwZWNpZmljYWxseQo+ID4+Pj4+IHNheSB3ZSBjYW5ub3QgcHV0IGEgZnJh bWVidWZmZXIgdGhlcmUgKGFuZCB0aGVuIHdoeSBpcyB0aGUgR09QIGRvaW5nIGl0PykKPiA+Pj4+ PiB0aGVuIEkgYmVsaWV2ZSB0aGF0IHRoZSBiZXN0IHdheSBmb3J3YXJkIGhlcmUgaXMgdG8gZ2V0 IHZhcmlvdXMgcGVvcGxlIHRvCj4gPj4+Pj4gdGVzdCB3aXRoIHRoaXMgcGF0Y2ggYW5kIHRoZSBi ZXN0IHdheSB0byBkbyB0aGF0IGlzIHByb2JhYmx5IHRvIHB1dCBpdAo+ID4+Pj4+IGluIG5leHQu IE5vdGUgSSBkZWxpYmVyYXRlbHkgZGlkIG5vdCBhZGQgYSBDYyBzdGFibGUuCj4gPj4+Pgo+ID4+ Pj4gVG8gZWxhYm9yYXRlIG9uIHRoaXMsIHRoZSBleGNsdWRpbmcgb2YgdGhlIGZpcnN0IDRrIG9m IHRoZSBzdG9sZW4gbWVtb3J5Cj4gPj4+PiByZWdpb24gY2F1c2VzIGludGVsX2FsbG9jX2luaXRp YWxfcGxhbmVfb2JqKCkgZnJvbSBpbnRlbF9kaXNwbGF5LmMgdG8gZmFpbCwKPiA+Pj4+IHdoaWNo IGluIHR1cm4gY2F1c2VzIGludGVsX2ZpbmRfaW5pdGlhbF9wbGFuZV9vYmooKSB0byBjYWxsCj4g Pj4+PiBpbnRlbF9wbGFuZV9kaXNhYmxlX25vYXRvbWljKGludGVsX2NydGMsIGludGVsX3BsYW5l KTsgd2hpY2ggdGVtcG9yYXJpbHkKPiA+Pj4+IGNvbXBsZXRlbHkgdHVybnMgb2ZmIHRoZSBkaXNw bGF5IHdoaWNoIGxlYWRzIHRvIGEgdmVyeSB1Z2x5IGZsaWNrZXJpbmcKPiA+Pj4+IG9mIHRoZSBk aXNwbGF5IGF0IGJvb3QgKGFzIHdlbGwgYXMgcmVwbGFjaW5nIHRoZSB2ZW5kb3IgbG9nbyB3aXRo IGEKPiA+Pj4+IGJsYWNrIHNjcmVlbikuCj4gPj4+Pgo+ID4+Pj4gSSB0aGluayB3ZSBjYW4gYWxs IGFncmVlIHRoYXQgdGhpcyBiZWhhdmlvciBpcyB1bmRlc2lyYWJsZSBhbmQgZXZlbiBhCj4gPj4+ PiByZWdyZXNzaW9uIGluIGJlaGF2aW9yIGNhdXNlZCBieSB0aGUgZml4IHRvIGV4Y2x1ZGUgdGhl IGZpcnN0IDRrLgo+ID4+Pj4KPiA+Pj4+IENocmlzLCBpZiBteSBwYXRjaCBpcyBub3QgYW4gYWNj ZXB0YWJsZSB3YXkgdG8gZml4IHRoaXMsIHRoZW4gaG93IGRvIHlvdQo+ID4+Pj4gc3VnZ2VzdCB0 aGF0IHdlIGZpeCB0aGlzPwo+ID4+Pj4KPiA+Pj4+IERpZ2dpbmcgYSBiaXQgZGVlcGVyIEkgZm91 bmQgdGhpczoKPiA+Pj4+Cj4gPj4+PiBodHRwczovLzAxLm9yZy9zaXRlcy9kZWZhdWx0L2ZpbGVz L2RvY3VtZW50YXRpb24vaW50ZWwtZ2Z4LXBybS1vc3JjLWtibC12b2wxNi13b3JrYXJvdW5kcy5w ZGYKPiA+Pj4+Cj4gPj4+PiBXaGljaCBzYXlzOgo+ID4+Pj4KPiA+Pj4+ICJXYVNraXBTdG9sZW5N ZW1vcnlGaXJzdFBhZ2U6Cj4gPj4+Pgo+ID4+Pj4gV0EgdG8gc2tpcCB0aGUgZmlyc3QgcGFnZSBv ZiBzdG9sZW4KPiA+Pj4+IG1lbW9yeSBkdWUgdG8gc3BvcmFkaWMgSFcgd3JpdGUgb24gKkNTIElk bGUiCj4gPj4+Pgo+ID4+Pj4gQW5kIGFsc28gYWJvdXQgRkJDOgo+ID4+Pj4KPiA+Pj4+ICJGaXJz dCBsaW5lIG9mIEZCQyBnZXR0aW5nIGNvcnJ1cHRlZCB3aGVuIEZCQwo+ID4+Pj4gY29tcHJlc3Nl ZCBmcmFtZSBidWZmZXIgb2Zmc2V0IGlzIHByb2dyYW1tZWQgdG8KPiA+Pj4+IHplcm8uIENvbW1h bmQgc3RyZWFtZXJzIGFyZSBkb2luZyBmbHVzaCB3cml0ZXMgdG8KPiA+Pj4+IGJhc2Ugb2Ygc3Rv bGVuLgo+ID4+Pj4gV0E6IE5ldyByZXN0cmljdGlvbiB0byBwcm9ncmFtIEZCQyBjb21wcmVzc2Vk Cj4gPj4+PiBmcmFtZSBidWZmZXIgb2Zmc2V0IHRvIGF0IGxlYXN0IDRLQi4iCj4gPj4+Pgo+ID4+ Pj4gU28gdXNpbmcgdGhlIGZpcnN0IDRrQiBmb3IgdGhlICpmcmFtZWJ1ZmZlciogYXMgZG9uZSBi eSB0aGUgR09QIHdpbGwKPiA+Pj4+IG5vdCBjYXVzZSBhbnkgbWFqb3IgcHJvYmxlbXMgKGZyZWV6 ZXMsIGhhbmdzLCBldGMuKSwgYW5kIGNvbW1pdAo+ID4+Pj4gZDQzNTM3NjEwNDcwICgiZHJtL2k5 MTU6IHNraXAgdGhlIGZpcnN0IDRrIG9mIHN0b2xlbiBtZW1vcnkgb24KPiA+Pj4+IGV2ZXJ5dGhp bmcgPj0gZ2VuOCIpIHdhcyBjb3JyZWN0IGluIGRlZHVjaW5nIHRoYXQgdGhlIHByb2JsZW0gd2Fz Cj4gPj4+PiBsaWtlbHkgdGhhdCBzb21lICp2aXRhbCogaW5mb3JtYXRpb24gd2FzIGJlaW5nIHN0 b3JlZCBpIHRoZSBmaXJzdCA0awo+ID4+Pj4gYW5kIHRoYXQgZ28gb3ZlcndyaXR0ZW4uCj4gPj4+ Pgo+ID4+Pj4gQnV0IHRoZSBjb250ZW50cyBvZiB0aGUgKGZpcnN0IGxpbmVzIG9mKSB0aGUgZnJh bWVidWZmZXIgbWF5IGJlY29tZQo+ID4+Pj4gY29ycnVwdGVkIG9uY2Ugd2UgYWN0dWFsbHkgc3Rh cnQgdXNpbmcgdGhlIGNvbW1hbmQtc3RyZWFtZXJzLCB3aGljaAo+ID4+Pj4gaXMgc3RpbGwgdmVy eSBtdWNoIG5vdCB3YW50ZWQuCj4gPj4+Pgo+ID4+Pj4gSW4gcHJhY3RpY2UgWG9yZyBvciBXYXls YW5kIHdpbGwgbGlrZWx5IGhhdmUgc2V0dXAgYW5vdGhlciBmcmFtZWJ1ZmZlcgo+ID4+Pj4gYnkg dGhlIHRpbWUgdGhlIGNvbW1hbmQtc3RyZWFtZXJzIHdpbGwgc3RhcnQgdG8gZ2V0IHVzZWQuCj4g Pj4+Pgo+ID4+Pj4gQWx0ZXJuYXRpdmVseSB3ZSBjb3VsZCBzdGFydCB3aXRoIGluaGVyaXRpbmcg dGhlIEJJT1MgZnJhbWVidWZmZXIKPiA+Pj4+IChhcyBteSBwYXRjaCBhbGxvd3MpIHNvIHRoYXQg d2UgZG9uJ3QgZ2V0IHRoZSBmbGlja2VyIGFuZCB0aGVuIHNvb24KPiA+Pj4+IGFmdGVyd2FyZHMg YXRvbWljYWxseSB0cmFuc2l0IHRvIGEgbmV3IGZyYW1lYnVmZmVyICh3aGljaCBzaG91bGQKPiA+ Pj4+IGNvbnRhaW4gYSBjb3B5IG9mIHRoZSBCSU9TIGZiIGNvbnRlbnRzKSBhdCBhIGRpZmZlcmVu dCBsb2NhdGlvbi4KPiA+Pj4KPiA+Pj4gV2hhdCBJIHN1Z2dlc3RlZCBsb25nIGFnbyB3YXMgdG8g Y29weSBqdXN0IHRoZSBmaXJzdCBwYWdlIGFuZCBhZGp1c3QgdGhlCj4gPj4+IHNnIGxpc3QuIEJ1 dCBJJ20gbm90IHN1cmUgaWYgb3VyIHN0b2xlbiBnZW0gY29kZSB3b3VsZCBiZSBoYXBweSB3aXRo IGFuCj4gPj4+IHNnIGxpc3Qgd2l0aCB0d28gZW50cmllcyBpbnN0ZWFkIG9mIG9uZS4KPiA+Pgo+ ID4+IEJ1dCB0aGF0IHdvdWxkIHN0aWxsIHJlcXVpcmUgYW4gYXRvbWljLW1vZGVzZXQgdG8gaW5z dGFsbCB0aGUgbmV3IHNnLWxpc3QsCj4gPj4gcmlnaHQ/Cj4gPiAKPiA+IFBlcmhhcHMgbm90LiBO b3Qgc3VyZSBpZiB0aGUgcHRlIHVwZGF0ZSB3b3VsZCBiZSBhdG9taWMgZW5vdWdoIHRvIGp1c3QK PiA+IGNoYW5nZSBpdCB1bmRlcm5lYXRoIHRoZSBkaXNwbGF5IGVuZ2luZSB3aXRob3V0IGlsbCBl ZmZlY3RzLCBhbmQgdGhlbgo+ID4gZG8gdGhlIGVxdWl2YWxlbnQgb2YgYSBwYWdlIGZsaXAgdG8g aW52YWxpZGF0ZSB0aGUgVExCcy4KPiA+IAo+ID4+IFRoZW4gd2UgbWlnaHQganVzdCBhcyB3ZWxs IHNpbXBseSBhbGxvYyBhIG5ldyBmYiBhbmQgY29weSB0aGUKPiA+PiBjb250ZW50cyBvdmVyLCBv ciBhcmUgeW91IHdvcnJpZWQgdGhhdCB3aXRoIHNheSBhIDRrIGZiIHRoYXQgdGFrZXMgdG9vCj4g Pj4gbXVjaCB0aW1lPyBGV0lXIEkgY2FuIHNlZSBob3cgdGhlIHNpbmdsZSBtZW1jcHkgdGhpcyBp bnZvbHZlcyB3aWxsIHRha2UKPiA+PiBzb21lIHRpbWUsIGJ1dCBJIGRvbid0IHRha2UgaXQgd2ls bCB0YWtlIHNvIGxvbmcgYXMgdG8gYmUgYSBwcm9ibGVtLgo+ID4gCj4gPiBNYWlubHkganVzdCBh IHF1ZXN0aW9uIG9mIGtlZXBpbmcgaXQgaW4gc3RvbGVuLgo+IAo+IEFoIEkgc2VlLgo+IAo+ID4g QXNzdW1pbmcgd2Ugd2FudCB0byBrZWVwCj4gPiB0aGluZ3MgaW4gc3RvbGVuLCB3aGljaCBpcyBh IG1hdHRlciBvZiBzb21lIGRlYmF0ZSBhcyBGQkMgbmVlZHMgc3RvbGVuCj4gPiBhbmQgcGVvcGxl IG1pZ2h0IG5vdCBiZSBoYXBweSBpZiBpdCdzIGFsbCB0YWtlbiB1cCBieSBmYmRldi4KPiA+IAo+ ID4+Cj4gPj4gQW55d2F5cyBJIGNvdWxkIHVzZSBzb21lIGhlbHAgd2l0aCBpbXBsZW1lbnRpbmcg ZWl0aGVyIHNvbHV0aW9uIGFzIEknbQo+ID4+IG5vdCBmYW1pbGlhciB3aXRoIHRoZSBpbnZvbHZl ZCBwYXJ0cyBvZiB0aGUgY29kZS4gSSB3aWxsIGhhcHBpbHkgdGVzdAo+ID4+IGEgcGF0Y2ggZm9y IHRoaXMuIEtlZXAgaW4gbWluZCB0aGF0IGZvciB0aGlzIHRvIHdvcmsgbXkgb3JpZ2luYWwgcGF0 Y2gKPiA+PiB3aWxsIGFsc28gYmUgbmVjZXNzYXJ5IHNvIHRoYXQgdGhlIGluaXRpYWwgdGFrZW92 ZXIgb2YgdGhlIGZpcm13YXJlCj4gPj4gZmIgd2lsbCB3b3JrLgo+ID4gCj4gPiBJIGd1ZXNzIHRo ZSB0cmlja2llc3QgcGFydCB3b3VsZCBiZSBnZXR0aW5nIGJvdGggdGhlIG9sZCBhbmQgbmV3Cj4g PiBsb2NhdGlvbiBvZiB0aGUgcGFnZSBtYXBwZWQgaW4gdGhlIGdndHQgYXQgdGhlIHNhbWUgdGlt ZS4gU2FkbHkgeW91J3JlCj4gPiBub3QgYWxsb3dlZCB0byBhY2Nlc3Mgc3RvbGVuIGRpcmVjdGx5 LiBTbyBJIHN1cHBvc2UgdGhpcyBwYXJ0IHdvdWxkCj4gPiBpbnZvbHZlIHNvbWUgZmFpcmx5IGxv dyBsZXZlbCBmcm9iYmluZyBvZiB0aGUgZ2d0dCBwdGVzIGFuZCBhCj4gPiBtYW51YWwgaW9yZW1h cCgpIG9mIHRoZSBtYXRjaGluZyByYW5nZXMgb2YgdGhlIGFwZXJ0dXJlLgo+IAo+IEhtbSwgeW91 J3JlIHRhbGtpbmcgYWJvdXQgd2hhdCBuZWVkcyB0byBiZSBkb25lIHRvIGNvcHkgdGhlIGNvbnRl bnRzIGhlcmUsCj4gcmlnaHQ/CgpZZWFoLgoKPiBJIGhhdmUgYSBmZWVsaW5nIHdlIHJlYWxseSBz aG91bGQganVzdCB0cnkgb25seSBteSBwYXRjaCBmaXJzdCwgYXMKPiBtZW50aW9uZWQgYmVmb3Jl IHRoZSB3b3JzdCB0aGluZyB3aGljaCBjYW4gaGFwcGVuIGlzIHNvbWUgY29ycnVwdGlvbgo+IG9m IHRoZSBmaXJzdCBsaW5lcyBvZiB0aGUgZGlzcGxheSwgd2hpY2ggSSBhZ3JlZSBpcyBub3QgZ29v ZCwgYnV0IGFsc28KPiBub3QgdGhlIGVuZCBvZiB0aGUgd29ybGQuCgpPbmUgY2FuIGhvcGUgOikK Ci0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2RyaS1kZXZlbAo=