From: Tatjana Azundris Nuernberg Date: May 2 2012 1:30pm Subject: bzr push into mysql-trunk branch (tatjana.nuernberg:3764 to 3765) List-Archive: http://lists.mysql.com/commits/143708 Message-Id: <201205021331.q42DVQGf015703@acsmt356.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDM3NjUgVGF0amFuYSBBenVuZHJpcyBOdWVybmJlcmcJMjAxMi0wNS0wMiBbbWVyZ2VdCiAgICAg IGF1dG8tbWVyZ2UKCiAgICBhZGRlZDoKICAgICAgdW5pdHRlc3QvZ3VuaXQvbXlfZXJyb3ItdC5j YwogICAgbW9kaWZpZWQ6CiAgICAgIGluY2x1ZGUvbXlfc3lzLmgKICAgICAgbXlzeXMvbXlfZXJy b3IuYwogICAgICBzcWwvbG9nLmgKICAgICAgdW5pdHRlc3QvZ3VuaXQvQ01ha2VMaXN0cy50eHQK IDM3NjQgTWFya28gTcOka2Vsw6QJMjAxMi0wNS0wMgogICAgICBOb24tZnVuY3Rpb25hbCBjaGFu Z2VzLgogICAgICAKICAgICAgZGljdF9tZW1fdGFibGVfY3JlYXRlKCk6IFJlbW92ZSBib2d1cyBj b21tZW50IGFib3V0IGNsdXN0ZXJlZCB0YWJsZXMsCiAgICAgIHdoaWNoIHdlcmUgbmV2ZXIgaW1w bGVtZW50ZWQgaW4gSW5ub0RCLgogICAgICAKICAgICAgY3JlYXRlX3RhYmxlX2RlZigpOiBSZW1v dmUgdW5uZWNlc3NhcnkgdHlwZSBjYXN0cy4KCiAgICBtb2RpZmllZDoKICAgICAgc3RvcmFnZS9p bm5vYmFzZS9kaWN0L2RpY3QwbWVtLmNjCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaGFuZGxlci9o YV9pbm5vZGIuY2MKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2RpY3QwbWVtLmgKPT09 IG1vZGlmaWVkIGZpbGUgJ2luY2x1ZGUvbXlfc3lzLmgnCi0tLSBhL2luY2x1ZGUvbXlfc3lzLmgJ MjAxMi0wMy0wNiAxNDoyOTo0MiArMDAwMAorKysgYi9pbmNsdWRlL215X3N5cy5oCTIwMTItMDUt MDIgMDQ6NTA6NTMgKzAwMDAKQEAgLTY1Myw2ICs2NTMsNyBAQCBleHRlcm4gaW50IG15X3N5bmMo RmlsZSBmZCwgbXlmIG15X2ZsYWdzCiBleHRlcm4gaW50IG15X3N5bmNfZGlyKGNvbnN0IGNoYXIg KmRpcl9uYW1lLCBteWYgbXlfZmxhZ3MpOwogZXh0ZXJuIGludCBteV9zeW5jX2Rpcl9ieV9maWxl KGNvbnN0IGNoYXIgKmZpbGVfbmFtZSwgbXlmIG15X2ZsYWdzKTsKIGV4dGVybiBjaGFyICpteV9z dHJlcnJvcihjaGFyICpidWYsIHNpemVfdCBsZW4sIGludCBlcnJudW0pOworZXh0ZXJuIGNvbnN0 IGNoYXIgKm15X2dldF9lcnJfbXNnKGludCBucik7CiBleHRlcm4gdm9pZCBteV9lcnJvcihpbnQg bnIsbXlmIE15RmxhZ3MsIC4uLik7CiBleHRlcm4gdm9pZCBteV9wcmludGZfZXJyb3IodWludCBt eV9lcnIsIGNvbnN0IGNoYXIgKmZvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt eWYgTXlGbGFncywgLi4uKQoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3lzL215X2Vycm9yLmMnCi0t LSBhL215c3lzL215X2Vycm9yLmMJMjAxMi0wMy0wNiAxNDoyOTo0MiArMDAwMAorKysgYi9teXN5 cy9teV9lcnJvci5jCTIwMTItMDUtMDIgMDQ6NTA6NTMgKzAwMDAKQEAgLTU5LDYgKzU5LDE2IEBA IHN0YXRpYyBzdHJ1Y3QgbXlfZXJyX2hlYWQKIHN0YXRpYyBzdHJ1Y3QgbXlfZXJyX2hlYWQgKm15 X2Vycm1zZ3NfbGlzdD0gJm15X2Vycm1zZ3NfZ2xvYmVycnM7CiAKIAorLyoqCisgIEdldCBhIHN0 cmluZyBkZXNjcmliaW5nIGEgc3lzdGVtIG9yIGhhbmRsZXIgZXJyb3IuIHRocmVhZC1zYWZlLgor CisgIEBwYXJhbSAgYnVmICBhIGJ1ZmZlciBpbiB3aGljaCB0byByZXR1cm4gdGhlIGVycm9yIG1l c3NhZ2UKKyAgQHBhcmFtICBsZW4gIHRoZSBzaXplIG9mIHRoZSBhZm9yZW1lbnRpb25lZCBidWZm ZXIKKyAgQHBhcmFtICBuciAgIHRoZSBlcnJvciBudW1iZXIKKworICBAcmV0dmFsIGJ1ZiAgYWx3 YXlzIGJ1Zi4gZm9yIHNpZ25hdHVyZSBjb21wYXRpYmlsaXR5IHdpdGggc3RyZXJyb3IoMykuCisq LworCiBjaGFyICpteV9zdHJlcnJvcihjaGFyICpidWYsIHNpemVfdCBsZW4sIGludCBucikKIHsK ICAgY2hhciAqbXNnPSBOVUxMOwpAQCAtMTA4LDM1ICsxMTgsNjMgQEAgY2hhciAqbXlfc3RyZXJy b3IoY2hhciAqYnVmLCBzaXplX3QgbGVuLAogfQogCiAKLS8qCi0gICBFcnJvciBtZXNzYWdlIHRv IHVzZXIKKy8qKgorICBAYnJpZWYgR2V0IGFuIGVycm9yIGZvcm1hdCBzdHJpbmcgZnJvbSBvbmUg b2YgdGhlIG15X2Vycm9yX3JlZ2lzdGVyKCllZCBzZXRzCisKKyAgQG5vdGUKKyAgICBOVUxMIHZh bHVlcyBhcmUgcG9zc2libGUgZXZlbiB3aXRoaW4gYSByZWdpc3RlcmVkIHJhbmdlLgogCi0gICBT WU5PUFNJUwotICAgICBteV9lcnJvcigpCi0gICAgICAgbnIJRXJybm8KLSAgICAgICBNeUZsYWdz CUZsYWdzCi0gICAgICAgLi4uCXZhcmlhYmxlIGxpc3QKKyAgQHBhcmFtIG5yIEVycm5vCiAKKyAg QHJldHZhbCBOVUxMICBpZiBubyBtZXNzYWdlIGlzIHJlZ2lzdGVyZWQgZm9yIHRoaXMgZXJyb3Ig bnVtYmVyCisgIEByZXR2YWwgc3RyICAgQy1zdHJpbmcKICovCiAKLXZvaWQgbXlfZXJyb3IoaW50 IG5yLCBteWYgTXlGbGFncywgLi4uKQorY29uc3QgY2hhciAqbXlfZ2V0X2Vycl9tc2coaW50IG5y KQogewogICBjb25zdCBjaGFyICpmb3JtYXQ7CiAgIHN0cnVjdCBteV9lcnJfaGVhZCAqbWVoX3A7 Ci0gIHZhX2xpc3QgYXJnczsKLSAgY2hhciBlYnVmZltFUlJNU0dTSVpFXTsKLSAgREJVR19FTlRF UigibXlfZXJyb3IiKTsKLSAgREJVR19QUklOVCgibXkiLCAoIm5yOiAlZCAgTXlGbGFnczogJWQg IGVycm5vOiAlZCIsIG5yLCBNeUZsYWdzLCBlcnJubykpOwogCi0gIC8qIFNlYXJjaCBmb3IgdGhl IGVycm9yIG1lc3NhZ2VzIGFycmF5LCB3aGljaCBjb3VsZCBjb250YWluIHRoZSBtZXNzYWdlLiAq LworICAvKiBTZWFyY2ggZm9yIHRoZSByYW5nZSB0aGlzIGVycm9yIGlzIGluLiAqLwogICBmb3Ig KG1laF9wPSBteV9lcnJtc2dzX2xpc3Q7IG1laF9wOyBtZWhfcD0gbWVoX3AtPm1laF9uZXh0KQog ICAgIGlmIChuciA8PSBtZWhfcC0+bWVoX2xhc3QpCiAgICAgICBicmVhazsKIAotICAvKiBnZXQg dGhlIGVycm9yIG1lc3NhZ2Ugc3RyaW5nLiBEZWZhdWx0LCBpZiBOVUxMIG9yIGVtcHR5IHN0cmlu ZyAoIiIpLiAqLwotICBpZiAoISAoZm9ybWF0PSAobWVoX3AgJiYgKG5yID49IG1laF9wLT5tZWhf Zmlyc3QpKSA/Ci0gICAgICAgICAgICAgICAgICBtZWhfcC0+Z2V0X2Vycm1zZ3MoKVtuciAtIG1l aF9wLT5tZWhfZmlyc3RdIDogTlVMTCkgfHwgISAqZm9ybWF0KQotICAgICh2b2lkKSBteV9zbnBy aW50ZiAoZWJ1ZmYsIHNpemVvZihlYnVmZiksICJVbmtub3duIGVycm9yICVkIiwgbnIpOworICAv KgorICAgIElmIHdlIGZvdW5kIHRoZSByYW5nZSB0aGlzIGVycm9yIG51bWJlciBpcyBpbiwgZ2V0 IHRoZSBmb3JtYXQgc3RyaW5nLgorICAgIElmIHRoZSBzdHJpbmcgaXMgZW1wdHksIG9yIGEgTlVM TCBwb2ludGVyLCBvciBpZiB3ZSdyZSBvdXQgb2YgcmV0dXJuLAorICAgIHdlIHJldHVybiBOVUxM LgorICAqLworICBpZiAoIShmb3JtYXQ9IChtZWhfcCAmJiAobnIgPj0gbWVoX3AtPm1laF9maXJz dCkpID8KKyAgICAgICAgICAgICAgICBtZWhfcC0+Z2V0X2Vycm1zZ3MoKVtuciAtIG1laF9wLT5t ZWhfZmlyc3RdIDogTlVMTCkgfHwKKyAgICAgICEqZm9ybWF0KQorICAgIHJldHVybiBOVUxMOwor CisgIHJldHVybiBmb3JtYXQ7Cit9CisKKworLyoqCisgIEZpbGwgaW4gYW5kIHByaW50IGEgcHJl dmlvdXNseSByZWdpc3RlcmVkIGVycm9yIG1lc3NhZ2UuCisKKyAgQG5vdGUKKyAgICBHb2VzIHRo cm91Z2ggdGhlIChzb2xlKSBmdW5jdGlvbiByZWdpc3RlcmVkIGluIGVycm9yX2hhbmRsZXJfaG9v aworCisgIEBwYXJhbSBuciAgICAgICAgZXJyb3IgbnVtYmVyCisgIEBwYXJhbSBNeUZsYWdzICAg RmxhZ3MKKyAgQHBhcmFtIC4uLiAgICAgICB2YXJpYWJsZSBsaXN0IG1hdGNoaW5nIHRoYXQgZXJy b3IgZm9ybWF0IHN0cmluZworKi8KKwordm9pZCBteV9lcnJvcihpbnQgbnIsIG15ZiBNeUZsYWdz LCAuLi4pCit7CisgIGNvbnN0IGNoYXIgKmZvcm1hdDsKKyAgdmFfbGlzdCBhcmdzOworICBjaGFy IGVidWZmW0VSUk1TR1NJWkVdOworICBEQlVHX0VOVEVSKCJteV9lcnJvciIpOworICBEQlVHX1BS SU5UKCJteSIsICgibnI6ICVkICBNeUZsYWdzOiAlZCAgZXJybm86ICVkIiwgbnIsIE15RmxhZ3Ms IGVycm5vKSk7CisKKyAgaWYgKCEoZm9ybWF0ID0gbXlfZ2V0X2Vycl9tc2cobnIpKSkKKyAgICAo dm9pZCkgbXlfc25wcmludGYoZWJ1ZmYsIHNpemVvZihlYnVmZiksICJVbmtub3duIGVycm9yICVk IiwgbnIpOwogICBlbHNlCiAgIHsKICAgICB2YV9zdGFydChhcmdzLE15RmxhZ3MpOwpAQCAtMTQ5 LDE1ICsxODcsMTYgQEAgdm9pZCBteV9lcnJvcihpbnQgbnIsIG15ZiBNeUZsYWdzLCAuLi4pCiB9 CiAKIAotLyoKLSAgRXJyb3IgYXMgcHJpbnRmCisvKioKKyAgUHJpbnQgYW4gZXJyb3IgbWVzc2Fn ZS4KIAotICBTWU5PUFNJUwotICAgIG15X3ByaW50Zl9lcnJvcigpCi0gICAgICBlcnJvcglFcnJu bwotICAgICAgZm9ybWF0CUZvcm1hdCBzdHJpbmcKLSAgICAgIE15RmxhZ3MJRmxhZ3MKLSAgICAg IC4uLgl2YXJpYWJsZSBsaXN0CisgIEBub3RlCisgICAgR29lcyB0aHJvdWdoIHRoZSAoc29sZSkg ZnVuY3Rpb24gcmVnaXN0ZXJlZCBpbiBlcnJvcl9oYW5kbGVyX2hvb2sKKworICBAcGFyYW0gZXJy b3IgICAgIGVycm9yIG51bWJlcgorICBAcGFyYW0gZm9ybWF0ICAgIGZvcm1hdCBzdHJpbmcKKyAg QHBhcmFtIE15RmxhZ3MgICBGbGFncworICBAcGFyYW0gLi4uICAgICAgIHZhcmlhYmxlIGxpc3Qg bWF0Y2hpbmcgdGhhdCBlcnJvciBmb3JtYXQgc3RyaW5nCiAqLwogCiB2b2lkIG15X3ByaW50Zl9l cnJvcih1aW50IGVycm9yLCBjb25zdCBjaGFyICpmb3JtYXQsIG15ZiBNeUZsYWdzLCAuLi4pCkBA IC0xNzYsMTUgKzIxNSwxNiBAQCB2b2lkIG15X3ByaW50Zl9lcnJvcih1aW50IGVycm9yLCBjb25z dCBjCiAgIERCVUdfVk9JRF9SRVRVUk47CiB9CiAKLS8qCi0gIEVycm9yIHdpdGggdmFfbGlzdAor LyoqCisgIFByaW50IGFuIGVycm9yIG1lc3NhZ2UuCisKKyAgQG5vdGUKKyAgICBHb2VzIHRocm91 Z2ggdGhlIChzb2xlKSBmdW5jdGlvbiByZWdpc3RlcmVkIGluIGVycm9yX2hhbmRsZXJfaG9vawog Ci0gIFNZTk9QU0lTCi0gICAgbXlfcHJpbnR2X2Vycm9yKCkKLSAgICAgIGVycm9yCUVycm5vCi0g ICAgICBmb3JtYXQJRm9ybWF0IHN0cmluZwotICAgICAgTXlGbGFncwlGbGFncwotICAgICAgLi4u CXZhcmlhYmxlIGxpc3QKKyAgQHBhcmFtIGVycm9yICAgICBlcnJvciBudW1iZXIKKyAgQHBhcmFt IGZvcm1hdCAgICBmb3JtYXQgc3RyaW5nCisgIEBwYXJhbSBNeUZsYWdzICAgRmxhZ3MKKyAgQHBh cmFtIGFwICAgICAgICB2YXJpYWJsZSBsaXN0IG1hdGNoaW5nIHRoYXQgZXJyb3IgZm9ybWF0IHN0 cmluZwogKi8KIAogdm9pZCBteV9wcmludHZfZXJyb3IodWludCBlcnJvciwgY29uc3QgY2hhciAq Zm9ybWF0LCBteWYgTXlGbGFncywgdmFfbGlzdCBhcCkKQEAgLTE5OSwxNCArMjM5LDE1IEBAIHZv aWQgbXlfcHJpbnR2X2Vycm9yKHVpbnQgZXJyb3IsIGNvbnN0IGMKICAgREJVR19WT0lEX1JFVFVS TjsKIH0KIAotLyoKLSAgR2l2ZSBtZXNzYWdlIHVzaW5nIGVycm9yX2hhbmRsZXJfaG9vaworLyoq CisgIFByaW50IGFuIGVycm9yIG1lc3NhZ2UuCisKKyAgQG5vdGUKKyAgICBHb2VzIHRocm91Z2gg dGhlIChzb2xlKSBmdW5jdGlvbiByZWdpc3RlcmVkIGluIGVycm9yX2hhbmRsZXJfaG9vawogCi0g IFNZTk9QU0lTCi0gICAgbXlfbWVzc2FnZSgpCi0gICAgICBlcnJvcglFcnJubwotICAgICAgc3Ry CUVycm9yIG1lc3NhZ2UKLSAgICAgIE15RmxhZ3MJRmxhZ3MKKyAgQHBhcmFtIGVycm9yICAgICBl cnJvciBudW1iZXIKKyAgQHBhcmFtIHN0ciAgICAgICBlcnJvciBtZXNzYWdlCisgIEBwYXJhbSBN eUZsYWdzICAgRmxhZ3MKICovCiAKIHZvaWQgbXlfbWVzc2FnZSh1aW50IGVycm9yLCBjb25zdCBj aGFyICpzdHIsIHJlZ2lzdGVyIG15ZiBNeUZsYWdzKQpAQCAtMjE1LDE2ICsyNTYsMTEgQEAgdm9p ZCBteV9tZXNzYWdlKHVpbnQgZXJyb3IsIGNvbnN0IGNoYXIgKgogfQogCiAKLS8qCisvKioKICAg UmVnaXN0ZXIgZXJyb3IgbWVzc2FnZXMgZm9yIHVzZSB3aXRoIG15X2Vycm9yKCkuCiAKLSAgU1lO T1BTSVMKLSAgICBteV9lcnJvcl9yZWdpc3RlcigpCi0gICAgZXJybXNncyAgICAgICAgICAgICAg ICAgICAgIGFycmF5IG9mIHBvaW50ZXJzIHRvIGVycm9yIG1lc3NhZ2VzCi0gICAgZmlyc3QgICAg ICAgICAgICAgICAgICAgICAgIGVycm9yIG51bWJlciBvZiBmaXJzdCBtZXNzYWdlIGluIHRoZSBh cnJheQotICAgIGxhc3QgICAgICAgICAgICAgICAgICAgICAgICBlcnJvciBudW1iZXIgb2YgbGFz dCBtZXNzYWdlIGluIHRoZSBhcnJheQorICBAZGVzY3JpcHRpb24KIAotICBERVNDUklQVElPTgog ICAgIFRoZSBwb2ludGVyIGFycmF5IGlzIGV4cGVjdGVkIHRvIGNvbnRhaW4gYWRkcmVzc2VzIHRv IE5VTC10ZXJtaW5hdGVkCiAgICAgQyBjaGFyYWN0ZXIgc3RyaW5ncy4gVGhlIGFycmF5IGNvbnRh aW5zIChsYXN0IC0gZmlyc3QgKyAxKSBwb2ludGVycy4KICAgICBOVUxMIHBvaW50ZXJzIGFuZCBl bXB0eSBzdHJpbmdzICgiIikgYXJlIGFsbG93ZWQuIFRoZXNlIHdpbGwgYmUgbWFwcGVkIHRvCkBA IC0yMzIsOSArMjY4LDEyIEBAIHZvaWQgbXlfbWVzc2FnZSh1aW50IGVycm9yLCBjb25zdCBjaGFy ICoKICAgICBUaGlzIGZ1bmN0aW9uIHJlZ2lzdGVycyB0aGUgZXJyb3IgbnVtYmVycyAnZmlyc3Qn IHRvICdsYXN0Jy4KICAgICBObyBvdmVybGFwcGluZyB3aXRoIHByZXZpb3VzbHkgcmVnaXN0ZXJl ZCBlcnJvciBudW1iZXJzIGlzIGFsbG93ZWQuCiAKLSAgUkVUVVJOCi0gICAgMCAgICAgICAgICAg T0sKLSAgICAhPSAwICAgICAgICBFcnJvcgorICBAcGFyYW0gICBlcnJtc2dzICBhcnJheSBvZiBw b2ludGVycyB0byBlcnJvciBtZXNzYWdlcworICBAcGFyYW0gICBmaXJzdCAgICBlcnJvciBudW1i ZXIgb2YgZmlyc3QgbWVzc2FnZSBpbiB0aGUgYXJyYXkKKyAgQHBhcmFtICAgbGFzdCAgICAgZXJy b3IgbnVtYmVyIG9mIGxhc3QgbWVzc2FnZSBpbiB0aGUgYXJyYXkKKworICBAcmV0dmFsICAwICAg ICAgICBPSworICBAcmV0dmFsICAhPSAwICAgICBFcnJvcgogKi8KIAogaW50IG15X2Vycm9yX3Jl Z2lzdGVyKGNvbnN0IGNoYXIqKiAoKmdldF9lcnJtc2dzKSAoKSwgaW50IGZpcnN0LCBpbnQgbGFz dCkKQEAgLTI3MywyNSArMzEyLDI0IEBAIGludCBteV9lcnJvcl9yZWdpc3Rlcihjb25zdCBjaGFy KiogKCpnZXQKIH0KIAogCi0vKgorLyoqCiAgIFVucmVnaXN0ZXIgZm9ybWVybHkgcmVnaXN0ZXJl ZCBlcnJvciBtZXNzYWdlcy4KIAotICBTWU5PUFNJUwotICAgIG15X2Vycm9yX3VucmVnaXN0ZXIo KQotICAgIGZpcnN0ICAgICAgICAgICAgICAgICAgICAgICBlcnJvciBudW1iZXIgb2YgZmlyc3Qg bWVzc2FnZQotICAgIGxhc3QgICAgICAgICAgICAgICAgICAgICAgICBlcnJvciBudW1iZXIgb2Yg bGFzdCBtZXNzYWdlCisgIEBkZXNjcmlwdGlvbgogCi0gIERFU0NSSVBUSU9OCiAgICAgVGhpcyBm dW5jdGlvbiB1bnJlZ2lzdGVycyB0aGUgZXJyb3IgbnVtYmVycyAnZmlyc3QnIHRvICdsYXN0Jy4K ICAgICBUaGVzZSBtdXN0IGhhdmUgYmVlbiBwcmV2aW91c2x5IHJlZ2lzdGVyZWQgYnkgbXlfZXJy b3JfcmVnaXN0ZXIoKS4KICAgICAnZmlyc3QnIGFuZCAnbGFzdCcgbXVzdCBleGFjdGx5IG1hdGNo IHRoZSByZWdpc3RyYXRpb24uCiAgICAgSWYgYSBtYXRjaGluZyByZWdpc3RyYXRpb24gaXMgcHJl c2VudCwgdGhlIGhlYWRlciBpcyByZW1vdmVkIGZyb20gdGhlCiAgICAgbGlzdCBhbmQgdGhlIHBv aW50ZXIgdG8gdGhlIGVycm9yIG1lc3NhZ2VzIHBvaW50ZXJzIGFycmF5IGlzIHJldHVybmVkLgor ICAgIChUaGUgbWVzc2FnZXMgdGhlbXNlbHZlcyBhcmUgbm90IHJlbGVhc2VkIGhlcmUgYXMgdGhl eSBtYXkgYmUgc3RhdGljLikKICAgICBPdGhlcndpc2UsIE5VTEwgaXMgcmV0dXJuZWQuCiAKLSAg UkVUVVJOCi0gICAgbm9uLU5VTEwgICAgT0ssIHJldHVybnMgYWRkcmVzcyBvZiBlcnJvciBtZXNz YWdlcyBwb2ludGVycyBhcnJheS4KLSAgICBOVUxMICAgICAgICBFcnJvciwgbm8gc3VjaCBudW1i ZXIgcmFuZ2UgcmVnaXN0ZXJlZC4KKyAgQHBhcmFtICAgZmlyc3QgICAgIGVycm9yIG51bWJlciBv ZiBmaXJzdCBtZXNzYWdlCisgIEBwYXJhbSAgIGxhc3QgICAgICBlcnJvciBudW1iZXIgb2YgbGFz dCBtZXNzYWdlCisKKyAgQHJldHZhbCAgTlVMTCAgICAgIEVycm9yLCBubyBzdWNoIG51bWJlciBy YW5nZSByZWdpc3RlcmVkLgorICBAcmV0dmFsICBub24tTlVMTCAgT0ssIHJldHVybnMgYWRkcmVz cyBvZiBlcnJvciBtZXNzYWdlcyBwb2ludGVycyBhcnJheS4KICovCiAKIGNvbnN0IGNoYXIgKipt eV9lcnJvcl91bnJlZ2lzdGVyKGludCBmaXJzdCwgaW50IGxhc3QpCkBAIC0zMjQsNiArMzYyLDE3 IEBAIGNvbnN0IGNoYXIgKipteV9lcnJvcl91bnJlZ2lzdGVyKGludCBmaXIKIH0KIAogCisvKioK KyAgVW5yZWdpc3RlciBhbGwgZm9ybWVybHkgcmVnaXN0ZXJlZCBlcnJvciBtZXNzYWdlcy4KKwor ICBAZGVzY3JpcHRpb24KKworICAgIFRoaXMgZnVuY3Rpb24gdW5yZWdpc3RlcnMgYWxsIGVycm9y IG51bWJlcnMgdGhhdCBwcmV2aW91c2x5IGhhdmUKKyAgICBiZWVuIHByZXZpb3VzbHkgcmVnaXN0 ZXJlZCBieSBteV9lcnJvcl9yZWdpc3RlcigpLgorICAgIEFsbCBoZWFkZXJzIGFyZSByZW1vdmVk IGZyb20gdGhlIGxpc3Q7IHRoZSBtZXNzYWdlcyB0aGVtc2VsdmVzIGFyZQorICAgIG5vdCByZWxl YXNlZCBoZXJlIGFzIHRoZXkgbWF5IGJlIHN0YXRpYy4KKyovCisKIHZvaWQgbXlfZXJyb3JfdW5y ZWdpc3Rlcl9hbGwodm9pZCkKIHsKICAgc3RydWN0IG15X2Vycl9oZWFkICpjdXJzb3IsICpzYXZl ZF9uZXh0OwoKPT09IG1vZGlmaWVkIGZpbGUgJ3NxbC9sb2cuaCcKLS0tIGEvc3FsL2xvZy5oCTIw MTItMDQtMjAgMjI6Mzk6MzggKzAwMDAKKysrIGIvc3FsL2xvZy5oCTIwMTItMDUtMDIgMDQ6NTA6 NTMgKzAwMDAKQEAgLTMzMyw4ICszMzMsNiBAQCBpbnQgY2hlY2tfaWZfbG9nX3RhYmxlKHNpemVf dCBkYl9sZW4sIGNvCiAKIGNsYXNzIExvZ190b19jc3ZfZXZlbnRfaGFuZGxlcjogcHVibGljIExv Z19ldmVudF9oYW5kbGVyCiB7Ci0gIGZyaWVuZCBjbGFzcyBMT0dHRVI7Ci0KIHB1YmxpYzoKICAg TG9nX3RvX2Nzdl9ldmVudF9oYW5kbGVyKCk7CiAgIH5Mb2dfdG9fY3N2X2V2ZW50X2hhbmRsZXIo KTsKCj09PSBtb2RpZmllZCBmaWxlICd1bml0dGVzdC9ndW5pdC9DTWFrZUxpc3RzLnR4dCcKLS0t IGEvdW5pdHRlc3QvZ3VuaXQvQ01ha2VMaXN0cy50eHQJMjAxMi0wMi0yMyAxMzoxMDoxOCArMDAw MAorKysgYi91bml0dGVzdC9ndW5pdC9DTWFrZUxpc3RzLnR4dAkyMDEyLTA1LTAyIDA0OjUwOjUz ICswMDAwCkBAIC0yNTksNiArMjU5LDcgQEAgU0VUKFNFUlZFUl9URVNUUwogICBvcHRfdHJhY2UK ICAgc3FsX3RhYmxlCiAgIGdldF9kaWFnbm9zdGljcworICBteV9lcnJvcgogICBzZWdmYXVsdAog ICBqb2luX3RhYl9zb3J0CiApCgo9PT0gYWRkZWQgZmlsZSAndW5pdHRlc3QvZ3VuaXQvbXlfZXJy b3ItdC5jYycKLS0tIGEvdW5pdHRlc3QvZ3VuaXQvbXlfZXJyb3ItdC5jYwkxOTcwLTAxLTAxIDAw OjAwOjAwICswMDAwCisrKyBiL3VuaXR0ZXN0L2d1bml0L215X2Vycm9yLXQuY2MJMjAxMi0wNS0w MiAwNDo1MDo1MyArMDAwMApAQCAtMCwwICsxLDEwOCBAQAorLyogQ29weXJpZ2h0IChjKSAyMDEy LCBPcmFjbGUgYW5kL29yIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorCisg ICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yIG1vZGlmeQorICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb247IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZS4KKworICAgVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor ICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZQorICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K KworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRl IHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT dCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQSAqLworCisvLyBGaXJz dCBpbmNsdWRlICh0aGUgZ2VuZXJhdGVkKSBteV9jb25maWcuaCwgdG8gZ2V0IGNvcnJlY3QgcGxh dGZvcm0gZGVmaW5lcy4KKyNpbmNsdWRlICJteV9jb25maWcuaCIKKyNpbmNsdWRlIDxndGVzdC9n dGVzdC5oPgorCisjaW5jbHVkZSAibXlfc3lzLmgiIC8vIG15X3N0cmVycm9yKCkKKyNpbmNsdWRl ICJteV9iYXNlLmgiIC8vIEhBX0VSUl9LRVlfTk9UX0ZPVU5ECisKK25hbWVzcGFjZSB7CisKK1RF U1QoTXlFcnJvclRlc3QsIE15U3RyRXJyb3JTeXN0ZW0pCit7CisgIGNoYXIgYnVmWzUxMl07Cisg IGNvbnN0IGNoYXIgKm1zZzsKKworICBtc2c9IG15X3N0cmVycm9yKGJ1Ziwgc2l6ZW9mKGJ1Zikg LSAxLCA5OTk5KTsKKyAgRVhQRUNUX1RSVUUoIXN0cmNhc2VjbXAoInVua25vd24gZXJyb3IiLCBt c2cpIHx8CisgICAgICAgICAgICAgICFzdHJjYXNlY21wKCJ1bmtub3duIGVycm9yIDk5OTkiLCBt c2cpKTsKKworICAvLyB0cnkgYSBwcm9wZXIgZXJyb3IgbnVtYmVyCisgIG1zZz0gbXlfc3RyZXJy b3IoYnVmLCBzaXplb2YoYnVmKSAtIDEsIDEpOworICBFWFBFQ1RfU1RSQ0FTRUVRKCJPcGVyYXRp b24gbm90IHBlcm1pdHRlZCIsIG1zZyk7Cit9CisKK1RFU1QoTXlFcnJvclRlc3QsIE15U3RyRXJy b3JIYW5kbGVyUGx1Z2luKQoreworICBjaGFyIGJ1Zls1MTJdOworICBjb25zdCBjaGFyICptc2c7 CisKKyAgLy8gdHJ5IGEgSEEgZXJyb3IgbnVtYmVyCisgIG1zZz0gbXlfc3RyZXJyb3IoYnVmLCBz aXplb2YoYnVmKSAtIDEsIEhBX0VSUl9LRVlfTk9UX0ZPVU5EKTsKKyAgRVhQRUNUX1NUUkVRKCJE aWRuJ3QgZmluZCBrZXkgb24gcmVhZCBvciB1cGRhdGUiLCBtc2cpOworfQorCitURVNUKE15RXJy b3JUZXN0LCBNeUdldEVyck1zZ1VuaXRpYWxpemVkKQoreworICBjb25zdCBjaGFyICptc2c7CisK KyAgbXNnPSBteV9nZXRfZXJyX21zZyhIQV9FUlJfS0VZX05PVF9GT1VORCk7CisgIEVYUEVDVF9U UlVFKG1zZyA9PSBOVUxMKTsKK30KKworY29uc3QgY2hhciAqZmF1eF9lcnJtc2dzW109IHsgImFs cGhhIiwgImJldGEiLCBOVUxMLCAiZGVsdGEiIH07CisKK2NvbnN0IGNoYXIqKiBnZXRfZmF1eF9l cnJtc2dzKCkKK3sKKyAgcmV0dXJuIGZhdXhfZXJybXNnczsKK30KKworc3RhdGljIGNvbnN0IGlu dCBmYXV4X2Vycm9yX2ZpcnN0PSA4MDAwOworc3RhdGljIGNvbnN0IGludCBmYXV4X2Vycm9yX2xh c3Q9ICA4MDAzOworCitURVNUKE15RXJyb3JUZXN0LCBNeUdldEVyck1zZ0luaXRpYWxpemVkKQor eworICBjb25zdCBjaGFyICptc2c7CisKKyAgRVhQRUNUX0VRKDAsIG15X2Vycm9yX3JlZ2lzdGVy KGdldF9mYXV4X2Vycm1zZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYXV4 X2Vycm9yX2ZpcnN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmF1eF9lcnJv cl9sYXN0KSk7CisKKyAgLy8gZmxhZyBlcnJvciB3aGVuIHRyeWluZyB0byByZWdpc3RlciBvdmVy bGFwcGluZyBhcmVhCisgIEVYUEVDVF9ORSgwLCBteV9lcnJvcl9yZWdpc3RlcihnZXRfZmF1eF9l cnJtc2dzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmF1eF9lcnJvcl9maXJz dCArIDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYXV4X2Vycm9yX2xhc3Qg KyAyKSk7CisKKyAgbXNnPSBteV9nZXRfZXJyX21zZyhmYXV4X2Vycm9yX2ZpcnN0KTsKKyAgRVhQ RUNUX1NUUkVRKCJhbHBoYSIsIG1zZyk7CisKKyAgbXNnPSBteV9nZXRfZXJyX21zZyhmYXV4X2Vy cm9yX2ZpcnN0ICsgMSk7CisgIEVYUEVDVF9TVFJFUSgiYmV0YSIsIG1zZyk7CisKKyAgLy8gd2l0 aGluIHJhbmdlLiBnaXZlcyBOVUxMIGhlcmUuIGhpZ2hlciBsZXZlbCBmdW5jdGlvbiB3aWxsCisg IC8vIHN1YnN0aXR1dGUgYSBkZWZhdWx0IHN0cmluZyBiZWZvcmUgcHJpbnRpbmcuCisgIG1zZz0g bXlfZ2V0X2Vycl9tc2coZmF1eF9lcnJvcl9maXJzdCArIDIpOworICBFWFBFQ1RfVFJVRShtc2cg PT0gTlVMTCk7CisKKyAgLy8gb3V0IG9mIHJhbmdlCisgIG1zZz0gbXlfZ2V0X2Vycl9tc2coZmF1 eF9lcnJvcl9maXJzdCAtIDEpOworICBFWFBFQ1RfVFJVRShtc2cgPT0gTlVMTCk7CisKKyAgbXNn PSBteV9nZXRfZXJyX21zZyhmYXV4X2Vycm9yX2xhc3QpOworICBFWFBFQ1RfU1RSRVEoImRlbHRh IiwgbXNnKTsKKworICAvLyBvdXQgb2YgcmFuZ2UKKyAgbXNnPSBteV9nZXRfZXJyX21zZyhmYXV4 X2Vycm9yX2xhc3QgKyAxKTsKKyAgRVhQRUNUX1RSVUUobXNnID09IE5VTEwpOworCisgIEVYUEVD VF9UUlVFKG15X2Vycm9yX3VucmVnaXN0ZXIoZmF1eF9lcnJvcl9maXJzdCwgZmF1eF9lcnJvcl9s YXN0KSAhPSBOVUxMKTsKKworICAvLyBmbGFnIGVycm9yIHdoZW4gdHJ5aW5nIHRvIHVucmVnaXN0 ZXIgdHdpY2UKKyAgRVhQRUNUX1RSVUUobXlfZXJyb3JfdW5yZWdpc3RlcihmYXV4X2Vycm9yX2Zp cnN0LCBmYXV4X2Vycm9yX2xhc3QpID09IE5VTEwpOworfQorCit9CgpObyBidW5kbGUgKHJlYXNv bjogdXNlbGVzcyBmb3IgcHVzaCBlbWFpbHMpLg==