From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: Re: [PATCH 02/10] drm/i915/pmu: Expose a PMU interface for perf queries Date: Fri, 29 Sep 2017 13:46:00 +0100 Message-ID: <150668916043.27384.4775104905419025307@mail.alporthouse.com> References: <20170929123500.3186-1-tvrtko.ursulin@linux.intel.com> <20170929123500.3186-3-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4CF306EB8D for ; Fri, 29 Sep 2017 12:46:35 +0000 (UTC) In-Reply-To: <20170929123500.3186-3-tvrtko.ursulin@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Tvrtko Ursulin , Intel-gfx@lists.freedesktop.org Cc: Peter Zijlstra List-Id: intel-gfx@lists.freedesktop.org UXVvdGluZyBUdnJ0a28gVXJzdWxpbiAoMjAxNy0wOS0yOSAxMzozNDo1MikKPiBGcm9tOiBUdnJ0 a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+IAo+IEZyb206IENocmlzIFdp bHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+IEZyb206IFR2cnRrbyBVcnN1bGluIDx0 dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Cj4gRnJvbTogRG1pdHJ5IFJvZ296aGtpbiA8ZG1pdHJ5 LnYucm9nb3poa2luQGludGVsLmNvbT4KPiAKPiBUaGUgZmlyc3QgZ29hbCBpcyB0byBiZSBhYmxl IHRvIG1lYXN1cmUgR1BVIChhbmQgaW52aWR1YWwgcmluZykgYnVzeW5lc3MKPiB3aXRob3V0IGhh dmluZyB0byBwb2xsIHJlZ2lzdGVycyBmcm9tIHVzZXJzcGFjZS4gKFdoaWNoIG5vdCBvbmx5IGlu Y3Vycwo+IGhvbGRpbmcgdGhlIGZvcmNld2FrZSBsb2NrIGluZGVmaW5pdGVseSwgcGVydHVyYmlu ZyB0aGUgc3lzdGVtLCBidXQgYWxzbwo+IHJ1bnMgdGhlIHJpc2sgb2YgaGFuZ2luZyB0aGUgbWFj aGluZS4pIEFzIGFuIGFsdGVybmF0aXZlIHdlIGNhbiB1c2UgdGhlCj4gcGVyZiBldmVudCBjb3Vu dGVyIGludGVyZmFjZSB0byBzYW1wbGUgdGhlIHJpbmcgcmVnaXN0ZXJzIHBlcmlvZGljYWxseQo+ IGFuZCBzZW5kIHRob3NlIHJlc3VsdHMgdG8gdXNlcnNwYWNlLgo+IAo+IEZ1bmN0aW9uYWxpdHkg d2UgYXJlIGV4cG9ydGluZyB0byB1c2Vyc3BhY2UgaXMgdmlhIHRoZSBleGlzdGluZyBwZXJmIFBN VQo+IEFQSSBhbmQgY2FuIGJlIGV4ZXJjaXNlZCB2aWEgdGhlIGV4aXN0aW5nIHRvb2xzLiBGb3Ig ZXhhbXBsZToKPiAKPiAgIHBlcmYgc3RhdCAtYSAtZSBpOTE1L3JjczAtYnVzeS8gLUkgMTAwMAo+ IAo+IFdpbGwgcHJpbnQgdGhlIHJlbmRlciBlbmdpbmUgYnVzeW5uZXMgb25jZSBwZXIgc2Vjb25k LiBBbGwgdGhlIHBlcmZvcm1hbmNlCj4gY291bnRlcnMgY2FuIGJlIGVudW1lcmF0ZWQgKHBlcmYg bGlzdCkgYW5kIGhhdmUgdGhlaXIgdW5pdCBvZiBtZWFzdXJlCj4gY29ycmVjdGx5IHJlcG9ydGVk IGluIHN5c2ZzLgo+IAo+IHYxLXYyIChDaHJpcyBXaWxzb24pOgo+IAo+IHYyOiBVc2UgYSBjb21t b24gdGltZXIgZm9yIHRoZSByaW5nIHNhbXBsaW5nLgo+IAo+IHYzOiAoVHZydGtvIFVyc3VsaW4p Cj4gICogRGVjb3VwbGUgdUFQSSBmcm9tIGk5MTUgZW5naW5lIGlkcy4KPiAgKiBDb21wbGV0ZSB1 QVBJIGRlZmluZXMuCj4gICogUmVmYWN0b3Igc29tZSBjb2RlIHRvIGhlbHBlcnMgZm9yIGNsYXJp dHkuCj4gICogU2tpcCBzYW1wbGluZyBkaXNhYmxlZCBlbmdpbmVzLgo+ICAqIEV4cG9zZSBjb3Vu dGVycyBpbiBzeXNmcy4KPiAgKiBQYXNzIGluIGZha2UgcmVncyB0byBhdm9pZCBudWxsIHB0ciBk ZXJlZiBpbiBwZXJmIGNvcmUuCj4gICogQ29udmVydCB0byBjbGFzcy9pbnN0YW5jZSB1QVBJLgo+ ICAqIFVzZSBzaGFyZWQgZHJpdmVyIGNvZGUgZm9yIHJjNiByZXNpZGVuY3ksIHBvd2VyIGFuZCBm cmVxdWVuY3kuCj4gCj4gdjQ6IChEbWl0cnkgUm9nb3poa2luKQo+ICAqIFJlZ2lzdGVyIFBNVSB3 aXRoIC50YXNrX2N0eF9ucj1wZXJmX2ludmFsaWRfY29udGV4dAo+ICAqIEV4cG9zZSBjcHVtYXNr IGZvciB0aGUgUE1VIHdpdGggdGhlIHNpbmdsZSBDUFUgaW4gdGhlIG1hc2sKPiAgKiBQcm9wZXJs eSBzdXBwb3J0IHBtdS0+c3RvcCgpOiBpdCBzaG91bGQgY2FsbCBwbXUtPnJlYWQoKQo+ICAqIFBy b3Blcmx5IHN1cHBvcnQgcG11LT5kZWwoKTogaXQgc2hvdWxkIGNhbGwgc3RvcChldmVudCwgUEVS Rl9FRl9VUERBVEUpCj4gICogSW50cm9kdWNlIHJlZmNvdW50aW5nIG9mIGV2ZW50IHN1YnNjcmlw dGlvbnMuCj4gICogTWFrZSBwbXUuYnVzeV9zdGF0cyBhIHJlZmNvdW50ZXIgdG8gYXZvaWQgYnVz eSBzdGF0cyBnb2luZyBhd2F5Cj4gICAgd2l0aCBzb21lIGRlbGV0ZWQgZXZlbnQuCj4gICogRXhw b3NlIGNwdW1hc2sgZm9yIGk5MTUgUE1VIHRvIGF2b2lkIG11bHRpcGxlIGV2ZW50cyBjcmVhdGlv biBvZgo+ICAgIHRoZSBzYW1lIHR5cGUgZm9sbG93ZWQgYnkgY291bnRlciBhZ2dyZWdhdGlvbiBi eSBwZXJmLXN0YXQuCj4gICogVHJhY2sgQ1BVcyBnZXR0aW5nIG9ubGluZS9vZmZsaW5lIHRvIG1p Z3JhdGUgcGVyZiBjb250ZXh0LiBJZiAobGlrZWx5KQo+ICAgIGNwdW1hc2sgd2lsbCBpbml0aWFs bHkgc2V0IENQVTAsIENPTkZJR19CT09UUEFSQU1fSE9UUExVR19DUFUwIHdpbGwgYmUKPiAgICBu ZWVkZWQgdG8gc2VlIGVmZmVjdCBvZiBDUFUgc3RhdHVzIHRyYWNraW5nLgo+ICAqIEVuZCByZXN1 bHQgaXMgdGhhdCBvbmx5IGdsb2JhbCBldmVudHMgYXJlIHN1cHBvcnRlZCBhbmQgcGVyZiBzdGF0 Cj4gICAgd29ya3MgY29ycmVjdGx5Lgo+ICAqIERlbnkgcGVyZiBkcml2ZXIgbGV2ZWwgc2FtcGxp bmcgLSBpdCBpcyBwcm9oaWJpdGVkIGZvciB1bmNvcmUgUE1VLgo+IAo+IHY1OiAoVHZydGtvIFVy c3VsaW4pCj4gCj4gICogRG9uJ3QgaGFyZGNvZGUgbnVtYmVyIG9mIGVuZ2luZSBzYW1wbGVycy4K PiAgKiBSZXdyaXRlIGV2ZW50IHJlZi1jb3VudGluZyBmb3IgY29ycmVjdG5lc3MgYW5kIHNpbXBs aWNpdHkuCj4gICogU3RvcmUgaW5pdGlhbCBjb3VudGVyIHZhbHVlIHdoZW4gc3RhcnRpbmcgYWxy ZWFkeSBlbmFibGVkIGV2ZW50cwo+ICAgIHRvIGNvcnJlY3RseSByZXBvcnQgdmFsdWVzIHRvIGFs bCBsaXN0ZW5lcnMuCj4gICogRml4IFJDNiByZXNpZGVuY3kgcmVhZG91dC4KPiAgKiBDb21tZW50 cywgR1BMIGhlYWRlci4KPiAKPiB2NjoKPiAgKiBBZGQgbWlzc2luZyBlbnRyeSB0byB2NCBjaGFu Z2Vsb2cuCj4gICogRml4IGFjY291bnRpbmcgaW4gQ1BVIGhvdHBsdWcgY2FzZSBieSBjb3B5aW5n IHRoZSBhcHByb2FjaCBmcm9tCj4gICAgYXJjaC94ODYvZXZlbnRzL2ludGVsL2NzdGF0ZS5jLiAo RG1pdHJ5IFJvZ296aGtpbikKPiAKPiB2NzoKPiAgKiBMb2cgZmFpbHVyZSBtZXNzYWdlIG9ubHkg b24gZmFpbHVyZS4KPiAgKiBSZW1vdmUgQ1BVIGhvdHBsdWcgbm90aWZpY2F0aW9uIHN0YXRlIG9u IHVucmVnaXN0ZXIuCj4gCj4gdjg6Cj4gICogRml4IGVycm9yIHVud2luZCBvbiBmYWlsZWQgcmVn aXN0cmF0aW9uLgo+ICAqIENoZWNrcGF0Y2ggY2xlYW51cC4KPiAKPiB2OToKPiAgKiBEcm9wIHRo ZSBlbmVyZ3kgbWV0cmljLCBpdCBpcyBhdmFpbGFibGUgdmlhIGludGVsX3JhcGxfcGVyZi4KPiAg ICAoVmlsbGUgU3lyasOkbMOkKQo+ICAqIFVzZSBIQVNfUkM2KHApLiAoQ2hyaXMgV2lsc29uKQo+ ICAqIEhhbmRsZSB1bnN1cHBvcnRlZCBub24tZW5naW5lIGV2ZW50cy4gKERtaXRyeSBSb2dvemhr aW4pCj4gICogUmViYXNlIGZvciBpbnRlbF9yYzZfcmVzaWRlbmN5X25zIG5lZWRpbmcgY2FsbGVy IG1hbmFnZWQKPiAgICBydW50aW1lIHBtLgo+ICAqIERyb3AgSEFTX1JDNiBjaGVja3MgZnJvbSB0 aGUgcmVhZCBjYWxsYmFjayBzaW5jZSBjcmVhdGluZyB0aG9zZQo+ICAgIGV2ZW50cyB3aWxsIGJl IHJlamVjdGVkIGF0IGluaXQgdGltZSBhbHJlYWR5Lgo+ICAqIEFkZCBjb3VudGVyIHVuaXRzIHRv IHN5c2ZzIHNvIHBlcmYgc3RhdCBvdXRwdXQgaXMgbmljZXIuCj4gICogQ2xlYW51cCB0aGUgYXR0 cmlidXRlIHRhYmxlcyBmb3IgYnJldml0eSBhbmQgcmVhZGFiaWxpdHkuCj4gCj4gdjEwOgo+ICAq IEZpeGVkIHF1ZXVlZCBhY2NvdW50aW5nLgo+IAo+IHYxMToKPiAgKiBNb3ZlIGludGVsX2VuZ2lu ZV9sb29rdXBfdXNlciB0byBpbnRlbF9lbmdpbmVfY3MuYwo+ICAqIENvbW1pdCB1cGRhdGUuIChK b29uYXMgTGFodGluZW4pCj4gCj4gdjEyOgo+ICAqIE1vcmUgYWNjdXJhdGUgc2FtcGxpbmcuIChD aHJpcyBXaWxzb24pCj4gICogU3RvcmUgYW5kIHJlcG9ydCBmcmVxdWVuY3kgaW4gTUh6IGZvciBi ZXR0ZXIgdXNhYmlsaXR5IGZyb20KPiAgICBwZXJmIHN0YXQuCj4gICogUmVtb3ZlZCBtZXRyaWNz OiBxdWV1ZWQsIGludGVycnVwdHMsIHJjNiBjb3VudGVycy4KPiAgKiBTYW1wbGUgZW5naW5lIGJ1 c3luZXNzIGJhc2VkIG9uIHNlcW5vIGRpZmZlcmVuY2Ugb25seQo+ICAgIGZvciBsZXNzIE1NSU8g KGFuZCBmb3JjZXdha2UpIG9uIGFsbCBwbGF0Zm9ybXMuIChDaHJpcyBXaWxzb24pCj4gCj4gU2ln bmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gU2ln bmVkLW9mZi1ieTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KPiBT aWduZWQtb2ZmLWJ5OiBEbWl0cnkgUm9nb3poa2luIDxkbWl0cnkudi5yb2dvemhraW5AaW50ZWwu Y29tPgo+IENjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+IENj OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiBDYzogRG1pdHJ5IFJv Z296aGtpbiA8ZG1pdHJ5LnYucm9nb3poa2luQGludGVsLmNvbT4KPiBDYzogUGV0ZXIgWmlqbHN0 cmEgPHBldGVyekBpbmZyYWRlYWQub3JnPgo+IC0tLQo+ICtzdGF0aWMgdm9pZAo+ICt1cGRhdGVf c2FtcGxlKHN0cnVjdCBpOTE1X3BtdV9zYW1wbGUgKnNhbXBsZSwgdTMyIHVuaXQsIHUzMiB2YWwp Cj4gK3sKPiArICAgICAgIC8qCj4gKyAgICAgICAgKiBTaW5jZSB3ZSBhcmUgZG9pbmcgc3RvaGFz dGljYWwgc2FtcGxpbmcgZm9yIHRoZXNlIGNvdW50ZXIsCgpzdG9jaGFzdGljCgo+ICsgICAgICAg ICogYXZlcmFnZSB0aGUgZGVsdGEgd2l0aCB0aGUgcHJldmlvdXMgdmFsdWUgZm9yIGJldHRlciBh Y2N1cmFjeS4KPiArICAgICAgICAqLwo+ICsgICAgICAgc2FtcGxlLT5jdXIgKz0gZGl2X3U2NCgo dTY0KShzYW1wbGUtPnByZXYgKyB2YWwpICogdW5pdCwgMik7CgpkaXZfdTY0KG11bF8zMl8zMihz YW1wbGUtPnByZXYgKyB2YWwsIHVuaXQpLCAyKQoKPiArICAgICAgIHNhbXBsZS0+cHJldiA9IHZh bDsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgZW5naW5lc19zYW1wbGUoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQo+ICt7Cj4gKyAgICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmU7Cj4gKyAgICAgICBlbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKPiArICAgICAgIGJv b2wgZncgPSBmYWxzZTsKPiArCj4gKyAgICAgICBpZiAoKGRldl9wcml2LT5wbXUuZW5hYmxlICYg RU5HSU5FX1NBTVBMRV9NQVNLKSA9PSAwKQo+ICsgICAgICAgICAgICAgICByZXR1cm47Cj4gKwo+ ICsgICAgICAgaWYgKCFkZXZfcHJpdi0+Z3QuYXdha2UpCj4gKyAgICAgICAgICAgICAgIHJldHVy bjsKPiArCj4gKyAgICAgICBpZiAoIWludGVsX3J1bnRpbWVfcG1fZ2V0X2lmX2luX3VzZShkZXZf cHJpdikpCj4gKyAgICAgICAgICAgICAgIHJldHVybjsKPiArCj4gKyAgICAgICBmb3JfZWFjaF9l bmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaWQpIHsKPiArICAgICAgICAgICAgICAgdTMyIGN1cnJl bnRfc2Vxbm8gPSBpbnRlbF9lbmdpbmVfZ2V0X3NlcW5vKGVuZ2luZSk7Cj4gKyAgICAgICAgICAg ICAgIHUzMiBsYXN0X3NlcW5vID0gaW50ZWxfZW5naW5lX2xhc3Rfc3VibWl0KGVuZ2luZSk7Cj4g KyAgICAgICAgICAgICAgIHUzMiB2YWw7Cj4gKwo+ICsgICAgICAgICAgICAgICB2YWwgPSAhaTkx NV9zZXFub19wYXNzZWQoY3VycmVudF9zZXFubywgbGFzdF9zZXFubyk7Cj4gKwo+ICsgICAgICAg ICAgICAgICB1cGRhdGVfc2FtcGxlKCZlbmdpbmUtPnBtdS5zYW1wbGVbSTkxNV9TQU1QTEVfQlVT WV0sIFBFUklPRCwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwpOwoKUGVyc29u YWxseSBJIHRoaW5rCgl1cGRhdGVfc2FtcGxlKCZlbmdpbmUtPnBtdS5zYW1wbGVbSTkxNV9TQU1Q TEVfQlVTWV0sCgkJICAgICAgUEVSSU9ELCB2YWwpOwpjYXJyaWVzIGJldHRlciB2aXN1YWwgd2Vp Z2h0aW5nLgoKPiArCj4gKyAgICAgICAgICAgICAgIGlmICh2YWwgJiYgKGVuZ2luZS0+cG11LmVu YWJsZSAmCj4gKyAgICAgICAgICAgICAgICAgICAoQklUKEk5MTVfU0FNUExFX1dBSVQpIHwgQklU KEk5MTVfU0FNUExFX1NFTUEpKSkpIHsKPiArICAgICAgICAgICAgICAgICAgICAgICBmdyA9IGdy YWJfZm9yY2V3YWtlKGRldl9wcml2LCBmdyk7Cj4gKwo+ICsgICAgICAgICAgICAgICAgICAgICAg IHZhbCA9IEk5MTVfUkVBRF9GVyhSSU5HX0NUTChlbmdpbmUtPm1taW9fYmFzZSkpOwo+ICsgICAg ICAgICAgICAgICB9IGVsc2Ugewo+ICsgICAgICAgICAgICAgICAgICAgICAgIHZhbCA9IDA7Cj4g KyAgICAgICAgICAgICAgIH0KPiArCj4gKyAgICAgICAgICAgICAgIHVwZGF0ZV9zYW1wbGUoJmVu Z2luZS0+cG11LnNhbXBsZVtJOTE1X1NBTVBMRV9XQUlUXSwgUEVSSU9ELAo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICEhKHZhbCAmIFJJTkdfV0FJVCkpOwo+ICsKPiArICAgICAgICAg ICAgICAgdXBkYXRlX3NhbXBsZSgmZW5naW5lLT5wbXUuc2FtcGxlW0k5MTVfU0FNUExFX1NFTUFd LCBQRVJJT0QsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgISEodmFsICYgUklOR19X QUlUX1NFTUFQSE9SRSkpOwo+ICsgICAgICAgfQo+ICsKPiArICAgICAgIGlmIChmdykKPiArICAg ICAgICAgICAgICAgaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9wdXQoZGV2X3ByaXYsIEZPUkNFV0FL RV9BTEwpOwo+ICsKPiArICAgICAgIGludGVsX3J1bnRpbWVfcG1fcHV0KGRldl9wcml2KTsKCk9r LgoKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgZnJlcXVlbmN5X3NhbXBsZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gK3sKPiArICAgICAgIGlmIChkZXZfcHJpdi0+cG11LmVu YWJsZSAmCj4gKyAgICAgICAgICAgY29uZmlnX2VuYWJsZWRfbWFzayhJOTE1X1BNVV9BQ1RVQUxf RlJFUVVFTkNZKSkgewo+ICsgICAgICAgICAgICAgICB1MzIgdmFsOwo+ICsKPiArICAgICAgICAg ICAgICAgdmFsID0gZGV2X3ByaXYtPnJwcy5jdXJfZnJlcTsKPiArICAgICAgICAgICAgICAgaWYg KGRldl9wcml2LT5ndC5hd2FrZSAmJgo+ICsgICAgICAgICAgICAgICAgICAgaW50ZWxfcnVudGlt ZV9wbV9nZXRfaWZfaW5fdXNlKGRldl9wcml2KSkgewo+ICsgICAgICAgICAgICAgICAgICAgICAg IHZhbCA9IGludGVsX2dldF9jYWdmKGRldl9wcml2LAo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEk5MTVfUkVBRF9OT1RSQUNFKEdFTjZfUlBTVEFUMSkpOwo+ ICsgICAgICAgICAgICAgICAgICAgICAgIGludGVsX3J1bnRpbWVfcG1fcHV0KGRldl9wcml2KTsK PiArICAgICAgICAgICAgICAgfQo+ICsKPiArICAgICAgICAgICAgICAgdXBkYXRlX3NhbXBsZSgm ZGV2X3ByaXYtPnBtdS5zYW1wbGVbX19JOTE1X1NBTVBMRV9GUkVRX0FDVF0sIDEsCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW50ZWxfZ3B1X2ZyZXEoZGV2X3ByaXYsIHZhbCkpOwo+ ICsgICAgICAgfQo+ICsKPiArICAgICAgIGlmIChkZXZfcHJpdi0+cG11LmVuYWJsZSAmCj4gKyAg ICAgICAgICAgY29uZmlnX2VuYWJsZWRfbWFzayhJOTE1X1BNVV9SRVFVRVNURURfRlJFUVVFTkNZ KSkgewo+ICsgICAgICAgICAgICAgICB1cGRhdGVfc2FtcGxlKCZkZXZfcHJpdi0+cG11LnNhbXBs ZVtfX0k5MTVfU0FNUExFX0ZSRVFfUkVRXSwgMSwKPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbnRlbF9ncHVfZnJlcShkZXZfcHJpdiwgZGV2X3ByaXYtPnJwcy5jdXJfZnJlcSkpOwo+ ICsgICAgICAgfQpPay4KPiArfQoKTG9va3MgZ29vZCBhcyB0aGUgaW50cm9kdWN0b3J5IHNldCBv ZiBjb3VudGVycy4gSSB0cnVzdCB0aGUgaW1wcm92ZW1lbnRzCnRvIHRoZSBwZXJmX2V2ZW50IGlu dGVncmF0aW9uIGFyZSBnb29kIChhcyB5b3UgY2FuIHRlbGwgZnJvbSB0aGUgZWFybGllcgpwYXRj aCwgSSBoYXZlIG5vIGlkZWEgd2hhdCBJJ20gZG9pbmcgdGhlcmUgOykKClJldmlld2VkLWJ5OiBD aHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KLUNocmlzCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK