From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 5/5] drm/selftests: Add drm helper selftest Date: Mon, 30 Apr 2018 15:46:11 +0200 Message-ID: <20180430134611.50988-6-maarten.lankhorst@linux.intel.com> References: <20180430134611.50988-1-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180430134611.50988-1-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: Vidya Srinivas List-Id: dri-devel@lists.freedesktop.org U2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4 LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vS2NvbmZpZyAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDEgKwogZHJpdmVycy9ncHUvZHJtL3NlbGZ0ZXN0cy9NYWtlZmlsZSAgICAgICAg ICAgIHwgICAyICstCiAuLi4vZ3B1L2RybS9zZWxmdGVzdHMvZHJtX2hlbHBlcl9zZWxmdGVzdHMu aCAgfCAgIDkgKwogZHJpdmVycy9ncHUvZHJtL3NlbGZ0ZXN0cy90ZXN0LWRybS1oZWxwZXIuYyAg IHwgMjQ3ICsrKysrKysrKysrKysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAyNTggaW5zZXJ0aW9u cygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9z ZWxmdGVzdHMvZHJtX2hlbHBlcl9zZWxmdGVzdHMuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZl cnMvZ3B1L2RybS9zZWxmdGVzdHMvdGVzdC1kcm0taGVscGVyLmMKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vS2NvbmZpZyBiL2RyaXZlcnMvZ3B1L2RybS9LY29uZmlnCmluZGV4IGQ2ODQ4 NTViOTVjMi4uMjhkMDU5MDA3YWMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vS2NvbmZp ZworKysgYi9kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZwpAQCAtNTUsNiArNTUsNyBAQCBjb25maWcg RFJNX0RFQlVHX1NFTEZURVNUCiAJZGVwZW5kcyBvbiBERUJVR19LRVJORUwKIAlzZWxlY3QgUFJJ TUVfTlVNQkVSUwogCXNlbGVjdCBEUk1fTElCX1JBTkRPTQorCXNlbGVjdCBEUk1fS01TX0hFTFBF UgogCWRlZmF1bHQgbgogCWhlbHAKIAkgIFRoaXMgb3B0aW9uIHByb3ZpZGVzIGtlcm5lbCBtb2R1 bGVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gcnVuCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v c2VsZnRlc3RzL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL3NlbGZ0ZXN0cy9NYWtlZmlsZQpp bmRleCBmN2RkNjZlODU5YTkuLjlmYzM0OWZhMThlOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3NlbGZ0ZXN0cy9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL01h a2VmaWxlCkBAIC0xICsxIEBACi1vYmotJChDT05GSUdfRFJNX0RFQlVHX1NFTEZURVNUKSArPSB0 ZXN0LWRybV9tbS5vCitvYmotJChDT05GSUdfRFJNX0RFQlVHX1NFTEZURVNUKSArPSB0ZXN0LWRy bV9tbS5vIHRlc3QtZHJtLWhlbHBlci5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc2Vs ZnRlc3RzL2RybV9oZWxwZXJfc2VsZnRlc3RzLmggYi9kcml2ZXJzL2dwdS9kcm0vc2VsZnRlc3Rz L2RybV9oZWxwZXJfc2VsZnRlc3RzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwLi45NzcxMjkwZWQyMjgKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0v c2VsZnRlc3RzL2RybV9oZWxwZXJfc2VsZnRlc3RzLmgKQEAgLTAsMCArMSw5IEBACisvKiBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLworLyogTGlzdCBlYWNoIHVuaXQgdGVzdCBh cyBzZWxmdGVzdChuYW1lLCBmdW5jdGlvbikKKyAqCisgKiBUaGUgbmFtZSBpcyB1c2VkIGFzIGJv dGggYW4gZW51bSBhbmQgZXhwYW5kZWQgYXMgaWd0X19uYW1lIHRvIGNyZWF0ZQorICogYSBtb2R1 bGUgcGFyYW1ldGVyLiBJdCBtdXN0IGJlIHVuaXF1ZSBhbmQgbGVnYWwgZm9yIGEgQyBpZGVudGlm aWVyLgorICoKKyAqIFRlc3RzIGFyZSBleGVjdXRlZCBpbiBvcmRlciBieSBpZ3QvZHJtX3NlbGZ0 ZXN0c19oZWxwZXIKKyAqLworc2VsZnRlc3QoY2hlY2tfcGxhbmVfc3RhdGUsIGlndF9jaGVja19w bGFuZV9zdGF0ZSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zZWxmdGVzdHMvdGVzdC1k cm0taGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL3Rlc3QtZHJtLWhlbHBlci5j Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYTAxNTcxMmI0M2U4Ci0t LSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL3NlbGZ0ZXN0cy90ZXN0LWRybS1oZWxw ZXIuYwpAQCAtMCwwICsxLDI0NyBAQAorLyoKKyAqIFRlc3QgY2FzZXMgZm9yIHRoZSBkcm1fa21z X2hlbHBlciBmdW5jdGlvbnMKKyAqLworCisjZGVmaW5lIHByX2ZtdChmbXQpICJkcm1fa21zX2hl bHBlcjogIiBmbXQKKworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorCisjaW5jbHVkZSA8ZHJt L2RybV9hdG9taWNfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wbGFuZV9oZWxwZXIuaD4K KyNpbmNsdWRlIDxkcm0vZHJtX21vZGVzLmg+CisKKyNkZWZpbmUgVEVTVFMgImRybV9oZWxwZXJf c2VsZnRlc3RzLmgiCisjaW5jbHVkZSAiZHJtX3NlbGZ0ZXN0LmgiCisKKyNkZWZpbmUgRkFJTCh0 ZXN0LCBtc2csIC4uLikgXAorCWRvIHsgXAorCQlpZiAodGVzdCkgeyBcCisJCQlwcl9lcnIoIiVz LyV1OiAiIG1zZywgX19GVU5DVElPTl9fLCBfX0xJTkVfXywgIyNfX1ZBX0FSR1NfXyk7IFwKKwkJ CXJldHVybiAtRUlOVkFMOyBcCisJCX0gXAorCX0gd2hpbGUgKDApCisKKyNkZWZpbmUgRkFJTF9P Tih4KSBGQUlMKCh4KSwgIiVzIiwgIkZBSUxfT04oIiBfX3N0cmluZ2lmeSh4KSAiKVxuIikKKwor c3RhdGljIHZvaWQgc2V0X3NyYyhzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSwK KwkJICAgIHVuc2lnbmVkIHNyY194LCB1bnNpZ25lZCBzcmNfeSwKKwkJICAgIHVuc2lnbmVkIHNy Y193LCB1bnNpZ25lZCBzcmNfaCkKK3sKKwlwbGFuZV9zdGF0ZS0+c3JjX3ggPSBzcmNfeDsKKwlw bGFuZV9zdGF0ZS0+c3JjX3kgPSBzcmNfeTsKKwlwbGFuZV9zdGF0ZS0+c3JjX3cgPSBzcmNfdzsK KwlwbGFuZV9zdGF0ZS0+c3JjX2ggPSBzcmNfaDsKK30KKworc3RhdGljIGJvb2wgY2hlY2tfc3Jj X2VxKHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlLAorCQkJIHVuc2lnbmVkIHNy Y194LCB1bnNpZ25lZCBzcmNfeSwKKwkJCSB1bnNpZ25lZCBzcmNfdywgdW5zaWduZWQgc3JjX2gp Cit7CisJaWYgKHBsYW5lX3N0YXRlLT5zcmMueDEgPCAwKSB7CisJCXByX2Vycigic3JjIHggY29v cmRpbmF0ZSAleCBzaG91bGQgbmV2ZXIgYmUgYmVsb3cgMC5cbiIsIHBsYW5lX3N0YXRlLT5zcmMu eDEpOworCQlkcm1fcmVjdF9kZWJ1Z19wcmludCgic3JjOiAiLCAmcGxhbmVfc3RhdGUtPnNyYywg dHJ1ZSk7CisJCXJldHVybiBmYWxzZTsKKwl9CisJaWYgKHBsYW5lX3N0YXRlLT5zcmMueTEgPCAw KSB7CisJCXByX2Vycigic3JjIHkgY29vcmRpbmF0ZSAleCBzaG91bGQgbmV2ZXIgYmUgYmVsb3cg MC5cbiIsIHBsYW5lX3N0YXRlLT5zcmMueTEpOworCQlkcm1fcmVjdF9kZWJ1Z19wcmludCgic3Jj OiAiLCAmcGxhbmVfc3RhdGUtPnNyYywgdHJ1ZSk7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwlp ZiAocGxhbmVfc3RhdGUtPnNyYy54MSAhPSBzcmNfeCB8fAorCSAgICBwbGFuZV9zdGF0ZS0+c3Jj LnkxICE9IHNyY195IHx8CisJICAgIGRybV9yZWN0X3dpZHRoKCZwbGFuZV9zdGF0ZS0+c3JjKSAh PSBzcmNfdyB8fAorCSAgICBkcm1fcmVjdF9oZWlnaHQoJnBsYW5lX3N0YXRlLT5zcmMpICE9IHNy Y19oKSB7CisJCWRybV9yZWN0X2RlYnVnX3ByaW50KCJzcmM6ICIsICZwbGFuZV9zdGF0ZS0+c3Jj LCB0cnVlKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKworCXJldHVybiB0cnVlOworfQorCitzdGF0 aWMgdm9pZCBzZXRfY3J0YyhzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSwKKwkJ ICAgICBpbnQgY3J0Y194LCBpbnQgY3J0Y195LAorCQkgICAgIHVuc2lnbmVkIGNydGNfdywgdW5z aWduZWQgY3J0Y19oKQoreworCXBsYW5lX3N0YXRlLT5jcnRjX3ggPSBjcnRjX3g7CisJcGxhbmVf c3RhdGUtPmNydGNfeSA9IGNydGNfeTsKKwlwbGFuZV9zdGF0ZS0+Y3J0Y193ID0gY3J0Y193Owor CXBsYW5lX3N0YXRlLT5jcnRjX2ggPSBjcnRjX2g7Cit9CisKK3N0YXRpYyBib29sIGNoZWNrX2Ny dGNfZXEoc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUsCisJCQkgIGludCBjcnRj X3gsIGludCBjcnRjX3ksCisJCQkgIHVuc2lnbmVkIGNydGNfdywgdW5zaWduZWQgY3J0Y19oKQor eworCWlmIChwbGFuZV9zdGF0ZS0+ZHN0LngxICE9IGNydGNfeCB8fAorCSAgICBwbGFuZV9zdGF0 ZS0+ZHN0LnkxICE9IGNydGNfeSB8fAorCSAgICBkcm1fcmVjdF93aWR0aCgmcGxhbmVfc3RhdGUt PmRzdCkgIT0gY3J0Y193IHx8CisJICAgIGRybV9yZWN0X2hlaWdodCgmcGxhbmVfc3RhdGUtPmRz dCkgIT0gY3J0Y19oKSB7CisJCWRybV9yZWN0X2RlYnVnX3ByaW50KCJkc3Q6ICIsICZwbGFuZV9z dGF0ZS0+ZHN0LCBmYWxzZSk7CisKKwkJcmV0dXJuIGZhbHNlOworCX0KKworCXJldHVybiB0cnVl OworfQorCitzdGF0aWMgaW50IGlndF9jaGVja19wbGFuZV9zdGF0ZSh2b2lkICppZ25vcmVkKQor eworCWludCByZXQ7CisKKwljb25zdCBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgY3J0Y19zdGF0ZSA9 IHsKKwkJLmNydGMgPSBaRVJPX1NJWkVfUFRSLAorCQkuZW5hYmxlID0gdHJ1ZSwKKwkJLmFjdGl2 ZSA9IHRydWUsCisJCS5tb2RlID0geworCQkJRFJNX01PREUoIjEwMjR4NzY4IiwgMCwgNjUwMDAs IDEwMjQsIDEwNDgsCisJCQkJMTE4NCwgMTM0NCwgMCwgNzY4LCA3NzEsIDc3NywgODA2LCAwLAor CQkJCURSTV9NT0RFX0ZMQUdfTkhTWU5DIHwgRFJNX01PREVfRkxBR19OVlNZTkMpCisJCX0sCisJ fTsKKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyIGZiID0geworCQkud2lkdGggPSAyMDQ4LAorCQku aGVpZ2h0ID0gMjA0OAorCX07CisJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSBwbGFuZV9zdGF0ZSA9 IHsKKwkJLmNydGMgPSBaRVJPX1NJWkVfUFRSLAorCQkuZmIgPSAmZmIsCisJCS5yb3RhdGlvbiA9 IERSTV9NT0RFX1JPVEFURV8wCisJfTsKKworCS8qIFNpbXBsZSBjbGlwcGluZywgbm8gc2NhbGlu Zy4gKi8KKwlzZXRfc3JjKCZwbGFuZV9zdGF0ZSwgMCwgMCwgZmIud2lkdGggPDwgMTYsIGZiLmhl aWdodCA8PCAxNik7CisJc2V0X2NydGMoJnBsYW5lX3N0YXRlLCAwLCAwLCBmYi53aWR0aCwgZmIu aGVpZ2h0KTsKKwlyZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19wbGFuZV9zdGF0ZSgmcGxh bmVfc3RhdGUsICZjcnRjX3N0YXRlLAorCQkJCQkJICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJ TkcsCisJCQkJCQkgIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORywKKwkJCQkJCSAgZmFsc2Us IGZhbHNlKTsKKwlGQUlMKHJldCA8IDAsICJTaW1wbGUgY2xpcHBpbmcgY2hlY2sgc2hvdWxkIHBh c3NcbiIpOworCUZBSUxfT04oIXBsYW5lX3N0YXRlLnZpc2libGUpOworCUZBSUxfT04oIWNoZWNr X3NyY19lcSgmcGxhbmVfc3RhdGUsIDAsIDAsIDEwMjQgPDwgMTYsIDc2OCA8PCAxNikpOworCUZB SUxfT04oIWNoZWNrX2NydGNfZXEoJnBsYW5lX3N0YXRlLCAwLCAwLCAxMDI0LCA3NjgpKTsKKwor CS8qIFJvdGF0ZWQgY2xpcHBpbmcgKyByZWZsZWN0aW9uLCBubyBzY2FsaW5nLiAqLworCXBsYW5l X3N0YXRlLnJvdGF0aW9uID0gRFJNX01PREVfUk9UQVRFXzkwIHwgRFJNX01PREVfUkVGTEVDVF9Y OworCXJldCA9IGRybV9hdG9taWNfaGVscGVyX2NoZWNrX3BsYW5lX3N0YXRlKCZwbGFuZV9zdGF0 ZSwgJmNydGNfc3RhdGUsCisJCQkJCQkgIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORywKKwkJ CQkJCSAgRFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5HLAorCQkJCQkJICBmYWxzZSwgZmFsc2Up OworCUZBSUwocmV0IDwgMCwgIlJvdGF0ZWQgY2xpcHBpbmcgY2hlY2sgc2hvdWxkIHBhc3NcbiIp OworCUZBSUxfT04oIXBsYW5lX3N0YXRlLnZpc2libGUpOworCUZBSUxfT04oIWNoZWNrX3NyY19l cSgmcGxhbmVfc3RhdGUsIDAsIDAsIDc2OCA8PCAxNiwgMTAyNCA8PCAxNikpOworCUZBSUxfT04o IWNoZWNrX2NydGNfZXEoJnBsYW5lX3N0YXRlLCAwLCAwLCAxMDI0LCA3NjgpKTsKKwlwbGFuZV9z dGF0ZS5yb3RhdGlvbiA9IERSTV9NT0RFX1JPVEFURV8wOworCisJLyogQ2hlY2sgd2hldGhlciBw b3NpdGlvbmluZyB3b3JrcyBjb3JyZWN0bHkuICovCisJc2V0X3NyYygmcGxhbmVfc3RhdGUsIDAs IDAsIDEwMjMgPDwgMTYsIDc2NyA8PCAxNik7CisJc2V0X2NydGMoJnBsYW5lX3N0YXRlLCAwLCAw LCAxMDIzLCA3NjcpOworCXJldCA9IGRybV9hdG9taWNfaGVscGVyX2NoZWNrX3BsYW5lX3N0YXRl KCZwbGFuZV9zdGF0ZSwgJmNydGNfc3RhdGUsCisJCQkJCQkgIERSTV9QTEFORV9IRUxQRVJfTk9f U0NBTElORywKKwkJCQkJCSAgRFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5HLAorCQkJCQkJICBm YWxzZSwgZmFsc2UpOworCUZBSUwoIXJldCwgIlNob3VsZCBub3QgYmUgYWJsZSB0byBwb3NpdGlv biBvbiB0aGUgY3J0YyB3aXRoIGNhbl9wb3NpdGlvbj1mYWxzZVxuIik7CisKKwlyZXQgPSBkcm1f YXRvbWljX2hlbHBlcl9jaGVja19wbGFuZV9zdGF0ZSgmcGxhbmVfc3RhdGUsICZjcnRjX3N0YXRl LAorCQkJCQkJICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcsCisJCQkJCQkgIERSTV9QTEFO RV9IRUxQRVJfTk9fU0NBTElORywKKwkJCQkJCSAgdHJ1ZSwgZmFsc2UpOworCUZBSUwocmV0IDwg MCwgIlNpbXBsZSBwb3NpdGlvbmluZyBzaG91bGQgd29ya1xuIik7CisJRkFJTF9PTighcGxhbmVf c3RhdGUudmlzaWJsZSk7CisJRkFJTF9PTighY2hlY2tfc3JjX2VxKCZwbGFuZV9zdGF0ZSwgMCwg MCwgMTAyMyA8PCAxNiwgNzY3IDw8IDE2KSk7CisJRkFJTF9PTighY2hlY2tfY3J0Y19lcSgmcGxh bmVfc3RhdGUsIDAsIDAsIDEwMjMsIDc2NykpOworCisJLyogU2ltcGxlIHNjYWxpbmcgdGVzdHMu ICovCisJc2V0X3NyYygmcGxhbmVfc3RhdGUsIDAsIDAsIDUxMiA8PCAxNiwgMzg0IDw8IDE2KTsK KwlzZXRfY3J0YygmcGxhbmVfc3RhdGUsIDAsIDAsIDEwMjQsIDc2OCk7CisJcmV0ID0gZHJtX2F0 b21pY19oZWxwZXJfY2hlY2tfcGxhbmVfc3RhdGUoJnBsYW5lX3N0YXRlLCAmY3J0Y19zdGF0ZSwK KwkJCQkJCSAgMHg4MDAxLAorCQkJCQkJICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcsCisJ CQkJCQkgIGZhbHNlLCBmYWxzZSk7CisJRkFJTCghcmV0LCAiVXBzY2FsaW5nIG91dCBvZiByYW5n ZSBzaG91bGQgZmFpbC5cbiIpOworCXJldCA9IGRybV9hdG9taWNfaGVscGVyX2NoZWNrX3BsYW5l X3N0YXRlKCZwbGFuZV9zdGF0ZSwgJmNydGNfc3RhdGUsCisJCQkJCQkgIDB4ODAwMCwKKwkJCQkJ CSAgRFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5HLAorCQkJCQkJICBmYWxzZSwgZmFsc2UpOwor CUZBSUwocmV0IDwgMCwgIlVwc2NhbGluZyBleGFjdGx5IDJ4IHNob3VsZCB3b3JrXG4iKTsKKwlG QUlMX09OKCFwbGFuZV9zdGF0ZS52aXNpYmxlKTsKKwlGQUlMX09OKCFjaGVja19zcmNfZXEoJnBs YW5lX3N0YXRlLCAwLCAwLCA1MTIgPDwgMTYsIDM4NCA8PCAxNikpOworCUZBSUxfT04oIWNoZWNr X2NydGNfZXEoJnBsYW5lX3N0YXRlLCAwLCAwLCAxMDI0LCA3NjgpKTsKKworCXNldF9zcmMoJnBs YW5lX3N0YXRlLCAwLCAwLCAyMDQ4IDw8IDE2LCAxNTM2IDw8IDE2KTsKKwlyZXQgPSBkcm1fYXRv bWljX2hlbHBlcl9jaGVja19wbGFuZV9zdGF0ZSgmcGxhbmVfc3RhdGUsICZjcnRjX3N0YXRlLAor CQkJCQkJICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcsCisJCQkJCQkgIDB4MWZmZmYsIGZh bHNlLCBmYWxzZSk7CisJRkFJTCghcmV0LCAiRG93bnNjYWxpbmcgb3V0IG9mIHJhbmdlIHNob3Vs ZCBmYWlsLlxuIik7CisJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVfc3RhdGUo JnBsYW5lX3N0YXRlLCAmY3J0Y19zdGF0ZSwKKwkJCQkJCSAgRFJNX1BMQU5FX0hFTFBFUl9OT19T Q0FMSU5HLAorCQkJCQkJICAweDIwMDAwLCBmYWxzZSwgZmFsc2UpOworCUZBSUwocmV0IDwgMCwg IlNob3VsZCBzdWNjZWVkIHdpdGggZXhhY3Qgc2NhbGluZyBsaW1pdFxuIik7CisJRkFJTF9PTigh cGxhbmVfc3RhdGUudmlzaWJsZSk7CisJRkFJTF9PTighY2hlY2tfc3JjX2VxKCZwbGFuZV9zdGF0 ZSwgMCwgMCwgMjA0OCA8PCAxNiwgMTUzNiA8PCAxNikpOworCUZBSUxfT04oIWNoZWNrX2NydGNf ZXEoJnBsYW5lX3N0YXRlLCAwLCAwLCAxMDI0LCA3NjgpKTsKKworCS8qIFRlc3Rpbmcgcm91bmRp bmcgZXJyb3JzLiAqLworCXNldF9zcmMoJnBsYW5lX3N0YXRlLCAwLCAwLCAweDQwMDAxLCAweDQw MDAxKTsKKwlzZXRfY3J0YygmcGxhbmVfc3RhdGUsIDEwMjIsIDc2NiwgNCwgNCk7CisJcmV0ID0g ZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVfc3RhdGUoJnBsYW5lX3N0YXRlLCAmY3J0Y19z dGF0ZSwKKwkJCQkJCSAgRFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5HLAorCQkJCQkJICAweDEw MDAxLAorCQkJCQkJICB0cnVlLCBmYWxzZSk7CisJRkFJTChyZXQgPCAwLCAiU2hvdWxkIHN1Y2Nl ZWQgYnkgY2xpcHBpbmcgdG8gZXhhY3QgbXVsdGlwbGUiKTsKKwlGQUlMX09OKCFwbGFuZV9zdGF0 ZS52aXNpYmxlKTsKKwlGQUlMX09OKCFjaGVja19zcmNfZXEoJnBsYW5lX3N0YXRlLCAwLCAwLCAy IDw8IDE2LCAyIDw8IDE2KSk7CisJRkFJTF9PTighY2hlY2tfY3J0Y19lcSgmcGxhbmVfc3RhdGUs IDEwMjIsIDc2NiwgMiwgMikpOworCisJc2V0X3NyYygmcGxhbmVfc3RhdGUsIDB4MjAwMDEsIDB4 MjAwMDEsIDB4NDA0MDAwMSwgMHgzMDQwMDAxKTsKKwlzZXRfY3J0YygmcGxhbmVfc3RhdGUsIC0y LCAtMiwgMTAyOCwgNzcyKTsKKwlyZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19wbGFuZV9z dGF0ZSgmcGxhbmVfc3RhdGUsICZjcnRjX3N0YXRlLAorCQkJCQkJICBEUk1fUExBTkVfSEVMUEVS X05PX1NDQUxJTkcsCisJCQkJCQkgIDB4MTAwMDEsCisJCQkJCQkgIGZhbHNlLCBmYWxzZSk7CisJ RkFJTChyZXQgPCAwLCAiU2hvdWxkIHN1Y2NlZWQgYnkgY2xpcHBpbmcgdG8gZXhhY3QgbXVsdGlw bGUiKTsKKwlGQUlMX09OKCFwbGFuZV9zdGF0ZS52aXNpYmxlKTsKKwlGQUlMX09OKCFjaGVja19z cmNfZXEoJnBsYW5lX3N0YXRlLCAweDQwMDAyLCAweDQwMDAyLCAxMDI0IDw8IDE2LCA3NjggPDwg MTYpKTsKKwlGQUlMX09OKCFjaGVja19jcnRjX2VxKCZwbGFuZV9zdGF0ZSwgMCwgMCwgMTAyNCwg NzY4KSk7CisKKwlzZXRfc3JjKCZwbGFuZV9zdGF0ZSwgMCwgMCwgMHgzZmZmZiwgMHgzZmZmZik7 CisJc2V0X2NydGMoJnBsYW5lX3N0YXRlLCAxMDIyLCA3NjYsIDQsIDQpOworCXJldCA9IGRybV9h dG9taWNfaGVscGVyX2NoZWNrX3BsYW5lX3N0YXRlKCZwbGFuZV9zdGF0ZSwgJmNydGNfc3RhdGUs CisJCQkJCQkgIDB4ZmZmZiwKKwkJCQkJCSAgRFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5HLAor CQkJCQkJICB0cnVlLCBmYWxzZSk7CisJRkFJTChyZXQgPCAwLCAiU2hvdWxkIHN1Y2NlZWQgYnkg Y2xpcHBpbmcgdG8gZXhhY3QgbXVsdGlwbGUiKTsKKwlGQUlMX09OKCFwbGFuZV9zdGF0ZS52aXNp YmxlKTsKKwkvKiBTaG91bGQgbm90IGJlIHJvdW5kZWQgdG8gMHgyMDAwMSwgd2hpY2ggd291bGQg YmUgdXBzY2FsaW5nLiAqLworCUZBSUxfT04oIWNoZWNrX3NyY19lcSgmcGxhbmVfc3RhdGUsIDAs IDAsIDIgPDwgMTYsIDIgPDwgMTYpKTsKKwlGQUlMX09OKCFjaGVja19jcnRjX2VxKCZwbGFuZV9z dGF0ZSwgMTAyMiwgNzY2LCAyLCAyKSk7CisKKwlzZXRfc3JjKCZwbGFuZV9zdGF0ZSwgMHgxZmZm ZiwgMHgxZmZmZiwgMHg0MDNmZmZmLCAweDMwM2ZmZmYpOworCXNldF9jcnRjKCZwbGFuZV9zdGF0 ZSwgLTIsIC0yLCAxMDI4LCA3NzIpOworCXJldCA9IGRybV9hdG9taWNfaGVscGVyX2NoZWNrX3Bs YW5lX3N0YXRlKCZwbGFuZV9zdGF0ZSwgJmNydGNfc3RhdGUsCisJCQkJCQkgIDB4ZmZmZiwKKwkJ CQkJCSAgRFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5HLAorCQkJCQkJICBmYWxzZSwgZmFsc2Up OworCUZBSUwocmV0IDwgMCwgIlNob3VsZCBzdWNjZWVkIGJ5IGNsaXBwaW5nIHRvIGV4YWN0IG11 bHRpcGxlIik7CisJRkFJTF9PTighcGxhbmVfc3RhdGUudmlzaWJsZSk7CisJRkFJTF9PTighY2hl Y2tfc3JjX2VxKCZwbGFuZV9zdGF0ZSwgMHgzZmZmZSwgMHgzZmZmZSwgMTAyNCA8PCAxNiwgNzY4 IDw8IDE2KSk7CisJRkFJTF9PTighY2hlY2tfY3J0Y19lcSgmcGxhbmVfc3RhdGUsIDAsIDAsIDEw MjQsIDc2OCkpOworCisJcmV0dXJuIDA7Cit9CisKKyNpbmNsdWRlICJkcm1fc2VsZnRlc3QuYyIK Kworc3RhdGljIGludCBfX2luaXQgdGVzdF9kcm1faGVscGVyX2luaXQodm9pZCkKK3sKKwlpbnQg ZXJyOworCisJZXJyID0gcnVuX3NlbGZ0ZXN0cyhzZWxmdGVzdHMsIEFSUkFZX1NJWkUoc2VsZnRl c3RzKSwgTlVMTCk7CisKKwlyZXR1cm4gZXJyID4gMCA/IDAgOiBlcnI7Cit9CisKK21vZHVsZV9p bml0KHRlc3RfZHJtX2hlbHBlcl9pbml0KTsKKworTU9EVUxFX0FVVEhPUigiSW50ZWwgQ29ycG9y YXRpb24iKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKLS0gCjIuMTcuMAoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlz dApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==