From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH v9 7/7] drm/i915: add a sysfs entry to let users set sseu configs Date: Thu, 2 Aug 2018 11:00:59 +0100 Message-ID: References: <20180530143355.6611-1-lionel.g.landwerlin@intel.com> <20180530143355.6611-8-lionel.g.landwerlin@intel.com> <5d5d95b8-c8a1-6339-e587-9c4d20607dbe@linux.intel.com> <152872935758.11830.15992791359958749171@mail.alporthouse.com> <152879521717.5757.13945091232610429449@jlahtine-desk.ger.corp.intel.com> <6f9fefa8-25b5-243b-586f-7ce6a7ad729b@intel.com> <152879985216.11830.11337903661997695459@mail.alporthouse.com> <5a4774a6-9d71-4d45-3169-9a3d5a5869cb@linux.intel.com> <152889418955.10172.10726052321463682145@jlahtine-desk.ger.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id BA42C6E557 for ; Thu, 2 Aug 2018 10:01:02 +0000 (UTC) In-Reply-To: Content-Language: en-GB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Bloomfield, Jon" , Joonas Lahtinen , Chris Wilson , "Landwerlin, Lionel G" , "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org CltQaWNraW5nIHRoaXMgcG9pbnQgaW4gdGhlIHRocmVhZCB0byByZXBseSBvbiBzb21lIHBvaW50 cyBtZW50aW9uZWQgYnkgCmZvbGtzIGluIHRoZSB3aG9sZSB0aHJlYWQuXQoKSSBkb24ndCByZW1l bWJlciBpZiBhbnkgcGF0Y2hlcyBmcm9tIExpb25lbCdzIHNlcmllcyBhY3R1YWxseSBoYWQgci1i J3MsIApidXQgYSBmZXcgcGVvcGxlIGluY2x1ZGluZyBteXNlbGYgaGF2ZSBjZXJ0YWlubHkgYmVl biByZXZpZXdpbmcgdGhlbS4gSWYgCkkgaGFkIGFwcGxpZWQgdGhlIGZpbmFsIHItYiBJIHdvdWxk bid0IGhhdmUgbWFkZSBtdWNoIGRpZmZlcmVuY2UgZHVlIApsYWNrIG9mIHVzZXJzcGFjZSBhbmQg ZGlzYWdyZWVtZW50IG9uIHRoZSBEb1MgbWl0aWdhdGlvbiBzdG9yeS4gU28gdG8gCnNheSBlZmZl Y3RpdmVseSBwdXQgeW91ciBtb25leSB3aGVyZSB5b3VyIG1vdXRoIGlzIGFuZCByZXZpZXcgaXMg bm90IAplbnRpcmVseSBmYWlyLgoKU3VnZ2VzdGlvbiB0byBhZGQgYSBtYXN0ZXIgc3lzZnMgc3dp dGNoIHdhcyB0byBhbGxldmlhdGUgdGhlIERvUyAKY29uY2VybnMgYmVjYXVzZSBkeW5hbWljIHN3 aXRjaGluZyBoYXMgYSBjb3N0IHRvd2FyZHMgYWxsIEdQVSBjbGllbnRzLCAKbm90IHRoYXQgaXQg anVzdCBoYXMgcG90ZW50aWFsIHRvIHNsb3cgZG93biBtZWRpYS4KClN1Z2dlc3Rpb24gd2FzIGFs c28gdGhhdCB0aGlzIHN3aXRjaCBiZWNvbWVzIGltbXV0YWJsZSBhbmQgZGVmYXVsdHMgdG8gCiJh bGxvdyIgb24gR2VuMTEgb253YXJkcy4KCkkgcHJlZmVycmVkIHN5c2ZzIHZlcnN1cyBhIG1vZHBh cmFtIHNpbmNlIGl0IG1ha2VzIHRlc3RpbmcgKEJvdGggZm9yIApkZXZlbG9wZXJzIGFuZCB1c2Vy cyAod2hhdCBjb25maWcgd29ya3MgYmV0dGVyIGZvciBteSB1c2UgY2FzZT8pIGVhc2llci4pCgpJ IGFtIGZpbmUgd2l0aCB0aGUgc3VnZ2VzdGlvbiB0byBkcml2ZSB0aGUgR2VuMTEgcGFydCBmaXJz dCwgd2hpY2ggCnJlbW92ZXMgdGhlIG5lZWQgZm9yIGFueSBvZiB0aGlzLgoKUGF0Y2ggc2VyaWVz IGlzIGFscmVhZHkgKEFGQUlSKSBuaWNlbHkgc3BsaXQgc28gb25seSB0aGUgbGFzdCBwYXRjaCAK bmVlZHMgdG8gYmUgZHJvcHBlZC4KCklmIGF0IHNvbWUgcG9pbnQgd2UgZGVjaWRlIHRvIHJldmlz aXQgdGhlIEdlbjgvOSBzdG9yeSwgd2UgY2FuIApldmFsdWF0ZS9tZWFzdXJlIHdoZXRoZXIgYW55 IG1hc3RlciBzd2l0Y2ggaXMgYWN0dWFsbHkgd2FycmFudGVkLiBJIAp0aGluayBMaW9uZWwgZGlk IHNvbWUgbWljcm8tYmVuY2htYXJraW5nIHdoaWNoIHNob3dlZCBpbXBhY3QgaXMgbm90IHNvIApz ZXZlcmUsIHNvIHBlcmhhcHMgZm9yIHJlYWwtd29ybGQgdXNlIGNhc2VzIGl0IHdvdWxkIGJlIGV2 ZW4gbGVzcy4KCkkgY2FuIHJlLXJlYWQgdGhlIHB1YmxpYyBwYXRjaGVzIGFuZCByZXZpZXcgdGhl bSwgb3IgcGVyaGFwcyBldmVuIGFkb3B0IAp0aGVtIGlmIHRoZXkgaGF2ZSBiZWVuIG9ycGhhbmVk LiBIYXZlIHRvIGNoZWNrIHdpdGggRnJhbmNlc2NvIGZpcnN0IApiZWZvcmUgSSBjb21taXQgdG8g dGhlIGxhdHRlci4KCk9uIHRoZSB1QVBJIGZyb250IGludGVyZmFjZSBsb29rZWQgZmluZSB0byBt ZS4KCk9uZSByZWNlbnQgaW50ZXJlc3RpbmcgZGV2ZWxvcG1lbnQgYXJlIE1lc2EgcGF0Y2hlcyBw b3N0ZWQgdG8gbWVzYS1kZXYgCihodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZl cy9tZXNhLWRldi8yMDE4LUp1bHkvMjAwNjA3Lmh0bWwpIAp3aGljaCBhZGQgRUdMX0NPTlRFWFRf bG9hZF90eXBlIGV4dGVuc2lvbiAobG93L21lZGl1bS9oaWdoKS4gVGhpcyB3b3VsZCAKbmVlZCBz b21lIHNvcnQgb2YgbWFwcGluZyBiZXR3ZWVuIGxvdy9tZWRpdW0vaGlnaCB0byBtb3JlIHNwZWNp ZmljIApzZXR0aW5ncyBidXQgc3RpbGwgc2VlbXMgb2theSB0byBtZS4KClRoaXMgbWF5IGJyaW5n IGFub3RoZXIgKG9wZW4gc291cmNlPykgdXNlciBmb3IgdGhlIHBhdGNoZXMuIFdoaWNoIEdlbidz IAp0aGV5IGFyZSBpbnRlcmVzdGVkIGluIGlzIGFsc28gYSBxdWVzdGlvbi4KClJlZ2FyZHMsCgpU dnJ0a28KCk9uIDI0LzA3LzIwMTggMjI6NTAsIEJsb29tZmllbGQsIEpvbiB3cm90ZToKPiBHcmF0 dWl0b3VzIHRvcCBwb3N0aW5nIHRvIHJlLWtpY2sgdGhlIHRocmVhZC4KPiAKPiBGb3IgR2VuMTEg d2UgY2FuJ3QgaGF2ZSBhbiBvbi9vZmYgc3dpdGNoIGFueXdheSAobWVkaWEgc2ltcGx5IHdvbid0 IHJ1bgo+IHdpdGggYW4gb25jb21wYXRpYmxlIHNsaWNlIGNvbmZpZyksIHNvIGxldCdzIGFncmVl IG9uIGFuIGFwaSB0byBhbGxvdyB1c2VybGFuZAo+IHRvIHNlbGVjdCB0aGUgc2xpY2UgY29uZmln dXJhdGlvbiBmb3IgaXRzIGNvbnRleHRzLCBmb3IgR2VuMTEgb25seS4gSSdkIHByZWZlciBhCj4g c2ltcGxlIHtNZWRpYUNvbmZpZy9HZW5lcmFsQ29uZmlnfSB0eXBlIGNvbnRleHQgcGFyYW0gYnV0 IEkgcmVhbGx5IGRvbid0Cj4gY2FyZSB0aGF0IG11Y2guCj4gCj4gRm9yIGdlbjkvMTAgaXQncyBh cmd1YWJsZSB3aGV0aGVyIHdlIG5lZWQgdGhpcyBhdCBhbGwuIFRoZSBlZmZlY3Qgb24gbWVkaWEK PiB3b3JrbG9hZHMgdmFyaWVzLCBidXQgSSdtIGd1ZXNzaW5nIG5vcm1hbCB1c2VycyAob3V0c2lk ZSBhIHRyYW5zY29kZQo+IHR5cGUgZW52aXJvbm1lbnQpIHdpbGwgbmV2ZXIga25vdyB0aGV5J3Jl IG1pc3NpbmcgYW55dGhpbmcuIEVpdGhlciB3YXksCj4gd2UgY2FuIGNvbnRpbnVlIGRpc2N1c3Np bmcgd2hpbGUgd2UgcHJvZ3Jlc3MgdGhlIGdlbjExIHNvbHV0aW9uLgo+IAo+IEpvbgo+IAo+PiAt LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+PiBGcm9tOiBJbnRlbC1nZnggPGludGVsLWdmeC1i b3VuY2VzQGxpc3RzLmZyZWVkZXNrdG9wLm9yZz4gT24gQmVoYWxmIE9mCj4+IEJsb29tZmllbGQs IEpvbgo+PiBTZW50OiBXZWRuZXNkYXksIEp1bHkgMTgsIDIwMTggOTo0NCBBTQo+PiBUbzogVHZy dGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGxpbnV4LmludGVsLmNvbT47IEpvb25hcyBMYWh0 aW5lbgo+PiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT47IENocmlzIFdpbHNvbiA8 Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPjsKPj4gTGFuZHdlcmxpbiwgTGlvbmVsIEcgPGxpb25l bC5nLmxhbmR3ZXJsaW5AaW50ZWwuY29tPjsgaW50ZWwtCj4+IGdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKPj4gU3ViamVjdDogUmU6IFtJbnRlbC1nZnhdIFtQQVRDSCB2OSA3LzddIGRybS9pOTE1 OiBhZGQgYSBzeXNmcyBlbnRyeSB0byBsZXQgdXNlcnMKPj4gc2V0IHNzZXUgY29uZmlncwo+Pgo+ Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPj4+IEZyb206IEludGVsLWdmeCA8aW50ZWwt Z2Z4LWJvdW5jZXNAbGlzdHMuZnJlZWRlc2t0b3Aub3JnPiBPbiBCZWhhbGYgT2YKPj4+IFR2cnRr byBVcnN1bGluCj4+PiBTZW50OiBUaHVyc2RheSwgSnVuZSAxNCwgMjAxOCAxOjI5IEFNCj4+PiBU bzogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29tPjsgQ2hy aXMgV2lsc29uCj4+PiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPjsgTGFuZHdlcmxpbiwgTGlv bmVsIEcKPj4+IDxsaW9uZWwuZy5sYW5kd2VybGluQGludGVsLmNvbT47IGludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKPj4+IFN1YmplY3Q6IFJlOiBbSW50ZWwtZ2Z4XSBbUEFUQ0ggdjkg Ny83XSBkcm0vaTkxNTogYWRkIGEgc3lzZnMgZW50cnkgdG8gbGV0Cj4+IHVzZXJzCj4+PiBzZXQg c3NldSBjb25maWdzCj4+Pgo+Pj4KPj4+IE9uIDEzLzA2LzIwMTggMTM6NDksIEpvb25hcyBMYWh0 aW5lbiB3cm90ZToKPj4+PiBRdW90aW5nIFR2cnRrbyBVcnN1bGluICgyMDE4LTA2LTEyIDE1OjAy OjA3KQo+Pj4+Pgo+Pj4+PiBPbiAxMi8wNi8yMDE4IDExOjUyLCBMaW9uZWwgTGFuZHdlcmxpbiB3 cm90ZToKPj4+Pj4+IE9uIDEyLzA2LzE4IDExOjM3LCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4+Pj4+ Pj4gUXVvdGluZyBMaW9uZWwgTGFuZHdlcmxpbiAoMjAxOC0wNi0xMiAxMTozMzozNCkKPj4+Pj4+ Pj4gT24gMTIvMDYvMTggMTA6MjAsIEpvb25hcyBMYWh0aW5lbiB3cm90ZToKPj4+Pj4+Pj4+IFF1 b3RpbmcgQ2hyaXMgV2lsc29uICgyMDE4LTA2LTExIDE4OjAyOjM3KQo+Pj4+Pj4+Pj4+IFF1b3Rp bmcgTGlvbmVsIExhbmR3ZXJsaW4gKDIwMTgtMDYtMTEgMTQ6NDY6MDcpCj4+Pj4+Pj4+Pj4+IE9u IDExLzA2LzE4IDEzOjEwLCBUdnJ0a28gVXJzdWxpbiB3cm90ZToKPj4+Pj4+Pj4+Pj4+IE9uIDMw LzA1LzIwMTggMTU6MzMsIExpb25lbCBMYW5kd2VybGluIHdyb3RlOgo+Pj4+Pj4+Pj4+Pj4+IFRo ZXJlIGFyZSBjb25jZXJucyBhYm91dCBkZW5pYWwgb2Ygc2VydmljZSBhcm91bmQgdGhlIHBlcgo+ Pj4+Pj4+Pj4+Pj4+IGNvbnRleHQgc3NldQo+Pj4+Pj4+Pj4+Pj4+IGNvbmZpZ3VyYXRpb24gY2Fw YWJpbGl0eS4gSW4gYSBwcmV2aW91cyBjb21taXQgaW50cm9kdWNpbmcgdGhlCj4+Pj4+Pj4+Pj4+ Pj4gY2FwYWJpbGl0eSB3ZSBhbGxvd2VkIGl0IG9ubHkgZm9yIGNhcGFibGUgdXNlcnMuIFRoaXMg Y2hhbmdlcwo+Pj4+Pj4+Pj4+Pj4+IGFkZHMgYQo+Pj4+Pj4+Pj4+Pj4+IG5ldyBkZWJ1Z2ZzIGVu dHJ5IHRvIGxldCBhbnkgdXNlciBjb25maWd1cmUgaXRzIG93biBjb250ZXh0Cj4+Pj4+Pj4+Pj4+ Pj4gcG93ZXJnYXRpbmcgc2V0dXAuCj4+Pj4+Pj4+Pj4+PiBBcyBmYXIgYXMgSSB1bmRlcnN0b29k IGl0LCBKb29uYXMnIGNvbmNlcm5zIGhlcmUgYXJlOgo+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+ IDEpIFRoYXQgaW4gdGhlIGNvbnRhaW5lcnMgdXNlIGNhc2UgaW5kaXZpZHVhbCBjb250YWluZXJz Cj4+IHdvdWxkbid0Cj4+PiBiZQo+Pj4+Pj4+Pj4+Pj4gYWJsZSB0byB0dXJuIG9uIHRoZSBzeXNm cyB0b2dnbGUgZm9yIHRoZW0uCj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4gMikgVGhhdCBhbHNv IGluIHRoZSBjb250YWluZXJzIHVzZSBjYXNlIGlmIGJveCBhZG1pbiB0dXJucyBvbgo+PiB0aGUK Pj4+Pj4+Pj4+Pj4+IGZlYXR1cmUsIHNvbWUgY29udGFpbmVycyB3b3VsZCBwb3RlbnRpYWxseSBz dGFydCBuZWdhdGl2ZWx5Cj4+Pj4+Pj4+Pj4+PiBhZmZlY3RpbmcKPj4+Pj4+Pj4+Pj4+IHRoZSBv dGhlcnMgKHZpYSB0aGUgYWNjdW11bGF0ZWQgY29zdCBvZiBzbGljZSByZS1jb25maWd1cmF0aW9u Cj4+IG9uCj4+Pj4+Pj4+Pj4+PiBjb250ZXh0IHN3aXRjaGluZykuCj4+Pj4+Pj4+Pj4+Pgo+Pj4+ Pj4+Pj4+Pj4gSSBhbSBub3QgZmFtaWxpYXIgd2l0aCB0eXBpY2FsIGNvbnRhaW5lciBzZXR1cHMg dG8gYmUKPj4gYXV0aG9yaXRhdGl2ZQo+Pj4+Pj4+Pj4+Pj4gaGVyZSwgYnV0IGludHVpdGl2ZWx5 IEkgZmluZCBpdCByZWFzb25hYmxlIHRoYXQgYSBsb3ctbGV2ZWwKPj4gaGFyZHdhcmUKPj4+Pj4+ Pj4+Pj4+IHN3aXRjaCBsaWtlIHRoaXMgd291bGQgYmUgdW5kZXIgdGhlIGNvbnRyb2wgb2YgYSBt YXN0ZXIgZG9tYWluCj4+Pj4+Pj4+Pj4+PiBhZG1pbmlzdHJhdG9yLiAoIklmIHlvdSBhcmUgaW5z dGFsbGluZyBvdXIgcHJvZHVjdCBpbiB0aGUKPj4gY29udGFpbmVyCj4+Pj4+Pj4+Pj4+PiBlbnZp cm9ubWVudCwgbWFrZSBzdXJlIHlvdXIgc3lzdGVtIGFkbWluaXN0cmF0b3IgZW5hYmxlcwo+PiB0 aGlzCj4+Pj4+Pj4+Pj4+PiBoYXJkd2FyZQo+Pj4+Pj4+Pj4+Pj4gZmVhdHVyZS4iLCAiTm90ZSB0 byBzeXN0ZW0gYWRtaW5pc3RyYXRvcnM6IEVuYWJsaW5nIHRoaXMKPj4gZmVhdHVyZXMKPj4+Pj4+ Pj4+Pj4+IG1heQo+Pj4+Pj4+Pj4+Pj4gbmVnYXRpdmVseSBhZmZlY3QgdGhlIHBlcmZvcm1hbmNl IG9mIG90aGVyIGNvbnRhaW5lcnMuIikKPj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+PiBBbHRlcm5h dGl2ZSBwcm9wb3NhbCBpcyBmb3IgdGhlIGk5MTUgdG8gYXBwbHkgYW4gIm9yIiBmaWx0ZXIgb24g YWxsCj4+Pj4+Pj4+Pj4+PiByZXF1ZXN0ZWQgbWFza3MgYW5kIGluIHRoYXQgd2F5IGVuc3VyZSBk eW5hbWljIHJlLQo+Pj4gY29uZmlndXJhdGlvbgo+Pj4+Pj4+Pj4+Pj4gZG9lc24ndCBoYXBwZW4g b24gY29udGV4dCBzd2l0Y2hlcywgYnV0IGRyaXZlbiBmcm9tCj4+IHVzZXJzcGFjZQo+Pj4gdmlh Cj4+Pj4+Pj4+Pj4+PiBpb2N0bHMuCj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4gSW4gb3RoZXIg d29yZHMsIHNob3VsZCBfYWxsXyB1c2Vyc3BhY2UgYWdyZWUgYmV0d2Vlbgo+Pj4gdGhlbXNlbHZl cyB0aGF0Cj4+Pj4+Pj4+Pj4+PiB0aGV5IHdhbnQgdG8gdHVybiBvZmYgYSBzbGljZSwgdGhleSB3 b3VsZCB0aGVuIG5lZWQgdG8gc2VuZCBvdXQKPj4gYQo+Pj4+Pj4+Pj4+Pj4gY29uY2VydGVkIGlv Y3RsIHN0b3JtLCB3aGVyZSBudW1iZXIgb2YgbmVlZGVkIGlvY3RscyBlcXVhbHMKPj4+IHRoZQo+ Pj4+Pj4+Pj4+Pj4gbnVtYmVyCj4+Pj4+Pj4+Pj4+PiBvZiBjdXJyZW50bHkgYWN0aXZlIGNvbnRl eHRzLiAoVGhpcyBtYXkgaGF2ZSBpdHMgb3duCj4+IHBlcmZvcm1hbmNlCj4+Pj4+Pj4+Pj4+PiBj b25zZXF1ZW5jZXMgY2F1c2VkIGJ5IHRoZSBiYXJyaWVycyBuZWVkZWQgdG8gbW9kaWZ5IGFsbAo+ Pj4gY29udGV4dAo+Pj4+Pj4+Pj4+Pj4gaW1hZ2VzLikKPj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+ PiBUaGlzIHdhcyBkZWVtZWQgYWNjZXB0YWJsZSB0aGUgdGhlIG1lZGlhIHVzZSBjYXNlLCBidXQg bXkKPj4+IGNvbmNlcm4gaXMKPj4+Pj4+Pj4+Pj4+IHRoZSBhcHByb2FjaCBpcyBub3QgZWxlZ2Fu dCBhbmQgd2lsbCB0aWUgdXMgd2l0aCB0aGUgIm9yIiBwb2xpY3kKPj4gaW4KPj4+Pj4+Pj4+Pj4+ IHRoZSBBQkkuIChQZXJmb3JtYW5jZSBjb25jZXJucyBJIGhhdmVuJ3QgZXZhbHVhdGVkIHlldCwg YnV0Cj4+PiB0aGV5Cj4+Pj4+Pj4+Pj4+PiBhbHNvCj4+Pj4+Pj4+Pj4+PiBtYXkgYmUgc2lnbmlm aWNhbnQuKQo+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+IElmIHdlIGdvIGJhY2sgdGhpbmtpbmcg YWJvdXQgdGhlIGNvbnRhaW5lcnMgdXNlIGNhc2UsIHRoZW4gaXQKPj4+Pj4+Pj4+Pj4+IHRyYW5z cGlyZXMgdGhhdCBldmVuIHRob3VnaCB0aGUgIm9yIiBwb2xpY3kgZG9lcyBwcmV2ZW50IG9uZQo+ Pj4+Pj4+Pj4+Pj4gY29udGFpbmVyCj4+Pj4+Pj4+Pj4+PiBmcm9tIGFmZmVjdGluZyB0aGUgb3Ro ZXIgZnJvbSBvbmUgYW5nbGUsIGl0IGFsc28gcHJldmVudHMgb25lCj4+Pj4+Pj4+Pj4+PiBjb250 YWluZXIgZnJvbSBleGVyY2lzaW5nIHRoZSBmZWF0dXJlIHVubGVzcyBhbGwgY29udGFpbmVycwo+ Pj4+Pj4+Pj4+Pj4gY28tb3BlcmF0ZS4KPj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+PiBBcyBzdWNo LCB3ZSBjYW4gdmlldyB0aGUgb3JpZ2luYWwgcHJvYmxlbSBzdGF0ZW1lbnQgd2hlcmUKPj4gd2UK Pj4+IGhhdmUgYW4KPj4+Pj4+Pj4+Pj4+IGlzc3VlIGlmIG5vdCBldmVyeW9uZSBjby1vcGVyYXRl cywgYXMgY29uY2VwdHVhbGx5IHRoZSBzYW1lCj4+IGp1c3QKPj4+Pj4+Pj4+Pj4+IGZyb20KPj4+ Pj4+Pj4+Pj4+IGFuIG9wcG9zaXRlIGFuZ2xlLiAoUmF0aGVyIHRoYW4gb25lIGNvbnRhaW5lciBp bmN1cnJpbmcgdGhlCj4+Pj4+Pj4+Pj4+PiBpbmNyZWFzZWQKPj4+Pj4+Pj4+Pj4+IGNvc3Qgb2Yg Y29udGV4dCBzd2l0Y2hlcyB0byB0aGUgcmVzdCwgd2Ugd291bGQgaGF2ZSBvbmUKPj4+IGNvbnRh aW5lcgo+Pj4+Pj4+Pj4+Pj4gcHJldmVudGluZyB0aGUgb3B0aW1pemVkIHNsaWNlIGNvbmZpZ3Vy YXRpb24gdG8gdGhlIG90aGVyLikKPj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+PiAgIMKgIEZyb20g dGhpcyBmb2xsb3dzIHRoYXQgYm90aCBwcm9wb3NhbHMgcmVxdWlyZSBjb21wbGV0ZQo+Pj4+Pj4+ Pj4+Pj4gY28tb3BlcmF0aW9uCj4+Pj4+Pj4+Pj4+PiBmcm9tIGFsbCBydW5uaW5nIHVzZXJzcGFj ZSB0byBhdm9pZCBjb21wbGV0ZSBjb250cm9sIG9mIHRoZQo+Pj4gZmVhdHVyZS4KPj4+Pj4+Pj4+ Pj4+Cj4+Pj4+Pj4+Pj4+PiBTaW5jZSB0aGUgYmFsYW5jZSBiZXR3ZWVuIHRoZSBiZW5lZml0IG9m IG9wdGltaXplZCBzbGljZQo+Pj4+Pj4+Pj4+Pj4gY29uZmlndXJhdGlvbgo+Pj4+Pj4+Pj4+Pj4g KG9yIHBlbmFsdHkgb2Ygc3Vib3B0aW1hbCBvbmUpLCB2ZXJzdXMgdGhlIHBlbmFsdHkgb2YgaW5j cmVhc2VkCj4+Pj4+Pj4+Pj4+PiBjb250ZXh0IHN3aXRjaCB0aW1lcywgY2Fubm90IGJlIGtub3cg YnkgdGhlIGRyaXZlciAoYmFycmluZwo+Pj4+Pj4+Pj4+Pj4gdmVudHVyaW5nCj4+Pj4+Pj4+Pj4+ PiBpbnRvIHRoZSBoZXVyaXN0aWNzIHRlcnJpdG9yeSksIHRoYXQgaXMgYW5vdGhlciByZWFzb24g d2h5IEkgZmluZAo+Pj4+Pj4+Pj4+Pj4gdGhlCj4+Pj4+Pj4+Pj4+PiAib3IiIHBvbGljeSBpbiB0 aGUgZHJpdmVyIHF1ZXN0aW9uYWJsZS4KPj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+PiBXZSBjYW4g YWxzbyBhc2sgYSBxdWVzdGlvbiBvZiAtIElmIHdlIGdvIHdpdGggdGhlICJvciIgcG9saWN5LAo+ PiB3aHkKPj4+Pj4+Pj4+Pj4+IHJlcXVpcmUgTiBwZXItY29udGV4dCBpb2N0bHMgdG8gbW9kaWZ5 IHRoZSBnbG9iYWwgR1BVCj4+PiBjb25maWd1cmF0aW9uCj4+Pj4+Pj4+Pj4+PiBhbmQgbm90IGlu c3RlYWQgYWRkIGEgZ2xvYmFsIGRyaXZlciBpb2N0bCB0byBtb2RpZnkgdGhlIHN0YXRlPwo+Pj4+ Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+IElmIGEgZnV0dXJlIGhhcmR3YXJlIHJlcXVpcmVzLCBvciBl bmFibGVzLCB0aGUgcGVyLWNvbnRleHQKPj4+IGJlaGF2aW91cgo+Pj4+Pj4+Pj4+Pj4gaW4gYSBt b3JlIGVmZmljaWVudCB3YXksIHdlIGNvdWxkIHRoZW4gcmV2aXNpdCB0aGUgcHJvYmxlbQo+PiBz cGFjZS4KPj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+PiBJbiB0aGUgbWVhbiB0aW1lIEkgc2VlIHRo ZSAib3IiIHBvbGljeSBzb2x1dGlvbiBhcyBhZGRpbmcgc29tZQo+Pj4gQUJJCj4+Pj4+Pj4+Pj4+ PiB3aGljaCBkb2Vzbid0IGRvIGFueXRoaW5nIGZvciBtYW55IHVzZSBjYXNlcyB3aXRob3V0IGFu eSB3YXkKPj4+IGZvciB0aGUKPj4+Pj4+Pj4+Pj4+IHN5c2FkbWluIHRvIGVuYWJsZSBpdC4gQXQg dGhlIHNhbWUgdGltZSBtYXN0ZXIgc3lzZnMga25vYiBhdAo+Pj4gbGVhc3QKPj4+Pj4+Pj4+Pj4+ IGVuYWJsZXMgdGhlIHN5c2FkbWluIHRvIG1ha2UgYSBkZWNpc2lvbi4gSGVyZSBJIGFtIHRoaW5r aW5nCj4+PiBhYm91dCBhCj4+Pj4+Pj4+Pj4+PiByYW5kb20gY2xpZW50IGVudmlyb25tZW50IHdo ZXJlIG5vdCBhbGwgdXNlcnNwYWNlIGNvLQo+Pj4gb3BlcmF0ZXMsCj4+Pj4+Pj4+Pj4+PiBidXQg Zm9yCj4+Pj4+Pj4+Pj4+PiBpbnN0YW5jZSB1c2VyIGlzIHJ1bm5pbmcgdGhlIGZlYXR1cmUgYXdh cmUgbWVkaWEgc3RhY2ssIGFuZAo+Pj4+Pj4+Pj4+Pj4gbm9uLWZlYXR1cmUgYXdhcmUgT3BlbkNM LzNkIHN0YWNrLgo+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+IEkgZ3Vlc3MgdGhlIGNvbXBsZXRl IHN0b3J5IGJvaWxzIGRvd24gdG8gLSBpcyB0aGUgbWFzdGVyIHN5c2ZzCj4+PiBrbm9iCj4+Pj4+ Pj4+Pj4+PiByZWFsbHkgYSBwcm9ibGVtIGluIGNvbnRhaW5lciB1c2UgY2FzZXMuCj4+Pj4+Pj4+ Pj4+Pgo+Pj4+Pj4+Pj4+Pj4gUmVnYXJkcywKPj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+PiBUdnJ0 a28KPj4+Pj4+Pj4+Pj4gSGV5IFR2cnRrbywKPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4gVGhhbmtz IGZvciBzdW1tYXJpemluZyBhIGJ1bmNoIG9mIGRpc2N1c3Npb25zLgo+Pj4+Pj4+Pj4+PiBFc3Nl bnRpYWxseSBJIGFncmVlIHdpdGggZXZlcnkgeW91IHdyb3RlIGFib3ZlLgo+Pj4+Pj4+Pj4+Pgo+ Pj4+Pj4+Pj4+PiBJZiB3ZSBoYXZlIGEgZ2xvYmFsIHNldHRpbmcgKGRldGVybWluZWQgYnkgdGhl IE9SIHBvbGljeSksIHdoYXQncwo+Pj4gdGhlCj4+Pj4+Pj4+Pj4+IHBvaW50IG9mIHBlciBjb250 ZXh0IHNldHRpbmdzPwo+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+PiBJbiBEbWl0cnkncyBzY2VuYXJp bywgYWxsIHVzZXJzcGFjZSBhcHBsaWNhdGlvbnMgd2lsbCB3b3JrCj4+Pj4+Pj4+Pj4+IHRvZ2V0 aGVyIHRvCj4+Pj4+Pj4+Pj4+IHJlYWNoIHRoZSBjb25zZW5zdXMgc28gaXQgc291bmRzIGxpa2Ug d2UncmUgcmVpbXBsZW1lbnRpbmcgdGhlCj4+PiBwb2xpY3kKPj4+Pj4+Pj4+Pj4gdGhhdCBpcyBh bHJlYWR5IGV4aXN0aW5nIGluIHVzZXJzcGFjZS4KPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4gQW55 d2F5LCBJJ20gaW1wbGVtZW50aW5nIEpvb25hcycgc3VnZ2VzdGlvbi4gSG9wZWZ1bGx5Cj4+PiBz b21lYm9keSBlbHNlCj4+Pj4+Pj4+Pj4+IHRoYW4gbWUgcGljayBvbmUgb3IgdGhlIG90aGVyIDop Cj4+Pj4+Pj4+Pj4gSSdsbCBqdXN0IG1lbnRpb24gdGhlIHZvdGluZy9jb25zZW5zdXMgYXBwcm9h Y2ggdG8gc2VlIGlmIGFueW9uZQo+Pj4gZWxzZQo+Pj4+Pj4+Pj4+IGxpa2VzIGl0Lgo+Pj4+Pj4+ Pj4+Cj4+Pj4+Pj4+Pj4gRWFjaCBjb250ZXh0IGhhcyBhIENPTlRFWFRfUEFSQU1fSElOVF9TU0VV IHsgc21hbGwsCj4+PiBkb250Y2FyZSwgbGFyZ2UgfQo+Pj4+Pj4+Pj4+IChvciBzb21lIG90aGVy IGFic3RyYWN0IG5hbWVzKS4KPj4+Pj4+Pj4+IFllYWgsIHRoZSBwYXJhbSBuYW1lIHNob3VsZCBo YXZlIHRoZSB3b3JkIF9ISU5UXyBpbiBpdCB3aGVuIGl0J3MKPj4+IG5vdCBhCj4+Pj4+Pj4+PiBk ZWZpbml0aXZlIHNldC4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBUaGVyZSdzIG5vIGdsb2JhbCBzZXR0 ZXIgYWNyb3NzIGNvbnRhaW5lcnMsIG9ubHkgYSBzY2VuYXJpbyB3aGVuCj4+Pj4+Pj4+PiBldmVy eW9uZSBhZ3JlZXMgb3Igbm90LiBUYWxseWluZyB1cCB0aGUgdm90ZXMgYW5kIGdvaW5nIHdpdGgg YQo+Pj4gbWFqb3JpdHkKPj4+Pj4+Pj4+IHZvdGUgbWlnaHQgYmUgYW4gb3B0aW9uLCB0b28uCj4+ Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gUmVnYXJkcywgSm9vbmFzCj4+Pj4+Pj4+IFRyeWluZyB0byB0ZXN0 IHRoZSAiZXZlcnlvbmUgYWdyZWVzIiBhcHByb2FjaCBoZXJlLgo+Pj4+Pj4+IEl0J3Mgbm90IGV2 ZXJ5b25lIGFncmVlcywgYnV0IHRoZSBncmVhdGVyIGdvb2QuCj4+Pj4+Pgo+Pj4+Pj4gSSdtIGxv b2tpbmcgZm9yd2FyZCB0byB0aGUgZGVmaW5pdGlvbiBvZiB0aGUgZ3JlYXRlciBnb29kIDopCj4+ Pj4+PiBUdnJ0a28gd2FudGVkIHRvIGF2b2lkIHRoZSBoZXVyaXN0aWMgdGVycml0b3J5LCBpdCBz ZWVtcyBsaWtlIHdlJ3JlIGp1c3QKPj4+Pj4+IHN0ZXBwaW5nIGludG8gaXQuCj4+Pj4+Cj4+Pj4+ IEkgYW0gbm90IHN1cmUgdGhhdCAic21hbGwsIGRvbnRjYXJlLCBsYXJnZSIgbW9kZWxzIGJyaW5n cyBtdWNoLiBObyBvbmUKPj4+Pj4gd291bGQgcHJvYmFibHkgc2V0ICJkb250Y2FyZSIgc2luY2Ug d2UgaGF2ZSB0byBkZWZhdWx0IG5ldyBjb250ZXh0cwo+PiB0bwo+Pj4+PiBsYXJnZSB0byBiZSBj b21wYXRpYmxlLgo+Pj4+Pgo+Pj4+PiBEb24ndCBrbm93LCBJIHN0aWxsIHByZWZlciB0aGUgbWFz dGVyIGtub2Igb3B0aW9uLiBIb25lc3RseSBkb24ndCB5ZXQKPj4+Pj4gc2VlIHRoZSBjb250YWlu ZXJzIHVzZSBjYXNlIGFzIGEgcHJvYmxlbS4gVGhlcmUgaXMgYWx3YXlzIGEgbWFzdGVyCj4+Pj4+ IGRvbWFpbiBpbiBhbnkgc3lzdGVtIHdoZXJlIHRoZSBrbm9iIGNhbiBiZSBlbmFibGVkIGlmIHRo ZSBjdXN0b21lcnMKPj4gb24KPj4+Pj4gdGhlIHN5c3RlbSBhcmUgc3VjaCB0byB3YXJyYW50IGl0 LiBPbiBtaXhlZCBzeXN0ZW1zIGVuYWJsZSBpdCBvciBub3QKPj4+Pj4gc29tZW9uZSBhbHdheXMg c3VmZmVycy4gQW5kIHdpdGggdGhlIGtub2Igd2UgYXJlIGZyZWUgdG8gYWRkCj4+IGhldXJpc3Rp Y3MKPj4+Pj4gbGF0ZXIsIGtlZXAgdGhlIHVhcGksIGFuZCBqdXN0IGRlZmF1bHQgdGhlIGtub2Ig dG8gb24uCj4+Pj4KPj4+PiBNYXN0ZXIga25vYiBlZmZlY3RpdmVseSBtZWFucyBkZWFkIGNvZGUg YmVoaW5kIGEgc3dpdGNoLCB0aGF0J3Mgbm90Cj4+IHZlcnkKPj4+PiB1cHN0cmVhbSBmcmllbmRs eS4KPj4+Cj4+PiBIZXkgYXQgbGVhc3QgSSB3YXNuJ3QgcHJvcG9zaW5nIGEgbW9kcGFyYW0hIDop KSkKPj4+Cj4+PiBZZXMgaXQgaXMgbm90IHRoZSBiZXN0IHNvZnR3YXJlIHByYWN0aWNlLCB1cHN0 cmVhbSBvciBub3QsIGhvd2V2ZXIgSSBhbQo+Pj4gdHJ5aW5nIHRvIGJlIHByYWdtYXRpY2FsIGhl cmUgYW5kIGNob29zZSB0aGUgc2ltcGxlc3QsIHNtYWxsZXN0LCBnb29kCj4+PiBlbm91Z2gsIGFu ZCBsZWFzdCBoZWFkYWNoZSBpbmR1Y2luZyBpbiB0aGUgZnV0dXJlIHNvbHV0aW9uLgo+Pj4KPj4+ IE9uZSB3YXkgb2Ygb2YgbG9va2luZyBhdCB0aGUgbWFzdGVyIHN3aXRjaCBjb3VsZCBiZSBsaWtl IHR1bmUgeW91cgo+Pj4gc3lzdGVtIGZvciBYWVogLSBjaGFuZ2UgQ1BVIGZyZXF1ZW5jeSBnb3Zl cm5vciwgZGlzYWJsZSBTQVRBIGxpbmsKPj4+IHNhdmluZywgYWxsb3cgaTkxNSBtZWRpYSBvcHRp bWl6ZWQgbW9kZS4gU29tZSBsaXZlIGNvZGUgb3V0LCBzb21lIGRlYWQKPj4+IGNvZGUgaW4uCj4+ Pgo+Pj4gQnV0IHBlcmhhcHMgZGlzY3Vzc2lvbiBpcyBtb290IHNpbmNlIHdlIGRvbid0IGhhdmUg dXNlcnNwYWNlIGFueXdheS4KPj4+Cj4+PiBSZWdhcmRzLAo+Pj4KPj4+IFR2cnRrbwo+Pgo+PiBJ J20gc3VycHJpc2VkIGJ5IHRoZSAibm8gZGVhZGNvZGUgYmVoaW5kIGtub2JzIGNvbW1lbnQiLiBX ZSBkbyB0aGlzIGFsbAo+PiB0aGUgdGltZSAtICJkaXNwbGF5PTAiIGFueW9uZT8gT3IgImVuYWJs ZV9jbWRwYXJzZXI9ZmFsc2UiPwo+Pgo+PiBBbGxvd2luZyB1c2VyIHNwYWNlIHRvIHJlZHVjZSBF VSBwZXJmb3JtYW5jZSBmb3IgdGhlIHN5c3RlbSBhcyBhIHdob2xlCj4+IGlzIG5vdCBhIGdyZWF0 IGlkZWEgaW1oby4gT25seSBzeXNhZG1pbiBzaG91bGQgaGF2ZSB0aGUgcmlnaHQgdG8gbGV0IHRo YXQKPj4gaGFwcGVuLCBhbmQgYW4gYWRtaW4gc3dpdGNoIChJIFdPVUxEIGdvIHdpdGggYSBtb2Rw YXJhbSBwZXJzb25hbGx5KSBpcwo+PiBhIGdvb2Qgd2F5IHRvIGVuc3VyZSB0aGF0IHdlIGNhbiBn ZXQgdGhlIG9wdGltYWwgbWVkaWEgY29uZmlndXJhdGlvbiBmb3IKPj4gZGVkaWNhdGVkIG1lZGlh IHN5c3RlbXMsIHdoaWxlIGZvciBnZW5lcmFsIHN5c3RlbXMgd2UgZ2V0IHRoZSBiZXN0IG92ZXJh bGwKPj4gcGVyZm9ybWFuY2UgKG5vdCBqdXN0IGZhdm91cmluZyBtZWRpYSkuCj4+Cj4+IFdoeSB3 b3VsZCB3ZSB3YW50IHRvIG92ZXIgZW5naW5lZXIgdGhpcz8KPj4KPj4gSm9uCj4+IF9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+IEludGVsLWdmeCBtYWls aW5nIGxpc3QKPj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+PiBodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeApfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK