From: marko.makela Date: March 22 2011 12:45pm Subject: bzr push into mysql-5.5-innodb branch (marko.makela:3347 to 3350) Bug#11766305 List-Archive: http://lists.mysql.com/commits/133515 X-Bug: 11766305 Message-Id: <201103221245.p2MCjXMq023685@acsmt358.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1795587055==" --===============1795587055== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline IDMzNTAgTWFya28gTcOka2Vsw6QJMjAxMS0wMy0yMgogICAgICBCdWcjMTE3NjYzMDUgLSA1OTM5 MjogUmVtb3ZlIHRocjBsb2MuYyBhbmQgaWJ1Zl9pbnNpZGUoKSBbcGFydCAzXQogICAgICBSZW1v dmUgdGhlIHNsb3Rfbm8gbWVtYmVyIG9mIHN0cnVjdCB0aHJfbG9jYWxfc3RydWN0LgogICAgICAK ICAgICAgZW51bSBzcnZfdGhyZWFkX3R5cGU6IFJlbW92ZSB1bnVzZWQgdGhyZWFkIHR5cGVzLgog ICAgICBzcnZfZ2V0X3RocmVhZF90eXBlKCk6IFVudXNlZCBmdW5jdGlvbiwgcmVtb3ZlLgogICAg ICAKICAgICAgdGhyX2xvY2FsX2dldF9zbG90X25vKCksIHRocl9sb2NhbF9zZXRfc2xvdF9ubygp OiBSZW1vdmUuCiAgICAgIAogICAgICBzcnZfdGhyZWFkX3R5cGVfdmFsaWRhdGUoKSwgc3J2X3Ns b3RfZ2V0X3R5cGUoKTogTmV3IGZ1bmN0aW9ucywgZm9yIGRlYnVnZ2luZy4KICAgICAgCiAgICAg IHNydl90YWJsZV9yZXNlcnZlX3Nsb3QoKTogUmV0dXJuIHRoZSBzcnZfc2xvdF90KiBkaXJlY3Rs eS4gRG8gbm90IGNyZWF0ZQogICAgICB0aHJlYWQtbG9jYWwgc3RvcmFnZS4KICAgICAgCiAgICAg IHNydl9zdXNwZW5kX3RocmVhZCgpOiBHZXQgdGhlIHNydl9zbG90X3QqIGFzIHBhcmFtZXRlci4g UmV0dXJuIHZvaWQ7CiAgICAgIHRoZSBjYWxsZXIga25vd3Mgc2xvdC0+ZXZlbnQgYWxyZWFkeS4K ICAgICAgCiAgICAgIHNydl90aHJlYWRfaGFzX3Jlc2VydmVkX3Nsb3QoKSwgc3J2X3JlbGVhc2Vf dGhyZWFkcygpOiBBc3NlcnQKICAgICAgc3J2X3RocmVhZF90eXBlX3ZhbGlkYXRlKHR5cGUpLgog ICAgICAKICAgICAgc3J2X2luaXQoKTogVXNlIG1lbV96YWxsb2MoKSBpbnN0ZWFkIG9mIG1lbV9h bGxvYygpLiBSZXBsYWNlCiAgICAgIHNydl90YWJsZV9nZXRfbnRoX3Nsb3QoKSwgYmVjYXVzZSBp dCBub3cgYXNzZXJ0cyB0aGF0IHRoZSBrZXJuZWxfbXV0ZXgKICAgICAgaXMgYmVpbmcgaGVsZC4K ICAgICAgCiAgICAgIHNydl9tYXN0ZXJfdGhyZWFkKCksIHNydl9wdXJnZV90aHJlYWQoKTogUmVt ZW1iZXIgdGhlIHNsb3QgZnJvbQogICAgICBzcnZfdGFibGVfcmVzZXJ2ZV9zbG90KCkuCiAgICAg IAogICAgICByYjo2MjkgYXBwcm92ZWQgYnkgSW5hYW0gUmFuYQoKICAgIG1vZGlmaWVkOgogICAg ICBzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvc3J2MHNydi5oCiAgICAgIHN0b3JhZ2UvaW5ub2Jh c2UvaW5jbHVkZS90aHIwbG9jLmgKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9zcnYvc3J2MHNydi5j CiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvdGhyL3RocjBsb2MuYwogMzM0OSBNYXJrbyBNw6RrZWzD pAkyMDExLTAzLTIxCiAgICAgIEJ1ZyMxMTc2NjMwNSAtIDU5MzkyOiBSZW1vdmUgdGhyMGxvYy5j IGFuZCBpYnVmX2luc2lkZSgpIFtwYXJ0IDJdCiAgICAgIEFkZCBzb21lIGNvbnN0IHF1YWxpZmll cnMgdG8gYWNjZXNzb3IgYW5kIHZhbGlkYXRvciBmdW5jdGlvbnMuCiAgICAgIAogICAgICBidHJf cGN1cl9nZXRfdXBfbWF0Y2goKSwgYnRyX3BjdXJfZ2V0X2xvd19tYXRjaCgpOiBBZGQgY29uc3Qg cXVhbGlmaWVycy4KICAgICAgCiAgICAgIGJ0cl9wY3VyX2dldF9wYWdlKCksIGJ0cl9wY3VyX2dl dF9ibG9jaygpLCBidHJfcGN1cl9nZXRfcmVjKCksCiAgICAgIHJlY19nZXRfc3RhcnQoKSwgcmVj X2dldF9lbmQoKTogRGVmaW5lIGFzIGNvbnN0bmVzcy1wcmVzZXJ2aW5nIG1hY3Jvcy4KICAgICAg SW4gZGVidWcgYnVpbGRzLCBkaXNjYXJkIHRoZSBjb25zdCBxdWFsaWZpZXIuCiAgICAgIAogICAg ICBwYWdlX3JlY192YWxpZGF0ZSgpLCBwYWdlX3NpbXBsZV92YWxpZGF0ZV9vbGQoKSwgcGFnZV9z aW1wbGVfdmFsaWRhdGVfbmV3KCksCiAgICAgIHBhZ2VfZGlyX3Nsb3RfY2hlY2soKSwgcGFnZV92 YWxpZGF0ZSgpOiBBZGQgY29uc3QgcXVhbGlmaWVycy4KICAgICAgCiAgICAgIHJiOjYyNiBhcHBy b3ZlZCBieSBTdW5ueSBCYWlucwoKICAgIG1vZGlmaWVkOgogICAgICBzdG9yYWdlL2lubm9iYXNl L2luY2x1ZGUvYnRyMHBjdXIuaAogICAgICBzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvYnRyMHBj dXIuaWMKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3BhZ2UwcGFnZS5oCiAgICAgIHN0 b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9yZW0wcmVjLmgKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9p bmNsdWRlL3JlbTByZWMuaWMKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9wYWdlL3BhZ2UwcGFnZS5j CiAzMzQ4IE1hcmtvIE3DpGtlbMOkCTIwMTEtMDMtMjEKICAgICAgQnVnIzExNzY2MzA1IC0gNTkz OTI6IFJlbW92ZSB0aHIwbG9jLmMgYW5kIGlidWZfaW5zaWRlKCkgW3BhcnQgMV0KICAgICAgUmVt b3ZlIHVudXNlZCBtZW1iZXIgbXRyIGZyb20gYnRyX3BjdXJfc3RydWN0LgogICAgICAKICAgICAg cmI6NjI0IGFwcHJvdmVkIGJ5IFN1bm55IEJhaW5zCgogICAgbW9kaWZpZWQ6CiAgICAgIHN0b3Jh Z2UvaW5ub2Jhc2UvaW5jbHVkZS9idHIwcGN1ci5oCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaW5j bHVkZS9idHIwcGN1ci5pYwogMzM0NyBNYXJrbyBNw6RrZWzDpAkyMDExLTAzLTE1CiAgICAgIFJl bW92ZSB0cmFpbGluZyB3aGl0ZSBzcGFjZS4KCiAgICBtb2RpZmllZDoKICAgICAgc3RvcmFnZS9p bm5vYmFzZS9idWYvYnVmMGJ1Zi5jCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNl L2luY2x1ZGUvYnRyMHBjdXIuaCcKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2J0cjBw Y3VyLmgJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMTAzMTUxMzI0NTEtcGhkcjdy dHE1Z2NlNDk0NworKysgYi9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvYnRyMHBjdXIuaAlyZXZp ZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDMyMjExMzkxNi1vcmljdzAycWczdHp2aW04 CkBAIC0xNTAsNyArMTUwLDcgQEAgVU5JVl9JTkxJTkUKIHVsaW50CiBidHJfcGN1cl9nZXRfdXBf bWF0Y2goCiAvKj09PT09PT09PT09PT09PT09PSovCi0JYnRyX3BjdXJfdCoJY3Vyc29yKTsgLyoh PCBpbjogbWVtb3J5IGJ1ZmZlciBmb3IgcGVyc2lzdGVudCBjdXJzb3IgKi8KKwljb25zdCBidHJf cGN1cl90KgljdXJzb3IpOyAvKiE8IGluOiBwZXJzaXN0ZW50IGN1cnNvciAqLwogLyoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8q KgogR2V0cyB0aGUgbG93X21hdGNoIHZhbHVlIGZvciBhIHBjdXIgYWZ0ZXIgYSBzZWFyY2guCiBA cmV0dXJuIG51bWJlciBvZiBtYXRjaGVkIGZpZWxkcyBhdCB0aGUgY3Vyc29yIG9yIHRvIHRoZSBy aWdodCBpZgpAQCAtMTU5LDcgKzE1OSw3IEBAIFVOSVZfSU5MSU5FCiB1bGludAogYnRyX3BjdXJf Z2V0X2xvd19tYXRjaCgKIC8qPT09PT09PT09PT09PT09PT09PSovCi0JYnRyX3BjdXJfdCoJY3Vy c29yKTsgLyohPCBpbjogbWVtb3J5IGJ1ZmZlciBmb3IgcGVyc2lzdGVudCBjdXJzb3IgKi8KKwlj b25zdCBidHJfcGN1cl90KgljdXJzb3IpOyAvKiE8IGluOiBwZXJzaXN0ZW50IGN1cnNvciAqLwog LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqLy8qKgogSWYgbW9kZSBpcyBQQUdFX0NVUl9HIG9yIFBBR0VfQ1VSX0dFLCBvcGVucyBh IHBlcnNpc3RlbnQgY3Vyc29yIG9uIHRoZSBmaXJzdAogdXNlciByZWNvcmQgc2F0aXNmeWluZyB0 aGUgc2VhcmNoIGNvbmRpdGlvbiwgaW4gdGhlIGNhc2UgUEFHRV9DVVJfTCBvcgpAQCAtMjY0LDIy ICsyNjQsNiBAQCB1bGludAogYnRyX3BjdXJfZ2V0X3JlbF9wb3MoCiAvKj09PT09PT09PT09PT09 PT09Ki8KIAljb25zdCBidHJfcGN1cl90KgljdXJzb3IpOy8qITwgaW46IHBlcnNpc3RlbnQgY3Vy c29yICovCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqLy8qKgotU2V0cyB0aGUgbXRyIGZpZWxkIGZvciBhIHBjdXIuICovCi1VTklWX0lO TElORQotdm9pZAotYnRyX3BjdXJfc2V0X210cigKLS8qPT09PT09PT09PT09PSovCi0JYnRyX3Bj dXJfdCoJY3Vyc29yLAkvKiE8IGluOiBwZXJzaXN0ZW50IGN1cnNvciAqLwotCW10cl90KgkJbXRy KTsJLyohPCBpbiwgb3duOiBtdHIgKi8KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCi1HZXRzIHRoZSBtdHIgZmllbGQgZm9yIGEg cGN1ci4KLUByZXR1cm4JbXRyICovCi1VTklWX0lOTElORQotbXRyX3QqCi1idHJfcGN1cl9nZXRf bXRyKAotLyo9PT09PT09PT09PT09Ki8KLQlidHJfcGN1cl90KgljdXJzb3IpOwkvKiE8IGluOiBw ZXJzaXN0ZW50IGN1cnNvciAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogQ29tbWl0cyB0aGUgbXRyIGFuZCBzZXRz IHRoZSBwY3VyIGxhdGNoIG1vZGUgdG8gQlRSX05PX0xBVENIRVMsCiB0aGF0IGlzLCB0aGUgY3Vy c29yIGJlY29tZXMgZGV0YWNoZWQuIElmIHRoZXJlIGhhdmUgYmVlbiBtb2RpZmljYXRpb25zCkBA IC0zODcsMTAgKzM3MSw2IEBAIHBhZ2VfY3VyX3QqCiBidHJfcGN1cl9nZXRfcGFnZV9jdXIoCiAv Kj09PT09PT09PT09PT09PT09PSovCiAJY29uc3QgYnRyX3BjdXJfdCoJY3Vyc29yKTsJLyohPCBp bjogcGVyc2lzdGVudCBjdXJzb3IgKi8KLSNlbHNlIC8qIFVOSVZfREVCVUcgKi8KLSMgZGVmaW5l IGJ0cl9wY3VyX2dldF9idHJfY3VyKGN1cnNvcikgKCYoY3Vyc29yKS0+YnRyX2N1cikKLSMgZGVm aW5lIGJ0cl9wY3VyX2dldF9wYWdlX2N1cihjdXJzb3IpICgmKGN1cnNvciktPmJ0cl9jdXIucGFn ZV9jdXIpCi0jZW5kaWYgLyogVU5JVl9ERUJVRyAqLwogLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIFJldHVybnMgdGhlIHBhZ2Ug b2YgYSBwZXJzaXN0ZW50IGN1cnNvci4KIEByZXR1cm4JcG9pbnRlciB0byB0aGUgcGFnZSAqLwpA QCAtMzk4LDcgKzM3OCw3IEBAIFVOSVZfSU5MSU5FCiBwYWdlX3QqCiBidHJfcGN1cl9nZXRfcGFn ZSgKIC8qPT09PT09PT09PT09PT0qLwotCWJ0cl9wY3VyX3QqCWN1cnNvcik7LyohPCBpbjogcGVy c2lzdGVudCBjdXJzb3IgKi8KKwljb25zdCBidHJfcGN1cl90KgljdXJzb3IpOy8qITwgaW46IHBl cnNpc3RlbnQgY3Vyc29yICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLy8qKgogUmV0dXJucyB0aGUgYnVmZmVyIGJsb2NrIG9mIGEg cGVyc2lzdGVudCBjdXJzb3IuCiBAcmV0dXJuCXBvaW50ZXIgdG8gdGhlIGJsb2NrICovCkBAIC00 MDYsNyArMzg2LDcgQEAgVU5JVl9JTkxJTkUKIGJ1Zl9ibG9ja190KgogYnRyX3BjdXJfZ2V0X2Js b2NrKAogLyo9PT09PT09PT09PT09PT0qLwotCWJ0cl9wY3VyX3QqCWN1cnNvcik7LyohPCBpbjog cGVyc2lzdGVudCBjdXJzb3IgKi8KKwljb25zdCBidHJfcGN1cl90KgljdXJzb3IpOy8qITwgaW46 IHBlcnNpc3RlbnQgY3Vyc29yICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogUmV0dXJucyB0aGUgcmVjb3JkIG9mIGEgcGVy c2lzdGVudCBjdXJzb3IuCiBAcmV0dXJuCXBvaW50ZXIgdG8gdGhlIHJlY29yZCAqLwpAQCAtNDE0 LDcgKzM5NCwxNCBAQCBVTklWX0lOTElORQogcmVjX3QqCiBidHJfcGN1cl9nZXRfcmVjKAogLyo9 PT09PT09PT09PT09Ki8KLQlidHJfcGN1cl90KgljdXJzb3IpOy8qITwgaW46IHBlcnNpc3RlbnQg Y3Vyc29yICovCisJY29uc3QgYnRyX3BjdXJfdCoJY3Vyc29yKTsvKiE8IGluOiBwZXJzaXN0ZW50 IGN1cnNvciAqLworI2Vsc2UgLyogVU5JVl9ERUJVRyAqLworIyBkZWZpbmUgYnRyX3BjdXJfZ2V0 X2J0cl9jdXIoY3Vyc29yKSAoJihjdXJzb3IpLT5idHJfY3VyKQorIyBkZWZpbmUgYnRyX3BjdXJf Z2V0X3BhZ2VfY3VyKGN1cnNvcikgKCYoY3Vyc29yKS0+YnRyX2N1ci5wYWdlX2N1cikKKyMgZGVm aW5lIGJ0cl9wY3VyX2dldF9wYWdlKGN1cnNvcikgKChjdXJzb3IpLT5idHJfY3VyLnBhZ2VfY3Vy LmJsb2NrLT5mcmFtZSkKKyMgZGVmaW5lIGJ0cl9wY3VyX2dldF9ibG9jayhjdXJzb3IpICgoY3Vy c29yKS0+YnRyX2N1ci5wYWdlX2N1ci5ibG9jaykKKyMgZGVmaW5lIGJ0cl9wY3VyX2dldF9yZWMo Y3Vyc29yKSAoKGN1cnNvciktPmJ0cl9jdXIucGFnZV9jdXIucmVjKQorI2VuZGlmIC8qIFVOSVZf REVCVUcgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKiovLyoqCiBDaGVja3MgaWYgdGhlIHBlcnNpc3RlbnQgY3Vyc29yIGlzIG9uIGEg dXNlciByZWNvcmQuICovCiBVTklWX0lOTElORQpAQCAtNTE3LDkgKzUwNCw2IEBAIHN0cnVjdCBi dHJfcGN1cl9zdHJ1Y3R7CiAJLyogTk9URSB0aGF0IHRoZSBmb2xsb3dpbmcgZmllbGRzIG1heSBw b3NzZXNzIGR5bmFtaWNhbGx5IGFsbG9jYXRlZAogCW1lbW9yeSB3aGljaCBzaG91bGQgYmUgZnJl ZWQgaWYgbm90IG5lZWRlZCBhbnltb3JlISAqLwogCi0JbXRyX3QqCQltdHI7CQkvKiE8IE5VTEws IG9yIHRoaXMgZmllbGQgbWF5IGNvbnRhaW4KLQkJCQkJYSBtaW5pLXRyYW5zYWN0aW9uIHdoaWNo IGhvbGRzIHRoZQotCQkJCQlsYXRjaCBvbiB0aGUgY3Vyc29yIHBhZ2UgKi8KIAlieXRlKgkJb2xk X3JlY19idWY7CS8qITwgTlVMTCwgb3IgYSBkeW5hbWljYWxseSBhbGxvY2F0ZWQKIAkJCQkJYnVm ZmVyIGZvciBvbGRfcmVjICovCiAJdWxpbnQJCWJ1Zl9zaXplOwkvKiE8IG9sZF9yZWNfYnVmIHNp emUgaWYgb2xkX3JlY19idWYKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2lu Y2x1ZGUvYnRyMHBjdXIuaWMnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9idHIwcGN1 ci5pYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDMxNTEzMjQ1MS1waGRyN3J0 cTVnY2U0OTQ3CisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9idHIwcGN1ci5pYwlyZXZp ZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDMyMjExMzkxNi1vcmljdzAycWczdHp2aW04 CkBAIC00MiwzNCArNDIsNiBAQCBidHJfcGN1cl9nZXRfcmVsX3BvcygKIAlyZXR1cm4oY3Vyc29y LT5yZWxfcG9zKTsKIH0KIAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKi8vKioKLVNldHMgdGhlIG10ciBmaWVsZCBmb3IgYSBwY3VyLiAq LwotVU5JVl9JTkxJTkUKLXZvaWQKLWJ0cl9wY3VyX3NldF9tdHIoCi0vKj09PT09PT09PT09PT0q LwotCWJ0cl9wY3VyX3QqCWN1cnNvciwJLyohPCBpbjogcGVyc2lzdGVudCBjdXJzb3IgKi8KLQlt dHJfdCoJCW10cikJLyohPCBpbiwgb3duOiBtdHIgKi8KLXsKLQl1dF9hZChjdXJzb3IpOwotCi0J Y3Vyc29yLT5tdHIgPSBtdHI7Ci19Ci0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCi1HZXRzIHRoZSBtdHIgZmllbGQgZm9yIGEg cGN1ci4KLUByZXR1cm4JbXRyICovCi1VTklWX0lOTElORQotbXRyX3QqCi1idHJfcGN1cl9nZXRf bXRyKAotLyo9PT09PT09PT09PT09Ki8KLQlidHJfcGN1cl90KgljdXJzb3IpCS8qITwgaW46IHBl cnNpc3RlbnQgY3Vyc29yICovCi17Ci0JdXRfYWQoY3Vyc29yKTsKLQotCXJldHVybihjdXJzb3It Pm10cik7Ci19Ci0KICNpZmRlZiBVTklWX0RFQlVHCiAvKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogUmV0dXJucyB0aGUgYnRyIGN1 cnNvciBjb21wb25lbnQgb2YgYSBwZXJzaXN0ZW50IGN1cnNvci4KQEAgLTk1LDcgKzY3LDcgQEAg YnRyX3BjdXJfZ2V0X3BhZ2VfY3VyKAogewogCXJldHVybihidHJfY3VyX2dldF9wYWdlX2N1cihi dHJfcGN1cl9nZXRfYnRyX2N1cihjdXJzb3IpKSk7CiB9Ci0jZW5kaWYgLyogVU5JVl9ERUJVRyAq LworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqLy8qKgogUmV0dXJucyB0aGUgcGFnZSBvZiBhIHBlcnNpc3RlbnQgY3Vyc29yLgogQHJl dHVybglwb2ludGVyIHRvIHRoZSBwYWdlICovCkBAIC0xMDMsNyArNzUsNyBAQCBVTklWX0lOTElO RQogcGFnZV90KgogYnRyX3BjdXJfZ2V0X3BhZ2UoCiAvKj09PT09PT09PT09PT09Ki8KLQlidHJf cGN1cl90KgljdXJzb3IpCS8qITwgaW46IHBlcnNpc3RlbnQgY3Vyc29yICovCisJY29uc3QgYnRy X3BjdXJfdCoJY3Vyc29yKQkvKiE8IGluOiBwZXJzaXN0ZW50IGN1cnNvciAqLwogewogCXV0X2Fk KGN1cnNvci0+cG9zX3N0YXRlID09IEJUUl9QQ1VSX0lTX1BPU0lUSU9ORUQpOwogCkBAIC0xMTcs NyArODksNyBAQCBVTklWX0lOTElORQogYnVmX2Jsb2NrX3QqCiBidHJfcGN1cl9nZXRfYmxvY2so CiAvKj09PT09PT09PT09PT09PSovCi0JYnRyX3BjdXJfdCoJY3Vyc29yKQkvKiE8IGluOiBwZXJz aXN0ZW50IGN1cnNvciAqLworCWNvbnN0IGJ0cl9wY3VyX3QqCWN1cnNvcikJLyohPCBpbjogcGVy c2lzdGVudCBjdXJzb3IgKi8KIHsKIAl1dF9hZChjdXJzb3ItPnBvc19zdGF0ZSA9PSBCVFJfUENV Ul9JU19QT1NJVElPTkVEKTsKIApAQCAtMTMxLDEzICsxMDMsMTQgQEAgVU5JVl9JTkxJTkUKIHJl Y190KgogYnRyX3BjdXJfZ2V0X3JlYygKIC8qPT09PT09PT09PT09PSovCi0JYnRyX3BjdXJfdCoJ Y3Vyc29yKQkvKiE8IGluOiBwZXJzaXN0ZW50IGN1cnNvciAqLworCWNvbnN0IGJ0cl9wY3VyX3Qq CWN1cnNvcikJLyohPCBpbjogcGVyc2lzdGVudCBjdXJzb3IgKi8KIHsKIAl1dF9hZChjdXJzb3It PnBvc19zdGF0ZSA9PSBCVFJfUENVUl9JU19QT1NJVElPTkVEKTsKIAl1dF9hZChjdXJzb3ItPmxh dGNoX21vZGUgIT0gQlRSX05PX0xBVENIRVMpOwogCiAJcmV0dXJuKGJ0cl9jdXJfZ2V0X3JlYyhi dHJfcGN1cl9nZXRfYnRyX2N1cihjdXJzb3IpKSk7CiB9CisjZW5kaWYgLyogVU5JVl9ERUJVRyAq LwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKiovLyoqCiBHZXRzIHRoZSB1cF9tYXRjaCB2YWx1ZSBmb3IgYSBwY3VyIGFmdGVy IGEgc2VhcmNoLgpAQCAtMTQ3LDkgKzEyMCw5IEBAIFVOSVZfSU5MSU5FCiB1bGludAogYnRyX3Bj dXJfZ2V0X3VwX21hdGNoKAogLyo9PT09PT09PT09PT09PT09PT0qLwotCWJ0cl9wY3VyX3QqCWN1 cnNvcikgLyohPCBpbjogbWVtb3J5IGJ1ZmZlciBmb3IgcGVyc2lzdGVudCBjdXJzb3IgKi8KKwlj b25zdCBidHJfcGN1cl90KgljdXJzb3IpIC8qITwgaW46IHBlcnNpc3RlbnQgY3Vyc29yICovCiB7 Ci0JYnRyX2N1cl90KglidHJfY3Vyc29yOworCWNvbnN0IGJ0cl9jdXJfdCoJYnRyX2N1cnNvcjsK IAogCXV0X2FkKChjdXJzb3ItPnBvc19zdGF0ZSA9PSBCVFJfUENVUl9XQVNfUE9TSVRJT05FRCkK IAkgICAgICB8fCAoY3Vyc29yLT5wb3Nfc3RhdGUgPT0gQlRSX1BDVVJfSVNfUE9TSVRJT05FRCkp OwpAQCAtMTY5LDkgKzE0Miw5IEBAIFVOSVZfSU5MSU5FCiB1bGludAogYnRyX3BjdXJfZ2V0X2xv d19tYXRjaCgKIC8qPT09PT09PT09PT09PT09PT09PSovCi0JYnRyX3BjdXJfdCoJY3Vyc29yKSAv KiE8IGluOiBtZW1vcnkgYnVmZmVyIGZvciBwZXJzaXN0ZW50IGN1cnNvciAqLworCWNvbnN0IGJ0 cl9wY3VyX3QqCWN1cnNvcikgLyohPCBpbjogcGVyc2lzdGVudCBjdXJzb3IgKi8KIHsKLQlidHJf Y3VyX3QqCWJ0cl9jdXJzb3I7CisJY29uc3QgYnRyX2N1cl90KglidHJfY3Vyc29yOwogCiAJdXRf YWQoKGN1cnNvci0+cG9zX3N0YXRlID09IEJUUl9QQ1VSX1dBU19QT1NJVElPTkVEKQogCSAgICAg IHx8IChjdXJzb3ItPnBvc19zdGF0ZSA9PSBCVFJfUENVUl9JU19QT1NJVElPTkVEKSk7Cgo9PT0g bW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3BhZ2UwcGFnZS5oJwotLS0g YS9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvcGFnZTBwYWdlLmgJcmV2aWQ6bWFya28ubWFrZWxh QG9yYWNsZS5jb20tMjAxMTAzMTUxMzI0NTEtcGhkcjdydHE1Z2NlNDk0NworKysgYi9zdG9yYWdl L2lubm9iYXNlL2luY2x1ZGUvcGFnZTBwYWdlLmgJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5j b20tMjAxMTAzMjIxMTM5MTYtb3JpY3cwMnFnM3R6dmltOApAQCAtOTUyLDcgKzk1Miw3IEBAIFVO SVZfSU5URVJOCiBpYm9vbAogcGFnZV9yZWNfdmFsaWRhdGUoCiAvKj09PT09PT09PT09PT09Ki8K LQlyZWNfdCoJCXJlYywJLyohPCBpbjogcGh5c2ljYWwgcmVjb3JkICovCisJY29uc3QgcmVjX3Qq CXJlYywJLyohPCBpbjogcGh5c2ljYWwgcmVjb3JkICovCiAJY29uc3QgdWxpbnQqCW9mZnNldHMp Oy8qITwgaW46IGFycmF5IHJldHVybmVkIGJ5IHJlY19nZXRfb2Zmc2V0cygpICovCiAvKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ly8qKgogQ2hlY2tzIHRoYXQgdGhlIGZpcnN0IGRpcmVjdG9yeSBzbG90IHBvaW50cyB0byB0aGUg aW5maW11bSByZWNvcmQgYW5kCkBAIC05NzIsNyArOTcyLDcgQEAgVU5JVl9JTlRFUk4KIGlib29s CiBwYWdlX3NpbXBsZV92YWxpZGF0ZV9vbGQoCiAvKj09PT09PT09PT09PT09PT09PT09PSovCi0J cGFnZV90KglwYWdlKTsJLyohPCBpbjogb2xkLXN0eWxlIGluZGV4IHBhZ2UgKi8KKwljb25zdCBw YWdlX3QqCXBhZ2UpOwkvKiE8IGluOiBpbmRleCBwYWdlIGluIFJPV19GT1JNQVQ9UkVEVU5EQU5U ICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqLy8qKgogVGhpcyBmdW5jdGlvbiBjaGVja3MgdGhlIGNvbnNpc3RlbmN5IG9m IGFuIGluZGV4IHBhZ2Ugd2hlbiB3ZSBkbyBub3QKIGtub3cgdGhlIGluZGV4LiBUaGlzIGlzIGFs c28gcmVzaWxpZW50IHNvIHRoYXQgdGhpcyBzaG91bGQgbmV2ZXIgY3Jhc2gKQEAgLTk4Miw3ICs5 ODIsNyBAQCBVTklWX0lOVEVSTgogaWJvb2wKIHBhZ2Vfc2ltcGxlX3ZhbGlkYXRlX25ldygKIC8q PT09PT09PT09PT09PT09PT09PT09Ki8KLQlwYWdlX3QqCWJsb2NrKTsJLyohPCBpbjogbmV3LXN0 eWxlIGluZGV4IHBhZ2UgKi8KKwljb25zdCBwYWdlX3QqCXBhZ2UpOwkvKiE8IGluOiBpbmRleCBw YWdlIGluIFJPV19GT1JNQVQhPVJFRFVOREFOVCAqLwogLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIFRoaXMgZnVuY3Rp b24gY2hlY2tzIHRoZSBjb25zaXN0ZW5jeSBvZiBhbiBpbmRleCBwYWdlLgogQHJldHVybglUUlVF IGlmIG9rICovCkBAIC05OTAsNyArOTkwLDcgQEAgVU5JVl9JTlRFUk4KIGlib29sCiBwYWdlX3Zh bGlkYXRlKAogLyo9PT09PT09PT09Ki8KLQlwYWdlX3QqCQlwYWdlLAkvKiE8IGluOiBpbmRleCBw YWdlICovCisJY29uc3QgcGFnZV90KglwYWdlLAkvKiE8IGluOiBpbmRleCBwYWdlICovCiAJZGlj dF9pbmRleF90KglpbmRleCk7CS8qITwgaW46IGRhdGEgZGljdGlvbmFyeSBpbmRleCBjb250YWlu aW5nCiAJCQkJdGhlIHBhZ2UgcmVjb3JkIHR5cGUgZGVmaW5pdGlvbiAqLwogLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioK Cj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvcmVtMHJlYy5oJwot LS0gYS9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvcmVtMHJlYy5oCXJldmlkOm1hcmtvLm1ha2Vs YUBvcmFjbGUuY29tLTIwMTEwMzE1MTMyNDUxLXBoZHI3cnRxNWdjZTQ5NDcKKysrIGIvc3RvcmFn ZS9pbm5vYmFzZS9pbmNsdWRlL3JlbTByZWMuaAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNv bS0yMDExMDMyMjExMzkxNi1vcmljdzAycWczdHp2aW04CkBAIC02MDAsNiArNjAwLDcgQEAgdWxp bnQKIHJlY19vZmZzX3NpemUoCiAvKj09PT09PT09PT0qLwogCWNvbnN0IHVsaW50KglvZmZzZXRz KTsvKiE8IGluOiBhcnJheSByZXR1cm5lZCBieSByZWNfZ2V0X29mZnNldHMoKSAqLworI2lmZGVm IFVOSVZfREVCVUcKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqLy8qKgogUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIHN0YXJ0IG9mIHRo ZSByZWNvcmQuCiBAcmV0dXJuCXBvaW50ZXIgdG8gc3RhcnQgKi8KQEAgLTYwNyw3ICs2MDgsNyBA QCBVTklWX0lOTElORQogYnl0ZSoKIHJlY19nZXRfc3RhcnQoCiAvKj09PT09PT09PT0qLwotCXJl Y190KgkJcmVjLAkvKiE8IGluOiBwb2ludGVyIHRvIHJlY29yZCAqLworCWNvbnN0IHJlY190Kgly ZWMsCS8qITwgaW46IHBvaW50ZXIgdG8gcmVjb3JkICovCiAJY29uc3QgdWxpbnQqCW9mZnNldHMp Oy8qITwgaW46IGFycmF5IHJldHVybmVkIGJ5IHJlY19nZXRfb2Zmc2V0cygpICovCiAvKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioK IFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBlbmQgb2YgdGhlIHJlY29yZC4KQEAgLTYxNiw4ICs2 MTcsMTIgQEAgVU5JVl9JTkxJTkUKIGJ5dGUqCiByZWNfZ2V0X2VuZCgKIC8qPT09PT09PT0qLwot CXJlY190KgkJcmVjLAkvKiE8IGluOiBwb2ludGVyIHRvIHJlY29yZCAqLworCWNvbnN0IHJlY190 KglyZWMsCS8qITwgaW46IHBvaW50ZXIgdG8gcmVjb3JkICovCiAJY29uc3QgdWxpbnQqCW9mZnNl dHMpOy8qITwgaW46IGFycmF5IHJldHVybmVkIGJ5IHJlY19nZXRfb2Zmc2V0cygpICovCisjZWxz ZSAvKiBVTklWX0RFQlVHICovCisjIGRlZmluZSByZWNfZ2V0X3N0YXJ0KHJlYywgb2Zmc2V0cykg KChyZWMpIC0gcmVjX29mZnNfZXh0cmFfc2l6ZShvZmZzZXRzKSkKKyMgZGVmaW5lIHJlY19nZXRf ZW5kKHJlYywgb2Zmc2V0cykgKChyZWMpICsgcmVjX29mZnNfZGF0YV9zaXplKG9mZnNldHMpKQor I2VuZGlmIC8qIFVOSVZfREVCVUcgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBDb3BpZXMgYSBwaHlzaWNhbCBy ZWNvcmQgdG8gYSBidWZmZXIuCiBAcmV0dXJuCXBvaW50ZXIgdG8gdGhlIG9yaWdpbiBvZiB0aGUg Y29weSAqLwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9yZW0w cmVjLmljJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvcmVtMHJlYy5pYwlyZXZpZDpt YXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDMxNTEzMjQ1MS1waGRyN3J0cTVnY2U0OTQ3Cisr KyBiL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9yZW0wcmVjLmljCXJldmlkOm1hcmtvLm1ha2Vs YUBvcmFjbGUuY29tLTIwMTEwMzIyMTEzOTE2LW9yaWN3MDJxZzN0enZpbTgKQEAgLTE0NjIsNiAr MTQ2Miw3IEBAIHJlY19vZmZzX3NpemUoCiAJcmV0dXJuKHJlY19vZmZzX2RhdGFfc2l6ZShvZmZz ZXRzKSArIHJlY19vZmZzX2V4dHJhX3NpemUob2Zmc2V0cykpOwogfQogCisjaWZkZWYgVU5JVl9E RUJVRwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovLyoqCiBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgZW5kIG9mIHRoZSByZWNvcmQu CiBAcmV0dXJuCXBvaW50ZXIgdG8gZW5kICovCkBAIC0xNDY5LDExICsxNDcwLDExIEBAIFVOSVZf SU5MSU5FCiBieXRlKgogcmVjX2dldF9lbmQoCiAvKj09PT09PT09Ki8KLQlyZWNfdCoJCXJlYywJ LyohPCBpbjogcG9pbnRlciB0byByZWNvcmQgKi8KKwljb25zdCByZWNfdCoJcmVjLAkvKiE8IGlu OiBwb2ludGVyIHRvIHJlY29yZCAqLwogCWNvbnN0IHVsaW50KglvZmZzZXRzKS8qITwgaW46IGFy cmF5IHJldHVybmVkIGJ5IHJlY19nZXRfb2Zmc2V0cygpICovCiB7CiAJdXRfYWQocmVjX29mZnNf dmFsaWRhdGUocmVjLCBOVUxMLCBvZmZzZXRzKSk7Ci0JcmV0dXJuKHJlYyArIHJlY19vZmZzX2Rh dGFfc2l6ZShvZmZzZXRzKSk7CisJcmV0dXJuKChyZWNfdCopIHJlYyArIHJlY19vZmZzX2RhdGFf c2l6ZShvZmZzZXRzKSk7CiB9CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqLy8qKgpAQCAtMTQ4MywxMiArMTQ4NCwxMyBAQCBVTklW X0lOTElORQogYnl0ZSoKIHJlY19nZXRfc3RhcnQoCiAvKj09PT09PT09PT0qLwotCXJlY190KgkJ cmVjLAkvKiE8IGluOiBwb2ludGVyIHRvIHJlY29yZCAqLworCWNvbnN0IHJlY190KglyZWMsCS8q ITwgaW46IHBvaW50ZXIgdG8gcmVjb3JkICovCiAJY29uc3QgdWxpbnQqCW9mZnNldHMpLyohPCBp bjogYXJyYXkgcmV0dXJuZWQgYnkgcmVjX2dldF9vZmZzZXRzKCkgKi8KIHsKIAl1dF9hZChyZWNf b2Zmc192YWxpZGF0ZShyZWMsIE5VTEwsIG9mZnNldHMpKTsKLQlyZXR1cm4ocmVjIC0gcmVjX29m ZnNfZXh0cmFfc2l6ZShvZmZzZXRzKSk7CisJcmV0dXJuKChyZWNfdCopIHJlYyAtIHJlY19vZmZz X2V4dHJhX3NpemUob2Zmc2V0cykpOwogfQorI2VuZGlmIC8qIFVOSVZfREVCVUcgKi8KIAogLyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKi8vKioKIENvcGllcyBhIHBoeXNpY2FsIHJlY29yZCB0byBhIGJ1ZmZlci4KCj09PSBtb2Rp ZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvc3J2MHNydi5oJwotLS0gYS9zdG9y YWdlL2lubm9iYXNlL2luY2x1ZGUvc3J2MHNydi5oCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUu Y29tLTIwMTEwMzE1MTMyNDUxLXBoZHI3cnRxNWdjZTQ5NDcKKysrIGIvc3RvcmFnZS9pbm5vYmFz ZS9pbmNsdWRlL3NydjBzcnYuaAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDMy MjExMzkxNi1vcmljdzAycWczdHp2aW04CkBAIC00NDIsMTYgKzQ0Miw4IEBAIHR5cGVkZWYgZW51 bSBzcnZfc3RhdHNfbWV0aG9kX25hbWVfZW51bQogI2lmbmRlZiBVTklWX0hPVEJBQ0tVUAogLyoq IFR5cGVzIG9mIHRocmVhZHMgZXhpc3RpbmcgaW4gdGhlIHN5c3RlbS4gKi8KIGVudW0gc3J2X3Ro cmVhZF90eXBlIHsKLQlTUlZfQ09NID0gMSwJLyoqPCB0aHJlYWRzIHNlcnZpbmcgY29tbXVuaWNh dGlvbiBhbmQgcXVlcmllcyAqLwotCVNSVl9DT05TT0xFLAkvKio8IHRocmVhZCBzZXJ2aW5nIGNv bnNvbGUgKi8KLQlTUlZfV09SS0VSLAkvKio8IHRocmVhZHMgc2VydmluZyBwYXJhbGxlbGl6ZWQg cXVlcmllcyBhbmQKKwlTUlZfV09SS0VSID0gMCwJLyoqPCB0aHJlYWRzIHNlcnZpbmcgcGFyYWxs ZWxpemVkIHF1ZXJpZXMgYW5kCiAJCQlxdWVyaWVzIHJlbGVhc2VkIGZyb20gbG9jayB3YWl0ICov Ci0jaWYgMAotCS8qIFV0aWxpdHkgdGhyZWFkcyAqLwotCVNSVl9CVUZGRVIsCS8qKjwgdGhyZWFk IGZsdXNoaW5nIGRpcnR5IGJ1ZmZlciBibG9ja3MgKi8KLQlTUlZfUkVDT1ZFUlksCS8qKjwgdGhy ZWFkcyBmaW5pc2hpbmcgYSByZWNvdmVyeSAqLwotCVNSVl9JTlNFUlQsCS8qKjwgdGhyZWFkIGZs dXNoaW5nIHRoZSBpbnNlcnQgYnVmZmVyIHRvIGRpc2sgKi8KLSNlbmRpZgogCVNSVl9NQVNURVIJ LyoqPCB0aGUgbWFzdGVyIHRocmVhZCwgKHdob3NlIHR5cGUgbnVtYmVyIG11c3QKIAkJCWJlIGJp Z2dlc3QpICovCiB9OwpAQCAtNDkwLDEzICs0ODIsNiBAQCB1bGludAogc3J2X2dldF9uX3RocmVh ZHModm9pZCk7CiAvKj09PT09PT09PT09PT09PT09PT0qLwogLyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKLVJl dHVybnMgdGhlIGNhbGxpbmcgdGhyZWFkIHR5cGUuCi1AcmV0dXJuCVNSVl9DT00sIC4uLiAqLwot Ci1lbnVtIHNydl90aHJlYWRfdHlwZQotc3J2X2dldF90aHJlYWRfdHlwZSh2b2lkKTsKLS8qPT09 PT09PT09PT09PT09PT09PT09Ki8KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBDaGVjayB3aGV0aGVyIHRo cmVhZCB0eXBlIGhhcyByZXNlcnZlZCBhIHNsb3QuCiBAcmV0dXJuCXNsb3QgbnVtYmVyIG9yIFVO REVGSU5FRCBpZiBub3QgZm91bmQqLwogVU5JVl9JTlRFUk4KCj09PSBtb2RpZmllZCBmaWxlICdz dG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvdGhyMGxvYy5oJwotLS0gYS9zdG9yYWdlL2lubm9iYXNl L2luY2x1ZGUvdGhyMGxvYy5oCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTEwMzE1 MTMyNDUxLXBoZHI3cnRxNWdjZTQ5NDcKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3Ro cjBsb2MuaAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDMyMjExMzkxNi1vcmlj dzAycWczdHp2aW04CkBAIC01OSwyMiArNTksNiBAQCB0aHJfbG9jYWxfZnJlZSgKIC8qPT09PT09 PT09PT0qLwogCW9zX3RocmVhZF9pZF90CWlkKTsJLyohPCBpbjogdGhyZWFkIGlkICovCiAvKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKi8vKioKLUdldHMgdGhlIHNsb3QgbnVtYmVyIGluIHRoZSB0aHJlYWQgdGFibGUgb2Yg YSB0aHJlYWQuCi1AcmV0dXJuCXNsb3QgbnVtYmVyICovCi1VTklWX0lOVEVSTgotdWxpbnQKLXRo cl9sb2NhbF9nZXRfc2xvdF9ubygKLS8qPT09PT09PT09PT09PT09PT09Ki8KLQlvc190aHJlYWRf aWRfdAlpZCk7CS8qITwgaW46IHRocmVhZCBpZCBvZiB0aGUgdGhyZWFkICovCi0vKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ki8vKioKLVNldHMgaW4gdGhlIGxvY2FsIHN0b3JhZ2UgdGhlIHNsb3QgbnVtYmVyIGluIHRoZSB0 aHJlYWQgdGFibGUgb2YgYSB0aHJlYWQuICovCi1VTklWX0lOVEVSTgotdm9pZAotdGhyX2xvY2Fs X3NldF9zbG90X25vKAotLyo9PT09PT09PT09PT09PT09PT0qLwotCW9zX3RocmVhZF9pZF90CWlk LAkvKiE8IGluOiB0aHJlYWQgaWQgb2YgdGhlIHRocmVhZCAqLwotCXVsaW50CQlzbG90X25vKTsv KiE8IGluOiBzbG90IG51bWJlciAqLwotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBSZXR1cm5zIHBvaW50ZXIg dG8gdGhlICdpbl9pYnVmJyBmaWVsZCB3aXRoaW4gdGhlIGN1cnJlbnQgdGhyZWFkIGxvY2FsCiBz dG9yYWdlLgogQHJldHVybglwb2ludGVyIHRvIHRoZSBpbl9pYnVmIGZpZWxkICovCgo9PT0gbW9k aWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9wYWdlL3BhZ2UwcGFnZS5jJwotLS0gYS9zdG9y YWdlL2lubm9iYXNlL3BhZ2UvcGFnZTBwYWdlLmMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5j b20tMjAxMTAzMTUxMzI0NTEtcGhkcjdydHE1Z2NlNDk0NworKysgYi9zdG9yYWdlL2lubm9iYXNl L3BhZ2UvcGFnZTBwYWdlLmMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMTAzMjIx MTM5MTYtb3JpY3cwMnFnM3R6dmltOApAQCAtMTY2LDExICsxNjYsMTEgQEAgc3RhdGljCiBpYm9v bAogcGFnZV9kaXJfc2xvdF9jaGVjaygKIC8qPT09PT09PT09PT09PT09PSovCi0JcGFnZV9kaXJf c2xvdF90KglzbG90KQkvKiE8IGluOiBzbG90ICovCisJY29uc3QgcGFnZV9kaXJfc2xvdF90Kglz bG90KQkvKiE8IGluOiBzbG90ICovCiB7Ci0JcGFnZV90KglwYWdlOwotCXVsaW50CW5fc2xvdHM7 Ci0JdWxpbnQJbl9vd25lZDsKKwljb25zdCBwYWdlX3QqCXBhZ2U7CisJdWxpbnQJCW5fc2xvdHM7 CisJdWxpbnQJCW5fb3duZWQ7CiAKIAl1dF9hKHNsb3QpOwogCkBAIC0xODAzLDEyICsxODAzLDEy IEBAIFVOSVZfSU5URVJOCiBpYm9vbAogcGFnZV9yZWNfdmFsaWRhdGUoCiAvKj09PT09PT09PT09 PT09Ki8KLQlyZWNfdCoJCXJlYywJLyohPCBpbjogcGh5c2ljYWwgcmVjb3JkICovCisJY29uc3Qg cmVjX3QqCXJlYywJLyohPCBpbjogcGh5c2ljYWwgcmVjb3JkICovCiAJY29uc3QgdWxpbnQqCW9m ZnNldHMpLyohPCBpbjogYXJyYXkgcmV0dXJuZWQgYnkgcmVjX2dldF9vZmZzZXRzKCkgKi8KIHsK LQl1bGludAluX293bmVkOwotCXVsaW50CWhlYXBfbm87Ci0JcGFnZV90KglwYWdlOworCXVsaW50 CQluX293bmVkOworCXVsaW50CQloZWFwX25vOworCWNvbnN0IHBhZ2VfdCoJcGFnZTsKIAogCXBh Z2UgPSBwYWdlX2FsaWduKHJlYyk7CiAJdXRfYSghcGFnZV9pc19jb21wKHBhZ2UpID09ICFyZWNf b2Zmc19jb21wKG9mZnNldHMpKTsKQEAgLTE4ODksMTYgKzE4ODksMTYgQEAgVU5JVl9JTlRFUk4K IGlib29sCiBwYWdlX3NpbXBsZV92YWxpZGF0ZV9vbGQoCiAvKj09PT09PT09PT09PT09PT09PT09 PSovCi0JcGFnZV90KglwYWdlKQkvKiE8IGluOiBvbGQtc3R5bGUgaW5kZXggcGFnZSAqLworCWNv bnN0IHBhZ2VfdCoJcGFnZSkJLyohPCBpbjogaW5kZXggcGFnZSBpbiBST1dfRk9STUFUPVJFRFVO REFOVCAqLwogewotCXBhZ2VfZGlyX3Nsb3RfdCogc2xvdDsKLQl1bGludAkJc2xvdF9ubzsKLQl1 bGludAkJbl9zbG90czsKLQlyZWNfdCoJCXJlYzsKLQlieXRlKgkJcmVjX2hlYXBfdG9wOwotCXVs aW50CQljb3VudDsKLQl1bGludAkJb3duX2NvdW50OwotCWlib29sCQlyZXQJPSBGQUxTRTsKKwlj b25zdCBwYWdlX2Rpcl9zbG90X3QqCXNsb3Q7CisJdWxpbnQJCQlzbG90X25vOworCXVsaW50CQkJ bl9zbG90czsKKwljb25zdCByZWNfdCoJCXJlYzsKKwljb25zdCBieXRlKgkJcmVjX2hlYXBfdG9w OworCXVsaW50CQkJY291bnQ7CisJdWxpbnQJCQlvd25fY291bnQ7CisJaWJvb2wJCQlyZXQJPSBG QUxTRTsKIAogCXV0X2EoIXBhZ2VfaXNfY29tcChwYWdlKSk7CiAKQEAgLTIwMTEsNyArMjAxMSw3 IEBAIHBhZ2Vfc2ltcGxlX3ZhbGlkYXRlX29sZCgKIAkJCWdvdG8gZnVuY19leGl0OwogCQl9CiAK LQkJcmVjID0gcGFnZV9yZWNfZ2V0X25leHQocmVjKTsKKwkJcmVjID0gcGFnZV9yZWNfZ2V0X25l eHRfY29uc3QocmVjKTsKIAkJb3duX2NvdW50Kys7CiAJfQogCkBAIC0yMDcyLDcgKzIwNzIsNyBA QCBwYWdlX3NpbXBsZV92YWxpZGF0ZV9vbGQoCiAJCQlnb3RvIGZ1bmNfZXhpdDsKIAkJfQogCi0J CXJlYyA9IHBhZ2VfcmVjX2dldF9uZXh0KHJlYyk7CisJCXJlYyA9IHBhZ2VfcmVjX2dldF9uZXh0 X2NvbnN0KHJlYyk7CiAJfQogCiAJaWYgKFVOSVZfVU5MSUtFTFkocGFnZV9kaXJfZ2V0X25faGVh cChwYWdlKSAhPSBjb3VudCArIDEpKSB7CkBAIC0yMDk5LDE2ICsyMDk5LDE2IEBAIFVOSVZfSU5U RVJOCiBpYm9vbAogcGFnZV9zaW1wbGVfdmFsaWRhdGVfbmV3KAogLyo9PT09PT09PT09PT09PT09 PT09PT0qLwotCXBhZ2VfdCoJcGFnZSkJLyohPCBpbjogbmV3LXN0eWxlIGluZGV4IHBhZ2UgKi8K Kwljb25zdCBwYWdlX3QqCXBhZ2UpCS8qITwgaW46IGluZGV4IHBhZ2UgaW4gUk9XX0ZPUk1BVCE9 UkVEVU5EQU5UICovCiB7Ci0JcGFnZV9kaXJfc2xvdF90KiBzbG90OwotCXVsaW50CQlzbG90X25v OwotCXVsaW50CQluX3Nsb3RzOwotCXJlY190KgkJcmVjOwotCWJ5dGUqCQlyZWNfaGVhcF90b3A7 Ci0JdWxpbnQJCWNvdW50OwotCXVsaW50CQlvd25fY291bnQ7Ci0JaWJvb2wJCXJldAk9IEZBTFNF OworCWNvbnN0IHBhZ2VfZGlyX3Nsb3RfdCoJc2xvdDsKKwl1bGludAkJCXNsb3Rfbm87CisJdWxp bnQJCQluX3Nsb3RzOworCWNvbnN0IHJlY190KgkJcmVjOworCWNvbnN0IGJ5dGUqCQlyZWNfaGVh cF90b3A7CisJdWxpbnQJCQljb3VudDsKKwl1bGludAkJCW93bl9jb3VudDsKKwlpYm9vbAkJCXJl dAk9IEZBTFNFOwogCiAJdXRfYShwYWdlX2lzX2NvbXAocGFnZSkpOwogCkBAIC0yMjIxLDcgKzIy MjEsNyBAQCBwYWdlX3NpbXBsZV92YWxpZGF0ZV9uZXcoCiAJCQlnb3RvIGZ1bmNfZXhpdDsKIAkJ fQogCi0JCXJlYyA9IHBhZ2VfcmVjX2dldF9uZXh0KHJlYyk7CisJCXJlYyA9IHBhZ2VfcmVjX2dl dF9uZXh0X2NvbnN0KHJlYyk7CiAJCW93bl9jb3VudCsrOwogCX0KIApAQCAtMjI4Myw3ICsyMjgz LDcgQEAgcGFnZV9zaW1wbGVfdmFsaWRhdGVfbmV3KAogCQkJZ290byBmdW5jX2V4aXQ7CiAJCX0K IAotCQlyZWMgPSBwYWdlX3JlY19nZXRfbmV4dChyZWMpOworCQlyZWMgPSBwYWdlX3JlY19nZXRf bmV4dF9jb25zdChyZWMpOwogCX0KIAogCWlmIChVTklWX1VOTElLRUxZKHBhZ2VfZGlyX2dldF9u X2hlYXAocGFnZSkgIT0gY291bnQgKyAxKSkgewpAQCAtMjMwOCwyNiArMjMwOCwyNiBAQCBVTklW X0lOVEVSTgogaWJvb2wKIHBhZ2VfdmFsaWRhdGUoCiAvKj09PT09PT09PT0qLwotCXBhZ2VfdCoJ CXBhZ2UsCS8qITwgaW46IGluZGV4IHBhZ2UgKi8KKwljb25zdCBwYWdlX3QqCXBhZ2UsCS8qITwg aW46IGluZGV4IHBhZ2UgKi8KIAlkaWN0X2luZGV4X3QqCWluZGV4KQkvKiE8IGluOiBkYXRhIGRp Y3Rpb25hcnkgaW5kZXggY29udGFpbmluZwogCQkJCXRoZSBwYWdlIHJlY29yZCB0eXBlIGRlZmlu aXRpb24gKi8KIHsKLQlwYWdlX2Rpcl9zbG90X3Qqc2xvdDsKLQltZW1faGVhcF90KgloZWFwOwot CWJ5dGUqCQlidWY7Ci0JdWxpbnQJCWNvdW50OwotCXVsaW50CQlvd25fY291bnQ7Ci0JdWxpbnQJ CXJlY19vd25fY291bnQ7Ci0JdWxpbnQJCXNsb3Rfbm87Ci0JdWxpbnQJCWRhdGFfc2l6ZTsKLQly ZWNfdCoJCXJlYzsKLQlyZWNfdCoJCW9sZF9yZWMJCT0gTlVMTDsKLQl1bGludAkJb2ZmczsKLQl1 bGludAkJbl9zbG90czsKLQlpYm9vbAkJcmV0CQk9IEZBTFNFOwotCXVsaW50CQlpOwotCXVsaW50 KgkJb2Zmc2V0cwkJPSBOVUxMOwotCXVsaW50KgkJb2xkX29mZnNldHMJPSBOVUxMOworCWNvbnN0 IHBhZ2VfZGlyX3Nsb3RfdCoJc2xvdDsKKwltZW1faGVhcF90KgkJaGVhcDsKKwlieXRlKgkJCWJ1 ZjsKKwl1bGludAkJCWNvdW50OworCXVsaW50CQkJb3duX2NvdW50OworCXVsaW50CQkJcmVjX293 bl9jb3VudDsKKwl1bGludAkJCXNsb3Rfbm87CisJdWxpbnQJCQlkYXRhX3NpemU7CisJY29uc3Qg cmVjX3QqCQlyZWM7CisJY29uc3QgcmVjX3QqCQlvbGRfcmVjCQk9IE5VTEw7CisJdWxpbnQJCQlv ZmZzOworCXVsaW50CQkJbl9zbG90czsKKwlpYm9vbAkJCXJldAkJPSBGQUxTRTsKKwl1bGludAkJ CWk7CisJdWxpbnQqCQkJb2Zmc2V0cwkJPSBOVUxMOworCXVsaW50KgkJCW9sZF9vZmZzZXRzCT0g TlVMTDsKIAogCWlmIChVTklWX1VOTElLRUxZKChpYm9vbCkgISFwYWdlX2lzX2NvbXAocGFnZSkK IAkJCSAgIT0gZGljdF90YWJsZV9pc19jb21wKGluZGV4LT50YWJsZSkpKSB7CkBAIC0yNDgyLDcg KzI0ODIsNyBAQCBwYWdlX3ZhbGlkYXRlKAogCQljb3VudCsrOwogCQlvd25fY291bnQrKzsKIAkJ b2xkX3JlYyA9IHJlYzsKLQkJcmVjID0gcGFnZV9yZWNfZ2V0X25leHQocmVjKTsKKwkJcmVjID0g cGFnZV9yZWNfZ2V0X25leHRfY29uc3QocmVjKTsKIAogCQkvKiBzZXQgb2xkX29mZnNldHMgdG8g b2Zmc2V0czsgcmVjeWNsZSBvZmZzZXRzICovCiAJCXsKQEAgLTI1NTYsNyArMjU1Niw3IEBAIG5f b3duZWRfemVybzoKIAkJCWJ1ZltvZmZzICsgaV0gPSAxOwogCQl9CiAKLQkJcmVjID0gcGFnZV9y ZWNfZ2V0X25leHQocmVjKTsKKwkJcmVjID0gcGFnZV9yZWNfZ2V0X25leHRfY29uc3QocmVjKTsK IAl9CiAKIAlpZiAoVU5JVl9VTkxJS0VMWShwYWdlX2Rpcl9nZXRfbl9oZWFwKHBhZ2UpICE9IGNv dW50ICsgMSkpIHsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL3Nydi9zcnYw c3J2LmMnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2Uvc3J2L3NydjBzcnYuYwlyZXZpZDptYXJrby5t YWtlbGFAb3JhY2xlLmNvbS0yMDExMDMxNTEzMjQ1MS1waGRyN3J0cTVnY2U0OTQ3CisrKyBiL3N0 b3JhZ2UvaW5ub2Jhc2Uvc3J2L3NydjBzcnYuYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNv bS0yMDExMDMyMjExMzkxNi1vcmljdzAycWczdHp2aW04CkBAIC02OTAsNyArNjkwLDcgQEAgVW5p eC4qLwogc3RydWN0IHNydl9zbG90X3N0cnVjdHsKIAlvc190aHJlYWRfaWRfdAlpZDsJCS8qITwg dGhyZWFkIGlkICovCiAJb3NfdGhyZWFkX3QJaGFuZGxlOwkJLyohPCB0aHJlYWQgaGFuZGxlICov Ci0JdW5zaWduZWQJdHlwZTozOwkJLyohPCB0aHJlYWQgdHlwZTogdXNlciwgdXRpbGl0eSBldGMu ICovCisJdW5zaWduZWQJdHlwZToxOwkJLyohPCB0aHJlYWQgdHlwZTogdXNlciwgdXRpbGl0eSBl dGMuICovCiAJdW5zaWduZWQJaW5fdXNlOjE7CS8qITwgVFJVRSBpZiB0aGlzIHNsb3QgaXMgaW4g dXNlICovCiAJdW5zaWduZWQJc3VzcGVuZGVkOjE7CS8qITwgVFJVRSBpZiB0aGUgdGhyZWFkIGlz IHdhaXRpbmcKIAkJCQkJZm9yIHRoZSBldmVudCBvZiB0aGlzIHNsb3QgKi8KQEAgLTc5Nyw2ICs3 OTcsNyBAQCBzcnZfdGFibGVfZ2V0X250aF9zbG90KAogLyo9PT09PT09PT09PT09PT09PT09Ki8K IAl1bGludAlpbmRleCkJCS8qITwgaW46IGluZGV4IG9mIHRoZSBzbG90ICovCiB7CisJdXRfYWQo bXV0ZXhfb3duKCZrZXJuZWxfbXV0ZXgpKTsKIAl1dF9hKGluZGV4IDwgT1NfVEhSRUFEX01BWF9O KTsKIAogCXJldHVybihzcnZfc3lzLT50aHJlYWRzICsgaW5kZXgpOwpAQCAtODE1LDcgKzgxNiw3 IEBAIHNydl9nZXRfbl90aHJlYWRzKHZvaWQpCiAKIAltdXRleF9lbnRlcigma2VybmVsX211dGV4 KTsKIAotCWZvciAoaSA9IFNSVl9DT007IGkgPCBTUlZfTUFTVEVSICsgMTsgaSsrKSB7CisJZm9y IChpID0gMDsgaSA8IFNSVl9NQVNURVIgKyAxOyBpKyspIHsKIAogCQluX3RocmVhZHMgKz0gc3J2 X25fdGhyZWFkc1tpXTsKIAl9CkBAIC04MjUsMTMgKzgyNiw0NiBAQCBzcnZfZ2V0X25fdGhyZWFk cyh2b2lkKQogCXJldHVybihuX3RocmVhZHMpOwogfQogCisjaWZkZWYgVU5JVl9ERUJVRwogLyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKi8vKioKLVJlc2VydmVzIGEgc2xvdCBpbiB0aGUgdGhyZWFkIHRhYmxlIGZvciB0 aGUgY3VycmVudCB0aHJlYWQuIEFsc28gY3JlYXRlcyB0aGUKLXRocmVhZCBsb2NhbCBzdG9yYWdl IHN0cnVjdCBmb3IgdGhlIGN1cnJlbnQgdGhyZWFkLiBOT1RFISBUaGUgc2VydmVyIG11dGV4Ci1o YXMgdG8gYmUgcmVzZXJ2ZWQgYnkgdGhlIGNhbGxlciEKLUByZXR1cm4JcmVzZXJ2ZWQgc2xvdCBp bmRleCAqLworVmFsaWRhdGVzIHRoZSB0eXBlIG9mIGEgdGhyZWFkIHRhYmxlIHNsb3QuCitAcmV0 dXJuIFRSVUUgaWYgb2sgKi8KIHN0YXRpYwotdWxpbnQKK2lib29sCitzcnZfdGhyZWFkX3R5cGVf dmFsaWRhdGUoCisvKj09PT09PT09PT09PT09PT09PT09PSovCisJZW51bSBzcnZfdGhyZWFkX3R5 cGUJdHlwZSkJLyohPCBpbjogdGhyZWFkIHR5cGUgKi8KK3sKKwlzd2l0Y2ggKHR5cGUpIHsKKwlj YXNlIFNSVl9XT1JLRVI6CisJY2FzZSBTUlZfTUFTVEVSOgorCQlyZXR1cm4oVFJVRSk7CisJfQor CXV0X2Vycm9yOworCXJldHVybihGQUxTRSk7Cit9CisjZW5kaWYgLyogVU5JVl9ERUJVRyAqLwor CisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqLy8qKgorR2V0cyB0aGUgdHlwZSBvZiBhIHRocmVhZCB0YWJsZSBzbG90 LgorQHJldHVybiB0aHJlYWQgdHlwZSAqLworc3RhdGljCitlbnVtIHNydl90aHJlYWRfdHlwZQor c3J2X3Nsb3RfZ2V0X3R5cGUoCisvKj09PT09PT09PT09PT09Ki8KKwljb25zdCBzcnZfc2xvdF90 KglzbG90KQkvKiE8IGluOiB0aHJlYWQgc2xvdCAqLworeworCWVudW0gc3J2X3RocmVhZF90eXBl CXR5cGUJPSAoZW51bSBzcnZfdGhyZWFkX3R5cGUpIHNsb3QtPnR5cGU7CisJdXRfYWQoc3J2X3Ro cmVhZF90eXBlX3ZhbGlkYXRlKHR5cGUpKTsKKwlyZXR1cm4odHlwZSk7Cit9CisKKy8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKiovLyoqCitSZXNlcnZlcyBhIHNsb3QgaW4gdGhlIHRocmVhZCB0YWJsZSBmb3IgdGhlIGN1 cnJlbnQgdGhyZWFkLgorTk9URSEgVGhlIHNlcnZlciBtdXRleCBoYXMgdG8gYmUgcmVzZXJ2ZWQg YnkgdGhlIGNhbGxlciEKK0ByZXR1cm4JcmVzZXJ2ZWQgc2xvdCAqLworc3RhdGljCitzcnZfc2xv dF90Kgogc3J2X3RhYmxlX3Jlc2VydmVfc2xvdCgKIC8qPT09PT09PT09PT09PT09PT09PSovCiAJ ZW51bSBzcnZfdGhyZWFkX3R5cGUJdHlwZSkJLyohPCBpbjogdHlwZSBvZiB0aGUgdGhyZWFkICov CkBAIC04MzksOCArODczLDcgQEAgc3J2X3RhYmxlX3Jlc2VydmVfc2xvdCgKIAlzcnZfc2xvdF90 KglzbG90OwogCXVsaW50CQlpOwogCi0JdXRfYSh0eXBlID4gMCk7Ci0JdXRfYSh0eXBlIDw9IFNS Vl9NQVNURVIpOworCXV0X2FkKHNydl90aHJlYWRfdHlwZV92YWxpZGF0ZSh0eXBlKSk7CiAJdXRf YWQobXV0ZXhfb3duKCZrZXJuZWxfbXV0ZXgpKTsKIAogCWkgPSAwOwpAQCAtODUxLDUzICs4ODQs NDAgQEAgc3J2X3RhYmxlX3Jlc2VydmVfc2xvdCgKIAkJc2xvdCA9IHNydl90YWJsZV9nZXRfbnRo X3Nsb3QoaSk7CiAJfQogCi0JdXRfYShzbG90LT5pbl91c2UgPT0gRkFMU0UpOwotCiAJc2xvdC0+ aW5fdXNlID0gVFJVRTsKIAlzbG90LT5zdXNwZW5kZWQgPSBGQUxTRTsKIAlzbG90LT50eXBlID0g dHlwZTsKKwl1dF9hZChzcnZfc2xvdF9nZXRfdHlwZShzbG90KSA9PSB0eXBlKTsKIAlzbG90LT5p ZCA9IG9zX3RocmVhZF9nZXRfY3Vycl9pZCgpOwogCXNsb3QtPmhhbmRsZSA9IG9zX3RocmVhZF9n ZXRfY3VycigpOwogCi0JdGhyX2xvY2FsX2NyZWF0ZSgpOwotCi0JdGhyX2xvY2FsX3NldF9zbG90 X25vKG9zX3RocmVhZF9nZXRfY3Vycl9pZCgpLCBpKTsKLQotCXJldHVybihpKTsKKwlyZXR1cm4o c2xvdCk7CiB9CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBTdXNwZW5kcyB0aGUgY2FsbGluZyB0aHJl YWQgdG8gd2FpdCBmb3IgdGhlIGV2ZW50IGluIGl0cyB0aHJlYWQgc2xvdC4KLU5PVEUhIFRoZSBz ZXJ2ZXIgbXV0ZXggaGFzIHRvIGJlIHJlc2VydmVkIGJ5IHRoZSBjYWxsZXIhCi1AcmV0dXJuCWV2 ZW50IGZvciB0aGUgY2FsbGluZyB0aHJlYWQgdG8gd2FpdCAqLworTk9URSEgVGhlIHNlcnZlciBt dXRleCBoYXMgdG8gYmUgcmVzZXJ2ZWQgYnkgdGhlIGNhbGxlciEgKi8KIHN0YXRpYwotb3NfZXZl bnRfdAotc3J2X3N1c3BlbmRfdGhyZWFkKHZvaWQpCi0vKj09PT09PT09PT09PT09PT09PT09Ki8K K3ZvaWQKK3Nydl9zdXNwZW5kX3RocmVhZCgKKy8qPT09PT09PT09PT09PT09Ki8KKwlzcnZfc2xv dF90KglzbG90KQkvKiE8IGluL291dDogdGhyZWFkIHNsb3QgKi8KIHsKLQlzcnZfc2xvdF90KgkJ c2xvdDsKLQlvc19ldmVudF90CQlldmVudDsKLQl1bGludAkJCXNsb3Rfbm87CiAJZW51bSBzcnZf dGhyZWFkX3R5cGUJdHlwZTsKIAogCXV0X2FkKG11dGV4X293bigma2VybmVsX211dGV4KSk7Ci0K LQlzbG90X25vID0gdGhyX2xvY2FsX2dldF9zbG90X25vKG9zX3RocmVhZF9nZXRfY3Vycl9pZCgp KTsKKwl1dF9hZChzbG90LT5pbl91c2UpOworCXV0X2FkKCFzbG90LT5zdXNwZW5kZWQpOworCXV0 X2FkKHNsb3QtPmlkID09IG9zX3RocmVhZF9nZXRfY3Vycl9pZCgpKTsKIAogCWlmIChzcnZfcHJp bnRfdGhyZWFkX3JlbGVhc2VzKSB7CiAJCWZwcmludGYoc3RkZXJyLAogCQkJIlN1c3BlbmRpbmcg dGhyZWFkICVsdSB0byBzbG90ICVsdVxuIiwKLQkJCSh1bG9uZykgb3NfdGhyZWFkX2dldF9jdXJy X2lkKCksICh1bG9uZykgc2xvdF9ubyk7CisJCQkodWxvbmcpIG9zX3RocmVhZF9nZXRfY3Vycl9p ZCgpLAorCQkJKHVsb25nKSAoc2xvdCAtIHNydl9zeXMtPnRocmVhZHMpKTsKIAl9CiAKLQlzbG90 ID0gc3J2X3RhYmxlX2dldF9udGhfc2xvdChzbG90X25vKTsKLQotCXR5cGUgPSBzbG90LT50eXBl OwotCi0JdXRfYWQodHlwZSA+PSBTUlZfV09SS0VSKTsKLQl1dF9hZCh0eXBlIDw9IFNSVl9NQVNU RVIpOwotCi0JZXZlbnQgPSBzbG90LT5ldmVudDsKKwl0eXBlID0gc3J2X3Nsb3RfZ2V0X3R5cGUo c2xvdCk7CiAKIAlzbG90LT5zdXNwZW5kZWQgPSBUUlVFOwogCkBAIC05MDUsOSArOTI1LDcgQEAg c3J2X3N1c3BlbmRfdGhyZWFkKHZvaWQpCiAKIAlzcnZfbl90aHJlYWRzX2FjdGl2ZVt0eXBlXS0t OwogCi0Jb3NfZXZlbnRfcmVzZXQoZXZlbnQpOwotCi0JcmV0dXJuKGV2ZW50KTsKKwlvc19ldmVu dF9yZXNldChzbG90LT5ldmVudCk7CiB9CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCkBAIC05MjYsOCAr OTQ0LDcgQEAgc3J2X3JlbGVhc2VfdGhyZWFkcygKIAl1bGludAkJaTsKIAl1bGludAkJY291bnQJ PSAwOwogCi0JdXRfYWQodHlwZSA+PSBTUlZfV09SS0VSKTsKLQl1dF9hZCh0eXBlIDw9IFNSVl9N QVNURVIpOworCXV0X2FkKHNydl90aHJlYWRfdHlwZV92YWxpZGF0ZSh0eXBlKSk7CiAJdXRfYWQo biA+IDApOwogCXV0X2FkKG11dGV4X293bigma2VybmVsX211dGV4KSk7CiAKQEAgLTkzNSw3ICs5 NTIsOCBAQCBzcnZfcmVsZWFzZV90aHJlYWRzKAogCiAJCXNsb3QgPSBzcnZfdGFibGVfZ2V0X250 aF9zbG90KGkpOwogCi0JCWlmIChzbG90LT5pbl91c2UgJiYgc2xvdC0+dHlwZSA9PSB0eXBlICYm IHNsb3QtPnN1c3BlbmRlZCkgeworCQlpZiAoc2xvdC0+aW5fdXNlICYmIHNsb3QtPnN1c3BlbmRl ZAorCQkgICAgJiYgc3J2X3Nsb3RfZ2V0X3R5cGUoc2xvdCkgPT0gdHlwZSkgewogCiAJCQlzbG90 LT5zdXNwZW5kZWQgPSBGQUxTRTsKIApAQCAtOTYzLDM0ICs5ODEsNiBAQCBzcnZfcmVsZWFzZV90 aHJlYWRzKAogfQogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgotUmV0dXJucyB0aGUgY2FsbGluZyB0aHJl YWQgdHlwZS4KLUByZXR1cm4JU1JWX0NPTSwgLi4uICovCi1VTklWX0lOVEVSTgotZW51bSBzcnZf dGhyZWFkX3R5cGUKLXNydl9nZXRfdGhyZWFkX3R5cGUodm9pZCkKLS8qPT09PT09PT09PT09PT09 PT09PT09Ki8KLXsKLQl1bGludAkJCXNsb3Rfbm87Ci0Jc3J2X3Nsb3RfdCoJCXNsb3Q7Ci0JZW51 bSBzcnZfdGhyZWFkX3R5cGUJdHlwZTsKLQotCW11dGV4X2VudGVyKCZrZXJuZWxfbXV0ZXgpOwot Ci0Jc2xvdF9ubyA9IHRocl9sb2NhbF9nZXRfc2xvdF9ubyhvc190aHJlYWRfZ2V0X2N1cnJfaWQo KSk7Ci0KLQlzbG90ID0gc3J2X3RhYmxlX2dldF9udGhfc2xvdChzbG90X25vKTsKLQotCXR5cGUg PSBzbG90LT50eXBlOwotCi0JdXRfYWQodHlwZSA+PSBTUlZfV09SS0VSKTsKLQl1dF9hZCh0eXBl IDw9IFNSVl9NQVNURVIpOwotCi0JbXV0ZXhfZXhpdCgma2VybmVsX211dGV4KTsKLQotCXJldHVy bih0eXBlKTsKLX0KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIENoZWNrIHdoZXRoZXIgdGhyZWFkIHR5 cGUgaGFzIHJlc2VydmVkIGEgc2xvdC4gUmV0dXJuIHRoZSBmaXJzdCBzbG90IHRoYXQKIGlzIGZv dW5kLiBUaGlzIHdvcmtzIGJlY2F1c2Ugd2UgY3VycmVudGx5IGhhdmUgb25seSAxIHRocmVhZCBv ZiBlYWNoIHR5cGUuCiBAcmV0dXJuCXNsb3QgbnVtYmVyIG9yIFVMSU5UX1VOREVGSU5FRCBpZiBu b3QgZm91bmQqLwpAQCAtMTAwMyw2ICs5OTMsNyBAQCBzcnZfdGhyZWFkX2hhc19yZXNlcnZlZF9z bG90KAogCXVsaW50CQkJaTsKIAl1bGludAkJCXNsb3Rfbm8gPSBVTElOVF9VTkRFRklORUQ7CiAK Kwl1dF9hZChzcnZfdGhyZWFkX3R5cGVfdmFsaWRhdGUodHlwZSkpOwogCW11dGV4X2VudGVyKCZr ZXJuZWxfbXV0ZXgpOwogCiAJZm9yIChpID0gMDsgaSA8IE9TX1RIUkVBRF9NQVhfTjsgaSsrKSB7 CkBAIC0xMDQwLDIyICsxMDMxLDE4IEBAIHNydl9pbml0KHZvaWQpCiAJbXV0ZXhfY3JlYXRlKHNy dl9pbm5vZGJfbW9uaXRvcl9tdXRleF9rZXksCiAJCSAgICAgJnNydl9pbm5vZGJfbW9uaXRvcl9t dXRleCwgU1lOQ19OT19PUkRFUl9DSEVDSyk7CiAKLQlzcnZfc3lzLT50aHJlYWRzID0gbWVtX2Fs bG9jKE9TX1RIUkVBRF9NQVhfTiAqIHNpemVvZihzcnZfc2xvdF90KSk7CisJc3J2X3N5cy0+dGhy ZWFkcyA9IG1lbV96YWxsb2MoT1NfVEhSRUFEX01BWF9OICogc2l6ZW9mKHNydl9zbG90X3QpKTsK IAogCWZvciAoaSA9IDA7IGkgPCBPU19USFJFQURfTUFYX047IGkrKykgewotCQlzbG90ID0gc3J2 X3RhYmxlX2dldF9udGhfc2xvdChpKTsKLQkJc2xvdC0+aW5fdXNlID0gRkFMU0U7Ci0JCXNsb3Qt PnR5cGU9MDsJLyogQXZvaWQgcHVyaWZ5IGVycm9ycyAqLworCQlzbG90ID0gc3J2X3N5cy0+dGhy ZWFkcyArIGk7CiAJCXNsb3QtPmV2ZW50ID0gb3NfZXZlbnRfY3JlYXRlKE5VTEwpOwogCQl1dF9h KHNsb3QtPmV2ZW50KTsKIAl9CiAKLQlzcnZfbXlzcWxfdGFibGUgPSBtZW1fYWxsb2MoT1NfVEhS RUFEX01BWF9OICogc2l6ZW9mKHNydl9zbG90X3QpKTsKKwlzcnZfbXlzcWxfdGFibGUgPSBtZW1f emFsbG9jKE9TX1RIUkVBRF9NQVhfTiAqIHNpemVvZihzcnZfc2xvdF90KSk7CiAKIAlmb3IgKGkg PSAwOyBpIDwgT1NfVEhSRUFEX01BWF9OOyBpKyspIHsKIAkJc2xvdCA9IHNydl9teXNxbF90YWJs ZSArIGk7Ci0JCXNsb3QtPmluX3VzZSA9IEZBTFNFOwotCQlzbG90LT50eXBlID0gMDsKIAkJc2xv dC0+ZXZlbnQgPSBvc19ldmVudF9jcmVhdGUoTlVMTCk7CiAJCXV0X2Eoc2xvdC0+ZXZlbnQpOwog CX0KQEAgLTE1MDEsNyArMTQ4OCw3IEBAIHNydl90YWJsZV9yZXNlcnZlX3Nsb3RfZm9yX215c3Fs KHZvaWQpCiAJd2hpbGUgKHNsb3QtPmluX3VzZSkgewogCQlpKys7CiAKLQkJaWYgKGkgPj0gT1Nf VEhSRUFEX01BWF9OKSB7CisJCWlmIChVTklWX1VOTElLRUxZKGkgPj0gT1NfVEhSRUFEX01BWF9O KSkgewogCiAJCQl1dF9wcmludF90aW1lc3RhbXAoc3RkZXJyKTsKIApAQCAtMjQ4OSw3ICsyNDc2 LDcgQEAgc3J2X2lzX2FueV9iYWNrZ3JvdW5kX3RocmVhZF9hY3RpdmUodm9pZAogCiAJbXV0ZXhf ZW50ZXIoJmtlcm5lbF9tdXRleCk7CiAKLQlmb3IgKGkgPSBTUlZfQ09NOyBpIDw9IFNSVl9NQVNU RVI7ICsraSkgeworCWZvciAoaSA9IDA7IGkgPD0gU1JWX01BU1RFUjsgKytpKSB7CiAJCWlmIChz cnZfbl90aHJlYWRzX2FjdGl2ZVtpXSAhPSAwKSB7CiAJCQlyZXQgPSBUUlVFOwogCQkJYnJlYWs7 CkBAIC0yNjQzLDcgKzI2MzAsNyBAQCBzcnZfbWFzdGVyX3RocmVhZCgKIAkJCW9zX3RocmVhZF9j cmVhdGUgKi8KIHsKIAlidWZfcG9vbF9zdGF0X3QgYnVmX3N0YXQ7Ci0Jb3NfZXZlbnRfdAlldmVu dDsKKwlzcnZfc2xvdF90KglzbG90OwogCXVsaW50CQlvbGRfYWN0aXZpdHlfY291bnQ7CiAJdWxp bnQJCW5fcGFnZXNfcHVyZ2VkCT0gMDsKIAl1bGludAkJbl9ieXRlc19tZXJnZWQ7CkBAIC0yNjcx LDcgKzI2NTgsNyBAQCBzcnZfbWFzdGVyX3RocmVhZCgKIAogCW11dGV4X2VudGVyKCZrZXJuZWxf bXV0ZXgpOwogCi0Jc3J2X3RhYmxlX3Jlc2VydmVfc2xvdChTUlZfTUFTVEVSKTsKKwlzbG90ID0g c3J2X3RhYmxlX3Jlc2VydmVfc2xvdChTUlZfTUFTVEVSKTsKIAogCXNydl9uX3RocmVhZHNfYWN0 aXZlW1NSVl9NQVNURVJdKys7CiAKQEAgLTMwNjAsNyArMzA0Nyw3IEBAIHN1c3BlbmRfdGhyZWFk OgogCQlnb3RvIGxvb3A7CiAJfQogCi0JZXZlbnQgPSBzcnZfc3VzcGVuZF90aHJlYWQoKTsKKwlz cnZfc3VzcGVuZF90aHJlYWQoc2xvdCk7CiAKIAltdXRleF9leGl0KCZrZXJuZWxfbXV0ZXgpOwog CkBAIC0zMDcwLDcgKzMwNTcsNyBAQCBzdXNwZW5kX3RocmVhZDoKIAltYW51YWwgYWxzbyBtZW50 aW9ucyB0aGlzIHN0cmluZyBpbiBzZXZlcmFsIHBsYWNlcy4gKi8KIAlzcnZfbWFpbl90aHJlYWRf b3BfaW5mbyA9ICJ3YWl0aW5nIGZvciBzZXJ2ZXIgYWN0aXZpdHkiOwogCi0Jb3NfZXZlbnRfd2Fp dChldmVudCk7CisJb3NfZXZlbnRfd2FpdChzbG90LT5ldmVudCk7CiAKIAlpZiAoc3J2X3NodXRk b3duX3N0YXRlID09IFNSVl9TSFVURE9XTl9FWElUX1RIUkVBRFMpIHsKIAkJLyogVGhpcyBpcyBv bmx5IGV4dHJhIHNhZmV0eSwgdGhlIHRocmVhZCBzaG91bGQgZXhpdApAQCAtMzEwMCw3ICszMDg3 LDYgQEAgc3J2X3B1cmdlX3RocmVhZCgKIHsKIAlzcnZfc2xvdF90KglzbG90OwogCXVsaW50CQly ZXRyaWVzID0gMDsKLQl1bGludAkJc2xvdF9ubyA9IFVMSU5UX1VOREVGSU5FRDsKIAl1bGludAkJ bl90b3RhbF9wdXJnZWQgPSBVTElOVF9VTkRFRklORUQ7CiAKIAl1dF9hKHNydl9uX3B1cmdlX3Ro cmVhZHMgPT0gMSk7CkBAIC0zMTE2LDkgKzMxMDIsNyBAQCBzcnZfcHVyZ2VfdGhyZWFkKAogCiAJ bXV0ZXhfZW50ZXIoJmtlcm5lbF9tdXRleCk7CiAKLQlzbG90X25vID0gc3J2X3RhYmxlX3Jlc2Vy dmVfc2xvdChTUlZfV09SS0VSKTsKLQotCXNsb3QgPSBzcnZfdGFibGVfZ2V0X250aF9zbG90KHNs b3Rfbm8pOworCXNsb3QgPSBzcnZfdGFibGVfcmVzZXJ2ZV9zbG90KFNSVl9XT1JLRVIpOwogCiAJ KytzcnZfbl90aHJlYWRzX2FjdGl2ZVtTUlZfV09SS0VSXTsKIApAQCAtMzEzNywxNSArMzEyMSwx MyBAQCBzcnZfcHVyZ2VfdGhyZWFkKAogCQkgICAgfHwgKG5fdG90YWxfcHVyZ2VkID09IDAKIAkJ CSYmIHJldHJpZXMgPj0gVFJYX1NZU19OX1JTRUdTKSkgewogCi0JCQlvc19ldmVudF90CWV2ZW50 OwotCiAJCQltdXRleF9lbnRlcigma2VybmVsX211dGV4KTsKIAotCQkJZXZlbnQgPSBzcnZfc3Vz cGVuZF90aHJlYWQoKTsKKwkJCXNydl9zdXNwZW5kX3RocmVhZChzbG90KTsKIAogCQkJbXV0ZXhf ZXhpdCgma2VybmVsX211dGV4KTsKIAotCQkJb3NfZXZlbnRfd2FpdChldmVudCk7CisJCQlvc19l dmVudF93YWl0KHNsb3QtPmV2ZW50KTsKIAogCQkJcmV0cmllcyA9IDA7CiAJCX0KQEAgLTMxNzks MTYgKzMxNjEsMTEgQEAgc3J2X3B1cmdlX3RocmVhZCgKIAogCW11dGV4X2VudGVyKCZrZXJuZWxf bXV0ZXgpOwogCi0JdXRfYWQoc3J2X3RhYmxlX2dldF9udGhfc2xvdChzbG90X25vKSA9PSBzbG90 KTsKLQogCS8qIERlY3JlbWVudCB0aGUgYWN0aXZlIGNvdW50LiAqLwotCXNydl9zdXNwZW5kX3Ro cmVhZCgpOworCXNydl9zdXNwZW5kX3RocmVhZChzbG90KTsKIAogCXNsb3QtPmluX3VzZSA9IEZB TFNFOwogCi0JLyogRnJlZSB0aGUgdGhyZWFkIGxvY2FsIG1lbW9yeS4gKi8KLQl0aHJfbG9jYWxf ZnJlZShvc190aHJlYWRfZ2V0X2N1cnJfaWQoKSk7Ci0KIAltdXRleF9leGl0KCZrZXJuZWxfbXV0 ZXgpOwogCiAjaWZkZWYgVU5JVl9ERUJVR19USFJFQURfQ1JFQVRJT04KCj09PSBtb2RpZmllZCBm aWxlICdzdG9yYWdlL2lubm9iYXNlL3Roci90aHIwbG9jLmMnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jh c2UvdGhyL3RocjBsb2MuYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDMxNTEz MjQ1MS1waGRyN3J0cTVnY2U0OTQ3CisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvdGhyL3RocjBsb2Mu YwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDMyMjExMzkxNi1vcmljdzAycWcz dHp2aW04CkBAIC02NSw4ICs2NSw2IEBAIGZvciB0aGUgZmllbGQuICovCiBzdHJ1Y3QgdGhyX2xv Y2FsX3N0cnVjdHsKIAlvc190aHJlYWRfaWRfdAlpZDsJLyohPCBpZCBvZiB0aGUgdGhyZWFkIHdo aWNoIG93bnMgdGhpcyBzdHJ1Y3QgKi8KIAlvc190aHJlYWRfdAloYW5kbGU7CS8qITwgb3BlcmF0 aW5nIHN5c3RlbSBoYW5kbGUgdG8gdGhlIHRocmVhZCAqLwotCXVsaW50CQlzbG90X25vOy8qITwg dGhlIGluZGV4IG9mIHRoZSBzbG90IGluIHRoZSB0aHJlYWQgdGFibGUKLQkJCQlmb3IgdGhpcyB0 aHJlYWQgKi8KIAlpYm9vbAkJaW5faWJ1ZjsvKiE8IFRSVUUgaWYgdGhlIHRocmVhZCBpcyBkb2lu ZyBhbiBpYnVmCiAJCQkJb3BlcmF0aW9uICovCiAJaGFzaF9ub2RlX3QJaGFzaDsJLyohPCBoYXNo IGNoYWluIG5vZGUgKi8KQEAgLTg3LDggKzg1LDYgQEAgdGhyX2xvY2FsX3ZhbGlkYXRlKAogCWNv bnN0IHRocl9sb2NhbF90Kglsb2NhbCkJLyohPCBpbjogZGF0YSB0byB2YWxpZGF0ZSAqLwogewog CXV0X2FkKGxvY2FsLT5tYWdpY19uID09IFRIUl9MT0NBTF9NQUdJQ19OKTsKLQl1dF9hZChsb2Nh bC0+c2xvdF9ubyA9PSBVTElOVF9VTkRFRklORUQKLQkgICAgICB8fCBsb2NhbC0+c2xvdF9ubyA8 IE9TX1RIUkVBRF9NQVhfTik7CiAJdXRfYWQobG9jYWwtPmluX2lidWYgPT0gRkFMU0UgfHwgbG9j YWwtPmluX2lidWYgPT0gVFJVRSk7CiAJcmV0dXJuKFRSVUUpOwogfQpAQCAtMTMyLDQ5ICsxMjgs NiBAQCB0cnlfYWdhaW46CiB9CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgotR2V0cyB0aGUgc2xvdCBudW1i ZXIgaW4gdGhlIHRocmVhZCB0YWJsZSBvZiBhIHRocmVhZC4KLUByZXR1cm4Jc2xvdCBudW1iZXIg Ki8KLVVOSVZfSU5URVJOCi11bGludAotdGhyX2xvY2FsX2dldF9zbG90X25vKAotLyo9PT09PT09 PT09PT09PT09PT0qLwotCW9zX3RocmVhZF9pZF90CWlkKQkvKiE8IGluOiB0aHJlYWQgaWQgb2Yg dGhlIHRocmVhZCAqLwotewotCXVsaW50CQlzbG90X25vOwotCXRocl9sb2NhbF90Kglsb2NhbDsK LQotCW11dGV4X2VudGVyKCZ0aHJfbG9jYWxfbXV0ZXgpOwotCi0JbG9jYWwgPSB0aHJfbG9jYWxf Z2V0KGlkKTsKLQotCXNsb3Rfbm8gPSBsb2NhbC0+c2xvdF9ubzsKLQotCW11dGV4X2V4aXQoJnRo cl9sb2NhbF9tdXRleCk7Ci0KLQlyZXR1cm4oc2xvdF9ubyk7Ci19Ci0KLS8qKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8q KgotU2V0cyB0aGUgc2xvdCBudW1iZXIgaW4gdGhlIHRocmVhZCB0YWJsZSBvZiBhIHRocmVhZC4g Ki8KLVVOSVZfSU5URVJOCi12b2lkCi10aHJfbG9jYWxfc2V0X3Nsb3Rfbm8oCi0vKj09PT09PT09 PT09PT09PT09PSovCi0Jb3NfdGhyZWFkX2lkX3QJaWQsCS8qITwgaW46IHRocmVhZCBpZCBvZiB0 aGUgdGhyZWFkICovCi0JdWxpbnQJCXNsb3Rfbm8pLyohPCBpbjogc2xvdCBudW1iZXIgKi8KLXsK LQl0aHJfbG9jYWxfdCoJbG9jYWw7Ci0KLQltdXRleF9lbnRlcigmdGhyX2xvY2FsX211dGV4KTsK LQotCWxvY2FsID0gdGhyX2xvY2FsX2dldChpZCk7Ci0KLQlsb2NhbC0+c2xvdF9ubyA9IHNsb3Rf bm87Ci0KLQltdXRleF9leGl0KCZ0aHJfbG9jYWxfbXV0ZXgpOwotfQotCi0vKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8v KioKIFJldHVybnMgcG9pbnRlciB0byB0aGUgJ2luX2lidWYnIGZpZWxkIHdpdGhpbiB0aGUgY3Vy cmVudCB0aHJlYWQgbG9jYWwKIHN0b3JhZ2UuCiBAcmV0dXJuCXBvaW50ZXIgdG8gdGhlIGluX2li dWYgZmllbGQgKi8KQEAgLTIxMiw3ICsxNjUsNiBAQCB0aHJfbG9jYWxfY3JlYXRlKHZvaWQpCiAJ bG9jYWwtPmlkID0gb3NfdGhyZWFkX2dldF9jdXJyX2lkKCk7CiAJbG9jYWwtPmhhbmRsZSA9IG9z X3RocmVhZF9nZXRfY3VycigpOwogCWxvY2FsLT5tYWdpY19uID0gVEhSX0xPQ0FMX01BR0lDX047 Ci0JbG9jYWwtPnNsb3Rfbm8gPSBVTElOVF9VTkRFRklORUQ7CiAJbG9jYWwtPmluX2lidWYgPSBG QUxTRTsKIAogCW11dGV4X2VudGVyKCZ0aHJfbG9jYWxfbXV0ZXgpOwoK --===============1795587055== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/marko.makela@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: marko.makela@stripped # target_branch: file:///home/marko/innobase/dev/mysql2a/5.5-innodb/ # testament_sha1: e93268f1264c8441adff753583178553d7a692f2 # timestamp: 2011-03-22 14:45:23 +0200 # source_branch: file:///home/marko/innobase/dev/mysql2a/5.1-innodb/ # base_revision_id: marko.makela@stripped\ # phdr7rtq5gce4947 # # Begin bundle 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 nChIR2JEIgA= --===============1795587055==--