From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id B84206E944 for ; Tue, 16 Feb 2021 11:40:27 +0000 (UTC) From: =?UTF-8?q?Zbigniew=20Kempczy=C5=84ski?= Date: Tue, 16 Feb 2021 12:39:36 +0100 Message-Id: <20210216114007.122175-5-zbigniew.kempczynski@intel.com> In-Reply-To: <20210216114007.122175-1-zbigniew.kempczynski@intel.com> References: <20210216114007.122175-1-zbigniew.kempczynski@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 04/35] lib/igt_map: Introduce igt_map 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: RnJvbTogRG9taW5payBHcnplZ29yemVrIDxkb21pbmlrLmdyemVnb3J6ZWtAaW50ZWwuY29tPgoK SW1wbGVtZW50YXRpb24gb2YgZ2VuZXJpYywgbm9uLXRocmVhZCBzYWZlLCBkeW5hbWljIHNpemUg aGFzaCBtYXAuCgpTaWduZWQtb2ZmLWJ5OiBEb21pbmlrIEdyemVnb3J6ZWsgPGRvbWluaWsuZ3J6 ZWdvcnpla0BpbnRlbC5jb20+CkNjOiBaYmlnbmlldyBLZW1wY3p5xYRza2kgPHpiaWduaWV3Lmtl bXBjenluc2tpQGludGVsLmNvbT4KQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29u LmNvLnVrPgotLS0KIC4uLi9pZ3QtZ3B1LXRvb2xzL2lndC1ncHUtdG9vbHMtZG9jcy54bWwgICAg ICB8ICAgMSArCiBsaWIvTWFrZWZpbGUuc291cmNlcyAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgIDIgKwogbGliL2lndF9tYXAuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg MTMxICsrKysrKysrKysrKysrKysrKwogbGliL2lndF9tYXAuaCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgMTA0ICsrKysrKysrKysrKysrCiBsaWIvbWVzb24uYnVpbGQgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogNSBmaWxlcyBjaGFuZ2VkLCAyMzkgaW5z ZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi9pZ3RfbWFwLmMKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBsaWIvaWd0X21hcC5oCgpkaWZmIC0tZ2l0IGEvZG9jcy9yZWZlcmVuY2UvaWd0LWdw dS10b29scy9pZ3QtZ3B1LXRvb2xzLWRvY3MueG1sIGIvZG9jcy9yZWZlcmVuY2UvaWd0LWdwdS10 b29scy9pZ3QtZ3B1LXRvb2xzLWRvY3MueG1sCmluZGV4IDljOWFhOGYxZC4uYmY1YWM1NDI4IDEw MDY0NAotLS0gYS9kb2NzL3JlZmVyZW5jZS9pZ3QtZ3B1LXRvb2xzL2lndC1ncHUtdG9vbHMtZG9j cy54bWwKKysrIGIvZG9jcy9yZWZlcmVuY2UvaWd0LWdwdS10b29scy9pZ3QtZ3B1LXRvb2xzLWRv Y3MueG1sCkBAIC0zMyw2ICszMyw3IEBACiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL2lndF9r bW9kLnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9pZ3Rfa21zLnhtbCIvPgogICAg IDx4aTppbmNsdWRlIGhyZWY9InhtbC9pZ3RfbGlzdC54bWwiLz4KKyAgICA8eGk6aW5jbHVkZSBo cmVmPSJ4bWwvaWd0X21hcC54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvaWd0X3Bt LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9pZ3RfcHJpbWVzLnhtbCIvPgogICAg IDx4aTppbmNsdWRlIGhyZWY9InhtbC9pZ3RfcmFuZC54bWwiLz4KZGlmZiAtLWdpdCBhL2xpYi9N YWtlZmlsZS5zb3VyY2VzIGIvbGliL01ha2VmaWxlLnNvdXJjZXMKaW5kZXggNGY2Mzg5ZjhhLi44 NGZkN2I0OWMgMTAwNjQ0Ci0tLSBhL2xpYi9NYWtlZmlsZS5zb3VyY2VzCisrKyBiL2xpYi9NYWtl ZmlsZS5zb3VyY2VzCkBAIC00OCw2ICs0OCw4IEBAIGxpYl9zb3VyY2VfbGlzdCA9CSAJXAogCWln dF9pbmZvZnJhbWUuaAkJXAogCWlndF9saXN0LmMJCVwKIAlpZ3RfbGlzdC5oCQlcCisJaWd0X21h cC5jCQlcCisJaWd0X21hcC5oCQlcCiAJaWd0X21hdHJpeC5jCQlcCiAJaWd0X21hdHJpeC5oCQlc CiAJaWd0X3BhcmFtcy5jCQlcCmRpZmYgLS1naXQgYS9saWIvaWd0X21hcC5jIGIvbGliL2lndF9t YXAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmNhNThlZmJkOQotLS0g L2Rldi9udWxsCisrKyBiL2xpYi9pZ3RfbWFwLmMKQEAgLTAsMCArMSwxMzEgQEAKKy8vIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBNSVQKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAyMSBJbnRlbCBD b3Jwb3JhdGlvbgorICovCisKKyNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KKyNpbmNsdWRlIDxzdGRs aWIuaD4KKyNpbmNsdWRlICJpZ3RfbWFwLmgiCisjaW5jbHVkZSAiaWd0LmgiCisjaW5jbHVkZSAi aWd0X3g4Ni5oIgorCisjZGVmaW5lIE1JTl9DQVBBQ0lUWV9CSVRTIDIKKworc3RhdGljIGJvb2wg aWd0X21hcF9maWxsZWQoc3RydWN0IGlndF9tYXAgKm1hcCkKK3sKKwlyZXR1cm4gSUdUX01BUF9D QVBBQ0lUWShtYXApICogNCAvIDUgPD0gbWFwLT5zaXplOworfQorCitzdGF0aWMgdm9pZCBpZ3Rf bWFwX2V4dGVuZChzdHJ1Y3QgaWd0X21hcCAqbWFwKQoreworCXN0cnVjdCBpZ3RfaGxpc3RfaGVh ZCAqbmV3X2hlYWRzOworCXN0cnVjdCBpZ3RfbWFwX2VudHJ5ICpwb3M7CisJc3RydWN0IGlndF9o bGlzdF9ub2RlICp0bXA7CisJdWludDMyX3QgbmV3X2JpdHMgPSBtYXAtPmNhcGFjaXR5X2JpdHMg KyAxOworCWludCBpOworCisJbmV3X2hlYWRzID0gY2FsbG9jKDFVTEwgPDwgbmV3X2JpdHMsCisJ CQkgICBzaXplb2Yoc3RydWN0IGlndF9obGlzdF9oZWFkKSk7CisJaWd0X2Fzc2VydChuZXdfaGVh ZHMpOworCisJaWd0X21hcF9mb3JfZWFjaF9zYWZlKG1hcCwgaSwgdG1wLCBwb3MpCisJCWlndF9o bGlzdF9hZGRfaGVhZCgmcG9zLT5saW5rLCAmbmV3X2hlYWRzW21hcC0+aGFzaF9mbihwb3MtPmtl eSwgbmV3X2JpdHMpXSk7CisKKwlmcmVlKG1hcC0+aGVhZHMpOworCW1hcC0+Y2FwYWNpdHlfYml0 cysrOworCisJbWFwLT5oZWFkcyA9IG5ld19oZWFkczsKK30KKworc3RhdGljIGJvb2wgZXF1YWxf NGJ5dGVzKGNvbnN0IHZvaWQgKmtleTEsIGNvbnN0IHZvaWQgKmtleTIpCit7CisJY29uc3QgdWlu dDMyX3QgKmsxID0ga2V5MSwgKmsyID0ga2V5MjsKKwlyZXR1cm4gKmsxID09ICprMjsKK30KKwor LyogIDJeNjMgKyAyXjYxIC0gMl41NyArIDJeNTQgLSAyXjUxIC0gMl4xOCArIDEgKi8KKyNkZWZp bmUgR09MREVOX1JBVElPX1BSSU1FXzY0IDB4OWUzN2ZmZmZmZmZjMDAwMVVMTAorCitzdGF0aWMg aW5saW5lIHVpbnQ2NF90IGhhc2hfNjRfNGJ5dGVzKGNvbnN0IHZvaWQgKnZhbCwgdW5zaWduZWQg aW50IGJpdHMpCit7CisJdWludDY0X3QgaGFzaCA9ICoodWludDMyX3QgKil2YWw7CisKKwloYXNo ID0gaGFzaCAqIEdPTERFTl9SQVRJT19QUklNRV82NDsKKwkvKiBIaWdoIGJpdHMgYXJlIG1vcmUg cmFuZG9tLCBzbyB1c2UgdGhlbS4gKi8KKwlyZXR1cm4gaGFzaCA+PiAoNjQgLSBiaXRzKTsKK30K Kwordm9pZCBfX2lndF9tYXBfaW5pdChzdHJ1Y3QgaWd0X21hcCAqbWFwLCBpZ3RfbWFwX2VxdWFs X2ZuIGVxX2ZuLAorCQkgaWd0X21hcF9oYXNoX2ZuIGhhc2hfZm4sIHVpbnQzMl90IGluaXRpYWxf Yml0cykKK3sKKwltYXAtPmVxdWFsX2ZuID0gZXFfZm4gPT0gTlVMTCA/IGVxdWFsXzRieXRlcyA6 IGVxX2ZuOworCW1hcC0+aGFzaF9mbiA9IGhhc2hfZm4gPT0gTlVMTCA/IGhhc2hfNjRfNGJ5dGVz IDogaGFzaF9mbjsKKwltYXAtPmNhcGFjaXR5X2JpdHMgPSBpbml0aWFsX2JpdHMgPiAwID8gaW5p dGlhbF9iaXRzCisJCQkJCSAgICAgIDogTUlOX0NBUEFDSVRZX0JJVFM7CisJbWFwLT5oZWFkcyA9 IGNhbGxvYyhJR1RfTUFQX0NBUEFDSVRZKG1hcCksCisJCQkgICAgc2l6ZW9mKHN0cnVjdCBpZ3Rf aGxpc3RfaGVhZCkpOworCisJaWd0X2Fzc2VydChtYXAtPmhlYWRzKTsKKwltYXAtPnNpemUgPSAw OworfQorCit2b2lkIGlndF9tYXBfYWRkKHN0cnVjdCBpZ3RfbWFwICptYXAsIGNvbnN0IHZvaWQg KmtleSwgdm9pZCAqdmFsdWUpCit7CisJc3RydWN0IGlndF9tYXBfZW50cnkgKmVudHJ5OworCisJ aWYgKGlndF9tYXBfZmlsbGVkKG1hcCkpCisJCWlndF9tYXBfZXh0ZW5kKG1hcCk7CisKKwllbnRy eSA9IG1hbGxvYyhzaXplb2Yoc3RydWN0IGlndF9tYXBfZW50cnkpKTsKKwllbnRyeS0+dmFsdWUg PSB2YWx1ZTsKKwllbnRyeS0+a2V5ID0ga2V5OworCWlndF9obGlzdF9hZGRfaGVhZCgmZW50cnkt PmxpbmssCisJCQkgICAmbWFwLT5oZWFkc1ttYXAtPmhhc2hfZm4oa2V5LCBtYXAtPmNhcGFjaXR5 X2JpdHMpXSk7CisJbWFwLT5zaXplKys7Cit9CisKK3ZvaWQgKmlndF9tYXBfZGVsKHN0cnVjdCBp Z3RfbWFwICptYXAsIGNvbnN0IHZvaWQgKmtleSkKK3sKKwlzdHJ1Y3QgaWd0X21hcF9lbnRyeSAq cG9zOworCXN0cnVjdCBpZ3RfaGxpc3Rfbm9kZSAqdG1wOworCXZvaWQgKnZhbCA9IE5VTEw7CisK KwlpZ3RfbWFwX2Zvcl9lYWNoX3Bvc3NpYmxlX3NhZmUobWFwLCBwb3MsIHRtcCwga2V5KSB7CisJ CWlmIChtYXAtPmVxdWFsX2ZuKHBvcy0+a2V5LCBrZXkpKSB7CisJCQlpZ3RfaGxpc3RfZGVsKCZw b3MtPmxpbmspOworCQkJdmFsID0gcG9zLT52YWx1ZTsKKwkJCWZyZWUocG9zKTsKKwkJfQorCX0K KwlyZXR1cm4gdmFsOworfQorCit2b2lkICppZ3RfbWFwX2ZpbmQoc3RydWN0IGlndF9tYXAgKm1h cCwgY29uc3Qgdm9pZCAqa2V5KQoreworCXN0cnVjdCBpZ3RfbWFwX2VudHJ5ICpwb3MgPSBOVUxM OworCisJaWd0X21hcF9mb3JfZWFjaF9wb3NzaWJsZShtYXAsIHBvcywga2V5KQorCQlpZiAobWFw LT5lcXVhbF9mbihwb3MtPmtleSwga2V5KSkKKwkJCWJyZWFrOworCisJcmV0dXJuIHBvcyA/IHBv cy0+dmFsdWUgOiBOVUxMOworfQorCit2b2lkIGlndF9tYXBfZnJlZShzdHJ1Y3QgaWd0X21hcCAq bWFwKQoreworCXN0cnVjdCBpZ3RfbWFwX2VudHJ5ICpwb3M7CisJc3RydWN0IGlndF9obGlzdF9u b2RlICp0bXA7CisJaW50IGk7CisKKwlpZ3RfbWFwX2Zvcl9lYWNoX3NhZmUobWFwLCBpLCB0bXAs IHBvcykgeworCQlpZ3RfaGxpc3RfZGVsKCZwb3MtPmxpbmspOworCQlmcmVlKHBvcyk7CisJfQor CisJZnJlZShtYXAtPmhlYWRzKTsKK30KKworYm9vbCBpZ3RfbWFwX2VtcHR5KHN0cnVjdCBpZ3Rf bWFwICptYXApCit7CisJcmV0dXJuIG1hcC0+c2l6ZTsKK30KZGlmZiAtLWdpdCBhL2xpYi9pZ3Rf bWFwLmggYi9saWIvaWd0X21hcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MC4uNzkyNGM4OTExCi0tLSAvZGV2L251bGwKKysrIGIvbGliL2lndF9tYXAuaApAQCAtMCwwICsx LDEwNCBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAorLyoKKyAqIENvcHlyaWdo dCDCqSAyMDIxIEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2lmbmRlZiBJR1RfTUFQX0gKKyNk ZWZpbmUgSUdUX01BUF9ICisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpbmNsdWRlICJpZ3RfbGlz dC5oIgorCisvKioKKyAqIFNFQ1RJT046aWd0X21hcAorICogQHNob3J0X2Rlc2NyaXB0aW9uOiBh IGR5bmFtaWMgc2l6ZWQgaGFzaG1hcCBpbXBsZW1lbnRhdGlvbgorICogQHRpdGxlOiBJR1QgTWFw CisgKiBAaW5jbHVkZTogaWd0X21hcC5oCisgKgorICogaWd0X21hcCBpcyBhIGR5bmFtaWMgc2l6 ZWQsIG5vbi10aHJlYWQtc2FmZSBpbXBsZW1lbnRhdGlvbiBvZiBhIGhhc2htYXAuCisgKiBUaGlz IG1hcCBncm93cyBleHBvbmVudGlhbGx5IHdoZW4gaXQncyBvdmVyIDgwJSBmaWxsZWQuIFRoZSBz dHJ1Y3R1cmUgYWxsb3dzCisgKiBpbmRleGluZyByZWNvcmRzIGJ5IGFueSBrZXkgdGhyb3VnaCB0 aGUgaGFzaCBhbmQgZXF1YWwgZnVuY3Rpb25zLgorICogQnkgZGVmYXVsdCwgaGFzaG1hcCBjb21w YXJlcyBhbmQgaGFzaGVzIHRoZSBmaXJzdCBmb3VyIGJ5dGVzIG9mIGEga2V5LgorICoKKyAqIEV4 YW1wbGUgdXNhZ2U6CisgKgorICogfFs8IS0tIGxhbmd1YWdlPSJDIiAtLT4KKyAqIHN0cnVjdCBp Z3RfbWFwICptYXA7CisgKgorICogc3RydWN0IHJlY29yZCB7CisgKiAJaW50IGZvbzsKKyAqIAl1 aW50MzJfdCB1bmlxdWVfaWRlbnRpZmllcjsKKyAqIH07CisgKgorICogc3RydWN0IHJlY29yZCBy MSwgcjIsICpyX3B0cjsKKyAqCisgKiBtYXAgPSBtYWxsb2Moc2l6ZW9mKCptYXApKTsKKyAqIGln dF9tYXBfaW5pdChtYXApOyAvLyBpbml0aWFpemUgdGhlIG1hcCB3aXRoIGRlZmF1bHQgcGFyYW1l dGVycworICogaWd0X21hcF9hZGQobWFwLCAmcjEudW5pcXVlX2lkZW50aWZpZXIsICZyMSk7Cisg KiBpZ3RfbWFwX2FkZChtYXAsICZyMi51bmlxdWVfaWRlbnRpZmllciwgJnIyKTsKKyAqCisgKiBz dHJ1Y3QgaWd0X21hcF9lbnRyeSAqcG9zOyBpbnQgaTsKKyAqIGlndF9tYXBfZm9yX2VhY2gobWFw LCBpLCBwb3MpIHsKKyAqIAlyX3B0ciA9IHBvcy0+dmFsdWU7CisgKiAJcHJpbnRmKCJrZXk6ICV1 LCBmb286ICVkXG4iLCAqKHVpbnQzMl90KikgcG9zLT5rZXksIHJfcHRyLT5mb28pOworICogfQor ICoKKyAqIHVpbnQzMl90IGtleSA9IHIxLnVuaXF1ZV9pZGVudGlmaWVyOworICogcl9wdHIgPSBp Z3RfbWFwX2ZpbmQobWFwLCAma2V5KTsgLy8gZ2V0IHIxCisgKgorICogcl9wdHIgPSBpZ3RfbWFw X2RlbChtYXAsICZyMi51bmlxdWVfaWRlbnRpZmllcik7CisgKiBpZiAocl9wdHIpCisgKiAJcHJp bnRmKCJyZWNvcmQgd2l0aCBrZXkgJXUgZGVsZXRlZFxuIiwgcl9wdHItPnVuaXF1ZV9pZGVudGlm aWVyKTsKKyAqCisgKiBpZ3RfbWFwX2ZyZWUobWFwKTsKKyAqIGZyZWUobWFwKTsKKyAqIF18Cisg Ki8KKwordHlwZWRlZiBib29sICgqaWd0X21hcF9lcXVhbF9mbikoY29uc3Qgdm9pZCAqa2V5MSwg Y29uc3Qgdm9pZCAqa2V5Mik7Cit0eXBlZGVmIHVpbnQ2NF90ICgqaWd0X21hcF9oYXNoX2ZuKShj b25zdCB2b2lkICp2YWwsIHVuc2lnbmVkIGludCBiaXRzKTsKK3N0cnVjdCBpZ3RfbWFwIHsKKwl1 aW50MzJfdCBzaXplOworCXVpbnQzMl90IGNhcGFjaXR5X2JpdHM7CisJaWd0X21hcF9lcXVhbF9m biBlcXVhbF9mbjsKKwlpZ3RfbWFwX2hhc2hfZm4gaGFzaF9mbjsKKwlzdHJ1Y3QgaWd0X2hsaXN0 X2hlYWQgKmhlYWRzOworfTsKKworc3RydWN0IGlndF9tYXBfZW50cnkgeworCWNvbnN0IHZvaWQg KmtleTsKKwl2b2lkICp2YWx1ZTsKKwlzdHJ1Y3QgaWd0X2hsaXN0X25vZGUgbGluazsKK307CisK K3ZvaWQgX19pZ3RfbWFwX2luaXQoc3RydWN0IGlndF9tYXAgKm1hcCwgaWd0X21hcF9lcXVhbF9m biBlcV9mbiwKKwkJICBpZ3RfbWFwX2hhc2hfZm4gaGFzaF9mbiwgdWludDMyX3QgaW5pdGlhbF9i aXRzKTsKK3ZvaWQgaWd0X21hcF9hZGQoc3RydWN0IGlndF9tYXAgKm1hcCwgY29uc3Qgdm9pZCAq a2V5LCB2b2lkICp2YWx1ZSk7Cit2b2lkICppZ3RfbWFwX2RlbChzdHJ1Y3QgaWd0X21hcCAqbWFw LCBjb25zdCB2b2lkICprZXkpOwordm9pZCAqaWd0X21hcF9maW5kKHN0cnVjdCBpZ3RfbWFwICpt YXAsIGNvbnN0IHZvaWQgKmtleSk7Cit2b2lkIGlndF9tYXBfZnJlZShzdHJ1Y3QgaWd0X21hcCAq bWFwKTsKK2Jvb2wgaWd0X21hcF9lbXB0eShzdHJ1Y3QgaWd0X21hcCAqbWFwKTsKKworI2RlZmlu ZSBpZ3RfbWFwX2luaXQobWFwKSBfX2lndF9tYXBfaW5pdChtYXAsIE5VTEwsIE5VTEwsIDgpCisK KyNkZWZpbmUgSUdUX01BUF9DQVBBQ0lUWShtYXApICgxVUxMIDw8IG1hcC0+Y2FwYWNpdHlfYml0 cykKKworI2RlZmluZSBpZ3RfbWFwX2Zvcl9lYWNoX3NhZmUobWFwLCBia3QsIHRtcCwgb2JqKSBc CisJZm9yICgoYmt0KSA9IDAsIG9iaiA9IE5VTEw7IG9iaiA9PSBOVUxMICYmIChia3QpIDwgSUdU X01BUF9DQVBBQ0lUWShtYXApOyBcCisJKGJrdCkrKylcCisJaWd0X2hsaXN0X2Zvcl9lYWNoX2Vu dHJ5X3NhZmUob2JqLCB0bXAsICZtYXAtPmhlYWRzW2JrdF0sIGxpbmspCisKKyNkZWZpbmUgaWd0 X21hcF9mb3JfZWFjaChtYXAsIGJrdCwgb2JqKSBcCisJZm9yICgoYmt0KSA9IDAsIG9iaiA9IE5V TEw7IG9iaiA9PSBOVUxMICYmIChia3QpIDwgSUdUX01BUF9DQVBBQ0lUWShtYXApOyBcCisJKGJr dCkrKylcCisJaWd0X2hsaXN0X2Zvcl9lYWNoX2VudHJ5KG9iaiwgJm1hcC0+aGVhZHNbYmt0XSwg bGluaykKKworI2RlZmluZSBpZ3RfbWFwX2Zvcl9lYWNoX3Bvc3NpYmxlKG1hcCwgb2JqLCBrZXkp IFwKKwlpZ3RfaGxpc3RfZm9yX2VhY2hfZW50cnkob2JqLCBcCisJCSZtYXAtPmhlYWRzW21hcC0+ aGFzaF9mbihrZXksIG1hcC0+Y2FwYWNpdHlfYml0cyldLCBsaW5rKQorCisjZGVmaW5lIGlndF9t YXBfZm9yX2VhY2hfcG9zc2libGVfc2FmZShtYXAsIG9iaiwgdG1wLCBrZXkpIFwKKwlpZ3RfaGxp c3RfZm9yX2VhY2hfZW50cnlfc2FmZShvYmosIHRtcCwgXAorCQkmbWFwLT5oZWFkc1ttYXAtPmhh c2hfZm4oa2V5LCBtYXAtPmNhcGFjaXR5X2JpdHMpXSwgbGluaykKKworI2VuZGlmIC8qIElHVF9N QVBfSCAqLwpkaWZmIC0tZ2l0IGEvbGliL21lc29uLmJ1aWxkIGIvbGliL21lc29uLmJ1aWxkCmlu ZGV4IDAyZWNlZjUzZS4uYzJlMTc2NDQ3IDEwMDY0NAotLS0gYS9saWIvbWVzb24uYnVpbGQKKysr IGIvbGliL21lc29uLmJ1aWxkCkBAIC02MSw2ICs2MSw3IEBAIGxpYl9zb3VyY2VzID0gWwogCSdp Z3RfY29yZS5jJywKIAknaWd0X2RyYXcuYycsCiAJJ2lndF9saXN0LmMnLAorCSdpZ3RfbWFwLmMn LAogCSdpZ3RfcG0uYycsCiAJJ2lndF9kdW1teWxvYWQuYycsCiAJJ3V3aWxkbWF0L3V3aWxkbWF0 LmMnLAotLSAKMi4yNi4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXYK