From: marko.makela Date: May 30 2012 8:23am Subject: bzr push into mysql-trunk-wl6255 branch (marko.makela:3901 to 3903) WL#6255 List-Archive: http://lists.mysql.com/commits/144022 Message-Id: <201205300823.q4U8NX1c014707@acsmt357.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDM5MDMgTWFya28gTcOka2Vsw6QJMjAxMi0wNS0zMAogICAgICBXTCM2MjU1IHJlZmFjdG9yaW5n LgogICAgICAKICAgICAgcm93X2luc19kdXBsaWNhdGVfZXJyb3JfaW5fY2x1c3QoKTogSW4gb25s aW5lIHRhYmxlIHJlYnVpbGQsCiAgICAgIGlmIHRoZSBQUklNQVJZIEtFWSxEQl9UUlhfSUQsREJf Uk9MTF9QVFIgbWF0Y2ggd2l0aCB0aGUgcmVjb3JkLAogICAgICByZXR1cm4gdGhlIHNwZWNpYWwg c3RhdHVzIGNvZGUgREJfU1VDQ0VTU19MT0NLRURfUkVDLgogICAgICAKICAgICAgcm93X2xvZ190 YWJsZV9hcHBseV9pbnNlcnRfbG93KCk6IElmIHRoZSByZWNvcmQgYWxyZWFkeSBleGlzdGVkCiAg ICAgIGluIHRoZSBjbHVzdGVyZWQgaW5kZXgsIHJldHVybiBEQl9TVUNDRVNTLgoKICAgIG1vZGlm aWVkOgogICAgICBzdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwaW5zLmNjCiAgICAgIHN0b3JhZ2Uv aW5ub2Jhc2Uvcm93L3JvdzBsb2cuY2MKIDM5MDIgTWFya28gTcOka2Vsw6QJMjAxMi0wNS0zMAog ICAgICBXTCM2MjU1IHJlZmFjdG9yaW5nIG9mIHJlY29yZCBjb21wYXJpc29uLgogICAgICAKICAg ICAgY21wX2R0dXBsZV9yZWNfd2l0aF9tYXRjaF9sb3coKTogUmVuYW1lZCBmcm9tIGNtcF9kdHVw bGVfcmVjX3dpdGhfbWF0Y2goKS4KICAgICAgQWRkIHRoZSBwYXJhbWV0ZXIgbl9jbXAsIHRvIG92 ZXJyaWRlIGR0dXBsZS0+bl9maWVsZHNfY21wLgogICAgICAKICAgICAgY21wX2R0dXBsZV9yZWNf d2l0aF9tYXRjaCgpOiBBIG1hY3JvIHdyYXBwZXIgZm9yIHRoZSBhYm92ZS4KICAgICAgCiAgICAg IGNtcF9kZWJ1Z19kdHVwbGVfcmVjX3dpdGhfbWF0Y2goKTogQWRkIHRoZSBwYXJhbWV0ZXIgbl9j bXAuCgogICAgbW9kaWZpZWQ6CiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9yZW0wY21w LmgKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9yZW0vcmVtMGNtcC5jYwogMzkwMSBNYXJrbyBNw6Rr ZWzDpAkyMDEyLTA1LTMwCiAgICAgIFdMIzYyNTUgYnVnIGZpeC4KICAgICAgCiAgICAgIHJvd190 YWJfb3A6IFVzZSBtb3JlIGRpc3Rpbmd1aXNoYWJsZSB2YWx1ZXMgZm9yIHRoZSBvcGVyYXRpb24g Y29kZXMsCiAgICAgIHNvIHRoYXQgaXQgaXMgZWFzaWVyIHRvIGluc3BlY3QgdGhlIGJ1ZmZlcmVk IGRhdGEuCiAgICAgIAogICAgICByb3dfbG9nX3RhYmxlX2FwcGx5X29wKCk6IEZpeCBhIGJ1ZyBp biBST1dfVF9VUERBVEUgcGFyc2luZyB3aGVuCiAgICAgIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBQ UklNQVJZIEtFWSBpcyBjaGFuZ2VkLgoKICAgIG1vZGlmaWVkOgogICAgICBzdG9yYWdlL2lubm9i YXNlL3Jvdy9yb3cwbG9nLmNjCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2lu Y2x1ZGUvcmVtMGNtcC5oJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvcmVtMGNtcC5o CXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTIwNTMwMDY1MjQ4LTVlM3ZtMjRjOWQ1 cXYxZjkKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3JlbTBjbXAuaAlyZXZpZDptYXJr by5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDUzMDA4MjEyMS01a2xvcmNiYXozejF6dWluCkBAIC0x NTYsMjEgKzE1NiwyOCBAQCByZXNwZWN0aXZlbHksIHdoZW4gb25seSB0aGUgY29tbW9uIGZpcnN0 CiB0aGUgZmlyc3QgZXh0ZXJuYWxseSBzdG9yZWQgZmllbGQgaW4gcmVjICovCiBVTklWX0lOVEVS TgogaW50Ci1jbXBfZHR1cGxlX3JlY193aXRoX21hdGNoKAotLyo9PT09PT09PT09PT09PT09PT09 PT09Ki8KK2NtcF9kdHVwbGVfcmVjX3dpdGhfbWF0Y2hfbG93KAorLyo9PT09PT09PT09PT09PT09 PT09PT09PT09PSovCiAJY29uc3QgZHR1cGxlX3QqCWR0dXBsZSwJLyohPCBpbjogZGF0YSB0dXBs ZSAqLwogCWNvbnN0IHJlY190KglyZWMsCS8qITwgaW46IHBoeXNpY2FsIHJlY29yZCB3aGljaCBk aWZmZXJzIGZyb20KIAkJCQlkdHVwbGUgaW4gc29tZSBvZiB0aGUgY29tbW9uIGZpZWxkcywgb3Ig d2hpY2gKIAkJCQloYXMgYW4gZXF1YWwgbnVtYmVyIG9yIG1vcmUgZmllbGRzIHRoYW4KIAkJCQlk dHVwbGUgKi8KIAljb25zdCB1bGludCoJb2Zmc2V0cywvKiE8IGluOiBhcnJheSByZXR1cm5lZCBi eSByZWNfZ2V0X29mZnNldHMoKSAqLwotCXVsaW50KgkJbWF0Y2hlZF9maWVsZHMsIC8qITwgaW4v b3V0OiBudW1iZXIgb2YgYWxyZWFkeSBjb21wbGV0ZWx5CisJdWxpbnQJCW5fY21wLAkvKiE8IGlu OiBudW1iZXIgb2YgZmllbGRzIHRvIGNvbXBhcmUgKi8KKwl1bGludCoJCW1hdGNoZWRfZmllbGRz LAorCQkJCS8qITwgaW4vb3V0OiBudW1iZXIgb2YgYWxyZWFkeSBjb21wbGV0ZWx5CiAJCQkJbWF0 Y2hlZCBmaWVsZHM7IHdoZW4gZnVuY3Rpb24gcmV0dXJucywKIAkJCQljb250YWlucyB0aGUgdmFs dWUgZm9yIGN1cnJlbnQgY29tcGFyaXNvbiAqLwotCXVsaW50KgkJbWF0Y2hlZF9ieXRlcyk7IC8q ITwgaW4vb3V0OiBudW1iZXIgb2YgYWxyZWFkeSBtYXRjaGVkCisJdWxpbnQqCQltYXRjaGVkX2J5 dGVzKQorCQkJCS8qITwgaW4vb3V0OiBudW1iZXIgb2YgYWxyZWFkeSBtYXRjaGVkCiAJCQkJYnl0 ZXMgd2l0aGluIHRoZSBmaXJzdCBmaWVsZCBub3QgY29tcGxldGVseQogCQkJCW1hdGNoZWQ7IHdo ZW4gZnVuY3Rpb24gcmV0dXJucywgY29udGFpbnMgdGhlCiAJCQkJdmFsdWUgZm9yIGN1cnJlbnQg Y29tcGFyaXNvbiAqLworCV9fYXR0cmlidXRlX18oKG5vbm51bGwpKTsKKyNkZWZpbmUgY21wX2R0 dXBsZV9yZWNfd2l0aF9tYXRjaCh0dXBsZSxyZWMsb2Zmc2V0cyxmaWVsZHMsYnl0ZXMpCVwKKwlj bXBfZHR1cGxlX3JlY193aXRoX21hdGNoX2xvdygJCQkJCVwKKwkJdHVwbGUscmVjLG9mZnNldHMs ZHR1cGxlX2dldF9uX2ZpZWxkc19jbXAodHVwbGUpLGZpZWxkcyxieXRlcykKIC8qKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioK IENvbXBhcmVzIGEgZGF0YSB0dXBsZSB0byBhIHBoeXNpY2FsIHJlY29yZC4KIEBzZWUgY21wX2R0 dXBsZV9yZWNfd2l0aF9tYXRjaAoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2Uv cmVtL3JlbTBjbXAuY2MnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvcmVtL3JlbTBjbXAuY2MJcmV2 aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA1MzAwNjUyNDgtNWUzdm0yNGM5ZDVxdjFm OQorKysgYi9zdG9yYWdlL2lubm9iYXNlL3JlbS9yZW0wY21wLmNjCXJldmlkOm1hcmtvLm1ha2Vs YUBvcmFjbGUuY29tLTIwMTIwNTMwMDgyMTIxLTVrbG9yY2JhejN6MXp1aW4KQEAgLTcwLDEwICs3 MCwxMiBAQCBjbXBfZGVidWdfZHR1cGxlX3JlY193aXRoX21hdGNoKAogCQkJCWhhcyBhbiBlcXVh bCBudW1iZXIgb3IgbW9yZSBmaWVsZHMgdGhhbgogCQkJCWR0dXBsZSAqLwogCWNvbnN0IHVsaW50 KglvZmZzZXRzLC8qITwgaW46IGFycmF5IHJldHVybmVkIGJ5IHJlY19nZXRfb2Zmc2V0cygpICov Ci0JdWxpbnQqCQltYXRjaGVkX2ZpZWxkcyk7LyohPCBpbi9vdXQ6IG51bWJlciBvZiBhbHJlYWR5 CisJdWxpbnQJCW5fY21wLAkvKiE8IGluOiBudW1iZXIgb2YgZmllbGRzIHRvIGNvbXBhcmUgKi8K Kwl1bGludCoJCW1hdGNoZWRfZmllbGRzKS8qITwgaW4vb3V0OiBudW1iZXIgb2YgYWxyZWFkeQog CQkJCWNvbXBsZXRlbHkgIG1hdGNoZWQgZmllbGRzOyB3aGVuIGZ1bmN0aW9uCiAJCQkJcmV0dXJu cywgY29udGFpbnMgdGhlIHZhbHVlIGZvciBjdXJyZW50CiAJCQkJY29tcGFyaXNvbiAqLworCV9f YXR0cmlidXRlX18oKG5vbm51bGwsIHdhcm5fdW51c2VkX3Jlc3VsdCkpOwogI2VuZGlmIC8qIFVO SVZfREVCVUcgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqLy8qKgogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGNvbXBhcmUg dHdvIGRhdGEgZmllbGRzIGZvciB3aGljaCB0aGUgZGF0YSB0eXBlCkBAIC02MjIsMTQgKzYyNCwx NSBAQCByZXNwZWN0aXZlbHksIHdoZW4gb25seSB0aGUgY29tbW9uIGZpcnN0CiB0aGUgZmlyc3Qg ZXh0ZXJuYWxseSBzdG9yZWQgZmllbGQgaW4gcmVjICovCiBVTklWX0lOVEVSTgogaW50Ci1jbXBf ZHR1cGxlX3JlY193aXRoX21hdGNoKAotLyo9PT09PT09PT09PT09PT09PT09PT09Ki8KK2NtcF9k dHVwbGVfcmVjX3dpdGhfbWF0Y2hfbG93KAorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PSov CiAJY29uc3QgZHR1cGxlX3QqCWR0dXBsZSwJLyohPCBpbjogZGF0YSB0dXBsZSAqLwogCWNvbnN0 IHJlY190KglyZWMsCS8qITwgaW46IHBoeXNpY2FsIHJlY29yZCB3aGljaCBkaWZmZXJzIGZyb20K IAkJCQlkdHVwbGUgaW4gc29tZSBvZiB0aGUgY29tbW9uIGZpZWxkcywgb3Igd2hpY2gKIAkJCQlo YXMgYW4gZXF1YWwgbnVtYmVyIG9yIG1vcmUgZmllbGRzIHRoYW4KIAkJCQlkdHVwbGUgKi8KIAlj b25zdCB1bGludCoJb2Zmc2V0cywvKiE8IGluOiBhcnJheSByZXR1cm5lZCBieSByZWNfZ2V0X29m ZnNldHMoKSAqLworCXVsaW50CQluX2NtcCwJLyohPCBpbjogbnVtYmVyIG9mIGZpZWxkcyB0byBj b21wYXJlICovCiAJdWxpbnQqCQltYXRjaGVkX2ZpZWxkcywgLyohPCBpbi9vdXQ6IG51bWJlciBv ZiBhbHJlYWR5IGNvbXBsZXRlbHkKIAkJCQltYXRjaGVkIGZpZWxkczsgd2hlbiBmdW5jdGlvbiBy ZXR1cm5zLAogCQkJCWNvbnRhaW5zIHRoZSB2YWx1ZSBmb3IgY3VycmVudCBjb21wYXJpc29uICov CkBAIC02NTMsNyArNjU2LDcgQEAgY21wX2R0dXBsZV9yZWNfd2l0aF9tYXRjaCgKIAl1bGludAkJ Y3VyX2ZpZWxkOwkvKiBjdXJyZW50IGZpZWxkIG51bWJlciAqLwogCXVsaW50CQljdXJfYnl0ZXM7 CS8qIG51bWJlciBvZiBhbHJlYWR5IG1hdGNoZWQgYnl0ZXMKIAkJCQkJaW4gY3VycmVudCBmaWVs ZCAqLwotCWludAkJcmV0ID0gMzMzMzsJLyogcmV0dXJuIHZhbHVlICovCisJaW50CQlyZXQ7CQkv KiByZXR1cm4gdmFsdWUgKi8KIAogCXV0X2FkKGR0dXBsZSAmJiByZWMgJiYgbWF0Y2hlZF9maWVs ZHMgJiYgbWF0Y2hlZF9ieXRlcyk7CiAJdXRfYWQoZHR1cGxlX2NoZWNrX3R5cGVkKGR0dXBsZSkp OwpAQCAtNjYyLDcgKzY2NSw5IEBAIGNtcF9kdHVwbGVfcmVjX3dpdGhfbWF0Y2goCiAJY3VyX2Zp ZWxkID0gKm1hdGNoZWRfZmllbGRzOwogCWN1cl9ieXRlcyA9ICptYXRjaGVkX2J5dGVzOwogCi0J dXRfYWQoY3VyX2ZpZWxkIDw9IGR0dXBsZV9nZXRfbl9maWVsZHNfY21wKGR0dXBsZSkpOworCXV0 X2FkKG5fY21wID4gMCk7CisJdXRfYWQobl9jbXAgPD0gZHR1cGxlX2dldF9uX2ZpZWxkcyhkdHVw bGUpKTsKKwl1dF9hZChjdXJfZmllbGQgPD0gbl9jbXApOwogCXV0X2FkKGN1cl9maWVsZCA8PSBy ZWNfb2Zmc19uX2ZpZWxkcyhvZmZzZXRzKSk7CiAKIAlpZiAoY3VyX2J5dGVzID09IDAgJiYgY3Vy X2ZpZWxkID09IDApIHsKQEAgLTY4Miw3ICs2ODcsNyBAQCBjbXBfZHR1cGxlX3JlY193aXRoX21h dGNoKAogCS8qIE1hdGNoIGZpZWxkcyBpbiBhIGxvb3A7IHN0b3AgaWYgd2UgcnVuIG91dCBvZiBm aWVsZHMgaW4gZHR1cGxlCiAJb3IgZmluZCBhbiBleHRlcm5hbGx5IHN0b3JlZCBmaWVsZCAqLwog Ci0Jd2hpbGUgKGN1cl9maWVsZCA8IGR0dXBsZV9nZXRfbl9maWVsZHNfY21wKGR0dXBsZSkpIHsK Kwl3aGlsZSAoY3VyX2ZpZWxkIDwgbl9jbXApIHsKIAogCQl1bGludAltdHlwZTsKIAkJdWxpbnQJ cHJ0eXBlOwpAQCAtODM5LDcgKzg0NCw3IEBAIG5leHRfZmllbGQ6CiBvcmRlcl9yZXNvbHZlZDoK IAl1dF9hZCgocmV0ID49IC0gMSkgJiYgKHJldCA8PSAxKSk7CiAJdXRfYWQocmV0ID09IGNtcF9k ZWJ1Z19kdHVwbGVfcmVjX3dpdGhfbWF0Y2goZHR1cGxlLCByZWMsIG9mZnNldHMsCi0JCQkJCQkg ICAgIG1hdGNoZWRfZmllbGRzKSk7CisJCQkJCQkgICAgIG5fY21wLCBtYXRjaGVkX2ZpZWxkcykp OwogCXV0X2FkKCptYXRjaGVkX2ZpZWxkcyA9PSBjdXJfZmllbGQpOyAvKiBJbiB0aGUgZGVidWcg dmVyc2lvbiwgdGhlCiAJCQkJCSAgICAgYWJvdmUgY21wX2RlYnVnXy4uLiBzZXRzCiAJCQkJCSAg ICAgKm1hdGNoZWRfZmllbGRzIHRvIGEgdmFsdWUgKi8KQEAgLTEzNTIsNiArMTM1Nyw3IEBAIGNt cF9kZWJ1Z19kdHVwbGVfcmVjX3dpdGhfbWF0Y2goCiAJCQkJaGFzIGFuIGVxdWFsIG51bWJlciBv ciBtb3JlIGZpZWxkcyB0aGFuCiAJCQkJZHR1cGxlICovCiAJY29uc3QgdWxpbnQqCW9mZnNldHMs LyohPCBpbjogYXJyYXkgcmV0dXJuZWQgYnkgcmVjX2dldF9vZmZzZXRzKCkgKi8KKwl1bGludAkJ bl9jbXAsCS8qITwgaW46IG51bWJlciBvZiBmaWVsZHMgdG8gY29tcGFyZSAqLwogCXVsaW50KgkJ bWF0Y2hlZF9maWVsZHMpIC8qITwgaW4vb3V0OiBudW1iZXIgb2YgYWxyZWFkeQogCQkJCWNvbXBs ZXRlbHkgbWF0Y2hlZCBmaWVsZHM7IHdoZW4gZnVuY3Rpb24KIAkJCQlyZXR1cm5zLCBjb250YWlu cyB0aGUgdmFsdWUgZm9yIGN1cnJlbnQKQEAgLTEzNjQsMTQgKzEzNzAsMTYgQEAgY21wX2RlYnVn X2R0dXBsZV9yZWNfd2l0aF9tYXRjaCgKIAkJCQkJZmllbGQgZGF0YSAqLwogCXVsaW50CQlyZWNf Zl9sZW47CS8qIGxlbmd0aCBvZiBjdXJyZW50IGZpZWxkIGluIHJlYyAqLwogCWNvbnN0IGJ5dGUq CXJlY19mX2RhdGE7CS8qIHBvaW50ZXIgdG8gdGhlIGN1cnJlbnQgcmVjIGZpZWxkICovCi0JaW50 CQlyZXQgPSAzMzMzOwkvKiByZXR1cm4gdmFsdWUgKi8KKwlpbnQJCXJldDsJCS8qIHJldHVybiB2 YWx1ZSAqLwogCXVsaW50CQljdXJfZmllbGQ7CS8qIGN1cnJlbnQgZmllbGQgbnVtYmVyICovCiAK IAl1dF9hZChkdHVwbGUgJiYgcmVjICYmIG1hdGNoZWRfZmllbGRzKTsKIAl1dF9hZChkdHVwbGVf Y2hlY2tfdHlwZWQoZHR1cGxlKSk7CiAJdXRfYWQocmVjX29mZnNfdmFsaWRhdGUocmVjLCBOVUxM LCBvZmZzZXRzKSk7CiAKLQl1dF9hZCgqbWF0Y2hlZF9maWVsZHMgPD0gZHR1cGxlX2dldF9uX2Zp ZWxkc19jbXAoZHR1cGxlKSk7CisJdXRfYWQobl9jbXAgPiAwKTsKKwl1dF9hZChuX2NtcCA8PSBk dHVwbGVfZ2V0X25fZmllbGRzKGR0dXBsZSkpOworCXV0X2FkKCptYXRjaGVkX2ZpZWxkcyA8PSBu X2NtcCk7CiAJdXRfYWQoKm1hdGNoZWRfZmllbGRzIDw9IHJlY19vZmZzX25fZmllbGRzKG9mZnNl dHMpKTsKIAogCWN1cl9maWVsZCA9ICptYXRjaGVkX2ZpZWxkczsKQEAgLTEzOTcsNyArMTQwNSw3 IEBAIGNtcF9kZWJ1Z19kdHVwbGVfcmVjX3dpdGhfbWF0Y2goCiAKIAkvKiBNYXRjaCBmaWVsZHMg aW4gYSBsb29wOyBzdG9wIGlmIHdlIHJ1biBvdXQgb2YgZmllbGRzIGluIGR0dXBsZSAqLwogCi0J d2hpbGUgKGN1cl9maWVsZCA8IGR0dXBsZV9nZXRfbl9maWVsZHNfY21wKGR0dXBsZSkpIHsKKwl3 aGlsZSAoY3VyX2ZpZWxkIDwgbl9jbXApIHsKIAogCQl1bGludAltdHlwZTsKIAkJdWxpbnQJcHJ0 eXBlOwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzBpbnMuY2Mn Ci0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzBpbnMuY2MJcmV2aWQ6bWFya28ubWFrZWxh QG9yYWNsZS5jb20tMjAxMjA1MzAwNjUyNDgtNWUzdm0yNGM5ZDVxdjFmOQorKysgYi9zdG9yYWdl L2lubm9iYXNlL3Jvdy9yb3cwaW5zLmNjCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIw MTIwNTMwMDgyMTIxLTVrbG9yY2JhejN6MXp1aW4KQEAgLTE5NTEsOSArMTk1MSwxMiBAQCBlbmRf c2NhbjoKIENoZWNrcyBpZiBhIHVuaXF1ZSBrZXkgdmlvbGF0aW9uIGVycm9yIHdvdWxkIG9jY3Vy IGF0IGFuIGluZGV4IGVudHJ5CiBpbnNlcnQuIFNldHMgc2hhcmVkIGxvY2tzIG9uIHBvc3NpYmxl IGR1cGxpY2F0ZSByZWNvcmRzLiBXb3JrcyBvbmx5CiBmb3IgYSBjbHVzdGVyZWQgaW5kZXghCi1A cmV0dXJuIERCX1NVQ0NFU1MgaWYgbm8gZXJyb3IsIERCX0RVUExJQ0FURV9LRVkgaWYgZXJyb3Is Ci1EQl9MT0NLX1dBSVQgaWYgd2UgaGF2ZSB0byB3YWl0IGZvciBhIGxvY2sgb24gYSBwb3NzaWJs ZSBkdXBsaWNhdGUKLXJlY29yZCAqLworQHJldHZhbCBEQl9TVUNDRVNTIGlmIG5vIGVycm9yCitA cmV0dmFsIERCX0RVUExJQ0FURV9LRVkgaWYgZXJyb3IsCitAcmV0dmFsIERCX0xPQ0tfV0FJVCBp ZiB3ZSBoYXZlIHRvIHdhaXQgZm9yIGEgbG9jayBvbiBhIHBvc3NpYmxlIGR1cGxpY2F0ZQorcmVj b3JkCitAcmV0dmFsIERCX1NVQ0NFU1NfTE9DS0VEX1JFQyBpZiBhbiBleGFjdCBtYXRjaCBvZiB0 aGUgcmVjb3JkIHdhcyBmb3VuZAoraW4gb25saW5lIHRhYmxlIHJlYnVpbGQgKGZsYWdzICYgKEJU Ul9LRUVQX1NZU19GTEFHIHwgQlRSX05PX0xPQ0tJTkdfRkxBRykpICovCiBzdGF0aWMgX19hdHRy aWJ1dGVfXygobm9ubnVsbCwgd2Fybl91bnVzZWRfcmVzdWx0KSkKIGRiZXJyX3QKIHJvd19pbnNf ZHVwbGljYXRlX2Vycm9yX2luX2NsdXN0KApAQCAtMjAzNyw4ICsyMDQwLDQzIEBAIHJvd19pbnNf ZHVwbGljYXRlX2Vycm9yX2luX2NsdXN0KAogCQkJCWdvdG8gZnVuY19leGl0OwogCQkJfQogCi0J CQlpZiAocm93X2luc19kdXBsX2Vycm9yX3dpdGhfcmVjKAotCQkJCSAgICByZWMsIGVudHJ5LCBj dXJzb3ItPmluZGV4LCBvZmZzZXRzKSkgeworCQkJaWYgKGZsYWdzCisJCQkgICAgJiAoQlRSX0tF RVBfU1lTX0ZMQUcgfCBCVFJfTk9fTE9DS0lOR19GTEFHKSkgeworCQkJCS8qIFdlIGFyZSBpbnNl cnRpbmcgaW50byB0aGUgcmVidWlsdCB0YWJsZS4KKwkJCQlTZWUgaWYgdGhpcyBpcyBhIHJlYWwg ZHVwbGljYXRlLCBvciBhbgorCQkJCWV4YWN0IG1hdGNoIG9mIGEgcHJldmlvdXMgaW5zZXJ0LiAq LworCQkJCXVsaW50CWZpZWxkcwk9IDA7CisJCQkJdWxpbnQJYnl0ZXMJPSAwOworCisJCQkJLyog RHVyaW5nIHJlYnVpbGQsIHRoZXJlIHNob3VsZCBub3QgYmUgYW55CisJCQkJZGVsZXRlLW1hcmtl ZCByb3dzIGluIHRoZSBuZXcgdGFibGUuICovCisJCQkJdXRfYWQoIXJlY19nZXRfZGVsZXRlZF9m bGFnKAorCQkJCQkgICAgICByZWMsIHJlY19vZmZzX2NvbXAob2Zmc2V0cykpKTsKKwkJCQl1dF9h ZChkdHVwbGVfZ2V0X25fZmllbGRzX2NtcChlbnRyeSkKKwkJCQkgICAgICA9PSBuX3VuaXF1ZSk7 CisKKwkJCQkvKiBDb21wYXJlIHRoZSBQUklNQVJZIEtFWSBmaWVsZHMgYW5kIHRoZQorCQkJCURC X1RSWF9JRCwgREJfUk9MTF9QVFIuICovCisJCQkJY21wX2R0dXBsZV9yZWNfd2l0aF9tYXRjaF9s b3coCisJCQkJCWVudHJ5LCByZWMsIG9mZnNldHMsCisJCQkJCW5fdW5pcXVlICsgMiwgJmZpZWxk cywgJmJ5dGVzKTsKKworCQkJCWlmIChmaWVsZHMgPj0gbl91bmlxdWUpIHsKKwkJCQkJaWYgKGZp ZWxkcyA9PSBuX3VuaXF1ZSArIDIpIHsKKwkJCQkJCS8qIFRoaXMgaXMgYW4gZXhhY3QgbWF0Y2gu ICovCisJCQkJCQl1dF9hZChieXRlcyA9PSAwKTsKKwkJCQkJCS8qIFNwZWNpYWwgcmV0dXJuIGNv ZGUgdG8KKwkJCQkJCWluZGljYXRlIHRoYXQgdGhlIHJvdyB3YXMKKwkJCQkJCWFscmVhZHkgaW5z ZXJ0ZWQuICovCisJCQkJCQllcnIgPSBEQl9TVUNDRVNTX0xPQ0tFRF9SRUM7CisJCQkJCQlnb3Rv IGZ1bmNfZXhpdDsKKwkJCQkJfQorCisJCQkJCWdvdG8gZHVwbGljYXRlOworCQkJCX0KKwkJCX0g ZWxzZSBpZiAocm93X2luc19kdXBsX2Vycm9yX3dpdGhfcmVjKAorCQkJCQkgICByZWMsIGVudHJ5 LCBjdXJzb3ItPmluZGV4LCBvZmZzZXRzKSkgeworZHVwbGljYXRlOgogCQkJCXRyeC0+ZXJyb3Jf aW5mbyA9IGN1cnNvci0+aW5kZXg7CiAJCQkJZXJyID0gREJfRFVQTElDQVRFX0tFWTsKIAkJCQln b3RvIGZ1bmNfZXhpdDsKQEAgLTIwODcsOSArMjEyNSw3IEBAIHJvd19pbnNfZHVwbGljYXRlX2Vy cm9yX2luX2NsdXN0KAogCiAJCQlpZiAocm93X2luc19kdXBsX2Vycm9yX3dpdGhfcmVjKAogCQkJ CSAgICByZWMsIGVudHJ5LCBjdXJzb3ItPmluZGV4LCBvZmZzZXRzKSkgewotCQkJCXRyeC0+ZXJy b3JfaW5mbyA9IGN1cnNvci0+aW5kZXg7Ci0JCQkJZXJyID0gREJfRFVQTElDQVRFX0tFWTsKLQkJ CQlnb3RvIGZ1bmNfZXhpdDsKKwkJCQlnb3RvIGR1cGxpY2F0ZTsKIAkJCX0KIAkJfQogCgo9PT0g bW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MGxvZy5jYycKLS0tIGEvc3Rv cmFnZS9pbm5vYmFzZS9yb3cvcm93MGxvZy5jYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNv bS0yMDEyMDUzMDA2NTI0OC01ZTN2bTI0YzlkNXF2MWY5CisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2Uv cm93L3JvdzBsb2cuY2MJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA1MzAwODIx MjEtNWtsb3JjYmF6M3oxenVpbgpAQCAtMTAwMCwxMyArMTAwMCwyMSBAQCByb3dfbG9nX3RhYmxl X2FwcGx5X2luc2VydF9sb3coCiAJZXJyb3IgPSByb3dfaW5zX2NsdXN0X2luZGV4X2VudHJ5X2xv dygKIAkJZmxhZ3MsIEJUUl9NT0RJRllfVFJFRSwgaW5kZXgsIGVudHJ5LCAwLCB0aHIpOwogCi0J aWYgKGVycm9yID09IERCX0RVUExJQ0FURV9LRVkpIHsKKwlzd2l0Y2ggKGVycm9yKSB7CisJY2Fz ZSBEQl9TVUNDRVNTOgorCQlicmVhazsKKwljYXNlIERCX1NVQ0NFU1NfTE9DS0VEX1JFQzoKKwkJ LyogVGhlIHJvdyBoYWQgYWxyZWFkeSBiZWVuIGNvcGllZCB0byB0aGUgdGFibGUuICovCisJCXJl dHVybihEQl9TVUNDRVNTKTsKKwljYXNlIERCX0RVUExJQ0FURV9LRVk6CiAJCS8qIFRPRE86IHJl cG9ydCB0aGUgZHVwbGljYXRlIGtleSB1bmxlc3MgdGhlIHJlY29yZCBpcwogCQlhIGZ1bGwgbWF0 Y2ggb2Ygd2hhdCB3ZSB0cmllZCB0byBpbnNlcnQgKi8KKwkJLyogZmFsbCB0aHJvdWdoICovCisJ ZGVmYXVsdDoKIAkJcmV0dXJuKGVycm9yKTsKIAl9CiAKLQl3aGlsZSAoZXJyb3IgPT0gREJfU1VD Q0VTUykgeworCWRvIHsKIAkJaWYgKCEoaW5kZXggPSBkaWN0X3RhYmxlX2dldF9uZXh0X2luZGV4 KGluZGV4KSkpIHsKIAkJCWJyZWFrOwogCQl9CkBAIC0xMDE1LDEwICsxMDIzLDEwIEBAIHJvd19s b2dfdGFibGVfYXBwbHlfaW5zZXJ0X2xvdygKIAkJZXJyb3IgPSByb3dfaW5zX3NlY19pbmRleF9l bnRyeV9sb3coCiAJCQlmbGFncywgQlRSX01PRElGWV9UUkVFLAogCQkJaW5kZXgsIG9mZnNldHNf aGVhcCwgaGVhcCwgZW50cnksIHRocik7Ci0JfQorCX0gd2hpbGUgKGVycm9yID09IERCX1NVQ0NF U1MpOwogCiAJaWYgKGVycm9yID09IERCX0RVUExJQ0FURV9LRVkpIHsKLQkJLyogVE9ETzogcmVw b3J0IGR1cCAqLworCQkvKiBUT0RPOiByZXBvcnQgYSBkdXBsaWNhdGUgKi8KIAl9CiAKIAlyZXR1 cm4oZXJyb3IpOwoKTm8gYnVuZGxlIChyZWFzb246IHVzZWxlc3MgZm9yIHB1c2ggZW1haWxzKS4=