From: marko.makela Date: January 23 2013 2:54pm Subject: bzr push into mysql-trunk branch (marko.makela:5426 to 5427) Bug#15866009 List-Archive: http://lists.mysql.com/commits/145630 X-Bug: 15866009 Message-Id: <20130123145401.22634.81314.5427@x220> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDU0MjcgTWFya28gTcOka2Vsw6QJMjAxMy0wMS0yMwogICAgICBCdWcjMTU4NjYwMDkgVU5ORUNF U1NBUlkgQlVGRkVSIFBPT0wgTE9PS1VQIFdISUxFIEZSRUVJTkcgQkxPQgogICAgICAKICAgICAg U2tpcCBjYWxscyB0byBidHJfc2VhcmNoX2Ryb3BfcGFnZV9oYXNoX3doZW5fZnJlZWQoKSB3aGVu IGZyZWVpbmcgQkxPQiBwYWdlcy4KICAgICAgVGhlIGFkYXB0aXZlIGhhc2ggaW5kZXggY2FuIG9u bHkgcG9pbnQgdG8gQi10cmVlIHBhZ2VzLCBuZXZlciB0byBCTE9CIHBhZ2VzLgogICAgICAKICAg ICAgZnNlZ19mcmVlX3BhZ2VfbG93KCksIGZzZWdfZnJlZV9leHRlbnQoKTogQWRkIHRoZSBwYXJh bWV0ZXIgYm9vbCBhaGksCiAgICAgIHRvIGluZGljYXRlIHdoZXRoZXIgdGhlcmUgbWF5IGJlIGFk YXB0aXZlIGhhc2ggaW5kZXggZW50cmllcyB0aGF0IHdpbGwKICAgICAgbmVlZCB0byBiZSBmcmVl ZC4KICAgICAgCiAgICAgIGJ0cl9wYWdlX2ZyZWVfbG93KCk6IEludGVycHJldCBsZXZlbD1VTElO VF9VTkRFRklORUQgYXMgYSBCTE9CIHBhZ2UuCiAgICAgIAogICAgICBBZGQgYSBkZWJ1ZyBzdGF0 dXMgaW5zdHJ1bWVudCBpbm5vZGJfYWhpX2Ryb3BfbG9va3VwcywgZm9yIHRlc3RpbmcgdGhpcy4K ICAgICAgCiAgICAgIHJiIzE1NTEgYXBwcm92ZWQgYnkgU3VubnkgQmFpbnMKCiAgICBtb2RpZmll ZDoKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9idHIvYnRyMGJ0ci5jYwogICAgICBzdG9yYWdlL2lu bm9iYXNlL2J0ci9idHIwY3VyLmNjCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvYnRyL2J0cjBzZWEu Y2MKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9mc3AvZnNwMGZzcC5jYwogICAgICBzdG9yYWdlL2lu bm9iYXNlL2hhbmRsZXIvaGFfaW5ub2RiLmNjCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaWJ1Zi9p YnVmMGlidWYuY2MKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2J0cjBidHIuaAogICAg ICBzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvZnNwMGZzcC5oCiAgICAgIHN0b3JhZ2UvaW5ub2Jh c2UvaW5jbHVkZS9zcnYwc3J2LmgKICAgICAgc3RvcmFnZS9pbm5vYmFzZS90cngvdHJ4MHB1cmdl LmNjCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvdHJ4L3RyeDB1bmRvLmNjCiA1NDI2IFJveSBMeXNl bmcJMjAxMy0wMS0yMwogICAgICBNYWtlIHNvbWUgZnVuY3Rpb25zIGluIHNxbF9zZWxlY3QuaCBj b25zdC4KCiAgICBtb2RpZmllZDoKICAgICAgc3FsL3NxbF9zZWxlY3QuaAo9PT0gbW9kaWZpZWQg ZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9idHIvYnRyMGJ0ci5jYycKLS0tIGEvc3RvcmFnZS9pbm5v YmFzZS9idHIvYnRyMGJ0ci5jYwlyZXZpZDpyb3kubHlzZW5nQG9yYWNsZS5jb20tMjAxMzAxMjMx MzEzMjEteGx2dnp4Mm5vcGM0aHo5ZworKysgYi9zdG9yYWdlL2lubm9iYXNlL2J0ci9idHIwYnRy LmNjCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTMwMTIzMTQ1MjMyLXptMWU4MXl6 dXRjZDVjN2sKQEAgLTEsNiArMSw2IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIAotQ29weXJp Z2h0IChjKSAxOTk0LCAyMDEyLCBPcmFjbGUgYW5kL29yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmln aHRzIFJlc2VydmVkLgorQ29weXJpZ2h0IChjKSAxOTk0LCAyMDEzLCBPcmFjbGUgYW5kL29yIGl0 cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogQ29weXJpZ2h0IChjKSAyMDEyLCBG YWNlYm9vayBJbmMuCiAKIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCkBAIC0xMjQwLDE1ICsxMjQwLDE0 IEBAIGJ0cl9wYWdlX2ZyZWVfZm9yX2lidWYoCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIEZyZWVzIGEgZmlsZSBw YWdlIHVzZWQgaW4gYW4gaW5kZXggdHJlZS4gQ2FuIGJlIHVzZWQgYWxzbyB0byAoQkxPQikKLWV4 dGVybmFsIHN0b3JhZ2UgcGFnZXMsIGJlY2F1c2UgdGhlIHBhZ2UgbGV2ZWwgMCBjYW4gYmUgZ2l2 ZW4gYXMgYW4KLWFyZ3VtZW50LiAqLworZXh0ZXJuYWwgc3RvcmFnZSBwYWdlcy4gKi8KIFVOSVZf SU5URVJOCiB2b2lkCiBidHJfcGFnZV9mcmVlX2xvdygKIC8qPT09PT09PT09PT09PT0qLwogCWRp Y3RfaW5kZXhfdCoJaW5kZXgsCS8qITwgaW46IGluZGV4IHRyZWUgKi8KIAlidWZfYmxvY2tfdCoJ YmxvY2ssCS8qITwgaW46IGJsb2NrIHRvIGJlIGZyZWVkLCB4LWxhdGNoZWQgKi8KLQl1bGludAkJ bGV2ZWwsCS8qITwgaW46IHBhZ2UgbGV2ZWwgKi8KKwl1bGludAkJbGV2ZWwsCS8qITwgaW46IHBh Z2UgbGV2ZWwgKFVMSU5UX1VOREVGSU5FRD1CTE9CKSAqLwogCW10cl90KgkJbXRyKQkvKiE8IGlu OiBtdHIgKi8KIHsKIAlmc2VnX2hlYWRlcl90KglzZWdfaGVhZGVyOwpAQCAtMTI3MCw3ICsxMjY5 LDcgQEAgYnRyX3BhZ2VfZnJlZV9sb3coCiAKIAlyb290ID0gYnRyX3Jvb3RfZ2V0KGluZGV4LCBt dHIpOwogCi0JaWYgKGxldmVsID09IDApIHsKKwlpZiAobGV2ZWwgPT0gMCB8fCBsZXZlbCA9PSBV TElOVF9VTkRFRklORUQpIHsKIAkJc2VnX2hlYWRlciA9IHJvb3QgKyBQQUdFX0hFQURFUiArIFBB R0VfQlRSX1NFR19MRUFGOwogCX0gZWxzZSB7CiAJCXNlZ19oZWFkZXIgPSByb290ICsgUEFHRV9I RUFERVIgKyBQQUdFX0JUUl9TRUdfVE9QOwpAQCAtMTI3OCw3ICsxMjc3LDggQEAgYnRyX3BhZ2Vf ZnJlZV9sb3coCiAKIAlmc2VnX2ZyZWVfcGFnZShzZWdfaGVhZGVyLAogCQkgICAgICAgYnVmX2Js b2NrX2dldF9zcGFjZShibG9jayksCi0JCSAgICAgICBidWZfYmxvY2tfZ2V0X3BhZ2Vfbm8oYmxv Y2spLCBtdHIpOworCQkgICAgICAgYnVmX2Jsb2NrX2dldF9wYWdlX25vKGJsb2NrKSwKKwkJICAg ICAgIGxldmVsICE9IFVMSU5UX1VOREVGSU5FRCwgbXRyKTsKIAogCS8qIFRoZSBwYWdlIHdhcyBt YXJrZWQgZnJlZSBpbiB0aGUgYWxsb2NhdGlvbiBiaXRtYXAsIGJ1dCBpdAogCXNob3VsZCByZW1h aW4gYnVmZmVyLWZpeGVkIHVudGlsIG10cl9jb21taXQobXRyKSBvciB1bnRpbCBpdApAQCAtMTMw NSw2ICsxMzA1LDcgQEAgYnRyX3BhZ2VfZnJlZSgKIAl1bGludAkJbGV2ZWwJPSBidHJfcGFnZV9n ZXRfbGV2ZWwocGFnZSwgbXRyKTsKIAogCXV0X2FkKGZpbF9wYWdlX2dldF90eXBlKGJsb2NrLT5m cmFtZSkgPT0gRklMX1BBR0VfSU5ERVgpOworCXV0X2FkKGxldmVsICE9IFVMSU5UX1VOREVGSU5F RCk7CiAJYnRyX3BhZ2VfZnJlZV9sb3coaW5kZXgsIGJsb2NrLCBsZXZlbCwgbXRyKTsKIH0KIApA QCAtMTY2OCw3ICsxNjY5LDcgQEAgbGVhZl9sb29wOgogCWZzcDBmc3AuICovCiAKIAlmaW5pc2hl ZCA9IGZzZWdfZnJlZV9zdGVwKHJvb3QgKyBQQUdFX0hFQURFUiArIFBBR0VfQlRSX1NFR19MRUFG LAotCQkJCSAgJm10cik7CisJCQkJICB0cnVlLCAmbXRyKTsKIAltdHJfY29tbWl0KCZtdHIpOwog CiAJaWYgKCFmaW5pc2hlZCkgewpAQCAtMTY4Niw3ICsxNjg3LDcgQEAgdG9wX2xvb3A6CiAjZW5k aWYgLyogVU5JVl9CVFJfREVCVUcgKi8KIAogCWZpbmlzaGVkID0gZnNlZ19mcmVlX3N0ZXBfbm90 X2hlYWRlcigKLQkJcm9vdCArIFBBR0VfSEVBREVSICsgUEFHRV9CVFJfU0VHX1RPUCwgJm10cik7 CisJCXJvb3QgKyBQQUdFX0hFQURFUiArIFBBR0VfQlRSX1NFR19UT1AsIHRydWUsICZtdHIpOwog CW10cl9jb21taXQoJm10cik7CiAKIAlpZiAoIWZpbmlzaGVkKSB7CkBAIC0xNzIwLDcgKzE3MjEs NyBAQCBidHJfZnJlZV9yb290KAogCXV0X2EoYnRyX3Jvb3RfZnNlZ192YWxpZGF0ZShoZWFkZXIs IHNwYWNlKSk7CiAjZW5kaWYgLyogVU5JVl9CVFJfREVCVUcgKi8KIAotCXdoaWxlICghZnNlZ19m cmVlX3N0ZXAoaGVhZGVyLCBtdHIpKSB7CisJd2hpbGUgKCFmc2VnX2ZyZWVfc3RlcChoZWFkZXIs IHRydWUsIG10cikpIHsKIAkJLyogRnJlZSB0aGUgZW50aXJlIHNlZ21lbnQgaW4gc21hbGwgc3Rl cHMuICovCiAJfQogfQoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvYnRyL2J0 cjBjdXIuY2MnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvYnRyL2J0cjBjdXIuY2MJcmV2aWQ6cm95 Lmx5c2VuZ0BvcmFjbGUuY29tLTIwMTMwMTIzMTMxMzIxLXhsdnZ6eDJub3BjNGh6OWcKKysrIGIv c3RvcmFnZS9pbm5vYmFzZS9idHIvYnRyMGN1ci5jYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xl LmNvbS0yMDEzMDEyMzE0NTIzMi16bTFlODF5enV0Y2Q1YzdrCkBAIC00NzI5LDcgKzQ3MjksOCBA QCBmdW5jX2V4aXQ6CiAJCXV0X2FkKGJ0cl9ibG9iX29wX2lzX3VwZGF0ZShvcCkpOwogCiAJCWZv ciAoaSA9IDA7IGkgPCBuX2ZyZWVkX3BhZ2VzOyBpKyspIHsKLQkJCWJ0cl9wYWdlX2ZyZWVfbG93 KGluZGV4LCBmcmVlZF9wYWdlc1tpXSwgMCwgYWxsb2NfbXRyKTsKKwkJCWJ0cl9wYWdlX2ZyZWVf bG93KGluZGV4LCBmcmVlZF9wYWdlc1tpXSwKKwkJCQkJICBVTElOVF9VTkRFRklORUQsIGFsbG9j X210cik7CiAJCX0KIAl9CiAKQEAgLTQ5NTQsNyArNDk1NSw4IEBAIGJ0cl9mcmVlX2V4dGVybmFs bHlfc3RvcmVkX2ZpZWxkKAogCQkJfQogCQkJbmV4dF9wYWdlX25vID0gbWFjaF9yZWFkX2Zyb21f NChwYWdlICsgRklMX1BBR0VfTkVYVCk7CiAKLQkJCWJ0cl9wYWdlX2ZyZWVfbG93KGluZGV4LCBl eHRfYmxvY2ssIDAsICZtdHIpOworCQkJYnRyX3BhZ2VfZnJlZV9sb3coaW5kZXgsIGV4dF9ibG9j aywgVUxJTlRfVU5ERUZJTkVELAorCQkJCQkgICZtdHIpOwogCiAJCQlpZiAocGFnZV96aXAgIT0g TlVMTCkgewogCQkJCW1hY2hfd3JpdGVfdG9fNChmaWVsZF9yZWYgKyBCVFJfRVhURVJOX1BBR0Vf Tk8sCkBAIC00OTgxLDExICs0OTgzLDggQEAgYnRyX2ZyZWVfZXh0ZXJuYWxseV9zdG9yZWRfZmll bGQoCiAJCQkJcGFnZSArIEZJTF9QQUdFX0RBVEEKIAkJCQkrIEJUUl9CTE9CX0hEUl9ORVhUX1BB R0VfTk8pOwogCi0JCQkvKiBXZSBtdXN0IHN1cHBseSB0aGUgcGFnZSBsZXZlbCAoPSAwKSBhcyBh biBhcmd1bWVudAotCQkJYmVjYXVzZSB3ZSBkaWQgbm90IHN0b3JlIGl0IG9uIHRoZSBwYWdlICh3 ZSBzYXZlIHRoZQotCQkJc3BhY2Ugb3ZlcmhlYWQgZnJvbSBhbiBpbmRleCBwYWdlIGhlYWRlci4g Ki8KLQotCQkJYnRyX3BhZ2VfZnJlZV9sb3coaW5kZXgsIGV4dF9ibG9jaywgMCwgJm10cik7CisJ CQlidHJfcGFnZV9mcmVlX2xvdyhpbmRleCwgZXh0X2Jsb2NrLCBVTElOVF9VTkRFRklORUQsCisJ CQkJCSAgJm10cik7CiAKIAkJCW1sb2dfd3JpdGVfdWxpbnQoZmllbGRfcmVmICsgQlRSX0VYVEVS Tl9QQUdFX05PLAogCQkJCQkgbmV4dF9wYWdlX25vLAoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3Jh Z2UvaW5ub2Jhc2UvYnRyL2J0cjBzZWEuY2MnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvYnRyL2J0 cjBzZWEuY2MJcmV2aWQ6cm95Lmx5c2VuZ0BvcmFjbGUuY29tLTIwMTMwMTIzMTMxMzIxLXhsdnZ6 eDJub3BjNGh6OWcKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9idHIvYnRyMHNlYS5jYwlyZXZpZDpt YXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEzMDEyMzE0NTIzMi16bTFlODF5enV0Y2Q1YzdrCkBA IC0xLDYgKzEsNiBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAKLUNvcHlyaWdodCAoYykgMTk5 NiwgMjAxMiwgT3JhY2xlIGFuZC9vciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZl ZC4KK0NvcHlyaWdodCAoYykgMTk5NiwgMjAxMywgT3JhY2xlIGFuZC9vciBpdHMgYWZmaWxpYXRl cy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KIENvcHlyaWdodCAoYykgMjAwOCwgR29vZ2xlIEluYy4K IAogUG9ydGlvbnMgb2YgdGhpcyBmaWxlIGNvbnRhaW4gbW9kaWZpY2F0aW9ucyBjb250cmlidXRl ZCBhbmQgY29weXJpZ2h0ZWQgYnkKQEAgLTEyNjUsNiArMTI2NSw4IEBAIGJ0cl9zZWFyY2hfZHJv cF9wYWdlX2hhc2hfd2hlbl9mcmVlZCgKIAlidWZfYmxvY2tfdCoJYmxvY2s7CiAJbXRyX3QJCW10 cjsKIAorCXV0X2QoZXhwb3J0X3ZhcnMuaW5ub2RiX2FoaV9kcm9wX2xvb2t1cHMrKyk7CisKIAlt dHJfc3RhcnQoJm10cik7CiAKIAkvKiBJZiB0aGUgY2FsbGVyIGhhcyBhIGxhdGNoIG9uIHRoZSBw YWdlLCB0aGVuIHRoZSBjYWxsZXIgbXVzdAoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5u b2Jhc2UvZnNwL2ZzcDBmc3AuY2MnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvZnNwL2ZzcDBmc3Au Y2MJcmV2aWQ6cm95Lmx5c2VuZ0BvcmFjbGUuY29tLTIwMTMwMTIzMTMxMzIxLXhsdnZ6eDJub3Bj NGh6OWcKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9mc3AvZnNwMGZzcC5jYwlyZXZpZDptYXJrby5t YWtlbGFAb3JhY2xlLmNvbS0yMDEzMDEyMzE0NTIzMi16bTFlODF5enV0Y2Q1YzdrCkBAIC02NCwx OCArNjQsNiBAQCBmc3BfZnJlZV9leHRlbnQoCiAJdWxpbnQJCXBhZ2UsCS8qITwgaW46IHBhZ2Ug b2Zmc2V0IGluIHRoZSBleHRlbnQgKi8KIAltdHJfdCoJCW10cik7CS8qITwgaW4vb3V0OiBtaW5p LXRyYW5zYWN0aW9uICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKLUZyZWVzIGFuIGV4dGVudCBvZiBh IHNlZ21lbnQgdG8gdGhlIHNwYWNlIGZyZWUgbGlzdC4gKi8KLXN0YXRpYwotdm9pZAotZnNlZ19m cmVlX2V4dGVudCgKLS8qPT09PT09PT09PT09PSovCi0JZnNlZ19pbm9kZV90KglzZWdfaW5vZGUs IC8qITwgaW46IHNlZ21lbnQgaW5vZGUgKi8KLQl1bGludAkJc3BhY2UsCS8qITwgaW46IHNwYWNl IGlkICovCi0JdWxpbnQJCXppcF9zaXplLC8qITwgaW46IGNvbXByZXNzZWQgcGFnZSBzaXplIGlu IGJ5dGVzCi0JCQkJb3IgMCBmb3IgdW5jb21wcmVzc2VkIHBhZ2VzICovCi0JdWxpbnQJCXBhZ2Us CS8qITwgaW46IHBhZ2Ugb2Zmc2V0IGluIHRoZSBleHRlbnQgKi8KLQltdHJfdCoJCW10cik7CS8q ITwgaW4vb3V0OiBtaW5pLXRyYW5zYWN0aW9uICovCi0vKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIENhbGN1 bGF0ZXMgdGhlIG51bWJlciBvZiBwYWdlcyByZXNlcnZlZCBieSBhIHNlZ21lbnQsIGFuZCBob3cK IG1hbnkgcGFnZXMgYXJlIGN1cnJlbnRseSB1c2VkLgogQHJldHVybgludW1iZXIgb2YgcmVzZXJ2 ZWQgcGFnZXMgKi8KQEAgLTMwNTgsNiArMzA0Niw4IEBAIGZzZWdfZnJlZV9wYWdlX2xvdygKIAl1 bGludAkJemlwX3NpemUsLyohPCBpbjogY29tcHJlc3NlZCBwYWdlIHNpemUgaW4gYnl0ZXMKIAkJ CQlvciAwIGZvciB1bmNvbXByZXNzZWQgcGFnZXMgKi8KIAl1bGludAkJcGFnZSwJLyohPCBpbjog cGFnZSBvZmZzZXQgKi8KKwlib29sCQlhaGksCS8qITwgaW46IHdoZXRoZXIgd2UgbWF5IG5lZWQg dG8gZHJvcAorCQkJCXRoZSBhZGFwdGl2ZSBoYXNoIGluZGV4ICovCiAJbXRyX3QqCQltdHIpCS8q ITwgaW4vb3V0OiBtaW5pLXRyYW5zYWN0aW9uICovCiB7CiAJeGRlc190KglkZXNjcjsKQEAgLTMw NzUsNyArMzA2NSw5IEBAIGZzZWdfZnJlZV9wYWdlX2xvdygKIAkvKiBEcm9wIHNlYXJjaCBzeXN0 ZW0gcGFnZSBoYXNoIGluZGV4IGlmIHRoZSBwYWdlIGlzIGZvdW5kIGluCiAJdGhlIHBvb2wgYW5k IGlzIGhhc2hlZCAqLwogCi0JYnRyX3NlYXJjaF9kcm9wX3BhZ2VfaGFzaF93aGVuX2ZyZWVkKHNw YWNlLCB6aXBfc2l6ZSwgcGFnZSk7CisJaWYgKGFoaSkgeworCQlidHJfc2VhcmNoX2Ryb3BfcGFn ZV9oYXNoX3doZW5fZnJlZWQoc3BhY2UsIHppcF9zaXplLCBwYWdlKTsKKwl9CiAKIAlkZXNjciA9 IHhkZXNfZ2V0X2Rlc2NyaXB0b3Ioc3BhY2UsIHppcF9zaXplLCBwYWdlLCBtdHIpOwogCkBAIC0z MTkzLDYgKzMxODUsOCBAQCBmc2VnX2ZyZWVfcGFnZSgKIAlmc2VnX2hlYWRlcl90KglzZWdfaGVh ZGVyLCAvKiE8IGluOiBzZWdtZW50IGhlYWRlciAqLwogCXVsaW50CQlzcGFjZSwJLyohPCBpbjog c3BhY2UgaWQgKi8KIAl1bGludAkJcGFnZSwJLyohPCBpbjogcGFnZSBvZmZzZXQgKi8KKwlib29s CQlhaGksCS8qITwgaW46IHdoZXRoZXIgd2UgbWF5IG5lZWQgdG8gZHJvcAorCQkJCXRoZSBhZGFw dGl2ZSBoYXNoIGluZGV4ICovCiAJbXRyX3QqCQltdHIpCS8qITwgaW4vb3V0OiBtaW5pLXRyYW5z YWN0aW9uICovCiB7CiAJdWxpbnQJCWZsYWdzOwpAQCAtMzIwNyw3ICszMjAxLDcgQEAgZnNlZ19m cmVlX3BhZ2UoCiAKIAlzZWdfaW5vZGUgPSBmc2VnX2lub2RlX2dldChzZWdfaGVhZGVyLCBzcGFj ZSwgemlwX3NpemUsIG10cik7CiAKLQlmc2VnX2ZyZWVfcGFnZV9sb3coc2VnX2lub2RlLCBzcGFj ZSwgemlwX3NpemUsIHBhZ2UsIG10cik7CisJZnNlZ19mcmVlX3BhZ2VfbG93KHNlZ19pbm9kZSwg c3BhY2UsIHppcF9zaXplLCBwYWdlLCBhaGksIG10cik7CiAKICNpZiBkZWZpbmVkIFVOSVZfREVC VUdfRklMRV9BQ0NFU1NFUyB8fCBkZWZpbmVkIFVOSVZfREVCVUcKIAlidWZfcGFnZV9zZXRfZmls ZV9wYWdlX3dhc19mcmVlZChzcGFjZSwgcGFnZSk7CkBAIC0zMjU5LDcgKzMyNTMsNyBAQCBmc2Vn X3BhZ2VfaXNfZnJlZSgKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBGcmVlcyBhbiBleHRlbnQgb2Yg YSBzZWdtZW50IHRvIHRoZSBzcGFjZSBmcmVlIGxpc3QuICovCi1zdGF0aWMKK3N0YXRpYyBfX2F0 dHJpYnV0ZV9fKChub25udWxsKSkKIHZvaWQKIGZzZWdfZnJlZV9leHRlbnQoCiAvKj09PT09PT09 PT09PT0qLwpAQCAtMzI2OCw2ICszMjYyLDggQEAgZnNlZ19mcmVlX2V4dGVudCgKIAl1bGludAkJ emlwX3NpemUsLyohPCBpbjogY29tcHJlc3NlZCBwYWdlIHNpemUgaW4gYnl0ZXMKIAkJCQlvciAw IGZvciB1bmNvbXByZXNzZWQgcGFnZXMgKi8KIAl1bGludAkJcGFnZSwJLyohPCBpbjogYSBwYWdl IGluIHRoZSBleHRlbnQgKi8KKwlib29sCQlhaGksCS8qITwgaW46IHdoZXRoZXIgd2UgbWF5IG5l ZWQgdG8gZHJvcAorCQkJCXRoZSBhZGFwdGl2ZSBoYXNoIGluZGV4ICovCiAJbXRyX3QqCQltdHIp CS8qITwgaW4vb3V0OiBtaW5pLXRyYW5zYWN0aW9uICovCiB7CiAJdWxpbnQJZmlyc3RfcGFnZV9p bl9leHRlbnQ7CkBAIC0zMjg3LDE0ICszMjgzLDE4IEBAIGZzZWdfZnJlZV9leHRlbnQoCiAKIAlm aXJzdF9wYWdlX2luX2V4dGVudCA9IHBhZ2UgLSAocGFnZSAlIEZTUF9FWFRFTlRfU0laRSk7CiAK LQlmb3IgKGkgPSAwOyBpIDwgRlNQX0VYVEVOVF9TSVpFOyBpKyspIHsKLQkJaWYgKCF4ZGVzX210 cl9nZXRfYml0KGRlc2NyLCBYREVTX0ZSRUVfQklULCBpLCBtdHIpKSB7Ci0KLQkJCS8qIERyb3Ag c2VhcmNoIHN5c3RlbSBwYWdlIGhhc2ggaW5kZXggaWYgdGhlIHBhZ2UgaXMKLQkJCWZvdW5kIGlu IHRoZSBwb29sIGFuZCBpcyBoYXNoZWQgKi8KLQotCQkJYnRyX3NlYXJjaF9kcm9wX3BhZ2VfaGFz aF93aGVuX2ZyZWVkKAotCQkJCXNwYWNlLCB6aXBfc2l6ZSwgZmlyc3RfcGFnZV9pbl9leHRlbnQg KyBpKTsKKwlpZiAoYWhpKSB7CisJCWZvciAoaSA9IDA7IGkgPCBGU1BfRVhURU5UX1NJWkU7IGkr KykgeworCQkJaWYgKCF4ZGVzX210cl9nZXRfYml0KGRlc2NyLCBYREVTX0ZSRUVfQklULCBpLCBt dHIpKSB7CisKKwkJCQkvKiBEcm9wIHNlYXJjaCBzeXN0ZW0gcGFnZSBoYXNoIGluZGV4CisJCQkJ aWYgdGhlIHBhZ2UgaXMgZm91bmQgaW4gdGhlIHBvb2wgYW5kCisJCQkJaXMgaGFzaGVkICovCisK KwkJCQlidHJfc2VhcmNoX2Ryb3BfcGFnZV9oYXNoX3doZW5fZnJlZWQoCisJCQkJCXNwYWNlLCB6 aXBfc2l6ZSwKKwkJCQkJZmlyc3RfcGFnZV9pbl9leHRlbnQgKyBpKTsKKwkJCX0KIAkJfQogCX0K IApAQCAtMzM0Myw2ICszMzQzLDggQEAgZnNlZ19mcmVlX3N0ZXAoCiAJCQkJcmVzaWRlcyBvbiB0 aGUgZmlyc3QgcGFnZSBvZiB0aGUgZnJhZyBsaXN0CiAJCQkJb2YgdGhlIHNlZ21lbnQsIHRoaXMg cG9pbnRlciBiZWNvbWVzIG9ic29sZXRlCiAJCQkJYWZ0ZXIgdGhlIGxhc3QgZnJlZWluZyBzdGVw ICovCisJYm9vbAkJYWhpLAkvKiE8IGluOiB3aGV0aGVyIHdlIG1heSBuZWVkIHRvIGRyb3AKKwkJ CQl0aGUgYWRhcHRpdmUgaGFzaCBpbmRleCAqLwogCW10cl90KgkJbXRyKQkvKiE8IGluL291dDog bWluaS10cmFuc2FjdGlvbiAqLwogewogCXVsaW50CQluOwpAQCAtMzM4NSw3ICszMzg3LDcgQEAg ZnNlZ19mcmVlX3N0ZXAoCiAJCS8qIEZyZWUgdGhlIGV4dGVudCBoZWxkIGJ5IHRoZSBzZWdtZW50 ICovCiAJCXBhZ2UgPSB4ZGVzX2dldF9vZmZzZXQoZGVzY3IpOwogCi0JCWZzZWdfZnJlZV9leHRl bnQoaW5vZGUsIHNwYWNlLCB6aXBfc2l6ZSwgcGFnZSwgbXRyKTsKKwkJZnNlZ19mcmVlX2V4dGVu dChpbm9kZSwgc3BhY2UsIHppcF9zaXplLCBwYWdlLCBhaGksIG10cik7CiAKIAkJcmV0dXJuKEZB TFNFKTsKIAl9CkBAIC0zNDAxLDcgKzM0MDMsOCBAQCBmc2VnX2ZyZWVfc3RlcCgKIAl9CiAKIAlm c2VnX2ZyZWVfcGFnZV9sb3coaW5vZGUsIHNwYWNlLCB6aXBfc2l6ZSwKLQkJCSAgIGZzZWdfZ2V0 X250aF9mcmFnX3BhZ2Vfbm8oaW5vZGUsIG4sIG10ciksIG10cik7CisJCQkgICBmc2VnX2dldF9u dGhfZnJhZ19wYWdlX25vKGlub2RlLCBuLCBtdHIpLAorCQkJICAgYWhpLCBtdHIpOwogCiAJbiA9 IGZzZWdfZmluZF9sYXN0X3VzZWRfZnJhZ19wYWdlX3Nsb3QoaW5vZGUsIG10cik7CiAKQEAgLTM0 MjUsNiArMzQyOCw4IEBAIGZzZWdfZnJlZV9zdGVwX25vdF9oZWFkZXIoCiAvKj09PT09PT09PT09 PT09PT09PT09PT0qLwogCWZzZWdfaGVhZGVyX3QqCWhlYWRlciwJLyohPCBpbjogc2VnbWVudCBo ZWFkZXIgd2hpY2ggbXVzdCByZXNpZGUgb24KIAkJCQl0aGUgZmlyc3QgZnJhZ21lbnQgcGFnZSBv ZiB0aGUgc2VnbWVudCAqLworCWJvb2wJCWFoaSwJLyohPCBpbjogd2hldGhlciB3ZSBtYXkgbmVl ZCB0byBkcm9wCisJCQkJdGhlIGFkYXB0aXZlIGhhc2ggaW5kZXggKi8KIAltdHJfdCoJCW10cikJ LyohPCBpbi9vdXQ6IG1pbmktdHJhbnNhY3Rpb24gKi8KIHsKIAl1bGludAkJbjsKQEAgLTM0NTIs NyArMzQ1Nyw3IEBAIGZzZWdfZnJlZV9zdGVwX25vdF9oZWFkZXIoCiAJCS8qIEZyZWUgdGhlIGV4 dGVudCBoZWxkIGJ5IHRoZSBzZWdtZW50ICovCiAJCXBhZ2UgPSB4ZGVzX2dldF9vZmZzZXQoZGVz Y3IpOwogCi0JCWZzZWdfZnJlZV9leHRlbnQoaW5vZGUsIHNwYWNlLCB6aXBfc2l6ZSwgcGFnZSwg bXRyKTsKKwkJZnNlZ19mcmVlX2V4dGVudChpbm9kZSwgc3BhY2UsIHppcF9zaXplLCBwYWdlLCBh aGksIG10cik7CiAKIAkJcmV0dXJuKEZBTFNFKTsKIAl9CkBAIC0zNDcyLDcgKzM0NzcsNyBAQCBm c2VnX2ZyZWVfc3RlcF9ub3RfaGVhZGVyKAogCQlyZXR1cm4oVFJVRSk7CiAJfQogCi0JZnNlZ19m cmVlX3BhZ2VfbG93KGlub2RlLCBzcGFjZSwgemlwX3NpemUsIHBhZ2Vfbm8sIG10cik7CisJZnNl Z19mcmVlX3BhZ2VfbG93KGlub2RlLCBzcGFjZSwgemlwX3NpemUsIHBhZ2Vfbm8sIGFoaSwgbXRy KTsKIAogCXJldHVybihGQUxTRSk7CiB9Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5v YmFzZS9oYW5kbGVyL2hhX2lubm9kYi5jYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9oYW5kbGVy L2hhX2lubm9kYi5jYwlyZXZpZDpyb3kubHlzZW5nQG9yYWNsZS5jb20tMjAxMzAxMjMxMzEzMjEt eGx2dnp4Mm5vcGM0aHo5ZworKysgYi9zdG9yYWdlL2lubm9iYXNlL2hhbmRsZXIvaGFfaW5ub2Ri LmNjCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTMwMTIzMTQ1MjMyLXptMWU4MXl6 dXRjZDVjN2sKQEAgLTY0NSw2ICs2NDUsOCBAQCBzdGF0aWMgU0hPV19WQVIgaW5ub2RiX3N0YXR1 c192YXJpYWJsZXNbCiAgIChjaGFyKikgJmV4cG9ydF92YXJzLmlubm9kYl9wdXJnZV90cnhfaWRf YWdlLCAgICAgICAgICAgU0hPV19MT05HfSwKICAgeyJwdXJnZV92aWV3X3RyeF9pZF9hZ2UiLAog ICAoY2hhciopICZleHBvcnRfdmFycy5pbm5vZGJfcHVyZ2Vfdmlld190cnhfaWRfYWdlLCAgICAg IFNIT1dfTE9OR30sCisgIHsiYWhpX2Ryb3BfbG9va3VwcyIsCisgIChjaGFyKikgJmV4cG9ydF92 YXJzLmlubm9kYl9haGlfZHJvcF9sb29rdXBzLCAgICAgICAgICAgU0hPV19MT05HfSwKICNlbmRp ZiAvKiBVTklWX0RFQlVHICovCiAgIHtOdWxsUywgTnVsbFMsIFNIT1dfTE9OR30KIH07Cgo9PT0g bW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9pYnVmL2lidWYwaWJ1Zi5jYycKLS0tIGEv c3RvcmFnZS9pbm5vYmFzZS9pYnVmL2lidWYwaWJ1Zi5jYwlyZXZpZDpyb3kubHlzZW5nQG9yYWNs ZS5jb20tMjAxMzAxMjMxMzEzMjEteGx2dnp4Mm5vcGM0aHo5ZworKysgYi9zdG9yYWdlL2lubm9i YXNlL2lidWYvaWJ1ZjBpYnVmLmNjCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTMw MTIzMTQ1MjMyLXptMWU4MXl6dXRjZDVjN2sKQEAgLTEsNiArMSw2IEBACiAvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKIAotQ29weXJpZ2h0IChjKSAxOTk3LCAyMDEyLCBPcmFjbGUgYW5kL29yIGl0cyBh ZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorQ29weXJpZ2h0IChjKSAxOTk3LCAyMDEz LCBPcmFjbGUgYW5kL29yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogCiBU aGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yIG1vZGlmeSBpdCB1bmRlcgogdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKQEAgLTIxOTIsNyArMjE5 Miw3IEBAIGlidWZfcmVtb3ZlX2ZyZWVfcGFnZSh2b2lkKQogCXBhZ2UgZnJvbSBpdC4gKi8KIAog CWZzZWdfZnJlZV9wYWdlKGhlYWRlcl9wYWdlICsgSUJVRl9IRUFERVIgKyBJQlVGX1RSRUVfU0VH X0hFQURFUiwKLQkJICAgICAgIElCVUZfU1BBQ0VfSUQsIHBhZ2Vfbm8sICZtdHIpOworCQkgICAg ICAgSUJVRl9TUEFDRV9JRCwgcGFnZV9ubywgZmFsc2UsICZtdHIpOwogCiAjaWYgZGVmaW5lZCBV TklWX0RFQlVHX0ZJTEVfQUNDRVNTRVMgfHwgZGVmaW5lZCBVTklWX0RFQlVHCiAJYnVmX3BhZ2Vf cmVzZXRfZmlsZV9wYWdlX3dhc19mcmVlZChJQlVGX1NQQUNFX0lELCBwYWdlX25vKTsKCj09PSBt b2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvYnRyMGJ0ci5oJwotLS0gYS9z dG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvYnRyMGJ0ci5oCXJldmlkOnJveS5seXNlbmdAb3JhY2xl LmNvbS0yMDEzMDEyMzEzMTMyMS14bHZ2engybm9wYzRoejlnCisrKyBiL3N0b3JhZ2UvaW5ub2Jh c2UvaW5jbHVkZS9idHIwYnRyLmgJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMzAx MjMxNDUyMzItem0xZTgxeXp1dGNkNWM3awpAQCAtMSw2ICsxLDYgQEAKIC8qKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgogCi1Db3B5cmlnaHQgKGMpIDE5OTQsIDIwMTIsIE9yYWNsZSBhbmQvb3IgaXRzIGFm ZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitDb3B5cmlnaHQgKGMpIDE5OTQsIDIwMTMs IE9yYWNsZSBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiBDb3B5 cmlnaHQgKGMpIDIwMTIsIEZhY2Vib29rIEluYy4KIAogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKQEAg LTY3NiwxNSArNjc2LDE0IEBAIGJ0cl9wYWdlX2ZyZWUoCiAJX19hdHRyaWJ1dGVfXygobm9ubnVs bCkpOwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqLy8qKgogRnJlZXMgYSBmaWxlIHBhZ2UgdXNlZCBpbiBhbiBpbmRleCB0cmVl LiBDYW4gYmUgdXNlZCBhbHNvIHRvIEJMT0IKLWV4dGVybmFsIHN0b3JhZ2UgcGFnZXMsIGJlY2F1 c2UgdGhlIHBhZ2UgbGV2ZWwgMCBjYW4gYmUgZ2l2ZW4gYXMgYW4KLWFyZ3VtZW50LiAqLworZXh0 ZXJuYWwgc3RvcmFnZSBwYWdlcy4gKi8KIFVOSVZfSU5URVJOCiB2b2lkCiBidHJfcGFnZV9mcmVl X2xvdygKIC8qPT09PT09PT09PT09PT0qLwogCWRpY3RfaW5kZXhfdCoJaW5kZXgsCS8qITwgaW46 IGluZGV4IHRyZWUgKi8KIAlidWZfYmxvY2tfdCoJYmxvY2ssCS8qITwgaW46IGJsb2NrIHRvIGJl IGZyZWVkLCB4LWxhdGNoZWQgKi8KLQl1bGludAkJbGV2ZWwsCS8qITwgaW46IHBhZ2UgbGV2ZWwg Ki8KKwl1bGludAkJbGV2ZWwsCS8qITwgaW46IHBhZ2UgbGV2ZWwgKFVMSU5UX1VOREVGSU5FRD1C TE9CKSAqLwogCW10cl90KgkJbXRyKQkvKiE8IGluOiBtdHIgKi8KIAlfX2F0dHJpYnV0ZV9fKChu b25udWxsKSk7CiAjaWZkZWYgVU5JVl9CVFJfUFJJTlQKCj09PSBtb2RpZmllZCBmaWxlICdzdG9y YWdlL2lubm9iYXNlL2luY2x1ZGUvZnNwMGZzcC5oJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2lu Y2x1ZGUvZnNwMGZzcC5oCXJldmlkOnJveS5seXNlbmdAb3JhY2xlLmNvbS0yMDEzMDEyMzEzMTMy MS14bHZ2engybm9wYzRoejlnCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9mc3AwZnNw LmgJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMzAxMjMxNDUyMzItem0xZTgxeXp1 dGNkNWM3awpAQCAtMSw2ICsxLDYgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogCi1Db3B5cmln aHQgKGMpIDE5OTUsIDIwMTIsIE9yYWNsZSBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdo dHMgUmVzZXJ2ZWQuCitDb3B5cmlnaHQgKGMpIDE5OTUsIDIwMTMsIE9yYWNsZSBhbmQvb3IgaXRz IGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAKIFRoaXMgcHJvZ3JhbSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVy CiB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQpAQCAtNTY4LDcgKzU2OCwxMCBAQCBmc2VnX2ZyZWVfcGFn ZSgKIAlmc2VnX2hlYWRlcl90KglzZWdfaGVhZGVyLCAvKiE8IGluOiBzZWdtZW50IGhlYWRlciAq LwogCXVsaW50CQlzcGFjZSwJLyohPCBpbjogc3BhY2UgaWQgKi8KIAl1bGludAkJcGFnZSwJLyoh PCBpbjogcGFnZSBvZmZzZXQgKi8KLQltdHJfdCoJCW10cik7CS8qITwgaW4vb3V0OiBtaW5pLXRy YW5zYWN0aW9uICovCisJYm9vbAkJYWhpLAkvKiE8IGluOiB3aGV0aGVyIHdlIG1heSBuZWVkIHRv IGRyb3AKKwkJCQl0aGUgYWRhcHRpdmUgaGFzaCBpbmRleCAqLworCW10cl90KgkJbXRyKQkvKiE8 IGluL291dDogbWluaS10cmFuc2FjdGlvbiAqLworCV9fYXR0cmlidXRlX18oKG5vbm51bGwpKTsK IC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqLy8qKgogQ2hlY2tzIGlmIGEgc2luZ2xlIHBhZ2Ugb2YgYSBzZWdtZW50 IGlzIGZyZWUuCiBAcmV0dXJuCXRydWUgaWYgZnJlZSAqLwpAQCAtNTk0LDcgKzU5NywxMCBAQCBm c2VnX2ZyZWVfc3RlcCgKIAkJCQlyZXNpZGVzIG9uIHRoZSBmaXJzdCBwYWdlIG9mIHRoZSBmcmFn IGxpc3QKIAkJCQlvZiB0aGUgc2VnbWVudCwgdGhpcyBwb2ludGVyIGJlY29tZXMgb2Jzb2xldGUK IAkJCQlhZnRlciB0aGUgbGFzdCBmcmVlaW5nIHN0ZXAgKi8KLQltdHJfdCoJCW10cik7CS8qITwg aW4vb3V0OiBtaW5pLXRyYW5zYWN0aW9uICovCisJYm9vbAkJYWhpLAkvKiE8IGluOiB3aGV0aGVy IHdlIG1heSBuZWVkIHRvIGRyb3AKKwkJCQl0aGUgYWRhcHRpdmUgaGFzaCBpbmRleCAqLworCW10 cl90KgkJbXRyKQkvKiE8IGluL291dDogbWluaS10cmFuc2FjdGlvbiAqLworCV9fYXR0cmlidXRl X18oKG5vbm51bGwsIHdhcm5fdW51c2VkX3Jlc3VsdCkpOwogLyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBG cmVlcyBwYXJ0IG9mIGEgc2VnbWVudC4gRGlmZmVycyBmcm9tIGZzZWdfZnJlZV9zdGVwIGJlY2F1 c2UgdGhpcyBmdW5jdGlvbgogbGVhdmVzIHRoZSBoZWFkZXIgcGFnZSB1bmZyZWVkLgpAQCAtNjA1 LDcgKzYxMSwxMCBAQCBmc2VnX2ZyZWVfc3RlcF9ub3RfaGVhZGVyKAogLyo9PT09PT09PT09PT09 PT09PT09PT09Ki8KIAlmc2VnX2hlYWRlcl90KgloZWFkZXIsCS8qITwgaW46IHNlZ21lbnQgaGVh ZGVyIHdoaWNoIG11c3QgcmVzaWRlIG9uCiAJCQkJdGhlIGZpcnN0IGZyYWdtZW50IHBhZ2Ugb2Yg dGhlIHNlZ21lbnQgKi8KLQltdHJfdCoJCW10cik7CS8qITwgaW4vb3V0OiBtaW5pLXRyYW5zYWN0 aW9uICovCisJYm9vbAkJYWhpLAkvKiE8IGluOiB3aGV0aGVyIHdlIG1heSBuZWVkIHRvIGRyb3AK KwkJCQl0aGUgYWRhcHRpdmUgaGFzaCBpbmRleCAqLworCW10cl90KgkJbXRyKQkvKiE8IGluL291 dDogbWluaS10cmFuc2FjdGlvbiAqLworCV9fYXR0cmlidXRlX18oKG5vbm51bGwsIHdhcm5fdW51 c2VkX3Jlc3VsdCkpOwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogQ2hlY2tzIGlmIGEgcGFnZSBhZGRy ZXNzIGlzIGFuIGV4dGVudCBkZXNjcmlwdG9yIHBhZ2UgYWRkcmVzcy4KIEByZXR1cm4JVFJVRSBp ZiBhIGRlc2NyaXB0b3IgcGFnZSAqLwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jh c2UvaW5jbHVkZS9zcnYwc3J2LmgnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9zcnYw c3J2LmgJcmV2aWQ6cm95Lmx5c2VuZ0BvcmFjbGUuY29tLTIwMTMwMTIzMTMxMzIxLXhsdnZ6eDJu b3BjNGh6OWcKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3NydjBzcnYuaAlyZXZpZDpt YXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEzMDEyMzE0NTIzMi16bTFlODF5enV0Y2Q1YzdrCkBA IC04MjksNiArODI5LDkgQEAgc3RydWN0IGV4cG9ydF92YXJfdHsKIAl1bGludCBpbm5vZGJfcHVy Z2VfdHJ4X2lkX2FnZTsJCS8qITwgcndfbWF4X3RyeF9pZCAtIHB1cmdlZCB0cnhfaWQgKi8KIAl1 bGludCBpbm5vZGJfcHVyZ2Vfdmlld190cnhfaWRfYWdlOwkvKiE8IHJ3X21heF90cnhfaWQKIAkJ CQkJCS0gcHVyZ2VkIHZpZXcncyBtaW4gdHJ4X2lkICovCisJdWxpbnQgaW5ub2RiX2FoaV9kcm9w X2xvb2t1cHM7CQkvKiE8IG51bWJlciBvZiBhZGFwdGl2ZSBoYXNoCisJCQkJCQlpbmRleCBsb29r dXBzIHdoZW4gZnJlZWluZworCQkJCQkJZmlsZSBwYWdlcyAqLwogI2VuZGlmIC8qIFVOSVZfREVC VUcgKi8KIH07CiAKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL3RyeC90cngw cHVyZ2UuY2MnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvdHJ4L3RyeDBwdXJnZS5jYwlyZXZpZDpy b3kubHlzZW5nQG9yYWNsZS5jb20tMjAxMzAxMjMxMzEzMjEteGx2dnp4Mm5vcGM0aHo5ZworKysg Yi9zdG9yYWdlL2lubm9iYXNlL3RyeC90cngwcHVyZ2UuY2MJcmV2aWQ6bWFya28ubWFrZWxhQG9y YWNsZS5jb20tMjAxMzAxMjMxNDUyMzItem0xZTgxeXp1dGNkNWM3awpAQCAtMSw2ICsxLDYgQEAK IC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKgogCi1Db3B5cmlnaHQgKGMpIDE5OTYsIDIwMTIsIE9yYWNs ZSBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitDb3B5cmlnaHQg KGMpIDE5OTYsIDIwMTMsIE9yYWNsZSBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMg UmVzZXJ2ZWQuCiAKIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiB0aGUgdGVybXMgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQpA QCAtMzM1LDcgKzMzNSw3IEBAIHRyeF9wdXJnZV9mcmVlX3NlZ21lbnQoCiAJCX0KIAogCQlpZiAo ZnNlZ19mcmVlX3N0ZXBfbm90X2hlYWRlcigKLQkJCXNlZ19oZHIgKyBUUlhfVU5ET19GU0VHX0hF QURFUiwgJm10cikpIHsKKwkJCSAgICBzZWdfaGRyICsgVFJYX1VORE9fRlNFR19IRUFERVIsIGZh bHNlLCAmbXRyKSkgewogCiAJCQlicmVhazsKIAkJfQpAQCAtMzc0LDcgKzM3NCw3IEBAIHRyeF9w dXJnZV9mcmVlX3NlZ21lbnQoCiAJCWlzIG5vdCBmbG9vZGVkIHdpdGggYnVmZmVyZml4ZWQgcGFn ZXM6IHNlZSB0aGUgbm90ZSBpbgogCQlmc3AwZnNwLmNjLiAqLwogCi0JfSB3aGlsZSghZnNlZ19m cmVlX3N0ZXAoc2VnX2hkciArIFRSWF9VTkRPX0ZTRUdfSEVBREVSLCAmbXRyKSk7CisJfSB3aGls ZSAoIWZzZWdfZnJlZV9zdGVwKHNlZ19oZHIgKyBUUlhfVU5ET19GU0VHX0hFQURFUiwgZmFsc2Us ICZtdHIpKTsKIAogCWhpc3Rfc2l6ZSA9IG10cl9yZWFkX3VsaW50KHJzZWdfaGRyICsgVFJYX1JT RUdfSElTVE9SWV9TSVpFLAogCQkJCSAgIE1MT0dfNEJZVEVTLCAmbXRyKTsKCj09PSBtb2RpZmll ZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL3RyeC90cngwdW5kby5jYycKLS0tIGEvc3RvcmFnZS9p bm5vYmFzZS90cngvdHJ4MHVuZG8uY2MJcmV2aWQ6cm95Lmx5c2VuZ0BvcmFjbGUuY29tLTIwMTMw MTIzMTMxMzIxLXhsdnZ6eDJub3BjNGh6OWcKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS90cngvdHJ4 MHVuZG8uY2MJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMzAxMjMxNDUyMzItem0x ZTgxeXp1dGNkNWM3awpAQCAtMSw2ICsxLDYgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogCi1D b3B5cmlnaHQgKGMpIDE5OTYsIDIwMTIsIE9yYWNsZSBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMuIEFs bCBSaWdodHMgUmVzZXJ2ZWQuCitDb3B5cmlnaHQgKGMpIDE5OTYsIDIwMTMsIE9yYWNsZSBhbmQv b3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAKIFRoaXMgcHJvZ3JhbSBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0 IHVuZGVyCiB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQpAQCAtOTgzLDcgKzk4Myw3IEBAIHRyeF91bmRv X2ZyZWVfcGFnZSgKIAkJICAgIHVuZG9fcGFnZSArIFRSWF9VTkRPX1BBR0VfSERSICsgVFJYX1VO RE9fUEFHRV9OT0RFLCBtdHIpOwogCiAJZnNlZ19mcmVlX3BhZ2UoaGVhZGVyX3BhZ2UgKyBUUlhf VU5ET19TRUdfSERSICsgVFJYX1VORE9fRlNFR19IRUFERVIsCi0JCSAgICAgICBzcGFjZSwgcGFn ZV9ubywgbXRyKTsKKwkJICAgICAgIHNwYWNlLCBwYWdlX25vLCBmYWxzZSwgbXRyKTsKIAogCWxh c3RfYWRkciA9IGZsc3RfZ2V0X2xhc3QoaGVhZGVyX3BhZ2UgKyBUUlhfVU5ET19TRUdfSERSCiAJ CQkJICArIFRSWF9VTkRPX1BBR0VfTElTVCwgbXRyKTsKQEAgLTEyMjcsNyArMTIyNyw3IEBAIHRy eF91bmRvX3NlZ19mcmVlKAogCiAJCWZpbGVfc2VnID0gc2VnX2hlYWRlciArIFRSWF9VTkRPX0ZT RUdfSEVBREVSOwogCi0JCWZpbmlzaGVkID0gZnNlZ19mcmVlX3N0ZXAoZmlsZV9zZWcsICZtdHIp OworCQlmaW5pc2hlZCA9IGZzZWdfZnJlZV9zdGVwKGZpbGVfc2VnLCBmYWxzZSwgJm10cik7CiAK IAkJaWYgKGZpbmlzaGVkKSB7CiAJCQkvKiBVcGRhdGUgdGhlIHJzZWcgaGVhZGVyICovCgpObyBi dW5kbGUgKHJlYXNvbjogdXNlbGVzcyBmb3IgcHVzaCBlbWFpbHMpLg==