From: Alexander Barkov Date: March 4 2011 3:44pm Subject: bzr push into mysql-5.5 branch (alexander.barkov:3372 to 3373) Bug#57341 Bug#11764503 List-Archive: http://lists.mysql.com/commits/132487 X-Bug: 57341,11764503 Message-Id: <201103041544.p24FiBhS004530@bar.myoffice.izhnet.ru> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDMzNzMgQWxleGFuZGVyIEJhcmtvdgkyMDExLTAzLTA0CiAgICAgICBCdWcjMTE3NjQ1MDMgKEJ1 ZyM1NzM0MSkgUXVlcnkgaW4gRVhQTEFJTiBFWFRFTkRFRCBzaG93cyB3cm9uZyBjaGFyYWN0ZXJz CiAgICAgIAogICAgICAgIEAgbXlzcWwtdGVzdC9yL2N0eXBlX2xhdGluMS5yZXN1bHQKICAgICAg ICBAIG15c3FsLXRlc3Qvci9jdHlwZV91dGY4LnJlc3VsdAogICAgICAgIEAgbXlzcWwtdGVzdC90 L2N0eXBlX2xhdGluMS50ZXN0CiAgICAgICAgQCBteXNxbC10ZXN0L3QvY3R5cGVfdXRmOC50ZXN0 CiAgICAgICAgQWRkaW5nIHRlc3RzCiAgICAgIAogICAgICAgIEAgc3FsL215c3FsZC5oCiAgICAg ICAgQCBzcWwvaXRlbS5jYwogICAgICAgIEAgc3FsL3NxbF9wYXJzZS5jYwogICAgICAgIEAgc3Fs L3NxbF92aWV3LmNjCiAgICAgIAogICAgICAgIFJlZmFjdG9yaW5nICh0aGFua3MgdG8gR3VpbGhl bSBmb3IgdGhlIGlkZWEpOgogICAgICAKICAgICAgICBJdGVtX3N0cmluZzo6cHJpbnQoKSB3YXMg aGFyZCB0byB1bmRlcnN0YW5kIGJlY2F1c2Ugb2YgdGhlIGRpZmZlcmVudAogICAgICAgIFFUXyBj b25zdGFudHM6IGluICJxdWVyeV90eXBlPT1RVF94IiwgUVRfeCBpcyBleHBsaWNpdGVseSBpbmNs dWRlZAogICAgICAgIGJ1dCB0aGUgb3RoZXIgdHdvIFFUXyBhcmUgaW1wbGljaXRlbHkgZXhjbHVk ZWQuIFRoZSBjb21iaW5hdGlvbnMKICAgICAgICB3aXRoICd8fCcgYW5kICcmJicgbWFrZSB0aGlz IGV2ZW4gaGFyZGVyLgogICAgICAgIC0gbG9naWMgaXMgbm93IG1vcmUgImV4cGxpY2l0IiBieSBj aGFuZ2luZyBRVF8gY29uc3RhbnRzIHRvIGEgYml0bWFwIG9mIGZsYWdzOgogICAgICAgICAgUVRf T1JESU5BUlk6IG5vIGNoYW5nZSwKICAgICAgICAgIFFUX0lTIC0+IFFUX1RPX1NZU1RFTV9DSEFS U0VUIHwgUVRfV0lUSE9VVF9JTlRST0RVQ0VSUywKICAgICAgICAgIFFUX0VYUExBSU4gLT4gUVRf VE9fU1lTVEVNX0NIQVJTRVQKICAgICAgICAgIChRVF9FWFBMQUlOIHdhcyBpbnRyb2R1Y2VkIGlu IHRoZSBmaXJzdCB2ZXJzaW9uIG9mIHRoZSBCdWcjNTczNDEgcGF0Y2gpCiAgICAgICAgLSBJdGVt X3N0cmluZzo6cHJpbnQoKSBpcyByZXdyaXR0ZW4gdXNpbmcgdGhvc2UgZmxhZ3MKICAgICAgCiAg ICAgICAgQnVnZml4IGl0c2VsZjoKICAgICAgCiAgICAgICAgV2hlbiBRVF9UT19TWVNURU1fQ0hB UlNFVCBpcyB1c2VkIGFsb25lICh3aXRoIG5vIFFUX1dJVEhPVVRfSU5UUk9EVUNFUlMpLAogICAg ICAgIHdlIHByaW50IHN0cmluZyBsaXRlcmFscyBhcyBmb2xsb3dzOgogICAgICAKICAgICAgICAt IGRpc3BsYXkgaW50cm9kdWNlcnMgaWYgdGhleSB3ZXJlIGluIHRoZSBvcmlnaW5hbCBxdWVyeQog ICAgICAgIC0gcHJpbnQgQVNDSUkgY2hhcmFjdGVycyBhcyBpcwogICAgICAgIC0gcHJpbnQgbm9u LUFTQ0lJIGNoYXJhY3RlcnMgdXNpbmcgaGV4LWVzY2FwZQogICAgICAgIE5vdGU6IGFzICJFWFBM QUlOIiBvdXRwdXQgaXMgb25seSBmb3IgaHVtYW4gcmVhZGFiaWxpdHkgcHVycG9zZXMKICAgICAg ICBhbmQgZG9lcyBub3QgbmVlZCB0byBiZSBhIHBhc3JhYmxlIFNRTCwgc28gdXNpbmcgaGV4LWVz Y2FwZSBpcyBPay4KICAgICAgICBFcnJDb252U3RyaW5nIGNsYXNzIHBlcmZlY3RseSBzdWl0ZXMg Zm9yIGhleCBlc2NhcGluZyBwdXJwb3Nlcy4KCiAgICBtb2RpZmllZDoKICAgICAgbXlzcWwtdGVz dC9yL2N0eXBlX2xhdGluMS5yZXN1bHQKICAgICAgbXlzcWwtdGVzdC9yL2N0eXBlX3V0ZjgucmVz dWx0CiAgICAgIG15c3FsLXRlc3QvdC9jdHlwZV9sYXRpbjEudGVzdAogICAgICBteXNxbC10ZXN0 L3QvY3R5cGVfdXRmOC50ZXN0CiAgICAgIHNxbC9pdGVtLmNjCiAgICAgIHNxbC9teXNxbGQuaAog ICAgICBzcWwvc3FsX3BhcnNlLmNjCiAgICAgIHNxbC9zcWxfdmlldy5jYwogMzM3MiBOaXJiaGF5 IENob3ViZXkJMjAxMS0wMy0wNAogICAgICBCVUcjMTE3NjYyMTkgOiA1OTI4MDogJE1ZU1FMX0hP TUUgSVMgTk9UIFVTRUQgRk9SIFRIRQogICAgICAgICAgICAgICAgICAgICBDTElFTlQgQ09ORklH VVJBVElPTi4KICAgICAgCiAgICAgIEF0IHN0YXJ0dXAsIE15U1FMIHNlcnZlci9jbGllbnQgcHJv Z3JhbXMgZG8gbm90IHJlYWQKICAgICAgY29uZmlndXJhdGlvbiBmaWxlIHBvaW50ZWQgYnkgTVlT UUxfSE9NRSBlbnZpcm9ubWVudAogICAgICB2YXJpYWJsZS4KICAgICAgCiAgICAgIFRoaXMgaGFw cGVuZWQgYXMsIHRoaXMgZW52aXJvbm1lbnQgdmFyaWFibGUgd2FzCiAgICAgIGhhbmRsZWQgYnkg YSBkaWZmZXJlbnQgdmFyaWFibGUgKERFRkFVTFRfSE9NRV9FTlYpCiAgICAgIGluIHRoZSBjb2Rl LCB3aGljaCB3YXMgbmUnZXIgaW5pdGlhbGl6ZWQuCiAgICAgIAogICAgICBGaXhlZCBieSBjaGFu Z2luZyBpdCB0byBNWVNRTF9IT01FLgogICAgIEAgbXlzeXMvZGVmYXVsdC5jCiAgICAgICAgQlVH IDExNzY2MjE5IDogNTkyODA6ICRNWVNRTF9IT01FIElTIE5PVCBVU0VEIEZPUiBUSEUKICAgICAg ICAgICAgICAgICAgICAgICBDTElFTlQgQ09ORklHVVJBVElPTi4KICAgICAgICAKICAgICAgICBJ biB0aGUgY3VycmVudCBidWlsZCBlbnZpcm9ubWVudCwgdGhlIHZhcmlhYmxlCiAgICAgICAgREVG QVVMVF9IT01FX0VOViBpcyBubyBtb3JlIGZvdW5kIGJlaW5nIGluaXRpYWxpemVkCiAgICAgICAg dG8gTVlTUUxfSE9NRSAoYXMgd2FzIHRoZSBjYXNlIGVhcmxpZXIpLiBDaGFuZ2VkIHRoZQogICAg ICAgIHZhcmlhYmxlIG5hbWUgdG8gTVlTUUxfSE9NRS4KCiAgICBtb2RpZmllZDoKICAgICAgbXlz eXMvZGVmYXVsdC5jCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3IvY3R5cGVfbGF0aW4x LnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9yL2N0eXBlX2xhdGluMS5yZXN1bHQJMjAxMS0wMi0x MCAwODoxODowOCArMDAwMAorKysgYi9teXNxbC10ZXN0L3IvY3R5cGVfbGF0aW4xLnJlc3VsdAky MDExLTAzLTA0IDE1OjQzOjI4ICswMDAwCkBAIC0zMjQ2LDUgKzMyNDYsMjAgQEAgbWFrZXRpbWUo YGFgLGBhYCxgYWApCiBEUk9QIFRBQkxFIHQxOwogU0VUIHNxbF9tb2RlPWRlZmF1bHQ7CiAjCisj IEJ1ZyMxMTc2NDUwMyAoQnVnIzU3MzQxKSBRdWVyeSBpbiBFWFBMQUlOIEVYVEVOREVEIHNob3dz IHdyb25nIGNoYXJhY3RlcnMKKyMKK1NFVCBOQU1FUyB1dGY4OworRVhQTEFJTiBFWFRFTkRFRCBT RUxFQ1QgJ2FiY2TDsycsIF9sYXRpbjEnYWJjZMOzJywgX3V0ZjgnYWJjZMOzJzsKK2lkCXNlbGVj dF90eXBlCXRhYmxlCXR5cGUJcG9zc2libGVfa2V5cwlrZXkJa2V5X2xlbglyZWYJcm93cwlmaWx0 ZXJlZAlFeHRyYQorMQlTSU1QTEUJTlVMTAlOVUxMCU5VTEwJTlVMTAlOVUxMCU5VTEwJTlVMTAlO VUxMCU5vIHRhYmxlcyB1c2VkCitXYXJuaW5nczoKK05vdGUJMTAwMwlzZWxlY3QgJ2FiY2TDsycg QVMgYGFiY2TDs2AsX2xhdGluMSdhYmNkXHhDM1x4QjMnIEFTIGBhYmNkw4PCs2AsX3V0ZjgnYWJj ZFx4QzNceEIzJyBBUyBgYWJjZMOzYAorU0VUIE5BTUVTIGxhdGluMTsKK0VYUExBSU4gRVhURU5E RUQgU0VMRUNUICdhYmNkw7MnLCBfbGF0aW4xJ2FiY2TDsycsIF91dGY4J2FiY2TDsyc7CitpZAlz ZWxlY3RfdHlwZQl0YWJsZQl0eXBlCXBvc3NpYmxlX2tleXMJa2V5CWtleV9sZW4JcmVmCXJvd3MJ ZmlsdGVyZWQJRXh0cmEKKzEJU0lNUExFCU5VTEwJTlVMTAlOVUxMCU5VTEwJTlVMTAlOVUxMCU5V TEwJTlVMTAlObyB0YWJsZXMgdXNlZAorV2FybmluZ3M6CitOb3RlCTEwMDMJc2VsZWN0ICdhYmNk w7MnIEFTIGBhYmNkw7NgLF9sYXRpbjEnYWJjZFx4QzNceEIzJyBBUyBgYWJjZMOzYCxfdXRmOCdh YmNkXHhDM1x4QjMnIEFTIGBhYmNk77+9YAorIwogIyBFbmQgb2YgNS41IHRlc3RzCiAjCgo9PT0g bW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9yL2N0eXBlX3V0ZjgucmVzdWx0JwotLS0gYS9teXNx bC10ZXN0L3IvY3R5cGVfdXRmOC5yZXN1bHQJMjAxMS0wMi0xMCAwODoxODowOCArMDAwMAorKysg Yi9teXNxbC10ZXN0L3IvY3R5cGVfdXRmOC5yZXN1bHQJMjAxMS0wMy0wNCAxNTo0MzoyOCArMDAw MApAQCAtNDk2OSw1ICs0OTY5LDIwIEBAIEdST1VQIEJZIElOU0VSVCgnJywgdDIuYSwgdDEuYSwg KEBAZ2xvYmEKIEVSUk9SIDIzMDAwOiBEdXBsaWNhdGUgZW50cnkgJzEwNzM3NDE4MjQxMDczNzQx ODI0MScgZm9yIGtleSAnZ3JvdXBfa2V5JwogRFJPUCBUQUJMRSB0MTsKICMKKyMgQnVnIzExNzY0 NTAzIChCdWcjNTczNDEpIFF1ZXJ5IGluIEVYUExBSU4gRVhURU5ERUQgc2hvd3Mgd3JvbmcgY2hh cmFjdGVycworIworU0VUIE5BTUVTIGxhdGluMTsKK0VYUExBSU4gRVhURU5ERUQgU0VMRUNUICdh YmNkw4HDgsODw4TDhScsIF9sYXRpbjEnYWJjZMOBw4LDg8OEw4UnLCBfdXRmOCdhYmNkw4HDgsOD w4TDhScgQVMgdTsKK2lkCXNlbGVjdF90eXBlCXRhYmxlCXR5cGUJcG9zc2libGVfa2V5cwlrZXkJ a2V5X2xlbglyZWYJcm93cwlmaWx0ZXJlZAlFeHRyYQorMQlTSU1QTEUJTlVMTAlOVUxMCU5VTEwJ TlVMTAlOVUxMCU5VTEwJTlVMTAlOVUxMCU5vIHRhYmxlcyB1c2VkCitXYXJuaW5nczoKK05vdGUJ MTAwMwlzZWxlY3QgJ2FiY2TDgcOCw4PDhMOFJyBBUyBgYWJjZMOBw4LDg8OEw4VgLF9sYXRpbjEn YWJjZFx4QzNceDgxXHhDM1x4ODJceEMzXHg4M1x4QzNceDg0XHhDM1x4ODUnIEFTIGBhYmNkw4HD gsODw4TDhWAsX3V0ZjgnYWJjZFx4QzNceDgxXHhDM1x4ODJceEMzXHg4M1x4QzNceDg0XHhDM1x4 ODUnIEFTIGB1YAorU0VUIE5BTUVTIHV0Zjg7CitFWFBMQUlOIEVYVEVOREVEIFNFTEVDVCAnYWJj ZMOBw4LDg8OEw4UnLCBfbGF0aW4xJ2FiY2TDgcOCw4PDhMOFJywgX3V0ZjgnYWJjZMOBw4LDg8OE w4UnOworaWQJc2VsZWN0X3R5cGUJdGFibGUJdHlwZQlwb3NzaWJsZV9rZXlzCWtleQlrZXlfbGVu CXJlZglyb3dzCWZpbHRlcmVkCUV4dHJhCisxCVNJTVBMRQlOVUxMCU5VTEwJTlVMTAlOVUxMCU5V TEwJTlVMTAlOVUxMCU5VTEwJTm8gdGFibGVzIHVzZWQKK1dhcm5pbmdzOgorTm90ZQkxMDAzCXNl bGVjdCAnYWJjZMOBw4LDg8OEw4UnIEFTIGBhYmNkw4HDgsODw4TDhWAsX2xhdGluMSdhYmNkXHhD M1x4ODFceEMzXHg4Mlx4QzNceDgzXHhDM1x4ODRceEMzXHg4NScgQVMgYGFiY2TDg8KBw4PigJrD g8aSw4PigJ7Dg+KApmAsX3V0ZjgnYWJjZFx4QzNceDgxXHhDM1x4ODJceEMzXHg4M1x4QzNceDg0 XHhDM1x4ODUnIEFTIGBhYmNkw4HDgsODw4TDhWAKKyMKICMgRW5kIG9mIDUuNSB0ZXN0cwogIwoK PT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3QvdC9jdHlwZV9sYXRpbjEudGVzdCcKLS0tIGEv bXlzcWwtdGVzdC90L2N0eXBlX2xhdGluMS50ZXN0CTIwMTAtMTEtMTggMDk6MTQ6MjcgKzAwMDAK KysrIGIvbXlzcWwtdGVzdC90L2N0eXBlX2xhdGluMS50ZXN0CTIwMTEtMDMtMDQgMTU6NDM6Mjgg KzAwMDAKQEAgLTE0NCw1ICsxNDQsMjAgQEAgU0VMRUNUICcnIExJS0UgJycgRVNDQVBFIEVYUE9S VF9TRVQoMSwgMQogLS1zb3VyY2UgaW5jbHVkZS9jdHlwZV9udW1jb252LmluYwogCiAtLWVjaG8g IworLS1lY2hvICMgQnVnIzExNzY0NTAzIChCdWcjNTczNDEpIFF1ZXJ5IGluIEVYUExBSU4gRVhU RU5ERUQgc2hvd3Mgd3JvbmcgY2hhcmFjdGVycworLS1lY2hvICMKKyMgVGVzdCBsYXRpbjEgY2xp ZW50IGVycm9uZW91c2x5IHN0YXJ0ZWQgd2l0aCAtLWRlZmF1bHQtY2hhcmFjdGVyLXNldD11dGY4 CisjIEVYUExBSU4gb3V0cHV0IHNob3VsZCBzdGlsbCBiZSBwcmV0dHkgcmVhZGFibGUuCisjIFdl J3JlIHVzaW5nICfDsycgKFx4QzNceEIzKSBhcyBhIG1hZ2ljIHNlcXVlbmNlOgorIyAtIGl0J3Mg IkxBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBUSUxERSBBQk9WRSArIFNVUEVSU0NSSVBUIDMi IGluIGxhdGluMQorIyAtIGl0J3MgIkxBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQUNVVEUgQUJP VkUiIGluIHV0ZjguCitTRVQgTkFNRVMgdXRmODsKK0VYUExBSU4gRVhURU5ERUQgU0VMRUNUICdh YmNkw7MnLCBfbGF0aW4xJ2FiY2TDsycsIF91dGY4J2FiY2TDsyc7CisjIFRlc3Qgbm9ybWFsIGxh dGluMQorU0VUIE5BTUVTIGxhdGluMTsKK0VYUExBSU4gRVhURU5ERUQgU0VMRUNUICdhYmNkw7Mn LCBfbGF0aW4xJ2FiY2TDsycsIF91dGY4J2FiY2TDsyc7CisKKworLS1lY2hvICMKIC0tZWNobyAj IEVuZCBvZiA1LjUgdGVzdHMKIC0tZWNobyAjCgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVz dC90L2N0eXBlX3V0ZjgudGVzdCcKLS0tIGEvbXlzcWwtdGVzdC90L2N0eXBlX3V0ZjgudGVzdAky MDEwLTEyLTE3IDExOjExOjM0ICswMDAwCisrKyBiL215c3FsLXRlc3QvdC9jdHlwZV91dGY4LnRl c3QJMjAxMS0wMy0wNCAxNTo0MzoyOCArMDAwMApAQCAtMTU1MCw2ICsxNTUwLDE2IEBAIFNFTEVD VCBDT1VOVCgqKSBGUk9NIHQxLCB0MSB0MiAKIEdST1VQIEJZIElOU0VSVCgnJywgdDIuYSwgdDEu YSwgKEBAZ2xvYmFsLm1heF9iaW5sb2dfc2l6ZSkpOwogRFJPUCBUQUJMRSB0MTsKIAorLS1lY2hv ICMKKy0tZWNobyAjIEJ1ZyMxMTc2NDUwMyAoQnVnIzU3MzQxKSBRdWVyeSBpbiBFWFBMQUlOIEVY VEVOREVEIHNob3dzIHdyb25nIGNoYXJhY3RlcnMKKy0tZWNobyAjCisjIEVtdWxhdGUgdXRmOCBj bGllbnQgZXJyb25lb3VzbHkgc3RhcnRlZCB3aXRoIC0tZGVmYXVsdC1jaGFyYWN0ZXItc2V0PWxh dGluMSwKKyMgYXMgaW4gdGhlIGJ1ZyByZXBvcnQuIEVYUExBSU4gb3V0cHV0IHNob3VsZCBzdGls bCBiZSBwcmV0dHkgcmVhZGFibGUKK1NFVCBOQU1FUyBsYXRpbjE7CitFWFBMQUlOIEVYVEVOREVE IFNFTEVDVCAnYWJjZMOBw4LDg8OEw4UnLCBfbGF0aW4xJ2FiY2TDgcOCw4PDhMOFJywgX3V0Zjgn YWJjZMOBw4LDg8OEw4UnIEFTIHU7CisjIFRlc3Qgbm9ybWFsIHV0ZjgKK1NFVCBOQU1FUyB1dGY4 OworRVhQTEFJTiBFWFRFTkRFRCBTRUxFQ1QgJ2FiY2TDgcOCw4PDhMOFJywgX2xhdGluMSdhYmNk w4HDgsODw4TDhScsIF91dGY4J2FiY2TDgcOCw4PDhMOFJzsKIAogLS1lY2hvICMKIC0tZWNobyAj IEVuZCBvZiA1LjUgdGVzdHMKCj09PSBtb2RpZmllZCBmaWxlICdzcWwvaXRlbS5jYycKLS0tIGEv c3FsL2l0ZW0uY2MJMjAxMS0wMy0wMSAxNDo0MjozNyArMDAwMAorKysgYi9zcWwvaXRlbS5jYwky MDExLTAzLTA0IDE1OjQzOjI4ICswMDAwCkBAIC0yNTE0LDcgKzI1MTQsOSBAQCBteV9kZWNpbWFs ICpJdGVtX2Zsb2F0Ojp2YWxfZGVjaW1hbChteV9kCiAKIHZvaWQgSXRlbV9zdHJpbmc6OnByaW50 KFN0cmluZyAqc3RyLCBlbnVtX3F1ZXJ5X3R5cGUgcXVlcnlfdHlwZSkKIHsKLSAgaWYgKHF1ZXJ5 X3R5cGUgPT0gUVRfT1JESU5BUlkgJiYgaXNfY3Nfc3BlY2lmaWVkKCkpCisgIGNvbnN0IGJvb2wg cHJpbnRfaW50cm9kdWNlcj0KKyAgICAhKHF1ZXJ5X3R5cGUgJiBRVF9XSVRIT1VUX0lOVFJPRFVD RVJTKSAmJiBpc19jc19zcGVjaWZpZWQoKTsKKyAgaWYgKHByaW50X2ludHJvZHVjZXIpCiAgIHsK ICAgICBzdHItPmFwcGVuZCgnXycpOwogICAgIHN0ci0+YXBwZW5kKGNvbGxhdGlvbi5jb2xsYXRp b24tPmNzbmFtZSk7CkBAIC0yNTIyLDI3ICsyNTI0LDUyIEBAIHZvaWQgSXRlbV9zdHJpbmc6OnBy aW50KFN0cmluZyAqc3RyLCBlbnUKIAogICBzdHItPmFwcGVuZCgnXCcnKTsKIAotICBpZiAocXVl cnlfdHlwZSA9PSBRVF9PUkRJTkFSWSB8fAotICAgICAgbXlfY2hhcnNldF9zYW1lKHN0cl92YWx1 ZS5jaGFyc2V0KCksIHN5c3RlbV9jaGFyc2V0X2luZm8pKQorICBpZiAocXVlcnlfdHlwZSAmIFFU X1RPX1NZU1RFTV9DSEFSU0VUKQogICB7Ci0gICAgc3RyX3ZhbHVlLnByaW50KHN0cik7CisgICAg aWYgKHByaW50X2ludHJvZHVjZXIpCisgICAgeworICAgICAgLyoKKyAgICAgICAgQmVjYXVzZSB3 ZSB3cm90ZSBhbiBpbnRyb2R1Y2VyLCB3ZSBtdXN0IHByaW50IHN0cl92YWx1ZSBpbiBpdHMKKyAg ICAgICAgY2hhcnNldCwgYW5kIHRoZSByZXN1bHRpbmcgYnl0ZXMgbXVzdCBub3QgYmUgY2hhbmdl ZCB1bnRpbCB0aGV5CisgICAgICAgIHJlYWNoIHRoZSBlbmQgY2xpZW50LgorICAgICAgICBCdXQg dGhlIGNhbGxlciBpcyBhc2tpbmcgZm9yIHN5c3RlbV9jaGFyc2V0X2luZm8sIGFuZCBtYXkgbGF0 ZXIKKyAgICAgICAgY29udmVydCBpbnRvIGNoYXJhY3Rlcl9zZXRfcmVzdWx0cy4gVGhhdCBtZWFu cyB0d28gY29udmVyc2lvbnM6IHdlCisgICAgICAgIG11c3QgZW5zdXJlIHRoYXQgdGhleSBkb24n dCBjaGFuZ2Ugb3VyIHByaW50ZWQgYnl0ZXMuCisgICAgICAgIFNvIHdlIHByaW50IHN0cl92YWx1 ZSBpbiB0aGUgbGVhc3QgY29tbW9uIGRlbm9taW5hdG9yIG9mIHRoZSB0aHJlZQorICAgICAgICBj aGFyc2V0cyBpbnZvbHZlZDogQVNDSUkuIE5vbi1BU0NJSSBjaGFyYWN0ZXJzIGFyZSBwcmludGVk IGFzIFx4RkYKKyAgICAgICAgc2VxdWVuY2VzICh3aGljaCBpcyBBU0NJSSB0b28pLiBUaGlzIHdh eSwgb3VyIGJ5dGVzIHdpbGwgbm90IGJlCisgICAgICAgIGNoYW5nZWQuCisgICAgICAqLworICAg ICAgRXJyQ29udlN0cmluZyB0bXAoc3RyX3ZhbHVlLnB0cigpLCBzdHJfdmFsdWUubGVuZ3RoKCks ICZteV9jaGFyc2V0X2Jpbik7CisgICAgICBzdHItPmFwcGVuZCh0bXAucHRyKCkpOworICAgIH0K KyAgICBlbHNlCisgICAgeworICAgICAgaWYgKG15X2NoYXJzZXRfc2FtZShzdHJfdmFsdWUuY2hh cnNldCgpLCBzeXN0ZW1fY2hhcnNldF9pbmZvKSkKKyAgICAgICAgc3RyX3ZhbHVlLnByaW50KHN0 cik7IC8vIGFscmVhZHkgaW4gc3lzdGVtX2NoYXJzZXRfaW5mbworICAgICAgZWxzZSAvLyBuZWVk IHRvIGNvbnZlcnQKKyAgICAgIHsKKyAgICAgICAgVEhEICp0aGQ9IGN1cnJlbnRfdGhkOworICAg ICAgICBMRVhfU1RSSU5HIHV0ZjhfbGV4X3N0cjsKKworICAgICAgICB0aGQtPmNvbnZlcnRfc3Ry aW5nKCZ1dGY4X2xleF9zdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3lzdGVtX2No YXJzZXRfaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJfdmFsdWUuY19wdHJf c2FmZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cl92YWx1ZS5sZW5ndGgoKSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJfdmFsdWUuY2hhcnNldCgpKTsKKworICAg ICAgICBTdHJpbmcgdXRmOF9zdHIodXRmOF9sZXhfc3RyLnN0ciwKKyAgICAgICAgICAgICAgICAg ICAgICAgIHV0ZjhfbGV4X3N0ci5sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICBzeXN0 ZW1fY2hhcnNldF9pbmZvKTsKKworICAgICAgICB1dGY4X3N0ci5wcmludChzdHIpOworICAgICAg fQorICAgIH0KICAgfQogICBlbHNlCiAgIHsKLSAgICBUSEQgKnRoZD0gY3VycmVudF90aGQ7Ci0g ICAgTEVYX1NUUklORyB1dGY4X2xleF9zdHI7Ci0KLSAgICB0aGQtPmNvbnZlcnRfc3RyaW5nKCZ1 dGY4X2xleF9zdHIsCi0gICAgICAgICAgICAgICAgICAgICAgICBzeXN0ZW1fY2hhcnNldF9pbmZv LAotICAgICAgICAgICAgICAgICAgICAgICAgc3RyX3ZhbHVlLmNfcHRyX3NhZmUoKSwKLSAgICAg ICAgICAgICAgICAgICAgICAgIHN0cl92YWx1ZS5sZW5ndGgoKSwKLSAgICAgICAgICAgICAgICAg ICAgICAgIHN0cl92YWx1ZS5jaGFyc2V0KCkpOwotCi0gICAgU3RyaW5nIHV0Zjhfc3RyKHV0Zjhf bGV4X3N0ci5zdHIsCi0gICAgICAgICAgICAgICAgICAgIHV0ZjhfbGV4X3N0ci5sZW5ndGgsCi0g ICAgICAgICAgICAgICAgICAgIHN5c3RlbV9jaGFyc2V0X2luZm8pOwotCi0gICAgdXRmOF9zdHIu cHJpbnQoc3RyKTsKKyAgICAvLyBDYWxsZXIgd2FudHMgYSByZXN1bHQgaW4gdGhlIGNoYXJzZXQg b2Ygc3RyX3ZhbHVlLgorICAgIHN0cl92YWx1ZS5wcmludChzdHIpOwogICB9CiAKICAgc3RyLT5h cHBlbmQoJ1wnJyk7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL215c3FsZC5oJwotLS0gYS9zcWwv bXlzcWxkLmgJMjAxMS0wMS0xNCAxMzoyMTo0NiArMDAwMAorKysgYi9zcWwvbXlzcWxkLmgJMjAx MS0wMy0wNCAxNTo0MzoyOCArMDAwMApAQCAtMzk5LDE2ICszOTksMTYgQEAgZW51bSBvcHRpb25z X215c3FsZAogCiAKIC8qKgotICBRdWVyeSB0eXBlIGNvbnN0YW50cy4KLQotICBRVF9PUkRJTkFS WSAtLSBvcmRpbmFyeSBTUUwgcXVlcnkuCi0gIFFUX0lTIC0tIFNRTCBxdWVyeSB0byBiZSBzaG93 biBpbiBJTkZPUk1BVElPTl9TQ0hFTUEgKGluIHV0ZjggYW5kIHdpdGhvdXQKLSAgY2hhcmFjdGVy IHNldCBpbnRyb2R1Y2VycykuCisgICBRdWVyeSB0eXBlIGNvbnN0YW50cyAodXNhYmxlIGFzIGJp dG1hcCBmbGFncykuCiAqLwogZW51bSBlbnVtX3F1ZXJ5X3R5cGUKIHsKLSAgUVRfT1JESU5BUlks Ci0gIFFUX0lTCisgIC8vLyBOb3RoaW5nIHNwZWNpZmljLCBvcmRpbmFyeSBTUUwgcXVlcnkuCisg IFFUX09SRElOQVJZPSAwLAorICAvLy8gSW4gdXRmOC4KKyAgUVRfVE9fU1lTVEVNX0NIQVJTRVQ9 ICgxIDw8IDApLAorICAvLy8gV2l0aG91dCBjaGFyYWN0ZXIgc2V0IGludHJvZHVjZXJzLgorICBR VF9XSVRIT1VUX0lOVFJPRFVDRVJTPSAoMSA8PCAxKQogfTsKIAogLyogcXVlcnlfaWQgKi8KCj09 PSBtb2RpZmllZCBmaWxlICdzcWwvc3FsX3BhcnNlLmNjJwotLS0gYS9zcWwvc3FsX3BhcnNlLmNj CTIwMTEtMDMtMDMgMDg6MzA6NDEgKzAwMDAKKysrIGIvc3FsL3NxbF9wYXJzZS5jYwkyMDExLTAz LTA0IDE1OjQzOjI4ICswMDAwCkBAIC00NDM5LDcgKzQ0MzksMTEgQEAgc3RhdGljIGJvb2wgZXhl Y3V0ZV9zcWxjb21fc2VsZWN0KFRIRCAqdAogICAgICAgICBjaGFyIGJ1ZmZbMTAyNF07CiAgICAg ICAgIFN0cmluZyBzdHIoYnVmZiwodWludDMyKSBzaXplb2YoYnVmZiksIHN5c3RlbV9jaGFyc2V0 X2luZm8pOwogICAgICAgICBzdHIubGVuZ3RoKDApOwotICAgICAgICB0aGQtPmxleC0+dW5pdC5w cmludCgmc3RyLCBRVF9PUkRJTkFSWSk7CisgICAgICAgIC8qCisgICAgICAgICAgVGhlIHdhcm5p bmdzIHN5c3RlbSByZXF1aXJlcyBpbnB1dCBpbiB1dGY4LCBAc2VlCisgICAgICAgICAgbXlzcWxk X3Nob3dfd2FybmluZ3MoKS4KKyAgICAgICAgKi8KKyAgICAgICAgdGhkLT5sZXgtPnVuaXQucHJp bnQoJnN0ciwgUVRfVE9fU1lTVEVNX0NIQVJTRVQpOwogICAgICAgICBzdHIuYXBwZW5kKCdcMCcp OwogICAgICAgICBwdXNoX3dhcm5pbmcodGhkLCBNWVNRTF9FUlJPUjo6V0FSTl9MRVZFTF9OT1RF LAogICAgICAgICAgICAgICAgICAgICAgRVJfWUVTLCBzdHIucHRyKCkpOwoKPT09IG1vZGlmaWVk IGZpbGUgJ3NxbC9zcWxfdmlldy5jYycKLS0tIGEvc3FsL3NxbF92aWV3LmNjCTIwMTEtMDMtMDEg MTQ6NDI6MzcgKzAwMDAKKysrIGIvc3FsL3NxbF92aWV3LmNjCTIwMTEtMDMtMDQgMTU6NDM6Mjgg KzAwMDAKQEAgLTg0MSw3ICs4NDEsOCBAQCBzdGF0aWMgaW50IG15c3FsX3JlZ2lzdGVyX3ZpZXco VEhEICp0aGQsCiAgICAgdGhkLT52YXJpYWJsZXMuc3FsX21vZGUmPSB+TU9ERV9BTlNJX1FVT1RF UzsKIAogICAgIGxleC0+dW5pdC5wcmludCgmdmlld19xdWVyeSwgUVRfT1JESU5BUlkpOwotICAg IGxleC0+dW5pdC5wcmludCgmaXNfcXVlcnksIFFUX0lTKTsKKyAgICBsZXgtPnVuaXQucHJpbnQo JmlzX3F1ZXJ5LAorICAgICAgICAgICAgICAgICAgICBlbnVtX3F1ZXJ5X3R5cGUoUVRfVE9fU1lT VEVNX0NIQVJTRVQgfCBRVF9XSVRIT1VUX0lOVFJPRFVDRVJTKSk7CiAKICAgICB0aGQtPnZhcmlh Ymxlcy5zcWxfbW9kZXw9IHNxbF9tb2RlOwogICB9CgpObyBidW5kbGUgKHJlYXNvbjogdXNlbGVz cyBmb3IgcHVzaCBlbWFpbHMpLg==