From mboxrd@z Thu Jan 1 00:00:00 1970 From: Changlong Xie Subject: [PATCH v13 20/26] Support colo mode for qemu disk Date: Fri, 25 Mar 2016 14:44:27 +0800 Message-ID: <1458888273-7469-21-git-send-email-xiecl.fnst@cn.fujitsu.com> References: <1458888273-7469-1-git-send-email-xiecl.fnst@cn.fujitsu.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1458888273-7469-1-git-send-email-xiecl.fnst@cn.fujitsu.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen devel , Konrad Rzeszutek Wilk , Andrew Cooper , Ian Campbell , Ian Jackson , Wei Liu Cc: Lars Kurth , Changlong Xie , Wen Congyang , Li Zhijian , Gui Jianfeng , Jiang Yunhong , Dong Eddie , Anthony Perard , Shriram Rajagopalan , Yang Hongyang List-Id: xen-devel@lists.xenproject.org RnJvbTogV2VuIENvbmd5YW5nIDx3ZW5jeUBjbi5mdWppdHN1LmNvbT4KClVzYWdlOiBkaXNrID0g WycuLi4sY29sbyxjb2xvLWhvc3Q9eHh4LGNvbG8tcG9ydD14eHgsY29sby1leHBvcnQ9eHh4LGFj dGl2ZS1kaXNrPXh4eCxoaWRkZW4tZGlzaz14eHguLi4nXQpGb3IgUUVNVSBibG9jayByZXBsaWNh dGlvbiBkZXRhaWxzOgpodHRwOi8vd2lraS5xZW11Lm9yZy9GZWF0dXJlcy9CbG9ja1JlcGxpY2F0 aW9uCgpOb3RlOiB3ZSBqdXN0IGludHJvZHVjZSBDT0xPIGZyYW1ld29yaywgYnV0IGRvbid0IGlt cGxlbWVudCBDT0xPCm9wZXJhdGlvbnMgaW4gdGhpcyBwYXRjaC4KClNpZ25lZC1vZmYtYnk6IFdl biBDb25neWFuZyA8d2VuY3lAY24uZnVqaXRzdS5jb20+ClNpZ25lZC1vZmYtYnk6IFlhbmcgSG9u Z3lhbmcgPGhvbmd5YW5nLnlhbmdAZWFzeXN0YWNrLmNuPgpTaWduZWQtb2ZmLWJ5OiBDaGFuZ2xv bmcgWGllIDx4aWVjbC5mbnN0QGNuLmZ1aml0c3UuY29tPgotLS0KIGRvY3MvbWFuL3hsLnBvZC4x ICAgICAgICAgICAgICAgICAgIHwgIDM4ICsrKysrKysrKystLQogZG9jcy9taXNjL3hsLWRpc2st Y29uZmlndXJhdGlvbi50eHQgfCAgNTMgKysrKysrKysrKysrKysrKysKIHRvb2xzL2xpYnhsL2xp YnhsLmMgICAgICAgICAgICAgICAgIHwgIDUxICsrKysrKysrKysrKysrKy0KIHRvb2xzL2xpYnhs L2xpYnhsX2NyZWF0ZS5jICAgICAgICAgIHwgIDI2ICsrKysrKysrLQogdG9vbHMvbGlieGwvbGli eGxfZGV2aWNlLmMgICAgICAgICAgfCAgMTEgKysrKwogdG9vbHMvbGlieGwvbGlieGxfZG0uYyAg ICAgICAgICAgICAgfCAxMTMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiB0 b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwgICAgICAgICB8ICAgNyArKysKIHRvb2xzL2xpYnhs L2xpYnhsdV9kaXNrX2wubCAgICAgICAgIHwgIDE3ICsrKysrKwogOCBmaWxlcyBjaGFuZ2VkLCAz MDggaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2NzL21hbi94 bC5wb2QuMSBiL2RvY3MvbWFuL3hsLnBvZC4xCmluZGV4IGE5OTJhNDUuLjY3ODg0NjUgMTAwNjQ0 Ci0tLSBhL2RvY3MvbWFuL3hsLnBvZC4xCisrKyBiL2RvY3MvbWFuL3hsLnBvZC4xCkBAIC00NTAs MTIgKzQ1MCw0MCBAQCBQcmludCBodWdlICghKSBhbW91bnQgb2YgZGVidWcgZHVyaW5nIHRoZSBt aWdyYXRpb24gcHJvY2Vzcy4KIEVuYWJsZSBSZW11cyBIQSBvciBDT0xPIEhBIGZvciBkb21haW4u IEJ5IGRlZmF1bHQgQjx4bD4gcmVsaWVzIG9uIHNzaCBhcyBhCiB0cmFuc3BvcnQgbWVjaGFuaXNt IGJldHdlZW4gdGhlIHR3byBob3N0cy4KIAotTi5COiBSZW11cyBzdXBwb3J0IGluIHhsIGlzIHN0 aWxsIGluIGV4cGVyaW1lbnRhbCAocHJvb2Ytb2YtY29uY2VwdCkgcGhhc2UuCi0gICAgIERpc2sg cmVwbGljYXRpb24gc3VwcG9ydCBpcyBsaW1pdGVkIHRvIERSQkQgZGlza3MuCitCPE5PVEVTPgor Cis9b3ZlciA0CisKK1JlbXVzIHN1cHBvcnQgaW4geGwgaXMgc3RpbGwgaW4gZXhwZXJpbWVudGFs IChwcm9vZi1vZi1jb25jZXB0KSBwaGFzZS4KK0Rpc2sgcmVwbGljYXRpb24gc3VwcG9ydCBpcyBs aW1pdGVkIHRvIERSQkQgZGlza3MuCisKK0NPTE8gc3VwcG9ydCBpbiB4bCBpcyBzdGlsbCBpbiBl eHBlcmltZW50YWwgKHByb29mLW9mLWNvbmNlcHQpIHBoYXNlLgorVGhlcmUgaXMgbm8gc3VwcG9y dCBmb3IgbmV0d29yaywgc28gdGhlIGd1ZXN0IHdpbGwgY29uZnVzZSBpdHMgbmV0d29yaworcGVl cnMgYXQgdGhlIG1vbWVudC4KKworPWJhY2sKKworQjxFWEFNUExFPgogCi0gICAgIENPTE8gc3Vw cG9ydCBpbiB4bCBpcyBzdGlsbCBpbiBleHBlcmltZW50YWwgKHByb29mLW9mLWNvbmNlcHQpIHBo YXNlLgotICAgICBUaGVyZSBpcyBubyBzdXBwb3J0IGZvciBuZXR3b3JrIG9yIGRpc2ssIHNvIHRo ZSBndWVzdCB3aWxsIGNvcnJ1cHQgaXRzCi0gICAgIGRpc2sgYW5kIGNvbmZ1c2UgaXRzIG5ldHdv cmsgcGVlcnMgYXQgdGhlIG1vbWVudC4KKz1vdmVyIDQKKworKGEpIEFuIGV4YW1wbGUgZm9yIENP TE8gcmVwbGljYXRpb24ncyBjb25maWd1cmF0aW9uOiBkaXNrID1bJy4uLixjb2xvLGNvbG8taG9z dAorPXh4eCxjb2xvLXBvcnQ9eHh4LGNvbG8tZXhwb3J0PXh4eCxhY3RpdmUtZGlzaz14eHgsaGlk ZGVuLWRpc2s9eHh4Li4uJ10KKworPWl0ZW0gQjxjb2xvLWhvc3Q+ICAgICAgOlNlY29uZGFyeSBo b3N0J3MgaXAgYWRkcmVzcy4KKworPWl0ZW0gQjxjb2xvLXBvcnQ+ICAgICAgOlNlY29uZGFyeSBo b3N0J3MgcG9ydCwgd2Ugd2lsbCBydW4gYSBuYmQgc2VydmVyIG9uCitzZWNvbmRhcnkgaG9zdCwg YW5kIHRoZSBuYmQgc2VydmVyIHdpbGwgbGlzdGVuIHRoaXMgcG9ydC4KKworPWl0ZW0gQjxjb2xv LWV4cG9ydD4gICAgOk5iZCBzZXJ2ZXIncyBkaXNrIGV4cG9ydCBuYW1lIG9mIHNlY29uZGFyeSBo b3N0LgorCis9aXRlbSBCPGFjdGl2ZS1kaXNrPiAgICA6U2Vjb25kYXJ5J3MgZ3Vlc3Qgd3JpdGUg d2lsbCBiZSBidWZmZXJlZCBpbiB0aGlzIGRpc2ssCithbmQgaXQncyB1c2VkIGJ5IHNlY29uZGFy eS4KKworPWl0ZW0gQjxoaWRkZW4tZGlzaz4gICAgOlByaW1hcnkncyBtb2RpZmllZCBjb250ZW50 cyB3aWxsIGJlIGJ1ZmZlcmVkIGluIHRoaXMKK2Rpc2ssIGFuZCBpdCdzIHVzZWQgYnkgc2Vjb25k YXJ5LgorCis9YmFjawogCiBCPE9QVElPTlM+CiAKZGlmZiAtLWdpdCBhL2RvY3MvbWlzYy94bC1k aXNrLWNvbmZpZ3VyYXRpb24udHh0IGIvZG9jcy9taXNjL3hsLWRpc2stY29uZmlndXJhdGlvbi50 eHQKaW5kZXggMjlmNmRkYi4uNmU3Mzk3NSAxMDA2NDQKLS0tIGEvZG9jcy9taXNjL3hsLWRpc2st Y29uZmlndXJhdGlvbi50eHQKKysrIGIvZG9jcy9taXNjL3hsLWRpc2stY29uZmlndXJhdGlvbi50 eHQKQEAgLTIzNCw2ICsyMzQsNTkgQEAgd2VyZSBpbnRlbnRpb25hbGx5IGNyZWF0ZWQgbm9uLXNw YXJzZSB0byBhdm9pZCBmcmFnbWVudGF0aW9uIG9mIHRoZQogZmlsZS4KIAogCis9PT09PT09PT09 PT09PT0KK0NPTE8gUEFSQU1FVEVSUworPT09PT09PT09PT09PT09CisKKworY29sbworLS0tLQor CitFbmFibGUgQ09MTyBIQSBmb3IgZGlzay4gRm9yIGJldHRlciB1bmRlcnN0YW5kaW5nIGJsb2Nr IHJlcGxpY2F0aW9uIG9uCitRRU1VLCBwbGVhc2UgcmVmZXIgdG86CitodHRwOi8vd2lraS5xZW11 Lm9yZy9GZWF0dXJlcy9CbG9ja1JlcGxpY2F0aW9uCisKKworY29sby1ob3N0CistLS0tLS0tLS0K KworRGVzY3JpcHRpb246ICAgICAgICAgICBTZWNvbmRhcnkgaG9zdCdzIGFkZHJlc3MKK01hbmRh dG9yeTogICAgICAgICAgICAgWWVzIHdoZW4gQ09MTyBlbmFibGVkCisKKworY29sby1wb3J0Cist LS0tLS0tLS0KKworRGVzY3JpcHRpb246ICAgICAgICAgICBTZWNvbmRhcnkgcG9ydAorICAgICAg ICAgICAgICAgICAgICAgICBXZSB3aWxsIHJ1biBhIG5iZCBzZXJ2ZXIgb24gc2Vjb25kYXJ5IGhv c3QsCisgICAgICAgICAgICAgICAgICAgICAgIGFuZCB0aGUgbmJkIHNlcnZlciB3aWxsIGxpc3Rl biB0aGlzIHBvcnQuCitNYW5kYXRvcnk6ICAgICAgICAgICAgIFllcyB3aGVuIENPTE8gZW5hYmxl ZAorCisKK2NvbG8tZXhwb3J0CistLS0tLS0tLS0tLQorCitEZXNjcmlwdGlvbjogICAgICAgICAg IFdlIHdpbGwgcnVuIGEgbmJkIHNlcnZlciBvbiBzZWNvbmRhcnkgaG9zdCwKKyAgICAgICAgICAg ICAgICAgICAgICAgZXhwb3J0bmFtZSBpcyB0aGUgbmJkIHNlcnZlcidzIGRpc2sgZXhwb3J0IG5h bWUuCitNYW5kYXRvcnk6ICAgICAgICAgICAgIFllcyB3aGVuIENPTE8gZW5hYmxlZAorCisKK2Fj dGl2ZS1kaXNrCistLS0tLS0tLS0tLQorCitEZXNjcmlwdGlvbjogICAgICAgICAgIFRoaXMgaXMg dXNlZCBieSBzZWNvbmRhcnkuIFNlY29uZGFyeSBndWVzdCdzIHdyaXRlCisgICAgICAgICAgICAg ICAgICAgICAgIHdpbGwgYmUgYnVmZmVyZWQgaW4gdGhpcyBkaXNrLgorTWFuZGF0b3J5OiAgICAg ICAgICAgICBZZXMgd2hlbiBDT0xPIGVuYWJsZWQKKworCitoaWRkZW4tZGlzaworLS0tLS0tLS0t LS0KKworRGVzY3JpcHRpb246ICAgICAgICAgICBUaGlzIGlzIHVzZWQgYnkgc2Vjb25kYXJ5LiBJ dCBidWZmZXJzIHRoZSBvcmlnaW5hbAorICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50IHRo YXQgaXMgbW9kaWZpZWQgYnkgdGhlIHByaW1hcnkgVk0uCitNYW5kYXRvcnk6ICAgICAgICAgICAg IFllcyB3aGVuIENPTE8gZW5hYmxlZAorCisKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiBERVBSRUNBVEVEIFBBUkFNRVRFUlMsIFBSRUZJWEVTIEFORCBTWU5U QVhFUwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZGlmZiAt LWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsLmMgYi90b29scy9saWJ4bC9saWJ4bC5jCmluZGV4IDM0 OWEzYzYuLjYzZmJlMTYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsLmMKKysrIGIvdG9v bHMvbGlieGwvbGlieGwuYwpAQCAtMjMwNiw2ICsyMzA2LDggQEAgaW50IGxpYnhsX19kZXZpY2Vf ZGlza19zZXRkZWZhdWx0KGxpYnhsX19nYyAqZ2MsIGxpYnhsX2RldmljZV9kaXNrICpkaXNrKQog ICAgIGludCByYzsKIAogICAgIGxpYnhsX2RlZmJvb2xfc2V0ZGVmYXVsdCgmZGlzay0+ZGlzY2Fy ZF9lbmFibGUsICEhZGlzay0+cmVhZHdyaXRlKTsKKyAgICBsaWJ4bF9kZWZib29sX3NldGRlZmF1 bHQoJmRpc2stPmNvbG9fZW5hYmxlLCBmYWxzZSk7CisgICAgbGlieGxfZGVmYm9vbF9zZXRkZWZh dWx0KCZkaXNrLT5jb2xvX3Jlc3RvcmVfZW5hYmxlLCBmYWxzZSk7CiAKICAgICByYyA9IGxpYnhs X19yZXNvbHZlX2RvbWlkKGdjLCBkaXNrLT5iYWNrZW5kX2RvbW5hbWUsICZkaXNrLT5iYWNrZW5k X2RvbWlkKTsKICAgICBpZiAocmMgPCAwKSByZXR1cm4gcmM7CkBAIC0yNTA0LDYgKzI1MDYsMTgg QEAgc3RhdGljIHZvaWQgZGV2aWNlX2Rpc2tfYWRkKGxpYnhsX19lZ2MgKmVnYywgdWludDMyX3Qg ZG9taWQsCiAgICAgICAgICAgICAgICAgZmxleGFycmF5X2FwcGVuZChiYWNrLCAicGFyYW1zIik7 CiAgICAgICAgICAgICAgICAgZmxleGFycmF5X2FwcGVuZChiYWNrLCBHQ1NQUklOVEYoIiVzOiVz IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19kZXZpY2VfZGlza19zdHJp bmdfb2ZfZm9ybWF0KGRpc2stPmZvcm1hdCksIGRpc2stPnBkZXZfcGF0aCkpOworICAgICAgICAg ICAgICAgIGlmIChsaWJ4bF9kZWZib29sX3ZhbChkaXNrLT5jb2xvX2VuYWJsZSkpIHsKKyAgICAg ICAgICAgICAgICAgICAgZmxleGFycmF5X2FwcGVuZChiYWNrLCAiY29sby1ob3N0Iik7CisgICAg ICAgICAgICAgICAgICAgIGZsZXhhcnJheV9hcHBlbmQoYmFjaywgbGlieGxfX3NwcmludGYoZ2Ms ICIlcyIsIGRpc2stPmNvbG9faG9zdCkpOworICAgICAgICAgICAgICAgICAgICBmbGV4YXJyYXlf YXBwZW5kKGJhY2ssICJjb2xvLXBvcnQiKTsKKyAgICAgICAgICAgICAgICAgICAgZmxleGFycmF5 X2FwcGVuZChiYWNrLCBsaWJ4bF9fc3ByaW50ZihnYywgIiVkIiwgZGlzay0+Y29sb19wb3J0KSk7 CisgICAgICAgICAgICAgICAgICAgIGZsZXhhcnJheV9hcHBlbmQoYmFjaywgImNvbG8tZXhwb3J0 Iik7CisgICAgICAgICAgICAgICAgICAgIGZsZXhhcnJheV9hcHBlbmQoYmFjaywgbGlieGxfX3Nw cmludGYoZ2MsICIlcyIsIGRpc2stPmNvbG9fZXhwb3J0KSk7CisgICAgICAgICAgICAgICAgICAg IGZsZXhhcnJheV9hcHBlbmQoYmFjaywgImFjdGl2ZS1kaXNrIik7CisgICAgICAgICAgICAgICAg ICAgIGZsZXhhcnJheV9hcHBlbmQoYmFjaywgbGlieGxfX3NwcmludGYoZ2MsICIlcyIsIGRpc2st PmFjdGl2ZV9kaXNrKSk7CisgICAgICAgICAgICAgICAgICAgIGZsZXhhcnJheV9hcHBlbmQoYmFj aywgImhpZGRlbi1kaXNrIik7CisgICAgICAgICAgICAgICAgICAgIGZsZXhhcnJheV9hcHBlbmQo YmFjaywgbGlieGxfX3NwcmludGYoZ2MsICIlcyIsIGRpc2stPmhpZGRlbl9kaXNrKSk7CisgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGFzc2VydChkZXZpY2UtPmJhY2tlbmRfa2lu ZCA9PSBMSUJYTF9fREVWSUNFX0tJTkRfUURJU0spOwogICAgICAgICAgICAgICAgIGJyZWFrOwog ICAgICAgICAgICAgZGVmYXVsdDoKQEAgLTI2MTksNyArMjYzMywxMiBAQCBzdGF0aWMgaW50IGxp YnhsX19kZXZpY2VfZGlza19mcm9tX3hzX2JlKGxpYnhsX19nYyAqZ2MsCiAgICAgICAgIGdvdG8g Y2xlYW51cDsKICAgICB9CiAKLSAgICAvKiAicGFyYW1zIiBtYXkgbm90IGJlIHByZXNlbnQ7IGJ1 dCBldmVyeXRoaW5nIGVsc2UgbXVzdCBiZS4gKi8KKyAgICAvKgorICAgICAqICJwYXJhbXMiIG1h eSBub3QgYmUgcHJlc2VudDsgYnV0IGV2ZXJ5dGhpbmcgZWxzZSBtdXN0IGJlLgorICAgICAqIGNv bG8gcmVsZWF0ZWQgZW50cmllcyhjb2xvLWhvc3QsIGNvbG8tcG9ydCwgY29sby1leHBvcnQsCisg ICAgICogYWN0aXZlLWRpc2sgYW5kIGhpZGRlbi1kaXNrKSBhcmUgcHJlc2VudCBvbmx5IGlmIGNv bG8gaXMKKyAgICAgKiBlbmFibGVkLgorICAgICAqLwogICAgIHRtcCA9IHhzX3JlYWQoY3R4LT54 c2gsIFhCVF9OVUxMLAogICAgICAgICAgICAgICAgICAgR0NTUFJJTlRGKCIlcy9wYXJhbXMiLCBi ZV9wYXRoKSwgJmxlbik7CiAgICAgaWYgKHRtcCAmJiBzdHJjaHIodG1wLCAnOicpKSB7CkBAIC0y NjI5LDYgKzI2NDgsMzYgQEAgc3RhdGljIGludCBsaWJ4bF9fZGV2aWNlX2Rpc2tfZnJvbV94c19i ZShsaWJ4bF9fZ2MgKmdjLAogICAgICAgICBkaXNrLT5wZGV2X3BhdGggPSB0bXA7CiAgICAgfQog CisgICAgdG1wID0geHNfcmVhZChjdHgtPnhzaCwgWEJUX05VTEwsCisgICAgICAgICAgICAgICAg ICBHQ1NQUklOVEYoIiVzL2NvbG8taG9zdCIsIGJlX3BhdGgpLCAmbGVuKTsKKyAgICBpZiAodG1w KSB7CisgICAgICAgIGxpYnhsX2RlZmJvb2xfc2V0KCZkaXNrLT5jb2xvX2VuYWJsZSwgdHJ1ZSk7 CisgICAgICAgIGRpc2stPmNvbG9faG9zdCA9IHRtcDsKKworICAgICAgICB0bXAgPSB4c19yZWFk KGN0eC0+eHNoLCBYQlRfTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICBHQ1NQUklOVEYoIiVz L2NvbG8tcG9ydCIsIGJlX3BhdGgpLCAmbGVuKTsKKyAgICAgICAgaWYgKCF0bXApIHsKKyAgICAg ICAgICAgIExPRyhFUlJPUiwgIk1pc3NpbmcgeGVuc3RvcmUgbm9kZSAlcy9jb2xvLXBvcnQiLCBi ZV9wYXRoKTsKKyAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICAgICAgfQorICAgICAgICBk aXNrLT5jb2xvX3BvcnQgPSBhdG9pKHRtcCk7CisKKyNkZWZpbmUgWFNfUkVBRF9DT0xPKHBhcmFt LCBpdGVtKSBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAg dG1wID0geHNfcmVhZChjdHgtPnhzaCwgWEJUX05VTEwsICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICBHQ1NQUklOVEYoIiVzLyIjcGFyYW0iIiwg YmVfcGF0aCksICZsZW4pOyAgICAgICAgIFwKKyAgICAgICAgaWYgKCF0bXApIHsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAg IExPRyhFUlJPUiwgIk1pc3NpbmcgeGVuc3RvcmUgbm9kZSAlcy8iI3BhcmFtIiIsIGJlX3BhdGgp OyAgIFwKKyAgICAgICAgICAgIGdvdG8gY2xlYW51cDsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgZGlzay0+ aXRlbSA9IHRtcDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKK30gd2hpbGUgKDApCisgICAgICAgIFhTX1JFQURfQ09MTyhjb2xvLWV4cG9ydCwgY29sb19l eHBvcnQpOworICAgICAgICBYU19SRUFEX0NPTE8oYWN0aXZlLWRpc2ssIGFjdGl2ZV9kaXNrKTsK KyAgICAgICAgWFNfUkVBRF9DT0xPKGhpZGRlbi1kaXNrLCBoaWRkZW5fZGlzayk7CisjdW5kZWYg WFNfUkVBRF9DT0xPCisgICAgfSBlbHNlIHsKKyAgICAgICAgbGlieGxfZGVmYm9vbF9zZXQoJmRp c2stPmNvbG9fZW5hYmxlLCBmYWxzZSk7CisgICAgfQogCiAgICAgdG1wID0gbGlieGxfX3hzX3Jl YWQoZ2MsIFhCVF9OVUxMLAogICAgICAgICAgICAgICAgICAgICAgICAgIEdDU1BSSU5URigiJXMv dHlwZSIsIGJlX3BhdGgpKTsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2NyZWF0ZS5j IGIvdG9vbHMvbGlieGwvbGlieGxfY3JlYXRlLmMKaW5kZXggYmU2MDRlNS4uZTJlYzI1YyAxMDA2 NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfY3JlYXRlLmMKKysrIGIvdG9vbHMvbGlieGwvbGli eGxfY3JlYXRlLmMKQEAgLTE4NzYsMTIgKzE4NzYsMzAgQEAgc3RhdGljIHZvaWQgZG9tYWluX2Ny ZWF0ZV9jYihsaWJ4bF9fZWdjICplZ2MsCiAKICAgICBsaWJ4bF9fYW9fY29tcGxldGUoZWdjLCBh bywgcmMpOwogfQotICAgIAorCisKK3N0YXRpYyB2b2lkIHNldF9kaXNrX2NvbG9fcmVzdG9yZShs aWJ4bF9kb21haW5fY29uZmlnICpkX2NvbmZpZykKK3sKKyAgICBpbnQgaTsKKworICAgIGZvciAo aSA9IDA7IGkgPCBkX2NvbmZpZy0+bnVtX2Rpc2tzOyBpKyspCisgICAgICAgIGxpYnhsX2RlZmJv b2xfc2V0KCZkX2NvbmZpZy0+ZGlza3NbaV0uY29sb19yZXN0b3JlX2VuYWJsZSwgdHJ1ZSk7Cit9 CisKK3N0YXRpYyB2b2lkIHVuc2V0X2Rpc2tfY29sb19yZXN0b3JlKGxpYnhsX2RvbWFpbl9jb25m aWcgKmRfY29uZmlnKQoreworICAgIGludCBpOworCisgICAgZm9yIChpID0gMDsgaSA8IGRfY29u ZmlnLT5udW1fZGlza3M7IGkrKykKKyAgICAgICAgbGlieGxfZGVmYm9vbF9zZXQoJmRfY29uZmln LT5kaXNrc1tpXS5jb2xvX3Jlc3RvcmVfZW5hYmxlLCBmYWxzZSk7Cit9CisKIGludCBsaWJ4bF9k b21haW5fY3JlYXRlX25ldyhsaWJ4bF9jdHggKmN0eCwgbGlieGxfZG9tYWluX2NvbmZpZyAqZF9j b25maWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKmRvbWlkLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpYnhsX2FzeW5jb3BfaG93ICphb19ob3cs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGlieGxfYXN5bmNwcm9ncmVzc19o b3cgKmFvcF9jb25zb2xlX2hvdykKIHsKKyAgICB1bnNldF9kaXNrX2NvbG9fcmVzdG9yZShkX2Nv bmZpZyk7CiAgICAgcmV0dXJuIGRvX2RvbWFpbl9jcmVhdGUoY3R4LCBkX2NvbmZpZywgZG9taWQs IC0xLCAtMSwgTlVMTCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhb19ob3csIGFvcF9j b25zb2xlX2hvdyk7CiB9CkBAIC0xODkzLDYgKzE5MTEsMTIgQEAgaW50IGxpYnhsX2RvbWFpbl9j cmVhdGVfcmVzdG9yZShsaWJ4bF9jdHggKmN0eCwgbGlieGxfZG9tYWluX2NvbmZpZyAqZF9jb25m aWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpYnhsX2FzeW5jb3Bf aG93ICphb19ob3csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpYnhs X2FzeW5jcHJvZ3Jlc3NfaG93ICphb3BfY29uc29sZV9ob3cpCiB7CisgICAgaWYgKHBhcmFtcy0+ Y2hlY2twb2ludGVkX3N0cmVhbSA9PSBMSUJYTF9DSEVDS1BPSU5URURfU1RSRUFNX0NPTE8pIHsK KyAgICAgICAgc2V0X2Rpc2tfY29sb19yZXN0b3JlKGRfY29uZmlnKTsKKyAgICB9IGVsc2Ugewor ICAgICAgICB1bnNldF9kaXNrX2NvbG9fcmVzdG9yZShkX2NvbmZpZyk7CisgICAgfQorCiAgICAg cmV0dXJuIGRvX2RvbWFpbl9jcmVhdGUoY3R4LCBkX2NvbmZpZywgZG9taWQsIHJlc3RvcmVfZmQs IHNlbmRfYmFja19mZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMsIGFvX2hv dywgYW9wX2NvbnNvbGVfaG93KTsKIH0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2Rl dmljZS5jIGIvdG9vbHMvbGlieGwvbGlieGxfZGV2aWNlLmMKaW5kZXggNGNlZDliNi4uNmE0MTFj NiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfZGV2aWNlLmMKKysrIGIvdG9vbHMvbGli eGwvbGlieGxfZGV2aWNlLmMKQEAgLTE5Niw2ICsxOTYsOSBAQCBzdGF0aWMgaW50IGRpc2tfdHJ5 X2JhY2tlbmQoZGlza190cnlfYmFja2VuZF9hcmdzICphLAogICAgICAgICAgICAgZ290byBiYWRf Zm9ybWF0OwogICAgICAgICB9CiAKKyAgICAgICAgaWYgKGxpYnhsX2RlZmJvb2xfdmFsKGEtPmRp c2stPmNvbG9fZW5hYmxlKSkKKyAgICAgICAgICAgIGdvdG8gYmFkX2NvbG87CisKICAgICAgICAg aWYgKGEtPmRpc2stPmJhY2tlbmRfZG9taWQgIT0gTElCWExfVE9PTFNUQUNLX0RPTUlEKSB7CiAg ICAgICAgICAgICBMT0coREVCVUcsICJEaXNrIHZkZXY9JXMsIGlzIHVzaW5nIGEgc3RvcmFnZSBk cml2ZXIgZG9tYWluLCAiCiAgICAgICAgICAgICAgICAgICAgICAgICJza2lwcGluZyBwaHlzaWNh bCBkZXZpY2UgY2hlY2siLCBhLT5kaXNrLT52ZGV2KTsKQEAgLTIxOCw2ICsyMjEsOSBAQCBzdGF0 aWMgaW50IGRpc2tfdHJ5X2JhY2tlbmQoZGlza190cnlfYmFja2VuZF9hcmdzICphLAogICAgIGNh c2UgTElCWExfRElTS19CQUNLRU5EX1RBUDoKICAgICAgICAgaWYgKGEtPmRpc2stPnNjcmlwdCkg Z290byBiYWRfc2NyaXB0OwogCisgICAgICAgIGlmIChsaWJ4bF9kZWZib29sX3ZhbChhLT5kaXNr LT5jb2xvX2VuYWJsZSkpCisgICAgICAgICAgICBnb3RvIGJhZF9jb2xvOworCiAgICAgICAgIGlm IChhLT5kaXNrLT5pc19jZHJvbSkgewogICAgICAgICAgICAgTE9HKERFQlVHLCAiRGlzayB2ZGV2 PSVzLCBiYWNrZW5kIHRhcCB1bnN1aXRhYmxlIGZvciBjZHJvbXMiLAogICAgICAgICAgICAgICAg ICAgICAgICBhLT5kaXNrLT52ZGV2KTsKQEAgLTI1Niw2ICsyNjIsMTEgQEAgc3RhdGljIGludCBk aXNrX3RyeV9iYWNrZW5kKGRpc2tfdHJ5X2JhY2tlbmRfYXJncyAqYSwKICAgICBMT0coREVCVUcs ICJEaXNrIHZkZXY9JXMsIGJhY2tlbmQgJXMgbm90IGNvbXBhdGlibGUgd2l0aCBzY3JpcHQ9Li4u IiwKICAgICAgICAgYS0+ZGlzay0+dmRldiwgbGlieGxfZGlza19iYWNrZW5kX3RvX3N0cmluZyhi YWNrZW5kKSk7CiAgICAgcmV0dXJuIDA7CisKKyBiYWRfY29sbzoKKyAgICBMT0coREVCVUcsICJE aXNrIHZkZXY9JXMsIGJhY2tlbmQgJXMgbm90IGNvbXBhdGlibGUgd2l0aCBjb2xvIiwKKyAgICAg ICAgYS0+ZGlzay0+dmRldiwgbGlieGxfZGlza19iYWNrZW5kX3RvX3N0cmluZyhiYWNrZW5kKSk7 CisgICAgcmV0dXJuIDA7CiB9CiAKIGludCBsaWJ4bF9fZGV2aWNlX2Rpc2tfc2V0X2JhY2tlbmQo bGlieGxfX2djICpnYywgbGlieGxfZGV2aWNlX2Rpc2sgKmRpc2spIHsKZGlmZiAtLWdpdCBhL3Rv b2xzL2xpYnhsL2xpYnhsX2RtLmMgYi90b29scy9saWJ4bC9saWJ4bF9kbS5jCmluZGV4IDFkMWIy NWIuLjRjM2RmZjggMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX2RtLmMKKysrIGIvdG9v bHMvbGlieGwvbGlieGxfZG0uYwpAQCAtNzU0LDYgKzc1NCw4IEBAIHN0YXRpYyBpbnQgbGlieGxf X2RtX3J1bmFzX2hlbHBlcihsaWJ4bF9fZ2MgKmdjLCBjb25zdCBjaGFyICp1c2VybmFtZSkKIC8q IGNvbG8gbW9kZSAqLwogZW51bSB7CiAgICAgTElCWExfX0NPTE9fTk9ORSA9IDAsCisgICAgTElC WExfX0NPTE9fUFJJTUFSWSwKKyAgICBMSUJYTF9fQ09MT19TRUNPTkRBUlksCiB9OwogCiBzdGF0 aWMgY2hhciAqcWVtdV9kaXNrX3Njc2lfZHJpdmVfc3RyaW5nKGxpYnhsX19nYyAqZ2MsIGNvbnN0 IGNoYXIgKnBkZXZfcGF0aCwKQEAgLTc2Miw2ICs3NjQsOSBAQCBzdGF0aWMgY2hhciAqcWVtdV9k aXNrX3Njc2lfZHJpdmVfc3RyaW5nKGxpYnhsX19nYyAqZ2MsIGNvbnN0IGNoYXIgKnBkZXZfcGF0 aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvbG9fbW9k ZSkKIHsKICAgICBjaGFyICpkcml2ZSA9IE5VTEw7CisgICAgY29uc3QgY2hhciAqZXhwb3J0bmFt ZSA9IGRpc2stPmNvbG9fZXhwb3J0OworICAgIGNvbnN0IGNoYXIgKmFjdGl2ZV9kaXNrID0gZGlz ay0+YWN0aXZlX2Rpc2s7CisgICAgY29uc3QgY2hhciAqaGlkZGVuX2Rpc2sgPSBkaXNrLT5oaWRk ZW5fZGlzazsKIAogICAgIHN3aXRjaCAoY29sb19tb2RlKSB7CiAgICAgY2FzZSBMSUJYTF9fQ09M T19OT05FOgpAQCAtNzY5LDYgKzc3NCw0NSBAQCBzdGF0aWMgY2hhciAqcWVtdV9kaXNrX3Njc2lf ZHJpdmVfc3RyaW5nKGxpYnhsX19nYyAqZ2MsIGNvbnN0IGNoYXIgKnBkZXZfcGF0aCwKICAgICAg ICAgICAgIChnYywgImZpbGU9JXMsaWY9c2NzaSxidXM9MCx1bml0PSVkLGZvcm1hdD0lcyxjYWNo ZT13cml0ZWJhY2siLAogICAgICAgICAgICAgIHBkZXZfcGF0aCwgdW5pdCwgZm9ybWF0KTsKICAg ICAgICAgYnJlYWs7CisgICAgY2FzZSBMSUJYTF9fQ09MT19QUklNQVJZOgorICAgICAgICAvKgor ICAgICAgICAgKiBwcmltYXJ5OgorICAgICAgICAgKiAgLWRpcnZlIGlmPXNjc2ksYnVzPTAsdW5p dD14LGNhY2hlPXdyaXRlYmFjayxkcml2ZXI9cXVvcnVtLFwKKyAgICAgICAgICogIGlkPWV4cG9y dG5hbWUsXAorICAgICAgICAgKiAgY2hpbGRyZW4uMC5maWxlLmZpbGVuYW1lPXBkZXZfcGF0aCxc CisgICAgICAgICAqICBjaGlsZHJlbi4wLmRyaXZlcj1mb3JtYXQsXAorICAgICAgICAgKiAgcmVh ZC1wYXR0ZXJuPWZpZm8sXAorICAgICAgICAgKiAgdm90ZS10aHJlc2hvbGQ9MQorICAgICAgICAg Ki8KKyAgICAgICAgZHJpdmUgPSBHQ1NQUklOVEYoCisgICAgICAgICAgICAiaWY9c2NzaSxidXM9 MCx1bml0PSVkLGNhY2hlPXdyaXRlYmFjayxkcml2ZXI9cXVvcnVtLCIKKyAgICAgICAgICAgICJp ZD0lcywiCisgICAgICAgICAgICAiY2hpbGRyZW4uMC5maWxlLmZpbGVuYW1lPSVzLCIKKyAgICAg ICAgICAgICJjaGlsZHJlbi4wLmRyaXZlcj0lcywiCisgICAgICAgICAgICAicmVhZC1wYXR0ZXJu PWZpZm8sIgorICAgICAgICAgICAgInZvdGUtdGhyZXNob2xkPTEiLAorICAgICAgICAgICAgdW5p dCwgZXhwb3J0bmFtZSwgcGRldl9wYXRoLCBmb3JtYXQpOworICAgICAgICBicmVhazsKKyAgICBj YXNlIExJQlhMX19DT0xPX1NFQ09OREFSWToKKyAgICAgICAgLyoKKyAgICAgICAgICogc2Vjb25k YXJ5OgorICAgICAgICAgKiAgLWRyaXZlIGlmPXNjc2ksYnVzPTAsdW5pdD14LGNhY2hlPXdyaXRl YmFjayxkcml2ZXI9cmVwbGljYXRpb24sXAorICAgICAgICAgKiAgbW9kZT1zZWNvbmRhcnksXAor ICAgICAgICAgKiAgZmlsZS5kcml2ZXI9cWNvdzIsXAorICAgICAgICAgKiAgZmlsZS5maWxlLmZp bGVuYW1lPWFjdGl2ZV9kaXNrLFwKKyAgICAgICAgICogIGZpbGUuYmFja2luZy5kcml2ZXI9cWNv dzIsXAorICAgICAgICAgKiAgZmlsZS5iYWNraW5nLmZpbGUuZmlsZW5hbWU9aGlkZGVuX2Rpc2ss XAorICAgICAgICAgKiAgZmlsZS5iYWNraW5nLmJhY2tpbmc9ZXhwb3J0bmFtZSwKKyAgICAgICAg ICovCisgICAgICAgIGRyaXZlID0gR0NTUFJJTlRGKAorICAgICAgICAgICAgImlmPXNjc2ksYnVz PTAsdW5pdD0lZCxjYWNoZT13cml0ZWJhY2ssZHJpdmVyPXJlcGxpY2F0aW9uLCIKKyAgICAgICAg ICAgICJtb2RlPXNlY29uZGFyeSwiCisgICAgICAgICAgICAiZmlsZS5kcml2ZXI9cWNvdzIsIgor ICAgICAgICAgICAgImZpbGUuZmlsZS5maWxlbmFtZT0lcywiCisgICAgICAgICAgICAiZmlsZS5i YWNraW5nLmRyaXZlcj1xY293MiwiCisgICAgICAgICAgICAiZmlsZS5iYWNraW5nLmZpbGUuZmls ZW5hbWU9JXMsIgorICAgICAgICAgICAgImZpbGUuYmFja2luZy5iYWNraW5nPSVzIiwKKyAgICAg ICAgICAgIHVuaXQsIGFjdGl2ZV9kaXNrLCBoaWRkZW5fZGlzaywgZXhwb3J0bmFtZSk7CiAgICAg ZGVmYXVsdDoKICAgICAgICAgIGFib3J0KCk7CiAgICAgfQpAQCAtNzgyLDYgKzgyNiw5IEBAIHN0 YXRpYyBjaGFyICpxZW11X2Rpc2tfaWRlX2RyaXZlX3N0cmluZyhsaWJ4bF9fZ2MgKmdjLCBjb25z dCBjaGFyICpwZGV2X3BhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW50IGNvbG9fbW9kZSkKIHsKICAgICBjaGFyICpkcml2ZSA9IE5VTEw7CisgICAgY29uc3Qg Y2hhciAqZXhwb3J0bmFtZSA9IGRpc2stPmNvbG9fZXhwb3J0OworICAgIGNvbnN0IGNoYXIgKmFj dGl2ZV9kaXNrID0gZGlzay0+YWN0aXZlX2Rpc2s7CisgICAgY29uc3QgY2hhciAqaGlkZGVuX2Rp c2sgPSBkaXNrLT5oaWRkZW5fZGlzazsKIAogICAgIHN3aXRjaCAoY29sb19tb2RlKSB7CiAgICAg Y2FzZSBMSUJYTF9fQ09MT19OT05FOgpAQCAtNzg5LDYgKzgzNiw0NiBAQCBzdGF0aWMgY2hhciAq cWVtdV9kaXNrX2lkZV9kcml2ZV9zdHJpbmcobGlieGxfX2djICpnYywgY29uc3QgY2hhciAqcGRl dl9wYXRoLAogICAgICAgICAgICAgKCJmaWxlPSVzLGlmPWlkZSxpbmRleD0lZCxtZWRpYT1kaXNr LGZvcm1hdD0lcyxjYWNoZT13cml0ZWJhY2siLAogICAgICAgICAgICAgIHBkZXZfcGF0aCwgdW5p dCwgZm9ybWF0KTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMSUJYTF9fQ09MT19QUklNQVJZ OgorICAgICAgICAvKgorICAgICAgICAgKiBwcmltYXJ5OgorICAgICAgICAgKiAgLWRpcnZlIGlm PWlkZSxpbmRleD14LG1lZGlhPWRpc2ssY2FjaGU9d3JpdGViYWNrLGRyaXZlcj1xdW9ydW0sXAor ICAgICAgICAgKiAgaWQ9ZXhwb3J0bmFtZSxcCisgICAgICAgICAqICBjaGlsZHJlbi4wLmZpbGUu ZmlsZW5hbWU9cGRldl9wYXRoLFwKKyAgICAgICAgICogIGNoaWxkcmVuLjAuZHJpdmVyPWZvcm1h dCxcCisgICAgICAgICAqICByZWFkLXBhdHRlcm49ZmlmbyxcCisgICAgICAgICAqICB2b3RlLXRo cmVzaG9sZD0xCisgICAgICAgICAqLworICAgICAgICBkcml2ZSA9IEdDU1BSSU5URigKKyAgICAg ICAgICAgICJpZj1pZGUsaW5kZXg9JWQsbWVkaWE9ZGlzayxjYWNoZT13cml0ZWJhY2ssZHJpdmVy PXF1b3J1bSwiCisgICAgICAgICAgICAiaWQ9JXMsIgorICAgICAgICAgICAgImNoaWxkcmVuLjAu ZmlsZS5maWxlbmFtZT0lcywiCisgICAgICAgICAgICAiY2hpbGRyZW4uMC5kcml2ZXI9JXMsIgor ICAgICAgICAgICAgInJlYWQtcGF0dGVybj1maWZvLCIKKyAgICAgICAgICAgICJ2b3RlLXRocmVz aG9sZD0xIiwKKyAgICAgICAgICAgICB1bml0LCBleHBvcnRuYW1lLCBwZGV2X3BhdGgsIGZvcm1h dCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTElCWExfX0NPTE9fU0VDT05EQVJZOgorICAg ICAgICAvKgorICAgICAgICAgKiBzZWNvbmRhcnk6CisgICAgICAgICAqICAtZHJpdmUgaWY9aWRl LGluZGV4PXgsbWVkaWE9ZGlzayxjYWNoZT13cml0ZWJhY2ssZHJpdmVyPXJlcGxpY2F0aW9uLFwK KyAgICAgICAgICogIG1vZGU9c2Vjb25kYXJ5LFwKKyAgICAgICAgICogIGZpbGUuZHJpdmVyPXFj b3cyLFwKKyAgICAgICAgICogIGZpbGUuZmlsZS5maWxlbmFtZT1hY3RpdmVfZGlzayxcCisgICAg ICAgICAqICBmaWxlLmJhY2tpbmcuZHJpdmVyPXFjb3cyLFwKKyAgICAgICAgICogIGZpbGUuYmFj a2luZy5maWxlLmZpbGVuYW1lPWhpZGRlbl9kaXNrLFwKKyAgICAgICAgICogIGZpbGUuYmFja2lu Zy5iYWNraW5nPWV4cG9ydG5hbWUsCisgICAgICAgICAqLworICAgICAgICBkcml2ZSA9IEdDU1BS SU5URigKKyAgICAgICAgICAgICJpZj1pZGUsaW5kZXg9JWQsbWVkaWE9ZGlzayxjYWNoZT13cml0 ZWJhY2ssZHJpdmVyPXJlcGxpY2F0aW9uLCIKKyAgICAgICAgICAgICJtb2RlPXNlY29uZGFyeSwi CisgICAgICAgICAgICAiZmlsZS5kcml2ZXI9cWNvdzIsIgorICAgICAgICAgICAgImZpbGUuZmls ZS5maWxlbmFtZT0lcywiCisgICAgICAgICAgICAiZmlsZS5iYWNraW5nLmRyaXZlcj1xY293Miwi CisgICAgICAgICAgICAiZmlsZS5iYWNraW5nLmZpbGUuZmlsZW5hbWU9JXMsIgorICAgICAgICAg ICAgImZpbGUuYmFja2luZy5iYWNraW5nPSVzIiwKKyAgICAgICAgICAgIHVuaXQsIGFjdGl2ZV9k aXNrLCBoaWRkZW5fZGlzaywgZXhwb3J0bmFtZSk7CisgICAgICAgIGJyZWFrOwogICAgIGRlZmF1 bHQ6CiAgICAgICAgICBhYm9ydCgpOwogICAgIH0KQEAgLTEyNjEsOCArMTM0OCwyNCBAQCBzdGF0 aWMgaW50IGxpYnhsX19idWlsZF9kZXZpY2VfbW9kZWxfYXJnc19uZXcobGlieGxfX2djICpnYywK ICAgICAgICAgICAgICAgICAgKiBoZFthLWRdIGFuZCBpZ25vcmUgdGhlIHJlc3QuCiAgICAgICAg ICAgICAgICAgICovCiAKLSAgICAgICAgICAgICAgICBjb2xvX21vZGUgPSBMSUJYTF9fQ09MT19O T05FOworICAgICAgICAgICAgICAgIGlmIChsaWJ4bF9kZWZib29sX3ZhbChkaXNrc1tpXS5jb2xv X2VuYWJsZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxpYnhsX2RlZmJvb2xfdmFsKGRp c2tzW2ldLmNvbG9fcmVzdG9yZV9lbmFibGUpKQorICAgICAgICAgICAgICAgICAgICAgICAgY29s b19tb2RlID0gTElCWExfX0NPTE9fU0VDT05EQVJZOworICAgICAgICAgICAgICAgICAgICBlbHNl CisgICAgICAgICAgICAgICAgICAgICAgICBjb2xvX21vZGUgPSBMSUJYTF9fQ09MT19QUklNQVJZ OworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGNvbG9fbW9k ZSA9IExJQlhMX19DT0xPX05PTkU7CisgICAgICAgICAgICAgICAgfQorCiAgICAgICAgICAgICAg ICAgaWYgKHN0cm5jbXAoZGlza3NbaV0udmRldiwgInNkIiwgMikgPT0gMCkgeworICAgICAgICAg ICAgICAgICAgICBpZiAoY29sb19tb2RlID09IExJQlhMX19DT0xPX1NFQ09OREFSWSkgeworICAg ICAgICAgICAgICAgICAgICAgICAgZHJpdmUgPSBsaWJ4bF9fc3ByaW50ZgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChnYywgImlmPW5vbmUsZHJpdmVyPSVzLGZpbGU9JXMsaWQ9JXMiLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQsIHBkZXZfcGF0aCwgZGlza3NbaV0u Y29sb19leHBvcnQpOworCisgICAgICAgICAgICAgICAgICAgICAgICBmbGV4YXJyYXlfYXBwZW5k KGRtX2FyZ3MsICItZHJpdmUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZsZXhhcnJheV9h cHBlbmQoZG1fYXJncywgZHJpdmUpOworICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgIGRyaXZlID0gcWVtdV9kaXNrX3Njc2lfZHJpdmVfc3RyaW5nKGdjLCBwZGV2X3Bh dGgsIGRpc2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGZvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJmRpc2tzW2ldLApAQCAtMTI4OSw2ICsxMzkyLDE0IEBAIHN0YXRp YyBpbnQgbGlieGxfX2J1aWxkX2RldmljZV9tb2RlbF9hcmdzX25ldyhsaWJ4bF9fZ2MgKmdjLAog ICAgICAgICAgICAgICAgICAgICAgICAgTE9HKEVSUk9SLCAicWVtdS14ZW4gZG9lc24ndCBzdXBw b3J0IHJlYWQtb25seSBJREUgZGlzayBkcml2ZXJzIik7CiAgICAgICAgICAgICAgICAgICAgICAg ICByZXR1cm4gRVJST1JfSU5WQUw7CiAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICAgICAgICAgaWYgKGNvbG9fbW9kZSA9PSBMSUJYTF9fQ09MT19TRUNPTkRBUlkpIHsKKyAgICAg ICAgICAgICAgICAgICAgICAgIGRyaXZlID0gbGlieGxfX3NwcmludGYKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoZ2MsICJpZj1ub25lLGRyaXZlcj0lcyxmaWxlPSVzLGlkPSVzIiwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0LCBwZGV2X3BhdGgsIGRpc2tzW2ldLmNv bG9fZXhwb3J0KTsKKworICAgICAgICAgICAgICAgICAgICAgICAgZmxleGFycmF5X2FwcGVuZChk bV9hcmdzLCAiLWRyaXZlIik7CisgICAgICAgICAgICAgICAgICAgICAgICBmbGV4YXJyYXlfYXBw ZW5kKGRtX2FyZ3MsIGRyaXZlKTsKKyAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICBkcml2ZSA9IHFlbXVfZGlza19pZGVfZHJpdmVfc3RyaW5nKGdjLCBwZGV2X3BhdGgs IGRpc2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZm9ybWF0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICZkaXNrc1tpXSwKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX3R5 cGVzLmlkbCBiL3Rvb2xzL2xpYnhsL2xpYnhsX3R5cGVzLmlkbAppbmRleCA5NWVmZDgyLi4wNDcw NDIzIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwKKysrIGIvdG9vbHMv bGlieGwvbGlieGxfdHlwZXMuaWRsCkBAIC01NzYsNiArNTc2LDEzIEBAIGxpYnhsX2RldmljZV9k aXNrID0gU3RydWN0KCJkZXZpY2VfZGlzayIsIFsKICAgICAoImlzX2Nkcm9tIiwgaW50ZWdlciks CiAgICAgKCJkaXJlY3RfaW9fc2FmZSIsIGJvb2wpLAogICAgICgiZGlzY2FyZF9lbmFibGUiLCBs aWJ4bF9kZWZib29sKSwKKyAgICAoImNvbG9fZW5hYmxlIiwgbGlieGxfZGVmYm9vbCksCisgICAg KCJjb2xvX3Jlc3RvcmVfZW5hYmxlIiwgbGlieGxfZGVmYm9vbCksCisgICAgKCJjb2xvX2hvc3Qi LCBzdHJpbmcpLAorICAgICgiY29sb19wb3J0IiwgaW50ZWdlciksCisgICAgKCJjb2xvX2V4cG9y dCIsIHN0cmluZyksCisgICAgKCJhY3RpdmVfZGlzayIsIHN0cmluZyksCisgICAgKCJoaWRkZW5f ZGlzayIsIHN0cmluZykKICAgICBdKQogCiBsaWJ4bF9kZXZpY2VfbmljID0gU3RydWN0KCJkZXZp Y2VfbmljIiwgWwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGx1X2Rpc2tfbC5sIGIvdG9v bHMvbGlieGwvbGlieGx1X2Rpc2tfbC5sCmluZGV4IDFhNWRlYjUuLmNmMmVlYzIgMTAwNjQ0Ci0t LSBhL3Rvb2xzL2xpYnhsL2xpYnhsdV9kaXNrX2wubAorKysgYi90b29scy9saWJ4bC9saWJ4bHVf ZGlza19sLmwKQEAgLTExMyw2ICsxMTMsMTYgQEAgc3RhdGljIHZvaWQgc2V0YmFja2VuZHR5cGUo RGlza1BhcnNlQ29udGV4dCAqZHBjLCBjb25zdCBjaGFyICpzdHIpIHsKICAgICBlbHNlIHhsdV9f ZGlza19lcnIoZHBjLHN0ciwidW5rbm93biB2YWx1ZSBmb3IgYmFja2VuZHR5cGUiKTsKIH0KIAor LyogU2V0cyAtPmNvbG8tcG9ydCBmcm9tIHRoZSBzdHJpbmcuICBDT0xPIG5lZWQgdGhpcy4gKi8K K3N0YXRpYyB2b2lkIHNldGNvbG9wb3J0KERpc2tQYXJzZUNvbnRleHQgKmRwYywgY29uc3QgY2hh ciAqc3RyKSB7CisgICAgaW50IHBvcnQgPSBhdG9pKHN0cik7CisgICAgaWYgKHBvcnQpIHsKKyAg ICAgICBkcGMtPmRpc2stPmNvbG9fcG9ydCA9IHBvcnQ7CisgICAgfSBlbHNlIHsKKwl4bHVfX2Rp c2tfZXJyKGRwYyxzdHIsInVua25vd24gdmFsdWUgZm9yIGNvbG9fcG9ydCIpOworICAgIH0KK30K KwogI2RlZmluZSBERVBSRUNBVEUodXNld2hhdGluc3RlYWQpIC8qIG5vdCBjdXJyZW50bHkgcmVw b3J0ZWQgKi8KIAogLyogSGFuZGxlcyBhIHZkZXYgcG9zaXRpb25hbCBwYXJhbWV0ZXIgd2hpY2gg aW5jbHVkZXMgYSBkZXZ0eXBlLiAqLwpAQCAtMTc2LDYgKzE4NiwxMyBAQCBzY3JpcHQ9W14sXSos Pwl7IFNUUklQKCcsJyk7IFNBVkVTVFJJTkcoInNjcmlwdCIsIHNjcmlwdCwgRlJPTUVRVUFMUyk7 IH0KIGRpcmVjdC1pby1zYWZlLD8geyBEUEMtPmRpc2stPmRpcmVjdF9pb19zYWZlID0gMTsgfQog ZGlzY2FyZCw/CXsgbGlieGxfZGVmYm9vbF9zZXQoJkRQQy0+ZGlzay0+ZGlzY2FyZF9lbmFibGUs IHRydWUpOyB9CiBuby1kaXNjYXJkLD8JeyBsaWJ4bF9kZWZib29sX3NldCgmRFBDLT5kaXNrLT5k aXNjYXJkX2VuYWJsZSwgZmFsc2UpOyB9Citjb2xvLD8JCXsgbGlieGxfZGVmYm9vbF9zZXQoJkRQ Qy0+ZGlzay0+Y29sb19lbmFibGUsIHRydWUpOyB9Cituby1jb2xvLD8JeyBsaWJ4bF9kZWZib29s X3NldCgmRFBDLT5kaXNrLT5jb2xvX2VuYWJsZSwgZmFsc2UpOyB9Citjb2xvLWhvc3Q9W14sXSos Pwl7IFNUUklQKCcsJyk7IFNBVkVTVFJJTkcoImNvbG8taG9zdCIsIGNvbG9faG9zdCwgRlJPTUVR VUFMUyk7IH0KK2NvbG8tcG9ydD1bXixdKiw/CXsgU1RSSVAoJywnKTsgc2V0Y29sb3BvcnQoRFBD LCBGUk9NRVFVQUxTKTsgfQorY29sby1leHBvcnQ9W14sXSosPwl7IFNUUklQKCcsJyk7IFNBVkVT VFJJTkcoImNvbG8tZXhwb3J0IiwgY29sb19leHBvcnQsIEZST01FUVVBTFMpOyB9CithY3RpdmUt ZGlzaz1bXixdKiw/CXsgU1RSSVAoJywnKTsgU0FWRVNUUklORygiYWN0aXZlLWRpc2siLCBhY3Rp dmVfZGlzaywgRlJPTUVRVUFMUyk7IH0KK2hpZGRlbi1kaXNrPVteLF0qLD8JeyBTVFJJUCgnLCcp OyBTQVZFU1RSSU5HKCJoaWRkZW4tZGlzayIsIGhpZGRlbl9kaXNrLCBGUk9NRVFVQUxTKTsgfQog CiAgLyogdGhlIHRhcmdldCBtYWdpYyBwYXJhbWV0ZXIsIGVhdHMgdGhlIHJlc3Qgb2YgdGhlIHN0 cmluZyAqLwogCi0tIAoxLjkuMwoKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVu Lm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK