From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Weinehall Subject: [PATCH 07/12] drm/i915: INTEL_GEN() fixes, part 4 Date: Mon, 29 Aug 2016 13:31:47 +0300 Message-ID: <20160829103152.31282-8-david.weinehall@linux.intel.com> References: <20160829103152.31282-1-david.weinehall@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1F07A6E50F for ; Mon, 29 Aug 2016 10:32:12 +0000 (UTC) In-Reply-To: <20160829103152.31282-1-david.weinehall@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: --dry-run@freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Q29udmVydCBhbGwgaW5zdGFuY2VzIG9mIElOVEVMX0lORk8oZGV2KS0+Z2VuIGluIGludGVsX3Bt LmMKdG8gSU5URUxfR0VOKGRldl9wcml2KS4KClNpZ25lZC1vZmYtYnk6IERhdmlkIFdlaW5laGFs bCA8ZGF2aWQud2VpbmVoYWxsQGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wbS5jIHwgNjcgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0t LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0MCBpbnNlcnRpb25zKCspLCAyNyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcG0uYwppbmRleCBmOWM3NzA4MzI1ZTMuLjNlZWMxODdmNTY5NyAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCkBAIC0xODUyLDIzICsxODUyLDI3IEBAIHN0YXRpYyB1 aW50MzJfdCBpbGtfY29tcHV0ZV9mYmNfd20oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNzdGF0ZSwKIAlyZXR1cm4gaWxrX3dtX2ZiYyhwcmlfdmFsLCBkcm1fcmVjdF93aWR0aCgmcHN0 YXRlLT5iYXNlLmRzdCksIGNwcCk7CiB9CiAKLXN0YXRpYyB1bnNpZ25lZCBpbnQgaWxrX2Rpc3Bs YXlfZmlmb19zaXplKGNvbnN0IHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCitzdGF0aWMgdW5zaWdu ZWQgaW50CitpbGtfZGlzcGxheV9maWZvX3NpemUoY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQogewotCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA4KQorCWlmIChJ TlRFTF9HRU4oZGV2X3ByaXYpID49IDgpCiAJCXJldHVybiAzMDcyOwotCWVsc2UgaWYgKElOVEVM X0lORk8oZGV2KS0+Z2VuID49IDcpCisJZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA3 KQogCQlyZXR1cm4gNzY4OwogCWVsc2UKIAkJcmV0dXJuIDUxMjsKIH0KIAotc3RhdGljIHVuc2ln bmVkIGludCBpbGtfcGxhbmVfd21fcmVnX21heChjb25zdCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAotCQkJCQkgaW50IGxldmVsLCBib29sIGlzX3Nwcml0ZSkKK3N0YXRpYyB1bnNpZ25lZCBpbnQK K2lsa19wbGFuZV93bV9yZWdfbWF4KGNvbnN0IHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCSAg ICAgaW50IGxldmVsLCBib29sIGlzX3Nwcml0ZSkKIHsKLQlpZiAoSU5URUxfSU5GTyhkZXYpLT5n ZW4gPj0gOCkKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRl dik7CisKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA4KQogCQkvKiBCRFcgcHJpbWFyeS9z cHJpdGUgcGxhbmUgd2F0ZXJtYXJrcyAqLwogCQlyZXR1cm4gbGV2ZWwgPT0gMCA/IDI1NSA6IDIw NDc7Ci0JZWxzZSBpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gNykKKwllbHNlIGlmIChJTlRF TF9HRU4oZGV2X3ByaXYpID49IDcpCiAJCS8qIElWQi9IU1cgcHJpbWFyeS9zcHJpdGUgcGxhbmUg d2F0ZXJtYXJrcyAqLwogCQlyZXR1cm4gbGV2ZWwgPT0gMCA/IDEyNyA6IDEwMjM7CiAJZWxzZSBp ZiAoIWlzX3Nwcml0ZSkKQEAgLTE4NzksMTggKzE4ODMsMjMgQEAgc3RhdGljIHVuc2lnbmVkIGlu dCBpbGtfcGxhbmVfd21fcmVnX21heChjb25zdCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQly ZXR1cm4gbGV2ZWwgPT0gMCA/IDYzIDogMjU1OwogfQogCi1zdGF0aWMgdW5zaWduZWQgaW50IGls a19jdXJzb3Jfd21fcmVnX21heChjb25zdCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCQkg IGludCBsZXZlbCkKK3N0YXRpYyB1bnNpZ25lZCBpbnQKK2lsa19jdXJzb3Jfd21fcmVnX21heChj b25zdCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgbGV2ZWwpCiB7Ci0JaWYgKElOVEVMX0lO Rk8oZGV2KS0+Z2VuID49IDcpCisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShkZXYpOworCisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNykKIAkJcmV0dXJu IGxldmVsID09IDAgPyA2MyA6IDI1NTsKIAllbHNlCiAJCXJldHVybiBsZXZlbCA9PSAwID8gMzEg OiA2MzsKIH0KIAotc3RhdGljIHVuc2lnbmVkIGludCBpbGtfZmJjX3dtX3JlZ19tYXgoY29uc3Qg c3RydWN0IGRybV9kZXZpY2UgKmRldikKK3N0YXRpYyB1bnNpZ25lZCBpbnQKK2lsa19mYmNfd21f cmVnX21heChjb25zdCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewotCWlmIChJTlRFTF9JTkZP KGRldiktPmdlbiA+PSA4KQorCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoZGV2KTsKKworCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDgpCiAJCXJldHVybiAz MTsKIAllbHNlCiAJCXJldHVybiAxNTsKQEAgLTE5MDMsNyArMTkxMiw4IEBAIHN0YXRpYyB1bnNp Z25lZCBpbnQgaWxrX3BsYW5lX3dtX21heChjb25zdCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAog CQkJCSAgICAgZW51bSBpbnRlbF9kZGJfcGFydGl0aW9uaW5nIGRkYl9wYXJ0aXRpb25pbmcsCiAJ CQkJICAgICBib29sIGlzX3Nwcml0ZSkKIHsKLQl1bnNpZ25lZCBpbnQgZmlmb19zaXplID0gaWxr X2Rpc3BsYXlfZmlmb19zaXplKGRldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShkZXYpOworCXVuc2lnbmVkIGludCBmaWZvX3NpemUgPSBpbGtfZGlzcGxh eV9maWZvX3NpemUoZGV2X3ByaXYpOwogCiAJLyogaWYgc3ByaXRlcyBhcmVuJ3QgZW5hYmxlZCwg c3ByaXRlcyBnZXQgbm90aGluZyAqLwogCWlmIChpc19zcHJpdGUgJiYgIWNvbmZpZy0+c3ByaXRl c19lbmFibGVkKQpAQCAtMTkxOCw3ICsxOTI4LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBpbGtf cGxhbmVfd21fbWF4KGNvbnN0IHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCSAqIEZJRk8gc2l6 ZSBpcyBvbmx5IGhhbGYgb2YgdGhlIHNlbGYKIAkJICogcmVmcmVzaCBGSUZPIHNpemUgb24gSUxL L1NOQi4KIAkJICovCi0JCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA8PSA2KQorCQlpZiAoSU5U RUxfR0VOKGRldl9wcml2KSA8PSA2KQogCQkJZmlmb19zaXplIC89IDI7CiAJfQogCkBAIC0yMTYz LDE0ICsyMTczLDE0IEBAIHN0YXRpYyB2b2lkIGludGVsX3JlYWRfd21fbGF0ZW5jeShzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCB1aW50MTZfdCB3bVs4XSkKIAkJd21bMl0gPSAoc3NrcGQgPj4gMTIp ICYgMHhGRjsKIAkJd21bM10gPSAoc3NrcGQgPj4gMjApICYgMHgxRkY7CiAJCXdtWzRdID0gKHNz a3BkID4+IDMyKSAmIDB4MUZGOwotCX0gZWxzZSBpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0g NikgeworCX0gZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA2KSB7CiAJCXVpbnQzMl90 IHNza3BkID0gSTkxNV9SRUFEKE1DSF9TU0tQRCk7CiAKIAkJd21bMF0gPSAoc3NrcGQgPj4gU1NL UERfV00wX1NISUZUKSAmIFNTS1BEX1dNX01BU0s7CiAJCXdtWzFdID0gKHNza3BkID4+IFNTS1BE X1dNMV9TSElGVCkgJiBTU0tQRF9XTV9NQVNLOwogCQl3bVsyXSA9IChzc2twZCA+PiBTU0tQRF9X TTJfU0hJRlQpICYgU1NLUERfV01fTUFTSzsKIAkJd21bM10gPSAoc3NrcGQgPj4gU1NLUERfV00z X1NISUZUKSAmIFNTS1BEX1dNX01BU0s7Ci0JfSBlbHNlIGlmIChJTlRFTF9JTkZPKGRldiktPmdl biA+PSA1KSB7CisJfSBlbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDUpIHsKIAkJdWlu dDMyX3QgbWx0ciA9IEk5MTVfUkVBRChNTFRSX0lMSyk7CiAKIAkJLyogSUxLIHByaW1hcnkgTFAw IGxhdGVuY3kgaXMgNzAwIG5zICovCkBAIC0yMjAwLDEyICsyMjEwLDE0IEBAIHN0YXRpYyB2b2lk IGludGVsX2ZpeHVwX2N1cl93bV9sYXRlbmN5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVpbnQx Nl90IHdtWzVdKQogCiBpbnQgaWxrX3dtX21heF9sZXZlbChjb25zdCBzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQogeworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo ZGV2KTsKKwogCS8qIGhvdyBtYW55IFdNIGxldmVscyBhcmUgd2UgZXhwZWN0aW5nICovCi0JaWYg KElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDkpCisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0g OSkKIAkJcmV0dXJuIDc7CiAJZWxzZSBpZiAoSVNfSEFTV0VMTChkZXYpIHx8IElTX0JST0FEV0VM TChkZXYpKQogCQlyZXR1cm4gNDsKLQllbHNlIGlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA2 KQorCWVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNikKIAkJcmV0dXJuIDM7CiAJZWxz ZQogCQlyZXR1cm4gMjsKQEAgLTIzNzUsNyArMjM4Nyw3IEBAIHN0YXRpYyBpbnQgaWxrX2NvbXB1 dGVfcGlwZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlKQogCXVzYWJsZV9sZXZl bCA9IG1heF9sZXZlbDsKIAogCS8qIElMSy9TTkI6IExQMisgd2F0ZXJtYXJrcyBvbmx5IHcvbyBz cHJpdGVzICovCi0JaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuIDw9IDYgJiYgcGlwZV93bS0+c3By aXRlc19lbmFibGVkKQorCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDw9IDYgJiYgcGlwZV93bS0+ c3ByaXRlc19lbmFibGVkKQogCQl1c2FibGVfbGV2ZWwgPSAxOwogCiAJLyogSUxLL1NOQi9JVkI6 IExQMSsgd2F0ZXJtYXJrcyBvbmx5IHcvbyBzY2FsaW5nICovCkBAIC0yNTE4LDEyICsyNTMwLDEy IEBAIHN0YXRpYyB2b2lkIGlsa193bV9tZXJnZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCWlu dCBsYXN0X2VuYWJsZWRfbGV2ZWwgPSBtYXhfbGV2ZWw7CiAKIAkvKiBJTEsvU05CL0lWQjogTFAx KyB3YXRlcm1hcmtzIG9ubHkgdy8gc2luZ2xlIHBpcGUgKi8KLQlpZiAoKElOVEVMX0lORk8oZGV2 KS0+Z2VuIDw9IDYgfHwgSVNfSVZZQlJJREdFKGRldikpICYmCisJaWYgKChJTlRFTF9HRU4oZGV2 X3ByaXYpIDw9IDYgfHwgSVNfSVZZQlJJREdFKGRldl9wcml2KSkgJiYKIAkgICAgY29uZmlnLT5u dW1fcGlwZXNfYWN0aXZlID4gMSkKIAkJbGFzdF9lbmFibGVkX2xldmVsID0gMDsKIAogCS8qIElM SzogRkJDIFdNIG11c3QgYmUgZGlzYWJsZWQgYWx3YXlzICovCi0JbWVyZ2VkLT5mYmNfd21fZW5h YmxlZCA9IElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDY7CisJbWVyZ2VkLT5mYmNfd21fZW5hYmxl ZCA9IElOVEVMX0dFTihkZXZfcHJpdikgPj0gNjsKIAogCS8qIG1lcmdlIGVhY2ggV00xKyBsZXZl bCAqLwogCWZvciAobGV2ZWwgPSAxOyBsZXZlbCA8PSBtYXhfbGV2ZWw7IGxldmVsKyspIHsKQEAg LTI1ODYsNiArMjU5OCw3IEBAIHN0YXRpYyB2b2lkIGlsa19jb21wdXRlX3dtX3Jlc3VsdHMoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQkgICBlbnVtIGludGVsX2RkYl9wYXJ0aXRpb25pbmcg cGFydGl0aW9uaW5nLAogCQkJCSAgIHN0cnVjdCBpbGtfd21fdmFsdWVzICpyZXN1bHRzKQogewor CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1 Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YzsKIAlpbnQgbGV2ZWwsIHdtX2xwOwogCkBAIC0yNjEy LDcgKzI2MjUsNyBAQCBzdGF0aWMgdm9pZCBpbGtfY29tcHV0ZV93bV9yZXN1bHRzKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCiAJCWlmIChyLT5lbmFibGUpCiAJCQlyZXN1bHRzLT53bV9scFt3bV9s cCAtIDFdIHw9IFdNMV9MUF9TUl9FTjsKIAotCQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0g OCkKKwkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOCkKIAkJCXJlc3VsdHMtPndtX2xwW3dt X2xwIC0gMV0gfD0KIAkJCQlyLT5mYmNfdmFsIDw8IFdNMV9MUF9GQkNfU0hJRlRfQkRXOwogCQll bHNlCkBAIC0yNjIzLDcgKzI2MzYsNyBAQCBzdGF0aWMgdm9pZCBpbGtfY29tcHV0ZV93bV9yZXN1 bHRzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCSAqIEFsd2F5cyBzZXQgV00xU19MUF9FTiB3 aGVuIHNwcl92YWwgIT0gMCwgZXZlbiBpZiB0aGUKIAkJICogbGV2ZWwgaXMgZGlzYWJsZWQuIERv aW5nIG90aGVyd2lzZSBjb3VsZCBjYXVzZSB1bmRlcnJ1bnMuCiAJCSAqLwotCQlpZiAoSU5URUxf SU5GTyhkZXYpLT5nZW4gPD0gNiAmJiByLT5zcHJfdmFsKSB7CisJCWlmIChJTlRFTF9HRU4oZGV2 X3ByaXYpIDw9IDYgJiYgci0+c3ByX3ZhbCkgewogCQkJV0FSTl9PTih3bV9scCAhPSAxKTsKIAkJ CXJlc3VsdHMtPndtX2xwX3Nwclt3bV9scCAtIDFdID0gV00xU19MUF9FTiB8IHItPnNwcl92YWw7 CiAJCX0gZWxzZQpAQCAtMjgyOSw3ICsyODQyLDcgQEAgc3RhdGljIHZvaWQgaWxrX3dyaXRlX3dt X3ZhbHVlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJICAgIHByZXZpb3Vz LT53bV9scF9zcHJbMF0gIT0gcmVzdWx0cy0+d21fbHBfc3ByWzBdKQogCQlJOTE1X1dSSVRFKFdN MVNfTFBfSUxLLCByZXN1bHRzLT53bV9scF9zcHJbMF0pOwogCi0JaWYgKElOVEVMX0lORk8oZGV2 KS0+Z2VuID49IDcpIHsKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA3KSB7CiAJCWlmIChk aXJ0eSAmIFdNX0RJUlRZX0xQKDIpICYmIHByZXZpb3VzLT53bV9scF9zcHJbMV0gIT0gcmVzdWx0 cy0+d21fbHBfc3ByWzFdKQogCQkJSTkxNV9XUklURShXTTJTX0xQX0lWQiwgcmVzdWx0cy0+d21f bHBfc3ByWzFdKTsKIAkJaWYgKGRpcnR5ICYgV01fRElSVFlfTFAoMykgJiYgcHJldmlvdXMtPndt X2xwX3NwclsyXSAhPSByZXN1bHRzLT53bV9scF9zcHJbMl0pCkBAIC00MTc1LDcgKzQxODgsNyBA QCBzdGF0aWMgdm9pZCBpbGtfcHJvZ3JhbV93YXRlcm1hcmtzKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKIAlpbGtfd21fbWVyZ2UoZGV2LCAmY29uZmlnLCAmbWF4LCAmbHBfd21f MV8yKTsKIAogCS8qIDUvNiBzcGxpdCBvbmx5IGluIHNpbmdsZSBwaXBlIGNvbmZpZyBvbiBJVkIr ICovCi0JaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDcgJiYKKwlpZiAoSU5URUxfR0VOKGRl dl9wcml2KSA+PSA3ICYmCiAJICAgIGNvbmZpZy5udW1fcGlwZXNfYWN0aXZlID09IDEgJiYgY29u ZmlnLnNwcml0ZXNfZW5hYmxlZCkgewogCQlpbGtfY29tcHV0ZV93bV9tYXhpbXVtcyhkZXYsIDEs ICZjb25maWcsIElOVEVMX0REQl9QQVJUXzVfNiwgJm1heCk7CiAJCWlsa193bV9tZXJnZShkZXYs ICZjb25maWcsICZtYXgsICZscF93bV81XzYpOwpAQCAtNDU1NCw3ICs0NTY3LDcgQEAgdm9pZCBp bGtfd21fZ2V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJaHctPndtX2xwWzJd ID0gSTkxNV9SRUFEKFdNM19MUF9JTEspOwogCiAJaHctPndtX2xwX3NwclswXSA9IEk5MTVfUkVB RChXTTFTX0xQX0lMSyk7Ci0JaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDcpIHsKKwlpZiAo SU5URUxfR0VOKGRldl9wcml2KSA+PSA3KSB7CiAJCWh3LT53bV9scF9zcHJbMV0gPSBJOTE1X1JF QUQoV00yU19MUF9JVkIpOwogCQlody0+d21fbHBfc3ByWzJdID0gSTkxNV9SRUFEKFdNM1NfTFBf SVZCKTsKIAl9CkBAIC03Njc4LDcgKzc2OTEsNyBAQCB2b2lkIGludGVsX2luaXRfcG0oc3RydWN0 IGRybV9kZXZpY2UgKmRldikKIAkJaTkxNV9pcm9ubGFrZV9nZXRfbWVtX2ZyZXEoZGV2KTsKIAog CS8qIEZvciBGSUZPIHdhdGVybWFyayB1cGRhdGVzICovCi0JaWYgKElOVEVMX0lORk8oZGV2KS0+ Z2VuID49IDkpIHsKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KSB7CiAJCXNrbF9zZXR1 cF93bV9sYXRlbmN5KGRldik7CiAJCWRldl9wcml2LT5kaXNwbGF5LnVwZGF0ZV93bSA9IHNrbF91 cGRhdGVfd207CiAJCWRldl9wcml2LT5kaXNwbGF5LmNvbXB1dGVfZ2xvYmFsX3dhdGVybWFya3Mg PSBza2xfY29tcHV0ZV93bTsKLS0gCjIuOS4zCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK