From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 4/7] drm/i915/perf: lock powergating configuration to default when active Date: Wed, 12 Sep 2018 09:03:27 +0100 Message-ID: References: <20180905142222.3251-1-tvrtko.ursulin@linux.intel.com> <20180905142222.3251-5-tvrtko.ursulin@linux.intel.com> <9450ba2c-0f62-88d9-de26-a82dc61cf0f8@intel.com> <153622864574.3050.17378497295783267410@skylake-alporthouse-com> <153622933425.3050.656484604120089123@skylake-alporthouse-com> <3f14bd57-3a23-7208-6072-6d51892994ca@intel.com> <4bfe6648-203f-fbc8-9bcd-7b4e28279d02@linux.intel.com> <6c567d44-6edd-0bc4-ccd7-dc678b6e5006@linux.intel.com> <9f0c7d11-73df-0bb3-296c-1fb3ce9a36ee@intel.com> <730a67ee-85ae-a9ea-c068-2ad330e7c319@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8444D6E48B for ; Wed, 12 Sep 2018 08:03:31 +0000 (UTC) In-Reply-To: <730a67ee-85ae-a9ea-c068-2ad330e7c319@intel.com> 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: Lionel Landwerlin , Chris Wilson , Intel-gfx@lists.freedesktop.org, Tvrtko Ursulin List-Id: intel-gfx@lists.freedesktop.org Ck9uIDExLzA5LzIwMTggMjE6MTEsIExpb25lbCBMYW5kd2VybGluIHdyb3RlOgo+IE9uIDEwLzA5 LzIwMTggMTQ6NDQsIFR2cnRrbyBVcnN1bGluIHdyb3RlOgo+Pgo+PiBPbiAwNy8wOS8yMDE4IDEw OjU1LCBMaW9uZWwgTGFuZHdlcmxpbiB3cm90ZToKPj4+IE9uIDA3LzA5LzIwMTggMTA6MzksIFR2 cnRrbyBVcnN1bGluIHdyb3RlOgo+Pj4+Cj4+Pj4gT24gMDcvMDkvMjAxOCAxMDoyMywgTGlvbmVs IExhbmR3ZXJsaW4gd3JvdGU6Cj4+Pj4+IE9uIDA3LzA5LzIwMTggMDk6MjYsIFR2cnRrbyBVcnN1 bGluIHdyb3RlOgo+Pj4+Pj4KPj4+Pj4+IE9uIDA2LzA5LzIwMTggMTE6MzYsIExpb25lbCBMYW5k d2VybGluIHdyb3RlOgo+Pj4+Pj4+IE9uIDA2LzA5LzIwMTggMTE6MjIsIENocmlzIFdpbHNvbiB3 cm90ZToKPj4+Pj4+Pj4gUXVvdGluZyBMaW9uZWwgTGFuZHdlcmxpbiAoMjAxOC0wOS0wNiAxMTox ODowMSkKPj4+Pj4+Pj4+IE9uIDA2LzA5LzIwMTggMTE6MTAsIENocmlzIFdpbHNvbiB3cm90ZToK Pj4+Pj4+Pj4+PiBRdW90aW5nIExpb25lbCBMYW5kd2VybGluICgyMDE4LTA5LTA2IDEwOjU3OjQ3 KQo+Pj4+Pj4+Pj4+PiBPbiAwNS8wOS8yMDE4IDE1OjIyLCBUdnJ0a28gVXJzdWxpbiB3cm90ZToK Pj4+Pj4+Pj4+Pj4+IEZyb206IExpb25lbCBMYW5kd2VybGluIDxsaW9uZWwuZy5sYW5kd2VybGlu QGludGVsLmNvbT4KPj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+PiBJZiBzb21lIG9mIHRoZSBjb250 ZXh0cyBzdWJtaXR0aW5nIHdvcmtsb2FkcyB0byB0aGUgR1BVIGhhdmUgCj4+Pj4+Pj4+Pj4+PiBi ZWVuCj4+Pj4+Pj4+Pj4+PiBjb25maWd1cmVkIHRvIHNodXRkb3duIHNsaWNlcy9zdWJzbGljZXMs IHdlIG1pZ2h0IGxvb3NlIHRoZSBOT0EKPj4+Pj4+Pj4+Pj4+IGNvbmZpZ3VyYXRpb25zIHdyaXR0 ZW4gaW4gdGhlIE5PQSBtdXhlcy4KPj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+PiBPbmUgcG9zc2li bGUgc29sdXRpb24gdG8gdGhpcyBwcm9ibGVtIGlzIHRvIHJlcHJvZ3JhbSB0aGUgCj4+Pj4+Pj4+ Pj4+PiBOT0EgbXV4ZXMKPj4+Pj4+Pj4+Pj4+IHdoZW4gd2Ugc3dpdGNoIHRvIGEgbmV3IGNvbnRl eHQuIFdlIGluaXRpYWxseSB0cmllZCB0aGlzIGluIHRoZQo+Pj4+Pj4+Pj4+Pj4gd29ya2Fyb3Vu ZCBiYXRjaGJ1ZmZlciBidXQgc29tZSBjb25jZXJucyB3aGVyZSByYWlzZWQgYWJvdXQgCj4+Pj4+ Pj4+Pj4+PiB0aGUgY29zdAo+Pj4+Pj4+Pj4+Pj4gb2YgcmVwcm9ncmFtbWluZyBhdCBldmVyeSBj b250ZXh0IHN3aXRjaC4gVGhpcyBzb2x1dGlvbiBpcyAKPj4+Pj4+Pj4+Pj4+IGFsc28gbm90Cj4+ Pj4+Pj4+Pj4+PiB3aXRob3V0IGNvbnNlcXVlbmNlcyBmcm9tIHRoZSB1c2Vyc3BhY2UgcG9pbnQg b2Ygdmlldy4gCj4+Pj4+Pj4+Pj4+PiBSZXByb2dyYW1taW5nCj4+Pj4+Pj4+Pj4+PiBvZiB0aGUg bXV4ZXMgY2FuIG9ubHkgaGFwcGVuIG9uY2UgdGhlIHBvd2VyZ2F0aW5nIAo+Pj4+Pj4+Pj4+Pj4g Y29uZmlndXJhdGlvbiBoYXMKPj4+Pj4+Pj4+Pj4+IGNoYW5nZWQgKHdoaWNoIGhhcHBlbnMgYWZ0 ZXIgY29udGV4dCBzd2l0Y2gpLiBUaGlzIG1lYW5zIGZvciAKPj4+Pj4+Pj4+Pj4+IGEgd2luZG93 Cj4+Pj4+Pj4+Pj4+PiBvZiB0aW1lIGR1cmluZyB0aGUgcmVjb3JkaW5nLCBjb3VudGVycyByZWNv cmRlZCBieSB0aGUgT0EgCj4+Pj4+Pj4+Pj4+PiB1bml0IG1pZ2h0Cj4+Pj4+Pj4+Pj4+PiBiZSBp bnZhbGlkLiBUaGlzIHJlcXVpcmVzIHVzZXJzcGFjZSBkZWFsaW5nIHdpdGggT0EgcmVwb3J0cyAK Pj4+Pj4+Pj4+Pj4+IHRvIGRpc2NhcmQKPj4+Pj4+Pj4+Pj4+IHRoZSBpbnZhbGlkIHZhbHVlcy4K Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+PiBNaW5pbWl6aW5nIHRoZSByZXByb2dyYW1taW5nIGNv dWxkIGJlIGltcGxlbWVudGVkIGJ5IAo+Pj4+Pj4+Pj4+Pj4gdHJhY2tpbmcgb2YgdGhlCj4+Pj4+ Pj4+Pj4+PiBsYXN0IHByb2dyYW1tZWQgY29uZmlndXJhdGlvbiBzb21ld2hlcmUgaW4gR0dUVCBh bmQgdXNlIAo+Pj4+Pj4+Pj4+Pj4gTUlfUFJFRElDQVRFCj4+Pj4+Pj4+Pj4+PiB0byBkaXNjYXJk IHNvbWUgb2YgdGhlIHByb2dyYW1taW5nIGNvbW1hbmRzLCBidXQgdGhlIGNvbW1hbmQgCj4+Pj4+ Pj4+Pj4+PiBzdHJlYW1lcgo+Pj4+Pj4+Pj4+Pj4gd291bGQgc3RpbGwgaGF2ZSB0byBwYXJzZSBh bGwgdGhlIE1JX0xSSSBpbnN0cnVjdGlvbnMgaW4gdGhlCj4+Pj4+Pj4+Pj4+PiB3b3JrYXJvdW5k IGJhdGNoYnVmZmVyLgo+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+IEFub3RoZXIgc29sdXRpb24s IHdoaWNoIHRoaXMgY2hhbmdlIGltcGxlbWVudHMsIGlzIHRvIHNpbXBseSAKPj4+Pj4+Pj4+Pj4+ IGRpc3JlZ2FyZAo+Pj4+Pj4+Pj4+Pj4gdGhlIHVzZXIgcmVxdWVzdGVkIGNvbmZpZ3VyYXRpb24g Zm9yIHRoZSBwZXJpb2Qgb2YgdGltZSB3aGVuIAo+Pj4+Pj4+Pj4+Pj4gaTkxNS9wZXJmCj4+Pj4+ Pj4+Pj4+PiBpcyBhY3RpdmUuIFRoZXJlIGlzIG5vIGtub3duIGlzc3VlIHdpdGggdGhpcyBhcGFy dCBmcm9tIGEgCj4+Pj4+Pj4+Pj4+PiBwZXJmb3JtYW5jZQo+Pj4+Pj4+Pj4+Pj4gcGVuYWxpdHkg Zm9yIHNvbWUgbWVkaWEgd29ya2xvYWRzIHRoYXQgYmVuZWZpdCBmcm9tIHJ1bm5pbmcgCj4+Pj4+ Pj4+Pj4+PiBvbiBhCj4+Pj4+Pj4+Pj4+PiBwYXJ0aWFsbHkgcG93ZXJnYXRlZCBHUFUuIFdlIGFs cmVhZHkgcHJldmVudCBSQzYgZnJvbSAKPj4+Pj4+Pj4+Pj4+IGFmZmVjdGluZyB0aGUKPj4+Pj4+ Pj4+Pj4+IHByb2dyYW1taW5nIHNvIGl0IGRvZXNuJ3Qgc291bmQgY29tcGxldGVseSB1bnJlYXNv bmFibGUgdG8gCj4+Pj4+Pj4+Pj4+PiBob2xkIG9uCj4+Pj4+Pj4+Pj4+PiBwb3dlcmdhdGluZyBm b3IgdGhlIHNhbWUgcmVhc29uLgo+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+IHYyOiBMZWF2ZSBS UENTIHByb2dyYW1taW5nIGluIGludGVsX2xyYy5jIChMaW9uZWwpCj4+Pj4+Pj4+Pj4+Pgo+Pj4+ Pj4+Pj4+Pj4gdjM6IFVwZGF0ZSBmb3Igcy91bmlvbiBpbnRlbF9zc2V1L3N0cnVjdCBpbnRlbF9z c2V1LyAoTGlvbmVsKQo+Pj4+Pj4+Pj4+Pj4gwqDCoMKgwqDCoMKgIE1vcmUgdG9faW50ZWxfY29u dGV4dCgpIChUdnJ0a28pCj4+Pj4+Pj4+Pj4+PiDCoMKgwqDCoMKgwqAgcy9kZXZfcHJpdi9pOTE1 LyAoVHZydGtvKQo+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+IFR2cnRrbyBVcnN1bGluOgo+Pj4+ Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+IHY0Ogo+Pj4+Pj4+Pj4+Pj4gwqDCoMKgICogUmViYXNlIGZv ciBtYWtlX3JwY3MgY2hhbmdlcy4KPj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+PiB2NToKPj4+Pj4+ Pj4+Pj4+IMKgwqDCoCAqIEFwcGx5IE9BIHJlc3RyaWN0aW9uIGZyb20gbWFrZV9ycGNzIGRpcmVj dGx5Lgo+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+IHY2Ogo+Pj4+Pj4+Pj4+Pj4gwqDCoMKgICog UmViYXNlIGZvciBjb250ZXh0IGltYWdlIHNldHVwIGNoYW5nZXMuCj4+Pj4+Pj4+Pj4+Pgo+Pj4+ Pj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogTGlvbmVsIExhbmR3ZXJsaW4gCj4+Pj4+Pj4+Pj4+PiA8 bGlvbmVsLmcubGFuZHdlcmxpbkBpbnRlbC5jb20+Cj4+Pj4+Pj4+Pj4+PiBTaWduZWQtb2ZmLWJ5 OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+Pj4+Pj4+Pj4+Pj4g LS0tCj4+Pj4+Pj4+Pj4+PiDCoMKgwqAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMg fMKgIDUgKysrKysKPj4+Pj4+Pj4+Pj4+IMKgwqDCoCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9scmMuYyB8IDMwIAo+Pj4+Pj4+Pj4+Pj4gKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t Cj4+Pj4+Pj4+Pj4+PiDCoMKgwqAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmggfMKg IDMgKysrCj4+Pj4+Pj4+Pj4+PiDCoMKgwqAgMyBmaWxlcyBjaGFuZ2VkLCAyOCBpbnNlcnRpb25z KCspLCAxMCBkZWxldGlvbnMoLSkKPj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMgCj4+Pj4+Pj4+Pj4+PiBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcGVyZi5jCj4+Pj4+Pj4+Pj4+PiBpbmRleCBjY2IyMDIzMGRm MmMuLmRkNjViNzJiZGRkNCAxMDA2NDQKPj4+Pj4+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcGVyZi5jCj4+Pj4+Pj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3BlcmYuYwo+Pj4+Pj4+Pj4+Pj4gQEAgLTE2NzcsNiArMTY3NywxMSBAQCBzdGF0aWMg dm9pZCAKPj4+Pj4+Pj4+Pj4+IGdlbjhfdXBkYXRlX3JlZ19zdGF0ZV91bmxvY2tlZChzdHJ1Y3Qg aTkxNV9nZW1fY29udGV4dCAqY3R4LAo+Pj4+Pj4+Pj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIENUWF9SRUcocmVnX3N0YXRlLCBzdGF0ZV9vZmZzZXQsIAo+Pj4+Pj4+Pj4+Pj4g ZmxleF9yZWdzW2ldLCB2YWx1ZSk7Cj4+Pj4+Pj4+Pj4+PiDCoMKgwqDCoMKgwqDCoCB9Cj4+Pj4+ Pj4+Pj4+PiArCj4+Pj4+Pj4+Pj4+PiArwqDCoMKgwqAgQ1RYX1JFRyhyZWdfc3RhdGUsIENUWF9S X1BXUl9DTEtfU1RBVEUsIAo+Pj4+Pj4+Pj4+Pj4gR0VOOF9SX1BXUl9DTEtfU1RBVEUsCj4+Pj4+ Pj4+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGdlbjhfbWFrZV9ycGNzKGRldl9wcml2 LAo+Pj4+Pj4+Pj4+Pj4gKyAmdG9faW50ZWxfY29udGV4dChjdHgsCj4+Pj4+Pj4+Pj4+PiArIGRl dl9wcml2LT5lbmdpbmVbUkNTXSktPnNzZXUpKTsKPj4+Pj4+Pj4+Pj4gSSB0aGluayB0aGVyZSBp cyBvbmUgaXNzdWUgSSBtaXNzZWQgb24gdGhlIHByZXZpb3VzIAo+Pj4+Pj4+Pj4+PiBpdGVyYXRp b25zIG9mIHRoaXMKPj4+Pj4+Pj4+Pj4gcGF0Y2guCj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+IFRo aXMgZ2VuOF91cGRhdGVfcmVnX3N0YXRlX3VubG9ja2VkKCkgaXMgY2FsbGVkIHdoZW4gdGhlIEdQ VSAKPj4+Pj4+Pj4+Pj4gaXMgcGFya2VkCj4+Pj4+Pj4+Pj4+IG9uIHRoZSBrZXJuZWwgY29udGV4 dC4KPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4gSXQncyBzdXBwb3NlZCB0byB1cGRhdGUgYWxsIGNv bnRleHRzLCBidXQgSSB0aGluayB3ZSBtaWdodCAKPj4+Pj4+Pj4+Pj4gbm90IGJlIGFibGUKPj4+ Pj4+Pj4+Pj4gdG8gdXBkYXRlIHRoZSBrZXJuZWwgY29udGV4dCBpbWFnZSB3aGlsZSB0aGUgR1BV IGlzIHVzaW5nIGl0Lgo+Pj4+Pj4+Pj4+IFRoZSBrZXJuZWwgY29udGV4dCBpcyBvbmx5IGV2ZXIg dGFrZW4gaW4gZXh0cmVtaXMgKHlvdSBhcmUgZWl0aGVyCj4+Pj4+Pj4+Pj4gcGFya2luZyBvciBz dGFsbGluZyB1c2Vyc3BhY2UpIHNvIEkgZG9uJ3QgY2FyZS4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBU aGUgcGF0Y2ggZXhwb3NpbmcgdGhlIFJQQ1MgY29uZmlndXJhdGlvbiB0byB1c2Vyc3BhY2Ugd2ls bCAKPj4+Pj4+Pj4+IG1ha2UgdXNlIG9mCj4+Pj4+Pj4+PiB0aGUga2VybmVsIGNvbnRleHQgd2hp bGUgT0EvcGVyZiBpcyBlbmFibGVkLiBFdmVuIGlmIGl0IAo+Pj4+Pj4+Pj4gcmVwcm9ncmFtcyB0 aGUKPj4+Pj4+Pj4+IGxvY2tlZCB2YWx1ZSB0aGF0IHdpbGwgYnJlYWsgdGhlIHBvd2VyIGNvbmZp Z3VyYXRpb24gc3RhYmlsaXR5IAo+Pj4+Pj4+Pj4gb24gR2VuMTEKPj4+Pj4+Pj4+IChiZWNhdXNl IHRoZSBsb2NrZWQgY29uZmlndXJhdGlvbiB3aWxsIGJlIGRpZmZlcmVudCBmcm9tIHRoZSAKPj4+ Pj4+Pj4+IGtlcm5lbAo+Pj4+Pj4+Pj4gY29udGV4dCBjb25maWd1cmF0aW9uKS4KPj4+Pj4+Pj4g U3VyZSwgYnV0IGFzIHlvdSBwb2ludCBvdXQgdGhhdCdzIG9ubHkgb24gY2hhbmdpbmcgY29uZmln dXJhdGlvbi4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gV2hhdCdzIG1pc3NpbmcgaW4gdGhlIHBhdGNoIGlz IHRoYXQgd2Ugb25seSBiYWlsIGVhcmx5IGlmIHRoZSAKPj4+Pj4+Pj4gbmV3IHNzZXUKPj4+Pj4+ Pj4gbWF0Y2hlcyB0aGUgY2UtPnNzZXUsIGJ1dCB0aGF0IGRvZXNuJ3QgbmVjZXNzYXJpbHkgbWF0 Y2ggd2hhdHMgCj4+Pj4+Pj4+IGluIHRoZQo+Pj4+Pj4+PiBjb250ZXh0IGR1ZSB0byBPQS4gKE9y IG1heWJlIEkgbWlzc2VkIHRoZSBjb252ZXJzaW9uIHRvIHJwY3MgCj4+Pj4+Pj4+IHZhbHVlIGFu ZAo+Pj4+Pj4+PiBjaGVja2luZy4pCj4+Pj4+Pj4+IC1DaHJpcwo+Pj4+Pj4+Pgo+Pj4+Pj4+Cj4+ Pj4+Pj4gWWVwLCBiZWNhdXNlIHRoZSBnZW44X21ha2VfcnBjcygpIHBvc3QgcHJvY2Vzc2VzIHRo ZSB2YWx1ZXMgc3RvcmUgCj4+Pj4+Pj4gYXQgdGhlIGdlbSBjb250ZXh0IGxldmVsLCB3ZSByaXNr IHJlcnVubmluZyB0aGUga2VybmVsIGNvbnRleHQgdG8gCj4+Pj4+Pj4gd3JpdGUgdGhlIGV4aXRp bmcgdmFsdWUuCj4+Pj4+Pj4gU29ycnkgdGhpcyBpcyBhbGwgc28gbWVzc3kgOigKPj4+Pj4+Cj4+ Pj4+PiBMZXRzIHNlZSBpZiBJIG1hbmFnZWQgdG8gZm9sbG93IGhlcmUuCj4+Pj4+Pgo+Pj4+Pj4g VGhlIGN1cnJlbnQgY29kZSBpbmRlZWQgYmFpbHMgb3V0IGF0IHRoZSBzZXQgY3R4IHBhcmFtIGxl dmVsIGlmIAo+Pj4+Pj4gdGhlIHJlcXVlc3RlZCBzdGF0ZSBtYXRjaGVzIHRoZSBjZS0+c3RhdGUu IE15IHRoaW5raW5nIHdhcyB0aGF0IAo+Pj4+Pj4gY2UtPnN0YXRlIGlzIHRoZSBtYXN0ZXIgc3Rh dGUgYW5kIHdoYXRldmVyIGhhcHBlbnMgaW4gInBvc3QgCj4+Pj4+PiBwcm9jZXNzaW5nIiB2aWEg Z2VuOF9tYWtlX3JwY3Mgc2hvdWxkIGJlIGhpZGRlbiBmcm9tIGl0IHNpbmNlIHRoZSAKPj4+Pj4+ IGRlc2lnbiBpcyB0aGF0IHRoZSBpOTE1X3BlcmYuYyB3aWxsIHJlLWNvbmZpZ3VyZSBhbGwgY29u dGV4dHMgd2hlbiAKPj4+Pj4+IHRoZSBPQSBhY3RpdmUgc3RhdHVzIGNoYW5nZXMgKHRvIGVpdGhl ciBkaXJlY3Rpb24pLgo+Pj4+Pj4KPj4+Pj4+IFNvIEkgZG9uJ3Qgc2VlIGEgcHJvYmxlbSBpbiB0 aG9zZSB0d28gaW50ZXJhY3Rpb25zLgo+Pj4+Pgo+Pj4+Pgo+Pj4+PiBMZXQncyBzYXkgeW91IGhh dmUgY29udGV4dEEgd2l0aCBzc2V1KHNsaWNlLHN1YnNsaWNlKT0oMHgxLzB4ZmYpIAo+Pj4+PiBm b3IgSUNMLgo+Pj4+Pgo+Pj4+PiBZb3UgdGhlbiBlbmFibGUgT0Egd2hpY2ggbG9ja3MgdGhlIGNv bmZpZ3VyYXRpb24gYXQgKDB4MSwweGYpLgo+Pj4+Pgo+Pj4+PiBUaGUga2VybmVsIGNvbnRleHQg aGFzIHJldGFpbmVkIGl0cyAoMHgxLzB4ZmYpIGNvbmZpZ3VyYXRpb24uCj4+Pj4+Cj4+Pj4+Cj4+ Pj4+IEFuZCBhZnRlciB5b3UgY2hhbmdlIHRoZSBjb25maWcgb2YgY29udGV4dEEgdG8gKDB4MSww eDcpLgo+Pj4+Pgo+Pj4+Pgo+Pj4+PiBUaGlzIHdvdWxkIGxlYWQgdG8gdGhlIGtlcm5lbCBjb250 ZXh0IHNjaGVkdWxlZCB3aXRoICgweDEsMHhmZikgCj4+Pj4+IHdoaWxlIE9BIGlzIGFjdGl2ZS4K Pj4+Pgo+Pj4+IE9rYXkgdGhhdCdzIGEgcHJvYmxlbSBkaXNjdXNzZWQgaW4gdGhlIHBhcmFncmFw aCBiZWxvdyAtIHRoYXQgdGhlIAo+Pj4+IGtlcm5lbCBjb250ZXh0IGlzIG5vdCB1cGRhdGVkIGF0 IGFsbC4gQnV0IGlzIGl0IGEgcHJvYmxlbSBmb3IgT0E/IAo+Pj4+IFdpbGwgaXQgbWVzcyB1cCBz b21lIGNvdW50ZXJzIGV2ZW4gaWYga2VybmVsIGNvbnRleHQgaXNuJ3QgZXhlY3V0aW5nIAo+Pj4+ IGFueXRoaW5nIGludGVyYWN0aW5nIHdpdGggdGhlbT8gT3IgaXMgaXQ/Cj4+Pgo+Pj4KPj4+IFdo YXQgdGhlIEhXIGlzIGdvaW5nIHRvIGRvIHRvIHRoZSBOT0EgbG9naWMgaW4gcG93ZXIgY29uZmln dXJhdGlvbiAKPj4+IGNoYW5nZXMgaXMgbm90IHJlYWxseSBkb2N1bWVudGVkLgo+Pj4gRXhwZXJp bWVudGFsbHkgb24gU0tMIEdUNCwgaXQgc2VlbXMgYSBjaGFuZ2UgaW4gcG93ZXIgY29uZmlndXJh dGlvbiAKPj4+IHdpbGwgdHJpZ2dlciBhIHBvd2VyIG9mZiBvZiBldmVyeXRoaW5nIGJlZm9yZSBh cHBseWluZyB0aGUgcG93ZXIgYXQgCj4+PiB0aGUgbmV3IGNvbmZpZ3VyYXRpb24uCj4+PiBTbyB0 aGF0IHdvdWxkIGltcGx5IGxvb3NpbmcgdGhlIE5PQSBwcm9ncmFtbWluZyB3aGVuIHdlIHN3aXRj aCB0byB0aGUgCj4+PiBrZXJuZWwgY29udGV4dCB3aGljaCBtZWFucyBpbnZhbGlkIHZhbHVlcyBp biB0aGUgY291bnRlcnMuCj4+Pgo+Pj4KPj4+Pgo+Pj4+Pgo+Pj4+Pj4KPj4+Pj4+IEFwYXJ0IGZy b20gb25lLCBnZXRfcGFyYW1fc3NldSB3aWxsIGxpZSBhIGJpdCAtIHdlIGNhbiBkaXNjdXNzIAo+ Pj4+Pj4gYWJvdXQgdGhpcyBvbmUgbW9yZS4gQXQgb25lIHBvaW50IEkgc3VnZ2VzdGVkIHdlIGhh dmUgdHdvIHNldHMgb2YgCj4+Pj4+PiBtYXNrcyBpbiB0aGUgdUFQSSwgcmVxdWVzdGVkIGFuZCBh Y3RpdmUgaW4gYSB3YXkuIFNvIHVzZXJzcGFjZSAKPj4+Pj4+IGNvdWxkIHF1ZXJ5IHdoYXQgaXQg c2V0IGFuZCB3aGF0IGlzIGFjdHVhbGx5IGFjdGl2ZS4KPj4+Pj4+Cj4+Pj4+PiBOb3cgc2Vjb25k IGlzc3VlIGlzIGlmIGk5MTVfcGVyZi5jIGlzIGFibGUgdG8gcmVwcm9ncmFtIHRoZSBrZXJuZWwg Cj4+Pj4+PiBjb25maWcuCj4+Pj4+Pgo+Pj4+Pj4gSGVyZSBpdHMgdHJ1ZSwgaXQgd2lsbCB3cml0 ZSB0byB0aGUgY29udGV4dCBpbWFnZSBhbmQgdGhhdCB3aWxsIAo+Pj4+Pj4gZ2V0IG92ZXJ3cml0 dGVuIGJ5IGNvbnRleHQgc2F2ZS4KPj4+Pj4+Cj4+Pj4+PiBJZiB0aGF0IGlzIGEgcHJvYmxlbSBm b3IgT0EsIEkgd2FzIGluaXRpYWxseSBpZiBhIHRocm93LWF3YXkgCj4+Pj4+PiBzZWNvbmQgImtl cm5lbCIgY29udGV4dCBjb3VsZCBiZSB1c2UgdG8gcmUtcHJvZ3JhbSB0aGUgcmVhbCBvbmUsIAo+ Pj4+Pj4gYnV0IHBlcmhhcHMgZXZlbiBzaW1wbGVyIC0gd2hhdCBhYm91dCBhIG1taW8gd3JpdGUg dG8gcHJvZ3JhbSB0aGUgCj4+Pj4+PiBSUENTIHdoaWxlIGtlcm5lbCBjb250ZXh0IGlzIGFjdGl2 ZT8KPj4+Pj4KPj4+Pj4KPj4+Pj4gRG9jdW1lbnRhdGlvbiBzYXlzIDogIlRoaXMgcmVnaXN0ZXIg bXVzdCBub3QgYmUgcHJvZ3JhbW1lZCBkaXJlY3RseSAKPj4+Pj4gdGhyb3VnaCBDUFUgTU1JTyBj eWNsZS4iCj4+Pj4+Cj4+Pj4+Cj4+Pj4+IFNvcnJ5IDooCj4+Pj4KPj4+PiBVZ2guLiBva2F5LCBo ZWxwIG1lIHVuZGVyc3RhbmQgaWYga2VybmVsIGNvbnRleHQgYWJzb2x1dGVseSBuZWVkcyB0byAK Pj4+PiBmb2xsb3cgdGhlICJsb2NrIiBmb3IgT0EgdG8gd29yayBhbmQgdGhlbiB3ZSdsbCBzZWUg d2hhdCB0byBkby4KPj4+Cj4+PiBJIHRoaW5rIHNvLgo+Pj4KPj4+IFlvdXIgaWRlYSBvZiBhIHRo cm93IGF3YXkgY29udGV4dCB0byByZXByb2dyYW1taW5nIGV2ZXJ5IHNlZW1zIHNvdW5kLgo+Pgo+ PiBJIHdhcyBpbiB0aGUgbWlkZGxlIG9mIHJlZmFjdG9yaW5nIHRoZSBzZXJpZXMgdG8gaW1wbGVt ZW50IHRoaXMgd2hlbiBJIAo+PiBzdGFydGVkIHN1c3BlY3RpbmcgdGhlIG5lZWQgZm9yIGl0Lgo+ Pgo+PiBQcmVtaXNlIG9mIHRoZSBwcm9ibGVtIHN0YXRlbWVudCB3YXMgdGhlIGtlcm5lbCBjb250 ZXh0IGRvZXNuJ3QgZ2V0IAo+PiB1cGRhdGVkIGJ5IHRoZSBPQSBjb2RlLCBidXQsIHRoZXJlIGlz IGEgbG9vcCBpbiAKPj4gZ2VuOF9jb25maWd1cmVfYWxsX2NvbnRleHRzIHdoaWNoIGdvZXMgdGhy b3VnaCBleGFjdGx5IGFsbCBvZiB0aGVtIAo+PiBhZnRlciBpdCBoYXMgaWRsZWQgdGhlIEdQVS4K Pj4KPj4gQUZBSUNTIHRoYXQgbWVhbnMgaXQgaXMgYWJsZSB0byBtYXAgdGhlIGtlcm5lbCBjb250 ZXh0IHN0YXRlIGFuZCBlZGl0IAo+PiBpdCBzbyBldmVyeXRoaW5nIHNlZW1zIGZpbmUgZnJvbSB0 aGlzIGFuZ2xlLiAoS2VybmVsIGNvbnRleHQgaXMgCj4+IHBlcm1hLXBpbm5lZCBpbiBzb2Z0d2Fy ZSwgYnV0IGFmdGVyIGlkbGluZyB0aGUgR1BVIHdlIGtub3cgaXQgaXMgbm90IAo+PiBhY3R1YWxs eSBvbiB0aGUgR1BVIHNvIGl0IHNhZmUgdG8gZWRpdCBpdCdzIGltYWdlLikKPj4KPj4gQW0gSSBt aXNzaW5nIHNvbWUgaG9sZSBoZXJlLCBhbmQgaWYgbm90LCB3aHkgZG9lcyB0aGUgY29kZSBuZWVk cyB0byAKPj4gaGF2ZSBhIHByaW1hcnkgdXBkYXRlIHZpYSBhIHJlcXVlc3QgaW4gCj4+IGdlbjhf c3dpdGNoX3RvX3VwZGF0ZWRfa2VybmVsX2NvbnRleHQ/IENvbnRleHQgaW1hZ2UgYWZ0ZXIgaWRs aW5nIAo+PiBzZWVtcyBhZ2FpbiBzdWZmaWNpZW50Lgo+IAo+IAo+IE15IHVuZGVyc3RhbmRpbmcg aXMgdGhhdCB0aGUgY3VycmVudCBjb2RlIHB1dHMgdGhlIEdQVSBpZGxlIG9uIHRoZSAKPiBrZXJu ZWwgY29udGV4dC4KPiBXaGVuIGlkbGluZyBzdG9wcywgdGhlIEdQVSB3aWxsIHNhdmUgdGhlIGxh c3QgdmFsdWVzIGZyb20gdGhlIEhXIAo+IHJlZ2lzdGVyIGludG8gdGhlIGtlcm5lbCBjb250ZXh0 IGltYWdlLgo+IFdlIGN1cnJlbnRseSBkb24ndCBzZWUgYW55IGlzc3VlIGJlY2F1c2Ugd2UgYWxz byBydW4gYSBzZXQgb2YgY29tbWFuZHMgCj4gb24gdGhlIGtlcm5lbCBjb250ZXh0IHByaW9yIHRv IGlkbGUgdGhhdCBtaXJyb3IgdGhlIGNvbnRleHRzIGltYWdlIGVkaXRpb24uCgpXZSBhY3R1YWxs eSByZXRpcmUgZXZlcnl0aGluZywgYW5kIHRoZSBrZXJuZWwgY29udGV4dCwgd2FpdCBmb3IgYW55 IApwZW5kaW5nIGludGVycnVwdHMgKGNvbnRleHQgc2F2ZSkgYW5kIGNoZWNrIHRoYXQgQ1MgcmVw b3J0cyBpZGxlLiBTbyBJIAp0aGluayBpdCBpcyBhY3R1YWxseSBzaW1wbGVyIHRoYW4gdGhlIE9B IGNvZGUgY3VycmVudGx5IGRvZXMgaXQuIEkganVzdCAKd2FudGVkIGEgd2F5IHRvIGV4cHJlc3Mg aXQgYXMgYSB0ZXN0LgoKPiBUaGF0IHdvbid0IGJlIHRoZSBjYXNlIGZvciB0aGUgUlBDUyByZWdp c3RlciBiZWNhdXNlIHdlIGNhbid0IGxvYWQgaXQgCj4gZnJvbSB0aGUgY29tbWFuZCBzdHJlYW1l ci4KPiAKPj4KPj4gV291bGQgaXQgYmUgcG9zc2libGUgdG8gZXhlcmNpc2UgdGhlIGh5cG90aGV0 aWNhbCBsb3NzIG9mIE5PQSAKPj4gY29uZmlndXJhdGlvbiBmcm9tIGFuIElHVCwgaWYga2VybmVs IGNvbnRleHQgd2Fzbid0IGNvcnJlY3RseSB1cGRhdGVkPwo+IAo+IAo+IFRoZSB0ZXN0IGNvbmZp Z3Mgc2F2ZWQgaW4gdGhlIGtlcm5lbCB1c2UgTk9BIGFuZCB0aGVpciBjb3VudGVycyBhcmUgCj4g cHJvZ3Jlc3NpbmcgYXQgZGlmZmVyZW50IHJhdGlvcyBmcm9tIHRoZSAiY29yZSBjbG9jayIgKFJJ TkdfVElNRVNUQU1QIAo+IHJlZ2lzdGVyKS4KPiBJbiBJR1QgdGVzdHMvcGVyZi5jLCB0aGUgZ2Vu OF9zYW5pdHlfY2hlY2tfdGVzdF9vYV9yZXBvcnRzKCkgdmVyaWZ5IHRoYXQgCj4gdGhlIGNvdW50 ZXJzIHByb2dyZXNzIGFzIGV4cGVjdGVkLgo+IAo+IEJ1dCBJIGNhbid0IHRlbGwgZnJvbSB3aGF0 IHBhcnQgb2YgdGhlIEdUIHRoZSB0ZXN0IGNvbmZpZ3MgYXJlIHNvdXJjaW5nIAo+IHNpZ25hbHMg ZnJvbS4gSWYgdGhleSBkbyBmcm9tIHVuc2xpY2UsIHRoZW4gdGhhdCB3b24ndCB3b3JrIDooCgpT byBub3QgdGVzdGFibGU/IFNoYWxsIHdlIHN0aWxsIGFwcGx5IHRoZSBkb2N0cmluZSBvZiAiaWYg aW4gZG91YnQgcmlwIAppdCBvdXQiPyBPciB0b28gcmlza3k/IFNob3VsZG4ndCBiZS4uIGxvb2tz IHByZXR0eSBvYnZpb3VzIHdlIGNoZWNrIApwcm9wZXJseSBmb3IgaWRsZS4gSWYgd2Ugc2ltcGxp ZnkgdGhlIHdvcnN0IHRoYXQgY2FuIGhhcHBlbiBpcyB0aGF0IE9BIApiZWNvbWVzIGdsaXRjaHkg cGFpcmVkIHdpdGggR2VuMTEgbWVkaWEgd29ya2xvYWRzIHdoaWNoIGlzIG5vdCBzbyAKY3JpdGlj YWwsIGJ1dCBJIGRvbid0IHRoaW5rIGl0IHdpbGwgYnJlYWsgdG8gc3RhcnQgd2l0aC4KClJlZ2Fy ZHMsCgpUdnJ0a28KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==