From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v8.1 01/27] Revert "libxc/libxl/python/xenstat/ocaml: Use new XEN_VERSION hypercall" Date: Wed, 13 Apr 2016 18:01:42 -0400 Message-ID: <1460584928-32440-2-git-send-email-konrad.wilk@oracle.com> References: <1460584928-32440-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.bemta14.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1aqSsK-0005EC-DJ for xen-devel@lists.xenproject.org; Wed, 13 Apr 2016 22:03:04 +0000 In-Reply-To: <1460584928-32440-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: xen-devel@lists.xenproject.org, konrad@kernel.org, ross.lagerwall@citrix.com, mpohlack@amazon.com, andrew.cooper3@citrix.com, sasha.levin@oracle.com Cc: Konrad Rzeszutek Wilk List-Id: xen-devel@lists.xenproject.org VGhpcyByZXZlcnRzIGNvbW1pdCBkMjc1ZWM5Y2E4YTg2ZjdjOWMyMTNmMzU1MTE5NGQ0NzFjZTkw ZmJkLgoKQXMgd2UgcHJlZmVyIHRvIHN0aWxsIHV0aWxpemUgdGhlIG9sZCBYRU5WRVJfIGh5cGVy Y2FsbC4KClNpZ25lZC1vZmYtYnk6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtA b3JhY2xlLmNvbT4KLS0tCiB0b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaCAgICAgICAgICB8 IDMyICstLS0tLS0tLS0tLS0tCiB0b29scy9saWJ4Yy94Y19jb3JlLmMgICAgICAgICAgICAgICAg ICB8IDM1ICsrKysrKysrLS0tLS0tLS0KIHRvb2xzL2xpYnhjL3hjX2RvbV9ib290LmMgICAgICAg ICAgICAgIHwgMTIgKy0tLS0tCiB0b29scy9saWJ4Yy94Y19kb21haW4uYyAgICAgICAgICAgICAg ICB8ICAzICstCiB0b29scy9saWJ4Yy94Y19wcml2YXRlLmMgICAgICAgICAgICAgICB8IDUzICsr KysrKysrKysrKysrKysrKystLS0tCiB0b29scy9saWJ4Yy94Y19wcml2YXRlLmggICAgICAgICAg ICAgICB8ICA3ICsrLS0KIHRvb2xzL2xpYnhjL3hjX3Jlc3VtZS5jICAgICAgICAgICAgICAgIHwg IDMgKy0KIHRvb2xzL2xpYnhjL3hjX3NyX3NhdmUuYyAgICAgICAgICAgICAgIHwgIDkgKystLQog dG9vbHMvbGlieGMveGdfc2F2ZV9yZXN0b3JlLmggICAgICAgICAgfCAgNiArLS0KIHRvb2xzL2xp YnhsL2xpYnhsLmMgICAgICAgICAgICAgICAgICAgIHwgNzcgKysrKysrKysrKysrKy0tLS0tLS0t LS0tLS0tLS0tLS0tLQogdG9vbHMvb2NhbWwvbGlicy94Yy94ZW5jdHJsX3N0dWJzLmMgICAgfCAz OSArKysrKysrKysrLS0tLS0tLQogdG9vbHMvcHl0aG9uL3hlbi9sb3dsZXZlbC94Yy94Yy5jICAg ICAgfCAzMCArKysrKystLS0tLS0tCiB0b29scy94ZW5zdGF0L2xpYnhlbnN0YXQvc3JjL3hlbnN0 YXQuYyB8IDEyICsrKy0tLQogdG9vbHMveGVudHJhY2UveGVuY3R4LmMgICAgICAgICAgICAgICAg fCAgMyArLQogMTQgZmlsZXMgY2hhbmdlZCwgMTQ2IGluc2VydGlvbnMoKyksIDE3NSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaCBiL3Rvb2xz L2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCmluZGV4IGY1YTAzNGEuLjQyZjIwMWIgMTAwNjQ0Ci0t LSBhL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCisrKyBiL3Rvb2xzL2xpYnhjL2luY2x1 ZGUveGVuY3RybC5oCkBAIC0xNTM2LDM3ICsxNTM2LDcgQEAgaW50IHhjX3RidWZfc2V0X2V2dF9t YXNrKHhjX2ludGVyZmFjZSAqeGNoLCB1aW50MzJfdCBtYXNrKTsKIGludCB4Y19kb21jdGwoeGNf aW50ZXJmYWNlICp4Y2gsIHN0cnVjdCB4ZW5fZG9tY3RsICpkb21jdGwpOwogaW50IHhjX3N5c2N0 bCh4Y19pbnRlcmZhY2UgKnhjaCwgc3RydWN0IHhlbl9zeXNjdGwgKnN5c2N0bCk7CiAKLS8qKgot ICogVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBzaXplIG9mIGJ1ZmZlciB0byBiZSBhbGxvY2F0 ZWQgZm9yCi0gKiB0aGUgY21kLiBUaGUgY21kIGFyZSBYRU5fVkVSU0lPTl8qLgotICovCi1zc2l6 ZV90IHhjX3ZlcnNpb25fbGVuKHhjX2ludGVyZmFjZSAqeGNoLCB1bnNpZ25lZCBpbnQgY21kKTsK LQotLyoqCi0gKiBUaGlzIGZ1bmN0aW9uIHJldHJpZXZlcyB0aGUgaW5mb3JtYXRpb24gZnJvbSB0 aGUgdmVyc2lvbl9vcCBoeXBlcmNhbGwuCi0gKiBUaGUgbGVuIGlzIHRoZSBzaXplIG9mIHRoZSBh cmcgYnVmZmVyLiBJZiBhcmcgaXMgTlVMTCwgd2lsbCBub3QKLSAqIHBlcmZvcm0gaHlwZXJjYWxs IC0gaW5zdGVhZCB3aWxsIGp1c3QgcmV0dXJuIHRoZSBzaXplIG9mIGFyZwotICogYnVmZmVyIHRo YXQgaXMgbmVlZGVkLgotICoKLSAqIE5vdGUgdGhhdCBwcmlvciB0byBYZW4gNC43IHRoaXMgd291 bGQgcmV0dXJuIDAgZm9yIHN1Y2Nlc3MgYW5kCi0gKiBuZWdhdGl2ZSB2YWx1ZSAoLTEpIGZvciBl cnJvciAod2l0aCB0aGUgZXJyb3IgaW4gZXJybm8pLiBJbiBYZW4gNC43Ci0gKiBhbmQgbGF0ZXIg Zm9yIHN1Y2Nlc3MgaXQgd2lsbCByZXR1cm4gYW4gcG9zaXRpdmUgdmFsdWUgd2hpY2ggaXMgdGhl Ci0gKiBudW1iZXIgb2YgYnl0ZXMgY29waWVkIGluIGFyZy4KLSAqCi0gKiBJdCBjYW4gYWxzbyBy ZXR1cm4gLTEgd2l0aCB2YXJpb3VzIGVycm5vIHZhbHVlczoKLSAqICAtIEVQRVJNIC0gbm90IHBl cm1pdHRlZC4KLSAqICAtIEVOT0JVRlMgLSB0aGUgbGVuIHdhcyB0byBzaG9ydCwgb3V0cHV0IGlu IGFyZyB0cnVuY2F0ZWQuCi0gKiAgLSBFTk9TWVMgLSBub3QgaW1wbGVtZW50ZWQuCi0gKgotICog QHBhcm0geGNoIGEgaGFuZGxlIHRvIGFuIG9wZW4gaHlwZXJ2aXNvciBpbnRlcmZhY2UKLSAqIEBw YXJtIGNtZCBYRU5fVkVSU0lPTl8qIHZhbHVlCi0gKiBAcGFyYW0gYXJnIFBvaW50ZXIgdG8geGVu X3ZlcnNpb25fb3BfYnVmX3Qgb3IgeGVuX3ZlcnNpb25fb3BfdmFsX3QKLSAqIEBwYXJhbSBsZW4g U2l6ZSBvZiBhcmcKLSAqIEByZXR1cm4gc2l6ZSBvZiBieXRlcyBjb3BpZWQgaW4gYXJnIG9uIHN1 Y2Nlc3MsIC0xIG9uIGZhaWx1cmUgKGFuZAotICogZXJybm8gd2lsbCBjb250YWluIHRoZSBlcnJv cikKLSAqCi0gKi8KLWludCB4Y192ZXJzaW9uKHhjX2ludGVyZmFjZSAqeGNoLCB1bnNpZ25lZCBp bnQgY21kLCB2b2lkICphcmcsIHNpemVfdCBsZW4pOworaW50IHhjX3ZlcnNpb24oeGNfaW50ZXJm YWNlICp4Y2gsIGludCBjbWQsIHZvaWQgKmFyZyk7CiAKIGludCB4Y19mbGFza19vcCh4Y19pbnRl cmZhY2UgKnhjaCwgeGVuX2ZsYXNrX29wX3QgKm9wKTsKIApkaWZmIC0tZ2l0IGEvdG9vbHMvbGli eGMveGNfY29yZS5jIGIvdG9vbHMvbGlieGMveGNfY29yZS5jCmluZGV4IGNmZWJhNmIuLmQ3OTI1 NjYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL3hjX2NvcmUuYworKysgYi90b29scy9saWJ4Yy94 Y19jb3JlLmMKQEAgLTI3MCw0MyArMjcwLDQyIEBAIGVsZm5vdGVfZmlsbF94ZW5fdmVyc2lvbih4 Y19pbnRlcmZhY2UgKnhjaCwKICAgICAgICAgICAgICAgICAgICAgICAgICAqeGVuX3ZlcnNpb24p CiB7CiAgICAgaW50IHJjOwotICAgIHhlbl92ZXJzaW9uX29wX3ZhbF90IHZhbCA9IDA7CiAgICAg bWVtc2V0KHhlbl92ZXJzaW9uLCAwLCBzaXplb2YoKnhlbl92ZXJzaW9uKSk7CiAKLSAgICByYyA9 IHhjX3ZlcnNpb24oeGNoLCBYRU5fVkVSU0lPTl92ZXJzaW9uLCAmdmFsLCBzaXplb2YodmFsKSk7 CisgICAgcmMgPSB4Y192ZXJzaW9uKHhjaCwgWEVOVkVSX3ZlcnNpb24sIE5VTEwpOwogICAgIGlm ICggcmMgPCAwICkKICAgICAgICAgcmV0dXJuIHJjOwotICAgIHhlbl92ZXJzaW9uLT5tYWpvcl92 ZXJzaW9uID0gdmFsID4+IDE2OwotICAgIHhlbl92ZXJzaW9uLT5taW5vcl92ZXJzaW9uID0gdmFs ICYgKCgxIDw8IDE2KSAtIDEpOworICAgIHhlbl92ZXJzaW9uLT5tYWpvcl92ZXJzaW9uID0gcmMg Pj4gMTY7CisgICAgeGVuX3ZlcnNpb24tPm1pbm9yX3ZlcnNpb24gPSByYyAmICgoMSA8PCAxNikg LSAxKTsKIAotICAgIHJjID0geGNfdmVyc2lvbih4Y2gsIFhFTl9WRVJTSU9OX2V4dHJhdmVyc2lv biwKLSAgICAgICAgICAgICAgICAgICAgeGVuX3ZlcnNpb24tPmV4dHJhX3ZlcnNpb24sCi0gICAg ICAgICAgICAgICAgICAgIHNpemVvZih4ZW5fdmVyc2lvbi0+ZXh0cmFfdmVyc2lvbikpOworICAg IHJjID0geGNfdmVyc2lvbih4Y2gsIFhFTlZFUl9leHRyYXZlcnNpb24sCisgICAgICAgICAgICAg ICAgICAgICZ4ZW5fdmVyc2lvbi0+ZXh0cmFfdmVyc2lvbik7CiAgICAgaWYgKCByYyA8IDAgKQog ICAgICAgICByZXR1cm4gcmM7CiAKLSAgICByYyA9IHhjX3ZlcnNpb24oeGNoLCBYRU5fVkVSU0lP Tl9jYXBhYmlsaXRpZXMsCi0gICAgICAgICAgICAgICAgICAgIHhlbl92ZXJzaW9uLT5jYXBhYmls aXRpZXMsCi0gICAgICAgICAgICAgICAgICAgIHNpemVvZih4ZW5fdmVyc2lvbi0+Y2FwYWJpbGl0 aWVzKSk7CisgICAgcmMgPSB4Y192ZXJzaW9uKHhjaCwgWEVOVkVSX2NvbXBpbGVfaW5mbywKKyAg ICAgICAgICAgICAgICAgICAgJnhlbl92ZXJzaW9uLT5jb21waWxlX2luZm8pOwogICAgIGlmICgg cmMgPCAwICkKICAgICAgICAgcmV0dXJuIHJjOwogCi0gICAgcmMgPSB4Y192ZXJzaW9uKHhjaCwg WEVOX1ZFUlNJT05fY2hhbmdlc2V0LCB4ZW5fdmVyc2lvbi0+Y2hhbmdlc2V0LAotICAgICAgICAg ICAgICAgICAgICBzaXplb2YoeGVuX3ZlcnNpb24tPmNoYW5nZXNldCkpOworICAgIHJjID0geGNf dmVyc2lvbih4Y2gsCisgICAgICAgICAgICAgICAgICAgIFhFTlZFUl9jYXBhYmlsaXRpZXMsICZ4 ZW5fdmVyc2lvbi0+Y2FwYWJpbGl0aWVzKTsKICAgICBpZiAoIHJjIDwgMCApCiAgICAgICAgIHJl dHVybiByYzsKIAotICAgIHJjID0geGNfdmVyc2lvbih4Y2gsIFhFTl9WRVJTSU9OX3BsYXRmb3Jt X3BhcmFtZXRlcnMsCi0gICAgICAgICAgICAgICAgICAgICZ4ZW5fdmVyc2lvbi0+cGxhdGZvcm1f cGFyYW1ldGVycywKLSAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHhlbl92ZXJzaW9uLT5wbGF0 Zm9ybV9wYXJhbWV0ZXJzKSk7CisgICAgcmMgPSB4Y192ZXJzaW9uKHhjaCwgWEVOVkVSX2NoYW5n ZXNldCwgJnhlbl92ZXJzaW9uLT5jaGFuZ2VzZXQpOwogICAgIGlmICggcmMgPCAwICkKICAgICAg ICAgcmV0dXJuIHJjOwogCi0gICAgdmFsID0gMDsKLSAgICByYyA9IHhjX3ZlcnNpb24oeGNoLCBY RU5fVkVSU0lPTl9wYWdlc2l6ZSwgJnZhbCwgc2l6ZW9mKHZhbCkpOworICAgIHJjID0geGNfdmVy c2lvbih4Y2gsIFhFTlZFUl9wbGF0Zm9ybV9wYXJhbWV0ZXJzLAorICAgICAgICAgICAgICAgICAg ICAmeGVuX3ZlcnNpb24tPnBsYXRmb3JtX3BhcmFtZXRlcnMpOwogICAgIGlmICggcmMgPCAwICkK ICAgICAgICAgcmV0dXJuIHJjOwotICAgIHhlbl92ZXJzaW9uLT5wYWdlc2l6ZSA9IHZhbDsKKwor ICAgIHJjID0geGNfdmVyc2lvbih4Y2gsIFhFTlZFUl9wYWdlc2l6ZSwgTlVMTCk7CisgICAgaWYg KCByYyA8IDAgKQorICAgICAgICByZXR1cm4gcmM7CisgICAgeGVuX3ZlcnNpb24tPnBhZ2VzaXpl ID0gcmM7CiAKICAgICByZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL3hjX2Rv bV9ib290LmMgYi90b29scy9saWJ4Yy94Y19kb21fYm9vdC5jCmluZGV4IGJiZmY3MmUuLjc5MTA0 MWIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL3hjX2RvbV9ib290LmMKKysrIGIvdG9vbHMvbGli eGMveGNfZG9tX2Jvb3QuYwpAQCAtMTEyLDE5ICsxMTIsMTEgQEAgaW50IHhjX2RvbV9jb21wYXRf Y2hlY2soc3RydWN0IHhjX2RvbV9pbWFnZSAqZG9tKQogCiBpbnQgeGNfZG9tX2Jvb3RfeGVuX2lu aXQoc3RydWN0IHhjX2RvbV9pbWFnZSAqZG9tLCB4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRfdCBk b21pZCkKIHsKLSAgICB4ZW5fdmVyc2lvbl9vcF92YWxfdCB2YWwgPSAwOwotCi0gICAgaWYgKCB4 Y192ZXJzaW9uKHhjaCwgWEVOX1ZFUlNJT05fdmVyc2lvbiwgJnZhbCwgc2l6ZW9mKHZhbCkpIDwg MCApCi0gICAgewotICAgICAgICB4Y19kb21fcGFuaWMoeGNoLCBYQ19JTlRFUk5BTF9FUlJPUiwg ImNhbid0IGdldCBYZW4gdmVyc2lvbiEiKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0KLSAg ICBkb20tPnhlbl92ZXJzaW9uID0gdmFsOwogICAgIGRvbS0+eGNoID0geGNoOwogICAgIGRvbS0+ Z3Vlc3RfZG9taWQgPSBkb21pZDsKIAotICAgIGlmICggeGNfdmVyc2lvbih4Y2gsIFhFTl9WRVJT SU9OX2NhcGFiaWxpdGllcywgZG9tLT54ZW5fY2FwcywKLSAgICAgICAgICAgICAgICAgICAgc2l6 ZW9mKGRvbS0+eGVuX2NhcHMpKSA8IDAgKQorICAgIGRvbS0+eGVuX3ZlcnNpb24gPSB4Y192ZXJz aW9uKHhjaCwgWEVOVkVSX3ZlcnNpb24sIE5VTEwpOworICAgIGlmICggeGNfdmVyc2lvbih4Y2gs IFhFTlZFUl9jYXBhYmlsaXRpZXMsICZkb20tPnhlbl9jYXBzKSA8IDAgKQogICAgIHsKICAgICAg ICAgeGNfZG9tX3BhbmljKHhjaCwgWENfSU5URVJOQUxfRVJST1IsICJjYW4ndCBnZXQgeGVuIGNh cGFiaWxpdGllcyIpOwogICAgICAgICByZXR1cm4gLTE7CmRpZmYgLS1naXQgYS90b29scy9saWJ4 Yy94Y19kb21haW4uYyBiL3Rvb2xzL2xpYnhjL3hjX2RvbWFpbi5jCmluZGV4IDllYmQxZDYuLjA1 MDIxNmUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL3hjX2RvbWFpbi5jCisrKyBiL3Rvb2xzL2xp YnhjL3hjX2RvbWFpbi5jCkBAIC0yMDg0LDggKzIwODQsNyBAQCBpbnQgeGNfbWFwX2RvbWFpbl9t ZW1pbmZvKHhjX2ludGVyZmFjZSAqeGNoLCBpbnQgZG9taWQsCiAgICAgX2RpLmd1ZXN0X3dpZHRo ID0gbWluZm8tPmd1ZXN0X3dpZHRoOwogCiAgICAgLyogR2V0IHBhZ2UgdGFibGUgbGV2ZWxzIChz ZWUgZ2V0X3BsYXRmb3JtX2luZm8oKSBpbiB4Z19zYXZlX3Jlc3RvcmUuaCAqLwotICAgIGlmICgg eGNfdmVyc2lvbih4Y2gsIFhFTl9WRVJTSU9OX2NhcGFiaWxpdGllcywgeGVuX2NhcHMsCi0gICAg ICAgICAgICAgICAgICAgIHNpemVvZih4ZW5fY2FwcykpIDwgMCApCisgICAgaWYgKCB4Y192ZXJz aW9uKHhjaCwgWEVOVkVSX2NhcGFiaWxpdGllcywgJnhlbl9jYXBzKSApCiAgICAgewogICAgICAg ICBQRVJST1IoIkNvdWxkIG5vdCBnZXQgWGVuIGNhcGFiaWxpdGllcyAoZm9yIHBhZ2UgdGFibGUg bGV2ZWxzKSIpOwogICAgICAgICByZXR1cm4gLTE7CmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94 Y19wcml2YXRlLmMgYi90b29scy9saWJ4Yy94Y19wcml2YXRlLmMKaW5kZXggNjMxYWQ5MS4uYzQx ZTQzMyAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfcHJpdmF0ZS5jCisrKyBiL3Rvb2xzL2xp YnhjL3hjX3ByaXZhdGUuYwpAQCAtNDU3LDIzICs0NTcsNTggQEAgaW50IHhjX3N5c2N0bCh4Y19p bnRlcmZhY2UgKnhjaCwgc3RydWN0IHhlbl9zeXNjdGwgKnN5c2N0bCkKICAgICByZXR1cm4gZG9f c3lzY3RsKHhjaCwgc3lzY3RsKTsKIH0KIAotc3NpemVfdCB4Y192ZXJzaW9uX2xlbih4Y19pbnRl cmZhY2UgKnhjaCwgdW5zaWduZWQgaW50IGNtZCkKK2ludCB4Y192ZXJzaW9uKHhjX2ludGVyZmFj ZSAqeGNoLCBpbnQgY21kLCB2b2lkICphcmcpCiB7Ci0gICAgcmV0dXJuIGRvX3ZlcnNpb25fb3Ao eGNoLCBjbWQsIE5VTEwsIDApOwotfQotCi1pbnQgeGNfdmVyc2lvbih4Y19pbnRlcmZhY2UgKnhj aCwgdW5zaWduZWQgaW50IGNtZCwgdm9pZCAqYXJnLCBzaXplX3Qgc3opCi17Ci0gICAgREVDTEFS RV9IWVBFUkNBTExfQk9VTkNFKGFyZywgc3osIFhDX0hZUEVSQ0FMTF9CVUZGRVJfQk9VTkNFX09V VCk7CisgICAgREVDTEFSRV9IWVBFUkNBTExfQk9VTkNFKGFyZywgMCwgWENfSFlQRVJDQUxMX0JV RkZFUl9CT1VOQ0VfT1VUKTsgLyogU2l6ZSB1bmtub3duIHVudGlsIGNtZCBkZWNvZGVkICovCisg ICAgc2l6ZV90IHN6OwogICAgIGludCByYzsKIAotICAgIGlmICggeGNfaHlwZXJjYWxsX2JvdW5j ZV9wcmUoeGNoLCBhcmcpICkKKyAgICBzd2l0Y2ggKCBjbWQgKQorICAgIHsKKyAgICBjYXNlIFhF TlZFUl92ZXJzaW9uOgorICAgICAgICBzeiA9IDA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug WEVOVkVSX2V4dHJhdmVyc2lvbjoKKyAgICAgICAgc3ogPSBzaXplb2YoeGVuX2V4dHJhdmVyc2lv bl90KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBYRU5WRVJfY29tcGlsZV9pbmZvOgorICAg ICAgICBzeiA9IHNpemVvZih4ZW5fY29tcGlsZV9pbmZvX3QpOworICAgICAgICBicmVhazsKKyAg ICBjYXNlIFhFTlZFUl9jYXBhYmlsaXRpZXM6CisgICAgICAgIHN6ID0gc2l6ZW9mKHhlbl9jYXBh YmlsaXRpZXNfaW5mb190KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBYRU5WRVJfY2hhbmdl c2V0OgorICAgICAgICBzeiA9IHNpemVvZih4ZW5fY2hhbmdlc2V0X2luZm9fdCk7CisgICAgICAg IGJyZWFrOworICAgIGNhc2UgWEVOVkVSX3BsYXRmb3JtX3BhcmFtZXRlcnM6CisgICAgICAgIHN6 ID0gc2l6ZW9mKHhlbl9wbGF0Zm9ybV9wYXJhbWV0ZXJzX3QpOworICAgICAgICBicmVhazsKKyAg ICBjYXNlIFhFTlZFUl9nZXRfZmVhdHVyZXM6CisgICAgICAgIHN6ID0gc2l6ZW9mKHhlbl9mZWF0 dXJlX2luZm9fdCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgWEVOVkVSX3BhZ2VzaXplOgor ICAgICAgICBzeiA9IDA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgWEVOVkVSX2d1ZXN0X2hh bmRsZToKKyAgICAgICAgc3ogPSBzaXplb2YoeGVuX2RvbWFpbl9oYW5kbGVfdCk7CisgICAgICAg IGJyZWFrOworICAgIGNhc2UgWEVOVkVSX2NvbW1hbmRsaW5lOgorICAgICAgICBzeiA9IHNpemVv Zih4ZW5fY29tbWFuZGxpbmVfdCk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAg ICAgIEVSUk9SKCJ4Y192ZXJzaW9uOiB1bmtub3duIGNvbW1hbmQgJWRcbiIsIGNtZCk7CisgICAg ICAgIHJldHVybiAtRUlOVkFMOworICAgIH0KKworICAgIEhZUEVSQ0FMTF9CT1VOQ0VfU0VUX1NJ WkUoYXJnLCBzeik7CisKKyAgICBpZiAoIChzeiAhPSAwKSAmJiB4Y19oeXBlcmNhbGxfYm91bmNl X3ByZSh4Y2gsIGFyZykgKQogICAgIHsKICAgICAgICAgUEVSUk9SKCJDb3VsZCBub3QgYm91bmNl IGJ1ZmZlciBmb3IgdmVyc2lvbiBoeXBlcmNhbGwiKTsKICAgICAgICAgcmV0dXJuIC1FTk9NRU07 CiAgICAgfQogCi0gICAgcmMgPSBkb192ZXJzaW9uX29wKHhjaCwgY21kLCBIWVBFUkNBTExfQlVG RkVSKGFyZyksIHN6KTsKKyAgICByYyA9IGRvX3hlbl92ZXJzaW9uKHhjaCwgY21kLCBIWVBFUkNB TExfQlVGRkVSKGFyZykpOwogCiAgICAgaWYgKCBzeiAhPSAwICkKICAgICAgICAgeGNfaHlwZXJj YWxsX2JvdW5jZV9wb3N0KHhjaCwgYXJnKTsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL3hjX3By aXZhdGUuaCBiL3Rvb2xzL2xpYnhjL3hjX3ByaXZhdGUuaAppbmRleCA1YmU4ZmRkLi5hYThkYWYx IDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy94Y19wcml2YXRlLmgKKysrIGIvdG9vbHMvbGlieGMv eGNfcHJpdmF0ZS5oCkBAIC0yMTQsMTIgKzIxNCwxMSBAQCB2b2lkIHhjX19oeXBlcmNhbGxfYnVm ZmVyX2NhY2hlX3JlbGVhc2UoeGNfaW50ZXJmYWNlICp4Y2gpOwogICogSHlwZXJjYWxsIGludGVy ZmFjZXMuCiAgKi8KIAotc3RhdGljIGlubGluZSBsb25nIGRvX3ZlcnNpb25fb3AoeGNfaW50ZXJm YWNlICp4Y2gsIGludCBjbWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4Y19o eXBlcmNhbGxfYnVmZmVyX3QgKmRlc3QsIHNzaXplX3QgbGVuKQorc3RhdGljIGlubGluZSBpbnQg ZG9feGVuX3ZlcnNpb24oeGNfaW50ZXJmYWNlICp4Y2gsIGludCBjbWQsIHhjX2h5cGVyY2FsbF9i dWZmZXJfdCAqZGVzdCkKIHsKICAgICBERUNMQVJFX0hZUEVSQ0FMTF9CVUZGRVJfQVJHVU1FTlQo ZGVzdCk7Ci0gICAgcmV0dXJuIHhlbmNhbGwzKHhjaC0+eGNhbGwsIF9fSFlQRVJWSVNPUl92ZXJz aW9uX29wLAotICAgICAgICAgICAgICAgICAgICBjbWQsIEhZUEVSQ0FMTF9CVUZGRVJfQVNfQVJH KGRlc3QpLCBsZW4pOworICAgIHJldHVybiB4ZW5jYWxsMih4Y2gtPnhjYWxsLCBfX0hZUEVSVklT T1JfeGVuX3ZlcnNpb24sCisgICAgICAgICAgICAgICAgICAgIGNtZCwgSFlQRVJDQUxMX0JVRkZF Ul9BU19BUkcoZGVzdCkpOwogfQogCiBzdGF0aWMgaW5saW5lIGludCBkb19waHlzZGV2X29wKHhj X2ludGVyZmFjZSAqeGNoLCBpbnQgY21kLCB2b2lkICpvcCwgc2l6ZV90IGxlbikKZGlmZiAtLWdp dCBhL3Rvb2xzL2xpYnhjL3hjX3Jlc3VtZS5jIGIvdG9vbHMvbGlieGMveGNfcmVzdW1lLmMKaW5k ZXggMmI2YzMwOC4uYzE2OTIwNCAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfcmVzdW1lLmMK KysrIGIvdG9vbHMvbGlieGMveGNfcmVzdW1lLmMKQEAgLTU2LDggKzU2LDcgQEAgc3RhdGljIGlu dCBtb2RpZnlfcmV0dXJuY29kZSh4Y19pbnRlcmZhY2UgKnhjaCwgdWludDMyX3QgZG9taWQpCiAg ICAgICAgICAgICByZXR1cm4gMDsKIAogICAgICAgICAvKiBIVk0gZ3Vlc3RzIGhhdmUgaG9zdCBh ZGRyZXNzIHdpZHRoLiAqLwotICAgICAgICBpZiAoIHhjX3ZlcnNpb24oeGNoLCBYRU5fVkVSU0lP Tl9jYXBhYmlsaXRpZXMsIGNhcHMsCi0gICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoY2Fw cykpIDwgMCApCisgICAgICAgIGlmICggeGNfdmVyc2lvbih4Y2gsIFhFTlZFUl9jYXBhYmlsaXRp ZXMsICZjYXBzKSAhPSAwICkKICAgICAgICAgewogICAgICAgICAgICAgUEVSUk9SKCJDb3VsZCBu b3QgZ2V0IFhlbiBjYXBhYmlsaXRpZXMiKTsKICAgICAgICAgICAgIHJldHVybiAtMTsKZGlmZiAt LWdpdCBhL3Rvb2xzL2xpYnhjL3hjX3NyX3NhdmUuYyBiL3Rvb2xzL2xpYnhjL3hjX3NyX3NhdmUu YwppbmRleCAyOTFmZTlmLi5mOThjODI3IDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy94Y19zcl9z YXZlLmMKKysrIGIvdG9vbHMvbGlieGMveGNfc3Jfc2F2ZS5jCkBAIC05LDcgKzksNyBAQAogc3Rh dGljIGludCB3cml0ZV9oZWFkZXJzKHN0cnVjdCB4Y19zcl9jb250ZXh0ICpjdHgsIHVpbnQxNl90 IGd1ZXN0X3R5cGUpCiB7CiAgICAgeGNfaW50ZXJmYWNlICp4Y2ggPSBjdHgtPnhjaDsKLSAgICB4 ZW5fdmVyc2lvbl9vcF92YWxfdCB4ZW5fdmVyc2lvbjsKKyAgICBpbnQzMl90IHhlbl92ZXJzaW9u ID0geGNfdmVyc2lvbih4Y2gsIFhFTlZFUl92ZXJzaW9uLCBOVUxMKTsKICAgICBzdHJ1Y3QgeGNf c3JfaWhkciBpaGRyID0KICAgICAgICAgewogICAgICAgICAgICAgLm1hcmtlciAgPSBJSERSX01B UktFUiwKQEAgLTIxLDE2ICsyMSwxNSBAQCBzdGF0aWMgaW50IHdyaXRlX2hlYWRlcnMoc3RydWN0 IHhjX3NyX2NvbnRleHQgKmN0eCwgdWludDE2X3QgZ3Vlc3RfdHlwZSkKICAgICAgICAgewogICAg ICAgICAgICAgLnR5cGUgICAgICAgPSBndWVzdF90eXBlLAogICAgICAgICAgICAgLnBhZ2Vfc2hp ZnQgPSBYQ19QQUdFX1NISUZULAorICAgICAgICAgICAgLnhlbl9tYWpvciAgPSAoeGVuX3ZlcnNp b24gPj4gMTYpICYgMHhmZmZmLAorICAgICAgICAgICAgLnhlbl9taW5vciAgPSAoeGVuX3ZlcnNp b24pICAgICAgICYgMHhmZmZmLAogICAgICAgICB9OwogCi0gICAgaWYgKCB4Y192ZXJzaW9uKHhj aCwgWEVOX1ZFUlNJT05fdmVyc2lvbiwgJnhlbl92ZXJzaW9uLAotICAgICAgICAgICAgICAgICAg ICBzaXplb2YoeGVuX3ZlcnNpb24pKSA8IDAgKQorICAgIGlmICggeGVuX3ZlcnNpb24gPCAwICkK ICAgICB7CiAgICAgICAgIFBFUlJPUigiVW5hYmxlIHRvIG9idGFpbiBYZW4gVmVyc2lvbiIpOwog ICAgICAgICByZXR1cm4gLTE7CiAgICAgfQotICAgIGRoZHIueGVuX21ham9yID0gKHhlbl92ZXJz aW9uID4+IDE2KSAmIDB4ZmZmZjsKLSAgICBkaGRyLnhlbl9taW5vciA9ICh4ZW5fdmVyc2lvbikg ICAgICAgJiAweGZmZmY7CiAKICAgICBpZiAoIHdyaXRlX2V4YWN0KGN0eC0+ZmQsICZpaGRyLCBz aXplb2YoaWhkcikpICkKICAgICB7CmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94Z19zYXZlX3Jl c3RvcmUuaCBiL3Rvb2xzL2xpYnhjL3hnX3NhdmVfcmVzdG9yZS5oCmluZGV4IDAwNzg3NWYuLjMw MzA4MWQgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL3hnX3NhdmVfcmVzdG9yZS5oCisrKyBiL3Rv b2xzL2xpYnhjL3hnX3NhdmVfcmVzdG9yZS5oCkBAIC01NywxMiArNTcsMTAgQEAgc3RhdGljIGlu bGluZSBpbnQgZ2V0X3BsYXRmb3JtX2luZm8oeGNfaW50ZXJmYWNlICp4Y2gsIHVpbnQzMl90IGRv bSwKICAgICB4ZW5fY2FwYWJpbGl0aWVzX2luZm9fdCB4ZW5fY2FwcyA9ICIiOwogICAgIHhlbl9w bGF0Zm9ybV9wYXJhbWV0ZXJzX3QgeGVuX3BhcmFtczsKIAotICAgIGlmICh4Y192ZXJzaW9uKHhj aCwgWEVOX1ZFUlNJT05fcGxhdGZvcm1fcGFyYW1ldGVycywgJnhlbl9wYXJhbXMsCi0gICAgICAg ICAgICAgICAgICAgc2l6ZW9mKHhlbl9wYXJhbXMpKSA8IDApCisgICAgaWYgKHhjX3ZlcnNpb24o eGNoLCBYRU5WRVJfcGxhdGZvcm1fcGFyYW1ldGVycywgJnhlbl9wYXJhbXMpICE9IDApCiAgICAg ICAgIHJldHVybiAwOwogCi0gICAgaWYgKHhjX3ZlcnNpb24oeGNoLCBYRU5fVkVSU0lPTl9jYXBh YmlsaXRpZXMsIHhlbl9jYXBzLAotICAgICAgICAgICAgICAgICAgIHNpemVvZih4ZW5fY2Fwcykp IDwgMCkKKyAgICBpZiAoeGNfdmVyc2lvbih4Y2gsIFhFTlZFUl9jYXBhYmlsaXRpZXMsICZ4ZW5f Y2FwcykgIT0gMCkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBpZiAoeGNfbWF4aW11bV9yYW1f cGFnZSh4Y2gsIG1heF9tZm4pKQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGwuYyBiL3Rv b2xzL2xpYnhsL2xpYnhsLmMKaW5kZXggZDIzMjQ3My4uZWVjODk5ZCAxMDA2NDQKLS0tIGEvdG9v bHMvbGlieGwvbGlieGwuYworKysgYi90b29scy9saWJ4bC9saWJ4bC5jCkBAIC01MzUzLDcxICs1 MzUzLDUwIEBAIGxpYnhsX251bWFpbmZvICpsaWJ4bF9nZXRfbnVtYWluZm8obGlieGxfY3R4ICpj dHgsIGludCAqbnIpCiAgICAgcmV0dXJuIHJldDsKIH0KIAotCi1zdGF0aWMgaW50IGxpYnhsX194 Y192ZXJzaW9uX3dyYXBwZXIobGlieGxfX2djICpnYywgdW5zaWduZWQgaW50IGNtZCwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpidWYsIHNzaXplX3QgbGVuLCBj aGFyICoqZHN0KQotewotICAgIGludCByOwotCi0gICAgciA9IHhjX3ZlcnNpb24oQ1RYLT54Y2gs IGNtZCwgYnVmLCBsZW4pOwotICAgIGlmICggciA9PSAtRVBFUk0gKSB7Ci0gICAgICAgIGJ1Zlsw XSA9ICdcMCc7Ci0gICAgfSBlbHNlIGlmICggciA8IDAgKSB7Ci0gICAgICAgIHJldHVybiByOwot ICAgIH0KLSAgICAqZHN0ID0gbGlieGxfX3N0cmR1cChOT0dDLCBidWYpOwotICAgIHJldHVybiAw OwotfQotCiBjb25zdCBsaWJ4bF92ZXJzaW9uX2luZm8qIGxpYnhsX2dldF92ZXJzaW9uX2luZm8o bGlieGxfY3R4ICpjdHgpCiB7CiAgICAgR0NfSU5JVChjdHgpOwotICAgIGNoYXIgKmJ1ZjsKLSAg ICB4ZW5fdmVyc2lvbl9vcF92YWxfdCB2YWwgPSAwOworICAgIHVuaW9uIHsKKyAgICAgICAgeGVu X2V4dHJhdmVyc2lvbl90IHhlbl9leHRyYTsKKyAgICAgICAgeGVuX2NvbXBpbGVfaW5mb190IHhl bl9jYzsKKyAgICAgICAgeGVuX2NoYW5nZXNldF9pbmZvX3QgeGVuX2NoZ3NldDsKKyAgICAgICAg eGVuX2NhcGFiaWxpdGllc19pbmZvX3QgeGVuX2NhcHM7CisgICAgICAgIHhlbl9wbGF0Zm9ybV9w YXJhbWV0ZXJzX3QgcF9wYXJtczsKKyAgICAgICAgeGVuX2NvbW1hbmRsaW5lX3QgeGVuX2NvbW1h bmRsaW5lOworICAgIH0gdTsKKyAgICBsb25nIHhlbl92ZXJzaW9uOwogICAgIGxpYnhsX3ZlcnNp b25faW5mbyAqaW5mbyA9ICZjdHgtPnZlcnNpb25faW5mbzsKIAogICAgIGlmIChpbmZvLT54ZW5f dmVyc2lvbl9leHRyYSAhPSBOVUxMKQogICAgICAgICBnb3RvIG91dDsKIAotICAgIGlmICh4Y192 ZXJzaW9uKENUWC0+eGNoLCBYRU5fVkVSU0lPTl9wYWdlc2l6ZSwgJnZhbCwgc2l6ZW9mKHZhbCkp IDwgMCkKLSAgICAgICAgZ290byBvdXQ7CisgICAgeGVuX3ZlcnNpb24gPSB4Y192ZXJzaW9uKGN0 eC0+eGNoLCBYRU5WRVJfdmVyc2lvbiwgTlVMTCk7CisgICAgaW5mby0+eGVuX3ZlcnNpb25fbWFq b3IgPSB4ZW5fdmVyc2lvbiA+PiAxNjsKKyAgICBpbmZvLT54ZW5fdmVyc2lvbl9taW5vciA9IHhl bl92ZXJzaW9uICYgMHhGRjsKIAotICAgIGluZm8tPnBhZ2VzaXplID0gdmFsOwotICAgIC8qIDRL IGJ1ZmZlci4gKi8KLSAgICBidWYgPSBsaWJ4bF9femFsbG9jKGdjLCBpbmZvLT5wYWdlc2l6ZSk7 CisgICAgeGNfdmVyc2lvbihjdHgtPnhjaCwgWEVOVkVSX2V4dHJhdmVyc2lvbiwgJnUueGVuX2V4 dHJhKTsKKyAgICBpbmZvLT54ZW5fdmVyc2lvbl9leHRyYSA9IGxpYnhsX19zdHJkdXAoTk9HQywg dS54ZW5fZXh0cmEpOwogCi0gICAgdmFsID0gMDsKLSAgICBpZiAoeGNfdmVyc2lvbihDVFgtPnhj aCwgWEVOX1ZFUlNJT05fdmVyc2lvbiwgJnZhbCwgc2l6ZW9mKHZhbCkpIDwgMCkKLSAgICAgICAg Z290byBvdXQ7Ci0gICAgaW5mby0+eGVuX3ZlcnNpb25fbWFqb3IgPSB2YWwgPj4gMTY7Ci0gICAg aW5mby0+eGVuX3ZlcnNpb25fbWlub3IgPSB2YWwgJiAweEZGOworICAgIHhjX3ZlcnNpb24oY3R4 LT54Y2gsIFhFTlZFUl9jb21waWxlX2luZm8sICZ1Lnhlbl9jYyk7CisgICAgaW5mby0+Y29tcGls ZXIgPSBsaWJ4bF9fc3RyZHVwKE5PR0MsIHUueGVuX2NjLmNvbXBpbGVyKTsKKyAgICBpbmZvLT5j b21waWxlX2J5ID0gbGlieGxfX3N0cmR1cChOT0dDLCB1Lnhlbl9jYy5jb21waWxlX2J5KTsKKyAg ICBpbmZvLT5jb21waWxlX2RvbWFpbiA9IGxpYnhsX19zdHJkdXAoTk9HQywgdS54ZW5fY2MuY29t cGlsZV9kb21haW4pOworICAgIGluZm8tPmNvbXBpbGVfZGF0ZSA9IGxpYnhsX19zdHJkdXAoTk9H QywgdS54ZW5fY2MuY29tcGlsZV9kYXRlKTsKIAotICAgIGlmIChsaWJ4bF9feGNfdmVyc2lvbl93 cmFwcGVyKGdjLCBYRU5fVkVSU0lPTl9leHRyYXZlcnNpb24sIGJ1ZiwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbmZvLT5wYWdlc2l6ZSwgJmluZm8tPnhlbl92ZXJzaW9uX2V4 dHJhKSA8IDApCi0gICAgICAgIGdvdG8gb3V0OworICAgIHhjX3ZlcnNpb24oY3R4LT54Y2gsIFhF TlZFUl9jYXBhYmlsaXRpZXMsICZ1Lnhlbl9jYXBzKTsKKyAgICBpbmZvLT5jYXBhYmlsaXRpZXMg PSBsaWJ4bF9fc3RyZHVwKE5PR0MsIHUueGVuX2NhcHMpOwogCi0gICAgaW5mby0+Y29tcGlsZXIg PSBsaWJ4bF9fc3RyZHVwKE5PR0MsICIiKTsKLSAgICBpbmZvLT5jb21waWxlX2J5ID0gbGlieGxf X3N0cmR1cChOT0dDLCAiIik7Ci0gICAgaW5mby0+Y29tcGlsZV9kb21haW4gPSBsaWJ4bF9fc3Ry ZHVwKE5PR0MsICIiKTsKLSAgICBpbmZvLT5jb21waWxlX2RhdGUgPSBsaWJ4bF9fc3RyZHVwKE5P R0MsICIiKTsKKyAgICB4Y192ZXJzaW9uKGN0eC0+eGNoLCBYRU5WRVJfY2hhbmdlc2V0LCAmdS54 ZW5fY2hnc2V0KTsKKyAgICBpbmZvLT5jaGFuZ2VzZXQgPSBsaWJ4bF9fc3RyZHVwKE5PR0MsIHUu eGVuX2NoZ3NldCk7CiAKLSAgICBpZiAobGlieGxfX3hjX3ZlcnNpb25fd3JhcHBlcihnYywgWEVO X1ZFUlNJT05fY2FwYWJpbGl0aWVzLCBidWYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW5mby0+cGFnZXNpemUsICZpbmZvLT5jYXBhYmlsaXRpZXMpIDwgMCkKLSAgICAgICAg Z290byBvdXQ7CisgICAgeGNfdmVyc2lvbihjdHgtPnhjaCwgWEVOVkVSX3BsYXRmb3JtX3BhcmFt ZXRlcnMsICZ1LnBfcGFybXMpOworICAgIGluZm8tPnZpcnRfc3RhcnQgPSB1LnBfcGFybXMudmly dF9zdGFydDsKIAotICAgIGlmIChsaWJ4bF9feGNfdmVyc2lvbl93cmFwcGVyKGdjLCBYRU5fVkVS U0lPTl9jaGFuZ2VzZXQsIGJ1ZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp bmZvLT5wYWdlc2l6ZSwgJmluZm8tPmNoYW5nZXNldCkgPCAwKQotICAgICAgICBnb3RvIG91dDsK LQotICAgIHZhbCA9IDA7Ci0gICAgaWYgKHhjX3ZlcnNpb24oQ1RYLT54Y2gsIFhFTl9WRVJTSU9O X3BsYXRmb3JtX3BhcmFtZXRlcnMsICZ2YWwsCi0gICAgICAgICAgICAgICAgICAgc2l6ZW9mKHZh bCkpIDwgMCkKLSAgICAgICAgZ290byBvdXQ7CisgICAgaW5mby0+cGFnZXNpemUgPSB4Y192ZXJz aW9uKGN0eC0+eGNoLCBYRU5WRVJfcGFnZXNpemUsIE5VTEwpOwogCi0gICAgaW5mby0+dmlydF9z dGFydCA9IHZhbDsKKyAgICB4Y192ZXJzaW9uKGN0eC0+eGNoLCBYRU5WRVJfY29tbWFuZGxpbmUs ICZ1Lnhlbl9jb21tYW5kbGluZSk7CisgICAgaW5mby0+Y29tbWFuZGxpbmUgPSBsaWJ4bF9fc3Ry ZHVwKE5PR0MsIHUueGVuX2NvbW1hbmRsaW5lKTsKIAotICAgICh2b2lkKWxpYnhsX194Y192ZXJz aW9uX3dyYXBwZXIoZ2MsIFhFTl9WRVJTSU9OX2NvbW1hbmRsaW5lLCBidWYsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpbmZvLT5wYWdlc2l6ZSwgJmluZm8tPmNvbW1hbmRs aW5lKTsKICBvdXQ6CiAgICAgR0NfRlJFRTsKICAgICByZXR1cm4gaW5mbzsKZGlmZiAtLWdpdCBh L3Rvb2xzL29jYW1sL2xpYnMveGMveGVuY3RybF9zdHVicy5jIGIvdG9vbHMvb2NhbWwvbGlicy94 Yy94ZW5jdHJsX3N0dWJzLmMKaW5kZXggMjI3NDFkNS4uNTQ3N2RmMyAxMDA2NDQKLS0tIGEvdG9v bHMvb2NhbWwvbGlicy94Yy94ZW5jdHJsX3N0dWJzLmMKKysrIGIvdG9vbHMvb2NhbWwvbGlicy94 Yy94ZW5jdHJsX3N0dWJzLmMKQEAgLTg1MywyMSArODUzLDIxIEBAIENBTUxwcmltIHZhbHVlIHN0 dWJfeGNfdmVyc2lvbl92ZXJzaW9uKHZhbHVlIHhjaCkKIAlDQU1McGFyYW0xKHhjaCk7CiAJQ0FN TGxvY2FsMShyZXN1bHQpOwogCXhlbl9leHRyYXZlcnNpb25fdCBleHRyYTsKLQl4ZW5fdmVyc2lv bl9vcF92YWxfdCBwYWNrZWQ7CisJbG9uZyBwYWNrZWQ7CiAJaW50IHJldHZhbDsKIAogCWNhbWxf ZW50ZXJfYmxvY2tpbmdfc2VjdGlvbigpOwotCXJldHZhbCA9IHhjX3ZlcnNpb24oX0goeGNoKSwg WEVOX1ZFUlNJT05fdmVyc2lvbiwgJnBhY2tlZCwgc2l6ZW9mKHBhY2tlZCkpOworCXBhY2tlZCA9 IHhjX3ZlcnNpb24oX0goeGNoKSwgWEVOVkVSX3ZlcnNpb24sIE5VTEwpOwogCWNhbWxfbGVhdmVf YmxvY2tpbmdfc2VjdGlvbigpOwogCi0JaWYgKHJldHZhbCA8IDApCisJaWYgKHBhY2tlZCA8IDAp CiAJCWZhaWx3aXRoX3hjKF9IKHhjaCkpOwogCiAJY2FtbF9lbnRlcl9ibG9ja2luZ19zZWN0aW9u KCk7Ci0JcmV0dmFsID0geGNfdmVyc2lvbihfSCh4Y2gpLCBYRU5fVkVSU0lPTl9leHRyYXZlcnNp b24sICZleHRyYSwgc2l6ZW9mKGV4dHJhKSk7CisJcmV0dmFsID0geGNfdmVyc2lvbihfSCh4Y2gp LCBYRU5WRVJfZXh0cmF2ZXJzaW9uLCAmZXh0cmEpOwogCWNhbWxfbGVhdmVfYmxvY2tpbmdfc2Vj dGlvbigpOwogCi0JaWYgKHJldHZhbCA8IDApCisJaWYgKHJldHZhbCkKIAkJZmFpbHdpdGhfeGMo X0goeGNoKSk7CiAKIAlyZXN1bHQgPSBjYW1sX2FsbG9jX3R1cGxlKDMpOwpAQCAtODg0LDI4ICs4 ODQsMzcgQEAgQ0FNTHByaW0gdmFsdWUgc3R1Yl94Y192ZXJzaW9uX2NvbXBpbGVfaW5mbyh2YWx1 ZSB4Y2gpCiB7CiAJQ0FNTHBhcmFtMSh4Y2gpOwogCUNBTUxsb2NhbDEocmVzdWx0KTsKKwl4ZW5f Y29tcGlsZV9pbmZvX3QgY2k7CisJaW50IHJldHZhbDsKKworCWNhbWxfZW50ZXJfYmxvY2tpbmdf c2VjdGlvbigpOworCXJldHZhbCA9IHhjX3ZlcnNpb24oX0goeGNoKSwgWEVOVkVSX2NvbXBpbGVf aW5mbywgJmNpKTsKKwljYW1sX2xlYXZlX2Jsb2NraW5nX3NlY3Rpb24oKTsKKworCWlmIChyZXR2 YWwpCisJCWZhaWx3aXRoX3hjKF9IKHhjaCkpOwogCiAJcmVzdWx0ID0gY2FtbF9hbGxvY190dXBs ZSg0KTsKIAotCVN0b3JlX2ZpZWxkKHJlc3VsdCwgMCwgY2FtbF9jb3B5X3N0cmluZygiIikpOwot CVN0b3JlX2ZpZWxkKHJlc3VsdCwgMSwgY2FtbF9jb3B5X3N0cmluZygiIikpOwotCVN0b3JlX2Zp ZWxkKHJlc3VsdCwgMiwgY2FtbF9jb3B5X3N0cmluZygiIikpOwotCVN0b3JlX2ZpZWxkKHJlc3Vs dCwgMywgY2FtbF9jb3B5X3N0cmluZygiIikpOworCVN0b3JlX2ZpZWxkKHJlc3VsdCwgMCwgY2Ft bF9jb3B5X3N0cmluZyhjaS5jb21waWxlcikpOworCVN0b3JlX2ZpZWxkKHJlc3VsdCwgMSwgY2Ft bF9jb3B5X3N0cmluZyhjaS5jb21waWxlX2J5KSk7CisJU3RvcmVfZmllbGQocmVzdWx0LCAyLCBj YW1sX2NvcHlfc3RyaW5nKGNpLmNvbXBpbGVfZG9tYWluKSk7CisJU3RvcmVfZmllbGQocmVzdWx0 LCAzLCBjYW1sX2NvcHlfc3RyaW5nKGNpLmNvbXBpbGVfZGF0ZSkpOwogCiAJQ0FNTHJldHVybihy ZXN1bHQpOwogfQogCiAKLXN0YXRpYyB2YWx1ZSB4Y192ZXJzaW9uX3NpbmdsZV9zdHJpbmcodmFs dWUgeGNoLCBpbnQgY29kZSwgdm9pZCAqaW5mbywgc3NpemVfdCBsZW4pCitzdGF0aWMgdmFsdWUg eGNfdmVyc2lvbl9zaW5nbGVfc3RyaW5nKHZhbHVlIHhjaCwgaW50IGNvZGUsIHZvaWQgKmluZm8p CiB7CiAJQ0FNTHBhcmFtMSh4Y2gpOwogCWludCByZXR2YWw7CiAKIAljYW1sX2VudGVyX2Jsb2Nr aW5nX3NlY3Rpb24oKTsKLQlyZXR2YWwgPSB4Y192ZXJzaW9uKF9IKHhjaCksIGNvZGUsIGluZm8s IGxlbik7CisJcmV0dmFsID0geGNfdmVyc2lvbihfSCh4Y2gpLCBjb2RlLCBpbmZvKTsKIAljYW1s X2xlYXZlX2Jsb2NraW5nX3NlY3Rpb24oKTsKIAotCWlmIChyZXR2YWwgPCAwKQorCWlmIChyZXR2 YWwpCiAJCWZhaWx3aXRoX3hjKF9IKHhjaCkpOwogCiAJQ0FNTHJldHVybihjYW1sX2NvcHlfc3Ry aW5nKChjaGFyICopaW5mbykpOwpAQCAtOTE2LDggKzkyNSw3IEBAIENBTUxwcmltIHZhbHVlIHN0 dWJfeGNfdmVyc2lvbl9jaGFuZ2VzZXQodmFsdWUgeGNoKQogewogCXhlbl9jaGFuZ2VzZXRfaW5m b190IGNpOwogCi0JcmV0dXJuIHhjX3ZlcnNpb25fc2luZ2xlX3N0cmluZyh4Y2gsIFhFTl9WRVJT SU9OX2NoYW5nZXNldCwKLQkJCQkJJmNpLCBzaXplb2YoY2kpKTsKKwlyZXR1cm4geGNfdmVyc2lv bl9zaW5nbGVfc3RyaW5nKHhjaCwgWEVOVkVSX2NoYW5nZXNldCwgJmNpKTsKIH0KIAogCkBAIC05 MjUsOCArOTMzLDcgQEAgQ0FNTHByaW0gdmFsdWUgc3R1Yl94Y192ZXJzaW9uX2NhcGFiaWxpdGll cyh2YWx1ZSB4Y2gpCiB7CiAJeGVuX2NhcGFiaWxpdGllc19pbmZvX3QgY2k7CiAKLQlyZXR1cm4g eGNfdmVyc2lvbl9zaW5nbGVfc3RyaW5nKHhjaCwgWEVOX1ZFUlNJT05fY2FwYWJpbGl0aWVzLAot CQkJCQkmY2ksIHNpemVvZihjaSkpOworCXJldHVybiB4Y192ZXJzaW9uX3NpbmdsZV9zdHJpbmco eGNoLCBYRU5WRVJfY2FwYWJpbGl0aWVzLCAmY2kpOwogfQogCiAKZGlmZiAtLWdpdCBhL3Rvb2xz L3B5dGhvbi94ZW4vbG93bGV2ZWwveGMveGMuYyBiL3Rvb2xzL3B5dGhvbi94ZW4vbG93bGV2ZWwv eGMveGMuYwppbmRleCA4MTJhOTA1Li44NDExNzg5IDEwMDY0NAotLS0gYS90b29scy9weXRob24v eGVuL2xvd2xldmVsL3hjL3hjLmMKKysrIGIvdG9vbHMvcHl0aG9uL3hlbi9sb3dsZXZlbC94Yy94 Yy5jCkBAIC0xMjA0LDQwICsxMjA0LDM0IEBAIHN0YXRpYyBQeU9iamVjdCAqcHl4Y194ZW5pbmZv KFhjT2JqZWN0ICpzZWxmKQogICAgIHhlbl9jYXBhYmlsaXRpZXNfaW5mb190IHhlbl9jYXBzOwog ICAgIHhlbl9wbGF0Zm9ybV9wYXJhbWV0ZXJzX3QgcF9wYXJtczsKICAgICB4ZW5fY29tbWFuZGxp bmVfdCB4ZW5fY29tbWFuZGxpbmU7Ci0gICAgeGVuX3ZlcnNpb25fb3BfdmFsX3QgeGVuX3ZlcnNp b247Ci0gICAgeGVuX3ZlcnNpb25fb3BfdmFsX3QgeGVuX3BhZ2VzaXplOworICAgIGxvbmcgeGVu X3ZlcnNpb247CisgICAgbG9uZyB4ZW5fcGFnZXNpemU7CiAgICAgY2hhciBzdHJbMTI4XTsKIAot ICAgIGlmICggeGNfdmVyc2lvbihzZWxmLT54Y19oYW5kbGUsIFhFTl9WRVJTSU9OX3ZlcnNpb24s ICZ4ZW5fdmVyc2lvbiwKLSAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHhlbl92ZXJzaW9uKSkg PCAwICkKLSAgICAgICAgcmV0dXJuIHB5eGNfZXJyb3JfdG9fZXhjZXB0aW9uKHNlbGYtPnhjX2hh bmRsZSk7CisgICAgeGVuX3ZlcnNpb24gPSB4Y192ZXJzaW9uKHNlbGYtPnhjX2hhbmRsZSwgWEVO VkVSX3ZlcnNpb24sIE5VTEwpOwogCi0gICAgaWYgKCB4Y192ZXJzaW9uKHNlbGYtPnhjX2hhbmRs ZSwgWEVOX1ZFUlNJT05fZXh0cmF2ZXJzaW9uLCAmeGVuX2V4dHJhLAotICAgICAgICAgICAgICAg ICAgICBzaXplb2YoeGVuX2V4dHJhKSkgPCAwICkKKyAgICBpZiAoIHhjX3ZlcnNpb24oc2VsZi0+ eGNfaGFuZGxlLCBYRU5WRVJfZXh0cmF2ZXJzaW9uLCAmeGVuX2V4dHJhKSAhPSAwICkKICAgICAg ICAgcmV0dXJuIHB5eGNfZXJyb3JfdG9fZXhjZXB0aW9uKHNlbGYtPnhjX2hhbmRsZSk7CiAKLSAg ICBtZW1zZXQoJnhlbl9jYywgMCwgc2l6ZW9mKHhlbl9jYykpOworICAgIGlmICggeGNfdmVyc2lv bihzZWxmLT54Y19oYW5kbGUsIFhFTlZFUl9jb21waWxlX2luZm8sICZ4ZW5fY2MpICE9IDAgKQor ICAgICAgICByZXR1cm4gcHl4Y19lcnJvcl90b19leGNlcHRpb24oc2VsZi0+eGNfaGFuZGxlKTsK IAotICAgIGlmICggeGNfdmVyc2lvbihzZWxmLT54Y19oYW5kbGUsIFhFTl9WRVJTSU9OX2NoYW5n ZXNldCwgJnhlbl9jaGdzZXQsCi0gICAgICAgICAgICAgICAgICAgIHNpemVvZih4ZW5fY2hnc2V0 KSkgPCAwICkKKyAgICBpZiAoIHhjX3ZlcnNpb24oc2VsZi0+eGNfaGFuZGxlLCBYRU5WRVJfY2hh bmdlc2V0LCAmeGVuX2NoZ3NldCkgIT0gMCApCiAgICAgICAgIHJldHVybiBweXhjX2Vycm9yX3Rv X2V4Y2VwdGlvbihzZWxmLT54Y19oYW5kbGUpOwogCi0gICAgaWYgKCB4Y192ZXJzaW9uKHNlbGYt PnhjX2hhbmRsZSwgWEVOX1ZFUlNJT05fY2FwYWJpbGl0aWVzLCAmeGVuX2NhcHMsCi0gICAgICAg ICAgICAgICAgICAgIHNpemVvZih4ZW5fY2FwcykpIDwgMCApCisgICAgaWYgKCB4Y192ZXJzaW9u KHNlbGYtPnhjX2hhbmRsZSwgWEVOVkVSX2NhcGFiaWxpdGllcywgJnhlbl9jYXBzKSAhPSAwICkK ICAgICAgICAgcmV0dXJuIHB5eGNfZXJyb3JfdG9fZXhjZXB0aW9uKHNlbGYtPnhjX2hhbmRsZSk7 CiAKLSAgICBpZiAoIHhjX3ZlcnNpb24oc2VsZi0+eGNfaGFuZGxlLCBYRU5fVkVSU0lPTl9wbGF0 Zm9ybV9wYXJhbWV0ZXJzLAotICAgICAgICAgICAgICAgICAgICAmcF9wYXJtcywgc2l6ZW9mKHBf cGFybXMpKSA8IDAgKQorICAgIGlmICggeGNfdmVyc2lvbihzZWxmLT54Y19oYW5kbGUsIFhFTlZF Ul9wbGF0Zm9ybV9wYXJhbWV0ZXJzLCAmcF9wYXJtcykgIT0gMCApCiAgICAgICAgIHJldHVybiBw eXhjX2Vycm9yX3RvX2V4Y2VwdGlvbihzZWxmLT54Y19oYW5kbGUpOwogCi0gICAgaWYgKCB4Y192 ZXJzaW9uKHNlbGYtPnhjX2hhbmRsZSwgWEVOX1ZFUlNJT05fY29tbWFuZGxpbmUsCi0gICAgICAg ICAgICAgICAgICAgICZ4ZW5fY29tbWFuZGxpbmUsIHNpemVvZih4ZW5fY29tbWFuZGxpbmUpKSA8 IDAgKQorICAgIGlmICggeGNfdmVyc2lvbihzZWxmLT54Y19oYW5kbGUsIFhFTlZFUl9jb21tYW5k bGluZSwgJnhlbl9jb21tYW5kbGluZSkgIT0gMCApCiAgICAgICAgIHJldHVybiBweXhjX2Vycm9y X3RvX2V4Y2VwdGlvbihzZWxmLT54Y19oYW5kbGUpOwogCiAgICAgc25wcmludGYoc3RyLCBzaXpl b2Yoc3RyKSwgInZpcnRfc3RhcnQ9MHglIlBSSV94ZW5fdWxvbmcsIHBfcGFybXMudmlydF9zdGFy dCk7CiAKLSAgICBpZiAoIHhjX3ZlcnNpb24oc2VsZi0+eGNfaGFuZGxlLCBYRU5fVkVSU0lPTl9w YWdlc2l6ZSwgJnhlbl9wYWdlc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHhlbl9w YWdlc2l6ZSkpIDwgMCApCisgICAgeGVuX3BhZ2VzaXplID0geGNfdmVyc2lvbihzZWxmLT54Y19o YW5kbGUsIFhFTlZFUl9wYWdlc2l6ZSwgTlVMTCk7CisgICAgaWYgKHhlbl9wYWdlc2l6ZSA8IDAg KQogICAgICAgICByZXR1cm4gcHl4Y19lcnJvcl90b19leGNlcHRpb24oc2VsZi0+eGNfaGFuZGxl KTsKIAogICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCJ7czppLHM6aSxzOnMsczpzLHM6aSxzOnMs czpzLHM6cyxzOnMsczpzLHM6cyxzOnN9IiwKZGlmZiAtLWdpdCBhL3Rvb2xzL3hlbnN0YXQvbGli eGVuc3RhdC9zcmMveGVuc3RhdC5jIGIvdG9vbHMveGVuc3RhdC9saWJ4ZW5zdGF0L3NyYy94ZW5z dGF0LmMKaW5kZXggZWZiNjhiNS4uMzQ5NWYzZiAxMDA2NDQKLS0tIGEvdG9vbHMveGVuc3RhdC9s aWJ4ZW5zdGF0L3NyYy94ZW5zdGF0LmMKKysrIGIvdG9vbHMveGVuc3RhdC9saWJ4ZW5zdGF0L3Ny Yy94ZW5zdGF0LmMKQEAgLTYyMSwxOCArNjIxLDIwIEBAIHVuc2lnbmVkIGxvbmcgbG9uZyB4ZW5z dGF0X25ldHdvcmtfdGRyb3AoeGVuc3RhdF9uZXR3b3JrICogbmV0d29yaykKIC8qIENvbGxlY3Qg WGVuIHZlcnNpb24gaW5mb3JtYXRpb24gKi8KIHN0YXRpYyBpbnQgeGVuc3RhdF9jb2xsZWN0X3hl bl92ZXJzaW9uKHhlbnN0YXRfbm9kZSAqIG5vZGUpCiB7Ci0JeGVuX3ZlcnNpb25fb3BfdmFsX3Qg dm51bSA9IDA7CisJbG9uZyB2bnVtID0gMDsKIAl4ZW5fZXh0cmF2ZXJzaW9uX3QgdmVyc2lvbjsK IAogCS8qIENvbGxlY3QgWGVuIHZlcnNpb24gaW5mb3JtYXRpb24gaWYgbm90IGFscmVhZHkgY29s bGVjdGVkICovCiAJaWYgKG5vZGUtPmhhbmRsZS0+eGVuX3ZlcnNpb25bMF0gPT0gJ1wwJykgewog CQkvKiBHZXQgdGhlIFhlbiB2ZXJzaW9uIG51bWJlciBhbmQgZXh0cmF2ZXJzaW9uIHN0cmluZyAq LwotCQlpZiAoeGNfdmVyc2lvbihub2RlLT5oYW5kbGUtPnhjX2hhbmRsZSwKLQkJCSAgICAgICBY RU5fVkVSU0lPTl92ZXJzaW9uLCAmdm51bSwgc2l6ZW9mKHZudW0pKSA8IDApCisJCXZudW0gPSB4 Y192ZXJzaW9uKG5vZGUtPmhhbmRsZS0+eGNfaGFuZGxlLAorCQkJWEVOVkVSX3ZlcnNpb24sIE5V TEwpOworCisJCWlmICh2bnVtIDwgMCkKIAkJCXJldHVybiAwOwogCi0JCWlmICh4Y192ZXJzaW9u KG5vZGUtPmhhbmRsZS0+eGNfaGFuZGxlLCBYRU5fVkVSU0lPTl9leHRyYXZlcnNpb24sCi0JCQkg ICAgICAgJnZlcnNpb24sIHNpemVvZih2ZXJzaW9uKSkgPCAwKQorCQlpZiAoeGNfdmVyc2lvbihu b2RlLT5oYW5kbGUtPnhjX2hhbmRsZSwgWEVOVkVSX2V4dHJhdmVyc2lvbiwKKwkJCSZ2ZXJzaW9u KSA8IDApCiAJCQlyZXR1cm4gMDsKIAkJLyogRm9ybWF0IHRoZSB2ZXJzaW9uIGluZm9ybWF0aW9u IGFzIGEgc3RyaW5nIGFuZCBzdG9yZSBpdCAqLwogCQlzbnByaW50Zihub2RlLT5oYW5kbGUtPnhl bl92ZXJzaW9uLCBWRVJTSU9OX1NJWkUsICIlbGQuJWxkJXMiLApkaWZmIC0tZ2l0IGEvdG9vbHMv eGVudHJhY2UveGVuY3R4LmMgYi90b29scy94ZW50cmFjZS94ZW5jdHguYwppbmRleCBjZDI4MGZj Li5lNjQ3MTc5IDEwMDY0NAotLS0gYS90b29scy94ZW50cmFjZS94ZW5jdHguYworKysgYi90b29s cy94ZW50cmFjZS94ZW5jdHguYwpAQCAtMTAwMCw4ICsxMDAwLDcgQEAgc3RhdGljIHZvaWQgZHVt cF9jdHgoaW50IHZjcHUpCiAgICAgICAgICAgICBndWVzdF93b3JkX3NpemUgPSAoY3B1Y3R4Lm1z cl9lZmVyICYgMHg0MDApID8gOCA6CiAgICAgICAgICAgICAgICAgZ3Vlc3RfcHJvdGVjdGVkX21v ZGUgPyA0IDogMjsKICAgICAgICAgICAgIC8qIEhWTSBndWVzdCBjb250ZXh0IHJlY29yZHMgYXJl IGFsd2F5cyBob3N0LXNpemVkICovCi0gICAgICAgICAgICBpZiAoeGNfdmVyc2lvbih4ZW5jdHgu eGNfaGFuZGxlLCBYRU5fVkVSU0lPTl9jYXBhYmlsaXRpZXMsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAmeGVuX2NhcHMsIHNpemVvZih4ZW5fY2FwcykpIDwgMCkgeworICAgICAgICAgICAg aWYgKHhjX3ZlcnNpb24oeGVuY3R4LnhjX2hhbmRsZSwgWEVOVkVSX2NhcGFiaWxpdGllcywgJnhl bl9jYXBzKSAhPSAwKSB7CiAgICAgICAgICAgICAgICAgcGVycm9yKCJ4Y192ZXJzaW9uIik7CiAg ICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQotLSAKMi41LjAKCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGlu ZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1k ZXZlbAo=