From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 442706E0DC for ; Thu, 18 Apr 2019 08:46:59 +0000 (UTC) From: Ramalingam C Date: Thu, 18 Apr 2019 14:18:41 +0530 Message-Id: <20190418084842.5422-6-ramalingam.c@intel.com> In-Reply-To: <20190418084842.5422-1-ramalingam.c@intel.com> References: <20190418084842.5422-1-ramalingam.c@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v5 5/6] kms_content_protection: srm and topology_info 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@intel.com, arkadiusz.hiler@intel.com List-ID: UmV0cmlldmUgdGhlIHRvcG9sb2d5IGluZm8gYW5kIHVzZSB0aGF0IHRvIHN0aXRjaCBhIHNybSBh bmQKdmVyaWZ5IHRoZSByZXZvY2F0aW9uIHByb2Nlc3MuCgpBZGRzIGEgY29ubmVjdG9yIHByb3Bl cnRpZXMgY2FsbGVkICJIRENQIFRvcG9sb2d5IgoKU1JNIHN0aXRjaGVkIGhlcmUgaXMgcG9sbHV0 ZWQuIEtlcm5lbCB0cnVzdHMgdGhlIHVzZXJzcGFjZSB0byB2YWxpZGF0ZQp0aGUgU1JNIGludGVn cml0eSB0aHJvdWdoIERDUCBzaWduYXR1cmUuIEFjdHVhbGx5IHRoaXMgdGVzdCBleHBsb2l0cwp0 aGF0IHRydXN0IHRvIHRlc3QgU1JNIGFuZCBkb3duc3RyZWFtX2luZm8gZmVhdHVyZXMuCgpIRENQ MS40IEJLU1YgYW5kIEhEQ1AyLjIgcmVjZWl2ZXIgaWQgb2YgYSBIRENQIHNpbmsgaXMgZGlmZmVy ZW50LiBTbyB3ZQpuZWVkIHRvIGZvcmNlIHRoZSBLTUQgdG8gdXNlIGEgc2luZ2xlIEhEQ1AgdmVy c2lvbiBhY3Jvc3MKZG93bnN0cmVhbV9pbmZvIGdhdGhlcmluZyBhbmQgU1JNIHNldHRpbmcgYW5k IHZlcmlmeWluZyB0ZWggcmV2b2NhdGlvbgpwcm9jZXNzLiBTbyBUeXBlIDEgaXMgdXNlZC4KCnYy OgogIGJpbmFyeSBzeXNmcyBpcyB1c2VkIHRvIHdyaXRlIHRoZSBzcm0gaW50byBrZXJuZWwgW0Rh bmllbF0KdjM6CiAgcy9DUF9kb3duc3RyZWFtX2luZm8vSERDUCBUb3BvbG9neQp2NDoKICBzcm0g c3lzZnMgaXMgbW92ZWQgdG8gL3N5cy9jbGFzcy9kcm0gYXMgcGVyIGtlcm5lbCBjaGFuZ2VzLgog IGV4cGxpY2l0IHBhZGRpbmcgaXMgYWRkZWQgZm9yIHRvcG9sb2d5IHN0cnVjdCwgaW4gc3luYyB3 aXRoIGtlcm5lbC4KdjU6CiAgU1JNIGlzIHdyaXR0ZW4gaW50byAvbGliL2Zpcm13YXJlLyBpbnN0 ZWFkIG9mIHNybSBzeXNmcyBbRGFuaWVsXQoKU2lnbmVkLW9mZi1ieTogUmFtYWxpbmdhbSBDIDxy YW1hbGluZ2FtLmNAaW50ZWwuY29tPgotLS0KIGxpYi9pZ3Rfa21zLmMgICAgICAgICAgICAgICAg ICB8ICAgMSArCiBsaWIvaWd0X2ttcy5oICAgICAgICAgICAgICAgICAgfCAgIDEgKwogdGVzdHMv a21zX2NvbnRlbnRfcHJvdGVjdGlvbi5jIHwgMjMwICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0tLQogMyBmaWxlcyBjaGFuZ2VkLCAyMTQgaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvbGliL2lndF9rbXMuYyBiL2xpYi9pZ3Rfa21zLmMKaW5kZXggMThm MDU1NjY4N2RlLi43ZDQwODBjYjFiNjAgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3Rfa21zLmMKKysrIGIv bGliL2lndF9rbXMuYwpAQCAtMjIzLDYgKzIyMyw3IEBAIGNvbnN0IGNoYXIgKiBjb25zdCBpZ3Rf Y29ubmVjdG9yX3Byb3BfbmFtZXNbSUdUX05VTV9DT05ORUNUT1JfUFJPUFNdID0gewogCVtJR1Rf Q09OTkVDVE9SX0NPTlRFTlRfUFJPVEVDVElPTl0gPSAiQ29udGVudCBQcm90ZWN0aW9uIiwKIAlb SUdUX0NPTk5FQ1RPUl9WUlJfQ0FQQUJMRV0gPSAidnJyX2NhcGFibGUiLAogCVtJR1RfQ09OTkVD VE9SX0hEQ1BfQ09OVEVOVF9UWVBFXSA9ICJIRENQIENvbnRlbnQgVHlwZSIsCisJW0lHVF9DT05O RUNUT1JfSERDUF9UT1BPTE9HWV9JTkZPXSA9ICJIRENQIFRvcG9sb2d5IiwKIH07CiAKIC8qCmRp ZmYgLS1naXQgYS9saWIvaWd0X2ttcy5oIGIvbGliL2lndF9rbXMuaAppbmRleCBiMTQzMGE1MTcz MDUuLjkwMTU0ZTg1YjY5OSAxMDA2NDQKLS0tIGEvbGliL2lndF9rbXMuaAorKysgYi9saWIvaWd0 X2ttcy5oCkBAIC0xMjQsNiArMTI0LDcgQEAgZW51bSBpZ3RfYXRvbWljX2Nvbm5lY3Rvcl9wcm9w ZXJ0aWVzIHsKICAgICAgICBJR1RfQ09OTkVDVE9SX0NPTlRFTlRfUFJPVEVDVElPTiwKICAgICAg ICBJR1RfQ09OTkVDVE9SX1ZSUl9DQVBBQkxFLAogICAgICAgIElHVF9DT05ORUNUT1JfSERDUF9D T05URU5UX1RZUEUsCisgICAgICAgSUdUX0NPTk5FQ1RPUl9IRENQX1RPUE9MT0dZX0lORk8sCiAg ICAgICAgSUdUX05VTV9DT05ORUNUT1JfUFJPUFMKIH07CiAKZGlmZiAtLWdpdCBhL3Rlc3RzL2tt c19jb250ZW50X3Byb3RlY3Rpb24uYyBiL3Rlc3RzL2ttc19jb250ZW50X3Byb3RlY3Rpb24uYwpp bmRleCA0OGY4OTU3MWRjZmYuLmI0ODkxNWViM2Q3MyAxMDA2NDQKLS0tIGEvdGVzdHMva21zX2Nv bnRlbnRfcHJvdGVjdGlvbi5jCisrKyBiL3Rlc3RzL2ttc19jb250ZW50X3Byb3RlY3Rpb24uYwpA QCAtNTgsNiArNTgsMTE4IEBAIHN0cnVjdCBkYXRhIHsKICNkZWZpbmUgRkxJUF9FVkVOVF9QT0xM SU5HX1RJTUVPVVRfTVNFQwkJMTAwMAogCiAKKyNkZWZpbmUgRFJNX01PREVfSERDUF9LU1ZfTEVO CQkJNQorI2RlZmluZSBEUk1fTU9ERV9IRENQX01BWF9ERVZJQ0VfQ05UCQkxMjcKKworI2RlZmlu ZSBEUk1fTU9ERV9IRENQMTRfSU5fRk9SQ0UJCSgxPDwwKQorI2RlZmluZSBEUk1fTU9ERV9IRENQ MjJfSU5fRk9SQ0UJCSgxPDwxKQorCitzdHJ1Y3QgaGRjcF90b3BvbG9neV9pbmZvIHsKKwkvKiBW ZXJzaW9uIG9mIEhEQ1AgYXV0aGVudGljYXRlZCAoMS40LzIuMikgKi8KKwlfX3UzMiB2ZXJfaW5f Zm9yY2U7CisKKwkvKiBBcHBsaWNhYmxlIG9ubHkgZm9yIEhEQ1AyLjIgKi8KKwlfX3UzMiBjb250 ZW50X3R5cGU7CisKKwkvKiBLU1Ygb2YgaW1tZWRpYXRlIEhEQ1AgU2luay4gSW4gTGl0dGxlLUVu ZGlhbiBGb3JtYXQuICovCisJX191OCBia3N2W0RSTV9NT0RFX0hEQ1BfS1NWX0xFTl07CisKKwkv KiBXaGV0aGVyIEltbWVkaWF0ZSBIRENQIHNpbmsgaXMgYSByZXBlYXRlcj8gKi8KKwlfX3U4IGlz X3JlcGVhdGVyOworCisJLyogRGVwdGggcmVjZWl2ZWQgZnJvbSBpbW1lZGlhdGUgZG93bnN0cmVh bSByZXBlYXRlciAqLworCV9fdTggZGVwdGg7CisJX191OCBwYWQxOworCisJLyogRGV2aWNlIGNv dW50IHJlY2VpdmVkIGZyb20gaW1tZWRpYXRlIGRvd25zdHJlYW0gcmVwZWF0ZXIgKi8KKwlfX3Uz MiBkZXZpY2VfY291bnQ7CisKKwkvKgorCSAqIE1heCBidWZmZXIgcmVxdWlyZWQgdG8gaG9sZCBr c3YgbGlzdCByZWNlaXZlZCBmcm9tIGltbWVkaWF0ZQorCSAqIHJlcGVhdGVyLiBJbiB0aGlzIGFy cmF5IGZpcnN0IGRldmljZV9jb3VudCAqIERSTV9NT0RFX0hEQ1BfS1NWX0xFTgorCSAqIHdpbGwg aG9sZCB0aGUgdmFsaWQga3N2IGJ5dGVzLgorCSAqIElmIGF1dGhlbnRpY2F0aW9uIHNwZWNpZmlj YXRpb24gaXMKKwkgKiAgICAgIEhEQ1AxLjQgLSBlYWNoIEtTVidzIEJ5dGVzIHdpbGwgYmUgaW4g TGl0dGxlLUVuZGlhbiBmb3JtYXQuCisJICogICAgICBIRENQMi4yIC0gZWFjaCBLU1YncyBCeXRl cyB3aWxsIGJlIGluIEJpZy1FbmRpYW4gZm9ybWF0LgorCSAqLworCV9fdTgga3N2X2xpc3RbRFJN X01PREVfSERDUF9LU1ZfTEVOICogRFJNX01PREVfSERDUF9NQVhfREVWSUNFX0NOVF07CisJX191 OCBwYWQyWzVdOworfSBfX3BhY2tlZDsKKworX191OCBmYWNzaW1pbGVfc3JtW10gPSB7CisJMHg4 MCwgMHgwLCAweDAsIDB4MDUsIDB4MDEsIDB4MCwgMHgwLCAweDM2LCAweDAyLCAweDUxLCAweDFF LCAweEYyLAorCTB4MUEsIDB4Q0QsIDB4RTcsIDB4MjYsIDB4OTcsIDB4RjQsIDB4MDEsIDB4OTcs IDB4MTAsIDB4MTksIDB4OTIsIDB4NTMsCisJMHhFOSwgMHhGMCwgMHg1OSwgMHg5NSwgMHhBMywg MHg3QSwgMHgzQiwgMHhGRSwgMHhFMCwgMHg5QywgMHg3NiwgMHhERCwKKwkweDgzLCAweEFBLCAw eEMyLCAweDVCLCAweDI0LCAweEIzLCAweDM2LCAweDg0LCAweDk0LCAweDc1LCAweDM0LCAweERC LAorCTB4MTAsIDB4OUUsIDB4M0IsIDB4MjMsIDB4MTMsIDB4RDgsIDB4N0EsIDB4QzIsIDB4MzAs IDB4NzksIDB4ODR9OworCitzdGF0aWMgdm9pZCBwYXJzZV90b3BvbG9neV9pbmZvKHN0cnVjdCBo ZGNwX3RvcG9sb2d5X2luZm8gKmRzX2luZm8pCit7CisJX191OCAqa3N2czsKKwlpbnQgaTsKKwor CWlmIChkc19pbmZvLT52ZXJfaW5fZm9yY2UgJiBEUk1fTU9ERV9IRENQMTRfSU5fRk9SQ0UpCisJ CWlndF9pbmZvKCJIRENQMS40IGlzIEVuYWJsZWRcbiIpOworCWVsc2UgaWYgKGRzX2luZm8tPnZl cl9pbl9mb3JjZSAmIERSTV9NT0RFX0hEQ1AyMl9JTl9GT1JDRSkKKwkJaWd0X2luZm8oIkhEQ1Ay LjIgaXMgRW5hYmxlZC4gVHlwZSVkXG4iLAorCQkJIGRzX2luZm8tPmNvbnRlbnRfdHlwZSAmIEhE Q1BfQ09OVEVOVF9UWVBFXzEgPworCQkJIDEgOiAwKTsKKwllbHNlCisJCXJldHVybjsKKworCWln dF9pbmZvKCJcdFJlY2VpdmVyIElEOiAlIzA0eCAlIzA0eCAlIzA0eCAlIzA0eCAlIzA0eFxuIiwK KwkJCWRzX2luZm8tPmJrc3ZbMF0gJiAweEZGLCBkc19pbmZvLT5ia3N2WzFdICYgMHhGRiwKKwkJ CWRzX2luZm8tPmJrc3ZbMl0gJiAweEZGLCBkc19pbmZvLT5ia3N2WzNdICYgMHhGRiwKKwkJCWRz X2luZm8tPmJrc3ZbNF0gJiAweEZGKTsKKworCWlmIChkc19pbmZvLT5pc19yZXBlYXRlcikgewor CQlpZ3RfaW5mbygiXHRIRENQIHNpbmsgaXMgYSBSZXBlYXRlclxuIik7CisKKwkJaWd0X2luZm8o Ilx0RGVwdGg6ICVkLCBEZXZpY2UgY291bnQ6ICVkXG4iLCBkc19pbmZvLT5kZXB0aCwKKwkJCQkJ CQlkc19pbmZvLT5kZXZpY2VfY291bnQpOworCQlrc3ZzID0gZHNfaW5mby0+a3N2X2xpc3Q7CisK KwkJZm9yIChpID0gMDsgaSA8IGRzX2luZm8tPmRldmljZV9jb3VudDsgaSsrKSB7CisJCQlpZ3Rf aW5mbygiXHRrc3YtJWQ6ICUjMDR4ICUjMDR4ICUjMDR4ICUjMDR4ICUjMDR4XG4iLCBpLAorCQkJ CQlrc3ZzWzBdICYgMHhGRiwga3N2c1sxXSAmIDB4RkYsCisJCQkJCWtzdnNbMl0gJiAweEZGLCBr c3ZzWzNdICYgMHhGRiwKKwkJCQkJa3N2c1s0XSAmIDB4RkYpOworCQkJa3N2cyArPSBEUk1fTU9E RV9IRENQX0tTVl9MRU47CisJCX0KKwl9IGVsc2UgeworCQlpZ3RfaW5mbygiXHRIRENQIHNpbmsg aXMgYSBSZWNlaXZlclxuIik7CisJfQorfQorCitzdGF0aWMgdm9pZCByZXRyaWV2ZV90b3BvbG9n eV9pbmZvX3ByZXBhcmVfc3JtKGlndF9vdXRwdXRfdCAqb3V0cHV0KQoreworCWRybU1vZGVQcm9w ZXJ0eUJsb2JSZXMgKmRzX2luZm9fcHJvcCA9IE5VTEw7CisJdWludDY0X3QgdG9wb2xvZ3lfYmxv Yl9pZDsKKwlzdHJ1Y3QgaGRjcF90b3BvbG9neV9pbmZvICpkc19pbmZvOworCWludCBpOworCisJ aWd0X2luZm8oIkhEQ1AgdG9wb2xvZ3kgcHJvcGVydHkgaXMgYXR0YWNoZWRcbiIpOworCisJdG9w b2xvZ3lfYmxvYl9pZCA9IGlndF9vdXRwdXRfZ2V0X3Byb3Aob3V0cHV0LAorCQkJCUlHVF9DT05O RUNUT1JfSERDUF9UT1BPTE9HWV9JTkZPKTsKKworCWlndF9hc3NlcnRfZih0b3BvbG9neV9ibG9i X2lkLAorCQkJCSJJbnZhbGlkIHRvcG9sb2d5IGJsb2IgaWRcbiIpOworCisJZHNfaW5mb19wcm9w ID0gZHJtTW9kZUdldFByb3BlcnR5QmxvYihkYXRhLmRybV9mZCwKKwkJCQkJCXRvcG9sb2d5X2Js b2JfaWQpOworCisJaWd0X2Fzc2VydChkc19pbmZvX3Byb3ApOworCWlndF9hc3NlcnRfZXEoZHNf aW5mb19wcm9wLT5sZW5ndGgsCisJCQkJc2l6ZW9mKHN0cnVjdCBoZGNwX3RvcG9sb2d5X2luZm8p KTsKKwlkc19pbmZvID0gZHNfaW5mb19wcm9wLT5kYXRhOworCisJcGFyc2VfdG9wb2xvZ3lfaW5m byhkc19pbmZvKTsKKworCWZvciAoaSA9IDA7IGkgPCA1OyBpKyspCisJCWZhY3NpbWlsZV9zcm1b aSArIDldID0gZHNfaW5mby0+YmtzdltpXTsKK30KKwogc3RhdGljIHZvaWQgZmxpcF9oYW5kbGVy KGludCBmZCwgdW5zaWduZWQgaW50IHNlcXVlbmNlLCB1bnNpZ25lZCBpbnQgdHZfc2VjLAogCQkJ IHVuc2lnbmVkIGludCB0dl91c2VjLCB2b2lkICpfZGF0YSkKIHsKQEAgLTM1NSw3ICs0NjcsNyBA QCBzdGF0aWMgdm9pZCB0ZXN0X2NwX2Rpc2FibGUoaWd0X291dHB1dF90ICpvdXRwdXQsIGVudW0g aWd0X2NvbW1pdF9zdHlsZSBzKQogc3RhdGljIHZvaWQgdGVzdF9jcF9lbmFibGVfd2l0aF9yZXRy eShpZ3Rfb3V0cHV0X3QgKm91dHB1dCwKIAkJCQkgICAgICBlbnVtIGlndF9jb21taXRfc3R5bGUg cywgaW50IHJldHJ5LAogCQkJCSAgICAgIGludCBjb250ZW50X3R5cGUsIGJvb2wgZXhwZWN0X2Zh aWx1cmUsCi0JCQkJICAgICAgYm9vbCB0ZXN0X3R5cGVfY2hhbmdlKQorCQkJCSAgICAgIGJvb2wg dGVzdF90eXBlX2NoYW5nZSwgYm9vbCB0ZXN0X3NybSkKIHsKIAlpbnQgcmV0cnlfb3JpZyA9IHJl dHJ5OwogCWJvb2wgcmV0OwpAQCAtMzc2LDYgKzQ4OCw5IEBAIHN0YXRpYyB2b2lkIHRlc3RfY3Bf ZW5hYmxlX3dpdGhfcmV0cnkoaWd0X291dHB1dF90ICpvdXRwdXQsCiAJaWYgKGV4cGVjdF9mYWls dXJlKQogCQlpZ3RfYXNzZXJ0X2YoIXJldCwKIAkJCSAgICAgIkNQIEVuYWJsZWQuIFRob3VnaCBp dCBpcyBleHBlY3RlZCB0byBmYWlsXG4iKTsKKwllbHNlIGlmICh0ZXN0X3NybSkKKwkJaWd0X2Fz c2VydF9mKCFyZXQsCisJCQkgICAgICJDUCBFbmFibGVkLiBUaG91Z2ggSUQgaXMgcmV2b2tlZCB0 aHJvdWdoIFNSTVxuIik7CiAJZWxzZQogCQlpZ3RfYXNzZXJ0X2YocmV0LCAiQ29udGVudCBQcm90 ZWN0aW9uIG5vdCBlbmFibGVkXG4iKTsKIH0KQEAgLTQwMCwxNSArNTE1LDM3IEBAIHN0YXRpYyB2 b2lkIHRlc3RfY3BfbGljKGlndF9vdXRwdXRfdCAqb3V0cHV0KQogCWlndF9hc3NlcnRfZighcmV0 LCAiQ29udGVudCBQcm90ZWN0aW9uIExJQyBGYWlsZWRcbiIpOwogfQogCitzdGF0aWMgYm9vbCB3 cml0ZV9zcm1fYXNfZncoY29uc3QgX191OCAqc3JtLCBpbnQgbGVuKQoreworCWludCBmZCwgcmV0 LCB0b3RhbCA9IDA7CisKKwlmZCA9IG9wZW4oIi9saWIvZmlybXdhcmUvZGlzcGxheV9oZGNwX3Ny bS5iaW4iLCBPX1dST05MWSB8IE9fQ1JFQVQpOworCWRvIHsKKwkJcmV0ID0gd3JpdGUoZmQsIHNy bSArIHRvdGFsLCBsZW4gLSB0b3RhbCk7CisJCWlmIChyZXQgPCAwKQorCQkJcmV0ID0gLWVycm5v OworCQlpZiAocmV0ID09IC1FSU5UUiB8fCByZXQgPT0gLUVBR0FJTikKKwkJCWNvbnRpbnVlOwor CQlpZiAocmV0IDw9IDApCisJCQlicmVhazsKKwkJdG90YWwgKz0gcmV0OworCX0gd2hpbGUgKHRv dGFsICE9IGxlbik7CisJY2xvc2UoZmQpOworCisJcmV0dXJuIHRvdGFsIDwgbGVuID8gZmFsc2Ug OiB0cnVlOworfQorCiBzdGF0aWMgdm9pZAogdGVzdF9jb250ZW50X3Byb3RlY3Rpb25fb25fb3V0 cHV0KGlndF9vdXRwdXRfdCAqb3V0cHV0LCBlbnVtIGlndF9jb21taXRfc3R5bGUgcywKIAkJCQkg IGJvb2wgZHBtc190ZXN0LCBpbnQgY29udGVudF90eXBlLAotCQkJCSAgYm9vbCBtZWlfcmVsb2Fk X3Rlc3QsIGJvb2wgdGVzdF90eXBlX2NoYW5nZSkKKwkJCQkgIGJvb2wgbWVpX3JlbG9hZF90ZXN0 LCBib29sIHRlc3RfdHlwZV9jaGFuZ2UsCisJCQkJICBib29sIHRlc3Rfc3JtKQogewogCWlndF9k aXNwbGF5X3QgKmRpc3BsYXkgPSAmZGF0YS5kaXNwbGF5OwogCWlndF9wbGFuZV90ICpwcmltYXJ5 OwogCWVudW0gcGlwZSBwaXBlOwotCWJvb2wgcmV0OworCWJvb2wgcmV0LCBzcm1fbW9kaWZpZWQg PSBmYWxzZTsKKwlpbnQgaTsKIAogCWZvcl9lYWNoX3BpcGUoZGlzcGxheSwgcGlwZSkgewogCQlp ZiAoIWlndF9waXBlX2Nvbm5lY3Rvcl92YWxpZChwaXBlLCBvdXRwdXQpKQpAQCAtNDIzLDEzICs1 NjAsMTUgQEAgdGVzdF9jb250ZW50X3Byb3RlY3Rpb25fb25fb3V0cHV0KGlndF9vdXRwdXRfdCAq b3V0cHV0LCBlbnVtIGlndF9jb21taXRfc3R5bGUgcywKIAkJaWYgKCFpZ3RfcGlwZV9pc19mcmVl KGRpc3BsYXksIHBpcGUpKQogCQkJY29udGludWU7CiAKKwkJc3JtX21vZGlmaWVkID0gZmFsc2U7 CiAJCW1vZGVzZXRfd2l0aF9mYihwaXBlLCBvdXRwdXQsIHMpOwogCQl0ZXN0X2NwX2VuYWJsZV93 aXRoX3JldHJ5KG91dHB1dCwgcywgMywgY29udGVudF90eXBlLCBmYWxzZSwKLQkJCQkJICBmYWxz ZSk7CisJCQkJCSAgZmFsc2UsIGZhbHNlKTsKKwogCQlpZiAodGVzdF90eXBlX2NoYW5nZSAmJiBj b250ZW50X3R5cGUgPT0gSERDUF9DT05URU5UX1RZUEVfMSkKIAkJCXRlc3RfY3BfZW5hYmxlX3dp dGhfcmV0cnkob3V0cHV0LCBzLCAzLAogCQkJCQkJICBIRENQX0NPTlRFTlRfVFlQRV8wLCBmYWxz ZSwKLQkJCQkJCSAgdGVzdF90eXBlX2NoYW5nZSk7CisJCQkJCQkgIHRlc3RfdHlwZV9jaGFuZ2Us IGZhbHNlKTsKIAogCQlpZiAobWVpX3JlbG9hZF90ZXN0KSB7CiAJCQlpZ3RfYXNzZXJ0X2YoIWln dF9rbW9kX3VubG9hZCgibWVpX2hkY3AiLCAwKSwKQEAgLTQzNywxOCArNTc2LDQ3IEBAIHRlc3Rf Y29udGVudF9wcm90ZWN0aW9uX29uX291dHB1dChpZ3Rfb3V0cHV0X3QgKm91dHB1dCwgZW51bSBp Z3RfY29tbWl0X3N0eWxlIHMsCiAKIAkJCS8qIEV4cGVjdGVkIHRvIGZhaWwgKi8KIAkJCXRlc3Rf Y3BfZW5hYmxlX3dpdGhfcmV0cnkob3V0cHV0LCBzLCAzLAotCQkJCQkJICBjb250ZW50X3R5cGUs IHRydWUsIGZhbHNlKTsKKwkJCQkJCSAgY29udGVudF90eXBlLCB0cnVlLCBmYWxzZSwKKwkJCQkJ CSAgZmFsc2UpOwogCiAJCQlpZ3RfYXNzZXJ0X2YoIWlndF9rbW9kX2xvYWQoIm1laV9oZGNwIiwg TlVMTCksCiAJCQkJICAgICAibWVpX2hkY3AgbG9hZCBmYWlsZWQiKTsKIAogCQkJLyogRXhwZWN0 ZWQgdG8gcGFzcyAqLwogCQkJdGVzdF9jcF9lbmFibGVfd2l0aF9yZXRyeShvdXRwdXQsIHMsIDMs Ci0JCQkJCQkgIGNvbnRlbnRfdHlwZSwgZmFsc2UsIGZhbHNlKTsKKwkJCQkJCSAgY29udGVudF90 eXBlLCBmYWxzZSwgZmFsc2UsCisJCQkJCQkgIGZhbHNlKTsKIAkJfQogCiAJCXRlc3RfY3BfbGlj KG91dHB1dCk7CiAKKwkJaWYgKG91dHB1dC0+cHJvcHNbSUdUX0NPTk5FQ1RPUl9IRENQX1RPUE9M T0dZX0lORk9dICYmCisJCSAgICB0ZXN0X3NybSkgeworCQkJcmV0cmlldmVfdG9wb2xvZ3lfaW5m b19wcmVwYXJlX3NybShvdXRwdXQpOworCQkJc3JtX21vZGlmaWVkID0KKwkJCQl3cml0ZV9zcm1f YXNfZncoKGNvbnN0IF9fdTggKilmYWNzaW1pbGVfc3JtLAorCQkJCQkJc2l6ZW9mKGZhY3NpbWls ZV9zcm0pKTsKKwkJCWlndF9hc3NlcnRfZihzcm1fbW9kaWZpZWQsICJTUk0gdXBkYXRlIGZhaWxl ZCIpOworCQl9CisKKwkJaWYgKHRlc3Rfc3JtICYmIHNybV9tb2RpZmllZCkgeworCQkJdGVzdF9j cF9kaXNhYmxlKG91dHB1dCwgcyk7CisJCQl0ZXN0X2NwX2VuYWJsZV93aXRoX3JldHJ5KG91dHB1 dCwgcywgMywgY29udGVudF90eXBlLAorCQkJCQkJICBmYWxzZSwgZmFsc2UsIHRlc3Rfc3JtKTsK KworCQkJLyogUmVtb3ZpbmcgdGhlIHNpbmsncyBSZWNlaXZlciBJRCBmcm9tIFNSTSBCbG9iICov CisJCQlmb3IgKGkgPSAwOyBpIDwgNTsgaSsrKQorCQkJCWZhY3NpbWlsZV9zcm1baSArIDldID0g MDsKKworCQkJc3JtX21vZGlmaWVkID0KKwkJCQl3cml0ZV9zcm1fYXNfZncoKGNvbnN0IF9fdTgg KilmYWNzaW1pbGVfc3JtLAorCQkJCQkJc2l6ZW9mKGZhY3NpbWlsZV9zcm0pKTsKKwkJCWlndF9h c3NlcnRfZihzcm1fbW9kaWZpZWQsICJTUk0gdXBkYXRlIGZhaWxlZCIpOworCisJCQl0ZXN0X2Nw X2VuYWJsZV93aXRoX3JldHJ5KG91dHB1dCwgcywgMSwgY29udGVudF90eXBlLAorCQkJCQkJICBm YWxzZSwgZmFsc2UsIGZhbHNlKTsKKwkJfQorCiAJCWlmIChkcG1zX3Rlc3QpIHsKIAkJCWlndF9w aXBlX3NldF9wcm9wX3ZhbHVlKGRpc3BsYXksIHBpcGUsCiAJCQkJCQlJR1RfQ1JUQ19BQ1RJVkUs IDApOwpAQCAtNDYzLDcgKzYzMSw3IEBAIHRlc3RfY29udGVudF9wcm90ZWN0aW9uX29uX291dHB1 dChpZ3Rfb3V0cHV0X3QgKm91dHB1dCwgZW51bSBpZ3RfY29tbWl0X3N0eWxlIHMsCiAJCQlpZiAo IXJldCkKIAkJCQl0ZXN0X2NwX2VuYWJsZV93aXRoX3JldHJ5KG91dHB1dCwgcywgMiwKIAkJCQkJ CQkgIGNvbnRlbnRfdHlwZSwgZmFsc2UsCi0JCQkJCQkJICBmYWxzZSk7CisJCQkJCQkJICBmYWxz ZSwgZmFsc2UpOwogCQl9CiAKIAkJdGVzdF9jcF9kaXNhYmxlKG91dHB1dCwgcyk7CkBAIC01Mjks NyArNjk3LDcgQEAgc3RhdGljIGJvb2wgc2lua19oZGNwMl9jYXBhYmxlKGlndF9vdXRwdXRfdCAq b3V0cHV0KQogc3RhdGljIHZvaWQKIHRlc3RfY29udGVudF9wcm90ZWN0aW9uKGVudW0gaWd0X2Nv bW1pdF9zdHlsZSBzLCBib29sIGRwbXNfdGVzdCwKIAkJCWludCBjb250ZW50X3R5cGUsIGJvb2wg bWVpX3JlbG9hZF90ZXN0LAotCQkJYm9vbCB0ZXN0X3R5cGVfY2hhbmdlKQorCQkJYm9vbCB0ZXN0 X3R5cGVfY2hhbmdlLCBib29sIHRlc3Rfc3JtKQogewogCWlndF9kaXNwbGF5X3QgKmRpc3BsYXkg PSAmZGF0YS5kaXNwbGF5OwogCWlndF9vdXRwdXRfdCAqb3V0cHV0OwpAQCAtNTYwLDkgKzcyOCw4 IEBAIHRlc3RfY29udGVudF9wcm90ZWN0aW9uKGVudW0gaWd0X2NvbW1pdF9zdHlsZSBzLCBib29s IGRwbXNfdGVzdCwKIAkJfQogCiAJCXRlc3RfY29udGVudF9wcm90ZWN0aW9uX29uX291dHB1dChv dXRwdXQsIHMsIGRwbXNfdGVzdCwKLQkJCQkJCSAgY29udGVudF90eXBlLAotCQkJCQkJICBtZWlf cmVsb2FkX3Rlc3QsCi0JCQkJCQkgIHRlc3RfdHlwZV9jaGFuZ2UpOworCQkJCQkJICBjb250ZW50 X3R5cGUsIG1laV9yZWxvYWRfdGVzdCwKKwkJCQkJCSAgdGVzdF90eXBlX2NoYW5nZSwgdGVzdF9z cm0pOwogCQl2YWxpZF90ZXN0cysrOwogCX0KIApAQCAtNTgyLDMzICs3NDksMzMgQEAgaWd0X21h aW4KIAlpZ3Rfc3VidGVzdCgibGVnYWN5IikKIAkJdGVzdF9jb250ZW50X3Byb3RlY3Rpb24oQ09N TUlUX0xFR0FDWSwgZmFsc2UsCiAJCQkJCUhEQ1BfQ09OVEVOVF9UWVBFXzAsIGZhbHNlLAotCQkJ CQlmYWxzZSk7CisJCQkJCWZhbHNlLCBmYWxzZSk7CiAKIAlpZ3Rfc3VidGVzdCgiYXRvbWljIikg ewogCQlpZ3RfcmVxdWlyZShkYXRhLmRpc3BsYXkuaXNfYXRvbWljKTsKIAkJdGVzdF9jb250ZW50 X3Byb3RlY3Rpb24oQ09NTUlUX0FUT01JQywgZmFsc2UsCi0JCQkJCUhEQ1BfQ09OVEVOVF9UWVBF XzAsIGZhbHNlLAorCQkJCQlIRENQX0NPTlRFTlRfVFlQRV8wLCBmYWxzZSwgZmFsc2UsCiAJCQkJ CWZhbHNlKTsKIAl9CiAKIAlpZ3Rfc3VidGVzdCgiYXRvbWljLWRwbXMiKSB7CiAJCWlndF9yZXF1 aXJlKGRhdGEuZGlzcGxheS5pc19hdG9taWMpOwogCQl0ZXN0X2NvbnRlbnRfcHJvdGVjdGlvbihD T01NSVRfQVRPTUlDLCB0cnVlLAotCQkJCQlIRENQX0NPTlRFTlRfVFlQRV8wLCBmYWxzZSwKKwkJ CQkJSERDUF9DT05URU5UX1RZUEVfMCwgZmFsc2UsIGZhbHNlLAogCQkJCQlmYWxzZSk7CiAJfQog CiAJaWd0X3N1YnRlc3QoInR5cGUxIikgewogCQlpZ3RfcmVxdWlyZShkYXRhLmRpc3BsYXkuaXNf YXRvbWljKTsKIAkJdGVzdF9jb250ZW50X3Byb3RlY3Rpb24oQ09NTUlUX0FUT01JQywgZmFsc2Us Ci0JCQkJCUhEQ1BfQ09OVEVOVF9UWVBFXzEsIGZhbHNlLAorCQkJCQlIRENQX0NPTlRFTlRfVFlQ RV8xLCBmYWxzZSwgZmFsc2UsCiAJCQkJCWZhbHNlKTsKIAl9CiAKIAlpZ3Rfc3VidGVzdCgidHlw ZTFfbWVpX2ludGVyZmFjZSIpIHsKIAkJaWd0X3JlcXVpcmUoZGF0YS5kaXNwbGF5LmlzX2F0b21p Yyk7CiAJCXRlc3RfY29udGVudF9wcm90ZWN0aW9uKENPTU1JVF9BVE9NSUMsIGZhbHNlLAotCQkJ CQlIRENQX0NPTlRFTlRfVFlQRV8xLCB0cnVlLAorCQkJCQlIRENQX0NPTlRFTlRfVFlQRV8xLCB0 cnVlLCBmYWxzZSwKIAkJCQkJZmFsc2UpOwogCX0KIApAQCAtNjE2LDkgKzc4MywzNiBAQCBpZ3Rf bWFpbgogCQlpZ3RfcmVxdWlyZShkYXRhLmRpc3BsYXkuaXNfYXRvbWljKTsKIAkJdGVzdF9jb250 ZW50X3Byb3RlY3Rpb24oQ09NTUlUX0FUT01JQywgZmFsc2UsCiAJCQkJCUhEQ1BfQ09OVEVOVF9U WVBFXzEsIGZhbHNlLAotCQkJCQl0cnVlKTsKKwkJCQkJdHJ1ZSwgZmFsc2UpOwogCX0KIAorCS8q CisJICogU1JNIHN1YnRlc3QgcGVyZm9ybSB0aGUgSERDUCBhdXRoZW50aWNhdGlvbiwgYW5kIHRo ZW4gcmV0cml2ZSB0aGUKKwkgKiByZWNlaXZlciBpZCB0aHJvdWdoIHRvcG9sb2d5IGluZm8uCisJ ICoKKwkgKiBVc2luZyB0aGUgcmVjZWl2ZXIgSUQsIGZhY3NpbWlsZSBTUk0gdGFibGUgaXMgbW9k aWZpZWQgd2l0aAorCSAqIHJlY2VpdmVyIElEIHJldHJpZXZlZCBmcm9tIHRlaCB0b3BvbG9neSBp bmZvLiBBZnRlciBtb2RpZmljYXRpb24KKwkgKiBTUk0gdGFibGUgaXMgbm90IGludGFjdCBhcyBw ZXIgRENQIFNpZ25hdHVyZS4KKwkgKgorCSAqIEJ1dCBLZXJuZWwgYmVsaWV2ZXMgdXNlcnNwYWNl IGFuZCBkb2Vzbid0IHZlcmlmeSB0aGUgRENQIHNpZ25hdHVyZS4KKwkgKiBTbyB3ZSBjYW4gZXhw bG9pdGUgdGhhdCB0cnVzdCB0byB0ZXN0IHRoZSBTUk0gYW5kIHRvcG9sb2d5IGluZm8KKwkgKiBm ZWF0dXJlcy4KKwkgKgorCSAqIFNvIHdoZW4gbW9kaWZpZWQgU1JNIGlzIGFwcGxpZWQgQXV0aGVu dGljYXRpb24gd2lsbCBmYWlsIGR1ZSB0bworCSAqIHJlY2VpdmVyIElEIHJldm9jYXRpb24uCisJ ICoKKwkgKiBBbmQgS2VybmVsIGF0dGVtcHRzIEhEQ1AyLjIgYWx3YXlzIGFuZCBvbiBmYWlsdXJl IG9mIGl0IEhEQ1AxLjQKKwkgKiB3aWxsIGJlIGF0dGVtcHRlZC4gQnV0IHRoZWlyIElEIG9mIHRo ZSBzaW5rIHZhcmllcyBiZXR3ZWVuIDEuNCBhbmQKKwkgKiAyLjIgdmVyc2lvbnMuIFNvIHdlIG5l ZWQgdG8gc3RpY2sgdG8gb25lIHZlcnNpb24uIEhlbmNlIEhEQ1AyLjIgaXMKKwkgKiBjaG9vc2Vu IHVzaW5nIFR5cGUgMS4KKwkgKi8KKwlpZ3Rfc3VidGVzdCgic3JtIikgeworCQlpZ3RfcmVxdWly ZShkYXRhLmRpc3BsYXkuaXNfYXRvbWljKTsKKwkJdGVzdF9jb250ZW50X3Byb3RlY3Rpb24oQ09N TUlUX0FUT01JQywgZmFsc2UsCisJCQkJCUhEQ1BfQ09OVEVOVF9UWVBFXzEsIGZhbHNlLCBmYWxz ZSwgdHJ1ZSk7CisJfQorCisKIAlpZ3RfZml4dHVyZQogCQlpZ3RfZGlzcGxheV9maW5pKCZkYXRh LmRpc3BsYXkpOwogfQotLSAKMi4xOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2lndC1kZXY=