From: Jon Olav Hauglid Date: March 8 2011 9:22am Subject: bzr push into mysql-5.5 branch (jon.hauglid:3375 to 3376) Bug#11755431 List-Archive: http://lists.mysql.com/commits/132578 X-Bug: 11755431 Message-Id: <201103080924.p289Ot7N013972@acsinet15.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDMzNzYgSm9uIE9sYXYgSGF1Z2xpZAkyMDExLTAzLTA4CiAgICAgIEJ1ZyAjMTE3NTU0MzEgKGZv cm1lciA0NzIwNSkKICAgICAgTUFQICdSRVBBSVIgVEFCTEUnIFRPIFJFQ1JFQVRFICtBTkFMWVpF IEZPUiBFTkdJTkVTIE5PVAogICAgICBTVVBQT1JUSU5HIE5BVElWRSBSRVBBSVIKICAgICAgCiAg ICAgIEV4ZWN1dGluZyAnbXlzcWxjaGVjayAtLWNoZWNrLXVwZ3JhZGUgLS1hdXRvLXJlcGFpciAu Li4nIHdpbGwgZmlyc3QgaXNzdWUKICAgICAgJ0NIRUNLIFRBQkxFIEZPUiBVUEdSQURFJyBmb3Ig YWxsIHRhYmxlcyBpbiB0aGUgZGF0YWJhc2UgaW4gb3JkZXIgdG8gY2hlY2sgaWYgdGhlCiAgICAg IHRhYmxlcyBhcmUgY29tcGF0aWJsZSB3aXRoIHRoZSBjdXJyZW50IHZlcnNpb24gb2YgTXlTUUwu IEFueSB0YWJsZXMgdGhhdCBhcmUKICAgICAgZm91bmQgaW5jb21wYXRpYmxlIGFyZSB0aGVuIHVw Z3JhZGVkIHVzaW5nICdSRVBBSVIgVEFCTEUnLgogICAgICAKICAgICAgVGhlIHByb2JsZW0gd2Fz IHRoYXQgc29tZSBlbmdpbmVzIChlLmcuIElubm9EQikgZG8gbm90IHN1cHBvcnQgJ1JFUEFJUiBU QUJMRScuCiAgICAgIFRoaXMgY2F1c2VkIGFueSBzdWNoIHRhYmxlcyB0byBiZSBsZWZ0IGluY29t cGF0aWJsZS4gQXMgYSByZXN1bHQgc3VjaCB0YWJsZXMgd2VyZQogICAgICBub3QgcHJvcGVybHkg Zml4ZWQgYnkgdGhlIG15c3FsX3VwZ3JhZGUgdG9vbC4KICAgICAgCiAgICAgIFRoaXMgcGF0Y2gg Zml4ZXMgdGhlIHByb2JsZW0gYnkgZmlyc3QgY2hhbmdpbmcgJ0NIRUNLIFRBQkxFIEZPUiBVUEdS QURFJyB0byByZXR1cm4KICAgICAgYSBkaWZmZXJlbnQgZXJyb3IgbWVzc2FnZSBpZiB0aGUgZW5n aW5lIGRvZXMgbm90IHN1cHBvcnQgUkVQQUlSLiBJbnN0ZWFkIG9mCiAgICAgICJUYWJsZSB1cGdy YWRlIHJlcXVpcmVkLiBQbGVhc2UgZG8gIlJFUEFJUiBUQUJMRSAuLi4iIGl0IHdpbGwgcmVwb3J0 CiAgICAgICJUYWJsZSByZWJ1aWxkIHJlcXVpcmVkLiBQbGVhc2UgZG8gIkFMVEVSIFRBQkxFIC4u LiBGT1JDRSAuLi4iCiAgICAgIAogICAgICBTZWNvbmQsIHRoZSBwYXRjaCBjaGFuZ2VzIG15c3Fs Y2hlY2sgdG8gZG8gJ0FMVEVSIFRBQkxFIC4uLiBGT1JDRScgaW5zdGVhZCBvZgogICAgICAnUkVQ QUlSIFRBQkxFJyBpbiB0aGVzZSBjYXNlcy4KICAgICAgCiAgICAgIFRoaXMgcGF0Y2ggYWxzbyBm aXhlcyAnQUxURVIgVEFCTEUgLi4uIEZPUkNFJyB0byBhY3R1YWxseSByZWJ1aWxkIHRoZSB0YWJs ZS4KICAgICAgVGhpcyBjaGFuZ2Ugc2hvdWxkIGJlIHJlZmxlY3RlZCBpbiB0aGUgZG9jdW1lbnRh dGlvbi4gQmVmb3JlIHRoaXMgcGF0Y2gsCiAgICAgICdBTFRFUiBUQUJMRSAuLi4gRk9SQ0UnIHdh cyB1bnVzZWQgKFNlZSBCdWcjMTE3NDYxNjIpCiAgICAgIAogICAgICBUZXN0IGNhc2UgYWRkZWQg dG8gbXlzcWxjaGVjay50ZXN0CiAgICAgQCBjbGllbnQvbXlzcWxjaGVjay5jCiAgICAgICAgQ2hh bmdlZCBteXNxbGNoZWNrIHRvIGRvICdBTFRFUiBUQUJMRSAuLi4gRk9SQ0UnIGlmCiAgICAgICAg J0NIRUNLIFRBQkxFIEZPUiBVUEdSQURFJyByZXBvcnRzIEVSX1RBQkxFX05FRURTX1JFQlVJTEQK ICAgICAgICBhbmQgbm90IEVSX1RBQkxFX05FRURTX1VQR1JBREUuCiAgICAgQCBteXNxbC10ZXN0 L3IvbXlzcWxjaGVjay5yZXN1bHQKICAgICAgICBBZGRlZCByZWdyZXNzaW9uIHRlc3QuCiAgICAg QCBteXNxbC10ZXN0L3N0ZF9kYXRhL2J1ZzQ3MjA1LmZybQogICAgICAgIElubm9EQiA1LjAgRlJN IHdoaWNoIGNvbnRhaW5zIGEgdmFyY2hhciBwcmltYXJ5IGtleSB1c2luZwogICAgICAgIHV0Zjhf Z2VuZXJhbF9jaS4gVGhpcyBpcyBhbiBpbmNvbXBhdGlibGUgRlJNIGZvciA1LjUuCiAgICAgQCBt eXNxbC10ZXN0L3QvbXlzcWxjaGVjay50ZXN0CiAgICAgICAgQWRkZWQgcmVncmVzc2lvbiB0ZXN0 LgogICAgIEAgc3FsL2hhbmRsZXIuaAogICAgICAgIEFkZGVkIG5ldyBIQV9DQU5fUkVQQUlSIGZs YWcuCiAgICAgQCBzcWwvc2hhcmUvZXJybXNnLXV0ZjgudHh0CiAgICAgICAgQWRkZWQgbmV3IGVy cm9yIG1lc3NhZ2UgRVJfVEFCTEVfTkVFRFNfUkVCVUlMRAogICAgIEAgc3FsL3NxbF9hZG1pbi5j YwogICAgICAgIENoYW5nZWQgJ0NIRUNLIFRBQkxFIEZPUiBVUERBVEUnIHRvIGdpdmUgRVJfVEFC TEVfTkVFRFNfUkVCVUlMRAogICAgICAgIGluc3RlYWQgb2YgRVJfVEFCTEVfTkVFRFNfVVBHUkFE RSBpZiB0aGUgZW5naW5lIGRvZXMgbm90IHN1cHBvcnQKICAgICAgICBSRVBBSVIgKGFzIGluZGlj YXRlZCBieSB0aGUgbmV3IEhBX0NBTl9SRVBBSVIgZmxhZykuCiAgICAgQCBzcWwvc3FsX2xleC5o CiAgICAgICAgUmVtb3ZlIHVudXNlZCBBTFRFUl9GT1JDRSBmbGFnLgogICAgIEAgc3FsL3NxbF95 YWNjLnl5CiAgICAgICAgTWFrZSBzdXJlIEFMVEVSIFRBQkxFIC4uLiBGT1JDRSByZWNyZWF0ZXMg dGhlIHRhYmxlCiAgICAgICAgYnkgc2V0dGluZyB0aGUgQUxURVJfUkVDUkVBVEUgZmxhZyBhcyB0 aGUgQUxURVJfRk9SQ0UKICAgICAgICBmbGFnIHdhcyB1bnVzZWQuCiAgICAgQCBzdG9yYWdlL2Fy Y2hpdmUvaGFfYXJjaGl2ZS5oCiAgICAgICAgQWRkZWQgbmV3IEhBX0NBTl9SRVBBSVIgZmxhZyB0 byBBcmNoaXZlCiAgICAgQCBzdG9yYWdlL2Nzdi9oYV90aW5hLmgKICAgICAgICBBZGRlZCBuZXcg SEFfQ0FOX1JFUEFJUiBmbGFnIHRvIENTVgogICAgIEAgc3RvcmFnZS9mZWRlcmF0ZWQvaGFfZmVk ZXJhdGVkLmgKICAgICAgICBBZGRlZCBuZXcgSEFfQ0FOX1JFUEFJUiBmbGFnIHRvIEZlZGVyYXRl ZAogICAgIEAgc3RvcmFnZS9teWlzYW0vaGFfbXlpc2FtLmNjCiAgICAgICAgQWRkZWQgbmV3IEhB X0NBTl9SRVBBSVIgZmxhZyB0byBNeUlTQU0KCiAgICBhZGRlZDoKICAgICAgbXlzcWwtdGVzdC9z dGRfZGF0YS9idWc0NzIwNS5mcm0KICAgIG1vZGlmaWVkOgogICAgICBjbGllbnQvbXlzcWxjaGVj ay5jCiAgICAgIG15c3FsLXRlc3Qvci9teXNxbGNoZWNrLnJlc3VsdAogICAgICBteXNxbC10ZXN0 L3QvbXlzcWxjaGVjay50ZXN0CiAgICAgIHNxbC9oYW5kbGVyLmNjCiAgICAgIHNxbC9oYW5kbGVy LmgKICAgICAgc3FsL3NoYXJlL2Vycm1zZy11dGY4LnR4dAogICAgICBzcWwvc3FsX2FkbWluLmNj CiAgICAgIHNxbC9zcWxfbGV4LmgKICAgICAgc3FsL3NxbF95YWNjLnl5CiAgICAgIHN0b3JhZ2Uv YXJjaGl2ZS9oYV9hcmNoaXZlLmgKICAgICAgc3RvcmFnZS9jc3YvaGFfdGluYS5oCiAgICAgIHN0 b3JhZ2UvZmVkZXJhdGVkL2hhX2ZlZGVyYXRlZC5oCiAgICAgIHN0b3JhZ2UvbXlpc2FtL2hhX215 aXNhbS5jYwogMzM3NSBKb24gT2xhdiBIYXVnbGlkCTIwMTEtMDMtMDcKICAgICAgQnVnICMxMTc4 NDA1NiBFTkFCTEUgQ09OQ1VSUkVOVCBSRUFEUyBXSElMRSBDUkVBVElORwogICAgICAgICAgICAg ICAgICAgIE5PTi1QUklNQVJZIFVOSVFVRSBJTkRFWCBVU0lORyBJTk5PREIKICAgICAgCiAgICAg IFRoaXMgcGF0Y2ggYWRkcyB0aGUgSEFfSU5QTEFDRV9BRERfVU5JUVVFX0lOREVYX05PX1dSSVRF CiAgICAgIGNhcGFiaWxpdHkgZmxhZyB0byBJbm5vREIsIGluZGljYXRpbmcgdGhhdCBjb25jdXJy ZW50IHJlYWRzCiAgICAgIGNhbiBiZSBhbGxvd2VkIHdoaWxlIG5vbi1wcmltYXJ5IHVuaXF1ZSBp bmRleGVzIGFyZSBjcmVhdGVkLgogICAgICAKICAgICAgVGhpcyBpcyBhbiBmb2xsb3ctdXAgdG8g QnVnICMxMTc1MTM4OCB3aGljaCBlbmFibGVkIGNvbmN1cnJlbnQKICAgICAgcmVhZHMgd2hlbiBj cmVhdGluZyBub24tcHJpbWFyeSBub24tdW5pcXVlIGluZGV4ZXMuCiAgICAgIAogICAgICBUZXN0 IGNhc2UgYWRkZWQgdG8gaW5ub2RiX215c3FsX3N5bmMudGVzdC4KCiAgICBtb2RpZmllZDoKICAg ICAgbXlzcWwtdGVzdC9yL2lubm9kYl9teXNxbF9zeW5jLnJlc3VsdAogICAgICBteXNxbC10ZXN0 L3QvaW5ub2RiX215c3FsX3N5bmMudGVzdAogICAgICBzdG9yYWdlL2lubm9iYXNlL2hhbmRsZXIv aGFfaW5ub2RiLmNjCj09PSBtb2RpZmllZCBmaWxlICdjbGllbnQvbXlzcWxjaGVjay5jJwotLS0g YS9jbGllbnQvbXlzcWxjaGVjay5jCTIwMTEtMDEtMTYgMDM6NTk6MDUgKzAwMDAKKysrIGIvY2xp ZW50L215c3FsY2hlY2suYwkyMDExLTAzLTA4IDA4OjQxOjU3ICswMDAwCkBAIC00Miw3ICs0Miw3 IEBAIHN0YXRpYyBjaGFyICpvcHRfcGFzc3dvcmQgPSAwLCAqY3VycmVudF8KIAkgICAgKmRlZmF1 bHRfY2hhcnNldD0gMCwgKmN1cnJlbnRfaG9zdD0gMDsKIHN0YXRpYyBjaGFyICpvcHRfcGx1Z2lu X2Rpcj0gMCwgKm9wdF9kZWZhdWx0X2F1dGg9IDA7CiBzdGF0aWMgaW50IGZpcnN0X2Vycm9yID0g MDsKLURZTkFNSUNfQVJSQVkgdGFibGVzNHJlcGFpcjsKK0RZTkFNSUNfQVJSQVkgdGFibGVzNHJl cGFpciwgdGFibGVzNHJlYnVpbGQ7CiAjaWZkZWYgSEFWRV9TTUVNCiBzdGF0aWMgY2hhciAqc2hh cmVkX21lbW9yeV9iYXNlX25hbWU9MDsKICNlbmRpZgpAQCAtNjI2LDYgKzYyNiwyNyBAQCBzdGF0 aWMgaW50IGZpeF9kYXRhYmFzZV9zdG9yYWdlX25hbWUoY29uCiAgIHJldHVybiByYzsKIH0KIAor c3RhdGljIGludCByZWJ1aWxkX3RhYmxlKGNoYXIgKm5hbWUpCit7CisgIGNoYXIgKnF1ZXJ5LCAq cHRyOworICBpbnQgcmM9IDA7CisgIHF1ZXJ5PSAoY2hhciopbXlfbWFsbG9jKHNpemVvZihjaGFy KSAqICgxMiArIGZpeGVkX25hbWVfbGVuZ3RoKG5hbWUpICsgNiArIDEpLAorICAgICAgICAgICAg ICAgICAgICAgICAgICBNWUYoTVlfV01FKSk7CisgIGlmICghcXVlcnkpCisgICAgcmV0dXJuIDE7 CisgIHB0cj0gc3RybW92KHF1ZXJ5LCAiQUxURVIgVEFCTEUgIik7CisgIHB0cj0gZml4X3RhYmxl X25hbWUocHRyLCBuYW1lKTsKKyAgcHRyPSBzdHJ4bW92KHB0ciwgIiBGT1JDRSIsIE51bGxTKTsK KyAgaWYgKG15c3FsX3JlYWxfcXVlcnkoc29jaywgcXVlcnksICh1aW50KShwdHIgLSBxdWVyeSkp KQorICB7CisgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gJXNcbiIsIHF1ZXJ5KTsKKyAg ICBmcHJpbnRmKHN0ZGVyciwgIkVycm9yOiAlc1xuIiwgbXlzcWxfZXJyb3Ioc29jaykpOworICAg IHJjPSAxOworICB9CisgIG15X2ZyZWUocXVlcnkpOworICByZXR1cm4gcmM7Cit9CisKIHN0YXRp YyBpbnQgcHJvY2Vzc19vbmVfZGIoY2hhciAqZGF0YWJhc2UpCiB7CiAgIGlmICh3aGF0X3RvX2Rv ID09IERPX1VQR1JBREUpCkBAIC03MzksNyArNzYwLDcgQEAgc3RhdGljIHZvaWQgcHJpbnRfcmVz dWx0KCkKICAgTVlTUUxfUk9XIHJvdzsKICAgY2hhciBwcmV2W05BTUVfTEVOKjIrMl07CiAgIHVp bnQgaTsKLSAgbXlfYm9vbCBmb3VuZF9lcnJvcj0wOworICBteV9ib29sIGZvdW5kX2Vycm9yPTAs IHRhYmxlX3JlYnVpbGQ9MDsKIAogICByZXMgPSBteXNxbF91c2VfcmVzdWx0KHNvY2spOwogCkBA IC03NTgsOCArNzc5LDE0IEBAIHN0YXRpYyB2b2lkIHByaW50X3Jlc3VsdCgpCiAgICAgICAqLwog ICAgICAgaWYgKGZvdW5kX2Vycm9yICYmIG9wdF9hdXRvX3JlcGFpciAmJiB3aGF0X3RvX2RvICE9 IERPX1JFUEFJUiAmJgogCSAgc3RyY21wKHJvd1szXSwiT0siKSkKLQlpbnNlcnRfZHluYW1pYygm dGFibGVzNHJlcGFpciwgKHVjaGFyKikgcHJldik7CisgICAgICB7CisgICAgICAgIGlmICh0YWJs ZV9yZWJ1aWxkKQorICAgICAgICAgIGluc2VydF9keW5hbWljKCZ0YWJsZXM0cmVidWlsZCwgKHVj aGFyKikgcHJldik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICBpbnNlcnRfZHluYW1pYygmdGFi bGVzNHJlcGFpciwgKHVjaGFyKikgcHJldik7CisgICAgICB9CiAgICAgICBmb3VuZF9lcnJvcj0w OworICAgICAgdGFibGVfcmVidWlsZD0wOwogICAgICAgaWYgKG9wdF9zaWxlbnQpCiAJY29udGlu dWU7CiAgICAgfQpAQCAtNzY5LDcgKzc5NiwxMSBAQCBzdGF0aWMgdm9pZCBwcmludF9yZXN1bHQo KQogICAgIHsKICAgICAgIHByaW50ZigiJXNcbiUtOXM6ICVzIiwgcm93WzBdLCByb3dbMl0sIHJv d1szXSk7CiAgICAgICBpZiAoc3RyY21wKHJvd1syXSwibm90ZSIpKQorICAgICAgewogCWZvdW5k X2Vycm9yPTE7CisgICAgICAgIGlmIChvcHRfYXV0b19yZXBhaXIgJiYgc3Ryc3RyKHJvd1szXSwg IkFMVEVSIFRBQkxFIikgIT0gTlVMTCkKKyAgICAgICAgICB0YWJsZV9yZWJ1aWxkPTE7CisgICAg ICB9CiAgICAgfQogICAgIGVsc2UKICAgICAgIHByaW50ZigiJS05czogJXMiLCByb3dbMl0sIHJv d1szXSk7CkBAIC03NzgsNyArODA5LDEyIEBAIHN0YXRpYyB2b2lkIHByaW50X3Jlc3VsdCgpCiAg IH0KICAgLyogYWRkIHRoZSBsYXN0IHRhYmxlIHRvIGJlIHJlcGFpcmVkIHRvIHRoZSBsaXN0ICov CiAgIGlmIChmb3VuZF9lcnJvciAmJiBvcHRfYXV0b19yZXBhaXIgJiYgd2hhdF90b19kbyAhPSBE T19SRVBBSVIpCi0gICAgaW5zZXJ0X2R5bmFtaWMoJnRhYmxlczRyZXBhaXIsICh1Y2hhciopIHBy ZXYpOworICB7CisgICAgaWYgKHRhYmxlX3JlYnVpbGQpCisgICAgICBpbnNlcnRfZHluYW1pYygm dGFibGVzNHJlYnVpbGQsICh1Y2hhciopIHByZXYpOworICAgIGVsc2UKKyAgICAgIGluc2VydF9k eW5hbWljKCZ0YWJsZXM0cmVwYWlyLCAodWNoYXIqKSBwcmV2KTsKKyAgfQogICBteXNxbF9mcmVl X3Jlc3VsdChyZXMpOwogfQogCkBAIC04NzYsNyArOTEyLDggQEAgaW50IG1haW4oaW50IGFyZ2Ms IGNoYXIgKiphcmd2KQogICB9CiAKICAgaWYgKG9wdF9hdXRvX3JlcGFpciAmJgotICAgICAgbXlf aW5pdF9keW5hbWljX2FycmF5KCZ0YWJsZXM0cmVwYWlyLCBzaXplb2YoY2hhcikqKE5BTUVfTEVO KjIrMiksMTYsNjQpKQorICAgICAgKG15X2luaXRfZHluYW1pY19hcnJheSgmdGFibGVzNHJlcGFp ciwgc2l6ZW9mKGNoYXIpKihOQU1FX0xFTioyKzIpLDE2LDY0KSB8fAorICAgICAgIG15X2luaXRf ZHluYW1pY19hcnJheSgmdGFibGVzNHJlYnVpbGQsIHNpemVvZihjaGFyKSooTkFNRV9MRU4qMisy KSwxNiw2NCkpKQogICB7CiAgICAgZmlyc3RfZXJyb3IgPSAxOwogICAgIGdvdG8gZW5kOwpAQCAt ODk0LDcgKzkzMSw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgewogICAg IHVpbnQgaTsKIAotICAgIGlmICghb3B0X3NpbGVudCAmJiB0YWJsZXM0cmVwYWlyLmVsZW1lbnRz KQorICAgIGlmICghb3B0X3NpbGVudCAmJiAodGFibGVzNHJlcGFpci5lbGVtZW50cyB8fCB0YWJs ZXM0cmVidWlsZC5lbGVtZW50cykpCiAgICAgICBwdXRzKCJcblJlcGFpcmluZyB0YWJsZXMiKTsK ICAgICB3aGF0X3RvX2RvID0gRE9fUkVQQUlSOwogICAgIGZvciAoaSA9IDA7IGkgPCB0YWJsZXM0 cmVwYWlyLmVsZW1lbnRzIDsgaSsrKQpAQCAtOTAyLDExICs5MzksMTYgQEAgaW50IG1haW4oaW50 IGFyZ2MsIGNoYXIgKiphcmd2KQogICAgICAgY2hhciAqbmFtZT0gKGNoYXIqKSBkeW5hbWljX2Fy cmF5X3B0cigmdGFibGVzNHJlcGFpciwgaSk7CiAgICAgICBoYW5kbGVfcmVxdWVzdF9mb3JfdGFi bGVzKG5hbWUsIGZpeGVkX25hbWVfbGVuZ3RoKG5hbWUpKTsKICAgICB9CisgICAgZm9yIChpID0g MDsgaSA8IHRhYmxlczRyZWJ1aWxkLmVsZW1lbnRzIDsgaSsrKQorICAgICAgcmVidWlsZF90YWJs ZSgoY2hhciopIGR5bmFtaWNfYXJyYXlfcHRyKCZ0YWJsZXM0cmVidWlsZCwgaSkpOwogICB9CiAg ZW5kOgogICBkYkRpc2Nvbm5lY3QoY3VycmVudF9ob3N0KTsKICAgaWYgKG9wdF9hdXRvX3JlcGFp cikKKyAgewogICAgIGRlbGV0ZV9keW5hbWljKCZ0YWJsZXM0cmVwYWlyKTsKKyAgICBkZWxldGVf ZHluYW1pYygmdGFibGVzNHJlYnVpbGQpOworICB9CiAgIG15X2ZyZWUob3B0X3Bhc3N3b3JkKTsK ICNpZmRlZiBIQVZFX1NNRU0KICAgbXlfZnJlZShzaGFyZWRfbWVtb3J5X2Jhc2VfbmFtZSk7Cgo9 PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9yL215c3FsY2hlY2sucmVzdWx0JwotLS0gYS9t eXNxbC10ZXN0L3IvbXlzcWxjaGVjay5yZXN1bHQJMjAxMC0xMi0xNyAxMToxMTozNCArMDAwMAor KysgYi9teXNxbC10ZXN0L3IvbXlzcWxjaGVjay5yZXN1bHQJMjAxMS0wMy0wOCAwODo0MTo1NyAr MDAwMApAQCAtMTA5LDcgKzEwOSw3IEBAIG15c3FsLnRpbWVfem9uZV9uYW1lCiBteXNxbC50aW1l X3pvbmVfdHJhbnNpdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSBpcyBhbHJlYWR5 IHVwIHRvIGRhdGUKIG15c3FsLnRpbWVfem9uZV90cmFuc2l0aW9uX3R5cGUgICAgICAgICAgICAg ICAgICAgIFRhYmxlIGlzIGFscmVhZHkgdXAgdG8gZGF0ZQogbXlzcWwudXNlciAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFibGUgaXMgYWxyZWFkeSB1cCB0byBkYXRl Ci1jcmVhdGUgdGFibGUgdDEgKGEgaW50KTsKK2NyZWF0ZSB0YWJsZSB0MSAoYSBpbnQpIGVuZ2lu ZT1teWlzYW07CiBjcmVhdGUgdmlldyB2MSBhcyBzZWxlY3QgKiBmcm9tIHQxOwogdGVzdC50MSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0sKIHRlc3QudDEgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlIGlzIGFscmVhZHkg dXAgdG8gZGF0ZQpAQCAtMTE3LDE0ICsxMTcsMTQgQEAgdGVzdC50MQogdGVzdC50MSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFibGUgaXMgYWxyZWFkeSB1cCB0 byBkYXRlCiBkcm9wIHZpZXcgdjE7CiBkcm9wIHRhYmxlIHQxOwotY3JlYXRlIHRhYmxlIGB0YGAx YChhIGludCk7Ci1jcmVhdGUgdGFibGUgYHQgMWAoYSBpbnQpOworY3JlYXRlIHRhYmxlIGB0YGAx YChhIGludCkgZW5naW5lPW15aXNhbTsKK2NyZWF0ZSB0YWJsZSBgdCAxYChhIGludCkgZW5naW5l PW15aXNhbTsKIHRlc3QudCAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE9LCiB0ZXN0LnRgMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBPSwogZHJvcCB0YWJsZSBgdGBgMWAsIGB0IDFgOwogY3JlYXRlIGRhdGFiYXNlIGRfYnVnMjUz NDc7CiB1c2UgZF9idWcyNTM0NzsKLWNyZWF0ZSB0YWJsZSB0X2J1ZzI1MzQ3IChhIGludCk7Citj cmVhdGUgdGFibGUgdF9idWcyNTM0NyAoYSBpbnQpIGVuZ2luZT1teWlzYW07CiBjcmVhdGUgdmll dyB2X2J1ZzI1MzQ3IGFzIHNlbGVjdCAqIGZyb20gdF9idWcyNTM0NzsKIGluc2VydCBpbnRvIHRf YnVnMjUzNDcgdmFsdWVzICgxKSwoMiksKDMpOwogZmx1c2ggdGFibGVzOwpAQCAtMTY0LDE1ICsx NjQsMTUgQEAgVGFibGUJT3AJTXNnX3R5cGUJTXNnX3RleHQKIHRlc3QudjEJY2hlY2sJc3RhdHVz CU9LCiBpbmZvcm1hdGlvbl9zY2hlbWEucm91dGluZXMJY2hlY2sJbm90ZQlUaGUgc3RvcmFnZSBl bmdpbmUgZm9yIHRoZSB0YWJsZSBkb2Vzbid0IHN1cHBvcnQgY2hlY2sKIGRyb3AgdmlldyB2MTsK LUNSRUFURSBUQUJMRSB0MShhIElOVCk7Ci1DUkVBVEUgVEFCTEUgdDIoYSBJTlQpOworQ1JFQVRF IFRBQkxFIHQxKGEgSU5UKSBlbmdpbmU9bXlpc2FtOworQ1JFQVRFIFRBQkxFIHQyKGEgSU5UKSBl bmdpbmU9bXlpc2FtOwogdGVzdC50MQogRXJyb3IgICAgOiBJbmNvcnJlY3QgaW5mb3JtYXRpb24g aW4gZmlsZTogJy4vdGVzdC90MS5mcm0nCiBlcnJvciAgICA6IENvcnJ1cHQKIHRlc3QudDIgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9LCiBEUk9QIFRBQkxFIHQx LCB0MjsKIEVuZCBvZiA1LjAgdGVzdHMKLWNyZWF0ZSB0YWJsZSB0MShhIGludCk7CitjcmVhdGUg dGFibGUgdDEoYSBpbnQpIGVuZ2luZT1teWlzYW07CiBjcmVhdGUgdmlldyB2MSBhcyBzZWxlY3Qg KiBmcm9tIHQxOwogc2hvdyB0YWJsZXM7CiBUYWJsZXNfaW5fdGVzdApAQCAtMTkyLDcgKzE5Miw3 IEBAIHYtMQogZHJvcCB2aWV3IHYxLCBgdi0xYDsKIGRyb3AgdGFibGUgdDE7CiBTRVQgTkFNRVMg dXRmODsKLUNSRUFURSBUQUJMRSBgI215c3FsNTAjQGAgKGEgSU5UKTsKK0NSRUFURSBUQUJMRSBg I215c3FsNTAjQGAgKGEgSU5UKSBlbmdpbmU9bXlpc2FtOwogU0hPVyBUQUJMRVM7CiBUYWJsZXNf aW5fdGVzdAogI215c3FsNTAjQApAQCAtMjAzLDcgKzIwMyw3IEBAIFNIT1cgVEFCTEVTOwogVGFi bGVzX2luX3Rlc3QKIEAKIERST1AgVEFCTEUgYEBgOwotQ1JFQVRFIFRBQkxFIGDRj2AgKGEgSU5U KTsKK0NSRUFURSBUQUJMRSBg0Y9gIChhIElOVCkgZW5naW5lPW15aXNhbTsKIFNFVCBOQU1FUyBE RUZBVUxUOwogbXlzcWxjaGVjayAtLWRlZmF1bHQtY2hhcmFjdGVyLXNldD0ibGF0aW4xIiAtLWRh dGFiYXNlcyB0ZXN0CiB0ZXN0Lj8KQEAgLTIxNiw4ICsyMTYsOCBAQCBEUk9QIFRBQkxFIGDRj2A7 CiBTRVQgTkFNRVMgREVGQVVMVDsKIENSRUFURSBEQVRBQkFTRSBgI215c3FsNTAjYUBiYDsKIFVT RSBgI215c3FsNTAjYUBiYDsKLUNSRUFURSBUQUJMRSBgI215c3FsNTAjY0BkYCAoYSBJTlQpOwot Q1JFQVRFIFRBQkxFIHQxIChhIElOVCk7CitDUkVBVEUgVEFCTEUgYCNteXNxbDUwI2NAZGAgKGEg SU5UKSBlbmdpbmU9bXlpc2FtOworQ1JFQVRFIFRBQkxFIHQxIChhIElOVCkgZW5naW5lPW15aXNh bTsKIFNFTEVDVCAqIEZST00gSU5GT1JNQVRJT05fU0NIRU1BLlRSSUdHRVJTCiBXSEVSRSBUUklH R0VSX1NDSEVNQT0iI215c3FsNTAjYUBiIiBPUkRFUiBCWSB0cmlnZ2VyX25hbWU7CiBUUklHR0VS X0NBVEFMT0cJVFJJR0dFUl9TQ0hFTUEJVFJJR0dFUl9OQU1FCUVWRU5UX01BTklQVUxBVElPTglF VkVOVF9PQkpFQ1RfQ0FUQUxPRwlFVkVOVF9PQkpFQ1RfU0NIRU1BCUVWRU5UX09CSkVDVF9UQUJM RQlBQ1RJT05fT1JERVIJQUNUSU9OX0NPTkRJVElPTglBQ1RJT05fU1RBVEVNRU5UCUFDVElPTl9P UklFTlRBVElPTglBQ1RJT05fVElNSU5HCUFDVElPTl9SRUZFUkVOQ0VfT0xEX1RBQkxFCUFDVElP Tl9SRUZFUkVOQ0VfTkVXX1RBQkxFCUFDVElPTl9SRUZFUkVOQ0VfT0xEX1JPVwlBQ1RJT05fUkVG RVJFTkNFX05FV19ST1cJQ1JFQVRFRAlTUUxfTU9ERQlERUZJTkVSCUNIQVJBQ1RFUl9TRVRfQ0xJ RU5UCUNPTExBVElPTl9DT05ORUNUSU9OCURBVEFCQVNFX0NPTExBVElPTgpAQCAtMjQ2LDEyICsy NDYsMTIgQEAgVVNFIHRlc3Q7CiAjIEJ1ZyAjMzE4MjE6IC0tYWxsLWluLTEgYW5kIC0tZml4LXRh YmxlLW5hbWVzIGRvbid0IHdvcmsgdG9nZXRoZXIKICMKIGRyb3AgdGFibGUgaWYgZXhpc3RzIGAj bXlzcWw1MCN0MS0xYDsKLWNyZWF0ZSB0YWJsZSBgI215c3FsNTAjdDEtMWAgKGEgaW50KTsKK2Ny ZWF0ZSB0YWJsZSBgI215c3FsNTAjdDEtMWAgKGEgaW50KSBlbmdpbmU9bXlpc2FtOwogc2hvdyB0 YWJsZXMgbGlrZSAndDEtMSc7CiBUYWJsZXNfaW5fdGVzdCAodDEtMSkKIHQxLTEKIGRyb3AgdGFi bGUgYHQxLTFgOwotY3JlYXRlIHRhYmxlIGAjbXlzcWw1MCN0MS0xYCAoYSBpbnQpOworY3JlYXRl IHRhYmxlIGAjbXlzcWw1MCN0MS0xYCAoYSBpbnQpIGVuZ2luZT1teWlzYW07CiBzaG93IHRhYmxl cyBsaWtlICd0MS0xJzsKIFRhYmxlc19pbl90ZXN0ICh0MS0xKQogdDEtMQpAQCAtMjYwLDMgKzI2 MCw2NyBAQCBFbmQgb2YgNS4xIHRlc3RzCiAjCiAjIEJ1ZyAjMzUyNjk6IG15c3FsY2hlY2sgYmVo YXZlcyBkaWZmZXJlbnQgZGVwZW5kaW5nIG9uIG9yZGVyIG9mIHBhcmFtZXRlcnMKICMKKyMKKyMg QnVnIzExNzU1NDMxIDQ3MjA1OiBNQVAgJ1JFUEFJUiBUQUJMRScgVE8gUkVDUkVBVEUgK0FOQUxZ WkUgRk9SCisjICAgICAgICAgICAgICBFTkdJTkVTIE5PVCBTVVBQT1JUSU5HIE5BVElWRQorIwor RFJPUCBUQUJMRSBJRiBFWElTVFMgYnVnNDcyMDU7CisjCisjIFRlc3QgMTogQ2hlY2sgdGhhdCBB TFRFUiBUQUJMRSAuLi4gcmVidWlsZHMgdGhlIHRhYmxlCitDUkVBVEUgVEFCTEUgYnVnNDcyMDUo YSBWQVJDSEFSKDIwKSBQUklNQVJZIEtFWSkKK0RFRkFVTFQgQ0hBUkFDVEVSIFNFVCB1dGY4IENP TExBVEUgdXRmOF9nZW5lcmFsX2NpIGVuZ2luZT1pbm5vZGI7CitJTlNFUlQgSU5UTyBidWc0NzIw NSBWQUxVRVMgKCJmb29iYXIiKTsKK0ZMVVNIIFRBQkxFIGJ1ZzQ3MjA1OworIyBSZXBsYWNlIHRo ZSBGUk0gd2l0aCBhIDUuMCBGUk0gdGhhdCB3aWxsIHJlcXVpcmUgdXBncmFkZQorIyBTaG91bGQg aW5kaWNhdGUgdGhhdCBBTFRFUiBUQUJMRSAuLi4gRk9SQ0UgaXMgbmVlZGVkCitDSEVDSyBUQUJM RSBidWc0NzIwNSBGT1IgVVBHUkFERTsKK1RhYmxlCU9wCU1zZ190eXBlCU1zZ190ZXh0Cit0ZXN0 LmJ1ZzQ3MjA1CWNoZWNrCWVycm9yCVRhYmxlIHJlYnVpbGQgcmVxdWlyZWQuIFBsZWFzZSBkbyAi QUxURVIgVEFCTEUgYGJ1ZzQ3MjA1YCBGT1JDRSIgb3IgZHVtcC9yZWxvYWQgdG8gZml4IGl0IQor IyBBTFRFUiBUQUJMRSAuLi4gRk9SQ0Ugc2hvdWxkIHJlYnVpbGQgdGhlIHRhYmxlCisjIGFuZCB0 aGVyZWZvcmUgb3V0cHV0ICJhZmZlY3RlZCByb3dzOiAxIgorQUxURVIgVEFCTEUgYnVnNDcyMDUg Rk9SQ0U7CithZmZlY3RlZCByb3dzOiAxCitpbmZvOiBSZWNvcmRzOiAxICBEdXBsaWNhdGVzOiAw ICBXYXJuaW5nczogMAorIyBUYWJsZSBzaG91bGQgbm93IGJlIG9rCitDSEVDSyBUQUJMRSBidWc0 NzIwNSBGT1IgVVBHUkFERTsKK1RhYmxlCU9wCU1zZ190eXBlCU1zZ190ZXh0Cit0ZXN0LmJ1ZzQ3 MjA1CWNoZWNrCXN0YXR1cwlPSworRFJPUCBUQUJMRSBidWc0NzIwNTsKKyMKKyMgVGVzdCAyOiBJ bm5vREIgLSBSRVBBSVIgbm90IHN1cHBvcnRlZAorQ1JFQVRFIFRBQkxFIGJ1ZzQ3MjA1KGEgVkFS Q0hBUigyMCkgUFJJTUFSWSBLRVkpCitERUZBVUxUIENIQVJBQ1RFUiBTRVQgdXRmOCBDT0xMQVRF IHV0ZjhfZ2VuZXJhbF9jaSBlbmdpbmU9aW5ub2RiOworRkxVU0ggVEFCTEUgYnVnNDcyMDU7Cisj IFJlcGxhY2UgdGhlIEZSTSB3aXRoIGEgNS4wIEZSTSB0aGF0IHdpbGwgcmVxdWlyZSB1cGdyYWRl CisjIFNob3VsZCBpbmRpY2F0ZSB0aGF0IEFMVEVSIFRBQkxFIC4uIEZPUkNFIGlzIG5lZWRlZAor Q0hFQ0sgVEFCTEUgYnVnNDcyMDUgRk9SIFVQR1JBREU7CitUYWJsZQlPcAlNc2dfdHlwZQlNc2df dGV4dAordGVzdC5idWc0NzIwNQljaGVjawllcnJvcglUYWJsZSByZWJ1aWxkIHJlcXVpcmVkLiBQ bGVhc2UgZG8gIkFMVEVSIFRBQkxFIGBidWc0NzIwNWAgRk9SQ0UiIG9yIGR1bXAvcmVsb2FkIHRv IGZpeCBpdCEKKyMgUnVubmluZyBteXNxbGNoZWNrIHRvIGNoZWNrIGFuZCB1cGdyYWRlCit0ZXN0 LmJ1ZzQ3MjA1CitlcnJvciAgICA6IFRhYmxlIHJlYnVpbGQgcmVxdWlyZWQuIFBsZWFzZSBkbyAi QUxURVIgVEFCTEUgYGJ1ZzQ3MjA1YCBGT1JDRSIgb3IgZHVtcC9yZWxvYWQgdG8gZml4IGl0IQor CitSZXBhaXJpbmcgdGFibGVzCisjIFRhYmxlIHNob3VsZCBub3cgYmUgb2sKK0NIRUNLIFRBQkxF IGJ1ZzQ3MjA1IEZPUiBVUEdSQURFOworVGFibGUJT3AJTXNnX3R5cGUJTXNnX3RleHQKK3Rlc3Qu YnVnNDcyMDUJY2hlY2sJc3RhdHVzCU9LCitEUk9QIFRBQkxFIGJ1ZzQ3MjA1OworIworIyBUZXN0 IDM6IE15SVNBTSAtIFJFUEFJUiBzdXBwb3J0ZWQKKyMgVXNlIGFuIG9sZCBGUk0gdGhhdCB3aWxs IHJlcXVpcmUgdXBncmFkZQorIyBTaG91bGQgaW5kaWNhdGUgdGhhdCBSRVBBSVIgVEFCTEUgaXMg bmVlZGVkCitDSEVDSyBUQUJMRSBidWc0NzIwNSBGT1IgVVBHUkFERTsKK1RhYmxlCU9wCU1zZ190 eXBlCU1zZ190ZXh0Cit0ZXN0LmJ1ZzQ3MjA1CWNoZWNrCWVycm9yCVRhYmxlIHVwZ3JhZGUgcmVx dWlyZWQuIFBsZWFzZSBkbyAiUkVQQUlSIFRBQkxFIGBidWc0NzIwNWAiIG9yIGR1bXAvcmVsb2Fk IHRvIGZpeCBpdCEKKyMgUnVubmluZyBteXNxbGNoZWNrIHRvIGNoZWNrIGFuZCB1cGdyYWRlCit0 ZXN0LmJ1ZzQ3MjA1CitlcnJvciAgICA6IFRhYmxlIHVwZ3JhZGUgcmVxdWlyZWQuIFBsZWFzZSBk byAiUkVQQUlSIFRBQkxFIGBidWc0NzIwNWAiIG9yIGR1bXAvcmVsb2FkIHRvIGZpeCBpdCEKKwor UmVwYWlyaW5nIHRhYmxlcwordGVzdC5idWc0NzIwNSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgT0sKKyMgVGFibGUgc2hvdWxkIG5vdyBiZSBvaworQ0hFQ0sgVEFCTEUgYnVn NDcyMDUgRk9SIFVQR1JBREU7CitUYWJsZQlPcAlNc2dfdHlwZQlNc2dfdGV4dAordGVzdC5idWc0 NzIwNQljaGVjawlzdGF0dXMJT0sKK0RST1AgVEFCTEUgYnVnNDcyMDU7Cgo9PT0gYWRkZWQgZmls ZSAnbXlzcWwtdGVzdC9zdGRfZGF0YS9idWc0NzIwNS5mcm0nCkJpbmFyeSBmaWxlcyBhL215c3Fs LXRlc3Qvc3RkX2RhdGEvYnVnNDcyMDUuZnJtCTE5NzAtMDEtMDEgMDA6MDA6MDAgKzAwMDAgYW5k IGIvbXlzcWwtdGVzdC9zdGRfZGF0YS9idWc0NzIwNS5mcm0JMjAxMS0wMy0wOCAwODo0MTo1NyAr MDAwMCBkaWZmZXIKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3QvbXlzcWxjaGVjay50 ZXN0JwotLS0gYS9teXNxbC10ZXN0L3QvbXlzcWxjaGVjay50ZXN0CTIwMTAtMTAtMDggMDc6MDk6 NDcgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC90L215c3FsY2hlY2sudGVzdAkyMDExLTAzLTA4IDA4 OjQxOjU3ICswMDAwCkBAIC0yLDYgKzIsOCBAQAogIyBFbWJlZGRlZCBzZXJ2ZXIgZG9lc24ndCBz dXBwb3J0IGV4dGVybmFsIGNsaWVudHMKIC0tc291cmNlIGluY2x1ZGUvbm90X2VtYmVkZGVkLmlu YwogCistLXNvdXJjZSBpbmNsdWRlL2hhdmVfaW5ub2RiLmluYworCiAjIGNoZWNrIHRoYXQgQ1NW IGVuZ2luZSB3YXMgY29tcGlsZWQgaW4sIGFzIHRoZSByZXN1bHQgb2YgdGhlIHRlc3QKICMgZGVw ZW5kcyBvbiB0aGUgcHJlc2VuY2Ugb2YgdGhlIGxvZyB0YWJsZXMgKHdoaWNoIGFyZSBDU1YtYmFz ZWQpLgogLS1zb3VyY2UgaW5jbHVkZS9oYXZlX2Nzdi5pbmMKQEAgLTM0LDcgKzM2LDcgQEAgZHJv cCBkYXRhYmFzZSBpZiBleGlzdHMgY2xpZW50X3Rlc3RfZGI7CiAjCiAjIEJ1ZyAjMTY1MDI6IG15 c3FsY2hlY2sgdHJpZXMgdG8gY2hlY2sgdmlld3MKICMKLWNyZWF0ZSB0YWJsZSB0MSAoYSBpbnQp OworY3JlYXRlIHRhYmxlIHQxIChhIGludCkgZW5naW5lPW15aXNhbTsKIGNyZWF0ZSB2aWV3IHYx IGFzIHNlbGVjdCAqIGZyb20gdDE7CiAtLXJlcGxhY2VfcmVzdWx0ICdUYWJsZSBpcyBhbHJlYWR5 IHVwIHRvIGRhdGUnIE9LCiAtLWV4ZWMgJE1ZU1FMX0NIRUNLIC0tYW5hbHl6ZSAtLWRhdGFiYXNl cyB0ZXN0CkBAIC00OCw4ICs1MCw4IEBAIGRyb3AgdGFibGUgdDE7CiAjCiAjIEJ1ZyAjMzA2NTQ6 IG15c3FsY2hlY2sgZmFpbHMgZHVyaW5nIHVwZ3JhZGUgb2YgdGFibGVzIHdob3NlIG5hbWVzIGlu Y2x1ZGUgYmFja3RpY2tzCiAjCi1jcmVhdGUgdGFibGUgYHRgYDFgKGEgaW50KTsKLWNyZWF0ZSB0 YWJsZSBgdCAxYChhIGludCk7CitjcmVhdGUgdGFibGUgYHRgYDFgKGEgaW50KSBlbmdpbmU9bXlp c2FtOworY3JlYXRlIHRhYmxlIGB0IDFgKGEgaW50KSBlbmdpbmU9bXlpc2FtOwogLS1yZXBsYWNl X3Jlc3VsdCAnVGFibGUgaXMgYWxyZWFkeSB1cCB0byBkYXRlJyBPSwogLS1leGVjICRNWVNRTF9D SEVDSyAtLWRhdGFiYXNlcyB0ZXN0CiBkcm9wIHRhYmxlIGB0YGAxYCwgYHQgMWA7CkBAIC01OSw3 ICs2MSw3IEBAIGRyb3AgdGFibGUgYHRgYDFgLCBgdCAxYDsKICMKIGNyZWF0ZSBkYXRhYmFzZSBk X2J1ZzI1MzQ3OwogdXNlIGRfYnVnMjUzNDc7Ci1jcmVhdGUgdGFibGUgdF9idWcyNTM0NyAoYSBp bnQpOworY3JlYXRlIHRhYmxlIHRfYnVnMjUzNDcgKGEgaW50KSBlbmdpbmU9bXlpc2FtOwogY3Jl YXRlIHZpZXcgdl9idWcyNTM0NyBhcyBzZWxlY3QgKiBmcm9tIHRfYnVnMjUzNDc7CiBpbnNlcnQg aW50byB0X2J1ZzI1MzQ3IHZhbHVlcyAoMSksKDIpLCgzKTsKIGZsdXNoIHRhYmxlczsKQEAgLTkx LDggKzkzLDggQEAgZHJvcCB2aWV3IHYxOwogIyBCdWcjMzc1Mjc6IG15c3FsY2hlY2sgZmFpbHMg dG8gcmVwb3J0IGVudGlyZSBkYXRhYmFzZSAKICMgd2hlbiBmcm0gZmlsZSBjb3JydXB0aW9uCiAj Ci1DUkVBVEUgVEFCTEUgdDEoYSBJTlQpOwotQ1JFQVRFIFRBQkxFIHQyKGEgSU5UKTsKK0NSRUFU RSBUQUJMRSB0MShhIElOVCkgZW5naW5lPW15aXNhbTsKK0NSRUFURSBUQUJMRSB0MihhIElOVCkg ZW5naW5lPW15aXNhbTsKICMgYmFja3VwIHRoZW4gbnVsbCB0MS5mcm0KIC0tY29weV9maWxlICRN WVNRTERfREFUQURJUi90ZXN0L3QxLmZybSAkTVlTUUxEX0RBVEFESVIvdGVzdC90MS5mcm0uYmFr CiAtLXJlbW92ZV9maWxlICRNWVNRTERfREFUQURJUi90ZXN0L3QxLmZybQpAQCAtMTEyLDcgKzEx NCw3IEBAIERST1AgVEFCTEUgdDEsIHQyOwogIwogIyBCdWcgIzMwNjc5OiA1LjEgbmFtZSBlbmNv ZGluZyBub3QgcGVyZm9ybWVkIGZvciB2aWV3cyBkdXJpbmcgdXBncmFkZQogIwotY3JlYXRlIHRh YmxlIHQxKGEgaW50KTsKK2NyZWF0ZSB0YWJsZSB0MShhIGludCkgZW5naW5lPW15aXNhbTsKIGNy ZWF0ZSB2aWV3IHYxIGFzIHNlbGVjdCAqIGZyb20gdDE7CiBzaG93IHRhYmxlczsKIGxldCAkTVlT UUxEX0RBVEFESVI9IGBzZWxlY3QgQEBkYXRhZGlyYDsKQEAgLTEzMSw3ICsxMzMsNyBAQCBkcm9w IHRhYmxlIHQxOwogIyAgICAgICAgICAgICB0cmlnZ2VycwogIwogU0VUIE5BTUVTIHV0Zjg7Ci1D UkVBVEUgVEFCTEUgYCNteXNxbDUwI0BgIChhIElOVCk7CitDUkVBVEUgVEFCTEUgYCNteXNxbDUw I0BgIChhIElOVCkgZW5naW5lPW15aXNhbTsKIFNIT1cgVEFCTEVTOwogU0VUIE5BTUVTIERFRkFV TFQ7CiAtLWVjaG8gbXlzcWxjaGVjayAtLWZpeC10YWJsZS1uYW1lcyAtLWRhdGFiYXNlcyB0ZXN0 CkBAIC0xNDAsNyArMTQyLDcgQEAgU0VUIE5BTUVTIHV0Zjg7CiBTSE9XIFRBQkxFUzsKIERST1Ag VEFCTEUgYEBgOwogCi1DUkVBVEUgVEFCTEUgYNGPYCAoYSBJTlQpOworQ1JFQVRFIFRBQkxFIGDR j2AgKGEgSU5UKSBlbmdpbmU9bXlpc2FtOwogU0VUIE5BTUVTIERFRkFVTFQ7CiAtLWVjaG8gbXlz cWxjaGVjayAtLWRlZmF1bHQtY2hhcmFjdGVyLXNldD0ibGF0aW4xIiAtLWRhdGFiYXNlcyB0ZXN0 CiAjIEVycm9yIHJldHVybmVkIGRlcGVuZHMgb24gcGxhdGZvcm0sIHJlcGxhY2UgaXQgd2l0aCAi VGFibGUgZG9lc24ndCBleGlzdCIKQEAgLTE1NCw4ICsxNTYsOCBAQCBTRVQgTkFNRVMgREVGQVVM VDsKIAogQ1JFQVRFIERBVEFCQVNFIGAjbXlzcWw1MCNhQGJgOwogVVNFIGAjbXlzcWw1MCNhQGJg OwotQ1JFQVRFIFRBQkxFIGAjbXlzcWw1MCNjQGRgIChhIElOVCk7Ci1DUkVBVEUgVEFCTEUgdDEg KGEgSU5UKTsKK0NSRUFURSBUQUJMRSBgI215c3FsNTAjY0BkYCAoYSBJTlQpIGVuZ2luZT1teWlz YW07CitDUkVBVEUgVEFCTEUgdDEgKGEgSU5UKSBlbmdpbmU9bXlpc2FtOwogCiAjIENyZWF0ZSA1 LjAgbGlrZSB0cmlnZ2VycwogbGV0ICRNWVNRTFRFU1RfVkFSRElSPSBgc2VsZWN0IEBAZGF0YWRp cmA7CkBAIC0yMDcsMTIgKzIwOSwxMiBAQCBVU0UgdGVzdDsKIGRyb3AgdGFibGUgaWYgZXhpc3Rz IGAjbXlzcWw1MCN0MS0xYDsKIC0tZW5hYmxlX3dhcm5pbmdzCiAKLWNyZWF0ZSB0YWJsZSBgI215 c3FsNTAjdDEtMWAgKGEgaW50KTsKK2NyZWF0ZSB0YWJsZSBgI215c3FsNTAjdDEtMWAgKGEgaW50 KSBlbmdpbmU9bXlpc2FtOwogLS1leGVjICRNWVNRTF9DSEVDSyAtLWFsbC1pbi0xIC0tZml4LXRh YmxlLW5hbWVzIC0tZGF0YWJhc2VzIHRlc3QKIHNob3cgdGFibGVzIGxpa2UgJ3QxLTEnOwogZHJv cCB0YWJsZSBgdDEtMWA7CiAKLWNyZWF0ZSB0YWJsZSBgI215c3FsNTAjdDEtMWAgKGEgaW50KTsK K2NyZWF0ZSB0YWJsZSBgI215c3FsNTAjdDEtMWAgKGEgaW50KSBlbmdpbmU9bXlpc2FtOwogLS1l eGVjICRNWVNRTF9DSEVDSyAtLWFsbC1pbi0xIC0tZml4LXRhYmxlLW5hbWVzIHRlc3QgIiNteXNx bDUwI3QxLTEiCiBzaG93IHRhYmxlcyBsaWtlICd0MS0xJzsKIGRyb3AgdGFibGUgYHQxLTFgOwpA QCAtMjI5LDMgKzIzMSw4MyBAQCBkcm9wIHRhYmxlIGB0MS0xYDsKIC0tZXJyb3IgMQogLS1leGVj ICRNWVNRTF9DSEVDSyAtYW9jIHRlc3QgIiNteXNxbDUwI3QxLTEiCiAKKworLS1lY2hvICMKKy0t ZWNobyAjIEJ1ZyMxMTc1NTQzMSA0NzIwNTogTUFQICdSRVBBSVIgVEFCTEUnIFRPIFJFQ1JFQVRF ICtBTkFMWVpFIEZPUgorLS1lY2hvICMgICAgICAgICAgICAgIEVOR0lORVMgTk9UIFNVUFBPUlRJ TkcgTkFUSVZFCistLWVjaG8gIworCistLWRpc2FibGVfd2FybmluZ3MKK0RST1AgVEFCTEUgSUYg RVhJU1RTIGJ1ZzQ3MjA1OworLS1lbmFibGVfd2FybmluZ3MKKworLS1lY2hvICMKKy0tZWNobyAj IFRlc3QgMTogQ2hlY2sgdGhhdCBBTFRFUiBUQUJMRSAuLi4gcmVidWlsZHMgdGhlIHRhYmxlCisK K0NSRUFURSBUQUJMRSBidWc0NzIwNShhIFZBUkNIQVIoMjApIFBSSU1BUlkgS0VZKQorICBERUZB VUxUIENIQVJBQ1RFUiBTRVQgdXRmOCBDT0xMQVRFIHV0ZjhfZ2VuZXJhbF9jaSBlbmdpbmU9aW5u b2RiOworCitJTlNFUlQgSU5UTyBidWc0NzIwNSBWQUxVRVMgKCJmb29iYXIiKTsKK0ZMVVNIIFRB QkxFIGJ1ZzQ3MjA1OworCistLWVjaG8gIyBSZXBsYWNlIHRoZSBGUk0gd2l0aCBhIDUuMCBGUk0g dGhhdCB3aWxsIHJlcXVpcmUgdXBncmFkZQorbGV0ICRNWVNRTERfREFUQURJUj0gYHNlbGVjdCBA QGRhdGFkaXJgOworLS1yZW1vdmVfZmlsZSAkTVlTUUxEX0RBVEFESVIvdGVzdC9idWc0NzIwNS5m cm0KKy0tY29weV9maWxlIHN0ZF9kYXRhL2J1ZzQ3MjA1LmZybSAkTVlTUUxEX0RBVEFESVIvdGVz dC9idWc0NzIwNS5mcm0KKworLS1lY2hvICMgU2hvdWxkIGluZGljYXRlIHRoYXQgQUxURVIgVEFC TEUgLi4uIEZPUkNFIGlzIG5lZWRlZAorQ0hFQ0sgVEFCTEUgYnVnNDcyMDUgRk9SIFVQR1JBREU7 CisKKy0tZWNobyAjIEFMVEVSIFRBQkxFIC4uLiBGT1JDRSBzaG91bGQgcmVidWlsZCB0aGUgdGFi bGUKKy0tZWNobyAjIGFuZCB0aGVyZWZvcmUgb3V0cHV0ICJhZmZlY3RlZCByb3dzOiAxIgorLS1l bmFibGVfaW5mbworQUxURVIgVEFCTEUgYnVnNDcyMDUgRk9SQ0U7CistLWRpc2FibGVfaW5mbwor CistLWVjaG8gIyBUYWJsZSBzaG91bGQgbm93IGJlIG9rCitDSEVDSyBUQUJMRSBidWc0NzIwNSBG T1IgVVBHUkFERTsKKworRFJPUCBUQUJMRSBidWc0NzIwNTsKKworLS1lY2hvICMKKy0tZWNobyAj IFRlc3QgMjogSW5ub0RCIC0gUkVQQUlSIG5vdCBzdXBwb3J0ZWQKKworQ1JFQVRFIFRBQkxFIGJ1 ZzQ3MjA1KGEgVkFSQ0hBUigyMCkgUFJJTUFSWSBLRVkpCisgIERFRkFVTFQgQ0hBUkFDVEVSIFNF VCB1dGY4IENPTExBVEUgdXRmOF9nZW5lcmFsX2NpIGVuZ2luZT1pbm5vZGI7CisKK0ZMVVNIIFRB QkxFIGJ1ZzQ3MjA1OworCistLWVjaG8gIyBSZXBsYWNlIHRoZSBGUk0gd2l0aCBhIDUuMCBGUk0g dGhhdCB3aWxsIHJlcXVpcmUgdXBncmFkZQorbGV0ICRNWVNRTERfREFUQURJUj0gYHNlbGVjdCBA QGRhdGFkaXJgOworLS1yZW1vdmVfZmlsZSAkTVlTUUxEX0RBVEFESVIvdGVzdC9idWc0NzIwNS5m cm0KKy0tY29weV9maWxlIHN0ZF9kYXRhL2J1ZzQ3MjA1LmZybSAkTVlTUUxEX0RBVEFESVIvdGVz dC9idWc0NzIwNS5mcm0KKworLS1lY2hvICMgU2hvdWxkIGluZGljYXRlIHRoYXQgQUxURVIgVEFC TEUgLi4gRk9SQ0UgaXMgbmVlZGVkCitDSEVDSyBUQUJMRSBidWc0NzIwNSBGT1IgVVBHUkFERTsK KworLS1lY2hvICMgUnVubmluZyBteXNxbGNoZWNrIHRvIGNoZWNrIGFuZCB1cGdyYWRlCistLWV4 ZWMgJE1ZU1FMX0NIRUNLIC0tY2hlY2stdXBncmFkZSAtLWF1dG8tcmVwYWlyIHRlc3QKKworLS1l Y2hvICMgVGFibGUgc2hvdWxkIG5vdyBiZSBvaworQ0hFQ0sgVEFCTEUgYnVnNDcyMDUgRk9SIFVQ R1JBREU7CisKK0RST1AgVEFCTEUgYnVnNDcyMDU7CisKKy0tZWNobyAjCistLWVjaG8gIyBUZXN0 IDM6IE15SVNBTSAtIFJFUEFJUiBzdXBwb3J0ZWQKKworLS1lY2hvICMgVXNlIGFuIG9sZCBGUk0g dGhhdCB3aWxsIHJlcXVpcmUgdXBncmFkZQorLS1jb3B5X2ZpbGUgc3RkX2RhdGEvYnVnMzYwNTUu ZnJtICRNWVNRTERfREFUQURJUi90ZXN0L2J1ZzQ3MjA1LmZybQorLS1jb3B5X2ZpbGUgc3RkX2Rh dGEvYnVnMzYwNTUuTVlEICRNWVNRTERfREFUQURJUi90ZXN0L2J1ZzQ3MjA1Lk1ZRAorLS1jb3B5 X2ZpbGUgc3RkX2RhdGEvYnVnMzYwNTUuTVlJICRNWVNRTERfREFUQURJUi90ZXN0L2J1ZzQ3MjA1 Lk1ZSQorCistLWVjaG8gIyBTaG91bGQgaW5kaWNhdGUgdGhhdCBSRVBBSVIgVEFCTEUgaXMgbmVl ZGVkCitDSEVDSyBUQUJMRSBidWc0NzIwNSBGT1IgVVBHUkFERTsKKworLS1lY2hvICMgUnVubmlu ZyBteXNxbGNoZWNrIHRvIGNoZWNrIGFuZCB1cGdyYWRlCistLWV4ZWMgJE1ZU1FMX0NIRUNLIC0t Y2hlY2stdXBncmFkZSAtLWF1dG8tcmVwYWlyIHRlc3QKKworLS1lY2hvICMgVGFibGUgc2hvdWxk IG5vdyBiZSBvaworQ0hFQ0sgVEFCTEUgYnVnNDcyMDUgRk9SIFVQR1JBREU7CisKK0RST1AgVEFC TEUgYnVnNDcyMDU7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL2hhbmRsZXIuY2MnCi0tLSBhL3Nx bC9oYW5kbGVyLmNjCTIwMTEtMDMtMDEgMTQ6NDI6MzcgKzAwMDAKKysrIGIvc3FsL2hhbmRsZXIu Y2MJMjAxMS0wMy0wOCAwODo0MTo1NyArMDAwMApAQCAtMzIxNCw5ICszMjE0LDEzIEBAIGludCBo YW5kbGVyOjpoYV9yZXBhaXIoVEhEKiB0aGQsIEhBX0NIRUMKIAogICBtYXJrX3RyeF9yZWFkX3dy aXRlKCk7CiAKLSAgaWYgKChyZXN1bHQ9IHJlcGFpcih0aGQsIGNoZWNrX29wdCkpKQotICAgIHJl dHVybiByZXN1bHQ7Ci0gIHJldHVybiB1cGRhdGVfZnJtX3ZlcnNpb24odGFibGUpOworICByZXN1 bHQ9IHJlcGFpcih0aGQsIGNoZWNrX29wdCk7CisgIERCVUdfQVNTRVJUKHJlc3VsdCA9PSBIQV9B RE1JTl9OT1RfSU1QTEVNRU5URUQgfHwKKyAgICAgICAgICAgICAgaGFfdGFibGVfZmxhZ3MoKSAm IEhBX0NBTl9SRVBBSVIpOworCisgIGlmIChyZXN1bHQgPT0gSEFfQURNSU5fT0spCisgICAgcmVz dWx0PSB1cGRhdGVfZnJtX3ZlcnNpb24odGFibGUpOworICByZXR1cm4gcmVzdWx0OwogfQogCiAK Cj09PSBtb2RpZmllZCBmaWxlICdzcWwvaGFuZGxlci5oJwotLS0gYS9zcWwvaGFuZGxlci5oCTIw MTEtMDEtMjYgMTM6MjM6MjkgKzAwMDAKKysrIGIvc3FsL2hhbmRsZXIuaAkyMDExLTAzLTA4IDA4 OjQxOjU3ICswMDAwCkBAIC0xNTMsNiArMTUzLDEyIEBACiAgICAgb3JkZXJlZC4KICovCiAjZGVm aW5lIEhBX0RVUExJQ0FURV9LRVlfTk9UX0lOX09SREVSICAgIChMTCgxKSA8PCAzNikKKy8qCisg IEVuZ2luZSBzdXBwb3J0cyBSRVBBSVIgVEFCTEUuIFVzZWQgYnkgQ0hFQ0sgVEFCTEUgRk9SIFVQ R1JBREUgaWYgYW4KKyAgaW5jb21wYXRpYmxlIHRhYmxlIGlzIGRldGVjdGVkLiBJZiB0aGlzIGZs YWcgaXMgc2V0LCBDSEVDSyBUQUJMRSBGT1IgVVBHUkFERQorICB3aWxsIHJlcG9ydCBFUl9UQUJM RV9ORUVEU19VUEdSQURFLCBvdGhlcndpc2UgRVJfVEFCTEVfTkVFRF9SRUJVSUxELgorKi8KKyNk ZWZpbmUgSEFfQ0FOX1JFUEFJUiAgICAgICAgICAgICAgICAgICAgKExMKDEpIDw8IDM3KQogCiAv KgogICBTZXQgb2YgYWxsIGJpbmxvZyBmbGFncy4gQ3VycmVudGx5IG9ubHkgY29udGFpbiB0aGUg Y2FwYWJpbGl0aWVzCkBAIC0yMDEwLDcgKzIwMTYsMTAgQEAgcHJpdmF0ZToKICAgICAgdXBvbiB0 aGUgdGFibGUuCiAgICovCiAgIHZpcnR1YWwgaW50IHJlcGFpcihUSEQqIHRoZCwgSEFfQ0hFQ0tf T1BUKiBjaGVja19vcHQpCi0gIHsgcmV0dXJuIEhBX0FETUlOX05PVF9JTVBMRU1FTlRFRDsgfQor ICB7CisgICAgREJVR19BU1NFUlQoIShoYV90YWJsZV9mbGFncygpICYgSEFfQ0FOX1JFUEFJUikp OworICAgIHJldHVybiBIQV9BRE1JTl9OT1RfSU1QTEVNRU5URUQ7CisgIH0KICAgdmlydHVhbCB2 b2lkIHN0YXJ0X2J1bGtfaW5zZXJ0KGhhX3Jvd3Mgcm93cykge30KICAgdmlydHVhbCBpbnQgZW5k X2J1bGtfaW5zZXJ0KCkgeyByZXR1cm4gMDsgfQogICB2aXJ0dWFsIGludCBpbmRleF9yZWFkKHVj aGFyICogYnVmLCBjb25zdCB1Y2hhciAqIGtleSwgdWludCBrZXlfbGVuLAoKPT09IG1vZGlmaWVk IGZpbGUgJ3NxbC9zaGFyZS9lcnJtc2ctdXRmOC50eHQnCi0tLSBhL3NxbC9zaGFyZS9lcnJtc2ct dXRmOC50eHQJMjAxMS0wMi0yMSAxNTo0OTowMyArMDAwMAorKysgYi9zcWwvc2hhcmUvZXJybXNn LXV0ZjgudHh0CTIwMTEtMDMtMDggMDg6NDE6NTcgKzAwMDAKQEAgLTYzOTcsMyArNjM5Nyw4IEBA IEVSX1NUTVRfQ0FDSEVfRlVMTAogCiBFUl9NVUxUSV9VUERBVEVfS0VZX0NPTkZMSUNUCiAgIGVu ZyAiUHJpbWFyeSBrZXkvcGFydGl0aW9uIGtleSB1cGRhdGUgaXMgbm90IGFsbG93ZWQgc2luY2Ug dGhlIHRhYmxlIGlzIHVwZGF0ZWQgYm90aCBhcyAnJS0uMTkycycgYW5kICclLS4xOTJzJy4iCisK KyMgV2hlbiB0cmFuc2xhdGluZyB0aGlzIGVycm9yIG1lc3NhZ2UgbWFrZSBzdXJlIHRvIGluY2x1 ZGUgIkFMVEVSIFRBQkxFIiBpbiB0aGUKKyMgbWVzc2FnZSBhcyBteXNxbGNoZWNrIHBhcnNlcyB0 aGUgZXJyb3IgbWVzc2FnZSBsb29raW5nIGZvciBBTFRFUiBUQUJMRS4KK0VSX1RBQkxFX05FRURT X1JFQlVJTEQKKyAgICAgICAgZW5nICJUYWJsZSByZWJ1aWxkIHJlcXVpcmVkLiBQbGVhc2UgZG8g XCJBTFRFUiBUQUJMRSBgJS0uMzJzYCBGT1JDRVwiIG9yIGR1bXAvcmVsb2FkIHRvIGZpeCBpdCEi Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL3NxbF9hZG1pbi5jYycKLS0tIGEvc3FsL3NxbF9hZG1p bi5jYwkyMDExLTAxLTEwIDEzOjEyOjIzICswMDAwCisrKyBiL3NxbC9zcWxfYWRtaW4uY2MJMjAx MS0wMy0wOCAwODo0MTo1NyArMDAwMApAQCAtNzcxLDggKzc3MSwxMiBAQCBzZW5kX3Jlc3VsdF9t ZXNzYWdlOgogICAgICAgc2l6ZV90IGxlbmd0aDsKIAogICAgICAgcHJvdG9jb2wtPnN0b3JlKFNU UklOR19XSVRIX0xFTigiZXJyb3IiKSwgc3lzdGVtX2NoYXJzZXRfaW5mbyk7Ci0gICAgICBsZW5n dGg9bXlfc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgRVIoRVJfVEFCTEVfTkVFRFNfVVBHUkFE RSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgdGFibGUtPnRhYmxlX25hbWUpOworICAgICAg aWYgKHRhYmxlLT50YWJsZS0+ZmlsZS0+aGFfdGFibGVfZmxhZ3MoKSAmIEhBX0NBTl9SRVBBSVIp CisgICAgICAgIGxlbmd0aD0gbXlfc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgRVIoRVJfVEFC TEVfTkVFRFNfVVBHUkFERSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGUtPnRh YmxlX25hbWUpOworICAgICAgZWxzZQorICAgICAgICBsZW5ndGg9IG15X3NucHJpbnRmKGJ1Ziwg c2l6ZW9mKGJ1ZiksIEVSKEVSX1RBQkxFX05FRURTX1JFQlVJTEQpLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRhYmxlLT50YWJsZV9uYW1lKTsKICAgICAgIHByb3RvY29sLT5zdG9yZShi dWYsIGxlbmd0aCwgc3lzdGVtX2NoYXJzZXRfaW5mbyk7CiAgICAgICBmYXRhbF9lcnJvcj0xOwog ICAgICAgYnJlYWs7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL3NxbF9sZXguaCcKLS0tIGEvc3Fs L3NxbF9sZXguaAkyMDExLTAzLTAxIDE0OjQyOjM3ICswMDAwCisrKyBiL3NxbC9zcWxfbGV4LmgJ MjAxMS0wMy0wOCAwODo0MTo1NyArMDAwMApAQCAtOTQ0LDIwICs5NDQsMTkgQEAgaW5saW5lIGJv b2wgc3Rfc2VsZWN0X2xleF91bml0Ojppc191bmlvbgogI2RlZmluZSBBTFRFUl9DSEFOR0VfQ09M VU1OX0RFRkFVTFQgKDFMIDw8IDgpCiAjZGVmaW5lIEFMVEVSX0tFWVNfT05PRkYgICAgICAgICgx TCA8PCA5KQogI2RlZmluZSBBTFRFUl9DT05WRVJUICAgICAgICAgICAoMUwgPDwgMTApCi0jZGVm aW5lIEFMVEVSX0ZPUkNFCQkoMUwgPDwgMTEpCi0jZGVmaW5lIEFMVEVSX1JFQ1JFQVRFICAgICAg ICAgICgxTCA8PCAxMikKLSNkZWZpbmUgQUxURVJfQUREX1BBUlRJVElPTiAgICAgKDFMIDw8IDEz KQotI2RlZmluZSBBTFRFUl9EUk9QX1BBUlRJVElPTiAgICAoMUwgPDwgMTQpCi0jZGVmaW5lIEFM VEVSX0NPQUxFU0NFX1BBUlRJVElPTiAoMUwgPDwgMTUpCi0jZGVmaW5lIEFMVEVSX1JFT1JHQU5J WkVfUEFSVElUSU9OICgxTCA8PCAxNikgCi0jZGVmaW5lIEFMVEVSX1BBUlRJVElPTiAgICAgICAg ICAoMUwgPDwgMTcpCi0jZGVmaW5lIEFMVEVSX0FETUlOX1BBUlRJVElPTiAgICAoMUwgPDwgMTgp Ci0jZGVmaW5lIEFMVEVSX1RBQkxFX1JFT1JHICAgICAgICAoMUwgPDwgMTkpCi0jZGVmaW5lIEFM VEVSX1JFQlVJTERfUEFSVElUSU9OICAoMUwgPDwgMjApCi0jZGVmaW5lIEFMVEVSX0FMTF9QQVJU SVRJT04gICAgICAoMUwgPDwgMjEpCi0jZGVmaW5lIEFMVEVSX1JFTU9WRV9QQVJUSVRJT05JTkcg KDFMIDw8IDIyKQotI2RlZmluZSBBTFRFUl9GT1JFSUdOX0tFWSAgICAgICAgKDFMIDw8IDIzKQot I2RlZmluZSBBTFRFUl9UUlVOQ0FURV9QQVJUSVRJT04gKDFMIDw8IDI0KQorI2RlZmluZSBBTFRF Ul9SRUNSRUFURSAgICAgICAgICAoMUwgPDwgMTEpCisjZGVmaW5lIEFMVEVSX0FERF9QQVJUSVRJ T04gICAgICgxTCA8PCAxMikKKyNkZWZpbmUgQUxURVJfRFJPUF9QQVJUSVRJT04gICAgKDFMIDw8 IDEzKQorI2RlZmluZSBBTFRFUl9DT0FMRVNDRV9QQVJUSVRJT04gKDFMIDw8IDE0KQorI2RlZmlu ZSBBTFRFUl9SRU9SR0FOSVpFX1BBUlRJVElPTiAoMUwgPDwgMTUpCisjZGVmaW5lIEFMVEVSX1BB UlRJVElPTiAgICAgICAgICAoMUwgPDwgMTYpCisjZGVmaW5lIEFMVEVSX0FETUlOX1BBUlRJVElP TiAgICAoMUwgPDwgMTcpCisjZGVmaW5lIEFMVEVSX1RBQkxFX1JFT1JHICAgICAgICAoMUwgPDwg MTgpCisjZGVmaW5lIEFMVEVSX1JFQlVJTERfUEFSVElUSU9OICAoMUwgPDwgMTkpCisjZGVmaW5l IEFMVEVSX0FMTF9QQVJUSVRJT04gICAgICAoMUwgPDwgMjApCisjZGVmaW5lIEFMVEVSX1JFTU9W RV9QQVJUSVRJT05JTkcgKDFMIDw8IDIxKQorI2RlZmluZSBBTFRFUl9GT1JFSUdOX0tFWSAgICAg ICAgKDFMIDw8IDIyKQorI2RlZmluZSBBTFRFUl9UUlVOQ0FURV9QQVJUSVRJT04gKDFMIDw8IDIz KQogCiBlbnVtIGVudW1fYWx0ZXJfdGFibGVfY2hhbmdlX2xldmVsCiB7Cgo9PT0gbW9kaWZpZWQg ZmlsZSAnc3FsL3NxbF95YWNjLnl5JwotLS0gYS9zcWwvc3FsX3lhY2MueXkJMjAxMS0wMi0xNiAx NjoyNzozNSArMDAwMAorKysgYi9zcWwvc3FsX3lhY2MueXkJMjAxMS0wMy0wOCAwODo0MTo1NyAr MDAwMApAQCAtNjc0Nyw3ICs2NzQ3LDcgQEAgYWx0ZXJfbGlzdF9pdGVtOgogICAgICAgICAgIH0K ICAgICAgICAgfCBGT1JDRV9TWU0KICAgICAgICAgICB7Ci0gICAgICAgICAgICBMZXgtPmFsdGVy X2luZm8uZmxhZ3N8PSBBTFRFUl9GT1JDRTsKKyAgICAgICAgICAgIExleC0+YWx0ZXJfaW5mby5m bGFnc3w9IEFMVEVSX1JFQ1JFQVRFOwogICAgICAgICAgIH0KICAgICAgICAgfCBhbHRlcl9vcmRl cl9jbGF1c2UKICAgICAgICAgICB7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9hcmNoaXZl L2hhX2FyY2hpdmUuaCcKLS0tIGEvc3RvcmFnZS9hcmNoaXZlL2hhX2FyY2hpdmUuaAkyMDEwLTEw LTA2IDE0OjM0OjI4ICswMDAwCisrKyBiL3N0b3JhZ2UvYXJjaGl2ZS9oYV9hcmNoaXZlLmgJMjAx MS0wMy0wOCAwODo0MTo1NyArMDAwMApAQCAtOTAsNyArOTAsNyBAQCBwdWJsaWM6CiAgICAgcmV0 dXJuIChIQV9OT19UUkFOU0FDVElPTlMgfCBIQV9SRUNfTk9UX0lOX1NFUSB8IEhBX0NBTl9CSVRf RklFTEQgfAogICAgICAgICAgICAgSEFfQklOTE9HX1JPV19DQVBBQkxFIHwgSEFfQklOTE9HX1NU TVRfQ0FQQUJMRSB8CiAgICAgICAgICAgICBIQV9TVEFUU19SRUNPUkRTX0lTX0VYQUNUIHwKLSAg ICAgICAgICAgIEhBX0hBU19SRUNPUkRTIHwKKyAgICAgICAgICAgIEhBX0hBU19SRUNPUkRTIHwg SEFfQ0FOX1JFUEFJUiB8CiAgICAgICAgICAgICBIQV9GSUxFX0JBU0VEIHwgSEFfQ0FOX0lOU0VS VF9ERUxBWUVEIHwgSEFfQ0FOX0dFT01FVFJZKTsKICAgfQogICB1bG9uZyBpbmRleF9mbGFncyh1 aW50IGlkeCwgdWludCBwYXJ0LCBib29sIGFsbF9wYXJ0cykgY29uc3QKCj09PSBtb2RpZmllZCBm aWxlICdzdG9yYWdlL2Nzdi9oYV90aW5hLmgnCi0tLSBhL3N0b3JhZ2UvY3N2L2hhX3RpbmEuaAky MDEwLTA3LTA4IDIxOjIwOjA4ICswMDAwCisrKyBiL3N0b3JhZ2UvY3N2L2hhX3RpbmEuaAkyMDEx LTAzLTA4IDA4OjQxOjU3ICswMDAwCkBAIC0xMDYsNyArMTA2LDggQEAgcHVibGljOgogICB1bG9u Z2xvbmcgdGFibGVfZmxhZ3MoKSBjb25zdAogICB7CiAgICAgcmV0dXJuIChIQV9OT19UUkFOU0FD VElPTlMgfCBIQV9SRUNfTk9UX0lOX1NFUSB8IEhBX05PX0FVVE9fSU5DUkVNRU5UIHwKLSAgICAg ICAgICAgIEhBX0JJTkxPR19ST1dfQ0FQQUJMRSB8IEhBX0JJTkxPR19TVE1UX0NBUEFCTEUpOwor ICAgICAgICAgICAgSEFfQklOTE9HX1JPV19DQVBBQkxFIHwgSEFfQklOTE9HX1NUTVRfQ0FQQUJM RSB8CisgICAgICAgICAgICBIQV9DQU5fUkVQQUlSKTsKICAgfQogICB1bG9uZyBpbmRleF9mbGFn cyh1aW50IGlkeCwgdWludCBwYXJ0LCBib29sIGFsbF9wYXJ0cykgY29uc3QKICAgewoKPT09IG1v ZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvZmVkZXJhdGVkL2hhX2ZlZGVyYXRlZC5oJwotLS0gYS9zdG9y YWdlL2ZlZGVyYXRlZC9oYV9mZWRlcmF0ZWQuaAkyMDEwLTEwLTA2IDE0OjM0OjI4ICswMDAwCisr KyBiL3N0b3JhZ2UvZmVkZXJhdGVkL2hhX2ZlZGVyYXRlZC5oCTIwMTEtMDMtMDggMDg6NDE6NTcg KzAwMDAKQEAgLTE0OSw3ICsxNDksOCBAQCBwdWJsaWM6CiAgICAgICAgICAgICBIQV9CSU5MT0df Uk9XX0NBUEFCTEUgfCBIQV9CSU5MT0dfU1RNVF9DQVBBQkxFIHwKICAgICAgICAgICAgIEhBX05P X1BSRUZJWF9DSEFSX0tFWVMgfCBIQV9QUklNQVJZX0tFWV9SRVFVSVJFRF9GT1JfREVMRVRFIHwK ICAgICAgICAgICAgIEhBX05PX1RSQU5TQUNUSU9OUyAvKiB1bnRpbCBmaXhlZCBieSBXTCMyOTUy ICovIHwKLSAgICAgICAgICAgIEhBX1BBUlRJQUxfQ09MVU1OX1JFQUQgfCBIQV9OVUxMX0lOX0tF WSk7CisgICAgICAgICAgICBIQV9QQVJUSUFMX0NPTFVNTl9SRUFEIHwgSEFfTlVMTF9JTl9LRVkg fAorICAgICAgICAgICAgSEFfQ0FOX1JFUEFJUik7CiAgIH0KICAgLyoKICAgICBUaGlzIGlzIGEg Yml0bWFwIG9mIGZsYWdzIHRoYXQgc2F5cyBob3cgdGhlIHN0b3JhZ2UgZW5naW5lCgo9PT0gbW9k aWZpZWQgZmlsZSAnc3RvcmFnZS9teWlzYW0vaGFfbXlpc2FtLmNjJwotLS0gYS9zdG9yYWdlL215 aXNhbS9oYV9teWlzYW0uY2MJMjAxMS0wMS0xMSAwOTowNzozNyArMDAwMAorKysgYi9zdG9yYWdl L215aXNhbS9oYV9teWlzYW0uY2MJMjAxMS0wMy0wOCAwODo0MTo1NyArMDAwMApAQCAtNjM5LDcg KzYzOSw3IEBAIGhhX215aXNhbTo6aGFfbXlpc2FtKGhhbmRsZXJ0b24gKmh0b24sIFQKICAgICAg ICAgICAgICAgICAgIEhBX0RVUExJQ0FURV9QT1MgfCBIQV9DQU5fSU5ERVhfQkxPQlMgfCBIQV9B VVRPX1BBUlRfS0VZIHwKICAgICAgICAgICAgICAgICAgIEhBX0ZJTEVfQkFTRUQgfCBIQV9DQU5f R0VPTUVUUlkgfCBIQV9OT19UUkFOU0FDVElPTlMgfAogICAgICAgICAgICAgICAgICAgSEFfQ0FO X0lOU0VSVF9ERUxBWUVEIHwgSEFfQ0FOX0JJVF9GSUVMRCB8IEhBX0NBTl9SVFJFRUtFWVMgfAot ICAgICAgICAgICAgICAgICAgSEFfSEFTX1JFQ09SRFMgfCBIQV9TVEFUU19SRUNPUkRTX0lTX0VY QUNUKSwKKyAgICAgICAgICAgICAgICAgIEhBX0hBU19SRUNPUkRTIHwgSEFfU1RBVFNfUkVDT1JE U19JU19FWEFDVCB8IEhBX0NBTl9SRVBBSVIpLAogICAgY2FuX2VuYWJsZV9pbmRleGVzKDEpCiB7 fQogCgpObyBidW5kbGUgKHJlYXNvbjogdXNlbGVzcyBmb3IgcHVzaCBlbWFpbHMpLg==