From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulo Zanoni Subject: [PATCH igt] tests: add kms_fbcon_fbt Date: Thu, 9 Jul 2015 14:08:35 -0300 Message-ID: <1436461715-1684-1-git-send-email-przanoni@gmail.com> References: <20150709152629.GH21858@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qk0-f181.google.com (mail-qk0-f181.google.com [209.85.220.181]) by gabe.freedesktop.org (Postfix) with ESMTPS id B0B606E00D for ; Thu, 9 Jul 2015 10:09:21 -0700 (PDT) Received: by qkei195 with SMTP id i195so190121168qke.3 for ; Thu, 09 Jul 2015 10:09:20 -0700 (PDT) In-Reply-To: <20150709152629.GH21858@phenom.ffwll.local> 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: Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org RnJvbTogUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+CgpUaGlzIHRlc3Qg c2hvdWxkIHRlc3QgdGhlIGludGVyYWN0aW9ucyBiZXR3ZWVuIGZiY29uIGFuZCB0aGUKZnJvbnRi dWZmZXIgdHJhY2tpbmcgaW5mcmFzdHJ1Y3R1cmUuCgpSaWdodCBub3cgdGhlIFBTUiB0ZXN0IGZh aWxzLCBidXQgYXMgc29vbiBhcyB3ZSBtZXJnZSB0aGUgZm9sbG93aW5nCmtlcm5lbCBwYXRjaGVz LCB0aGUgdGVzdCB3aWxscyB0YXJ0IHBhc3Npbmc6CiAtIGRybS9pOTE1OiBQU1I6IEZsdXNoIG1l YW5zIGludmFsaWRhdGUgKyBmbHVzaAogLSBkcm0vaTkxNTogZmJkZXYgcmVzdG9yZSBtb2RlIG5l ZWRzIHRvIGludmFsaWRhdGUgZnJvbnRidWZmZXIKIC0gZHJtL2k5MTU6IGZiZGV2X3NldF9wYXIg cmVsaWFibHkgaW52YWxpZGF0aW5nIGZyb250YnVmZmVyCgpJIGRpZG4ndCB3YW50IHRvIG1ha2Ug dGhpcyBhIHN1YnRlc3Qgb2Yga21zX2Zyb250YnVmZmVyX3RyYWNraW5nIGp1c3QKYmVjYXVzZSB3 aGVuIEkgd3JvdGUgaXQsIEkgcmVhbGx5IGRpZG4ndCBoYXZlIGluIG1pbmQgdGhlIGZhY3QgdGhh dApzb21lb25lIG1pZ2h0IGp1c3QgY2xvc2UgdGhlIERSTSBmZCBpbiB0aGUgbWlkZGxlIG9mIGEg c3VidGVzdC4KCkFmdGVyIHRoaXMgY29tbWl0IHdlJ2xsIGhhdmUgYSBsaXR0bGUgYml0IG9mIGR1 cGxpY2F0ZWQgY29kZSBhbW9uZwp0ZXN0cy4gSSdsbCBjbGVhbiB0aGlzIHVwIGxhdGVyLgoKU2ln bmVkLW9mZi1ieTogUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+Ci0tLQog dGVzdHMvLmdpdGlnbm9yZSAgICAgICB8ICAgMSArCiB0ZXN0cy9NYWtlZmlsZS5zb3VyY2VzIHwg ICAxICsKIHRlc3RzL2ttc19mYmNvbl9mYnQuYyAgfCAzMzMgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAzMzUgaW5zZXJ0 aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2ttc19mYmNvbl9mYnQuYwoKZGlmZiAt LWdpdCBhL3Rlc3RzLy5naXRpZ25vcmUgYi90ZXN0cy8uZ2l0aWdub3JlCmluZGV4IGMzMWIyMmEu LjBhZjA4OTkgMTAwNjQ0Ci0tLSBhL3Rlc3RzLy5naXRpZ25vcmUKKysrIGIvdGVzdHMvLmdpdGln bm9yZQpAQCAtMTMxLDYgKzEzMSw3IEBAIGttc19hZGRmYgoga21zX2N1cnNvcl9jcmMKIGttc19k cmF3X2NyYwoga21zX2ZiY19jcmMKK2ttc19mYmNvbl9mYnQKIGttc19mZW5jZV9waW5fbGVhawog a21zX2ZsaXAKIGttc19mbGlwX2V2ZW50X2xlYWsKZGlmZiAtLWdpdCBhL3Rlc3RzL01ha2VmaWxl LnNvdXJjZXMgYi90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCmluZGV4IGI5NDc5Y2MuLmM5NDcxNGIg MTAwNjQ0Ci0tLSBhL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKKysrIGIvdGVzdHMvTWFrZWZpbGUu c291cmNlcwpAQCAtNjUsNiArNjUsNyBAQCBURVNUU19wcm9nc19NID0gXAogCWttc19jdXJzb3Jf Y3JjIFwKIAlrbXNfZHJhd19jcmMgXAogCWttc19mYmNfY3JjIFwKKwlrbXNfZmJjb25fZmJ0IFwK IAlrbXNfZmxpcCBcCiAJa21zX2ZsaXBfZXZlbnRfbGVhayBcCiAJa21zX2ZsaXBfdGlsaW5nIFwK ZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19mYmNvbl9mYnQuYyBiL3Rlc3RzL2ttc19mYmNvbl9mYnQu YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNWQyZDMzCi0tLSAvZGV2L251 bGwKKysrIGIvdGVzdHMva21zX2ZiY29uX2ZidC5jCkBAIC0wLDAgKzEsMzMzIEBACisvKgorICog Q29weXJpZ2h0IMKpIDIwMTUgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBQZXJtaXNzaW9uIGlz IGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcg YQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24g ZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhv dXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdo dHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJs aWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBl cm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8g c28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92 ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcg dGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBv ciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBT T0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5E LCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRI RSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICog VEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0s IERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0Yg Q09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1Ig SU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJ TkdTCisgKiBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQXV0aG9yczoKKyAqCisgKi8KKworI2lu Y2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8ZmNu dGwuaD4KKworI2luY2x1ZGUgImRybXRlc3QuaCIKKyNpbmNsdWRlICJpZ3RfYXV4LmgiCisjaW5j bHVkZSAiaWd0X2RlYnVnZnMuaCIKKyNpbmNsdWRlICJpZ3RfZHJhdy5oIgorI2luY2x1ZGUgImln dF9rbXMuaCIKKworSUdUX1RFU1RfREVTQ1JJUFRJT04oIlRlc3QgdGhlIHJlbGF0aW9uc2hpcCBi ZXR3ZWVuIGZiY29uIGFuZCB0aGUgZnJvbnRidWZmZXIgIgorCQkgICAgICJ0cmFja2luZyBpbmZy YXN0cnVjdHVyZS4iKTsKKworI2RlZmluZSBNQVhfQ09OTkVDVE9SUyAzMgorI2RlZmluZSBERUJV R0ZTX01TR19TSVpFIDI1NgorCitzdGF0aWMgYm9vbCBkb193YWl0X3VzZXIgPSBmYWxzZTsKKwor c3RydWN0IGRybV9pbmZvIHsKKwlpbnQgZmQ7CisJZHJtTW9kZVJlc1B0ciByZXM7CisJZHJtTW9k ZUNvbm5lY3RvclB0ciBjb25uZWN0b3JzW01BWF9DT05ORUNUT1JTXTsKK307CisKK3N0cnVjdCBm YmNfaW5mbyB7CisJaW50IGZkOworfTsKKworc3RydWN0IHBzcl9pbmZvIHsKKwlpbnQgZmQ7Cit9 OworCitlbnVtIGZlYXR1cmVfc3RhdHVzIHsKKwlFTkFCTEVELAorCURJU0FCTEVELAorfTsKKwor c3RhdGljIHZvaWQgd2FpdF91c2VyKGNvbnN0IGNoYXIgKm1zZykKK3sKKwlpZiAoIWRvX3dhaXRf dXNlcikKKwkJcmV0dXJuOworCisJaWd0X2luZm8oIiVzIFByZXNzIGVudGVyLi4uXG4iLCBtc2cp OworCXdoaWxlIChnZXRjaGFyKCkgIT0gJ1xuJykKKwkJOworfQorCitzdGF0aWMgdm9pZCBzZXR1 cF9kcm0oc3RydWN0IGRybV9pbmZvICpkcm0pCit7CisJaW50IGk7CisKKwlkcm0tPmZkID0gZHJt X29wZW5fYW55X21hc3RlcigpOworCisJZHJtLT5yZXMgPSBkcm1Nb2RlR2V0UmVzb3VyY2VzKGRy bS0+ZmQpOworCWlndF9hc3NlcnQoZHJtLT5yZXMtPmNvdW50X2Nvbm5lY3RvcnMgPD0gTUFYX0NP Tk5FQ1RPUlMpOworCisJZm9yIChpID0gMDsgaSA8IGRybS0+cmVzLT5jb3VudF9jb25uZWN0b3Jz OyBpKyspCisJCWRybS0+Y29ubmVjdG9yc1tpXSA9IGRybU1vZGVHZXRDb25uZWN0b3IoZHJtLT5m ZCwKKwkJCQkJCWRybS0+cmVzLT5jb25uZWN0b3JzW2ldKTsKKworCWttc3Rlc3Rfc2V0X3Z0X2dy YXBoaWNzX21vZGUoKTsKK30KKworc3RhdGljIHZvaWQgdGVhcmRvd25fZHJtKHN0cnVjdCBkcm1f aW5mbyAqZHJtKQoreworCWludCBpOworCisJa21zdGVzdF9yZXN0b3JlX3Z0X21vZGUoKTsKKwor CWZvciAoaSA9IDA7IGkgPCBkcm0tPnJlcy0+Y291bnRfY29ubmVjdG9yczsgaSsrKQorCQlkcm1N b2RlRnJlZUNvbm5lY3Rvcihkcm0tPmNvbm5lY3RvcnNbaV0pOworCisJZHJtTW9kZUZyZWVSZXNv dXJjZXMoZHJtLT5yZXMpOworCWlndF9hc3NlcnQoY2xvc2UoZHJtLT5mZCkgPT0gMCk7Cit9CisK K3N0YXRpYyB2b2lkIGdldF9kZWJ1Z2ZzX3N0cmluZyhpbnQgZmQsIGNoYXIgKmJ1ZikKK3sKKwlz c2l6ZV90IG5fcmVhZDsKKworCWxzZWVrKGZkLCAwLCBTRUVLX1NFVCk7CisKKwluX3JlYWQgPSBy ZWFkKGZkLCBidWYsIERFQlVHRlNfTVNHX1NJWkUgLTEpOworCWlndF9hc3NlcnQobl9yZWFkID49 IDApOworCWJ1ZltuX3JlYWRdID0gJ1wwJzsKK30KKworc3RhdGljIGJvb2wgZmJjX3N1cHBvcnRl ZF9vbl9jaGlwc2V0KGludCBmZCkKK3sKKwljaGFyIGJ1ZltERUJVR0ZTX01TR19TSVpFXTsKKwor CWdldF9kZWJ1Z2ZzX3N0cmluZyhmZCwgYnVmKTsKKwlyZXR1cm4gIXN0cnN0cihidWYsICJGQkMg dW5zdXBwb3J0ZWQgb24gdGhpcyBjaGlwc2V0XG4iKTsKK30KKworc3RhdGljIHZvaWQgc2V0dXBf ZmJjKHN0cnVjdCBmYmNfaW5mbyAqZmJjKQoreworCWZiYy0+ZmQgPSBpZ3RfZGVidWdmc19vcGVu KCJpOTE1X2ZiY19zdGF0dXMiLCBPX1JET05MWSk7CisJaWd0X2Fzc2VydChmYmMtPmZkID49IDAp OworCisJaWd0X3JlcXVpcmVfZihmYmNfc3VwcG9ydGVkX29uX2NoaXBzZXQoZmJjLT5mZCksCisJ CSAgICAgICJDYW4ndCB0ZXN0IEZCQzogbm90IHN1cHBvcnRlZCBvbiB0aGlzIGNoaXBzZXRcbiIp OworCisJaWd0X3NldF9tb2R1bGVfcGFyYW1faW50KCJlbmFibGVfZmJjIiwgMSk7Cit9CisKK3N0 YXRpYyB2b2lkIHRlYXJkb3duX2ZiYyhzdHJ1Y3QgZmJjX2luZm8gKmZiYykKK3sKKwlpZ3RfYXNz ZXJ0KGNsb3NlKGZiYy0+ZmQpID09IDApOworfQorCitzdGF0aWMgYm9vbCBjb25uZWN0b3JfY2Fu X2ZiYyhkcm1Nb2RlQ29ubmVjdG9yUHRyIGNvbm5lY3RvcikKK3sKKwlyZXR1cm4gdHJ1ZTsKK30K Kworc3RhdGljIGJvb2wgZmJjX2dldF9zdGF0dXMoaW50IGZkKQoreworCWNoYXIgYnVmW0RFQlVH RlNfTVNHX1NJWkVdOworCisJZ2V0X2RlYnVnZnNfc3RyaW5nKGZkLCBidWYpOworCisJaWYgKHN0 cnN0cihidWYsICJGQkMgZW5hYmxlZFxuIikpCisJCXJldHVybiBFTkFCTEVEOworCWVsc2UKKwkJ cmV0dXJuIERJU0FCTEVEOworfQorCitzdGF0aWMgYm9vbCBmYmNfd2FpdF9mb3Jfc3RhdHVzKHN0 cnVjdCBmYmNfaW5mbyAqZmJjLAorCQkJCWVudW0gZmVhdHVyZV9zdGF0dXMgc3RhdHVzKQorewor CXJldHVybiBpZ3Rfd2FpdChmYmNfZ2V0X3N0YXR1cyhmYmMtPmZkKSA9PSBzdGF0dXMsIDUwMDAs IDEpOworfQorCit0eXBlZGVmIGJvb2wgKCpjb25uZWN0b3JfcG9zc2libGVfZm4pKGRybU1vZGVD b25uZWN0b3JQdHIgY29ubmVjdG9yKTsKKworc3RhdGljIHZvaWQgc2V0X21vZGVfZm9yX29uZV9z Y3JlZW4oc3RydWN0IGRybV9pbmZvICpkcm0sIHN0cnVjdCBpZ3RfZmIgKmZiLAorCQkJCSAgICBj b25uZWN0b3JfcG9zc2libGVfZm4gY29ubmVjdG9yX3Bvc3NpYmxlKQoreworCWludCBpLCByYzsK Kwl1aW50MzJfdCBjb25uZWN0b3JfaWQgPSAwLCBjcnRjX2lkOworCWRybU1vZGVNb2RlSW5mb1B0 ciBtb2RlOworCXVpbnQzMl90IGJ1ZmZlcl9pZDsKKwlkcm1Nb2RlQ29ubmVjdG9yUHRyIGMgPSBO VUxMOworCisJZm9yIChpID0gMDsgaSA8IGRybS0+cmVzLT5jb3VudF9jb25uZWN0b3JzOyBpKysp IHsKKwkJYyA9IGRybS0+Y29ubmVjdG9yc1tpXTsKKworCQlpZiAoYy0+Y29ubmVjdGlvbiA9PSBE Uk1fTU9ERV9DT05ORUNURUQgJiYgYy0+Y291bnRfbW9kZXMgJiYKKwkJICAgIGNvbm5lY3Rvcl9w b3NzaWJsZShjKSkgeworCQkJY29ubmVjdG9yX2lkID0gYy0+Y29ubmVjdG9yX2lkOworCQkJbW9k ZSA9ICZjLT5tb2Rlc1swXTsKKwkJCWJyZWFrOworCQl9CisJfQorCWlndF9yZXF1aXJlX2YoY29u bmVjdG9yX2lkLCAiTm8gY29ubmVjdG9yIGF2YWlsYWJsZVxuIik7CisKKwljcnRjX2lkID0gZHJt LT5yZXMtPmNydGNzWzBdOworCisJYnVmZmVyX2lkID0gaWd0X2NyZWF0ZV9mYihkcm0tPmZkLCBt b2RlLT5oZGlzcGxheSwgbW9kZS0+dmRpc3BsYXksCisJCQkJICBEUk1fRk9STUFUX1hSR0I4ODg4 LAorCQkJCSAgTE9DQUxfSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQsIGZiKTsKKwlpZ3RfZHJhd19m aWxsX2ZiKGRybS0+ZmQsIGZiLCAweEZGKTsKKworCWlndF9pbmZvKCJTZXR0aW5nICVkeCVkIG1v ZGUgZm9yICVzIGNvbm5lY3RvclxuIiwKKwkJIG1vZGUtPmhkaXNwbGF5LCBtb2RlLT52ZGlzcGxh eSwKKwkJIGttc3Rlc3RfY29ubmVjdG9yX3R5cGVfc3RyKGMtPmNvbm5lY3Rvcl90eXBlKSk7CisK KwlyYyA9IGRybU1vZGVTZXRDcnRjKGRybS0+ZmQsIGNydGNfaWQsIGJ1ZmZlcl9pZCwgMCwgMCwg JmNvbm5lY3Rvcl9pZCwgMSwKKwkJCSAgICBtb2RlKTsKKwlpZ3RfYXNzZXJ0X2VxKHJjLCAwKTsK K30KKworc3RhdGljIHZvaWQgZmJjX3N1YnRlc3Qodm9pZCkKK3sKKwlzdHJ1Y3QgZHJtX2luZm8g ZHJtOworCXN0cnVjdCBmYmNfaW5mbyBmYmM7CisJc3RydWN0IGlndF9mYiBmYjsKKworCXNldHVw X2ZiYygmZmJjKTsKKworCXNldHVwX2RybSgmZHJtKTsKKworCWttc3Rlc3RfdW5zZXRfYWxsX2Ny dGNzKGRybS5mZCwgZHJtLnJlcyk7CisJd2FpdF91c2VyKCJNb2RlcyB1bnNldC4iKTsKKwlpZ3Rf YXNzZXJ0KGZiY193YWl0X2Zvcl9zdGF0dXMoJmZiYywgRElTQUJMRUQpKTsKKworCXNldF9tb2Rl X2Zvcl9vbmVfc2NyZWVuKCZkcm0sICZmYiwgY29ubmVjdG9yX2Nhbl9mYmMpOworCXdhaXRfdXNl cigiRkJDIHNjcmVlbiBzZXQuIik7CisJaWd0X2Fzc2VydChmYmNfd2FpdF9mb3Jfc3RhdHVzKCZm YmMsIEVOQUJMRUQpKTsKKworCWlndF9yZW1vdmVfZmIoZHJtLmZkLCAmZmIpOworCXRlYXJkb3du X2RybSgmZHJtKTsKKworCS8qIFdhaXQgZm9yIGZiY29uIHRvIHJlc3RvcmUgaXRzZWxmLiAqLwor CXNsZWVwKDUpOworCisJd2FpdF91c2VyKCJCYWNrIHRvIGZiY29uLiIpOworCWlndF9hc3NlcnQo ZmJjX3dhaXRfZm9yX3N0YXR1cygmZmJjLCBESVNBQkxFRCkpOworCisJdGVhcmRvd25fZmJjKCZm YmMpOworfQorCitzdGF0aWMgYm9vbCBwc3Jfc3VwcG9ydGVkX29uX2NoaXBzZXQoaW50IGZkKQor eworCWNoYXIgYnVmW0RFQlVHRlNfTVNHX1NJWkVdOworCisJZ2V0X2RlYnVnZnNfc3RyaW5nKGZk LCBidWYpOworCisJcmV0dXJuIHN0cnN0cihidWYsICJTaW5rX1N1cHBvcnQ6IHllc1xuIik7Cit9 CisKK3N0YXRpYyB2b2lkIHNldHVwX3BzcihzdHJ1Y3QgcHNyX2luZm8gKnBzcikKK3sKKwlwc3It PmZkID0gaWd0X2RlYnVnZnNfb3BlbigiaTkxNV9lZHBfcHNyX3N0YXR1cyIsIE9fUkRPTkxZKTsK KwlpZ3RfYXNzZXJ0KHBzci0+ZmQgPj0gMCk7CisKKwlpZ3RfcmVxdWlyZV9mKHBzcl9zdXBwb3J0 ZWRfb25fY2hpcHNldChwc3ItPmZkKSwKKwkJICAgICAgIkNhbid0IHRlc3QgUFNSOiBub3Qgc3Vw cG9ydGVkIG9uIHRoaXMgY2hpcHNldFxuIik7CisKKwlpZ3Rfc2V0X21vZHVsZV9wYXJhbV9pbnQo ImVuYWJsZV9wc3IiLCAxKTsKK30KKworc3RhdGljIHZvaWQgdGVhcmRvd25fcHNyKHN0cnVjdCBw c3JfaW5mbyAqcHNyKQoreworCWlndF9hc3NlcnQoY2xvc2UocHNyLT5mZCkgPT0gMCk7Cit9CisK K3N0YXRpYyBib29sIGNvbm5lY3Rvcl9jYW5fcHNyKGRybU1vZGVDb25uZWN0b3JQdHIgY29ubmVj dG9yKQoreworCXJldHVybiAoY29ubmVjdG9yLT5jb25uZWN0b3JfdHlwZSA9PSBEUk1fTU9ERV9D T05ORUNUT1JfZURQKTsKK30KKworc3RhdGljIGJvb2wgcHNyX2dldF9zdGF0dXMoaW50IGZkKQor eworCWNoYXIgYnVmW0RFQlVHRlNfTVNHX1NJWkVdOworCisJZ2V0X2RlYnVnZnNfc3RyaW5nKGZk LCBidWYpOworCisJaWYgKHN0cnN0cihidWYsICJcbkFjdGl2ZTogeWVzXG4iKSkKKwkJcmV0dXJu IEVOQUJMRUQ7CisJZWxzZQorCQlyZXR1cm4gRElTQUJMRUQ7Cit9CisKK3N0YXRpYyBib29sIHBz cl93YWl0X2Zvcl9zdGF0dXMoc3RydWN0IHBzcl9pbmZvICpwc3IsCisJCQkJZW51bSBmZWF0dXJl X3N0YXR1cyBzdGF0dXMpCit7CisJcmV0dXJuIGlndF93YWl0KHBzcl9nZXRfc3RhdHVzKHBzci0+ ZmQpID09IHN0YXR1cywgNTAwMCwgMSk7Cit9CisKK3N0YXRpYyB2b2lkIHBzcl9zdWJ0ZXN0KHZv aWQpCit7CisJc3RydWN0IGRybV9pbmZvIGRybTsKKwlzdHJ1Y3QgcHNyX2luZm8gcHNyOworCXN0 cnVjdCBpZ3RfZmIgZmI7CisKKwlzZXR1cF9wc3IoJnBzcik7CisKKwlzZXR1cF9kcm0oJmRybSk7 CisKKwlrbXN0ZXN0X3Vuc2V0X2FsbF9jcnRjcyhkcm0uZmQsIGRybS5yZXMpOworCXdhaXRfdXNl cigiTW9kZXMgdW5zZXQuIik7CisJaWd0X2Fzc2VydChwc3Jfd2FpdF9mb3Jfc3RhdHVzKCZwc3Is IERJU0FCTEVEKSk7CisKKwlzZXRfbW9kZV9mb3Jfb25lX3NjcmVlbigmZHJtLCAmZmIsIGNvbm5l Y3Rvcl9jYW5fcHNyKTsKKwl3YWl0X3VzZXIoIlBTUiBzY3JlZW4gc2V0LiIpOworCWlndF9hc3Nl cnQocHNyX3dhaXRfZm9yX3N0YXR1cygmcHNyLCBFTkFCTEVEKSk7CisKKwlpZ3RfcmVtb3ZlX2Zi KGRybS5mZCwgJmZiKTsKKwl0ZWFyZG93bl9kcm0oJmRybSk7CisKKwkvKiBXYWl0IGZvciBmYmNv biB0byByZXN0b3JlIGl0c2VsZi4gKi8KKwlzbGVlcCg1KTsKKworCXdhaXRfdXNlcigiQmFjayB0 byBmYmNvbi4iKTsKKwlpZ3RfYXNzZXJ0KHBzcl93YWl0X2Zvcl9zdGF0dXMoJnBzciwgRElTQUJM RUQpKTsKKworCXRlYXJkb3duX3BzcigmcHNyKTsKK30KKworc3RhdGljIHZvaWQgc2V0dXBfZW52 aXJvbm1lbnQodm9pZCkKK3sKKwlpbnQgZHJtX2ZkOworCisJZHJtX2ZkID0gZHJtX29wZW5fYW55 X21hc3RlcigpOworCWlndF9yZXF1aXJlKGRybV9mZCA+PSAwKTsKKwlpZ3RfYXNzZXJ0KGNsb3Nl KGRybV9mZCkgPT0gMCk7Cit9CisKK3N0YXRpYyB2b2lkIHRlYXJkb3duX2Vudmlyb25tZW50KHZv aWQpCit7Cit9CisKK2lndF9tYWluCit7CisJaWd0X2ZpeHR1cmUKKwkJc2V0dXBfZW52aXJvbm1l bnQoKTsKKworCWlndF9zdWJ0ZXN0KCJmYmMiKQorCQlmYmNfc3VidGVzdCgpOworCWlndF9zdWJ0 ZXN0KCJwc3IiKQorCQlwc3Jfc3VidGVzdCgpOworCisJaWd0X2ZpeHR1cmUKKwkJdGVhcmRvd25f ZW52aXJvbm1lbnQoKTsKK30KLS0gCjIuMS40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAo=