From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter Antoine Subject: [PATCH i-g-t] tests/drm_hw_lock: Tests for hw_lock fixes. Date: Thu, 23 Apr 2015 15:07:05 +0100 Message-ID: <1429798025-18940-1-git-send-email-peter.antoine@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: 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: airlied@redhat.com, dri-devel@lists.freedesktop.org, daniel.vetter@ffwll.ch List-Id: intel-gfx@lists.freedesktop.org VGhlcmUgYXJlIHNldmVyYWwgaXNzdWVzIHdpdGggdGhlIGhhcmR3YXJlIGxvY2tzIGZ1bmN0aW9u cyB0aGF0IHN0cmV0Y2gKZnJvbSBrZXJuZWwgY3Jhc2hlcyB0byBwcmlvcml0eSBlc2NhbGF0aW9u cy4gVGhpcyBuZXcgdGVzdCB3aWxsIHRlc3QgdGhlCnRoZSBmaXhlcyBmb3IgdGhlc2UgZmVhdHVy ZXMuCgpUaGlzIHRlc3Qgd2lsbCBjYXVzZSBhIGRyaXZlci9rZXJuZWwgY3Jhc2ggb24gdW4tcGF0 Y2hlZCBrZXJuZWxzLCB0aGUKZm9sbG93aW5nIHBhdGNoZXMgc2hvdWxkIGJlIGFwcGxpZWQgdG8g c3RvcCB0aGUgY3Jhc2hlczoKCiAgZHJtOiBLZXJuZWwgQ3Jhc2ggaW4gZHJtX3VubG9jawogIGRy bTogRml4ZXMgdW5zYWZlIGRlZmVyZW5jZSBpbiBsb2Nrcy4KCklzc3VlOiBWSVotNTQ4NQpTaWdu ZWQtb2ZmLWJ5OiBQZXRlciBBbnRvaW5lIDxwZXRlci5hbnRvaW5lQGludGVsLmNvbT4KLS0tCiBs aWIvaW9jdGxfd3JhcHBlcnMuYyAgIHwgIDE5ICsrKysrCiBsaWIvaW9jdGxfd3JhcHBlcnMuaCAg IHwgICAxICsKIHRlc3RzL01ha2VmaWxlLnNvdXJjZXMgfCAgIDEgKwogdGVzdHMvZHJtX2h3X2xv Y2suYyAgICB8IDIwNyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDIyOCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAx MDA2NDQgdGVzdHMvZHJtX2h3X2xvY2suYwoKZGlmZiAtLWdpdCBhL2xpYi9pb2N0bF93cmFwcGVy cy5jIGIvbGliL2lvY3RsX3dyYXBwZXJzLmMKaW5kZXggMDAwZDM5NC4uYWQ4YjNkMyAxMDA2NDQK LS0tIGEvbGliL2lvY3RsX3dyYXBwZXJzLmMKKysrIGIvbGliL2lvY3RsX3dyYXBwZXJzLmMKQEAg LTk2NCw2ICs5NjQsMjUgQEAgYm9vbCBnZW1faGFzX2JzZDIoaW50IGZkKQogewogCXJldHVybiBn ZW1faGFzX2VuYWJsZV9yaW5nKGZkLExPQ0FMX0k5MTVfUEFSQU1fSEFTX0JTRDIpOwogfQorI2Rl ZmluZSBJOTE1X1BBUkFNX0hBU19MRUdBQ1lfQ09OVEVYVAkgMzUKK2Jvb2wgZHJtX2hhc19sZWdh Y3lfY29udGV4dChpbnQgZmQpCit7CisJaW50IHRtcCA9IDA7CisJZHJtX2k5MTVfZ2V0cGFyYW1f dCBncDsKKworCW1lbXNldCgmZ3AsIDAsIHNpemVvZihncCkpOworCWdwLnZhbHVlID0gJnRtcDsK KwlncC5wYXJhbSA9IEk5MTVfUEFSQU1fSEFTX0xFR0FDWV9DT05URVhUOworCisJLyoKKwkgKiBp ZiBsZWdhY3kgY29udGV4dCBwYXJhbSBpcyBub3Qgc3VwcG9ydGVkLCB0aGVuIGl0J3Mgb2xkIGFu ZCB3ZQorCSAqIGNhbiBhc3N1bWUgdGhhdCB0aGUgSFdfTE9DS1MgYXJlIHN1cHBvcnRlZC4KKwkg Ki8KKwlpZiAoZHJtSW9jdGwoZmQsIERSTV9JT0NUTF9JOTE1X0dFVFBBUkFNLCAmZ3ApICE9IDAp CisJCXJldHVybiB0cnVlOworCisJcmV0dXJuIHRtcCA9PSAxOworfQogLyoqCiAgKiBnZW1fYXZh aWxhYmxlX2FwZXJ0dXJlX3NpemU6CiAgKiBAZmQ6IG9wZW4gaTkxNSBkcm0gZmlsZSBkZXNjcmlw dG9yCmRpZmYgLS1naXQgYS9saWIvaW9jdGxfd3JhcHBlcnMuaCBiL2xpYi9pb2N0bF93cmFwcGVy cy5oCmluZGV4IGNlZDdlZjMuLjNhZGM3MDAgMTAwNjQ0Ci0tLSBhL2xpYi9pb2N0bF93cmFwcGVy cy5oCisrKyBiL2xpYi9pb2N0bF93cmFwcGVycy5oCkBAIC0xMjAsNiArMTIwLDcgQEAgYm9vbCBn ZW1faGFzX2JzZChpbnQgZmQpOwogYm9vbCBnZW1faGFzX2JsdChpbnQgZmQpOwogYm9vbCBnZW1f aGFzX3ZlYm94KGludCBmZCk7CiBib29sIGdlbV9oYXNfYnNkMihpbnQgZmQpOworYm9vbCBkcm1f aGFzX2xlZ2FjeV9jb250ZXh0KGludCBmZCk7CiBib29sIGdlbV91c2VzX2FsaWFzaW5nX3BwZ3R0 KGludCBmZCk7CiBpbnQgZ2VtX2F2YWlsYWJsZV9mZW5jZXMoaW50IGZkKTsKIHVpbnQ2NF90IGdl bV9hdmFpbGFibGVfYXBlcnR1cmVfc2l6ZShpbnQgZmQpOwpkaWZmIC0tZ2l0IGEvdGVzdHMvTWFr ZWZpbGUuc291cmNlcyBiL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKaW5kZXggNzFkZTZkZS4uMmY2 OWFmYyAxMDA2NDQKLS0tIGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcworKysgYi90ZXN0cy9NYWtl ZmlsZS5zb3VyY2VzCkBAIC04NCw2ICs4NCw3IEBAIFRFU1RTX3Byb2dzX00gPSBcCiAJcG1fc3Nl dSBcCiAJcHJpbWVfc2VsZl9pbXBvcnQgXAogCXRlbXBsYXRlIFwKKwlkcm1faHdfbG9jayBcCiAJ JChOVUxMKQogCiBURVNUU19wcm9ncyA9IFwKZGlmZiAtLWdpdCBhL3Rlc3RzL2RybV9od19sb2Nr LmMgYi90ZXN0cy9kcm1faHdfbG9jay5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLmFhZDUwYmEKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9kcm1faHdfbG9jay5jCkBAIC0w LDAgKzEsMjA3IEBACisvKgorICogQ29weXJpZ2h0IMKpIDIwMTUgSW50ZWwgQ29ycG9yYXRpb24K KyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8g YW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3Nv Y2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwg aW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxp bWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJs aXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRo ZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2Fy ZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRp b25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Np b24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5j bHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNv ZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VU IFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcg QlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAq IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJ TiBOTyBFVkVOVCBTSEFMTAorICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUg TElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hF VEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5H CisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBU SEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCisgKiBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQXV0 aG9yczoKKyAqICAgIFBldGVyIEFudG9pbmUgPHBldGVyLmFudG9pbmVAaW50ZWwuY29tPgorICov CisKKy8qCisgKiBUZXN0Y2FzZTogVGVzdCB0aGUgSFdfTE9DS3MgZm9yIGNvcnJlY3Qgc3VwcG9y dCBhbmQgbm9uLWNyYXNoaW5nLgorICoKKyAqIFRoaXMgdGVzdCB3aWxsIGNoZWNrIHRoYXQgaGUg aHdfbG9ja3MgYXJlIG9ubHkgZ19zdXBwb3J0ZWQgZm9yIGRyaXZlcnMgdGhhdAorICogcmVxdWly ZSB0aGF0IHN1cHBvcnQuIElmIGl0IGlzIG5vdCBnX3N1cHBvcnRlZCB0aGVuIHRoZSBmdW5jdGlv bnMgYWxsIHJldHVybgorICogdGhlIGNvcnJlY3QgZXJyb3IgY29kZS4KKyAqCisgKiBJZiBnX3N1 cHBvcnRlZCBpdCB3aWxsIGNoZWNrIHRoYXQgdGhlIGZ1bmN0aW9ucyBkbyBub3QgY3Jhc2ggd2hl biB0aGUgY3Jhc2gKKyAqIHRlc3RzIGFyZSB1c2VkLCBhbHNvIHRoYXQgb25lIG9mIHRoZSB0ZXN0 cyBpcyBhIHNlY3VyaXR5IGxldmVsIGVzY2FsYXRpb24KKyAqIHRoYXQgc2hvdWxkIGJlIHJlamVj dGVkLgorICovCisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c2lnbmFsLmg+CisjaW5j bHVkZSA8c3lzL2lvY3RsLmg+CisjaW5jbHVkZSA8ZHJtLmg+CisjaW5jbHVkZSAiZHJtdGVzdC5o IgorI2luY2x1ZGUgImlndF9jb3JlLmgiCisjaW5jbHVkZSAiaW9jdGxfd3JhcHBlcnMuaCIKKwor I2lmbmRlZiBEUk1fS0VSTkVMX0NPTlRFWFQKKyMJZGVmaW5lIERSTV9LRVJORUxfQ09OVEVYVAko MCkKKyNlbmRpZgorCisjaWZuZGVmIF9EUk1fTE9DS19IRUxECisjCWRlZmluZSBfRFJNX0xPQ0tf SEVMRAkweDgwMDAwMDAwVSAvKio8IEhhcmR3YXJlIGxvY2sgaXMgaGVsZCAqLworI2VuZGlmCisK KyNpZm5kZWYgX0RSTV9MT0NLX0NPTlQKKyMJZGVmaW5lIF9EUk1fTE9DS19DT05UCTB4NDAwMDAw MDBVIC8qKjwgSGFyZHdhcmUgbG9jayBpcyBjb250ZW5kZWQgKi8KKyNlbmRpZgorCitzdGF0aWMg Ym9vbAlnX3NpZ19maXJlZDsKK3N0YXRpYyBib29sCWdfc3VwcG9ydGVkOworc3RhdGljIHN0cnVj dCBzaWdhY3Rpb24gb2xkX2FjdGlvbjsKKworc3RhdGljIHZvaWQgc2lnX3Rlcm1faGFuZGxlcihp bnQgdmFsdWUpCit7CisJZ19zaWdfZmlyZWQgPSB0cnVlOworfQorCitzdGF0aWMgYm9vbCBzZXRf dGVybV9oYW5kbGVyKHZvaWQpCit7CisJc3RhdGljIHN0cnVjdCBzaWdhY3Rpb24gbmV3X2FjdGlv bjsKKworCW5ld19hY3Rpb24uc2FfaGFuZGxlciA9IHNpZ190ZXJtX2hhbmRsZXI7CisJc2lnZW1w dHlzZXQoJm5ld19hY3Rpb24uc2FfbWFzayk7CisJbmV3X2FjdGlvbi5zYV9mbGFncyA9IDA7CisK KwlpZ3RfYXNzZXJ0KHNpZ2FjdGlvbihTSUdURVJNLCAmbmV3X2FjdGlvbiwgJm9sZF9hY3Rpb24p ID09IDApOworCisJaWYgKG9sZF9hY3Rpb24uc2FfaGFuZGxlciAhPSBTSUdfSUdOKQorCQlyZXR1 cm4gdHJ1ZTsKKwllbHNlCisJCXJldHVybiBmYWxzZTsKK30KKworc3RhdGljIHZvaWQgcmVzdG9y ZV90ZXJtX2hhbmRsZXIodm9pZCkKK3sKKwlzaWdhY3Rpb24oU0lHVEVSTSwgJm9sZF9hY3Rpb24s IE5VTEwpOworfQorCitzdGF0aWMgdm9pZCBkb2VzX2xvY2tfY3Jhc2goaW50IGZkKQoreworCXN0 cnVjdCBkcm1fbG9jawlydWJiaXNoOworCWludCByZXQ7CisKKwltZW1zZXQoJnJ1YmJpc2gsICdB Jywgc2l6ZW9mKHN0cnVjdCBkcm1fbG9jaykpOworCisJZ19zaWdfZmlyZWQgPSBmYWxzZTsKKwlp Z3RfYXNzZXJ0KHNldF90ZXJtX2hhbmRsZXIoKSk7CisKKwlyZXQgPSBpb2N0bChmZCwgRFJNX0lP Q1RMX0xPQ0ssICZydWJiaXNoKTsKKworCWlndF9hc3NlcnQocmV0ID09IC0xICYmICghZ19zdXBw b3J0ZWQgfHwgZ19zaWdfZmlyZWQpKTsKKwlpZ3RfYXNzZXJ0KHJldCA9PSAtMSAmJiAoZ19zdXBw b3J0ZWQgfHwgZXJybm8gPT0gRUlOVkFMKSk7CisKKwlyZXN0b3JlX3Rlcm1faGFuZGxlcigpOwor fQorCitzdGF0aWMgdm9pZCBkb2VzX3VubG9ja19jcmFzaChpbnQgZmQpCit7CisJc3RydWN0IGRy bV9sb2NrCXJ1YmJpc2g7CisJaW50IHJldDsKKworCWdfc2lnX2ZpcmVkID0gZmFsc2U7CisJaWd0 X2Fzc2VydChzZXRfdGVybV9oYW5kbGVyKCkpOworCisJbWVtc2V0KCZydWJiaXNoLCAnQScsIHNp emVvZihzdHJ1Y3QgZHJtX2xvY2spKTsKKworCXJldCA9IGlvY3RsKGZkLCBEUk1fSU9DVExfVU5M T0NLLCAmcnViYmlzaCk7CisKKwlpZ3RfYXNzZXJ0KHJldCA9PSAtMSAmJiAoIWdfc3VwcG9ydGVk IHx8IGdfc2lnX2ZpcmVkKSk7CisJaWd0X2Fzc2VydChyZXQgPT0gLTEgJiYgKGdfc3VwcG9ydGVk IHx8IGVycm5vID09IEVJTlZBTCkpOworCisJcmVzdG9yZV90ZXJtX2hhbmRsZXIoKTsKK30KKwor c3RhdGljIHZvaWQgcHJpb3JpdHlfZXNjYWxhdGlvbihpbnQgZmQpCit7CisJc3RydWN0IGRybV9s b2NrCXJ1YmJpc2g7CisJaW50IHJldDsKKworCWdfc2lnX2ZpcmVkID0gZmFsc2U7CisJaWd0X2Fz c2VydChzZXRfdGVybV9oYW5kbGVyKCkpOworCisJLyogdGhpcyBzaG91bGQgYmUgcmVqZWN0ZWQg Ki8KKwlydWJiaXNoLmNvbnRleHQgPSBEUk1fS0VSTkVMX0NPTlRFWFQ7CisJcmV0ID0gaW9jdGwo ZmQsIERSTV9JT0NUTF9MT0NLLCAmcnViYmlzaCk7CisJaWd0X2Fzc2VydChyZXQgPT0gLTEgJiYg KCFnX3N1cHBvcnRlZCB8fCBlcnJubyA9PSBFUEVSTSkpOworCWlndF9hc3NlcnQocmV0ID09IC0x ICYmIChnX3N1cHBvcnRlZCB8fCBlcnJubyA9PSBFSU5WQUwpKTsKKworCS8qIHRoaXMgc2hvdWxk IGFsc28gYmUgcmVqZWN0ZWQgKi8KKwlydWJiaXNoLmNvbnRleHQgPSBfRFJNX0xPQ0tfSEVMRCB8 IERSTV9LRVJORUxfQ09OVEVYVDsKKwlnX3NpZ19maXJlZCA9IGZhbHNlOworCXJldCA9IGlvY3Rs KGZkLCBEUk1fSU9DVExfTE9DSywgJnJ1YmJpc2gpOworCWlndF9hc3NlcnQocmV0ID09IC0xICYm ICghZ19zdXBwb3J0ZWQgfHwgZXJybm8gPT0gRVBFUk0pKTsKKwlpZ3RfYXNzZXJ0KHJldCA9PSAt MSAmJiAoZ19zdXBwb3J0ZWQgfHwgZXJybm8gPT0gRUlOVkFMKSk7CisKKwkvKiB0aGlzIHNob3Vs ZCBhbHNvIGJlIHJlamVjdGVkICovCisJcnViYmlzaC5jb250ZXh0ID0gX0RSTV9MT0NLX0NPTlQg fCBEUk1fS0VSTkVMX0NPTlRFWFQ7CisJZ19zaWdfZmlyZWQgPSBmYWxzZTsKKwlyZXQgPSBpb2N0 bChmZCwgRFJNX0lPQ1RMX0xPQ0ssICZydWJiaXNoKTsKKwlpZ3RfYXNzZXJ0KHJldCA9PSAtMSAm JiAoIWdfc3VwcG9ydGVkIHx8IGVycm5vID09IEVQRVJNKSk7CisJaWd0X2Fzc2VydChyZXQgPT0g LTEgJiYgKGdfc3VwcG9ydGVkIHx8IGVycm5vID09IEVJTlZBTCkpOworCisJLyogdGhpcyBzaG91 bGQgYmUgcmVqZWN0ZWQgKi8KKwlydWJiaXNoLmNvbnRleHQgPSBEUk1fS0VSTkVMX0NPTlRFWFQ7 CisJZ19zaWdfZmlyZWQgPSBmYWxzZTsKKwlyZXQgPSBpb2N0bChmZCwgRFJNX0lPQ1RMX1VOTE9D SywgJnJ1YmJpc2gpOworCWlndF9hc3NlcnQocmV0ID09IC0xICYmICghZ19zdXBwb3J0ZWQgfHwg ZXJybm8gPT0gRVBFUk0pKTsKKwlpZ3RfYXNzZXJ0KHJldCA9PSAtMSAmJiAoZ19zdXBwb3J0ZWQg fHwgZXJybm8gPT0gRUlOVkFMKSk7CisKKwkvKiB0aGlzIHNob3VsZCBhbHNvIGJlIHJlamVjdGVk ICovCisJcnViYmlzaC5jb250ZXh0ID0gX0RSTV9MT0NLX0hFTEQgfCBEUk1fS0VSTkVMX0NPTlRF WFQ7CisJZ19zaWdfZmlyZWQgPSBmYWxzZTsKKwlyZXQgPSBpb2N0bChmZCwgRFJNX0lPQ1RMX1VO TE9DSywgJnJ1YmJpc2gpOworCWlndF9hc3NlcnQocmV0ID09IC0xICYmICghZ19zdXBwb3J0ZWQg fHwgZXJybm8gPT0gRVBFUk0pKTsKKwlpZ3RfYXNzZXJ0KHJldCA9PSAtMSAmJiAoZ19zdXBwb3J0 ZWQgfHwgZXJybm8gPT0gRUlOVkFMKSk7CisKKwkvKiB0aGlzIHNob3VsZCBhbHNvIGJlIHJlamVj dGVkICovCisJcnViYmlzaC5jb250ZXh0ID0gX0RSTV9MT0NLX0NPTlQgfCBEUk1fS0VSTkVMX0NP TlRFWFQ7CisJZ19zaWdfZmlyZWQgPSBmYWxzZTsKKwlyZXQgPSBpb2N0bChmZCwgRFJNX0lPQ1RM X1VOTE9DSywgJnJ1YmJpc2gpOworCWlndF9hc3NlcnQocmV0ID09IC0xICYmICghZ19zdXBwb3J0 ZWQgfHwgZXJybm8gPT0gRVBFUk0pKTsKKwlpZ3RfYXNzZXJ0KHJldCA9PSAtMSAmJiAoZ19zdXBw b3J0ZWQgfHwgZXJybm8gPT0gRUlOVkFMKSk7CisKKwlyZXN0b3JlX3Rlcm1faGFuZGxlcigpOwor fQorCitpZ3RfbWFpbgoreworCWludCBmZCA9IC0xOworCisJZ19zaWdfZmlyZWQgPSBmYWxzZTsK KwlnX3N1cHBvcnRlZCA9IGZhbHNlOworCisJaWd0X2ZpeHR1cmUgeworCQlmZCA9IGRybV9vcGVu X2FueSgpOworCQlpZ3RfYXNzZXJ0KGZkID49IDApOworCX0KKworCWdfc3VwcG9ydGVkID0gZHJt X2hhc19sZWdhY3lfY29udGV4dChmZCk7CisKKwlpZ3RfaW5mbygiSFcgTE9DSyBTdXBwb3J0ZWQ6 ICVzXG4iLCBnX3N1cHBvcnRlZD8iWWVzIjoiTm8iKTsKKworCWlndF9zdWJ0ZXN0KCJsb2NrLWNy YXNoIikgeworCQlkb2VzX2xvY2tfY3Jhc2goZmQpOworCX0KKworCWlndF9zdWJ0ZXN0KCJ1bmxv Y2stY3Jhc2giKSB7CisJCWRvZXNfdW5sb2NrX2NyYXNoKGZkKTsKKwl9CisKKwlpZ3Rfc3VidGVz dCgicHJpb3JpdHktZXNjYWxhdGlvbiIpIHsKKwkJcHJpb3JpdHlfZXNjYWxhdGlvbihmZCk7CisJ fQorCisJaWd0X2ZpeHR1cmUKKwkJY2xvc2UoZmQpOworfQorCi0tIAoxLjkuMQoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK