From: Bjorn Munch Date: March 8 2011 7:18pm Subject: bzr push into mysql-5.1-mtr branch (bjorn.munch:2984 to 2985) List-Archive: http://lists.mysql.com/commits/132633 Message-Id: <201103081918.p28JIFL9011843@khepri15.norway.sun.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDI5ODUgQmpvcm4gTXVuY2gJMjAxMS0wMy0wOCBbbWVyZ2VdCiAgICAgIG1lcmdlIGZyb20gNS4x IG1haW4KCiAgICBhZGRlZDoKICAgICAgbXlzcWwtdGVzdC9yL2Z1bmNfZW5jcnlwdF91Y3MyLnJl c3VsdAogICAgICBteXNxbC10ZXN0L3QvZnVuY19lbmNyeXB0X3VjczIudGVzdAogICAgbW9kaWZp ZWQ6CiAgICAgIG15c3FsLXRlc3Qvci9jdHlwZV9zamlzLnJlc3VsdAogICAgICBteXNxbC10ZXN0 L3IvY3R5cGVfdWNzLnJlc3VsdAogICAgICBteXNxbC10ZXN0L3IveG1sLnJlc3VsdAogICAgICBt eXNxbC10ZXN0L3N1aXRlL2VuZ2luZXMvaXVkcy9yL2luc2VydF95ZWFyLnJlc3VsdAogICAgICBt eXNxbC10ZXN0L3QvY3R5cGVfc2ppcy50ZXN0CiAgICAgIG15c3FsLXRlc3QvdC9jdHlwZV91Y3Mu dGVzdAogICAgICBteXNxbC10ZXN0L3QveG1sLnRlc3QKICAgICAgc3FsL2l0ZW1fZnVuYy5jYwog ICAgICBzcWwvaXRlbV9zdHJmdW5jLmNjCiAgICAgIHNxbC9pdGVtX3N0cmZ1bmMuaAogICAgICBz cWwvc3FsX3BhcnNlLmNjCiAgICAgIHN0cmluZ3MveG1sLmMKIDI5ODQgQmpvcm4gTXVuY2gJMjAx MS0wMi0yOAogICAgICBBdHRlbXB0IGF0IHNvbHZpbmcgbWlzc2luZyBlbmQgb2YgbXRyIG91dHB1 dCBvbiBXaW5kb3dzCgogICAgbW9kaWZpZWQ6CiAgICAgIG15c3FsLXRlc3QvbGliL210cl9yZXBv cnQucG0KPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvci9jdHlwZV9zamlzLnJlc3VsdCcK LS0tIGEvbXlzcWwtdGVzdC9yL2N0eXBlX3NqaXMucmVzdWx0CTIwMDktMDUtMDUgMDY6NTU6MjIg KzAwMDAKKysrIGIvbXlzcWwtdGVzdC9yL2N0eXBlX3NqaXMucmVzdWx0CTIwMTEtMDMtMDMgMTU6 Mzk6MjYgKzAwMDAKQEAgLTIxOCw0ICsyMTgsMTAgQEAgaGV4KGEpCWhleChsb3dlcihhKSkJaGV4 KHVwcGVyKGEpKQogODM1MjgzNUUJODM1MjgzNUUJODM1MjgzNUUKIDgzNzI4MzVFCTgzNzI4MzVF CTgzNzI4MzVFCiBEUk9QIFRBQkxFIHQxOworIworIyBCdWcjMTE3NjY1MTkgLSBCdWcjNTk2NDg6 IE1ZX1NUUlRPTEwxMF9NQjI6IEFTU0VSVElPTiBgKCpFTkRQVFIgLSBTKSAlIDIgPT0gMCcgRkFJ TEVELgorIworU0VMRUNUIFFVT1RFKCfvv71cJyk7CitRVU9URSgn77+9XCcpCisn77+9XCcKICMg RW5kIG9mIDUuMSB0ZXN0cwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvci9jdHlwZV91 Y3MucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3IvY3R5cGVfdWNzLnJlc3VsdAkyMDEwLTA0LTA2 IDA3OjI2OjU5ICswMDAwCisrKyBiL215c3FsLXRlc3Qvci9jdHlwZV91Y3MucmVzdWx0CTIwMTEt MDMtMDMgMTU6Mzk6MjYgKzAwMDAKQEAgLTk5MCw4ICs5OTAsOCBAQCBvbGRfcGFzc3dvcmQobmFt ZSkKID8/Pz8/Pz8/CiBzZWxlY3QgcXVvdGUobmFtZSkgZnJvbSBidWcyMDUzNjsKIHF1b3RlKG5h bWUpCi0/Pz8/Pz8/PwotPz8/Pz8/Pz8/Pz8/Pz8/PworJ3Rlc3QxJworJ1wndGVzdFxcXzJcJycK IGRyb3AgdGFibGUgYnVnMjA1MzY7CiBzZXQgbmFtZXMgdWNzMjsKIEVSUk9SIDQyMDAwOiBWYXJp YWJsZSAnY2hhcmFjdGVyX3NldF9jbGllbnQnIGNhbid0IGJlIHNldCB0byB0aGUgdmFsdWUgb2Yg J3VjczInCkBAIC0xMjM4LDQgKzEyMzgsMTUgQEAgQ1JFQVRFIFZJRVcgdjEgQVMgU0VMRUNUIDEg ZnJvbSB0MQogV0hFUkUgdDEuYiA8PT4gKFNFTEVDVCBhIEZST00gdDEgV0hFUkUgYSA8IFNPTUUo U0VMRUNUICcxJykpOwogRFJPUCBWSUVXIHYxOwogRFJPUCBUQUJMRSB0MTsKKyMKKyMgQnVnIzU5 NjQ4IG15X3N0cnRvbGwxMF9tYjI6IEFzc2VydGlvbiBgKCplbmRwdHIgLSBzKSAlIDIgPT0gMCcg ZmFpbGVkLgorIworU0VMRUNUIEhFWChDSEFSKENPQUxFU0NFKE5VTEwsIENIQVIoQ09VTlQoJyVz JykgVVNJTkcgdWNzMiksIDEsIEBAZ2xvYmFsLmxpY2Vuc2UsIE5VTEwpIFVTSU5HIGNwODUwKSk7 CitIRVgoQ0hBUihDT0FMRVNDRShOVUxMLCBDSEFSKENPVU5UKCclcycpIFVTSU5HIHVjczIpLCAx LCBAQGdsb2JhbC5saWNlbnNlLCBOVUxMKSBVU0lORyBjcDg1MCkpCiswMAorU0VMRUNUIENPTlZF UlQoUVVPVEUoQ0hBUigweGY1IHVzaW5nIHVjczIpKSwgU0lHTkVEKTsKK0NPTlZFUlQoUVVPVEUo Q0hBUigweGY1IHVzaW5nIHVjczIpKSwgU0lHTkVEKQorMAorV2FybmluZ3M6CitXYXJuaW5nCTEy OTIJVHJ1bmNhdGVkIGluY29ycmVjdCBJTlRFR0VSIHZhbHVlOiAnJwogRW5kIG9mIDUuMCB0ZXN0 cwoKPT09IGFkZGVkIGZpbGUgJ215c3FsLXRlc3Qvci9mdW5jX2VuY3J5cHRfdWNzMi5yZXN1bHQn Ci0tLSBhL215c3FsLXRlc3Qvci9mdW5jX2VuY3J5cHRfdWNzMi5yZXN1bHQJMTk3MC0wMS0wMSAw MDowMDowMCArMDAwMAorKysgYi9teXNxbC10ZXN0L3IvZnVuY19lbmNyeXB0X3VjczIucmVzdWx0 CTIwMTEtMDMtMDMgMTI6MDQ6MDQgKzAwMDAKQEAgLTAsMCArMSwxOSBAQAorIworIyBCdWcjNTk2 NDggbXlfc3RydG9sbDEwX21iMjogQXNzZXJ0aW9uIGAoKmVuZHB0ciAtIHMpICUgMiA9PSAwJyBm YWlsZWQuCisjCitTRUxFQ1QgQ0hBUl9MRU5HVEgoREVTX0VOQ1JZUFQoMCwgQ0hBUignMScgVVNJ TkcgdWNzMikpKTsKK0NIQVJfTEVOR1RIKERFU19FTkNSWVBUKDAsIENIQVIoJzEnIFVTSU5HIHVj czIpKSkKKzkKK1NFTEVDVCBDT05WRVJUKERFU19FTkNSWVBUKDAsIENIQVIoJzEnIFVTSU5HIHVj czIpKSxVTlNJR05FRCk7CitDT05WRVJUKERFU19FTkNSWVBUKDAsIENIQVIoJzEnIFVTSU5HIHVj czIpKSxVTlNJR05FRCkKKzAKK1dhcm5pbmdzOgorV2FybmluZwkxMjkyCVRydW5jYXRlZCBpbmNv cnJlY3QgSU5URUdFUiB2YWx1ZTogJz9UP2lLP2o/PycKK1NFTEVDVCBDSEFSX0xFTkdUSChERVNf REVDUllQVCgweEZGMERDOUZDOTUzN0NBNzVGNCwgQ0hBUignMScgVVNJTkcgdWNzMikpKTsKK0NI QVJfTEVOR1RIKERFU19ERUNSWVBUKDB4RkYwREM5RkM5NTM3Q0E3NUY0LCBDSEFSKCcxJyBVU0lO RyB1Y3MyKSkpCis0CitTRUxFQ1QgQ09OVkVSVChERVNfREVDUllQVCgweEZGMERDOUZDOTUzN0NB NzVGNCwgQ0hBUignMScgdXNpbmcgdWNzMikpLCBVTlNJR05FRCk7CitDT05WRVJUKERFU19ERUNS WVBUKDB4RkYwREM5RkM5NTM3Q0E3NUY0LCBDSEFSKCcxJyB1c2luZyB1Y3MyKSksIFVOU0lHTkVE KQorMAorV2FybmluZ3M6CitXYXJuaW5nCTEyOTIJVHJ1bmNhdGVkIGluY29ycmVjdCBJTlRFR0VS IHZhbHVlOiAndGVzdCcKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3IveG1sLnJlc3Vs dCcKLS0tIGEvbXlzcWwtdGVzdC9yL3htbC5yZXN1bHQJMjAxMS0wMS0xOCAwNjozODo0MSArMDAw MAorKysgYi9teXNxbC10ZXN0L3IveG1sLnJlc3VsdAkyMDExLTAzLTAxIDEyOjMwOjE4ICswMDAw CkBAIC0xMTI0LDQgKzExMjQsMTIgQEAgV2FybmluZwkxNTI1CUluY29ycmVjdCBYTUwgdmFsdWU6 ICdwYXJzZQogU0VMRUNUIFVQREFURVhNTChDT05WRVJUKF9sYXRpbjEnPCEtLScgVVNJTkcgdXRm OCksJzEnLCcxJyk7CiBVUERBVEVYTUwoQ09OVkVSVChfbGF0aW4xJzwhLS0nIFVTSU5HIHV0Zjgp LCcxJywnMScpCiBOVUxMCisjCisjIEJ1ZyMxMTc2NjcyNSAoYnVnIzU5OTAxKTogRVhUUkFDVFZB TFVFIFNUSUxMIEJST0tFTiBBRlRFUiBGSVggRk9SIEJVRyAjNDQzMzIKKyMKK1NFTEVDVCBFeHRy YWN0VmFsdWUoQ09OVkVSVCgnPFwiJywgQklOQVJZKDEwKSksIDEpOworRXh0cmFjdFZhbHVlKENP TlZFUlQoJzxcIicsIEJJTkFSWSgxMCkpLCAxKQorTlVMTAorV2FybmluZ3M6CitXYXJuaW5nCTE1 MjUJSW5jb3JyZWN0IFhNTCB2YWx1ZTogJ3BhcnNlIGVycm9yIGF0IGxpbmUgMSBwb3MgMTE6IFNU UklORyB1bmV4cGVjdGVkIChpZGVudCBvciAnLycgd2FudGVkKScKIEVuZCBvZiA1LjEgdGVzdHMK Cj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL2VuZ2luZXMvaXVkcy9yL2luc2Vy dF95ZWFyLnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9lbmdpbmVzL2l1ZHMvci9pbnNl cnRfeWVhci5yZXN1bHQJMjAxMC0wNC0wNiAxODowNjozNCArMDAwMAorKysgYi9teXNxbC10ZXN0 L3N1aXRlL2VuZ2luZXMvaXVkcy9yL2luc2VydF95ZWFyLnJlc3VsdAkyMDExLTAzLTAxIDE1OjU2 OjI0ICswMDAwCkBAIC0yNDMxLDcgKzI0MzEsNyBAQCBjMQljMgljMwljNAogMjE1NQkyMTU1CTE5 OTgtMTItMjYJMTk5OC0xMi0yNiAxMTozMDo0NQogU0VMRUNUIGNvdW50KCopIGFzIHRvdGFsX3Jv d3MsIG1pbihjMikgYXMgbWluX3ZhbHVlLCBtYXgoYzIpIEZST00gdDM7CiB0b3RhbF9yb3dzCW1p bl92YWx1ZQltYXgoYzIpCi0yMQkxOTAxCTIxNTUKKzIxCTAJMjE1NQogU0VMRUNUICogRlJPTSB0 MyBXSEVSRSBjMyA9ICcxOTk4LTEyLTExJzsKIGMxCWMyCWMzCWM0CiAxOTkwCTE5OTAJMTk5OC0x Mi0xMQkxOTk4LTEyLTExIDExOjMwOjQ1CkBAIC0yODM4LDcgKzI4MzgsNyBAQCBjMQljMgljMwlj NAogMjE1NQkyMTU1CTE5OTgtMTItMjYJMTk5OC0xMi0yNiAxMTozMDo0NQogU0VMRUNUIGNvdW50 KCopIGFzIHRvdGFsX3Jvd3MsIG1pbihjMikgYXMgbWluX3ZhbHVlLCBtYXgoYzIpIEZST00gdDM7 CiB0b3RhbF9yb3dzCW1pbl92YWx1ZQltYXgoYzIpCi0yMQkxOTAxCTIxNTUKKzIxCTAJMjE1NQog U0VMRUNUICogRlJPTSB0MyBXSEVSRSBjMyA9ICcxOTk4LTEyLTExJzsKIGMxCWMyCWMzCWM0CiAx OTkwCTE5OTAJMTk5OC0xMi0xMQkxOTk4LTEyLTExIDExOjMwOjQ1Cgo9PT0gbW9kaWZpZWQgZmls ZSAnbXlzcWwtdGVzdC90L2N0eXBlX3NqaXMudGVzdCcKLS0tIGEvbXlzcWwtdGVzdC90L2N0eXBl X3NqaXMudGVzdAkyMDA5LTA1LTA1IDA2OjU1OjIyICswMDAwCisrKyBiL215c3FsLXRlc3QvdC9j dHlwZV9zamlzLnRlc3QJMjAxMS0wMy0wMyAxNTozOToyNiArMDAwMApAQCAtOTIsNCArOTIsMTIg QEAgSU5TRVJUIElOVE8gdDEgVkFMVUVTICgweDgzNzI4MzVFKSwoMHg4MwogU0VMRUNUIGhleChh KSwgaGV4KGxvd2VyKGEpKSwgaGV4KHVwcGVyKGEpKSBGUk9NIHQxIE9SREVSIEJZIGJpbmFyeShh KTsKIERST1AgVEFCTEUgdDE7CiAKKy0tZWNobyAjCistLWVjaG8gIyBCdWcjMTE3NjY1MTkgLSBC dWcjNTk2NDg6IE1ZX1NUUlRPTEwxMF9NQjI6IEFTU0VSVElPTiBgKCpFTkRQVFIgLSBTKSAlIDIg PT0gMCcgRkFJTEVELgorLS1lY2hvICMKKyMgSW4gdGhlIGJlbG93IHN0cmluZyBiYWNrc2xhc2gg KDB4NUMpIGlzIGEgcGFydCBvZiBhIG11bHRpLWJ5dGUKKyMgY2hhcmFjdGVyLCBzbyBpdCBzaG91 bGQgbm90IGJlIHF1b3RlZC4KK1NFTEVDVCBRVU9URSgn77+9XCcpOworCisKIC0tZWNobyAjIEVu ZCBvZiA1LjEgdGVzdHMKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3QvY3R5cGVfdWNz LnRlc3QnCi0tLSBhL215c3FsLXRlc3QvdC9jdHlwZV91Y3MudGVzdAkyMDEwLTA0LTA2IDA3OjI2 OjU5ICswMDAwCisrKyBiL215c3FsLXRlc3QvdC9jdHlwZV91Y3MudGVzdAkyMDExLTAzLTAzIDE1 OjM5OjI2ICswMDAwCkBAIC03NDEsNCArNzQxLDEwIEBAIFdIRVJFIHQxLmIgPD0+IChTRUxFQ1Qg YSBGUk9NIHQxIFdIRVJFIGEKIERST1AgVklFVyB2MTsKIERST1AgVEFCTEUgdDE7CiAKKy0tZWNo byAjCistLWVjaG8gIyBCdWcjNTk2NDggbXlfc3RydG9sbDEwX21iMjogQXNzZXJ0aW9uIGAoKmVu ZHB0ciAtIHMpICUgMiA9PSAwJyBmYWlsZWQuCistLWVjaG8gIworU0VMRUNUIEhFWChDSEFSKENP QUxFU0NFKE5VTEwsIENIQVIoQ09VTlQoJyVzJykgVVNJTkcgdWNzMiksIDEsIEBAZ2xvYmFsLmxp Y2Vuc2UsIE5VTEwpIFVTSU5HIGNwODUwKSk7CitTRUxFQ1QgQ09OVkVSVChRVU9URShDSEFSKDB4 ZjUgdXNpbmcgdWNzMikpLCBTSUdORUQpOworCiAtLWVjaG8gRW5kIG9mIDUuMCB0ZXN0cwoKPT09 IGFkZGVkIGZpbGUgJ215c3FsLXRlc3QvdC9mdW5jX2VuY3J5cHRfdWNzMi50ZXN0JwotLS0gYS9t eXNxbC10ZXN0L3QvZnVuY19lbmNyeXB0X3VjczIudGVzdAkxOTcwLTAxLTAxIDAwOjAwOjAwICsw MDAwCisrKyBiL215c3FsLXRlc3QvdC9mdW5jX2VuY3J5cHRfdWNzMi50ZXN0CTIwMTEtMDMtMDMg MTI6MDQ6MDQgKzAwMDAKQEAgLTAsMCArMSwxMiBAQAorLS0gc291cmNlIGluY2x1ZGUvaGF2ZV9z c2wuaW5jCistLSBzb3VyY2UgaW5jbHVkZS9oYXZlX3VjczIuaW5jCisKKy0tZWNobyAjCistLWVj aG8gIyBCdWcjNTk2NDggbXlfc3RydG9sbDEwX21iMjogQXNzZXJ0aW9uIGAoKmVuZHB0ciAtIHMp ICUgMiA9PSAwJyBmYWlsZWQuCistLWVjaG8gIworCitTRUxFQ1QgQ0hBUl9MRU5HVEgoREVTX0VO Q1JZUFQoMCwgQ0hBUignMScgVVNJTkcgdWNzMikpKTsKK1NFTEVDVCBDT05WRVJUKERFU19FTkNS WVBUKDAsIENIQVIoJzEnIFVTSU5HIHVjczIpKSxVTlNJR05FRCk7CisKK1NFTEVDVCBDSEFSX0xF TkdUSChERVNfREVDUllQVCgweEZGMERDOUZDOTUzN0NBNzVGNCwgQ0hBUignMScgVVNJTkcgdWNz MikpKTsKK1NFTEVDVCBDT05WRVJUKERFU19ERUNSWVBUKDB4RkYwREM5RkM5NTM3Q0E3NUY0LCBD SEFSKCcxJyB1c2luZyB1Y3MyKSksIFVOU0lHTkVEKTsKCj09PSBtb2RpZmllZCBmaWxlICdteXNx bC10ZXN0L3QveG1sLnRlc3QnCi0tLSBhL215c3FsLXRlc3QvdC94bWwudGVzdAkyMDExLTAxLTE4 IDA2OjM4OjQxICswMDAwCisrKyBiL215c3FsLXRlc3QvdC94bWwudGVzdAkyMDExLTAzLTAxIDEy OjMwOjE4ICswMDAwCkBAIC02NDYsNCArNjQ2LDkgQEAgU0VMRUNUIEVYVFJBQ1RWQUxVRSgnJywg TFBBRCgwLjExMTFFLTE1LAogU0VMRUNUIFVQREFURVhNTChDT05WRVJUKF9sYXRpbjEnPCcgVVNJ TkcgdXRmOCksJzEnLCcxJyk7CiBTRUxFQ1QgVVBEQVRFWE1MKENPTlZFUlQoX2xhdGluMSc8IS0t JyBVU0lORyB1dGY4KSwnMScsJzEnKTsKIAorLS1lY2hvICMKKy0tZWNobyAjIEJ1ZyMxMTc2Njcy NSAoYnVnIzU5OTAxKTogRVhUUkFDVFZBTFVFIFNUSUxMIEJST0tFTiBBRlRFUiBGSVggRk9SIEJV RyAjNDQzMzIKKy0tZWNobyAjCitTRUxFQ1QgRXh0cmFjdFZhbHVlKENPTlZFUlQoJzxcIicsIEJJ TkFSWSgxMCkpLCAxKTsKKwogLS1lY2hvIEVuZCBvZiA1LjEgdGVzdHMKCj09PSBtb2RpZmllZCBm aWxlICdzcWwvaXRlbV9mdW5jLmNjJwotLS0gYS9zcWwvaXRlbV9mdW5jLmNjCTIwMTEtMDItMjIg MjE6MDM6MzIgKzAwMDAKKysrIGIvc3FsL2l0ZW1fZnVuYy5jYwkyMDExLTAzLTAzIDEyOjA0OjA0 ICswMDAwCkBAIC04NDAsNyArODQwLDcgQEAgbG9uZ2xvbmcgSXRlbV9mdW5jX251bWh5YnJpZDo6 dmFsX2ludCgpCiAgICAgICByZXR1cm4gMDsKIAogICAgIGNoYXIgKmVuZD0gKGNoYXIqKSByZXMt PnB0cigpICsgcmVzLT5sZW5ndGgoKTsKLSAgICBDSEFSU0VUX0lORk8gKmNzPSBzdHJfdmFsdWUu Y2hhcnNldCgpOworICAgIENIQVJTRVRfSU5GTyAqY3M9IHJlcy0+Y2hhcnNldCgpOwogICAgIHJl dHVybiAoKihjcy0+Y3NldC0+c3RydG9sbDEwKSkoY3MsIHJlcy0+cHRyKCksICZlbmQsICZlcnJf bm90X3VzZWQpOwogICB9CiAgIGRlZmF1bHQ6Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL2l0ZW1f c3RyZnVuYy5jYycKLS0tIGEvc3FsL2l0ZW1fc3RyZnVuYy5jYwkyMDExLTAxLTE3IDEyOjExOjMz ICswMDAwCisrKyBiL3NxbC9pdGVtX3N0cmZ1bmMuY2MJMjAxMS0wMy0wMyAxNTozOToyNiArMDAw MApAQCAtNTE5LDYgKzUxOSw3IEBAIFN0cmluZyAqSXRlbV9mdW5jX2Rlc19lbmNyeXB0Ojp2YWxf c3RyKFMKICAgdG1wX2FyZ1tyZXNfbGVuZ3RoLTFdPXRhaWw7ICAgICAgICAgICAgICAgICAgIC8v IHNhdmUgZXh0cmEgbGVuZ3RoCiAgIHRtcF92YWx1ZS5yZWFsbG9jKHJlc19sZW5ndGgrMSk7CiAg IHRtcF92YWx1ZS5sZW5ndGgocmVzX2xlbmd0aCsxKTsKKyAgdG1wX3ZhbHVlLnNldF9jaGFyc2V0 KCZteV9jaGFyc2V0X2Jpbik7CiAgIHRtcF92YWx1ZVswXT0oY2hhcikgKDEyOCB8IGtleV9udW1i ZXIpOwogICAvLyBSZWFsIGVuY3J5cHRpb24KICAgYnplcm8oKGNoYXIqKSAmaXZlYyxzaXplb2Yo aXZlYykpOwpAQCAtNjA2LDYgKzYwNyw3IEBAIFN0cmluZyAqSXRlbV9mdW5jX2Rlc19kZWNyeXB0 Ojp2YWxfc3RyKFMKICAgaWYgKCh0YWlsPSh1aW50KSAodWNoYXIpIHRtcF92YWx1ZVtsZW5ndGgt Ml0pID4gOCkKICAgICBnb3RvIHdyb25nX2tleTsJCQkJICAgICAvLyBXcm9uZyBrZXkKICAgdG1w X3ZhbHVlLmxlbmd0aChsZW5ndGgtMS10YWlsKTsKKyAgdG1wX3ZhbHVlLnNldF9jaGFyc2V0KCZt eV9jaGFyc2V0X2Jpbik7CiAgIHJldHVybiAmdG1wX3ZhbHVlOwogCiBlcnJvcjoKQEAgLTMyMTIs MTQgKzMyMTQsNjggQEAgU3RyaW5nICpJdGVtX2Z1bmNfcXVvdGU6OnZhbF9zdHIoU3RyaW5nCiAg IH0KIAogICBhcmdfbGVuZ3RoPSBhcmctPmxlbmd0aCgpOwotICBuZXdfbGVuZ3RoPSBhcmdfbGVu Z3RoKzI7IC8qIGZvciBiZWdpbm5pbmcgYW5kIGVuZGluZyAnIHNpZ25zICovCiAKLSAgZm9yIChm cm9tPSAoY2hhciopIGFyZy0+cHRyKCksIGVuZD0gZnJvbSArIGFyZ19sZW5ndGg7IGZyb20gPCBl bmQ7IGZyb20rKykKLSAgICBuZXdfbGVuZ3RoKz0gZ2V0X2VzY19iaXQoZXNjbWFzaywgKHVjaGFy KSAqZnJvbSk7CisgIGlmIChjb2xsYXRpb24uY29sbGF0aW9uLT5tYm1heGxlbiA9PSAxKQorICB7 CisgICAgbmV3X2xlbmd0aD0gYXJnX2xlbmd0aCArIDI7IC8qIGZvciBiZWdpbm5pbmcgYW5kIGVu ZGluZyAnIHNpZ25zICovCisgICAgZm9yIChmcm9tPSAoY2hhciopIGFyZy0+cHRyKCksIGVuZD0g ZnJvbSArIGFyZ19sZW5ndGg7IGZyb20gPCBlbmQ7IGZyb20rKykKKyAgICAgIG5ld19sZW5ndGgr PSBnZXRfZXNjX2JpdChlc2NtYXNrLCAodWNoYXIpICpmcm9tKTsKKyAgfQorICBlbHNlCisgIHsK KyAgICBuZXdfbGVuZ3RoPSAoYXJnX2xlbmd0aCAqIDIpICsgIC8qIEZvciBzdHJpbmcgY2hhcmFj dGVycyAqLworICAgICAgICAgICAgICAgICgyICogY29sbGF0aW9uLmNvbGxhdGlvbi0+bWJtYXhs ZW4pOyAvKiBGb3IgcXVvdGVzICovCisgIH0KIAogICBpZiAodG1wX3ZhbHVlLmFsbG9jKG5ld19s ZW5ndGgpKQogICAgIGdvdG8gbnVsbDsKIAorICBpZiAoY29sbGF0aW9uLmNvbGxhdGlvbi0+bWJt YXhsZW4gPiAxKQorICB7CisgICAgQ0hBUlNFVF9JTkZPICpjcz0gY29sbGF0aW9uLmNvbGxhdGlv bjsKKyAgICBpbnQgbWJsZW47CisgICAgdWNoYXIgKnRvX2VuZDsKKyAgICB0bz0gKGNoYXIqKSB0 bXBfdmFsdWUucHRyKCk7CisgICAgdG9fZW5kPSAodWNoYXIqKSB0byArIG5ld19sZW5ndGg7CisK KyAgICAvKiBQdXQgbGVhZGluZyBxdW90ZSAqLworICAgIGlmICgobWJsZW49IGNzLT5jc2V0LT53 Y19tYihjcywgJ1wnJywgKHVjaGFyICopIHRvLCB0b19lbmQpKSA8PSAwKQorICAgICAgZ290byBu dWxsOworICAgIHRvKz0gbWJsZW47CisKKyAgICBmb3IgKHN0YXJ0PSAoY2hhciopIGFyZy0+cHRy KCksIGVuZD0gc3RhcnQgKyBhcmdfbGVuZ3RoOyBzdGFydCA8IGVuZDsgKQorICAgIHsKKyAgICAg IG15X3djX3Qgd2M7CisgICAgICBib29sIGVzY2FwZTsKKyAgICAgIGlmICgobWJsZW49IGNzLT5j c2V0LT5tYl93YyhjcywgJndjLCAodWNoYXIqKSBzdGFydCwgKHVjaGFyKikgZW5kKSkgPD0gMCkK KyAgICAgICAgZ290byBudWxsOworICAgICAgc3RhcnQrPSBtYmxlbjsKKyAgICAgIHN3aXRjaCAo d2MpIHsKKyAgICAgICAgY2FzZSAwOiAgICAgIGVzY2FwZT0gMTsgd2M9ICcwJzsgYnJlYWs7Cisg ICAgICAgIGNhc2UgJ1wwMzInOiBlc2NhcGU9IDE7IHdjPSAnWic7IGJyZWFrOworICAgICAgICBj YXNlICdcJyc6ICAgZXNjYXBlPSAxOyBicmVhazsKKyAgICAgICAgY2FzZSAnXFwnOiAgIGVzY2Fw ZT0gMTsgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6ICAgICBlc2NhcGU9IDA7IGJyZWFrOworICAg ICAgfQorICAgICAgaWYgKGVzY2FwZSkKKyAgICAgIHsKKyAgICAgICAgaWYgKChtYmxlbj0gY3Mt PmNzZXQtPndjX21iKGNzLCAnXFwnLCAodWNoYXIqKSB0bywgdG9fZW5kKSkgPD0gMCkKKyAgICAg ICAgICBnb3RvIG51bGw7CisgICAgICAgIHRvKz0gbWJsZW47CisgICAgICB9CisgICAgICBpZiAo KG1ibGVuPSBjcy0+Y3NldC0+d2NfbWIoY3MsIHdjLCAodWNoYXIqKSB0bywgdG9fZW5kKSkgPD0g MCkKKyAgICAgICAgZ290byBudWxsOworICAgICAgdG8rPSBtYmxlbjsKKyAgICB9CisKKyAgICAv KiBQdXQgdHJhaWxpbmcgcXVvdGUgKi8KKyAgICBpZiAoKG1ibGVuPSBjcy0+Y3NldC0+d2NfbWIo Y3MsICdcJycsICh1Y2hhciAqKSB0bywgdG9fZW5kKSkgPD0gMCkKKyAgICAgIGdvdG8gbnVsbDsK KyAgICB0bys9IG1ibGVuOworICAgIG5ld19sZW5ndGg9IHRvIC0gdG1wX3ZhbHVlLnB0cigpOwor ICAgIGdvdG8gcmV0OworICB9CisKICAgLyoKICAgICBXZSByZXBsYWNlIGNoYXJhY3RlcnMgZnJv bSB0aGUgZW5kIHRvIHRoZSBiZWdpbm5pbmcKICAgKi8KQEAgLTMyNTEsNiArMzMwNyw4IEBAIFN0 cmluZyAqSXRlbV9mdW5jX3F1b3RlOjp2YWxfc3RyKFN0cmluZwogICAgIH0KICAgfQogICAqdG89 ICdcJyc7CisKK3JldDoKICAgdG1wX3ZhbHVlLmxlbmd0aChuZXdfbGVuZ3RoKTsKICAgdG1wX3Zh bHVlLnNldF9jaGFyc2V0KGNvbGxhdGlvbi5jb2xsYXRpb24pOwogICBudWxsX3ZhbHVlPSAwOwoK PT09IG1vZGlmaWVkIGZpbGUgJ3NxbC9pdGVtX3N0cmZ1bmMuaCcKLS0tIGEvc3FsL2l0ZW1fc3Ry ZnVuYy5oCTIwMTEtMDEtMTcgMTI6MTE6MzMgKzAwMDAKKysrIGIvc3FsL2l0ZW1fc3RyZnVuYy5o CTIwMTEtMDMtMDMgMTU6Mzk6MjYgKzAwMDAKQEAgLTcwNCw5ICs3MDQsMTAgQEAgcHVibGljOgog ICBTdHJpbmcgKnZhbF9zdHIoU3RyaW5nICopOwogICB2b2lkIGZpeF9sZW5ndGhfYW5kX2RlYygp CiAgIHsKLSAgICB1bG9uZ2xvbmcgbWF4X3Jlc3VsdF9sZW5ndGg9ICh1bG9uZ2xvbmcpIGFyZ3Nb MF0tPm1heF9sZW5ndGggKiAyICsgMjsKLSAgICBtYXhfbGVuZ3RoPSAodWludDMyKSBtaW4obWF4 X3Jlc3VsdF9sZW5ndGgsIE1BWF9CTE9CX1dJRFRIKTsKICAgICBjb2xsYXRpb24uc2V0KGFyZ3Nb MF0tPmNvbGxhdGlvbik7CisgICAgdWxvbmdsb25nIG1heF9yZXN1bHRfbGVuZ3RoPSAodWxvbmds b25nKSBhcmdzWzBdLT5tYXhfbGVuZ3RoICogMiArCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMiAqIGNvbGxhdGlvbi5jb2xsYXRpb24tPm1ibWF4bGVuOworICAgIG1heF9sZW5n dGg9ICh1aW50MzIpIG1pbihtYXhfcmVzdWx0X2xlbmd0aCwgTUFYX0JMT0JfV0lEVEgpOwogICB9 CiB9OwogCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL3NxbF9wYXJzZS5jYycKLS0tIGEvc3FsL3Nx bF9wYXJzZS5jYwkyMDExLTAyLTIyIDIxOjAzOjMyICswMDAwCisrKyBiL3NxbC9zcWxfcGFyc2Uu Y2MJMjAxMS0wMy0wMyAwODoyNTozNyArMDAwMApAQCAtMTIxOCw3ICsxMjE4LDggQEAgYm9vbCBk aXNwYXRjaF9jb21tYW5kKGVudW0gZW51bV9zZXJ2ZXJfYwogICAgICAgICAgIFdlIGhhdmUgY2hl Y2tlZCBjaGFyc2V0IGVhcmxpZXIsCiAgICAgICAgICAgc28gdGhkX2luaXRfY2xpZW50X2NoYXJz ZXQgY2Fubm90IGZhaWwuCiAgICAgICAgICovCi0gICAgICAgIERCVUdfQVNTRVJUKCF0aGRfaW5p dF9jbGllbnRfY2hhcnNldCh0aGQsIGNzX251bWJlcikpOworICAgICAgICBpZiAodGhkX2luaXRf Y2xpZW50X2NoYXJzZXQodGhkLCBjc19udW1iZXIpKQorICAgICAgICAgIERCVUdfQVNTRVJUKDAp OwogICAgICAgICB0aGQtPnVwZGF0ZV9jaGFyc2V0KCk7CiAgICAgICB9CiAgICAgfQoKPT09IG1v ZGlmaWVkIGZpbGUgJ3N0cmluZ3MveG1sLmMnCi0tLSBhL3N0cmluZ3MveG1sLmMJMjAxMS0wMS0x OSAxMzoxNzo1MiArMDAwMAorKysgYi9zdHJpbmdzL3htbC5jCTIwMTEtMDMtMDEgMTI6MzA6MTgg KzAwMDAKQEAgLTE2NSwxMSArMTY1LDE2IEBAIHN0YXRpYyBpbnQgbXlfeG1sX3NjYW4oTVlfWE1M X1BBUlNFUiAqcCwKICAgfQogICBlbHNlIGlmICggKHAtPmN1clswXSA9PSAnIicpIHx8IChwLT5j dXJbMF0gPT0gJ1wnJykgKQogICB7CisgICAgLyoKKyAgICAgICJzdHJpbmciIG9yICdzdHJpbmcn IGZvdW5kLgorICAgICAgU2NhbiB1bnRpbCB0aGUgY2xvc2luZyBxdW90ZS9kb3VibGVxdW90ZSwg b3IgdW50aWwgdGhlIEVORC1PRi1JTlBVVC4KKyAgICAqLwogICAgIHAtPmN1cisrOwogICAgIGZv ciAoOyAoIHAtPmN1ciA8IHAtPmVuZCApICYmIChwLT5jdXJbMF0gIT0gYS0+YmVnWzBdKTsgcC0+ Y3VyKyspCiAgICAge30KICAgICBhLT5lbmQ9cC0+Y3VyOwotICAgIGlmIChhLT5iZWdbMF0gPT0g cC0+Y3VyWzBdKXAtPmN1cisrOworICAgIGlmIChwLT5jdXIgPCBwLT5lbmQpIC8qIENsb3Npbmcg cXVvdGUgb3IgZG91YmxlcXVvdGUgaGFzIGJlZW4gZm91bmQgKi8KKyAgICAgIHAtPmN1cisrOwog ICAgIGEtPmJlZysrOwogICAgIGlmICghKHAtPmZsYWdzICYgTVlfWE1MX0ZMQUdfU0tJUF9URVhU X05PUk1BTElaQVRJT04pKQogICAgICAgbXlfeG1sX25vcm1fdGV4dChhKTsKCk5vIGJ1bmRsZSAo cmVhc29uOiB1c2VsZXNzIGZvciBwdXNoIGVtYWlscyku