From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: [PATCH] drm/i915: Fallback to reserve forcewake if primary ack missing Date: Fri, 27 Oct 2017 17:04:21 +0300 Message-ID: <20171027140421.15752-1-mika.kuoppala@linux.intel.com> References: <20171026140144.12267-1-mika.kuoppala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 0540E6E943 for ; Fri, 27 Oct 2017 14:04:35 +0000 (UTC) In-Reply-To: <20171026140144.12267-1-mika.kuoppala@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: intel-gfx@lists.freedesktop.org Cc: Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org VGhlcmUgaXMgYSBwb3NzaWJpbGl0eSBvbiBnZW45IGhhcmR3YXJlIHRvIG1pc3MgdGhlIGZvcmNl d2FrZSBhY2sKbWVzc2FnZS4gVGhlIHJlY29tbWVuZGVkIHdvcmthcm91bmQgaXMgdG8gdXNlIGFu b3RoZXIgZnJlZQpiaXQgYW5kIHRvZ2dsZSBpdCB1bnRpbCBvcmlnaW5hbCBiaXQgaXMgc3VjY2Vz c2Z1bGx5IGFja25vd2xlZGdlZC4KClNvbWUgZnV0dXJlIGdlbjkgcmV2cyBtaWdodCBvciBtaWdo dCBub3QgZml4IHRoZSB1bmRlcmx5aW5nIGlzc3VlIGJ1dAp0aGUgZmFsbGJhY2sgdG8gcmVzZXJ2 ZSBiaXQgZGFuY2UgY2FuIGJlIGNvbnNpZGVyZWQgYXMgaGFybWxlc3M6CndpdGhvdXQgdGhlIGFj ayB0aW1lb3V0IHdlIG5ldmVyIHJlYWNoIHRoZSByZXNlcnZlIGJpdCBmb3JjZXdha2UuClRodXMg YXMgb2Ygbm93IHdlIGFkb3B0IGEgYmxhbmtldCBhcHByb2FjaCBmb3IgYWxsIGdlbjkgYW5kIGxl YXZlCnRoZSBieXBhc3NpbmcgdGhlIHJlc2VydmUgYml0IGFwcHJvYWNoIGZvciBmdXR1cmUgcGF0 Y2hlcyBpZgpjb3JyZXNwb25kaW5nIGh3IHJldmlzaW9ucyBkbyBhcHBlYXIuCgpDb21taXQgODNl MzMzNzIwNGIyICgiZHJtL2k5MTU6IEluY3JlYXNlIG1heGltdW0gcG9sbGluZyB0aW1lIHRvIDUw bXMKZm9yIGZvcmNld2FrZSByZXF1ZXN0L2NsZWFyIGFjayIpIGRpZCBpbmNyZWFzZSB0aGUgZm9y Y2V3YWtlIHRpbWVvdXQuCklmIHRoZSBpc3N1ZSB3YXMgYSBkZWxheWVkIGFjaywgZnV0dXJlIHdv cmsgY291bGQgaW5jbHVkZSBmaW5kaW5nCmEgc3VpdGFibGUgdGltZW91dCB2YWx1ZSBib3RoIGZv ciBwcmltYXJ5IGFjayBhbmQgcmVzZXJ2ZSB0b2dnbGUKdG8gcmVkdWNlIHRoZSB3b3JzdCBjYXNl IGxhdGVuY3kuCgp2MjogdXNlIGJpdCAxNSwgbmFtaW5nLCBjb21tZW50IChDaHJpcyksIG9ubHkg d2FpdCBmYWxsYmFjayBhY2sKClJlZmVyZW5jZXM6IEhTREVTICMxNjA0MjU0NTI0ClJlZmVyZW5j ZXM6IGh0dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjA1MQpD YzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CkNjOiBSb2RyaWdvIFZp dmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+CkNjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVy c3VsaW5AaW50ZWwuY29tPgpDYzogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGlu dXguaW50ZWwuY29tPgpDYzogU2FnYXIgQXJ1biBLYW1ibGUgPHNhZ2FyLmEua2FtYmxlQGludGVs LmNvbT4KU2lnbmVkLW9mZi1ieTogTWlrYSBLdW9wcGFsYSA8bWlrYS5rdW9wcGFsYUBsaW51eC5p bnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAgfCAgIDUg Ky0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jIHwgMTQxICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKy0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxMzQgaW5zZXJ0aW9u cygrKSwgMTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKaW5kZXggOGM3NzVl OTZiNGU0Li5mMGY4ZjYwNTk2NTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVnLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaApAQCAtNzc3NCw4 ICs3Nzc0LDkgQEAgZW51bSB7CiAjZGVmaW5lICBGT1JDRVdBS0VfQUNLX01FRElBX0dFTjkJCV9N TUlPKDB4MEQ4OCkKICNkZWZpbmUgIEZPUkNFV0FLRV9BQ0tfUkVOREVSX0dFTjkJCV9NTUlPKDB4 MEQ4NCkKICNkZWZpbmUgIEZPUkNFV0FLRV9BQ0tfQkxJVFRFUl9HRU45CQlfTU1JTygweDEzMDA0 NCkKLSNkZWZpbmUgICBGT1JDRVdBS0VfS0VSTkVMCQkJMHgxCi0jZGVmaW5lICAgRk9SQ0VXQUtF X1VTRVIJCQkweDIKKyNkZWZpbmUgICBGT1JDRVdBS0VfS0VSTkVMCQkJQklUKDApCisjZGVmaW5l ICAgRk9SQ0VXQUtFX1VTRVIJCQlCSVQoMSkKKyNkZWZpbmUgICBGT1JDRVdBS0VfS0VSTkVMX0ZB TExCQUNLCQlCSVQoMTUpCiAjZGVmaW5lICBGT1JDRVdBS0VfTVRfQUNLCQkJX01NSU8oMHgxMzAw NDApCiAjZGVmaW5lICBFQ09CVVMJCQkJCV9NTUlPKDB4YTE4MCkKICNkZWZpbmUgICAgRk9SQ0VX QUtFX01UX0VOQUJMRQkJCSgxPDw1KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfdW5jb3JlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYwppbmRl eCA5NmVlNmIyNzU0YmUuLjU4OGFlMzVjOGM5YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfdW5jb3JlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5j b3JlLmMKQEAgLTY5LDE3ICs2OSwxMDggQEAgZndfZG9tYWluX2FybV90aW1lcihzdHJ1Y3QgaW50 ZWxfdW5jb3JlX2ZvcmNld2FrZV9kb21haW4gKmQpCiAJCQkgICAgICAgSFJUSU1FUl9NT0RFX1JF TCk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgaW50CitfX3dhaXRfZm9yX2Fjayhjb25zdCBzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKKwkgICAgICAgY29uc3Qgc3RydWN0IGludGVsX3VuY29y ZV9mb3JjZXdha2VfZG9tYWluICpkLAorCSAgICAgICBjb25zdCB1MzIgYWNrLAorCSAgICAgICBj b25zdCB1MzIgdmFsdWUpCit7CisJcmV0dXJuIHdhaXRfZm9yX2F0b21pYygoX19yYXdfaTkxNV9y ZWFkMzIoaTkxNSwgZC0+cmVnX2FjaykgJiBhY2spID09IHZhbHVlLAorCQkJICAgICAgIEZPUkNF V0FLRV9BQ0tfVElNRU9VVF9NUyk7Cit9CisKKworc3RhdGljIGlubGluZSBpbnQKK3dhaXRfYWNr X2NsZWFyKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAorCSAgICAgICBjb25z dCBzdHJ1Y3QgaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9kb21haW4gKmQsCisJICAgICAgIGNvbnN0 IHUzMiBhY2spCit7CisJcmV0dXJuIF9fd2FpdF9mb3JfYWNrKGk5MTUsIGQsIGFjaywgMCk7Cit9 CisKK3N0YXRpYyBpbmxpbmUgaW50Cit3YWl0X2Fja19zZXQoY29uc3Qgc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUsCisJICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfdW5jb3JlX2ZvcmNld2Fr ZV9kb21haW4gKmQsCisJICAgICBjb25zdCB1MzIgYWNrKQoreworCXJldHVybiBfX3dhaXRfZm9y X2FjayhpOTE1LCBkLCBhY2ssIGFjayk7Cit9CisKIHN0YXRpYyBpbmxpbmUgdm9pZAogZndfZG9t YWluX3dhaXRfYWNrX2NsZWFyKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAog CQkJIGNvbnN0IHN0cnVjdCBpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2RvbWFpbiAqZCkKIHsKLQlp ZiAod2FpdF9mb3JfYXRvbWljKChfX3Jhd19pOTE1X3JlYWQzMihpOTE1LCBkLT5yZWdfYWNrKSAm Ci0JCQkgICAgIEZPUkNFV0FLRV9LRVJORUwpID09IDAsCi0JCQkgICAgRk9SQ0VXQUtFX0FDS19U SU1FT1VUX01TKSkKKwlpZiAod2FpdF9hY2tfY2xlYXIoaTkxNSwgZCwgRk9SQ0VXQUtFX0tFUk5F TCkpCiAJCURSTV9FUlJPUigiJXM6IHRpbWVkIG91dCB3YWl0aW5nIGZvciBmb3JjZXdha2UgYWNr IHRvIGNsZWFyLlxuIiwKIAkJCSAgaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9kb21haW5fdG9fc3Ry KGQtPmlkKSk7CiB9CiAKK3N0YXRpYyBpbnQKK3dhaXRfYWNrX3dpdGhfZmFsbGJhY2soY29uc3Qg c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCisJCSAgICAgICBjb25zdCBzdHJ1Y3QgaW50 ZWxfdW5jb3JlX2ZvcmNld2FrZV9kb21haW4gKmQsCisJCSAgICAgICBjb25zdCB1MzIgYWNrLAor CQkgICAgICAgY29uc3QgdTMyIHZhbHVlKQoreworCWludCByZXQ7CisKKwkvKgorCSAqIFRoZXJl IGlzIGEgcG9zc2liaWxpdHkgb2YgZHJpdmVyJ3Mgd2FrZSByZXF1ZXN0IGNvbGxpZGluZworCSAq IHdpdGggaGFyZHdhcmUncyBvd24gd2FrZSByZXF1ZXN0cyBhbmQgdGhhdCBjYW4gY2F1c2UKKwkg KiBoYXJkd2FyZSB0byBub3QgZGVsaXZlciB0aGUgZHJpdmVyJ3MgYWNrIG1lc3NhZ2UuCisJICoK KwkgKiBVc2UgYSBmYWxsYmFjayBiaXQgdG9nZ2xlIHRvIGtpY2sgdGhlIGdwdSBzdGF0ZSBtYWNo aW5lCisJICogaW4gaG9wZXMgdGhhdCB0aGUgb3JpZ2luYWwgYWNrIHdpbGwgYmUgZGVsaXZlcmVk IGFsb25nIHdpdGgKKwkgKiB0aGUgZmFsbGJhY2sgYWNrLgorCSAqCisJICogVGhpcyB3b3JrYXJv dW5kIGlzIGRlc2NyaWJlZCBpbiBIU0RFUyAjMTYwNDI1NDUyNAorCSAqLworCisJd2FpdF9hY2tf Y2xlYXIoaTkxNSwgZCwgRk9SQ0VXQUtFX0tFUk5FTF9GQUxMQkFDSyk7CisJX19yYXdfaTkxNV93 cml0ZTMyKGk5MTUsIGQtPnJlZ19zZXQsCisJCQkgICBfTUFTS0VEX0JJVF9FTkFCTEUoRk9SQ0VX QUtFX0tFUk5FTF9GQUxMQkFDSykpOworCXdhaXRfYWNrX3NldChpOTE1LCBkLCBGT1JDRVdBS0Vf S0VSTkVMX0ZBTExCQUNLKTsKKworCXJldCA9IChfX3Jhd19pOTE1X3JlYWQzMihpOTE1LCBkLT5y ZWdfYWNrKSAmIGFjaykgPT0gdmFsdWU7CisKKwlfX3Jhd19pOTE1X3dyaXRlMzIoaTkxNSwgZC0+ cmVnX3NldCwKKwkJCSAgIF9NQVNLRURfQklUX0RJU0FCTEUoRk9SQ0VXQUtFX0tFUk5FTF9GQUxM QkFDSykpOworCisJcmV0dXJuIHJldDsKK30KKworZW51bSBhY2tfdHlwZSB7CisJQUNLX0NMRUFS ID0gMCwKKwlBQ0tfU0VUCit9OworCitzdGF0aWMgaW50Citmd19kb21haW5fd2FpdF9hY2tfd2l0 aF9mYWxsYmFjayhjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKKwkJCQkgY29u c3Qgc3RydWN0IGludGVsX3VuY29yZV9mb3JjZXdha2VfZG9tYWluICpkLAorCQkJCSBjb25zdCBl bnVtIGFja190eXBlIHR5cGUpCit7CisJaW50IHJldHJ5ID0gMTA7CisJaW50IHJldDsKKworCWRv IHsKKwkJcmV0ID0gd2FpdF9hY2tfd2l0aF9mYWxsYmFjayhpOTE1LCBkLCBGT1JDRVdBS0VfS0VS TkVMLAorCQkJCQkgICAgIHR5cGUgPT0gQUNLX1NFVCA/CisJCQkJCSAgICAgRk9SQ0VXQUtFX0tF Uk5FTCA6IDApOworCX0gd2hpbGUgKHJldCAmJiAtLXJldHJ5KTsKKworCXJldHVybiByZXQ7Cit9 CisKK3N0YXRpYyBpbmxpbmUgdm9pZAorZndfZG9tYWluX3dhaXRfYWNrX2NsZWFyX2ZhbGxiYWNr KGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAorCQkJCSAgY29uc3Qgc3RydWN0 IGludGVsX3VuY29yZV9mb3JjZXdha2VfZG9tYWluICpkKQoreworCWlmIChsaWtlbHkoIXdhaXRf YWNrX2NsZWFyKGk5MTUsIGQsIEZPUkNFV0FLRV9LRVJORUwpKSkKKwkJcmV0dXJuOworCisJaWYg KGZ3X2RvbWFpbl93YWl0X2Fja193aXRoX2ZhbGxiYWNrKGk5MTUsIGQsIEFDS19DTEVBUikpCisJ CWZ3X2RvbWFpbl93YWl0X2Fja19jbGVhcihpOTE1LCBkKTsKK30KKwogc3RhdGljIGlubGluZSB2 b2lkCiBmd19kb21haW5fZ2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCSAgICAg IGNvbnN0IHN0cnVjdCBpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2RvbWFpbiAqZCkKQEAgLTg4LDE3 ICsxNzksMjYgQEAgZndfZG9tYWluX2dldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwK IH0KIAogc3RhdGljIGlubGluZSB2b2lkCi1md19kb21haW5fd2FpdF9hY2soY29uc3Qgc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCi0JCSAgIGNvbnN0IHN0cnVjdCBpbnRlbF91bmNvcmVf Zm9yY2V3YWtlX2RvbWFpbiAqZCkKK2Z3X2RvbWFpbl93YWl0X2Fja19zZXQoY29uc3Qgc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCisJCSAgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfdW5j b3JlX2ZvcmNld2FrZV9kb21haW4gKmQpCiB7Ci0JaWYgKHdhaXRfZm9yX2F0b21pYygoX19yYXdf aTkxNV9yZWFkMzIoaTkxNSwgZC0+cmVnX2FjaykgJgotCQkJICAgICBGT1JDRVdBS0VfS0VSTkVM KSwKLQkJCSAgICBGT1JDRVdBS0VfQUNLX1RJTUVPVVRfTVMpKQorCWlmICh3YWl0X2Fja19zZXQo aTkxNSwgZCwgRk9SQ0VXQUtFX0tFUk5FTCkpCiAJCURSTV9FUlJPUigiJXM6IHRpbWVkIG91dCB3 YWl0aW5nIGZvciBmb3JjZXdha2UgYWNrIHJlcXVlc3QuXG4iLAogCQkJICBpbnRlbF91bmNvcmVf Zm9yY2V3YWtlX2RvbWFpbl90b19zdHIoZC0+aWQpKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lk Citmd19kb21haW5fd2FpdF9hY2tfc2V0X2ZhbGxiYWNrKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICppOTE1LAorCQkJCWNvbnN0IHN0cnVjdCBpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2Rv bWFpbiAqZCkKK3sKKwlpZiAobGlrZWx5KCF3YWl0X2Fja19zZXQoaTkxNSwgZCwgRk9SQ0VXQUtF X0tFUk5FTCkpKQorCQlyZXR1cm47CisKKwlpZiAoZndfZG9tYWluX3dhaXRfYWNrX3dpdGhfZmFs bGJhY2soaTkxNSwgZCwgQUNLX1NFVCkpCisJCWZ3X2RvbWFpbl93YWl0X2Fja19zZXQoaTkxNSwg ZCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAogZndfZG9tYWluX3B1dChjb25zdCBzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfdW5jb3Jl X2ZvcmNld2FrZV9kb21haW4gKmQpCiB7CkBAIC0xMTksNyArMjE5LDI3IEBAIGZ3X2RvbWFpbnNf Z2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCBlbnVtIGZvcmNld2FrZV9kb21haW5z IGZ3X2RvbWFpbnMpCiAJfQogCiAJZm9yX2VhY2hfZndfZG9tYWluX21hc2tlZChkLCBmd19kb21h aW5zLCBpOTE1LCB0bXApCi0JCWZ3X2RvbWFpbl93YWl0X2FjayhpOTE1LCBkKTsKKwkJZndfZG9t YWluX3dhaXRfYWNrX3NldChpOTE1LCBkKTsKKworCWk5MTUtPnVuY29yZS5md19kb21haW5zX2Fj dGl2ZSB8PSBmd19kb21haW5zOworfQorCitzdGF0aWMgdm9pZAorZndfZG9tYWluc19nZXRfd2l0 aF9mYWxsYmFjayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKKwkJCSAgICAgZW51bSBm b3JjZXdha2VfZG9tYWlucyBmd19kb21haW5zKQoreworCXN0cnVjdCBpbnRlbF91bmNvcmVfZm9y Y2V3YWtlX2RvbWFpbiAqZDsKKwl1bnNpZ25lZCBpbnQgdG1wOworCisJR0VNX0JVR19PTihmd19k b21haW5zICYgfmk5MTUtPnVuY29yZS5md19kb21haW5zKTsKKworCWZvcl9lYWNoX2Z3X2RvbWFp bl9tYXNrZWQoZCwgZndfZG9tYWlucywgaTkxNSwgdG1wKSB7CisJCWZ3X2RvbWFpbl93YWl0X2Fj a19jbGVhcl9mYWxsYmFjayhpOTE1LCBkKTsKKwkJZndfZG9tYWluX2dldChpOTE1LCBkKTsKKwl9 CisKKwlmb3JfZWFjaF9md19kb21haW5fbWFza2VkKGQsIGZ3X2RvbWFpbnMsIGk5MTUsIHRtcCkK KwkJZndfZG9tYWluX3dhaXRfYWNrX3NldF9mYWxsYmFjayhpOTE1LCBkKTsKIAogCWk5MTUtPnVu Y29yZS5md19kb21haW5zX2FjdGl2ZSB8PSBmd19kb21haW5zOwogfQpAQCAtMTE0Miw3ICsxMjYy LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfdW5jb3JlX2Z3X2RvbWFpbnNfaW5pdChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJfQogCiAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikg Pj0gOSkgewotCQlkZXZfcHJpdi0+dW5jb3JlLmZ1bmNzLmZvcmNlX3dha2VfZ2V0ID0gZndfZG9t YWluc19nZXQ7CisJCWRldl9wcml2LT51bmNvcmUuZnVuY3MuZm9yY2Vfd2FrZV9nZXQgPQorCQkJ ZndfZG9tYWluc19nZXRfd2l0aF9mYWxsYmFjazsKIAkJZGV2X3ByaXYtPnVuY29yZS5mdW5jcy5m b3JjZV93YWtlX3B1dCA9IGZ3X2RvbWFpbnNfcHV0OwogCQlmd19kb21haW5faW5pdChkZXZfcHJp diwgRldfRE9NQUlOX0lEX1JFTkRFUiwKIAkJCSAgICAgICBGT1JDRVdBS0VfUkVOREVSX0dFTjks Ci0tIAoyLjExLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo=