From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v6 0/5] drm/i915: Expose more GPU properties through sysfs Date: Wed, 13 Dec 2017 09:17:17 +0100 Message-ID: <20171213081717.GE526@phenom.ffwll.local> References: <20171204150238.28011-1-lionel.g.landwerlin@intel.com> <03194f3a-258b-a4bc-2b67-6c4ac992075f@linux.intel.com> <1512989417.5315.38.camel@linux.intel.com> <708a205b-9ab1-b332-6cdf-8183a44a02fa@linux.intel.com> <20171211210538.vrgo24htiz6aho5l@phenom.ffwll.local> <7ace9df4-0fb6-13c7-7ad6-8ceff52373eb@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x243.google.com (mail-wm0-x243.google.com [IPv6:2a00:1450:400c:c09::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2C47D6E29A for ; Wed, 13 Dec 2017 08:17:22 +0000 (UTC) Received: by mail-wm0-x243.google.com with SMTP id g75so3250704wme.0 for ; Wed, 13 Dec 2017 00:17:21 -0800 (PST) Content-Disposition: inline In-Reply-To: <7ace9df4-0fb6-13c7-7ad6-8ceff52373eb@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Lionel Landwerlin Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBEZWMgMTIsIDIwMTcgYXQgMDI6MzM6MzhQTSArMDAwMCwgTGlvbmVsIExhbmR3ZXJs aW4gd3JvdGU6Cj4gT24gMTIvMTIvMTcgMTE6MTksIFR2cnRrbyBVcnN1bGluIHdyb3RlOgo+ID4g Cj4gPiBPbiAxMS8xMi8yMDE3IDIxOjA1LCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+ID4gPiBPbiBN b24sIERlYyAxMSwgMjAxNyBhdCAwMjozODo1M1BNICswMDAwLCBUdnJ0a28gVXJzdWxpbiB3cm90 ZToKPiA+ID4gPiBPbiAxMS8xMi8yMDE3IDEwOjUwLCBKb29uYXMgTGFodGluZW4gd3JvdGU6Cj4g PiA+ID4gPiArIERhbmllbCwgQ2hyaXMKPiA+ID4gPiA+IAo+ID4gPiA+ID4gT24gVGh1LCAyMDE3 LTEyLTA3IGF0IDA5OjIxICswMDAwLCBUdnJ0a28gVXJzdWxpbiB3cm90ZToKPiA+ID4gPiA+ID4g T24gMDQvMTIvMjAxNyAxNTowMiwgTGlvbmVsIExhbmR3ZXJsaW4gd3JvdGU6Cj4gPiA+ID4gPiA+ ID4gSGksCj4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gQWZ0ZXIgZGlzY3Vzc2lvbiB3aXRo IENocmlzLCBKb29uYXMgJiBUdnJ0a28sIHRoaXMgc2VyaWVzIGFkZHMgYW4KPiA+ID4gPiA+ID4g PiBhZGRpdGlvbmFsIGNvbW1pdCB0byBsaW5rIHRoZSByZW5kZXIgbm9kZSBiYWNrIHRvIHRoZSBj YXJkIHRocm91Z2ggYQo+ID4gPiA+ID4gPiA+IHN5bWxpbmsuIE1ha2luZyBpdCBvYnZpb3VzIGZy b20gYW4gYXBwbGljYXRpb24gdXNpbmcKPiA+ID4gPiA+ID4gPiBhIHJlbmRlciBub2RlIHRvCj4g PiA+ID4gPiA+ID4ga25vdyB3aGVyZSB0byBnZXQgdGhlIGluZm9ybWF0aW9uIGl0IG5lZWRzLgo+ ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gSW1wb3J0YW50IHRoaW5nIHRvIG1lbnRpb24gYXMgd2Vs bCBpcyB0aGF0IGl0IGlzIHRyaXZpYWwKPiA+ID4gPiA+ID4gdG8gZ2V0IGZyb20gdGhlCj4gPiA+ ID4gPiA+IG1hc3RlciBkcm0gZmQgdG8gdGhlIHN5c2ZzIHJvb3QsIHZpYSBmc3RhdCBhbmQgb3Bl bmRpcgo+ID4gPiA+ID4gPiAvc3lzL2Rldi9jaGFyLzxtYWpvcj46PG1pbm9yPi4gV2l0aCB0aGUg YWRkaXRpb24gb2YgdGhlCj4gPiA+ID4gPiA+IGNhcmQgc3ltbGluayB0bwo+ID4gPiA+ID4gPiBy ZW5kZXIgbm9kZXMgaXQgaXMgdHJpdmlhbCBmb3IgcmVuZGVyIG5vZGUgZmQgYXMgd2VsbC4KPiA+ ID4gPiA+ID4gCj4gPiA+ID4gPiA+IEkgYW0gaGFwcHkgd2l0aCB0aGlzIGFwcHJvYWNoIC0gaXQg aXMgZXh0ZW5zaWJsZSwgZmxleGlibGUgYW5kIGF2b2lkcwo+ID4gPiA+ID4gPiBpc3N1ZXMgd2l0 aCBpb2N0bCB2ZXJzaW9uaW5nIG9yIHdoYXRub3QuIFdpdGggb25lIHZhbHVlCj4gPiA+ID4gPiA+ IHBlciBmaWxlIGl0IGlzCj4gPiA+ID4gPiA+IHRyaXZpYWwgZm9yIHVzZXJzcGFjZSB0byBhY2Nl c3MuCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiBTbyBmb3Igd2hhdCBJJ20gY29uY2VybmVkLCBn aXZlbiBob3cgZ3B1dG9wIHdvdWxkIHVzZQo+ID4gPiA+ID4gPiBhbGwgb2YgdGhpcyBhbmQgc28K PiA+ID4gPiA+ID4gYmUgdGhlIHVzZXJzcGFjZSwgaWYgZXZlcnlvbmUgZWxzZSBpcyBoYXBweSwg SSB0aGluayB3ZSBjb3VsZCBkbyBhCj4gPiA+ID4gPiA+IGRldGFpbGVkIHJldmlldyBhbmQgcHJl aGFwcyBhbHNvIHRoaW5rIGFib3V0IGluY2x1ZGluZyBncHV0b3AgaW4gc29tZQo+ID4gPiA+ID4g PiBkaXN0cmlidXRpb24gdG8gbWFrZSB0aGUgY2FzZSAxMDAlIHN0cmFpZ2h0Zm9yd2FyZC4KPiA+ ID4gPiA+IAo+ID4gPiA+ID4gRm9yIHRoZSBHUFUgdG9wb2xvZ3kgSSBhZ3JlZSB0aGlzIGlzIHRo ZSByaWdodCBjaG9pY2UsIGl0J3MKPiA+ID4gPiA+IGdvaW5nIHRvIGJlCj4gPiA+ID4gPiBhYm91 dCB0b3BvbG9neSBhZnRlciBhbGwsIGFuZCBkaXJlY3RvcnkgdHJlZSBpcyB0aGUgcGVyZmVjdCBj YW5kaWRhdGUuCj4gPiA+ID4gPiBBbmQgaWYgYSBuZXcgcGxhdGZvcm0gYXBwZWFycywgdGhlbiBp dCdzIGEgbmV3IHBsYXRmb3JtIGFuZCBtYXkgY2hhbmdlCj4gPiA+ID4gPiB0aGUgdG9wb2xvZ3kg d2VsbCB0aGUgaGFyZHdhcmUgdG9wb2xvZ3kgaGFzIGNoYW5nZWQuCj4gPiA+ID4gPiAKPiA+ID4g PiA+IEZvciB0aGUgZW5naW5lIGVudW1lcmF0aW9uLCBJJ20gbm90IGVxdWFsbHkgc29sZCBmb3Ig c3lzZnMKPiA+ID4gPiA+IGV4cG9zaW5nIGl0Lgo+ID4gPiA+ID4gSXQncyBhICJsaW5lYXIgbGlz dCBvZiBlbmdpbmUgaW5zdGFuY2VzIHdpdGggZmxhZ3MiIGhvdyB0aGUgdXNlcnNwYWNlCj4gPiA+ ID4gPiBpcyBnb2luZyB0byBiZSBsb29raW5nIGF0IHRoZW0uIEFuZCBpdCdzIGFsc28gaW5mb3Jt YXRpb24KPiA+ID4gPiA+IGFib3V0IHdoYXQgdG8KPiA+ID4gPiA+IHBhc3MgdG8gYW4gSU9DVEwg YXMgYXJndW1lbnRzIGFmdGVyIGRlY2lzaW9uIGhhcyBiZWVuIG1hZGUsIGFuZCB0aGVuCj4gPiA+ ID4gPiB5b3UgYWxyZWFkeSBoYXZlIHRoZSBGRCB5b3Uga25vdyB5b3UnbGwgYmUgZGVhbGluZyB3 aXRoLCBhdCBoYW5kLiBTbwo+ID4gPiA+ID4gYW5vdGhlciBJT0NUTCBmb3IgdGhhdCBzZWVtcyBt b3JlIGNvbnZlbmllbnQuCj4gPiA+ID4gCj4gPiA+ID4gQXBhcnQgZnJvbSBtb3JlIGZsZXhpYmls aXR5IGFuZCBlYXNpZXIgdG8gZXh0ZW5kLCBzeXNmcyBtaWdodCBiZQo+ID4gPiA+IGEgYmV0dGVy Cj4gPiA+ID4gZml0IGZvciBhcHBsaWNhdGlvbnMgd2hpY2ggZG8gbm90IG90aGVyd2lzZSBuZWVk IGEgZHJtIGZkLiBTYXkgYQo+ID4gPiA+IHRvcC1saWtlCj4gPiA+ID4gdG9vbCB3aGljaCBzaG93 cyBlbmdpbmUgdXRpbGl6YXRpb24sIG9yIHRob3NlIHBhdGNoZXMgSSBSRkMtZWQgcmVjZW50bHkK PiA+ID4gPiB3aGljaCBkbyB0aGUgc2FtZSBidXQgcGVyIERSTSBjbGllbnQuCj4gPiA+ID4gCj4g PiA+ID4gT2theSwgdGhlc2Ugc3RhdHMgYXJlIG5vdyBhdmFpbGFibGUgYWxzbyB2aWEgUE1VIHNv IHRoZSBhcmd1bWVudAo+ID4gPiA+IGlzIG5vdCB0aGUKPiA+ID4gPiBzdHJvbmdlc3QgSSBhZG1p dCwgYnV0IEkgc3RpbGwgZmluZCBpdCBxdWl0ZSBuZWF0LiBJdCBhbHNvIG1pZ2h0Cj4gPiA+ID4g YWxsb3cgdXMgdG8KPiA+ID4gPiBkZWZpbmUgb3VyIG93biBwb2xpY3kgd2l0aCByZWdhcmRzIHRv IG5lZWRlZCBwcml2aWxlZ2UgdG8gYWNjZXNzIHRoZXNlCj4gPiA+ID4gc3RhdHMsIGFuZCBub3Qg YmUgZ292ZXJuZWQgYnkgdGhlIHBlcmYgQVBJIHJ1bGVzLgo+ID4gPiAKPiA+ID4gSG93IGV4YWN0 bHkgaXMgc3lzZnMgZWFzaWVyIHRvIGV4dGVuZCB0aGFuIGlvY3RsPyBUaGVyZSdzIGxvdHMgb2YK PiA+IAo+ID4gRWFzaWVyIGFzIGluIG5vIG5lZWQgdG8gdmVyc2lvbiwgYWRkIGhhc190aGlzL2hh c190aGF0IG1hcmtlcnMsIHRyeSB0bwo+ID4gZ3Vlc3MgdG9kYXkgaG93IGJpZyBhIGZpZWxkIGZv ciBzb21ldGhpbmcgbWlnaHQgYmUgbmVlZGVkIGluIHRoZSBmdXR1cmUKPiA+IGFuZCBzaW1pbGFy Lgo+ID4gCj4gPiA+IHNlcmlhbGl6aW5nIGFuZCBkZXNlcmlhbGl6aW5nIGdvaW5nIG9uLCBpbWUg dGhhdCdzIG1vcmUgYm9pbGVycGxhdGUuIEltbwo+ID4gPiB0aGUgb25seSByZWFzb24gZm9yIHN5 c2ZzIGlzIHdoZW4geW91IF9tdXN0XyBhY2Nlc3MgaXQgd2l0aG91dCBoYXZpbmcgYW4KPiA+ID4g ZmQgdG8gdGhlIGdwdS4gVGhlIGludmVyc2UgaXMgZ2VuZXJhbGx5IG5vdCB0cnVlIChpLmUuIHVz aW5nIHN5c2ZzIHdoZW4KPiA+ID4geW91IGhhdmUgdGhlIGZkIGFscmVhZHkpLCBhbmQgYXMgc29v biBhcyB5b3UgYWRkIGEgd3JpdGVhYmxlIGZpZWxkIGhlcmUKPiA+ID4geW91J3JlIHNjcmV3ZWQg KGJlY2F1c2Ugc3lzZnMgY2FuJ3QgYmUgcGFzc2VkIHRvIGFueW9uZSBlbHNlIGJ1dCByb290LAo+ ID4gPiBjb21wYXJlZCB0byBkcm0gZmQgLSB2aXogdGhlIGJhY2tsaWdodCBmaWFzY28pLgo+ID4g Cj4gPiBJIHdvdWxkIHBlcmhhcHMgZXhwYW5kIHRoZSAibXVzdCBhY2Nlc3Mgd2l0aG91dCBoYXZp bmcgYSBkcm0gZmQiIHRvCj4gPiAibW9yZSBjb252ZW5pZW50IHRvIGFjY2VzcyB3aXRob3V0IGEg ZHJtIGZkIi4gTXkgdXNlIGNhc2UgaGVyZSB3YXMgdGhlCj4gPiBwZXItY2xpZW50IGVuZ2luZSB1 c2FnZSBzdGF0cy4gRXF1aXZhbGVuY2Ugd2l0aCAvcHJvYy88cGlkPi9zdGF0LCBvcgo+ID4gZXZl biAvcHJvYy9zdGF0IGlmIHlvdSB3YW50LiBTbyBJIHdhcyBpbnRlcmVzdGVkIGluIGNyZWF0aW5n IGEgZm9vdGhvbGQKPiA+IGluIHN5c2ZzIGZvciB0aGF0IHB1cnBvc2UuCj4gPiAKPiA+IE5vIHdy aXRhYmxlIGZpZWxkcyB3ZXJlIGltYWdpbmVkIGluIGFsbCB0aGVzZSB0d28gdG8gdGhyZWUgdXNl IGNhc2VzLgo+ID4gCj4gPiA+IEJ1dCBldmVuIHdpdGhvdXQgd3JpdGVhYmxlIGZpZWxkczogVGhp bmsgb2YgaGlnaGx5IGNvbnRhaW5lZAo+ID4gPiBjb250YWluZXJzL2NsaWVudHMgd2hpY2ggb25s eSBnZXQgdGhlIGRybSBmZCB0byByZW5kZXIuIElmIHN5c2ZzIGlzCj4gPiA+IGdvbmUsCj4gPiA+ IHdpbGwgdGhleSBmYWxsIG9uIHRoZWlyIGZhY2VzPyBBdG0gImRybSBmZCBpcyBhbGwgeW91IG5l ZWQiIGlzIHZlcnkKPiA+ID4gZGVlcGx5Cj4gPiA+IGluZ3JhaW5lZCBpbnRvIG91ciB2YXJpb3Vz IE9TIHN0YWNrcy4KPiA+IAo+ID4gT2theSwgdGhpcyBpcyBzb21ldGhpbmcgd2hpY2ggd2FzIG1l bnRpb25lZCBidXQgSSB0aGluayB0aGUgYW5zd2VyIHdhcwo+ID4gdW5jbGVhci4gSWYgY3VycmVu dCBzdGFja3MgZG8gd29yayB3aXRob3V0IHN5c2ZzIHRoZW4gdGhpcyBpcyBhIGdvb2QKPiA+IGFy Z3VtZW50IHRvIGtlZXAgdGhhdCBhYmlsaXR5Lgo+ID4gCj4gPiBBcyBJIHNhaWQgSSBhbSBPSyB0 byBkcm9wIHRoZSBlbmdpbmUgaW5mbyBiaXRzIGZyb20gdGhpcyBzZXJpZXMuCj4gPiBRdWVzdGlv biBmb3IgTGlvbmVsLCBncHUtdG9wIGFuZCBNZXNhIHRoZW4gaXMgd2hldGhlciBzeXNmcyB3b3Jr cyBmb3IKPiA+IHRoZW0sIGZvciB0aGUgcmVtYWluaW5nIHRvcG9sb2d5IGluZm9ybWF0aW9uLiBB dHRyYWN0aXZlbmVzcyBvZiBzeXNmcwo+ID4gdGhlcmUgd2FzIHRoYXQgaXQgbG9va2VkIGVhc2ll ciB0byBiZSBmdXR1cmUgcHJvb2YgZm9yIG1vcmUgb3IgbGVzcwo+ID4gaHlwb3RoZXRpY2FsIGZ1 dHVyZSB0b3BvbG9naWVzLgo+IAo+IFdlIGRpZCBhIGNvdXBsZSBvZiB2ZXJzaW9ucyB3aXRoIGlv Y3RscyA6Cj4gCj4gaHR0cHM6Ly9wYXRjaHdvcmsuZnJlZWRlc2t0b3Aub3JnL3BhdGNoLzE4NTk1 OS8gKHRocm91Z2ggR0VUX1BBUkFNKQo+IGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9y Zy9zZXJpZXMvMzM0MzYvICh0aG91Z2ggYSBuZXcgZGlzY292ZXJ5IHVBUEkKPiBpbml0aWFsbHkg dGFyZ2V0ZWQgYXQgdGhlIGVuZ2luZSBkaXNjb3ZlcnkpCj4gCj4gRXZlbnR1YWxseSBDaHJpcyBz dWdnZXN0ZWQgc3lzZnMgKHdoaWNoIEkgZmluZCBraW5kIG9mIGNvbnZlbmllbnQpLCBldmVuCj4g dGhvdWdoIHlvdSBEYW5pZWwgcmFpc2VkIGEgdmFsaWQgcG9pbnQgd2l0aCBzYW5kYm94ZWQgcHJv Y2Vzc2VzLgo+IAo+IEkgcGVyc29uYWxseSBkb24ndCBjYXJlIG11Y2ggaW4gd2hpY2ggd2F5IHRo aXMgc2hvdWxkIGJlIGltcGxlbWVudGVkLgo+IEp1c3QgZ2l2ZSBtZSBzb21lIGRpcmVjdGlvbiA6 KQo+IAo+IERhbmllbDogV291bGQgc29tZXRoaW5nIGluIHRoZSBzdHlsZSBvZgo+IGh0dHBzOi8v cGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9zZXJpZXMvMzM0MzYvIHdvcms/IElmIHllcywgd2hh dCB3b3VsZCB5b3UKPiByZWNvbW1lbmQgdG8gY2hhbmdlPwoKdGJoIEkgZmVlbCBiYWQgZGVyYWls aW5nIHRoaXMgZXZlbiBmdXJ0aGVyLCBidXQgSSB0aGluayBpZiB5b3Ugd2FudCBhIG1vcmUKZmxl eGlibGUgcXVlcnkgaW9jdGwgdGhhdCdzIGVhc2llciB0byBleHRlbmQgd2UgY291bGQgbWF5YmUg bG9vayBhdCB0aGUKY2h1bmsgbGlzdCBhcHByb2FjaCBhbWRncHVfY3NfaW9jdGwgdXNlczogQWxs IHRoZSBtYXNzaXZlIHBpbGUgb2YgZXhlY2J1ZgptZXRhZGF0YSBpcyBzdXBwbGllZCBpbiBhIGNo dW5rIGxpc3QsIGFuZCBpZiB5b3Ugd2FudCB0byBleHRlbmQgbmV3IHN0dWZmLApvciBhZGQgYSBu ZXcgdHlwZSwgeW91IGFkZCBhIG5ldyBjaHVua19pZC4gVGhlIGNodW5rcyB0aGVtc2VsdmVzIGFy ZSBhbGwKbGluZWFyaXplZCBpbnRvIG9uZSBhbGxvY2F0aW9uLgoKV2UgY291bGQgdXNlIHRoZSBl eGFjdCBzYW1lIHRyaWNrIGZvciBvdXRwdXQsIGFuZCByZXF1aXJlIHRoYXQgdXNlcnNwYWNlCnNp bXBseSBqdW1wcyBvdmVyIGNodW5rcyBpdCBkb2Vzbid0IHVuZGVyc3RhbmQuIFByb250bywgeW91 IGhhdmUgeW91cgppbnN0YS1leHRlbnNpYmlsaXR5LgoKSWYgeW91IHdhbnQgdG8gZ28gZmFuY3ks IGFkZCBhIGh1Z2UgZmxhZ3MgZmllbGRzIHNvIHlvdSBjYW4gc2VsZWN0IHdoYXQKa2luZHMgb2Yg Y2h1bmtzIHlvdSB3YW50ICh5b3UgbmVlZCB0aGUgZmxhZ3MgZmllbGQgYW55d2F5cykuCgpRdWVy eWluZyB3b3VsZCBiZSB0aGUgdXN1YWwgdHdvLXN0ZXAgcHJvY2VzczoKCjEuIGlvY3RsIGNhbGwg d2l0aCBjaHVua19zaXplID09IDAsIHRvIHF1ZXJ5IHRoZSBrZXJuZWwgaG93IG11Y2ggdGhlCmtl cm5lbCBzaG91bGQgYWxsb2NhdGUuIEtlcm5lbCB3b3VsZCBqdXN0IHdhbGsgYWxsIHRoZSBhdmFp bGFibGUgY2h1bmtzCmFuZCBhZGQgdXAgKHdpdGggYSBiaXQgb2Ygc2VxX2ZpbGUgc3R5bGUgYWJz dHJhY3Rpb24gdGhpcyBjb3VsZCBsb29rIHZlcnkKbmVhdCwgZXZlbiB3aGVuIGRlYWxpbmcgd2l0 aCBodWdlIG51bWJlciBvZiBjaHVua3MpLgoKMi4gVXNlcnNwYWNlIGFsbG9jYXRlcyBzdWZmaWNp ZW50IGFtb3VudHMgb2YgbWVtb3J5IGZvciBhbGwgdGhlIGNodW5rcyBpdAp3YW50cywgY2FsbHMg dGhlIGlvY3RsIGFnYWluLCBrZXJuZWwgZmlsbHMgdGhlbSBhbGwgb3V0IGludG8gdGhpcyBzaW5n bGUKb25lIGFycmF5LgoKQXNpZGU6IFZCVCBhbG1vc3Qgd29ya3MgbGlrZSB0aGF0IChtaW51cyB0 aGUgZmV3IHBsYWNlcyB0aGV5IHNjcmV3ZWQgdXAKYW5kIHlvdSBuZWVkIHRvIGtub3cgdGhlIHNp emUgb2YgdGhlIG5leHQgYmxvY2spLgoKQ2hlZXJzLCBEYW5pZWwKCj4gCj4gVGhhbmtzIQo+IAo+ IC0KPiBMaW9uZWwKPiAKPiA+IAo+ID4gUmVnYXJkcywKPiA+IAo+ID4gVHZydGtvCj4gPiAKPiA+ IAo+ID4gPiAtRGFuaWVsCj4gPiA+IAo+ID4gPiA+ID4gU28gSSdkIHNheSBmb3IgdGhlIEdQVSB0 b3BvbG9neSBwYXJ0LCB3ZSBnbyBmb3J3YXJkIHdpdGggdGhlCj4gPiA+ID4gPiByZXZpZXcgYW5k Cj4gPiA+ID4gPiBtYWtlIHN1cmUgd2UgZG9uJ3QgZXhwb3NlIGRyaXZlciBpbnRlcm5hbCBiaXRz IHRoYXQgY291bGQgYnJlYWsgd2hlbgo+ID4gPiA+ID4gcmVmYWN0b3JpbmcgY29kZS4gSWYgdGhl IGV4cG9zZWQgTiBiaXRzIG9mIGluZm9ybWF0aW9uIGFyZSBzdHJpY3RseQo+ID4gPiA+ID4gdGll ZCB0byB0aGUgdW5kZXJseWluZyBoYXJkd2FyZSwgd2Ugc2hvdWxkIGhhdmUgbm8gdHJvdWJsZSBt YWludGFpbmluZwo+ID4gPiA+ID4gdGhhdCBmb3IgdGhlIGZvcmVzZWVhYmxlIGZ1dHVyZS4KPiA+ ID4gPiA+IAo+ID4gPiA+ID4gVGhlbiB3ZSBjYW4gY29udGludWUgb24gYWJvdXQgdGhlIGVuZ2lu ZSBkaXNjb3ZlcnkgaW4gcGFyYWxsZWwsIG5vdAo+ID4gPiA+ID4gYmxvY2tpbmcgR1BVIHRvcG9s b2d5IGRpc2NvdmVyeS4KPiA+ID4gPiAKPiA+ID4gPiBJIGNhbiBsaXZlIHdpdGggdGhhdCwgYnV0 IHdvdWxkIGxpa2UgdG8ga2VlcCB0aGUgZ3QvZW5naW5lcy8gbmFtZXNwYWNlCj4gPiA+ID4gcmVz ZXJ2ZWQgZm9yIHRoZSBldmVudHVhbGl0eSB3aXRoIGdvIHdpdGggZW5naW5lIGluZm8gaW4gc3lz ZnMKPiA+ID4gPiBhdCBhIGxhdGVyCj4gPiA+ID4gc3RhZ2UgdGhlbi4KPiA+ID4gPiAKPiA+ID4g PiBBbHNvLCBMaW9uZWwsIGRpZCB5b3UgaGF2ZSBwbGFucyB0byB1c2UgdGhlIGVuZ2luZSBpbmZv IHN0cmFpZ2h0Cj4gPiA+ID4gYXdheSBpbiBncHUKPiA+ID4gPiB0b3AsIG9yIHlvdSBvbmx5IG5l ZWRlZCB0b3BvbG9neT8gSSB0aGluayB5b3Ugd2VyZSBkcmF3aW5nIGEgbmljZSBibG9jawo+ID4g PiA+IGRpYWdyYW0gb2YgYSBHUFUgc28gZG8geW91IG5lZWQgaXQgZm9yIHRoYXQ/Cj4gPiA+ID4g Cj4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPiAKPiA+ID4gPiBUdnJ0a28KPiA+ID4gCj4gPiAKPiAK Ci0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpo dHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK