From: Nirbhay Choubey Date: May 7 2011 1:42pm Subject: bzr commit into mysql-5.1 branch (nirbhay.choubey:3685) Bug#11760384 List-Archive: http://lists.mysql.com/commits/136880 X-Bug: 11760384 Message-Id: <201105071342.p47DgmWt001429@acsmt356.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1340689205==" --===============1340689205== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline I0F0IGZpbGU6Ly8vaG9tZS9uaXJiaGF5L1Byb2plY3QvbXlzcWwvcmVwby9idWdzL215c3FsLTUu MS41Mjc5Mi8gYmFzZWQgb24gcmV2aWQ6a2FyZW4ubGFuZ2ZvcmRAb3JhY2xlLmNvbS0yMDExMDUw NjA4MDMwMi1lbnRkNDFoMnpnMm5rOXJxCgogMzY4NSBOaXJiaGF5IENob3ViZXkJMjAxMS0wNS0w NwogICAgICBCVUcjMTE3NjAzODQgLSA1Mjc5MjogbXlzcWxkdW1wIGluIFhNTCBtb2RlIGRvZXMg bm90IGR1bXAKICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91dGluZXMuCiAgICAgIAogICAg ICBteXNxbGR1bXAgaW4geG1sIG1vZGUgZGlkIG5vdCBkdW1wIHJvdXRpbmVzLCBldmVudHMgb3IK ICAgICAgdHJpZ2dlcnMuCiAgICAgIAogICAgICBUaGlzIHBhdGNoIGZpeGVzIHRoaXMgaXNzdWUg YnkgZml4aW5nIHRoZSBpZiBjb25kaXRpb25zCiAgICAgIHRoYXQgZGlzYWxsb3dlZCB0aGUgZHVt cCBvZiBhYm92ZSBtZW50aW9uZWQgb2JqZWN0cyBpbgogICAgICB4bWwgbW9kZSwgYW5kIGFkZGVk IHRoZSByZXF1aXJlZCBjb2RlIHRvIGVuYWJsZSBkdW1wCiAgICAgIGluIHhtbCBmb3JtYXQuCiAg ICAgQCBjbGllbnQvbXlzcWxkdW1wLmMKICAgICAgICBCVUcjMTE3NjAzODQgLSA1Mjc5MjogbXlz cWxkdW1wIGluIFhNTCBtb2RlIGRvZXMgbm90IGR1bXAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcm91dGluZXMuCiAgICAgICAgCiAgICAgICAgRml4ZWQgc29tZSBpZiBjb25kaXRpb25z IHRvIGFsbG93IGV4ZWN1dGlvbiBvZiBkdW1wIG1ldGhvZHMKICAgICAgICBmb3IgeG1sIGFuZCBm dXJ0aGVyIGFkZGVkIHRoZSByZWxldmFudCBjb2RlIGF0IHBsYWNlcyB0byBwcm9kdWNlCiAgICAg ICAgdGhlIGR1bXAgaW4geG1sIGZvcm1hdC4KICAgICBAIG15c3FsLXRlc3Qvci9teXNxbGR1bXAu cmVzdWx0CiAgICAgICAgQWRkZWQgYSB0ZXN0IGNhc2UgZm9yIEJ1ZyMxMTc2MDM4NC4KICAgICBA IG15c3FsLXRlc3QvdC9teXNxbGR1bXAudGVzdAogICAgICAgIEFkZGVkIGEgdGVzdCBjYXNlIGZv ciBCdWcjMTE3NjAzODQuCgogICAgbW9kaWZpZWQ6CiAgICAgIGNsaWVudC9teXNxbGR1bXAuYwog ICAgICBteXNxbC10ZXN0L3IvbXlzcWxkdW1wLnJlc3VsdAogICAgICBteXNxbC10ZXN0L3QvbXlz cWxkdW1wLnRlc3QKPT09IG1vZGlmaWVkIGZpbGUgJ2NsaWVudC9teXNxbGR1bXAuYycKLS0tIGEv Y2xpZW50L215c3FsZHVtcC5jCTIwMTEtMDItMjEgMDc6MDc6MjQgKzAwMDAKKysrIGIvY2xpZW50 L215c3FsZHVtcC5jCTIwMTEtMDUtMDcgMTM6NDI6MjcgKzAwMDAKQEAgLTcyLDYgKzcyLDkgQEAK IC8qIFNpemUgb2YgYnVmZmVyIGZvciBkdW1wJ3Mgc2VsZWN0IHF1ZXJ5ICovCiAjZGVmaW5lIFFV RVJZX0xFTkdUSCAxNTM2CiAKKy8qIFNpemUgb2YgY29tbWVudCBidWZmZXIuICovCisjZGVmaW5l IENPTU1FTlRfTEVOR1RIIDIwNDgKKwogLyogaWdub3JlIHRhYmxlIGZsYWdzICovCiAjZGVmaW5l IElHTk9SRV9OT05FIDB4MDAgLyogbm8gaWdub3JlICovCiAjZGVmaW5lIElHTk9SRV9EQVRBIDB4 MDEgLyogZG9uJ3QgZHVtcCBkYXRhIGZvciB0aGlzIHRhYmxlICovCkBAIC05OCw3ICsxMDEsNyBA QCBzdGF0aWMgbXlfYm9vbCAgdmVyYm9zZT0gMCwgb3B0X25vX2NyZWF0CiAgICAgICAgICAgICAg ICAgb3B0X2NvbXBsZXRlX2luc2VydD0gMCwgb3B0X2Ryb3BfZGF0YWJhc2U9IDAsCiAgICAgICAg ICAgICAgICAgb3B0X3JlcGxhY2VfaW50bz0gMCwKICAgICAgICAgICAgICAgICBvcHRfZHVtcF90 cmlnZ2Vycz0gMCwgb3B0X3JvdXRpbmVzPTAsIG9wdF90el91dGM9MSwKLSAgICAgICAgICAgICAg ICBvcHRfZXZlbnRzPSAwLAorICAgICAgICAgICAgICAgIG9wdF9ldmVudHM9IDAsIG9wdF9jb21t ZW50c191c2VkPSAwLAogICAgICAgICAgICAgICAgIG9wdF9hbGx0c3Bjcz0wLCBvcHRfbm90c3Bj cz0gMDsKIHN0YXRpYyBteV9ib29sIGluc2VydF9wYXRfaW5pdGVkPSAwLCBkZWJ1Z19pbmZvX2Zs YWc9IDAsIGRlYnVnX2NoZWNrX2ZsYWc9IDA7CiBzdGF0aWMgdWxvbmcgb3B0X21heF9hbGxvd2Vk X3BhY2tldCwgb3B0X25ldF9idWZmZXJfbGVuZ3RoOwpAQCAtNTA1LDYgKzUwOCw4IEBAIHN0YXRp YyBpbnQgZHVtcF9hbGxfdGFibGVzcGFjZXMoKTsKIHN0YXRpYyBpbnQgZHVtcF90YWJsZXNwYWNl c19mb3JfdGFibGVzKGNoYXIgKmRiLCBjaGFyICoqdGFibGVfbmFtZXMsIGludCB0YWJsZXMpOwog c3RhdGljIGludCBkdW1wX3RhYmxlc3BhY2VzX2Zvcl9kYXRhYmFzZXMoY2hhcioqIGRhdGFiYXNl cyk7CiBzdGF0aWMgaW50IGR1bXBfdGFibGVzcGFjZXMoY2hhciogdHNfd2hlcmUpOworc3RhdGlj IHZvaWQgcHJpbnRfY29tbWVudChGSUxFICpzcWxfZmlsZSwgbXlfYm9vbCBpc19lcnJvciwgY29u c3QgY2hhciAqZm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4pOwogCiAjaW5j bHVkZSA8aGVscF9zdGFydC5oPgogCkBAIC02MDMsMTkgKzYwOCwxOSBAQCBzdGF0aWMgdm9pZCB3 cml0ZV9oZWFkZXIoRklMRSAqc3FsX2ZpbGUsCiAgIH0KICAgZWxzZSBpZiAoIW9wdF9jb21wYWN0 KQogICB7Ci0gICAgaWYgKG9wdF9jb21tZW50cykKLSAgICB7Ci0gICAgICBmcHJpbnRmKHNxbF9m aWxlLAotICAgICAgICAgICAgICAiLS0gTXlTUUwgZHVtcCAlcyAgRGlzdHJpYiAlcywgZm9yICVz ICglcylcbi0tXG4iLAotICAgICAgICAgICAgICBEVU1QX1ZFUlNJT04sIE1ZU1FMX1NFUlZFUl9W RVJTSU9OLCBTWVNURU1fVFlQRSwgTUFDSElORV9UWVBFKTsKLSAgICAgIGZwcmludGYoc3FsX2Zp bGUsICItLSBIb3N0OiAlcyAgICBEYXRhYmFzZTogJXNcbiIsCi0gICAgICAgICAgICAgIGN1cnJl bnRfaG9zdCA/IGN1cnJlbnRfaG9zdCA6ICJsb2NhbGhvc3QiLCBkYl9uYW1lID8gZGJfbmFtZSA6 Ci0gICAgICAgICAgICAgICIiKTsKLSAgICAgIGZwdXRzKCItLSAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIsCi0gICAgICAgICAgICBzcWxf ZmlsZSk7Ci0gICAgICBmcHJpbnRmKHNxbF9maWxlLCAiLS0gU2VydmVyIHZlcnNpb25cdCVzXG4i LAotICAgICAgICAgICAgICBteXNxbF9nZXRfc2VydmVyX2luZm8oJm15c3FsX2Nvbm5lY3Rpb24p KTsKLSAgICB9CisgICAgcHJpbnRfY29tbWVudChzcWxfZmlsZSwgMCwKKyAgICAgICAgICAgICAg ICAgICItLSBNeVNRTCBkdW1wICVzICBEaXN0cmliICVzLCBmb3IgJXMgKCVzKVxuLS1cbiIsCisg ICAgICAgICAgICAgICAgICBEVU1QX1ZFUlNJT04sIE1ZU1FMX1NFUlZFUl9WRVJTSU9OLCBTWVNU RU1fVFlQRSwKKyAgICAgICAgICAgICAgICAgIE1BQ0hJTkVfVFlQRSk7CisgICAgcHJpbnRfY29t bWVudChzcWxfZmlsZSwgMCwgIi0tIEhvc3Q6ICVzICAgIERhdGFiYXNlOiAlc1xuIiwKKyAgICAg ICAgICAgICAgICAgIGN1cnJlbnRfaG9zdCA/IGN1cnJlbnRfaG9zdCA6ICJsb2NhbGhvc3QiLAor ICAgICAgICAgICAgICAgICAgZGJfbmFtZSA/IGRiX25hbWUgOiAiIik7CisgICAgcHJpbnRfY29t bWVudChzcWxfZmlsZSwgMCwKKyAgICAgICAgICAgICAgICAgICItLSAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKKyAgICAgICAgICAgICAg ICAgKTsKKyAgICBwcmludF9jb21tZW50KHNxbF9maWxlLCAwLCAiLS0gU2VydmVyIHZlcnNpb25c dCVzXG4iLAorICAgICAgICAgICAgICAgICAgbXlzcWxfZ2V0X3NlcnZlcl9pbmZvKCZteXNxbF9j b25uZWN0aW9uKSk7CisKICAgICBpZiAob3B0X3NldF9jaGFyc2V0KQogICAgICAgZnByaW50Zihz cWxfZmlsZSwKICJcbi8qITQwMTAxIFNFVCBAT0xEX0NIQVJBQ1RFUl9TRVRfQ0xJRU5UPUBAQ0hB UkFDVEVSX1NFVF9DTElFTlQgKi87IgpAQCAtNjczLDE4ICs2NzgsMTYgQEAgc3RhdGljIHZvaWQg d3JpdGVfZm9vdGVyKEZJTEUgKnNxbF9maWxlKQogICAgIGZwcmludGYoc3FsX2ZpbGUsCiAgICAg ICAgICAgICAiLyohNDAxMTEgU0VUIFNRTF9OT1RFUz1AT0xEX1NRTF9OT1RFUyAqLztcbiIpOwog ICAgIGZwdXRzKCJcbiIsIHNxbF9maWxlKTsKLSAgICBpZiAob3B0X2NvbW1lbnRzKQorCisgICAg aWYgKG9wdF9kdW1wX2RhdGUpCiAgICAgewotICAgICAgaWYgKG9wdF9kdW1wX2RhdGUpCi0gICAg ICB7Ci0gICAgICAgIGNoYXIgdGltZV9zdHJbMjBdOwotICAgICAgICBnZXRfZGF0ZSh0aW1lX3N0 ciwgR0VUREFURV9EQVRFX1RJTUUsIDApOwotICAgICAgICBmcHJpbnRmKHNxbF9maWxlLCAiLS0g RHVtcCBjb21wbGV0ZWQgb24gJXNcbiIsCi0gICAgICAgICAgICAgICAgdGltZV9zdHIpOwotICAg ICAgfQotICAgICAgZWxzZQotICAgICAgICBmcHJpbnRmKHNxbF9maWxlLCAiLS0gRHVtcCBjb21w bGV0ZWRcbiIpOworICAgICAgY2hhciB0aW1lX3N0clsyMF07CisgICAgICBnZXRfZGF0ZSh0aW1l X3N0ciwgR0VUREFURV9EQVRFX1RJTUUsIDApOworICAgICAgcHJpbnRfY29tbWVudChzcWxfZmls ZSwgMCwgIi0tIER1bXAgY29tcGxldGVkIG9uICVzXG4iLCB0aW1lX3N0cik7CiAgICAgfQorICAg IGVsc2UKKyAgICAgIHByaW50X2NvbW1lbnQoc3FsX2ZpbGUsIDAsICItLSBEdW1wIGNvbXBsZXRl ZFxuIik7CisKICAgICBjaGVja19pbyhzcWxfZmlsZSk7CiAgIH0KIH0gLyogd3JpdGVfZm9vdGVy ICovCkBAIC03NjksNiArNzcyLDkgQEAgZ2V0X29uZV9vcHRpb24oaW50IG9wdGlkLCBjb25zdCBz dHJ1Y3QgbQogICAgIGV4dGVuZGVkX2luc2VydD0gb3B0X2Ryb3A9IG9wdF9sb2NrPQogICAgICAg b3B0X2Rpc2FibGVfa2V5cz0gb3B0X2F1dG9jb21taXQ9IG9wdF9jcmVhdGVfZGI9IDA7CiAgICAg YnJlYWs7CisgIGNhc2UgJ2knOgorICAgIG9wdF9jb21tZW50c191c2VkPSAxOworICAgIGJyZWFr OwogICBjYXNlICdJJzoKICAgY2FzZSAnPyc6CiAgICAgdXNhZ2UoKTsKQEAgLTc5NSwxMSArODAx LDEyIEBAIGdldF9vbmVfb3B0aW9uKGludCBvcHRpZCwgY29uc3Qgc3RydWN0IG0KICAgICAgIG9w dF9kaXNhYmxlX2tleXM9IGxvY2tfdGFibGVzPSBvcHRfc2V0X2NoYXJzZXQ9IDA7CiAgICAgYnJl YWs7CiAgIGNhc2UgKGludCkgT1BUX0NPTVBBQ1Q6Ci0gIGlmIChvcHRfY29tcGFjdCkKLSAgewot ICAgIG9wdF9jb21tZW50cz0gb3B0X2Ryb3A9IG9wdF9kaXNhYmxlX2tleXM9IG9wdF9sb2NrPSAw OwotICAgIG9wdF9zZXRfY2hhcnNldD0gMDsKLSAgfQorICAgIGlmIChvcHRfY29tcGFjdCkKKyAg ICB7CisgICAgICAgb3B0X2NvbW1lbnRzPSBvcHRfZHJvcD0gb3B0X2Rpc2FibGVfa2V5cz0gb3B0 X2xvY2s9IDA7CisgICAgICAgb3B0X3NldF9jaGFyc2V0PSAwOworICAgIH0KKyAgICBicmVhazsK ICAgY2FzZSAoaW50KSBPUFRfVEFCTEVTOgogICAgIG9wdF9kYXRhYmFzZXM9MDsKICAgICBicmVh azsKQEAgLTE2NjIsMTUgKzE2NjksMTcgQEAgc3RhdGljIGNoYXIgKnF1b3RlX2Zvcl9saWtlKGNv bnN0IGNoYXIgKgogCiAgIFNZTk9QU0lTCiAgICAgcHJpbnRfcXVvdGVkX3htbCgpCi0gICAgeG1s X2ZpbGUgICAgLSBvdXRwdXQgZmlsZQotICAgIHN0ciAgICAgICAgIC0gc3RyaW5nIHRvIHByaW50 Ci0gICAgbGVuICAgICAgICAgLSBpdHMgbGVuZ3RoCisgICAgeG1sX2ZpbGUgICAgICAgICAgLSBP dXRwdXQgZmlsZS4KKyAgICBzdHIgICAgICAgICAgICAgICAtIFN0cmluZyB0byBwcmludC4KKyAg ICBsZW4gICAgICAgICAgICAgICAtIEl0cyBsZW5ndGguCisgICAgaXNfYXR0cmlidXRlX25hbWUg LSBBIGNoZWNrIGZvciBhdHRyaWJ1dGUgbmFtZSBvciB2YWx1ZS4KIAogICBERVNDUklQVElPTgog ICAgIFF1b3RlICc8JyAnPicgJyYnICdcIicgY2hhcnMgYW5kIHByaW50IGEgc3RyaW5nIHRvIHRo ZSB4bWxfZmlsZS4KICovCiAKLXN0YXRpYyB2b2lkIHByaW50X3F1b3RlZF94bWwoRklMRSAqeG1s X2ZpbGUsIGNvbnN0IGNoYXIgKnN0ciwgdWxvbmcgbGVuKQorc3RhdGljIHZvaWQgcHJpbnRfcXVv dGVkX3htbChGSUxFICp4bWxfZmlsZSwgY29uc3QgY2hhciAqc3RyLCB1bG9uZyBsZW4sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG15X2Jvb2wgaXNfYXR0cmlidXRlX25hbWUpCiB7CiAg IGNvbnN0IGNoYXIgKmVuZDsKIApAQCAtMTY4OSw2ICsxNjk4LDEzIEBAIHN0YXRpYyB2b2lkIHBy aW50X3F1b3RlZF94bWwoRklMRSAqeG1sX2YKICAgICBjYXNlICdcIic6CiAgICAgICBmcHV0cygi JnF1b3Q7IiwgeG1sX2ZpbGUpOwogICAgICAgYnJlYWs7CisgICAgY2FzZSAnICc6CisgICAgICAv KiBBdHRyaWJ1dGUgbmFtZXMgY2Fubm90IGNvbnRhaW4gc3BhY2VzLiAqLworICAgICAgaWYgKGlz X2F0dHJpYnV0ZV9uYW1lKQorICAgICAgeworICAgICAgICBmcHV0cygiXyIsIHhtbF9maWxlKTsK KyAgICAgICAgYnJlYWs7CisgICAgICB9CiAgICAgZGVmYXVsdDoKICAgICAgIGZwdXRjKCpzdHIs IHhtbF9maWxlKTsKICAgICAgIGJyZWFrOwpAQCAtMTc0OSw3ICsxNzY1LDcgQEAgc3RhdGljIHZv aWQgcHJpbnRfeG1sX3RhZyhGSUxFICogeG1sX2ZpbAogICAgIGZwdXRzKGF0dHJpYnV0ZV9uYW1l LCB4bWxfZmlsZSk7ICAgIAogICAgIGZwdXRjKCdcIicsIHhtbF9maWxlKTsKICAgICAKLSAgICBw cmludF9xdW90ZWRfeG1sKHhtbF9maWxlLCBhdHRyaWJ1dGVfdmFsdWUsIHN0cmxlbihhdHRyaWJ1 dGVfdmFsdWUpKTsKKyAgICBwcmludF9xdW90ZWRfeG1sKHhtbF9maWxlLCBhdHRyaWJ1dGVfdmFs dWUsIHN0cmxlbihhdHRyaWJ1dGVfdmFsdWUpLCAwKTsKICAgICBmcHV0YygnXCInLCB4bWxfZmls ZSk7CiAKICAgICBhdHRyaWJ1dGVfbmFtZT0gdmFfYXJnKGFyZ19saXN0LCBjaGFyICopOwpAQCAt MTc4OSw3ICsxODA1LDcgQEAgc3RhdGljIHZvaWQgcHJpbnRfeG1sX251bGxfdGFnKEZJTEUgKiB4 bQogICBmcHV0cygiPCIsIHhtbF9maWxlKTsKICAgZnB1dHMoc3RhZ19hdHIsIHhtbF9maWxlKTsK ICAgZnB1dHMoIlwiIiwgeG1sX2ZpbGUpOwotICBwcmludF9xdW90ZWRfeG1sKHhtbF9maWxlLCBz dmFsLCBzdHJsZW4oc3ZhbCkpOworICBwcmludF9xdW90ZWRfeG1sKHhtbF9maWxlLCBzdmFsLCBz dHJsZW4oc3ZhbCksIDApOwogICBmcHV0cygiXCIgeHNpOm5pbD1cInRydWVcIiAvPiIsIHhtbF9m aWxlKTsKICAgZnB1dHMobGluZV9lbmQsIHhtbF9maWxlKTsKICAgY2hlY2tfaW8oeG1sX2ZpbGUp OwpAQCAtMTc5NywxNCArMTgxMyw1NSBAQCBzdGF0aWMgdm9pZCBwcmludF94bWxfbnVsbF90YWco RklMRSAqIHhtCiAKIAogLyoKKyAgUHJpbnQgeG1sIENEQVRBIHNlY3Rpb24uCisKKyAgU1lOT1BT SVMKKyAgICBwcmludF94bWxfY2RhdGEoKQorICAgIHhtbF9maWxlICAgIC0gb3V0cHV0IGZpbGUK KyAgICBzdHIgICAgICAgICAtIHN0cmluZyB0byBwcmludAorICAgIGxlbiAgICAgICAgIC0gbGVu Z3RoIG9mIHRoZSBzdHJpbmcKKworICBOT1RFCisgICAgVGhpcyBmdW5jdGlvbiBhbHNvIHRha2Vz IGNhcmUgb2YgdGhlIHByZXNlbmNlIG9mICdbWz4nCisgICAgc3RyaW5nIGluIHRoZSBzdHIuIElm IGZvdW5kLCB0aGUgQ0RBVEEgc2VjdGlvbiBpcyBicm9rZW4KKyAgICBpbnRvIHR3byBDREFUQSBz ZWN0aW9ucywgPCFbQ0RBVEFbXV1dXT4gYW5kIDwhW0NEQVRBWz5dXS4KKyovCisKK3N0YXRpYyB2 b2lkIHByaW50X3htbF9jZGF0YShGSUxFICp4bWxfZmlsZSwgY29uc3QgY2hhciAqc3RyLCB1bG9u ZyBsZW4pCit7CisgIGNvbnN0IGNoYXIgKmVuZDsKKworICBmcHV0cygiPCFbQ0RBVEFbXG4iLCB4 bWxfZmlsZSk7CisgIGZvciAoZW5kPSBzdHIgKyBsZW47IHN0ciAhPSBlbmQ7IHN0cisrKQorICB7 CisgICAgc3dpdGNoKCpzdHIpIHsKKyAgICBjYXNlICddJzoKKyAgICAgIGlmICgoKihzdHIgKyAx KSA9PSAnXScpICYmICgqKHN0ciArIDIpID09Jz4nKSkKKyAgICAgIHsKKyAgICAgICAgZnB1dHMo Il1dXV0+PCFbQ0RBVEFbPiIsIHhtbF9maWxlKTsKKyAgICAgICAgc3RyICs9IDI7CisgICAgICAg IGNvbnRpbnVlOworICAgICAgfQorICAgIGRlZmF1bHQ6CisgICAgICBmcHV0Yygqc3RyLCB4bWxf ZmlsZSk7CisgICAgICBicmVhazsKKyAgICB9CisgIH0KKyAgZnB1dHMoIlxuXV0+XG4iLCB4bWxf ZmlsZSk7CisgIGNoZWNrX2lvKHhtbF9maWxlKTsKK30KKworCisvKgogICBQcmludCB4bWwgdGFn IHdpdGggbWFueSBhdHRyaWJ1dGVzLgogCiAgIFNZTk9QU0lTCi0gICAgcHJpbnRfeG1sX3Jvdygp CisgICAgcHJpbl94bWxfcm93KCkKICAgICB4bWxfZmlsZSAgICAtIG91dHB1dCBmaWxlCiAgICAg cm93X25hbWUgICAgLSB4bWwgdGFnIG5hbWUKICAgICB0YWJsZVJlcyAgICAtIHF1ZXJ5IHJlc3Vs dAogICAgIHJvdyAgICAgICAgIC0gcmVzdWx0IHJvdworICAgIHN0cl9jcmVhdGUgIC0gY3JlYXRl IHN0YXRlbWVudCBoZWFkZXIgc3RyaW5nCiAKICAgREVTQ1JJUFRJT04KICAgICBQcmludCB0YWcg d2l0aCBtYW55IGF0dHJpYnV0ZSB0byB0aGUgeG1sX2ZpbGUuIEZvcm1hdCBpczoKQEAgLTE4MTQs OSArMTg3MSwxMyBAQCBzdGF0aWMgdm9pZCBwcmludF94bWxfbnVsbF90YWcoRklMRSAqIHhtCiAq LwogCiBzdGF0aWMgdm9pZCBwcmludF94bWxfcm93KEZJTEUgKnhtbF9maWxlLCBjb25zdCBjaGFy ICpyb3dfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgTVlTUUxfUkVTICp0YWJsZVJl cywgTVlTUUxfUk9XICpyb3cpCisgICAgICAgICAgICAgICAgICAgICAgICAgIE1ZU1FMX1JFUyAq dGFibGVSZXMsIE1ZU1FMX1JPVyAqcm93LAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBjaGFyICpzdHJfY3JlYXRlKQogewogICB1aW50IGk7CisgIG15X2Jvb2wgYm9keV9mb3VuZD0g MDsKKyAgY2hhciAqY3JlYXRlX3N0bXRfcHRyOworICB1bG9uZyBjcmVhdGVfc3RtdF9sZW49IDA7 CiAgIE1ZU1FMX0ZJRUxEICpmaWVsZDsKICAgdWxvbmcgKmxlbmd0aHM9IG15c3FsX2ZldGNoX2xl bmd0aHModGFibGVSZXMpOwogCkBAIC0xODI3LDIwICsxODg4LDExMCBAQCBzdGF0aWMgdm9pZCBw cmludF94bWxfcm93KEZJTEUgKnhtbF9maWxlCiAgIHsKICAgICBpZiAoKCpyb3cpW2ldKQogICAg IHsKLSAgICAgIGZwdXRjKCcgJywgeG1sX2ZpbGUpOwotICAgICAgcHJpbnRfcXVvdGVkX3htbCh4 bWxfZmlsZSwgZmllbGQtPm5hbWUsIGZpZWxkLT5uYW1lX2xlbmd0aCk7Ci0gICAgICBmcHV0cygi PVwiIiwgeG1sX2ZpbGUpOwotICAgICAgcHJpbnRfcXVvdGVkX3htbCh4bWxfZmlsZSwgKCpyb3cp W2ldLCBsZW5ndGhzW2ldKTsKLSAgICAgIGZwdXRjKCciJywgeG1sX2ZpbGUpOwotICAgICAgY2hl Y2tfaW8oeG1sX2ZpbGUpOworICAgICAgLyogRm9yICdjcmVhdGUnIHN0YXRlbWVudHMsIGR1bXAg dXNpbmcgQ0RBVEEuICovCisgICAgICBpZiAoKHN0cl9jcmVhdGUpICYmIChzdHJjbXAoc3RyX2Ny ZWF0ZSwgZmllbGQtPm5hbWUpID09IDApKQorICAgICAgeworICAgICAgICBjcmVhdGVfc3RtdF9w dHI9ICgqcm93KVtpXTsKKyAgICAgICAgY3JlYXRlX3N0bXRfbGVuPSBsZW5ndGhzW2ldOworICAg ICAgICBib2R5X2ZvdW5kPSAxOworICAgICAgfQorICAgICAgZWxzZQorICAgICAgeworICAgICAg ICBmcHV0YygnICcsIHhtbF9maWxlKTsKKyAgICAgICAgcHJpbnRfcXVvdGVkX3htbCh4bWxfZmls ZSwgZmllbGQtPm5hbWUsIGZpZWxkLT5uYW1lX2xlbmd0aCwgMSk7CisgICAgICAgIGZwdXRzKCI9 XCIiLCB4bWxfZmlsZSk7CisgICAgICAgIHByaW50X3F1b3RlZF94bWwoeG1sX2ZpbGUsICgqcm93 KVtpXSwgbGVuZ3Roc1tpXSwgMCk7CisgICAgICAgIGZwdXRjKCciJywgeG1sX2ZpbGUpOworICAg ICAgICBjaGVja19pbyh4bWxfZmlsZSk7CisgICAgICB9CiAgICAgfQogICB9Ci0gIGZwdXRzKCIg Lz5cbiIsIHhtbF9maWxlKTsKKworICBpZiAoY3JlYXRlX3N0bXRfbGVuKQorICB7CisgICAgREJV R19BU1NFUlQoYm9keV9mb3VuZCk7CisgICAgZnB1dHMoIj5cbiIsIHhtbF9maWxlKTsKKyAgICBw cmludF94bWxfY2RhdGEoeG1sX2ZpbGUsIGNyZWF0ZV9zdG10X3B0ciwgY3JlYXRlX3N0bXRfbGVu KTsKKyAgICBmcHJpbnRmKHhtbF9maWxlLCAiXHRcdDwvJXM+XG4iLCByb3dfbmFtZSk7CisgIH0K KyAgZWxzZQorICAgIGZwdXRzKCIgLz5cbiIsIHhtbF9maWxlKTsKKwogICBjaGVja19pbyh4bWxf ZmlsZSk7CiB9CiAKIAogLyoKKyAgUHJpbnQgeG1sIGNvbW1lbnRzLgorCisgIFNZTk9QU0lTCisg ICAgcHJpbnRfeG1sX2NvbW1lbnQoKQorICAgIHhtbF9maWxlICAgICAgIC0gb3V0cHV0IGZpbGUK KyAgICBsZW4gICAgICAgICAgICAtIGxlbmd0aCBvZiBjb21tZW50IG1lc3NhZ2UKKyAgICBjb21t ZW50X3N0cmluZyAtIGNvbW1lbnQgbWVzc2FnZQorCisgIERFU0NSSVBUSU9OCisgICAgUHJpbnQg dGhlIGNvbW1lbnQgbWVzc2FnZSBpbiB0aGUgZm9ybWF0OgorICAgICAgIjwhLS0gXG4gY29tbWVu dCBzdHJpbmcgIFxuIC0tPlxuIgorICBOT1RFCisgICAgQW55IG9jY3VycmVuY2Ugb2YgY29udGlu dW91cyBoeXBoZW5zIHdpbGwgYmUKKyAgICBzcXVlZXplZCB0byBhIHNpbmdsZSBoeXBoZW4uCisq LworCitzdGF0aWMgdm9pZCBwcmludF94bWxfY29tbWVudChGSUxFICp4bWxfZmlsZSwgdWxvbmcg bGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqY29tbWVudF9z dHJpbmcpCit7CisgIGNvbnN0IGNoYXIqIGVuZDsKKworICBmcHV0cygiPCEtLSAiLCB4bWxfZmls ZSk7CisKKyAgZm9yIChlbmQ9IGNvbW1lbnRfc3RyaW5nICsgbGVuOyBjb21tZW50X3N0cmluZyAh PSBlbmQ7IGNvbW1lbnRfc3RyaW5nKyspCisgIHsKKyAgICAvKgorICAgICAgVGhlIHN0cmluZyAi LS0iIChkb3VibGUtaHlwaGVuKSBNVVNUIE5PVCBvY2N1ciB3aXRoaW4geG1sIGNvbW1lbnRzLgor ICAgICovCisgICAgc3dpdGNoICgqY29tbWVudF9zdHJpbmcpIHsKKyAgICBjYXNlICctJzoKKyAg ICAgIGlmICgqKGNvbW1lbnRfc3RyaW5nICsgMSkgPT0gJy0nKSAgICAgICAgIC8qIERpc2NhcmQg ZG91YmxlIGh5cGhlbnMuICovCisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICBm cHV0YygqY29tbWVudF9zdHJpbmcsIHhtbF9maWxlKTsKKyAgICAgIGJyZWFrOworICAgIH0KKyAg fQorICBmcHV0cygiIC0tPlxuIiwgeG1sX2ZpbGUpOworICBjaGVja19pbyh4bWxfZmlsZSk7Cit9 CisKKworCisvKiBBIGNvbW1vbiBwcmludGluZyBmdW5jdGlvbiBmb3IgeG1sIGFuZCBub24teG1s IG1vZGVzLiAqLworCitzdGF0aWMgdm9pZCBwcmludF9jb21tZW50KEZJTEUgKnNxbF9maWxlLCBt eV9ib29sIGlzX2Vycm9yLCBjb25zdCBjaGFyICpmb3JtYXQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgIC4uLikKK3sKKyAgc3RhdGljIGNoYXIgY29tbWVudF9idWZmW0NPTU1FTlRfTEVOR1RI XTsKKyAgdmFfbGlzdCBhcmdzOworICB2YV9zdGFydChhcmdzLCBmb3JtYXQpOworICBteV92c25w cmludGYoY29tbWVudF9idWZmLCBDT01NRU5UX0xFTkdUSCwgZm9ybWF0LCBhcmdzKTsKKyAgdmFf ZW5kKGFyZ3MpOworCisgIC8qIElmIGl0cyBhbiBlcnJvciBtZXNzYWdlLCBwcmludCBpdCBpZ25v cmluZyBvcHRfY29tbWVudHMuICovCisgIGlmICghaXNfZXJyb3IgJiYgIW9wdF9jb21tZW50cykK KyAgICByZXR1cm47CisKKyAgaWYgKCFvcHRfeG1sKQorICB7CisgICAgZnB1dHMoY29tbWVudF9i dWZmLCBzcWxfZmlsZSk7CisgICAgY2hlY2tfaW8oc3FsX2ZpbGUpOworICAgIHJldHVybjsKKyAg fQorCisgIHByaW50X3htbF9jb21tZW50KHNxbF9maWxlLCBzdHJsZW4oY29tbWVudF9idWZmKSwg Y29tbWVudF9idWZmKTsKK30KKworCisvKgogIGNyZWF0ZV9kZWxpbWl0ZXIKICBHZW5lcmF0ZSBh IG5ldyAobnVsbC10ZXJtaW5hdGVkKSBzdHJpbmcgdGhhdCBkb2VzIG5vdCBleGlzdCBpbiAgcXVl cnkgCiAgYW5kIGlzIHRoZXJlZm9yZSBzdWl0YWJsZSBmb3IgdXNlIGFzIGEgcXVlcnkgZGVsaW1p dGVyLiAgU3RvcmUgdGhpcwpAQCAtMTkwNiw4ICsyMDU3LDggQEAgc3RhdGljIHVpbnQgZHVtcF9l dmVudHNfZm9yX2RiKGNoYXIgKmRiKQogICBteXNxbF9yZWFsX2VzY2FwZV9zdHJpbmcobXlzcWws IGRiX25hbWVfYnVmZiwgZGIsIHN0cmxlbihkYikpOwogCiAgIC8qIG5pY2UgY29tbWVudHMgKi8K LSAgaWYgKG9wdF9jb21tZW50cykKLSAgICBmcHJpbnRmKHNxbF9maWxlLCAiXG4tLVxuLS0gRHVt cGluZyBldmVudHMgZm9yIGRhdGFiYXNlICclcydcbi0tXG4iLCBkYik7CisgIHByaW50X2NvbW1l bnQoc3FsX2ZpbGUsIDAsCisgICAgICAgICAgICAgICAgIlxuLS1cbi0tIER1bXBpbmcgZXZlbnRz IGZvciBkYXRhYmFzZSAnJXMnXG4tLVxuIiwgZGIpOwogCiAgIC8qCiAgICAgbm90IHVzaW5nICJt eXNxbF9xdWVyeV93aXRoX2Vycm9yX3JlcG9ydCIgYmVjYXVzZSB3ZSBtYXkgaGF2ZSBub3QKQEAg LTE5MjIsMTIgKzIwNzMsMTcgQEAgc3RhdGljIHVpbnQgZHVtcF9ldmVudHNfZm9yX2RiKGNoYXIg KmRiKQogICBzdHJjcHkoZGVsaW1pdGVyLCAiOyIpOwogICBpZiAobXlzcWxfbnVtX3Jvd3MoZXZl bnRfbGlzdF9yZXMpID4gMCkKICAgewotICAgIGZwcmludGYoc3FsX2ZpbGUsICIvKiE1MDEwNiBT RVQgQHNhdmVfdGltZV96b25lPSBAQFRJTUVfWk9ORSAqLyA7XG4iKTsKKyAgICBpZiAob3B0X3ht bCkKKyAgICAgIGZwdXRzKCJcdDxldmVudHM+XG4iLCBzcWxfZmlsZSk7CisgICAgZWxzZQorICAg IHsKKyAgICAgIGZwcmludGYoc3FsX2ZpbGUsICIvKiE1MDEwNiBTRVQgQHNhdmVfdGltZV96b25l PSBAQFRJTUVfWk9ORSAqLyA7XG4iKTsKIAotICAgIC8qIEdldCBkYXRhYmFzZSBjb2xsYXRpb24u ICovCisgICAgICAvKiBHZXQgZGF0YWJhc2UgY29sbGF0aW9uLiAqLwogCi0gICAgaWYgKGZldGNo X2RiX2NvbGxhdGlvbihkYl9uYW1lX2J1ZmYsIGRiX2NsX25hbWUsIHNpemVvZiAoZGJfY2xfbmFt ZSkpKQotICAgICAgREJVR19SRVRVUk4oMSk7CisgICAgICBpZiAoZmV0Y2hfZGJfY29sbGF0aW9u KGRiX25hbWVfYnVmZiwgZGJfY2xfbmFtZSwgc2l6ZW9mIChkYl9jbF9uYW1lKSkpCisgICAgICAg IERCVUdfUkVUVVJOKDEpOworICAgIH0KIAogICAgIGlmIChzd2l0Y2hfY2hhcmFjdGVyX3NldF9y ZXN1bHRzKG15c3FsLCAiYmluYXJ5IikpCiAgICAgICBEQlVHX1JFVFVSTigxKTsKQEAgLTE5NDQs NiArMjEwMCwxMyBAQCBzdGF0aWMgdWludCBkdW1wX2V2ZW50c19mb3JfZGIoY2hhciAqZGIpCiAK ICAgICAgIHdoaWxlICgocm93PSBteXNxbF9mZXRjaF9yb3coZXZlbnRfcmVzKSkgIT0gTlVMTCkK ICAgICAgIHsKKyAgICAgICAgaWYgKG9wdF94bWwpCisgICAgICAgIHsKKyAgICAgICAgICBwcmlu dF94bWxfcm93KHNxbF9maWxlLCAiZXZlbnQiLCBldmVudF9yZXMsICZyb3csCisgICAgICAgICAg ICAgICAgICAgICAgICAiQ3JlYXRlIEV2ZW50Iik7CisgICAgICAgICAgY29udGludWU7CisgICAg ICAgIH0KKwogICAgICAgICAvKgogICAgICAgICAgIGlmIHRoZSB1c2VyIGhhcyBFWEVDVVRFIHBy aXZpbGVnZSBoZSBjYW4gc2VlIGV2ZW50IG5hbWVzLCBidXQgbm90IHRoZQogICAgICAgICAgIGV2 ZW50IGJvZHkhCkBAIC0yMDIyLDggKzIxODUsMTYgQEAgc3RhdGljIHVpbnQgZHVtcF9ldmVudHNf Zm9yX2RiKGNoYXIgKmRiKQogICAgICAgbXlzcWxfZnJlZV9yZXN1bHQoZXZlbnRfcmVzKTsKIAog ICAgIH0gLyogZW5kIG9mIGxpc3Qgb2YgZXZlbnRzICovCi0gICAgZnByaW50ZihzcWxfZmlsZSwg IkRFTElNSVRFUiA7XG4iKTsKLSAgICBmcHJpbnRmKHNxbF9maWxlLCAiLyohNTAxMDYgU0VUIFRJ TUVfWk9ORT0gQHNhdmVfdGltZV96b25lICovIDtcbiIpOworICAgIGlmIChvcHRfeG1sKQorICAg IHsKKyAgICAgIGZwdXRzKCJcdDwvZXZlbnRzPlxuIiwgc3FsX2ZpbGUpOworICAgICAgY2hlY2tf aW8oc3FsX2ZpbGUpOworICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgZnByaW50ZihzcWxf ZmlsZSwgIkRFTElNSVRFUiA7XG4iKTsKKyAgICAgIGZwcmludGYoc3FsX2ZpbGUsICIvKiE1MDEw NiBTRVQgVElNRV9aT05FPSBAc2F2ZV90aW1lX3pvbmUgKi8gO1xuIik7CisgICAgfQogCiAgICAg aWYgKHN3aXRjaF9jaGFyYWN0ZXJfc2V0X3Jlc3VsdHMobXlzcWwsIGRlZmF1bHRfY2hhcnNldCkp CiAgICAgICBEQlVHX1JFVFVSTigxKTsKQEAgLTIwNzcsNiArMjI0OCw3IEBAIHN0YXRpYyB1aW50 IGR1bXBfcm91dGluZXNfZm9yX2RiKGNoYXIgKmQKICAgY29uc3QgY2hhciAqcm91dGluZV90eXBl W109IHsiRlVOQ1RJT04iLCAiUFJPQ0VEVVJFIn07CiAgIGNoYXIgICAgICAgZGJfbmFtZV9idWZm W05BTUVfTEVOKjIrM10sIG5hbWVfYnVmZltOQU1FX0xFTioyKzNdOwogICBjaGFyICAgICAgICpy b3V0aW5lX25hbWU7CisgIGNoYXIgICAgICAgKnF1ZXJ5X3N0cjsKICAgaW50ICAgICAgICBpOwog ICBGSUxFICAgICAgICpzcWxfZmlsZT0gbWRfcmVzdWx0X2ZpbGU7CiAgIE1ZU1FMX1JFUyAgKnJv dXRpbmVfcmVzLCAqcm91dGluZV9saXN0X3JlczsKQEAgLTIwOTEsOCArMjI2Myw4IEBAIHN0YXRp YyB1aW50IGR1bXBfcm91dGluZXNfZm9yX2RiKGNoYXIgKmQKICAgbXlzcWxfcmVhbF9lc2NhcGVf c3RyaW5nKG15c3FsLCBkYl9uYW1lX2J1ZmYsIGRiLCBzdHJsZW4oZGIpKTsKIAogICAvKiBuaWNl IGNvbW1lbnRzICovCi0gIGlmIChvcHRfY29tbWVudHMpCi0gICAgZnByaW50ZihzcWxfZmlsZSwg IlxuLS1cbi0tIER1bXBpbmcgcm91dGluZXMgZm9yIGRhdGFiYXNlICclcydcbi0tXG4iLCBkYik7 CisgIHByaW50X2NvbW1lbnQoc3FsX2ZpbGUsIDAsCisgICAgICAgICAgICAgICAgIlxuLS1cbi0t IER1bXBpbmcgcm91dGluZXMgZm9yIGRhdGFiYXNlICclcydcbi0tXG4iLCBkYik7CiAKICAgLyoK ICAgICBub3QgdXNpbmcgIm15c3FsX3F1ZXJ5X3dpdGhfZXJyb3JfcmVwb3J0IiBiZWNhdXNlIHdl IG1heSBoYXZlIG5vdApAQCAtMjEwOSw2ICsyMjgxLDkgQEAgc3RhdGljIHVpbnQgZHVtcF9yb3V0 aW5lc19mb3JfZGIoY2hhciAqZAogICBpZiAoc3dpdGNoX2NoYXJhY3Rlcl9zZXRfcmVzdWx0cyht eXNxbCwgImJpbmFyeSIpKQogICAgIERCVUdfUkVUVVJOKDEpOwogCisgIGlmIChvcHRfeG1sKQor ICAgIGZwdXRzKCJcdDxyb3V0aW5lcz5cbiIsIHNxbF9maWxlKTsKKwogICAvKiAwLCByZXRyaWV2 ZSBhbmQgZHVtcCBmdW5jdGlvbnMsIDEsIHByb2NlZHVyZXMgKi8KICAgZm9yIChpPSAwOyBpIDw9 IDE7IGkrKykKICAgewpAQCAtMjE0NCwxMyArMjMxOSwyNSBAQCBzdGF0aWMgdWludCBkdW1wX3Jv dXRpbmVzX2Zvcl9kYihjaGFyICpkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd1sy XSA/IChpbnQpIHN0cmxlbihyb3dbMl0pIDogMCkpOwogICAgICAgICAgIGlmIChyb3dbMl0gPT0g TlVMTCkKICAgICAgICAgICB7Ci0gICAgICAgICAgICBmcHJpbnRmKHNxbF9maWxlLCAiXG4tLSBp bnN1ZmZpY2llbnQgcHJpdmlsZWdlcyB0byAlc1xuIiwgcXVlcnlfYnVmZik7Ci0gICAgICAgICAg ICBmcHJpbnRmKHNxbF9maWxlLCAiLS0gZG9lcyAlcyBoYXZlIHBlcm1pc3Npb25zIG9uIG15c3Fs LnByb2M/XG5cbiIsIGN1cnJlbnRfdXNlcik7CisgICAgICAgICAgICBwcmludF9jb21tZW50KHNx bF9maWxlLCAxLCAiXG4tLSBpbnN1ZmZpY2llbnQgcHJpdmlsZWdlcyB0byAlc1xuIiwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgcXVlcnlfYnVmZik7CisgICAgICAgICAgICBwcmludF9jb21t ZW50KHNxbF9maWxlLCAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiLS0gZG9lcyAlcyBo YXZlIHBlcm1pc3Npb25zIG9uIG15c3FsLnByb2M/XG5cbiIsCisgICAgICAgICAgICAgICAgICAg ICAgICAgIGN1cnJlbnRfdXNlcik7CiAgICAgICAgICAgICBtYXliZV9kaWUoRVhfTVlTUUxFUlIs IiVzIGhhcyBpbnN1ZmZpY2VudCBwcml2aWxlZ2VzIHRvICVzISIsIGN1cnJlbnRfdXNlciwgcXVl cnlfYnVmZik7CiAgICAgICAgICAgfQogICAgICAgICAgIGVsc2UgaWYgKHN0cmxlbihyb3dbMl0p KQogICAgICAgICAgIHsKLSAgICAgICAgICAgIGNoYXIgKnF1ZXJ5X3N0cjsKKyAgICAgICAgICAg IGlmIChvcHRfeG1sKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICBpZiAoaSkgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gUHJvY2VkdXJlcy4KKyAgICAgICAgICAgICAgICBwcmlu dF94bWxfcm93KHNxbF9maWxlLCAicm91dGluZSIsIHJvdXRpbmVfcmVzLCAmcm93LAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIkNyZWF0ZSBQcm9jZWR1cmUiKTsKKyAgICAgICAgICAg ICAgZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZ1bmN0aW9ucy4KKyAgICAg ICAgICAgICAgICBwcmludF94bWxfcm93KHNxbF9maWxlLCAicm91dGluZSIsIHJvdXRpbmVfcmVz LCAmcm93LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNyZWF0ZSBGdW5jdGlvbiIp OworICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlm IChvcHRfZHJvcCkKICAgICAgICAgICAgICAgZnByaW50ZihzcWxfZmlsZSwgIi8qITUwMDAzIERS T1AgJXMgSUYgRVhJU1RTICVzICovO1xuIiwKICAgICAgICAgICAgICAgICAgICAgICByb3V0aW5l X3R5cGVbaV0sIHJvdXRpbmVfbmFtZSk7CkBAIC0yMjIxLDYgKzI0MDgsMTIgQEAgc3RhdGljIHVp bnQgZHVtcF9yb3V0aW5lc19mb3JfZGIoY2hhciAqZAogICAgIG15c3FsX2ZyZWVfcmVzdWx0KHJv dXRpbmVfbGlzdF9yZXMpOwogICB9IC8qIGVuZCBvZiBmb3IgaSAoMCAuLiAxKSAgKi8KIAorICBp ZiAob3B0X3htbCkKKyAgeworICAgIGZwdXRzKCJcdDwvcm91dGluZXM+XG4iLCBzcWxfZmlsZSk7 CisgICAgY2hlY2tfaW8oc3FsX2ZpbGUpOworICB9CisKICAgaWYgKHN3aXRjaF9jaGFyYWN0ZXJf c2V0X3Jlc3VsdHMobXlzcWwsIGRlZmF1bHRfY2hhcnNldCkpCiAgICAgREJVR19SRVRVUk4oMSk7 CiAKQEAgLTIzMzMsMTYgKzI1MjYsMTYgQEAgc3RhdGljIHVpbnQgZ2V0X3RhYmxlX3N0cnVjdHVy ZShjaGFyICp0YQogCiAgICAgICAgIHdyaXRlX2hlYWRlcihzcWxfZmlsZSwgZGIpOwogICAgICAg fQotICAgICAgaWYgKCFvcHRfeG1sICYmIG9wdF9jb21tZW50cykKLSAgICAgIHsKKwogICAgICAg aWYgKHN0cmNtcCAodGFibGVfdHlwZSwgIlZJRVciKSA9PSAwKSAgICAgICAgIC8qIHZpZXcgKi8K LSAgICAgICAgZnByaW50ZihzcWxfZmlsZSwgIlxuLS1cbi0tIFRlbXBvcmFyeSB0YWJsZSBzdHJ1 Y3R1cmUgZm9yIHZpZXcgJXNcbi0tXG5cbiIsCi0gICAgICAgICAgICAgICAgcmVzdWx0X3RhYmxl KTsKKyAgICAgICAgcHJpbnRfY29tbWVudChzcWxfZmlsZSwgMCwKKyAgICAgICAgICAgICAgICAg ICAgICAiXG4tLVxuLS0gVGVtcG9yYXJ5IHRhYmxlIHN0cnVjdHVyZSBmb3IgdmlldyAlc1xuLS1c blxuIiwKKyAgICAgICAgICAgICAgICAgICAgICByZXN1bHRfdGFibGUpOwogICAgICAgZWxzZQot ICAgICAgICBmcHJpbnRmKHNxbF9maWxlLCAiXG4tLVxuLS0gVGFibGUgc3RydWN0dXJlIGZvciB0 YWJsZSAlc1xuLS1cblxuIiwKLSAgICAgICAgICAgICAgICByZXN1bHRfdGFibGUpOwotICAgICAg ICBjaGVja19pbyhzcWxfZmlsZSk7Ci0gICAgICB9CisgICAgICAgIHByaW50X2NvbW1lbnQoc3Fs X2ZpbGUsIDAsCisgICAgICAgICAgICAgICAgICAgICAgIlxuLS1cbi0tIFRhYmxlIHN0cnVjdHVy ZSBmb3IgdGFibGUgJXNcbi0tXG5cbiIsCisgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0X3Rh YmxlKTsKKwogICAgICAgaWYgKG9wdF9kcm9wKQogICAgICAgewogICAgICAgLyoKQEAgLTI1NDMs OSArMjczNiwxMCBAQCBzdGF0aWMgdWludCBnZXRfdGFibGVfc3RydWN0dXJlKGNoYXIgKnRhCiAg ICAgICAgICAgREJVR19SRVRVUk4oMCk7CiAgICAgICAgIHdyaXRlX2hlYWRlcihzcWxfZmlsZSwg ZGIpOwogICAgICAgfQotICAgICAgaWYgKCFvcHRfeG1sICYmIG9wdF9jb21tZW50cykKLSAgICAg ICAgZnByaW50ZihzcWxfZmlsZSwgIlxuLS1cbi0tIFRhYmxlIHN0cnVjdHVyZSBmb3IgdGFibGUg JXNcbi0tXG5cbiIsCi0gICAgICAgICAgICAgICAgcmVzdWx0X3RhYmxlKTsKKworICAgICAgcHJp bnRfY29tbWVudChzcWxfZmlsZSwgMCwKKyAgICAgICAgICAgICAgICAgICAgIlxuLS1cbi0tIFRh YmxlIHN0cnVjdHVyZSBmb3IgdGFibGUgJXNcbi0tXG5cbiIsCisgICAgICAgICAgICAgICAgICAg IHJlc3VsdF90YWJsZSk7CiAgICAgICBpZiAob3B0X2Ryb3ApCiAgICAgICAgIGZwcmludGYoc3Fs X2ZpbGUsICJEUk9QIFRBQkxFIElGIEVYSVNUUyAlcztcbiIsIHJlc3VsdF90YWJsZSk7CiAgICAg ICBpZiAoIW9wdF94bWwpCkBAIC0yNTk2LDcgKzI3OTAsNyBAQCBzdGF0aWMgdWludCBnZXRfdGFi bGVfc3RydWN0dXJlKGNoYXIgKnRhCiAgICAgICB7CiAgICAgICAgIGlmIChvcHRfeG1sKQogICAg ICAgICB7Ci0gICAgICAgICAgcHJpbnRfeG1sX3JvdyhzcWxfZmlsZSwgImZpZWxkIiwgcmVzdWx0 LCAmcm93KTsKKyAgICAgICAgICBwcmludF94bWxfcm93KHNxbF9maWxlLCAiZmllbGQiLCByZXN1 bHQsICZyb3csIE51bGxTKTsKICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCkBAIC0y NjY4LDcgKzI4NjIsNyBAQCBzdGF0aWMgdWludCBnZXRfdGFibGVfc3RydWN0dXJlKGNoYXIgKnRh CiAgICAgICB7CiAgICAgICAgIGlmIChvcHRfeG1sKQogICAgICAgICB7Ci0gICAgICAgICAgcHJp bnRfeG1sX3JvdyhzcWxfZmlsZSwgImtleSIsIHJlc3VsdCwgJnJvdyk7CisgICAgICAgICAgcHJp bnRfeG1sX3JvdyhzcWxfZmlsZSwgImtleSIsIHJlc3VsdCwgJnJvdywgTnVsbFMpOwogICAgICAg ICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKQEAgLTI3MjcsNyArMjkyMSw3IEBAIHN0YXRpYyB1 aW50IGdldF90YWJsZV9zdHJ1Y3R1cmUoY2hhciAqdGEKICAgICAgICAgZWxzZQogICAgICAgICB7 CiAgICAgICAgICAgaWYgKG9wdF94bWwpCi0gICAgICAgICAgICBwcmludF94bWxfcm93KHNxbF9m aWxlLCAib3B0aW9ucyIsIHJlc3VsdCwgJnJvdyk7CisgICAgICAgICAgICBwcmludF94bWxfcm93 KHNxbF9maWxlLCAib3B0aW9ucyIsIHJlc3VsdCwgJnJvdywgTnVsbFMpOwogICAgICAgICAgIGVs c2UKICAgICAgICAgICB7CiAgICAgICAgICAgICBmcHV0cygiLyohIixzcWxfZmlsZSk7CkBAIC0y NzcxLDkgKzI5NjUsMTkgQEAgc3RhdGljIHZvaWQgZHVtcF90cmlnZ2VyX29sZChGSUxFICpzcWxf ZgogICBjaGFyICpxdW90ZWRfdGFibGVfbmFtZT0gcXVvdGVfbmFtZSh0YWJsZV9uYW1lLCBxdW90 ZWRfdGFibGVfbmFtZV9idWYsIDEpOwogCiAgIGNoYXIgbmFtZV9idWZmW05BTUVfTEVOICogNCAr IDNdOworICBjb25zdCBjaGFyICp4bWxfbXNnPSAiXG5XYXJuaW5nISBteXNxbGR1bXAgYmVpbmcg cnVuIGFnYWluc3Qgb2xkIHNlcnZlciAiCisgICAgICAgICAgICAgICAgICAgICAgICJ0aGF0IGRv ZXMgbm90XG5zdXBwb3J0ICdTSE9XIENSRUFURSBUUklHR0VSUycgIgorICAgICAgICAgICAgICAg ICAgICAgICAic3RhdGVtZW50LiBTa2lwcGluZy4uXG4iOwogCiAgIERCVUdfRU5URVIoImR1bXBf dHJpZ2dlcl9vbGQiKTsKIAorICBpZiAob3B0X3htbCkKKyAgeworICAgIHByaW50X3htbF9jb21t ZW50KHNxbF9maWxlLCBzdHJsZW4oeG1sX21zZyksIHhtbF9tc2cpOworICAgIGNoZWNrX2lvKHNx bF9maWxlKTsKKyAgICBEQlVHX1ZPSURfUkVUVVJOOworICB9CisKICAgZnByaW50ZihzcWxfZmls ZSwKICAgICAgICAgICAiLS1cbiIKICAgICAgICAgICAiLS0gV0FSTklORzogb2xkIHNlcnZlciB2 ZXJzaW9uLiAiCkBAIC0yODM3LDEzICszMDQxLDIyIEBAIHN0YXRpYyBpbnQgZHVtcF90cmlnZ2Vy KEZJTEUgKnNxbF9maWxlLCAKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmRi X2NsX25hbWUpCiB7CiAgIE1ZU1FMX1JPVyByb3c7CisgIGNoYXIgKnF1ZXJ5X3N0cjsKICAgaW50 IGRiX2NsX2FsdGVyZWQ9IEZBTFNFOwogCiAgIERCVUdfRU5URVIoImR1bXBfdHJpZ2dlciIpOwog CiAgIHdoaWxlICgocm93PSBteXNxbF9mZXRjaF9yb3coc2hvd19jcmVhdGVfdHJpZ2dlcl9ycykp KQogICB7Ci0gICAgY2hhciAqcXVlcnlfc3RyPSBjb3Zlcl9kZWZpbmVyX2NsYXVzZV9pbl90cmln Z2VyKHJvd1syXSwgc3RybGVuKHJvd1syXSkpOworICAgIGlmIChvcHRfeG1sKQorICAgIHsKKyAg ICAgIHByaW50X3htbF9yb3coc3FsX2ZpbGUsICJ0cmlnZ2VyIiwgc2hvd19jcmVhdGVfdHJpZ2dl cl9ycywgJnJvdywKKyAgICAgICAgICAgICAgICAgICAgIlNRTCBPcmlnaW5hbCBTdGF0ZW1lbnQi KTsKKyAgICAgIGNoZWNrX2lvKHNxbF9maWxlKTsKKyAgICAgIGNvbnRpbnVlOworICAgIH0KKwor ICAgIHF1ZXJ5X3N0cj0gY292ZXJfZGVmaW5lcl9jbGF1c2VfaW5fdHJpZ2dlcihyb3dbMl0sIHN0 cmxlbihyb3dbMl0pKTsKIAogCiAgICAgaWYgKHN3aXRjaF9kYl9jb2xsYXRpb24oc3FsX2ZpbGUs IGRiX25hbWUsICI7IiwKQEAgLTI5MzMsNiArMzE0NiwxMyBAQCBzdGF0aWMgaW50IGR1bXBfdHJp Z2dlcnNfZm9yX3RhYmxlKGNoYXIgCiAKICAgLyogRHVtcCB0cmlnZ2Vycy4gKi8KIAorICBpZiAo ISBteXNxbF9udW1fcm93cyhzaG93X3RyaWdnZXJzX3JzKSkKKyAgICBnb3RvIHNraXA7CisKKyAg aWYgKG9wdF94bWwpCisgICAgcHJpbnRfeG1sX3RhZyhzcWxfZmlsZSwgIlx0IiwgIlxuIiwgInRy aWdnZXJzIiwgIm5hbWU9IiwKKyAgICAgICAgICAgICAgICAgIHRhYmxlX25hbWUsIE51bGxTKTsK KwogICB3aGlsZSAoKHJvdz0gbXlzcWxfZmV0Y2hfcm93KHNob3dfdHJpZ2dlcnNfcnMpKSkKICAg ewogCkBAIC0yOTY1LDYgKzMxODUsMTMgQEAgc3RhdGljIGludCBkdW1wX3RyaWdnZXJzX2Zvcl90 YWJsZShjaGFyIAogCiAgIH0KIAorICBpZiAob3B0X3htbCkKKyAgeworICAgIGZwdXRzKCJcdDwv dHJpZ2dlcnM+XG4iLCBzcWxfZmlsZSk7CisgICAgY2hlY2tfaW8oc3FsX2ZpbGUpOworICB9CisK K3NraXA6CiAgIG15c3FsX2ZyZWVfcmVzdWx0KHNob3dfdHJpZ2dlcnNfcnMpOwogCiAgIGlmIChz d2l0Y2hfY2hhcmFjdGVyX3NldF9yZXN1bHRzKG15c3FsLCBkZWZhdWx0X2NoYXJzZXQpKQpAQCAt MzIxMywxMiArMzQ0MCw5IEBAIHN0YXRpYyB2b2lkIGR1bXBfdGFibGUoY2hhciAqdGFibGUsIGNo YXIKICAgfQogICBlbHNlCiAgIHsKLSAgICBpZiAoIW9wdF94bWwgJiYgb3B0X2NvbW1lbnRzKQot ICAgIHsKLSAgICAgIGZwcmludGYobWRfcmVzdWx0X2ZpbGUsIlxuLS1cbi0tIER1bXBpbmcgZGF0 YSBmb3IgdGFibGUgJXNcbi0tXG4iLAotICAgICAgICAgICAgICByZXN1bHRfdGFibGUpOwotICAg ICAgY2hlY2tfaW8obWRfcmVzdWx0X2ZpbGUpOwotICAgIH0KKyAgICBwcmludF9jb21tZW50KG1k X3Jlc3VsdF9maWxlLCAwLAorICAgICAgICAgICAgICAgICAgIlxuLS1cbi0tIER1bXBpbmcgZGF0 YSBmb3IgdGFibGUgJXNcbi0tXG4iLAorICAgICAgICAgICAgICAgICAgcmVzdWx0X3RhYmxlKTsK ICAgICAKICAgICBkeW5zdHJfYXBwZW5kX2NoZWNrZWQoJnF1ZXJ5X3N0cmluZywgIlNFTEVDVCAv KiE0MDAwMSBTUUxfTk9fQ0FDSEUgKi8gKiBGUk9NICIpOwogICAgIGR5bnN0cl9hcHBlbmRfY2hl Y2tlZCgmcXVlcnlfc3RyaW5nLCByZXN1bHRfdGFibGUpOwpAQCAtMzQzNiw3ICszNjYwLDcgQEAg c3RhdGljIHZvaWQgZHVtcF90YWJsZShjaGFyICp0YWJsZSwgY2hhcgogICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgIHByaW50X3htbF90YWcobWRfcmVzdWx0X2ZpbGUsICJcdFx0 IiwgIiIsICJmaWVsZCIsICJuYW1lPSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBmaWVsZC0+bmFtZSwgTnVsbFMpOwotICAgICAgICAgICAgICAgICAgcHJpbnRfcXVvdGVkX3ht bChtZF9yZXN1bHRfZmlsZSwgcm93W2ldLCBsZW5ndGgpOworICAgICAgICAgICAgICAgICAgcHJp bnRfcXVvdGVkX3htbChtZF9yZXN1bHRfZmlsZSwgcm93W2ldLCBsZW5ndGgsIDApOwogICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBmcHV0cygiPC9maWVsZD5cbiIsIG1kX3Jlc3Vs dF9maWxlKTsKICAgICAgICAgICAgICAgfQpAQCAtMzc0Miw3ICszOTY2LDcgQEAgc3RhdGljIGlu dCBkdW1wX3RhYmxlc3BhY2VzKGNoYXIqIHRzX3doZQogICAgIHsKICAgICAgIGlmICghb3B0X3ht bCAmJiBvcHRfY29tbWVudHMpCiAgICAgICB7Ci0JZnByaW50ZihtZF9yZXN1bHRfZmlsZSwiXG4t LVxuLS0gTG9nZmlsZSBncm91cDogJXNcbi0tXG4iLCByb3dbMF0pOworCWZwcmludGYobWRfcmVz dWx0X2ZpbGUsICJcbi0tXG4tLSBMb2dmaWxlIGdyb3VwOiAlc1xuLS1cbiIsIHJvd1swXSk7CiAJ Y2hlY2tfaW8obWRfcmVzdWx0X2ZpbGUpOwogICAgICAgfQogICAgICAgZnByaW50ZihtZF9yZXN1 bHRfZmlsZSwgIlxuQ1JFQVRFIik7CkBAIC0zODEyLDExICs0MDM2LDcgQEAgc3RhdGljIGludCBk dW1wX3RhYmxlc3BhY2VzKGNoYXIqIHRzX3doZQogICAgICAgZmlyc3Q9IDE7CiAgICAgaWYgKGZp cnN0KQogICAgIHsKLSAgICAgIGlmICghb3B0X3htbCAmJiBvcHRfY29tbWVudHMpCi0gICAgICB7 Ci0JZnByaW50ZihtZF9yZXN1bHRfZmlsZSwiXG4tLVxuLS0gVGFibGVzcGFjZTogJXNcbi0tXG4i LCByb3dbMF0pOwotCWNoZWNrX2lvKG1kX3Jlc3VsdF9maWxlKTsKLSAgICAgIH0KKyAgICAgIHBy aW50X2NvbW1lbnQobWRfcmVzdWx0X2ZpbGUsIDAsICJcbi0tXG4tLSBUYWJsZXNwYWNlOiAlc1xu LS1cbiIsIHJvd1swXSk7CiAgICAgICBmcHJpbnRmKG1kX3Jlc3VsdF9maWxlLCAiXG5DUkVBVEUi KTsKICAgICB9CiAgICAgZWxzZQpAQCAtNDAwNiwxMSArNDIyNiw5IEBAIHN0YXRpYyBpbnQgaW5p dF9kdW1waW5nKGNoYXIgKmRhdGFiYXNlLCAKICAgICAgICovCiAgICAgICBjaGFyIHF1b3RlZF9k YXRhYmFzZV9idWZbTkFNRV9MRU4qMiszXTsKICAgICAgIGNoYXIgKnFkYXRhYmFzZT0gcXVvdGVf bmFtZShkYXRhYmFzZSxxdW90ZWRfZGF0YWJhc2VfYnVmLG9wdF9xdW90ZWQpOwotICAgICAgaWYg KG9wdF9jb21tZW50cykKLSAgICAgIHsKLSAgICAgICAgZnByaW50ZihtZF9yZXN1bHRfZmlsZSwi XG4tLVxuLS0gQ3VycmVudCBEYXRhYmFzZTogJXNcbi0tXG4iLCBxZGF0YWJhc2UpOwotICAgICAg ICBjaGVja19pbyhtZF9yZXN1bHRfZmlsZSk7Ci0gICAgICB9CisKKyAgICAgIHByaW50X2NvbW1l bnQobWRfcmVzdWx0X2ZpbGUsIDAsCisgICAgICAgICAgICAgICAgICAgICJcbi0tXG4tLSBDdXJy ZW50IERhdGFiYXNlOiAlc1xuLS1cbiIsIHFkYXRhYmFzZSk7CiAKICAgICAgIC8qIENhbGwgdGhl IHZpZXcgb3IgdGFibGUgc3BlY2lmaWMgZnVuY3Rpb24gKi8KICAgICAgIGluaXRfZnVuYyhxZGF0 YWJhc2UpOwpAQCAtNDA4NCw4ICs0MzAyLDcgQEAgc3RhdGljIGludCBkdW1wX2FsbF90YWJsZXNf aW5fZGIoY2hhciAqZAogICAgICAgZHVtcF90YWJsZSh0YWJsZSxkYXRhYmFzZSk7CiAgICAgICBt eV9mcmVlKG9yZGVyX2J5LCBNWUYoTVlfQUxMT1dfWkVST19QVFIpKTsKICAgICAgIG9yZGVyX2J5 PSAwOwotICAgICAgaWYgKG9wdF9kdW1wX3RyaWdnZXJzICYmICEgb3B0X3htbCAmJgotICAgICAg ICAgIG15c3FsX2dldF9zZXJ2ZXJfdmVyc2lvbihteXNxbCkgPj0gNTAwMDkpCisgICAgICBpZiAo b3B0X2R1bXBfdHJpZ2dlcnMgJiYgbXlzcWxfZ2V0X3NlcnZlcl92ZXJzaW9uKG15c3FsKSA+PSA1 MDAwOSkKICAgICAgIHsKICAgICAgICAgaWYgKGR1bXBfdHJpZ2dlcnNfZm9yX3RhYmxlKHRhYmxl LCBkYXRhYmFzZSkpCiAgICAgICAgIHsKQEAgLTQwOTYsMTQgKzQzMTMsMTIgQEAgc3RhdGljIGlu dCBkdW1wX2FsbF90YWJsZXNfaW5fZGIoY2hhciAqZAogICAgICAgfQogICAgIH0KICAgfQotICBp ZiAob3B0X2V2ZW50cyAmJiAhb3B0X3htbCAmJgotICAgICAgbXlzcWxfZ2V0X3NlcnZlcl92ZXJz aW9uKG15c3FsKSA+PSA1MDEwNikKKyAgaWYgKG9wdF9ldmVudHMgJiYgbXlzcWxfZ2V0X3NlcnZl cl92ZXJzaW9uKG15c3FsKSA+PSA1MDEwNikKICAgewogICAgIERCVUdfUFJJTlQoImluZm8iLCAo IkR1bXBpbmcgZXZlbnRzIGZvciBkYXRhYmFzZSAlcyIsIGRhdGFiYXNlKSk7CiAgICAgZHVtcF9l dmVudHNfZm9yX2RiKGRhdGFiYXNlKTsKICAgfQotICBpZiAob3B0X3JvdXRpbmVzICYmICFvcHRf eG1sICYmCi0gICAgICBteXNxbF9nZXRfc2VydmVyX3ZlcnNpb24obXlzcWwpID49IDUwMDA5KQor ICBpZiAob3B0X3JvdXRpbmVzICYmIG15c3FsX2dldF9zZXJ2ZXJfdmVyc2lvbihteXNxbCkgPj0g NTAwMDkpCiAgIHsKICAgICBEQlVHX1BSSU5UKCJpbmZvIiwgKCJEdW1waW5nIHJvdXRpbmVzIGZv ciBkYXRhYmFzZSAlcyIsIGRhdGFiYXNlKSk7CiAgICAgZHVtcF9yb3V0aW5lc19mb3JfZGIoZGF0 YWJhc2UpOwpAQCAtNDMzOCwxNSArNDU1MywxMyBAQCBzdGF0aWMgaW50IGR1bXBfc2VsZWN0ZWRf dGFibGVzKGNoYXIgKmRiCiAgICAgZm9yIChwb3M9IGR1bXBfdGFibGVzOyBwb3MgPCBlbmQ7IHBv cysrKQogICAgICAgZ2V0X3ZpZXdfc3RydWN0dXJlKCpwb3MsIGRiKTsKICAgfQotICBpZiAob3B0 X2V2ZW50cyAmJiAhb3B0X3htbCAmJgotICAgICAgbXlzcWxfZ2V0X3NlcnZlcl92ZXJzaW9uKG15 c3FsKSA+PSA1MDEwNikKKyAgaWYgKG9wdF9ldmVudHMgJiYgbXlzcWxfZ2V0X3NlcnZlcl92ZXJz aW9uKG15c3FsKSA+PSA1MDEwNikKICAgewogICAgIERCVUdfUFJJTlQoImluZm8iLCAoIkR1bXBp bmcgZXZlbnRzIGZvciBkYXRhYmFzZSAlcyIsIGRiKSk7CiAgICAgZHVtcF9ldmVudHNfZm9yX2Ri KGRiKTsKICAgfQogICAvKiBvYnRhaW4gZHVtcCBvZiByb3V0aW5lcyAocHJvY3MvZnVuY3Rpb25z KSAqLwotICBpZiAob3B0X3JvdXRpbmVzICAmJiAhb3B0X3htbCAmJgotICAgICAgbXlzcWxfZ2V0 X3NlcnZlcl92ZXJzaW9uKG15c3FsKSA+PSA1MDAwOSkKKyAgaWYgKG9wdF9yb3V0aW5lcyAmJiBt eXNxbF9nZXRfc2VydmVyX3ZlcnNpb24obXlzcWwpID49IDUwMDA5KQogICB7CiAgICAgREJVR19Q UklOVCgiaW5mbyIsICgiRHVtcGluZyByb3V0aW5lcyBmb3IgZGF0YWJhc2UgJXMiLCBkYikpOwog ICAgIGR1bXBfcm91dGluZXNfZm9yX2RiKGRiKTsKQEAgLTQzODEsNyArNDU5NCw3IEBAIHN0YXRp YyBpbnQgZG9fc2hvd19tYXN0ZXJfc3RhdHVzKE1ZU1FMICoKICAgICBpZiAocm93ICYmIHJvd1sw XSAmJiByb3dbMV0pCiAgICAgewogICAgICAgLyogU0hPVyBNQVNURVIgU1RBVFVTIHJlcG9ydHMg ZmlsZSBhbmQgcG9zaXRpb24gKi8KLSAgICAgIGlmIChvcHRfY29tbWVudHMpCisgICAgICBpZiAo IW9wdF94bWwgJiYgb3B0X2NvbW1lbnRzKQogICAgICAgICBmcHJpbnRmKG1kX3Jlc3VsdF9maWxl LAogICAgICAgICAgICAgICAgICJcbi0tXG4tLSBQb3NpdGlvbiB0byBzdGFydCByZXBsaWNhdGlv biBvciBwb2ludC1pbi10aW1lICIKICAgICAgICAgICAgICAgICAicmVjb3ZlcnkgZnJvbVxuLS1c blxuIik7CkBAIC01MDQ5LDYgKzUyNjIsMTIgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiph cmd2KQogICAgIGV4aXQoZXhpdF9jb2RlKTsKICAgfQogCisgIC8qCisgICAgRGlzYWJsZSBjb21t ZW50cyBpbiB4bWwgbW9kZSBpZiAnY29tbWVudHMnIG9wdGlvbiBpcyBub3QgZXhwbGljaXRseSB1 c2VkLgorICAqLworICBpZiAob3B0X3htbCAmJiAhb3B0X2NvbW1lbnRzX3VzZWQpCisgICAgb3B0 X2NvbW1lbnRzPSAwOworCiAgIGlmIChsb2dfZXJyb3JfZmlsZSkKICAgewogICAgIGlmKCEoc3Rk ZXJyb3JfZmlsZT0gZnJlb3Blbihsb2dfZXJyb3JfZmlsZSwgImErIiwgc3RkZXJyKSkpCgo9PT0g bW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9yL215c3FsZHVtcC5yZXN1bHQnCi0tLSBhL215c3Fs LXRlc3Qvci9teXNxbGR1bXAucmVzdWx0CTIwMTEtMDMtMTcgMTA6NTg6MTYgKzAwMDAKKysrIGIv bXlzcWwtdGVzdC9yL215c3FsZHVtcC5yZXN1bHQJMjAxMS0wNS0wNyAxMzo0MjoyNyArMDAwMApA QCAtNDYyOCw1ICs0NjI4LDQ0NCBAQCBBTFRFUiBEQVRBQkFTRSBgdGVzdC1kYXRhYmFzZWAgQ0hB UkFDVEVSCiBEUk9QIERBVEFCQVNFIGB0ZXN0LWRhdGFiYXNlYDsKIFVTRSBgdGVzdGA7CiAjCisj IEJVRyMxMTc2MDM4NCA6IDUyNzkyOiBteXNxbGR1bXAgaW4gWE1MIG1vZGUgZG9lcyBub3QgZHVt cCByb3V0aW5lcy4KKyMKK0NSRUFURSBEQVRBQkFTRSBCVUc1Mjc5MjsKK1VTRSBCVUc1Mjc5MjsK K0NSRUFURSBUQUJMRSB0MSAoYzEgSU5ULCBjMiBWQVJDSEFSKDIwKSk7CitDUkVBVEUgVEFCTEUg dDIgKGMxIElOVCk7CitJTlNFUlQgSU5UTyB0MSBWQUxVRVMgKDEsICdhYWEnKSwgKDIsICdiYmIn KSwgKDMsICdjY2MnKTsKK0lOU0VSVCBJTlRPIHQyIFZBTFVFUyAoMSksKDIpLCgzKTsKKyMgU3Rv cmVkIFByb2NlZHVyZXMuCitDUkVBVEUgUFJPQ0VEVVJFIHNpbXBsZXByb2MxIChPVVQgcGFyYW0x IElOVCkKK0JFR0lOCitTRUxFQ1QgQ09VTlQoKikgSU5UTyBwYXJhbTEgRlJPTSB0MTsKK0VORC8v CitDUkVBVEUgUFJPQ0VEVVJFIHNpbXBsZXByb2MyIChPVVQgcGFyYW0xIElOVCkKK0JFR0lOCitT RUxFQ1QgQ09VTlQoKikgSU5UTyBwYXJhbTEgRlJPTSB0MjsKK0VORC8vCisjIEV2ZW50cy4KK0NS RUFURSBFVkVOVCBlMSBPTiBTQ0hFRFVMRSBFVkVSWSAxIFNFQ09ORCBETyBEUk9QIERBVEFCQVNF IEJVRzUyNzkyOworQ1JFQVRFIEVWRU5UIGUyIE9OIFNDSEVEVUxFIEVWRVJZIDEgU0VDT05EIERP IERST1AgREFUQUJBU0UgQlVHNTI3OTI7CisjIEZ1bmN0aW9ucy4KK0NSRUFURSBGVU5DVElPTiBg aGVsbG8xYCAocyBDSEFSKDIwKSkKK1JFVFVSTlMgQ0hBUig1MCkgREVURVJNSU5JU1RJQworUkVU VVJOIENPTkNBVCgnSGVsbG8sICcgLHMgLCchJyk7CitDUkVBVEUgRlVOQ1RJT04gYGhlbGxvMmAg KHMgQ0hBUigyMCkpCitSRVRVUk5TIENIQVIoNTApIERFVEVSTUlOSVNUSUMKK1JFVFVSTiBDT05D QVQoJ11dPiwgJyAsIHMgLCchJyk7CisjIFRyaWdnZXJzLgorQ1JFQVRFIFRSSUdHRVIgdHJpZzEg QkVGT1JFIElOU0VSVCBPTiB0MgorRk9SIEVBQ0ggUk9XIEJFR0lOCitJTlNFUlQgSU5UTyB0MiBW QUxVRVMoMSk7CitFTkQ7Cit8CitDUkVBVEUgVFJJR0dFUiB0cmlnMiBBRlRFUiBJTlNFUlQgT04g dDIKK0ZPUiBFQUNIIFJPVyBCRUdJTgorSU5TRVJUIElOVE8gdDIgVkFMVUVTKDEsICddXT4nKTsK K0lOU0VSVCBJTlRPIHQyIFZBTFVFUygyLCAnPCFbQ0RBVEFdXT4nKTsKK0lOU0VSVCBJTlRPIHQy IFZBTFVFUygzLCAnPCFbQ0RBVEFbJyk7CitJTlNFUlQgSU5UTyB0MiBWQUxVRVMoNCwgJzwgPiAm IFwgIiBfJyk7CitFTkQ7Cit8CisjIFZpZXdzCitDUkVBVEUgVklFVyB2MSBBUyBTRUxFQ1QgKiBG Uk9NIHQxOworQ1JFQVRFIFZJRVcgdjIgQVMgU0VMRUNUICogRlJPTSB0MjsKKworIyBEdW1waW5n IEJVRzUyNzkyIGRhdGFiYXNlIGluIHhtbCBmb3JtYXQuCisKKyMgVXNpbmcgJ3JlcGxhY2VfcmVn ZXggL1swLTldezJ9LzAwLycKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPG15c3FsZHVtcCB4bWxu czp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzAwMDAvWE1MU2NoZW1hLWluc3RhbmNlIj4KKzxkYXRh YmFzZSBuYW1lPSJCVUcwMDAwMiI+CisJPHRhYmxlX3N0cnVjdHVyZSBuYW1lPSJ0MSI+CisJCTxm aWVsZCBGaWVsZD0iYzEiIFR5cGU9ImludCgwMCkiIE51bGw9IllFUyIgS2V5PSIiIEV4dHJhPSIi IENvbW1lbnQ9IiIgLz4KKwkJPGZpZWxkIEZpZWxkPSJjMiIgVHlwZT0idmFyY2hhcigwMCkiIE51 bGw9IllFUyIgS2V5PSIiIEV4dHJhPSIiIENvbW1lbnQ9IiIgLz4KKwkJPG9wdGlvbnMgTmFtZT0i dDEiIEVuZ2luZT0iTXlJU0FNIiBWZXJzaW9uPSIwMCIgUm93X2Zvcm1hdD0iRHluYW1pYyIgUm93 cz0iMyIgQXZnX3Jvd19sZW5ndGg9IjAwIiBEYXRhX2xlbmd0aD0iMDAiIE1heF9kYXRhX2xlbmd0 aD0iMDAwMDAwMDAwMDAwMDA1IiBJbmRleF9sZW5ndGg9IjAwMDAiIERhdGFfZnJlZT0iMCIgQ3Jl YXRlX3RpbWU9IjAwMDAtMDAtMDAgMDA6MDA6MDAiIFVwZGF0ZV90aW1lPSIwMDAwLTAwLTAwIDAw OjAwOjAwIiBDb2xsYXRpb249ImxhdGluMV9zd2VkaXNoX2NpIiBDcmVhdGVfb3B0aW9ucz0iIiBD b21tZW50PSIiIC8+CisJPC90YWJsZV9zdHJ1Y3R1cmU+CisJPHRhYmxlX2RhdGEgbmFtZT0idDEi PgorCTxyb3c+CisJCTxmaWVsZCBuYW1lPSJjMSI+MTwvZmllbGQ+CisJCTxmaWVsZCBuYW1lPSJj MiI+YWFhPC9maWVsZD4KKwk8L3Jvdz4KKwk8cm93PgorCQk8ZmllbGQgbmFtZT0iYzEiPjI8L2Zp ZWxkPgorCQk8ZmllbGQgbmFtZT0iYzIiPmJiYjwvZmllbGQ+CisJPC9yb3c+CisJPHJvdz4KKwkJ PGZpZWxkIG5hbWU9ImMxIj4zPC9maWVsZD4KKwkJPGZpZWxkIG5hbWU9ImMyIj5jY2M8L2ZpZWxk PgorCTwvcm93PgorCTwvdGFibGVfZGF0YT4KKwk8dGFibGVfc3RydWN0dXJlIG5hbWU9InQyIj4K KwkJPGZpZWxkIEZpZWxkPSJjMSIgVHlwZT0iaW50KDAwKSIgTnVsbD0iWUVTIiBLZXk9IiIgRXh0 cmE9IiIgQ29tbWVudD0iIiAvPgorCQk8b3B0aW9ucyBOYW1lPSJ0MiIgRW5naW5lPSJNeUlTQU0i IFZlcnNpb249IjAwIiBSb3dfZm9ybWF0PSJGaXhlZCIgUm93cz0iMyIgQXZnX3Jvd19sZW5ndGg9 IjciIERhdGFfbGVuZ3RoPSIwMCIgTWF4X2RhdGFfbGVuZ3RoPSIwMDAwMDAwMDAwMDAwMDAwIiBJ bmRleF9sZW5ndGg9IjAwMDAiIERhdGFfZnJlZT0iMCIgQ3JlYXRlX3RpbWU9IjAwMDAtMDAtMDAg MDA6MDA6MDAiIFVwZGF0ZV90aW1lPSIwMDAwLTAwLTAwIDAwOjAwOjAwIiBDb2xsYXRpb249Imxh dGluMV9zd2VkaXNoX2NpIiBDcmVhdGVfb3B0aW9ucz0iIiBDb21tZW50PSIiIC8+CisJPC90YWJs ZV9zdHJ1Y3R1cmU+CisJPHRhYmxlX2RhdGEgbmFtZT0idDIiPgorCTxyb3c+CisJCTxmaWVsZCBu YW1lPSJjMSI+MTwvZmllbGQ+CisJPC9yb3c+CisJPHJvdz4KKwkJPGZpZWxkIG5hbWU9ImMxIj4y PC9maWVsZD4KKwk8L3Jvdz4KKwk8cm93PgorCQk8ZmllbGQgbmFtZT0iYzEiPjM8L2ZpZWxkPgor CTwvcm93PgorCTwvdGFibGVfZGF0YT4KKwk8dHJpZ2dlcnMgbmFtZT0idDIiPgorCQk8dHJpZ2dl ciBUcmlnZ2VyPSJ0cmlnMSIgc3FsX21vZGU9IiIgY2hhcmFjdGVyX3NldF9jbGllbnQ9ImxhdGlu MSIgY29sbGF0aW9uX2Nvbm5lY3Rpb249ImxhdGluMV9zd2VkaXNoX2NpIiBEYXRhYmFzZV9Db2xs YXRpb249ImxhdGluMV9zd2VkaXNoX2NpIj4KKzwhW0NEQVRBWworQ1JFQVRFIERFRklORVI9YHJv b3RgQGBsb2NhbGhvc3RgIFRSSUdHRVIgdHJpZzEgQkVGT1JFIElOU0VSVCBPTiB0MgorRk9SIEVB Q0ggUk9XIEJFR0lOCitJTlNFUlQgSU5UTyB0MiBWQUxVRVMoMSk7CitFTkQKK11dPgorCQk8L3Ry aWdnZXI+CisJCTx0cmlnZ2VyIFRyaWdnZXI9InRyaWcyIiBzcWxfbW9kZT0iIiBjaGFyYWN0ZXJf c2V0X2NsaWVudD0ibGF0aW4xIiBjb2xsYXRpb25fY29ubmVjdGlvbj0ibGF0aW4xX3N3ZWRpc2hf Y2kiIERhdGFiYXNlX0NvbGxhdGlvbj0ibGF0aW4xX3N3ZWRpc2hfY2kiPgorPCFbQ0RBVEFbCitD UkVBVEUgREVGSU5FUj1gcm9vdGBAYGxvY2FsaG9zdGAgVFJJR0dFUiB0cmlnMiBBRlRFUiBJTlNF UlQgT04gdDIKK0ZPUiBFQUNIIFJPVyBCRUdJTgorSU5TRVJUIElOVE8gdDIgVkFMVUVTKDEsICdd XV1dPjwhW0NEQVRBWz4nKTsKK0lOU0VSVCBJTlRPIHQyIFZBTFVFUygyLCAnPCFbQ0RBVEFdXV1d PjwhW0NEQVRBWz4nKTsKK0lOU0VSVCBJTlRPIHQyIFZBTFVFUygzLCAnPCFbQ0RBVEFbJyk7CitJ TlNFUlQgSU5UTyB0MiBWQUxVRVMoNCwgJzwgPiAmIFwgIiBfJyk7CitFTkQKK11dPgorCQk8L3Ry aWdnZXI+CisJPC90cmlnZ2Vycz4KKwk8dGFibGVfc3RydWN0dXJlIG5hbWU9InYxIj4KKwkJPGZp ZWxkIEZpZWxkPSJjMSIgVHlwZT0iaW50KDAwKSIgTnVsbD0iWUVTIiBLZXk9IiIgRXh0cmE9IiIg Q29tbWVudD0iIiAvPgorCQk8ZmllbGQgRmllbGQ9ImMyIiBUeXBlPSJ2YXJjaGFyKDAwKSIgTnVs bD0iWUVTIiBLZXk9IiIgRXh0cmE9IiIgQ29tbWVudD0iIiAvPgorCQk8b3B0aW9ucyBOYW1lPSJ2 MSIgQ29tbWVudD0iVklFVyIgLz4KKwk8L3RhYmxlX3N0cnVjdHVyZT4KKwk8dGFibGVfc3RydWN0 dXJlIG5hbWU9InYyIj4KKwkJPGZpZWxkIEZpZWxkPSJjMSIgVHlwZT0iaW50KDAwKSIgTnVsbD0i WUVTIiBLZXk9IiIgRXh0cmE9IiIgQ29tbWVudD0iIiAvPgorCQk8b3B0aW9ucyBOYW1lPSJ2MiIg Q29tbWVudD0iVklFVyIgLz4KKwk8L3RhYmxlX3N0cnVjdHVyZT4KKwk8ZXZlbnRzPgorCQk8ZXZl bnQgRXZlbnQ9ImUxIiBzcWxfbW9kZT0iIiB0aW1lX3pvbmU9IlNZU1RFTSIgY2hhcmFjdGVyX3Nl dF9jbGllbnQ9ImxhdGluMSIgY29sbGF0aW9uX2Nvbm5lY3Rpb249ImxhdGluMV9zd2VkaXNoX2Np IiBEYXRhYmFzZV9Db2xsYXRpb249ImxhdGluMV9zd2VkaXNoX2NpIj4KKzwhW0NEQVRBWworQ1JF QVRFIEVWRU5UIGBlMWAgT04gU0NIRURVTEUgRVZFUlkgMSBTRUNPTkQgU1RBUlRTICcwMDAwLTAw LTAwIDAwOjAwOjAwJyBPTiBDT01QTEVUSU9OIE5PVCBQUkVTRVJWRSBFTkFCTEUgRE8gRFJPUCBE QVRBQkFTRSBCVUcwMDAwMgorXV0+CisJCTwvZXZlbnQ+CisJCTxldmVudCBFdmVudD0iZTIiIHNx bF9tb2RlPSIiIHRpbWVfem9uZT0iU1lTVEVNIiBjaGFyYWN0ZXJfc2V0X2NsaWVudD0ibGF0aW4x IiBjb2xsYXRpb25fY29ubmVjdGlvbj0ibGF0aW4xX3N3ZWRpc2hfY2kiIERhdGFiYXNlX0NvbGxh dGlvbj0ibGF0aW4xX3N3ZWRpc2hfY2kiPgorPCFbQ0RBVEFbCitDUkVBVEUgRVZFTlQgYGUyYCBP TiBTQ0hFRFVMRSBFVkVSWSAxIFNFQ09ORCBTVEFSVFMgJzAwMDAtMDAtMDAgMDA6MDA6MDAnIE9O IENPTVBMRVRJT04gTk9UIFBSRVNFUlZFIEVOQUJMRSBETyBEUk9QIERBVEFCQVNFIEJVRzAwMDAy CitdXT4KKwkJPC9ldmVudD4KKwk8L2V2ZW50cz4KKwk8cm91dGluZXM+CisJCTxyb3V0aW5lIEZ1 bmN0aW9uPSJoZWxsbzEiIHNxbF9tb2RlPSIiIGNoYXJhY3Rlcl9zZXRfY2xpZW50PSJsYXRpbjEi IGNvbGxhdGlvbl9jb25uZWN0aW9uPSJsYXRpbjFfc3dlZGlzaF9jaSIgRGF0YWJhc2VfQ29sbGF0 aW9uPSJsYXRpbjFfc3dlZGlzaF9jaSI+Cis8IVtDREFUQVsKK0NSRUFURSBERUZJTkVSPWByb290 YEBgbG9jYWxob3N0YCBGVU5DVElPTiBgaGVsbG8xYChzIENIQVIoMDApKSBSRVRVUk5TIGNoYXIo MDApIENIQVJTRVQgbGF0aW4xCisgICAgREVURVJNSU5JU1RJQworUkVUVVJOIENPTkNBVCgnSGVs bG8sICcgLHMgLCchJykKK11dPgorCQk8L3JvdXRpbmU+CisJCTxyb3V0aW5lIEZ1bmN0aW9uPSJo ZWxsbzIiIHNxbF9tb2RlPSIiIGNoYXJhY3Rlcl9zZXRfY2xpZW50PSJsYXRpbjEiIGNvbGxhdGlv bl9jb25uZWN0aW9uPSJsYXRpbjFfc3dlZGlzaF9jaSIgRGF0YWJhc2VfQ29sbGF0aW9uPSJsYXRp bjFfc3dlZGlzaF9jaSI+Cis8IVtDREFUQVsKK0NSRUFURSBERUZJTkVSPWByb290YEBgbG9jYWxo b3N0YCBGVU5DVElPTiBgaGVsbG8yYChzIENIQVIoMDApKSBSRVRVUk5TIGNoYXIoMDApIENIQVJT RVQgbGF0aW4xCisgICAgREVURVJNSU5JU1RJQworUkVUVVJOIENPTkNBVCgnXV1dXT48IVtDREFU QVs+LCAnICwgcyAsJyEnKQorXV0+CisJCTwvcm91dGluZT4KKwkJPHJvdXRpbmUgUHJvY2VkdXJl PSJzaW1wbGVwcm9jMSIgc3FsX21vZGU9IiIgY2hhcmFjdGVyX3NldF9jbGllbnQ9ImxhdGluMSIg Y29sbGF0aW9uX2Nvbm5lY3Rpb249ImxhdGluMV9zd2VkaXNoX2NpIiBEYXRhYmFzZV9Db2xsYXRp b249ImxhdGluMV9zd2VkaXNoX2NpIj4KKzwhW0NEQVRBWworQ1JFQVRFIERFRklORVI9YHJvb3Rg QGBsb2NhbGhvc3RgIFBST0NFRFVSRSBgc2ltcGxlcHJvYzFgKE9VVCBwYXJhbTEgSU5UKQorQkVH SU4KK1NFTEVDVCBDT1VOVCgqKSBJTlRPIHBhcmFtMSBGUk9NIHQxOworRU5ECitdXT4KKwkJPC9y b3V0aW5lPgorCQk8cm91dGluZSBQcm9jZWR1cmU9InNpbXBsZXByb2MyIiBzcWxfbW9kZT0iIiBj aGFyYWN0ZXJfc2V0X2NsaWVudD0ibGF0aW4xIiBjb2xsYXRpb25fY29ubmVjdGlvbj0ibGF0aW4x X3N3ZWRpc2hfY2kiIERhdGFiYXNlX0NvbGxhdGlvbj0ibGF0aW4xX3N3ZWRpc2hfY2kiPgorPCFb Q0RBVEFbCitDUkVBVEUgREVGSU5FUj1gcm9vdGBAYGxvY2FsaG9zdGAgUFJPQ0VEVVJFIGBzaW1w bGVwcm9jMmAoT1VUIHBhcmFtMSBJTlQpCitCRUdJTgorU0VMRUNUIENPVU5UKCopIElOVE8gcGFy YW0xIEZST00gdDI7CitFTkQKK11dPgorCQk8L3JvdXRpbmU+CisJPC9yb3V0aW5lcz4KKzwvZGF0 YWJhc2U+Cis8L215c3FsZHVtcD4KKworIyBEdW1waW5nIEJVRzUyNzkyIGRhdGFiYXNlIGluIHht bCBmb3JtYXQgd2l0aCBjb21tZW50cy4KKworIyBVc2luZyAncmVwbGFjZV9yZWdleCAvWzAtOV17 Mn0vMDAvJworPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8bXlzcWxkdW1wIHhtbG5zOnhzaT0iaHR0 cDovL3d3dy53My5vcmcvMDAwMC9YTUxTY2hlbWEtaW5zdGFuY2UiPgorPGRhdGFiYXNlIG5hbWU9 IkJVRzAwMDAyIj4KKzwhLS0gCistCistIFRhYmxlIHN0cnVjdHVyZSBmb3IgdGFibGUgYHQxYAor LQorCisgLS0+CisJPHRhYmxlX3N0cnVjdHVyZSBuYW1lPSJ0MSI+CisJCTxmaWVsZCBGaWVsZD0i YzEiIFR5cGU9ImludCgwMCkiIE51bGw9IllFUyIgS2V5PSIiIEV4dHJhPSIiIENvbW1lbnQ9IiIg Lz4KKwkJPGZpZWxkIEZpZWxkPSJjMiIgVHlwZT0idmFyY2hhcigwMCkiIE51bGw9IllFUyIgS2V5 PSIiIEV4dHJhPSIiIENvbW1lbnQ9IiIgLz4KKwkJPG9wdGlvbnMgTmFtZT0idDEiIEVuZ2luZT0i TXlJU0FNIiBWZXJzaW9uPSIwMCIgUm93X2Zvcm1hdD0iRHluYW1pYyIgUm93cz0iMyIgQXZnX3Jv d19sZW5ndGg9IjAwIiBEYXRhX2xlbmd0aD0iMDAiIE1heF9kYXRhX2xlbmd0aD0iMDAwMDAwMDAw MDAwMDA1IiBJbmRleF9sZW5ndGg9IjAwMDAiIERhdGFfZnJlZT0iMCIgQ3JlYXRlX3RpbWU9IjAw MDAtMDAtMDAgMDA6MDA6MDAiIFVwZGF0ZV90aW1lPSIwMDAwLTAwLTAwIDAwOjAwOjAwIiBDb2xs YXRpb249ImxhdGluMV9zd2VkaXNoX2NpIiBDcmVhdGVfb3B0aW9ucz0iIiBDb21tZW50PSIiIC8+ CisJPC90YWJsZV9zdHJ1Y3R1cmU+Cis8IS0tIAorLQorLSBEdW1waW5nIGRhdGEgZm9yIHRhYmxl IGB0MWAKKy0KKyAtLT4KKwk8dGFibGVfZGF0YSBuYW1lPSJ0MSI+CisJPHJvdz4KKwkJPGZpZWxk IG5hbWU9ImMxIj4xPC9maWVsZD4KKwkJPGZpZWxkIG5hbWU9ImMyIj5hYWE8L2ZpZWxkPgorCTwv cm93PgorCTxyb3c+CisJCTxmaWVsZCBuYW1lPSJjMSI+MjwvZmllbGQ+CisJCTxmaWVsZCBuYW1l PSJjMiI+YmJiPC9maWVsZD4KKwk8L3Jvdz4KKwk8cm93PgorCQk8ZmllbGQgbmFtZT0iYzEiPjM8 L2ZpZWxkPgorCQk8ZmllbGQgbmFtZT0iYzIiPmNjYzwvZmllbGQ+CisJPC9yb3c+CisJPC90YWJs ZV9kYXRhPgorPCEtLSAKKy0KKy0gVGFibGUgc3RydWN0dXJlIGZvciB0YWJsZSBgdDJgCistCisK KyAtLT4KKwk8dGFibGVfc3RydWN0dXJlIG5hbWU9InQyIj4KKwkJPGZpZWxkIEZpZWxkPSJjMSIg VHlwZT0iaW50KDAwKSIgTnVsbD0iWUVTIiBLZXk9IiIgRXh0cmE9IiIgQ29tbWVudD0iIiAvPgor CQk8b3B0aW9ucyBOYW1lPSJ0MiIgRW5naW5lPSJNeUlTQU0iIFZlcnNpb249IjAwIiBSb3dfZm9y bWF0PSJGaXhlZCIgUm93cz0iMyIgQXZnX3Jvd19sZW5ndGg9IjciIERhdGFfbGVuZ3RoPSIwMCIg TWF4X2RhdGFfbGVuZ3RoPSIwMDAwMDAwMDAwMDAwMDAwIiBJbmRleF9sZW5ndGg9IjAwMDAiIERh dGFfZnJlZT0iMCIgQ3JlYXRlX3RpbWU9IjAwMDAtMDAtMDAgMDA6MDA6MDAiIFVwZGF0ZV90aW1l PSIwMDAwLTAwLTAwIDAwOjAwOjAwIiBDb2xsYXRpb249ImxhdGluMV9zd2VkaXNoX2NpIiBDcmVh dGVfb3B0aW9ucz0iIiBDb21tZW50PSIiIC8+CisJPC90YWJsZV9zdHJ1Y3R1cmU+Cis8IS0tIAor LQorLSBEdW1waW5nIGRhdGEgZm9yIHRhYmxlIGB0MmAKKy0KKyAtLT4KKwk8dGFibGVfZGF0YSBu YW1lPSJ0MiI+CisJPHJvdz4KKwkJPGZpZWxkIG5hbWU9ImMxIj4xPC9maWVsZD4KKwk8L3Jvdz4K Kwk8cm93PgorCQk8ZmllbGQgbmFtZT0iYzEiPjI8L2ZpZWxkPgorCTwvcm93PgorCTxyb3c+CisJ CTxmaWVsZCBuYW1lPSJjMSI+MzwvZmllbGQ+CisJPC9yb3c+CisJPC90YWJsZV9kYXRhPgorCTx0 cmlnZ2VycyBuYW1lPSJ0MiI+CisJCTx0cmlnZ2VyIFRyaWdnZXI9InRyaWcxIiBzcWxfbW9kZT0i IiBjaGFyYWN0ZXJfc2V0X2NsaWVudD0ibGF0aW4xIiBjb2xsYXRpb25fY29ubmVjdGlvbj0ibGF0 aW4xX3N3ZWRpc2hfY2kiIERhdGFiYXNlX0NvbGxhdGlvbj0ibGF0aW4xX3N3ZWRpc2hfY2kiPgor PCFbQ0RBVEFbCitDUkVBVEUgREVGSU5FUj1gcm9vdGBAYGxvY2FsaG9zdGAgVFJJR0dFUiB0cmln MSBCRUZPUkUgSU5TRVJUIE9OIHQyCitGT1IgRUFDSCBST1cgQkVHSU4KK0lOU0VSVCBJTlRPIHQy IFZBTFVFUygxKTsKK0VORAorXV0+CisJCTwvdHJpZ2dlcj4KKwkJPHRyaWdnZXIgVHJpZ2dlcj0i dHJpZzIiIHNxbF9tb2RlPSIiIGNoYXJhY3Rlcl9zZXRfY2xpZW50PSJsYXRpbjEiIGNvbGxhdGlv bl9jb25uZWN0aW9uPSJsYXRpbjFfc3dlZGlzaF9jaSIgRGF0YWJhc2VfQ29sbGF0aW9uPSJsYXRp bjFfc3dlZGlzaF9jaSI+Cis8IVtDREFUQVsKK0NSRUFURSBERUZJTkVSPWByb290YEBgbG9jYWxo b3N0YCBUUklHR0VSIHRyaWcyIEFGVEVSIElOU0VSVCBPTiB0MgorRk9SIEVBQ0ggUk9XIEJFR0lO CitJTlNFUlQgSU5UTyB0MiBWQUxVRVMoMSwgJ11dXV0+PCFbQ0RBVEFbPicpOworSU5TRVJUIElO VE8gdDIgVkFMVUVTKDIsICc8IVtDREFUQV1dXV0+PCFbQ0RBVEFbPicpOworSU5TRVJUIElOVE8g dDIgVkFMVUVTKDMsICc8IVtDREFUQVsnKTsKK0lOU0VSVCBJTlRPIHQyIFZBTFVFUyg0LCAnPCA+ ICYgXCAiIF8nKTsKK0VORAorXV0+CisJCTwvdHJpZ2dlcj4KKwk8L3RyaWdnZXJzPgorPCEtLSAK Ky0KKy0gVGFibGUgc3RydWN0dXJlIGZvciB0YWJsZSBgdjFgCistCisKKyAtLT4KKwk8dGFibGVf c3RydWN0dXJlIG5hbWU9InYxIj4KKwkJPGZpZWxkIEZpZWxkPSJjMSIgVHlwZT0iaW50KDAwKSIg TnVsbD0iWUVTIiBLZXk9IiIgRXh0cmE9IiIgQ29tbWVudD0iIiAvPgorCQk8ZmllbGQgRmllbGQ9 ImMyIiBUeXBlPSJ2YXJjaGFyKDAwKSIgTnVsbD0iWUVTIiBLZXk9IiIgRXh0cmE9IiIgQ29tbWVu dD0iIiAvPgorCQk8b3B0aW9ucyBOYW1lPSJ2MSIgQ29tbWVudD0iVklFVyIgLz4KKwk8L3RhYmxl X3N0cnVjdHVyZT4KKzwhLS0gCistCistIFRhYmxlIHN0cnVjdHVyZSBmb3IgdGFibGUgYHYyYAor LQorCisgLS0+CisJPHRhYmxlX3N0cnVjdHVyZSBuYW1lPSJ2MiI+CisJCTxmaWVsZCBGaWVsZD0i YzEiIFR5cGU9ImludCgwMCkiIE51bGw9IllFUyIgS2V5PSIiIEV4dHJhPSIiIENvbW1lbnQ9IiIg Lz4KKwkJPG9wdGlvbnMgTmFtZT0idjIiIENvbW1lbnQ9IlZJRVciIC8+CisJPC90YWJsZV9zdHJ1 Y3R1cmU+Cis8IS0tIAorLQorLSBEdW1waW5nIGV2ZW50cyBmb3IgZGF0YWJhc2UgJ0JVRzAwMDAy JworLQorIC0tPgorCTxldmVudHM+CisJCTxldmVudCBFdmVudD0iZTEiIHNxbF9tb2RlPSIiIHRp bWVfem9uZT0iU1lTVEVNIiBjaGFyYWN0ZXJfc2V0X2NsaWVudD0ibGF0aW4xIiBjb2xsYXRpb25f Y29ubmVjdGlvbj0ibGF0aW4xX3N3ZWRpc2hfY2kiIERhdGFiYXNlX0NvbGxhdGlvbj0ibGF0aW4x X3N3ZWRpc2hfY2kiPgorPCFbQ0RBVEFbCitDUkVBVEUgRVZFTlQgYGUxYCBPTiBTQ0hFRFVMRSBF VkVSWSAxIFNFQ09ORCBTVEFSVFMgJzAwMDAtMDAtMDAgMDA6MDA6MDAnIE9OIENPTVBMRVRJT04g Tk9UIFBSRVNFUlZFIEVOQUJMRSBETyBEUk9QIERBVEFCQVNFIEJVRzAwMDAyCitdXT4KKwkJPC9l dmVudD4KKwkJPGV2ZW50IEV2ZW50PSJlMiIgc3FsX21vZGU9IiIgdGltZV96b25lPSJTWVNURU0i IGNoYXJhY3Rlcl9zZXRfY2xpZW50PSJsYXRpbjEiIGNvbGxhdGlvbl9jb25uZWN0aW9uPSJsYXRp bjFfc3dlZGlzaF9jaSIgRGF0YWJhc2VfQ29sbGF0aW9uPSJsYXRpbjFfc3dlZGlzaF9jaSI+Cis8 IVtDREFUQVsKK0NSRUFURSBFVkVOVCBgZTJgIE9OIFNDSEVEVUxFIEVWRVJZIDEgU0VDT05EIFNU QVJUUyAnMDAwMC0wMC0wMCAwMDowMDowMCcgT04gQ09NUExFVElPTiBOT1QgUFJFU0VSVkUgRU5B QkxFIERPIERST1AgREFUQUJBU0UgQlVHMDAwMDIKK11dPgorCQk8L2V2ZW50PgorCTwvZXZlbnRz PgorPCEtLSAKKy0KKy0gRHVtcGluZyByb3V0aW5lcyBmb3IgZGF0YWJhc2UgJ0JVRzAwMDAyJwor LQorIC0tPgorCTxyb3V0aW5lcz4KKwkJPHJvdXRpbmUgRnVuY3Rpb249ImhlbGxvMSIgc3FsX21v ZGU9IiIgY2hhcmFjdGVyX3NldF9jbGllbnQ9ImxhdGluMSIgY29sbGF0aW9uX2Nvbm5lY3Rpb249 ImxhdGluMV9zd2VkaXNoX2NpIiBEYXRhYmFzZV9Db2xsYXRpb249ImxhdGluMV9zd2VkaXNoX2Np Ij4KKzwhW0NEQVRBWworQ1JFQVRFIERFRklORVI9YHJvb3RgQGBsb2NhbGhvc3RgIEZVTkNUSU9O IGBoZWxsbzFgKHMgQ0hBUigwMCkpIFJFVFVSTlMgY2hhcigwMCkgQ0hBUlNFVCBsYXRpbjEKKyAg ICBERVRFUk1JTklTVElDCitSRVRVUk4gQ09OQ0FUKCdIZWxsbywgJyAscyAsJyEnKQorXV0+CisJ CTwvcm91dGluZT4KKwkJPHJvdXRpbmUgRnVuY3Rpb249ImhlbGxvMiIgc3FsX21vZGU9IiIgY2hh cmFjdGVyX3NldF9jbGllbnQ9ImxhdGluMSIgY29sbGF0aW9uX2Nvbm5lY3Rpb249ImxhdGluMV9z d2VkaXNoX2NpIiBEYXRhYmFzZV9Db2xsYXRpb249ImxhdGluMV9zd2VkaXNoX2NpIj4KKzwhW0NE QVRBWworQ1JFQVRFIERFRklORVI9YHJvb3RgQGBsb2NhbGhvc3RgIEZVTkNUSU9OIGBoZWxsbzJg KHMgQ0hBUigwMCkpIFJFVFVSTlMgY2hhcigwMCkgQ0hBUlNFVCBsYXRpbjEKKyAgICBERVRFUk1J TklTVElDCitSRVRVUk4gQ09OQ0FUKCddXV1dPjwhW0NEQVRBWz4sICcgLCBzICwnIScpCitdXT4K KwkJPC9yb3V0aW5lPgorCQk8cm91dGluZSBQcm9jZWR1cmU9InNpbXBsZXByb2MxIiBzcWxfbW9k ZT0iIiBjaGFyYWN0ZXJfc2V0X2NsaWVudD0ibGF0aW4xIiBjb2xsYXRpb25fY29ubmVjdGlvbj0i bGF0aW4xX3N3ZWRpc2hfY2kiIERhdGFiYXNlX0NvbGxhdGlvbj0ibGF0aW4xX3N3ZWRpc2hfY2ki PgorPCFbQ0RBVEFbCitDUkVBVEUgREVGSU5FUj1gcm9vdGBAYGxvY2FsaG9zdGAgUFJPQ0VEVVJF IGBzaW1wbGVwcm9jMWAoT1VUIHBhcmFtMSBJTlQpCitCRUdJTgorU0VMRUNUIENPVU5UKCopIElO VE8gcGFyYW0xIEZST00gdDE7CitFTkQKK11dPgorCQk8L3JvdXRpbmU+CisJCTxyb3V0aW5lIFBy b2NlZHVyZT0ic2ltcGxlcHJvYzIiIHNxbF9tb2RlPSIiIGNoYXJhY3Rlcl9zZXRfY2xpZW50PSJs YXRpbjEiIGNvbGxhdGlvbl9jb25uZWN0aW9uPSJsYXRpbjFfc3dlZGlzaF9jaSIgRGF0YWJhc2Vf Q29sbGF0aW9uPSJsYXRpbjFfc3dlZGlzaF9jaSI+Cis8IVtDREFUQVsKK0NSRUFURSBERUZJTkVS PWByb290YEBgbG9jYWxob3N0YCBQUk9DRURVUkUgYHNpbXBsZXByb2MyYChPVVQgcGFyYW0xIElO VCkKK0JFR0lOCitTRUxFQ1QgQ09VTlQoKikgSU5UTyBwYXJhbTEgRlJPTSB0MjsKK0VORAorXV0+ CisJCTwvcm91dGluZT4KKwk8L3JvdXRpbmVzPgorPC9kYXRhYmFzZT4KKzwvbXlzcWxkdW1wPgor CisjIFRlc3QgdG8gY2hlY2sgJ0luc3VmZmljaWVudCBwcml2aWxlZ2VzJyBlcnJvci4KKworR1JB TlQgQUxMIFBSSVZJTEVHRVMgT04gQlVHNTI3OTIuKiBUTyB1c2VyMTsKKyMgVXNpbmcgJ3JlcGxh Y2VfcmVnZXggL1swLTldezJ9LzAwLycKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPG15c3FsZHVt cCB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzAwMDAvWE1MU2NoZW1hLWluc3RhbmNlIj4K KzxkYXRhYmFzZSBuYW1lPSJCVUcwMDAwMiI+CisJPHRhYmxlX3N0cnVjdHVyZSBuYW1lPSJ0MSI+ CisJCTxmaWVsZCBGaWVsZD0iYzEiIFR5cGU9ImludCgwMCkiIE51bGw9IllFUyIgS2V5PSIiIEV4 dHJhPSIiIENvbW1lbnQ9IiIgLz4KKwkJPGZpZWxkIEZpZWxkPSJjMiIgVHlwZT0idmFyY2hhcigw MCkiIE51bGw9IllFUyIgS2V5PSIiIEV4dHJhPSIiIENvbW1lbnQ9IiIgLz4KKwkJPG9wdGlvbnMg TmFtZT0idDEiIEVuZ2luZT0iTXlJU0FNIiBWZXJzaW9uPSIwMCIgUm93X2Zvcm1hdD0iRHluYW1p YyIgUm93cz0iMyIgQXZnX3Jvd19sZW5ndGg9IjAwIiBEYXRhX2xlbmd0aD0iMDAiIE1heF9kYXRh X2xlbmd0aD0iMDAwMDAwMDAwMDAwMDA1IiBJbmRleF9sZW5ndGg9IjAwMDAiIERhdGFfZnJlZT0i MCIgQ3JlYXRlX3RpbWU9IjAwMDAtMDAtMDAgMDA6MDA6MDAiIFVwZGF0ZV90aW1lPSIwMDAwLTAw LTAwIDAwOjAwOjAwIiBDb2xsYXRpb249ImxhdGluMV9zd2VkaXNoX2NpIiBDcmVhdGVfb3B0aW9u cz0iIiBDb21tZW50PSIiIC8+CisJPC90YWJsZV9zdHJ1Y3R1cmU+CisJPHRhYmxlX2RhdGEgbmFt ZT0idDEiPgorCTxyb3c+CisJCTxmaWVsZCBuYW1lPSJjMSI+MTwvZmllbGQ+CisJCTxmaWVsZCBu YW1lPSJjMiI+YWFhPC9maWVsZD4KKwk8L3Jvdz4KKwk8cm93PgorCQk8ZmllbGQgbmFtZT0iYzEi PjI8L2ZpZWxkPgorCQk8ZmllbGQgbmFtZT0iYzIiPmJiYjwvZmllbGQ+CisJPC9yb3c+CisJPHJv dz4KKwkJPGZpZWxkIG5hbWU9ImMxIj4zPC9maWVsZD4KKwkJPGZpZWxkIG5hbWU9ImMyIj5jY2M8 L2ZpZWxkPgorCTwvcm93PgorCTwvdGFibGVfZGF0YT4KKwk8dGFibGVfc3RydWN0dXJlIG5hbWU9 InQyIj4KKwkJPGZpZWxkIEZpZWxkPSJjMSIgVHlwZT0iaW50KDAwKSIgTnVsbD0iWUVTIiBLZXk9 IiIgRXh0cmE9IiIgQ29tbWVudD0iIiAvPgorCQk8b3B0aW9ucyBOYW1lPSJ0MiIgRW5naW5lPSJN eUlTQU0iIFZlcnNpb249IjAwIiBSb3dfZm9ybWF0PSJGaXhlZCIgUm93cz0iMyIgQXZnX3Jvd19s ZW5ndGg9IjciIERhdGFfbGVuZ3RoPSIwMCIgTWF4X2RhdGFfbGVuZ3RoPSIwMDAwMDAwMDAwMDAw MDAwIiBJbmRleF9sZW5ndGg9IjAwMDAiIERhdGFfZnJlZT0iMCIgQ3JlYXRlX3RpbWU9IjAwMDAt MDAtMDAgMDA6MDA6MDAiIFVwZGF0ZV90aW1lPSIwMDAwLTAwLTAwIDAwOjAwOjAwIiBDb2xsYXRp b249ImxhdGluMV9zd2VkaXNoX2NpIiBDcmVhdGVfb3B0aW9ucz0iIiBDb21tZW50PSIiIC8+CisJ PC90YWJsZV9zdHJ1Y3R1cmU+CisJPHRhYmxlX2RhdGEgbmFtZT0idDIiPgorCTxyb3c+CisJCTxm aWVsZCBuYW1lPSJjMSI+MTwvZmllbGQ+CisJPC9yb3c+CisJPHJvdz4KKwkJPGZpZWxkIG5hbWU9 ImMxIj4yPC9maWVsZD4KKwk8L3Jvdz4KKwk8cm93PgorCQk8ZmllbGQgbmFtZT0iYzEiPjM8L2Zp ZWxkPgorCTwvcm93PgorCTwvdGFibGVfZGF0YT4KKwk8dHJpZ2dlcnMgbmFtZT0idDIiPgorCQk8 dHJpZ2dlciBUcmlnZ2VyPSJ0cmlnMSIgc3FsX21vZGU9IiIgY2hhcmFjdGVyX3NldF9jbGllbnQ9 ImxhdGluMSIgY29sbGF0aW9uX2Nvbm5lY3Rpb249ImxhdGluMV9zd2VkaXNoX2NpIiBEYXRhYmFz ZV9Db2xsYXRpb249ImxhdGluMV9zd2VkaXNoX2NpIj4KKzwhW0NEQVRBWworQ1JFQVRFIERFRklO RVI9YHJvb3RgQGBsb2NhbGhvc3RgIFRSSUdHRVIgdHJpZzEgQkVGT1JFIElOU0VSVCBPTiB0Mgor Rk9SIEVBQ0ggUk9XIEJFR0lOCitJTlNFUlQgSU5UTyB0MiBWQUxVRVMoMSk7CitFTkQKK11dPgor CQk8L3RyaWdnZXI+CisJCTx0cmlnZ2VyIFRyaWdnZXI9InRyaWcyIiBzcWxfbW9kZT0iIiBjaGFy YWN0ZXJfc2V0X2NsaWVudD0ibGF0aW4xIiBjb2xsYXRpb25fY29ubmVjdGlvbj0ibGF0aW4xX3N3 ZWRpc2hfY2kiIERhdGFiYXNlX0NvbGxhdGlvbj0ibGF0aW4xX3N3ZWRpc2hfY2kiPgorPCFbQ0RB VEFbCitDUkVBVEUgREVGSU5FUj1gcm9vdGBAYGxvY2FsaG9zdGAgVFJJR0dFUiB0cmlnMiBBRlRF UiBJTlNFUlQgT04gdDIKK0ZPUiBFQUNIIFJPVyBCRUdJTgorSU5TRVJUIElOVE8gdDIgVkFMVUVT KDEsICddXV1dPjwhW0NEQVRBWz4nKTsKK0lOU0VSVCBJTlRPIHQyIFZBTFVFUygyLCAnPCFbQ0RB VEFdXV1dPjwhW0NEQVRBWz4nKTsKK0lOU0VSVCBJTlRPIHQyIFZBTFVFUygzLCAnPCFbQ0RBVEFb Jyk7CitJTlNFUlQgSU5UTyB0MiBWQUxVRVMoNCwgJzwgPiAmIFwgIiBfJyk7CitFTkQKK11dPgor CQk8L3RyaWdnZXI+CisJPC90cmlnZ2Vycz4KKwk8dGFibGVfc3RydWN0dXJlIG5hbWU9InYxIj4K KwkJPGZpZWxkIEZpZWxkPSJjMSIgVHlwZT0iaW50KDAwKSIgTnVsbD0iWUVTIiBLZXk9IiIgRXh0 cmE9IiIgQ29tbWVudD0iIiAvPgorCQk8ZmllbGQgRmllbGQ9ImMyIiBUeXBlPSJ2YXJjaGFyKDAw KSIgTnVsbD0iWUVTIiBLZXk9IiIgRXh0cmE9IiIgQ29tbWVudD0iIiAvPgorCQk8b3B0aW9ucyBO YW1lPSJ2MSIgQ29tbWVudD0iVklFVyIgLz4KKwk8L3RhYmxlX3N0cnVjdHVyZT4KKwk8dGFibGVf c3RydWN0dXJlIG5hbWU9InYyIj4KKwkJPGZpZWxkIEZpZWxkPSJjMSIgVHlwZT0iaW50KDAwKSIg TnVsbD0iWUVTIiBLZXk9IiIgRXh0cmE9IiIgQ29tbWVudD0iIiAvPgorCQk8b3B0aW9ucyBOYW1l PSJ2MiIgQ29tbWVudD0iVklFVyIgLz4KKwk8L3RhYmxlX3N0cnVjdHVyZT4KKwk8ZXZlbnRzPgor CQk8ZXZlbnQgRXZlbnQ9ImUxIiBzcWxfbW9kZT0iIiB0aW1lX3pvbmU9IlNZU1RFTSIgY2hhcmFj dGVyX3NldF9jbGllbnQ9ImxhdGluMSIgY29sbGF0aW9uX2Nvbm5lY3Rpb249ImxhdGluMV9zd2Vk aXNoX2NpIiBEYXRhYmFzZV9Db2xsYXRpb249ImxhdGluMV9zd2VkaXNoX2NpIj4KKzwhW0NEQVRB WworQ1JFQVRFIEVWRU5UIGBlMWAgT04gU0NIRURVTEUgRVZFUlkgMSBTRUNPTkQgU1RBUlRTICcw MDAwLTAwLTAwIDAwOjAwOjAwJyBPTiBDT01QTEVUSU9OIE5PVCBQUkVTRVJWRSBFTkFCTEUgRE8g RFJPUCBEQVRBQkFTRSBCVUcwMDAwMgorXV0+CisJCTwvZXZlbnQ+CisJCTxldmVudCBFdmVudD0i ZTIiIHNxbF9tb2RlPSIiIHRpbWVfem9uZT0iU1lTVEVNIiBjaGFyYWN0ZXJfc2V0X2NsaWVudD0i bGF0aW4xIiBjb2xsYXRpb25fY29ubmVjdGlvbj0ibGF0aW4xX3N3ZWRpc2hfY2kiIERhdGFiYXNl X0NvbGxhdGlvbj0ibGF0aW4xX3N3ZWRpc2hfY2kiPgorPCFbQ0RBVEFbCitDUkVBVEUgRVZFTlQg YGUyYCBPTiBTQ0hFRFVMRSBFVkVSWSAxIFNFQ09ORCBTVEFSVFMgJzAwMDAtMDAtMDAgMDA6MDA6 MDAnIE9OIENPTVBMRVRJT04gTk9UIFBSRVNFUlZFIEVOQUJMRSBETyBEUk9QIERBVEFCQVNFIEJV RzAwMDAyCitdXT4KKwkJPC9ldmVudD4KKwk8L2V2ZW50cz4KKwk8cm91dGluZXM+Cis8IS0tIAor LSBpbnN1ZmZpY2llbnQgcHJpdmlsZWdlcyB0byBTSE9XIENSRUFURSBGVU5DVElPTiBgaGVsbG8x YAorIC0tPgorPCEtLSAtIGRvZXMgdXNlcjEgaGF2ZSBwZXJtaXNzaW9ucyBvbiBteXNxbC5wcm9j PworCisgLS0+CitEUk9QIFVTRVIgdXNlcjE7CitEUk9QIERBVEFCQVNFIEJVRzUyNzkyOworIyBV VEYtOAorQ1JFQVRFIERBVEFCQVNFIEJVRzUyNzkyOworVVNFIEJVRzUyNzkyOworU0VUIE5BTUVT IHV0Zjg7CitDUkVBVEUgRlVOQ1RJT04gYHN0cmHDn2VgICggYzEgQ0hBUigyMCkpCitSRVRVUk5T IENIQVIoNTApIERFVEVSTUlOSVNUSUMKK1JFVFVSTiBDT05DQVQoJ11dPiwgJywgcywgJyEnKTsK Kzw/eG1sIHZlcnNpb249IjEuMCI/PgorPG15c3FsZHVtcCB4bWxuczp4c2k9Imh0dHA6Ly93d3cu dzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIj4KKzxkYXRhYmFzZSBuYW1lPSJCVUc1Mjc5 MiI+CisJPHJvdXRpbmVzPgorCQk8cm91dGluZSBGdW5jdGlvbj0ic3RyYcOfZSIgc3FsX21vZGU9 IiIgY2hhcmFjdGVyX3NldF9jbGllbnQ9InV0ZjgiIGNvbGxhdGlvbl9jb25uZWN0aW9uPSJ1dGY4 X2dlbmVyYWxfY2kiIERhdGFiYXNlX0NvbGxhdGlvbj0ibGF0aW4xX3N3ZWRpc2hfY2kiPgorPCFb Q0RBVEFbCitDUkVBVEUgREVGSU5FUj1gcm9vdGBAYGxvY2FsaG9zdGAgRlVOQ1RJT04gYHN0cmHD n2VgKCBjMSBDSEFSKDIwKSkgUkVUVVJOUyBjaGFyKDUwKSBDSEFSU0VUIGxhdGluMQorICAgIERF VEVSTUlOSVNUSUMKK1JFVFVSTiBDT05DQVQoJ11dXV0+PCFbQ0RBVEFbPiwgJywgcywgJyEnKQor XV0+CisJCTwvcm91dGluZT4KKwk8L3JvdXRpbmVzPgorPC9kYXRhYmFzZT4KKzwvbXlzcWxkdW1w PgorRFJPUCBEQVRBQkFTRSBCVUc1Mjc5MjsKK1VTRSB0ZXN0OworIwogIyBFbmQgb2YgNS4xIHRl c3RzCiAjCgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC90L215c3FsZHVtcC50ZXN0Jwot LS0gYS9teXNxbC10ZXN0L3QvbXlzcWxkdW1wLnRlc3QJMjAxMS0wMy0xNyAxMDo1ODoxNiArMDAw MAorKysgYi9teXNxbC10ZXN0L3QvbXlzcWxkdW1wLnRlc3QJMjAxMS0wNS0wNyAxMzo0MjoyNyAr MDAwMApAQCAtMjE5Nyw2ICsyMTk3LDExOCBAQCBEUk9QIERBVEFCQVNFIGB0ZXN0LWRhdGFiYXNl YDsKIFVTRSBgdGVzdGA7CiAKIC0tZWNobyAjCistLWVjaG8gIyBCVUcjMTE3NjAzODQgOiA1Mjc5 MjogbXlzcWxkdW1wIGluIFhNTCBtb2RlIGRvZXMgbm90IGR1bXAgcm91dGluZXMuCistLWVjaG8g IworQ1JFQVRFIERBVEFCQVNFIEJVRzUyNzkyOworVVNFIEJVRzUyNzkyOworQ1JFQVRFIFRBQkxF IHQxIChjMSBJTlQsIGMyIFZBUkNIQVIoMjApKTsKK0NSRUFURSBUQUJMRSB0MiAoYzEgSU5UKTsK K0lOU0VSVCBJTlRPIHQxIFZBTFVFUyAoMSwgJ2FhYScpLCAoMiwgJ2JiYicpLCAoMywgJ2NjYycp OworSU5TRVJUIElOVE8gdDIgVkFMVUVTICgxKSwoMiksKDMpOworCistLWVjaG8gIyBTdG9yZWQg UHJvY2VkdXJlcy4KKworREVMSU1JVEVSIC8vOworQ1JFQVRFIFBST0NFRFVSRSBzaW1wbGVwcm9j MSAoT1VUIHBhcmFtMSBJTlQpCitCRUdJTgorICBTRUxFQ1QgQ09VTlQoKikgSU5UTyBwYXJhbTEg RlJPTSB0MTsKK0VORC8vCitERUxJTUlURVIgOy8vCisKK0RFTElNSVRFUiAvLzsKK0NSRUFURSBQ Uk9DRURVUkUgc2ltcGxlcHJvYzIgKE9VVCBwYXJhbTEgSU5UKQorQkVHSU4KKyAgU0VMRUNUIENP VU5UKCopIElOVE8gcGFyYW0xIEZST00gdDI7CitFTkQvLworREVMSU1JVEVSIDsvLworCistLWVj aG8gIyBFdmVudHMuCisKK0NSRUFURSBFVkVOVCBlMSBPTiBTQ0hFRFVMRSBFVkVSWSAxIFNFQ09O RCBETyBEUk9QIERBVEFCQVNFIEJVRzUyNzkyOworQ1JFQVRFIEVWRU5UIGUyIE9OIFNDSEVEVUxF IEVWRVJZIDEgU0VDT05EIERPIERST1AgREFUQUJBU0UgQlVHNTI3OTI7CisKKy0tZWNobyAjIEZ1 bmN0aW9ucy4KKworQ1JFQVRFIEZVTkNUSU9OIGBoZWxsbzFgIChzIENIQVIoMjApKQorICBSRVRV Uk5TIENIQVIoNTApIERFVEVSTUlOSVNUSUMKK1JFVFVSTiBDT05DQVQoJ0hlbGxvLCAnICxzICwn IScpOworCitDUkVBVEUgRlVOQ1RJT04gYGhlbGxvMmAgKHMgQ0hBUigyMCkpCisgICAgUkVUVVJO UyBDSEFSKDUwKSBERVRFUk1JTklTVElDCitSRVRVUk4gQ09OQ0FUKCddXT4sICcgLCBzICwnIScp OworCistLWVjaG8gIyBUcmlnZ2Vycy4KKworREVMSU1JVEVSIHw7CitDUkVBVEUgVFJJR0dFUiB0 cmlnMSBCRUZPUkUgSU5TRVJUIE9OIHQyCisgIEZPUiBFQUNIIFJPVyBCRUdJTgorICAgIElOU0VS VCBJTlRPIHQyIFZBTFVFUygxKTsKK0VORDsKK3wKK0RFTElNSVRFUiA7fAorCitERUxJTUlURVIg fDsKK0NSRUFURSBUUklHR0VSIHRyaWcyIEFGVEVSIElOU0VSVCBPTiB0MgorICBGT1IgRUFDSCBS T1cgQkVHSU4KKyAgICBJTlNFUlQgSU5UTyB0MiBWQUxVRVMoMSwgJ11dPicpOworICAgIElOU0VS VCBJTlRPIHQyIFZBTFVFUygyLCAnPCFbQ0RBVEFdXT4nKTsKKyAgICBJTlNFUlQgSU5UTyB0MiBW QUxVRVMoMywgJzwhW0NEQVRBWycpOworICAgIElOU0VSVCBJTlRPIHQyIFZBTFVFUyg0LCAnPCA+ ICYgXCAiIF8nKTsKK0VORDsKK3wKK0RFTElNSVRFUiA7fAorCistLWVjaG8gIyBWaWV3cworCitD UkVBVEUgVklFVyB2MSBBUyBTRUxFQ1QgKiBGUk9NIHQxOworQ1JFQVRFIFZJRVcgdjIgQVMgU0VM RUNUICogRlJPTSB0MjsKKy0tZWNobworLS1lY2hvICMgRHVtcGluZyBCVUc1Mjc5MiBkYXRhYmFz ZSBpbiB4bWwgZm9ybWF0LgorLS1lY2hvCistLWVjaG8gIyBVc2luZyAncmVwbGFjZV9yZWdleCAv WzAtOV17Mn0vMDAvJworLS1yZXBsYWNlX3JlZ2V4IC9bMC05XXsyfS8wMC8KKy0tZXhlYyAkTVlT UUxfRFVNUCAtLXVzZXI9cm9vdCAtLWNvbXBhY3QgLVIgLUUgLS10cmlnZ2VycyAtWCBCVUc1Mjc5 MgorLS1lY2hvCistLWVjaG8gIyBEdW1waW5nIEJVRzUyNzkyIGRhdGFiYXNlIGluIHhtbCBmb3Jt YXQgd2l0aCBjb21tZW50cy4KKy0tZWNobworLS1lY2hvICMgVXNpbmcgJ3JlcGxhY2VfcmVnZXgg L1swLTldezJ9LzAwLycKKy0tcmVwbGFjZV9yZWdleCAvWzAtOV17Mn0vMDAvCistLWV4ZWMgJE1Z U1FMX0RVTVAgLS1jb21tZW50cyAtLXVzZXI9cm9vdCAtUiAtRSAtLXRyaWdnZXJzIC1YIEJVRzUy NzkyCisKKy0tZWNobworLS1lY2hvICMgVGVzdCB0byBjaGVjayAnSW5zdWZmaWNpZW50IHByaXZp bGVnZXMnIGVycm9yLgorLS1lY2hvCisKK0dSQU5UIEFMTCBQUklWSUxFR0VTIE9OIEJVRzUyNzky LiogVE8gdXNlcjE7CisKK2Nvbm5lY3QgKGNvbm5fMSwgbG9jYWxob3N0LCB1c2VyMSwgLCBCVUc1 Mjc5MiwgJE1BU1RFUl9NWVBPUlQsICRNQVNURVJfTVlTT0NLKTsKK2Nvbm5lY3Rpb24gY29ubl8x OworCistLWVjaG8gIyBVc2luZyAncmVwbGFjZV9yZWdleCAvWzAtOV17Mn0vMDAvJworLS1yZXBs YWNlX3JlZ2V4IC9bMC05XXsyfS8wMC8KKy0tZXJyb3IgMgorLS1leGVjICRNWVNRTF9EVU1QIC0t dXNlcj11c2VyMSAtUiAtRSAtLXRyaWdnZXJzIC1YIEJVRzUyNzkyCisKK2Nvbm5lY3Rpb24gZGVm YXVsdDsKK2Rpc2Nvbm5lY3QgY29ubl8xOworCitEUk9QIFVTRVIgdXNlcjE7CitEUk9QIERBVEFC QVNFIEJVRzUyNzkyOworLS1lY2hvICMgVVRGLTgKK0NSRUFURSBEQVRBQkFTRSBCVUc1Mjc5MjsK K1VTRSBCVUc1Mjc5MjsKK1NFVCBOQU1FUyB1dGY4OworQ1JFQVRFIEZVTkNUSU9OIGBzdHJhw59l YCAoIGMxIENIQVIoMjApKQorICBSRVRVUk5TIENIQVIoNTApIERFVEVSTUlOSVNUSUMKK1JFVFVS TiBDT05DQVQoJ11dPiwgJywgcywgJyEnKTsKKworLS1leGVjICRNWVNRTF9EVU1QIC0tY2hhcmFj dGVyLXNldHMtZGlyPSRDSEFSU0VUU0RJUiAtLXNraXAtY29tbWVudHMgLS1kZWZhdWx0LWNoYXJh Y3Rlci1zZXQ9dXRmOCAtLWNvbXBhdGlibGU9bXlzcWwzMjMgLVIgLVggQlVHNTI3OTIKKworRFJP UCBEQVRBQkFTRSBCVUc1Mjc5MjsKKworVVNFIHRlc3Q7CisKKy0tZWNobyAjCiAtLWVjaG8gIyBF bmQgb2YgNS4xIHRlc3RzCiAtLWVjaG8gIwogCgo= --===============1340689205== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/nirbhay.choubey@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: nirbhay.choubey@stripped\ # 4ly8etpmkjv1xf6t # target_branch: file:///home/nirbhay/Project/mysql/repo/bugs/mysql-\ # 5.1.52792/ # testament_sha1: 4b9b8f5094f0a35ed45bf5e2a3038b41a3524507 # timestamp: 2011-05-07 19:12:33 +0530 # base_revision_id: karen.langford@stripped\ # entd41h2zg2nk9rq # # Begin bundle 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 --===============1340689205==--