From: marko.makela Date: April 18 2012 6:26am Subject: bzr push into mysql-trunk branch (marko.makela:3889 to 3891) List-Archive: http://lists.mysql.com/commits/143554 Message-Id: <201204180626.q3I6Qxdn032025@acsmt357.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDM4OTEgTWFya28gTcOka2Vsw6QJMjAxMi0wNC0xOAogICAgICByZWN2X3JlY292ZXJ5X2Zyb21f Y2hlY2twb2ludF9zdGFydF9mdW5jKCk6IEZpeCBhIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQKICAg ICAgdW5pbml0aWFsaXplZCB2YXJpYWJsZSBncm91cF9zY2FubmVkX2xzbi4KCiAgICBtb2RpZmll ZDoKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9sb2cvbG9nMHJlY3YuY2MKIDM4OTAgTWFya28gTcOk a2Vsw6QJMjAxMi0wNC0xOAogICAgICBCdWcjMTM5NTUwODMgQUxMT1cgSU4tUExBQ0UgRERMIE9Q RVJBVElPTlMgT04gTUlTU0lORyBPUiBESVNDQVJERUQgVEFCTEVTUEFDRVMKICAgICAgCiAgICAg IEFsbG93IGluLXBsYWNlIEFMVEVSIFRBQkxFIG9wZXJhdGlvbnMgZXZlbiBpZiB0aGUgdGFibGVz cGFjZSBpcwogICAgICBtaXNzaW5nIG9yIGl0IGhhcyBiZWVuIGRpc2NhcmRlZC4KICAgICAgCiAg ICAgIEFkZCBhIHRlc3QgZm9yIGVuc3VyaW5nIHRoYXQgRElTQ0FSRCBUQUJMRVNQQUNFIGlzIGJl aW5nIGJsb2NrZWQgYnkgYW4KICAgICAgaW4tcGxhY2UgQUxURVIgb3BlcmF0aW9uLiAoVGhlIERJ U0NBUkQgVEFCTEVTUEFDRSB3aWxsIHRpbWUgb3V0IHRoZQogICAgICBtZXRhLWRhdGEgbG9jayB1 cGdyYWRlIGF0IHRoZSBlbmQgb2YgdGhlIEFMVEVSLCBidXQgdGhhdCBpcyBhIHNlcGFyYXRlCiAg ICAgIG1hdHRlci4pCiAgICAgIAogICAgICBoYV9pbm5vYmFzZTo6Y2hlY2tfaWZfc3VwcG9ydGVk X2lucGxhY2VfYWx0ZXIoKTogQ2hlY2sgZm9yCiAgICAgIGlubm9kYl9mb3JjZV9yZWNvdmVyeSBh bmQgaW5ub2RiX2RhdGFfZmlsZV9wYXRoPW5ld3JhdyBhbHJlYWR5IGhlcmUKICAgICAgYW5kIG5v dCBpbiB0aGUgcHJlcGFyZSBzdGVwLgogICAgICAKICAgICAgaGFfaW5ub2Jhc2U6OnByZXBhcmVf aW5wbGFjZV9hbHRlcl90YWJsZSgpLCBpbnBsYWNlX2FsdGVyX3RhYmxlKCk6CiAgICAgIE1vdmUg dGhlIHVwZGF0ZV90aGQoKSBhbmQgdHJ4X3NlYXJjaF9sYXRjaF9yZWxlYXNlX2lmX3Jlc2VydmVk KCkgY2FsbHMKICAgICAgYWxyZWFkeSB0byB0aGUgY2hlY2tfaWYgcGhhc2UuCiAgICAgIAogICAg ICBwcmVwYXJlX2lucGxhY2VfYWx0ZXJfdGFibGVfZGljdCgpOiBJZiB0aGUgdGFibGVzcGFjZSBp cyBtaXNzaW5nLCBza2lwCiAgICAgIHRoZSByb3dfbG9nX2FsbG9jYXRlKCkuCiAgICAgIAogICAg ICBoYV9pbm5vYmFzZTo6aW5wbGFjZV9hbHRlcl90YWJsZSgpOiBTa2lwIHRoZSByb3dfbWVyZ2Vf YnVpbGRfaW5kZXhlcygpCiAgICAgIGlmIHRoZSB0YWJsZXNwYWNlIGlzIG1pc3NpbmcuCiAgICAg IAogICAgICByYjoxMDMyIGFwcHJvdmVkIGJ5IEppbW15IFlhbmcKCiAgICBhZGRlZDoKICAgICAg bXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvci9pbm5vZGItYWx0ZXItZGlzY2FyZC5yZXN1bHQKICAg ICAgbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvdC9pbm5vZGItYWx0ZXItZGlzY2FyZC50ZXN0CiAg ICBtb2RpZmllZDoKICAgICAgbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvci9pbm5vZGItaW5kZXgt b25saW5lLnJlc3VsdAogICAgICBteXNxbC10ZXN0L3N1aXRlL2lubm9kYi90L2lubm9kYi1pbmRl eC1vbmxpbmUudGVzdAogICAgICBzdG9yYWdlL2lubm9iYXNlL2hhbmRsZXIvaGFuZGxlcjBhbHRl ci5jYwogMzg4OSBDaGFpdGhyYSBHb3BhbGFyZWRkeQkyMDEyLTA0LTE4IFttZXJnZV0KICAgICAg TWVyZ2UgZnJvbSA1LjUgdG8gNS42Cgo9PT0gYWRkZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9p bm5vZGIvci9pbm5vZGItYWx0ZXItZGlzY2FyZC5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvc3Vp dGUvaW5ub2RiL3IvaW5ub2RiLWFsdGVyLWRpc2NhcmQucmVzdWx0CTE5NzAtMDEtMDEgMDA6MDA6 MDAgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvci9pbm5vZGItYWx0ZXItZGlz Y2FyZC5yZXN1bHQJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA0MTgwNjI1NTkt YTQ4YWd6Nmwwano4cnJ6NgpAQCAtMCwwICsxLDE1IEBACitTRVQgR0xPQkFMIGlubm9kYl9maWxl X3Blcl90YWJsZT0xOworQ1JFQVRFIFRBQkxFIHQoYSBJTlQpRU5HSU5FPUlubm9EQjsKK2NhbGwg bXRyLmFkZF9zdXBwcmVzc2lvbigiSW5ub0RCOiBFcnJvcjogdHJ5aW5nIHRvIG9wZW4gYSB0YWJs ZSwgYnV0IGNvdWxkIG5vdCQiKTsKK2NhbGwgbXRyLmFkZF9zdXBwcmVzc2lvbigiTXlTUUwgaXMg dHJ5aW5nIHRvIG9wZW4gYSB0YWJsZSBoYW5kbGUgYnV0IHRoZSBcLmliZCBmaWxlIGZvciQiKTsK K2NhbGwgbXRyLmFkZF9zdXBwcmVzc2lvbigiSW5ub0RCOiBFcnJvcjogdGFibGUgJ3Rlc3QvdCck Iik7CitTRUxFQ1QgKiBGUk9NIHQ7CitFUlJPUiA0MlMwMjogVGFibGUgJ3Rlc3QudCcgZG9lc24n dCBleGlzdAorQUxURVIgVEFCTEUgdCBBREQgSU5ERVggKGEpLCBBTEdPUklUSE09SU5QTEFDRTsK K0VSUk9SIDQyUzAyOiBUYWJsZSAndGVzdC50JyBkb2Vzbid0IGV4aXN0CitBTFRFUiBUQUJMRSB0 MSBBREQgSU5ERVggKGEpLCBBTEdPUklUSE09Q09QWTsKK0VSUk9SIDQyUzAyOiBUYWJsZSAndGVz dC50MScgZG9lc24ndCBleGlzdAorY2FsbCBtdHIuYWRkX3N1cHByZXNzaW9uKCJJbm5vREI6IChF cnJvcnxXYXJuaW5nKTogY2Fubm90IGRlbGV0ZSB0YWJsZXNwYWNlICIpOworQUxURVIgVEFCTEUg dCBESVNDQVJEIFRBQkxFU1BBQ0U7CitFUlJPUiBIWTAwMDogR290IGVycm9yIC0xIGZyb20gc3Rv cmFnZSBlbmdpbmUKK0RST1AgVEFCTEUgdDsKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0 L3N1aXRlL2lubm9kYi9yL2lubm9kYi1pbmRleC1vbmxpbmUucmVzdWx0JwotLS0gYS9teXNxbC10 ZXN0L3N1aXRlL2lubm9kYi9yL2lubm9kYi1pbmRleC1vbmxpbmUucmVzdWx0CXJldmlkOmNoYWl0 aHJhLmdvcGFsYXJlZGR5QG9yYWNsZS5jb20tMjAxMjA0MTgwNjA3MzMtajU0Z2oyNjhqcmZlZTNm aQorKysgYi9teXNxbC10ZXN0L3N1aXRlL2lubm9kYi9yL2lubm9kYi1pbmRleC1vbmxpbmUucmVz dWx0CXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTIwNDE4MDYyNTU5LWE0OGFnejZs MGp6OHJyejYKQEAgLTQsNiArNCw5IEBAIFNFVCBERUJVRz0nZCxxdWVyeSxkZWJ1Z19zeW5jX2V4 ZWM6aTp0OkEKIGNhbGwgbXRyLmFkZF9zdXBwcmVzc2lvbigiSW5ub0RCOiBXYXJuaW5nOiBTbWFs bCBidWZmZXIgcG9vbCBzaXplIik7CiBjYWxsIG10ci5hZGRfc3VwcHJlc3Npb24oIkNhbm5vdCBm aW5kIGluZGV4IC4qYzIgaW4gSW5ub0RCIGluZGV4IHRyYW5zbGF0aW9uIHRhYmxlIik7CiBjYWxs IG10ci5hZGRfc3VwcHJlc3Npb24oIkZpbmQgaW5kZXggLipjMiBpbiBJbm5vREIgaW5kZXggbGlz dCBidXQgbm90IGl0cyBNeVNRTCBpbmRleCBudW1iZXIiKTsKK2NhbGwgbXRyLmFkZF9zdXBwcmVz c2lvbigiSW5ub0RCOiBFcnJvcjogdGFibGUgJ3Rlc3QvdDEnJCIpOworY2FsbCBtdHIuYWRkX3N1 cHByZXNzaW9uKCJNeVNRTCBpcyB0cnlpbmcgdG8gb3BlbiBhIHRhYmxlIGhhbmRsZSBidXQgdGhl IC5pYmQgZmlsZSBmb3IkIik7CitTRVQgR0xPQkFMIGlubm9kYl9maWxlX3Blcl90YWJsZT1vbjsK IENSRUFURSBUQUJMRSB0MSAoYzEgSU5UIFBSSU1BUlkgS0VZLCBjMiBJTlQsIGMzIElOVCkgRU5H SU5FPUlubm9EQjsKIElOU0VSVCBJTlRPIHQxIFZBTFVFUyAoMSwxLDApLCgyLDIsMCksKDMsMyww KSwoNCw0LDApLCg1LDUsMCk7CiBTRVQgR0xPQkFMIGlubm9kYl9tb25pdG9yX2VuYWJsZT1tb2R1 bGVfZGRsOwpAQCAtMjU3LDYgKzI2MCwzNSBAQCBDT1VOVChjMikKIENIRUNLIFRBQkxFIHQxOwog VGFibGUJT3AJTXNnX3R5cGUJTXNnX3RleHQKIHRlc3QudDEJY2hlY2sJc3RhdHVzCU9LCitTRVQg REVCVUdfU1lOQz0ncm93X2xvZ19hcHBseV9iZWZvcmUgU0lHTkFMIGMyZ19jcmVhdGVkIFdBSVRf Rk9SIGRtbDRfZG9uZSc7CitTRVQgbG9ja193YWl0X3RpbWVvdXQ9MTsKK0FMVEVSIFRBQkxFIHQx IERST1AgSU5ERVggYzJmLCBBREQgSU5ERVggYzJnKGMyKTsKK1NFVCBERUJVR19TWU5DPSdub3cg V0FJVF9GT1IgYzJnX2NyZWF0ZWQnOworU0VUIGxvY2tfd2FpdF90aW1lb3V0PTEwOworQUxURVIg VEFCTEUgdDEgRElTQ0FSRCBUQUJMRVNQQUNFOworU0VMRUNUIHN0YXRlIEZST00gaW5mb3JtYXRp b25fc2NoZW1hLnByb2Nlc3NsaXN0CitXSEVSRSBpbmZvPSdBTFRFUiBUQUJMRSB0MSBESVNDQVJE IFRBQkxFU1BBQ0UnOworc3RhdGUKK1dhaXRpbmcgZm9yIHRhYmxlIGxldmVsIGxvY2sKK1NFVCBE RUJVR19TWU5DPSdub3cgU0lHTkFMIGRtbDRfZG9uZSc7CitFUlJPUiBIWTAwMDogTG9jayB3YWl0 IHRpbWVvdXQgZXhjZWVkZWQ7IHRyeSByZXN0YXJ0aW5nIHRyYW5zYWN0aW9uCitTSE9XIENSRUFU RSBUQUJMRSB0MTsKK1RhYmxlCUNyZWF0ZSBUYWJsZQordDEJQ1JFQVRFIFRBQkxFIGB0MWAgKAor ICBgYzFgIGludCgxMSkgTk9UIE5VTEwsCisgIGBjMmAgaW50KDExKSBERUZBVUxUIE5VTEwsCisg IGBjM2AgaW50KDExKSBERUZBVUxUIE5VTEwsCisgIFBSSU1BUlkgS0VZIChgYzFgKSwKKyAgS0VZ IGBjMmRgIChgYzJgKSwKKyAgS0VZIGBjMmZgIChgYzJgKQorKSBFTkdJTkU9SW5ub0RCIERFRkFV TFQgQ0hBUlNFVD1sYXRpbjEgQ09NTUVOVD0ndGVzdGluZyBpZiBjMmUgd2lsbCBiZSBkcm9wcGVk JworQUxURVIgVEFCTEUgdDEgRFJPUCBJTkRFWCBjMmQsIERST1AgSU5ERVggYzJmOworRVJST1Ig NDJTMDI6IFRhYmxlICd0ZXN0LnQxJyBkb2Vzbid0IGV4aXN0CitBTFRFUiBUQUJMRSB0MSBBREQg SU5ERVggYzJoKGMyKSwgQUxHT1JJVEhNPUlOUExBQ0U7CitFUlJPUiA0MlMwMjogVGFibGUgJ3Rl c3QudDEnIGRvZXNuJ3QgZXhpc3QKK0FMVEVSIFRBQkxFIHQxIEFERCBJTkRFWCBjMmgoYzIpLCBB TEdPUklUSE09Q09QWTsKK0VSUk9SIDQyUzAyOiBUYWJsZSAndGVzdC50MScgZG9lc24ndCBleGlz dAorU0VUIEdMT0JBTCBpbm5vZGJfZmlsZV9wZXJfdGFibGU9MDsKIFNFVCBERUJVR19TWU5DPSdS RVNFVCc7CiBTRVQgREVCVUc9Jy1kLGRlYnVnX3N5bmNfYWJvcnRfb25fdGltZW91dCc7CiBTRVQg REVCVUc9Jyc7Cgo9PT0gYWRkZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvdC9pbm5v ZGItYWx0ZXItZGlzY2FyZC50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2lubm9kYi90L2lu bm9kYi1hbHRlci1kaXNjYXJkLnRlc3QJMTk3MC0wMS0wMSAwMDowMDowMCArMDAwMAorKysgYi9t eXNxbC10ZXN0L3N1aXRlL2lubm9kYi90L2lubm9kYi1hbHRlci1kaXNjYXJkLnRlc3QJcmV2aWQ6 bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA0MTgwNjI1NTktYTQ4YWd6Nmwwano4cnJ6NgpA QCAtMCwwICsxLDQyIEBACisjQnVnIzEzOTU1MDgzIEFMTE9XIElOLVBMQUNFIERETCBPUEVSQVRJ T05TIE9OIE1JU1NJTkcgT1IgRElTQ0FSREVEIFRBQkxFU1BBQ0VTCisKKy0tc291cmNlIGluY2x1 ZGUvaGF2ZV9pbm5vZGIuaW5jCisKK2xldCAkTVlTUUxEX0RBVEFESVI9YHNlbGVjdCBAQGRhdGFk aXJgOworU0VUIEdMT0JBTCBpbm5vZGJfZmlsZV9wZXJfdGFibGU9MTsKK0NSRUFURSBUQUJMRSB0 KGEgSU5UKUVOR0lORT1Jbm5vREI7CisKKyMgU2h1dCBkb3duIHRoZSBzZXJ2ZXIKKy0tIGV4ZWMg ZWNobyAid2FpdCIgPiAkTVlTUUxURVNUX1ZBUkRJUi90bXAvbXlzcWxkLjEuZXhwZWN0CistLSBz aHV0ZG93bl9zZXJ2ZXIKKy0tIHNvdXJjZSBpbmNsdWRlL3dhaXRfdW50aWxfZGlzY29ubmVjdGVk LmluYworCisjIFJlbW92ZSB0aGUgdGFibGVzcGFjZSBmaWxlLgorbGV0IElCRD0kTVlTUUxEX0RB VEFESVIvdGVzdC90LmliZDsKK3Blcmw7Cit1bmxpbmsgIiRFTlZ7SUJEfSIgfHwgZGllICJVbmFi bGUgdG8gdW5saW5rICRFTlZ7SUJEfVxuIjsKK0VPRgorCisjIFJlc3RhcnQgdGhlIHNlcnZlci4K Ky0tIGV4ZWMgZWNobyAicmVzdGFydCIgPiAkTVlTUUxURVNUX1ZBUkRJUi90bXAvbXlzcWxkLjEu ZXhwZWN0CistLSBlbmFibGVfcmVjb25uZWN0CistLSBzb3VyY2UgaW5jbHVkZS93YWl0X3VudGls X2Nvbm5lY3RlZF9hZ2Fpbi5pbmMKKworY2FsbCBtdHIuYWRkX3N1cHByZXNzaW9uKCJJbm5vREI6 IEVycm9yOiB0cnlpbmcgdG8gb3BlbiBhIHRhYmxlLCBidXQgY291bGQgbm90JCIpOworY2FsbCBt dHIuYWRkX3N1cHByZXNzaW9uKCJNeVNRTCBpcyB0cnlpbmcgdG8gb3BlbiBhIHRhYmxlIGhhbmRs ZSBidXQgdGhlIFwuaWJkIGZpbGUgZm9yJCIpOworY2FsbCBtdHIuYWRkX3N1cHByZXNzaW9uKCJJ bm5vREI6IEVycm9yOiB0YWJsZSAndGVzdC90JyQiKTsKKworIyBUaGUgRVJfTk9fU1VDSF9UQUJM RSBpcyBiZWluZyB0aHJvd24gYnkgaGFfaW5ub2Jhc2U6Om9wZW4oKS4KKyMgVGhlIHRhYmxlIGRv ZXMgZXhpc3QsIG9ubHkgdGhlIHRhYmxlc3BhY2UgZG9lcyBub3QgZXhpc3QuCistLWVycm9yIEVS X05PX1NVQ0hfVEFCTEUKK1NFTEVDVCAqIEZST00gdDsKKworLS1lcnJvciBFUl9OT19TVUNIX1RB QkxFCitBTFRFUiBUQUJMRSB0IEFERCBJTkRFWCAoYSksIEFMR09SSVRITT1JTlBMQUNFOworLS1l cnJvciBFUl9OT19TVUNIX1RBQkxFCitBTFRFUiBUQUJMRSB0MSBBREQgSU5ERVggKGEpLCBBTEdP UklUSE09Q09QWTsKKworY2FsbCBtdHIuYWRkX3N1cHByZXNzaW9uKCJJbm5vREI6IChFcnJvcnxX YXJuaW5nKTogY2Fubm90IGRlbGV0ZSB0YWJsZXNwYWNlICIpOworLS1lcnJvciBFUl9HRVRfRVJS Tk8KK0FMVEVSIFRBQkxFIHQgRElTQ0FSRCBUQUJMRVNQQUNFOworRFJPUCBUQUJMRSB0OwoKPT09 IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3QvaW5ub2RiLWluZGV4LW9u bGluZS50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2lubm9kYi90L2lubm9kYi1pbmRleC1v bmxpbmUudGVzdAlyZXZpZDpjaGFpdGhyYS5nb3BhbGFyZWRkeUBvcmFjbGUuY29tLTIwMTIwNDE4 MDYwNzMzLWo1NGdqMjY4anJmZWUzZmkKKysrIGIvbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvdC9p bm5vZGItaW5kZXgtb25saW5lLnRlc3QJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAx MjA0MTgwNjI1NTktYTQ4YWd6Nmwwano4cnJ6NgpAQCAtOSw2ICs5LDEzIEBAIGNhbGwgbXRyLmFk ZF9zdXBwcmVzc2lvbigiSW5ub0RCOiBXYXJuaW4KICMgVGhlc2Ugd2lsbCBiZSB0cmlnZ2VyZWQg YnkgSU5TRVJUIElOVE8gdDEgVkFMVUVTKDYsMywxKTsKIGNhbGwgbXRyLmFkZF9zdXBwcmVzc2lv bigiQ2Fubm90IGZpbmQgaW5kZXggLipjMiBpbiBJbm5vREIgaW5kZXggdHJhbnNsYXRpb24gdGFi bGUiKTsKIGNhbGwgbXRyLmFkZF9zdXBwcmVzc2lvbigiRmluZCBpbmRleCAuKmMyIGluIElubm9E QiBpbmRleCBsaXN0IGJ1dCBub3QgaXRzIE15U1FMIGluZGV4IG51bWJlciIpOworIyB0aGVzZSB3 aWxsIGJlIHRyaWdnZXJlZCBieSBESVNDQVJEIFRBQkxFU1BBQ0UKK2NhbGwgbXRyLmFkZF9zdXBw cmVzc2lvbigiSW5ub0RCOiBFcnJvcjogdGFibGUgJ3Rlc3QvdDEnJCIpOworY2FsbCBtdHIuYWRk X3N1cHByZXNzaW9uKCJNeVNRTCBpcyB0cnlpbmcgdG8gb3BlbiBhIHRhYmxlIGhhbmRsZSBidXQg dGhlIC5pYmQgZmlsZSBmb3IkIik7CisKKyMgRElTQ0FSRCBUQUJMRVNQQUNFIG5lZWRzIGZpbGUt cGVyLXRhYmxlCitsZXQgJHBlcl90YWJsZT1gc2VsZWN0IEBAaW5ub2RiX2ZpbGVfcGVyX3RhYmxl YDsKK1NFVCBHTE9CQUwgaW5ub2RiX2ZpbGVfcGVyX3RhYmxlPW9uOwogCiAjIFNhdmUgdGhlIGlu aXRpYWwgbnVtYmVyIG9mIGNvbmN1cnJlbnQgc2Vzc2lvbnMuCiAtLXNvdXJjZSBpbmNsdWRlL2Nv dW50X3Nlc3Npb25zLmluYwpAQCAtMjU2LDEwICsyNjMsNDkgQEAgU0VMRUNUIG5hbWUsY291bnQg RlJPTSBJTkZPUk1BVElPTl9TQ0hFTQogU0VMRUNUIENPVU5UKGMyKSBGUk9NIHQxOwogQ0hFQ0sg VEFCTEUgdDE7CiAKLWRpc2Nvbm5lY3QgY29uMTsKK2Nvbm5lY3Rpb24gZGVmYXVsdDsKK1NFVCBE RUJVR19TWU5DPSdyb3dfbG9nX2FwcGx5X2JlZm9yZSBTSUdOQUwgYzJnX2NyZWF0ZWQgV0FJVF9G T1IgZG1sNF9kb25lJzsKKyMgVGhlIGxvY2sgdXBncmFkZSBhdCB0aGUgZW5kIG9mIHRoZSBBTFRF UiB3aWxsIGNvbmZsaWN0IHdpdGggdGhlIERJU0NBUkQuCitTRVQgbG9ja193YWl0X3RpbWVvdXQ9 MTsKKy0tc2VuZAorQUxURVIgVEFCTEUgdDEgRFJPUCBJTkRFWCBjMmYsIEFERCBJTkRFWCBjMmco YzIpOworCitjb25uZWN0aW9uIGNvbjE7CitTRVQgREVCVUdfU1lOQz0nbm93IFdBSVRfRk9SIGMy Z19jcmVhdGVkJzsKKworY29ubmVjdCAoY29uMixsb2NhbGhvc3Qscm9vdCwsKTsKK2Nvbm5lY3Rp b24gY29uMjsKKworIyBUaGlzIHdpbGwgY29uZmxpY3Qgd2l0aCB0aGUgQUxURVIgaW4gY29ubmVj dGlvbiBkZWZhdWx0LCBhYm92ZS4KK1NFVCBsb2NrX3dhaXRfdGltZW91dD0xMDsKKy0tc2VuZAor QUxURVIgVEFCTEUgdDEgRElTQ0FSRCBUQUJMRVNQQUNFOwogCitjb25uZWN0aW9uIGNvbjE7CitT RUxFQ1Qgc3RhdGUgRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEucHJvY2Vzc2xpc3QKK1dIRVJFIGlu Zm89J0FMVEVSIFRBQkxFIHQxIERJU0NBUkQgVEFCTEVTUEFDRSc7CisKK1NFVCBERUJVR19TWU5D PSdub3cgU0lHTkFMIGRtbDRfZG9uZSc7CitkaXNjb25uZWN0IGNvbjE7CiBjb25uZWN0aW9uIGRl ZmF1bHQ7CistLWVycm9yIEVSX0xPQ0tfV0FJVF9USU1FT1VUCityZWFwOworY29ubmVjdGlvbiBj b24yOworcmVhcDsKK2Rpc2Nvbm5lY3QgY29uMjsKK2Nvbm5lY3Rpb24gZGVmYXVsdDsKKworU0hP VyBDUkVBVEUgVEFCTEUgdDE7CisjIFRoZSBFUl9OT19TVUNIX1RBQkxFIGlzIGJlaW5nIHRocm93 biBieSBoYV9pbm5vYmFzZTo6b3BlbigpLgorIyBUaGUgdGFibGUgZG9lcyBleGlzdCwgb25seSB0 aGUgdGFibGVzcGFjZSBkb2VzIG5vdCBleGlzdC4KKy0tZXJyb3IgRVJfTk9fU1VDSF9UQUJMRQor QUxURVIgVEFCTEUgdDEgRFJPUCBJTkRFWCBjMmQsIERST1AgSU5ERVggYzJmOworLS1lcnJvciBF Ul9OT19TVUNIX1RBQkxFCitBTFRFUiBUQUJMRSB0MSBBREQgSU5ERVggYzJoKGMyKSwgQUxHT1JJ VEhNPUlOUExBQ0U7CistLWVycm9yIEVSX05PX1NVQ0hfVEFCTEUKK0FMVEVSIFRBQkxFIHQxIEFE RCBJTkRFWCBjMmgoYzIpLCBBTEdPUklUSE09Q09QWTsKIAorZXZhbCBTRVQgR0xPQkFMIGlubm9k Yl9maWxlX3Blcl90YWJsZT0kcGVyX3RhYmxlOwogU0VUIERFQlVHX1NZTkM9J1JFU0VUJzsKIFNF VCBERUJVRz0nLWQsZGVidWdfc3luY19hYm9ydF9vbl90aW1lb3V0JzsKIFNFVCBERUJVRz0nJzsK Cj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2hhbmRsZXIvaGFuZGxlcjBhbHRl ci5jYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9oYW5kbGVyL2hhbmRsZXIwYWx0ZXIuY2MJcmV2 aWQ6Y2hhaXRocmEuZ29wYWxhcmVkZHlAb3JhY2xlLmNvbS0yMDEyMDQxODA2MDczMy1qNTRnajI2 OGpyZmVlM2ZpCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvaGFuZGxlci9oYW5kbGVyMGFsdGVyLmNj CXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTIwNDE4MDYyNTU5LWE0OGFnejZsMGp6 OHJyejYKQEAgLTE1MSw2ICsxNTEsMTAgQEAgaGFfaW5ub2Jhc2U6OmNoZWNrX2lmX3N1cHBvcnRl ZF9pbnBsYWNlXwogewogCURCVUdfRU5URVIoImNoZWNrX2lmX3N1cHBvcnRlZF9pbnBsYWNlX2Fs dGVyIik7CiAKKwlpZiAoc3J2X2NyZWF0ZWRfbmV3X3JhdyB8fCBzcnZfZm9yY2VfcmVjb3Zlcnkp IHsKKwkJREJVR19SRVRVUk4oSEFfQUxURVJfSU5QTEFDRV9OT1RfU1VQUE9SVEVEKTsKKwl9CisK IAlIQV9DUkVBVEVfSU5GTyogY3JlYXRlX2luZm8gPSBoYV9hbHRlcl9pbmZvLT5jcmVhdGVfaW5m bzsKIAogCWlmIChoYV9hbHRlcl9pbmZvLT5oYW5kbGVyX2ZsYWdzCkBAIC0xODYsNiArMTkwLDcg QEAgaGFfaW5ub2Jhc2U6OmNoZWNrX2lmX3N1cHBvcnRlZF9pbnBsYWNlXwogCX0KIAogCXVwZGF0 ZV90aGQoKTsKKwl0cnhfc2VhcmNoX2xhdGNoX3JlbGVhc2VfaWZfcmVzZXJ2ZWQocHJlYnVpbHQt PnRyeCk7CiAKIAkvKiBGaXggdGhlIGtleSBwYXJ0cy4gKi8KIAlmb3IgKEtFWSogbmV3X2tleSA9 IGhhX2FsdGVyX2luZm8tPmtleV9pbmZvX2J1ZmZlcjsKQEAgLTE2MjUsNyArMTYzMCw5IEBAIGNv bF9mYWlsOgogCQlsb2cgaXMgdW5uZWNlc3NhcnkuICovCiAJCWlmICghbnVtX2Z0c19pbmRleAog CQkgICAgJiYgIShoYV9hbHRlcl9pbmZvLT5oYW5kbGVyX2ZsYWdzCi0JCQkgJiB+SU5OT0JBU0Vf T05MSU5FX09QRVJBVElPTlMpKSB7CisJCQkgJiB+SU5OT0JBU0VfT05MSU5FX09QRVJBVElPTlMp CisJCSAgICAmJiAhdXNlcl90YWJsZS0+aWJkX2ZpbGVfbWlzc2luZworCQkgICAgJiYgIXVzZXJf dGFibGUtPnRhYmxlc3BhY2VfZGlzY2FyZGVkKSB7CiAJCQlEQlVHX0VYRUNVVEVfSUYoImlubm9k Yl9PT01fcHJlcGFyZV9pbnBsYWNlX2FsdGVyIiwKIAkJCQkJZXJyb3IgPSBEQl9PVVRfT0ZfTUVN T1JZOwogCQkJCQlnb3RvIGVycm9yX2hhbmRsaW5nOyk7CkBAIC0xODI1LDE5ICsxODMyLDExIEBA IGhhX2lubm9iYXNlOjpwcmVwYXJlX2lucGxhY2VfYWx0ZXJfdGFibGUKIAkJZ290byBmdW5jX2V4 aXQ7CiAJfQogCi0JaWYgKHNydl9jcmVhdGVkX25ld19yYXcgfHwgc3J2X2ZvcmNlX3JlY292ZXJ5 KSB7Ci0JCW15X2Vycm9yKEVSX09QRU5fQVNfUkVBRE9OTFksIE1ZRigwKSwKLQkJCSB0YWJsZS0+ cy0+dGFibGVfbmFtZS5zdHIpOwotCQlEQlVHX1JFVFVSTih0cnVlKTsKLQl9Ci0KIAl1dF9kKG11 dGV4X2VudGVyKCZkaWN0X3N5cy0+bXV0ZXgpKTsKIAl1dF9kKGRpY3RfdGFibGVfY2hlY2tfZm9y X2R1cF9pbmRleGVzKAogCQkgICAgIHByZWJ1aWx0LT50YWJsZSwgQ0hFQ0tfQUJPUlRFRF9PSykp OwogCXV0X2QobXV0ZXhfZXhpdCgmZGljdF9zeXMtPm11dGV4KSk7CiAKLQl1cGRhdGVfdGhkKCk7 Ci0KIAkvKiBJbiBjYXNlIE15U1FMIGNhbGxzIHRoaXMgaW4gdGhlIG1pZGRsZSBvZiBhIFNFTEVD VCBxdWVyeSwgcmVsZWFzZQogCXBvc3NpYmxlIGFkYXB0aXZlIGhhc2ggbGF0Y2ggdG8gYXZvaWQg ZGVhZGxvY2tzIG9mIHRocmVhZHMuICovCiAJdHJ4X3NlYXJjaF9sYXRjaF9yZWxlYXNlX2lmX3Jl c2VydmVkKHByZWJ1aWx0LT50cngpOwpAQCAtMjExNiw5ICsyMTE1LDYgQEAgaGFfaW5ub2Jhc2U6 OmlucGxhY2VfYWx0ZXJfdGFibGUoCiAJCURCVUdfUkVUVVJOKGZhbHNlKTsKIAl9CiAKLQl1cGRh dGVfdGhkKCk7Ci0JdHJ4X3NlYXJjaF9sYXRjaF9yZWxlYXNlX2lmX3Jlc2VydmVkKHByZWJ1aWx0 LT50cngpOwotCiAJY2xhc3MgaGFfaW5ub2Jhc2VfaW5wbGFjZV9jdHgqCWN0eAogCQk9IHN0YXRp Y19jYXN0PGNsYXNzIGhhX2lubm9iYXNlX2lucGxhY2VfY3R4Kj4KIAkJKGhhX2FsdGVyX2luZm8t PmhhbmRsZXJfY3R4KTsKQEAgLTIxMjYsNiArMjEyMiwxMSBAQCBoYV9pbm5vYmFzZTo6aW5wbGFj ZV9hbHRlcl90YWJsZSgKIAlEQlVHX0FTU0VSVChjdHgpOwogCURCVUdfQVNTRVJUKGN0eC0+dHJ4 KTsKIAorCWlmIChwcmVidWlsdC0+dGFibGUtPmliZF9maWxlX21pc3NpbmcKKwkgICAgfHwgcHJl YnVpbHQtPnRhYmxlLT50YWJsZXNwYWNlX2Rpc2NhcmRlZCkgeworCQlnb3RvIGFsbF9kb25lOwor CX0KKwogCS8qIFJlYWQgdGhlIGNsdXN0ZXJlZCBpbmRleCBvZiB0aGUgdGFibGUgYW5kIGJ1aWxk CiAJaW5kZXhlcyBiYXNlZCBvbiB0aGlzIGluZm9ybWF0aW9uIHVzaW5nIHRlbXBvcmFyeQogCWZp bGVzIGFuZCBtZXJnZSBzb3J0LiAqLwpAQCAtMjE0NSw2ICsyMTQ2LDcgQEAgb29tOgogCiAJc3dp dGNoIChlcnJvcikgewogCQlLRVkqCWR1cF9rZXk7CisJYWxsX2RvbmU6CiAJY2FzZSBEQl9TVUND RVNTOgogCQl1dF9kKG11dGV4X2VudGVyKCZkaWN0X3N5cy0+bXV0ZXgpKTsKIAkJdXRfZChkaWN0 X3RhYmxlX2NoZWNrX2Zvcl9kdXBfaW5kZXhlcygKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdl L2lubm9iYXNlL2xvZy9sb2cwcmVjdi5jYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9sb2cvbG9n MHJlY3YuY2MJcmV2aWQ6Y2hhaXRocmEuZ29wYWxhcmVkZHlAb3JhY2xlLmNvbS0yMDEyMDQxODA2 MDczMy1qNTRnajI2OGpyZmVlM2ZpCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvbG9nL2xvZzByZWN2 LmNjCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTIwNDE4MDYyNTU5LWE0OGFnejZs MGp6OHJyejYKQEAgLTI4OTQsNyArMjg5NCw3IEBAIHJlY3ZfcmVjb3ZlcnlfZnJvbV9jaGVja3Bv aW50X3N0YXJ0X2Z1bmMKIAlsc25fdAkJY2hlY2twb2ludF9sc247CiAJaWJfdWludDY0X3QJY2hl Y2twb2ludF9ubzsKIAlsc25fdAkJb2xkX3NjYW5uZWRfbHNuOwotCWxzbl90CQlncm91cF9zY2Fu bmVkX2xzbjsKKwlsc25fdAkJZ3JvdXBfc2Nhbm5lZF9sc24gPSAwOwogCWxzbl90CQljb250aWd1 b3VzX2xzbjsKICNpZmRlZiBVTklWX0xPR19BUkNISVZFCiAJbHNuX3QJCWFyY2hpdmVkX2xzbjsK Ck5vIGJ1bmRsZSAocmVhc29uOiB1c2VsZXNzIGZvciBwdXNoIGVtYWlscyku