From: marko.makela Date: June 12 2012 9:50am Subject: bzr push into mysql-trunk-wl6255 branch (marko.makela:3963 to 3966) WL#6255 List-Archive: http://lists.mysql.com/commits/144209 Message-Id: <20120612095051.25948.82815.3966@x220> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDM5NjYgTWFya28gTcOka2Vsw6QJMjAxMi0wNi0xMgogICAgICBXTCM2MjU1IFBvcnRhYmlsaXR5 IGZpeC4gVXNlIHV0X3NucHJpbnRmIGluc3RlYWQgb2YgbXlfc25wcmludGYoKSwKICAgICAgc28g dGhhdCBVSU5UNjRQRiB3aWxsIHdvcmsgYXMgZGVzaXJlZCBvbiBXaW5kb3dzIHBsYXRmb3Jtcy4K CiAgICBtb2RpZmllZDoKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9oYW5kbGVyL2hhbmRsZXIwYWx0 ZXIuY2MKIDM5NjUgTWFya28gTcOka2Vsw6QJMjAxMi0wNi0xMgogICAgICBXTCM2MjU1IEJMT0Ig YnVnIGZpeCAocGFydCAxIG9mIDIpLgogICAgICAKICAgICAgV2hlbiByZWJ1aWxkaW5nIGEgdGFi bGUgb25saW5lLCBjaGVjayBpZiB0aGUgY3JlYXRpbmcgdHJhbnNhY3Rpb24gb2YgdGhlCiAgICAg IHJlY29yZCB3YXMgcm9sbGVkIGJhY2ssIHdoaWxlIGhvbGRpbmcgYW4gUy1sYXRjaCBvbiB0aGUg b3JpZ2luYWwgY2x1c3RlcmVkCiAgICAgIGluZGV4IHRyZWUgb2YgdGhlIHRhYmxlLiBIb2xkaW5n IHRoZSB0cmVlIGxhdGNoIHdpbGwgcHJldmVudCBvdGhlciB0aHJlYWRzCiAgICAgIGZyb20gZnJl ZWluZyBhbnkgb2ZmLXBhZ2UgY29sdW1ucy4KICAgICAgCiAgICAgIFRPRE86IFdoZW4gY3JlYXRp bmcgYSBzZWNvbmRhcnkgaW5kZXggb25saW5lLCBwcmV2ZW50IHB1cmdlIGZyb20gZnJlZWluZwog ICAgICBleHRlcm5hbGx5IHN0b3JlZCBjb2x1bW5zLCBhbmQga2VlcCB0cmFjayBvbiByb2xsZWQt YmFjayBpbnNlcnRzLgogICAgICAKICAgICAgcm93X2xvZ190YWJsZV9hcHBseV9jb252ZXJ0X21y ZWMoKTogQWRkIHRoZSBwYXJhbWV0ZXIgdHJ4X2lkIGZvciBwZXJmb3JtaW5nCiAgICAgIHRoZSBy b3dfbG9nX3RhYmxlX2lzX3JvbGxiYWNrKCkgY2hlY2suIFJldHVybiBOVUxMIGFuZCAqZXJyb3I9 REJfU1VDQ0VTUwogICAgICBpZiB0aGUgcmVjb3JkIGhhcyBiZWVuIHJvbGxlZCBiYWNrLiBJZiB0 aGUgcmVjb3JkIGNvbnRhaW5zIG9mZi1wYWdlIGNvbHVtbnMsCiAgICAgIFMtbGF0Y2ggdGhlIGNs dXN0ZXJlZCBpbmRleCBvZiB0aGUgb3JpZ2luYWwgdGFibGUuCiAgICAgIAogICAgICByb3dfbG9n X3RhYmxlX2FwcGx5X2luc2VydCgpLCByb3dfbG9nX3RhYmxlX2FwcGx5X3VwZGF0ZSgpOiBBZGQg dGhlCiAgICAgIHBhcmFtZXRlciB0cnhfaWQgZm9yIHBlcmZvcm1pbmcgdGhlIHJvd19sb2dfdGFi bGVfaXNfcm9sbGJhY2soKSBjaGVjay4KICAgICAgQWxsb3cgcm93X2xvZ190YWJsZV9hcHBseV9j b252ZXJ0X21yZWMoKSB0byByZXR1cm4gTlVMTCB3aGVuIHRoZXJlIGlzCiAgICAgIG5vIGVycm9y LCBidXQgdGhlIHRyYW5zYWN0aW9uIGhhcyBiZWVuIHJvbGxlZCBiYWNrLgogICAgICAKICAgICAg cm93X2xvZ190YWJsZV9hcHBseV9vcCgpOiBSZW1vdmUgdGhlIHJvd19sb2dfdGFibGVfaXNfcm9s bGJhY2soKSBjYWxscy4KICAgICAgCiAgICAgIHJvd19tZXJnZV9pbnNlcnRfaW5kZXhfdHVwbGVz KCk6IFdoZW4gdGhlIHJlY29yZCBjb250YWlucyBvZmYtcGFnZSBjb2x1bW5zLAogICAgICBwcm90 ZWN0IHRoZSBCTE9CIGZldGNoIGJ5IGNsdXN0ZXJlZCBpbmRleCBTLWxhdGNoIHdoZW4gcmVidWls ZGluZyB0YWJsZSwKICAgICAgYW5kIGJ5IHJlLWNoZWNraW5nIGlmIHRoZSB0cmFuc2FjdGlvbiB3 YXMgcm9sbGVkIGJhY2suCgogICAgbW9kaWZpZWQ6CiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2Uvcm93 L3JvdzBsb2cuY2MKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MG1lcmdlLmNjCiAzOTY0 IE1hcmtvIE3DpGtlbMOkCTIwMTItMDYtMTIKICAgICAgRml4IFdMIzYyNTUgcmI6MTEwNSBQcm9i bGVtIDE1LgogICAgICAKICAgICAgaW5ub2Jhc2VfY29sX3RvX215c3FsKCk6IFNraXAgREFUQV9C TE9CIGZpZWxkcy4KICAgICAgVGhlIHBvaW50ZXIgY2FuIGJlY29tZSBpbnZhbGlkIGJ5IHRoZSB0 aW1lIGl0IGlzIGRlcmVmZXJlbmNlZAogICAgICBpbiBoYW5kbGVyOjpwcmludF9rZXlkdXBfZXJy b3IoKS4KICAgICAgCiAgICAgIGlubm9iYXNlX3JlY190b19teXNxbCgpOiBTa2lwIGV4dGVybmFs bHkgc3RvcmVkIGZpZWxkcy4KCiAgICBtb2RpZmllZDoKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9o YW5kbGVyL2hhbmRsZXIwYWx0ZXIuY2MKIDM5NjMgTWFya28gTcOka2Vsw6QJMjAxMi0wNi0xMQog ICAgICBGaXggV0wjNjI1NSByYjoxMTA1IFByb2JsZW0gMTQuCiAgICAgIAogICAgICByb3dfbG9n X3RhYmxlX2FwcGx5X29wKCk6IEludm9rZSByZWNfb2Zmc19zZXRfbl9maWVsZHMoKSBiZWZvcmUK ICAgICAgcmVjb21wdXRpbmcgb2Zmc2V0cy4gVGhpcyBvbWlzc2lvbiBjYXVzZWQgb2Zmc2V0cyB0 byBiZSBjb21wdXRlZCBvbgogICAgICBhbiBpbmRleCBwcmVmaXggb25seS4KICAgICAgCiAgICAg IHJvd19sb2dfdGFibGVfYXBwbHlfb3BzKCk6IEFsbG9jYXRlIGVub3VnaCBzcGFjZSBmb3Igb2Zm c2V0cywgaW4gY2FzZQogICAgICBuZXdfaW5kZXgtPm5fdW5pcSArIDIgZXhjZWVkcyBpbmRleC0+ bl9maWVsZHMuCgogICAgbW9kaWZpZWQ6CiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzBs b2cuY2MKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvaGFuZGxlci9oYW5kbGVy MGFsdGVyLmNjJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2hhbmRsZXIvaGFuZGxlcjBhbHRlci5j YwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDYxMTIwMDA1MS11NnU1cHpvbGZo NnhsenZ4CisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvaGFuZGxlci9oYW5kbGVyMGFsdGVyLmNjCXJl dmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTIwNjEyMDk0OTQ4LWh5cGZmM2RiMWZ6OHJq OXYKQEAgLTk5MCwxMCArOTkwLDkgQEAgaW5ub2Jhc2VfY29sX3RvX215c3FsKAogCQlicmVhazsK IAogCWNhc2UgREFUQV9CTE9COgotCQkvKiBTdG9yZSBhIHBvaW50ZXIgdG8gdGhlIEJMT0IgYnVm ZmVyIHRvIGRlc3Q6IHRoZSBCTE9CIHdhcwotCQlhbHJlYWR5IGNvcGllZCB0byB0aGUgYnVmZmVy IGluIHJvd19zZWxfc3RvcmVfbXlzcWxfcmVjICovCi0KLQkJcm93X215c3FsX3N0b3JlX2Jsb2Jf cmVmKGRlc3QsIGZsZW4sIGRhdGEsIGxlbik7CisJCS8qIFNraXAgTXlTUUwgQkxPQnMgd2hlbiBy ZXBvcnRpbmcgYW4gZXJyb25lb3VzIHJvdworCQlkdXJpbmcgaW5kZXggY3JlYXRpb24gb3IgdGFi bGUgcmVidWlsZC4gKi8KKwkJZmllbGQtPnNldF9udWxsKCk7CiAJCWJyZWFrOwogCiAjaWZkZWYg VU5JVl9ERUJVRwpAQCAtMTA2OCw3ICsxMDY3LDggQEAgaW5ub2Jhc2VfcmVjX3RvX215c3FsKAog CiAJCWlwb3MgPSBkaWN0X2luZGV4X2dldF9udGhfY29sX3BvcyhpbmRleCwgY29sX25vKTsKIAot CQlpZiAoVU5JVl9VTkxJS0VMWShpcG9zID09IFVMSU5UX1VOREVGSU5FRCkpIHsKKwkJaWYgKGlw b3MgPT0gVUxJTlRfVU5ERUZJTkVECisJCSAgICB8fCByZWNfb2Zmc19udGhfZXh0ZXJuKG9mZnNl dHMsIGlwb3MpKSB7CiBudWxsX2ZpZWxkOgogCQkJZmllbGQtPnNldF9udWxsKCk7CiAJCQljb250 aW51ZTsKQEAgLTE4MTQsNyArMTgxNCw3IEBAIGlubm9iYXNlX2NyZWF0ZV90ZW1wb3JhcnlfdGFi bGVuYW1lKAogCiAJY2hhcioJbmFtZSA9IHN0YXRpY19jYXN0PGNoYXIqPihtZW1faGVhcF9hbGxv YyhoZWFwLCBzaXplKSk7CiAJbWVtY3B5KG5hbWUsIGRidGFiLCBkYmxlbik7Ci0JbXlfc25wcmlu dGYobmFtZSArIGRibGVuLCBzaXplIC0gZGJsZW4sCisJdXRfc25wcmludGYobmFtZSArIGRibGVu LCBzaXplIC0gZGJsZW4sCiAJCSAgICB0bXBfZmlsZV9wcmVmaXggIi1pYiIgVUlOVDY0UEYsIGlk KTsKIAlyZXR1cm4obmFtZSk7CiB9Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFz ZS9yb3cvcm93MGxvZy5jYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MGxvZy5jYwly ZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDYxMTIwMDA1MS11NnU1cHpvbGZoNnhs enZ4CisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzBsb2cuY2MJcmV2aWQ6bWFya28ubWFr ZWxhQG9yYWNsZS5jb20tMjAxMjA2MTIwOTQ5NDgtaHlwZmYzZGIxZno4cmo5dgpAQCAtMTAyMiwy MSArMTAyMiwyOCBAQCByb3dfbG9nX3RhYmxlX2lzX3JvbGxiYWNrKAogCiAvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogQ29udmVydHMg YSBsb2cgcmVjb3JkIHRvIGEgdGFibGUgcm93LgotQHJldHVybiBjb252ZXJ0ZWQgcm93LCBvciBO VUxMIGlmIHRoZSBjb252ZXJzaW9uIGZhaWxzICovCitAcmV0dXJuIGNvbnZlcnRlZCByb3csIG9y IE5VTEwgaWYgdGhlIGNvbnZlcnNpb24gZmFpbHMKK29yIHRoZSB0cmFuc2FjdGlvbiBoYXMgYmVl biByb2xsZWQgYmFjayAqLwogc3RhdGljIF9fYXR0cmlidXRlX18oKG5vbm51bGwsIHdhcm5fdW51 c2VkX3Jlc3VsdCkpCiBjb25zdCBkdHVwbGVfdCoKIHJvd19sb2dfdGFibGVfYXBwbHlfY29udmVy dF9tcmVjKAogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAJY29uc3QgbXJlY190 KgkJbXJlYywJCS8qITwgaW46IG1lcmdlIHJlY29yZCAqLwotCWNvbnN0IGRpY3RfaW5kZXhfdCoJ aW5kZXgsCQkvKiE8IGluOiBpbmRleCBvZiBtcmVjICovCisJZGljdF9pbmRleF90KgkJaW5kZXgs CQkvKiE8IGluOiBpbmRleCBvZiBtcmVjICovCiAJY29uc3QgdWxpbnQqCQlvZmZzZXRzLAkvKiE8 IGluOiBvZmZzZXRzIG9mIG1yZWMgKi8KIAljb25zdCByb3dfbG9nX3QqCWxvZywJCS8qITwgaW46 IHJlYnVpbGQgY29udGV4dCAqLwogCW1lbV9oZWFwX3QqCQloZWFwLAkJLyohPCBpbi9vdXQ6IG1l bW9yeSBoZWFwICovCisJdHJ4X2lkX3QJCXRyeF9pZCwJCS8qITwgaW46IERCX1RSWF9JRCBvZiBt cmVjICovCiAJZGJlcnJfdCoJCWVycm9yKQkJLyohPCBvdXQ6IERCX1NVQ0NFU1Mgb3IKIAkJCQkJ CXJlYXNvbiBvZiBmYWlsdXJlICovCiB7CiAJZHR1cGxlX3QqCXJvdzsKIAorCWlmIChyb3dfbG9n X3RhYmxlX2lzX3JvbGxiYWNrKGluZGV4LCB0cnhfaWQpKSB7CisJCXJvdyA9IE5VTEw7CisJCWdv dG8gZnVuY19leGl0OworCX0KKwogCS8qIFRoaXMgaXMgYmFzZWQgb24gcm93X2J1aWxkKCkuICov CiAJaWYgKGxvZy0+YWRkX2NvbHMpIHsKIAkJcm93ID0gZHR1cGxlX2NvcHkobG9nLT5hZGRfY29s cywgaGVhcCk7CkBAIC0xMDUxLDYgKzEwNTgsMTUgQEAgcm93X2xvZ190YWJsZV9hcHBseV9jb252 ZXJ0X21yZWMoCiAJCWRpY3RfdGFibGVfY29weV90eXBlcyhyb3csIGxvZy0+dGFibGUpOwogCX0K IAorCWlmIChyZWNfb2Zmc19hbnlfZXh0ZXJuKG9mZnNldHMpKSB7CisJCXJ3X2xvY2tfc19sb2Nr KCZpbmRleC0+bG9jayk7CisJfQorCisJaWYgKHJvd19sb2dfdGFibGVfaXNfcm9sbGJhY2soaW5k ZXgsIHRyeF9pZCkpIHsKKwkJcm93ID0gTlVMTDsKKwkJZ290byBza2lwX3JvdzsKKwl9CisKIAlm b3IgKHVsaW50IGkgPSAwOyBpIDwgcmVjX29mZnNfbl9maWVsZHMob2Zmc2V0cyk7IGkrKykgewog CQljb25zdCBkaWN0X2ZpZWxkX3QqCWluZF9maWVsZAogCQkJPSBkaWN0X2luZGV4X2dldF9udGhf ZmllbGQoaW5kZXgsIGkpOwpAQCAtMTA4MSw2ICsxMDk3LDcgQEAgcm93X2xvZ190YWJsZV9hcHBs eV9jb252ZXJ0X21yZWMoCiAJCWNvbnN0IHZvaWQqCQlkYXRhOwogCiAJCWlmIChyZWNfb2Zmc19u dGhfZXh0ZXJuKG9mZnNldHMsIGkpKSB7CisJCQl1dF9hZChyZWNfb2Zmc19hbnlfZXh0ZXJuKG9m ZnNldHMpKTsKIAkJCWRhdGEgPSBidHJfcmVjX2NvcHlfZXh0ZXJuYWxseV9zdG9yZWRfZmllbGQo CiAJCQkJbXJlYywgb2Zmc2V0cywKIAkJCQlkaWN0X3RhYmxlX3ppcF9zaXplKGluZGV4LT50YWJs ZSksCkBAIC0xMTIwLDYgKzExMzcsMTIgQEAgcm93X2xvZ190YWJsZV9hcHBseV9jb252ZXJ0X21y ZWMoCiAJCQkJCQkgZGZpZWxkX2dldF90eXBlKGRmaWVsZCkpKTsKIAl9CiAKK3NraXBfcm93Ogor CWlmIChyZWNfb2Zmc19hbnlfZXh0ZXJuKG9mZnNldHMpKSB7CisJCXJ3X2xvY2tfc191bmxvY2so JmluZGV4LT5sb2NrKTsKKwl9CisKK2Z1bmNfZXhpdDoKIAkqZXJyb3IgPSBEQl9TVUNDRVNTOwog CXJldHVybihyb3cpOwogfQpAQCAtMTIwNCwyMCArMTIyNywyMSBAQCBkYmVycl90CiByb3dfbG9n X3RhYmxlX2FwcGx5X2luc2VydCgKIC8qPT09PT09PT09PT09PT09PT09PT09PT0qLwogCXF1ZV90 aHJfdCoJCXRociwJCS8qITwgaW46IHF1ZXJ5IGdyYXBoICovCi0JY29uc3QgbXJlY190KgkJbXJl YywJCS8qITwgaW46IG1lcmdlIHJlY29yZCAqLworCWNvbnN0IG1yZWNfdCoJCW1yZWMsCQkvKiE8 IGluOiByZWNvcmQgdG8gaW5zZXJ0ICovCiAJY29uc3QgdWxpbnQqCQlvZmZzZXRzLAkvKiE8IGlu OiBvZmZzZXRzIG9mIG1yZWMgKi8KIAltZW1faGVhcF90KgkJb2Zmc2V0c19oZWFwLAkvKiE8IGlu L291dDogbWVtb3J5IGhlYXAKIAkJCQkJCXRoYXQgY2FuIGJlIGVtcHRpZWQgKi8KIAltZW1faGVh cF90KgkJaGVhcCwJCS8qITwgaW4vb3V0OiBtZW1vcnkgaGVhcCAqLwotCXJvd19tZXJnZV9kdXBf dCoJZHVwKQkJLyohPCBpbi9vdXQ6IGZvciByZXBvcnRpbmcKKwlyb3dfbWVyZ2VfZHVwX3QqCWR1 cCwJCS8qITwgaW4vb3V0OiBmb3IgcmVwb3J0aW5nCiAJCQkJCQlkdXBsaWNhdGUga2V5IGVycm9y cyAqLworCXRyeF9pZF90CQl0cnhfaWQpCQkvKiE8IGluOiBEQl9UUlhfSUQgb2YgbXJlYyAqLwog ewogCWNvbnN0IHJvd19sb2dfdCpsb2cJPSBkdXAtPmluZGV4LT5vbmxpbmVfbG9nOwogCWRiZXJy X3QJCWVycm9yOwogCWNvbnN0IGR0dXBsZV90Kglyb3cJPSByb3dfbG9nX3RhYmxlX2FwcGx5X2Nv bnZlcnRfbXJlYygKLQkJbXJlYywgZHVwLT5pbmRleCwgb2Zmc2V0cywgbG9nLCBoZWFwLCAmZXJy b3IpOworCQltcmVjLCBkdXAtPmluZGV4LCBvZmZzZXRzLCBsb2csIGhlYXAsIHRyeF9pZCwgJmVy cm9yKTsKIAotCXV0X2FkKCFyb3cgPT0gKGVycm9yICE9IERCX1NVQ0NFU1MpKTsKKwl1dF9hZChl cnJvciA9PSBEQl9TVUNDRVNTIHx8ICFyb3cpOwogCiAJaWYgKHJvdykgewogCQllcnJvciA9IHJv d19sb2dfdGFibGVfYXBwbHlfaW5zZXJ0X2xvdygKQEAgLTE0MzEsMTMgKzE0NTUsMTQgQEAgcm93 X2xvZ190YWJsZV9hcHBseV91cGRhdGUoCiAJdWxpbnQJCQluZXdfdHJ4X2lkX2NvbCwJLyohPCBp bjogcG9zaXRpb24gb2YKIAkJCQkJCURCX1RSWF9JRCBpbiB0aGUgbmV3CiAJCQkJCQljbHVzdGVy ZWQgaW5kZXggKi8KLQljb25zdCBtcmVjX3QqCQltcmVjLAkJLyohPCBpbjogbWVyZ2UgcmVjb3Jk ICovCisJY29uc3QgbXJlY190KgkJbXJlYywJCS8qITwgaW46IG5ldyB2YWx1ZSAqLwogCWNvbnN0 IHVsaW50KgkJb2Zmc2V0cywJLyohPCBpbjogb2Zmc2V0cyBvZiBtcmVjICovCiAJbWVtX2hlYXBf dCoJCW9mZnNldHNfaGVhcCwJLyohPCBpbi9vdXQ6IG1lbW9yeSBoZWFwCiAJCQkJCQl0aGF0IGNh biBiZSBlbXB0aWVkICovCiAJbWVtX2hlYXBfdCoJCWhlYXAsCQkvKiE8IGluL291dDogbWVtb3J5 IGhlYXAgKi8KIAlyb3dfbWVyZ2VfZHVwX3QqCWR1cCwJCS8qITwgaW4vb3V0OiBmb3IgcmVwb3J0 aW5nCiAJCQkJCQlkdXBsaWNhdGUga2V5IGVycm9ycyAqLworCXRyeF9pZF90CQl0cnhfaWQsCQkv KiE8IGluOiBEQl9UUlhfSUQgb2YgbXJlYyAqLwogCWNvbnN0IGR0dXBsZV90KgkJb2xkX3BrKQkJ LyohPCBpbjogUFJJTUFSWSBLRVkgYW5kCiAJCQkJCQlEQl9UUlhfSUQsREJfUk9MTF9QVFIKIAkJ CQkJCW9mIHRoZSBvbGQgdmFsdWUsCkBAIC0xNDU3LDkgKzE0ODIsOSBAQCByb3dfbG9nX3RhYmxl X2FwcGx5X3VwZGF0ZSgKIAkgICAgICArIChkdXAtPmluZGV4LT5vbmxpbmVfbG9nLT5zYW1lX3Br ID8gMCA6IDIpKTsKIAogCXJvdyA9IHJvd19sb2dfdGFibGVfYXBwbHlfY29udmVydF9tcmVjKAot CQltcmVjLCBkdXAtPmluZGV4LCBvZmZzZXRzLCBsb2csIGhlYXAsICZlcnJvcik7CisJCW1yZWMs IGR1cC0+aW5kZXgsIG9mZnNldHMsIGxvZywgaGVhcCwgdHJ4X2lkLCAmZXJyb3IpOwogCi0JdXRf YWQoIXJvdyA9PSAoZXJyb3IgIT0gREJfU1VDQ0VTUykpOworCXV0X2FkKGVycm9yID09IERCX1NV Q0NFU1MgfHwgIXJvdyk7CiAKIAlpZiAoIXJvdykgewogCQlnb3RvIGVycl9leGl0OwpAQCAtMTQ5 MSw4ICsxNTE2LDggQEAgaW5zZXJ0OgogCQllcnJvciA9IHJvd19sb2dfdGFibGVfYXBwbHlfaW5z ZXJ0X2xvdygKIAkJCXRociwgcm93LCBvZmZzZXRzX2hlYXAsIGhlYXAsIGxvZy0+dGFibGUsIGR1 cCk7CiAKLQkJaWYgKGVycm9yICE9IERCX1NVQ0NFU1MpIHsKIGVycl9leGl0OgorCQlpZiAoZXJy b3IgIT0gREJfU1VDQ0VTUykgewogCQkJLyogUmVwb3J0IHRoZSBlcnJvbmVvdXMgcm93IHVzaW5n IHRoZSBvbGQKIAkJCXZlcnNpb24gb2YgdGhlIHRhYmxlLiAqLwogCQkJaW5ub2Jhc2VfcmVjX3Rv X215c3FsKApAQCAtMTc2MywxMyArMTc4OCw5IEBAIHJvd19sb2dfdGFibGVfYXBwbHlfb3AoCiAJ CQkJPSByZWNfZ2V0X250aF9maWVsZCgKIAkJCQkJbXJlYywgb2Zmc2V0cywgdHJ4X2lkX2NvbCwg Jmxlbik7CiAJCQl1dF9hZChsZW4gPT0gREFUQV9UUlhfSURfTEVOKTsKLQkJCWlmICghcm93X2xv Z190YWJsZV9pc19yb2xsYmFjaygKLQkJCQkgICAgZHVwLT5pbmRleCwKLQkJCQkgICAgdHJ4X3Jl YWRfdHJ4X2lkKGRiX3RyeF9pZCkpKSB7Ci0JCQkJKmVycm9yID0gcm93X2xvZ190YWJsZV9hcHBs eV9pbnNlcnQoCi0JCQkJCXRociwgbXJlYywgb2Zmc2V0cywgb2Zmc2V0c19oZWFwLAotCQkJCQlo ZWFwLCBkdXApOwotCQkJfQorCQkJKmVycm9yID0gcm93X2xvZ190YWJsZV9hcHBseV9pbnNlcnQo CisJCQkJdGhyLCBtcmVjLCBvZmZzZXRzLCBvZmZzZXRzX2hlYXAsCisJCQkJaGVhcCwgZHVwLCB0 cnhfcmVhZF90cnhfaWQoZGJfdHJ4X2lkKSk7CiAJCX0KIAkJYnJlYWs7CiAKQEAgLTE5MzQsMTQg KzE5NTUsMTAgQEAgcm93X2xvZ190YWJsZV9hcHBseV9vcCgKIAkJCQk9IHJlY19nZXRfbnRoX2Zp ZWxkKAogCQkJCQltcmVjLCBvZmZzZXRzLCB0cnhfaWRfY29sLCAmbGVuKTsKIAkJCXV0X2FkKGxl biA9PSBEQVRBX1RSWF9JRF9MRU4pOwotCQkJaWYgKCFyb3dfbG9nX3RhYmxlX2lzX3JvbGxiYWNr KAotCQkJCSAgICBkdXAtPmluZGV4LAotCQkJCSAgICB0cnhfcmVhZF90cnhfaWQoZGJfdHJ4X2lk KSkpIHsKLQkJCQkqZXJyb3IgPSByb3dfbG9nX3RhYmxlX2FwcGx5X3VwZGF0ZSgKLQkJCQkJdGhy LCB0cnhfaWRfY29sLCBuZXdfdHJ4X2lkX2NvbCwKLQkJCQkJbXJlYywgb2Zmc2V0cywgb2Zmc2V0 c19oZWFwLAotCQkJCQloZWFwLCBkdXAsIG9sZF9wayk7Ci0JCQl9CisJCQkqZXJyb3IgPSByb3df bG9nX3RhYmxlX2FwcGx5X3VwZGF0ZSgKKwkJCQl0aHIsIHRyeF9pZF9jb2wsIG5ld190cnhfaWRf Y29sLAorCQkJCW1yZWMsIG9mZnNldHMsIG9mZnNldHNfaGVhcCwKKwkJCQloZWFwLCBkdXAsIHRy eF9yZWFkX3RyeF9pZChkYl90cnhfaWQpLCBvbGRfcGspOwogCQl9CiAKIAkJYnJlYWs7Cgo9PT0g bW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MG1lcmdlLmNjJwotLS0gYS9z dG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwbWVyZ2UuY2MJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNs ZS5jb20tMjAxMjA2MTEyMDAwNTEtdTZ1NXB6b2xmaDZ4bHp2eAorKysgYi9zdG9yYWdlL2lubm9i YXNlL3Jvdy9yb3cwbWVyZ2UuY2MJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA2 MTIwOTQ5NDgtaHlwZmYzZGIxZno4cmo5dgpAQCAtMjMxMiwxMCArMjMxMiw0MyBAQCByb3dfbWVy Z2VfaW5zZXJ0X2luZGV4X3R1cGxlcygKIAkJCX0KIAogCQkJaWYgKG5fZXh0KSB7Ci0JCQkJcm93 X21lcmdlX2NvcHlfYmxvYnMoCi0JCQkJCW1yZWMsIG9mZnNldHMsCi0JCQkJCWRpY3RfdGFibGVf emlwX3NpemUob2xkX3RhYmxlKSwKLQkJCQkJZHR1cGxlLCB0dXBsZV9oZWFwKTsKKwkJCQlkaWN0 X2luZGV4X3QqCW9sZF9pbmRleAorCQkJCQk9IGRpY3RfdGFibGVfZ2V0X2ZpcnN0X2luZGV4KAor CQkJCQkJb2xkX3RhYmxlKTsKKworCQkJCWlmIChkaWN0X2luZGV4X2lzX29ubGluZV9kZGwob2xk X2luZGV4KSkgeworCQkJCQkvKiBDb3B5IHRoZSBvZmYtcGFnZSBjb2x1bW5zIHdoaWxlCisJCQkJ CWhvbGRpbmcgb2xkX2luZGV4LT5sb2NrLCBzbworCQkJCQl0aGF0IHRoZXkgY2Fubm90IGJlIGZy ZWVkIGJ5CisJCQkJCWEgcm9sbGJhY2sgb2YgYSBmcmVzaCBpbnNlcnQuICovCisJCQkJCXJ3X2xv Y2tfc19sb2NrKCZvbGRfaW5kZXgtPmxvY2spOworCisJCQkJCWlmIChyb3dfbWVyZ2Vfc2tpcF9y ZWMoCisJCQkJCQkgICAgbXJlYywgaW5kZXgsIG9sZF9pbmRleCwKKwkJCQkJCSAgICBvZmZzZXRz KSkgeworCQkJCQkJLy8gUm9sbGJhY2s6IHNraXAgdGhlIHJlY29yZC4KKwkJCQkJCXJ3X2xvY2tf c191bmxvY2soCisJCQkJCQkJJm9sZF9pbmRleC0+bG9jayk7CisJCQkJCQljb250aW51ZTsKKwkJ CQkJfQorCisJCQkJCXJvd19tZXJnZV9jb3B5X2Jsb2JzKAorCQkJCQkJbXJlYywgb2Zmc2V0cywK KwkJCQkJCWRpY3RfdGFibGVfemlwX3NpemUob2xkX3RhYmxlKSwKKwkJCQkJCWR0dXBsZSwgdHVw bGVfaGVhcCk7CisKKwkJCQkJcndfbG9ja19zX3VubG9jaygmb2xkX2luZGV4LT5sb2NrKTsKKwkJ CQl9IGVsc2UgeworCQkJCQkvKiBUT0RPOiBJcyB0aGlzIHNhZmUgd2hlbiBjcmVhdGluZworCQkJ CQlhIHNlY29uZGFyeSBpbmRleCBvbmxpbmU/IFdlIGFyZSBub3QKKwkJCQkJc3VzcGVuZGluZyBw dXJnZSBvciBwcmV2ZW50aW5nIHRoZQorCQkJCQlyb2xsYmFjayBvZiBpbnNlcnRzLiBUaHVzLCB0 aGUgZGF0YQorCQkJCQljb3VsZCBoYXZlIGJlZW4gZnJlZWQuICovCisJCQkJCXJvd19tZXJnZV9j b3B5X2Jsb2JzKAorCQkJCQkJbXJlYywgb2Zmc2V0cywKKwkJCQkJCWRpY3RfdGFibGVfemlwX3Np emUob2xkX3RhYmxlKSwKKwkJCQkJCWR0dXBsZSwgdHVwbGVfaGVhcCk7CisJCQkJfQogCQkJfQog CiAJCQl1dF9hZChkdHVwbGVfdmFsaWRhdGUoZHR1cGxlKSk7CgpObyBidW5kbGUgKHJlYXNvbjog dXNlbGVzcyBmb3IgcHVzaCBlbWFpbHMpLg==