From: marko.makela Date: April 7 2011 8:23pm Subject: bzr commit into mysql-5.5-innodb branch (marko.makela:3363) List-Archive: http://lists.mysql.com/commits/134993 Message-Id: <201104072023.p37KNnZX014676@acsmt357.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0819437795==" --===============0819437795== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline I0F0IGZpbGU6Ly8vaG9tZS9tYXJrby9pbm5vYmFzZS9kZXYvbXlzcWwyYS81LjUtaW5ub2RiLyBi YXNlZCBvbiByZXZpZDp2YXNpbC5kaW1vdkBvcmFjbGUuY29tLTIwMTEwNDA2MTE0MDU3LWh4MHBi ZzlwN2l5ZDU0bnMKCiAzMzYzIE1hcmtvIE3DpGtlbMOkCTIwMTEtMDQtMDcgW21lcmdlXQogICAg ICBNZXJnZSBteXNxbC01LjEtaW5ub2RiIHRvIG15c3FsLTUuNS1pbm5vZGIuCgogICAgYWRkZWQ6 CiAgICAgIG15c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3IvaW5ub2RiX2J1ZzU5NjQxLnJlc3VsdAog ICAgICBteXNxbC10ZXN0L3N1aXRlL2lubm9kYi90L2lubm9kYl9idWc1OTY0MS50ZXN0CiAgICBt b2RpZmllZDoKICAgICAgY2xpZW50L215c3FsdGVzdC5jYwogICAgICBzcWwvc3FsX2NsYXNzLmNj CiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaGFuZGxlci9oYV9pbm5vZGIuY2MKICAgICAgc3RvcmFn ZS9pbm5vYmFzZS9oYW5kbGVyL2hhX2lubm9kYi5oCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaGFu ZGxlci9oYW5kbGVyMGFsdGVyLmNjCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS90cngw dHJ4LmgKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3RyeDB1bmRvLmgKICAgICAgc3Rv cmFnZS9pbm5vYmFzZS9sb2cvbG9nMGxvZy5jCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvdHJ4L3Ry eDBzeXMuYwogICAgICBzdG9yYWdlL2lubm9iYXNlL3RyeC90cngwdHJ4LmMKICAgICAgc3RvcmFn ZS9pbm5vYmFzZS90cngvdHJ4MHVuZG8uYwo9PT0gbW9kaWZpZWQgZmlsZSAnY2xpZW50L215c3Fs dGVzdC5jYycKLS0tIGEvY2xpZW50L215c3FsdGVzdC5jYwlyZXZpZDp2YXNpbC5kaW1vdkBvcmFj bGUuY29tLTIwMTEwNDA2MTE0MDU3LWh4MHBiZzlwN2l5ZDU0bnMKKysrIGIvY2xpZW50L215c3Fs dGVzdC5jYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDQwNzIwMjIwMy1jYmtu dDVhMXRkZzAycTduCkBAIC00NTk4LDEzICs0NTk4LDE0IEBAIHN0YXRpYyBpbnQgbXlfa2lsbChp bnQgcGlkLCBpbnQgc2lnKQogICBjb21tYW5kICBjYWxsZWQgY29tbWFuZAogCiAgIERFU0NSSVBU SU9OCi0gIHNodXRkb3duIFs8dGltZW91dD5dCisgIHNodXRkb3duX3NlcnZlciBbPHRpbWVvdXQ+ XQogCiAqLwogCiB2b2lkIGRvX3NodXRkb3duX3NlcnZlcihzdHJ1Y3Qgc3RfY29tbWFuZCAqY29t bWFuZCkKIHsKLSAgaW50IHRpbWVvdXQ9NjAsIHBpZDsKKyAgbG9uZyB0aW1lb3V0PTYwOworICBp bnQgcGlkOwogICBEWU5BTUlDX1NUUklORyBkc19waWRmaWxlX25hbWU7CiAgIE1ZU1FMKiBteXNx bCA9ICZjdXJfY29uLT5teXNxbDsKICAgc3RhdGljIERZTkFNSUNfU1RSSU5HIGRzX3RpbWVvdXQ7 CkBAIC00NjE5LDggKzQ2MjAsOSBAQCB2b2lkIGRvX3NodXRkb3duX3NlcnZlcihzdHJ1Y3Qgc3Rf Y29tbWFuCiAKICAgaWYgKGRzX3RpbWVvdXQubGVuZ3RoKQogICB7Ci0gICAgdGltZW91dD0gYXRv aShkc190aW1lb3V0LnN0cik7Ci0gICAgaWYgKHRpbWVvdXQgPT0gMCkKKyAgICBjaGFyKiBlbmRw dHI7CisgICAgdGltZW91dD0gc3RydG9sKGRzX3RpbWVvdXQuc3RyLCAmZW5kcHRyLCAxMCk7Cisg ICAgaWYgKCplbmRwdHIgIT0gJ1wwJykKICAgICAgIGRpZSgiSWxsZWdhbCBhcmd1bWVudCBmb3Ig dGltZW91dDogJyVzJyIsIGRzX3RpbWVvdXQuc3RyKTsKICAgfQogICBkeW5zdHJfZnJlZSgmZHNf dGltZW91dCk7CkBAIC00NjYyLDcgKzQ2NjQsNyBAQCB2b2lkIGRvX3NodXRkb3duX3NlcnZlcihz dHJ1Y3Qgc3RfY29tbWFuCiAgICAgICBEQlVHX1BSSU5UKCJpbmZvIiwgKCJQcm9jZXNzICVkIGRv ZXMgbm90IGV4aXN0IGFueW1vcmUiLCBwaWQpKTsKICAgICAgIERCVUdfVk9JRF9SRVRVUk47CiAg ICAgfQotICAgIERCVUdfUFJJTlQoImluZm8iLCAoIlNsZWVwaW5nLCB0aW1lb3V0OiAlZCIsIHRp bWVvdXQpKTsKKyAgICBEQlVHX1BSSU5UKCJpbmZvIiwgKCJTbGVlcGluZywgdGltZW91dDogJWxk IiwgdGltZW91dCkpOwogICAgIG15X3NsZWVwKDEwMDAwMDBMKTsKICAgfQogCgo9PT0gYWRkZWQg ZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvci9pbm5vZGJfYnVnNTk2NDEucmVzdWx0Jwot LS0gYS9teXNxbC10ZXN0L3N1aXRlL2lubm9kYi9yL2lubm9kYl9idWc1OTY0MS5yZXN1bHQJMTk3 MC0wMS0wMSAwMDowMDowMCArMDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRlL2lubm9kYi9yL2lu bm9kYl9idWc1OTY0MS5yZXN1bHQJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMTA0 MDcyMDIyMDMtY2JrbnQ1YTF0ZGcwMnE3bgpAQCAtMCwwICsxLDU3IEBACitDUkVBVEUgVEFCTEUg dChhIElOVCBQUklNQVJZIEtFWSwgYiBJTlQpRU5HSU5FPUlubm9EQjsKK0lOU0VSVCBJTlRPIHQg VkFMVUVTKDIsMiksKDQsNCksKDgsOCksKDE2LDE2KSwoMzIsMzIpOworQ09NTUlUOworWEEgU1RB UlQgJzEyMyc7CitJTlNFUlQgSU5UTyB0IFZBTFVFUygxLDEpOworWEEgRU5EICcxMjMnOworWEEg UFJFUEFSRSAnMTIzJzsKK1hBIFNUQVJUICc0NTYnOworSU5TRVJUIElOVE8gdCBWQUxVRVMoMyw0 NyksKDUsNjcpOworVVBEQVRFIHQgU0VUIGI9MipiIFdIRVJFIGEgQkVUV0VFTiA1IEFORCA4Owor WEEgRU5EICc0NTYnOworWEEgUFJFUEFSRSAnNDU2JzsKK1hBIFNUQVJUICc3ODknOworVVBEQVRF IHQgU0VUIGI9NCphIFdIRVJFIGE9MzI7CitYQSBFTkQgJzc4OSc7CitYQSBQUkVQQVJFICc3ODkn OworY2FsbCBtdHIuYWRkX3N1cHByZXNzaW9uKCJGb3VuZCAzIHByZXBhcmVkIFhBIHRyYW5zYWN0 aW9ucyIpOworU0VUIFRSQU5TQUNUSU9OIElTT0xBVElPTiBMRVZFTCBSRUFEIFVOQ09NTUlUVEVE OworU0VMRUNUICogRlJPTSB0OworYQliCisxCTEKKzIJMgorMwk0NworNAk0Cis1CTEzNAorOAkx NgorMTYJMTYKKzMyCTEyOAorQ09NTUlUOworU0VUIFRSQU5TQUNUSU9OIElTT0xBVElPTiBMRVZF TCBSRUFEIFVOQ09NTUlUVEVEOworU0VMRUNUICogRlJPTSB0OworYQliCisxCTEKKzIJMgorMwk0 NworNAk0Cis1CTEzNAorOAkxNgorMTYJMTYKKzMyCTEyOAorQ09NTUlUOworWEEgUkVDT1ZFUjsK K2Zvcm1hdElECWd0cmlkX2xlbmd0aAlicXVhbF9sZW5ndGgJZGF0YQorMQkzCTAJNzg5CisxCTMJ MAk0NTYKKzEJMwkwCTEyMworWEEgUk9MTEJBQ0sgJzEyMyc7CitYQSBST0xMQkFDSyAnNDU2JzsK K1hBIENPTU1JVCAnNzg5JzsKK1NFTEVDVCAqIEZST00gdDsKK2EJYgorMgkyCis0CTQKKzgJOAor MTYJMTYKKzMyCTEyOAorRFJPUCBUQUJMRSB0OwoKPT09IGFkZGVkIGZpbGUgJ215c3FsLXRlc3Qv c3VpdGUvaW5ub2RiL3QvaW5ub2RiX2J1ZzU5NjQxLnRlc3QnCi0tLSBhL215c3FsLXRlc3Qvc3Vp dGUvaW5ub2RiL3QvaW5ub2RiX2J1ZzU5NjQxLnRlc3QJMTk3MC0wMS0wMSAwMDowMDowMCArMDAw MAorKysgYi9teXNxbC10ZXN0L3N1aXRlL2lubm9kYi90L2lubm9kYl9idWc1OTY0MS50ZXN0CXJl dmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTEwNDA3MjAyMjAzLWNia250NWExdGRnMDJx N24KQEAgLTAsMCArMSw2NiBAQAorIyBCdWcgIzU5NjQxIFByZXBhcmVkIFhBIHRyYW5zYWN0aW9u IGNhdXNlcyBzaHV0ZG93biBoYW5nIGFmdGVyIGEgY3Jhc2gKKworLS0gc291cmNlIGluY2x1ZGUv bm90X2VtYmVkZGVkLmluYworLS0gc291cmNlIGluY2x1ZGUvaGF2ZV9pbm5vZGIuaW5jCisKK0NS RUFURSBUQUJMRSB0KGEgSU5UIFBSSU1BUlkgS0VZLCBiIElOVClFTkdJTkU9SW5ub0RCOworSU5T RVJUIElOVE8gdCBWQUxVRVMoMiwyKSwoNCw0KSwoOCw4KSwoMTYsMTYpLCgzMiwzMik7CitDT01N SVQ7CitYQSBTVEFSVCAnMTIzJzsKK0lOU0VSVCBJTlRPIHQgVkFMVUVTKDEsMSk7CitYQSBFTkQg JzEyMyc7CitYQSBQUkVQQVJFICcxMjMnOworCitDT05ORUNUIChjb24xLGxvY2FsaG9zdCxyb290 LCwpOworQ09OTkVDVElPTiBjb24xOworCitYQSBTVEFSVCAnNDU2JzsKK0lOU0VSVCBJTlRPIHQg VkFMVUVTKDMsNDcpLCg1LDY3KTsKK1VQREFURSB0IFNFVCBiPTIqYiBXSEVSRSBhIEJFVFdFRU4g NSBBTkQgODsKK1hBIEVORCAnNDU2JzsKK1hBIFBSRVBBUkUgJzQ1Nic7CisKK0NPTk5FQ1QgKGNv bjIsbG9jYWxob3N0LHJvb3QsLCk7CitDT05ORUNUSU9OIGNvbjI7CisKK1hBIFNUQVJUICc3ODkn OworVVBEQVRFIHQgU0VUIGI9NCphIFdIRVJFIGE9MzI7CitYQSBFTkQgJzc4OSc7CitYQSBQUkVQ QVJFICc3ODknOworCisjIFRoZSBzZXJ2ZXIgd291bGQgaXNzdWUgdGhpcyB3YXJuaW5nIG9uIHJl c3RhcnQuCitjYWxsIG10ci5hZGRfc3VwcHJlc3Npb24oIkZvdW5kIDMgcHJlcGFyZWQgWEEgdHJh bnNhY3Rpb25zIik7CisKKyMgS2lsbCB0aGUgc2VydmVyIHdpdGhvdXQgc2VuZGluZyBhIHNodXRk b3duIGNvbW1hbmQKKy0tIGV4ZWMgZWNobyAid2FpdCIgPiAkTVlTUUxURVNUX1ZBUkRJUi90bXAv bXlzcWxkLjEuZXhwZWN0CistLSBzaHV0ZG93bl9zZXJ2ZXIgMAorLS0gc291cmNlIGluY2x1ZGUv d2FpdF91bnRpbF9kaXNjb25uZWN0ZWQuaW5jCisKKyMgUmVzdGFydCB0aGUgc2VydmVyLgorLS0g ZXhlYyBlY2hvICJyZXN0YXJ0IiA+ICRNWVNRTFRFU1RfVkFSRElSL3RtcC9teXNxbGQuMS5leHBl Y3QKKy0tIGVuYWJsZV9yZWNvbm5lY3QKKy0tIHNvdXJjZSBpbmNsdWRlL3dhaXRfdW50aWxfY29u bmVjdGVkX2FnYWluLmluYworU0VUIFRSQU5TQUNUSU9OIElTT0xBVElPTiBMRVZFTCBSRUFEIFVO Q09NTUlUVEVEOworU0VMRUNUICogRlJPTSB0OworQ09NTUlUOworCisjIFNodXQgZG93biB0aGUg c2VydmVyLiBUaGlzIHdvdWxkIGhhbmcgYmVjYXVzZSBvZiB0aGUgYnVnLgorLS0gZXhlYyBlY2hv ICJ3YWl0IiA+ICRNWVNRTFRFU1RfVkFSRElSL3RtcC9teXNxbGQuMS5leHBlY3QKKy0tIHNodXRk b3duX3NlcnZlcgorLS0gc291cmNlIGluY2x1ZGUvd2FpdF91bnRpbF9kaXNjb25uZWN0ZWQuaW5j CisKKyMgUmVzdGFydCB0aGUgc2VydmVyLgorLS0gZXhlYyBlY2hvICJyZXN0YXJ0IiA+ICRNWVNR TFRFU1RfVkFSRElSL3RtcC9teXNxbGQuMS5leHBlY3QKKy0tIGVuYWJsZV9yZWNvbm5lY3QKKy0t IHNvdXJjZSBpbmNsdWRlL3dhaXRfdW50aWxfY29ubmVjdGVkX2FnYWluLmluYworCitTRVQgVFJB TlNBQ1RJT04gSVNPTEFUSU9OIExFVkVMIFJFQUQgVU5DT01NSVRURUQ7CitTRUxFQ1QgKiBGUk9N IHQ7CitDT01NSVQ7CitYQSBSRUNPVkVSOworWEEgUk9MTEJBQ0sgJzEyMyc7CitYQSBST0xMQkFD SyAnNDU2JzsKK1hBIENPTU1JVCAnNzg5JzsKK1NFTEVDVCAqIEZST00gdDsKKworRFJPUCBUQUJM RSB0OwoKPT09IG1vZGlmaWVkIGZpbGUgJ3NxbC9zcWxfY2xhc3MuY2MnCi0tLSBhL3NxbC9zcWxf Y2xhc3MuY2MJcmV2aWQ6dmFzaWwuZGltb3ZAb3JhY2xlLmNvbS0yMDExMDQwNjExNDA1Ny1oeDBw Ymc5cDdpeWQ1NG5zCisrKyBiL3NxbC9zcWxfY2xhc3MuY2MJcmV2aWQ6bWFya28ubWFrZWxhQG9y YWNsZS5jb20tMjAxMTA0MDcyMDIyMDMtY2JrbnQ1YTF0ZGcwMnE3bgpAQCAtMzY3NSw2ICszNjc1 LDcgQEAgYm9vbCB4aWRfY2FjaGVfaW5zZXJ0KFhJRCAqeGlkLCBlbnVtIHhhXwogICAgIHhzLT54 YV9zdGF0ZT14YV9zdGF0ZTsKICAgICB4cy0+eGlkLnNldCh4aWQpOwogICAgIHhzLT5pbl90aGQ9 MDsKKyAgICB4cy0+cm1fZXJyb3I9MDsKICAgICByZXM9bXlfaGFzaF9pbnNlcnQoJnhpZF9jYWNo ZSwgKHVjaGFyKil4cyk7CiAgIH0KICAgbXlzcWxfbXV0ZXhfdW5sb2NrKCZMT0NLX3hpZF9jYWNo ZSk7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9oYW5kbGVyL2hhX2lubm9k Yi5jYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9oYW5kbGVyL2hhX2lubm9kYi5jYwlyZXZpZDp2 YXNpbC5kaW1vdkBvcmFjbGUuY29tLTIwMTEwNDA2MTE0MDU3LWh4MHBiZzlwN2l5ZDU0bnMKKysr IGIvc3RvcmFnZS9pbm5vYmFzZS9oYW5kbGVyL2hhX2lubm9kYi5jYwlyZXZpZDptYXJrby5tYWtl bGFAb3JhY2xlLmNvbS0yMDExMDQwNzIwMjIwMy1jYmtudDVhMXRkZzAycTduCkBAIC02MjQ0LDEw ICs2MjQ0LDYgQEAgY3JlYXRlX3RhYmxlX2RlZigKIAlEQlVHX1BSSU5UKCJlbnRlciIsICgidGFi bGVfbmFtZTogJXMiLCB0YWJsZV9uYW1lKSk7CiAKIAl1dF9hKHRyeC0+bXlzcWxfdGhkICE9IE5V TEwpOwotCWlmIChJU19NQUdJQ19UQUJMRV9BTkRfVVNFUl9ERU5JRURfQUNDRVNTKHRhYmxlX25h bWUsCi0JCQkJCQkgIChUSEQqKSB0cngtPm15c3FsX3RoZCkpIHsKLQkJREJVR19SRVRVUk4oSEFf RVJSX0dFTkVSSUMpOwotCX0KIAogCS8qIE15U1FMIGRvZXMgdGhlIG5hbWUgbGVuZ3RoIGNoZWNr LiBCdXQgd2UgZG8gYWRkaXRpb25hbCBjaGVjawogCW9uIHRoZSBuYW1lIGxlbmd0aCBoZXJlICov CkBAIC02MzY4LDYgKzYzNjQsOCBAQCBlcnJfY29sOgogCQkJY29sX2xlbik7CiAJfQogCisJc3J2 X2xvd2VyX2Nhc2VfdGFibGVfbmFtZXMgPSBsb3dlcl9jYXNlX3RhYmxlX25hbWVzOworCiAJZXJy b3IgPSByb3dfY3JlYXRlX3RhYmxlX2Zvcl9teXNxbCh0YWJsZSwgdHJ4KTsKIAogCWlmIChlcnJv ciA9PSBEQl9EVVBMSUNBVEVfS0VZKSB7CkBAIC02Nzg0LDM4ICs2NzgyLDE3IEBAIGhhX2lubm9i YXNlOjpjcmVhdGUoCiAJCURCVUdfUkVUVVJOKEhBX0VSUl9UT19CSUdfUk9XKTsKIAl9CiAKLQkv KiBHZXQgdGhlIHRyYW5zYWN0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudCB0aGQsIG9y IGNyZWF0ZSBvbmUKLQlpZiBub3QgeWV0IGNyZWF0ZWQgKi8KLQotCXBhcmVudF90cnggPSBjaGVj a190cnhfZXhpc3RzKHRoZCk7Ci0KLQkvKiBJbiBjYXNlIE15U1FMIGNhbGxzIHRoaXMgaW4gdGhl IG1pZGRsZSBvZiBhIFNFTEVDVCBxdWVyeSwgcmVsZWFzZQotCXBvc3NpYmxlIGFkYXB0aXZlIGhh c2ggbGF0Y2ggdG8gYXZvaWQgZGVhZGxvY2tzIG9mIHRocmVhZHMgKi8KLQotCXRyeF9zZWFyY2hf bGF0Y2hfcmVsZWFzZV9pZl9yZXNlcnZlZChwYXJlbnRfdHJ4KTsKLQotCXRyeCA9IGlubm9iYXNl X3RyeF9hbGxvY2F0ZSh0aGQpOwotCi0Jc3J2X2xvd2VyX2Nhc2VfdGFibGVfbmFtZXMgPSBsb3dl cl9jYXNlX3RhYmxlX25hbWVzOwotCiAJc3RyY3B5KG5hbWUyLCBuYW1lKTsKIAogCW5vcm1hbGl6 ZV90YWJsZV9uYW1lKG5vcm1fbmFtZSwgbmFtZTIpOwogCi0JLyogTGF0Y2ggdGhlIElubm9EQiBk YXRhIGRpY3Rpb25hcnkgZXhjbHVzaXZlbHkgc28gdGhhdCBubyBkZWFkbG9ja3MKLQlvciBsb2Nr IHdhaXRzIGNhbiBoYXBwZW4gaW4gaXQgZHVyaW5nIGEgdGFibGUgY3JlYXRlIG9wZXJhdGlvbi4K LQlEcm9wIHRhYmxlIGV0Yy4gZG8gdGhpcyBsYXRjaGluZyBpbiByb3cwbXlzcWwuYy4gKi8KLQot CXJvd19teXNxbF9sb2NrX2RhdGFfZGljdGlvbmFyeSh0cngpOwotCiAJLyogQ3JlYXRlIHRoZSB0 YWJsZSBkZWZpbml0aW9uIGluIElubm9EQiAqLwogCiAJZmxhZ3MgPSAwOwogCiAJLyogVmFsaWRh dGUgY3JlYXRlIG9wdGlvbnMgaWYgaW5ub2RiX3N0cmljdF9tb2RlIGlzIHNldC4gKi8KIAlpZiAo IWNyZWF0ZV9vcHRpb25zX2FyZV92YWxpZCh0aGQsIGZvcm0sIGNyZWF0ZV9pbmZvKSkgewotCQll cnJvciA9IEVSX0lMTEVHQUxfSEFfQ1JFQVRFX09QVElPTjsKLQkJZ290byBjbGVhbnVwOworCQlE QlVHX1JFVFVSTihFUl9JTExFR0FMX0hBX0NSRUFURV9PUFRJT04pOwogCX0KIAogCWlmIChjcmVh dGVfaW5mby0+a2V5X2Jsb2NrX3NpemUpIHsKQEAgLTY5NTcsMTYgKzY5MzQsMzcgQEAgaGFfaW5u b2Jhc2U6OmNyZWF0ZSgKIAogCS8qIENoZWNrIGZvciBuYW1lIGNvbmZsaWN0cyAod2l0aCByZXNl cnZlZCBuYW1lKSBmb3IKIAlhbnkgdXNlciBpbmRpY2VzIHRvIGJlIGNyZWF0ZWQuICovCi0JaWYg KGlubm9iYXNlX2luZGV4X25hbWVfaXNfcmVzZXJ2ZWQodHJ4LCBmb3JtLT5rZXlfaW5mbywKKwlp ZiAoaW5ub2Jhc2VfaW5kZXhfbmFtZV9pc19yZXNlcnZlZCh0aGQsIGZvcm0tPmtleV9pbmZvLAog CQkJCQkgICAgZm9ybS0+cy0+a2V5cykpIHsKLQkJZXJyb3IgPSAtMTsKLQkJZ290byBjbGVhbnVw OworCQlEQlVHX1JFVFVSTigtMSk7CisJfQorCisJaWYgKElTX01BR0lDX1RBQkxFX0FORF9VU0VS X0RFTklFRF9BQ0NFU1Mobm9ybV9uYW1lLCB0aGQpKSB7CisJCURCVUdfUkVUVVJOKEhBX0VSUl9H RU5FUklDKTsKIAl9CiAKIAlpZiAoY3JlYXRlX2luZm8tPm9wdGlvbnMgJiBIQV9MRVhfQ1JFQVRF X1RNUF9UQUJMRSkgewogCQlmbGFncyB8PSBESUNUX1RGMl9URU1QT1JBUlkgPDwgRElDVF9URjJf U0hJRlQ7CiAJfQogCisJLyogR2V0IHRoZSB0cmFuc2FjdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhl IGN1cnJlbnQgdGhkLCBvciBjcmVhdGUgb25lCisJaWYgbm90IHlldCBjcmVhdGVkICovCisKKwlw YXJlbnRfdHJ4ID0gY2hlY2tfdHJ4X2V4aXN0cyh0aGQpOworCisJLyogSW4gY2FzZSBNeVNRTCBj YWxscyB0aGlzIGluIHRoZSBtaWRkbGUgb2YgYSBTRUxFQ1QgcXVlcnksIHJlbGVhc2UKKwlwb3Nz aWJsZSBhZGFwdGl2ZSBoYXNoIGxhdGNoIHRvIGF2b2lkIGRlYWRsb2NrcyBvZiB0aHJlYWRzICov CisKKwl0cnhfc2VhcmNoX2xhdGNoX3JlbGVhc2VfaWZfcmVzZXJ2ZWQocGFyZW50X3RyeCk7CisK Kwl0cnggPSBpbm5vYmFzZV90cnhfYWxsb2NhdGUodGhkKTsKKworCS8qIExhdGNoIHRoZSBJbm5v REIgZGF0YSBkaWN0aW9uYXJ5IGV4Y2x1c2l2ZWx5IHNvIHRoYXQgbm8gZGVhZGxvY2tzCisJb3Ig bG9jayB3YWl0cyBjYW4gaGFwcGVuIGluIGl0IGR1cmluZyBhIHRhYmxlIGNyZWF0ZSBvcGVyYXRp b24uCisJRHJvcCB0YWJsZSBldGMuIGRvIHRoaXMgbGF0Y2hpbmcgaW4gcm93MG15c3FsLmMuICov CisKKwlyb3dfbXlzcWxfbG9ja19kYXRhX2RpY3Rpb25hcnkodHJ4KTsKKwogCWVycm9yID0gY3Jl YXRlX3RhYmxlX2RlZih0cngsIGZvcm0sIG5vcm1fbmFtZSwKIAkJY3JlYXRlX2luZm8tPm9wdGlv bnMgJiBIQV9MRVhfQ1JFQVRFX1RNUF9UQUJMRSA/IG5hbWUyIDogTlVMTCwKIAkJZmxhZ3MpOwpA QCAtNzIyMSwxNCArNzIxOSwxNCBAQCBoYV9pbm5vYmFzZTo6ZGVsZXRlX3RhYmxlKAogCiAJdHJ4 ID0gaW5ub2Jhc2VfdHJ4X2FsbG9jYXRlKHRoZCk7CiAKLQlzcnZfbG93ZXJfY2FzZV90YWJsZV9u YW1lcyA9IGxvd2VyX2Nhc2VfdGFibGVfbmFtZXM7Ci0KIAluYW1lX2xlbiA9IHN0cmxlbihuYW1l KTsKIAogCXV0X2EobmFtZV9sZW4gPCAxMDAwKTsKIAogCS8qIERyb3AgdGhlIHRhYmxlIGluIElu bm9EQiAqLwogCisJc3J2X2xvd2VyX2Nhc2VfdGFibGVfbmFtZXMgPSBsb3dlcl9jYXNlX3RhYmxl X25hbWVzOworCiAJZXJyb3IgPSByb3dfZHJvcF90YWJsZV9mb3JfbXlzcWwobm9ybV9uYW1lLCB0 cngsCiAJCQkJCSB0aGRfc3FsX2NvbW1hbmQodGhkKQogCQkJCQkgPT0gU1FMQ09NX0RST1BfREIp OwpAQCAtNzM0NCw4ICs3MzQyLDYgQEAgaW5ub2Jhc2VfcmVuYW1lX3RhYmxlKAogCWNoYXIqCW5v cm1fdG87CiAJY2hhcioJbm9ybV9mcm9tOwogCi0Jc3J2X2xvd2VyX2Nhc2VfdGFibGVfbmFtZXMg PSBsb3dlcl9jYXNlX3RhYmxlX25hbWVzOwotCiAJLy8gTWFnaWMgbnVtYmVyIDY0IGFyYml0cmFy eQogCW5vcm1fdG8gPSAoY2hhciopIG15X21hbGxvYyhzdHJsZW4odG8pICsgNjQsIE1ZRigwKSk7 CiAJbm9ybV9mcm9tID0gKGNoYXIqKSBteV9tYWxsb2Moc3RybGVuKGZyb20pICsgNjQsIE1ZRigw KSk7CkBAIC03MzYwLDYgKzczNTYsOCBAQCBpbm5vYmFzZV9yZW5hbWVfdGFibGUoCiAJCXJvd19t eXNxbF9sb2NrX2RhdGFfZGljdGlvbmFyeSh0cngpOwogCX0KIAorCXNydl9sb3dlcl9jYXNlX3Rh YmxlX25hbWVzID0gbG93ZXJfY2FzZV90YWJsZV9uYW1lczsKKwogCWVycm9yID0gcm93X3JlbmFt ZV90YWJsZV9mb3JfbXlzcWwoCiAJCW5vcm1fZnJvbSwgbm9ybV90bywgdHJ4LCBsb2NrX2FuZF9j b21taXQpOwogCkBAIC0xMDI2NSw3ICsxMDI2Myw3IEBAIGlubm9iYXNlX2NvbW1pdF9ieV94aWQo CiAKIAlpZiAodHJ4KSB7CiAJCWlubm9iYXNlX2NvbW1pdF9sb3codHJ4KTsKLQorCQl0cnhfZnJl ZV9mb3JfYmFja2dyb3VuZCh0cngpOwogCQlyZXR1cm4oWEFfT0spOwogCX0gZWxzZSB7CiAJCXJl dHVybihYQUVSX05PVEEpOwpAQCAtMTAyOTEsNyArMTAyODksOSBAQCBpbm5vYmFzZV9yb2xsYmFj a19ieV94aWQoCiAJdHJ4ID0gdHJ4X2dldF90cnhfYnlfeGlkKHhpZCk7CiAKIAlpZiAodHJ4KSB7 Ci0JCXJldHVybihpbm5vYmFzZV9yb2xsYmFja190cngodHJ4KSk7CisJCWludAlyZXQgPSBpbm5v YmFzZV9yb2xsYmFja190cngodHJ4KTsKKwkJdHJ4X2ZyZWVfZm9yX2JhY2tncm91bmQodHJ4KTsK KwkJcmV0dXJuKHJldCk7CiAJfSBlbHNlIHsKIAkJcmV0dXJuKFhBRVJfTk9UQSk7CiAJfQpAQCAt MTA5MjQsMTkgKzEwOTI0LDE5IEBAIHN0YXRpYyBpbnQgc2hvd19pbm5vZGJfdmFycyhUSEQgKnRo ZCwgU0gKICAgcmV0dXJuIDA7CiB9CiAKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorLyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8v KioKIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGVhY2ggaW5kZXggbmFtZSBmb3IgYSB0YWJsZSBhZ2Fp bnN0IHJlc2VydmVkCi1zeXN0ZW0gZGVmYXVsdCBwcmltYXJ5IGluZGV4IG5hbWUgJ0dFTl9DTFVT VF9JTkRFWCcuIElmIGEgbmFtZSBtYXRjaGVzLAotdGhpcyBmdW5jdGlvbiBwdXNoZXMgYW4gd2Fy bmluZyBtZXNzYWdlIHRvIHRoZSBjbGllbnQsIGFuZCByZXR1cm5zIHRydWUuICovCitzeXN0ZW0g ZGVmYXVsdCBwcmltYXJ5IGluZGV4IG5hbWUgJ0dFTl9DTFVTVF9JTkRFWCcuIElmIGEgbmFtZQor bWF0Y2hlcywgdGhpcyBmdW5jdGlvbiBwdXNoZXMgYW4gd2FybmluZyBtZXNzYWdlIHRvIHRoZSBj bGllbnQsCithbmQgcmV0dXJucyB0cnVlLgorQHJldHVybiB0cnVlIGlmIHRoZSBpbmRleCBuYW1l IG1hdGNoZXMgdGhlIHJlc2VydmVkIG5hbWUgKi8KIGV4dGVybiAiQyIgVU5JVl9JTlRFUk4KIGJv b2wKIGlubm9iYXNlX2luZGV4X25hbWVfaXNfcmVzZXJ2ZWQoCiAvKj09PT09PT09PT09PT09PT09 PT09PT09PT09PT0qLwotCQkJCQkvKiBvdXQ6IHRydWUgaWYgYW4gaW5kZXggbmFtZQotCQkJCQlt YXRjaGVzIHRoZSByZXNlcnZlZCBuYW1lICovCi0JY29uc3QgdHJ4X3QqCXRyeCwJCS8qIGluOiBJ bm5vREIgdHJhbnNhY3Rpb24gaGFuZGxlICovCi0JY29uc3QgS0VZKglrZXlfaW5mbywJLyogaW46 IEluZGV4ZXMgdG8gYmUgY3JlYXRlZCAqLwotCXVsaW50CQludW1fb2Zfa2V5cykJLyogaW46IE51 bWJlciBvZiBpbmRleGVzIHRvCisJVEhEKgkJdGhkLAkJLyohPCBpbi9vdXQ6IE15U1FMIGNvbm5l Y3Rpb24gKi8KKwljb25zdCBLRVkqCWtleV9pbmZvLAkvKiE8IGluOiBJbmRleGVzIHRvIGJlIGNy ZWF0ZWQgKi8KKwl1bGludAkJbnVtX29mX2tleXMpCS8qITwgaW46IE51bWJlciBvZiBpbmRleGVz IHRvCiAJCQkJCWJlIGNyZWF0ZWQuICovCiB7CiAJY29uc3QgS0VZKglrZXk7CkBAIC0xMDk0OCw3 ICsxMDk0OCw3IEBAIGlubm9iYXNlX2luZGV4X25hbWVfaXNfcmVzZXJ2ZWQoCiAJCWlmIChpbm5v YmFzZV9zdHJjYXNlY21wKGtleS0+bmFtZSwKIAkJCQkJaW5ub2Jhc2VfaW5kZXhfcmVzZXJ2ZV9u YW1lKSA9PSAwKSB7CiAJCQkvKiBQdXNoIHdhcm5pbmcgdG8gbXlzcWwgKi8KLQkJCXB1c2hfd2Fy bmluZ19wcmludGYoKFRIRCopIHRyeC0+bXlzcWxfdGhkLAorCQkJcHVzaF93YXJuaW5nX3ByaW50 Zih0aGQsCiAJCQkJCSAgICBNWVNRTF9FUlJPUjo6V0FSTl9MRVZFTF9XQVJOLAogCQkJCQkgICAg RVJfV1JPTkdfTkFNRV9GT1JfSU5ERVgsCiAJCQkJCSAgICAiQ2Fubm90IENyZWF0ZSBJbmRleCB3 aXRoIG5hbWUgIgoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvaGFuZGxlci9o YV9pbm5vZGIuaCcKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9oYW5kbGVyL2hhX2lubm9kYi5oCXJl dmlkOnZhc2lsLmRpbW92QG9yYWNsZS5jb20tMjAxMTA0MDYxMTQwNTctaHgwcGJnOXA3aXlkNTRu cworKysgYi9zdG9yYWdlL2lubm9iYXNlL2hhbmRsZXIvaGFfaW5ub2RiLmgJcmV2aWQ6bWFya28u bWFrZWxhQG9yYWNsZS5jb20tMjAxMTA0MDcyMDIyMDMtY2JrbnQ1YTF0ZGcwMnE3bgpAQCAtMzIx LDE1ICszMjEsMTQgQEAgaW5ub2Jhc2VfdHJ4X2FsbG9jYXRlKAogVGhpcyBmdW5jdGlvbiBjaGVj a3MgZWFjaCBpbmRleCBuYW1lIGZvciBhIHRhYmxlIGFnYWluc3QgcmVzZXJ2ZWQKIHN5c3RlbSBk ZWZhdWx0IHByaW1hcnkgaW5kZXggbmFtZSAnR0VOX0NMVVNUX0lOREVYJy4gSWYgYSBuYW1lCiBt YXRjaGVzLCB0aGlzIGZ1bmN0aW9uIHB1c2hlcyBhbiB3YXJuaW5nIG1lc3NhZ2UgdG8gdGhlIGNs aWVudCwKLWFuZCByZXR1cm5zIHRydWUuICovCithbmQgcmV0dXJucyB0cnVlLgorQHJldHVybiB0 cnVlIGlmIHRoZSBpbmRleCBuYW1lIG1hdGNoZXMgdGhlIHJlc2VydmVkIG5hbWUgKi8KIGV4dGVy biAiQyIKIGJvb2wKIGlubm9iYXNlX2luZGV4X25hbWVfaXNfcmVzZXJ2ZWQoCiAvKj09PT09PT09 PT09PT09PT09PT09PT09PT09PT0qLwotCQkJCQkvKiBvdXQ6IHRydWUgaWYgdGhlIGluZGV4IG5h bWUKLQkJCQkJbWF0Y2hlcyB0aGUgcmVzZXJ2ZWQgbmFtZSAqLwotCWNvbnN0IHRyeF90Kgl0cngs CQkvKiBpbjogSW5ub0RCIHRyYW5zYWN0aW9uIGhhbmRsZSAqLwotCWNvbnN0IEtFWSoJa2V5X2lu Zm8sCS8qIGluOiBJbmRleGVzIHRvIGJlIGNyZWF0ZWQgKi8KLQl1bGludAkJbnVtX29mX2tleXMp OwkvKiBpbjogTnVtYmVyIG9mIGluZGV4ZXMgdG8KKwlUSEQqCQl0aGQsCQkvKiE8IGluL291dDog TXlTUUwgY29ubmVjdGlvbiAqLworCWNvbnN0IEtFWSoJa2V5X2luZm8sCS8qITwgaW46IEluZGV4 ZXMgdG8gYmUgY3JlYXRlZCAqLworCXVsaW50CQludW1fb2Zfa2V5cyk7CS8qITwgaW46IE51bWJl ciBvZiBpbmRleGVzIHRvCiAJCQkJCWJlIGNyZWF0ZWQuICovCiAKCj09PSBtb2RpZmllZCBmaWxl ICdzdG9yYWdlL2lubm9iYXNlL2hhbmRsZXIvaGFuZGxlcjBhbHRlci5jYycKLS0tIGEvc3RvcmFn ZS9pbm5vYmFzZS9oYW5kbGVyL2hhbmRsZXIwYWx0ZXIuY2MJcmV2aWQ6dmFzaWwuZGltb3ZAb3Jh Y2xlLmNvbS0yMDExMDQwNjExNDA1Ny1oeDBwYmc5cDdpeWQ1NG5zCisrKyBiL3N0b3JhZ2UvaW5u b2Jhc2UvaGFuZGxlci9oYW5kbGVyMGFsdGVyLmNjCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUu Y29tLTIwMTEwNDA3MjAyMjAzLWNia250NWExdGRnMDJxN24KQEAgLTY1Myw0NCArNjUzLDM3IEBA IGhhX2lubm9iYXNlOjphZGRfaW5kZXgoCiAKIAl1cGRhdGVfdGhkKCk7CiAKLQloZWFwID0gbWVt X2hlYXBfY3JlYXRlKDEwMjQpOwotCiAJLyogSW4gY2FzZSBNeVNRTCBjYWxscyB0aGlzIGluIHRo ZSBtaWRkbGUgb2YgYSBTRUxFQ1QgcXVlcnksIHJlbGVhc2UKIAlwb3NzaWJsZSBhZGFwdGl2ZSBo YXNoIGxhdGNoIHRvIGF2b2lkIGRlYWRsb2NrcyBvZiB0aHJlYWRzLiAqLwogCXRyeF9zZWFyY2hf bGF0Y2hfcmVsZWFzZV9pZl9yZXNlcnZlZChwcmVidWlsdC0+dHJ4KTsKLQl0cnhfc3RhcnRfaWZf bm90X3N0YXJ0ZWQocHJlYnVpbHQtPnRyeCk7Ci0KLQkvKiBDcmVhdGUgYSBiYWNrZ3JvdW5kIHRy YW5zYWN0aW9uIGZvciB0aGUgb3BlcmF0aW9ucyBvbgotCXRoZSBkYXRhIGRpY3Rpb25hcnkgdGFi bGVzLiAqLwotCXRyeCA9IGlubm9iYXNlX3RyeF9hbGxvY2F0ZSh1c2VyX3RoZCk7Ci0JdHJ4X3N0 YXJ0X2lmX25vdF9zdGFydGVkKHRyeCk7CiAKIAlpbm5vZGJfdGFibGUgPSBpbmRleGVkX3RhYmxl CiAJCT0gZGljdF90YWJsZV9nZXQocHJlYnVpbHQtPnRhYmxlLT5uYW1lLCBGQUxTRSk7CiAKIAlp ZiAoVU5JVl9VTkxJS0VMWSghaW5ub2RiX3RhYmxlKSkgewotCQllcnJvciA9IEhBX0VSUl9OT19T VUNIX1RBQkxFOwotCQlnb3RvIGVycl9leGl0OworCQlEQlVHX1JFVFVSTihIQV9FUlJfTk9fU1VD SF9UQUJMRSk7CiAJfQogCiAJLyogQ2hlY2sgaWYgdGhlIGluZGV4IG5hbWUgaXMgcmVzZXJ2ZWQu ICovCi0JaWYgKGlubm9iYXNlX2luZGV4X25hbWVfaXNfcmVzZXJ2ZWQodHJ4LCBrZXlfaW5mbywg bnVtX29mX2tleXMpKSB7Ci0JCWVycm9yID0gLTE7Ci0JfSBlbHNlIHsKLQkJLyogQ2hlY2sgdGhh dCBpbmRleCBrZXlzIGFyZSBzZW5zaWJsZSAqLwotCQllcnJvciA9IGlubm9iYXNlX2NoZWNrX2lu ZGV4X2tleXMoa2V5X2luZm8sIG51bV9vZl9rZXlzLAotCQkJCQkJICBpbm5vZGJfdGFibGUpOwor CWlmIChpbm5vYmFzZV9pbmRleF9uYW1lX2lzX3Jlc2VydmVkKHVzZXJfdGhkLCBrZXlfaW5mbywg bnVtX29mX2tleXMpKSB7CisJCURCVUdfUkVUVVJOKC0xKTsKIAl9CiAKKwkvKiBDaGVjayB0aGF0 IGluZGV4IGtleXMgYXJlIHNlbnNpYmxlICovCisJZXJyb3IgPSBpbm5vYmFzZV9jaGVja19pbmRl eF9rZXlzKGtleV9pbmZvLCBudW1fb2Zfa2V5cywgaW5ub2RiX3RhYmxlKTsKKwogCWlmIChVTklW X1VOTElLRUxZKGVycm9yKSkgewotZXJyX2V4aXQ6Ci0JCW1lbV9oZWFwX2ZyZWUoaGVhcCk7Ci0J CXRyeF9nZW5lcmFsX3JvbGxiYWNrX2Zvcl9teXNxbCh0cngsIE5VTEwpOwotCQl0cnhfZnJlZV9m b3JfbXlzcWwodHJ4KTsKLQkJdHJ4X2NvbW1pdF9mb3JfbXlzcWwocHJlYnVpbHQtPnRyeCk7CiAJ CURCVUdfUkVUVVJOKGVycm9yKTsKIAl9CiAKKwloZWFwID0gbWVtX2hlYXBfY3JlYXRlKDEwMjQp OworCXRyeF9zdGFydF9pZl9ub3Rfc3RhcnRlZChwcmVidWlsdC0+dHJ4KTsKKworCS8qIENyZWF0 ZSBhIGJhY2tncm91bmQgdHJhbnNhY3Rpb24gZm9yIHRoZSBvcGVyYXRpb25zIG9uCisJdGhlIGRh dGEgZGljdGlvbmFyeSB0YWJsZXMuICovCisJdHJ4ID0gaW5ub2Jhc2VfdHJ4X2FsbG9jYXRlKHVz ZXJfdGhkKTsKKwl0cnhfc3RhcnRfaWZfbm90X3N0YXJ0ZWQodHJ4KTsKKwogCS8qIENyZWF0ZSB0 YWJsZSBjb250YWluaW5nIGFsbCBpbmRleGVzIHRvIGJlIGJ1aWx0IGluIHRoaXMKIAlhbHRlciB0 YWJsZSBhZGQgaW5kZXggc28gdGhhdCB0aGV5IGFyZSBpbiB0aGUgY29ycmVjdCBvcmRlcgogCWlu IHRoZSB0YWJsZS4gKi8KQEAgLTc2Miw4ICs3NTUsMTIgQEAgZXJyX2V4aXQ6CiAKIAkJCXV0X2Qo ZGljdF90YWJsZV9jaGVja19mb3JfZHVwX2luZGV4ZXMoaW5ub2RiX3RhYmxlLAogCQkJCQkJCSAg ICAgIEZBTFNFKSk7CisJCQltZW1faGVhcF9mcmVlKGhlYXApOworCQkJdHJ4X2dlbmVyYWxfcm9s bGJhY2tfZm9yX215c3FsKHRyeCwgTlVMTCk7CiAJCQlyb3dfbXlzcWxfdW5sb2NrX2RhdGFfZGlj dGlvbmFyeSh0cngpOwotCQkJZ290byBlcnJfZXhpdDsKKwkJCXRyeF9mcmVlX2Zvcl9teXNxbCh0 cngpOworCQkJdHJ4X2NvbW1pdF9mb3JfbXlzcWwocHJlYnVpbHQtPnRyeCk7CisJCQlEQlVHX1JF VFVSTihlcnJvcik7CiAJCX0KIAogCQl0cngtPnRhYmxlX2lkID0gaW5kZXhlZF90YWJsZS0+aWQ7 Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3RyeDB0cnguaCcK LS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3RyeDB0cnguaAlyZXZpZDp2YXNpbC5kaW1v dkBvcmFjbGUuY29tLTIwMTEwNDA2MTE0MDU3LWh4MHBiZzlwN2l5ZDU0bnMKKysrIGIvc3RvcmFn ZS9pbm5vYmFzZS9pbmNsdWRlL3RyeDB0cnguaAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNv bS0yMDExMDQwNzIwMjIwMy1jYmtudDVhMXRkZzAycTduCkBAIC00NCw2ICs0NCw5IEBAIGV4dGVy biBzZXNzX3QqCXRyeF9kdW1teV9zZXNzOwogLyoqIE51bWJlciBvZiB0cmFuc2FjdGlvbnMgY3Vy cmVudGx5IGFsbG9jYXRlZCBmb3IgTXlTUUw6IHByb3RlY3RlZCBieQogdGhlIGtlcm5lbCBtdXRl eCAqLwogZXh0ZXJuIHVsaW50CXRyeF9uX215c3FsX3RyYW5zYWN0aW9uczsKKy8qKiBOdW1iZXIg b2YgdHJhbnNhY3Rpb25zIGN1cnJlbnRseSBpbiB0aGUgWEEgUFJFUEFSRUQgc3RhdGU6IHByb3Rl Y3RlZCBieQordGhlIGtlcm5lbCBtdXRleCAqLworZXh0ZXJuIHVsaW50CXRyeF9uX3ByZXBhcmVk OwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKiovLyoqCiBSZWxlYXNlcyB0aGUgc2VhcmNoIGxhdGNoIGlmIHRyeCBo YXMgcmVzZXJ2ZWQgaXQuICovCkBAIC0xMDgsNiArMTExLDE0IEBAIHRyeF9mcmVlKAogLyo9PT09 PSovCiAJdHJ4X3QqCXRyeCk7CS8qITwgaW4sIG93bjogdHJ4IG9iamVjdCAqLwogLyoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqLy8qKgorQXQgc2h1dGRvd24sIGZyZWVzIGEgdHJhbnNhY3Rpb24gb2JqZWN0IHRoYXQgaXMg aW4gdGhlIFBSRVBBUkVEIHN0YXRlLiAqLworVU5JVl9JTlRFUk4KK3ZvaWQKK3RyeF9mcmVlX3By ZXBhcmVkKAorLyo9PT09PT09PT09PT09PSovCisJdHJ4X3QqCXRyeCkJLyohPCBpbiwgb3duOiB0 cnggb2JqZWN0ICovCisJX19hdHRyaWJ1dGVfXygobm9ubnVsbCkpOworLyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8q KgogRnJlZXMgYSB0cmFuc2FjdGlvbiBvYmplY3QgZm9yIE15U1FMLiAqLwogVU5JVl9JTlRFUk4K IHZvaWQKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvdHJ4MHVu ZG8uaCcKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3RyeDB1bmRvLmgJcmV2aWQ6dmFz aWwuZGltb3ZAb3JhY2xlLmNvbS0yMDExMDQwNjExNDA1Ny1oeDBwYmc5cDdpeWQ1NG5zCisrKyBi L3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS90cngwdW5kby5oCXJldmlkOm1hcmtvLm1ha2VsYUBv cmFjbGUuY29tLTIwMTEwNDA3MjAyMjAzLWNia250NWExdGRnMDJxN24KQEAgLTI5Niw2ICsyOTYs MTUgQEAgdm9pZAogdHJ4X3VuZG9faW5zZXJ0X2NsZWFudXAoCiAvKj09PT09PT09PT09PT09PT09 PT09Ki8KIAl0cnhfdCoJdHJ4KTsJLyohPCBpbjogdHJhbnNhY3Rpb24gaGFuZGxlICovCisKKy8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKi8vKioKK0F0IHNodXRkb3duLCBmcmVlcyB0aGUgdW5kbyBsb2dzIG9mIGEgUFJF UEFSRUQgdHJhbnNhY3Rpb24uICovCitVTklWX0lOVEVSTgordm9pZAordHJ4X3VuZG9fZnJlZV9w cmVwYXJlZCgKKy8qPT09PT09PT09PT09PT09PT09PSovCisJdHJ4X3QqCXRyeCkJLyohPCBpbi9v dXQ6IFBSRVBBUkVEIHRyYW5zYWN0aW9uICovCisJX19hdHRyaWJ1dGVfXygobm9ubnVsbCkpOwog I2VuZGlmIC8qICFVTklWX0hPVEJBQ0tVUCAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogUGFyc2VzIHRoZSByZWRvIGxv ZyBlbnRyeSBvZiBhbiB1bmRvIGxvZyBwYWdlIGluaXRpYWxpemF0aW9uLgoKPT09IG1vZGlmaWVk IGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvbG9nL2xvZzBsb2cuYycKLS0tIGEvc3RvcmFnZS9pbm5v YmFzZS9sb2cvbG9nMGxvZy5jCXJldmlkOnZhc2lsLmRpbW92QG9yYWNsZS5jb20tMjAxMTA0MDYx MTQwNTctaHgwcGJnOXA3aXlkNTRucworKysgYi9zdG9yYWdlL2lubm9iYXNlL2xvZy9sb2cwbG9n LmMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMTA0MDcyMDIyMDMtY2JrbnQ1YTF0 ZGcwMnE3bgpAQCAtMzEwOSwxMiArMzEwOSwxMyBAQCBsb29wOgogCQlnb3RvIGxvb3A7CiAJfQog Ci0JLyogQ2hlY2sgdGhhdCB0aGVyZSBhcmUgbm8gbG9uZ2VyIHRyYW5zYWN0aW9ucy4gV2UgbmVl ZCB0aGlzIHdhaXQgZXZlbgotCWZvciB0aGUgJ3ZlcnkgZmFzdCcgc2h1dGRvd24sIGJlY2F1c2Ug dGhlIElubm9EQiBsYXllciBtYXkgaGF2ZQotCWNvbW1pdHRlZCBvciBwcmVwYXJlZCB0cmFuc2Fj dGlvbnMgYW5kIHdlIGRvbid0IHdhbnQgdG8gbG9zZSB0aGVtLiAqLworCS8qIENoZWNrIHRoYXQg dGhlcmUgYXJlIG5vIGxvbmdlciB0cmFuc2FjdGlvbnMsIGV4Y2VwdCBmb3IKKwlQUkVQQVJFRCBv bmVzLiBXZSBuZWVkIHRoaXMgd2FpdCBldmVuIGZvciB0aGUgJ3ZlcnkgZmFzdCcKKwlzaHV0ZG93 biwgYmVjYXVzZSB0aGUgSW5ub0RCIGxheWVyIG1heSBoYXZlIGNvbW1pdHRlZCBvcgorCXByZXBh cmVkIHRyYW5zYWN0aW9ucyBhbmQgd2UgZG9uJ3Qgd2FudCB0byBsb3NlIHRoZW0uICovCiAKIAlz ZXJ2ZXJfYnVzeSA9IHRyeF9uX215c3FsX3RyYW5zYWN0aW9ucyA+IDAKLQkJfHwgVVRfTElTVF9H RVRfTEVOKHRyeF9zeXMtPnRyeF9saXN0KSA+IDA7CisJCXx8IFVUX0xJU1RfR0VUX0xFTih0cnhf c3lzLT50cnhfbGlzdCkgPiB0cnhfbl9wcmVwYXJlZDsKIAltdXRleF9leGl0KCZrZXJuZWxfbXV0 ZXgpOwogCiAJaWYgKHNlcnZlcl9idXN5IHx8IHNydl9pc19hbnlfYmFja2dyb3VuZF90aHJlYWRf YWN0aXZlKCkpIHsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL3RyeC90cngw c3lzLmMnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvdHJ4L3RyeDBzeXMuYwlyZXZpZDp2YXNpbC5k aW1vdkBvcmFjbGUuY29tLTIwMTEwNDA2MTE0MDU3LWh4MHBiZzlwN2l5ZDU0bnMKKysrIGIvc3Rv cmFnZS9pbm5vYmFzZS90cngvdHJ4MHN5cy5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29t LTIwMTEwNDA3MjAyMjAzLWNia250NWExdGRnMDJxN24KQEAgLTM3LDYgKzM3LDcgQEAgQ3JlYXRl ZCAzLzI2LzE5OTYgSGVpa2tpIFR1dXJpCiAjaW5jbHVkZSAidHJ4MHJzZWcuaCIKICNpbmNsdWRl ICJ0cngwdW5kby5oIgogI2luY2x1ZGUgInNydjBzcnYuaCIKKyNpbmNsdWRlICJzcnYwc3RhcnQu aCIKICNpbmNsdWRlICJ0cngwcHVyZ2UuaCIKICNpbmNsdWRlICJsb2cwbG9nLmgiCiAjaW5jbHVk ZSAibG9nMHJlY3YuaCIKQEAgLTE2MTcsMTAgKzE2MTgsMTIgQEAgdm9pZAogdHJ4X3N5c19jbG9z ZSh2b2lkKQogLyo9PT09PT09PT09PT09PT0qLwogeworCXRyeF90KgkJdHJ4OwogCXRyeF9yc2Vn X3QqCXJzZWc7CiAJcmVhZF92aWV3X3QqCXZpZXc7CiAKIAl1dF9hZCh0cnhfc3lzICE9IE5VTEwp OworCXV0X2FkKHNydl9zaHV0ZG93bl9zdGF0ZSA9PSBTUlZfU0hVVERPV05fRVhJVF9USFJFQURT KTsKIAogCS8qIENoZWNrIHRoYXQgYWxsIHJlYWQgdmlld3MgYXJlIGNsb3NlZCBleGNlcHQgcmVh ZCB2aWV3IG93bmVkCiAJYnkgYSBwdXJnZS4gKi8KQEAgLTE2NTIsNiArMTY1NSwxMyBAQCB0cnhf c3lzX2Nsb3NlKHZvaWQpCiAJbWVtX2ZyZWUodHJ4X2RvdWJsZXdyaXRlKTsKIAl0cnhfZG91Ymxl d3JpdGUgPSBOVUxMOwogCisJLyogT25seSBwcmVwYXJlZCB0cmFuc2FjdGlvbnMgbWF5IGJlIGxl ZnQgaW4gdGhlIHN5c3RlbS4gRnJlZSB0aGVtLiAqLworCXV0X2EoVVRfTElTVF9HRVRfTEVOKHRy eF9zeXMtPnRyeF9saXN0KSA9PSB0cnhfbl9wcmVwYXJlZCk7CisKKwl3aGlsZSAoKHRyeCA9IFVU X0xJU1RfR0VUX0ZJUlNUKHRyeF9zeXMtPnRyeF9saXN0KSkgIT0gTlVMTCkgeworCQl0cnhfZnJl ZV9wcmVwYXJlZCh0cngpOworCX0KKwogCS8qIFRoZXJlIGNhbid0IGJlIGFueSBhY3RpdmUgdHJh bnNhY3Rpb25zLiAqLwogCXJzZWcgPSBVVF9MSVNUX0dFVF9GSVJTVCh0cnhfc3lzLT5yc2VnX2xp c3QpOwogCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS90cngvdHJ4MHRyeC5j JwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL3RyeC90cngwdHJ4LmMJcmV2aWQ6dmFzaWwuZGltb3ZA b3JhY2xlLmNvbS0yMDExMDQwNjExNDA1Ny1oeDBwYmc5cDdpeWQ1NG5zCisrKyBiL3N0b3JhZ2Uv aW5ub2Jhc2UvdHJ4L3RyeDB0cnguYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEx MDQwNzIwMjIwMy1jYmtudDVhMXRkZzAycTduCkBAIC01MCw2ICs1MCw5IEBAIFVOSVZfSU5URVJO IHNlc3NfdCoJCXRyeF9kdW1teV9zZXNzID0gTlUKIC8qKiBOdW1iZXIgb2YgdHJhbnNhY3Rpb25z IGN1cnJlbnRseSBhbGxvY2F0ZWQgZm9yIE15U1FMOiBwcm90ZWN0ZWQgYnkKIHRoZSBrZXJuZWwg bXV0ZXggKi8KIFVOSVZfSU5URVJOIHVsaW50CXRyeF9uX215c3FsX3RyYW5zYWN0aW9ucyA9IDA7 CisvKiBOdW1iZXIgb2YgdHJhbnNhY3Rpb25zIGN1cnJlbnRseSBpbiB0aGUgWEEgUFJFUEFSRUQg c3RhdGU6IHByb3RlY3RlZCBieQordGhlIGtlcm5lbCBtdXRleCAqLworVU5JVl9JTlRFUk4gdWxp bnQJdHJ4X25fcHJlcGFyZWQgPSAwOwogCiAjaWZkZWYgVU5JVl9QRlNfTVVURVgKIC8qIEtleSB0 byByZWdpc3RlciB0aGUgbXV0ZXggd2l0aCBwZXJmb3JtYW5jZSBzY2hlbWEgKi8KQEAgLTMzOCw2 ICszNDEsNjAgQEAgdHJ4X2ZyZWUoCiB9CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKK0F0IHNodXRkb3du LCBmcmVlcyBhIHRyYW5zYWN0aW9uIG9iamVjdCB0aGF0IGlzIGluIHRoZSBQUkVQQVJFRCBzdGF0 ZS4gKi8KK1VOSVZfSU5URVJOCit2b2lkCit0cnhfZnJlZV9wcmVwYXJlZCgKKy8qPT09PT09PT09 PT09PT0qLworCXRyeF90Kgl0cngpCS8qITwgaW4sIG93bjogdHJ4IG9iamVjdCAqLworeworCXV0 X2FkKG11dGV4X293bigma2VybmVsX211dGV4KSk7CisJdXRfYSh0cngtPmNvbmNfc3RhdGUgPT0g VFJYX1BSRVBBUkVEKTsKKwl1dF9hKHRyeC0+bWFnaWNfbiA9PSBUUlhfTUFHSUNfTik7CisKKwkv KiBQcmVwYXJlZCB0cmFuc2FjdGlvbnMgYXJlIHNvcnQgb2YgYWN0aXZlOyB0aGV5IGFsbG93CisJ Uk9MTEJBQ0sgYW5kIENPTU1JVCBvcGVyYXRpb25zLiBCZWNhdXNlIHRoZSBzeXN0ZW0gZG9lcyBu b3QKKwljb250YWluIGFueSBvdGhlciB0cmFuc2FjdGlvbnMgdGhhbiBwcmVwYXJlZCB0cmFuc2Fj dGlvbnMgYXQKKwl0aGUgc2h1dGRvd24gc3RhZ2UgYW5kIGJlY2F1c2UgYSB0cmFuc2FjdGlvbiBj YW5ub3QgYmVjb21lCisJUFJFUEFSRUQgd2hpbGUgaG9sZGluZyBsb2NrcywgaXQgaXMgc2FmZSB0 byByZWxlYXNlIHRoZSBsb2NrcworCWhlbGQgYnkgUFJFUEFSRUQgdHJhbnNhY3Rpb25zIGhlcmUg YXQgc2h1dGRvd24uKi8KKwlsb2NrX3JlbGVhc2Vfb2ZmX2tlcm5lbCh0cngpOworCisJdHJ4X3Vu ZG9fZnJlZV9wcmVwYXJlZCh0cngpOworCisJbXV0ZXhfZnJlZSgmdHJ4LT51bmRvX211dGV4KTsK KworCWlmICh0cngtPnVuZG9fbm9fYXJyKSB7CisJCXRyeF91bmRvX2Fycl9mcmVlKHRyeC0+dW5k b19ub19hcnIpOworCX0KKworCXV0X2EoVVRfTElTVF9HRVRfTEVOKHRyeC0+c2lnbmFscykgPT0g MCk7CisJdXRfYShVVF9MSVNUX0dFVF9MRU4odHJ4LT5yZXBseV9zaWduYWxzKSA9PSAwKTsKKwor CXV0X2EodHJ4LT53YWl0X2xvY2sgPT0gTlVMTCk7CisJdXRfYShVVF9MSVNUX0dFVF9MRU4odHJ4 LT53YWl0X3RocnMpID09IDApOworCisJdXRfYSghdHJ4LT5oYXNfc2VhcmNoX2xhdGNoKTsKKwor CXV0X2EodHJ4LT5kaWN0X29wZXJhdGlvbl9sb2NrX21vZGUgPT0gMCk7CisKKwlpZiAodHJ4LT5s b2NrX2hlYXApIHsKKwkJbWVtX2hlYXBfZnJlZSh0cngtPmxvY2tfaGVhcCk7CisJfQorCisJaWYg KHRyeC0+Z2xvYmFsX3JlYWRfdmlld19oZWFwKSB7CisJCW1lbV9oZWFwX2ZyZWUodHJ4LT5nbG9i YWxfcmVhZF92aWV3X2hlYXApOworCX0KKworCXV0X2EoaWJfdmVjdG9yX2lzX2VtcHR5KHRyeC0+ YXV0b2luY19sb2NrcykpOworCWliX3ZlY3Rvcl9mcmVlKHRyeC0+YXV0b2luY19sb2Nrcyk7CisK KwlVVF9MSVNUX1JFTU9WRSh0cnhfbGlzdCwgdHJ4X3N5cy0+dHJ4X2xpc3QsIHRyeCk7CisKKwlt ZW1fZnJlZSh0cngpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBGcmVlcyBhIHRyYW5zYWN0aW9u IG9iamVjdCBmb3IgTXlTUUwuICovCiBVTklWX0lOVEVSTgogdm9pZApAQCAtNDY3LDYgKzUyNCw3 IEBAIHRyeF9saXN0c19pbml0X2F0X2RiX3N0YXJ0KHZvaWQpCiAJCQkJCWlmIChzcnZfZm9yY2Vf cmVjb3ZlcnkgPT0gMCkgewogCiAJCQkJCQl0cngtPmNvbmNfc3RhdGUgPSBUUlhfUFJFUEFSRUQ7 CisJCQkJCQl0cnhfbl9wcmVwYXJlZCsrOwogCQkJCQl9IGVsc2UgewogCQkJCQkJZnByaW50Zihz dGRlcnIsCiAJCQkJCQkJIklubm9EQjogU2luY2UiCkBAIC01NDMsNiArNjAxLDcgQEAgdHJ4X2xp c3RzX2luaXRfYXRfZGJfc3RhcnQodm9pZCkKIAogCQkJCQkJCXRyeC0+Y29uY19zdGF0ZQogCQkJ CQkJCQk9IFRSWF9QUkVQQVJFRDsKKwkJCQkJCQl0cnhfbl9wcmVwYXJlZCsrOwogCQkJCQkJfSBl bHNlIHsKIAkJCQkJCQlmcHJpbnRmKHN0ZGVyciwKIAkJCQkJCQkJIklubm9EQjogU2luY2UiCkBA IC04NzcsNiArOTM2LDExIEBAIHRyeF9jb21taXRfb2ZmX2tlcm5lbCgKIAl1dF9hZCh0cngtPmNv bmNfc3RhdGUgPT0gVFJYX0FDVElWRSB8fCB0cngtPmNvbmNfc3RhdGUgPT0gVFJYX1BSRVBBUkVE KTsKIAl1dF9hZChtdXRleF9vd24oJmtlcm5lbF9tdXRleCkpOwogCisJaWYgKFVOSVZfVU5MSUtF TFkodHJ4LT5jb25jX3N0YXRlID09IFRSWF9QUkVQQVJFRCkpIHsKKwkJdXRfYSh0cnhfbl9wcmVw YXJlZCA+IDApOworCQl0cnhfbl9wcmVwYXJlZC0tOworCX0KKwogCS8qIFRoZSBmb2xsb3dpbmcg YXNzaWdubWVudCBtYWtlcyB0aGUgdHJhbnNhY3Rpb24gY29tbWl0dGVkIGluIG1lbW9yeQogCWFu ZCBtYWtlcyBpdHMgY2hhbmdlcyB0byBkYXRhIHZpc2libGUgdG8gb3RoZXIgdHJhbnNhY3Rpb25z LgogCU5PVEUgdGhhdCB0aGVyZSBpcyBhIHNtYWxsIGRpc2NyZXBhbmN5IGZyb20gdGhlIHN0cmlj dCBmb3JtYWwKQEAgLTE5MDEsNiArMTk2NSw3IEBAIHRyeF9wcmVwYXJlX29mZl9rZXJuZWwoCiAK IAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAl0cngtPmNvbmNf c3RhdGUgPSBUUlhfUFJFUEFSRUQ7CisJdHJ4X25fcHJlcGFyZWQrKzsKIAkvKi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAogCWlmIChsc24pIHsKQEAgLTIwNzcsNyAr MjE0Miw4IEBAIHRyeF9nZXRfdHJ4X2J5X3hpZCgKIAkJb2YgZ3RyaWRfbGVuZ3RoK2JxdWFsX2xl bmd0aCBieXRlcyBzaG91bGQgYmUKIAkJdGhlIHNhbWUgKi8KIAotCQlpZiAodHJ4LT5jb25jX3N0 YXRlID09IFRSWF9QUkVQQVJFRAorCQlpZiAodHJ4LT5pc19yZWNvdmVyZWQKKwkJICAgICYmIHRy eC0+Y29uY19zdGF0ZSA9PSBUUlhfUFJFUEFSRUQKIAkJICAgICYmIHhpZC0+Z3RyaWRfbGVuZ3Ro ID09IHRyeC0+eGlkLmd0cmlkX2xlbmd0aAogCQkgICAgJiYgeGlkLT5icXVhbF9sZW5ndGggPT0g dHJ4LT54aWQuYnF1YWxfbGVuZ3RoCiAJCSAgICAmJiBtZW1jbXAoeGlkLT5kYXRhLCB0cngtPnhp ZC5kYXRhLAoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvdHJ4L3RyeDB1bmRv LmMnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvdHJ4L3RyeDB1bmRvLmMJcmV2aWQ6dmFzaWwuZGlt b3ZAb3JhY2xlLmNvbS0yMDExMDQwNjExNDA1Ny1oeDBwYmc5cDdpeWQ1NG5zCisrKyBiL3N0b3Jh Z2UvaW5ub2Jhc2UvdHJ4L3RyeDB1bmRvLmMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20t MjAxMTA0MDcyMDIyMDMtY2JrbnQ1YTF0ZGcwMnE3bgpAQCAtMzYsNiArMzYsNyBAQCBDcmVhdGVk IDMvMjYvMTk5NiBIZWlra2kgVHV1cmkKICNpbmNsdWRlICJ0cngwcnNlZy5oIgogI2luY2x1ZGUg InRyeDB0cnguaCIKICNpbmNsdWRlICJzcnYwc3J2LmgiCisjaW5jbHVkZSAic3J2MHN0YXJ0Lmgi CiAjaW5jbHVkZSAidHJ4MHJlYy5oIgogI2luY2x1ZGUgInRyeDBwdXJnZS5oIgogCkBAIC0xOTc1 LDQgKzE5NzYsMzEgQEAgdHJ4X3VuZG9faW5zZXJ0X2NsZWFudXAoCiAKIAltdXRleF9leGl0KCYo cnNlZy0+bXV0ZXgpKTsKIH0KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgorQXQgc2h1dGRvd24sIGZyZWVz IHRoZSB1bmRvIGxvZ3Mgb2YgYSBQUkVQQVJFRCB0cmFuc2FjdGlvbi4gKi8KK1VOSVZfSU5URVJO Cit2b2lkCit0cnhfdW5kb19mcmVlX3ByZXBhcmVkKAorLyo9PT09PT09PT09PT09PT09PT09Ki8K Kwl0cnhfdCoJdHJ4KQkvKiE8IGluL291dDogUFJFUEFSRUQgdHJhbnNhY3Rpb24gKi8KK3sKKwlt dXRleF9lbnRlcigmdHJ4LT5yc2VnLT5tdXRleCk7CisKKwl1dF9hZChzcnZfc2h1dGRvd25fc3Rh dGUgPT0gU1JWX1NIVVRET1dOX0VYSVRfVEhSRUFEUyk7CisKKwlpZiAodHJ4LT51cGRhdGVfdW5k bykgeworCQl1dF9hKHRyeC0+dXBkYXRlX3VuZG8tPnN0YXRlID09IFRSWF9VTkRPX1BSRVBBUkVE KTsKKwkJVVRfTElTVF9SRU1PVkUodW5kb19saXN0LCB0cngtPnJzZWctPnVwZGF0ZV91bmRvX2xp c3QsCisJCQkgICAgICAgdHJ4LT51cGRhdGVfdW5kbyk7CisJCXRyeF91bmRvX21lbV9mcmVlKHRy eC0+dXBkYXRlX3VuZG8pOworCX0KKwlpZiAodHJ4LT5pbnNlcnRfdW5kbykgeworCQl1dF9hKHRy eC0+aW5zZXJ0X3VuZG8tPnN0YXRlID09IFRSWF9VTkRPX1BSRVBBUkVEKTsKKwkJVVRfTElTVF9S RU1PVkUodW5kb19saXN0LCB0cngtPnJzZWctPmluc2VydF91bmRvX2xpc3QsCisJCQkgICAgICAg dHJ4LT5pbnNlcnRfdW5kbyk7CisJCXRyeF91bmRvX21lbV9mcmVlKHRyeC0+aW5zZXJ0X3VuZG8p OworCX0KKwltdXRleF9leGl0KCZ0cngtPnJzZWctPm11dGV4KTsKK30KICNlbmRpZiAvKiAhVU5J Vl9IT1RCQUNLVVAgKi8KCg== --===============0819437795== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/marko.makela@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: marko.makela@stripped # target_branch: file:///home/marko/innobase/dev/mysql2a/5.5-innodb/ # testament_sha1: 3c079161457fadbf8c72c5a0ebef3405e37a104b # timestamp: 2011-04-07 23:23:42 +0300 # source_branch: file:///home/marko/innobase/dev/mysql2a/5.1-innodb/ # base_revision_id: vasil.dimov@stripped\ # hx0pbg9p7iyd54ns # # Begin bundle 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 xBTaL2EH+nsO4Wp/4eJ6X/4u5IpwoSCxx0Jy --===============0819437795==--