From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id D8C556EEFE for ; Thu, 22 Feb 2018 17:29:34 +0000 (UTC) From: Lionel Landwerlin Date: Thu, 22 Feb 2018 17:29:28 +0000 Message-Id: <20180222172928.12244-2-lionel.g.landwerlin@intel.com> In-Reply-To: <20180222172928.12244-1-lionel.g.landwerlin@intel.com> References: <20180222172928.12244-1-lionel.g.landwerlin@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 2/2] tests: add i915 query tests 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 List-ID: djI6IENvbXBsZXRlIGludmFsaWQgY2FzZXMgKENocmlzKQogICAgU29tZSBzdHlsaW5nICh0b191 c2VyX3BvaW50ZXIsIGV0Yy4uLikgKENocmlzKQogICAgTmV3IGVycm9yIGNoZWNrLCB0aHJvdWdo IGl0ZW0ubGVuZ3RoIChDaHJpcykKCnYzOiBVcGRhdGUgZm9yIG5ldyB1QVBJIGl0ZXJhdGlvbiAo TGlvbmVsKQoKdjQ6IFJldHVybiBlcnJubyBmcm9tIGEgc2luZ2xlIHBvaW50IChDaHJpcykKICAg IFBvaXNpbmcgY2hlY2tzIChDaHJpcykKCnY1OiBBZGQgbW9yZSBkZWJ1ZyB0cmFjZXMgKExpb25l bCkKICAgIFVwZGF0ZSB1QVBJIChKb29uYXMvTGlvbmVsKQogICAgTWFrZSBzdXJlIEhhc3dlbGwg aXMgdGVzdGVkIChMaW9uZWwpCgpTaWduZWQtb2ZmLWJ5OiBMaW9uZWwgTGFuZHdlcmxpbiA8bGlv bmVsLmcubGFuZHdlcmxpbkBpbnRlbC5jb20+Ci0tLQogdGVzdHMvTWFrZWZpbGUuc291cmNlcyB8 ICAgMSArCiB0ZXN0cy9pOTE1X3F1ZXJ5LmMgICAgIHwgMzE0ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHRlc3RzL21lc29uLmJ1aWxkICAgICAgfCAg IDEgKwogMyBmaWxlcyBjaGFuZ2VkLCAzMTYgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAw NjQ0IHRlc3RzL2k5MTVfcXVlcnkuYwoKZGlmZiAtLWdpdCBhL3Rlc3RzL01ha2VmaWxlLnNvdXJj ZXMgYi90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCmluZGV4IGIyNzdkZTJmLi5mYTFiYzY5ZSAxMDA2 NDQKLS0tIGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcworKysgYi90ZXN0cy9NYWtlZmlsZS5zb3Vy Y2VzCkBAIC0xNjcsNiArMTY3LDcgQEAgVEVTVFNfcHJvZ3MgPSBcCiAJZ2VuM19yZW5kZXJfdGls ZWR5X2JsaXRzIFwKIAlnZW43X2ZvcmNld2FrZV9tdCBcCiAJZ3Z0X2Jhc2ljIFwKKwlpOTE1X3F1 ZXJ5IFwKIAlrbXNfM2QgXAogCWttc19hZGRmYl9iYXNpYyBcCiAJa21zX2F0b21pYyBcCmRpZmYg LS1naXQgYS90ZXN0cy9pOTE1X3F1ZXJ5LmMgYi90ZXN0cy9pOTE1X3F1ZXJ5LmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLjIxNjIxYjc4Ci0tLSAvZGV2L251bGwKKysrIGIv dGVzdHMvaTkxNV9xdWVyeS5jCkBAIC0wLDAgKzEsMzE0IEBACisvKgorICogQ29weXJpZ2h0IMKp IDIwMTcgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFu dGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBv ZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAi U29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rp b24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBj b3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICog YW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25z IHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3Qg dG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQg bm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAq IHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlh bCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQ Uk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9S CisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVT IE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF IEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIEFVVEhPUlMg T1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1Ig T1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRP UlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElP TiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCisgKiBJTiBU SEUgU09GVFdBUkUuCisgKi8KKworI2luY2x1ZGUgImlndC5oIgorCisjaW5jbHVkZSA8bGltaXRz Lmg+CisKK0lHVF9URVNUX0RFU0NSSVBUSU9OKCJUZXN0aW5nIHRoZSBpOTE1IHF1ZXJ5IHVBUEku Iik7CisKK3N0YXRpYyBpbnQKK19faTkxNV9xdWVyeShpbnQgZmQsIHN0cnVjdCBkcm1faTkxNV9x dWVyeSAqcSkKK3sKKwlpZiAoaWd0X2lvY3RsKGZkLCBEUk1fSU9DVExfSTkxNV9RVUVSWSwgcSkp CisJCXJldHVybiAtZXJybm87CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK19faTkxNV9x dWVyeV9pdGVtKGludCBmZCwgc3RydWN0IGRybV9pOTE1X3F1ZXJ5X2l0ZW0gKml0ZW1zLCB1aW50 MzJfdCBuX2l0ZW1zKQoreworCXN0cnVjdCBkcm1faTkxNV9xdWVyeSBxID0geworCQkubnVtX2l0 ZW1zID0gbl9pdGVtcywKKwkJLml0ZW1zX3B0ciA9IHRvX3VzZXJfcG9pbnRlcihpdGVtcyksCisJ fTsKKwlyZXR1cm4gX19pOTE1X3F1ZXJ5KGZkLCAmcSk7Cit9CisKKyNkZWZpbmUgaTkxNV9xdWVy eV9pdGVtKGZkLCBpdGVtcywgbl9pdGVtcykgZG8geyBcCisJCWlndF9hc3NlcnRfZXEoX19pOTE1 X3F1ZXJ5X2l0ZW0oZmQsIGl0ZW1zLCBuX2l0ZW1zKSwgMCk7IFwKKwkJZXJybm8gPSAwOyBcCisJ fSB3aGlsZSAoMCkKKyNkZWZpbmUgaTkxNV9xdWVyeV9pdGVtX2VycihmZCwgaXRlbXMsIG5faXRl bXMsIGVycikgZG8geyBcCisJCWlndF9hc3NlcnRfZXEoX19pOTE1X3F1ZXJ5X2l0ZW0oZmQsIGl0 ZW1zLCBuX2l0ZW1zKSwgLWVycik7IFwKKwl9IHdoaWxlICgwKQorCitzdGF0aWMgYm9vbCBoYXNf cXVlcnlfc3VwcG9ydHMoaW50IGZkKQoreworCXN0cnVjdCBkcm1faTkxNV9xdWVyeSBxdWVyeSA9 IHt9OworCisJcmV0dXJuIF9faTkxNV9xdWVyeShmZCwgJnF1ZXJ5KSA9PSAwOworfQorCitzdGF0 aWMgdm9pZCB0ZXN0X3F1ZXJ5X2dhcmJhZ2UoaW50IGZkKQoreworCXN0cnVjdCBkcm1faTkxNV9x dWVyeV9pdGVtIGl0ZW1zWzJdOworCXN0cnVjdCBkcm1faTkxNV9xdWVyeV9pdGVtICppdGVtc19w dHI7CisJaW50IGksIGxlbiwgcmV0OworCisJaTkxNV9xdWVyeV9pdGVtX2VycihmZCwgKHZvaWQg KikgVUxPTkdfTUFYLCAxLCBFRkFVTFQpOworCisJaTkxNV9xdWVyeV9pdGVtX2VycihmZCwgKHZv aWQgKikgMCwgMSwgRUZBVUxUKTsKKworCW1lbXNldChpdGVtcywgMCwgc2l6ZW9mKGl0ZW1zKSk7 CisJaTkxNV9xdWVyeV9pdGVtX2VycihmZCwgaXRlbXMsIDEsIEVJTlZBTCk7CisKKwltZW1zZXQo aXRlbXMsIDAsIHNpemVvZihpdGVtcykpOworCWl0ZW1zWzBdLnF1ZXJ5X2lkID0gVUxPTkdfTUFY OworCWl0ZW1zWzFdLnF1ZXJ5X2lkID0gVUxPTkdfTUFYIC0gMjsKKwlpOTE1X3F1ZXJ5X2l0ZW0o ZmQsIGl0ZW1zLCAyKTsKKwlpZ3RfYXNzZXJ0X2VxKGl0ZW1zWzBdLmxlbmd0aCwgLUVJTlZBTCk7 CisJaWd0X2Fzc2VydF9lcShpdGVtc1sxXS5sZW5ndGgsIC1FSU5WQUwpOworCisJbWVtc2V0KGl0 ZW1zLCAwLCBzaXplb2YoaXRlbXMpKTsKKwlpdGVtc1swXS5xdWVyeV9pZCA9IERSTV9JOTE1X1FV RVJZX1RPUE9MT0dZX0lORk87CisJaXRlbXNbMV0ucXVlcnlfaWQgPSBEUk1fSTkxNV9RVUVSWV9U T1BPTE9HWV9JTkZPOworCWl0ZW1zWzFdLmxlbmd0aCA9IHNpemVvZihzdHJ1Y3QgZHJtX2k5MTVf cXVlcnlfdG9wb2xvZ3lfaW5mbykgLSAxOworCWk5MTVfcXVlcnlfaXRlbShmZCwgaXRlbXMsIDIp OworCWlndF9hc3NlcnRfbHRlKDAsIGl0ZW1zWzBdLmxlbmd0aCk7CisJaWd0X2Fzc2VydF9lcShp dGVtc1sxXS5sZW5ndGgsIC1FSU5WQUwpOworCisJaXRlbXNfcHRyID0gbW1hcCgwLCA0MDk2LCBQ Uk9UX1dSSVRFLCBNQVBfUFJJVkFURSB8IE1BUF9BTk9OLCAtMSwgMCk7CisJaXRlbXNfcHRyWzBd LnF1ZXJ5X2lkID0gRFJNX0k5MTVfUVVFUllfVE9QT0xPR1lfSU5GTzsKKwlpOTE1X3F1ZXJ5X2l0 ZW0oZmQsIGl0ZW1zX3B0ciwgMSk7CisJaWd0X2Fzc2VydChpdGVtc19wdHJbMF0ubGVuZ3RoID49 IHNpemVvZihzdHJ1Y3QgZHJtX2k5MTVfcXVlcnlfdG9wb2xvZ3lfaW5mbykpOworCW11bm1hcChp dGVtc19wdHIsIDQwOTYpOworCWk5MTVfcXVlcnlfaXRlbV9lcnIoZmQsIGl0ZW1zX3B0ciwgMSwg RUZBVUxUKTsKKworCWxlbiA9IHNpemVvZihzdHJ1Y3QgZHJtX2k5MTVfcXVlcnlfaXRlbSkgKiAx MDsKKwlpdGVtc19wdHIgPSBtbWFwKDAsIGxlbiwgUFJPVF9XUklURSwgTUFQX1BSSVZBVEUgfCBN QVBfQU5PTiwgLTEsIDApOworCWZvciAoaSA9IDA7IGkgPCAxMDsgaSsrKQorCQlpdGVtc19wdHJb aV0ucXVlcnlfaWQgPSBEUk1fSTkxNV9RVUVSWV9UT1BPTE9HWV9JTkZPOworCXJldCA9IF9faTkx NV9xdWVyeV9pdGVtKGZkLCBpdGVtc19wdHIsCisJCQkJSU5UX01BWCAvIHNpemVvZihzdHJ1Y3Qg ZHJtX2k5MTVfcXVlcnlfaXRlbSkgKyAxKTsKKwlpZ3RfYXNzZXJ0KHJldCA9PSAtRUZBVUxUIHx8 IHJldCA9PSAtRUlOVkFMKTsKKwltdW5tYXAoaXRlbXNfcHRyLCBsZW4pOworfQorCitzdGF0aWMg Ym9vbCBxdWVyeV90b3BvbG9neV9zdXBwb3J0ZWQoaW50IGZkKQoreworCXN0cnVjdCBkcm1faTkx NV9xdWVyeV9pdGVtIGl0ZW0gPSB7CisJCS5xdWVyeV9pZCA9IERSTV9JOTE1X1FVRVJZX1RPUE9M T0dZX0lORk8sCisJfTsKKworCXJldHVybiBfX2k5MTVfcXVlcnlfaXRlbShmZCwgJml0ZW0sIDEp ID09IDAgJiYgaXRlbS5sZW5ndGggPiAwOworfQorCitzdGF0aWMgdm9pZCB0ZXN0X3F1ZXJ5X3Rv cG9sb2d5X3ByZV9nZW44KGludCBmZCkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcXVlcnlfaXRlbSBp dGVtID0geworCQkucXVlcnlfaWQgPSBEUk1fSTkxNV9RVUVSWV9UT1BPTE9HWV9JTkZPLAorCX07 CisKKwlpOTE1X3F1ZXJ5X2l0ZW0oZmQsICZpdGVtLCAxKTsKKwlpZ3RfYXNzZXJ0X2VxKGl0ZW0u bGVuZ3RoLCAtRU5PREVWKTsKK30KKworI2RlZmluZSBESVZfUk9VTkRfVVAodmFsLCBkaXYpIChB TElHTih2YWwsIGRpdikgLyBkaXYpCisKK3N0YXRpYyBib29sCitzbGljZV9hdmFpbGFibGUoY29u c3Qgc3RydWN0IGRybV9pOTE1X3F1ZXJ5X3RvcG9sb2d5X2luZm8gKnRvcG9faW5mbywKKwkJaW50 IHMpCit7CisJcmV0dXJuICh0b3BvX2luZm8tPmRhdGFbcyAvIDhdID4+IChzICUgOCkpICYgMTsK K30KKworc3RhdGljIGJvb2wKK3N1YnNsaWNlX2F2YWlsYWJsZShjb25zdCBzdHJ1Y3QgZHJtX2k5 MTVfcXVlcnlfdG9wb2xvZ3lfaW5mbyAqdG9wb19pbmZvLAorCQkgICBpbnQgcywgaW50IHNzKQor eworCXJldHVybiAodG9wb19pbmZvLT5kYXRhW3RvcG9faW5mby0+c3Vic2xpY2Vfb2Zmc2V0ICsK KwkJCQlzICogdG9wb19pbmZvLT5zdWJzbGljZV9zdHJpZGUgKworCQkJCXNzIC8gOF0gPj4gKHNz ICUgOCkpICYgMTsKK30KKworc3RhdGljIGJvb2wKK2V1X2F2YWlsYWJsZShjb25zdCBzdHJ1Y3Qg ZHJtX2k5MTVfcXVlcnlfdG9wb2xvZ3lfaW5mbyAqdG9wb19pbmZvLAorCSAgICAgaW50IHMsIGlu dCBzcywgaW50IGV1KQoreworCXJldHVybiAodG9wb19pbmZvLT5kYXRhW3RvcG9faW5mby0+ZXVf b2Zmc2V0ICsKKwkJCQkocyAqIHRvcG9faW5mby0+bWF4X3N1YnNsaWNlcyArIHNzKSAqIHRvcG9f aW5mby0+ZXVfc3RyaWRlICsKKwkJCQlldSAvIDhdID4+IChldSAlIDgpKSAmIDE7Cit9CisKK3N0 YXRpYyB2b2lkCit0ZXN0X3F1ZXJ5X3RvcG9sb2d5X2NvaGVyZW50X3NsaWNlX21hc2soaW50IGZk KQoreworCXN0cnVjdCBkcm1faTkxNV9xdWVyeV9pdGVtIGl0ZW07CisJdWludDhfdCAqX3RvcG9f aW5mbzsKKwlzdHJ1Y3QgZHJtX2k5MTVfcXVlcnlfdG9wb2xvZ3lfaW5mbyAqdG9wb19pbmZvOwor CWRybV9pOTE1X2dldHBhcmFtX3QgZ3A7CisJaW50IHNsaWNlX21hc2ssIHN1YnNsaWNlX21hc2s7 CisJaW50IHMsIHRvcG9sb2d5X3NsaWNlcywgdG9wb2xvZ3lfc3Vic2xpY2VzX3NsaWNlMDsKKwor CWdwLnBhcmFtID0gSTkxNV9QQVJBTV9TTElDRV9NQVNLOworCWdwLnZhbHVlID0gJnNsaWNlX21h c2s7CisJaWd0X3NraXBfb24oaWd0X2lvY3RsKGZkLCBEUk1fSU9DVExfSTkxNV9HRVRQQVJBTSwg JmdwKSAhPSAwKTsKKworCWdwLnBhcmFtID0gSTkxNV9QQVJBTV9TVUJTTElDRV9NQVNLOworCWdw LnZhbHVlID0gJnN1YnNsaWNlX21hc2s7CisJaWd0X3NraXBfb24oaWd0X2lvY3RsKGZkLCBEUk1f SU9DVExfSTkxNV9HRVRQQVJBTSwgJmdwKSAhPSAwKTsKKworCS8qIFNsaWNlcyAqLworCW1lbXNl dCgmaXRlbSwgMCwgc2l6ZW9mKGl0ZW0pKTsKKwlpdGVtLnF1ZXJ5X2lkID0gRFJNX0k5MTVfUVVF UllfVE9QT0xPR1lfSU5GTzsKKwlpOTE1X3F1ZXJ5X2l0ZW0oZmQsICZpdGVtLCAxKTsKKwlpZ3Rf YXNzZXJ0KGl0ZW0ubGVuZ3RoID4gMCk7CisKKwlfdG9wb19pbmZvID0gbWFsbG9jKDMgKiBpdGVt Lmxlbmd0aCk7CisJbWVtc2V0KF90b3BvX2luZm8sIDB4ZmYsIDMgKiBpdGVtLmxlbmd0aCk7CisJ dG9wb19pbmZvID0gKHN0cnVjdCBkcm1faTkxNV9xdWVyeV90b3BvbG9neV9pbmZvICopIChfdG9w b19pbmZvICsgaXRlbS5sZW5ndGgpOworCW1lbXNldCh0b3BvX2luZm8sIDAsIGl0ZW0ubGVuZ3Ro KTsKKwlpZ3RfYXNzZXJ0KHRvcG9faW5mbyk7CisKKwlpdGVtLmRhdGFfcHRyID0gdG9fdXNlcl9w b2ludGVyKHRvcG9faW5mbyk7CisJaTkxNV9xdWVyeV9pdGVtKGZkLCAmaXRlbSwgMSk7CisJaWd0 X2Fzc2VydChpdGVtLmxlbmd0aCA+IDApOworCisJdG9wb2xvZ3lfc2xpY2VzID0gMDsKKwlmb3Ig KHMgPSAwOyBzIDwgdG9wb19pbmZvLT5tYXhfc2xpY2VzOyBzKyspIHsKKwkJaWYgKHNsaWNlX2F2 YWlsYWJsZSh0b3BvX2luZm8sIHMpKQorCQkJdG9wb2xvZ3lfc2xpY2VzIHw9IDFVTCA8PCBzOwor CX0KKworCWlndF9kZWJ1Zygic2xpY2UgbWFzayBnZXRwYXJhbT0weCV4IC8gcXVlcnk9MHgleFxu IiwKKwkJICBzbGljZV9tYXNrLCB0b3BvbG9neV9zbGljZXMpOworCisJLyogVGhlc2UgMiBzaG91 bGQgYWx3YXlzIG1hdGNoLiAqLworCWlndF9hc3NlcnRfZXFfdTMyKHNsaWNlX21hc2ssIHRvcG9s b2d5X3NsaWNlcyk7CisKKwl0b3BvbG9neV9zdWJzbGljZXNfc2xpY2UwID0gMDsKKwlmb3IgKHMg PSAwOyBzIDwgdG9wb19pbmZvLT5tYXhfc3Vic2xpY2VzOyBzKyspIHsKKwkJaWYgKHN1YnNsaWNl X2F2YWlsYWJsZSh0b3BvX2luZm8sIDAsIHMpKQorCQkJdG9wb2xvZ3lfc3Vic2xpY2VzX3NsaWNl MCB8PSAxVUwgPDwgczsKKwl9CisKKwlpZ3RfZGVidWcoInN1YnNsaWNlIG1hc2sgZ2V0cGFyYW09 MHgleCAvIHF1ZXJ5PTB4JXhcbiIsCisJCSAgc3Vic2xpY2VfbWFzaywgdG9wb2xvZ3lfc3Vic2xp Y2VzX3NsaWNlMCk7CisKKwkvKiBJOTE1X1BBUkFNX1NVQlNMSUNFX01BU0sgcmV0dXJucyB0aGUg dmFsdWUgZm9yIHNsaWNlMCwgd2UKKwkgKiBzaG91bGQgbWF0Y2ggdGhlIHZhbHVlcyBmb3IgdGhl IGZpcnN0IHNsaWNlIG9mIHRoZQorCSAqIHRvcG9sb2d5LgorCSAqLworCWlndF9hc3NlcnRfZXFf dTMyKHN1YnNsaWNlX21hc2ssIHRvcG9sb2d5X3N1YnNsaWNlc19zbGljZTApOworCisJZm9yIChz ID0gMDsgcyA8IGl0ZW0ubGVuZ3RoOyBzKyspIHsKKwkJaWd0X2Fzc2VydF9lcShfdG9wb19pbmZv W3NdLCAweGZmKTsKKwkJaWd0X2Fzc2VydF9lcShfdG9wb19pbmZvWzIgKiBpdGVtLmxlbmd0aCAr IHNdLCAweGZmKTsKKwl9CisKKwlmcmVlKF90b3BvX2luZm8pOworfQorCitzdGF0aWMgdm9pZAor dGVzdF9xdWVyeV90b3BvbG9neV9tYXRjaGVzX2V1X3RvdGFsKGludCBmZCkKK3sKKwlzdHJ1Y3Qg ZHJtX2k5MTVfcXVlcnlfaXRlbSBpdGVtOworCXN0cnVjdCBkcm1faTkxNV9xdWVyeV90b3BvbG9n eV9pbmZvICp0b3BvX2luZm87CisJZHJtX2k5MTVfZ2V0cGFyYW1fdCBncDsKKwlpbnQgbl9ldXMs IG5fZXVzX3RvcG9sb2d5LCBzOworCisJZ3AucGFyYW0gPSBJOTE1X1BBUkFNX0VVX1RPVEFMOwor CWdwLnZhbHVlID0gJm5fZXVzOworCWRvX2lvY3RsKGZkLCBEUk1fSU9DVExfSTkxNV9HRVRQQVJB TSwgJmdwKTsKKwlpZ3RfZGVidWcoIm5fZXVzPSVpXG4iLCBuX2V1cyk7CisKKwltZW1zZXQoJml0 ZW0sIDAsIHNpemVvZihpdGVtKSk7CisJaXRlbS5xdWVyeV9pZCA9IERSTV9JOTE1X1FVRVJZX1RP UE9MT0dZX0lORk87CisJaTkxNV9xdWVyeV9pdGVtKGZkLCAmaXRlbSwgMSk7CisKKwl0b3BvX2lu Zm8gPSAoc3RydWN0IGRybV9pOTE1X3F1ZXJ5X3RvcG9sb2d5X2luZm8gKikgY2FsbG9jKDEsIGl0 ZW0ubGVuZ3RoKTsKKworCWl0ZW0uZGF0YV9wdHIgPSB0b191c2VyX3BvaW50ZXIodG9wb19pbmZv KTsKKwlpOTE1X3F1ZXJ5X2l0ZW0oZmQsICZpdGVtLCAxKTsKKworCWlndF9kZWJ1ZygibWF4X3Ns aWNlcz0laHUgbWF4X3N1YnNsaWNlcz0laHUgbWF4X2V1c19wZXJfc3Vic2xpY2U9JWh1XG4iLAor CQkgIHRvcG9faW5mby0+bWF4X3NsaWNlcywgdG9wb19pbmZvLT5tYXhfc3Vic2xpY2VzLAorCQkg IHRvcG9faW5mby0+bWF4X2V1c19wZXJfc3Vic2xpY2UpOworCWlndF9kZWJ1ZygiIHN1YnNsaWNl X29mZnNldD0laHUgc3Vic2xpY2Vfc3RyaWRlPSVodVxuIiwKKwkJICB0b3BvX2luZm8tPnN1YnNs aWNlX29mZnNldCwgdG9wb19pbmZvLT5zdWJzbGljZV9zdHJpZGUpOworCWlndF9kZWJ1ZygiIGV1 X29mZnNldD0laHUgZXVfc3RyaWRlPSVodVxuIiwKKwkJICB0b3BvX2luZm8tPmV1X29mZnNldCwg dG9wb19pbmZvLT5ldV9zdHJpZGUpOworCisJbl9ldXNfdG9wb2xvZ3kgPSAwOworCWZvciAocyA9 IDA7IHMgPCB0b3BvX2luZm8tPm1heF9zbGljZXM7IHMrKykgeworCQlpbnQgc3M7CisKKwkJaWd0 X2RlYnVnKCJzbGljZSVpOlxuIiwgcyk7CisKKwkJZm9yIChzcyA9IDA7IHNzIDwgdG9wb19pbmZv LT5tYXhfc3Vic2xpY2VzOyBzcysrKSB7CisJCQlpbnQgZXUsIG5fc3Vic2xpY2VfZXVzID0gMDsK KworCQkJaWd0X2RlYnVnKCJcdHN1YnNsaWNlOiAlaVxuIiwgc3MpOworCisJCQlpZ3RfZGVidWco Ilx0XHRldV9tYXNrOiAwYiIpOworCQkJZm9yIChldSA9IDA7IGV1IDwgdG9wb19pbmZvLT5tYXhf ZXVzX3Blcl9zdWJzbGljZTsgZXUrKykgeworCQkJCXVpbnQ4X3QgdmFsID0gZXVfYXZhaWxhYmxl KHRvcG9faW5mbywgcywgc3MsCisJCQkJCQkJICAgdG9wb19pbmZvLT5tYXhfZXVzX3Blcl9zdWJz bGljZSAtIDEgLSBldSk7CisJCQkJaWd0X2RlYnVnKCIlaGhpIiwgdmFsKTsKKwkJCQluX3N1YnNs aWNlX2V1cyArPSBfX2J1aWx0aW5fcG9wY291bnQodmFsKTsKKwkJCQluX2V1c190b3BvbG9neSAr PSBfX2J1aWx0aW5fcG9wY291bnQodmFsKTsKKwkJCX0KKwkJCWlndF9kZWJ1ZygiICglaSlcbiIs IG5fc3Vic2xpY2VfZXVzKTsKKwkJfQorCX0KKworCWlndF9hc3NlcnQobl9ldXNfdG9wb2xvZ3kg PT0gbl9ldXMpOworfQorCitpZ3RfbWFpbgoreworCWludCBmZCA9IC0xOworCWludCBkZXZpZDsK KworCWlndF9maXh0dXJlIHsKKwkJZmQgPSBkcm1fb3Blbl9kcml2ZXIoRFJJVkVSX0lOVEVMKTsK KwkJaWd0X3JlcXVpcmUoaGFzX3F1ZXJ5X3N1cHBvcnRzKGZkKSk7CisJCWRldmlkID0gaW50ZWxf Z2V0X2RybV9kZXZpZChmZCk7CisJfQorCisJaWd0X3N1YnRlc3QoInF1ZXJ5LWdhcmJhZ2UiKQor CQl0ZXN0X3F1ZXJ5X2dhcmJhZ2UoZmQpOworCisJaWd0X3N1YnRlc3QoInF1ZXJ5LXRvcG9sb2d5 LXByZS1nZW44IikgeworCQlpZ3RfcmVxdWlyZShpbnRlbF9nZW4oZGV2aWQpIDwgOCAmJiAhSVNf SEFTV0VMTChkZXZpZCkpOworCQlpZ3RfcmVxdWlyZShxdWVyeV90b3BvbG9neV9zdXBwb3J0ZWQo ZmQpKTsKKwkJdGVzdF9xdWVyeV90b3BvbG9neV9wcmVfZ2VuOChmZCk7CisJfQorCisJaWd0X3N1 YnRlc3QoInF1ZXJ5LXRvcG9sb2d5LWNvaGVyZW50LXNsaWNlLW1hc2siKSB7CisJCWlndF9yZXF1 aXJlKEFUX0xFQVNUX0dFTihkZXZpZCwgOCkgfHwgSVNfSEFTV0VMTChkZXZpZCkpOworCQlpZ3Rf cmVxdWlyZShxdWVyeV90b3BvbG9neV9zdXBwb3J0ZWQoZmQpKTsKKwkJdGVzdF9xdWVyeV90b3Bv bG9neV9jb2hlcmVudF9zbGljZV9tYXNrKGZkKTsKKwl9CisKKwlpZ3Rfc3VidGVzdCgicXVlcnkt dG9wb2xvZ3ktbWF0Y2hlcy1ldS10b3RhbCIpIHsKKwkJaWd0X3JlcXVpcmUoQVRfTEVBU1RfR0VO KGRldmlkLCA4KSB8fCBJU19IQVNXRUxMKGRldmlkKSk7CisJCWlndF9yZXF1aXJlKHF1ZXJ5X3Rv cG9sb2d5X3N1cHBvcnRlZChmZCkpOworCQl0ZXN0X3F1ZXJ5X3RvcG9sb2d5X21hdGNoZXNfZXVf dG90YWwoZmQpOworCX0KKworCWlndF9maXh0dXJlIHsKKwkJY2xvc2UoZmQpOworCX0KK30KZGlm ZiAtLWdpdCBhL3Rlc3RzL21lc29uLmJ1aWxkIGIvdGVzdHMvbWVzb24uYnVpbGQKaW5kZXggNTIx YTRjNDIuLjI4MDU4MzIwIDEwMDY0NAotLS0gYS90ZXN0cy9tZXNvbi5idWlsZAorKysgYi90ZXN0 cy9tZXNvbi5idWlsZApAQCAtMTQ0LDYgKzE0NCw3IEBAIHRlc3RfcHJvZ3MgPSBbCiAJJ2dlbjNf cmVuZGVyX3RpbGVkeV9ibGl0cycsCiAJJ2dlbjdfZm9yY2V3YWtlX210JywKIAknZ3Z0X2Jhc2lj JywKKwknaTkxNV9xdWVyeScsCiAJJ2ttc18zZCcsCiAJJ2ttc19hZGRmYl9iYXNpYycsCiAJJ2tt c19hdG9taWMnLAotLSAKMi4xNi4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ln dC1kZXYK