From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v3 7/8] dm_op: convert HVMOP_inject_trap and HVMOP_inject_msi Date: Thu, 12 Jan 2017 14:58:39 +0000 Message-ID: <1484233120-2015-8-git-send-email-paul.durrant@citrix.com> References: <1484233120-2015-1-git-send-email-paul.durrant@citrix.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 1cRgq4-0005W4-Pj for xen-devel@lists.xenproject.org; Thu, 12 Jan 2017 14:58:52 +0000 In-Reply-To: <1484233120-2015-1-git-send-email-paul.durrant@citrix.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: Andrew Cooper , Daniel De Graaf , Paul Durrant , Ian Jackson List-Id: xen-devel@lists.xenproject.org Tk9URTogVGhpcyBwYXRjaCBhbHNvIG1vZGlmaWVzIHRoZSB0eXBlcyBvZiB0aGUgJ3ZlY3Rvcics ICd0eXBlJyBhbmQKICAgICAgJ2luc25fbGVuJyBhcmd1bWVudHMgb2YgeGNfaHZtX2luamVjdF90 cmFwKCkgZnJvbSB1aW50MzJfdCB0bwogICAgICB1aW50OF90LiBJbiBwcmFjdGljZSB0aGUgdmFs dWVzIHBhc3NlZCB3ZXJlIGFsd2F5cyB0cnVuY2F0ZWQgdG8KICAgICAgOCBiaXRzLgoKU3VnZ2Vz dGVkLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ClNpZ25lZC1vZmYtYnk6IFBh dWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+Ci0tLQpSZXZpZXdlZC1ieTogSmFu IEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDYzogRGFuaWVsIERlIEdyYWFmIDxkZ2RlZ3Jh QHR5Y2hvLm5zYS5nb3Y+CkNjOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0cml4LmNv bT4KQWNrZWQtYnk6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkNjOiBBbmRyZXcgQ29v cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgoKdjM6Ci0gRml4ZWQgcHJlZml4aW5nIGFu ZCBwYWRkaW5nLgoKdjI6Ci0gQWRkcmVzc2VkIHNldmVyYWwgY29tbWVudHMgZnJvbSBKYW4uCi0t LQogdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMveGVuLmlmICAgfCAgMiArLQogdG9vbHMvbGli eGMvaW5jbHVkZS94ZW5jdHJsLmggICAgICAgfCAgNCArLQogdG9vbHMvbGlieGMveGNfbWlzYy5j ICAgICAgICAgICAgICAgfCA2NCArKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4v YXJjaC94ODYvaHZtL2RtLmMgICAgICAgICAgICAgICB8IDQ5ICsrKysrKysrKysrKysrKysrKysr KysrKwogeGVuL2FyY2gveDg2L2h2bS9odm0uYyAgICAgICAgICAgICAgfCA3NiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29w LmggICAgICB8IDQ4ICsrKysrKysrKysrKysrKysrKysrKysrCiB4ZW4vaW5jbHVkZS9wdWJsaWMv aHZtL2h2bV9vcC5oICAgICB8IDQ1IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9pbmNsdWRl L3hzbS9kdW1teS5oICAgICAgICAgICAgIHwgIDYgLS0tCiB4ZW4vaW5jbHVkZS94c20veHNtLmgg ICAgICAgICAgICAgICB8ICA2IC0tLQogeGVuL3hzbS9kdW1teS5jICAgICAgICAgICAgICAgICAg ICAgfCAgMSAtCiB4ZW4veHNtL2ZsYXNrL2hvb2tzLmMgICAgICAgICAgICAgICB8ICA2IC0tLQog eGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMgfCAgNSArLS0KIDEyIGZpbGVzIGNo YW5nZWQsIDEyNCBpbnNlcnRpb25zKCspLCAxODggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv dG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMveGVuLmlmIGIvdG9vbHMvZmxhc2svcG9saWN5L21v ZHVsZXMveGVuLmlmCmluZGV4IDA5MmE2YzUuLjQ1ZTVjZWEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2Zs YXNrL3BvbGljeS9tb2R1bGVzL3hlbi5pZgorKysgYi90b29scy9mbGFzay9wb2xpY3kvbW9kdWxl cy94ZW4uaWYKQEAgLTE1MSw3ICsxNTEsNyBAQCBkZWZpbmUoYGRldmljZV9tb2RlbCcsIGAKIAog CWFsbG93ICQxICQyX3RhcmdldDpkb21haW4geyBnZXRkb21haW5pbmZvIHNodXRkb3duIH07CiAJ YWxsb3cgJDEgJDJfdGFyZ2V0Om1tdSB7IG1hcF9yZWFkIG1hcF93cml0ZSBhZGp1c3QgcGh5c21h cCB0YXJnZXRfaGFjayB9OwotCWFsbG93ICQxICQyX3RhcmdldDpodm0geyBnZXRwYXJhbSBzZXRw YXJhbSBodm1jdGwgY2FjaGVhdHRyIHNlbmRfaXJxIGRtIH07CisJYWxsb3cgJDEgJDJfdGFyZ2V0 Omh2bSB7IGdldHBhcmFtIHNldHBhcmFtIGh2bWN0bCBjYWNoZWF0dHIgZG0gfTsKICcpCiAKICMg bWFrZV9kZXZpY2VfbW9kZWwocHJpdiwgZG1fZG9tLCBodm1fZG9tKQpkaWZmIC0tZ2l0IGEvdG9v bHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmggYi90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwu aAppbmRleCAxMzQzMWJiLi41MzljYzY5IDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy9pbmNsdWRl L3hlbmN0cmwuaAorKysgYi90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaApAQCAtMTY0MSw4 ICsxNjQxLDggQEAgaW50IHhjX2h2bV9zZXRfbWVtX3R5cGUoCiAgKiByZXN1bWVzLiAKICAqLwog aW50IHhjX2h2bV9pbmplY3RfdHJhcCgKLSAgICB4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRfdCBk b20sIGludCB2Y3B1LCB1aW50MzJfdCB2ZWN0b3IsCi0gICAgdWludDMyX3QgdHlwZSwgdWludDMy X3QgZXJyb3JfY29kZSwgdWludDMyX3QgaW5zbl9sZW4sCisgICAgeGNfaW50ZXJmYWNlICp4Y2gs IGRvbWlkX3QgZG9tLCBpbnQgdmNwdSwgdWludDhfdCB2ZWN0b3IsCisgICAgdWludDhfdCB0eXBl LCB1aW50MzJfdCBlcnJvcl9jb2RlLCB1aW50OF90IGluc25fbGVuLAogICAgIHVpbnQ2NF90IGNy Mik7CiAKIC8qCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94Y19taXNjLmMgYi90b29scy9saWJ4 Yy94Y19taXNjLmMKaW5kZXggNWIwNmQ2Yi4uOThhYjgyNiAxMDA2NDQKLS0tIGEvdG9vbHMvbGli eGMveGNfbWlzYy5jCisrKyBiL3Rvb2xzL2xpYnhjL3hjX21pc2MuYwpAQCAtNTI3LDI5ICs1Mjcs MjAgQEAgaW50IHhjX2h2bV9zZXRfcGNpX2xpbmtfcm91dGUoCiB9CiAKIGludCB4Y19odm1faW5q ZWN0X21zaSgKLSAgICB4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRfdCBkb20sIHVpbnQ2NF90IGFk ZHIsIHVpbnQzMl90IGRhdGEpCisgICAgeGNfaW50ZXJmYWNlICp4Y2gsIGRvbWlkX3QgZG9tLCB1 aW50NjRfdCBtc2lfYWRkciwgdWludDMyX3QgbXNpX2RhdGEpCiB7Ci0gICAgREVDTEFSRV9IWVBF UkNBTExfQlVGRkVSKHN0cnVjdCB4ZW5faHZtX2luamVjdF9tc2ksIGFyZyk7Ci0gICAgaW50IHJj OwotCi0gICAgYXJnID0geGNfaHlwZXJjYWxsX2J1ZmZlcl9hbGxvYyh4Y2gsIGFyZywgc2l6ZW9m KCphcmcpKTsKLSAgICBpZiAoIGFyZyA9PSBOVUxMICkKLSAgICB7Ci0gICAgICAgIFBFUlJPUigi Q291bGQgbm90IGFsbG9jYXRlIG1lbW9yeSBmb3IgeGNfaHZtX2luamVjdF9tc2kgaHlwZXJjYWxs Iik7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICB9CisgICAgc3RydWN0IHhlbl9kbV9vcCBvcDsK KyAgICBzdHJ1Y3QgeGVuX2RtX29wX2luamVjdF9tc2kgKmRhdGE7CiAKLSAgICBhcmctPmRvbWlk ID0gZG9tOwotICAgIGFyZy0+YWRkciAgPSBhZGRyOwotICAgIGFyZy0+ZGF0YSAgPSBkYXRhOwor ICAgIG1lbXNldCgmb3AsIDAsIHNpemVvZihvcCkpOwogCi0gICAgcmMgPSB4ZW5jYWxsMih4Y2gt PnhjYWxsLCBfX0hZUEVSVklTT1JfaHZtX29wLAotICAgICAgICAgICAgICAgICAgSFZNT1BfaW5q ZWN0X21zaSwKLSAgICAgICAgICAgICAgICAgIEhZUEVSQ0FMTF9CVUZGRVJfQVNfQVJHKGFyZykp OworICAgIG9wLm9wID0gWEVOX0RNT1BfaW5qZWN0X21zaTsKKyAgICBkYXRhID0gJm9wLnUuaW5q ZWN0X21zaTsKIAotICAgIHhjX2h5cGVyY2FsbF9idWZmZXJfZnJlZSh4Y2gsIGFyZyk7CisgICAg ZGF0YS0+YWRkciA9IG1zaV9hZGRyOworICAgIGRhdGEtPmRhdGEgPSBtc2lfZGF0YTsKIAotICAg IHJldHVybiByYzsKKyAgICByZXR1cm4gZG9fZG1fb3AoeGNoLCBkb20sIDEsICZvcCwgc2l6ZW9m KG9wKSk7CiB9CiAKIGludCB4Y19odm1fdHJhY2tfZGlydHlfdnJhbSgKQEAgLTYwOCwzNSArNTk5 LDI2IEBAIGludCB4Y19odm1fc2V0X21lbV90eXBlKAogfQogCiBpbnQgeGNfaHZtX2luamVjdF90 cmFwKAotICAgIHhjX2ludGVyZmFjZSAqeGNoLCBkb21pZF90IGRvbSwgaW50IHZjcHUsIHVpbnQz Ml90IHZlY3RvciwKLSAgICB1aW50MzJfdCB0eXBlLCB1aW50MzJfdCBlcnJvcl9jb2RlLCB1aW50 MzJfdCBpbnNuX2xlbiwKKyAgICB4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRfdCBkb20sIGludCB2 Y3B1LCB1aW50OF90IHZlY3RvciwKKyAgICB1aW50OF90IHR5cGUsIHVpbnQzMl90IGVycm9yX2Nv ZGUsIHVpbnQ4X3QgaW5zbl9sZW4sCiAgICAgdWludDY0X3QgY3IyKQogewotICAgIERFQ0xBUkVf SFlQRVJDQUxMX0JVRkZFUihzdHJ1Y3QgeGVuX2h2bV9pbmplY3RfdHJhcCwgYXJnKTsKLSAgICBp bnQgcmM7Ci0KLSAgICBhcmcgPSB4Y19oeXBlcmNhbGxfYnVmZmVyX2FsbG9jKHhjaCwgYXJnLCBz aXplb2YoKmFyZykpOwotICAgIGlmICggYXJnID09IE5VTEwgKQotICAgIHsKLSAgICAgICAgUEVS Uk9SKCJDb3VsZCBub3QgYWxsb2NhdGUgbWVtb3J5IGZvciB4Y19odm1faW5qZWN0X3RyYXAgaHlw ZXJjYWxsIik7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICB9CisgICAgc3RydWN0IHhlbl9kbV9v cCBvcDsKKyAgICBzdHJ1Y3QgeGVuX2RtX29wX2luamVjdF90cmFwICpkYXRhOwogCi0gICAgYXJn LT5kb21pZCAgICAgICA9IGRvbTsKLSAgICBhcmctPnZjcHVpZCAgICAgID0gdmNwdTsKLSAgICBh cmctPnZlY3RvciAgICAgID0gdmVjdG9yOwotICAgIGFyZy0+dHlwZSAgICAgICAgPSB0eXBlOwot ICAgIGFyZy0+ZXJyb3JfY29kZSAgPSBlcnJvcl9jb2RlOwotICAgIGFyZy0+aW5zbl9sZW4gICAg PSBpbnNuX2xlbjsKLSAgICBhcmctPmNyMiAgICAgICAgID0gY3IyOworICAgIG1lbXNldCgmb3As IDAsIHNpemVvZihvcCkpOwogCi0gICAgcmMgPSB4ZW5jYWxsMih4Y2gtPnhjYWxsLCBfX0hZUEVS VklTT1JfaHZtX29wLAotICAgICAgICAgICAgICAgICAgSFZNT1BfaW5qZWN0X3RyYXAsCi0gICAg ICAgICAgICAgICAgICBIWVBFUkNBTExfQlVGRkVSX0FTX0FSRyhhcmcpKTsKKyAgICBvcC5vcCA9 IFhFTl9ETU9QX2luamVjdF90cmFwOworICAgIGRhdGEgPSAmb3AudS5pbmplY3RfdHJhcDsKIAot ICAgIHhjX2h5cGVyY2FsbF9idWZmZXJfZnJlZSh4Y2gsIGFyZyk7CisgICAgZGF0YS0+dmNwdWlk ID0gdmNwdTsKKyAgICBkYXRhLT52ZWN0b3IgPSB2ZWN0b3I7CisgICAgZGF0YS0+dHlwZSA9IHR5 cGU7CisgICAgZGF0YS0+ZXJyb3JfY29kZSA9IGVycm9yX2NvZGU7CisgICAgZGF0YS0+aW5zbl9s ZW4gPSBpbnNuX2xlbjsKKyAgICBkYXRhLT5jcjIgPSBjcjI7CiAKLSAgICByZXR1cm4gcmM7Cisg ICAgcmV0dXJuIGRvX2RtX29wKHhjaCwgZG9tLCAxLCAmb3AsIHNpemVvZihvcCkpOwogfQogCiBp bnQgeGNfbGl2ZXBhdGNoX3VwbG9hZCh4Y19pbnRlcmZhY2UgKnhjaCwKZGlmZiAtLWdpdCBhL3hl bi9hcmNoL3g4Ni9odm0vZG0uYyBiL3hlbi9hcmNoL3g4Ni9odm0vZG0uYwppbmRleCA5N2MxZjA3 Li4wYTdlNTBhIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2RtLmMKKysrIGIveGVuL2Fy Y2gveDg2L2h2bS9kbS5jCkBAIC0yNzYsNiArMjc2LDI4IEBAIHN0YXRpYyBpbnQgc2V0X21lbV90 eXBlKHN0cnVjdCBkb21haW4gKmQsIGh2bW1lbV90eXBlX3QgbWVtX3R5cGUsCiAgICAgcmV0dXJu IHJjOwogfQogCitzdGF0aWMgaW50IGluamVjdF90cmFwKHN0cnVjdCBkb21haW4gKmQsIHVuc2ln bmVkIGludCB2Y3B1aWQsCisgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgdmVjdG9yLCB1 aW50OF90IHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgaW5zbl9sZW4sIHVp bnQzMl90IGVycm9yX2NvZGUsCisgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcg Y3IyKQoreworICAgIHN0cnVjdCB2Y3B1ICp2OworCisgICAgaWYgKCB2Y3B1aWQgPj0gZC0+bWF4 X3ZjcHVzIHx8ICEodiA9IGQtPnZjcHVbdmNwdWlkXSkgKQorICAgICAgICByZXR1cm4gLUVJTlZB TDsKKworICAgIGlmICggdi0+YXJjaC5odm1fdmNwdS5pbmplY3RfdHJhcC52ZWN0b3IgIT0gLTEg KQorICAgICAgICByZXR1cm4gLUVCVVNZOworCisgICAgdi0+YXJjaC5odm1fdmNwdS5pbmplY3Rf dHJhcC50eXBlID0gdHlwZTsKKyAgICB2LT5hcmNoLmh2bV92Y3B1LmluamVjdF90cmFwLmluc25f bGVuID0gaW5zbl9sZW47CisgICAgdi0+YXJjaC5odm1fdmNwdS5pbmplY3RfdHJhcC5lcnJvcl9j b2RlID0gZXJyb3JfY29kZTsKKyAgICB2LT5hcmNoLmh2bV92Y3B1LmluamVjdF90cmFwLmNyMiA9 IGNyMjsKKyAgICB2LT5hcmNoLmh2bV92Y3B1LmluamVjdF90cmFwLnZlY3RvciA9IHZlY3RvcjsK KworICAgIHJldHVybiAwOworfQorCiBsb25nIGRvX2RtX29wKGRvbWlkX3QgZG9taWQsCiAgICAg ICAgICAgICAgIHVuc2lnbmVkIGludCBucl9idWZzLAogICAgICAgICAgICAgICBYRU5fR1VFU1Rf SEFORExFX1BBUkFNKHhlbl9kbV9vcF9idWZfdCkgYnVmcykKQEAgLTQ2MSw2ICs0ODMsMzMgQEAg bG9uZyBkb19kbV9vcChkb21pZF90IGRvbWlkLAogICAgICAgICBicmVhazsKICAgICB9CiAKKyAg ICBjYXNlIFhFTl9ETU9QX2luamVjdF90cmFwOgorICAgIHsKKyAgICAgICAgY29uc3Qgc3RydWN0 IHhlbl9kbV9vcF9pbmplY3RfdHJhcCAqZGF0YSA9CisgICAgICAgICAgICAmb3AudS5pbmplY3Rf dHJhcDsKKworICAgICAgICByYyA9IC1FSU5WQUw7CisgICAgICAgIGlmICggZGF0YS0+cGFkMCB8 fCBkYXRhLT5wYWQxICkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIHJjID0gaW5qZWN0 X3RyYXAoZCwgZGF0YS0+dmNwdWlkLCBkYXRhLT52ZWN0b3IsCisgICAgICAgICAgICAgICAgICAg ICAgICAgZGF0YS0+dHlwZSwgZGF0YS0+aW5zbl9sZW4sCisgICAgICAgICAgICAgICAgICAgICAg ICAgZGF0YS0+ZXJyb3JfY29kZSwgZGF0YS0+Y3IyKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQor ICAgIGNhc2UgWEVOX0RNT1BfaW5qZWN0X21zaToKKyAgICB7CisgICAgICAgIGNvbnN0IHN0cnVj dCB4ZW5fZG1fb3BfaW5qZWN0X21zaSAqZGF0YSA9CisgICAgICAgICAgICAmb3AudS5pbmplY3Rf bXNpOworCisgICAgICAgIHJjID0gLUVJTlZBTDsKKyAgICAgICAgaWYgKCBkYXRhLT5wYWQgKQor ICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgcmMgPSBodm1faW5qZWN0X21zaShkLCBkYXRh LT5hZGRyLCBkYXRhLT5kYXRhKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCiAgICAgZGVmYXVs dDoKICAgICAgICAgcmMgPSAtRU9QTk9UU1VQUDsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jIGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwppbmRleCBh NGMyNTg0Li44ZDQyYWRjIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCisrKyBi L3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKQEAgLTQ1NzAsMzUgKzQ1NzAsNiBAQCBzdGF0aWMgdm9p ZCBodm1fczNfcmVzdW1lKHN0cnVjdCBkb21haW4gKmQpCiAgICAgfQogfQogCi1zdGF0aWMgaW50 IGh2bW9wX2luamVjdF9tc2koCi0gICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5faHZtX2lu amVjdF9tc2lfdCkgdW9wKQotewotICAgIHN0cnVjdCB4ZW5faHZtX2luamVjdF9tc2kgb3A7Ci0g ICAgc3RydWN0IGRvbWFpbiAqZDsKLSAgICBpbnQgcmM7Ci0KLSAgICBpZiAoIGNvcHlfZnJvbV9n dWVzdCgmb3AsIHVvcCwgMSkgKQotICAgICAgICByZXR1cm4gLUVGQVVMVDsKLQotICAgIHJjID0g cmN1X2xvY2tfcmVtb3RlX2RvbWFpbl9ieV9pZChvcC5kb21pZCwgJmQpOwotICAgIGlmICggcmMg IT0gMCApCi0gICAgICAgIHJldHVybiByYzsKLQotICAgIHJjID0gLUVJTlZBTDsKLSAgICBpZiAo ICFpc19odm1fZG9tYWluKGQpICkKLSAgICAgICAgZ290byBvdXQ7Ci0KLSAgICByYyA9IHhzbV9o dm1faW5qZWN0X21zaShYU01fRE1fUFJJViwgZCk7Ci0gICAgaWYgKCByYyApCi0gICAgICAgIGdv dG8gb3V0OwotCi0gICAgcmMgPSBodm1faW5qZWN0X21zaShkLCBvcC5hZGRyLCBvcC5kYXRhKTsK LQotIG91dDoKLSAgICByY3VfdW5sb2NrX2RvbWFpbihkKTsKLSAgICByZXR1cm4gcmM7Ci19Ci0K IHN0YXRpYyBpbnQgaHZtb3BfZmx1c2hfdGxiX2FsbCh2b2lkKQogewogICAgIHN0cnVjdCBkb21h aW4gKmQgPSBjdXJyZW50LT5kb21haW47CkBAIC01MjQ5LDExICs1MjIwLDYgQEAgbG9uZyBkb19o dm1fb3AodW5zaWduZWQgbG9uZyBvcCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBhcmcp CiAgICAgICAgICAgICBndWVzdF9oYW5kbGVfY2FzdChhcmcsIHhlbl9odm1fcGFyYW1fdCkpOwog ICAgICAgICBicmVhazsKIAotICAgIGNhc2UgSFZNT1BfaW5qZWN0X21zaToKLSAgICAgICAgcmMg PSBodm1vcF9pbmplY3RfbXNpKAotICAgICAgICAgICAgZ3Vlc3RfaGFuZGxlX2Nhc3QoYXJnLCB4 ZW5faHZtX2luamVjdF9tc2lfdCkpOwotICAgICAgICBicmVhazsKLQogICAgIGNhc2UgSFZNT1Bf Zmx1c2hfdGxiczoKICAgICAgICAgcmMgPSBndWVzdF9oYW5kbGVfaXNfbnVsbChhcmcpID8gaHZt b3BfZmx1c2hfdGxiX2FsbCgpIDogLUVJTlZBTDsKICAgICAgICAgYnJlYWs7CkBAIC01MzEwLDQ4 ICs1Mjc2LDYgQEAgbG9uZyBkb19odm1fb3AodW5zaWduZWQgbG9uZyBvcCwgWEVOX0dVRVNUX0hB TkRMRV9QQVJBTSh2b2lkKSBhcmcpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIGNhc2Ug SFZNT1BfaW5qZWN0X3RyYXA6IAotICAgIHsKLSAgICAgICAgeGVuX2h2bV9pbmplY3RfdHJhcF90 IHRyOwotICAgICAgICBzdHJ1Y3QgZG9tYWluICpkOwotICAgICAgICBzdHJ1Y3QgdmNwdSAqdjsK LQotICAgICAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdCgmdHIsIGFyZywgMSApICkKLSAgICAgICAg ICAgIHJldHVybiAtRUZBVUxUOwotCi0gICAgICAgIHJjID0gcmN1X2xvY2tfcmVtb3RlX2RvbWFp bl9ieV9pZCh0ci5kb21pZCwgJmQpOwotICAgICAgICBpZiAoIHJjICE9IDAgKQotICAgICAgICAg ICAgcmV0dXJuIHJjOwotCi0gICAgICAgIHJjID0gLUVJTlZBTDsKLSAgICAgICAgaWYgKCAhaXNf aHZtX2RvbWFpbihkKSApCi0gICAgICAgICAgICBnb3RvIGluanRyYXBfZmFpbDsKLQotICAgICAg ICByYyA9IHhzbV9odm1fY29udHJvbChYU01fRE1fUFJJViwgZCwgb3ApOwotICAgICAgICBpZiAo IHJjICkKLSAgICAgICAgICAgIGdvdG8gaW5qdHJhcF9mYWlsOwotCi0gICAgICAgIHJjID0gLUVO T0VOVDsKLSAgICAgICAgaWYgKCB0ci52Y3B1aWQgPj0gZC0+bWF4X3ZjcHVzIHx8ICh2ID0gZC0+ dmNwdVt0ci52Y3B1aWRdKSA9PSBOVUxMICkKLSAgICAgICAgICAgIGdvdG8gaW5qdHJhcF9mYWls OwotICAgICAgICAKLSAgICAgICAgaWYgKCB2LT5hcmNoLmh2bV92Y3B1LmluamVjdF90cmFwLnZl Y3RvciAhPSAtMSApCi0gICAgICAgICAgICByYyA9IC1FQlVTWTsKLSAgICAgICAgZWxzZSAKLSAg ICAgICAgewotICAgICAgICAgICAgdi0+YXJjaC5odm1fdmNwdS5pbmplY3RfdHJhcC52ZWN0b3Ig PSB0ci52ZWN0b3I7Ci0gICAgICAgICAgICB2LT5hcmNoLmh2bV92Y3B1LmluamVjdF90cmFwLnR5 cGUgPSB0ci50eXBlOwotICAgICAgICAgICAgdi0+YXJjaC5odm1fdmNwdS5pbmplY3RfdHJhcC5l cnJvcl9jb2RlID0gdHIuZXJyb3JfY29kZTsKLSAgICAgICAgICAgIHYtPmFyY2guaHZtX3ZjcHUu aW5qZWN0X3RyYXAuaW5zbl9sZW4gPSB0ci5pbnNuX2xlbjsKLSAgICAgICAgICAgIHYtPmFyY2gu aHZtX3ZjcHUuaW5qZWN0X3RyYXAuY3IyID0gdHIuY3IyOwotICAgICAgICAgICAgcmMgPSAwOwot ICAgICAgICB9Ci0KLSAgICBpbmp0cmFwX2ZhaWw6Ci0gICAgICAgIHJjdV91bmxvY2tfZG9tYWlu KGQpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KICAgICBjYXNlIEhWTU9QX2d1ZXN0X3JlcXVl c3Rfdm1fZXZlbnQ6CiAgICAgICAgIGlmICggZ3Vlc3RfaGFuZGxlX2lzX251bGwoYXJnKSApCiAg ICAgICAgICAgICBtb25pdG9yX2d1ZXN0X3JlcXVlc3QoKTsKZGlmZiAtLWdpdCBhL3hlbi9pbmNs dWRlL3B1YmxpYy9odm0vZG1fb3AuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaApp bmRleCA0ZWFiMDhiLi5jNjUwYThlIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZt L2RtX29wLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oCkBAIC0yNjksNiAr MjY5LDUyIEBAIHN0cnVjdCB4ZW5fZG1fb3Bfc2V0X21lbV90eXBlIHsKICAgICB1aW50NjRfYWxp Z25lZF90IGZpcnN0X3BmbjsKIH07CiAKKy8qCisgKiBYRU5fRE1PUF9pbmplY3RfdHJhcDogSW5q ZWN0IGEgdHJhcCBpbnRvIGEgVkNQVSwgd2hpY2ggd2lsbCBnZXQgdGFrZW4gdXAKKyAqICAgICAg ICAgICAgICAgICAgICAgICB3aGVuIGl0IGlzIG5leHQgc2NoZWR1bGVkLgorICoKKyAqIE5vdGUg dGhhdCB0aGUgY2FsbGVyIHNob3VsZCBrbm93IGVub3VnaCBvZiB0aGUgc3RhdGUgb2YgdGhlIENQ VSBiZWZvcmUKKyAqIGluamVjdGluZywgdG8ga25vdyB3aGF0IHRoZSBlZmZlY3Qgb2YgaW5qZWN0 aW5nIHRoZSB0cmFwIHdpbGwgYmUuCisgKi8KKyNkZWZpbmUgWEVOX0RNT1BfaW5qZWN0X3RyYXAg MTMKKworc3RydWN0IHhlbl9kbV9vcF9pbmplY3RfdHJhcCB7CisgICAgLyogSU4gLSBpbmRleCBv ZiB2Q1BVICovCisgICAgdWludDMyX3QgdmNwdWlkOworICAgIC8qIElOIC0gaW50ZXJydXB0IHZl Y3RvciAqLworICAgIHVpbnQ4X3QgdmVjdG9yOworICAgIC8qIElOIC0gdHJhcCB0eXBlIChETU9Q X1RSQVBfKiApICovCisgICAgdWludDhfdCB0eXBlOworLyogTkIuIFRoaXMgZW51bWVyYXRpb24g cHJlY2lzZWx5IG1hdGNoZXMgaHZtLmg6WDg2X0VWRU5UVFlQRV8qICovCisjIGRlZmluZSBYRU5f RE1PUF9UUkFQX2V4dF9pbnQgICAgMCAvKiBleHRlcm5hbCBpbnRlcnJ1cHQgKi8KKyMgZGVmaW5l IFhFTl9ETU9QX1RSQVBfbm1pICAgICAgICAyIC8qIG5taSAqLworIyBkZWZpbmUgWEVOX0RNT1Bf VFJBUF9od19leGMgICAgIDMgLyogaGFyZHdhcmUgZXhjZXB0aW9uICovCisjIGRlZmluZSBYRU5f RE1PUF9UUkFQX3N3X2ludCAgICAgNCAvKiBzb2Z0d2FyZSBpbnRlcnJ1cHQgKENEIG5uKSAqLwor IyBkZWZpbmUgWEVOX0RNT1BfVFJBUF9wcmlfc3dfZXhjIDUgLyogSUNFQlAgKEYxKSAqLworIyBk ZWZpbmUgWEVOX0RNT1BfVFJBUF9zd19leGMgICAgIDYgLyogSU5UMyAoQ0MpLCBJTlRPIChDRSkg Ki8KKyAgICAvKiBJTiAtIGVuc3RydWN0aW9uIGxlbmd0aCAqLworICAgIHVpbnQ4X3QgaW5zbl9s ZW47CisgICAgdWludDhfdCBwYWQwOworICAgIC8qIElOIC0gZXJyb3IgY29kZSAob3IgfjAgdG8g c2tpcCkgKi8KKyAgICB1aW50MzJfdCBlcnJvcl9jb2RlOworICAgIHVpbnQzMl90IHBhZDE7Cisg ICAgLyogSU4gLSBDUjIgZm9yIHBhZ2UgZmF1bHRzICovCisgICAgdWludDY0X2FsaWduZWRfdCBj cjI7Cit9OworCisvKgorICogWEVOX0RNT1BfaW5qZWN0X21zaTogSW5qZWN0IGFuIE1TSSBmb3Ig YW4gZW11bGF0ZWQgZGV2aWNlLgorICovCisjZGVmaW5lIFhFTl9ETU9QX2luamVjdF9tc2kgMTQK Kworc3RydWN0IHhlbl9kbV9vcF9pbmplY3RfbXNpIHsKKyAgICAvKiBJTiAtIE1TSSBkYXRhIChs b3dlciAzMiBiaXRzKSAqLworICAgIHVpbnQzMl90IGRhdGE7CisgICAgdWludDMyX3QgcGFkOwor ICAgIC8qIElOIC0gTVNJIGFkZHJlc3MgKDB4ZmVleHh4eHgpICovCisgICAgdWludDY0X2FsaWdu ZWRfdCBhZGRyOworfTsKKwogc3RydWN0IHhlbl9kbV9vcCB7CiAgICAgdWludDMyX3Qgb3A7CiAg ICAgdWludDMyX3QgcGFkOwpAQCAtMjg1LDYgKzMzMSw4IEBAIHN0cnVjdCB4ZW5fZG1fb3Agewog ICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX3NldF9wY2lfbGlua19yb3V0ZSBzZXRfcGNpX2xpbmtf cm91dGU7CiAgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3BfbW9kaWZpZWRfbWVtb3J5IG1vZGlmaWVk X21lbW9yeTsKICAgICAgICAgc3RydWN0IHhlbl9kbV9vcF9zZXRfbWVtX3R5cGUgc2V0X21lbV90 eXBlOworICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX2luamVjdF90cmFwIGluamVjdF90cmFwOwor ICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX2luamVjdF9tc2kgaW5qZWN0X21zaTsKICAgICB9IHU7 CiB9OwogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2h2bV9vcC5oIGIveGVu L2luY2x1ZGUvcHVibGljL2h2bS9odm1fb3AuaAppbmRleCBkN2UyZjEyLi5iYzAwZWYwIDEwMDY0 NAotLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2h2bV9vcC5oCisrKyBiL3hlbi9pbmNsdWRl L3B1YmxpYy9odm0vaHZtX29wLmgKQEAgLTEzMywzOCArMTMzLDYgQEAgREVGSU5FX1hFTl9HVUVT VF9IQU5ETEUoeGVuX2h2bV94ZW50cmFjZV90KTsKIC8qIERlcHJlY2F0ZWQgYnkgWEVOTUVNX2Fj Y2Vzc19vcF9nZXRfYWNjZXNzICovCiAjZGVmaW5lIEhWTU9QX2dldF9tZW1fYWNjZXNzICAgICAg ICAxMwogCi0jZGVmaW5lIEhWTU9QX2luamVjdF90cmFwICAgICAgICAgICAgMTQKLS8qIEluamVj dCBhIHRyYXAgaW50byBhIFZDUFUsIHdoaWNoIHdpbGwgZ2V0IHRha2VuIHVwIG9uIHRoZSBuZXh0 Ci0gKiBzY2hlZHVsaW5nIG9mIGl0LiBOb3RlIHRoYXQgdGhlIGNhbGxlciBzaG91bGQga25vdyBl bm91Z2ggb2YgdGhlCi0gKiBzdGF0ZSBvZiB0aGUgQ1BVIGJlZm9yZSBpbmplY3RpbmcsIHRvIGtu b3cgd2hhdCB0aGUgZWZmZWN0IG9mCi0gKiBpbmplY3RpbmcgdGhlIHRyYXAgd2lsbCBiZS4KLSAq Lwotc3RydWN0IHhlbl9odm1faW5qZWN0X3RyYXAgewotICAgIC8qIERvbWFpbiB0byBiZSBxdWVy aWVkLiAqLwotICAgIGRvbWlkX3QgZG9taWQ7Ci0gICAgLyogVkNQVSAqLwotICAgIHVpbnQzMl90 IHZjcHVpZDsKLSAgICAvKiBWZWN0b3IgbnVtYmVyICovCi0gICAgdWludDMyX3QgdmVjdG9yOwot ICAgIC8qIFRyYXAgdHlwZSAoSFZNT1BfVFJBUF8qKSAqLwotICAgIHVpbnQzMl90IHR5cGU7Ci0v KiBOQi4gVGhpcyBlbnVtZXJhdGlvbiBwcmVjaXNlbHkgbWF0Y2hlcyBodm0uaDpYODZfRVZFTlRU WVBFXyogKi8KLSMgZGVmaW5lIEhWTU9QX1RSQVBfZXh0X2ludCAgICAwIC8qIGV4dGVybmFsIGlu dGVycnVwdCAqLwotIyBkZWZpbmUgSFZNT1BfVFJBUF9ubWkgICAgICAgIDIgLyogbm1pICovCi0j IGRlZmluZSBIVk1PUF9UUkFQX2h3X2V4YyAgICAgMyAvKiBoYXJkd2FyZSBleGNlcHRpb24gKi8K LSMgZGVmaW5lIEhWTU9QX1RSQVBfc3dfaW50ICAgICA0IC8qIHNvZnR3YXJlIGludGVycnVwdCAo Q0Qgbm4pICovCi0jIGRlZmluZSBIVk1PUF9UUkFQX3ByaV9zd19leGMgNSAvKiBJQ0VCUCAoRjEp ICovCi0jIGRlZmluZSBIVk1PUF9UUkFQX3N3X2V4YyAgICAgNiAvKiBJTlQzIChDQyksIElOVE8g KENFKSAqLwotICAgIC8qIEVycm9yIGNvZGUsIG9yIH4wdSB0byBza2lwICovCi0gICAgdWludDMy X3QgZXJyb3JfY29kZTsKLSAgICAvKiBJbnRydWN0aW9uIGxlbmd0aCAqLwotICAgIHVpbnQzMl90 IGluc25fbGVuOwotICAgIC8qIENSMiBmb3IgcGFnZSBmYXVsdHMgKi8KLSAgICB1aW50NjRfYWxp Z25lZF90IGNyMjsKLX07Ci10eXBlZGVmIHN0cnVjdCB4ZW5faHZtX2luamVjdF90cmFwIHhlbl9o dm1faW5qZWN0X3RyYXBfdDsKLURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9odm1faW5qZWN0 X3RyYXBfdCk7Ci0KICNlbmRpZiAvKiBkZWZpbmVkKF9fWEVOX18pIHx8IGRlZmluZWQoX19YRU5f VE9PTFNfXykgKi8KIAogI2RlZmluZSBIVk1PUF9nZXRfbWVtX3R5cGUgICAgMTUKQEAgLTE4NCwx OSArMTUyLDYgQEAgREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2h2bV9nZXRfbWVtX3R5cGVf dCk7CiAvKiBGb2xsb3dpbmcgdG9vbHMtb25seSBpbnRlcmZhY2VzIG1heSBjaGFuZ2UgaW4gZnV0 dXJlLiAqLwogI2lmIGRlZmluZWQoX19YRU5fXykgfHwgZGVmaW5lZChfX1hFTl9UT09MU19fKQog Ci0vKiBNU0kgaW5qZWN0aW9uIGZvciBlbXVsYXRlZCBkZXZpY2VzICovCi0jZGVmaW5lIEhWTU9Q X2luamVjdF9tc2kgICAgICAgICAxNgotc3RydWN0IHhlbl9odm1faW5qZWN0X21zaSB7Ci0gICAg LyogRG9tYWluIHRvIGJlIGluamVjdGVkICovCi0gICAgZG9taWRfdCAgIGRvbWlkOwotICAgIC8q IERhdGEgLS0gbG93ZXIgMzIgYml0cyAqLwotICAgIHVpbnQzMl90ICBkYXRhOwotICAgIC8qIEFk ZHJlc3MgKDB4ZmVleHh4eHgpICovCi0gICAgdWludDY0X3QgIGFkZHI7Ci19OwotdHlwZWRlZiBz dHJ1Y3QgeGVuX2h2bV9pbmplY3RfbXNpIHhlbl9odm1faW5qZWN0X21zaV90OwotREVGSU5FX1hF Tl9HVUVTVF9IQU5ETEUoeGVuX2h2bV9pbmplY3RfbXNpX3QpOwotCiAvKgogICogRGVmaW5pdGlv bnMgcmVsYXRpbmcgdG8gRE1PUF9jcmVhdGVfaW9yZXFfc2VydmVyLiAoRGVmaW5lZCBoZXJlIGZv cgogICogYmFja3dhcmRzIGNvbXBhdGliaWxpdHkpLgpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUv eHNtL2R1bW15LmggYi94ZW4vaW5jbHVkZS94c20vZHVtbXkuaAppbmRleCBkM2RlNGI3Li40YjI3 YWU3IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94c20vZHVtbXkuaAorKysgYi94ZW4vaW5jbHVk ZS94c20vZHVtbXkuaApAQCAtNjEwLDEyICs2MTAsNiBAQCBzdGF0aWMgWFNNX0lOTElORSBpbnQg eHNtX3NoYWRvd19jb250cm9sKFhTTV9ERUZBVUxUX0FSRyBzdHJ1Y3QgZG9tYWluICpkLCB1aW50 MwogICAgIHJldHVybiB4c21fZGVmYXVsdF9hY3Rpb24oYWN0aW9uLCBjdXJyZW50LT5kb21haW4s IGQpOwogfQogCi1zdGF0aWMgWFNNX0lOTElORSBpbnQgeHNtX2h2bV9pbmplY3RfbXNpKFhTTV9E RUZBVUxUX0FSRyBzdHJ1Y3QgZG9tYWluICpkKQotewotICAgIFhTTV9BU1NFUlRfQUNUSU9OKFhT TV9ETV9QUklWKTsKLSAgICByZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9uKGFjdGlvbiwgY3VycmVu dC0+ZG9tYWluLCBkKTsKLX0KLQogc3RhdGljIFhTTV9JTkxJTkUgaW50IHhzbV9tZW1fc2hhcmlu Z19vcChYU01fREVGQVVMVF9BUkcgc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGRvbWFpbiAqY2Qs IGludCBvcCkKIHsKICAgICBYU01fQVNTRVJUX0FDVElPTihYU01fRE1fUFJJVik7CmRpZmYgLS1n aXQgYS94ZW4vaW5jbHVkZS94c20veHNtLmggYi94ZW4vaW5jbHVkZS94c20veHNtLmgKaW5kZXgg MmU0YTNjZS4uMmNmN2FjMSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveHNtL3hzbS5oCisrKyBi L3hlbi9pbmNsdWRlL3hzbS94c20uaApAQCAtMTYyLDcgKzE2Miw2IEBAIHN0cnVjdCB4c21fb3Bl cmF0aW9ucyB7CiAjaWZkZWYgQ09ORklHX1g4NgogICAgIGludCAoKmRvX21jYSkgKHZvaWQpOwog ICAgIGludCAoKnNoYWRvd19jb250cm9sKSAoc3RydWN0IGRvbWFpbiAqZCwgdWludDMyX3Qgb3Ap OwotICAgIGludCAoKmh2bV9pbmplY3RfbXNpKSAoc3RydWN0IGRvbWFpbiAqZCk7CiAgICAgaW50 ICgqbWVtX3NoYXJpbmdfb3ApIChzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgZG9tYWluICpjZCwg aW50IG9wKTsKICAgICBpbnQgKCphcGljKSAoc3RydWN0IGRvbWFpbiAqZCwgaW50IGNtZCk7CiAg ICAgaW50ICgqbWVtdHlwZSkgKHVpbnQzMl90IGFjY2Vzcyk7CkBAIC02MzIsMTEgKzYzMSw2IEBA IHN0YXRpYyBpbmxpbmUgaW50IHhzbV9zaGFkb3dfY29udHJvbCAoeHNtX2RlZmF1bHRfdCBkZWYs IHN0cnVjdCBkb21haW4gKmQsIHVpbnQzCiAgICAgcmV0dXJuIHhzbV9vcHMtPnNoYWRvd19jb250 cm9sKGQsIG9wKTsKIH0KIAotc3RhdGljIGlubGluZSBpbnQgeHNtX2h2bV9pbmplY3RfbXNpICh4 c21fZGVmYXVsdF90IGRlZiwgc3RydWN0IGRvbWFpbiAqZCkKLXsKLSAgICByZXR1cm4geHNtX29w cy0+aHZtX2luamVjdF9tc2koZCk7Ci19Ci0KIHN0YXRpYyBpbmxpbmUgaW50IHhzbV9tZW1fc2hh cmluZ19vcCAoeHNtX2RlZmF1bHRfdCBkZWYsIHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBkb21h aW4gKmNkLCBpbnQgb3ApCiB7CiAgICAgcmV0dXJuIHhzbV9vcHMtPm1lbV9zaGFyaW5nX29wKGQs IGNkLCBvcCk7CmRpZmYgLS1naXQgYS94ZW4veHNtL2R1bW15LmMgYi94ZW4veHNtL2R1bW15LmMK aW5kZXggZjE1NjhkZC4uMWY2NTljNyAxMDA2NDQKLS0tIGEveGVuL3hzbS9kdW1teS5jCisrKyBi L3hlbi94c20vZHVtbXkuYwpAQCAtMTQ1LDcgKzE0NSw2IEBAIHZvaWQgX19pbml0IHhzbV9maXh1 cF9vcHMgKHN0cnVjdCB4c21fb3BlcmF0aW9ucyAqb3BzKQogI2lmZGVmIENPTkZJR19YODYKICAg ICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGRvX21jYSk7CiAgICAgc2V0X3RvX2R1bW15X2lm X251bGwob3BzLCBzaGFkb3dfY29udHJvbCk7Ci0gICAgc2V0X3RvX2R1bW15X2lmX251bGwob3Bz LCBodm1faW5qZWN0X21zaSk7CiAgICAgc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBtZW1fc2hh cmluZ19vcCk7CiAgICAgc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBhcGljKTsKICAgICBzZXRf dG9fZHVtbXlfaWZfbnVsbChvcHMsIG1hY2hpbmVfbWVtb3J5X21hcCk7CmRpZmYgLS1naXQgYS94 ZW4veHNtL2ZsYXNrL2hvb2tzLmMgYi94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKaW5kZXggNjg1Y2Jm YS4uOTMzMmNhMSAxMDA2NDQKLS0tIGEveGVuL3hzbS9mbGFzay9ob29rcy5jCisrKyBiL3hlbi94 c20vZmxhc2svaG9va3MuYwpAQCAtMTUwMiwxMSArMTUwMiw2IEBAIHN0YXRpYyBpbnQgZmxhc2tf aW9wb3J0X21hcHBpbmcoc3RydWN0IGRvbWFpbiAqZCwgdWludDMyX3Qgc3RhcnQsIHVpbnQzMl90 IGVuZCwKICAgICByZXR1cm4gZmxhc2tfaW9wb3J0X3Blcm1pc3Npb24oZCwgc3RhcnQsIGVuZCwg YWNjZXNzKTsKIH0KIAotc3RhdGljIGludCBmbGFza19odm1faW5qZWN0X21zaShzdHJ1Y3QgZG9t YWluICpkKQotewotICAgIHJldHVybiBjdXJyZW50X2hhc19wZXJtKGQsIFNFQ0NMQVNTX0hWTSwg SFZNX19TRU5EX0lSUSk7Ci19Ci0KIHN0YXRpYyBpbnQgZmxhc2tfbWVtX3NoYXJpbmdfb3Aoc3Ry dWN0IGRvbWFpbiAqZCwgc3RydWN0IGRvbWFpbiAqY2QsIGludCBvcCkKIHsKICAgICBpbnQgcmMg PSBjdXJyZW50X2hhc19wZXJtKGNkLCBTRUNDTEFTU19IVk0sIEhWTV9fTUVNX1NIQVJJTkcpOwpA QCAtMTc4NCw3ICsxNzc5LDYgQEAgc3RhdGljIHN0cnVjdCB4c21fb3BlcmF0aW9ucyBmbGFza19v cHMgPSB7CiAgICAgLmh2bV9zZXRfcGNpX2ludHhfbGV2ZWwgPSBmbGFza19odm1fc2V0X3BjaV9p bnR4X2xldmVsLAogICAgIC5odm1fc2V0X2lzYV9pcnFfbGV2ZWwgPSBmbGFza19odm1fc2V0X2lz YV9pcnFfbGV2ZWwsCiAgICAgLmh2bV9zZXRfcGNpX2xpbmtfcm91dGUgPSBmbGFza19odm1fc2V0 X3BjaV9saW5rX3JvdXRlLAotICAgIC5odm1faW5qZWN0X21zaSA9IGZsYXNrX2h2bV9pbmplY3Rf bXNpLAogICAgIC5tZW1fc2hhcmluZ19vcCA9IGZsYXNrX21lbV9zaGFyaW5nX29wLAogICAgIC5h cGljID0gZmxhc2tfYXBpYywKICAgICAubWFjaGluZV9tZW1vcnlfbWFwID0gZmxhc2tfbWFjaGlu ZV9tZW1vcnlfbWFwLApkaWZmIC0tZ2l0IGEveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3Zl Y3RvcnMgYi94ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycwppbmRleCAzODFmNjU5 Li4zNmE3ZGY5IDEwMDY0NAotLS0gYS94ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9y cworKysgYi94ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycwpAQCAtMjYzLDggKzI2 Myw3IEBAIGNsYXNzIGh2bQogIyBYRU5fRE9NQ1RMX3Bpbl9tZW1fY2FjaGVhdHRyCiAgICAgY2Fj aGVhdHRyCiAjIEhWTU9QX2dldF9tZW1fdHlwZSwKLSMgSFZNT1Bfc2V0X21lbV9hY2Nlc3MsIEhW TU9QX2dldF9tZW1fYWNjZXNzLCBIVk1PUF9wYWdldGFibGVfZHlpbmcsCi0jIEhWTU9QX2luamVj dF90cmFwCisjIEhWTU9QX3NldF9tZW1fYWNjZXNzLCBIVk1PUF9nZXRfbWVtX2FjY2VzcywgSFZN T1BfcGFnZXRhYmxlX2R5aW5nCiAgICAgaHZtY3RsCiAjIFhFTl9ET01DVExfbWVtX3NoYXJpbmdf b3AgYW5kIFhFTk1FTV9zaGFyaW5nX29wX3tzaGFyZSxhZGRfcGh5c21hcH0gd2l0aDoKICMgIHNv dXJjZSA9IHRoZSBkb21haW4gbWFraW5nIHRoZSBoeXBlcmNhbGwKQEAgLTI3Miw4ICsyNzEsNiBA QCBjbGFzcyBodm0KICAgICBtZW1fc2hhcmluZwogIyBYRU5fRE9NQ1RMX2F1ZGl0X3AybQogICAg IGF1ZGl0X3AybQotIyBIVk1PUF9pbmplY3RfbXNpCi0gICAgc2VuZF9pcnEKICMgY2hlY2tlZCBp biBYRU5NRU1fc2hhcmluZ19vcF97c2hhcmUsYWRkX3BoeXNtYXB9IHdpdGg6CiAjICBzb3VyY2Ug PSBkb21haW4gd2hvc2UgbWVtb3J5IGlzIGJlaW5nIHNoYXJlZAogIyAgdGFyZ2V0ID0gY2xpZW50 IGRvbWFpbgotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3Jn Cmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK