From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 09/17] drm/i915: Debugfs support for GuC logging control Date: Wed, 20 Jul 2016 10:08:13 +0100 Message-ID: <578F3F7D.2030101@linux.intel.com> References: <1468158084-22028-1-git-send-email-akash.goel@intel.com> <1468158084-22028-10-git-send-email-akash.goel@intel.com> <578E0E04.9070306@linux.intel.com> <32eb73ab-f808-a267-e459-29b428f84ec9@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTP id 540C76E7B7 for ; Wed, 20 Jul 2016 09:08:15 +0000 (UTC) In-Reply-To: <32eb73ab-f808-a267-e459-29b428f84ec9@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Goel, Akash" , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDIwLzA3LzE2IDA1OjQyLCBHb2VsLCBBa2FzaCB3cm90ZToKPiBPbiA3LzE5LzIwMTYgNDo1 NCBQTSwgVHZydGtvIFVyc3VsaW4gd3JvdGU6Cj4+Cj4+IE9uIDEwLzA3LzE2IDE0OjQxLCBha2Fz aC5nb2VsQGludGVsLmNvbSB3cm90ZToKPj4+IEZyb206IFNhZ2FyIEFydW4gS2FtYmxlIDxzYWdh ci5hLmthbWJsZUBpbnRlbC5jb20+Cj4+Pgo+Pj4gVGhpcyBwYXRjaCBwcm92aWRlcyBkZWJ1Z2Zz IGludGVyZmFjZSBpOTE1X2d1Y19vdXRwdXRfY29udHJvbCBmb3IKPj4+IG9uIHRoZSBmbHkgZW5h YmxpbmcvZGlzYWJsaW5nIG9mIGxvZ2dpbmcgaW4gR3VDIGZpcm13YXJlIGFuZCBjb250cm9sbGlu Zwo+Pj4gdGhlIHZlcmJvc2l0eSBsZXZlbCBvZiBsb2dzLgo+Pj4gVGhlIHZhbHVlIHdyaXR0ZW4g dG8gdGhlIGZpbGUsIHNob3VsZCBoYXZlIGJpdCAwIHNldCB0byBlbmFibGUgbG9nZ2luZwo+Pj4g YW5kCj4+PiBiaXRzIDQtNyBzaG91bGQgY29udGFpbiB0aGUgdmVyYm9zaXR5IGluZm8uCj4+Pgo+ Pj4gdjI6IEFkZCBhIGZvcmNlZnVsIGZsdXNoLCB0byBjb2xsZWN0IGxlZnQgb3ZlciBsb2dzLCBv biBkaXNhYmxpbmcKPj4+IGxvZ2dpbmcuCj4+PiAgICAgIFVzZWZ1bCBmb3IgVmFsaWRhdGlvbi4K Pj4+Cj4+PiBTaWduZWQtb2ZmLWJ5OiBTYWdhciBBcnVuIEthbWJsZSA8c2FnYXIuYS5rYW1ibGVA aW50ZWwuY29tPgo+Pj4gU2lnbmVkLW9mZi1ieTogQWthc2ggR29lbCA8YWthc2guZ29lbEBpbnRl bC5jb20+Cj4+PiAtLS0KPj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMg ICAgICAgIHwgMzIgKysrKysrKysrKysrKysrKy0KPj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9ndWNfc3VibWlzc2lvbi5jIHwgNTcKPj4+ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwo+Pj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaCAgICAgICAgICAgfCAg MSArCj4+PiAgIDMgZmlsZXMgY2hhbmdlZCwgODkgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigt KQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMu Ywo+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+Pj4gaW5kZXggNWUz NTU2NS4uM2M5YzdmNyAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZGVidWdmcy5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ Pj4gQEAgLTI2NDQsNiArMjY0NCwzNSBAQCBzdGF0aWMgaW50IGk5MTVfZ3VjX2xvZ19kdW1wKHN0 cnVjdCBzZXFfZmlsZQo+Pj4gKm0sIHZvaWQgKmRhdGEpCj4+PiAgICAgICByZXR1cm4gMDsKPj4+ ICAgfQo+Pj4KPj4+ICtzdGF0aWMgaW50Cj4+PiAraTkxNV9ndWNfbG9nX2NvbnRyb2xfc2V0KHZv aWQgKmRhdGEsIHU2NCB2YWwpCj4+PiArewo+Pj4gKyAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gZGF0YTsKPj4+ICsgICAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2 LT5kZXZfcHJpdmF0ZTsKPj4KPj4gdG9faTkxNSBzaG91bGQgYmUgdXNlZC4KPiBTb3JyeSBmb3Ig bWlzc2luZyB0aGlzLCBuZWVkIHRvIHVzZSB0aGlzIGF0IG90aGVyIHBsYWNlcyBhbHNvLgo+Cj4+ Cj4+PiArICAgIGludCByZXQ7Cj4+PiArCj4+PiArICAgIHJldCA9IG11dGV4X2xvY2tfaW50ZXJy dXB0aWJsZSgmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+Pj4gKyAgICBpZiAocmV0KQo+Pj4gKyAgICAg ICAgcmV0dXJuIHJldDsKPj4+ICsKPj4+ICsgICAgaWYgKCFpOTE1LmVuYWJsZV9ndWNfc3VibWlz c2lvbiB8fCAhZGV2X3ByaXYtPmd1Yy5sb2cub2JqKSB7Cj4+Cj4+IFdvdWxkbid0IGd1Yy5sb2cu b2JqIGJlIGVub3VnaD8KPgo+IEFjdHVhbGx5IGZhaWx1cmUgaW4gYWxsb2NhdGlvbiBvZiBsb2cg YnVmZmVyLCBhdCBib290IHRpbWUsIGlzIG5vdAo+IGNvbnNpZGVyZWQgZmF0YWwgYW5kIHN1Ym1p c3Npb24gdGhyb3VnaCBHdUMgaXMgc3RpbGwgZG9uZS4KPiBTbyBpOTE1LmVuYWJsZV9ndWNfc3Vi bWlzc2lvbiBjb3VsZCBiZSAxIHdpdGggZ3VjLmxvZy5vYmogYXMgTlVMTC4KCklmIGd1Yy5sb2cu b2JqIGlzIE5VTEwgaXQgd2lsbCByZXR1cm4gLUVJTlZBTCB3aXRob3V0IHRyeWluZyB0byBjcmVh dGUgCml0IGhlcmUuIElmIHlvdSBpbnRlbmRlZCBmb3IgdGhpcyBmdW5jdGlvbiB0byB0cnkgYW5k IGNyZWF0ZSB0aGUgbG9nIApvYmplY3QgaWYgbm90IGFscmVhZHkgcHJlc2VudCwgdmlhIGk5MTVf Z3VjX2xvZ19jb250cm9sLCBpbiB0aGF0IGNhc2UgCnRoZSBjb25kaXRpb24gYWJvdmUgc2hvdWxk IG9ubHkgYmUgaWYgKCFpOTE1LmVuYWJsZV9ndWNfc3VibWlzaXNvbiksIG5vPwoKPj4KPj4+ICsg ICAgICAgIHJldCA9IC1FSU5WQUw7Cj4+PiArICAgICAgICBnb3RvIGVuZDsKPj4+ICsgICAgfQo+ Pj4gKwo+Pj4gKyAgICBpbnRlbF9ydW50aW1lX3BtX2dldChkZXZfcHJpdik7Cj4+PiArICAgIHJl dCA9IGk5MTVfZ3VjX2xvZ19jb250cm9sKGRldiwgdmFsKTsKPj4+ICsgICAgaW50ZWxfcnVudGlt ZV9wbV9wdXQoZGV2X3ByaXYpOwo+Pj4gKwo+Pj4gK2VuZDoKPj4+ICsgICAgbXV0ZXhfdW5sb2Nr KCZkZXYtPnN0cnVjdF9tdXRleCk7Cj4+PiArICAgIHJldHVybiByZXQ7Cj4+PiArfQo+Pj4gKwo+ Pj4gK0RFRklORV9TSU1QTEVfQVRUUklCVVRFKGk5MTVfZ3VjX2xvZ19jb250cm9sX2ZvcHMsCj4+ PiArICAgICAgICAgICAgTlVMTCwgaTkxNV9ndWNfbG9nX2NvbnRyb2xfc2V0LAo+Pj4gKyAgICAg ICAgICAgICIweCUwOGxseFxuIik7Cj4+Cj4+IERvZXMgdGhlIHJlYWRiYWNrIHN0aWxsIHdvcmsg d2l0aCBubyBnZXQgbWV0aG9kPwo+Cj4gcmVhZGJhY2sgd2lsbCBnaXZlIGEgJ1Blcm1pc3Npb24g ZGVuaWVkJyBlcnJvcgoKSXMgdGhhdCB3aGF0IHdlIHdhbnQ/IEkgdGhpbmsgaXQgd291bGQgYmUg bmljZSB0byBhbGxvdyByZWFkLWJhY2sgdW5sZXNzIAp0aGVyZSBpcyBhIHNwZWNpZmljIHJlYXNv biB3aHkgaXQgc2hvdWxkbid0IGJlIGFsbG93ZWQuCgo+Pgo+Pj4gKwo+Pj4gICBzdGF0aWMgaW50 IGk5MTVfZWRwX3Bzcl9zdGF0dXMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQo+Pj4g ICB7Cj4+PiAgICAgICBzdHJ1Y3QgZHJtX2luZm9fbm9kZSAqbm9kZSA9IG0tPnByaXZhdGU7Cj4+ PiBAQCAtNTQ2NCw3ICs1NDkzLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X2RlYnVnZnNf ZmlsZXMgewo+Pj4gICAgICAgeyJpOTE1X2ZiY19mYWxzZV9jb2xvciIsICZpOTE1X2ZiY19mY19m b3BzfSwKPj4+ICAgICAgIHsiaTkxNV9kcF90ZXN0X2RhdGEiLCAmaTkxNV9kaXNwbGF5cG9ydF90 ZXN0X2RhdGFfZm9wc30sCj4+PiAgICAgICB7Imk5MTVfZHBfdGVzdF90eXBlIiwgJmk5MTVfZGlz cGxheXBvcnRfdGVzdF90eXBlX2ZvcHN9LAo+Pj4gLSAgICB7Imk5MTVfZHBfdGVzdF9hY3RpdmUi LCAmaTkxNV9kaXNwbGF5cG9ydF90ZXN0X2FjdGl2ZV9mb3BzfQo+Pj4gKyAgICB7Imk5MTVfZHBf dGVzdF9hY3RpdmUiLCAmaTkxNV9kaXNwbGF5cG9ydF90ZXN0X2FjdGl2ZV9mb3BzfSwKPj4+ICsg ICAgeyJpOTE1X2d1Y19sb2dfY29udHJvbCIsICZpOTE1X2d1Y19sb2dfY29udHJvbF9mb3BzfQo+ Pj4gICB9Owo+Pj4KPj4+ICAgdm9pZCBpbnRlbF9kaXNwbGF5X2NyY19pbml0KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n dWNfc3VibWlzc2lvbi5jCj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1p c3Npb24uYwo+Pj4gaW5kZXggOGNjMzFjNi4uMmUzYjcyMyAxMDA2NDQKPj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwo+Pj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCj4+PiBAQCAtMTkzLDYgKzE5MywxNiBA QCBzdGF0aWMgaW50IGhvc3QyZ3VjX2ZvcmNlX2xvZ2J1ZmZlcl9mbHVzaChzdHJ1Y3QKPj4+IGlu dGVsX2d1YyAqZ3VjKQo+Pj4gICAgICAgcmV0dXJuIGhvc3QyZ3VjX2FjdGlvbihndWMsIGRhdGEs IDIpOwo+Pj4gICB9Cj4+Pgo+Pj4gK3N0YXRpYyBpbnQgaG9zdDJndWNfbG9nZ2luZ19jb250cm9s KHN0cnVjdCBpbnRlbF9ndWMgKmd1YywgdTMyCj4+PiBjb250cm9sX3ZhbCkKPj4+ICt7Cj4+PiAr ICAgIHUzMiBkYXRhWzJdOwo+Pj4gKwo+Pj4gKyAgICBkYXRhWzBdID0gSE9TVDJHVUNfQUNUSU9O X1VLX0xPR19FTkFCTEVfTE9HR0lORzsKPj4+ICsgICAgZGF0YVsxXSA9IGNvbnRyb2xfdmFsOwo+ Pj4gKwo+Pj4gKyAgICByZXR1cm4gaG9zdDJndWNfYWN0aW9uKGd1YywgZGF0YSwgMik7Cj4+PiAr fQo+Pj4gKwo+Pj4gICAvKgo+Pj4gICAgKiBJbml0aWFsaXNlLCB1cGRhdGUsIG9yIGNsZWFyIGRv b3JiZWxsIGRhdGEgc2hhcmVkIHdpdGggdGhlIEd1Qwo+Pj4gICAgKgo+Pj4gQEAgLTE0NTUsMyAr MTQ2NSw1MCBAQCB2b2lkIGk5MTVfZ3VjX3JlZ2lzdGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp Cj4+PiAgICAgICBndWNfbG9nX2xhdGVfc2V0dXAoZGV2KTsKPj4+ICAgICAgIG11dGV4X3VubG9j aygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+Pj4gICB9Cj4+PiArCj4+PiAraW50IGk5MTVfZ3VjX2xv Z19jb250cm9sKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVpbnQ2NF90IGNvbnRyb2xfdmFsKQo+ Pj4gK3sKPj4+ICsgICAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKPj4KPj4gdG9faTkxNQo+Pgo+PiBBY3R1YWxseSwgZnVuY3Rpb24gc2hvdWxk IHRha2UgZGV2X3ByaXYgaWYgbm90IGV2ZW4gZ3VjIGRlcGVuZGluZyBvbiB0aGUKPj4gZXN0YWJs aXNoZWQgY29udmVudGlvbiBpbiB0aGUgZmlsZS4KPj4KPiBPayBmb3IgYWxsIHRoZSBuZXcgbG9n Z2luZyByZWxhdGVkIGV4cG9ydGVkIGZ1bmN0aW9ucywgd2lsbCB1c2UgZGV2X3ByaXYuCgpPciBp bnRlbF9ndWMgd2hlcmUgYXBwbGljYWJsZSwgcGxlYXNlIGxvb2sgaW4gZ3VjIGNvZGUgdG8gc2Vl IHdoYXQgaXMgCm1vc3RseSB1c2VkLiBUaGVyZSBpcyBhbHNvIGd1Y190b19pOTE1IGhlbHBlciBv ciBzb21ldGhpbmcuCgo+Cj4+PiArICAgIHVuaW9uIGd1Y19sb2dfY29udHJvbCBsb2dfcGFyYW07 Cj4+PiArICAgIGludCByZXQ7Cj4+PiArCj4+PiArICAgIGxvZ19wYXJhbS5sb2dnaW5nX2VuYWJs ZWQgPSBjb250cm9sX3ZhbCAmIDB4MTsKPj4+ICsgICAgbG9nX3BhcmFtLnZlcmJvc2l0eSA9IChj b250cm9sX3ZhbCA+PiA0KSAmIDB4RjsKPj4+ICsKPj4+ICsgICAgaWYgKGxvZ19wYXJhbS52ZXJi b3NpdHkgPCBHVUNfTE9HX1ZFUkJPU0lUWV9NSU4gfHwKPj4+ICsgICAgICAgIGxvZ19wYXJhbS52 ZXJib3NpdHkgPiBHVUNfTE9HX1ZFUkJPU0lUWV9NQVgpCj4+PiArICAgICAgICByZXR1cm4gLUVJ TlZBTDsKPj4+ICsKPj4+ICsgICAgLyogVGhpcyBjb21iaW5hdGlvbiBkb2Vzbid0IG1ha2Ugc2Vu c2UgJiB3b24ndCBoYXZlIGFueSBlZmZlY3QgKi8KPj4+ICsgICAgaWYgKCFsb2dfcGFyYW0ubG9n Z2luZ19lbmFibGVkICYmIChpOTE1Lmd1Y19sb2dfbGV2ZWwgPCAwKSkKPj4+ICsgICAgICAgIHJl dHVybiAtRUlOVkFMOwo+Pgo+PiBIbSwgZGlzYWJsaW5nIHdoaWxlIGFscmVhZHkgZGlzYWJsZWQg LSB3aHkgc2hvdWxkIHRoYXQgcmV0dXJuIGFuIGVycm9yPwo+PiBNaWdodCBiZSBhbm5veWluZyBp biBzY3JpcHRzLgo+Cj4gSnVzdCB0byBtYWtlIHRoZSBVc2VyIGF3YXJlLiBPayB3aWxsIHN1cHBy ZXNzIHRoaXMgYW5kIHJldHVybiAwLgoKR29vZCwgYmVjYXVzZSBpdCB3b3VsZCBiZSByZWFsbHkg YW5ub3lpbmcgc2luY2UgeW91IGRvbid0IGltcGxlbWVudCAKcmVhZGJhY2sgYXMgd2VsbC4gRm9y IGV4YW1wbGU6CgplY2hvIDB4MCA+IGd1Y19sb2dnaW5nX2NvbnRyb2wKCj0gLUVJTlZBTAoKIldo YXQncyB3cm9uZz8gV2hhdCdzIHRoZSBjdXJyZW50IHN0YXR1cz8iCgpjYXQgZ3VjX2xvZ2dpbmdf Y29udHJvbAoKPSAtRUFDRVNTIChvciB3aGF0ZXZlcikKCiJXaGF0PyE/IgoKOikKCj4+Cj4+PiAr Cj4+PiArICAgIHJldCA9IGhvc3QyZ3VjX2xvZ2dpbmdfY29udHJvbCgmZGV2X3ByaXYtPmd1Yywg bG9nX3BhcmFtLnZhbHVlKTsKPj4+ICsgICAgaWYgKHJldCA8IDApIHsKPj4+ICsgICAgICAgIERS TV9ERUJVR19EUklWRVIoImhvc3QyZ3VjIGFjdGlvbiBmYWlsZWRcbiIpOwo+Pgo+PiBBZGQgcmV0 IHRvIHRoZSBsb2cgc2luY2UgaXQgaXMgZWFzeT8KPj4KPiBmaW5lIHdpbGwgZG8gdGhhdC4KPj4+ ICsgICAgICAgIHJldHVybiByZXQ7Cj4+PiArICAgIH0KPj4+ICsKPj4+ICsgICAgaTkxNS5ndWNf bG9nX2xldmVsID0gbG9nX3BhcmFtLnZlcmJvc2l0eTsKPj4+ICsKPj4+ICsgICAgLyogSWYgbG9n X2xldmVsIHdhcyBzZXQgYXMgLTEgYXQgYm9vdCB0aW1lLCB0aGVuIHRoZSByZWxheQo+Pj4gY2hh bm5lbCBmaWxlCj4+PiArICAgICAqIHdvdWxkbid0IGhhdmUgYmVlbiBjcmVhdGVkIGJ5IG5vdyBh bmQgaW50ZXJydXB0cyBhbHNvIHdvdWxkCj4+PiBub3QgaGF2ZQo+Pj4gKyAgICAgKiBiZWVuIGVu YWJsZWQuCj4+PiArICAgICAqLwo+Pj4gKyAgICBpZiAoIWRldl9wcml2LT5ndWMubG9nLnJlbGF5 X2NoYW4pIHsKPj4+ICsgICAgICAgIHJldCA9IGd1Y19sb2dfbGF0ZV9zZXR1cChkZXYpOwo+Pj4g KyAgICAgICAgaWYgKCFyZXQpCj4+PiArICAgICAgICAgICAgZ2VuOV9lbmFibGVfZ3VjX2ludGVy cnVwdHMoZGV2X3ByaXYpOwo+Pgo+PiBIbSwgbG9vayBhdCB0aGUgYWJvdmUgYW5kIGJlbG93LCBk byB3ZSBuZWVkIHRvIGNyZWF0ZSB0aGUgcmVsYXkgY2hhbm5lbAo+PiBpZiBsb2dnaW5nX2VuYWJs ZWQgPT0gZmFsc2UgPwo+Cj4gQ2FuIGNvbWUgaGVyZSBvbmx5IGlmIGxvZ2dpbmcgaXMgZW5hYmxl ZCwgYnkgdGhlIHZpcnR1ZSBvZiBhYm92ZSBjaGVjaywKPiAgICAgICAgIC8qIFRoaXMgY29tYmlu YXRpb24gZG9lc24ndCBtYWtlIHNlbnNlICYgd29uJ3QgaGF2ZSBhbnkgZWZmZWN0ICovCj4gICAg ICAgICBpZiAoIWxvZ19wYXJhbS5sb2dnaW5nX2VuYWJsZWQgJiYgKGk5MTUuZ3VjX2xvZ19sZXZl bCA8IDApKQo+ICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4KPiBXaGVuIGd1Y19sb2dfbGV2ZWwg PCAwLCBmaXJzdCB3cml0ZSBvbiB0aGlzIGZpbGUgYnkgVXNlciBzaG91bGQgYmUgdG8KPiBlbmFi bGUgbG9nZ2luZy4KCk9rYXkganVzdCBtYWtlIHN1cmUgdGhhdCB0aGUgcmVsYXkgY2hhbm5lbCBp cyBub3QgY3JlYXRlZCBvbiByZXBlYXRlZCAKZGlzYWJsaW5nLgoKUmVnYXJkcywKClR2cnRrbwpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK