From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 526A589B97 for ; Mon, 22 Oct 2018 17:08:52 +0000 (UTC) From: Ramalingam C Date: Mon, 22 Oct 2018 22:35:40 +0530 Message-Id: <1540227940-3064-2-git-send-email-ramalingam.c@intel.com> In-Reply-To: <1540227940-3064-1-git-send-email-ramalingam.c@intel.com> References: <1540227940-3064-1-git-send-email-ramalingam.c@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v5 2/2] kms_content_protection: Add Content Protection test 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, daniel.vetter@ffwll.ch List-ID: UHJldHR5IHNpbXBsZSB0ZXN0OgotIHBpY2tzIHRoZSBoZGNwIGNhcGFibGUgb3V0cHV0IHdpdGgg c3VpdGFibGUgcGlwZSBhbmQgYXBwbHkgbW9kZXNldC4KLSBjaGVja3MgdGhlIGNvbm5lY3RlZCBz aW5rJ3MgaGRjcCBjYXBhYmlsaXR5IHRocm91Z2ggZGVidWdmcwotIGFwcGx5IGEgRkIgYW5kIHdh aXQgZm9yIHRoZSBmbGlwIGNvbXBsZXRpb24uCi0gY2xlYXJzIHRoZSBjb250ZW50IHByb3RlY3Rp b24gcHJvcGVydHkKLSB2ZXJpZmllcyB0aGF0IGl0IGNsZWFycwotIHNldHMgdGhlIGNvbnRlbnQg cHJvdGVjdGlvbiBwcm9wZXJ0eSB0byBkZXNpcmVkCi0gdmVyaWZpZXMgdGhhdCBpdCB0cmFuc2l0 aW9ucyB0byBlbmFibGVkCi0gaW5jYXNlIG9mIHRpbWVvdXQgdGhyZWUgcmVhdHRlbXB0cyBhcmUg aW1wbGVtZW50ZWQKLSBjbGVhciB0aGUgY29udGVudCBwcm90ZWN0aW9uIHByb3BlcnR5IGFuZCBt b2Rlc2V0IG9uIHRoZSBjcnRjCgpBYm92ZSBzdGVwcyBhcmUgcmVwZWF0ZWQgb24gYWxsIEhEQ1Ag Y2FwYWJsZSBjb25uZWN0b3JzIGZvciBib3RoCmxlZ2FjeSBhbmQgYXRvbWljIHN1YnRlc3RzLgoK djI6CiAgZHluYW1pYyBzdWJ0ZXN0cyBhcmUgZHJvcHBlZCBbRGFuaWVsXQp2MzoKICBkZWJ1Z2Zz IGlzIHVzZWQgdG8gZGV0ZWN0IHRoZSBzaW5rJ3MgaGRjcCBjYXBhYmlsaXR5IFtEYW5pZWxdCiAg ZGF0YSBzdHJ1Y3R1cmUgaXMgbWFkZSBhcyBnbG9iYWwgdmFyaWFibGUuCnY0OgogIGRlYnVnZnMg ZmlsZSBmcm9tIGNvbm5lY3RvcidzIGRlYnVnZnMgZGlyIGlzIHVzZWQgW0RhbmllbF0KdjU6CiAg aTkxNV9kZWJ1Z2ZzX2Nvbm5lY3Rvcl9kaXIoKSB1c2FnZSBpcyBtb2RpZmllZCBbQ2hyaXNdCgpT aWduZWQtb2ZmLWJ5OiBTZWFuIFBhdWwgPHNlYW5wYXVsQGNocm9taXVtLm9yZz4KU2lnbmVkLW9m Zi1ieTogUmFtYWxpbmdhbSBDIDxyYW1hbGluZ2FtLmNAaW50ZWwuY29tPgpSZXZpZXdlZC1ieTog RGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KLS0tCiBsaWIvaWd0X2ttcy5j ICAgICAgICAgICAgICAgICAgfCAgIDEgKwogbGliL2lndF9rbXMuaCAgICAgICAgICAgICAgICAg IHwgICAxICsKIHRlc3RzL01ha2VmaWxlLnNvdXJjZXMgICAgICAgICB8ICAgMSArCiB0ZXN0cy9r bXNfY29udGVudF9wcm90ZWN0aW9uLmMgfCAzMDIgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKIHRlc3RzL21lc29uLmJ1aWxkICAgICAgICAgICAgICB8ICAgMSArCiA1 IGZpbGVzIGNoYW5nZWQsIDMwNiBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVz dHMva21zX2NvbnRlbnRfcHJvdGVjdGlvbi5jCgpkaWZmIC0tZ2l0IGEvbGliL2lndF9rbXMuYyBi L2xpYi9pZ3Rfa21zLmMKaW5kZXggNjJkODQ2ODQxNWM2Li40MjMxOTk2YzY1Y2EgMTAwNjQ0Ci0t LSBhL2xpYi9pZ3Rfa21zLmMKKysrIGIvbGliL2lndF9rbXMuYwpAQCAtMTk0LDYgKzE5NCw3IEBA IGNvbnN0IGNoYXIgKiBjb25zdCBpZ3RfY29ubmVjdG9yX3Byb3BfbmFtZXNbSUdUX05VTV9DT05O RUNUT1JfUFJPUFNdID0gewogCVtJR1RfQ09OTkVDVE9SX0NSVENfSURdID0gIkNSVENfSUQiLAog CVtJR1RfQ09OTkVDVE9SX0RQTVNdID0gIkRQTVMiLAogCVtJR1RfQ09OTkVDVE9SX0JST0FEQ0FT VF9SR0JdID0gIkJyb2FkY2FzdCBSR0IiLAorCVtJR1RfQ09OTkVDVE9SX0NPTlRFTlRfUFJPVEVD VElPTl0gPSAiQ29udGVudCBQcm90ZWN0aW9uIiwKIH07CiAKIC8qCmRpZmYgLS1naXQgYS9saWIv aWd0X2ttcy5oIGIvbGliL2lndF9rbXMuaAppbmRleCAzYTEyZjI3ODJlZWQuLmFhMDY4ZTU4ZTYw NyAxMDA2NDQKLS0tIGEvbGliL2lndF9rbXMuaAorKysgYi9saWIvaWd0X2ttcy5oCkBAIC0xMjAs NiArMTIwLDcgQEAgZW51bSBpZ3RfYXRvbWljX2Nvbm5lY3Rvcl9wcm9wZXJ0aWVzIHsKICAgICAg ICBJR1RfQ09OTkVDVE9SX0NSVENfSUQsCiAgICAgICAgSUdUX0NPTk5FQ1RPUl9EUE1TLAogICAg ICAgIElHVF9DT05ORUNUT1JfQlJPQURDQVNUX1JHQiwKKyAgICAgICBJR1RfQ09OTkVDVE9SX0NP TlRFTlRfUFJPVEVDVElPTiwKICAgICAgICBJR1RfTlVNX0NPTk5FQ1RPUl9QUk9QUwogfTsKIApk aWZmIC0tZ2l0IGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcyBiL3Rlc3RzL01ha2VmaWxlLnNvdXJj ZXMKaW5kZXggYzg0OTMzZjFkOTcxLi41YWY2OGE2MWRmNTEgMTAwNjQ0Ci0tLSBhL3Rlc3RzL01h a2VmaWxlLnNvdXJjZXMKKysrIGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcwpAQCAtMTc0LDYgKzE3 NCw3IEBAIFRFU1RTX3Byb2dzID0gXAogCWttc19jaHZfY3Vyc29yX2ZhaWwgXAogCWttc19jb2xv ciBcCiAJa21zX2NvbmN1cnJlbnQgXAorCWttc19jb250ZW50X3Byb3RlY3Rpb25cCiAJa21zX2Ny dGNfYmFja2dyb3VuZF9jb2xvciBcCiAJa21zX2N1cnNvcl9jcmMgXAogCWttc19jdXJzb3JfbGVn YWN5IFwKZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19jb250ZW50X3Byb3RlY3Rpb24uYyBiL3Rlc3Rz L2ttc19jb250ZW50X3Byb3RlY3Rpb24uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAuLjQ3YWNiZWVkYWExMgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2ttc19jb250 ZW50X3Byb3RlY3Rpb24uYwpAQCAtMCwwICsxLDMwMiBAQAorLyoKKyAqIENvcHlyaWdodCDCqSAy MDE4IEludGVsIENvcnBvcmF0aW9uCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRl ZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2Yg dGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNv ZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9u LCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29w eSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFu ZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0 byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRv IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5v dGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBw YXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwg cG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJP VklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgor ICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBP RiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB TkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRIT1JTIE9S IENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9U SEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JU IE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04g V0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUworICogSU4gVEhF IFNPRlRXQVJFLgorICoKKyAqLworCisjaW5jbHVkZSA8cG9sbC5oPgorI2luY2x1ZGUgPGZjbnRs Lmg+CisjaW5jbHVkZSAiaWd0LmgiCisjaW5jbHVkZSAiaWd0X3N5c2ZzLmgiCisKK0lHVF9URVNU X0RFU0NSSVBUSU9OKCJUZXN0IGNvbnRlbnQgcHJvdGVjdGlvbiAoSERDUCkiKTsKKworc3RydWN0 IGRhdGEgeworCWludCBkcm1fZmQ7CisJaWd0X2Rpc3BsYXlfdCBkaXNwbGF5OworfSBkYXRhOwor CisKK3N0YXRpYyB2b2lkIGZsaXBfaGFuZGxlcihpbnQgZmQsIHVuc2lnbmVkIGludCBzZXF1ZW5j ZSwgdW5zaWduZWQgaW50IHR2X3NlYywKKwkJCSB1bnNpZ25lZCBpbnQgdHZfdXNlYywgdm9pZCAq X2RhdGEpCit7CisJaWd0X2RlYnVnKCJGbGlwIGV2ZW50IHJlY2VpdmVkLlxuIik7Cit9CisKK3N0 YXRpYyBpbnQgd2FpdF9mbGlwX2V2ZW50KHZvaWQpCit7CisJaW50IHJjOworCWRybUV2ZW50Q29u dGV4dCBldmN0eDsKKwlzdHJ1Y3QgcG9sbGZkIHBmZDsKKworCWV2Y3R4LnZlcnNpb24gPSAyOwor CWV2Y3R4LnZibGFua19oYW5kbGVyID0gTlVMTDsKKwlldmN0eC5wYWdlX2ZsaXBfaGFuZGxlciA9 IGZsaXBfaGFuZGxlcjsKKworCXBmZC5mZCA9IGRhdGEuZHJtX2ZkOworCXBmZC5ldmVudHMgPSBQ T0xMSU47CisJcGZkLnJldmVudHMgPSAwOworCisJcmMgPSBwb2xsKCZwZmQsIDEsIDEwMDApOwor CXN3aXRjaCAocmMpIHsKKwljYXNlIDA6CisJCWlndF9pbmZvKCJQb2xsIHRpbWVvdXQuIDFTZWMu XG4iKTsKKwkJcmMgPSAtRVRJTUVET1VUOworCQlicmVhazsKKwljYXNlIDE6CisJCXJjID0gZHJt SGFuZGxlRXZlbnQoZGF0YS5kcm1fZmQsICZldmN0eCk7CisJCWlndF9hc3NlcnRfZXEocmMsIDAp OworCQlyYyA9IDA7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWlndF9pbmZvKCJVbmV4cGVjdGVk IHBvbGwgcmMgJWRcbiIsIHJjKTsKKwkJcmMgPSAtMTsKKwkJYnJlYWs7CisJfQorCisJcmV0dXJu IHJjOworfQorCitzdGF0aWMgYm9vbAord2FpdF9mb3JfcHJvcF92YWx1ZShpZ3Rfb3V0cHV0X3Qg Km91dHB1dCwgdWludDY0X3QgZXhwZWN0ZWQsCisJCSAgICB1aW50MzJfdCB0aW1lb3V0X21TZWMp Cit7CisJdWludDY0X3QgdmFsOworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IHRpbWVvdXRf bVNlYzsgaSsrKSB7CisJCXZhbCA9IGlndF9vdXRwdXRfZ2V0X3Byb3Aob3V0cHV0LAorCQkJCQkg IElHVF9DT05ORUNUT1JfQ09OVEVOVF9QUk9URUNUSU9OKTsKKwkJaWYgKHZhbCA9PSBleHBlY3Rl ZCkKKwkJCXJldHVybiB0cnVlOworCQl1c2xlZXAoMTAwMCk7CisJfQorCWlndF9pbmZvKCJwcm9w X3ZhbHVlIG1pc21hdGNoICVsZCAhPSAlbGRcbiIsIHZhbCwgZXhwZWN0ZWQpOworCisJcmV0dXJu IGZhbHNlOworfQorCitzdGF0aWMgdm9pZAorY29tbWl0X2Rpc3BsYXlfYW5kX3dhaXRfZm9yX2Zs aXAoZW51bSBpZ3RfY29tbWl0X3N0eWxlIHMpCit7CisJaW50IHJldDsKKwl1aW50MzJfdCBmbGFn OworCisJaWYgKHMgPT0gQ09NTUlUX0FUT01JQykgeworCQlmbGFnID0gRFJNX01PREVfUEFHRV9G TElQX0VWRU5UIHwgRFJNX01PREVfQVRPTUlDX0FMTE9XX01PREVTRVQ7CisJCWlndF9kaXNwbGF5 X2NvbW1pdF9hdG9taWMoJmRhdGEuZGlzcGxheSwgZmxhZywgTlVMTCk7CisKKwkJcmV0ID0gd2Fp dF9mbGlwX2V2ZW50KCk7CisJCWlndF9hc3NlcnRfZighcmV0LCAid2FpdF9mbGlwX2V2ZW50IGZh aWxlZC4gJWRcbiIsIHJldCk7CisJfSBlbHNlIHsKKwkJaWd0X2Rpc3BsYXlfY29tbWl0MigmZGF0 YS5kaXNwbGF5LCBzKTsKKworCQkvKiBXYWl0IGZvciA1MG1TZWMgKi8KKwkJdXNsZWVwKDUwICog MTAwMCk7CisJfQorfQorCitzdGF0aWMgdm9pZAordGVzdF9jcF9lbmFibGVfZGlzYWJsZShjb25z dCBlbnVtIHBpcGUgcGlwZSwgaWd0X291dHB1dF90ICpvdXRwdXQsCisJCSAgICAgICBlbnVtIGln dF9jb21taXRfc3R5bGUgcykKK3sKKwlpZ3RfZGlzcGxheV90ICpkaXNwbGF5ID0gJmRhdGEuZGlz cGxheTsKKwlkcm1Nb2RlTW9kZUluZm8gbW9kZTsKKwlpZ3RfcGxhbmVfdCAqcHJpbWFyeTsKKwlz dHJ1Y3QgaWd0X2ZiIHJlZCwgZ3JlZW47CisJYm9vbCByZXQ7CisJaW50IHJldHJ5ID0gMzsKKwor CWlndF9hc3NlcnQoa21zdGVzdF9nZXRfY29ubmVjdG9yX2RlZmF1bHRfbW9kZSgKKwkJCWRpc3Bs YXktPmRybV9mZCwgb3V0cHV0LT5jb25maWcuY29ubmVjdG9yLCAmbW9kZSkpOworCisJaWd0X291 dHB1dF9vdmVycmlkZV9tb2RlKG91dHB1dCwgJm1vZGUpOworCWlndF9vdXRwdXRfc2V0X3BpcGUo b3V0cHV0LCBwaXBlKTsKKworCWlndF9jcmVhdGVfY29sb3JfZmIoZGlzcGxheS0+ZHJtX2ZkLCBt b2RlLmhkaXNwbGF5LCBtb2RlLnZkaXNwbGF5LAorCQkJICAgIERSTV9GT1JNQVRfWFJHQjg4ODgs IExPQ0FMX0RSTV9GT1JNQVRfTU9EX05PTkUsCisJCQkgICAgMS5mLCAwLmYsIDAuZiwgJnJlZCk7 CisJaWd0X2NyZWF0ZV9jb2xvcl9mYihkaXNwbGF5LT5kcm1fZmQsIG1vZGUuaGRpc3BsYXksIG1v ZGUudmRpc3BsYXksCisJCQkgICAgRFJNX0ZPUk1BVF9YUkdCODg4OCwgTE9DQUxfRFJNX0ZPUk1B VF9NT0RfTk9ORSwKKwkJCSAgICAwLmYsIDEuZiwgMC5mLCAmZ3JlZW4pOworCisJcHJpbWFyeSA9 IGlndF9vdXRwdXRfZ2V0X3BsYW5lX3R5cGUob3V0cHV0LCBEUk1fUExBTkVfVFlQRV9QUklNQVJZ KTsKKwlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIHMpOworCisJaWd0X3BsYW5lX3NldF9m YihwcmltYXJ5LCAmcmVkKTsKKworCS8qIFdhaXQgZm9yIEZsaXAgY29tcGxldGlvbiBiZWZvcmUg c3RhcnRpbmcgdGhlIEhEQ1AgYXV0aGVudGljYXRpb24gKi8KKwljb21taXRfZGlzcGxheV9hbmRf d2FpdF9mb3JfZmxpcChzKTsKKworCWRvIHsKKwkJaWd0X291dHB1dF9zZXRfcHJvcF92YWx1ZShv dXRwdXQsCisJCQkJCSAgSUdUX0NPTk5FQ1RPUl9DT05URU5UX1BST1RFQ1RJT04sIDApOworCQlp Z3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIHMpOworCisJCS8qIFdhaXQgZm9yIEhEQ1AgdG8g YmUgZGlzYWJsZWQgZm9yIGZyZXNoIHN0YXJ0LiAqLworCQlyZXQgPSB3YWl0X2Zvcl9wcm9wX3Zh bHVlKG91dHB1dCwgMCwgMTAwMCk7CisJCWlndF9hc3NlcnRfZihyZXQsICJDb250ZW50IFByb3Rl Y3Rpb24gbm90IGNsZWFyZWRcbiIpOworCisJCWlndF9vdXRwdXRfc2V0X3Byb3BfdmFsdWUob3V0 cHV0LAorCQkJCQkgIElHVF9DT05ORUNUT1JfQ09OVEVOVF9QUk9URUNUSU9OLCAxKTsKKwkJaWd0 X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBzKTsKKworCQkvKiBXYWl0IGZvciAxODAwMG1TZWMg KDMgYXV0aGVudGljYXRpb24gKiA2U2VjKSAqLworCQlyZXQgPSB3YWl0X2Zvcl9wcm9wX3ZhbHVl KG91dHB1dCwgMiwgMTgwMDApOworCQlpZiAocmV0KSB7CisJCQlpZ3RfcGxhbmVfc2V0X2ZiKHBy aW1hcnksICZncmVlbik7CisJCQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIHMpOworCQl9 CisKKwkJaWYgKCFyZXQgJiYgLS1yZXRyeSkKKwkJCWlndF9kZWJ1ZygiUmV0cnkgKCVkLzIpIC4u LlxuIiwgMyAtIHJldHJ5KTsKKwl9IHdoaWxlIChyZXRyeSAmJiAhcmV0KTsKKworCWlndF9hc3Nl cnRfZihyZXQsICJDb250ZW50IFByb3RlY3Rpb24gbm90IGVuYWJsZWRcbiIpOworCisJaWd0X291 dHB1dF9zZXRfcHJvcF92YWx1ZShvdXRwdXQsIElHVF9DT05ORUNUT1JfQ09OVEVOVF9QUk9URUNU SU9OLCAwKTsKKwlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksICZyZWQpOworCWlndF9kaXNwbGF5 X2NvbW1pdDIoZGlzcGxheSwgcyk7CisKKwkvKiBXYWl0IGZvciBIRENQIHRvIGJlIGRpc2FibGVk LCBiZWZvcmUgY3J0YyBvZmYgKi8KKwl3YWl0X2Zvcl9wcm9wX3ZhbHVlKG91dHB1dCwgMCwgMTAw MCk7CisKKwlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksIE5VTEwpOworCWlndF9vdXRwdXRfc2V0 X3BpcGUob3V0cHV0LCBQSVBFX05PTkUpOworfQorCitzdGF0aWMgYm9vbCBpZ3RfcGlwZV9pc19m cmVlKGlndF9kaXNwbGF5X3QgKmRpc3BsYXksIGVudW0gcGlwZSBwaXBlKQoreworCWludCBpOwor CisJZm9yIChpID0gMDsgaSA8IGRpc3BsYXktPm5fb3V0cHV0czsgaSsrKQorCQlpZiAoZGlzcGxh eS0+b3V0cHV0c1tpXS5wZW5kaW5nX3BpcGUgPT0gcGlwZSkKKwkJCXJldHVybiBmYWxzZTsKKwor CXJldHVybiB0cnVlOworfQorCitzdGF0aWMgdm9pZAordGVzdF9jb250ZW50X3Byb3RlY3Rpb25f b25fb3V0cHV0KGlndF9vdXRwdXRfdCAqb3V0cHV0LAorCQkJCSAgZW51bSBpZ3RfY29tbWl0X3N0 eWxlIHMpCit7CisJaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSA9ICZkYXRhLmRpc3BsYXk7CisJZW51 bSBwaXBlIHBpcGU7CisKKwlmb3JfZWFjaF9waXBlKGRpc3BsYXksIHBpcGUpIHsKKwkJaWYgKCFp Z3RfcGlwZV9jb25uZWN0b3JfdmFsaWQocGlwZSwgb3V0cHV0KSkKKwkJCWNvbnRpbnVlOworCisJ CS8qCisJCSAqIElmIHByZXZpb3VzIHN1YnRlc3Qgb2YgY29ubmVjdG9yIGZhaWxlZCwgcGlwZQor CQkgKiBhdHRhY2hlZCB0byB0aGF0IGNvbm5lY3RvciBpcyBub3QgcmVsZWFzZWQuCisJCSAqIEJl Y2F1c2Ugb2YgdGhhdCB3ZSBoYXZlIHRvIGNob29zZSB0aGUgbm9uCisJCSAqIGF0dGFjaGVkIHBp cGUgZm9yIHRoaXMgc3VidGVzdC4KKwkJICovCisJCWlmICghaWd0X3BpcGVfaXNfZnJlZShkaXNw bGF5LCBwaXBlKSkKKwkJCWNvbnRpbnVlOworCisJCXRlc3RfY3BfZW5hYmxlX2Rpc2FibGUocGlw ZSwgb3V0cHV0LCBzKTsKKworCQkvKgorCQkgKiBUZXN0aW5nIGEgb3V0cHV0IHdpdGggYSBwaXBl IGlzIGVub3VnaCBmb3IgSERDUAorCQkgKiB0ZXN0aW5nLiBObyBST0kgaW4gdGVzdGluZyB0aGUg Y29ubmVjdG9yIHdpdGggb3RoZXIKKwkJICogcGlwZXMuIFNvIEJyZWFrIHRoZSBsb29wIG9uIHBp cGUuCisJCSAqLworCQlicmVhazsKKwl9CisKK30KKworc3RhdGljIHZvaWQgX19kZWJ1Z2ZzX3Jl YWQoaW50IGZkLCBjb25zdCBjaGFyICpwYXJhbSwgY2hhciAqYnVmLCBpbnQgbGVuKQoreworCWxl biA9IGlndF9kZWJ1Z2ZzX3NpbXBsZV9yZWFkKGZkLCBwYXJhbSwgYnVmLCBsZW4pOworCWlmIChs ZW4gPCAwKQorCQlpZ3RfYXNzZXJ0X2VxKGxlbiwgLUVOT0RFVik7Cit9CisKKyNkZWZpbmUgZGVi dWdmc19yZWFkKGZkLCBwLCBhcnIpIF9fZGVidWdmc19yZWFkKGZkLCBwLCBhcnIsIHNpemVvZihh cnIpKQorCisjZGVmaW5lIE1BWF9TSU5LX0hEQ1BfQ0FQX0JVRl9MRU4JNTAwCitzdGF0aWMgYm9v bCBzaW5rX2hkY3BfY2FwYWJsZShpZ3Rfb3V0cHV0X3QgKm91dHB1dCkKK3sKKwljaGFyIGJ1ZltN QVhfU0lOS19IRENQX0NBUF9CVUZfTEVOXTsKKwlpbnQgZmQ7CisKKwlmZCA9IGlndF9kZWJ1Z2Zz X2Nvbm5lY3Rvcl9kaXIoZGF0YS5kcm1fZmQsIG91dHB1dC0+bmFtZSwgT19SRE9OTFkpOworCWlm IChmZCA8IDApCisJCXJldHVybiBmYWxzZTsKKworCWRlYnVnZnNfcmVhZChmZCwgImk5MTVfaGRj cF9zaW5rX2NhcGFiaWxpdHkiLCBidWYpOworCWNsb3NlKGZkKTsKKworCWlndF9kZWJ1ZygiU2lu ayBjYXBhYmlsaXR5OiAlc1xuIiwgYnVmKTsKKworCXJldHVybiBzdHJzdHIoYnVmLCAiSERDUDEu NCIpOworfQorCisKK3N0YXRpYyB2b2lkCit0ZXN0X2NvbnRlbnRfcHJvdGVjdGlvbihlbnVtIGln dF9jb21taXRfc3R5bGUgcykKK3sKKwlpZ3RfZGlzcGxheV90ICpkaXNwbGF5ID0gJmRhdGEuZGlz cGxheTsKKwlpZ3Rfb3V0cHV0X3QgKm91dHB1dDsKKwlpbnQgdmFsaWRfdGVzdHMgPSAwOworCisJ Zm9yX2VhY2hfY29ubmVjdGVkX291dHB1dChkaXNwbGF5LCBvdXRwdXQpIHsKKwkJaWYgKCFvdXRw dXQtPnByb3BzW0lHVF9DT05ORUNUT1JfQ09OVEVOVF9QUk9URUNUSU9OXSkKKwkJCWNvbnRpbnVl OworCisJCWlndF9pbmZvKCJDUCBUZXN0IGV4ZWN1dGlvbiBvbiAlc1xuIiwgb3V0cHV0LT5uYW1l KTsKKwkJaWYgKCFzaW5rX2hkY3BfY2FwYWJsZShvdXRwdXQpKSB7CisJCQlpZ3RfaW5mbygiXHRT a2lwICVzIChTaW5rIGhhcyBubyBIRENQIHN1cHBvcnQpXG4iLAorCQkJCSBvdXRwdXQtPm5hbWUp OworCQkJY29udGludWU7CisJCX0KKworCQl0ZXN0X2NvbnRlbnRfcHJvdGVjdGlvbl9vbl9vdXRw dXQob3V0cHV0LCBzKTsKKwkJdmFsaWRfdGVzdHMrKzsKKwl9CisKKwlpZ3RfcmVxdWlyZV9mKHZh bGlkX3Rlc3RzLCAiTm8gY29ubmVjdG9yIGZvdW5kIHdpdGggSERDUCBjYXBhYmlsaXR5XG4iKTsK K30KKworaWd0X21haW4KK3sKKwlpZ3RfZml4dHVyZSB7CisJCWlndF9za2lwX29uX3NpbXVsYXRp b24oKTsKKworCQlkYXRhLmRybV9mZCA9IGRybV9vcGVuX2RyaXZlcihEUklWRVJfQU5ZKTsKKwor CQlpZ3RfZGlzcGxheV9pbml0KCZkYXRhLmRpc3BsYXksIGRhdGEuZHJtX2ZkKTsKKwl9CisKKwlp Z3Rfc3VidGVzdCgibGVnYWN5IikKKwkJdGVzdF9jb250ZW50X3Byb3RlY3Rpb24oQ09NTUlUX0xF R0FDWSk7CisKKwlpZ3Rfc3VidGVzdCgiYXRvbWljIikgeworCQlpZ3RfcmVxdWlyZShkYXRhLmRp c3BsYXkuaXNfYXRvbWljKTsKKwkJdGVzdF9jb250ZW50X3Byb3RlY3Rpb24oQ09NTUlUX0FUT01J Qyk7CisJfQorCisJaWd0X2ZpeHR1cmUKKwkJaWd0X2Rpc3BsYXlfZmluaSgmZGF0YS5kaXNwbGF5 KTsKK30KZGlmZiAtLWdpdCBhL3Rlc3RzL21lc29uLmJ1aWxkIGIvdGVzdHMvbWVzb24uYnVpbGQK aW5kZXggMTdkZWI5NDVlYzk1Li5hNzRkZTRmZjBlY2UgMTAwNjQ0Ci0tLSBhL3Rlc3RzL21lc29u LmJ1aWxkCisrKyBiL3Rlc3RzL21lc29uLmJ1aWxkCkBAIC0xNDksNiArMTQ5LDcgQEAgdGVzdF9w cm9ncyA9IFsKIAkna21zX2Nodl9jdXJzb3JfZmFpbCcsCiAJJ2ttc19jb2xvcicsCiAJJ2ttc19j b25jdXJyZW50JywKKwkna21zX2NvbnRlbnRfcHJvdGVjdGlvbicsCiAJJ2ttc19jcnRjX2JhY2tn cm91bmRfY29sb3InLAogCSdrbXNfY3Vyc29yX2NyYycsCiAJJ2ttc19jdXJzb3JfbGVnYWN5JywK LS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXYK