From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Grytsov Subject: [PATCH v6 03/13] libxl: add vdispl device Date: Tue, 12 Sep 2017 16:48:08 +0300 Message-ID: <1505224098-19330-4-git-send-email-al1img@gmail.com> References: <1505224098-19330-1-git-send-email-al1img@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1drlYF-0005Sj-Bp for xen-devel@lists.xenproject.org; Tue, 12 Sep 2017 13:48:31 +0000 Received: by mail-lf0-f67.google.com with SMTP id q132so5369506lfe.4 for ; Tue, 12 Sep 2017 06:48:29 -0700 (PDT) In-Reply-To: <1505224098-19330-1-git-send-email-al1img@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: ian.jackson@eu.citrix.com, wei.liu2@citrix.com, Oleksandr Grytsov List-Id: xen-devel@lists.xenproject.org RnJvbTogT2xla3NhbmRyIEdyeXRzb3YgPG9sZWtzYW5kcl9ncnl0c292QGVwYW0uY29tPgoKU2ln bmVkLW9mZi1ieTogT2xla3NhbmRyIEdyeXRzb3YgPG9sZWtzYW5kcl9ncnl0c292QGVwYW0uY29t PgpBY2tlZC1ieTogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KLS0tCiB0b29scy9saWJ4 bC9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHRvb2xzL2xpYnhsL2xpYnhsLmgg ICAgICAgICAgICAgICAgICB8ICAyNCArKysKIHRvb2xzL2xpYnhsL2xpYnhsX2NyZWF0ZS5jICAg ICAgICAgICB8ICAgMSArCiB0b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oICAgICAgICAgfCAg IDEgKwogdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsICAgICAgICAgIHwgIDM2ICsrKysrCiB0 b29scy9saWJ4bC9saWJ4bF90eXBlc19pbnRlcm5hbC5pZGwgfCAgIDEgKwogdG9vbHMvbGlieGwv bGlieGxfdXRpbHMuaCAgICAgICAgICAgIHwgICA0ICsKIHRvb2xzL2xpYnhsL2xpYnhsX3ZkaXNw bC5jICAgICAgICAgICB8IDI4NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog OCBmaWxlcyBjaGFuZ2VkLCAzNTIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IHRvb2xzL2xpYnhsL2xpYnhsX3ZkaXNwbC5jCgpkaWZmIC0tZ2l0IGEvdG9v bHMvbGlieGwvTWFrZWZpbGUgYi90b29scy9saWJ4bC9NYWtlZmlsZQppbmRleCAwODJhZjhmLi41 NmY5MGUxIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9NYWtlZmlsZQorKysgYi90b29scy9saWJ4 bC9NYWtlZmlsZQpAQCAtMTM4LDcgKzEzOCw3IEBAIExJQlhMX09CSlMgPSBmbGV4YXJyYXkubyBs aWJ4bC5vIGxpYnhsX2NyZWF0ZS5vIGxpYnhsX2RtLm8gbGlieGxfcGNpLm8gXAogCQkJbGlieGxf ZG9tX3N1c3BlbmQubyBsaWJ4bF9kb21fc2F2ZS5vIGxpYnhsX3VzYi5vIFwKIAkJCWxpYnhsX3Z0 cG0ubyBsaWJ4bF9uaWMubyBsaWJ4bF9kaXNrLm8gbGlieGxfY29uc29sZS5vIFwKIAkJCWxpYnhs X2NwdXBvb2wubyBsaWJ4bF9tZW0ubyBsaWJ4bF9zY2hlZC5vIGxpYnhsX3RtZW0ubyBcCi0JCQls aWJ4bF85cGZzLm8gbGlieGxfZG9tYWluLm8gXAorCQkJbGlieGxfOXBmcy5vIGxpYnhsX2RvbWFp bi5vIGxpYnhsX3ZkaXNwbC5vIFwKICAgICAgICAgICAgICAgICAgICAgICAgICQoTElCWExfT0JK Uy15KQogTElCWExfT0JKUyArPSBsaWJ4bF9nZW5pZC5vCiBMSUJYTF9PQkpTICs9IF9saWJ4bF90 eXBlcy5vIGxpYnhsX2ZsYXNrLm8gX2xpYnhsX3R5cGVzX2ludGVybmFsLm8KZGlmZiAtLWdpdCBh L3Rvb2xzL2xpYnhsL2xpYnhsLmggYi90b29scy9saWJ4bC9saWJ4bC5oCmluZGV4IDgxMmI3ZWEu LmUzODYzNTcgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsLmgKKysrIGIvdG9vbHMvbGli eGwvbGlieGwuaApAQCAtMTg3Nyw2ICsxODc3LDMwIEBAIGxpYnhsX2RldmljZV92dHBtICpsaWJ4 bF9kZXZpY2VfdnRwbV9saXN0KGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwgaW50ICpu CiBpbnQgbGlieGxfZGV2aWNlX3Z0cG1fZ2V0aW5mbyhsaWJ4bF9jdHggKmN0eCwgdWludDMyX3Qg ZG9taWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlX3Z0cG0g KnZ0cG0sIGxpYnhsX3Z0cG1pbmZvICp2dHBtaW5mbyk7CiAKKy8qIFZpcnR1YWwgZGlzcGxheXMg Ki8KK2ludCBsaWJ4bF9kZXZpY2VfdmRpc3BsX2FkZChsaWJ4bF9jdHggKmN0eCwgdWludDMyX3Qg ZG9taWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlX3ZkaXNwbCAq ZGlzcGwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGlieGxfYXN5bmNvcF9o b3cgKmFvX2hvdykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBMSUJYTF9FWFRFUk5BTF9D QUxMRVJTX09OTFk7CitpbnQgbGlieGxfZGV2aWNlX3ZkaXNwbF9yZW1vdmUobGlieGxfY3R4ICpj dHgsIHVpbnQzMl90IGRvbWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhs X2RldmljZV92ZGlzcGwgKnZkaXNwbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBsaWJ4bF9hc3luY29wX2hvdyAqYW9faG93KQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExJQlhMX0VYVEVSTkFMX0NBTExFUlNfT05MWTsKK2ludCBsaWJ4bF9kZXZpY2VfdmRp c3BsX2Rlc3Ryb3kobGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kZXZpY2VfdmRpc3BsICp2ZGlzcGwsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpYnhsX2FzeW5jb3BfaG93ICphb19ob3cp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQlhMX0VYVEVSTkFMX0NBTExFUlNf T05MWTsKKworbGlieGxfZGV2aWNlX3ZkaXNwbCAqbGlieGxfZGV2aWNlX3ZkaXNwbF9saXN0KGxp YnhsX2N0eCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVpbnQzMl90IGRvbWlkLCBpbnQgKm51bSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMSUJYTF9FWFRFUk5BTF9DQUxMRVJTX09OTFk7Cit2b2lkIGxp YnhsX2RldmljZV92ZGlzcGxfbGlzdF9mcmVlKGxpYnhsX2RldmljZV92ZGlzcGwqIGxpc3QsIGlu dCBudW0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQlhMX0VYVEVSTkFM X0NBTExFUlNfT05MWTsKK2ludCBsaWJ4bF9kZXZpY2VfdmRpc3BsX2dldGluZm8obGlieGxfY3R4 ICpjdHgsIHVpbnQzMl90IGRvbWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs aWJ4bF9kZXZpY2VfdmRpc3BsICp2ZGlzcGwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxpYnhsX3ZkaXNwbGluZm8gKnZkaXNwbGluZm8pCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExJQlhMX0VYVEVSTkFMX0NBTExFUlNfT05MWTsKKwogLyogS2V5Ym9hcmQgKi8K IGludCBsaWJ4bF9kZXZpY2VfdmtiX2FkZChsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgZG9taWQs IGxpYnhsX2RldmljZV92a2IgKnZrYiwKICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBs aWJ4bF9hc3luY29wX2hvdyAqYW9faG93KQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxf Y3JlYXRlLmMgYi90b29scy9saWJ4bC9saWJ4bF9jcmVhdGUuYwppbmRleCBlZmQxNDU5Li5mMjBi YmY5IDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9jcmVhdGUuYworKysgYi90b29scy9s aWJ4bC9saWJ4bF9jcmVhdGUuYwpAQCAtMTQ0Niw2ICsxNDQ2LDcgQEAgY29uc3Qgc3RydWN0IGxp YnhsX2RldmljZV90eXBlICpkZXZpY2VfdHlwZV90YmxbXSA9IHsKICAgICAmbGlieGxfX3VzYmRl dl9kZXZ0eXBlLAogICAgICZsaWJ4bF9fcGNpZGV2X2RldnR5cGUsCiAgICAgJmxpYnhsX19kdGRl dl9kZXZ0eXBlLAorICAgICZsaWJ4bF9fdmRpc3BsX2RldnR5cGUsCiAgICAgTlVMTAogfTsKIApk aWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaCBiL3Rvb2xzL2xpYnhsL2xp YnhsX2ludGVybmFsLmgKaW5kZXggYzk0YTExNy4uYzZmNTg2OCAxMDA2NDQKLS0tIGEvdG9vbHMv bGlieGwvbGlieGxfaW50ZXJuYWwuaAorKysgYi90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5o CkBAIC0zNTYzLDYgKzM1NjMsNyBAQCBleHRlcm4gY29uc3Qgc3RydWN0IGxpYnhsX2RldmljZV90 eXBlIGxpYnhsX192dHBtX2RldnR5cGU7CiBleHRlcm4gY29uc3Qgc3RydWN0IGxpYnhsX2Rldmlj ZV90eXBlIGxpYnhsX191c2JjdHJsX2RldnR5cGU7CiBleHRlcm4gY29uc3Qgc3RydWN0IGxpYnhs X2RldmljZV90eXBlIGxpYnhsX191c2JkZXZfZGV2dHlwZTsKIGV4dGVybiBjb25zdCBzdHJ1Y3Qg bGlieGxfZGV2aWNlX3R5cGUgbGlieGxfX3BjaWRldl9kZXZ0eXBlOworZXh0ZXJuIGNvbnN0IHN0 cnVjdCBsaWJ4bF9kZXZpY2VfdHlwZSBsaWJ4bF9fdmRpc3BsX2RldnR5cGU7CiAKIGV4dGVybiBj b25zdCBzdHJ1Y3QgbGlieGxfZGV2aWNlX3R5cGUgKmRldmljZV90eXBlX3RibFtdOwogCmRpZmYg LS1naXQgYS90b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwgYi90b29scy9saWJ4bC9saWJ4bF90 eXBlcy5pZGwKaW5kZXggMTczZDcwYS4uNzU2ZTEyMCAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwv bGlieGxfdHlwZXMuaWRsCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3R5cGVzLmlkbApAQCAtNzc5 LDYgKzc3OSwyMCBAQCBsaWJ4bF9kZXZpY2VfY2hhbm5lbCA9IFN0cnVjdCgiZGV2aWNlX2NoYW5u ZWwiLCBbCiAgICAgICAgICAgIF0pKSwKIF0pCiAKK2xpYnhsX2Nvbm5lY3Rvcl9wYXJhbSA9IFN0 cnVjdCgiY29ubmVjdG9yX3BhcmFtIiwgWworICAgICgiaWQiLCBzdHJpbmcpLAorICAgICgid2lk dGgiLCB1aW50MzIpLAorICAgICgiaGVpZ2h0IiwgdWludDMyKQorICAgIF0pCisKK2xpYnhsX2Rl dmljZV92ZGlzcGwgPSBTdHJ1Y3QoImRldmljZV92ZGlzcGwiLCBbCisgICAgKCJiYWNrZW5kX2Rv bWlkIiwgbGlieGxfZG9taWQpLAorICAgICgiYmFja2VuZF9kb21uYW1lIiwgc3RyaW5nKSwKKyAg ICAoImRldmlkIiwgbGlieGxfZGV2aWQpLAorICAgICgiYmVfYWxsb2MiLCBib29sKSwKKyAgICAo ImNvbm5lY3RvcnMiLCBBcnJheShsaWJ4bF9jb25uZWN0b3JfcGFyYW0sICJudW1fY29ubmVjdG9y cyIpKQorICAgIF0pCisKIGxpYnhsX2RvbWFpbl9jb25maWcgPSBTdHJ1Y3QoImRvbWFpbl9jb25m aWciLCBbCiAgICAgKCJjX2luZm8iLCBsaWJ4bF9kb21haW5fY3JlYXRlX2luZm8pLAogICAgICgi Yl9pbmZvIiwgbGlieGxfZG9tYWluX2J1aWxkX2luZm8pLApAQCAtNzkyLDYgKzgwNiw3IEBAIGxp YnhsX2RvbWFpbl9jb25maWcgPSBTdHJ1Y3QoImRvbWFpbl9jb25maWciLCBbCiAgICAgKCJ2a2Jz IiwgQXJyYXkobGlieGxfZGV2aWNlX3ZrYiwgIm51bV92a2JzIikpLAogICAgICgidnRwbXMiLCBB cnJheShsaWJ4bF9kZXZpY2VfdnRwbSwgIm51bV92dHBtcyIpKSwKICAgICAoInA5cyIsIEFycmF5 KGxpYnhsX2RldmljZV9wOSwgIm51bV9wOXMiKSksCisgICAgKCJ2ZGlzcGxzIiwgQXJyYXkobGli eGxfZGV2aWNlX3ZkaXNwbCwgIm51bV92ZGlzcGxzIikpLAogICAgICMgYSBjaGFubmVsIG1hbmlm ZXN0cyBhcyBhIGNvbnNvbGUgd2l0aCBhIG5hbWUsCiAgICAgIyBzZWUgZG9jcy9taXNjL2NoYW5u ZWxzLnR4dAogICAgICgiY2hhbm5lbHMiLCBBcnJheShsaWJ4bF9kZXZpY2VfY2hhbm5lbCwgIm51 bV9jaGFubmVscyIpKSwKQEAgLTg4OCw2ICs5MDMsMjcgQEAgbGlieGxfcGh5c2luZm8gPSBTdHJ1 Y3QoInBoeXNpbmZvIiwgWwogICAgICgiY2FwX2h2bV9kaXJlY3RpbyIsIGJvb2wpLAogICAgIF0s IGRpcj1ESVJfT1VUKQogCitsaWJ4bF9jb25uZWN0b3JpbmZvID0gU3RydWN0KCJjb25uZWN0b3Jp bmZvIiwgWworICAgICgiaWQiLCBzdHJpbmcpLAorICAgICgid2lkdGgiLCB1aW50MzIpLAorICAg ICgiaGVpZ2h0IiwgdWludDMyKSwKKyAgICAoInJlcV9ldnRjaCIsIGludGVnZXIpLAorICAgICgi cmVxX3JyZWYiLCBpbnRlZ2VyKSwKKyAgICAoImV2dF9ldnRjaCIsIGludGVnZXIpLAorICAgICgi ZXZ0X3JyZWYiLCBpbnRlZ2VyKSwKKyAgICBdLCBkaXI9RElSX09VVCkKKworbGlieGxfdmRpc3Bs aW5mbyA9IFN0cnVjdCgidmRpc3BsaW5mbyIsIFsKKyAgICAoImJhY2tlbmQiLCBzdHJpbmcpLAor ICAgICgiYmFja2VuZF9pZCIsIHVpbnQzMiksCisgICAgKCJmcm9udGVuZCIsIHN0cmluZyksCisg ICAgKCJmcm9udGVuZF9pZCIsIHVpbnQzMiksCisgICAgKCJkZXZpZCIsIGxpYnhsX2RldmlkKSwK KyAgICAoInN0YXRlIiwgaW50ZWdlciksCisgICAgKCJiZV9hbGxvYyIsIGJvb2wpLAorICAgICgi Y29ubmVjdG9ycyIsIEFycmF5KGxpYnhsX2Nvbm5lY3RvcmluZm8sICJudW1fY29ubmVjdG9ycyIp KQorICAgIF0sIGRpcj1ESVJfT1VUKQorCiAjIE5VTUEgbm9kZSBjaGFyYWN0ZXJpc3RpY3M6IHNp emUgYW5kIGZyZWUgYXJlIGhvdyBtdWNoIG1lbW9yeSBpdCBoYXMsIGFuZCBob3cKICMgbXVjaCBv ZiBpdCBpcyBmcmVlLCByZXNwZWN0aXZlbHkuIGRpc3RzIGlzIGFuIGFycmF5IG9mIGRpc3RhbmNl cyBmcm9tIHRoaXMKICMgbm9kZSB0byBlYWNoIG90aGVyIG5vZGUuCmRpZmYgLS1naXQgYS90b29s cy9saWJ4bC9saWJ4bF90eXBlc19pbnRlcm5hbC5pZGwgYi90b29scy9saWJ4bC9saWJ4bF90eXBl c19pbnRlcm5hbC5pZGwKaW5kZXggN2RjNGQwZi4uNjczYTZkNSAxMDA2NDQKLS0tIGEvdG9vbHMv bGlieGwvbGlieGxfdHlwZXNfaW50ZXJuYWwuaWRsCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3R5 cGVzX2ludGVybmFsLmlkbApAQCAtMjYsNiArMjYsNyBAQCBsaWJ4bF9fZGV2aWNlX2tpbmQgPSBF bnVtZXJhdGlvbigiZGV2aWNlX2tpbmQiLCBbCiAgICAgKDksICJWVVNCIiksCiAgICAgKDEwLCAi UVVTQiIpLAogICAgICgxMSwgIjlQRlMiKSwKKyAgICAoMTIsICJWRElTUEwiKSwKICAgICBdKQog CiBsaWJ4bF9fY29uc29sZV9iYWNrZW5kID0gRW51bWVyYXRpb24oImNvbnNvbGVfYmFja2VuZCIs IFsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX3V0aWxzLmggYi90b29scy9saWJ4bC9s aWJ4bF91dGlscy5oCmluZGV4IDI1NzczZDguLjllNzQzZGMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xp YnhsL2xpYnhsX3V0aWxzLmgKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfdXRpbHMuaApAQCAtNzgs NiArNzgsMTAgQEAgaW50IGxpYnhsX2RldmlkX3RvX2RldmljZV92dHBtKGxpYnhsX2N0eCAqY3R4 LCB1aW50MzJfdCBkb21pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGV2 aWQsIGxpYnhsX2RldmljZV92dHBtICp2dHBtKTsKIGludCBsaWJ4bF9kZXZpZF90b19kZXZpY2Vf dXNiY3RybChsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgZG9taWQsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW50IGRldmlkLCBsaWJ4bF9kZXZpY2VfdXNiY3RybCAqdXNiY3Ry bCk7CisKK2ludCBsaWJ4bF9kZXZpZF90b19kZXZpY2VfdmRpc3BsKGxpYnhsX2N0eCAqY3R4LCB1 aW50MzJfdCBkb21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXZp ZCwgbGlieGxfZGV2aWNlX3ZkaXNwbCAqdmRpc3BsKTsKKwogaW50IGxpYnhsX2N0cmxwb3J0X3Rv X2RldmljZV91c2JkZXYobGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGN0cmwsIGludCBwb3J0LAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlX3VzYmRldiAqdXNiZGV2KTsK ZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX3ZkaXNwbC5jIGIvdG9vbHMvbGlieGwvbGli eGxfdmRpc3BsLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTc0MGM4OQot LS0gL2Rldi9udWxsCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3ZkaXNwbC5jCkBAIC0wLDAgKzEs Mjg0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEVQQU0gU3lzdGVtcyBJbmMuCisgKgor ICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZAorICogYnkgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgdmVyc2lvbiAyLjEgb25seS4gd2l0aCB0aGUgc3BlY2lhbAorICogZXhj ZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIGZpbGUgTElDRU5TRS4KKyAqCisgKiBUaGlz IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqLworCisjaW5jbHVkZSAibGlieGxfaW50ZXJuYWwuaCIK Kworc3RhdGljIGludCBsaWJ4bF9fZGV2aWNlX3ZkaXNwbF9zZXRkZWZhdWx0KGxpYnhsX19nYyAq Z2MsIHVpbnQzMl90IGRvbWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxpYnhsX2RldmljZV92ZGlzcGwgKnZkaXNwbCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBib29sIGhvdHBsdWcpCit7CisgICAgcmV0dXJuIGxpYnhs X19yZXNvbHZlX2RvbWlkKGdjLCB2ZGlzcGwtPmJhY2tlbmRfZG9tbmFtZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJnZkaXNwbC0+YmFja2VuZF9kb21pZCk7Cit9CisKK3N0YXRp YyBpbnQgbGlieGxfX2RldmljZV9mcm9tX3ZkaXNwbChsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBk b21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kZXZpY2Vf dmRpc3BsICp2ZGlzcGwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGli eGxfX2RldmljZSAqZGV2aWNlKQoreworICAgZGV2aWNlLT5iYWNrZW5kX2RldmlkICAgPSB2ZGlz cGwtPmRldmlkOworICAgZGV2aWNlLT5iYWNrZW5kX2RvbWlkICAgPSB2ZGlzcGwtPmJhY2tlbmRf ZG9taWQ7CisgICBkZXZpY2UtPmJhY2tlbmRfa2luZCAgICA9IExJQlhMX19ERVZJQ0VfS0lORF9W RElTUEw7CisgICBkZXZpY2UtPmRldmlkICAgICAgICAgICA9IHZkaXNwbC0+ZGV2aWQ7CisgICBk ZXZpY2UtPmRvbWlkICAgICAgICAgICA9IGRvbWlkOworICAgZGV2aWNlLT5raW5kICAgICAgICAg ICAgPSBMSUJYTF9fREVWSUNFX0tJTkRfVkRJU1BMOworCisgICByZXR1cm4gMDsKK30KKworc3Rh dGljIGludCBsaWJ4bF9fdmRpc3BsX2Zyb21feGVuc3RvcmUobGlieGxfX2djICpnYywgY29uc3Qg Y2hhciAqbGlieGxfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxpYnhsX2RldmlkIGRldmlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGlieGxfZGV2aWNlX3ZkaXNwbCAqdmRpc3BsKQoreworICAgIGNoYXIgKmJlX3BhdGg7CisK KyAgICB2ZGlzcGwtPmRldmlkID0gZGV2aWQ7CisgICAgYmVfcGF0aCA9IGxpYnhsX194c19yZWFk KGdjLCBYQlRfTlVMTCwgR0NTUFJJTlRGKCIlcy9iYWNrZW5kIiwgbGlieGxfcGF0aCkpOworCisg ICAgcmV0dXJuIGxpYnhsX19iYWNrZW5kcGF0aF9wYXJzZV9kb21pZChnYywgYmVfcGF0aCwgJnZk aXNwbC0+YmFja2VuZF9kb21pZCk7Cit9CisKK3N0YXRpYyB2b2lkIGxpYnhsX191cGRhdGVfY29u ZmlnX3ZkaXNwbChsaWJ4bF9fZ2MgKmdjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxpYnhsX2RldmljZV92ZGlzcGwgKmRzdCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kZXZpY2VfdmRpc3BsICpzcmMpCit7CisgICAgZHN0 LT5kZXZpZCA9IHNyYy0+ZGV2aWQ7CisgICAgZHN0LT5iZV9hbGxvYyA9IHNyYy0+YmVfYWxsb2M7 Cit9CisKK3N0YXRpYyBpbnQgbGlieGxfZGV2aWNlX3ZkaXNwbF9jb21wYXJlKGxpYnhsX2Rldmlj ZV92ZGlzcGwgKmQxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGli eGxfZGV2aWNlX3ZkaXNwbCAqZDIpCit7CisgICAgcmV0dXJuIENPTVBBUkVfREVWSUQoZDEsIGQy KTsKK30KKworc3RhdGljIHZvaWQgbGlieGxfX2RldmljZV92ZGlzcGxfYWRkKGxpYnhsX19lZ2Mg KmVnYywgdWludDMyX3QgZG9taWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGlieGxfZGV2aWNlX3ZkaXNwbCAqdmRpc3BsLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxpYnhsX19hb19kZXZpY2UgKmFvZGV2KQoreworICAgIGxpYnhsX19kZXZp Y2VfYWRkX2FzeW5jKGVnYywgZG9taWQsICZsaWJ4bF9fdmRpc3BsX2RldnR5cGUsIHZkaXNwbCwg YW9kZXYpOworfQorCitzdGF0aWMgaW50IGxpYnhsX19zZXRfeGVuc3RvcmVfdmRpc3BsKGxpYnhs X19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsaWJ4bF9kZXZpY2VfdmRpc3BsICp2ZGlzcGwsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGZsZXhhcnJheV90ICpiYWNrLCBmbGV4YXJyYXlfdCAqZnJvbnQs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXhhcnJheV90ICpyb19m cm9udCkKK3sKKyAgICBpbnQgaTsKKworICAgIGZsZXhhcnJheV9hcHBlbmRfcGFpcihyb19mcm9u dCwgImJlLWFsbG9jIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgR0NTUFJJTlRGKCIlZCIs IHZkaXNwbC0+YmVfYWxsb2MpKTsKKworICAgIGZvciAoaSA9IDA7IGkgPCB2ZGlzcGwtPm51bV9j b25uZWN0b3JzOyBpKyspIHsKKyAgICAgICAgZmxleGFycmF5X2FwcGVuZF9wYWlyKHJvX2Zyb250 LCBHQ1NQUklOVEYoIiVkL3Jlc29sdXRpb24iLCBpKSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEdDU1BSSU5URigiJWR4JWQiLCB2ZGlzcGwtPmNvbm5lY3RvcnNbaV0ud2lkdGgsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmRpc3BsLT5j b25uZWN0b3JzW2ldLmhlaWdodCkpOworICAgICAgICBmbGV4YXJyYXlfYXBwZW5kX3BhaXIocm9f ZnJvbnQsIEdDU1BSSU5URigiJWQvaWQiLCBpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHZkaXNwbC0+Y29ubmVjdG9yc1tpXS5pZCk7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9 CisKK2xpYnhsX2RldmljZV92ZGlzcGwgKmxpYnhsX2RldmljZV92ZGlzcGxfbGlzdChsaWJ4bF9j dHggKmN0eCwgdWludDMyX3QgZG9taWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW50ICpudW0pCit7CisgICAgbGlieGxfZGV2aWNlX3ZkaXNwbCAqcjsK KworICAgIEdDX0lOSVQoY3R4KTsKKworICAgIHIgPSBsaWJ4bF9fZGV2aWNlX2xpc3QoZ2MsICZs aWJ4bF9fdmRpc3BsX2RldnR5cGUsIGRvbWlkLCAidmRpc3BsIiwgbnVtKTsKKworICAgIEdDX0ZS RUU7CisKKyAgICByZXR1cm4gcjsKK30KKwordm9pZCBsaWJ4bF9kZXZpY2VfdmRpc3BsX2xpc3Rf ZnJlZShsaWJ4bF9kZXZpY2VfdmRpc3BsKiBsaXN0LCBpbnQgbnVtKQoreworICAgIGxpYnhsX19k ZXZpY2VfbGlzdF9mcmVlKCZsaWJ4bF9fdmRpc3BsX2RldnR5cGUsIGxpc3QsIG51bSk7Cit9CisK K3N0YXRpYyBpbnQgbGlieGxfX2RldmljZV92ZGlzcGxfZ2V0Y29ubmVjdG9ycyhsaWJ4bF9jdHgg KmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBjaGFyICpwYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxpYnhsX3ZkaXNwbGluZm8gKmluZm8pCit7CisgICAgR0NfSU5JVChjdHgpOworICAgIGNo YXIgKmNvbm5lY3RvciA9IE5VTEw7CisgICAgY2hhciAqY29ubmVjdG9yX3BhdGg7CisgICAgaW50 IGksIHJjOworCisgICAgaW5mby0+bnVtX2Nvbm5lY3RvcnMgPSAwOworCisgICAgY29ubmVjdG9y X3BhdGggPSBHQ1NQUklOVEYoIiVzLyVkIiwgcGF0aCwgaW5mby0+bnVtX2Nvbm5lY3RvcnMpOwor CisgICAgd2hpbGUgKChjb25uZWN0b3IgPSB4c19yZWFkKGN0eC0+eHNoLCBYQlRfTlVMTCwgY29u bmVjdG9yX3BhdGgsIE5VTEwpKSAhPQorICAgICAgICAgICBOVUxMKSB7CisgICAgICAgIGZyZWUo Y29ubmVjdG9yKTsKKyAgICAgICAgY29ubmVjdG9yX3BhdGggPSBHQ1NQUklOVEYoIiVzLyVkIiwg cGF0aCwgKytpbmZvLT5udW1fY29ubmVjdG9ycyk7CisgICAgfQorCisgICAgaW5mby0+Y29ubmVj dG9ycyA9IGxpYnhsX19jYWxsb2MoTk9HQywgaW5mby0+bnVtX2Nvbm5lY3RvcnMsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKCppbmZvLT5jb25uZWN0b3JzKSk7 CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgaW5mby0+bnVtX2Nvbm5lY3RvcnM7IGkrKykgeworICAg ICAgICBjaGFyICp2YWx1ZTsKKyAgICAgICAgY2hhciAqdmFsdWVfcGF0aDsKKworICAgICAgICB2 YWx1ZV9wYXRoID0gR0NTUFJJTlRGKCIlcy8lZC9pZCIsIHBhdGgsIGkpOworICAgICAgICBpbmZv LT5jb25uZWN0b3JzW2ldLmlkID0geHNfcmVhZChjdHgtPnhzaCwgWEJUX05VTEwsIHZhbHVlX3Bh dGgsIE5VTEwpOworICAgICAgICBpZiAoaW5mby0+Y29ubmVjdG9yc1tpXS5pZCA9PSBOVUxMKSB7 IHJjID0gRVJST1JfRkFJTDsgZ290byBvdXQ7IH0KKworICAgICAgICB2YWx1ZV9wYXRoID0gR0NT UFJJTlRGKCIlcy8lZC9yZXNvbHV0aW9uIiwgcGF0aCwgaSk7CisgICAgICAgIHZhbHVlID0geHNf cmVhZChjdHgtPnhzaCwgWEJUX05VTEwsIHZhbHVlX3BhdGgsIE5VTEwpOworICAgICAgICBpZiAo dmFsdWUgPT0gTlVMTCkgeyByYyA9IEVSUk9SX0ZBSUw7IGdvdG8gb3V0OyB9CisKKyAgICAgICAg cmMgPSBzc2NhbmYodmFsdWUsICIldXgldSIsICZpbmZvLT5jb25uZWN0b3JzW2ldLndpZHRoLAor ICAgICAgICAgICAgICAgICAgICAmaW5mby0+Y29ubmVjdG9yc1tpXS5oZWlnaHQpOworICAgICAg ICBmcmVlKHZhbHVlKTsKKworICAgICAgICBpZiAocmMgIT0gMikgeworICAgICAgICAgICAgcmMg PSBFUlJPUl9GQUlMOyBnb3RvIG91dDsKKyAgICAgICAgfQorCisgICAgICAgIHZhbHVlX3BhdGgg PSBHQ1NQUklOVEYoIiVzLyVkL3JlcS1yaW5nLXJlZiIsIHBhdGgsIGkpOworICAgICAgICB2YWx1 ZSA9IHhzX3JlYWQoY3R4LT54c2gsIFhCVF9OVUxMLCB2YWx1ZV9wYXRoLCBOVUxMKTsKKyAgICAg ICAgaW5mby0+Y29ubmVjdG9yc1tpXS5yZXFfcnJlZiA9IHZhbHVlID8gc3RydG91bCh2YWx1ZSwg TlVMTCwgMTApIDogLTE7CisgICAgICAgIGZyZWUodmFsdWUpOworCisgICAgICAgIHZhbHVlX3Bh dGggPSBHQ1NQUklOVEYoIiVzLyVkL3JlcS1ldmVudC1jaGFubmVsIiwgcGF0aCwgaSk7CisgICAg ICAgIHZhbHVlID0geHNfcmVhZChjdHgtPnhzaCwgWEJUX05VTEwsIHZhbHVlX3BhdGgsIE5VTEwp OworICAgICAgICBpbmZvLT5jb25uZWN0b3JzW2ldLnJlcV9ldnRjaCA9IHZhbHVlID8gc3RydG91 bCh2YWx1ZSwgTlVMTCwgMTApIDogLTE7CisgICAgICAgIGZyZWUodmFsdWUpOworCisgICAgICAg IHZhbHVlX3BhdGggPSBHQ1NQUklOVEYoIiVzLyVkL2V2dC1yaW5nLXJlZiIsIHBhdGgsIGkpOwor ICAgICAgICB2YWx1ZSA9IHhzX3JlYWQoY3R4LT54c2gsIFhCVF9OVUxMLCB2YWx1ZV9wYXRoLCBO VUxMKTsKKyAgICAgICAgaW5mby0+Y29ubmVjdG9yc1tpXS5ldnRfcnJlZiA9IHZhbHVlID8gc3Ry dG91bCh2YWx1ZSwgTlVMTCwgMTApIDogLTE7CisgICAgICAgIGZyZWUodmFsdWUpOworCisgICAg ICAgIHZhbHVlX3BhdGggPSBHQ1NQUklOVEYoIiVzLyVkL2V2dC1ldmVudC1jaGFubmVsIiwgcGF0 aCwgaSk7CisgICAgICAgIHZhbHVlID0geHNfcmVhZChjdHgtPnhzaCwgWEJUX05VTEwsIHZhbHVl X3BhdGgsIE5VTEwpOworICAgICAgICBpbmZvLT5jb25uZWN0b3JzW2ldLmV2dF9ldnRjaCA9IHZh bHVlID8gc3RydG91bCh2YWx1ZSwgTlVMTCwgMTApIDogLTE7CisgICAgICAgIGZyZWUodmFsdWUp OworICAgIH0KKworICAgIHJjID0gMDsKKworb3V0OgorICAgIHJldHVybiByYzsKK30KKworaW50 IGxpYnhsX2RldmljZV92ZGlzcGxfZ2V0aW5mbyhsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgZG9t aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2RldmljZV92ZGlzcGwg KnZkaXNwbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfdmRpc3BsaW5m byAqaW5mbykKK3sKKyAgICBHQ19JTklUKGN0eCk7CisgICAgY2hhciAqbGlieGxfcGF0aCwgKmRv bXBhdGgsICpkZXZwYXRoOworICAgIGNoYXIgKnZhbDsKKyAgICBpbnQgcmM7CisKKyAgICBsaWJ4 bF92ZGlzcGxpbmZvX2luaXQoaW5mbyk7CisgICAgZG9tcGF0aCA9IGxpYnhsX194c19nZXRfZG9t cGF0aChnYywgZG9taWQpOworICAgIGluZm8tPmRldmlkID0gdmRpc3BsLT5kZXZpZDsKKworICAg IGRldnBhdGggPSBHQ1NQUklOVEYoIiVzL2RldmljZS92ZGlzcGwvJWQiLCBkb21wYXRoLCBpbmZv LT5kZXZpZCk7CisgICAgbGlieGxfcGF0aCA9IEdDU1BSSU5URigiJXMvZGV2aWNlL3ZkaXNwbC8l ZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9feHNfbGlieGxfcGF0aChnYywg ZG9taWQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mby0+ZGV2aWQpOworICAgIGlu Zm8tPmJhY2tlbmQgPSB4c19yZWFkKGN0eC0+eHNoLCBYQlRfTlVMTCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBHQ1NQUklOVEYoIiVzL2JhY2tlbmQiLCBsaWJ4bF9wYXRoKSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyAgICBpZiAoIWluZm8tPmJhY2tlbmQpIHsg cmMgPSBFUlJPUl9GQUlMOyBnb3RvIG91dDsgfQorCisgICAgcmMgPSBsaWJ4bF9fYmFja2VuZHBh dGhfcGFyc2VfZG9taWQoZ2MsIGluZm8tPmJhY2tlbmQsICZpbmZvLT5iYWNrZW5kX2lkKTsKKyAg ICBpZiAocmMpIGdvdG8gb3V0OworCisgICAgdmFsID0gbGlieGxfX3hzX3JlYWQoZ2MsIFhCVF9O VUxMLCBHQ1NQUklOVEYoIiVzL3N0YXRlIiwgZGV2cGF0aCkpOworICAgIGluZm8tPnN0YXRlID0g dmFsID8gc3RydG91bCh2YWwsIE5VTEwsIDEwKSA6IC0xOworCisgICAgaW5mby0+ZnJvbnRlbmQg PSB4c19yZWFkKGN0eC0+eHNoLCBYQlRfTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgR0NTUFJJTlRGKCIlcy9mcm9udGVuZCIsIGxpYnhsX3BhdGgpLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBOVUxMKTsKKyAgICBpbmZvLT5mcm9udGVuZF9pZCA9IGRvbWlkOworCisg ICAgdmFsID0gbGlieGxfX3hzX3JlYWQoZ2MsIFhCVF9OVUxMLCBHQ1NQUklOVEYoIiVzL2JlLWFs bG9jIiwgZGV2cGF0aCkpOworICAgIGluZm8tPmJlX2FsbG9jID0gdmFsID8gc3RydG91bCh2YWws IE5VTEwsIDEwKSA6IDA7CisKKyAgICByYyA9IGxpYnhsX19kZXZpY2VfdmRpc3BsX2dldGNvbm5l Y3RvcnMoY3R4LCBkZXZwYXRoLCBpbmZvKTsKKyAgICBpZiAocmMpIGdvdG8gb3V0OworCisgICAg cmMgPSAwOworCitvdXQ6CisgICAgIEdDX0ZSRUU7CisgICAgIHJldHVybiByYzsKK30KKworaW50 IGxpYnhsX2RldmlkX3RvX2RldmljZV92ZGlzcGwobGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IGRv bWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRldmlkLCBsaWJ4bF9k ZXZpY2VfdmRpc3BsICp2ZGlzcGwpCit7CisgICAgR0NfSU5JVChjdHgpOworCisgICAgbGlieGxf ZGV2aWNlX3ZkaXNwbCAqdmRpc3BscyA9IE5VTEw7CisgICAgaW50IG4sIGk7CisgICAgaW50IHJj OworCisgICAgbGlieGxfZGV2aWNlX3ZkaXNwbF9pbml0KHZkaXNwbCk7CisKKyAgICB2ZGlzcGxz ID0gbGlieGxfX2RldmljZV9saXN0KGdjLCAmbGlieGxfX3ZkaXNwbF9kZXZ0eXBlLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9taWQsICJ2ZGlzcGwiLCAmbik7CisKKyAgICBp ZiAoIXZkaXNwbHMpIHsgcmMgPSBFUlJPUl9OT1RGT1VORDsgZ290byBvdXQ7IH0KKworICAgIGZv ciAoaSA9IDA7IGkgPCBuOyArK2kpIHsKKyAgICAgICAgaWYgKGRldmlkID09IHZkaXNwbHNbaV0u ZGV2aWQpIHsKKyAgICAgICAgICAgIGxpYnhsX2RldmljZV92ZGlzcGxfY29weShjdHgsIHZkaXNw bCwgJnZkaXNwbHNbaV0pOworICAgICAgICAgICAgcmMgPSAwOworICAgICAgICAgICAgZ290byBv dXQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByYyA9IEVSUk9SX05PVEZPVU5EOworCitvdXQ6 CisKKyAgICBpZiAodmRpc3BscykKKyAgICAgICAgbGlieGxfX2RldmljZV9saXN0X2ZyZWUoJmxp YnhsX192ZGlzcGxfZGV2dHlwZSwgdmRpc3Bscywgbik7CisKKyAgICBHQ19GUkVFOworICAgIHJl dHVybiByYzsKK30KKworTElCWExfREVGSU5FX0RFVklDRV9BREQodmRpc3BsKQorc3RhdGljIExJ QlhMX0RFRklORV9ERVZJQ0VTX0FERCh2ZGlzcGwpCitMSUJYTF9ERUZJTkVfREVWSUNFX1JFTU9W RSh2ZGlzcGwpCitzdGF0aWMgTElCWExfREVGSU5FX1VQREFURV9ERVZJRCh2ZGlzcGwsICJ2ZGlz cGwiKQorCitERUZJTkVfREVWSUNFX1RZUEVfU1RSVUNUKHZkaXNwbCwKKyAgICAudXBkYXRlX2Nv bmZpZyA9ICh2b2lkICgqKShsaWJ4bF9fZ2MgKiwgdm9pZCAqLCB2b2lkICopKQorICAgICAgICAg ICAgICAgICAgICAgbGlieGxfX3VwZGF0ZV9jb25maWdfdmRpc3BsLAorICAgIC5mcm9tX3hlbnN0 b3JlID0gKGludCAoKikobGlieGxfX2djICosIGNvbnN0IGNoYXIgKiwgbGlieGxfZGV2aWQsIHZv aWQgKikpCisgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fdmRpc3BsX2Zyb21feGVuc3RvcmUs CisgICAgLnNldF94ZW5zdG9yZV9jb25maWcgPSAoaW50ICgqKShsaWJ4bF9fZ2MgKiwgdWludDMy X3QsIHZvaWQgKiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXhhcnJh eV90ICpiYWNrLCBmbGV4YXJyYXlfdCAqZnJvbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBmbGV4YXJyYXlfdCAqcm9fZnJvbnQpKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGlieGxfX3NldF94ZW5zdG9yZV92ZGlzcGwKKyk7CisKKy8qCisgKiBMb2NhbCB2YXJp YWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogaW5kZW50LXRhYnMt bW9kZTogbmlsCisgKiBFbmQ6CisgKi8KLS0gCjIuNy40CgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2 ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==