From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.bootlin.com (mail.bootlin.com [62.4.15.54]) by gabe.freedesktop.org (Postfix) with ESMTP id B243A6EF71 for ; Tue, 8 Jan 2019 15:02:42 +0000 (UTC) From: Paul Kocialkowski Date: Tue, 8 Jan 2019 16:02:24 +0100 Message-Id: <20190108150224.2679-5-paul.kocialkowski@bootlin.com> In-Reply-To: <20190108150224.2679-1-paul.kocialkowski@bootlin.com> References: <20190108150224.2679-1-paul.kocialkowski@bootlin.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 4/4] tests: Add VC4 load tracker tests List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org Cc: Eben Upton List-ID: VGhpcyBpbnRyb2R1Y2VzIHRlc3RzIGZvciB0aGUgVkM0IGxvYWQgdHJhY2tpbmcgbWVjaGFuaXNt LCB3aXRoIHR3bwpmbGF2b3JzLiBPbmUgY2hlY2tzIHRoYXQgdGhlIGxvYWQgbGltaXRhdGlvbiBp cyByZWFjaGVkIGFmdGVyIGFkZGluZwoiYXMgbWFueSBwbGFuZXMgYXMgcG9zc2libGUiIGluIHRo ZSBtb2RlIHJlc29sdXRpb24uIFRoZSBvdGhlciBjaGVja3MKdGhlIGNvbnNpc3RlbmN5IGJldHdl ZW4gdGhlIHVuZGVycnVuIGluZGljYXRpb24gYW5kIGxvYWQgdHJhY2tpbmcKaW5kaWNhdGlvbiB3 aGlsZSBkb2luZyB0aGF0LgoKU2lnbmVkLW9mZi1ieTogUGF1bCBLb2NpYWxrb3dza2kgPHBhdWwu a29jaWFsa293c2tpQGJvb3RsaW4uY29tPgotLS0KIHRlc3RzL01ha2VmaWxlLnNvdXJjZXMgICB8 ICAgMSArCiB0ZXN0cy9tZXNvbi5idWlsZCAgICAgICAgfCAgIDEgKwogdGVzdHMvdmM0X2xvYWRf dHJhY2tlci5jIHwgMjQ5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog MyBmaWxlcyBjaGFuZ2VkLCAyNTEgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRl c3RzL3ZjNF9sb2FkX3RyYWNrZXIuYwoKZGlmZiAtLWdpdCBhL3Rlc3RzL01ha2VmaWxlLnNvdXJj ZXMgYi90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCmluZGV4IGVlZGRlMWU4MTdjYi4uNWVhNGY5NDAx MjllIDEwMDY0NAotLS0gYS90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCisrKyBiL3Rlc3RzL01ha2Vm aWxlLnNvdXJjZXMKQEAgLTgsNiArOCw3IEBAIFZDNF9URVNUUyA9IFwKIAl2YzRfY3JlYXRlX2Jv IFwKIAl2YzRfZG1hYnVmX3BvbGwgXAogCXZjNF9sb29rdXBfZmFpbCBcCisJdmM0X2xvYWRfdHJh Y2tlciBcCiAJdmM0X2xhYmVsX2JvIFwKIAl2YzRfcHVyZ2VhYmxlX2JvIFwKIAl2YzRfdGlsaW5n IFwKZGlmZiAtLWdpdCBhL3Rlc3RzL21lc29uLmJ1aWxkIGIvdGVzdHMvbWVzb24uYnVpbGQKaW5k ZXggYjhhNmU2MWIzNDA0Li5mNmM3MWZmOTc1NzQgMTAwNjQ0Ci0tLSBhL3Rlc3RzL21lc29uLmJ1 aWxkCisrKyBiL3Rlc3RzL21lc29uLmJ1aWxkCkBAIC04NSw2ICs4NSw3IEBAIHRlc3RfcHJvZ3Mg PSBbCiAJJ3ZjNF9jcmVhdGVfYm8nLAogCSd2YzRfZG1hYnVmX3BvbGwnLAogCSd2YzRfbGFiZWxf Ym8nLAorCSd2YzRfbG9hZF90cmFja2VyJywKIAkndmM0X2xvb2t1cF9mYWlsJywKIAkndmM0X3B1 cmdlYWJsZV9ibycsCiAJJ3ZjNF90aWxpbmcnLApkaWZmIC0tZ2l0IGEvdGVzdHMvdmM0X2xvYWRf dHJhY2tlci5jIGIvdGVzdHMvdmM0X2xvYWRfdHJhY2tlci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uMTAzMDFhMWVjZGUzCi0tLSAvZGV2L251bGwKKysrIGIvdGVz dHMvdmM0X2xvYWRfdHJhY2tlci5jCkBAIC0wLDAgKzEsMjQ5IEBACisvKgorICogQ29weXJpZ2h0 IMKpIDIwMTggQm9vdGxpbgorICogQ29weXJpZ2h0IMKpIDIwMTggQnJvYWRjb20KKyAqCisgKiBQ ZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNv biBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRv Y3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNv ZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24K KyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0 cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2Fy ZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJu aXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoK KyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNl IChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4g YWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJlLgor ICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZ IE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBM SU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVO VCBTSEFMTAorICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZP UiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBB TiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9N LCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9S IE9USEVSIERFQUxJTkdTCisgKiBJTiBUSEUgU09GVFdBUkUuCisgKi8KKworI2luY2x1ZGUgImln dC5oIgorI2luY2x1ZGUgImlndF92YzQuaCIKKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRl IDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2lu Y2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8aW50dHlwZXMuaD4KKyNpbmNsdWRlIDxlcnJuby5o PgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8c3lzL2lvY3RsLmg+CisjaW5jbHVk ZSA8cG9sbC5oPgorI2luY2x1ZGUgInZjNF9kcm0uaCIKKworc3RhdGljIGlndF9vdXRwdXRfdCAq c2VsZWN0X291dHB1dChpZ3RfZGlzcGxheV90ICpkaXNwbGF5KQoreworCWlndF9vdXRwdXRfdCAq b3V0cHV0OworCWVudW0gcGlwZSBwaXBlOworCisJZm9yX2VhY2hfcGlwZShkaXNwbGF5LCBwaXBl KSB7CisJCWZvcl9lYWNoX3ZhbGlkX291dHB1dF9vbl9waXBlKGRpc3BsYXksIHBpcGUsIG91dHB1 dCkgeworCQkJZHJtTW9kZUNvbm5lY3RvciAqY29ubmVjdG9yID0gb3V0cHV0LT5jb25maWcuY29u bmVjdG9yOworCisJCQlpZiAoY29ubmVjdG9yLT5jb25uZWN0aW9uICE9IERSTV9NT0RFX0NPTk5F Q1RFRCkKKwkJCQljb250aW51ZTsKKworCQkJaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQsIHBp cGUpOworCisJCQlyZXR1cm4gb3V0cHV0OworCQl9CisJfQorCisJcmV0dXJuIE5VTEw7Cit9CisK K3N0YXRpYyB2b2lkIHNldHVwX3ByaW1hcnlfcGxhbmUoaW50IGRybV9mZCwgaWd0X291dHB1dF90 ICpvdXRwdXQsCisJCQkJdWludDMyX3Qgd2lkdGgsIHVpbnQzMl90IGhlaWdodCwKKwkJCQlpZ3Rf cGxhbmVfdCAqKnBsYW5lLCBzdHJ1Y3QgaWd0X2ZiICpmYikKK3sKKwl1bnNpZ25lZCBpbnQgZmJf aWQ7CisKKwkqcGxhbmUgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZV90eXBlKG91dHB1dCwgRFJNX1BM QU5FX1RZUEVfUFJJTUFSWSk7CisJaWd0X2Fzc2VydCgqcGxhbmUpOworCisJZmJfaWQgPSBpZ3Rf Y3JlYXRlX3BhdHRlcm5fZmIoZHJtX2ZkLCB3aWR0aCwgaGVpZ2h0LAorCQkJCSAgICAgIERSTV9G T1JNQVRfQVJHQjg4ODgsCisJCQkJICAgICAgTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9ORSwgZmIp OworCWlndF9hc3NlcnQoZmJfaWQgPiAwKTsKKworCWlndF9wbGFuZV9zZXRfZmIoKnBsYW5lLCBm Yik7Cit9CisKK3N0YXRpYyB2b2lkIHNldHVwX292ZXJsYXlfcGxhbmUoaW50IGRybV9mZCwgaWd0 X291dHB1dF90ICpvdXRwdXQsCisJCQkJdW5zaWduZWQgaW50IGluZGV4LCB1aW50MzJfdCB3aWR0 aCwKKwkJCQl1aW50MzJfdCBoZWlnaHQsIHN0cnVjdCBpZ3RfZmIgKmZicykKK3sKKwl1bnNpZ25l ZCBpbnQgZmJfaWQ7CisJc3RydWN0IGlndF9mYiAqZmIgPSAmZmJzW2luZGV4XTsKKwlpZ3RfcGxh bmVfdCAqcGxhbmUgPQorCQlpZ3Rfb3V0cHV0X2dldF9wbGFuZV90eXBlX2luZGV4KG91dHB1dCwg RFJNX1BMQU5FX1RZUEVfT1ZFUkxBWSwKKwkJCQkJCWluZGV4KTsKKwlpZ3RfYXNzZXJ0KHBsYW5l KTsKKworCWZiX2lkID0gaWd0X2NyZWF0ZV9wYXR0ZXJuX2ZiKGRybV9mZCwgd2lkdGgsIGhlaWdo dCwKKwkJCQkgICAgICBEUk1fRk9STUFUX0FSR0I4ODg4LAorCQkJCSAgICAgIExPQ0FMX0RSTV9G T1JNQVRfTU9EX05PTkUsIGZiKTsKKwlpZ3RfYXNzZXJ0KGZiX2lkID4gMCk7CisKKwlpZ3RfcGxh bmVfc2V0X2ZiKHBsYW5lLCBmYik7CisJaWd0X3BsYW5lX3NldF9wb3NpdGlvbihwbGFuZSwgMTAg KiAoaW5kZXggKyAxKSwgMTAgKiAoaW5kZXggKyAxKSk7Cit9CisKK3N0YXRpYyB2b2lkIGNsZWFu dXBfb3ZlcmxheV9wbGFuZShpbnQgZHJtX2ZkLCBpZ3Rfb3V0cHV0X3QgKm91dHB1dCwKKwkJCQkg IHVuc2lnbmVkIGludCBpbmRleCwgc3RydWN0IGlndF9mYiAqZmJzLAorCQkJCSAgYm9vbCBjbGVh bnVwX2ZiKQoreworCXN0cnVjdCBpZ3RfZmIgKmZiID0gJmZic1tpbmRleF07CisJaWd0X3BsYW5l X3QgKnBsYW5lID0KKwkJaWd0X291dHB1dF9nZXRfcGxhbmVfdHlwZV9pbmRleChvdXRwdXQsIERS TV9QTEFORV9UWVBFX09WRVJMQVksCisJCQkJCQlpbmRleCk7CisJaWd0X2Fzc2VydChwbGFuZSk7 CisKKwlpZiAoY2xlYW51cF9mYikKKwkJaWd0X3JlbW92ZV9mYihkcm1fZmQsIGZiKTsKKwllbHNl CisJCWlndF9wbGFuZV9zZXRfZmIocGxhbmUsIE5VTEwpOworfQorCitzdGF0aWMgdm9pZCBsb2Fk X3RyYWNrZXJfdGVzdChpbnQgZHJtX2ZkLCBpZ3RfZGlzcGxheV90ICpkaXNwbGF5LAorCQkJICAg ICAgYm9vbCB0ZXN0X2NvbnNpc3RlbmN5KQoreworCWlndF9vdXRwdXRfdCAqb3V0cHV0OworCWRy bU1vZGVNb2RlSW5mbyAqbW9kZTsKKwlzdHJ1Y3QgaWd0X2ZiIHByaW1hcnlfZmI7CisJaWd0X3Bs YW5lX3QgKnByaW1hcnlfcGxhbmU7CisJc3RydWN0IGlndF9mYiAqb3ZlcmxheV9mYnM7CisJdWlu dDMyX3Qgb3ZlcmxheV93aWR0aCwgb3ZlcmxheV9oZWlnaHQ7CisJdW5zaWduZWQgaW50IG92ZXJs YXlfcGxhbmVzX2NvdW50OworCXVuc2lnbmVkIGludCBjb3VudDsKKwl1bnNpZ25lZCBpbnQgaW5k ZXg7CisJYm9vbCBsb2FkX3RyYWNrZXJfaW5pdGlhbCA9IGZhbHNlOworCWJvb2wgYmFuZHdpZHRo X2V4Y2VlZGVkID0gZmFsc2U7CisJYm9vbCB1bmRlcnJ1bl9kZXRlY3RlZCA9IGZhbHNlOworCWlu dCB1bmRlcnJ1bl9jb3VudDsKKwlpbnQgZGVidWdmczsKKwlpbnQgcmV0OworCisJZGVidWdmcyA9 IGlndF9kZWJ1Z2ZzX2Rpcihkcm1fZmQpOworCWlndF9hc3NlcnQoZGVidWdmcyA+PSAwKTsKKwor CXVuZGVycnVuX2NvdW50ID0gaWd0X3ZjNF9nZXRfdW5kZXJydW5fY291bnQoZGVidWdmcyk7CisJ bG9hZF90cmFja2VyX2luaXRpYWwgPSBpZ3RfdmM0X2dldF9sb2FkX3RyYWNrZXIoZGVidWdmcyk7 CisKKwlvdXRwdXQgPSBzZWxlY3Rfb3V0cHV0KGRpc3BsYXkpOworCWlndF9hc3NlcnQob3V0cHV0 KTsKKworCWlndF9kZWJ1ZygiU2VsZWN0ZWQgY29ubmVjdG9yICVzXG4iLAorCQkgIGttc3Rlc3Rf Y29ubmVjdG9yX3R5cGVfc3RyKG91dHB1dC0+Y29uZmlnLmNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5 cGUpKTsKKworCW1vZGUgPSBpZ3Rfb3V0cHV0X2dldF9tb2RlKG91dHB1dCk7CisJaWd0X2Fzc2Vy dChtb2RlKTsKKworCXNldHVwX3ByaW1hcnlfcGxhbmUoZHJtX2ZkLCBvdXRwdXQsIG1vZGUtPmhk aXNwbGF5LCBtb2RlLT52ZGlzcGxheSwKKwkJCSAgICAmcHJpbWFyeV9wbGFuZSwgJnByaW1hcnlf ZmIpOworCisJb3ZlcmxheV9wbGFuZXNfY291bnQgPQorCQlpZ3Rfb3V0cHV0X2NvdW50X3BsYW5l X3R5cGUob3V0cHV0LCBEUk1fUExBTkVfVFlQRV9PVkVSTEFZKTsKKworCW92ZXJsYXlfZmJzID0g Y2FsbG9jKHNpemVvZihzdHJ1Y3QgaWd0X2ZiKSwgb3ZlcmxheV9wbGFuZXNfY291bnQpOworCisJ b3ZlcmxheV93aWR0aCA9IG1vZGUtPmhkaXNwbGF5OworCW92ZXJsYXlfaGVpZ2h0ID0gbW9kZS0+ dmRpc3BsYXk7CisKKwlmb3IgKGNvdW50ID0gMTsgY291bnQgPD0gb3ZlcmxheV9wbGFuZXNfY291 bnQ7IGNvdW50KyspIHsKKwkJaW50IHVuZGVycnVuX3VwZGF0ZTsKKworCQlpZ3RfZGVidWcoIlVz aW5nICVkIG92ZXJsYXkgcGxhbmVzIHdpdGggcmVzb2x1dGlvbiAlZHglZFxuIiwKKwkJCSAgb3Zl cmxheV9wbGFuZXNfY291bnQsIG92ZXJsYXlfd2lkdGgsIG92ZXJsYXlfaGVpZ2h0KTsKKworCQlm b3IgKGluZGV4ID0gMDsgaW5kZXggPCBjb3VudDsgaW5kZXgrKykKKwkJCXNldHVwX292ZXJsYXlf cGxhbmUoZHJtX2ZkLCBvdXRwdXQsIGluZGV4LAorCQkJCQkgICAgb3ZlcmxheV93aWR0aCwgb3Zl cmxheV9oZWlnaHQsCisJCQkJCSAgICBvdmVybGF5X2Zicyk7CisKKwkJaWd0X3ZjNF9zZXRfbG9h ZF90cmFja2VyKGRlYnVnZnMsIHRydWUpOworCisJCXJldCA9IGlndF9kaXNwbGF5X3RyeV9jb21t aXQyKGRpc3BsYXksIENPTU1JVF9BVE9NSUMpOworCQliYW5kd2lkdGhfZXhjZWVkZWQgPSAocmV0 IDwgMCAmJiBlcnJubyA9PSBFTk9TUEMpOworCisJCWlndF9kZWJ1ZygiQmFuZHdpZHRoIGxpbWl0 YXRpb24gZXhlZWRlZDogJXNcbiIsCisJCQkgIGJhbmR3aWR0aF9leGNlZWRlZCA/ICJZZXMiIDog Ik5vIik7CisKKwkJaWd0X3ZjNF9zZXRfbG9hZF90cmFja2VyKGRlYnVnZnMsIGZhbHNlKTsKKwor CQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9BVE9NSUMpOworCisJCWlndF93 YWl0X2Zvcl92YmxhbmsoZHJtX2ZkLCBvdXRwdXQtPnBlbmRpbmdfcGlwZSk7CisKKwkJdW5kZXJy dW5fdXBkYXRlID0gaWd0X3ZjNF9nZXRfdW5kZXJydW5fY291bnQoZGVidWdmcyk7CisKKwkJdW5k ZXJydW5fZGV0ZWN0ZWQgPSAodW5kZXJydW5fdXBkYXRlID4gdW5kZXJydW5fY291bnQpOworCQl1 bmRlcnJ1bl9jb3VudCA9IHVuZGVycnVuX3VwZGF0ZTsKKworCQlpZ3RfZGVidWcoIlVuZGVycnVu IGRldGVjdGVkOiAlc1xuIiwKKwkJCSAgdW5kZXJydW5fZGV0ZWN0ZWQgPyAiWWVzIiA6ICJObyIp OworCisJCWlmICh0ZXN0X2NvbnNpc3RlbmN5KQorCQkJaWd0X2Fzc2VydChiYW5kd2lkdGhfZXhj ZWVkZWQgPT0gdW5kZXJydW5fZGV0ZWN0ZWQpOworCisJCWZvciAoaW5kZXggPSAwOyBpbmRleCA8 IGNvdW50OyBpbmRleCsrKQorCQkJY2xlYW51cF9vdmVybGF5X3BsYW5lKGRybV9mZCwgb3V0cHV0 LCBpbmRleCwKKwkJCQkJICAgICAgb3ZlcmxheV9mYnMsIGZhbHNlKTsKKworCQlpZ3RfZGlzcGxh eV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9BVE9NSUMpOworCisJCWZvciAoaW5kZXggPSAwOyBp bmRleCA8IGNvdW50OyBpbmRleCsrKQorCQkJY2xlYW51cF9vdmVybGF5X3BsYW5lKGRybV9mZCwg b3V0cHV0LCBpbmRleCwKKwkJCQkJICAgICAgb3ZlcmxheV9mYnMsIHRydWUpOworCisKKwkJaWYg KGJhbmR3aWR0aF9leGNlZWRlZCkKKwkJCWJyZWFrOworCX0KKworCWlmICghdGVzdF9jb25zaXN0 ZW5jeSkKKwkJaWd0X2Fzc2VydChiYW5kd2lkdGhfZXhjZWVkZWQpOworCisJZnJlZShvdmVybGF5 X2Zicyk7CisKKwlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnlfcGxhbmUsIE5VTEwpOworCisJaWd0 X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRfQVRPTUlDKTsKKworCWlndF9yZW1vdmVf ZmIoZHJtX2ZkLCAmcHJpbWFyeV9mYik7CisKKwlpZ3RfdmM0X3NldF9sb2FkX3RyYWNrZXIoZGVi dWdmcywgbG9hZF90cmFja2VyX2luaXRpYWwpOworCWNsb3NlKGRlYnVnZnMpOworfQorCitpZ3Rf bWFpbgoreworCWlndF9kaXNwbGF5X3QgZGlzcGxheTsKKwlpbnQgZHJtX2ZkOworCisJaWd0X2Zp eHR1cmUgeworCQlkcm1fZmQgPSBkcm1fb3Blbl9kcml2ZXIoRFJJVkVSX1ZDNCk7CisKKwkJa21z dGVzdF9zZXRfdnRfZ3JhcGhpY3NfbW9kZSgpOworCisJCWlndF9kaXNwbGF5X3JlcXVpcmUoJmRp c3BsYXksIGRybV9mZCk7CisJCWlndF9yZXF1aXJlKGRpc3BsYXkuaXNfYXRvbWljKTsKKwl9CisK KwlpZ3Rfc3VidGVzdCgiZGV0ZWN0aW9uIikKKwkJbG9hZF90cmFja2VyX3Rlc3QoZHJtX2ZkLCAm ZGlzcGxheSwgZmFsc2UpOworCisJaWd0X3N1YnRlc3QoImNvbnNpc3RlbmN5IikKKwkJbG9hZF90 cmFja2VyX3Rlc3QoZHJtX2ZkLCAmZGlzcGxheSwgdHJ1ZSk7CisKKwlpZ3RfZml4dHVyZSB7CisJ CWlndF9kaXNwbGF5X2ZpbmkoJmRpc3BsYXkpOworCQlrbXN0ZXN0X3Jlc3RvcmVfdnRfbW9kZSgp OworCQljbG9zZShkcm1fZmQpOworCX0KK30KLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRl dkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pZ3QtZGV2Cg==