From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v9 01/27] Revert "libxc/libxl/python/xenstat/ocaml: Use new XEN_VERSION hypercall" Date: Mon, 25 Apr 2016 11:34:48 -0400 Message-ID: <1461598514-5440-2-git-send-email-konrad.wilk@oracle.com> References: <1461598514-5440-1-git-send-email-konrad.wilk@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([85.158.143.247]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1auiYM-0003vu-9Q for xen-devel@lists.xenproject.org; Mon, 25 Apr 2016 15:36:02 +0000 In-Reply-To: <1461598514-5440-1-git-send-email-konrad.wilk@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: konrad@kernel.org, xen-devel@lists.xenproject.org, sasha.levin@oracle.com, andrew.cooper3@citrix.com, ross.lagerwall@citrix.com, mpohlack@amazon.de Cc: Konrad Rzeszutek Wilk List-Id: xen-devel@lists.xenproject.org VGhpcyByZXZlcnRzIGNvbW1pdCBkMjc1ZWM5Y2E4YTg2ZjdjOWMyMTNmMzU1MTE5NGQ0NzFjZTkw ZmJkLgoKQXMgd2UgcHJlZmVyIHRvIHN0aWxsIHV0aWxpemUgdGhlIG9sZCBYRU5WRVJfIGh5cGVy Y2FsbC4KClNpZ25lZC1vZmYtYnk6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtA b3JhY2xlLmNvbT4KUmVxdWVzdGVkLWFuZC1hY2tlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNo QHN1c2UuY29tPgotLS0KIHRvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oICAgICAgICAgIHwg MzIgKy0tLS0tLS0tLS0tLS0KIHRvb2xzL2xpYnhjL3hjX2NvcmUuYyAgICAgICAgICAgICAgICAg IHwgMzUgKysrKysrKystLS0tLS0tLQogdG9vbHMvbGlieGMveGNfZG9tX2Jvb3QuYyAgICAgICAg ICAgICAgfCAxMiArLS0tLS0KIHRvb2xzL2xpYnhjL3hjX2RvbWFpbi5jICAgICAgICAgICAgICAg IHwgIDMgKy0KIHRvb2xzL2xpYnhjL3hjX3ByaXZhdGUuYyAgICAgICAgICAgICAgIHwgNTMgKysr KysrKysrKysrKysrKysrKy0tLS0KIHRvb2xzL2xpYnhjL3hjX3ByaXZhdGUuaCAgICAgICAgICAg ICAgIHwgIDcgKystLQogdG9vbHMvbGlieGMveGNfcmVzdW1lLmMgICAgICAgICAgICAgICAgfCAg MyArLQogdG9vbHMvbGlieGMveGNfc3Jfc2F2ZS5jICAgICAgICAgICAgICAgfCAgOSArKy0tCiB0 b29scy9saWJ4Yy94Z19zYXZlX3Jlc3RvcmUuaCAgICAgICAgICB8ICA2ICstLQogdG9vbHMvbGli eGwvbGlieGwuYyAgICAgICAgICAgICAgICAgICAgfCA3NyArKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiB0b29scy9vY2FtbC9saWJzL3hjL3hlbmN0cmxfc3R1YnMuYyAgICB8IDM5 ICsrKysrKysrKystLS0tLS0tCiB0b29scy9weXRob24veGVuL2xvd2xldmVsL3hjL3hjLmMgICAg ICB8IDMwICsrKysrKy0tLS0tLS0KIHRvb2xzL3hlbnN0YXQvbGlieGVuc3RhdC9zcmMveGVuc3Rh dC5jIHwgMTIgKysrLS0tCiB0b29scy94ZW50cmFjZS94ZW5jdHguYyAgICAgICAgICAgICAgICB8 ICAzICstCiAxNCBmaWxlcyBjaGFuZ2VkLCAxNDYgaW5zZXJ0aW9ucygrKSwgMTc1IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oIGIvdG9vbHMv bGlieGMvaW5jbHVkZS94ZW5jdHJsLmgKaW5kZXggZjVhMDM0YS4uNDJmMjAxYiAxMDA2NDQKLS0t IGEvdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmgKKysrIGIvdG9vbHMvbGlieGMvaW5jbHVk ZS94ZW5jdHJsLmgKQEAgLTE1MzYsMzcgKzE1MzYsNyBAQCBpbnQgeGNfdGJ1Zl9zZXRfZXZ0X21h c2soeGNfaW50ZXJmYWNlICp4Y2gsIHVpbnQzMl90IG1hc2spOwogaW50IHhjX2RvbWN0bCh4Y19p bnRlcmZhY2UgKnhjaCwgc3RydWN0IHhlbl9kb21jdGwgKmRvbWN0bCk7CiBpbnQgeGNfc3lzY3Rs KHhjX2ludGVyZmFjZSAqeGNoLCBzdHJ1Y3QgeGVuX3N5c2N0bCAqc3lzY3RsKTsKIAotLyoqCi0g KiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIHNpemUgb2YgYnVmZmVyIHRvIGJlIGFsbG9jYXRl ZCBmb3IKLSAqIHRoZSBjbWQuIFRoZSBjbWQgYXJlIFhFTl9WRVJTSU9OXyouCi0gKi8KLXNzaXpl X3QgeGNfdmVyc2lvbl9sZW4oeGNfaW50ZXJmYWNlICp4Y2gsIHVuc2lnbmVkIGludCBjbWQpOwot Ci0vKioKLSAqIFRoaXMgZnVuY3Rpb24gcmV0cmlldmVzIHRoZSBpbmZvcm1hdGlvbiBmcm9tIHRo ZSB2ZXJzaW9uX29wIGh5cGVyY2FsbC4KLSAqIFRoZSBsZW4gaXMgdGhlIHNpemUgb2YgdGhlIGFy ZyBidWZmZXIuIElmIGFyZyBpcyBOVUxMLCB3aWxsIG5vdAotICogcGVyZm9ybSBoeXBlcmNhbGwg LSBpbnN0ZWFkIHdpbGwganVzdCByZXR1cm4gdGhlIHNpemUgb2YgYXJnCi0gKiBidWZmZXIgdGhh dCBpcyBuZWVkZWQuCi0gKgotICogTm90ZSB0aGF0IHByaW9yIHRvIFhlbiA0LjcgdGhpcyB3b3Vs ZCByZXR1cm4gMCBmb3Igc3VjY2VzcyBhbmQKLSAqIG5lZ2F0aXZlIHZhbHVlICgtMSkgZm9yIGVy cm9yICh3aXRoIHRoZSBlcnJvciBpbiBlcnJubykuIEluIFhlbiA0LjcKLSAqIGFuZCBsYXRlciBm b3Igc3VjY2VzcyBpdCB3aWxsIHJldHVybiBhbiBwb3NpdGl2ZSB2YWx1ZSB3aGljaCBpcyB0aGUK LSAqIG51bWJlciBvZiBieXRlcyBjb3BpZWQgaW4gYXJnLgotICoKLSAqIEl0IGNhbiBhbHNvIHJl dHVybiAtMSB3aXRoIHZhcmlvdXMgZXJybm8gdmFsdWVzOgotICogIC0gRVBFUk0gLSBub3QgcGVy bWl0dGVkLgotICogIC0gRU5PQlVGUyAtIHRoZSBsZW4gd2FzIHRvIHNob3J0LCBvdXRwdXQgaW4g YXJnIHRydW5jYXRlZC4KLSAqICAtIEVOT1NZUyAtIG5vdCBpbXBsZW1lbnRlZC4KLSAqCi0gKiBA cGFybSB4Y2ggYSBoYW5kbGUgdG8gYW4gb3BlbiBoeXBlcnZpc29yIGludGVyZmFjZQotICogQHBh cm0gY21kIFhFTl9WRVJTSU9OXyogdmFsdWUKLSAqIEBwYXJhbSBhcmcgUG9pbnRlciB0byB4ZW5f dmVyc2lvbl9vcF9idWZfdCBvciB4ZW5fdmVyc2lvbl9vcF92YWxfdAotICogQHBhcmFtIGxlbiBT aXplIG9mIGFyZwotICogQHJldHVybiBzaXplIG9mIGJ5dGVzIGNvcGllZCBpbiBhcmcgb24gc3Vj Y2VzcywgLTEgb24gZmFpbHVyZSAoYW5kCi0gKiBlcnJubyB3aWxsIGNvbnRhaW4gdGhlIGVycm9y KQotICoKLSAqLwotaW50IHhjX3ZlcnNpb24oeGNfaW50ZXJmYWNlICp4Y2gsIHVuc2lnbmVkIGlu dCBjbWQsIHZvaWQgKmFyZywgc2l6ZV90IGxlbik7CitpbnQgeGNfdmVyc2lvbih4Y19pbnRlcmZh Y2UgKnhjaCwgaW50IGNtZCwgdm9pZCAqYXJnKTsKIAogaW50IHhjX2ZsYXNrX29wKHhjX2ludGVy ZmFjZSAqeGNoLCB4ZW5fZmxhc2tfb3BfdCAqb3ApOwogCmRpZmYgLS1naXQgYS90b29scy9saWJ4 Yy94Y19jb3JlLmMgYi90b29scy9saWJ4Yy94Y19jb3JlLmMKaW5kZXggY2ZlYmE2Yi4uZDc5MjU2 NiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfY29yZS5jCisrKyBiL3Rvb2xzL2xpYnhjL3hj X2NvcmUuYwpAQCAtMjcwLDQzICsyNzAsNDIgQEAgZWxmbm90ZV9maWxsX3hlbl92ZXJzaW9uKHhj X2ludGVyZmFjZSAqeGNoLAogICAgICAgICAgICAgICAgICAgICAgICAgICp4ZW5fdmVyc2lvbikK IHsKICAgICBpbnQgcmM7Ci0gICAgeGVuX3ZlcnNpb25fb3BfdmFsX3QgdmFsID0gMDsKICAgICBt ZW1zZXQoeGVuX3ZlcnNpb24sIDAsIHNpemVvZigqeGVuX3ZlcnNpb24pKTsKIAotICAgIHJjID0g eGNfdmVyc2lvbih4Y2gsIFhFTl9WRVJTSU9OX3ZlcnNpb24sICZ2YWwsIHNpemVvZih2YWwpKTsK KyAgICByYyA9IHhjX3ZlcnNpb24oeGNoLCBYRU5WRVJfdmVyc2lvbiwgTlVMTCk7CiAgICAgaWYg KCByYyA8IDAgKQogICAgICAgICByZXR1cm4gcmM7Ci0gICAgeGVuX3ZlcnNpb24tPm1ham9yX3Zl cnNpb24gPSB2YWwgPj4gMTY7Ci0gICAgeGVuX3ZlcnNpb24tPm1pbm9yX3ZlcnNpb24gPSB2YWwg JiAoKDEgPDwgMTYpIC0gMSk7CisgICAgeGVuX3ZlcnNpb24tPm1ham9yX3ZlcnNpb24gPSByYyA+ PiAxNjsKKyAgICB4ZW5fdmVyc2lvbi0+bWlub3JfdmVyc2lvbiA9IHJjICYgKCgxIDw8IDE2KSAt IDEpOwogCi0gICAgcmMgPSB4Y192ZXJzaW9uKHhjaCwgWEVOX1ZFUlNJT05fZXh0cmF2ZXJzaW9u LAotICAgICAgICAgICAgICAgICAgICB4ZW5fdmVyc2lvbi0+ZXh0cmFfdmVyc2lvbiwKLSAgICAg ICAgICAgICAgICAgICAgc2l6ZW9mKHhlbl92ZXJzaW9uLT5leHRyYV92ZXJzaW9uKSk7CisgICAg cmMgPSB4Y192ZXJzaW9uKHhjaCwgWEVOVkVSX2V4dHJhdmVyc2lvbiwKKyAgICAgICAgICAgICAg ICAgICAgJnhlbl92ZXJzaW9uLT5leHRyYV92ZXJzaW9uKTsKICAgICBpZiAoIHJjIDwgMCApCiAg ICAgICAgIHJldHVybiByYzsKIAotICAgIHJjID0geGNfdmVyc2lvbih4Y2gsIFhFTl9WRVJTSU9O X2NhcGFiaWxpdGllcywKLSAgICAgICAgICAgICAgICAgICAgeGVuX3ZlcnNpb24tPmNhcGFiaWxp dGllcywKLSAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHhlbl92ZXJzaW9uLT5jYXBhYmlsaXRp ZXMpKTsKKyAgICByYyA9IHhjX3ZlcnNpb24oeGNoLCBYRU5WRVJfY29tcGlsZV9pbmZvLAorICAg ICAgICAgICAgICAgICAgICAmeGVuX3ZlcnNpb24tPmNvbXBpbGVfaW5mbyk7CiAgICAgaWYgKCBy YyA8IDAgKQogICAgICAgICByZXR1cm4gcmM7CiAKLSAgICByYyA9IHhjX3ZlcnNpb24oeGNoLCBY RU5fVkVSU0lPTl9jaGFuZ2VzZXQsIHhlbl92ZXJzaW9uLT5jaGFuZ2VzZXQsCi0gICAgICAgICAg ICAgICAgICAgIHNpemVvZih4ZW5fdmVyc2lvbi0+Y2hhbmdlc2V0KSk7CisgICAgcmMgPSB4Y192 ZXJzaW9uKHhjaCwKKyAgICAgICAgICAgICAgICAgICAgWEVOVkVSX2NhcGFiaWxpdGllcywgJnhl bl92ZXJzaW9uLT5jYXBhYmlsaXRpZXMpOwogICAgIGlmICggcmMgPCAwICkKICAgICAgICAgcmV0 dXJuIHJjOwogCi0gICAgcmMgPSB4Y192ZXJzaW9uKHhjaCwgWEVOX1ZFUlNJT05fcGxhdGZvcm1f cGFyYW1ldGVycywKLSAgICAgICAgICAgICAgICAgICAgJnhlbl92ZXJzaW9uLT5wbGF0Zm9ybV9w YXJhbWV0ZXJzLAotICAgICAgICAgICAgICAgICAgICBzaXplb2YoeGVuX3ZlcnNpb24tPnBsYXRm b3JtX3BhcmFtZXRlcnMpKTsKKyAgICByYyA9IHhjX3ZlcnNpb24oeGNoLCBYRU5WRVJfY2hhbmdl c2V0LCAmeGVuX3ZlcnNpb24tPmNoYW5nZXNldCk7CiAgICAgaWYgKCByYyA8IDAgKQogICAgICAg ICByZXR1cm4gcmM7CiAKLSAgICB2YWwgPSAwOwotICAgIHJjID0geGNfdmVyc2lvbih4Y2gsIFhF Tl9WRVJTSU9OX3BhZ2VzaXplLCAmdmFsLCBzaXplb2YodmFsKSk7CisgICAgcmMgPSB4Y192ZXJz aW9uKHhjaCwgWEVOVkVSX3BsYXRmb3JtX3BhcmFtZXRlcnMsCisgICAgICAgICAgICAgICAgICAg ICZ4ZW5fdmVyc2lvbi0+cGxhdGZvcm1fcGFyYW1ldGVycyk7CiAgICAgaWYgKCByYyA8IDAgKQog ICAgICAgICByZXR1cm4gcmM7Ci0gICAgeGVuX3ZlcnNpb24tPnBhZ2VzaXplID0gdmFsOworCisg ICAgcmMgPSB4Y192ZXJzaW9uKHhjaCwgWEVOVkVSX3BhZ2VzaXplLCBOVUxMKTsKKyAgICBpZiAo IHJjIDwgMCApCisgICAgICAgIHJldHVybiByYzsKKyAgICB4ZW5fdmVyc2lvbi0+cGFnZXNpemUg PSByYzsKIAogICAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMveGNfZG9t X2Jvb3QuYyBiL3Rvb2xzL2xpYnhjL3hjX2RvbV9ib290LmMKaW5kZXggYmJmZjcyZS4uNzkxMDQx YiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfZG9tX2Jvb3QuYworKysgYi90b29scy9saWJ4 Yy94Y19kb21fYm9vdC5jCkBAIC0xMTIsMTkgKzExMiwxMSBAQCBpbnQgeGNfZG9tX2NvbXBhdF9j aGVjayhzdHJ1Y3QgeGNfZG9tX2ltYWdlICpkb20pCiAKIGludCB4Y19kb21fYm9vdF94ZW5faW5p dChzdHJ1Y3QgeGNfZG9tX2ltYWdlICpkb20sIHhjX2ludGVyZmFjZSAqeGNoLCBkb21pZF90IGRv bWlkKQogewotICAgIHhlbl92ZXJzaW9uX29wX3ZhbF90IHZhbCA9IDA7Ci0KLSAgICBpZiAoIHhj X3ZlcnNpb24oeGNoLCBYRU5fVkVSU0lPTl92ZXJzaW9uLCAmdmFsLCBzaXplb2YodmFsKSkgPCAw ICkKLSAgICB7Ci0gICAgICAgIHhjX2RvbV9wYW5pYyh4Y2gsIFhDX0lOVEVSTkFMX0VSUk9SLCAi Y2FuJ3QgZ2V0IFhlbiB2ZXJzaW9uISIpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQotICAg IGRvbS0+eGVuX3ZlcnNpb24gPSB2YWw7CiAgICAgZG9tLT54Y2ggPSB4Y2g7CiAgICAgZG9tLT5n dWVzdF9kb21pZCA9IGRvbWlkOwogCi0gICAgaWYgKCB4Y192ZXJzaW9uKHhjaCwgWEVOX1ZFUlNJ T05fY2FwYWJpbGl0aWVzLCBkb20tPnhlbl9jYXBzLAotICAgICAgICAgICAgICAgICAgICBzaXpl b2YoZG9tLT54ZW5fY2FwcykpIDwgMCApCisgICAgZG9tLT54ZW5fdmVyc2lvbiA9IHhjX3ZlcnNp b24oeGNoLCBYRU5WRVJfdmVyc2lvbiwgTlVMTCk7CisgICAgaWYgKCB4Y192ZXJzaW9uKHhjaCwg WEVOVkVSX2NhcGFiaWxpdGllcywgJmRvbS0+eGVuX2NhcHMpIDwgMCApCiAgICAgewogICAgICAg ICB4Y19kb21fcGFuaWMoeGNoLCBYQ19JTlRFUk5BTF9FUlJPUiwgImNhbid0IGdldCB4ZW4gY2Fw YWJpbGl0aWVzIik7CiAgICAgICAgIHJldHVybiAtMTsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhj L3hjX2RvbWFpbi5jIGIvdG9vbHMvbGlieGMveGNfZG9tYWluLmMKaW5kZXggOWViZDFkNi4uMDUw MjE2ZSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfZG9tYWluLmMKKysrIGIvdG9vbHMvbGli eGMveGNfZG9tYWluLmMKQEAgLTIwODQsOCArMjA4NCw3IEBAIGludCB4Y19tYXBfZG9tYWluX21l bWluZm8oeGNfaW50ZXJmYWNlICp4Y2gsIGludCBkb21pZCwKICAgICBfZGkuZ3Vlc3Rfd2lkdGgg PSBtaW5mby0+Z3Vlc3Rfd2lkdGg7CiAKICAgICAvKiBHZXQgcGFnZSB0YWJsZSBsZXZlbHMgKHNl ZSBnZXRfcGxhdGZvcm1faW5mbygpIGluIHhnX3NhdmVfcmVzdG9yZS5oICovCi0gICAgaWYgKCB4 Y192ZXJzaW9uKHhjaCwgWEVOX1ZFUlNJT05fY2FwYWJpbGl0aWVzLCB4ZW5fY2FwcywKLSAgICAg ICAgICAgICAgICAgICAgc2l6ZW9mKHhlbl9jYXBzKSkgPCAwICkKKyAgICBpZiAoIHhjX3ZlcnNp b24oeGNoLCBYRU5WRVJfY2FwYWJpbGl0aWVzLCAmeGVuX2NhcHMpICkKICAgICB7CiAgICAgICAg IFBFUlJPUigiQ291bGQgbm90IGdldCBYZW4gY2FwYWJpbGl0aWVzIChmb3IgcGFnZSB0YWJsZSBs ZXZlbHMpIik7CiAgICAgICAgIHJldHVybiAtMTsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL3hj X3ByaXZhdGUuYyBiL3Rvb2xzL2xpYnhjL3hjX3ByaXZhdGUuYwppbmRleCA2MzFhZDkxLi5jNDFl NDMzIDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy94Y19wcml2YXRlLmMKKysrIGIvdG9vbHMvbGli eGMveGNfcHJpdmF0ZS5jCkBAIC00NTcsMjMgKzQ1Nyw1OCBAQCBpbnQgeGNfc3lzY3RsKHhjX2lu dGVyZmFjZSAqeGNoLCBzdHJ1Y3QgeGVuX3N5c2N0bCAqc3lzY3RsKQogICAgIHJldHVybiBkb19z eXNjdGwoeGNoLCBzeXNjdGwpOwogfQogCi1zc2l6ZV90IHhjX3ZlcnNpb25fbGVuKHhjX2ludGVy ZmFjZSAqeGNoLCB1bnNpZ25lZCBpbnQgY21kKQoraW50IHhjX3ZlcnNpb24oeGNfaW50ZXJmYWNl ICp4Y2gsIGludCBjbWQsIHZvaWQgKmFyZykKIHsKLSAgICByZXR1cm4gZG9fdmVyc2lvbl9vcCh4 Y2gsIGNtZCwgTlVMTCwgMCk7Ci19Ci0KLWludCB4Y192ZXJzaW9uKHhjX2ludGVyZmFjZSAqeGNo LCB1bnNpZ25lZCBpbnQgY21kLCB2b2lkICphcmcsIHNpemVfdCBzeikKLXsKLSAgICBERUNMQVJF X0hZUEVSQ0FMTF9CT1VOQ0UoYXJnLCBzeiwgWENfSFlQRVJDQUxMX0JVRkZFUl9CT1VOQ0VfT1VU KTsKKyAgICBERUNMQVJFX0hZUEVSQ0FMTF9CT1VOQ0UoYXJnLCAwLCBYQ19IWVBFUkNBTExfQlVG RkVSX0JPVU5DRV9PVVQpOyAvKiBTaXplIHVua25vd24gdW50aWwgY21kIGRlY29kZWQgKi8KKyAg ICBzaXplX3Qgc3o7CiAgICAgaW50IHJjOwogCi0gICAgaWYgKCB4Y19oeXBlcmNhbGxfYm91bmNl X3ByZSh4Y2gsIGFyZykgKQorICAgIHN3aXRjaCAoIGNtZCApCisgICAgeworICAgIGNhc2UgWEVO VkVSX3ZlcnNpb246CisgICAgICAgIHN6ID0gMDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBY RU5WRVJfZXh0cmF2ZXJzaW9uOgorICAgICAgICBzeiA9IHNpemVvZih4ZW5fZXh0cmF2ZXJzaW9u X3QpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFhFTlZFUl9jb21waWxlX2luZm86CisgICAg ICAgIHN6ID0gc2l6ZW9mKHhlbl9jb21waWxlX2luZm9fdCk7CisgICAgICAgIGJyZWFrOworICAg IGNhc2UgWEVOVkVSX2NhcGFiaWxpdGllczoKKyAgICAgICAgc3ogPSBzaXplb2YoeGVuX2NhcGFi aWxpdGllc19pbmZvX3QpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFhFTlZFUl9jaGFuZ2Vz ZXQ6CisgICAgICAgIHN6ID0gc2l6ZW9mKHhlbl9jaGFuZ2VzZXRfaW5mb190KTsKKyAgICAgICAg YnJlYWs7CisgICAgY2FzZSBYRU5WRVJfcGxhdGZvcm1fcGFyYW1ldGVyczoKKyAgICAgICAgc3og PSBzaXplb2YoeGVuX3BsYXRmb3JtX3BhcmFtZXRlcnNfdCk7CisgICAgICAgIGJyZWFrOworICAg IGNhc2UgWEVOVkVSX2dldF9mZWF0dXJlczoKKyAgICAgICAgc3ogPSBzaXplb2YoeGVuX2ZlYXR1 cmVfaW5mb190KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBYRU5WRVJfcGFnZXNpemU6Cisg ICAgICAgIHN6ID0gMDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBYRU5WRVJfZ3Vlc3RfaGFu ZGxlOgorICAgICAgICBzeiA9IHNpemVvZih4ZW5fZG9tYWluX2hhbmRsZV90KTsKKyAgICAgICAg YnJlYWs7CisgICAgY2FzZSBYRU5WRVJfY29tbWFuZGxpbmU6CisgICAgICAgIHN6ID0gc2l6ZW9m KHhlbl9jb21tYW5kbGluZV90KTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAg ICAgRVJST1IoInhjX3ZlcnNpb246IHVua25vd24gY29tbWFuZCAlZFxuIiwgY21kKTsKKyAgICAg ICAgcmV0dXJuIC1FSU5WQUw7CisgICAgfQorCisgICAgSFlQRVJDQUxMX0JPVU5DRV9TRVRfU0la RShhcmcsIHN6KTsKKworICAgIGlmICggKHN6ICE9IDApICYmIHhjX2h5cGVyY2FsbF9ib3VuY2Vf cHJlKHhjaCwgYXJnKSApCiAgICAgewogICAgICAgICBQRVJST1IoIkNvdWxkIG5vdCBib3VuY2Ug YnVmZmVyIGZvciB2ZXJzaW9uIGh5cGVyY2FsbCIpOwogICAgICAgICByZXR1cm4gLUVOT01FTTsK ICAgICB9CiAKLSAgICByYyA9IGRvX3ZlcnNpb25fb3AoeGNoLCBjbWQsIEhZUEVSQ0FMTF9CVUZG RVIoYXJnKSwgc3opOworICAgIHJjID0gZG9feGVuX3ZlcnNpb24oeGNoLCBjbWQsIEhZUEVSQ0FM TF9CVUZGRVIoYXJnKSk7CiAKICAgICBpZiAoIHN6ICE9IDAgKQogICAgICAgICB4Y19oeXBlcmNh bGxfYm91bmNlX3Bvc3QoeGNoLCBhcmcpOwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMveGNfcHJp dmF0ZS5oIGIvdG9vbHMvbGlieGMveGNfcHJpdmF0ZS5oCmluZGV4IDViZThmZGQuLmFhOGRhZjEg MTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL3hjX3ByaXZhdGUuaAorKysgYi90b29scy9saWJ4Yy94 Y19wcml2YXRlLmgKQEAgLTIxNCwxMiArMjE0LDExIEBAIHZvaWQgeGNfX2h5cGVyY2FsbF9idWZm ZXJfY2FjaGVfcmVsZWFzZSh4Y19pbnRlcmZhY2UgKnhjaCk7CiAgKiBIeXBlcmNhbGwgaW50ZXJm YWNlcy4KICAqLwogCi1zdGF0aWMgaW5saW5lIGxvbmcgZG9fdmVyc2lvbl9vcCh4Y19pbnRlcmZh Y2UgKnhjaCwgaW50IGNtZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhjX2h5 cGVyY2FsbF9idWZmZXJfdCAqZGVzdCwgc3NpemVfdCBsZW4pCitzdGF0aWMgaW5saW5lIGludCBk b194ZW5fdmVyc2lvbih4Y19pbnRlcmZhY2UgKnhjaCwgaW50IGNtZCwgeGNfaHlwZXJjYWxsX2J1 ZmZlcl90ICpkZXN0KQogewogICAgIERFQ0xBUkVfSFlQRVJDQUxMX0JVRkZFUl9BUkdVTUVOVChk ZXN0KTsKLSAgICByZXR1cm4geGVuY2FsbDMoeGNoLT54Y2FsbCwgX19IWVBFUlZJU09SX3ZlcnNp b25fb3AsCi0gICAgICAgICAgICAgICAgICAgIGNtZCwgSFlQRVJDQUxMX0JVRkZFUl9BU19BUkco ZGVzdCksIGxlbik7CisgICAgcmV0dXJuIHhlbmNhbGwyKHhjaC0+eGNhbGwsIF9fSFlQRVJWSVNP Ul94ZW5fdmVyc2lvbiwKKyAgICAgICAgICAgICAgICAgICAgY21kLCBIWVBFUkNBTExfQlVGRkVS X0FTX0FSRyhkZXN0KSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IGRvX3BoeXNkZXZfb3AoeGNf aW50ZXJmYWNlICp4Y2gsIGludCBjbWQsIHZvaWQgKm9wLCBzaXplX3QgbGVuKQpkaWZmIC0tZ2l0 IGEvdG9vbHMvbGlieGMveGNfcmVzdW1lLmMgYi90b29scy9saWJ4Yy94Y19yZXN1bWUuYwppbmRl eCAyYjZjMzA4Li5jMTY5MjA0IDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy94Y19yZXN1bWUuYwor KysgYi90b29scy9saWJ4Yy94Y19yZXN1bWUuYwpAQCAtNTYsOCArNTYsNyBAQCBzdGF0aWMgaW50 IG1vZGlmeV9yZXR1cm5jb2RlKHhjX2ludGVyZmFjZSAqeGNoLCB1aW50MzJfdCBkb21pZCkKICAg ICAgICAgICAgIHJldHVybiAwOwogCiAgICAgICAgIC8qIEhWTSBndWVzdHMgaGF2ZSBob3N0IGFk ZHJlc3Mgd2lkdGguICovCi0gICAgICAgIGlmICggeGNfdmVyc2lvbih4Y2gsIFhFTl9WRVJTSU9O X2NhcGFiaWxpdGllcywgY2FwcywKLSAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihjYXBz KSkgPCAwICkKKyAgICAgICAgaWYgKCB4Y192ZXJzaW9uKHhjaCwgWEVOVkVSX2NhcGFiaWxpdGll cywgJmNhcHMpICE9IDAgKQogICAgICAgICB7CiAgICAgICAgICAgICBQRVJST1IoIkNvdWxkIG5v dCBnZXQgWGVuIGNhcGFiaWxpdGllcyIpOwogICAgICAgICAgICAgcmV0dXJuIC0xOwpkaWZmIC0t Z2l0IGEvdG9vbHMvbGlieGMveGNfc3Jfc2F2ZS5jIGIvdG9vbHMvbGlieGMveGNfc3Jfc2F2ZS5j CmluZGV4IDI5MWZlOWYuLmY5OGM4MjcgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL3hjX3NyX3Nh dmUuYworKysgYi90b29scy9saWJ4Yy94Y19zcl9zYXZlLmMKQEAgLTksNyArOSw3IEBACiBzdGF0 aWMgaW50IHdyaXRlX2hlYWRlcnMoc3RydWN0IHhjX3NyX2NvbnRleHQgKmN0eCwgdWludDE2X3Qg Z3Vlc3RfdHlwZSkKIHsKICAgICB4Y19pbnRlcmZhY2UgKnhjaCA9IGN0eC0+eGNoOwotICAgIHhl bl92ZXJzaW9uX29wX3ZhbF90IHhlbl92ZXJzaW9uOworICAgIGludDMyX3QgeGVuX3ZlcnNpb24g PSB4Y192ZXJzaW9uKHhjaCwgWEVOVkVSX3ZlcnNpb24sIE5VTEwpOwogICAgIHN0cnVjdCB4Y19z cl9paGRyIGloZHIgPQogICAgICAgICB7CiAgICAgICAgICAgICAubWFya2VyICA9IElIRFJfTUFS S0VSLApAQCAtMjEsMTYgKzIxLDE1IEBAIHN0YXRpYyBpbnQgd3JpdGVfaGVhZGVycyhzdHJ1Y3Qg eGNfc3JfY29udGV4dCAqY3R4LCB1aW50MTZfdCBndWVzdF90eXBlKQogICAgICAgICB7CiAgICAg ICAgICAgICAudHlwZSAgICAgICA9IGd1ZXN0X3R5cGUsCiAgICAgICAgICAgICAucGFnZV9zaGlm dCA9IFhDX1BBR0VfU0hJRlQsCisgICAgICAgICAgICAueGVuX21ham9yICA9ICh4ZW5fdmVyc2lv biA+PiAxNikgJiAweGZmZmYsCisgICAgICAgICAgICAueGVuX21pbm9yICA9ICh4ZW5fdmVyc2lv bikgICAgICAgJiAweGZmZmYsCiAgICAgICAgIH07CiAKLSAgICBpZiAoIHhjX3ZlcnNpb24oeGNo LCBYRU5fVkVSU0lPTl92ZXJzaW9uLCAmeGVuX3ZlcnNpb24sCi0gICAgICAgICAgICAgICAgICAg IHNpemVvZih4ZW5fdmVyc2lvbikpIDwgMCApCisgICAgaWYgKCB4ZW5fdmVyc2lvbiA8IDAgKQog ICAgIHsKICAgICAgICAgUEVSUk9SKCJVbmFibGUgdG8gb2J0YWluIFhlbiBWZXJzaW9uIik7CiAg ICAgICAgIHJldHVybiAtMTsKICAgICB9Ci0gICAgZGhkci54ZW5fbWFqb3IgPSAoeGVuX3ZlcnNp b24gPj4gMTYpICYgMHhmZmZmOwotICAgIGRoZHIueGVuX21pbm9yID0gKHhlbl92ZXJzaW9uKSAg ICAgICAmIDB4ZmZmZjsKIAogICAgIGlmICggd3JpdGVfZXhhY3QoY3R4LT5mZCwgJmloZHIsIHNp emVvZihpaGRyKSkgKQogICAgIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL3hnX3NhdmVfcmVz dG9yZS5oIGIvdG9vbHMvbGlieGMveGdfc2F2ZV9yZXN0b3JlLmgKaW5kZXggMDA3ODc1Zi4uMzAz MDgxZCAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGdfc2F2ZV9yZXN0b3JlLmgKKysrIGIvdG9v bHMvbGlieGMveGdfc2F2ZV9yZXN0b3JlLmgKQEAgLTU3LDEyICs1NywxMCBAQCBzdGF0aWMgaW5s aW5lIGludCBnZXRfcGxhdGZvcm1faW5mbyh4Y19pbnRlcmZhY2UgKnhjaCwgdWludDMyX3QgZG9t LAogICAgIHhlbl9jYXBhYmlsaXRpZXNfaW5mb190IHhlbl9jYXBzID0gIiI7CiAgICAgeGVuX3Bs YXRmb3JtX3BhcmFtZXRlcnNfdCB4ZW5fcGFyYW1zOwogCi0gICAgaWYgKHhjX3ZlcnNpb24oeGNo LCBYRU5fVkVSU0lPTl9wbGF0Zm9ybV9wYXJhbWV0ZXJzLCAmeGVuX3BhcmFtcywKLSAgICAgICAg ICAgICAgICAgICBzaXplb2YoeGVuX3BhcmFtcykpIDwgMCkKKyAgICBpZiAoeGNfdmVyc2lvbih4 Y2gsIFhFTlZFUl9wbGF0Zm9ybV9wYXJhbWV0ZXJzLCAmeGVuX3BhcmFtcykgIT0gMCkKICAgICAg ICAgcmV0dXJuIDA7CiAKLSAgICBpZiAoeGNfdmVyc2lvbih4Y2gsIFhFTl9WRVJTSU9OX2NhcGFi aWxpdGllcywgeGVuX2NhcHMsCi0gICAgICAgICAgICAgICAgICAgc2l6ZW9mKHhlbl9jYXBzKSkg PCAwKQorICAgIGlmICh4Y192ZXJzaW9uKHhjaCwgWEVOVkVSX2NhcGFiaWxpdGllcywgJnhlbl9j YXBzKSAhPSAwKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGlmICh4Y19tYXhpbXVtX3JhbV9w YWdlKHhjaCwgbWF4X21mbikpCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bC5jIGIvdG9v bHMvbGlieGwvbGlieGwuYwppbmRleCBkMjMyNDczLi5lZWM4OTlkIDEwMDY0NAotLS0gYS90b29s cy9saWJ4bC9saWJ4bC5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsLmMKQEAgLTUzNTMsNzEgKzUz NTMsNTAgQEAgbGlieGxfbnVtYWluZm8gKmxpYnhsX2dldF9udW1haW5mbyhsaWJ4bF9jdHggKmN0 eCwgaW50ICpucikKICAgICByZXR1cm4gcmV0OwogfQogCi0KLXN0YXRpYyBpbnQgbGlieGxfX3hj X3ZlcnNpb25fd3JhcHBlcihsaWJ4bF9fZ2MgKmdjLCB1bnNpZ25lZCBpbnQgY21kLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmJ1Ziwgc3NpemVfdCBsZW4sIGNo YXIgKipkc3QpCi17Ci0gICAgaW50IHI7Ci0KLSAgICByID0geGNfdmVyc2lvbihDVFgtPnhjaCwg Y21kLCBidWYsIGxlbik7Ci0gICAgaWYgKCByID09IC1FUEVSTSApIHsKLSAgICAgICAgYnVmWzBd ID0gJ1wwJzsKLSAgICB9IGVsc2UgaWYgKCByIDwgMCApIHsKLSAgICAgICAgcmV0dXJuIHI7Ci0g ICAgfQotICAgICpkc3QgPSBsaWJ4bF9fc3RyZHVwKE5PR0MsIGJ1Zik7Ci0gICAgcmV0dXJuIDA7 Ci19Ci0KIGNvbnN0IGxpYnhsX3ZlcnNpb25faW5mbyogbGlieGxfZ2V0X3ZlcnNpb25faW5mbyhs aWJ4bF9jdHggKmN0eCkKIHsKICAgICBHQ19JTklUKGN0eCk7Ci0gICAgY2hhciAqYnVmOwotICAg IHhlbl92ZXJzaW9uX29wX3ZhbF90IHZhbCA9IDA7CisgICAgdW5pb24geworICAgICAgICB4ZW5f ZXh0cmF2ZXJzaW9uX3QgeGVuX2V4dHJhOworICAgICAgICB4ZW5fY29tcGlsZV9pbmZvX3QgeGVu X2NjOworICAgICAgICB4ZW5fY2hhbmdlc2V0X2luZm9fdCB4ZW5fY2hnc2V0OworICAgICAgICB4 ZW5fY2FwYWJpbGl0aWVzX2luZm9fdCB4ZW5fY2FwczsKKyAgICAgICAgeGVuX3BsYXRmb3JtX3Bh cmFtZXRlcnNfdCBwX3Bhcm1zOworICAgICAgICB4ZW5fY29tbWFuZGxpbmVfdCB4ZW5fY29tbWFu ZGxpbmU7CisgICAgfSB1OworICAgIGxvbmcgeGVuX3ZlcnNpb247CiAgICAgbGlieGxfdmVyc2lv bl9pbmZvICppbmZvID0gJmN0eC0+dmVyc2lvbl9pbmZvOwogCiAgICAgaWYgKGluZm8tPnhlbl92 ZXJzaW9uX2V4dHJhICE9IE5VTEwpCiAgICAgICAgIGdvdG8gb3V0OwogCi0gICAgaWYgKHhjX3Zl cnNpb24oQ1RYLT54Y2gsIFhFTl9WRVJTSU9OX3BhZ2VzaXplLCAmdmFsLCBzaXplb2YodmFsKSkg PCAwKQotICAgICAgICBnb3RvIG91dDsKKyAgICB4ZW5fdmVyc2lvbiA9IHhjX3ZlcnNpb24oY3R4 LT54Y2gsIFhFTlZFUl92ZXJzaW9uLCBOVUxMKTsKKyAgICBpbmZvLT54ZW5fdmVyc2lvbl9tYWpv ciA9IHhlbl92ZXJzaW9uID4+IDE2OworICAgIGluZm8tPnhlbl92ZXJzaW9uX21pbm9yID0geGVu X3ZlcnNpb24gJiAweEZGOwogCi0gICAgaW5mby0+cGFnZXNpemUgPSB2YWw7Ci0gICAgLyogNEsg YnVmZmVyLiAqLwotICAgIGJ1ZiA9IGxpYnhsX196YWxsb2MoZ2MsIGluZm8tPnBhZ2VzaXplKTsK KyAgICB4Y192ZXJzaW9uKGN0eC0+eGNoLCBYRU5WRVJfZXh0cmF2ZXJzaW9uLCAmdS54ZW5fZXh0 cmEpOworICAgIGluZm8tPnhlbl92ZXJzaW9uX2V4dHJhID0gbGlieGxfX3N0cmR1cChOT0dDLCB1 Lnhlbl9leHRyYSk7CiAKLSAgICB2YWwgPSAwOwotICAgIGlmICh4Y192ZXJzaW9uKENUWC0+eGNo LCBYRU5fVkVSU0lPTl92ZXJzaW9uLCAmdmFsLCBzaXplb2YodmFsKSkgPCAwKQotICAgICAgICBn b3RvIG91dDsKLSAgICBpbmZvLT54ZW5fdmVyc2lvbl9tYWpvciA9IHZhbCA+PiAxNjsKLSAgICBp bmZvLT54ZW5fdmVyc2lvbl9taW5vciA9IHZhbCAmIDB4RkY7CisgICAgeGNfdmVyc2lvbihjdHgt PnhjaCwgWEVOVkVSX2NvbXBpbGVfaW5mbywgJnUueGVuX2NjKTsKKyAgICBpbmZvLT5jb21waWxl ciA9IGxpYnhsX19zdHJkdXAoTk9HQywgdS54ZW5fY2MuY29tcGlsZXIpOworICAgIGluZm8tPmNv bXBpbGVfYnkgPSBsaWJ4bF9fc3RyZHVwKE5PR0MsIHUueGVuX2NjLmNvbXBpbGVfYnkpOworICAg IGluZm8tPmNvbXBpbGVfZG9tYWluID0gbGlieGxfX3N0cmR1cChOT0dDLCB1Lnhlbl9jYy5jb21w aWxlX2RvbWFpbik7CisgICAgaW5mby0+Y29tcGlsZV9kYXRlID0gbGlieGxfX3N0cmR1cChOT0dD LCB1Lnhlbl9jYy5jb21waWxlX2RhdGUpOwogCi0gICAgaWYgKGxpYnhsX194Y192ZXJzaW9uX3dy YXBwZXIoZ2MsIFhFTl9WRVJTSU9OX2V4dHJhdmVyc2lvbiwgYnVmLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGluZm8tPnBhZ2VzaXplLCAmaW5mby0+eGVuX3ZlcnNpb25fZXh0 cmEpIDwgMCkKLSAgICAgICAgZ290byBvdXQ7CisgICAgeGNfdmVyc2lvbihjdHgtPnhjaCwgWEVO VkVSX2NhcGFiaWxpdGllcywgJnUueGVuX2NhcHMpOworICAgIGluZm8tPmNhcGFiaWxpdGllcyA9 IGxpYnhsX19zdHJkdXAoTk9HQywgdS54ZW5fY2Fwcyk7CiAKLSAgICBpbmZvLT5jb21waWxlciA9 IGxpYnhsX19zdHJkdXAoTk9HQywgIiIpOwotICAgIGluZm8tPmNvbXBpbGVfYnkgPSBsaWJ4bF9f c3RyZHVwKE5PR0MsICIiKTsKLSAgICBpbmZvLT5jb21waWxlX2RvbWFpbiA9IGxpYnhsX19zdHJk dXAoTk9HQywgIiIpOwotICAgIGluZm8tPmNvbXBpbGVfZGF0ZSA9IGxpYnhsX19zdHJkdXAoTk9H QywgIiIpOworICAgIHhjX3ZlcnNpb24oY3R4LT54Y2gsIFhFTlZFUl9jaGFuZ2VzZXQsICZ1Lnhl bl9jaGdzZXQpOworICAgIGluZm8tPmNoYW5nZXNldCA9IGxpYnhsX19zdHJkdXAoTk9HQywgdS54 ZW5fY2hnc2V0KTsKIAotICAgIGlmIChsaWJ4bF9feGNfdmVyc2lvbl93cmFwcGVyKGdjLCBYRU5f VkVSU0lPTl9jYXBhYmlsaXRpZXMsIGJ1ZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbmZvLT5wYWdlc2l6ZSwgJmluZm8tPmNhcGFiaWxpdGllcykgPCAwKQotICAgICAgICBn b3RvIG91dDsKKyAgICB4Y192ZXJzaW9uKGN0eC0+eGNoLCBYRU5WRVJfcGxhdGZvcm1fcGFyYW1l dGVycywgJnUucF9wYXJtcyk7CisgICAgaW5mby0+dmlydF9zdGFydCA9IHUucF9wYXJtcy52aXJ0 X3N0YXJ0OwogCi0gICAgaWYgKGxpYnhsX194Y192ZXJzaW9uX3dyYXBwZXIoZ2MsIFhFTl9WRVJT SU9OX2NoYW5nZXNldCwgYnVmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu Zm8tPnBhZ2VzaXplLCAmaW5mby0+Y2hhbmdlc2V0KSA8IDApCi0gICAgICAgIGdvdG8gb3V0Owot Ci0gICAgdmFsID0gMDsKLSAgICBpZiAoeGNfdmVyc2lvbihDVFgtPnhjaCwgWEVOX1ZFUlNJT05f cGxhdGZvcm1fcGFyYW1ldGVycywgJnZhbCwKLSAgICAgICAgICAgICAgICAgICBzaXplb2YodmFs KSkgPCAwKQotICAgICAgICBnb3RvIG91dDsKKyAgICBpbmZvLT5wYWdlc2l6ZSA9IHhjX3ZlcnNp b24oY3R4LT54Y2gsIFhFTlZFUl9wYWdlc2l6ZSwgTlVMTCk7CiAKLSAgICBpbmZvLT52aXJ0X3N0 YXJ0ID0gdmFsOworICAgIHhjX3ZlcnNpb24oY3R4LT54Y2gsIFhFTlZFUl9jb21tYW5kbGluZSwg JnUueGVuX2NvbW1hbmRsaW5lKTsKKyAgICBpbmZvLT5jb21tYW5kbGluZSA9IGxpYnhsX19zdHJk dXAoTk9HQywgdS54ZW5fY29tbWFuZGxpbmUpOwogCi0gICAgKHZvaWQpbGlieGxfX3hjX3ZlcnNp b25fd3JhcHBlcihnYywgWEVOX1ZFUlNJT05fY29tbWFuZGxpbmUsIGJ1ZiwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGluZm8tPnBhZ2VzaXplLCAmaW5mby0+Y29tbWFuZGxp bmUpOwogIG91dDoKICAgICBHQ19GUkVFOwogICAgIHJldHVybiBpbmZvOwpkaWZmIC0tZ2l0IGEv dG9vbHMvb2NhbWwvbGlicy94Yy94ZW5jdHJsX3N0dWJzLmMgYi90b29scy9vY2FtbC9saWJzL3hj L3hlbmN0cmxfc3R1YnMuYwppbmRleCAyMjc0MWQ1Li41NDc3ZGYzIDEwMDY0NAotLS0gYS90b29s cy9vY2FtbC9saWJzL3hjL3hlbmN0cmxfc3R1YnMuYworKysgYi90b29scy9vY2FtbC9saWJzL3hj L3hlbmN0cmxfc3R1YnMuYwpAQCAtODUzLDIxICs4NTMsMjEgQEAgQ0FNTHByaW0gdmFsdWUgc3R1 Yl94Y192ZXJzaW9uX3ZlcnNpb24odmFsdWUgeGNoKQogCUNBTUxwYXJhbTEoeGNoKTsKIAlDQU1M bG9jYWwxKHJlc3VsdCk7CiAJeGVuX2V4dHJhdmVyc2lvbl90IGV4dHJhOwotCXhlbl92ZXJzaW9u X29wX3ZhbF90IHBhY2tlZDsKKwlsb25nIHBhY2tlZDsKIAlpbnQgcmV0dmFsOwogCiAJY2FtbF9l bnRlcl9ibG9ja2luZ19zZWN0aW9uKCk7Ci0JcmV0dmFsID0geGNfdmVyc2lvbihfSCh4Y2gpLCBY RU5fVkVSU0lPTl92ZXJzaW9uLCAmcGFja2VkLCBzaXplb2YocGFja2VkKSk7CisJcGFja2VkID0g eGNfdmVyc2lvbihfSCh4Y2gpLCBYRU5WRVJfdmVyc2lvbiwgTlVMTCk7CiAJY2FtbF9sZWF2ZV9i bG9ja2luZ19zZWN0aW9uKCk7CiAKLQlpZiAocmV0dmFsIDwgMCkKKwlpZiAocGFja2VkIDwgMCkK IAkJZmFpbHdpdGhfeGMoX0goeGNoKSk7CiAKIAljYW1sX2VudGVyX2Jsb2NraW5nX3NlY3Rpb24o KTsKLQlyZXR2YWwgPSB4Y192ZXJzaW9uKF9IKHhjaCksIFhFTl9WRVJTSU9OX2V4dHJhdmVyc2lv biwgJmV4dHJhLCBzaXplb2YoZXh0cmEpKTsKKwlyZXR2YWwgPSB4Y192ZXJzaW9uKF9IKHhjaCks IFhFTlZFUl9leHRyYXZlcnNpb24sICZleHRyYSk7CiAJY2FtbF9sZWF2ZV9ibG9ja2luZ19zZWN0 aW9uKCk7CiAKLQlpZiAocmV0dmFsIDwgMCkKKwlpZiAocmV0dmFsKQogCQlmYWlsd2l0aF94Yyhf SCh4Y2gpKTsKIAogCXJlc3VsdCA9IGNhbWxfYWxsb2NfdHVwbGUoMyk7CkBAIC04ODQsMjggKzg4 NCwzNyBAQCBDQU1McHJpbSB2YWx1ZSBzdHViX3hjX3ZlcnNpb25fY29tcGlsZV9pbmZvKHZhbHVl IHhjaCkKIHsKIAlDQU1McGFyYW0xKHhjaCk7CiAJQ0FNTGxvY2FsMShyZXN1bHQpOworCXhlbl9j b21waWxlX2luZm9fdCBjaTsKKwlpbnQgcmV0dmFsOworCisJY2FtbF9lbnRlcl9ibG9ja2luZ19z ZWN0aW9uKCk7CisJcmV0dmFsID0geGNfdmVyc2lvbihfSCh4Y2gpLCBYRU5WRVJfY29tcGlsZV9p bmZvLCAmY2kpOworCWNhbWxfbGVhdmVfYmxvY2tpbmdfc2VjdGlvbigpOworCisJaWYgKHJldHZh bCkKKwkJZmFpbHdpdGhfeGMoX0goeGNoKSk7CiAKIAlyZXN1bHQgPSBjYW1sX2FsbG9jX3R1cGxl KDQpOwogCi0JU3RvcmVfZmllbGQocmVzdWx0LCAwLCBjYW1sX2NvcHlfc3RyaW5nKCIiKSk7Ci0J U3RvcmVfZmllbGQocmVzdWx0LCAxLCBjYW1sX2NvcHlfc3RyaW5nKCIiKSk7Ci0JU3RvcmVfZmll bGQocmVzdWx0LCAyLCBjYW1sX2NvcHlfc3RyaW5nKCIiKSk7Ci0JU3RvcmVfZmllbGQocmVzdWx0 LCAzLCBjYW1sX2NvcHlfc3RyaW5nKCIiKSk7CisJU3RvcmVfZmllbGQocmVzdWx0LCAwLCBjYW1s X2NvcHlfc3RyaW5nKGNpLmNvbXBpbGVyKSk7CisJU3RvcmVfZmllbGQocmVzdWx0LCAxLCBjYW1s X2NvcHlfc3RyaW5nKGNpLmNvbXBpbGVfYnkpKTsKKwlTdG9yZV9maWVsZChyZXN1bHQsIDIsIGNh bWxfY29weV9zdHJpbmcoY2kuY29tcGlsZV9kb21haW4pKTsKKwlTdG9yZV9maWVsZChyZXN1bHQs IDMsIGNhbWxfY29weV9zdHJpbmcoY2kuY29tcGlsZV9kYXRlKSk7CiAKIAlDQU1McmV0dXJuKHJl c3VsdCk7CiB9CiAKIAotc3RhdGljIHZhbHVlIHhjX3ZlcnNpb25fc2luZ2xlX3N0cmluZyh2YWx1 ZSB4Y2gsIGludCBjb2RlLCB2b2lkICppbmZvLCBzc2l6ZV90IGxlbikKK3N0YXRpYyB2YWx1ZSB4 Y192ZXJzaW9uX3NpbmdsZV9zdHJpbmcodmFsdWUgeGNoLCBpbnQgY29kZSwgdm9pZCAqaW5mbykK IHsKIAlDQU1McGFyYW0xKHhjaCk7CiAJaW50IHJldHZhbDsKIAogCWNhbWxfZW50ZXJfYmxvY2tp bmdfc2VjdGlvbigpOwotCXJldHZhbCA9IHhjX3ZlcnNpb24oX0goeGNoKSwgY29kZSwgaW5mbywg bGVuKTsKKwlyZXR2YWwgPSB4Y192ZXJzaW9uKF9IKHhjaCksIGNvZGUsIGluZm8pOwogCWNhbWxf bGVhdmVfYmxvY2tpbmdfc2VjdGlvbigpOwogCi0JaWYgKHJldHZhbCA8IDApCisJaWYgKHJldHZh bCkKIAkJZmFpbHdpdGhfeGMoX0goeGNoKSk7CiAKIAlDQU1McmV0dXJuKGNhbWxfY29weV9zdHJp bmcoKGNoYXIgKilpbmZvKSk7CkBAIC05MTYsOCArOTI1LDcgQEAgQ0FNTHByaW0gdmFsdWUgc3R1 Yl94Y192ZXJzaW9uX2NoYW5nZXNldCh2YWx1ZSB4Y2gpCiB7CiAJeGVuX2NoYW5nZXNldF9pbmZv X3QgY2k7CiAKLQlyZXR1cm4geGNfdmVyc2lvbl9zaW5nbGVfc3RyaW5nKHhjaCwgWEVOX1ZFUlNJ T05fY2hhbmdlc2V0LAotCQkJCQkmY2ksIHNpemVvZihjaSkpOworCXJldHVybiB4Y192ZXJzaW9u X3NpbmdsZV9zdHJpbmcoeGNoLCBYRU5WRVJfY2hhbmdlc2V0LCAmY2kpOwogfQogCiAKQEAgLTky NSw4ICs5MzMsNyBAQCBDQU1McHJpbSB2YWx1ZSBzdHViX3hjX3ZlcnNpb25fY2FwYWJpbGl0aWVz KHZhbHVlIHhjaCkKIHsKIAl4ZW5fY2FwYWJpbGl0aWVzX2luZm9fdCBjaTsKIAotCXJldHVybiB4 Y192ZXJzaW9uX3NpbmdsZV9zdHJpbmcoeGNoLCBYRU5fVkVSU0lPTl9jYXBhYmlsaXRpZXMsCi0J CQkJCSZjaSwgc2l6ZW9mKGNpKSk7CisJcmV0dXJuIHhjX3ZlcnNpb25fc2luZ2xlX3N0cmluZyh4 Y2gsIFhFTlZFUl9jYXBhYmlsaXRpZXMsICZjaSk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvdG9vbHMv cHl0aG9uL3hlbi9sb3dsZXZlbC94Yy94Yy5jIGIvdG9vbHMvcHl0aG9uL3hlbi9sb3dsZXZlbC94 Yy94Yy5jCmluZGV4IDgxMmE5MDUuLjg0MTE3ODkgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3B5dGhvbi94 ZW4vbG93bGV2ZWwveGMveGMuYworKysgYi90b29scy9weXRob24veGVuL2xvd2xldmVsL3hjL3hj LmMKQEAgLTEyMDQsNDAgKzEyMDQsMzQgQEAgc3RhdGljIFB5T2JqZWN0ICpweXhjX3hlbmluZm8o WGNPYmplY3QgKnNlbGYpCiAgICAgeGVuX2NhcGFiaWxpdGllc19pbmZvX3QgeGVuX2NhcHM7CiAg ICAgeGVuX3BsYXRmb3JtX3BhcmFtZXRlcnNfdCBwX3Bhcm1zOwogICAgIHhlbl9jb21tYW5kbGlu ZV90IHhlbl9jb21tYW5kbGluZTsKLSAgICB4ZW5fdmVyc2lvbl9vcF92YWxfdCB4ZW5fdmVyc2lv bjsKLSAgICB4ZW5fdmVyc2lvbl9vcF92YWxfdCB4ZW5fcGFnZXNpemU7CisgICAgbG9uZyB4ZW5f dmVyc2lvbjsKKyAgICBsb25nIHhlbl9wYWdlc2l6ZTsKICAgICBjaGFyIHN0clsxMjhdOwogCi0g ICAgaWYgKCB4Y192ZXJzaW9uKHNlbGYtPnhjX2hhbmRsZSwgWEVOX1ZFUlNJT05fdmVyc2lvbiwg Jnhlbl92ZXJzaW9uLAotICAgICAgICAgICAgICAgICAgICBzaXplb2YoeGVuX3ZlcnNpb24pKSA8 IDAgKQotICAgICAgICByZXR1cm4gcHl4Y19lcnJvcl90b19leGNlcHRpb24oc2VsZi0+eGNfaGFu ZGxlKTsKKyAgICB4ZW5fdmVyc2lvbiA9IHhjX3ZlcnNpb24oc2VsZi0+eGNfaGFuZGxlLCBYRU5W RVJfdmVyc2lvbiwgTlVMTCk7CiAKLSAgICBpZiAoIHhjX3ZlcnNpb24oc2VsZi0+eGNfaGFuZGxl LCBYRU5fVkVSU0lPTl9leHRyYXZlcnNpb24sICZ4ZW5fZXh0cmEsCi0gICAgICAgICAgICAgICAg ICAgIHNpemVvZih4ZW5fZXh0cmEpKSA8IDAgKQorICAgIGlmICggeGNfdmVyc2lvbihzZWxmLT54 Y19oYW5kbGUsIFhFTlZFUl9leHRyYXZlcnNpb24sICZ4ZW5fZXh0cmEpICE9IDAgKQogICAgICAg ICByZXR1cm4gcHl4Y19lcnJvcl90b19leGNlcHRpb24oc2VsZi0+eGNfaGFuZGxlKTsKIAotICAg IG1lbXNldCgmeGVuX2NjLCAwLCBzaXplb2YoeGVuX2NjKSk7CisgICAgaWYgKCB4Y192ZXJzaW9u KHNlbGYtPnhjX2hhbmRsZSwgWEVOVkVSX2NvbXBpbGVfaW5mbywgJnhlbl9jYykgIT0gMCApCisg ICAgICAgIHJldHVybiBweXhjX2Vycm9yX3RvX2V4Y2VwdGlvbihzZWxmLT54Y19oYW5kbGUpOwog Ci0gICAgaWYgKCB4Y192ZXJzaW9uKHNlbGYtPnhjX2hhbmRsZSwgWEVOX1ZFUlNJT05fY2hhbmdl c2V0LCAmeGVuX2NoZ3NldCwKLSAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHhlbl9jaGdzZXQp KSA8IDAgKQorICAgIGlmICggeGNfdmVyc2lvbihzZWxmLT54Y19oYW5kbGUsIFhFTlZFUl9jaGFu Z2VzZXQsICZ4ZW5fY2hnc2V0KSAhPSAwICkKICAgICAgICAgcmV0dXJuIHB5eGNfZXJyb3JfdG9f ZXhjZXB0aW9uKHNlbGYtPnhjX2hhbmRsZSk7CiAKLSAgICBpZiAoIHhjX3ZlcnNpb24oc2VsZi0+ eGNfaGFuZGxlLCBYRU5fVkVSU0lPTl9jYXBhYmlsaXRpZXMsICZ4ZW5fY2FwcywKLSAgICAgICAg ICAgICAgICAgICAgc2l6ZW9mKHhlbl9jYXBzKSkgPCAwICkKKyAgICBpZiAoIHhjX3ZlcnNpb24o c2VsZi0+eGNfaGFuZGxlLCBYRU5WRVJfY2FwYWJpbGl0aWVzLCAmeGVuX2NhcHMpICE9IDAgKQog ICAgICAgICByZXR1cm4gcHl4Y19lcnJvcl90b19leGNlcHRpb24oc2VsZi0+eGNfaGFuZGxlKTsK IAotICAgIGlmICggeGNfdmVyc2lvbihzZWxmLT54Y19oYW5kbGUsIFhFTl9WRVJTSU9OX3BsYXRm b3JtX3BhcmFtZXRlcnMsCi0gICAgICAgICAgICAgICAgICAgICZwX3Bhcm1zLCBzaXplb2YocF9w YXJtcykpIDwgMCApCisgICAgaWYgKCB4Y192ZXJzaW9uKHNlbGYtPnhjX2hhbmRsZSwgWEVOVkVS X3BsYXRmb3JtX3BhcmFtZXRlcnMsICZwX3Bhcm1zKSAhPSAwICkKICAgICAgICAgcmV0dXJuIHB5 eGNfZXJyb3JfdG9fZXhjZXB0aW9uKHNlbGYtPnhjX2hhbmRsZSk7CiAKLSAgICBpZiAoIHhjX3Zl cnNpb24oc2VsZi0+eGNfaGFuZGxlLCBYRU5fVkVSU0lPTl9jb21tYW5kbGluZSwKLSAgICAgICAg ICAgICAgICAgICAgJnhlbl9jb21tYW5kbGluZSwgc2l6ZW9mKHhlbl9jb21tYW5kbGluZSkpIDwg MCApCisgICAgaWYgKCB4Y192ZXJzaW9uKHNlbGYtPnhjX2hhbmRsZSwgWEVOVkVSX2NvbW1hbmRs aW5lLCAmeGVuX2NvbW1hbmRsaW5lKSAhPSAwICkKICAgICAgICAgcmV0dXJuIHB5eGNfZXJyb3Jf dG9fZXhjZXB0aW9uKHNlbGYtPnhjX2hhbmRsZSk7CiAKICAgICBzbnByaW50ZihzdHIsIHNpemVv ZihzdHIpLCAidmlydF9zdGFydD0weCUiUFJJX3hlbl91bG9uZywgcF9wYXJtcy52aXJ0X3N0YXJ0 KTsKIAotICAgIGlmICggeGNfdmVyc2lvbihzZWxmLT54Y19oYW5kbGUsIFhFTl9WRVJTSU9OX3Bh Z2VzaXplLCAmeGVuX3BhZ2VzaXplLAotICAgICAgICAgICAgICAgICAgICBzaXplb2YoeGVuX3Bh Z2VzaXplKSkgPCAwICkKKyAgICB4ZW5fcGFnZXNpemUgPSB4Y192ZXJzaW9uKHNlbGYtPnhjX2hh bmRsZSwgWEVOVkVSX3BhZ2VzaXplLCBOVUxMKTsKKyAgICBpZiAoeGVuX3BhZ2VzaXplIDwgMCAp CiAgICAgICAgIHJldHVybiBweXhjX2Vycm9yX3RvX2V4Y2VwdGlvbihzZWxmLT54Y19oYW5kbGUp OwogCiAgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIntzOmksczppLHM6cyxzOnMsczppLHM6cyxz OnMsczpzLHM6cyxzOnMsczpzLHM6c30iLApkaWZmIC0tZ2l0IGEvdG9vbHMveGVuc3RhdC9saWJ4 ZW5zdGF0L3NyYy94ZW5zdGF0LmMgYi90b29scy94ZW5zdGF0L2xpYnhlbnN0YXQvc3JjL3hlbnN0 YXQuYwppbmRleCBlZmI2OGI1Li4zNDk1ZjNmIDEwMDY0NAotLS0gYS90b29scy94ZW5zdGF0L2xp YnhlbnN0YXQvc3JjL3hlbnN0YXQuYworKysgYi90b29scy94ZW5zdGF0L2xpYnhlbnN0YXQvc3Jj L3hlbnN0YXQuYwpAQCAtNjIxLDE4ICs2MjEsMjAgQEAgdW5zaWduZWQgbG9uZyBsb25nIHhlbnN0 YXRfbmV0d29ya190ZHJvcCh4ZW5zdGF0X25ldHdvcmsgKiBuZXR3b3JrKQogLyogQ29sbGVjdCBY ZW4gdmVyc2lvbiBpbmZvcm1hdGlvbiAqLwogc3RhdGljIGludCB4ZW5zdGF0X2NvbGxlY3RfeGVu X3ZlcnNpb24oeGVuc3RhdF9ub2RlICogbm9kZSkKIHsKLQl4ZW5fdmVyc2lvbl9vcF92YWxfdCB2 bnVtID0gMDsKKwlsb25nIHZudW0gPSAwOwogCXhlbl9leHRyYXZlcnNpb25fdCB2ZXJzaW9uOwog CiAJLyogQ29sbGVjdCBYZW4gdmVyc2lvbiBpbmZvcm1hdGlvbiBpZiBub3QgYWxyZWFkeSBjb2xs ZWN0ZWQgKi8KIAlpZiAobm9kZS0+aGFuZGxlLT54ZW5fdmVyc2lvblswXSA9PSAnXDAnKSB7CiAJ CS8qIEdldCB0aGUgWGVuIHZlcnNpb24gbnVtYmVyIGFuZCBleHRyYXZlcnNpb24gc3RyaW5nICov Ci0JCWlmICh4Y192ZXJzaW9uKG5vZGUtPmhhbmRsZS0+eGNfaGFuZGxlLAotCQkJICAgICAgIFhF Tl9WRVJTSU9OX3ZlcnNpb24sICZ2bnVtLCBzaXplb2Yodm51bSkpIDwgMCkKKwkJdm51bSA9IHhj X3ZlcnNpb24obm9kZS0+aGFuZGxlLT54Y19oYW5kbGUsCisJCQlYRU5WRVJfdmVyc2lvbiwgTlVM TCk7CisKKwkJaWYgKHZudW0gPCAwKQogCQkJcmV0dXJuIDA7CiAKLQkJaWYgKHhjX3ZlcnNpb24o bm9kZS0+aGFuZGxlLT54Y19oYW5kbGUsIFhFTl9WRVJTSU9OX2V4dHJhdmVyc2lvbiwKLQkJCSAg ICAgICAmdmVyc2lvbiwgc2l6ZW9mKHZlcnNpb24pKSA8IDApCisJCWlmICh4Y192ZXJzaW9uKG5v ZGUtPmhhbmRsZS0+eGNfaGFuZGxlLCBYRU5WRVJfZXh0cmF2ZXJzaW9uLAorCQkJJnZlcnNpb24p IDwgMCkKIAkJCXJldHVybiAwOwogCQkvKiBGb3JtYXQgdGhlIHZlcnNpb24gaW5mb3JtYXRpb24g YXMgYSBzdHJpbmcgYW5kIHN0b3JlIGl0ICovCiAJCXNucHJpbnRmKG5vZGUtPmhhbmRsZS0+eGVu X3ZlcnNpb24sIFZFUlNJT05fU0laRSwgIiVsZC4lbGQlcyIsCmRpZmYgLS1naXQgYS90b29scy94 ZW50cmFjZS94ZW5jdHguYyBiL3Rvb2xzL3hlbnRyYWNlL3hlbmN0eC5jCmluZGV4IGNkMjgwZmMu LmU2NDcxNzkgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3hlbnRyYWNlL3hlbmN0eC5jCisrKyBiL3Rvb2xz L3hlbnRyYWNlL3hlbmN0eC5jCkBAIC0xMDAwLDggKzEwMDAsNyBAQCBzdGF0aWMgdm9pZCBkdW1w X2N0eChpbnQgdmNwdSkKICAgICAgICAgICAgIGd1ZXN0X3dvcmRfc2l6ZSA9IChjcHVjdHgubXNy X2VmZXIgJiAweDQwMCkgPyA4IDoKICAgICAgICAgICAgICAgICBndWVzdF9wcm90ZWN0ZWRfbW9k ZSA/IDQgOiAyOwogICAgICAgICAgICAgLyogSFZNIGd1ZXN0IGNvbnRleHQgcmVjb3JkcyBhcmUg YWx3YXlzIGhvc3Qtc2l6ZWQgKi8KLSAgICAgICAgICAgIGlmICh4Y192ZXJzaW9uKHhlbmN0eC54 Y19oYW5kbGUsIFhFTl9WRVJTSU9OX2NhcGFiaWxpdGllcywKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICZ4ZW5fY2Fwcywgc2l6ZW9mKHhlbl9jYXBzKSkgPCAwKSB7CisgICAgICAgICAgICBp ZiAoeGNfdmVyc2lvbih4ZW5jdHgueGNfaGFuZGxlLCBYRU5WRVJfY2FwYWJpbGl0aWVzLCAmeGVu X2NhcHMpICE9IDApIHsKICAgICAgICAgICAgICAgICBwZXJyb3IoInhjX3ZlcnNpb24iKTsKICAg ICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9Ci0tIAoyLjUuMAoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5n IGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRl dmVsCg==