From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 43ECAC2D0DB for ; Mon, 20 Jan 2020 17:48:08 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 287B522527 for ; Mon, 20 Jan 2020 17:48:08 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 287B522527 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id B25CB6EAAA; Mon, 20 Jan 2020 17:48:07 +0000 (UTC) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 253BB6EAAD for ; Mon, 20 Jan 2020 17:48:04 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 20 Jan 2020 09:48:03 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,342,1574150400"; d="scan'208";a="219709068" Received: from stinkbox.fi.intel.com (HELO stinkbox) ([10.237.72.174]) by orsmga008.jf.intel.com with SMTP; 20 Jan 2020 09:48:01 -0800 Received: by stinkbox (sSMTP sendmail emulation); Mon, 20 Jan 2020 19:48:00 +0200 From: Ville Syrjala To: intel-gfx@lists.freedesktop.org Date: Mon, 20 Jan 2020 19:47:21 +0200 Message-Id: <20200120174728.21095-12-ville.syrjala@linux.intel.com> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20200120174728.21095-1-ville.syrjala@linux.intel.com> References: <20200120174728.21095-1-ville.syrjala@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 11/17] drm/i915: s/init_cdclk/init_cdclk_hw/ X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCkdp dmUgdGhlIGNkY2xrIGluaXQvdW5pbml0IGZ1bmN0aW9ucyBhIF9odyBzdWZmaXggdG8gbWFrZQpp dCBjbGVhciB0aGV5IGFyZSBhYm91dCBpbml0aWFsaXppbmcgdGhlIGFjdHVhbCBoYXJkd2FyZS4K SSdsbCBiZSB3YW50aW5nIHRvIHRvIGFkZCBhIGludGVsX2NkY2xrX2luaXQoKSB3aGljaCBpcwpw dXJlbHkgaW5pdGlhbGl6aW5nIHNvZnR3YXJlIHN0cnVjdHVyZXMuCgpTaWduZWQtb2ZmLWJ5OiBW aWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY2RjbGsuYyAgICB8IDI0ICsrKysrKysrKy0t LS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY2RjbGsuaCAgICB8 ICA0ICsrLS0KIC4uLi9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfcG93ZXIuYyAgICB8 IDE2ICsrKysrKy0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgMjIg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9jZGNsay5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jZGNsay5j CmluZGV4IDAwMjA0NGU4MDg2OC4uNzAxYTYzYzNjYTM4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NkY2xrLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9jZGNsay5jCkBAIC0xMTIyLDcgKzExMjIsNyBAQCBzdGF0aWMgdm9p ZCBza2xfc2FuaXRpemVfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQog CWRldl9wcml2LT5jZGNsay5ody52Y28gPSAtMTsKIH0KIAotc3RhdGljIHZvaWQgc2tsX2luaXRf Y2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQorc3RhdGljIHZvaWQgc2ts X2NkY2xrX2luaXRfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewogCXN0 cnVjdCBpbnRlbF9jZGNsa19jb25maWcgY2RjbGtfY29uZmlnOwogCkBAIC0xMTUxLDcgKzExNTEs NyBAQCBzdGF0aWMgdm9pZCBza2xfaW5pdF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCiAJc2tsX3NldF9jZGNsayhkZXZfcHJpdiwgJmNkY2xrX2NvbmZpZywgSU5WQUxJ RF9QSVBFKTsKIH0KIAotc3RhdGljIHZvaWQgc2tsX3VuaW5pdF9jZGNsayhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCitzdGF0aWMgdm9pZCBza2xfY2RjbGtfdW5pbml0X2h3KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIAlzdHJ1Y3QgaW50ZWxfY2RjbGtf Y29uZmlnIGNkY2xrX2NvbmZpZyA9IGRldl9wcml2LT5jZGNsay5odzsKIApAQCAtMTY4MSw3ICsx NjgxLDcgQEAgc3RhdGljIHZvaWQgYnh0X3Nhbml0aXplX2NkY2xrKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKIAlkZXZfcHJpdi0+Y2RjbGsuaHcudmNvID0gLTE7CiB9CiAKLXN0 YXRpYyB2b2lkIGJ4dF9pbml0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKK3N0YXRpYyB2b2lkIGJ4dF9jZGNsa19pbml0X2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKIHsKIAlzdHJ1Y3QgaW50ZWxfY2RjbGtfY29uZmlnIGNkY2xrX2NvbmZpZzsK IApAQCAtMTcwNiw3ICsxNzA2LDcgQEAgc3RhdGljIHZvaWQgYnh0X2luaXRfY2RjbGsoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCWJ4dF9zZXRfY2RjbGsoZGV2X3ByaXYsICZj ZGNsa19jb25maWcsIElOVkFMSURfUElQRSk7CiB9CiAKLXN0YXRpYyB2b2lkIGJ4dF91bmluaXRf Y2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQorc3RhdGljIHZvaWQgYnh0 X2NkY2xrX3VuaW5pdF9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJ c3RydWN0IGludGVsX2NkY2xrX2NvbmZpZyBjZGNsa19jb25maWcgPSBkZXZfcHJpdi0+Y2RjbGsu aHc7CiAKQEAgLTE3MTksNyArMTcxOSw3IEBAIHN0YXRpYyB2b2lkIGJ4dF91bmluaXRfY2RjbGso c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogfQogCiAvKioKLSAqIGludGVsX2Nk Y2xrX2luaXQgLSBJbml0aWFsaXplIENEQ0xLCisgKiBpbnRlbF9jZGNsa19pbml0X2h3IC0gSW5p dGlhbGl6ZSBDRENMSyBoYXJkd2FyZQogICogQGk5MTU6IGk5MTUgZGV2aWNlCiAgKgogICogSW5p dGlhbGl6ZSBDRENMSy4gVGhpcyBjb25zaXN0cyBtYWlubHkgb2YgaW5pdGlhbGl6aW5nIGRldl9w cml2LT5jZGNsay5odyBhbmQKQEAgLTE3MjcsMjcgKzE3MjcsMjcgQEAgc3RhdGljIHZvaWQgYnh0 X3VuaW5pdF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAgKiBkdXJp bmcgdGhlIGRpc3BsYXkgY29yZSBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZSwgYWZ0ZXIgd2hpY2gg dGhlIERNQyB3aWxsCiAgKiB0YWtlIGNhcmUgb2YgdHVybmluZyBDRENMSyBvZmYvb24gYXMgbmVl ZGVkLgogICovCi12b2lkIGludGVsX2NkY2xrX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg Kmk5MTUpCit2b2lkIGludGVsX2NkY2xrX2luaXRfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg Kmk5MTUpCiB7CiAJaWYgKElTX0dFTjlfTFAoaTkxNSkgfHwgSU5URUxfR0VOKGk5MTUpID49IDEw KQotCQlieHRfaW5pdF9jZGNsayhpOTE1KTsKKwkJYnh0X2NkY2xrX2luaXRfaHcoaTkxNSk7CiAJ ZWxzZSBpZiAoSVNfR0VOOV9CQyhpOTE1KSkKLQkJc2tsX2luaXRfY2RjbGsoaTkxNSk7CisJCXNr bF9jZGNsa19pbml0X2h3KGk5MTUpOwogfQogCiAvKioKLSAqIGludGVsX2NkY2xrX3VuaW5pdCAt IFVuaW5pdGlhbGl6ZSBDRENMSworICogaW50ZWxfY2RjbGtfdW5pbml0X2h3IC0gVW5pbml0aWFs aXplIENEQ0xLIGhhcmR3YXJlCiAgKiBAaTkxNTogaTkxNSBkZXZpY2UKICAqCiAgKiBVbmluaXRp YWxpemUgQ0RDTEsuIFRoaXMgaXMgZG9uZSBvbmx5IGR1cmluZyB0aGUgZGlzcGxheSBjb3JlCiAg KiB1bmluaXRpYWxpemF0aW9uIHNlcXVlbmNlLgogICovCi12b2lkIGludGVsX2NkY2xrX3VuaW5p dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3ZvaWQgaW50ZWxfY2RjbGtfdW5pbml0 X2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogewogCWlmIChJTlRFTF9HRU4oaTkx NSkgPj0gMTAgfHwgSVNfR0VOOV9MUChpOTE1KSkKLQkJYnh0X3VuaW5pdF9jZGNsayhpOTE1KTsK KwkJYnh0X2NkY2xrX3VuaW5pdF9odyhpOTE1KTsKIAllbHNlIGlmIChJU19HRU45X0JDKGk5MTUp KQotCQlza2xfdW5pbml0X2NkY2xrKGk5MTUpOworCQlza2xfY2RjbGtfdW5pbml0X2h3KGk5MTUp OwogfQogCiAvKioKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfY2RjbGsuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY2RjbGsuaApp bmRleCBhM2ZiN2I4ZThkMzEuLjRiOTY1ZGIwNzcyMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jZGNsay5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfY2RjbGsuaApAQCAtMjMsOCArMjMsOCBAQCBzdHJ1Y3QgaW50ZWxfY2Rj bGtfdmFscyB7CiB9OwogCiBpbnQgaW50ZWxfY3J0Y19jb21wdXRlX21pbl9jZGNsayhjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7Ci12b2lkIGludGVsX2NkY2xrX2lu aXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwotdm9pZCBpbnRlbF9jZGNsa191bmlu aXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwordm9pZCBpbnRlbF9jZGNsa19pbml0 X2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKK3ZvaWQgaW50ZWxfY2RjbGtfdW5p bml0X2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKIHZvaWQgaW50ZWxfaW5pdF9j ZGNsa19ob29rcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogdm9pZCBpbnRl bF91cGRhdGVfbWF4X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiB2 b2lkIGludGVsX3VwZGF0ZV9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5 X3Bvd2VyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfcG93 ZXIuYwppbmRleCAyZGMwMGQ0YjExNWIuLjM0MTJjNTZiZWE2ZCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmMKQEAgLTQ3NjMsNyAr NDc2Myw3IEBAIHN0YXRpYyB2b2lkIHNrbF9kaXNwbGF5X2NvcmVfaW5pdChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAKIAltdXRleF91bmxvY2soJnBvd2VyX2RvbWFpbnMtPmxv Y2spOwogCi0JaW50ZWxfY2RjbGtfaW5pdChkZXZfcHJpdik7CisJaW50ZWxfY2RjbGtfaW5pdF9o dyhkZXZfcHJpdik7CiAKIAlnZW45X2RidWZfZW5hYmxlKGRldl9wcml2KTsKIApAQCAtNDc4MCw3 ICs0NzgwLDcgQEAgc3RhdGljIHZvaWQgc2tsX2Rpc3BsYXlfY29yZV91bmluaXQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiAJZ2VuOV9kYnVmX2Rpc2FibGUoZGV2X3ByaXYp OwogCi0JaW50ZWxfY2RjbGtfdW5pbml0KGRldl9wcml2KTsKKwlpbnRlbF9jZGNsa191bmluaXRf aHcoZGV2X3ByaXYpOwogCiAJLyogVGhlIHNwZWMgZG9lc24ndCBjYWxsIGZvciByZW1vdmluZyB0 aGUgcmVzZXQgaGFuZHNoYWtlIGZsYWcgKi8KIAkvKiBkaXNhYmxlIFBHMSBhbmQgTWlzYyBJL08g Ki8KQEAgLTQ4MjQsNyArNDgyNCw3IEBAIHN0YXRpYyB2b2lkIGJ4dF9kaXNwbGF5X2NvcmVfaW5p dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGJvb2wgcmVzdW1lCiAKIAltdXRl eF91bmxvY2soJnBvd2VyX2RvbWFpbnMtPmxvY2spOwogCi0JaW50ZWxfY2RjbGtfaW5pdChkZXZf cHJpdik7CisJaW50ZWxfY2RjbGtfaW5pdF9odyhkZXZfcHJpdik7CiAKIAlnZW45X2RidWZfZW5h YmxlKGRldl9wcml2KTsKIApAQCAtNDg0MSw3ICs0ODQxLDcgQEAgc3RhdGljIHZvaWQgYnh0X2Rp c3BsYXlfY29yZV91bmluaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiAJ Z2VuOV9kYnVmX2Rpc2FibGUoZGV2X3ByaXYpOwogCi0JaW50ZWxfY2RjbGtfdW5pbml0KGRldl9w cml2KTsKKwlpbnRlbF9jZGNsa191bmluaXRfaHcoZGV2X3ByaXYpOwogCiAJLyogVGhlIHNwZWMg ZG9lc24ndCBjYWxsIGZvciByZW1vdmluZyB0aGUgcmVzZXQgaGFuZHNoYWtlIGZsYWcgKi8KIApA QCAtNDg4Myw3ICs0ODgzLDcgQEAgc3RhdGljIHZvaWQgY25sX2Rpc3BsYXlfY29yZV9pbml0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgYm9vbCByZXN1bWUKIAltdXRleF91bmxv Y2soJnBvd2VyX2RvbWFpbnMtPmxvY2spOwogCiAJLyogNS4gRW5hYmxlIENEIGNsb2NrICovCi0J aW50ZWxfY2RjbGtfaW5pdChkZXZfcHJpdik7CisJaW50ZWxfY2RjbGtfaW5pdF9odyhkZXZfcHJp dik7CiAKIAkvKiA2LiBFbmFibGUgREJVRiAqLwogCWdlbjlfZGJ1Zl9lbmFibGUoZGV2X3ByaXYp OwpAQCAtNDkwNSw3ICs0OTA1LDcgQEAgc3RhdGljIHZvaWQgY25sX2Rpc3BsYXlfY29yZV91bmlu aXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCWdlbjlfZGJ1Zl9kaXNhYmxl KGRldl9wcml2KTsKIAogCS8qIDMuIERpc2FibGUgQ0QgY2xvY2sgKi8KLQlpbnRlbF9jZGNsa191 bmluaXQoZGV2X3ByaXYpOworCWludGVsX2NkY2xrX3VuaW5pdF9odyhkZXZfcHJpdik7CiAKIAkv KgogCSAqIDQuIERpc2FibGUgUG93ZXIgV2VsbCAxIChQRzEpLgpAQCAtNDk5Nyw3ICs0OTk3LDcg QEAgc3RhdGljIHZvaWQgaWNsX2Rpc3BsYXlfY29yZV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKIAltdXRleF91bmxvY2soJnBvd2VyX2RvbWFpbnMtPmxvY2spOwogCiAJ LyogNC4gRW5hYmxlIENEQ0xLLiAqLwotCWludGVsX2NkY2xrX2luaXQoZGV2X3ByaXYpOworCWlu dGVsX2NkY2xrX2luaXRfaHcoZGV2X3ByaXYpOwogCiAJLyogNS4gRW5hYmxlIERCVUYuICovCiAJ aWNsX2RidWZfZW5hYmxlKGRldl9wcml2KTsKQEAgLTUwMjYsNyArNTAyNiw3IEBAIHN0YXRpYyB2 b2lkIGljbF9kaXNwbGF5X2NvcmVfdW5pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKIAlpY2xfZGJ1Zl9kaXNhYmxlKGRldl9wcml2KTsKIAogCS8qIDMuIERpc2FibGUgQ0Qg Y2xvY2sgKi8KLQlpbnRlbF9jZGNsa191bmluaXQoZGV2X3ByaXYpOworCWludGVsX2NkY2xrX3Vu aW5pdF9odyhkZXZfcHJpdik7CiAKIAkvKgogCSAqIDQuIERpc2FibGUgUG93ZXIgV2VsbCAxIChQ RzEpLgotLSAKMi4yNC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngK