From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 78E3589B83 for ; Tue, 4 Dec 2018 03:08:43 +0000 (UTC) From: Manasi Navare Date: Mon, 3 Dec 2018 19:10:51 -0800 Message-Id: <20181204031051.29182-1-manasi.d.navare@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v3] test/kms_dp_dsc: Basic KMS test to validate VESA DSC on DP/eDP 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 Cc: Anusha Srivatsa , Petri Latvala , Manasi Navare , Dhinakaran Pandiyan List-ID: VGhpcyBwYXRjaCBhZGRzIGEgYmFzaWMga21zIHRlc3QgdG8gdmFsaWRhdGUgdGhlIGRpc3BsYXkg c3RyZWFtCmNvbXByZXNzaW9uIGZ1bmN0aW9uYWxpdHkgaWYgc3VwcG9ydGVkIG9uIERQL2VEUCBj b25uZWN0b3IuCkN1cnJlbnRseSB0aGlzIGhhcyBvbmx5IHR3byBzdWJ0ZXN0cyB0byBmb3JjZSB0 aGUgRFNDIG9uIGFsbAp0aGUgZURQIGFuZCBEUCBjb25uZWN0b3JzIHRoYXQgc3VwcG9ydCBpdCB3 aXRoIGRlZmF1bHQgcGFyYW1ldGVycy4KVGhpcyB3aWxsIGJlIGV4cGFuZGVkIHRvIGFkZCBtb3Jl IHN1YnRlc3RzIHRvIHR3ZWFrIERTQyBwYXJhbWV0ZXJzLgoKVGhpcyB1c2VzIHRoZSBkZWJ1Z2Zz IG5vZGVzIGFkZGVkIGluIHRoZSBwYXRjaDoKaHR0cHM6Ly9wYXRjaHdvcmsuZnJlZWRlc2t0b3Au b3JnL3Nlcmllcy81MzQ0OS8KCnYzOgoqIFVzZSBhcnJheSBvZiBjb25uZWN0b3JzIGFuZCBsb29w IHRocm91Z2ggKFBldHJpKQoqIEFsc28gY2hlY2sgZm9yIEZFQyBvbiBEUCBjb25uZWN0b3JzIChN YW5hc2kpCiogQWRkIGEgUGlwZV9BIHJlc3RyaWN0aW9uIG9uIERQIChWaWxsZSkKdjI6CiogVXNl IElHVCB3cmFwcGVycyBmb3IgYWxsIChESywgQW50b25pbykKKiBTcGxpdCBpbnRvIHR3byBzdWJ0 ZXN0cyBmb3IgZURQIGFuZCBEUCB0eXBlcyAoUGV0cmkpCgpDYzogUGV0cmkgTGF0dmFsYSA8cGV0 cmkubGF0dmFsYUBpbnRlbC5jb20+CkNjOiBBbnRvbmlvIEFyZ2Vuemlhbm8gPGFudG9uaW8uYXJn ZW56aWFub0BpbnRlbC5jb20+CkNjOiBEaGluYWthcmFuIFBhbmRpeWFuIDxkaGluYWthcmFuLnBh bmRpeWFuQGludGVsLmNvbT4KQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51 eC5pbnRlbC5jb20+CkNjOiBBbnVzaGEgU3JpdmF0c2EgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5j b20+ClNpZ25lZC1vZmYtYnk6IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5j b20+Ci0tLQogdGVzdHMvTWFrZWZpbGUuc291cmNlcyB8ICAgMSArCiB0ZXN0cy9rbXNfZHBfZHNj LmMgICAgIHwgMjYxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiB0 ZXN0cy9tZXNvbi5idWlsZCAgICAgIHwgICAxICsKIDMgZmlsZXMgY2hhbmdlZCwgMjYzIGluc2Vy dGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9rbXNfZHBfZHNjLmMKCmRpZmYgLS1n aXQgYS90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzIGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcwppbmRl eCBkMDA3ZWJjNy4uMmE1YjFjN2YgMTAwNjQ0Ci0tLSBhL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMK KysrIGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcwpAQCAtODgsNiArODgsNyBAQCBURVNUU19wcm9n cyA9IFwKIAlrbXNfdW5pdmVyc2FsX3BsYW5lIFwKIAlrbXNfdmJsYW5rIFwKIAlrbXNfc2VxdWVu Y2UgXAorCWttc19kcF9kc2MgXAogCW1ldGFfdGVzdCBcCiAJcGVyZiBcCiAJcGVyZl9wbXUgXApk aWZmIC0tZ2l0IGEvdGVzdHMva21zX2RwX2RzYy5jIGIvdGVzdHMva21zX2RwX2RzYy5jCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi5kMjcxMGRkZQotLS0gL2Rldi9udWxsCisr KyBiL3Rlc3RzL2ttc19kcF9kc2MuYwpAQCAtMCwwICsxLDI2MSBAQAorLyoKKyAqIENvcHlyaWdo dCDCqSAyMDE4IEludGVsIENvcnBvcmF0aW9uCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkg Z3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNv cHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0 aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3Ry aWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVz ZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwK KyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVy c29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJq ZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJp Z2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0 CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3Rh bnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUg SVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVT UyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFO VElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRI T1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VT IE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNU LCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5F Q1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUworICog SU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIERpc3BsYXlwb3J0IERpc3BsYXkgU3RyZWFtIENvbXBy ZXNzaW9uIHRlc3QKKyAqIFVudGlsIHRoZSBDUkMgc3VwcG9ydCBpcyBhZGRlZCB0aGlzIG5lZWRz IHRvIGJlIGludm9rZWQgd2l0aCAtLWludGVyYWN0aXZlCisgKiB0byBtYW51YWxseSB2ZXJpZnkg aWYgdGhlIHRlc3QgcGF0dGVybiBpcyBzZWVuIHdpdGhvdXQgY29ycnVwdGlvbiBmb3IgZWFjaAor ICogc3VidGVzdC4KKyAqCisgKiBBdXRob3JzOgorICogTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQu bmF2YXJlQGludGVsLmNvbT4KKyAqCisgKi8KKyNpbmNsdWRlICJpZ3QuaCIKKyNpbmNsdWRlICJp Z3Rfc3lzZnMuaCIKKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPGdldG9wdC5oPgorI2lu Y2x1ZGUgPG1hdGguaD4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpbmNsdWRlIDxzdGRib29sLmg+ CisjaW5jbHVkZSA8c3RyaW5ncy5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0 ZGxpYi5oPgorI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPHRpbWUuaD4KKyNpbmNsdWRl IDxmY250bC5oPgorI2luY2x1ZGUgPHRlcm1pb3MuaD4KKworZW51bSBkc2NfdGVzdF90eXBlCit7 CisJdGVzdF9iYXNpY19kc2NfZW5hYmxlCit9OworCit0eXBlZGVmIHN0cnVjdCB7CisJaW50IGRy bV9mZDsKKwlpbnQgZGVidWdmc19mZDsKKwl1aW50MzJfdCBpZDsKKwlpZ3RfZGlzcGxheV90IGRp c3BsYXk7CisJc3RydWN0IGlndF9mYiBmYl90ZXN0X3BhdHRlcm47CisJaWd0X291dHB1dF90ICpv dXRwdXQ7CisJaW50IG1vZGVfdmFsaWQ7CisJZHJtTW9kZU1vZGVJbmZvICptb2RlOworCWRybU1v ZGVDb25uZWN0b3IgKmNvbm5lY3RvcjsKKwlkcm1Nb2RlRW5jb2RlciAqZW5jb2RlcjsKKwlpbnQg Y3J0YzsKKwllbnVtIHBpcGUgcGlwZTsKKwljaGFyIGNvbm5fbmFtZVsxMjhdOworfSBkYXRhX3Q7 CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBtYW51YWwoY29uc3QgY2hhciAqZXhwZWN0ZWQpCit7CisJ aWd0X2RlYnVnX21hbnVhbF9jaGVjaygiYWxsIiwgZXhwZWN0ZWQpOworfQorCitzdGF0aWMgYm9v bCBpc19kcF9kc2Nfc3VwcG9ydGVkKGRhdGFfdCAqZGF0YSkKK3sKKwljaGFyIGZpbGVfbmFtZVsx MjhdID0gezB9OworCWNoYXIgYnVmWzUxMl07CisKKwlzdHJjcHkoZmlsZV9uYW1lLCBkYXRhLT5j b25uX25hbWUpOworCXN0cmNhdChmaWxlX25hbWUsICIvaTkxNV9kc2NfZmVjX3N1cHBvcnQiKTsK KwlpZ3RfcmVxdWlyZShpZ3RfZGVidWdmc19zaW1wbGVfcmVhZChkYXRhLT5kZWJ1Z2ZzX2ZkLCBm aWxlX25hbWUsIGJ1ZiwKKwkJCQkJICAgIHNpemVvZihidWYpKSA+IDApOworCWlndF9kZWJ1Z2Zz X3JlYWQoZGF0YS0+ZHJtX2ZkLCBmaWxlX25hbWUsIGJ1Zik7CisKKwlyZXR1cm4gc3Ryc3RyKGJ1 ZiwgIkRTQ19TaW5rX1N1cHBvcnQ6IHllcyIpOworCit9CisKK3N0YXRpYyBib29sIGlzX2RwX2Zl Y19zdXBwb3J0ZWQoZGF0YV90ICpkYXRhKQoreworCWNoYXIgZmlsZV9uYW1lWzEyOF0gPSB7MH07 CisJY2hhciBidWZbNTEyXTsKKworCXN0cmNweShmaWxlX25hbWUsIGRhdGEtPmNvbm5fbmFtZSk7 CisJc3RyY2F0KGZpbGVfbmFtZSwgIi9pOTE1X2RzY19mZWNfc3VwcG9ydCIpOworCWlndF9kZWJ1 Z2ZzX3JlYWQoZGF0YS0+ZHJtX2ZkLCBmaWxlX25hbWUsIGJ1Zik7CisKKwlyZXR1cm4gc3Ryc3Ry KGJ1ZiwgIkZFQ19TaW5rX1N1cHBvcnQ6IHllcyIpOworCit9CisKK3N0YXRpYyBib29sIGlzX2Rw X2RzY19lbmFibGVkKGRhdGFfdCAqZGF0YSkKK3sKKwljaGFyIGZpbGVfbmFtZVsxMjhdID0gezB9 OworCWNoYXIgYnVmWzUxMl07CisKKwlzdHJjcHkoZmlsZV9uYW1lLCBkYXRhLT5jb25uX25hbWUp OworCXN0cmNhdChmaWxlX25hbWUsICIvaTkxNV9kc2NfZmVjX3N1cHBvcnQiKTsKKwlpZ3RfZGVi dWdmc19yZWFkKGRhdGEtPmRybV9mZCwgZmlsZV9uYW1lLCBidWYpOworCisJcmV0dXJuIHN0cnN0 cihidWYsICJEU0NfRW5hYmxlZDogeWVzIik7CisKK30KKworc3RhdGljIHZvaWQgZm9yY2VfZHBf ZHNjX2VuYWJsZShkYXRhX3QgKmRhdGEpCit7CisJY2hhciBmaWxlX25hbWVbMTI4XSA9IHswfTsK KwlpbnQgcmV0OworCisJc3RyY3B5KGZpbGVfbmFtZSwgZGF0YS0+Y29ubl9uYW1lKTsKKwlzdHJj YXQoZmlsZV9uYW1lLCAiL2k5MTVfZHNjX2ZlY19zdXBwb3J0Iik7CisJaWd0X2RlYnVnICgiRm9y Y2luZyBEU0MgZW5hYmxlIG9uICVzXG4iLCBkYXRhLT5jb25uX25hbWUpOworCXJldCA9IGlndF9z eXNmc193cml0ZShkYXRhLT5kZWJ1Z2ZzX2ZkLCBmaWxlX25hbWUsICIxIiwgMSk7CisJaWd0X2Fz c2VydF9mKHJldCA+IDAsICJkZWJ1Z2ZzX3dyaXRlIGZhaWxlZCIpOworfQorCitzdGF0aWMgdm9p ZCBjbGVhcl9kcF9kc2NfZW5hYmxlKGRhdGFfdCAqZGF0YSkKK3sKKwljaGFyIGZpbGVfbmFtZVsx MjhdID0gezB9OworCWludCByZXQ7CisKKwlzdHJjcHkoZmlsZV9uYW1lLCBkYXRhLT5jb25uX25h bWUpOworCXN0cmNhdChmaWxlX25hbWUsICIvaTkxNV9kc2NfZmVjX3N1cHBvcnQiKTsKKwlpZ3Rf ZGVidWcgKCJDbGVhcmluZyBEU0MgZW5hYmxlIG9uICVzXG4iLCBkYXRhLT5jb25uX25hbWUpOwor CXJldCA9IGlndF9zeXNmc193cml0ZShkYXRhLT5kZWJ1Z2ZzX2ZkLCBmaWxlX25hbWUsICIwIiwg MSk7CisJaWd0X2Fzc2VydF9mKHJldCA+IDAsICJkZWJ1Z2ZzX3dyaXRlIGZhaWxlZCIpOworfQor CitzdGF0aWMgdm9pZCB0ZXN0X2NsZWFudXAoZGF0YV90ICpkYXRhKSB7CisJaWd0X3BsYW5lX3Qg KnByaW1hcnk7CisKKwlwcmltYXJ5ID0gaWd0X291dHB1dF9nZXRfcGxhbmVfdHlwZShkYXRhLT5v dXRwdXQsCisJCQkJCSAgICBEUk1fUExBTkVfVFlQRV9QUklNQVJZKTsKKwlpZ3RfcGxhbmVfc2V0 X2ZiKHByaW1hcnksIE5VTEwpOworCWlndF9kaXNwbGF5X2NvbW1pdCgmZGF0YS0+ZGlzcGxheSk7 CisKKwlpZ3RfcmVtb3ZlX2ZiKGRhdGEtPmRybV9mZCwgJmRhdGEtPmZiX3Rlc3RfcGF0dGVybik7 Cit9CisKKworLyoKKyAqIFJlLXByb2JlIGNvbm5lY3RvcnMgYW5kIGRvIGEgbW9kZXNldCB3aXRo IERTQworICoKKyAqLworc3RhdGljIHZvaWQgdXBkYXRlX2Rpc3BsYXkoZGF0YV90ICpkYXRhLCBl bnVtIGRzY190ZXN0X3R5cGUgdGVzdF90eXBlKQoreworCWlndF9wbGFuZV90ICpwcmltYXJ5Owor CWRhdGEtPm1vZGUgPSBpZ3Rfb3V0cHV0X2dldF9tb2RlKGRhdGEtPm91dHB1dCk7CisJZGF0YS0+ Y29ubmVjdG9yID0gZGF0YS0+b3V0cHV0LT5jb25maWcuY29ubmVjdG9yOworCisJaWYgKGRhdGEt PmNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUgPT0gRFJNX01PREVfQ09OTkVDVE9SX0Rpc3BsYXlQ b3J0ICYmCisJICAgIGRhdGEtPnBpcGUgPT0gUElQRV9BKSB7CisJCWlndF9kZWJ1ZyAoIkRTQyBu b3Qgc3VwcG9ydGVkIG9uIFBpcGUgQSBvbiBleHRlcm5hbCBEUFxuIik7CisJCXJldHVybjsKKwl9 CisKKwlpZiAodGVzdF90eXBlID09IHRlc3RfYmFzaWNfZHNjX2VuYWJsZSkgeworCQlpZ3RfZGVi dWcgKCJEU0MgaXMgc3VwcG9ydGVkIG9uICVzXG4iLAorCQkJICAgZGF0YS0+Y29ubl9uYW1lKTsK KwkJZm9yY2VfZHBfZHNjX2VuYWJsZShkYXRhKTsKKwkJaWd0X2NyZWF0ZV9wYXR0ZXJuX2ZiKGRh dGEtPmRybV9mZCwgZGF0YS0+bW9kZS0+aGRpc3BsYXksCisJCQkJICAgICAgZGF0YS0+bW9kZS0+ dmRpc3BsYXksCisJCQkJICAgICAgRFJNX0ZPUk1BVF9YUkdCODg4OCwKKwkJCQkgICAgICBMT0NB TF9EUk1fRk9STUFUX01PRF9OT05FLAorCQkJCSAgICAgICZkYXRhLT5mYl90ZXN0X3BhdHRlcm4p OworCQlwcmltYXJ5ID0gaWd0X291dHB1dF9nZXRfcGxhbmVfdHlwZShkYXRhLT5vdXRwdXQsCisJ CQkJCQkgICAgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSk7CisJCWlndF9wbGFuZV9zZXRfZmIocHJp bWFyeSwgJmRhdGEtPmZiX3Rlc3RfcGF0dGVybik7CisJCWlndF9kaXNwbGF5X2NvbW1pdCgmZGF0 YS0+ZGlzcGxheSk7CisJCS8qIFVudGlsIHdlIGhhdmUgQ1JDIGNoZWNrIHN1cHBvcnQsIG1hbnVh bGx5IGNoZWNrIGlmIFJHQiB0ZXN0IHBhdHRlcm4gaGFzIG5vIGNvcnJ1cHRpb24gKi8KKwkJbWFu dWFsICgiUkdCIHRlc3QgcGF0dGVybiB3aXRob3V0IGNvcnJ1cHRpb24iKTsKKwkJaWd0X2Fzc2Vy dF9mKGlzX2RwX2RzY19lbmFibGVkKGRhdGEpLAorCQkJICAgICAiRGVmYXVsdCBEU0MgZW5hYmxl IGZhaWxlZCBvbiBDb25uZWN0b3I6ICVzIFBpcGU6ICVzIiwKKwkJCSAgICAgZGF0YS0+Y29ubl9u YW1lLAorCQkJICAgICBrbXN0ZXN0X3BpcGVfbmFtZShkYXRhLT5waXBlKSk7CisJCWNsZWFyX2Rw X2RzY19lbmFibGUoZGF0YSk7CisJfQorCit9CisKK3N0YXRpYyB2b2lkIHJ1bl90ZXN0KGRhdGFf dCAqZGF0YSwgaWd0X291dHB1dF90ICpvdXRwdXQsCisJCSAgICAgZW51bSBkc2NfdGVzdF90eXBl IHRlc3RfdHlwZSkKK3sKKwllbnVtIHBpcGUgcGlwZTsKKworCWZvcl9lYWNoX3BpcGVfd2l0aF92 YWxpZF9vdXRwdXQoJmRhdGEtPmRpc3BsYXksIHBpcGUsIG91dHB1dCkgeworCQlpZ3Rfb3V0cHV0 X3NldF9waXBlKG91dHB1dCwgcGlwZSk7CisJCWRhdGEtPnBpcGUgPSBwaXBlOworCQlkYXRhLT5v dXRwdXQgPSBvdXRwdXQ7CisJCXVwZGF0ZV9kaXNwbGF5KGRhdGEsIHRlc3RfYmFzaWNfZHNjX2Vu YWJsZSk7CisJfQorfQorCitpZ3RfbWFpbgoreworCWRhdGFfdCBkYXRhID0ge307CisJaWd0X291 dHB1dF90ICpvdXRwdXQ7CisJZHJtTW9kZVJlcyAqcmVzOworCWRybU1vZGVDb25uZWN0b3IgKmNv bm5lY3RvcjsKKwlpbnQgaSwgdGVzdF9jb25uX2NudCwgdGVzdF9jbnQ7CisJaW50IHRlc3RzW10g PSB7RFJNX01PREVfQ09OTkVDVE9SX2VEUCwgRFJNX01PREVfQ09OTkVDVE9SX0Rpc3BsYXlQb3J0 fTsKKworCWlndF9maXh0dXJlIHsKKwkJaWd0X3NraXBfb25fc2ltdWxhdGlvbigpOworCQlkYXRh LmRybV9mZCA9IGRybV9vcGVuX2RyaXZlcl9tYXN0ZXIoRFJJVkVSX0FOWSk7CisJCWRhdGEuZGVi dWdmc19mZCA9IGlndF9kZWJ1Z2ZzX2RpcihkYXRhLmRybV9mZCk7CisJCWttc3Rlc3Rfc2V0X3Z0 X2dyYXBoaWNzX21vZGUoKTsKKwkJaWd0X2Rpc3BsYXlfaW5pdCgmZGF0YS5kaXNwbGF5LCBkYXRh LmRybV9mZCk7CisJCWlndF9kaXNwbGF5X3JlcXVpcmVfb3V0cHV0KCZkYXRhLmRpc3BsYXkpOwor CQlpZ3RfcmVxdWlyZShyZXMgPSBkcm1Nb2RlR2V0UmVzb3VyY2VzKGRhdGEuZHJtX2ZkKSk7CisJ fQorCisJZm9yICh0ZXN0X2NudCA9IDA7IHRlc3RfY250IDwgQVJSQVlfU0laRSh0ZXN0cyk7IHRl c3RfY250KyspIHsKKworCQlpZ3Rfc3VidGVzdF9mKCJiYXNpYy1kc2MtZW5hYmxlLSVzIiwKKwkJ CSAgICAgIGttc3Rlc3RfY29ubmVjdG9yX3R5cGVfc3RyKHRlc3RzW3Rlc3RfY250XSkpIHsKKwkJ CXRlc3RfY29ubl9jbnQgPSAwOworCQkJZm9yIChpID0gMDsgaSA8IHJlcy0+Y291bnRfY29ubmVj dG9yczsgaSsrKSB7CisJCQkJY29ubmVjdG9yID0gZHJtTW9kZUdldENvbm5lY3RvckN1cnJlbnQo ZGF0YS5kcm1fZmQsCisJCQkJCQkJCSAgICAgICByZXMtPmNvbm5lY3RvcnNbaV0pOworCQkJCWlm IChjb25uZWN0b3ItPmNvbm5lY3Rpb24gIT0gRFJNX01PREVfQ09OTkVDVEVEIHx8CisJCQkJICAg IGNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUgIT0KKwkJCQkgICAgdGVzdHNbdGVzdF9jbnRdKQor CQkJCQljb250aW51ZTsKKwkJCQl0ZXN0X2Nvbm5fY250Kys7CisJCQkJb3V0cHV0ID0gaWd0X291 dHB1dF9mcm9tX2Nvbm5lY3RvcigmZGF0YS5kaXNwbGF5LCBjb25uZWN0b3IpOworCQkJCXNwcmlu dGYoZGF0YS5jb25uX25hbWUsICIlcy0lZCIsCisJCQkJCWttc3Rlc3RfY29ubmVjdG9yX3R5cGVf c3RyKGNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUpLAorCQkJCQl0ZXN0X2Nvbm5fY250KTsKKwkJ CQlpZ3RfcmVxdWlyZV9mKGlzX2RwX2RzY19zdXBwb3J0ZWQoJmRhdGEpLAorCQkJCQkgICAgICAi RFNDIG5vdCBzdXBwb3J0ZWQgb24gY29ubmVjdG9yICVzIFxuIiwKKwkJCQkJICAgICAgZGF0YS5j b25uX25hbWUpOworCQkJCWlmIChjb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBlID09IERSTV9NT0RF X0NPTk5FQ1RPUl9EaXNwbGF5UG9ydCkKKwkJCQkJaWd0X3JlcXVpcmVfZihpc19kcF9mZWNfc3Vw cG9ydGVkKCZkYXRhKSwKKwkJCQkJCSAgICAgICJEU0MgY2Fubm90IGJlIGVuYWJsZWQgd2l0aG91 dCBGRUMgb24gJXNcbiIsCisJCQkJCQkgICAgICBkYXRhLmNvbm5fbmFtZSk7CisJCQkJcnVuX3Rl c3QoJmRhdGEsIG91dHB1dCwgdGVzdF9iYXNpY19kc2NfZW5hYmxlKTsKKwkJCX0KKwkJCXRlc3Rf Y2xlYW51cCgmZGF0YSk7CisJCQlpZ3Rfc2tpcF9vbih0ZXN0X2Nvbm5fY250ID09IDApOworCQl9 CisJfQorCisJaWd0X2ZpeHR1cmUgeworCQlkcm1Nb2RlRnJlZUNvbm5lY3Rvcihjb25uZWN0b3Ip OworCQlkcm1Nb2RlRnJlZVJlc291cmNlcyhyZXMpOworCQljbG9zZShkYXRhLmRlYnVnZnNfZmQp OworCQljbG9zZShkYXRhLmRybV9mZCk7CisJCWlndF9kaXNwbGF5X2ZpbmkoJmRhdGEuZGlzcGxh eSk7CisJfQorCWlndF9leGl0KCk7Cit9CmRpZmYgLS1naXQgYS90ZXN0cy9tZXNvbi5idWlsZCBi L3Rlc3RzL21lc29uLmJ1aWxkCmluZGV4IDMwMjBmNzk4Li5kZGU0MjcwYyAxMDA2NDQKLS0tIGEv dGVzdHMvbWVzb24uYnVpbGQKKysrIGIvdGVzdHMvbWVzb24uYnVpbGQKQEAgLTMyLDYgKzMyLDcg QEAgdGVzdF9wcm9ncyA9IFsKIAkna21zX2N1cnNvcl9jcmMnLAogCSdrbXNfY3Vyc29yX2xlZ2Fj eScsCiAJJ2ttc19kcmF3X2NyYycsCisJJ2ttc19kcF9kc2MnLAogCSdrbXNfZmJjb25fZmJ0JywK IAkna21zX2ZlbmNlX3Bpbl9sZWFrJywKIAkna21zX2ZsaXAnLAotLSAKMi4xOS4xCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcg bGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXYK