From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Hellstrom Subject: Re: Asynchronous eviction [WAS Re: [PATCH] drm/ttm: add minimum residency constraint for bo eviction] Date: Fri, 30 Nov 2012 21:35:49 +0100 Message-ID: <50B918A5.9080802@shipmail.org> References: <50B7C6A4.2090306@shipmail.org> <50B87EED.5020400@shipmail.org> <50B8E7FF.8050006@shipmail.org> <50B8F048.3060707@shipmail.org> <20121130180738.GA2111@gmail.com> <50B8FB68.4060605@shipmail.org> <20121130192542.GB2111@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from GOTHNET-SMTP2.gothnet.se (ns2.gothnet.se [82.193.160.251]) by gabe.freedesktop.org (Postfix) with ESMTP id 4E533E61B5 for ; Fri, 30 Nov 2012 12:35:59 -0800 (PST) In-Reply-To: <20121130192542.GB2111@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: Jerome Glisse Cc: Jerome Glisse , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gMTEvMzAvMjAxMiAwODoyNSBQTSwgSmVyb21lIEdsaXNzZSB3cm90ZToKPiBPbiBGcmksIE5v diAzMCwgMjAxMiBhdCAwNzozMTowNFBNICswMTAwLCBUaG9tYXMgSGVsbHN0cm9tIHdyb3RlOgo+ PiBPbiAxMS8zMC8yMDEyIDA3OjA3IFBNLCBKZXJvbWUgR2xpc3NlIHdyb3RlOgo+Pj4gT24gRnJp LCBOb3YgMzAsIDIwMTIgYXQgMDY6NDM6MzZQTSArMDEwMCwgVGhvbWFzIEhlbGxzdHJvbSB3cm90 ZToKPj4+PiBPbiAxMS8zMC8yMDEyIDA2OjE4IFBNLCBKZXJvbWUgR2xpc3NlIHdyb3RlOgo+Pj4+ PiBPbiBGcmksIE5vdiAzMCwgMjAxMiBhdCAxMjowOCBQTSwgVGhvbWFzIEhlbGxzdHJvbSA8dGhv bWFzQHNoaXBtYWlsLm9yZz4gd3JvdGU6Cj4+Pj4+PiBPbiAxMS8zMC8yMDEyIDA1OjMwIFBNLCBK ZXJvbWUgR2xpc3NlIHdyb3RlOgo+Pj4+Pj4+IE9uIEZyaSwgTm92IDMwLCAyMDEyIGF0IDQ6Mzkg QU0sIFRob21hcyBIZWxsc3Ryb20gPHRob21hc0BzaGlwbWFpbC5vcmc+Cj4+Pj4+Pj4gd3JvdGU6 Cj4+Pj4+Pj4+IE9uIDExLzI5LzIwMTIgMTA6NTggUE0sIE1hcmVrIE9sxaHDoWsgd3JvdGU6Cj4+ Pj4+Pj4+PiBXaGF0IEkgdHJpZWQgdG8gcG9pbnQgb3V0IHdhcyB0aGF0IHRoZSBzeW5jaHJvbml6 YXRpb24gc2hvdWxkbid0IGJlCj4+Pj4+Pj4+PiBuZWVkZWQsIGJlY2F1c2UgdGhlIENQVSBzaG91 bGRuJ3QgZG8gYW55dGhpbmcgd2l0aCB0aGUgY29udGVudHMgb2YKPj4+Pj4+Pj4+IGV2aWN0ZWQg YnVmZmVycy4gVGhlIEdQVSBtb3ZlcyB0aGUgYnVmZmVycywgbm90IHRoZSBDUFUuIFdoYXQgZG9l cyB0aGUKPj4+Pj4+Pj4+IENQVSBkbyBiZXNpZGVzIHVwZGF0aW5nIHNvbWUga2VybmVsIHN0cnVj dHVyZXM/Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gQWxzbywgYnVmZmVyIGRlbGV0aW9uIGlzIHNvbWV0 aGluZyB3aGVyZSB5b3UgZG9uJ3QgbmVlZCB0byB3YWl0IGZvcgo+Pj4+Pj4+Pj4gdGhlIGJ1ZmZl ciB0byBiZWNvbWUgaWRsZSBpZiB5b3Uga25vdyB0aGUgbWVtb3J5IGFyZWEgd29uJ3QgYmUKPj4+ Pj4+Pj4+IG1hcHBlZCBieSB0aGUgQ1BVLCBldmVyLiBUaGUgbWVtb3J5IGNhbiBiZSByZWNsYWlt ZWQgcmlnaHQgYXdheS4gSXQKPj4+Pj4+Pj4+IHdvdWxkIGJlIHRoZSBHUFUgdG8gbW92ZSBuZXcg ZGF0YSBpbiBhbmQgb25jZSB0aGF0IGhhcHBlbnMsIHRoZSBvbGQKPj4+Pj4+Pj4+IGJ1ZmZlciB3 aWxsIGJlIHRyaXZpYWxseSBpZGxlLCBiZWNhdXNlIHNpbmdsZS1yaW5nIEdQVXMgZXhlY3V0ZQo+ Pj4+Pj4+Pj4gY29tbWFuZHMgaW4gb3JkZXIuCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gTWFyZWsKPj4+ Pj4+Pj4gQWN0dWFsbHkgYXN5bmNocm9ub3VzIGV2aWN0aW9uIC8gZGVsZXRpb24gaXMgc29tZXRo aW5nIEkgaGF2ZSBiZWVuCj4+Pj4+Pj4+IHByb3RvdHlwaW5nIGZvciBhIHdoaWxlIGJ1dCBuZXZl ciBnb3R0ZW4gYXJvdW5kIHRvIGltcGxlbWVudCBpbiBUVE06Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+IFRo ZXJlIGFyZSBhIGZldyBtaW5vciBjYXZlYXRzOgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBXaXRoIGJ1ZmZl ciBkZWxldGlvbiwgd2hhdCB5b3Ugc2F5IGlzIHRydWUgZm9yIGZpeGVkIG1lbW9yeSwgYnV0IG5v dCBmb3IKPj4+Pj4+Pj4gVFQKPj4+Pj4+Pj4gbWVtb3J5IHdoZXJlIHBhZ2VzIGFyZSByZWNsYWlt ZWQgYnkgdGhlIHN5c3RlbSBhZnRlciBidWZmZXIgZGVzdHJ1Y3Rpb24uCj4+Pj4+Pj4+IFRoYXQg bWVhbnMgdGhhdCB3ZSBkb24ndCBoYXZlIHRvIHdhaXQgZm9yIGlkbGUgdG8gZnJlZSBHUFUgc3Bh Y2UsIGJ1dCB3ZQo+Pj4+Pj4+PiBuZWVkIHRvIHdhaXQgYmVmb3JlIHBhZ2VzIGFyZSBoYW5kZWQg YmFjayB0byB0aGUgc3lzdGVtLgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBTd2Fwb3V0IG5lZWRzIHRvIGFj Y2VzcyB0aGUgY29udGVudHMgb2YgZXZpY3RlZCBidWZmZXJzLCBidXQKPj4+Pj4+Pj4gc3luY2hy b25pemluZwo+Pj4+Pj4+PiBkb2Vzbid0IG5lZWQgdG8gaGFwcGVuIHVudGlsIGp1c3QgYmVmb3Jl IHN3YXBvdXQuCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IE11bHRpLXJpbmcgLSBDUFUgc3VwcG9ydDogSWYg YW5vdGhlciByaW5nIC8gZW5naW5lIG9yIHRoZSBDUFUgaXMgYWJvdXQgdG8KPj4+Pj4+Pj4gbW92 ZSBpbiBidWZmZXIgY29udGVudHMgdG8gVlJBTSBvciBhIEdQVSBhcGVydHVyZSB0aGF0IHdhcyBw cmV2aW91c2x5Cj4+Pj4+Pj4+IGV2aWN0ZWQgYnkgYW5vdGhlciByaW5nLCBpdCBuZWVkcyB0byBz eW5jIHdpdGggdGhhdCBldmljdGlvbiwgYnV0IGRvZXNuJ3QKPj4+Pj4+Pj4ga25vdyB3aGF0IGJ1 ZmZlciBvciBldmVuIHdoaWNoIGJ1ZmZlcnMgb2NjdXBpZWQgdGhlIHNwYWNlIHByZXZpb3VzbHku Cj4+Pj4+Pj4+IFRyaXZpYWxseSBvbmUgY2FuIGF0dGFjaCBhIHN5bmMgb2JqZWN0IHRvIHRoZSBt ZW1vcnkgdHlwZSBtYW5hZ2VyIHRoYXQKPj4+Pj4+Pj4gcmVwcmVzZW50cyB0aGUgbGFzdCBldmlj dGlvbiBmcm9tIHRoYXQgbWVtb3J5IHR5cGUsIGFuZCAqYW55KiBlbmdpbmUgKENQVQo+Pj4+Pj4+ PiBvcgo+Pj4+Pj4+PiBHUFUpIHRoYXQgbW92ZXMgYnVmZmVyIGNvbnRlbnRzIGluIG5lZWRzIHRv IG9yZGVyIHRoYXQgbW92ZW1lbnQgd2l0aAo+Pj4+Pj4+PiByZXNwZWN0Cj4+Pj4+Pj4+IHRvIHRo YXQgZmVuY2UuIEFzIHlvdSBzYXksIHdpdGggYSBzaW5nbGUgcmluZyBhbmQgbm8gQ1BVIGZhbGxi YWNrcywgdGhhdAo+Pj4+Pj4+PiBvcmRlcmluZyBpcyBhIG5vLW9wLCBidXQgYW55IGNvbW1vbiAo bm9uLWRyaXZlciBiYXNlZCkgaW1wbGVtZW50YXRpb24KPj4+Pj4+Pj4gbmVlZHMKPj4+Pj4+Pj4g dG8gc3VwcG9ydCB0aGlzLgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBBIHNpbmdsZSBmZW5jZSBhdHRhY2hl ZCB0byB0aGUgbWVtb3J5IHR5cGUgbWFuYWdlciBpcyB0aGUgc2ltcGxlc3QKPj4+Pj4+Pj4gc29s dXRpb24sCj4+Pj4+Pj4+IGJ1dCBhIHNvbHV0aW9uIHdpdGggYSBmZW5jZSBmb3IgZWFjaCBmcmVl IHJlZ2lvbiBpbiB0aGUgZnJlZSBsaXN0IGlzIGFsc28KPj4+Pj4+Pj4gcG9zc2libGUuIFRoZW4g VFRNIG5lZWRzIGEgZHJpdmVyIGNhbGxiYWNrIHRvIGJlIGFibGUgb3JkZXIgZmVuY2VzIHcgciB0 Cj4+Pj4+Pj4+IGVjaG90aGVyLgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiAvVGhvbWFzCj4+Pj4+Pj4+Cj4+ Pj4+Pj4gUmFkZW9uIGFscmVhZHkgaGFuZGxlIG11bHRpLXJpbmcgYW5kIHR0bSBpbnRlcmFjdGlv biB3aXRoIHdoYXQgd2UgY2FsbAo+Pj4+Pj4+IHNlbWFwaG9yZS4gU2VtYXBob3JlIGFyZSBjcmVh dGVkIHRvIHN5bmNocm9uaXplIHdpdGggZmVuY2UgYWNjcm9zcwo+Pj4+Pj4+IGRpZmZlcmVudCBy aW5nLiBJIHRoaW5rIHRoZSBlYXNpZXN0IHNvbHV0aW9uIGlzIHRvIGp1c3QgcmVtb3ZlIHRoZSBi bwo+Pj4+Pj4+IHdhaXQgaW4gdHRtIGFuZCBsZXQgZHJpdmVyIGhhbmRsZSB0aGlzLgo+Pj4+Pj4g VGhlIHdhaXQgY2FuIGJlIHJlbW92ZWQsIGJ1dCBvbmx5IGNvbmRpdGlvbmVkIG9uIGEgZHJpdmVy IGZsYWcgdGhhdCBzYXlzIGl0Cj4+Pj4+PiBzdXBwb3J0cyB1bnN5bmNocm9ub3VzIGJ1ZmZlciBt b3Zlcy4KPj4+Pj4+Cj4+Pj4+PiBUaGUgbXVsdGktcmluZyBjYXNlIEknbSB0YWxraW5nIGFib3V0 IGlzOgo+Pj4+Pj4KPj4+Pj4+IFJpbmcgMSBldmljdHMgYnVmZmVyIEEsIGVtaXRzIGZlbmNlIDAK Pj4+Pj4+IFJpbmcgMiBldmljdHMgYnVmZmVyIEIsIGVtaXRzIGZlbmNlIDEKPj4+Pj4+IC4uT3Ro ZXIgZXZpY3Rpb24gdGFrZXMgcGxhY2UgYnkgdmFyaW91cyByaW5ncywgcGVyaGFwcyBpbmNsdWRp bmcgcmluZyAxIGFuZAo+Pj4+Pj4gcmluZyAyLgo+Pj4+Pj4gUmluZyAzIG1vdmVzIGJ1ZmZlciBD IGludG8gdGhlIHNwYWNlIHdoaWNoIGhhcHBlbnMgYm8gYmUgdGhlIHVuaW9uIG9mIHRoZQo+Pj4+ Pj4gc3BhY2UgcHJldm91c2x5IG9jY3VwaWVkIGJ1ZmZlciBBIGFuZCBidWZmZXIgQi4KPj4+Pj4+ Cj4+Pj4+PiBRdWVzdGlvbiBpczogd2hpY2ggZmVuY2UgZG8geW91IHdhbnQgdG8gb3JkZXIgdGhp cyBtb3ZlIHdpdGg/Cj4+Pj4+PiBUaGUgYW5zd2VyIGlzIHdoaWNoZXZlciBvZiBmZW5jZSAwIGFu ZCAxIHNpZ25hbHMgbGFzdC4KPj4+Pj4+Cj4+Pj4+PiBJIHRoaW5rIGl0J3MgYSByZWFzb25hYmxl IHRoaW5nIGZvciBUVE0gdG8ga2VlcCB0cmFjayBvZiB0aGlzLCBidXQgaW4gb3JkZXIKPj4+Pj4+ IHRvIGRvIHNvIGl0IG5lZWRzIGEgZHJpdmVyIGNhbGxiYWNrIHRoYXQKPj4+Pj4+IGNhbiBvcmRl ciB0d28gZmVuY2VzLCBhbmQgY2FuIG9yZGVyIGEgam9iIGluIHRoZSBjdXJyZW50IHJpbmcgdyBy IHQgYSBmZW5jZS4KPj4+Pj4+IEluIHJhZGVvbidzIGNhc2UgdGhhdCBkcml2ZXIgY2FsbGJhY2sK Pj4+Pj4+IHdvdWxkIHByb2JhYmx5IGluc2VydCBhIGJhcnJpZXIgLyBzZW1hcGhvcmUuIEluIHRo ZSBjYXNlIG9mIHNpbXBsZXIgaGFyZHdhcmUKPj4+Pj4+IGl0IHdvdWxkIHdhaXQgb24gb25lIG9m IHRoZSBmZW5jZXMuCj4+Pj4+Pgo+Pj4+Pj4gL1Rob21hcwo+Pj4+Pj4KPj4+Pj4gSSBkb24ndCB0 aGluayB3ZSBjYW4gb3JkZXIgZmVuY2UgZWFzaWx5IHdpdGggYSBjbGVhbiBhcGksIGkgd291bGQK Pj4+Pj4gcmF0aGVyIHNlZSB0dG0gcHJvdmlkZSBhIGxpc3Qgb2YgZmVuY2UgdG8gZHJpdmVyIGFu ZCB0ZWxsIHRvIHRoZQo+Pj4+PiBkcml2ZXIgYmVmb3JlIG1vdmluZyB0aGlzIG9iamVjdCBhbGwg dGhlIGZlbmNlIG9uIHRoaXMgbGlzdCBuZWVkIHRvIGJlCj4+Pj4+IGNvbXBsZXRlZC4gSSB0aGlu ayBpdCdzIGFzIGVhc3kgYXMgYXNzb2NpYXRpbmcgZmVuY2Ugd2l0aCBkcm1fbW0gKHdlbGwKPj4+ Pj4gbm91dmVhdSBhcyBpdHMgb3duIG1tIHN0dWZmKSBidXQgaWRlYSB3b3VsZCBiYXNpY2x5IGJl IHRoYXQgZmVuY2UgYXJlCj4+Pj4+IGJvdGggYXNzb2NpYXRlZCB3aXRoIGJvIGFuZCB3aXRoIG1t IG9iamVjdCBzbyB5b3Uga25vdyB3aGVuIGEgc2VnbWVudAo+Pj4+PiBvZiBtZW1vcnkgaXMgaWRs ZS9hdmFpbGFibGUgZm9yIHVzZS4KPj4+Pj4KPj4+Pj4gQ2hlZXJzLAo+Pj4+PiBKZXJvbWUKPj4+ PiBIbW0uIEFncmVlZCB0aGF0IHdvdWxkIHNhdmUgYSBsb3Qgb2YgYmFycmllcnMuCj4+Pj4KPj4+ PiBFdmVuIGlmIFRUTSB0cmFja3MgZmVuY2VzIGJ5IGZyZWUgbW0gcmVnaW9ucyBvciBhIHNpbmds ZSBmZW5jZSBmb3IKPj4+PiB0aGUgd2hvbGUgbWVtb3J5IHR5cGUsIGl0J3MgYSBzaW1wbGUgZmFj dCB0aGF0IGZlbmNlcyBmcm9tIHRoZSBzYW1lCj4+Pj4gcmluZyBhcmUgdHJpdmlhbGx5IG9yZGVy ZWQsIHdoaWNoIG1lYW5zIHN1Y2ggYSBsaXN0IHNob3VsZCBjb250YWluIGF0Cj4+Pj4gbW9zdCBh cyBtYW55IGZlbmNlcyBhcyB0aGVyZSBhcmUgcmluZ3MuCj4+PiBZZXMsIG9uZSBmdW5jdGlvbiBj YWxsYmFjayBpcyBuZWVkZWQgdG8ga25vdyB3aGljaCBmZW5jZSBpcyBuZWNlc3NhcnksCj4+PiBh bHNvIHR0bSBuZWVkcyB0byBrbm93IHRoZSBudW1iZXIgb2YgcmluZ3MgKG5vdGUgdGhhdCBpIHRo aW5rIG5ld2VyCj4+PiBodyB3aWxsIGhhdmUgc29tZXRoaW5ncyBsaWtlIDEwMjQgcmluZ3Mgb3Ig ZXZlbiBtb3JlLCBldmVuIHRvZGF5IGh3Cj4+PiBtaWdodCBoYXZlIGFzIG1hbnkgYXMgaSB0aGlu ayBudmlkaWEgY2hhbm5lbCBpcyBwcmV0dHkgbXVjaCB3aGF0IGkKPj4+IGRlZmluZSB0byBiZSBh IHJpbmcpLgo+Pj4KPj4+IEJ1dCBpIHRoaW5rIG1vc3QgY2FzZSB3aWxsIGJlIGZldyBmZW5jZSBh Y2Nyb3NzIGZldyByaW5ncy4gTGlrZSAxCj4+PiByaW5nIGlzIHRoZSBkbWEgcmluZyBhbmQgdGhl biB5b3UgaGF2ZSBhIHJpbmcgZm9yIG9uZSBvZiB0aGUgR0wKPj4+IGNvbnRleHQgdGhhdCB1c2lu ZyB0aGUgbWVtb3J5IGFuZCBhbm90aGVyIHJpbmcgZm9yIHRoZSBuZXcgY29udGV4dAo+Pj4gdGhh dCB3YW50IHRvIHVzZSB0aGUgbWVtb3J5Lgo+Pj4KPj4+PiBTbywgd2hhdGV2ZXIgYXBwcm9hY2gg aXMgY2hvc2VuLCBUVE0gbmVlZHMgdG8gYmUgYWJsZSB0byBkZXRlcm1pbmUKPj4+PiB0aGF0IHRy aXZpYWwgb3JkZXJpbmcsIGFuZCBJIHRoaW5rIHRoZSB1cGNvbWluZyBjcm9zcy1kZXZpY2UgZmVu Y2luZwo+Pj4+IHdvcmsgd2lsbCBmYWNlIHRoZSBleGFjdCBzYW1lIHByb2JsZW0uCj4+Pj4KPj4+ PiBNeSBwcm9wb3NlZCBvcmRlcmluZyBBUEkgd291bGQgbG9vayBzb21ldGhpbmcgbGlrZQo+Pj4+ Cj4+Pj4gc3RydWN0IGZlbmNlICpvcmRlcl9mZW5jZXMoc3RydWN0IGZlbmNlICpmZW5jZV9hLCBz dHJ1Y3QgZmVuY2UKPj4+PiAqZmVuY2VfYiwgYm9vbCB0cml2aWFsX29yZGVyLCBib29sIGludGVy cnVwdGlibGUsIGJvb2wgbm9fd2FpdF9ncHUpCj4+Pj4KPj4+PiBSZXR1cm5zIHdoaWNoIG9mIHRo ZSBmZW5jZXMgQGZlbmNlX2EgYW5kIEBmZW5jZV9iIHRoYXQgd2hlbgo+Pj4+IHNpZ25hbGVkLCBn dWFyYW50ZWVzIHRoYXQgYWxzbyB0aGUgb3RoZXIKPj4+PiBmZW5jZSBoYXMgc2lnbmFsZWQuIElm IEBxdWlja19vcmRlciBpcyB0cnVlLCBhbmQgdGhlIGRyaXZlciBjYW5ub3QKPj4+PiB0cml2aWFs bHkgb3JkZXIgdGhlIGZlbmNlcywgaXQgbWF5IHJldHVybiBFUlJfUFRSKC1FQUdBSU4pLAo+Pj4+ IGlmIEBpbnRlcnJ1cHRpYmxlIGlzIHRydWUsIGFueSB3YWl0IHNob3VsZCBiZSBwZXJmb3JtZWQK Pj4+PiBpbnRlcnJ1cHRpYmx5IGFuZCBpZiBub193YWl0X2dwdSBpcyB0cnVlLCB0aGUgZnVuY3Rp b24gaXMgbm90Cj4+Pj4gYWxsb3dlZCB0byB3YWl0IG9uIGdwdSBidXQgc2hvdWxkIGlzc3VlIEVS Ul9QVFIoLUVCVVNZKSBpZiBpdCBuZWVkcwo+Pj4+IHRvIGRvIHNvIHRvIG9yZGVyIGZlbmNlcy4K Pj4+Pgo+Pj4+IChIYXJkd2FyZSB3aXRob3V0IHNlbWFwaG9yZXMgY2FuJ3Qgb3JkZXIgZmVuY2Vz IHdpdGhvdXQgd2FpdGluZyBvbiB0aGVtKS4KPj4+Pgo+Pj4+IFRoZSBsaXN0IGFwcHJvYWNoIHlv dSBzdWdnZXN0IHdvdWxkIHVzZSBAdHJpdmlhbF9vcmRlciA9IHRydWUsCj4+Pj4gU2luZ2xlIGZl bmNlIGFwcHJvYWNoIHdvdWxkIHVzZSBAdHJpdmlhbF9vcmRlciA9IGZhbHNlLgo+Pj4+Cj4+Pj4g QW5kIGEgZmlyc3Qgc2ltcGxlIGltcGxlbWVudGF0aW9uIGluIFRUTSB3b3VsZCBwZXJoYXBzIHVz ZSB5b3VyIGxpc3QKPj4+PiBhcHByb2FjaCB3aXRoIGEgc2luZ2xlIGxpc3QgZm9yIHRoZSB3aG9s ZSBtZW1vcnkgdHlwZS4KPj4+Pgo+Pj4+IC9UaG9tYXMKPj4+IEkgd291bGQgcmF0aGVyIGFkZCBh IGNhbGxiYWNrIGxpa2UgOgo+Pj4KPj4+IHR0bV9yZWR1Y2VfZmVuY2VzKHVuc2lnbmVkICpuZmVu Y2VzLCBmZW5jZSAqKmZlbmNlYXJyYXkpCj4+IEkgZG9uJ3QgYWdyZWUgaGVyZS4gSSB0aGluayB0 aGUgZmVuY2Ugb3JkZXIgZnVuY3Rpb24gaXMgbW9yZQo+PiB2ZXJzYXRpbGUgYW5kIGEgZ29vZCBh YnN0cmFjdGlvbiB0aGF0IGNhbiBiZQo+PiBhcHBsaWVkIGluIGEgbnVtYmVyIG9mIGNhc2VzIHRv IHRoaXMgcHJvYmxlbS4gQW55d2F5IHdlIHNob3VsZCBzeW5jCj4+IHRoaXMgd2l0aCBNYWFydGVu IGFuZCBoaXMKPj4gZmVuY2Ugd29yay4gVGhlIHNhbWUgcHJvYmxlbSBhcHBsaWVzIHRvIGF0dGFj aGluZyBzaGFyZWQgZmVuY2VzIHRvIGEgYm8uCj4gUmFkZW9uIGFscmVhZHkgaGFuZGxlIHRoZSBi byBjYXNlIG9uIG11bHRpLXJpbmcgYW5kIGkgdGhpbmsgaXQgc2hvdWxkCj4gYmUgbGVmdCB0byB0 aGUgZHJpdmVyIHRvIGRvIHdoYXQgaXRzIG5lY2Vzc2FyeSB0aGVyZS4KPgo+IEkgZG9uJ3QgdGhp bmsgaGVyZSBtb3JlIHZlcnNhdGlsaXR5IGlzIGJhZCwgaW4gZmFjdCBpIGFtIHByZXR0eSBzdXJl Cj4gdGhhdCBubyBodyBjYW4gZ2l2ZSBmZW5jZSBvcmRlcmluZyBhbmQgaSBhbHNvIHRoaW5rIHRo YXQgaWYgZHJpdmVyIGhhdmUKPiB0byB0cmFjayBtdWx0aS1yaW5nIGZlbmNlIG9yZGVyaW5nIGl0 IHdpbGwganVzdCB3YXN0ZSByZXNvdXJjZSBmb3Igbm8KPiBnb29kIHJlYXNvbnMuIEZvciB0cmFj a2luZyB0aGF0IGluIHJhZGVvbiBpIHdpbGwgbmVlZCB0byBrZWVwIGEgbGlzdAo+IG9mIHNlbWFw aG9yZSBhbmQga25vd3Mgd2hpY2ggc2VtYXBob3JlcyBpbnN1cmUgc3luY2hyb25pemF0aW9uIGJ0 dwo+IHdoaWNoIHJpbmcgYW5kIGZvciBlYWNoIHdoaWNoIGZlbmNlIGFyZSBjb25jZXJuZWQganVz dCB0aGlua2luZyB0byBpdAo+IGl0IHdvdWxkIGJlIGEgbWVzc3kgZ3JhcGggd2l0aCB0b25zIG9m IG5vZGVzLgo+Cj4gT2YgY291cnNlIGhlcmUgaSBhbSB0aGlua2luZyBpbiB0ZXJtIG9mIG5ld2Vy IEdQVSB3aXRoIHRvbnMgb2YgcmluZ3MsCj4gR1BVIHdpdGggb25lIHJpbmcsIHdoaWNoIGFyZSBh IHZhbmlzaGluZyBjYXRlZ29yeSBhcyBuZXdlciBvcGVuY2wKPiByZXF1aXJlIG1vcmUgcmluZywg YXJlIGVhc3kgdG8gaGFuZGxlIGJ1dCBpIHJlYWxseSBkb24ndCB0aGluayB3ZQo+IHNob3VsZCBk ZXNpZ24gZm9yIHRob3NlLgpUaGUgYmlnZ2VzdCBwcm9ibGVtIEkgc2VlIHdpdGggdHRtX3JlZHVj ZV9mZW5jZXMoKSBpcyB0aGF0IGl0IHNlZW1zIHRvIApoYXZlIGhpZ2ggY29tcGxleGl0eSwgc2lu Y2UgaXQKZG9lc24ndCBrbm93IHdoaWNoIGZlbmNlIGlzIHRoZSBuZXcgb25lLiBBbmQgaWYgaXQg ZGlkLCBpdCB3b3VsZCBvbmx5IGJlIAphIG11bHRpLWZlbmNlIHZlcnNpb24gb2YKb3JkZXJfZmVu Y2VzKHRyaXZpYWw9dHJ1ZSkuCgo+IEkgdGhpbmsgaGVyZSB3ZSB3aWxsIGhhdmUgdG8gYWdyZWUg dG8gZGlzYWdyZWUgYnV0IGkgc2VlIGEgZmVuY2UgYXJyYXkKPiBhcyBhIHBlcmZlY3Qgc29sdXRp b24gdGhhdCBpcyBmbGV4aWJsZSBlbm91Z2ggYW5kIHVzZSB0aGUgbGVzcyByZXNvdXJjZQo+IGJv dGggaW4gdGVybSBvZiBjcHUgdXNhZ2UgYW5kIG1lbW9yeSAoYXNzdW1pbmcgcHJvcGVyIGltcGxl bWVudGF0aW9uKS4KSSB0aG91Z2h0IGl0IHdvdWxkIGFsd2F5cyByZXF1aXJlIG5yaW5ncyo4IGJ5 dGVzIG9uIGVhY2ggbWVtb3J5IGJsb2NrPwoKPgo+IEkgdGhpbmsgaGVyZSB0aGVyZSBzaG91bGQg YmUgYSBncmFudWxhcml0eSBzb21ldGhpbmcgbGlrZSBkb24ndCBtZXJnZSBibG9jawo+IG92ZXIg MTZNIG9yIGRvbid0IG1lcmdlIGJsb2NrIGlmIHRoZXkgaGF2ZSBtb3JlIHRoYW4gTiBmZW5jZXMg aWYgbWVyZ2VkCj4gdG9nZXRoZXIuIE9mIGNvdXJzZSBpdCBtZWFucyBhIHNwZWNpYWwgYWxsb2Nh dG9yIGJ1dCBhcyBteSB3b3JrIG9uIHJhZGVvbgo+IG1lbW9yeSBwbGFjZW1lbnQgc2hvd3MgaSB0 aGluayB0aGF0IHRoZSB3aG9sZSB2cmFtIGJ1c2luZXNzICh3aGljaCBpcyByZWFsbHkKPiB3aGVy ZSB0aGUgbXVsdGktZmVuY2Ugd2lsbCBiZSB1c2VkIHRoZSBtb3N0KSBuZWVkcyBhIHdvcmtlciB0 aHJlYWQgdGhhdAo+IHNjaGVkdWxlIHdvcmtzIGV2ZXJ5IG5vdyBhbmQgdGhlbiwgdGhpcyB3b3Jr ZXIgdGhyZWFkIGNvdWxkIGFsc28gbWVyZ2UgbW0KPiB3aGVuIGZlbmNlIGNvbXBsZXRlIC4uLgo+ Cj4gQnV0IGkgcmVhbGx5IGRvbid0IHRoaW5rIHRoZXJlIHNob3VsZCBiZSBhIGxpc3QgZm9yIHRo ZSB3aG9sZSBtYW5hZ2VyLCB0aGluawo+IGFib3V0IHRoZSBjYXNlIG9mIGEgdmVyeSBsb25nIGNs IHJ1bm5pbmcgam9iIHRoYXQgaXMgc3RpbGwgcnVubmluZyBidXQgYWxyZWFkeQo+IGhhdmUgaXQn cyBldmljdGlvbiBzY2hlZHVsZWQgYW5kIGl0IG1tIHZyYW0gbm9kZSBtYXJrZWQgYXMgZnJlZSB3 aXRoIGEgZmVuY2UuCj4gSWYgd2UgaGF2ZSBhIGxpc3QgcGVyIG1hbmFnZXIgdGhhbiB2cmFtIGJl Y29tZXMgdW5hdmFpbGFibGUgZm9yIGFzIGxvbmcgYXMKPiB0aGlzIGNsIGpvYiBydW5zLiBJIGFt IHRoaW5raW5nIGhlcmUgdG8gbmV3ZXIgY3B1IHRoYXQgY2FuIHBhcnRpdGlvbiB0aGVyZQo+IGNv bXB1dGUgdW5pdCAoQ0wgMS4yIHNwZWMgbWFuZGF0ZSB0aGF0IGlpcmMpIGZvciBpbnN0YW5jZSBi dHcgY2wgYW5kIGdsIHNvIHRoZQo+IGdwdSBzdGlsbCBjYW4gcnVuIG90aGVyIGpvYiB3aGlsZSB0 aGlzIGNsIHRoaW5ncyBpcyBnb2luZyBvbi4KClllYWgsIEknbSBub3Qgc2F5aW5nIHRoaXMgaXMg YW4gZWZmaWNpZW50IHNvbHV0aW9uLiBJJ20gc2F5aW5nIGl0J3MgdGhlIApzaW1wbGVzdCBzb2x1 dGlvbi4gV2UgY2FuIG1ha2UKYSBkYXRhIHN0cnVjdHVyZSBhcmJpdHJhcmlseSBiaWcgb3V0IG9m IHRoaXMsIG9yIHBlcmhhcHMgcHJvdmlkZSBhIApzZWxlY3Rpb24gb2YgYWxnb3JpdGhtcyB0bwpj aG9vc2UgZnJvbS4KCi9UaG9tYXMKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9kcmktZGV2ZWwK