From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf1-x442.google.com (mail-pf1-x442.google.com [IPv6:2607:f8b0:4864:20::442]) by gabe.freedesktop.org (Postfix) with ESMTPS id EC83B6E46C for ; Fri, 26 Oct 2018 12:58:38 +0000 (UTC) Received: by mail-pf1-x442.google.com with SMTP id l81-v6so518376pfg.3 for ; Fri, 26 Oct 2018 05:58:38 -0700 (PDT) From: Juha-Pekka Heikkila Date: Fri, 26 Oct 2018 15:58:13 +0300 Message-Id: <1540558693-28252-1-git-send-email-juhapekka.heikkila@gmail.com> In-Reply-To: <1540473975-32669-1-git-send-email-juhapekka.heikkila@gmail.com> References: <1540473975-32669-1-git-send-email-juhapekka.heikkila@gmail.com> Subject: [igt-dev] [PATCH i-g-t] tests/kms_rotation_crc: Add multi plane tests. List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 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 List-ID: QWRkIHRocmVlIG5ldyB0ZXN0cyB3aGljaCB0cnkgcHJpbWFyeSBhbmQgc3ByaXRlIHBsYW5lcwpu ZXh0IHRvIGVhY2ggb3RoZXIgd2l0aCBkaWZmZXJlbnQgcGxhbmUgZm9ybWF0cywgcm90YXRpb25z CmFuZCB0aWxpbmcgbW9kZXMuCgptdWx0aXBsYW5lLXJvdGF0aW9uIHN1YnRlc3QgcnVuIHRlc3Qg dGhyb3VnaCB3aXRoIGJvdGggcGxhbmVzCmZ1bGx5IHZpc2libGUuCgptdWx0aXBsYW5lLXJvdGF0 aW9uLWNyb3BwaW5nLXRvcCB3aWxsIGNyb3AgcHJpbWFyeSBwbGFuZSB0bwpsZWZ0L3RvcCBjb3Ju ZXIgYW5kIHNwcml0ZSBwbGFuZSB0byByaWdodC90b3AgY29ybmVyIHdoaWxlIHJ1bm5pbmcKcm90 YXRpb24gdGVzdHMuCgptdWx0aXBsYW5lLXJvdGF0aW9uLWNyb3BwaW5nLWJvdHRvbSB3aWxsIGNy b3AgcHJpbWFyeSBwbGFuZSB0bwpsZWZ0L2JvdHRvbSBjb3JuZXIgYW5kIHNwcml0ZSBwbGFuZSB0 byByaWdodC9ib3R0b20gY29ybmVyIHdoaWxlCnJ1bm5pbmcgcm90YXRpb24gdGVzdHMuCgpTaWdu ZWQtb2ZmLWJ5OiBKdWhhLVBla2thIEhlaWtraWxhIDxqdWhhcGVra2EuaGVpa2tpbGFAZ21haWwu Y29tPgotLS0KIHRlc3RzL2ttc19yb3RhdGlvbl9jcmMuYyB8IDI0OSArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDI0OSBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvdGVzdHMva21zX3JvdGF0aW9uX2NyYy5jIGIvdGVzdHMv a21zX3JvdGF0aW9uX2NyYy5jCmluZGV4IDM2NmMyNTQuLmRmOWFjOTEgMTAwNjQ0Ci0tLSBhL3Rl c3RzL2ttc19yb3RhdGlvbl9jcmMuYworKysgYi90ZXN0cy9rbXNfcm90YXRpb25fY3JjLmMKQEAg LTI2LDYgKzI2LDI1IEBACiAjaW5jbHVkZSA8bWF0aC5oPgogCiAjZGVmaW5lIE1BWF9GRU5DRVMg MzIKKyNkZWZpbmUgTUFYTVVMVElQTEFORVNBTU9VTlQgMgorCitzdHJ1Y3QgcF9zdHJ1Y3Qgewor CWlndF9wbGFuZV90ICpwbGFuZTsKKwlzdHJ1Y3QgaWd0X2ZiIGZiOworfTsKKworZW51bSBwX3Bv aW50b3JpZ28geworCXBfdG9wID0gMSA8PCAwLAorCXBfYm90dG9tID0gMSA8PCAxLAorCXBfbGVm dCA9IDEgPDwgMiwKKwlwX3JpZ2h0ID0gMSA8PCAzCit9OworCitzdHJ1Y3QgcF9wb2ludHsKKwll bnVtIHBfcG9pbnRvcmlnbyBvcmlnbzsKKwlpbnQzMl90IHg7CisJaW50MzJfdCB5OworfTsKIAog dHlwZWRlZiBzdHJ1Y3QgewogCWludCBnZnhfZmQ7CkBAIC00Myw2ICs2Miw5IEBAIHR5cGVkZWYg c3RydWN0IHsKIAl1aW50MzJfdCBvdmVycmlkZV9mbXQ7CiAJdWludDY0X3Qgb3ZlcnJpZGVfdGls aW5nOwogCWludCBkZXZpZDsKKworCXN0cnVjdCBwX3N0cnVjdCAqbXVsdGlwbGFuZW9sZHZpZXc7 CisJc3RydWN0IHBfcG9pbnQgcGxhbmVwb3NbTUFYTVVMVElQTEFORVNBTU9VTlRdOwogfSBkYXRh X3Q7CiAKIHR5cGVkZWYgc3RydWN0IHsKQEAgLTM5NSw2ICs0MTcsMTk3IEBAIHN0YXRpYyB2b2lk IHRlc3RfcGxhbmVfcm90YXRpb24oZGF0YV90ICpkYXRhLCBpbnQgcGxhbmVfdHlwZSwgYm9vbCB0 ZXN0X2JhZF9mb3JtCiAJfQogfQogCit0eXBlZGVmIHN0cnVjdCB7CisJaW50MzJfdCB4MSwgeTE7 CisJdWludDY0X3Qgd2lkdGgsIGhlaWdodCwgdGlsaW5nLCBwbGFuZXR5cGUsIGZvcm1hdDsKKwlp Z3Rfcm90YXRpb25fdCByb3RhdGlvbl9zdywgcm90YXRpb25faHc7Cit9IHBsYW5laW5mb3M7CisK K3N0YXRpYyB2b2lkIGdldF9tdWx0aXBsYW5lX2NyYyhkYXRhX3QgKmRhdGEsIGlndF9vdXRwdXRf dCAqb3V0cHV0LAorCQkJICAgICAgIGlndF9jcmNfdCAqY3JjX291dHB1dCwgcGxhbmVpbmZvcyog cGxhbmVpbmZvLAorCQkJICAgICAgIGludCBudW1wbGFuZXMpCit7CisJdWludDMyX3QgdywgaDsK KwlpZ3RfZGlzcGxheV90ICpkaXNwbGF5ID0gJmRhdGEtPmRpc3BsYXk7CisJc3RydWN0IHBfc3Ry dWN0ICpwbGFuZXMsICpvbGRwbGFuZXM7CisJaW50IGMsIHJldDsKKworCW9sZHBsYW5lcyA9IGRh dGEtPm11bHRpcGxhbmVvbGR2aWV3OworCXBsYW5lcyA9IG1hbGxvYyhzaXplb2YoKnBsYW5lcykq bnVtcGxhbmVzKTsKKworCWZvciAoYyA9IDA7IGMgPCBudW1wbGFuZXM7IGMrKykgeworCQlwbGFu ZXNbY10ucGxhbmUgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZV90eXBlKG91dHB1dCwKKwkJCQkJCQkg ICAgcGxhbmVpbmZvW2NdLnBsYW5ldHlwZSk7CisKKwkJdyA9IHBsYW5laW5mb1tjXS53aWR0aDsK KwkJaCA9IHBsYW5laW5mb1tjXS5oZWlnaHQ7CisKKwkJaWYgKChwbGFuZWluZm9bY10ucm90YXRp b25faHd8cGxhbmVpbmZvW2NdLnJvdGF0aW9uX3N3KQorCQkgICAgJihJR1RfUk9UQVRJT05fOTB8 SUdUX1JPVEFUSU9OXzI3MCkpCisJCQlpZ3Rfc3dhcCh3LCBoKTsKKworCQlpZ3RfcGxhbmVfc2V0 X3NpemUocGxhbmVzW2NdLnBsYW5lLCB3LCBoKTsKKworCQlpZ3RfY3JlYXRlX2ZiKGRhdGEtPmdm eF9mZCwgdywgaCwgcGxhbmVpbmZvW2NdLmZvcm1hdCwKKwkJCSAgICAgIHBsYW5laW5mb1tjXS50 aWxpbmcsICZwbGFuZXNbY10uZmIpOworCisJCXBhaW50X3NxdWFyZXMoZGF0YSwgcGxhbmVpbmZv W2NdLnJvdGF0aW9uX3N3LCAmcGxhbmVzW2NdLmZiLCAxLjBmKTsKKwkJaWd0X3BsYW5lX3NldF9m YihwbGFuZXNbY10ucGxhbmUsICZwbGFuZXNbY10uZmIpOworCQlpZ3RfcGxhbmVfc2V0X3Bvc2l0 aW9uKHBsYW5lc1tjXS5wbGFuZSwgcGxhbmVpbmZvW2NdLngxLCBwbGFuZWluZm9bY10ueTEpOwor CQlpZ3RfcGxhbmVfc2V0X3JvdGF0aW9uKHBsYW5lc1tjXS5wbGFuZSwgcGxhbmVpbmZvW2NdLnJv dGF0aW9uX2h3KTsKKwl9CisKKwlyZXQgPSBpZ3RfZGlzcGxheV90cnlfY29tbWl0MihkaXNwbGF5 LCBDT01NSVRfQVRPTUlDKTsKKwlpZ3RfYXNzZXJ0X2VxKHJldCwgMCk7CisKKwlpZ3RfcGlwZV9j cmNfZ2V0X2N1cnJlbnQoZGF0YS0+Z2Z4X2ZkLCBkYXRhLT5waXBlX2NyYywgY3JjX291dHB1dCk7 CisKKwlmb3IgKGMgPSAwOyBjIDwgbnVtcGxhbmVzICYmIG9sZHBsYW5lczsgYysrKQorCQlpZ3Rf cmVtb3ZlX2ZiKGRhdGEtPmdmeF9mZCwgJm9sZHBsYW5lc1tjXS5mYik7CisKKwlmcmVlKG9sZHBs YW5lcyk7CisJZGF0YS0+bXVsdGlwbGFuZW9sZHZpZXcgPSAodm9pZCopcGxhbmVzOworfQorCitz dGF0aWMgdm9pZCBwb2ludGxvY2F0aW9uKGRhdGFfdCAqZGF0YSwgcGxhbmVpbmZvcyogcCwgZHJt TW9kZU1vZGVJbmZvICptb2RlLAorCQkJICBpbnQgYykKK3sKKwlwW2NdLngxID0gZGF0YS0+cGxh bmVwb3NbY10ueAorCQkJKygoZGF0YS0+cGxhbmVwb3NbY10ub3JpZ28mcF9yaWdodCk/bW9kZS0+ aGRpc3BsYXk6MCk7CisJcFtjXS55MSA9IGRhdGEtPnBsYW5lcG9zW2NdLnkKKwkJCSsoKGRhdGEt PnBsYW5lcG9zW2NdLm9yaWdvJnBfYm90dG9tKT9tb2RlLT52ZGlzcGxheTowKTsKK30KKworLyoK KyAqIEhlcmUgaXMgcGlwZSBwYXJhbWV0ZXIgd2hpY2ggaXMgbm93IHVzZWQgb25seSBmb3IgZmly c3QgcGlwZS4KKyAqIEl0IGlzIGxlZnQgaGVyZSBpZiB0aGlzIHRlc3QgZXZlciB3YXMgd2FudGVk IHRvIGJlIHJ1biBvbgorICogZGlmZmVyZW50IHBpcGVzLgorICovCitzdGF0aWMgdm9pZCB0ZXN0 X211bHRpX3BsYW5lX3JvdGF0aW9uKGRhdGFfdCAqZGF0YSwgZW51bSBwaXBlIHBpcGUpCit7CisJ aWd0X2Rpc3BsYXlfdCAqZGlzcGxheSA9ICZkYXRhLT5kaXNwbGF5OworCWlndF9vdXRwdXRfdCAq b3V0cHV0OworCWlndF9jcmNfdCByZXRjcmNfc3csIHJldGNyY19odzsKKwlwbGFuZWluZm9zIHBb Ml07CisJaW50IGM7CisJc3RydWN0IHBfc3RydWN0ICpvbGRwbGFuZXM7CisJZHJtTW9kZU1vZGVJ bmZvICptb2RlOworCisJY29uc3Qgc3RhdGljIHN0cnVjdCB7CisJCWlndF9yb3RhdGlvbl90CXJv dGF0aW9uOworCQl1aW50NjRfdAl3aWR0aDsKKwkJdWludDY0X3QJaGVpZ2h0OworCQl1aW50NjRf dAl0aWxpbmc7CisJfSBwbGFuZWNvbmZpZ3NbXSA9IHsKKwl7SUdUX1JPVEFUSU9OXzAsIDUxMiwg NTEyLCBMT0NBTF9EUk1fRk9STUFUX01PRF9OT05FIH0sCisJe0lHVF9ST1RBVElPTl8wLCA1MTIs IDUxMiwgTE9DQUxfSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQgfSwKKwl7SUdUX1JPVEFUSU9OXzAs IDUxMiwgNTEyLCBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWV9USUxFRCB9LAorCXtJR1RfUk9UQVRJ T05fMCwgNTEyLCA1MTIsIExPQ0FMX0k5MTVfRk9STUFUX01PRF9ZZl9USUxFRCB9LAorCXtJR1Rf Uk9UQVRJT05fOTAsIDUxMiwgNTEyLCBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWV9USUxFRCB9LAor CXtJR1RfUk9UQVRJT05fOTAsIDUxMiwgNTEyLCBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWWZfVElM RUQgfSwKKwl7SUdUX1JPVEFUSU9OXzE4MCwgNTEyLCA1MTIsIExPQ0FMX0RSTV9GT1JNQVRfTU9E X05PTkUgfSwKKwl7SUdUX1JPVEFUSU9OXzE4MCwgNTEyLCA1MTIsIExPQ0FMX0k5MTVfRk9STUFU X01PRF9YX1RJTEVEIH0sCisJe0lHVF9ST1RBVElPTl8xODAsIDUxMiwgNTEyLCBMT0NBTF9JOTE1 X0ZPUk1BVF9NT0RfWV9USUxFRCB9LAorCXtJR1RfUk9UQVRJT05fMTgwLCA1MTIsIDUxMiwgTE9D QUxfSTkxNV9GT1JNQVRfTU9EX1lmX1RJTEVEIH0sCisJe0lHVF9ST1RBVElPTl8yNzAsIDUxMiwg NTEyLCBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWV9USUxFRCB9LAorCXtJR1RfUk9UQVRJT05fMjcw LCA1MTIsIDUxMiwgTE9DQUxfSTkxNV9GT1JNQVRfTU9EX1lmX1RJTEVEIH0sCisJfTsKKworCS8q CisJKiBUaGVzZSBhcmUgdGhvc2UgbW9kZXMgd2hpY2ggYXJlIHRlc3RlZC4gRm9yIHRlc3Rpbmcg ZmVlbCBpbnRlcmVzdGluZworCSogY2FzZSB3aXRoIHRpbGluZyBhcmUgMiBieXRlIHdpZGUgYW5k IDQgYnl0ZSB3aWRlLgorCSoKKwkqIFRPRE86CisJKiBCdWlsdCBzdXBwb3J0IGZvciBOVjEyIGhl cmUuCisJKi8KKwljb25zdCBzdGF0aWMgdWludDMyX3QgIGZvcm1hdGxpc3RbXSA9IHtEUk1fRk9S TUFUX1JHQjU2NSwKKwkJCQkJICAgICAgIERSTV9GT1JNQVRfWFJHQjg4ODh9OworCisKKwlmb3Jf ZWFjaF92YWxpZF9vdXRwdXRfb25fcGlwZShkaXNwbGF5LCBwaXBlLCBvdXRwdXQpIHsKKwkJaW50 IGksIGosIGssIGw7CisJCWlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBwaXBlKTsKKworCQlt b2RlID0gaWd0X291dHB1dF9nZXRfbW9kZShvdXRwdXQpOworCisJCWlndF9kaXNwbGF5X3JlcXVp cmVfb3V0cHV0KGRpc3BsYXkpOworCQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1J VF9BVE9NSUMpOworCisJCWRhdGEtPnBpcGVfY3JjID0gaWd0X3BpcGVfY3JjX25ldyhkYXRhLT5n ZnhfZmQsIHBpcGUsCisJCQkJCQkgIElOVEVMX1BJUEVfQ1JDX1NPVVJDRV9BVVRPKTsKKwkJaWd0 X3BpcGVfY3JjX3N0YXJ0KGRhdGEtPnBpcGVfY3JjKTsKKworCQlmb3IgKGkgPSAwOyBpIDwgQVJS QVlfU0laRShwbGFuZWNvbmZpZ3MpOyBpKyspIHsKKwkJCXBbMF0ucGxhbmV0eXBlID0gRFJNX1BM QU5FX1RZUEVfUFJJTUFSWTsKKwkJCXBbMF0ud2lkdGggPSBwbGFuZWNvbmZpZ3NbaV0ud2lkdGg7 CisJCQlwWzBdLmhlaWdodCA9IHBsYW5lY29uZmlnc1tpXS5oZWlnaHQ7CisJCQlwWzBdLnRpbGlu ZyA9IHBsYW5lY29uZmlnc1tpXS50aWxpbmc7CisJCQlwb2ludGxvY2F0aW9uKGRhdGEsIChwbGFu ZWluZm9zKikmcCwgbW9kZSwgMCk7CisKKwkJCWZvciAoayA9IDA7IGsgPCBBUlJBWV9TSVpFKGZv cm1hdGxpc3QpOyBrKyspIHsKKwkJCQlwWzBdLmZvcm1hdCA9IGZvcm1hdGxpc3Rba107CisKKwkJ CQlmb3IgKGogPSAwOyBqIDwgQVJSQVlfU0laRShwbGFuZWNvbmZpZ3MpOyBqKyspIHsKKwkJCQkJ cFsxXS5wbGFuZXR5cGUgPSBEUk1fUExBTkVfVFlQRV9PVkVSTEFZOworCQkJCQlwWzFdLndpZHRo ID0gcGxhbmVjb25maWdzW2pdLndpZHRoOworCQkJCQlwWzFdLmhlaWdodCA9IHBsYW5lY29uZmln c1tqXS5oZWlnaHQ7CisJCQkJCXBbMV0udGlsaW5nID0gcGxhbmVjb25maWdzW2pdLnRpbGluZzsK KwkJCQkJcG9pbnRsb2NhdGlvbihkYXRhLCAocGxhbmVpbmZvcyopJnAsCisJCQkJCQkgICAgICBt b2RlLCAxKTsKKworCQkJCQlmb3IgKGwgPSAwOyBsIDwgQVJSQVlfU0laRShmb3JtYXRsaXN0KTsg bCsrKSB7CisJCQkJCQlwWzFdLmZvcm1hdCA9IGZvcm1hdGxpc3RbbF07CisKKwkJCQkJCS8qCisJ CQkJCQkgKiBSR0I1NjUgOTAvMjcwIGRlZ3JlZXMgcm90YXRpb24gaXMgc3VwcG9ydGVkCisJCQkJ CQkgKiBmcm9tIGdlbjExIG9ud2FyZHMuCisJCQkJCQkgKi8KKwkJCQkJCWlmIChwWzBdLmZvcm1h dCA9PSBEUk1fRk9STUFUX1JHQjU2NSAmJgorCQkJCQkJICAgICAocGxhbmVjb25maWdzW2ldLnJv dGF0aW9uJihJR1RfUk9UQVRJT05fOTB8SUdUX1JPVEFUSU9OXzI3MCkpCisJCQkJCQkgICAgICYm IGludGVsX2dlbihkYXRhLT5kZXZpZCkgPCAxMSkKKwkJCQkJCQljb250aW51ZTsKKworCQkJCQkJ aWYgKHBbMV0uZm9ybWF0ID09IERSTV9GT1JNQVRfUkdCNTY1ICYmCisJCQkJCQkgICAgIChwbGFu ZWNvbmZpZ3Nbal0ucm90YXRpb24mKElHVF9ST1RBVElPTl85MHxJR1RfUk9UQVRJT05fMjcwKSkK KwkJCQkJCSAgICAgJiYgaW50ZWxfZ2VuKGRhdGEtPmRldmlkKSA8IDExKQorCQkJCQkJCWNvbnRp bnVlOworCisKKwkJCQkJCXBbMF0ucm90YXRpb25fc3cgPSBwbGFuZWNvbmZpZ3NbaV0ucm90YXRp b247CisJCQkJCQlwWzBdLnJvdGF0aW9uX2h3ID0gSUdUX1JPVEFUSU9OXzA7CisJCQkJCQlwWzFd LnJvdGF0aW9uX3N3ID0gcGxhbmVjb25maWdzW2pdLnJvdGF0aW9uOworCQkJCQkJcFsxXS5yb3Rh dGlvbl9odyA9IElHVF9ST1RBVElPTl8wOworCQkJCQkJZ2V0X211bHRpcGxhbmVfY3JjKGRhdGEs IG91dHB1dCwgJnJldGNyY19zdywKKwkJCQkJCQkJICAgKHBsYW5laW5mb3MqKSZwLCBNQVhNVUxU SVBMQU5FU0FNT1VOVCk7CisKKwkJCQkJCWlndF9zd2FwKHBbMF0ucm90YXRpb25fc3csIHBbMF0u cm90YXRpb25faHcpOworCQkJCQkJaWd0X3N3YXAocFsxXS5yb3RhdGlvbl9zdywgcFsxXS5yb3Rh dGlvbl9odyk7CisJCQkJCQlnZXRfbXVsdGlwbGFuZV9jcmMoZGF0YSwgb3V0cHV0LCAmcmV0Y3Jj X2h3LAorCQkJCQkJCQkgICAocGxhbmVpbmZvcyopJnAsIE1BWE1VTFRJUExBTkVTQU1PVU5UKTsK KworCQkJCQkJaWd0X2Fzc2VydF9jcmNfZXF1YWwoJnJldGNyY19zdywgJnJldGNyY19odyk7CisJ CQkJCX0KKwkJCQl9CisJCQl9CisJCX0KKwkJaWd0X3BpcGVfY3JjX3N0b3AoZGF0YS0+cGlwZV9j cmMpOworCQlpZ3RfcGlwZV9jcmNfZnJlZShkYXRhLT5waXBlX2NyYyk7CisJCWlndF9vdXRwdXRf c2V0X3BpcGUob3V0cHV0LCBQSVBFX0FOWSk7CisJfQorCisJLyoKKwkqIE9sZCBmYnMgYXJlIGRl bGV0ZWQgb25seSBhZnRlciBuZXcgb25lcyBhcmUgc2V0IG9uIHBsYW5lcy4KKwkqIFRoaXMgaXMg ZG9uZSB0byBzcGVlZCB1cCB0aGUgdGVzdAorCSovCisJb2xkcGxhbmVzID0gZGF0YS0+bXVsdGlw bGFuZW9sZHZpZXc7CisJZm9yIChjID0gMDsgYyA8IE1BWE1VTFRJUExBTkVTQU1PVU5UICYmIG9s ZHBsYW5lczsgYysrKQorCQlpZ3RfcmVtb3ZlX2ZiKGRhdGEtPmdmeF9mZCwgJm9sZHBsYW5lc1tj XS5mYik7CisKKwlmcmVlKG9sZHBsYW5lcyk7CisJZGF0YS0+bXVsdGlwbGFuZW9sZHZpZXcgPSBO VUxMOworCWRhdGEtPnBpcGVfY3JjID0gTlVMTDsKK30KKwogc3RhdGljIHZvaWQgdGVzdF9wbGFu ZV9yb3RhdGlvbl9leGhhdXN0X2ZlbmNlcyhkYXRhX3QgKmRhdGEsCiAJCQkJCSAgICAgICBlbnVt IHBpcGUgcGlwZSwKIAkJCQkJICAgICAgIGlndF9vdXRwdXRfdCAqb3V0cHV0LApAQCAtNTk1LDYg KzgwOCw0MiBAQCBpZ3RfbWFpbgogCQl9CiAJfQogCisJaWd0X3N1YnRlc3RfZigibXVsdGlwbGFu ZS1yb3RhdGlvbiIpIHsKKwkJaWd0X3JlcXVpcmUoZ2VuID49IDkpOworCQljbGVhbnVwX2NydGMo JmRhdGEpOworCQlkYXRhLnBsYW5lcG9zWzBdLm9yaWdvID0gcF90b3B8cF9sZWZ0OworCQlkYXRh LnBsYW5lcG9zWzBdLnggPSAxMjg7CisJCWRhdGEucGxhbmVwb3NbMF0ueSA9IDEyODsKKwkJZGF0 YS5wbGFuZXBvc1sxXS5vcmlnbyA9IHBfdG9wfHBfcmlnaHQ7CisJCWRhdGEucGxhbmVwb3NbMV0u eCA9IC0xMjgtNTEyOworCQlkYXRhLnBsYW5lcG9zWzFdLnkgPSAxMjg7CisJCXRlc3RfbXVsdGlf cGxhbmVfcm90YXRpb24oJmRhdGEsIDApOworCX0KKworCWlndF9zdWJ0ZXN0X2YoIm11bHRpcGxh bmUtcm90YXRpb24tY3JvcHBpbmctdG9wIikgeworCQlpZ3RfcmVxdWlyZShnZW4gPj0gOSk7CisJ CWNsZWFudXBfY3J0YygmZGF0YSk7CisJCWRhdGEucGxhbmVwb3NbMF0ub3JpZ28gPSBwX3RvcHxw X2xlZnQ7CisJCWRhdGEucGxhbmVwb3NbMF0ueCA9IC0xMjg7CisJCWRhdGEucGxhbmVwb3NbMF0u eSA9IC0xMjg7CisJCWRhdGEucGxhbmVwb3NbMV0ub3JpZ28gPSBwX3RvcHxwX3JpZ2h0OworCQlk YXRhLnBsYW5lcG9zWzFdLnggPSAtNTEyKzEyODsKKwkJZGF0YS5wbGFuZXBvc1sxXS55ID0gLTEy ODsKKwkJdGVzdF9tdWx0aV9wbGFuZV9yb3RhdGlvbigmZGF0YSwgMCk7CisJfQorCisJaWd0X3N1 YnRlc3RfZigibXVsdGlwbGFuZS1yb3RhdGlvbi1jcm9wcGluZy1ib3R0b20iKSB7CisJCWlndF9y ZXF1aXJlKGdlbiA+PSA5KTsKKwkJY2xlYW51cF9jcnRjKCZkYXRhKTsKKwkJZGF0YS5wbGFuZXBv c1swXS5vcmlnbyA9IHBfYm90dG9tfHBfbGVmdDsKKwkJZGF0YS5wbGFuZXBvc1swXS54ID0gLTEy ODsKKwkJZGF0YS5wbGFuZXBvc1swXS55ID0gLTUxMisxMjg7CisJCWRhdGEucGxhbmVwb3NbMV0u b3JpZ28gPSBwX2JvdHRvbXxwX3JpZ2h0OworCQlkYXRhLnBsYW5lcG9zWzFdLnggPSAtNTEyKzEy ODsKKwkJZGF0YS5wbGFuZXBvc1sxXS55ID0gLTUxMisxMjg7CisJCXRlc3RfbXVsdGlfcGxhbmVf cm90YXRpb24oJmRhdGEsIDApOworCX0KKwogCS8qCiAJICogZXhoYXVzdC1mZW5jZXMgc2hvdWxk IGJlIGxhc3QgdGVzdCwgaWYgaXQgZmFpbHMgd2UgbWF5IE9PTSBpbgogCSAqIHRoZSBmb2xsb3dp bmcgc3VidGVzdHMgb3RoZXJ3aXNlLgotLSAKMi43LjQKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaWd0LWRldgo=