From: marko.makela Date: May 17 2011 11:42am Subject: bzr commit into mysql-trunk-innodb branch (marko.makela:3629) Bug#12561303 List-Archive: http://lists.mysql.com/commits/137648 X-Bug: 12561303 Message-Id: <201105171142.p4HBgc7k032260@acsmt356.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0461867959==" --===============0461867959== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline I0F0IGZpbGU6Ly8vaG9tZS9tYXJrby9pbm5vYmFzZS9kZXYvbXlzcWwyYS81LjYtaW5ub2RiLyBi YXNlZCBvbiByZXZpZDppbmFhbS5yYW5hQG9yYWNsZS5jb20tMjAxMTA1MTYxNjAxMzktOTU5andu d3BjMXkyMjBtcgoKIDM2MjkgTWFya28gTcOka2Vsw6QJMjAxMS0wNS0xNwogICAgICBCdWcjMTI1 NjEzMDMgSW5ub0RCIGZpbGUgQVBJIHVzZXMgdHdvIHBhcmFtZXRlcnMgZm9yIGZpbGUgc2l6ZQog ICAgICAKICAgICAgRGVmaW5lIG9zX29mZnNldF90IGFzIGliX3VpbnQ2NF90LiBQcmV2aW91c2x5 LCBmaWxlIG9mZnNldHMgd2VyZQogICAgICBkZWZpbmVkIGFzIGliX2ludDY0X3Qgb3IgcGFpcnMg b2YgdWxpbnQuCiAgICAgIAogICAgICBvc19haW8oKSwgb3NfZmlsZV9yZWFkKCksIG9zX2ZpbGVf d3JpdGUoKSwgb3NfZmlsZV9yZWFkX25vX2Vycm9yX2hhbmRsaW5nKCk6CiAgICAgIFJlcGxhY2Ug b2Zmc2V0X2xvdyxvZmZzZXRfaGlnaCB3aXRoIG9mZnNldC4KICAgICAgCiAgICAgIG9zX2ZpbGVf Z2V0X3NpemUoKTogUmV0dXJuIHRoZSBmaWxlIHNpemUgb3IgLTEgb24gZXJyb3IuIENoZWNrIHRo ZQogICAgICByZXR1cm4gdmFsdWUgaW4gY2FsbGVycy4KICAgICAgCiAgICAgIG9zX2ZpbGVfZ2V0 X3NpemVfYXNfaWJsb25nbG9uZygpOiBSZW1vdmU7IHJlcGxhY2VkIGJ5IG9zX2ZpbGVfZ2V0X3Np emUoKS4KICAgICAgCiAgICAgIHV0X2dldF9oaWdoMzIoKTogUmVtb3ZlLgogICAgICAKICAgICAg cmI6NjYyIGFwcHJvdmVkIGJ5IFN1bm55IEJhaW5zCgogICAgbW9kaWZpZWQ6CiAgICAgIHN0b3Jh Z2UvaW5ub2Jhc2UvZmlsL2ZpbDBmaWwuYwogICAgICBzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUv b3MwZmlsZS5oCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9vczBmaWxlLmljCiAgICAg IHN0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS91dDB1dC5oCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2Uv bG9nL2xvZzByZWN2LmMKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9vcy9vczBmaWxlLmMKICAgICAg c3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MG1lcmdlLmMKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9z cnYvc3J2MHN0YXJ0LmMKICAgICAgc3RvcmFnZS9pbm5vYmFzZS91dC91dDB1dC5jCj09PSBtb2Rp ZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2ZpbC9maWwwZmlsLmMnCi0tLSBhL3N0b3JhZ2Uv aW5ub2Jhc2UvZmlsL2ZpbDBmaWwuYwlyZXZpZDppbmFhbS5yYW5hQG9yYWNsZS5jb20tMjAxMTA1 MTYxNjAxMzktOTU5andud3BjMXkyMjBtcgorKysgYi9zdG9yYWdlL2lubm9iYXNlL2ZpbC9maWww ZmlsLmMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMTA1MTcxMTQyMTAtZTdkZng5 ejM2cjJ0dW16egpAQCAtNjY4LDkgKzY2OCw3IEBAIGZpbF9ub2RlX29wZW5fZmlsZSgKIAlmaWxf c3lzdGVtX3QqCXN5c3RlbSwJLyohPCBpbjogdGFibGVzcGFjZSBtZW1vcnkgY2FjaGUgKi8KIAlm aWxfc3BhY2VfdCoJc3BhY2UpCS8qITwgaW46IHNwYWNlICovCiB7Ci0JaWJfaW50NjRfdAlzaXpl X2J5dGVzOwotCXVsaW50CQlzaXplX2xvdzsKLQl1bGludAkJc2l6ZV9oaWdoOworCW9zX29mZnNl dF90CXNpemVfYnl0ZXM7CiAJaWJvb2wJCXJldDsKIAlpYm9vbAkJc3VjY2VzczsKIAlieXRlKgkJ YnVmMjsKQEAgLTcwOCwxMCArNzA2LDggQEAgZmlsX25vZGVfb3Blbl9maWxlKAogCQkJdXRfYSgw KTsKIAkJfQogCi0JCW9zX2ZpbGVfZ2V0X3NpemUobm9kZS0+aGFuZGxlLCAmc2l6ZV9sb3csICZz aXplX2hpZ2gpOwotCi0JCXNpemVfYnl0ZXMgPSAoKChpYl9pbnQ2NF90KXNpemVfaGlnaCkgPDwg MzIpCi0JCQkrIChpYl9pbnQ2NF90KXNpemVfbG93OworCQlzaXplX2J5dGVzID0gb3NfZmlsZV9n ZXRfc2l6ZShub2RlLT5oYW5kbGUpOworCQl1dF9hKHNpemVfYnl0ZXMgIT0gKG9zX29mZnNldF90 KSAtMSk7CiAjaWZkZWYgVU5JVl9IT1RCQUNLVVAKIAkJaWYgKHNwYWNlLT5pZCA9PSAwKSB7CiAJ CQlub2RlLT5zaXplID0gKHVsaW50KSAoc2l6ZV9ieXRlcyAvIFVOSVZfUEFHRV9TSVpFKTsKQEAg LTcyNiwxMSArNzIyLDEwIEBAIGZpbF9ub2RlX29wZW5fZmlsZSgKIAkJCWZwcmludGYoc3RkZXJy LAogCQkJCSJJbm5vREI6IEVycm9yOiB0aGUgc2l6ZSBvZiBzaW5nbGUtdGFibGUiCiAJCQkJIiB0 YWJsZXNwYWNlIGZpbGUgJXNcbiIKLQkJCQkiSW5ub0RCOiBpcyBvbmx5ICVsdSAlbHUsIgorCQkJ CSJJbm5vREI6IGlzIG9ubHkgJWxsdSwiCiAJCQkJIiBzaG91bGQgYmUgYXQgbGVhc3QgJWx1IVxu IiwKIAkJCQlub2RlLT5uYW1lLAotCQkJCSh1bG9uZykgc2l6ZV9oaWdoLAotCQkJCSh1bG9uZykg c2l6ZV9sb3csCisJCQkJc2l6ZV9ieXRlcywKIAkJCQkodWxvbmcpIChGSUxfSUJEX0ZJTEVfSU5J VElBTF9TSVpFCiAJCQkJCSAqIFVOSVZfUEFHRV9TSVpFKSk7CiAKQEAgLTc0NCw4ICs3MzksNyBA QCBmaWxfbm9kZV9vcGVuX2ZpbGUoCiAJCXNldCAqLwogCQlwYWdlID0gdXRfYWxpZ24oYnVmMiwg VU5JVl9QQUdFX1NJWkUpOwogCi0JCXN1Y2Nlc3MgPSBvc19maWxlX3JlYWQobm9kZS0+aGFuZGxl LCBwYWdlLCAwLCAwLAotCQkJCSAgICAgICBVTklWX1BBR0VfU0laRSk7CisJCXN1Y2Nlc3MgPSBv c19maWxlX3JlYWQobm9kZS0+aGFuZGxlLCBwYWdlLCAwLCBVTklWX1BBR0VfU0laRSk7CiAJCXNw YWNlX2lkID0gZnNwX2hlYWRlcl9nZXRfc3BhY2VfaWQocGFnZSk7CiAJCWZsYWdzID0gZnNwX2hl YWRlcl9nZXRfZmxhZ3MocGFnZSk7CiAKQEAgLTE4MzcsNyArMTgzMSw3IEBAIGZpbF9yZWFkX2Zs dXNoZWRfbHNuX2FuZF9hcmNoX2xvZ19ubygKIAkvKiBBbGlnbiB0aGUgbWVtb3J5IGZvciBhIHBv c3NpYmxlIHJlYWQgZnJvbSBhIHJhdyBkZXZpY2UgKi8KIAlidWYgPSB1dF9hbGlnbihidWYyLCBV TklWX1BBR0VfU0laRSk7CiAKLQlvc19maWxlX3JlYWQoZGF0YV9maWxlLCBidWYsIDAsIDAsIFVO SVZfUEFHRV9TSVpFKTsKKwlvc19maWxlX3JlYWQoZGF0YV9maWxlLCBidWYsIDAsIFVOSVZfUEFH RV9TSVpFKTsKIAogCWZsdXNoZWRfbHNuID0gbWFjaF9yZWFkX2Zyb21fOChidWYgKyBGSUxfUEFH RV9GSUxFX0ZMVVNIX0xTTik7CiAKQEAgLTI3NjAsNyArMjc1NCw3IEBAIGZpbF9jcmVhdGVfbmV3 X3NpbmdsZV90YWJsZV90YWJsZXNwYWNlKAogCQlyZXR1cm4oREJfRVJST1IpOwogCX0KIAotCXJl dCA9IG9zX2ZpbGVfc2V0X3NpemUocGF0aCwgZmlsZSwgc2l6ZSAqIFVOSVZfUEFHRV9TSVpFLCAw KTsKKwlyZXQgPSBvc19maWxlX3NldF9zaXplKHBhdGgsIGZpbGUsIHNpemUgKiBVTklWX1BBR0Vf U0laRSk7CiAKIAlpZiAoIXJldCkgewogCQllcnIgPSBEQl9PVVRfT0ZfRklMRV9TUEFDRTsKQEAg LTI3OTUsNyArMjc4OSw3IEBAIGVycm9yX2V4aXQyOgogCiAJaWYgKCEoZmxhZ3MgJiBESUNUX1RG X1pTU0laRV9NQVNLKSkgewogCQlidWZfZmx1c2hfaW5pdF9mb3Jfd3JpdGluZyhwYWdlLCBOVUxM LCAwKTsKLQkJcmV0ID0gb3NfZmlsZV93cml0ZShwYXRoLCBmaWxlLCBwYWdlLCAwLCAwLCBVTklW X1BBR0VfU0laRSk7CisJCXJldCA9IG9zX2ZpbGVfd3JpdGUocGF0aCwgZmlsZSwgcGFnZSwgMCwg VU5JVl9QQUdFX1NJWkUpOwogCX0gZWxzZSB7CiAJCXBhZ2VfemlwX2Rlc190CXBhZ2VfemlwOwog CQl1bGludAkJemlwX3NpemU7CkBAIC0yODEyLDcgKzI4MDYsNyBAQCBlcnJvcl9leGl0MjoKIAkJ CXBhZ2VfemlwLm1fZW5kID0gcGFnZV96aXAubV9ub25lbXB0eSA9CiAJCQlwYWdlX3ppcC5uX2Js b2JzID0gMDsKIAkJYnVmX2ZsdXNoX2luaXRfZm9yX3dyaXRpbmcocGFnZSwgJnBhZ2VfemlwLCAw KTsKLQkJcmV0ID0gb3NfZmlsZV93cml0ZShwYXRoLCBmaWxlLCBwYWdlX3ppcC5kYXRhLCAwLCAw LCB6aXBfc2l6ZSk7CisJCXJldCA9IG9zX2ZpbGVfd3JpdGUocGF0aCwgZmlsZSwgcGFnZV96aXAu ZGF0YSwgMCwgemlwX3NpemUpOwogCX0KIAogCXV0X2ZyZWUoYnVmMik7CkBAIC0yODk1LDggKzI4 ODksOCBAQCBmaWxfcmVzZXRfdG9vX2hpZ2hfbHNucygKIAlieXRlKgkJYnVmMjsKIAlsc25fdAkJ Zmx1c2hfbHNuOwogCXVsaW50CQlzcGFjZV9pZDsKLQlpYl9pbnQ2NF90CWZpbGVfc2l6ZTsKLQlp Yl9pbnQ2NF90CW9mZnNldDsKKwlvc19vZmZzZXRfdAlmaWxlX3NpemU7CisJb3Nfb2Zmc2V0X3QJ b2Zmc2V0OwogCXVsaW50CQl6aXBfc2l6ZTsKIAlpYm9vbAkJc3VjY2VzczsKIAlwYWdlX3ppcF9k ZXNfdAlwYWdlX3ppcDsKQEAgLTI5MjgsNyArMjkyMiw3IEBAIGZpbF9yZXNldF90b29faGlnaF9s c25zKAogCS8qIEFsaWduIHRoZSBtZW1vcnkgZm9yIGZpbGUgaS9vIGlmIHdlIG1pZ2h0IGhhdmUg T19ESVJFQ1Qgc2V0ICovCiAJcGFnZSA9IHV0X2FsaWduKGJ1ZjIsIFVOSVZfUEFHRV9TSVpFKTsK IAotCXN1Y2Nlc3MgPSBvc19maWxlX3JlYWQoZmlsZSwgcGFnZSwgMCwgMCwgVU5JVl9QQUdFX1NJ WkUpOworCXN1Y2Nlc3MgPSBvc19maWxlX3JlYWQoZmlsZSwgcGFnZSwgMCwgVU5JVl9QQUdFX1NJ WkUpOwogCWlmICghc3VjY2VzcykgewogCiAJCWdvdG8gZnVuY19leGl0OwpAQCAtMjk3MiwxMyAr Mjk2NiwxMiBAQCBmaWxfcmVzZXRfdG9vX2hpZ2hfbHNucygKIAkvKiBMb29wIHRocm91Z2ggYWxs IHRoZSBwYWdlcyBpbiB0aGUgdGFibGVzcGFjZSBhbmQgcmVzZXQgdGhlIGxzbiBhbmQKIAl0aGUg cGFnZSBjaGVja3N1bSBpZiBuZWNlc3NhcnkgKi8KIAotCWZpbGVfc2l6ZSA9IG9zX2ZpbGVfZ2V0 X3NpemVfYXNfaWJsb25nbG9uZyhmaWxlKTsKKwlmaWxlX3NpemUgPSBvc19maWxlX2dldF9zaXpl KGZpbGUpOworCXV0X2EoZmlsZV9zaXplICE9IChvc19vZmZzZXRfdCkgLTEpOwogCiAJZm9yIChv ZmZzZXQgPSAwOyBvZmZzZXQgPCBmaWxlX3NpemU7CiAJICAgICBvZmZzZXQgKz0gemlwX3NpemUg PyB6aXBfc2l6ZSA6IFVOSVZfUEFHRV9TSVpFKSB7Ci0JCXN1Y2Nlc3MgPSBvc19maWxlX3JlYWQo ZmlsZSwgcGFnZSwKLQkJCQkgICAgICAgKHVsaW50KShvZmZzZXQgJiAweEZGRkZGRkZGVUwpLAot CQkJCSAgICAgICAodWxpbnQpKG9mZnNldCA+PiAzMiksCisJCXN1Y2Nlc3MgPSBvc19maWxlX3Jl YWQoZmlsZSwgcGFnZSwgb2Zmc2V0LAogCQkJCSAgICAgICB6aXBfc2l6ZSA/IHppcF9zaXplIDog VU5JVl9QQUdFX1NJWkUpOwogCQlpZiAoIXN1Y2Nlc3MpIHsKIApAQCAtMjk5MywxNiArMjk4Niwx MyBAQCBmaWxfcmVzZXRfdG9vX2hpZ2hfbHNucygKIAkJCQkJcGFnZSwgJnBhZ2VfemlwLCBjdXJy ZW50X2xzbik7CiAJCQkJc3VjY2VzcyA9IG9zX2ZpbGVfd3JpdGUoCiAJCQkJCWZpbGVwYXRoLCBm aWxlLCBwYWdlX3ppcC5kYXRhLAotCQkJCQkodWxpbnQpIG9mZnNldCAmIDB4RkZGRkZGRkZVTCwK LQkJCQkJKHVsaW50KSAob2Zmc2V0ID4+IDMyKSwgemlwX3NpemUpOworCQkJCQlvZmZzZXQsIHpp cF9zaXplKTsKIAkJCX0gZWxzZSB7CiAJCQkJYnVmX2ZsdXNoX2luaXRfZm9yX3dyaXRpbmcoCiAJ CQkJCXBhZ2UsIE5VTEwsIGN1cnJlbnRfbHNuKTsKIAkJCQlzdWNjZXNzID0gb3NfZmlsZV93cml0 ZSgKIAkJCQkJZmlsZXBhdGgsIGZpbGUsIHBhZ2UsCi0JCQkJCSh1bGludCkob2Zmc2V0ICYgMHhG RkZGRkZGRlVMKSwKLQkJCQkJKHVsaW50KShvZmZzZXQgPj4gMzIpLAotCQkJCQlVTklWX1BBR0Vf U0laRSk7CisJCQkJCW9mZnNldCwgVU5JVl9QQUdFX1NJWkUpOwogCQkJfQogCiAJCQlpZiAoIXN1 Y2Nlc3MpIHsKQEAgLTMwMTksNyArMzAwOSw3IEBAIGZpbF9yZXNldF90b29faGlnaF9sc25zKAog CX0KIAogCS8qIFdlIG5vdyB1cGRhdGUgdGhlIGZsdXNoX2xzbiBzdGFtcCBhdCB0aGUgc3RhcnQg b2YgdGhlIGZpbGUgKi8KLQlzdWNjZXNzID0gb3NfZmlsZV9yZWFkKGZpbGUsIHBhZ2UsIDAsIDAs CisJc3VjY2VzcyA9IG9zX2ZpbGVfcmVhZChmaWxlLCBwYWdlLCAwLAogCQkJICAgICAgIHppcF9z aXplID8gemlwX3NpemUgOiBVTklWX1BBR0VfU0laRSk7CiAJaWYgKCFzdWNjZXNzKSB7CiAKQEAg LTMwMjgsNyArMzAxOCw3IEBAIGZpbF9yZXNldF90b29faGlnaF9sc25zKAogCiAJbWFjaF93cml0 ZV90b184KHBhZ2UgKyBGSUxfUEFHRV9GSUxFX0ZMVVNIX0xTTiwgY3VycmVudF9sc24pOwogCi0J c3VjY2VzcyA9IG9zX2ZpbGVfd3JpdGUoZmlsZXBhdGgsIGZpbGUsIHBhZ2UsIDAsIDAsCisJc3Vj Y2VzcyA9IG9zX2ZpbGVfd3JpdGUoZmlsZXBhdGgsIGZpbGUsIHBhZ2UsIDAsCiAJCQkJemlwX3Np emUgPyB6aXBfc2l6ZSA6IFVOSVZfUEFHRV9TSVpFKTsKIAlpZiAoIXN1Y2Nlc3MpIHsKIApAQCAt MzEyOCw3ICszMTE4LDcgQEAgZmlsX29wZW5fc2luZ2xlX3RhYmxlX3RhYmxlc3BhY2UoCiAJLyog QWxpZ24gdGhlIG1lbW9yeSBmb3IgZmlsZSBpL28gaWYgd2UgbWlnaHQgaGF2ZSBPX0RJUkVDVCBz ZXQgKi8KIAlwYWdlID0gdXRfYWxpZ24oYnVmMiwgVU5JVl9QQUdFX1NJWkUpOwogCi0Jc3VjY2Vz cyA9IG9zX2ZpbGVfcmVhZChmaWxlLCBwYWdlLCAwLCAwLCBVTklWX1BBR0VfU0laRSk7CisJc3Vj Y2VzcyA9IG9zX2ZpbGVfcmVhZChmaWxlLCBwYWdlLCAwLCBVTklWX1BBR0VfU0laRSk7CiAKIAkv KiBXZSBoYXZlIHRvIHJlYWQgdGhlIHRhYmxlc3BhY2UgaWQgYW5kIGZsYWdzIGZyb20gdGhlIGZp bGUuICovCiAKQEAgLTMyMTksOSArMzIwOSw3IEBAIGZpbF9sb2FkX3NpbmdsZV90YWJsZV90YWJs ZXNwYWNlKAogCWJ5dGUqCQlwYWdlOwogCXVsaW50CQlzcGFjZV9pZDsKIAl1bGludAkJZmxhZ3M7 Ci0JdWxpbnQJCXNpemVfbG93OwotCXVsaW50CQlzaXplX2hpZ2g7Ci0JaWJfaW50NjRfdAlzaXpl OworCW9zX29mZnNldF90CXNpemU7CiAjaWZkZWYgVU5JVl9IT1RCQUNLVVAKIAlmaWxfc3BhY2Vf dCoJc3BhY2U7CiAjZW5kaWYKQEAgLTMyODksOSArMzI3Nyw5IEBAIGZpbF9sb2FkX3NpbmdsZV90 YWJsZV90YWJsZXNwYWNlKAogCQlleGl0KDEpOwogCX0KIAotCXN1Y2Nlc3MgPSBvc19maWxlX2dl dF9zaXplKGZpbGUsICZzaXplX2xvdywgJnNpemVfaGlnaCk7CisJc2l6ZSA9IG9zX2ZpbGVfZ2V0 X3NpemUoZmlsZSk7CiAKLQlpZiAoIXN1Y2Nlc3MpIHsKKwlpZiAoVU5JVl9VTkxJS0VMWShzaXpl ID09IChvc19vZmZzZXRfdCkgLTEpKSB7CiAJCS8qIFRoZSBmb2xsb3dpbmcgY2FsbCBwcmludHMg YW4gZXJyb3IgbWVzc2FnZSAqLwogCQlvc19maWxlX2dldF9sYXN0X2Vycm9yKFRSVUUpOwogCkBA IC0zMzQyLDE2ICszMzMwLDE0IEBAIGZpbF9sb2FkX3NpbmdsZV90YWJsZV90YWJsZXNwYWNlKAog CS8qIEV2ZXJ5IC5pYmQgZmlsZSBpcyBjcmVhdGVkID49IDQgcGFnZXMgaW4gc2l6ZS4gU21hbGxl ciBmaWxlcwogCWNhbm5vdCBiZSBvay4gKi8KIAotCXNpemUgPSAoKChpYl9pbnQ2NF90KXNpemVf aGlnaCkgPDwgMzIpICsgKGliX2ludDY0X3Qpc2l6ZV9sb3c7CiAjaWZuZGVmIFVOSVZfSE9UQkFD S1VQCiAJaWYgKHNpemUgPCBGSUxfSUJEX0ZJTEVfSU5JVElBTF9TSVpFICogVU5JVl9QQUdFX1NJ WkUpIHsKIAkJZnByaW50ZihzdGRlcnIsCiAJCQkiSW5ub0RCOiBFcnJvcjogdGhlIHNpemUgb2Yg c2luZ2xlLXRhYmxlIHRhYmxlc3BhY2UiCiAJCQkiIGZpbGUgJXNcbiIKLQkJCSJJbm5vREI6IGlz IG9ubHkgJWx1ICVsdSwgc2hvdWxkIGJlIGF0IGxlYXN0ICVsdSEiLAorCQkJIklubm9EQjogaXMg b25seSAlbGx1LCBzaG91bGQgYmUgYXQgbGVhc3QgJWx1ISIsCiAJCQlmaWxlcGF0aCwKLQkJCSh1 bG9uZykgc2l6ZV9oaWdoLAotCQkJKHVsb25nKSBzaXplX2xvdywgKHVsb25nKSAoNCAqIFVOSVZf UEFHRV9TSVpFKSk7CisJCQlzaXplLCAodWxvbmcpICg0ICogVU5JVl9QQUdFX1NJWkUpKTsKIAkJ b3NfZmlsZV9jbG9zZShmaWxlKTsKIAkJbWVtX2ZyZWUoZmlsZXBhdGgpOwogCkBAIC0zMzY1LDcg KzMzNTEsNyBAQCBmaWxfbG9hZF9zaW5nbGVfdGFibGVfdGFibGVzcGFjZSgKIAlwYWdlID0gdXRf YWxpZ24oYnVmMiwgVU5JVl9QQUdFX1NJWkUpOwogCiAJaWYgKHNpemUgPj0gRklMX0lCRF9GSUxF X0lOSVRJQUxfU0laRSAqIFVOSVZfUEFHRV9TSVpFKSB7Ci0JCXN1Y2Nlc3MgPSBvc19maWxlX3Jl YWQoZmlsZSwgcGFnZSwgMCwgMCwgVU5JVl9QQUdFX1NJWkUpOworCQlzdWNjZXNzID0gb3NfZmls ZV9yZWFkKGZpbGUsIHBhZ2UsIDAsIFVOSVZfUEFHRV9TSVpFKTsKIAogCQkvKiBXZSBoYXZlIHRv IHJlYWQgdGhlIHRhYmxlc3BhY2UgaWQgZnJvbSB0aGUgZmlsZSAqLwogCkBAIC0zOTA5LDggKzM4 OTUsNiBAQCBmaWxfZXh0ZW5kX3NwYWNlX3RvX2Rlc2lyZWRfc2l6ZSgKIAl1bGludAkJYnVmX3Np emU7CiAJdWxpbnQJCXN0YXJ0X3BhZ2Vfbm87CiAJdWxpbnQJCWZpbGVfc3RhcnRfcGFnZV9ubzsK LQl1bGludAkJb2Zmc2V0X2hpZ2g7Ci0JdWxpbnQJCW9mZnNldF9sb3c7CiAJdWxpbnQJCXBhZ2Vf c2l6ZTsKIAl1bGludAkJcGFnZXNfYWRkZWQ7CiAJaWJvb2wJCXN1Y2Nlc3M7CkBAIC0zOTc0LDIz ICszOTU4LDIwIEBAIHJldHJ5OgogCW1lbXNldChidWYsIDAsIGJ1Zl9zaXplKTsKIAogCXdoaWxl IChzdGFydF9wYWdlX25vIDwgc2l6ZV9hZnRlcl9leHRlbmQpIHsKLQkJdWxpbnQJbl9wYWdlcyA9 IHV0X21pbihidWZfc2l6ZSAvIHBhZ2Vfc2l6ZSwKLQkJCQkJIHNpemVfYWZ0ZXJfZXh0ZW5kIC0g c3RhcnRfcGFnZV9ubyk7CisJCXVsaW50CQluX3BhZ2VzCisJCQk9IHV0X21pbihidWZfc2l6ZSAv IHBhZ2Vfc2l6ZSwKKwkJCQkgc2l6ZV9hZnRlcl9leHRlbmQgLSBzdGFydF9wYWdlX25vKTsKIAot CQlvZmZzZXRfaGlnaCA9IChzdGFydF9wYWdlX25vIC0gZmlsZV9zdGFydF9wYWdlX25vKQotCQkJ LyAoNDA5NiAqICgoMTAyNCAqIDEwMjQpIC8gcGFnZV9zaXplKSk7Ci0JCW9mZnNldF9sb3cgID0g KChzdGFydF9wYWdlX25vIC0gZmlsZV9zdGFydF9wYWdlX25vKQotCQkJICAgICAgICUgKDQwOTYg KiAoKDEwMjQgKiAxMDI0KSAvIHBhZ2Vfc2l6ZSkpKQorCQlvc19vZmZzZXRfdAlvZmZzZXQKKwkJ CT0gKChvc19vZmZzZXRfdCkgKHN0YXJ0X3BhZ2Vfbm8gLSBmaWxlX3N0YXJ0X3BhZ2Vfbm8pKQog CQkJKiBwYWdlX3NpemU7CiAjaWZkZWYgVU5JVl9IT1RCQUNLVVAKIAkJc3VjY2VzcyA9IG9zX2Zp bGVfd3JpdGUobm9kZS0+bmFtZSwgbm9kZS0+aGFuZGxlLCBidWYsCi0JCQkJCW9mZnNldF9sb3cs IG9mZnNldF9oaWdoLAotCQkJCQlwYWdlX3NpemUgKiBuX3BhZ2VzKTsKKwkJCQkJb2Zmc2V0LCBw YWdlX3NpemUgKiBuX3BhZ2VzKTsKICNlbHNlCiAJCXN1Y2Nlc3MgPSBvc19haW8oT1NfRklMRV9X UklURSwgT1NfQUlPX1NZTkMsCiAJCQkJIG5vZGUtPm5hbWUsIG5vZGUtPmhhbmRsZSwgYnVmLAot CQkJCSBvZmZzZXRfbG93LCBvZmZzZXRfaGlnaCwKLQkJCQkgcGFnZV9zaXplICogbl9wYWdlcywK KwkJCQkgb2Zmc2V0LCBwYWdlX3NpemUgKiBuX3BhZ2VzLAogCQkJCSBOVUxMLCBOVUxMKTsKICNl bmRpZgogCQlpZiAoc3VjY2VzcykgewpAQCAtMzk5OCwxMiArMzk3OSwxMyBAQCByZXRyeToKIAkJ fSBlbHNlIHsKIAkJCS8qIExldCB1cyBtZWFzdXJlIHRoZSBzaXplIG9mIHRoZSBmaWxlIHRvIGRl dGVybWluZQogCQkJaG93IG11Y2ggd2Ugd2VyZSBhYmxlIHRvIGV4dGVuZCBpdCAqLworCQkJb3Nf b2Zmc2V0X3QJc2l6ZTsKIAotCQkJbl9wYWdlcyA9ICgodWxpbnQpCi0JCQkJICAgKG9zX2ZpbGVf Z2V0X3NpemVfYXNfaWJsb25nbG9uZygKLQkJCQkJICAgbm9kZS0+aGFuZGxlKQotCQkJCSAgICAv IHBhZ2Vfc2l6ZSkpCi0JCQkJICAgIC0gKG5vZGUtPnNpemUgKyBwYWdlc19hZGRlZCk7CisJCQlz aXplID0gb3NfZmlsZV9nZXRfc2l6ZShub2RlLT5oYW5kbGUpOworCQkJdXRfYShzaXplICE9IChv c19vZmZzZXRfdCkgLTEpOworCisJCQluX3BhZ2VzID0gKCh1bGludCkgKHNpemUgLyBwYWdlX3Np emUpKQorCQkJCS0gbm9kZS0+c2l6ZSAtIHBhZ2VzX2FkZGVkOwogCiAJCQlwYWdlc19hZGRlZCAr PSBuX3BhZ2VzOwogCQkJYnJlYWs7CkBAIC00MzUzLDExICs0MzM1LDEwIEBAIGZpbF9pbygKIAl1 bGludAkJbW9kZTsKIAlmaWxfc3BhY2VfdCoJc3BhY2U7CiAJZmlsX25vZGVfdCoJbm9kZTsKLQl1 bGludAkJb2Zmc2V0X2hpZ2g7Ci0JdWxpbnQJCW9mZnNldF9sb3c7CiAJaWJvb2wJCXJldDsKIAl1 bGludAkJaXNfbG9nOwogCXVsaW50CQl3YWtlX2xhdGVyOworCW9zX29mZnNldF90CW9mZnNldDsK IAogCWlzX2xvZyA9IHR5cGUgJiBPU19GSUxFX0xPRzsKIAl0eXBlID0gdHlwZSAmIH5PU19GSUxF X0xPRzsKQEAgLTQ0NzUsOSArNDQ1Niw4IEBAIGZpbF9pbygKIAkvKiBDYWxjdWxhdGUgdGhlIGxv dyAzMiBiaXRzIGFuZCB0aGUgaGlnaCAzMiBiaXRzIG9mIHRoZSBmaWxlIG9mZnNldCAqLwogCiAJ aWYgKCF6aXBfc2l6ZSkgewotCQlvZmZzZXRfaGlnaCA9IChibG9ja19vZmZzZXQgPj4gKDMyIC0g VU5JVl9QQUdFX1NJWkVfU0hJRlQpKTsKLQkJb2Zmc2V0X2xvdyAgPSAoKGJsb2NrX29mZnNldCA8 PCBVTklWX1BBR0VfU0laRV9TSElGVCkKLQkJCSAgICAgICAmIDB4RkZGRkZGRkZVTCkgKyBieXRl X29mZnNldDsKKwkJb2Zmc2V0ID0gKChvc19vZmZzZXRfdCkgYmxvY2tfb2Zmc2V0IDw8IFVOSVZf UEFHRV9TSVpFX1NISUZUKQorCQkJKyBieXRlX29mZnNldDsKIAogCQl1dF9hKG5vZGUtPnNpemUg LSBibG9ja19vZmZzZXQKIAkJICAgICA+PSAoKGJ5dGVfb2Zmc2V0ICsgbGVuICsgKFVOSVZfUEFH RV9TSVpFIC0gMSkpCkBAIC00NDkyLDggKzQ0NzIsNyBAQCBmaWxfaW8oCiAJCWNhc2UgMTYzODQ6 IHppcF9zaXplX3NoaWZ0ID0gMTQ7IGJyZWFrOwogCQlkZWZhdWx0OiB1dF9lcnJvcjsKIAkJfQot CQlvZmZzZXRfaGlnaCA9IGJsb2NrX29mZnNldCA+PiAoMzIgLSB6aXBfc2l6ZV9zaGlmdCk7Ci0J CW9mZnNldF9sb3cgPSAoYmxvY2tfb2Zmc2V0IDw8IHppcF9zaXplX3NoaWZ0ICYgMHhGRkZGRkZG RlVMKQorCQlvZmZzZXQgPSAoKG9zX29mZnNldF90KSBibG9ja19vZmZzZXQgPDwgemlwX3NpemVf c2hpZnQpCiAJCQkrIGJ5dGVfb2Zmc2V0OwogCQl1dF9hKG5vZGUtPnNpemUgLSBibG9ja19vZmZz ZXQKIAkJICAgICA+PSAobGVuICsgKHppcF9zaXplIC0gMSkpIC8gemlwX3NpemUpOwpAQCAtNDUw NywxNiArNDQ4NiwxNSBAQCBmaWxfaW8oCiAjaWZkZWYgVU5JVl9IT1RCQUNLVVAKIAkvKiBJbiBp YmJhY2t1cCBkbyBub3JtYWwgaS9vLCBub3QgYWlvICovCiAJaWYgKHR5cGUgPT0gT1NfRklMRV9S RUFEKSB7Ci0JCXJldCA9IG9zX2ZpbGVfcmVhZChub2RlLT5oYW5kbGUsIGJ1Ziwgb2Zmc2V0X2xv dywgb2Zmc2V0X2hpZ2gsCi0JCQkJICAgbGVuKTsKKwkJcmV0ID0gb3NfZmlsZV9yZWFkKG5vZGUt PmhhbmRsZSwgYnVmLCBvZmZzZXQsIGxlbik7CiAJfSBlbHNlIHsKIAkJcmV0ID0gb3NfZmlsZV93 cml0ZShub2RlLT5uYW1lLCBub2RlLT5oYW5kbGUsIGJ1ZiwKLQkJCQkgICAgb2Zmc2V0X2xvdywg b2Zmc2V0X2hpZ2gsIGxlbik7CisJCQkJICAgIG9mZnNldCwgbGVuKTsKIAl9CiAjZWxzZQogCS8q IFF1ZXVlIHRoZSBhaW8gcmVxdWVzdCAqLwogCXJldCA9IG9zX2Fpbyh0eXBlLCBtb2RlIHwgd2Fr ZV9sYXRlciwgbm9kZS0+bmFtZSwgbm9kZS0+aGFuZGxlLCBidWYsCi0JCSAgICAgb2Zmc2V0X2xv dywgb2Zmc2V0X2hpZ2gsIGxlbiwgbm9kZSwgbWVzc2FnZSk7CisJCSAgICAgb2Zmc2V0LCBsZW4s IG5vZGUsIG1lc3NhZ2UpOwogI2VuZGlmCiAJdXRfYShyZXQpOwogCgo9PT0gbW9kaWZpZWQgZmls ZSAnc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL29zMGZpbGUuaCcKLS0tIGEvc3RvcmFnZS9pbm5v YmFzZS9pbmNsdWRlL29zMGZpbGUuaAlyZXZpZDppbmFhbS5yYW5hQG9yYWNsZS5jb20tMjAxMTA1 MTYxNjAxMzktOTU5andud3BjMXkyMjBtcgorKysgYi9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUv b3MwZmlsZS5oCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTEwNTE3MTE0MjEwLWU3 ZGZ4OXozNnIydHVtenoKQEAgLTc0LDYgKzc0LDggQEAgZXh0ZXJuIHVsaW50CW9zX25fcGVuZGlu Z193cml0ZXM7CiAKICNlbmRpZgogCisvKiogRmlsZSBvZmZzZXQgaW4gYnl0ZXMgKi8KK3R5cGVk ZWYgaWJfdWludDY0X3Qgb3Nfb2Zmc2V0X3Q7CiAjaWZkZWYgX19XSU5fXwogLyoqIEZpbGUgaGFu ZGxlICovCiAjIGRlZmluZSBvc19maWxlX3QJSEFORExFCkBAIC0yNzYsMjQgKzI3OCwyMCBAQCBU aGUgd3JhcHBlciBmdW5jdGlvbnMgaGF2ZSB0aGUgcHJlZml4IG9mCiAjIGRlZmluZSBvc19maWxl X2Nsb3NlKGZpbGUpCQkJCQkJXAogCXBmc19vc19maWxlX2Nsb3NlX2Z1bmMoZmlsZSwgX19GSUxF X18sIF9fTElORV9fKQogCi0jIGRlZmluZSBvc19haW8odHlwZSwgbW9kZSwgbmFtZSwgZmlsZSwg YnVmLCBvZmZzZXQsIG9mZnNldF9oaWdoLAlcCisjIGRlZmluZSBvc19haW8odHlwZSwgbW9kZSwg bmFtZSwgZmlsZSwgYnVmLCBvZmZzZXQsCQkJXAogCQluLCBtZXNzYWdlMSwgbWVzc2FnZTIpCQkJ CQlcCiAJcGZzX29zX2Fpb19mdW5jKHR5cGUsIG1vZGUsIG5hbWUsIGZpbGUsIGJ1Ziwgb2Zmc2V0 LAkJXAotCQkJb2Zmc2V0X2hpZ2gsIG4sIG1lc3NhZ2UxLCBtZXNzYWdlMiwJCVwKLQkJCV9fRklM RV9fLCBfX0xJTkVfXykKKwkJCW4sIG1lc3NhZ2UxLCBtZXNzYWdlMiwgX19GSUxFX18sIF9fTElO RV9fKQogCi0jIGRlZmluZSBvc19maWxlX3JlYWQoZmlsZSwgYnVmLCBvZmZzZXQsIG9mZnNldF9o aWdoLCBuKQkJXAotCXBmc19vc19maWxlX3JlYWRfZnVuYyhmaWxlLCBidWYsIG9mZnNldCwgb2Zm c2V0X2hpZ2gsIG4sCVwKLQkJCSAgICAgIF9fRklMRV9fLCBfX0xJTkVfXykKLQotIyBkZWZpbmUg b3NfZmlsZV9yZWFkX25vX2Vycm9yX2hhbmRsaW5nKGZpbGUsIGJ1Ziwgb2Zmc2V0LAkJXAotCQkJ CQlvZmZzZXRfaGlnaCwgbikJCQlcCi0JcGZzX29zX2ZpbGVfcmVhZF9ub19lcnJvcl9oYW5kbGlu Z19mdW5jKGZpbGUsIGJ1Ziwgb2Zmc2V0LAlcCi0JCQkJCQlvZmZzZXRfaGlnaCwgbiwJCVwKKyMg ZGVmaW5lIG9zX2ZpbGVfcmVhZChmaWxlLCBidWYsIG9mZnNldCwgbikJCQkJXAorCXBmc19vc19m aWxlX3JlYWRfZnVuYyhmaWxlLCBidWYsIG9mZnNldCwgbiwgX19GSUxFX18sIF9fTElORV9fKQor CisjIGRlZmluZSBvc19maWxlX3JlYWRfbm9fZXJyb3JfaGFuZGxpbmcoZmlsZSwgYnVmLCBvZmZz ZXQsIG4pCQlcCisJcGZzX29zX2ZpbGVfcmVhZF9ub19lcnJvcl9oYW5kbGluZ19mdW5jKGZpbGUs IGJ1Ziwgb2Zmc2V0LCBuLAlcCiAJCQkJCQlfX0ZJTEVfXywgX19MSU5FX18pCiAKLSMgZGVmaW5l IG9zX2ZpbGVfd3JpdGUobmFtZSwgZmlsZSwgYnVmLCBvZmZzZXQsIG9mZnNldF9oaWdoLCBuKQkJ XAotCXBmc19vc19maWxlX3dyaXRlX2Z1bmMobmFtZSwgZmlsZSwgYnVmLCBvZmZzZXQsIG9mZnNl dF9oaWdoLAlcCisjIGRlZmluZSBvc19maWxlX3dyaXRlKG5hbWUsIGZpbGUsIGJ1Ziwgb2Zmc2V0 LCBuKQlcCisJcGZzX29zX2ZpbGVfd3JpdGVfZnVuYyhuYW1lLCBmaWxlLCBidWYsIG9mZnNldCwJ XAogCQkJICAgICAgIG4sIF9fRklMRV9fLCBfX0xJTkVfXykKIAogIyBkZWZpbmUgb3NfZmlsZV9m bHVzaChmaWxlKQkJCQkJCVwKQEAgLTMxOCwyMCArMzE2LDE4IEBAIHRvIG9yaWdpbmFsIHVuLWlu c3RydW1lbnRlZCBmaWxlIEkvTyBBUEkKIAogIyBkZWZpbmUgb3NfZmlsZV9jbG9zZShmaWxlKQlv c19maWxlX2Nsb3NlX2Z1bmMoZmlsZSkKIAotIyBkZWZpbmUgb3NfYWlvKHR5cGUsIG1vZGUsIG5h bWUsIGZpbGUsIGJ1Ziwgb2Zmc2V0LCBvZmZzZXRfaGlnaCwJXAotCSAgICAgICBuLCBtZXNzYWdl MSwgbWVzc2FnZTIpCQkJCQlcCi0Jb3NfYWlvX2Z1bmModHlwZSwgbW9kZSwgbmFtZSwgZmlsZSwg YnVmLCBvZmZzZXQsIG9mZnNldF9oaWdoLCBuLFwKKyMgZGVmaW5lIG9zX2Fpbyh0eXBlLCBtb2Rl LCBuYW1lLCBmaWxlLCBidWYsIG9mZnNldCwgbiwgbWVzc2FnZTEsIG1lc3NhZ2UyKSBcCisJb3Nf YWlvX2Z1bmModHlwZSwgbW9kZSwgbmFtZSwgZmlsZSwgYnVmLCBvZmZzZXQsIG4sCQlcCiAJCSAg ICBtZXNzYWdlMSwgbWVzc2FnZTIpCiAKLSMgZGVmaW5lIG9zX2ZpbGVfcmVhZChmaWxlLCBidWYs IG9mZnNldCwgb2Zmc2V0X2hpZ2gsIG4pCQlcCi0Jb3NfZmlsZV9yZWFkX2Z1bmMoZmlsZSwgYnVm LCBvZmZzZXQsIG9mZnNldF9oaWdoLCBuKQorIyBkZWZpbmUgb3NfZmlsZV9yZWFkKGZpbGUsIGJ1 Ziwgb2Zmc2V0LCBuKQlcCisJb3NfZmlsZV9yZWFkX2Z1bmMoZmlsZSwgYnVmLCBvZmZzZXQsIG4p CiAKLSMgZGVmaW5lIG9zX2ZpbGVfcmVhZF9ub19lcnJvcl9oYW5kbGluZyhmaWxlLCBidWYsIG9m ZnNldCwJCVwKLQkJCQkgICAgICAgb2Zmc2V0X2hpZ2gsIG4pCQkJXAotCW9zX2ZpbGVfcmVhZF9u b19lcnJvcl9oYW5kbGluZ19mdW5jKGZpbGUsIGJ1Ziwgb2Zmc2V0LCBvZmZzZXRfaGlnaCwgbikK KyMgZGVmaW5lIG9zX2ZpbGVfcmVhZF9ub19lcnJvcl9oYW5kbGluZyhmaWxlLCBidWYsIG9mZnNl dCwgbikJCVwKKwlvc19maWxlX3JlYWRfbm9fZXJyb3JfaGFuZGxpbmdfZnVuYyhmaWxlLCBidWYs IG9mZnNldCwgbikKIAotIyBkZWZpbmUgb3NfZmlsZV93cml0ZShuYW1lLCBmaWxlLCBidWYsIG9m ZnNldCwgb2Zmc2V0X2hpZ2gsIG4pCQlcCi0Jb3NfZmlsZV93cml0ZV9mdW5jKG5hbWUsIGZpbGUs IGJ1Ziwgb2Zmc2V0LCBvZmZzZXRfaGlnaCwgbikKKyMgZGVmaW5lIG9zX2ZpbGVfd3JpdGUobmFt ZSwgZmlsZSwgYnVmLCBvZmZzZXQsIG4pCQkJXAorCW9zX2ZpbGVfd3JpdGVfZnVuYyhuYW1lLCBm aWxlLCBidWYsIG9mZnNldCwgbikKIAogIyBkZWZpbmUgb3NfZmlsZV9mbHVzaChmaWxlKQlvc19m aWxlX2ZsdXNoX2Z1bmMoZmlsZSkKIApAQCAtNjg3LDEwICs2ODMsNyBAQCBwZnNfb3NfZmlsZV9y ZWFkX2Z1bmMoCiAvKj09PT09PT09PT09PT09PT09PSovCiAJb3NfZmlsZV90CWZpbGUsCS8qITwg aW46IGhhbmRsZSB0byBhIGZpbGUgKi8KIAl2b2lkKgkJYnVmLAkvKiE8IGluOiBidWZmZXIgd2hl cmUgdG8gcmVhZCAqLwotCXVsaW50CQlvZmZzZXQsCS8qITwgaW46IGxlYXN0IHNpZ25pZmljYW50 IDMyIGJpdHMgb2YgZmlsZQotCQkJCW9mZnNldCB3aGVyZSB0byByZWFkICovCi0JdWxpbnQJCW9m ZnNldF9oaWdoLC8qITwgaW46IG1vc3Qgc2lnbmlmaWNhbnQgMzIgYml0cyBvZgotCQkJCW9mZnNl dCAqLworCW9zX29mZnNldF90CW9mZnNldCwJLyohPCBpbjogZmlsZSBvZmZzZXQgd2hlcmUgdG8g cmVhZCAqLwogCXVsaW50CQluLAkvKiE8IGluOiBudW1iZXIgb2YgYnl0ZXMgdG8gcmVhZCAqLwog CWNvbnN0IGNoYXIqCXNyY19maWxlLC8qITwgaW46IGZpbGUgbmFtZSB3aGVyZSBmdW5jIGludm9r ZWQgKi8KIAl1bGludAkJc3JjX2xpbmUpOy8qITwgaW46IGxpbmUgd2hlcmUgdGhlIGZ1bmMgaW52 b2tlZCAqLwpAQCAtNzA4LDEwICs3MDEsNyBAQCBwZnNfb3NfZmlsZV9yZWFkX25vX2Vycm9yX2hh bmRsaW5nX2Z1bmMoCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAJ b3NfZmlsZV90CWZpbGUsCS8qITwgaW46IGhhbmRsZSB0byBhIGZpbGUgKi8KIAl2b2lkKgkJYnVm LAkvKiE8IGluOiBidWZmZXIgd2hlcmUgdG8gcmVhZCAqLwotCXVsaW50CQlvZmZzZXQsCS8qITwg aW46IGxlYXN0IHNpZ25pZmljYW50IDMyIGJpdHMgb2YgZmlsZQotCQkJCW9mZnNldCB3aGVyZSB0 byByZWFkICovCi0JdWxpbnQJCW9mZnNldF9oaWdoLC8qITwgaW46IG1vc3Qgc2lnbmlmaWNhbnQg MzIgYml0cyBvZgotCQkJCW9mZnNldCAqLworCW9zX29mZnNldF90CW9mZnNldCwJLyohPCBpbjog ZmlsZSBvZmZzZXQgd2hlcmUgdG8gcmVhZCAqLwogCXVsaW50CQluLAkvKiE8IGluOiBudW1iZXIg b2YgYnl0ZXMgdG8gcmVhZCAqLwogCWNvbnN0IGNoYXIqCXNyY19maWxlLC8qITwgaW46IGZpbGUg bmFtZSB3aGVyZSBmdW5jIGludm9rZWQgKi8KIAl1bGludAkJc3JjX2xpbmUpOy8qITwgaW46IGxp bmUgd2hlcmUgdGhlIGZ1bmMgaW52b2tlZCAqLwpAQCAtNzMzLDEwICs3MjMsNyBAQCBwZnNfb3Nf YWlvX2Z1bmMoCiAJb3NfZmlsZV90CWZpbGUsCS8qITwgaW46IGhhbmRsZSB0byBhIGZpbGUgKi8K IAl2b2lkKgkJYnVmLAkvKiE8IGluOiBidWZmZXIgd2hlcmUgdG8gcmVhZCBvciBmcm9tIHdoaWNo CiAJCQkJdG8gd3JpdGUgKi8KLQl1bGludAkJb2Zmc2V0LAkvKiE8IGluOiBsZWFzdCBzaWduaWZp Y2FudCAzMiBiaXRzIG9mIGZpbGUKLQkJCQlvZmZzZXQgd2hlcmUgdG8gcmVhZCBvciB3cml0ZSAq LwotCXVsaW50CQlvZmZzZXRfaGlnaCwvKiE8IGluOiBtb3N0IHNpZ25pZmljYW50IDMyIGJpdHMg b2YKLQkJCQlvZmZzZXQgKi8KKwlvc19vZmZzZXRfdAlvZmZzZXQsCS8qITwgaW46IGZpbGUgb2Zm c2V0IHdoZXJlIHRvIHJlYWQgb3Igd3JpdGUgKi8KIAl1bGludAkJbiwJLyohPCBpbjogbnVtYmVy IG9mIGJ5dGVzIHRvIHJlYWQgb3Igd3JpdGUgKi8KIAlmaWxfbm9kZV90KgltZXNzYWdlMSwvKiE8 IGluOiBtZXNzYWdlIGZvciB0aGUgYWlvIGhhbmRsZXIKIAkJCQkoY2FuIGJlIHVzZWQgdG8gaWRl bnRpZnkgYSBjb21wbGV0ZWQKQEAgLTc2MiwxMCArNzQ5LDcgQEAgcGZzX29zX2ZpbGVfd3JpdGVf ZnVuYygKIAkJCQludWxsLXRlcm1pbmF0ZWQgc3RyaW5nICovCiAJb3NfZmlsZV90CWZpbGUsCS8q ITwgaW46IGhhbmRsZSB0byBhIGZpbGUgKi8KIAljb25zdCB2b2lkKglidWYsCS8qITwgaW46IGJ1 ZmZlciBmcm9tIHdoaWNoIHRvIHdyaXRlICovCi0JdWxpbnQJCW9mZnNldCwJLyohPCBpbjogbGVh c3Qgc2lnbmlmaWNhbnQgMzIgYml0cyBvZiBmaWxlCi0JCQkJb2Zmc2V0IHdoZXJlIHRvIHdyaXRl ICovCi0JdWxpbnQJCW9mZnNldF9oaWdoLC8qITwgaW46IG1vc3Qgc2lnbmlmaWNhbnQgMzIgYml0 cyBvZgotCQkJCW9mZnNldCAqLworCW9zX29mZnNldF90CW9mZnNldCwJLyohPCBpbjogZmlsZSBv ZmZzZXQgd2hlcmUgdG8gd3JpdGUgKi8KIAl1bGludAkJbiwJLyohPCBpbjogbnVtYmVyIG9mIGJ5 dGVzIHRvIHdyaXRlICovCiAJY29uc3QgY2hhcioJc3JjX2ZpbGUsLyohPCBpbjogZmlsZSBuYW1l IHdoZXJlIGZ1bmMgaW52b2tlZCAqLwogCXVsaW50CQlzcmNfbGluZSk7LyohPCBpbjogbGluZSB3 aGVyZSB0aGUgZnVuYyBpbnZva2VkICovCkBAIC04MTQsMjMgKzc5OCwxMyBAQCBvc19maWxlX2Ns b3NlX25vX2Vycm9yX2hhbmRsaW5nKAogI2VuZGlmIC8qIFVOSVZfSE9UQkFDS1VQICovCiAvKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKiovLyoqCiBHZXRzIGEgZmlsZSBzaXplLgotQHJldHVybglUUlVFIGlmIHN1Y2Nl c3MgKi8KK0ByZXR1cm4JZmlsZSBzaXplLCBvciAob3Nfb2Zmc2V0X3QpIC0xIG9uIGZhaWx1cmUg Ki8KIFVOSVZfSU5URVJOCi1pYm9vbAorb3Nfb2Zmc2V0X3QKIG9zX2ZpbGVfZ2V0X3NpemUoCiAv Kj09PT09PT09PT09PT0qLwotCW9zX2ZpbGVfdAlmaWxlLAkvKiE8IGluOiBoYW5kbGUgdG8gYSBm aWxlICovCi0JdWxpbnQqCQlzaXplLAkvKiE8IG91dDogbGVhc3Qgc2lnbmlmaWNhbnQgMzIgYml0 cyBvZiBmaWxlCi0JCQkJc2l6ZSAqLwotCXVsaW50KgkJc2l6ZV9oaWdoKTsvKiE8IG91dDogbW9z dCBzaWduaWZpY2FudCAzMiBiaXRzIG9mIHNpemUgKi8KLS8qKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKLUdl dHMgZmlsZSBzaXplIGFzIGEgNjQtYml0IGludGVnZXIgaWJfaW50NjRfdC4KLUByZXR1cm4Jc2l6 ZSBpbiBieXRlcywgLTEgaWYgZXJyb3IgKi8KLVVOSVZfSU5URVJOCi1pYl9pbnQ2NF90Ci1vc19m aWxlX2dldF9zaXplX2FzX2libG9uZ2xvbmcoCi0vKj09PT09PT09PT09PT09PT09PT09PT09PT09 PSovCi0Jb3NfZmlsZV90CWZpbGUpOwkvKiE8IGluOiBoYW5kbGUgdG8gYSBmaWxlICovCisJb3Nf ZmlsZV90CWZpbGUpCS8qITwgaW46IGhhbmRsZSB0byBhIGZpbGUgKi8KKwlfX2F0dHJpYnV0ZV9f KCh3YXJuX3VudXNlZF9yZXN1bHQpKTsKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIFdyaXRlIHRoZSBz cGVjaWZpZWQgbnVtYmVyIG9mIHplcm9zIHRvIGEgbmV3bHkgY3JlYXRlZCBmaWxlLgogQHJldHVy bglUUlVFIGlmIHN1Y2Nlc3MgKi8KQEAgLTg0MSw5ICs4MTUsOCBAQCBvc19maWxlX3NldF9zaXpl KAogCWNvbnN0IGNoYXIqCW5hbWUsCS8qITwgaW46IG5hbWUgb2YgdGhlIGZpbGUgb3IgcGF0aCBh cyBhCiAJCQkJbnVsbC10ZXJtaW5hdGVkIHN0cmluZyAqLwogCW9zX2ZpbGVfdAlmaWxlLAkvKiE8 IGluOiBoYW5kbGUgdG8gYSBmaWxlICovCi0JdWxpbnQJCXNpemUsCS8qITwgaW46IGxlYXN0IHNp Z25pZmljYW50IDMyIGJpdHMgb2YgZmlsZQotCQkJCXNpemUgKi8KLQl1bGludAkJc2l6ZV9oaWdo KTsvKiE8IGluOiBtb3N0IHNpZ25pZmljYW50IDMyIGJpdHMgb2Ygc2l6ZSAqLworCW9zX29mZnNl dF90CXNpemUpCS8qITwgaW46IGZpbGUgc2l6ZSAqLworCV9fYXR0cmlidXRlX18oKG5vbm51bGws IHdhcm5fdW51c2VkX3Jlc3VsdCkpOwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogVHJ1bmNhdGVzIGEg ZmlsZSBhdCBpdHMgY3VycmVudCBwb3NpdGlvbi4KIEByZXR1cm4JVFJVRSBpZiBzdWNjZXNzICov CkBAIC04ODMsMTAgKzg1Niw3IEBAIG9zX2ZpbGVfcmVhZF9mdW5jKAogLyo9PT09PT09PT09PT09 PSovCiAJb3NfZmlsZV90CWZpbGUsCS8qITwgaW46IGhhbmRsZSB0byBhIGZpbGUgKi8KIAl2b2lk KgkJYnVmLAkvKiE8IGluOiBidWZmZXIgd2hlcmUgdG8gcmVhZCAqLwotCXVsaW50CQlvZmZzZXQs CS8qITwgaW46IGxlYXN0IHNpZ25pZmljYW50IDMyIGJpdHMgb2YgZmlsZQotCQkJCW9mZnNldCB3 aGVyZSB0byByZWFkICovCi0JdWxpbnQJCW9mZnNldF9oaWdoLC8qITwgaW46IG1vc3Qgc2lnbmlm aWNhbnQgMzIgYml0cyBvZgotCQkJCW9mZnNldCAqLworCW9zX29mZnNldF90CW9mZnNldCwJLyoh PCBpbjogZmlsZSBvZmZzZXQgd2hlcmUgdG8gcmVhZCAqLwogCXVsaW50CQluKTsJLyohPCBpbjog bnVtYmVyIG9mIGJ5dGVzIHRvIHJlYWQgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogUmV3aW5kIGZpbGUg dG8gaXRzIHN0YXJ0LCByZWFkIGF0IG1vc3Qgc2l6ZSAtIDEgYnl0ZXMgZnJvbSBpdCB0byBzdHIs IGFuZApAQCAtOTExLDEwICs4ODEsNyBAQCBvc19maWxlX3JlYWRfbm9fZXJyb3JfaGFuZGxpbmdf ZnVuYygKIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogCW9zX2ZpbGVfdAlm aWxlLAkvKiE8IGluOiBoYW5kbGUgdG8gYSBmaWxlICovCiAJdm9pZCoJCWJ1ZiwJLyohPCBpbjog YnVmZmVyIHdoZXJlIHRvIHJlYWQgKi8KLQl1bGludAkJb2Zmc2V0LAkvKiE8IGluOiBsZWFzdCBz aWduaWZpY2FudCAzMiBiaXRzIG9mIGZpbGUKLQkJCQlvZmZzZXQgd2hlcmUgdG8gcmVhZCAqLwot CXVsaW50CQlvZmZzZXRfaGlnaCwvKiE8IGluOiBtb3N0IHNpZ25pZmljYW50IDMyIGJpdHMgb2YK LQkJCQlvZmZzZXQgKi8KKwlvc19vZmZzZXRfdAlvZmZzZXQsCS8qITwgaW46IGZpbGUgb2Zmc2V0 IHdoZXJlIHRvIHJlYWQgKi8KIAl1bGludAkJbik7CS8qITwgaW46IG51bWJlciBvZiBieXRlcyB0 byByZWFkICovCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqLy8qKgpAQCAtOTMwLDEwICs4OTcsNyBAQCBvc19maWxl X3dyaXRlX2Z1bmMoCiAJCQkJbnVsbC10ZXJtaW5hdGVkIHN0cmluZyAqLwogCW9zX2ZpbGVfdAlm aWxlLAkvKiE8IGluOiBoYW5kbGUgdG8gYSBmaWxlICovCiAJY29uc3Qgdm9pZCoJYnVmLAkvKiE8 IGluOiBidWZmZXIgZnJvbSB3aGljaCB0byB3cml0ZSAqLwotCXVsaW50CQlvZmZzZXQsCS8qITwg aW46IGxlYXN0IHNpZ25pZmljYW50IDMyIGJpdHMgb2YgZmlsZQotCQkJCW9mZnNldCB3aGVyZSB0 byB3cml0ZSAqLwotCXVsaW50CQlvZmZzZXRfaGlnaCwvKiE8IGluOiBtb3N0IHNpZ25pZmljYW50 IDMyIGJpdHMgb2YKLQkJCQlvZmZzZXQgKi8KKwlvc19vZmZzZXRfdAlvZmZzZXQsCS8qITwgaW46 IGZpbGUgb2Zmc2V0IHdoZXJlIHRvIHdyaXRlICovCiAJdWxpbnQJCW4pOwkvKiE8IGluOiBudW1i ZXIgb2YgYnl0ZXMgdG8gd3JpdGUgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogQ2hlY2sgdGhlIGV4aXN0 ZW5jZSBhbmQgdHlwZSBvZiB0aGUgZ2l2ZW4gZmlsZS4KQEAgLTEwMzcsMTAgKzEwMDEsNyBAQCBv c19haW9fZnVuYygKIAlvc19maWxlX3QJZmlsZSwJLyohPCBpbjogaGFuZGxlIHRvIGEgZmlsZSAq LwogCXZvaWQqCQlidWYsCS8qITwgaW46IGJ1ZmZlciB3aGVyZSB0byByZWFkIG9yIGZyb20gd2hp Y2gKIAkJCQl0byB3cml0ZSAqLwotCXVsaW50CQlvZmZzZXQsCS8qITwgaW46IGxlYXN0IHNpZ25p ZmljYW50IDMyIGJpdHMgb2YgZmlsZQotCQkJCW9mZnNldCB3aGVyZSB0byByZWFkIG9yIHdyaXRl ICovCi0JdWxpbnQJCW9mZnNldF9oaWdoLCAvKiE8IGluOiBtb3N0IHNpZ25pZmljYW50IDMyIGJp dHMgb2YKLQkJCQlvZmZzZXQgKi8KKwlvc19vZmZzZXRfdAlvZmZzZXQsCS8qITwgaW46IGZpbGUg b2Zmc2V0IHdoZXJlIHRvIHJlYWQgb3Igd3JpdGUgKi8KIAl1bGludAkJbiwJLyohPCBpbjogbnVt YmVyIG9mIGJ5dGVzIHRvIHJlYWQgb3Igd3JpdGUgKi8KIAlmaWxfbm9kZV90KgltZXNzYWdlMSwv KiE8IGluOiBtZXNzYWdlIGZvciB0aGUgYWlvIGhhbmRsZXIKIAkJCQkoY2FuIGJlIHVzZWQgdG8g aWRlbnRpZnkgYSBjb21wbGV0ZWQKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNl L2luY2x1ZGUvb3MwZmlsZS5pYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL29zMGZp bGUuaWMJcmV2aWQ6aW5hYW0ucmFuYUBvcmFjbGUuY29tLTIwMTEwNTE2MTYwMTM5LTk1OWp3bndw YzF5MjIwbXIKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL29zMGZpbGUuaWMJcmV2aWQ6 bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMTA1MTcxMTQyMTAtZTdkZng5ejM2cjJ0dW16egpA QCAtMjE2LDEwICsyMTYsNyBAQCBwZnNfb3NfYWlvX2Z1bmMoCiAJb3NfZmlsZV90CWZpbGUsCS8q ITwgaW46IGhhbmRsZSB0byBhIGZpbGUgKi8KIAl2b2lkKgkJYnVmLAkvKiE8IGluOiBidWZmZXIg d2hlcmUgdG8gcmVhZCBvciBmcm9tIHdoaWNoCiAJCQkJdG8gd3JpdGUgKi8KLQl1bGludAkJb2Zm c2V0LAkvKiE8IGluOiBsZWFzdCBzaWduaWZpY2FudCAzMiBiaXRzIG9mIGZpbGUKLQkJCQlvZmZz ZXQgd2hlcmUgdG8gcmVhZCBvciB3cml0ZSAqLwotCXVsaW50CQlvZmZzZXRfaGlnaCwvKiE8IGlu OiBtb3N0IHNpZ25pZmljYW50IDMyIGJpdHMgb2YKLQkJCQlvZmZzZXQgKi8KKwlvc19vZmZzZXRf dAlvZmZzZXQsCS8qITwgaW46IGZpbGUgb2Zmc2V0IHdoZXJlIHRvIHJlYWQgb3Igd3JpdGUgKi8K IAl1bGludAkJbiwJLyohPCBpbjogbnVtYmVyIG9mIGJ5dGVzIHRvIHJlYWQgb3Igd3JpdGUgKi8K IAlmaWxfbm9kZV90KgltZXNzYWdlMSwvKiE8IGluOiBtZXNzYWdlIGZvciB0aGUgYWlvIGhhbmRs ZXIKIAkJCQkoY2FuIGJlIHVzZWQgdG8gaWRlbnRpZnkgYSBjb21wbGV0ZWQKQEAgLTI0Myw3ICsy NDAsNyBAQCBwZnNfb3NfYWlvX2Z1bmMoCiAJCQkJCTogUFNJX0ZJTEVfUkVBRCwKIAkJCQkgICBz cmNfZmlsZSwgc3JjX2xpbmUpOwogCi0JcmVzdWx0ID0gb3NfYWlvX2Z1bmModHlwZSwgbW9kZSwg bmFtZSwgZmlsZSwgYnVmLCBvZmZzZXQsIG9mZnNldF9oaWdoLAorCXJlc3VsdCA9IG9zX2Fpb19m dW5jKHR5cGUsIG1vZGUsIG5hbWUsIGZpbGUsIGJ1Ziwgb2Zmc2V0LAogCQkJICAgICBuLCBtZXNz YWdlMSwgbWVzc2FnZTIpOwogCiAJcmVnaXN0ZXJfcGZzX2ZpbGVfaW9fZW5kKGxvY2tlciwgbik7 CkBAIC0yNjMsMTAgKzI2MCw3IEBAIHBmc19vc19maWxlX3JlYWRfZnVuYygKIC8qPT09PT09PT09 PT09PT09PT09Ki8KIAlvc19maWxlX3QJZmlsZSwJLyohPCBpbjogaGFuZGxlIHRvIGEgZmlsZSAq LwogCXZvaWQqCQlidWYsCS8qITwgaW46IGJ1ZmZlciB3aGVyZSB0byByZWFkICovCi0JdWxpbnQJ CW9mZnNldCwJLyohPCBpbjogbGVhc3Qgc2lnbmlmaWNhbnQgMzIgYml0cyBvZiBmaWxlCi0JCQkJ b2Zmc2V0IHdoZXJlIHRvIHJlYWQgKi8KLQl1bGludAkJb2Zmc2V0X2hpZ2gsLyohPCBpbjogbW9z dCBzaWduaWZpY2FudCAzMiBiaXRzIG9mCi0JCQkJb2Zmc2V0ICovCisJb3Nfb2Zmc2V0X3QJb2Zm c2V0LAkvKiE8IGluOiBmaWxlIG9mZnNldCB3aGVyZSB0byByZWFkICovCiAJdWxpbnQJCW4sCS8q ITwgaW46IG51bWJlciBvZiBieXRlcyB0byByZWFkICovCiAJY29uc3QgY2hhcioJc3JjX2ZpbGUs LyohPCBpbjogZmlsZSBuYW1lIHdoZXJlIGZ1bmMgaW52b2tlZCAqLwogCXVsaW50CQlzcmNfbGlu ZSkvKiE8IGluOiBsaW5lIHdoZXJlIHRoZSBmdW5jIGludm9rZWQgKi8KQEAgLTI3OCw3ICsyNzIs NyBAQCBwZnNfb3NfZmlsZV9yZWFkX2Z1bmMoCiAJcmVnaXN0ZXJfcGZzX2ZpbGVfaW9fYmVnaW4o JnN0YXRlLCBsb2NrZXIsIGZpbGUsIG4sIFBTSV9GSUxFX1JFQUQsCiAJCQkJICAgc3JjX2ZpbGUs IHNyY19saW5lKTsKIAotCXJlc3VsdCA9IG9zX2ZpbGVfcmVhZF9mdW5jKGZpbGUsIGJ1Ziwgb2Zm c2V0LCBvZmZzZXRfaGlnaCwgbik7CisJcmVzdWx0ID0gb3NfZmlsZV9yZWFkX2Z1bmMoZmlsZSwg YnVmLCBvZmZzZXQsIG4pOwogCiAJcmVnaXN0ZXJfcGZzX2ZpbGVfaW9fZW5kKGxvY2tlciwgbik7 CiAKQEAgLTI5OSwxMCArMjkzLDcgQEAgcGZzX29zX2ZpbGVfcmVhZF9ub19lcnJvcl9oYW5kbGlu Z19mdW5jKAogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogCW9zX2Zp bGVfdAlmaWxlLAkvKiE8IGluOiBoYW5kbGUgdG8gYSBmaWxlICovCiAJdm9pZCoJCWJ1ZiwJLyoh PCBpbjogYnVmZmVyIHdoZXJlIHRvIHJlYWQgKi8KLQl1bGludAkJb2Zmc2V0LAkvKiE8IGluOiBs ZWFzdCBzaWduaWZpY2FudCAzMiBiaXRzIG9mIGZpbGUKLQkJCQlvZmZzZXQgd2hlcmUgdG8gcmVh ZCAqLwotCXVsaW50CQlvZmZzZXRfaGlnaCwvKiE8IGluOiBtb3N0IHNpZ25pZmljYW50IDMyIGJp dHMgb2YKLQkJCQlvZmZzZXQgKi8KKwlvc19vZmZzZXRfdAlvZmZzZXQsCS8qITwgaW46IGZpbGUg b2Zmc2V0IHdoZXJlIHRvIHJlYWQgKi8KIAl1bGludAkJbiwJLyohPCBpbjogbnVtYmVyIG9mIGJ5 dGVzIHRvIHJlYWQgKi8KIAljb25zdCBjaGFyKglzcmNfZmlsZSwvKiE8IGluOiBmaWxlIG5hbWUg d2hlcmUgZnVuYyBpbnZva2VkICovCiAJdWxpbnQJCXNyY19saW5lKS8qITwgaW46IGxpbmUgd2hl cmUgdGhlIGZ1bmMgaW52b2tlZCAqLwpAQCAtMzE0LDggKzMwNSw3IEBAIHBmc19vc19maWxlX3Jl YWRfbm9fZXJyb3JfaGFuZGxpbmdfZnVuYygKIAlyZWdpc3Rlcl9wZnNfZmlsZV9pb19iZWdpbigm c3RhdGUsIGxvY2tlciwgZmlsZSwgbiwgUFNJX0ZJTEVfUkVBRCwKIAkJCQkgICBzcmNfZmlsZSwg c3JjX2xpbmUpOwogCi0JcmVzdWx0ID0gb3NfZmlsZV9yZWFkX25vX2Vycm9yX2hhbmRsaW5nX2Z1 bmMoZmlsZSwgYnVmLCBvZmZzZXQsCi0JCQkJCQkgICAgIG9mZnNldF9oaWdoLCBuKTsKKwlyZXN1 bHQgPSBvc19maWxlX3JlYWRfbm9fZXJyb3JfaGFuZGxpbmdfZnVuYyhmaWxlLCBidWYsIG9mZnNl dCwgbik7CiAKIAlyZWdpc3Rlcl9wZnNfZmlsZV9pb19lbmQobG9ja2VyLCBuKTsKIApAQCAtMzM2 LDEwICszMjYsNyBAQCBwZnNfb3NfZmlsZV93cml0ZV9mdW5jKAogCQkJCW51bGwtdGVybWluYXRl ZCBzdHJpbmcgKi8KIAlvc19maWxlX3QJZmlsZSwJLyohPCBpbjogaGFuZGxlIHRvIGEgZmlsZSAq LwogCWNvbnN0IHZvaWQqCWJ1ZiwJLyohPCBpbjogYnVmZmVyIGZyb20gd2hpY2ggdG8gd3JpdGUg Ki8KLQl1bGludAkJb2Zmc2V0LAkvKiE8IGluOiBsZWFzdCBzaWduaWZpY2FudCAzMiBiaXRzIG9m IGZpbGUKLQkJCQlvZmZzZXQgd2hlcmUgdG8gd3JpdGUgKi8KLQl1bGludAkJb2Zmc2V0X2hpZ2gs LyohPCBpbjogbW9zdCBzaWduaWZpY2FudCAzMiBiaXRzIG9mCi0JCQkJb2Zmc2V0ICovCisJb3Nf b2Zmc2V0X3QJb2Zmc2V0LAkvKiE8IGluOiBmaWxlIG9mZnNldCB3aGVyZSB0byB3cml0ZSAqLwog CXVsaW50CQluLAkvKiE8IGluOiBudW1iZXIgb2YgYnl0ZXMgdG8gd3JpdGUgKi8KIAljb25zdCBj aGFyKglzcmNfZmlsZSwvKiE8IGluOiBmaWxlIG5hbWUgd2hlcmUgZnVuYyBpbnZva2VkICovCiAJ dWxpbnQJCXNyY19saW5lKS8qITwgaW46IGxpbmUgd2hlcmUgdGhlIGZ1bmMgaW52b2tlZCAqLwpA QCAtMzUxLDcgKzMzOCw3IEBAIHBmc19vc19maWxlX3dyaXRlX2Z1bmMoCiAJcmVnaXN0ZXJfcGZz X2ZpbGVfaW9fYmVnaW4oJnN0YXRlLCBsb2NrZXIsIGZpbGUsIG4sIFBTSV9GSUxFX1dSSVRFLAog CQkJCSAgIHNyY19maWxlLCBzcmNfbGluZSk7CiAKLQlyZXN1bHQgPSBvc19maWxlX3dyaXRlX2Z1 bmMobmFtZSwgZmlsZSwgYnVmLCBvZmZzZXQsIG9mZnNldF9oaWdoLCBuKTsKKwlyZXN1bHQgPSBv c19maWxlX3dyaXRlX2Z1bmMobmFtZSwgZmlsZSwgYnVmLCBvZmZzZXQsIG4pOwogCiAJcmVnaXN0 ZXJfcGZzX2ZpbGVfaW9fZW5kKGxvY2tlciwgbik7CiAKCj09PSBtb2RpZmllZCBmaWxlICdzdG9y YWdlL2lubm9iYXNlL2luY2x1ZGUvdXQwdXQuaCcKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9pbmNs dWRlL3V0MHV0LmgJcmV2aWQ6aW5hYW0ucmFuYUBvcmFjbGUuY29tLTIwMTEwNTE2MTYwMTM5LTk1 OWp3bndwYzF5MjIwbXIKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3V0MHV0LmgJcmV2 aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMTA1MTcxMTQyMTAtZTdkZng5ejM2cjJ0dW16 egpAQCAtOTgsMTYgKzk4LDYgQEAgZG8gewkJCQkJCQkJXAogI2RlZmluZSBVVF9NSU4oYSwgYikJ KChhKSA8IChiKSA/IChhKSA6IChiKSkKICNkZWZpbmUgVVRfTUFYKGEsIGIpCSgoYSkgPiAoYikg PyAoYSkgOiAoYikpCiAKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKi8vKioKLUdldHMgdGhlIGhpZ2ggMzIgYml0cyBpbiBhIHVsaW50LiBU aGF0IGlzIG1ha2VzIGEgc2hpZnQgPj4gMzIsCi1idXQgc2luY2UgdGhlcmUgc2VlbSB0byBiZSBj b21waWxlciBidWdzIGluIGJvdGggZ2NjIGFuZCBWaXN1YWwgQysrLAotd2UgZG8gdGhpcyBieSBh IHNwZWNpYWwgY29udmVyc2lvbi4KLUByZXR1cm4JYSA+PiAzMiAqLwotVU5JVl9JTlRFUk4KLXVs aW50Ci11dF9nZXRfaGlnaDMyKAotLyo9PT09PT09PT09Ki8KLQl1bGludAlhKTsJLyohPCBpbjog dWxpbnQgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovLyoqCiBDYWxjdWxhdGVzIHRoZSBtaW5pbXVtIG9mIHR3byB1bGludHMuCiBAcmV0 dXJuCW1pbmltdW0gKi8KCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2xvZy9s b2cwcmVjdi5jJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2xvZy9sb2cwcmVjdi5jCXJldmlkOmlu YWFtLnJhbmFAb3JhY2xlLmNvbS0yMDExMDUxNjE2MDEzOS05NTlqd253cGMxeTIyMG1yCisrKyBi L3N0b3JhZ2UvaW5ub2Jhc2UvbG9nL2xvZzByZWN2LmMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNs ZS5jb20tMjAxMTA1MTcxMTQyMTAtZTdkZng5ejM2cjJ0dW16egpAQCAtMzQ0MywxOSArMzQ0Mywx NSBAQCByZWN2X3Jlc2V0X2xvZ19maWxlc19mb3JfYmFja3VwKAogCQl9CiAKIAkJZnByaW50Zihz dGRlcnIsCi0JCQkiU2V0dGluZyBsb2cgZmlsZSBzaXplIHRvICVsdSAlbHVcbiIsCi0JCQkodWxv bmcpIHV0X2dldF9oaWdoMzIobG9nX2ZpbGVfc2l6ZSksCi0JCQkodWxvbmcpIGxvZ19maWxlX3Np emUgJiAweEZGRkZGRkZGVUwpOwotCi0JCXN1Y2Nlc3MgPSBvc19maWxlX3NldF9zaXplKG5hbWUs IGxvZ19maWxlLAotCQkJCQkgICBsb2dfZmlsZV9zaXplICYgMHhGRkZGRkZGRlVMLAotCQkJCQkg ICB1dF9nZXRfaGlnaDMyKGxvZ19maWxlX3NpemUpKTsKKwkJCSJTZXR0aW5nIGxvZyBmaWxlIHNp emUgdG8gJWxsdVxuIiwKKwkJCWxvZ19maWxlX3NpemUpOworCisJCXN1Y2Nlc3MgPSBvc19maWxl X3NldF9zaXplKG5hbWUsIGxvZ19maWxlLCBsb2dfZmlsZV9zaXplKTsKIAogCQlpZiAoIXN1Y2Nl c3MpIHsKIAkJCWZwcmludGYoc3RkZXJyLAotCQkJCSJJbm5vREI6IENhbm5vdCBzZXQgJXMgc2l6 ZSB0byAlbHUgJWx1XG4iLAotCQkJCW5hbWUsICh1bG9uZykgdXRfZ2V0X2hpZ2gzMihsb2dfZmls ZV9zaXplKSwKLQkJCQkodWxvbmcpIChsb2dfZmlsZV9zaXplICYgMHhGRkZGRkZGRlVMKSk7CisJ CQkJIklubm9EQjogQ2Fubm90IHNldCAlcyBzaXplIHRvICVsbHVcbiIsCisJCQkJbmFtZSwgbG9n X2ZpbGVfc2l6ZSk7CiAJCQlleGl0KDEpOwogCQl9CiAKQEAgLTM1MDksOSArMzUwNSw4IEBAIGxv Z19ncm91cF9yZWNvdmVyX2Zyb21fYXJjaGl2ZV9maWxlKAogCXVsaW50CQlsZW47CiAJaWJvb2wJ CXJldDsKIAlieXRlKgkJYnVmOwotCXVsaW50CQlyZWFkX29mZnNldDsKLQl1bGludAkJZmlsZV9z aXplOwotCXVsaW50CQlmaWxlX3NpemVfaGlnaDsKKwlvc19vZmZzZXRfdAlyZWFkX29mZnNldDsK Kwlvc19vZmZzZXRfdAlmaWxlX3NpemU7CiAJaW50CQlpbnB1dF9jaGFyOwogCWNoYXIJCW5hbWVb MTAwMDBdOwogCkBAIC0zNTUzLDEwICszNTQ4LDggQEAgYXNrX2FnYWluOgogCQl9CiAJfQogCi0J cmV0ID0gb3NfZmlsZV9nZXRfc2l6ZShmaWxlX2hhbmRsZSwgJmZpbGVfc2l6ZSwgJmZpbGVfc2l6 ZV9oaWdoKTsKLQl1dF9hKHJldCk7Ci0KLQl1dF9hKGZpbGVfc2l6ZV9oaWdoID09IDApOworCWZp bGVfc2l6ZSA9IG9zX2ZpbGVfZ2V0X3NpemUoZmlsZV9oYW5kbGUpOworCXV0X2EoZmlsZV9zaXpl ICE9IChvc19vZmZzZXRfdCkgLTEpOwogCiAJZnByaW50ZihzdGRlcnIsICJJbm5vREI6IE9wZW5l ZCBhcmNoaXZlZCBsb2cgZmlsZSAlc1xuIiwgbmFtZSk7CiAKCj09PSBtb2RpZmllZCBmaWxlICdz dG9yYWdlL2lubm9iYXNlL29zL29zMGZpbGUuYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9vcy9v czBmaWxlLmMJcmV2aWQ6aW5hYW0ucmFuYUBvcmFjbGUuY29tLTIwMTEwNTE2MTYwMTM5LTk1OWp3 bndwYzF5MjIwbXIKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9vcy9vczBmaWxlLmMJcmV2aWQ6bWFy a28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMTA1MTcxMTQyMTAtZTdkZng5ejM2cjJ0dW16egpAQCAt MTY4LDkgKzE2OCw3IEBAIHN0cnVjdCBvc19haW9fc2xvdF9zdHJ1Y3R7CiAJCQkJCXdyaXRlICov CiAJYnl0ZSoJCWJ1ZjsJCS8qITwgYnVmZmVyIHVzZWQgaW4gaS9vICovCiAJdWxpbnQJCXR5cGU7 CQkvKiE8IE9TX0ZJTEVfUkVBRCBvciBPU19GSUxFX1dSSVRFICovCi0JdWxpbnQJCW9mZnNldDsJ CS8qITwgMzIgbG93IGJpdHMgb2YgZmlsZSBvZmZzZXQgaW4KLQkJCQkJYnl0ZXMgKi8KLQl1bGlu dAkJb2Zmc2V0X2hpZ2g7CS8qITwgMzIgaGlnaCBiaXRzIG9mIGZpbGUgb2Zmc2V0ICovCisJb3Nf b2Zmc2V0X3QJb2Zmc2V0OwkJLyohPCBmaWxlIG9mZnNldCBpbiBieXRlcyAqLwogCW9zX2ZpbGVf dAlmaWxlOwkJLyohPCBmaWxlIHdoZXJlIHRvIHJlYWQgb3Igd3JpdGUgKi8KIAljb25zdCBjaGFy KgluYW1lOwkJLyohPCBmaWxlIG5hbWUgb3IgcGF0aCAqLwogCWlib29sCQlpb19hbHJlYWR5X2Rv bmU7LyohPCB1c2VkIG9ubHkgaW4gc2ltdWxhdGVkIGFpbzoKQEAgLTE4NjMsNzYgKzE4NjEsMzMg QEAgb3NfZmlsZV9jbG9zZV9ub19lcnJvcl9oYW5kbGluZygKIAogLyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8q KgogR2V0cyBhIGZpbGUgc2l6ZS4KLUByZXR1cm4JVFJVRSBpZiBzdWNjZXNzICovCitAcmV0dXJu CWZpbGUgc2l6ZSwgb3IgKG9zX29mZnNldF90KSAtMSBvbiBmYWlsdXJlICovCiBVTklWX0lOVEVS TgotaWJvb2wKK29zX29mZnNldF90CiBvc19maWxlX2dldF9zaXplKAogLyo9PT09PT09PT09PT09 Ki8KLQlvc19maWxlX3QJZmlsZSwJLyohPCBpbjogaGFuZGxlIHRvIGEgZmlsZSAqLwotCXVsaW50 KgkJc2l6ZSwJLyohPCBvdXQ6IGxlYXN0IHNpZ25pZmljYW50IDMyIGJpdHMgb2YgZmlsZQotCQkJ CXNpemUgKi8KLQl1bGludCoJCXNpemVfaGlnaCkvKiE8IG91dDogbW9zdCBzaWduaWZpY2FudCAz MiBiaXRzIG9mIHNpemUgKi8KKwlvc19maWxlX3QJZmlsZSkJLyohPCBpbjogaGFuZGxlIHRvIGEg ZmlsZSAqLwogewogI2lmZGVmIF9fV0lOX18KLQlEV09SRAloaWdoOwotCURXT1JECWxvdzsKKwlv c19vZmZzZXRfdAlvZmZzZXQ7CisJRFdPUkQJCWhpZ2g7CisJRFdPUkQJCWxvdzsKIAogCWxvdyA9 IEdldEZpbGVTaXplKGZpbGUsICZoaWdoKTsKIAogCWlmICgobG93ID09IDB4RkZGRkZGRkYpICYm IChHZXRMYXN0RXJyb3IoKSAhPSBOT19FUlJPUikpIHsKLQkJcmV0dXJuKEZBTFNFKTsKKwkJcmV0 dXJuKChvc19vZmZzZXRfdCkgLTEpOwogCX0KIAotCSpzaXplID0gbG93OwotCSpzaXplX2hpZ2gg PSBoaWdoOworCW9mZnNldCA9IChvc19vZmZzZXRfdCkgbG93IHwgKChvc19vZmZzZXRfdCkgaGln aCA8PCAzMik7CiAKLQlyZXR1cm4oVFJVRSk7CisJcmV0dXJuKG9mZnNldCk7CiAjZWxzZQotCW9m Zl90CW9mZnM7Ci0KLQlvZmZzID0gbHNlZWsoZmlsZSwgMCwgU0VFS19FTkQpOwotCi0JaWYgKG9m ZnMgPT0gKChvZmZfdCktMSkpIHsKLQotCQlyZXR1cm4oRkFMU0UpOwotCX0KLQotCWlmIChzaXpl b2Yob2ZmX3QpID4gNCkgewotCQkqc2l6ZSA9ICh1bGludCkob2ZmcyAmIDB4RkZGRkZGRkZVTCk7 Ci0JCSpzaXplX2hpZ2ggPSAodWxpbnQpKG9mZnMgPj4gMzIpOwotCX0gZWxzZSB7Ci0JCSpzaXpl ID0gKHVsaW50KSBvZmZzOwotCQkqc2l6ZV9oaWdoID0gMDsKLQl9Ci0KLQlyZXR1cm4oVFJVRSk7 CisJcmV0dXJuKChvc19vZmZzZXRfdCkgbHNlZWsoZmlsZSwgMCwgU0VFS19FTkQpKTsKICNlbmRp ZgogfQogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKiovLyoqCi1HZXRzIGZpbGUgc2l6ZSBhcyBhIDY0LWJpdCBp bnRlZ2VyIGliX2ludDY0X3QuCi1AcmV0dXJuCXNpemUgaW4gYnl0ZXMsIC0xIGlmIGVycm9yICov Ci1VTklWX0lOVEVSTgotaWJfaW50NjRfdAotb3NfZmlsZV9nZXRfc2l6ZV9hc19pYmxvbmdsb25n KAotLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwotCW9zX2ZpbGVfdAlmaWxlKQkvKiE8 IGluOiBoYW5kbGUgdG8gYSBmaWxlICovCi17Ci0JdWxpbnQJc2l6ZTsKLQl1bGludAlzaXplX2hp Z2g7Ci0JaWJvb2wJc3VjY2VzczsKLQotCXN1Y2Nlc3MgPSBvc19maWxlX2dldF9zaXplKGZpbGUs ICZzaXplLCAmc2l6ZV9oaWdoKTsKLQotCWlmICghc3VjY2VzcykgewotCi0JCXJldHVybigtMSk7 Ci0JfQotCi0JcmV0dXJuKCgoKGliX2ludDY0X3Qpc2l6ZV9oaWdoKSA8PCAzMikgKyAoaWJfaW50 NjRfdClzaXplKTsKLX0KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogV3JpdGUgdGhlIHNwZWNpZmll ZCBudW1iZXIgb2YgemVyb3MgdG8gYSBuZXdseSBjcmVhdGVkIGZpbGUuCiBAcmV0dXJuCVRSVUUg aWYgc3VjY2VzcyAqLwogVU5JVl9JTlRFUk4KQEAgLTE5NDIsMjQgKzE4OTcsMTggQEAgb3NfZmls ZV9zZXRfc2l6ZSgKIAljb25zdCBjaGFyKgluYW1lLAkvKiE8IGluOiBuYW1lIG9mIHRoZSBmaWxl IG9yIHBhdGggYXMgYQogCQkJCW51bGwtdGVybWluYXRlZCBzdHJpbmcgKi8KIAlvc19maWxlX3QJ ZmlsZSwJLyohPCBpbjogaGFuZGxlIHRvIGEgZmlsZSAqLwotCXVsaW50CQlzaXplLAkvKiE8IGlu OiBsZWFzdCBzaWduaWZpY2FudCAzMiBiaXRzIG9mIGZpbGUKLQkJCQlzaXplICovCi0JdWxpbnQJ CXNpemVfaGlnaCkvKiE8IGluOiBtb3N0IHNpZ25pZmljYW50IDMyIGJpdHMgb2Ygc2l6ZSAqLwor CW9zX29mZnNldF90CXNpemUpCS8qITwgaW46IGZpbGUgc2l6ZSAqLwogewotCWliX2ludDY0X3QJ Y3VycmVudF9zaXplOwotCWliX2ludDY0X3QJZGVzaXJlZF9zaXplOworCW9zX29mZnNldF90CWN1 cnJlbnRfc2l6ZTsKIAlpYm9vbAkJcmV0OwogCWJ5dGUqCQlidWY7CiAJYnl0ZSoJCWJ1ZjI7CiAJ dWxpbnQJCWJ1Zl9zaXplOwogCi0JdXRfYShzaXplID09IChzaXplICYgMHhGRkZGRkZGRikpOwot CiAJY3VycmVudF9zaXplID0gMDsKLQlkZXNpcmVkX3NpemUgPSAoaWJfaW50NjRfdClzaXplICsg KCgoaWJfaW50NjRfdClzaXplX2hpZ2gpIDw8IDMyKTsKIAogCS8qIFdyaXRlIHVwIHRvIDEgbWVn YWJ5dGUgYXQgYSB0aW1lLiAqLwotCWJ1Zl9zaXplID0gdXRfbWluKDY0LCAodWxpbnQpIChkZXNp cmVkX3NpemUgLyBVTklWX1BBR0VfU0laRSkpCisJYnVmX3NpemUgPSB1dF9taW4oNjQsICh1bGlu dCkgKHNpemUgLyBVTklWX1BBR0VfU0laRSkpCiAJCSogVU5JVl9QQUdFX1NJWkU7CiAJYnVmMiA9 IHV0X21hbGxvYyhidWZfc2l6ZSArIFVOSVZfUEFHRV9TSVpFKTsKIApAQCAtMTk2OSw0MiArMTkx OCwzOSBAQCBvc19maWxlX3NldF9zaXplKAogCS8qIFdyaXRlIGJ1ZmZlciBmdWxsIG9mIHplcm9z ICovCiAJbWVtc2V0KGJ1ZiwgMCwgYnVmX3NpemUpOwogCi0JaWYgKGRlc2lyZWRfc2l6ZSA+PSAo aWJfaW50NjRfdCkoMTAwICogMTAyNCAqIDEwMjQpKSB7CisJaWYgKHNpemUgPj0gKG9zX29mZnNl dF90KSAxMDAgPDwgMjApIHsKIAogCQlmcHJpbnRmKHN0ZGVyciwgIklubm9EQjogUHJvZ3Jlc3Mg aW4gTUI6Iik7CiAJfQogCi0Jd2hpbGUgKGN1cnJlbnRfc2l6ZSA8IGRlc2lyZWRfc2l6ZSkgewor CXdoaWxlIChjdXJyZW50X3NpemUgPCBzaXplKSB7CiAJCXVsaW50CW5fYnl0ZXM7CiAKLQkJaWYg KGRlc2lyZWRfc2l6ZSAtIGN1cnJlbnRfc2l6ZSA8IChpYl9pbnQ2NF90KSBidWZfc2l6ZSkgewot CQkJbl9ieXRlcyA9ICh1bGludCkgKGRlc2lyZWRfc2l6ZSAtIGN1cnJlbnRfc2l6ZSk7CisJCWlm IChzaXplIC0gY3VycmVudF9zaXplIDwgKGliX2ludDY0X3QpIGJ1Zl9zaXplKSB7CisJCQluX2J5 dGVzID0gKHVsaW50KSAoc2l6ZSAtIGN1cnJlbnRfc2l6ZSk7CiAJCX0gZWxzZSB7CiAJCQluX2J5 dGVzID0gYnVmX3NpemU7CiAJCX0KIAotCQlyZXQgPSBvc19maWxlX3dyaXRlKG5hbWUsIGZpbGUs IGJ1ZiwKLQkJCQkgICAgKHVsaW50KShjdXJyZW50X3NpemUgJiAweEZGRkZGRkZGKSwKLQkJCQkg ICAgKHVsaW50KShjdXJyZW50X3NpemUgPj4gMzIpLAotCQkJCSAgICBuX2J5dGVzKTsKKwkJcmV0 ID0gb3NfZmlsZV93cml0ZShuYW1lLCBmaWxlLCBidWYsIGN1cnJlbnRfc2l6ZSwgbl9ieXRlcyk7 CiAJCWlmICghcmV0KSB7CiAJCQl1dF9mcmVlKGJ1ZjIpOwogCQkJZ290byBlcnJvcl9oYW5kbGlu ZzsKIAkJfQogCiAJCS8qIFByaW50IGFib3V0IHByb2dyZXNzIGZvciBlYWNoIDEwMCBNQiB3cml0 dGVuICovCi0JCWlmICgoaWJfaW50NjRfdCkgKGN1cnJlbnRfc2l6ZSArIG5fYnl0ZXMpIC8gKGli X2ludDY0X3QpKDEwMCAqIDEwMjQgKiAxMDI0KQotCQkgICAgIT0gY3VycmVudF9zaXplIC8gKGli X2ludDY0X3QpKDEwMCAqIDEwMjQgKiAxMDI0KSkgeworCQlpZiAoKGN1cnJlbnRfc2l6ZSArIG5f Ynl0ZXMpIC8gKDEwMCA8PCAyMCkKKwkJICAgICE9IGN1cnJlbnRfc2l6ZSAvICgxMDAgPDwgMjAp KSB7CiAKIAkJCWZwcmludGYoc3RkZXJyLCAiICVsdTAwIiwKIAkJCQkodWxvbmcpICgoY3VycmVu dF9zaXplICsgbl9ieXRlcykKLQkJCQkJIC8gKGliX2ludDY0X3QpKDEwMCAqIDEwMjQgKiAxMDI0 KSkpOworCQkJCQkgLyAoMTAwIDw8IDIwKSkpOwogCQl9CiAKIAkJY3VycmVudF9zaXplICs9IG5f Ynl0ZXM7CiAJfQogCi0JaWYgKGRlc2lyZWRfc2l6ZSA+PSAoaWJfaW50NjRfdCkoMTAwICogMTAy NCAqIDEwMjQpKSB7CisJaWYgKHNpemUgPj0gKG9zX29mZnNldF90KSAxMDAgPDwgMjApIHsKIAog CQlmcHJpbnRmKHN0ZGVyciwgIlxuIik7CiAJfQpAQCAtMjE5MCwzNSArMjEzNiwyOCBAQCBvc19m aWxlX2ZsdXNoX2Z1bmMoCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIERvZXMgYSBzeW5jaHJvbm91cyByZWFk IG9wZXJhdGlvbiBpbiBQb3NpeC4KIEByZXR1cm4JbnVtYmVyIG9mIGJ5dGVzIHJlYWQsIC0xIGlm IGVycm9yICovCi1zdGF0aWMKK3N0YXRpYyBfX2F0dHJpYnV0ZV9fKChub25udWxsLCB3YXJuX3Vu dXNlZF9yZXN1bHQpKQogc3NpemVfdAogb3NfZmlsZV9wcmVhZCgKIC8qPT09PT09PT09PSovCiAJ b3NfZmlsZV90CWZpbGUsCS8qITwgaW46IGhhbmRsZSB0byBhIGZpbGUgKi8KIAl2b2lkKgkJYnVm LAkvKiE8IGluOiBidWZmZXIgd2hlcmUgdG8gcmVhZCAqLwogCXVsaW50CQluLAkvKiE8IGluOiBu dW1iZXIgb2YgYnl0ZXMgdG8gcmVhZCAqLwotCXVsaW50CQlvZmZzZXQsCS8qITwgaW46IGxlYXN0 IHNpZ25pZmljYW50IDMyIGJpdHMgb2YgZmlsZQotCQkJCW9mZnNldCBmcm9tIHdoZXJlIHRvIHJl YWQgKi8KLQl1bGludAkJb2Zmc2V0X2hpZ2gpIC8qITwgaW46IG1vc3Qgc2lnbmlmaWNhbnQgMzIg Yml0cyBvZgotCQkJCW9mZnNldCAqLworCW9zX29mZnNldF90CW9mZnNldCkJLyohPCBpbjogZmls ZSBvZmZzZXQgZnJvbSB3aGVyZSB0byByZWFkICovCiB7CiAJb2ZmX3QJb2ZmczsKICNpZiBkZWZp bmVkKEhBVkVfUFJFQUQpICYmICFkZWZpbmVkKEhBVkVfQlJPS0VOX1BSRUFEKQogCXNzaXplX3QJ bl9ieXRlczsKICNlbmRpZiAvKiBIQVZFX1BSRUFEICYmICFIQVZFX0JST0tFTl9QUkVBRCAqLwog Ci0JdXRfYSgob2Zmc2V0ICYgMHhGRkZGRkZGRlVMKSA9PSBvZmZzZXQpOworCXV0X2FkKG4pOwog CiAJLyogSWYgb2ZmX3QgaXMgPiA0IGJ5dGVzIGluIHNpemUsIHRoZW4gd2UgYXNzdW1lIHdlIGNh biBwYXNzIGEKIAk2NC1iaXQgYWRkcmVzcyAqLworCW9mZnMgPSAob2ZmX3QpIG9mZnNldDsKIAot CWlmIChzaXplb2Yob2ZmX3QpID4gNCkgewotCQlvZmZzID0gKG9mZl90KW9mZnNldCArICgoKG9m Zl90KW9mZnNldF9oaWdoKSA8PCAzMik7Ci0KLQl9IGVsc2UgewotCQlvZmZzID0gKG9mZl90KW9m ZnNldDsKLQotCQlpZiAob2Zmc2V0X2hpZ2ggPiAwKSB7CisJaWYgKHNpemVvZihvZmZfdCkgPD0g NCkgeworCQlpZiAoVU5JVl9VTkxJS0VMWShvZmZzZXQgIT0gKG9zX29mZnNldF90KSBvZmZzKSkg ewogCQkJZnByaW50ZihzdGRlcnIsCiAJCQkJIklubm9EQjogRXJyb3I6IGZpbGUgcmVhZCBhdCBv ZmZzZXQgPiA0IEdCXG4iKTsKIAkJfQpAQCAtMjI4NywzMiArMjIyNiwyNiBAQCBvc19maWxlX3By ZWFkKAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKiovLyoqCiBEb2VzIGEgc3luY2hyb25vdXMgd3JpdGUgb3BlcmF0aW9u IGluIFBvc2l4LgogQHJldHVybgludW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiwgLTEgaWYgZXJyb3Ig Ki8KLXN0YXRpYworc3RhdGljIF9fYXR0cmlidXRlX18oKG5vbm51bGwsIHdhcm5fdW51c2VkX3Jl c3VsdCkpCiBzc2l6ZV90CiBvc19maWxlX3B3cml0ZSgKIC8qPT09PT09PT09PT0qLwogCW9zX2Zp bGVfdAlmaWxlLAkvKiE8IGluOiBoYW5kbGUgdG8gYSBmaWxlICovCiAJY29uc3Qgdm9pZCoJYnVm LAkvKiE8IGluOiBidWZmZXIgZnJvbSB3aGVyZSB0byB3cml0ZSAqLwogCXVsaW50CQluLAkvKiE8 IGluOiBudW1iZXIgb2YgYnl0ZXMgdG8gd3JpdGUgKi8KLQl1bGludAkJb2Zmc2V0LAkvKiE8IGlu OiBsZWFzdCBzaWduaWZpY2FudCAzMiBiaXRzIG9mIGZpbGUKLQkJCQlvZmZzZXQgd2hlcmUgdG8g d3JpdGUgKi8KLQl1bGludAkJb2Zmc2V0X2hpZ2gpIC8qITwgaW46IG1vc3Qgc2lnbmlmaWNhbnQg MzIgYml0cyBvZgotCQkJCW9mZnNldCAqLworCW9zX29mZnNldF90CW9mZnNldCkJLyohPCBpbjog ZmlsZSBvZmZzZXQgd2hlcmUgdG8gd3JpdGUgKi8KIHsKIAlzc2l6ZV90CXJldDsKIAlvZmZfdAlv ZmZzOwogCi0JdXRfYSgob2Zmc2V0ICYgMHhGRkZGRkZGRlVMKSA9PSBvZmZzZXQpOworCXV0X2Fk KG4pOwogCiAJLyogSWYgb2ZmX3QgaXMgPiA0IGJ5dGVzIGluIHNpemUsIHRoZW4gd2UgYXNzdW1l IHdlIGNhbiBwYXNzIGEKIAk2NC1iaXQgYWRkcmVzcyAqLworCW9mZnMgPSAob2ZmX3QpIG9mZnNl dDsKIAotCWlmIChzaXplb2Yob2ZmX3QpID4gNCkgewotCQlvZmZzID0gKG9mZl90KW9mZnNldCAr ICgoKG9mZl90KW9mZnNldF9oaWdoKSA8PCAzMik7Ci0JfSBlbHNlIHsKLQkJb2ZmcyA9IChvZmZf dClvZmZzZXQ7Ci0KLQkJaWYgKG9mZnNldF9oaWdoID4gMCkgeworCWlmIChzaXplb2Yob2ZmX3Qp IDw9IDQpIHsKKwkJaWYgKFVOSVZfVU5MSUtFTFkob2Zmc2V0ICE9IChvc19vZmZzZXRfdCkgb2Zm cykpIHsKIAkJCWZwcmludGYoc3RkZXJyLAogCQkJCSJJbm5vREI6IEVycm9yOiBmaWxlIHdyaXRl IgogCQkJCSIgYXQgb2Zmc2V0ID4gNCBHQlxuIik7CkBAIC0yNDE5LDEwICsyMzUyLDcgQEAgb3Nf ZmlsZV9yZWFkX2Z1bmMoCiAvKj09PT09PT09PT09PT09Ki8KIAlvc19maWxlX3QJZmlsZSwJLyoh PCBpbjogaGFuZGxlIHRvIGEgZmlsZSAqLwogCXZvaWQqCQlidWYsCS8qITwgaW46IGJ1ZmZlciB3 aGVyZSB0byByZWFkICovCi0JdWxpbnQJCW9mZnNldCwJLyohPCBpbjogbGVhc3Qgc2lnbmlmaWNh bnQgMzIgYml0cyBvZiBmaWxlCi0JCQkJb2Zmc2V0IHdoZXJlIHRvIHJlYWQgKi8KLQl1bGludAkJ b2Zmc2V0X2hpZ2gsIC8qITwgaW46IG1vc3Qgc2lnbmlmaWNhbnQgMzIgYml0cyBvZgotCQkJCW9m ZnNldCAqLworCW9zX29mZnNldF90CW9mZnNldCwJLyohPCBpbjogZmlsZSBvZmZzZXQgd2hlcmUg dG8gcmVhZCAqLwogCXVsaW50CQluKQkvKiE8IGluOiBudW1iZXIgb2YgYnl0ZXMgdG8gcmVhZCAq LwogewogI2lmZGVmIF9fV0lOX18KQEAgLTI0MzgsNyArMjM2OCw2IEBAIG9zX2ZpbGVfcmVhZF9m dW5jKAogCiAJLyogT24gNjQtYml0IFdpbmRvd3MsIHVsaW50IGlzIDY0IGJpdHMuIEJ1dCBvZmZz ZXQgYW5kIG4gc2hvdWxkIGJlCiAJbm8gbW9yZSB0aGFuIDMyIGJpdHMuICovCi0JdXRfYSgob2Zm c2V0ICYgMHhGRkZGRkZGRlVMKSA9PSBvZmZzZXQpOwogCXV0X2EoKG4gJiAweEZGRkZGRkZGVUwp ID09IG4pOwogCiAJb3Nfbl9maWxlX3JlYWRzKys7CkBAIC0yNDQ5LDggKzIzNzgsOCBAQCB0cnlf YWdhaW46CiAJdXRfYWQoYnVmKTsKIAl1dF9hZChuID4gMCk7CiAKLQlsb3cgPSAoRFdPUkQpIG9m ZnNldDsKLQloaWdoID0gKERXT1JEKSBvZmZzZXRfaGlnaDsKKwlsb3cgPSAoRFdPUkQpIG9mZnNl dCAmIDB4RkZGRkZGRkY7CisJaGlnaCA9IChEV09SRCkgKG9mZnNldCA+PiAzMik7CiAKIAlvc19t dXRleF9lbnRlcihvc19maWxlX2NvdW50X211dGV4KTsKIAlvc19uX3BlbmRpbmdfcmVhZHMrKzsK QEAgLTI1MDEsNyArMjQzMCw3IEBAIHRyeV9hZ2FpbjoKIAlvc19ieXRlc19yZWFkX3NpbmNlX3By aW50b3V0ICs9IG47CiAKIHRyeV9hZ2FpbjoKLQlyZXQgPSBvc19maWxlX3ByZWFkKGZpbGUsIGJ1 Ziwgbiwgb2Zmc2V0LCBvZmZzZXRfaGlnaCk7CisJcmV0ID0gb3NfZmlsZV9wcmVhZChmaWxlLCBi dWYsIG4sIG9mZnNldCk7CiAKIAlpZiAoKHVsaW50KXJldCA9PSBuKSB7CiAKQEAgLTI1MDksMTAg KzI0MzgsOSBAQCB0cnlfYWdhaW46CiAJfQogCiAJZnByaW50ZihzdGRlcnIsCi0JCSJJbm5vREI6 IEVycm9yOiB0cmllZCB0byByZWFkICVsdSBieXRlcyBhdCBvZmZzZXQgJWx1ICVsdS5cbiIKKwkJ Iklubm9EQjogRXJyb3I6IHRyaWVkIHRvIHJlYWQgJWx1IGJ5dGVzIGF0IG9mZnNldCAlbGx1Llxu IgogCQkiSW5ub0RCOiBXYXMgb25seSBhYmxlIHRvIHJlYWQgJWxkLlxuIiwKLQkJKHVsb25nKW4s ICh1bG9uZylvZmZzZXRfaGlnaCwKLQkJKHVsb25nKW9mZnNldCwgKGxvbmcpcmV0KTsKKwkJKHVs b25nKW4sIG9mZnNldCwgKGxvbmcpcmV0KTsKICNlbmRpZiAvKiBfX1dJTl9fICovCiAjaWZkZWYg X19XSU5fXwogZXJyb3JfaGFuZGxpbmc6CkBAIC0yNTUxLDEwICsyNDc5LDcgQEAgb3NfZmlsZV9y ZWFkX25vX2Vycm9yX2hhbmRsaW5nX2Z1bmMoCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ki8KIAlvc19maWxlX3QJZmlsZSwJLyohPCBpbjogaGFuZGxlIHRvIGEgZmlsZSAqLwog CXZvaWQqCQlidWYsCS8qITwgaW46IGJ1ZmZlciB3aGVyZSB0byByZWFkICovCi0JdWxpbnQJCW9m ZnNldCwJLyohPCBpbjogbGVhc3Qgc2lnbmlmaWNhbnQgMzIgYml0cyBvZiBmaWxlCi0JCQkJb2Zm c2V0IHdoZXJlIHRvIHJlYWQgKi8KLQl1bGludAkJb2Zmc2V0X2hpZ2gsIC8qITwgaW46IG1vc3Qg c2lnbmlmaWNhbnQgMzIgYml0cyBvZgotCQkJCW9mZnNldCAqLworCW9zX29mZnNldF90CW9mZnNl dCwJLyohPCBpbjogZmlsZSBvZmZzZXQgd2hlcmUgdG8gcmVhZCAqLwogCXVsaW50CQluKQkvKiE8 IGluOiBudW1iZXIgb2YgYnl0ZXMgdG8gcmVhZCAqLwogewogI2lmZGVmIF9fV0lOX18KQEAgLTI1 NzAsNyArMjQ5NSw2IEBAIG9zX2ZpbGVfcmVhZF9ub19lcnJvcl9oYW5kbGluZ19mdW5jKAogCiAJ LyogT24gNjQtYml0IFdpbmRvd3MsIHVsaW50IGlzIDY0IGJpdHMuIEJ1dCBvZmZzZXQgYW5kIG4g c2hvdWxkIGJlCiAJbm8gbW9yZSB0aGFuIDMyIGJpdHMuICovCi0JdXRfYSgob2Zmc2V0ICYgMHhG RkZGRkZGRlVMKSA9PSBvZmZzZXQpOwogCXV0X2EoKG4gJiAweEZGRkZGRkZGVUwpID09IG4pOwog CiAJb3Nfbl9maWxlX3JlYWRzKys7CkBAIC0yNTgxLDggKzI1MDUsOCBAQCB0cnlfYWdhaW46CiAJ dXRfYWQoYnVmKTsKIAl1dF9hZChuID4gMCk7CiAKLQlsb3cgPSAoRFdPUkQpIG9mZnNldDsKLQlo aWdoID0gKERXT1JEKSBvZmZzZXRfaGlnaDsKKwlsb3cgPSAoRFdPUkQpIG9mZnNldCAmIDB4RkZG RkZGRkY7CisJaGlnaCA9IChEV09SRCkgKG9mZnNldCA+PiAzMik7CiAKIAlvc19tdXRleF9lbnRl cihvc19maWxlX2NvdW50X211dGV4KTsKIAlvc19uX3BlbmRpbmdfcmVhZHMrKzsKQEAgLTI2MzMs NyArMjU1Nyw3IEBAIHRyeV9hZ2FpbjoKIAlvc19ieXRlc19yZWFkX3NpbmNlX3ByaW50b3V0ICs9 IG47CiAKIHRyeV9hZ2FpbjoKLQlyZXQgPSBvc19maWxlX3ByZWFkKGZpbGUsIGJ1Ziwgbiwgb2Zm c2V0LCBvZmZzZXRfaGlnaCk7CisJcmV0ID0gb3NfZmlsZV9wcmVhZChmaWxlLCBidWYsIG4sIG9m ZnNldCk7CiAKIAlpZiAoKHVsaW50KXJldCA9PSBuKSB7CiAKQEAgLTI2ODgsMTAgKzI2MTIsNyBA QCBvc19maWxlX3dyaXRlX2Z1bmMoCiAJCQkJbnVsbC10ZXJtaW5hdGVkIHN0cmluZyAqLwogCW9z X2ZpbGVfdAlmaWxlLAkvKiE8IGluOiBoYW5kbGUgdG8gYSBmaWxlICovCiAJY29uc3Qgdm9pZCoJ YnVmLAkvKiE8IGluOiBidWZmZXIgZnJvbSB3aGljaCB0byB3cml0ZSAqLwotCXVsaW50CQlvZmZz ZXQsCS8qITwgaW46IGxlYXN0IHNpZ25pZmljYW50IDMyIGJpdHMgb2YgZmlsZQotCQkJCW9mZnNl dCB3aGVyZSB0byB3cml0ZSAqLwotCXVsaW50CQlvZmZzZXRfaGlnaCwgLyohPCBpbjogbW9zdCBz aWduaWZpY2FudCAzMiBiaXRzIG9mCi0JCQkJb2Zmc2V0ICovCisJb3Nfb2Zmc2V0X3QJb2Zmc2V0 LAkvKiE8IGluOiBmaWxlIG9mZnNldCB3aGVyZSB0byB3cml0ZSAqLwogCXVsaW50CQluKQkvKiE8 IGluOiBudW1iZXIgb2YgYnl0ZXMgdG8gd3JpdGUgKi8KIHsKICNpZmRlZiBfX1dJTl9fCkBAIC0y NzA4LDcgKzI2MjksNiBAQCBvc19maWxlX3dyaXRlX2Z1bmMoCiAKIAkvKiBPbiA2NC1iaXQgV2lu ZG93cywgdWxpbnQgaXMgNjQgYml0cy4gQnV0IG9mZnNldCBhbmQgbiBzaG91bGQgYmUKIAlubyBt b3JlIHRoYW4gMzIgYml0cy4gKi8KLQl1dF9hKChvZmZzZXQgJiAweEZGRkZGRkZGVUwpID09IG9m ZnNldCk7CiAJdXRfYSgobiAmIDB4RkZGRkZGRkZVTCkgPT0gbik7CiAKIAlvc19uX2ZpbGVfd3Jp dGVzKys7CkBAIC0yNzE3LDggKzI2MzcsOCBAQCBvc19maWxlX3dyaXRlX2Z1bmMoCiAJdXRfYWQo YnVmKTsKIAl1dF9hZChuID4gMCk7CiByZXRyeToKLQlsb3cgPSAoRFdPUkQpIG9mZnNldDsKLQlo aWdoID0gKERXT1JEKSBvZmZzZXRfaGlnaDsKKwlsb3cgPSAoRFdPUkQpIG9mZnNldCAmIDB4RkZG RkZGRkY7CisJaGlnaCA9IChEV09SRCkgKG9mZnNldCA+PiAzMik7CiAKIAlvc19tdXRleF9lbnRl cihvc19maWxlX2NvdW50X211dGV4KTsKIAlvc19uX3BlbmRpbmdfd3JpdGVzKys7CkBAIC0yNzUw LDE0ICsyNjcwLDEzIEBAIHJldHJ5OgogCQlmcHJpbnRmKHN0ZGVyciwKIAkJCSIgIElubm9EQjog RXJyb3I6IEZpbGUgcG9pbnRlciBwb3NpdGlvbmluZyB0byIKIAkJCSIgZmlsZSAlcyBmYWlsZWQg YXRcbiIKLQkJCSJJbm5vREI6IG9mZnNldCAlbHUgJWx1LiBPcGVyYXRpbmcgc3lzdGVtIgorCQkJ Iklubm9EQjogb2Zmc2V0ICVsbHUuIE9wZXJhdGluZyBzeXN0ZW0iCiAJCQkiIGVycm9yIG51bWJl ciAlbHUuXG4iCiAJCQkiSW5ub0RCOiBTb21lIG9wZXJhdGluZyBzeXN0ZW0gZXJyb3IgbnVtYmVy cyIKIAkJCSIgYXJlIGRlc2NyaWJlZCBhdFxuIgogCQkJIklubm9EQjogIgogCQkJUkVGTUFOICJv cGVyYXRpbmctc3lzdGVtLWVycm9yLWNvZGVzLmh0bWxcbiIsCi0JCQluYW1lLCAodWxvbmcpIG9m ZnNldF9oaWdoLCAodWxvbmcpIG9mZnNldCwKLQkJCSh1bG9uZykgR2V0TGFzdEVycm9yKCkpOwor CQkJbmFtZSwgb2Zmc2V0LCAodWxvbmcpIEdldExhc3RFcnJvcigpKTsKIAogCQlyZXR1cm4oRkFM U0UpOwogCX0KQEAgLTI4MDgsNyArMjcyNyw3IEBAIHJldHJ5OgogCiAJCWZwcmludGYoc3RkZXJy LAogCQkJIiAgSW5ub0RCOiBFcnJvcjogV3JpdGUgdG8gZmlsZSAlcyBmYWlsZWQiCi0JCQkiIGF0 IG9mZnNldCAlbHUgJWx1LlxuIgorCQkJIiBhdCBvZmZzZXQgJWxsdS5cbiIKIAkJCSJJbm5vREI6 ICVsdSBieXRlcyBzaG91bGQgaGF2ZSBiZWVuIHdyaXR0ZW4sIgogCQkJIiBvbmx5ICVsdSB3ZXJl IHdyaXR0ZW4uXG4iCiAJCQkiSW5ub0RCOiBPcGVyYXRpbmcgc3lzdGVtIGVycm9yIG51bWJlciAl bHUuXG4iCkBAIC0yODE2LDcgKzI3MzUsNyBAQCByZXRyeToKIAkJCSIgc3VwcG9ydCBmaWxlcyBv ZiB0aGlzIHNpemUuXG4iCiAJCQkiSW5ub0RCOiBDaGVjayBhbHNvIHRoYXQgdGhlIGRpc2sgaXMg bm90IGZ1bGwiCiAJCQkiIG9yIGEgZGlzayBxdW90YSBleGNlZWRlZC5cbiIsCi0JCQluYW1lLCAo dWxvbmcpIG9mZnNldF9oaWdoLCAodWxvbmcpIG9mZnNldCwKKwkJCW5hbWUsIG9mZnNldCwKIAkJ CSh1bG9uZykgbiwgKHVsb25nKSBsZW4sICh1bG9uZykgZXJyKTsKIAogCQlpZiAoc3RyZXJyb3Io KGludCllcnIpICE9IE5VTEwpIHsKQEAgLTI4MzgsNyArMjc1Nyw3IEBAIHJldHJ5OgogI2Vsc2UK IAlzc2l6ZV90CXJldDsKIAotCXJldCA9IG9zX2ZpbGVfcHdyaXRlKGZpbGUsIGJ1Ziwgbiwgb2Zm c2V0LCBvZmZzZXRfaGlnaCk7CisJcmV0ID0gb3NfZmlsZV9wd3JpdGUoZmlsZSwgYnVmLCBuLCBv ZmZzZXQpOwogCiAJaWYgKCh1bGludClyZXQgPT0gbikgewogCkBAIC0yODUxLDcgKzI3NzAsNyBA QCByZXRyeToKIAogCQlmcHJpbnRmKHN0ZGVyciwKIAkJCSIgIElubm9EQjogRXJyb3I6IFdyaXRl IHRvIGZpbGUgJXMgZmFpbGVkIgotCQkJIiBhdCBvZmZzZXQgJWx1ICVsdS5cbiIKKwkJCSIgYXQg b2Zmc2V0ICVsbHUuXG4iCiAJCQkiSW5ub0RCOiAlbHUgYnl0ZXMgc2hvdWxkIGhhdmUgYmVlbiB3 cml0dGVuLCIKIAkJCSIgb25seSAlbGQgd2VyZSB3cml0dGVuLlxuIgogCQkJIklubm9EQjogT3Bl cmF0aW5nIHN5c3RlbSBlcnJvciBudW1iZXIgJWx1LlxuIgpAQCAtMjg1OSw3ICsyNzc4LDcgQEAg cmV0cnk6CiAJCQkiIHN1cHBvcnQgZmlsZXMgb2YgdGhpcyBzaXplLlxuIgogCQkJIklubm9EQjog Q2hlY2sgYWxzbyB0aGF0IHRoZSBkaXNrIGlzIG5vdCBmdWxsIgogCQkJIiBvciBhIGRpc2sgcXVv dGEgZXhjZWVkZWQuXG4iLAotCQkJbmFtZSwgb2Zmc2V0X2hpZ2gsIG9mZnNldCwgbiwgKGxvbmcg aW50KXJldCwKKwkJCW5hbWUsIG9mZnNldCwgbiwgKGxvbmcgaW50KXJldCwKIAkJCSh1bGludCll cnJubyk7CiAJCWlmIChzdHJlcnJvcihlcnJubykgIT0gTlVMTCkgewogCQkJZnByaW50ZihzdGRl cnIsCkBAIC0zNjU0LDEwICszNTczLDcgQEAgb3NfYWlvX2FycmF5X3Jlc2VydmVfc2xvdCgKIAkJ CQludWxsLXRlcm1pbmF0ZWQgc3RyaW5nICovCiAJdm9pZCoJCWJ1ZiwJLyohPCBpbjogYnVmZmVy IHdoZXJlIHRvIHJlYWQgb3IgZnJvbSB3aGljaAogCQkJCXRvIHdyaXRlICovCi0JdWxpbnQJCW9m ZnNldCwJLyohPCBpbjogbGVhc3Qgc2lnbmlmaWNhbnQgMzIgYml0cyBvZiBmaWxlCi0JCQkJb2Zm c2V0ICovCi0JdWxpbnQJCW9mZnNldF9oaWdoLCAvKiE8IGluOiBtb3N0IHNpZ25pZmljYW50IDMy IGJpdHMgb2YKLQkJCQlvZmZzZXQgKi8KKwlvc19vZmZzZXRfdAlvZmZzZXQsCS8qITwgaW46IGZp bGUgb2Zmc2V0ICovCiAJdWxpbnQJCWxlbikJLyohPCBpbjogbGVuZ3RoIG9mIHRoZSBibG9jayB0 byByZWFkIG9yIHdyaXRlICovCiB7CiAJb3NfYWlvX3Nsb3RfdCoJc2xvdCA9IE5VTEw7CkBAIC0z NzQ1LDEzICszNjYxLDEyIEBAIGZvdW5kOgogCXNsb3QtPnR5cGUgICAgID0gdHlwZTsKIAlzbG90 LT5idWYgICAgICA9IGJ1ZjsKIAlzbG90LT5vZmZzZXQgICA9IG9mZnNldDsKLQlzbG90LT5vZmZz ZXRfaGlnaCA9IG9mZnNldF9oaWdoOwogCXNsb3QtPmlvX2FscmVhZHlfZG9uZSA9IEZBTFNFOwog CiAjaWZkZWYgV0lOX0FTWU5DX0lPCiAJY29udHJvbCA9ICYoc2xvdC0+Y29udHJvbCk7Ci0JY29u dHJvbC0+T2Zmc2V0ID0gKERXT1JEKW9mZnNldDsKLQljb250cm9sLT5PZmZzZXRIaWdoID0gKERX T1JEKW9mZnNldF9oaWdoOworCWNvbnRyb2wtPk9mZnNldCA9IChEV09SRCkgb2Zmc2V0ICYgMHhG RkZGRkZGRjsKKwljb250cm9sLT5PZmZzZXRIaWdoID0gKERXT1JEKSAob2Zmc2V0ID4+IDMyKTsK IAlSZXNldEV2ZW50KHNsb3QtPmhhbmRsZSk7CiAKICNlbGlmIGRlZmluZWQoTElOVVhfTkFUSVZF X0FJTykKQEAgLTM3NjMsMTQgKzM2NzgsMTAgQEAgZm91bmQ6CiAKIAkvKiBDaGVjayBpZiB3ZSBh cmUgZGVhbGluZyB3aXRoIDY0IGJpdCBhcmNoLgogCUlmIG5vdCB0aGVuIG1ha2Ugc3VyZSB0aGF0 IG9mZnNldCBmaXRzIGluIDMyIGJpdHMuICovCi0JaWYgKHNpemVvZihhaW9fb2Zmc2V0KSA9PSA4 KSB7Ci0JCWFpb19vZmZzZXQgPSBvZmZzZXRfaGlnaDsKLQkJYWlvX29mZnNldCA8PD0gMzI7Ci0J CWFpb19vZmZzZXQgKz0gb2Zmc2V0OwotCX0gZWxzZSB7Ci0JCXV0X2Eob2Zmc2V0X2hpZ2ggPT0g MCk7Ci0JCWFpb19vZmZzZXQgPSBvZmZzZXQ7Ci0JfQorCWFpb19vZmZzZXQgPSAob2ZmX3QpIG9m ZnNldDsKKworCXV0X2Eoc2l6ZW9mKGFpb19vZmZzZXQpID49IHNpemVvZihvZmZzZXQpCisJICAg ICB8fCAoKG9zX29mZnNldF90KSBhaW9fb2Zmc2V0KSA9PSBvZmZzZXQpOwogCiAJaW9jYiA9ICZz bG90LT5jb250cm9sOwogCkBAIC0zNzg1LDcgKzM2OTYsNiBAQCBmb3VuZDoKIAlzbG90LT5uX2J5 dGVzID0gMDsKIAlzbG90LT5yZXQgPSAwOwogCS8qZnByaW50ZihzdGRlcnIsICJGaWxsZWQgdXAg TGludXggbmF0aXZlIGlvY2IuXG4iKTsqLwotCQogCiBza2lwX25hdGl2ZV9haW86CiAjZW5kaWYg LyogTElOVVhfTkFUSVZFX0FJTyAqLwpAQCAtNDAyMSwxMCArMzkzMSw3IEBAIG9zX2Fpb19mdW5j KAogCW9zX2ZpbGVfdAlmaWxlLAkvKiE8IGluOiBoYW5kbGUgdG8gYSBmaWxlICovCiAJdm9pZCoJ CWJ1ZiwJLyohPCBpbjogYnVmZmVyIHdoZXJlIHRvIHJlYWQgb3IgZnJvbSB3aGljaAogCQkJCXRv IHdyaXRlICovCi0JdWxpbnQJCW9mZnNldCwJLyohPCBpbjogbGVhc3Qgc2lnbmlmaWNhbnQgMzIg Yml0cyBvZiBmaWxlCi0JCQkJb2Zmc2V0IHdoZXJlIHRvIHJlYWQgb3Igd3JpdGUgKi8KLQl1bGlu dAkJb2Zmc2V0X2hpZ2gsIC8qITwgaW46IG1vc3Qgc2lnbmlmaWNhbnQgMzIgYml0cyBvZgotCQkJ CW9mZnNldCAqLworCW9zX29mZnNldF90CW9mZnNldCwJLyohPCBpbjogZmlsZSBvZmZzZXQgd2hl cmUgdG8gcmVhZCBvciB3cml0ZSAqLwogCXVsaW50CQluLAkvKiE8IGluOiBudW1iZXIgb2YgYnl0 ZXMgdG8gcmVhZCBvciB3cml0ZSAqLwogCWZpbF9ub2RlX3QqCW1lc3NhZ2UxLC8qITwgaW46IG1l c3NhZ2UgZm9yIHRoZSBhaW8gaGFuZGxlcgogCQkJCShjYW4gYmUgdXNlZCB0byBpZGVudGlmeSBh IGNvbXBsZXRlZApAQCAtNDA4MCwxNCArMzk4NywxMiBAQCBvc19haW9fZnVuYygKIAkJYW5kIG9z X2ZpbGVfd3JpdGVfZnVuYygpICovCiAKIAkJaWYgKHR5cGUgPT0gT1NfRklMRV9SRUFEKSB7Ci0J CQlyZXR1cm4ob3NfZmlsZV9yZWFkX2Z1bmMoZmlsZSwgYnVmLCBvZmZzZXQsCi0JCQkJCSAgICBv ZmZzZXRfaGlnaCwgbikpOworCQkJcmV0dXJuKG9zX2ZpbGVfcmVhZF9mdW5jKGZpbGUsIGJ1Ziwg b2Zmc2V0LCBuKSk7CiAJCX0KIAogCQl1dF9hKHR5cGUgPT0gT1NfRklMRV9XUklURSk7CiAKLQkJ cmV0dXJuKG9zX2ZpbGVfd3JpdGVfZnVuYyhuYW1lLCBmaWxlLCBidWYsIG9mZnNldCwKLQkJCQkJ ICBvZmZzZXRfaGlnaCwgbikpOworCQlyZXR1cm4ob3NfZmlsZV93cml0ZV9mdW5jKG5hbWUsIGZp bGUsIGJ1Ziwgb2Zmc2V0LCBuKSk7CiAJfQogCiB0cnlfYWdhaW46CkBAIC00MTIzLDcgKzQwMjgs NyBAQCB0cnlfYWdhaW46CiAJfQogCiAJc2xvdCA9IG9zX2Fpb19hcnJheV9yZXNlcnZlX3Nsb3Qo dHlwZSwgYXJyYXksIG1lc3NhZ2UxLCBtZXNzYWdlMiwgZmlsZSwKLQkJCQkJIG5hbWUsIGJ1Ziwg b2Zmc2V0LCBvZmZzZXRfaGlnaCwgbik7CisJCQkJCSBuYW1lLCBidWYsIG9mZnNldCwgbik7CiAJ aWYgKHR5cGUgPT0gT1NfRklMRV9SRUFEKSB7CiAJCWlmIChzcnZfdXNlX25hdGl2ZV9haW8pIHsK IAkJCW9zX25fZmlsZV9yZWFkcysrOwpAQCAtNDY3Myw3ICs0NTc4LDcgQEAgb3NfYWlvX3NpbXVs YXRlZF9oYW5kbGUoCiAJdWxpbnQJCW5fY29uc2VjdXRpdmU7CiAJdWxpbnQJCXRvdGFsX2xlbjsK IAl1bGludAkJb2ZmczsKLQl1bGludAkJbG93ZXN0X29mZnNldDsKKwlvc19vZmZzZXRfdAlsb3dl c3Rfb2Zmc2V0OwogCXVsaW50CQliaWdnZXN0X2FnZTsKIAl1bGludAkJYWdlOwogCWJ5dGUqCQlj b21iaW5lZF9idWY7CkBAIC00NzYwLDcgKzQ2NjUsNyBAQCByZXN0YXJ0OgogCXRoZW4gcGljayB0 aGUgb25lIGF0IHRoZSBsb3dlc3Qgb2Zmc2V0LiAqLwogCiAJYmlnZ2VzdF9hZ2UgPSAwOwotCWxv d2VzdF9vZmZzZXQgPSBVTElOVF9NQVg7CisJbG93ZXN0X29mZnNldCA9IElCX1VJTlQ2NF9NQVg7 CiAKIAlmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAJCXNsb3QgPSBvc19haW9fYXJyYXlfZ2V0 X250aF9zbG90KGFycmF5LCBpICsgc2VnbWVudCAqIG4pOwpAQCAtNDc4OSw3ICs0Njk0LDcgQEAg cmVzdGFydDoKIAkJbG93ZXN0IG9mZnNldCBpbiB0aGUgYXJyYXkgKHdlIGlnbm9yZSB0aGUgaGln aCAzMiBiaXRzIG9mIHRoZQogCQlvZmZzZXQgaW4gdGhlc2UgaGV1cmlzdGljcykgKi8KIAotCQls b3dlc3Rfb2Zmc2V0ID0gVUxJTlRfTUFYOworCQlsb3dlc3Rfb2Zmc2V0ID0gSUJfVUlOVDY0X01B WDsKIAogCQlmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAJCQlzbG90ID0gb3NfYWlvX2FycmF5 X2dldF9udGhfc2xvdChhcnJheSwKQEAgLTQ4MjksOSArNDczNCw2IEBAIGNvbnNlY3V0aXZlX2xv b3A6CiAKIAkJaWYgKHNsb3QyLT5yZXNlcnZlZCAmJiBzbG90MiAhPSBzbG90CiAJCSAgICAmJiBz bG90Mi0+b2Zmc2V0ID09IHNsb3QtPm9mZnNldCArIHNsb3QtPmxlbgotCQkgICAgLyogY2hlY2sg dGhhdCBzdW0gZG9lcyBub3Qgd3JhcCBvdmVyICovCi0JCSAgICAmJiBzbG90LT5vZmZzZXQgKyBz bG90LT5sZW4gPiBzbG90LT5vZmZzZXQKLQkJICAgICYmIHNsb3QyLT5vZmZzZXRfaGlnaCA9PSBz bG90LT5vZmZzZXRfaGlnaAogCQkgICAgJiYgc2xvdDItPnR5cGUgPT0gc2xvdC0+dHlwZQogCQkg ICAgJiYgc2xvdDItPmZpbGUgPT0gc2xvdC0+ZmlsZSkgewogCkBAIC00ODk4LDIwICs0ODAwLDE4 IEBAIGNvbnNlY3V0aXZlX2xvb3A6CiAKIAlpZiAob3NfYWlvX3ByaW50X2RlYnVnKSB7CiAJCWZw cmludGYoc3RkZXJyLAotCQkJIklubm9EQjogZG9pbmcgaS9vIG9mIHR5cGUgJWx1IGF0IG9mZnNl dCAlbHUgJWx1LCIKKwkJCSJJbm5vREI6IGRvaW5nIGkvbyBvZiB0eXBlICVsdSBhdCBvZmZzZXQg JWxsdSwiCiAJCQkiIGxlbmd0aCAlbHVcbiIsCi0JCQkodWxvbmcpIHNsb3QtPnR5cGUsICh1bG9u Zykgc2xvdC0+b2Zmc2V0X2hpZ2gsCi0JCQkodWxvbmcpIHNsb3QtPm9mZnNldCwgKHVsb25nKSB0 b3RhbF9sZW4pOworCQkJKHVsb25nKSBzbG90LT50eXBlLCBzbG90LT5vZmZzZXQsICh1bG9uZykg dG90YWxfbGVuKTsKIAl9CiAKIAkvKiBEbyB0aGUgaS9vIHdpdGggb3JkaW5hcnksIHN5bmNocm9u b3VzIGkvbyBmdW5jdGlvbnM6ICovCiAJaWYgKHNsb3QtPnR5cGUgPT0gT1NfRklMRV9XUklURSkg ewogCQlyZXQgPSBvc19maWxlX3dyaXRlKHNsb3QtPm5hbWUsIHNsb3QtPmZpbGUsIGNvbWJpbmVk X2J1ZiwKLQkJCQkgICAgc2xvdC0+b2Zmc2V0LCBzbG90LT5vZmZzZXRfaGlnaCwKLQkJCQkgICAg dG90YWxfbGVuKTsKKwkJCQkgICAgc2xvdC0+b2Zmc2V0LCB0b3RhbF9sZW4pOwogCX0gZWxzZSB7 CiAJCXJldCA9IG9zX2ZpbGVfcmVhZChzbG90LT5maWxlLCBjb21iaW5lZF9idWYsCi0JCQkJICAg c2xvdC0+b2Zmc2V0LCBzbG90LT5vZmZzZXRfaGlnaCwgdG90YWxfbGVuKTsKKwkJCQkgICBzbG90 LT5vZmZzZXQsIHRvdGFsX2xlbik7CiAJfQogCiAJdXRfYShyZXQpOwoKPT09IG1vZGlmaWVkIGZp bGUgJ3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzBtZXJnZS5jJwotLS0gYS9zdG9yYWdlL2lubm9i YXNlL3Jvdy9yb3cwbWVyZ2UuYwlyZXZpZDppbmFhbS5yYW5hQG9yYWNsZS5jb20tMjAxMTA1MTYx NjAxMzktOTU5andud3BjMXkyMjBtcgorKysgYi9zdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwbWVy Z2UuYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDUxNzExNDIxMC1lN2RmeDl6 MzZyMnR1bXp6CkBAIC03MDEsNyArNzAxLDcgQEAgcm93X21lcmdlX3JlYWQoCiAJCQkJCWVsZW1l bnRzICovCiAJcm93X21lcmdlX2Jsb2NrX3QqCWJ1ZikJLyohPCBvdXQ6IGRhdGEgKi8KIHsKLQlp Yl91aW50NjRfdAlvZnMgPSAoKGliX3VpbnQ2NF90KSBvZmZzZXQpICogc2l6ZW9mICpidWY7CisJ b3Nfb2Zmc2V0X3QJb2ZzID0gKChvc19vZmZzZXRfdCkgb2Zmc2V0KSAqIHNpemVvZiAqYnVmOwog CWlib29sCQlzdWNjZXNzOwogCiAjaWZkZWYgVU5JVl9ERUJVRwpAQCAtNzEyLDkgKzcxMiw3IEBA IHJvd19tZXJnZV9yZWFkKAogI2VuZGlmIC8qIFVOSVZfREVCVUcgKi8KIAogCXN1Y2Nlc3MgPSBv c19maWxlX3JlYWRfbm9fZXJyb3JfaGFuZGxpbmcoT1NfRklMRV9GUk9NX0ZEKGZkKSwgYnVmLAot CQkJCQkJICh1bGludCkgKG9mcyAmIDB4RkZGRkZGRkYpLAotCQkJCQkJICh1bGludCkgKG9mcyA+ PiAzMiksCi0JCQkJCQkgc2l6ZW9mICpidWYpOworCQkJCQkJIG9mcywgc2l6ZW9mICpidWYpOwog I2lmZGVmIFBPU0lYX0ZBRFZfRE9OVE5FRUQKIAkvKiBFYWNoIGJsb2NrIGlzIHJlYWQgZXhhY3Rs eSBvbmNlLiAgRnJlZSB1cCB0aGUgZmlsZSBjYWNoZS4gKi8KIAlwb3NpeF9mYWR2aXNlKGZkLCBv ZnMsIHNpemVvZiAqYnVmLCBQT1NJWF9GQURWX0RPTlRORUVEKTsKQEAgLTc0MiwxMyArNzQwLDEw IEBAIHJvd19tZXJnZV93cml0ZSgKIAljb25zdCB2b2lkKglidWYpCS8qITwgaW46IGRhdGEgKi8K IHsKIAlzaXplX3QJCWJ1Zl9sZW4gPSBzaXplb2Yocm93X21lcmdlX2Jsb2NrX3QpOwotCWliX3Vp bnQ2NF90CW9mcyA9IGJ1Zl9sZW4gKiAoaWJfdWludDY0X3QpIG9mZnNldDsKKwlvc19vZmZzZXRf dAlvZnMgPSBidWZfbGVuICogKG9zX29mZnNldF90KSBvZmZzZXQ7CiAJaWJvb2wJCXJldDsKIAot CXJldCA9IG9zX2ZpbGVfd3JpdGUoIihtZXJnZSkiLCBPU19GSUxFX0ZST01fRkQoZmQpLCBidWYs Ci0JCQkgICAgKHVsaW50KSAob2ZzICYgMHhGRkZGRkZGRiksCi0JCQkgICAgKHVsaW50KSAob2Zz ID4+IDMyKSwKLQkJCSAgICBidWZfbGVuKTsKKwlyZXQgPSBvc19maWxlX3dyaXRlKCIobWVyZ2Up IiwgT1NfRklMRV9GUk9NX0ZEKGZkKSwgYnVmLCBvZnMsIGJ1Zl9sZW4pOwogCiAjaWZkZWYgVU5J Vl9ERUJVRwogCWlmIChyb3dfbWVyZ2VfcHJpbnRfYmxvY2tfd3JpdGUpIHsKCj09PSBtb2RpZmll ZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL3Nydi9zcnYwc3RhcnQuYycKLS0tIGEvc3RvcmFnZS9p bm5vYmFzZS9zcnYvc3J2MHN0YXJ0LmMJcmV2aWQ6aW5hYW0ucmFuYUBvcmFjbGUuY29tLTIwMTEw NTE2MTYwMTM5LTk1OWp3bndwYzF5MjIwbXIKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9zcnYvc3J2 MHN0YXJ0LmMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMTA1MTcxMTQyMTAtZTdk Zng5ejM2cjJ0dW16egpAQCAtNTIwLDMyICs1MjAsNiBAQCBzcnZfbm9ybWFsaXplX3BhdGhfZm9y X3dpbigKIAogI2lmbmRlZiBVTklWX0hPVEJBQ0tVUAogLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKLUNhbGN1 bGF0ZXMgdGhlIGxvdyAzMiBiaXRzIHdoZW4gYSBmaWxlIHNpemUgd2hpY2ggaXMgZ2l2ZW4gYXMg YSBudW1iZXIKLWRhdGFiYXNlIHBhZ2VzIGlzIGNvbnZlcnRlZCB0byB0aGUgbnVtYmVyIG9mIGJ5 dGVzLgotQHJldHVybglsb3cgMzIgYnl0ZXMgb2YgZmlsZSBzaXplIHdoZW4gZXhwcmVzc2VkIGlu IGJ5dGVzICovCi1zdGF0aWMKLXVsaW50Ci1zcnZfY2FsY19sb3czMigKLS8qPT09PT09PT09PT0q LwotCWliX3VpbnQ2NF90CWZpbGVfc2l6ZSkJLyohPCBpbjogZmlsZSBzaXplIGluIGRhdGFiYXNl IHBhZ2VzICovCi17Ci0JcmV0dXJuKCh1bGludCkgKDB4RkZGRkZGRkZVTCAmIChmaWxlX3NpemUg PDwgVU5JVl9QQUdFX1NJWkVfU0hJRlQpKSk7Ci19Ci0KLS8qKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCi1DYWxj dWxhdGVzIHRoZSBoaWdoIDMyIGJpdHMgd2hlbiBhIGZpbGUgc2l6ZSB3aGljaCBpcyBnaXZlbiBh cyBhIG51bWJlcgotb2YgZGF0YWJhc2UgcGFnZXMgaXMgY29udmVydGVkIHRvIHRoZSBudW1iZXIg b2YgYnl0ZXMuCi1AcmV0dXJuCWhpZ2ggMzIgYnl0ZXMgb2YgZmlsZSBzaXplIHdoZW4gZXhwcmVz c2VkIGluIGJ5dGVzICovCi1zdGF0aWMKLXVsaW50Ci1zcnZfY2FsY19oaWdoMzIoCi0vKj09PT09 PT09PT09PSovCi0JaWJfdWludDY0X3QJZmlsZV9zaXplKQkvKiE8IGluOiBmaWxlIHNpemUgaW4g ZGF0YWJhc2UgcGFnZXMgKi8KLXsKLQlyZXR1cm4oKHVsaW50KSAoZmlsZV9zaXplID4+ICgzMiAt IFVOSVZfUEFHRV9TSVpFX1NISUZUKSkpOwotfQotCi0vKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogQ3JlYXRl cyBvciBvcGVucyB0aGUgbG9nIGZpbGVzIGFuZCBjbG9zZXMgdGhlbS4KIEByZXR1cm4JREJfU1VD Q0VTUyBvciBlcnJvciBjb2RlICovCiBzdGF0aWMKQEAgLTU2MiwxMSArNTM2LDEwIEBAIG9wZW5f b3JfY3JlYXRlX2xvZ19maWxlKAogCXVsaW50CWssCQkJLyohPCBpbjogbG9nIGdyb3VwIG51bWJl ciAqLwogCXVsaW50CWkpCQkJLyohPCBpbjogbG9nIGZpbGUgbnVtYmVyIGluIGdyb3VwICovCiB7 Ci0JaWJvb2wJcmV0OwotCXVsaW50CXNpemU7Ci0JdWxpbnQJc2l6ZV9oaWdoOwotCWNoYXIJbmFt ZVsxMDAwMF07Ci0JdWxpbnQJZGlybmFtZWxlbjsKKwlpYm9vbAkJcmV0OworCW9zX29mZnNldF90 CXNpemU7CisJY2hhcgkJbmFtZVsxMDAwMF07CisJdWxpbnQJCWRpcm5hbWVsZW47CiAKIAlVVF9O T1RfVVNFRChjcmVhdGVfbmV3X2RiKTsKIApAQCAtNjE0LDIwICs1ODcsMjAgQEAgb3Blbl9vcl9j cmVhdGVfbG9nX2ZpbGUoCiAJCQlyZXR1cm4oREJfRVJST1IpOwogCQl9CiAKLQkJcmV0ID0gb3Nf ZmlsZV9nZXRfc2l6ZShmaWxlc1tpXSwgJnNpemUsICZzaXplX2hpZ2gpOwotCQl1dF9hKHJldCk7 CisJCXNpemUgPSBvc19maWxlX2dldF9zaXplKGZpbGVzW2ldKTsKKwkJdXRfYShzaXplICE9IChv c19vZmZzZXRfdCkgLTEpOwogCi0JCWlmIChzaXplICE9IHNydl9jYWxjX2xvdzMyKHNydl9sb2df ZmlsZV9zaXplKQotCQkgICAgfHwgc2l6ZV9oaWdoICE9IHNydl9jYWxjX2hpZ2gzMihzcnZfbG9n X2ZpbGVfc2l6ZSkpIHsKKwkJaWYgKFVOSVZfVU5MSUtFTFkoc2l6ZSAhPSAob3Nfb2Zmc2V0X3Qp IHNydl9sb2dfZmlsZV9zaXplCisJCQkJICA8PCBVTklWX1BBR0VfU0laRV9TSElGVCkpIHsKIAog CQkJZnByaW50ZihzdGRlcnIsCiAJCQkJIklubm9EQjogRXJyb3I6IGxvZyBmaWxlICVzIGlzIgot CQkJCSIgb2YgZGlmZmVyZW50IHNpemUgJWx1ICVsdSBieXRlc1xuIgorCQkJCSIgb2YgZGlmZmVy ZW50IHNpemUgJWxsdSBieXRlc1xuIgogCQkJCSJJbm5vREI6IHRoYW4gc3BlY2lmaWVkIGluIHRo ZSAuY25mIgotCQkJCSIgZmlsZSAlbHUgJWx1IGJ5dGVzIVxuIiwKLQkJCQluYW1lLCAodWxvbmcp IHNpemVfaGlnaCwgKHVsb25nKSBzaXplLAotCQkJCSh1bG9uZykgc3J2X2NhbGNfaGlnaDMyKHNy dl9sb2dfZmlsZV9zaXplKSwKLQkJCQkodWxvbmcpIHNydl9jYWxjX2xvdzMyKHNydl9sb2dfZmls ZV9zaXplKSk7CisJCQkJIiBmaWxlICVsbHUgYnl0ZXMhXG4iLAorCQkJCW5hbWUsIHNpemUsCisJ CQkJKG9zX29mZnNldF90KSBzcnZfbG9nX2ZpbGVfc2l6ZQorCQkJCTw8IFVOSVZfUEFHRV9TSVpF X1NISUZUKTsKIAogCQkJcmV0dXJuKERCX0VSUk9SKTsKIAkJfQpAQCAtNjU0LDggKzYyNyw4IEBA IG9wZW5fb3JfY3JlYXRlX2xvZ19maWxlKAogCQkJIiBmdWxsOiB3YWl0Li4uXG4iKTsKIAogCQly ZXQgPSBvc19maWxlX3NldF9zaXplKG5hbWUsIGZpbGVzW2ldLAotCQkJCSAgICAgICBzcnZfY2Fs Y19sb3czMihzcnZfbG9nX2ZpbGVfc2l6ZSksCi0JCQkJICAgICAgIHNydl9jYWxjX2hpZ2gzMihz cnZfbG9nX2ZpbGVfc2l6ZSkpOworCQkJCSAgICAgICAob3Nfb2Zmc2V0X3QpIHNydl9sb2dfZmls ZV9zaXplCisJCQkJICAgICAgIDw8IFVOSVZfUEFHRV9TSVpFX1NISUZUKTsKIAkJaWYgKCFyZXQp IHsKIAkJCWZwcmludGYoc3RkZXJyLAogCQkJCSJJbm5vREI6IEVycm9yIGluIGNyZWF0aW5nICVz OiIKQEAgLTczMSwxNCArNzA0LDEzIEBAIG9wZW5fb3JfY3JlYXRlX2RhdGFfZmlsZXMoCiAJdWxp bnQqCQlzdW1fb2ZfbmV3X3NpemVzKS8qITwgb3V0OiBzdW0gb2Ygc2l6ZXMgb2YgdGhlCiAJCQkJ CW5ldyBmaWxlcyBhZGRlZCAqLwogewotCWlib29sCXJldDsKLQl1bGludAlpOwotCWlib29sCW9u ZV9vcGVuZWQJPSBGQUxTRTsKLQlpYm9vbAlvbmVfY3JlYXRlZAk9IEZBTFNFOwotCXVsaW50CXNp emU7Ci0JdWxpbnQJc2l6ZV9oaWdoOwotCXVsaW50CXJvdW5kZWRfc2l6ZV9wYWdlczsKLQljaGFy CW5hbWVbMTAwMDBdOworCWlib29sCQlyZXQ7CisJdWxpbnQJCWk7CisJaWJvb2wJCW9uZV9vcGVu ZWQJPSBGQUxTRTsKKwlpYm9vbAkJb25lX2NyZWF0ZWQJPSBGQUxTRTsKKwlvc19vZmZzZXRfdAlz aXplOworCXVsaW50CQlyb3VuZGVkX3NpemVfcGFnZXM7CisJY2hhcgkJbmFtZVsxMDAwMF07CiAK IAlpZiAoc3J2X25fZGF0YV9maWxlcyA+PSAxMDAwKSB7CiAJCWZwcmludGYoc3RkZXJyLCAiSW5u b0RCOiBjYW4gb25seSBoYXZlIDwgMTAwMCBkYXRhIGZpbGVzXG4iCkBAIC04NjQsMTMgKzgzNiwx MSBAQCBvcGVuX29yX2NyZWF0ZV9kYXRhX2ZpbGVzKAogCQkJCWdvdG8gc2tpcF9zaXplX2NoZWNr OwogCQkJfQogCi0JCQlyZXQgPSBvc19maWxlX2dldF9zaXplKGZpbGVzW2ldLCAmc2l6ZSwgJnNp emVfaGlnaCk7Ci0JCQl1dF9hKHJldCk7CisJCQlzaXplID0gb3NfZmlsZV9nZXRfc2l6ZShmaWxl c1tpXSk7CisJCQl1dF9hKHNpemUgIT0gKG9zX29mZnNldF90KSAtMSk7CiAJCQkvKiBSb3VuZCBz aXplIGRvd253YXJkIHRvIG1lZ2FieXRlcyAqLwogCi0JCQlyb3VuZGVkX3NpemVfcGFnZXMKLQkJ CQk9IChzaXplIC8gKDEwMjQgKiAxMDI0KSArIDQwOTYgKiBzaXplX2hpZ2gpCi0JCQkJCTw8ICgy MCAtIFVOSVZfUEFHRV9TSVpFX1NISUZUKTsKKwkJCXJvdW5kZWRfc2l6ZV9wYWdlcyA9IHNpemUg Pj4gVU5JVl9QQUdFX1NJWkVfU0hJRlQ7CiAKIAkJCWlmIChpID09IHNydl9uX2RhdGFfZmlsZXMg LSAxCiAJCQkgICAgJiYgc3J2X2F1dG9fZXh0ZW5kX2xhc3RfZGF0YV9maWxlKSB7CkBAIC05NTks OCArOTI5LDggQEAgc2tpcF9zaXplX2NoZWNrOgogCiAJCQlyZXQgPSBvc19maWxlX3NldF9zaXpl KAogCQkJCW5hbWUsIGZpbGVzW2ldLAotCQkJCXNydl9jYWxjX2xvdzMyKHNydl9kYXRhX2ZpbGVf c2l6ZXNbaV0pLAotCQkJCXNydl9jYWxjX2hpZ2gzMihzcnZfZGF0YV9maWxlX3NpemVzW2ldKSk7 CisJCQkJKG9zX29mZnNldF90KSBzcnZfZGF0YV9maWxlX3NpemVzW2ldCisJCQkJPDwgVU5JVl9Q QUdFX1NJWkVfU0hJRlQpOwogCiAJCQlpZiAoIXJldCkgewogCQkJCWZwcmludGYoc3RkZXJyLApA QCAtOTcwLDggKzk0MCw3IEBAIHNraXBfc2l6ZV9jaGVjazoKIAkJCQlyZXR1cm4oREJfRVJST1Ip OwogCQkJfQogCi0JCQkqc3VtX29mX25ld19zaXplcyA9ICpzdW1fb2ZfbmV3X3NpemVzCi0JCQkJ KyBzcnZfZGF0YV9maWxlX3NpemVzW2ldOworCQkJKnN1bV9vZl9uZXdfc2l6ZXMgKz0gc3J2X2Rh dGFfZmlsZV9zaXplc1tpXTsKIAkJfQogCiAJCXJldCA9IG9zX2ZpbGVfY2xvc2UoZmlsZXNbaV0p OwpAQCAtMTQ2NCw3ICsxNDMzLDcgQEAgaW5ub2Jhc2Vfc3RhcnRfb3JfY3JlYXRlX2Zvcl9teXNx bCh2b2lkKQogCWlmIChzdW1fb2ZfbmV3X3NpemVzIDwgMTA0ODU3NjAgLyBVTklWX1BBR0VfU0la RSkgewogCQl1dF9wcmludF90aW1lc3RhbXAoc3RkZXJyKTsKIAkJZnByaW50ZihzdGRlcnIsCi0J CQkiIElubm9EQjogRXJyb3I6IHRhYmxlc3BhY2Ugc2l6ZSBtdXN0IGJlIgorCQkJIiBJbm5vREI6 IEVycm9yOiB0YWJsZXNhcGNlIHNpemUgbXVzdCBiZSIKIAkJCSIgYXQgbGVhc3QgMTAgTUJcbiIp OwogCiAJCXJldHVybihEQl9FUlJPUik7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5v YmFzZS91dC91dDB1dC5jJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL3V0L3V0MHV0LmMJcmV2aWQ6 aW5hYW0ucmFuYUBvcmFjbGUuY29tLTIwMTEwNTE2MTYwMTM5LTk1OWp3bndwYzF5MjIwbXIKKysr IGIvc3RvcmFnZS9pbm5vYmFzZS91dC91dDB1dC5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUu Y29tLTIwMTEwNTE3MTE0MjEwLWU3ZGZ4OXozNnIydHVtenoKQEAgLTkzLDI2ICs5Myw2IEBAIHJl aW1wbGVtZW50IHRoaXMgZnVuY3Rpb24uICovCiAjZGVmaW5lCXV0X2dldHRpbWVvZmRheQkJZ2V0 dGltZW9mZGF5CiAjZW5kaWYKIAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLy8qKgotR2V0cyB0aGUgaGlnaCAzMiBiaXRzIGluIGEgdWxp bnQuIFRoYXQgaXMgbWFrZXMgYSBzaGlmdCA+PiAzMiwKLWJ1dCBzaW5jZSB0aGVyZSBzZWVtIHRv IGJlIGNvbXBpbGVyIGJ1Z3MgaW4gYm90aCBnY2MgYW5kIFZpc3VhbCBDKyssCi13ZSBkbyB0aGlz IGJ5IGEgc3BlY2lhbCBjb252ZXJzaW9uLgotQHJldHVybglhID4+IDMyICovCi1VTklWX0lOVEVS TgotdWxpbnQKLXV0X2dldF9oaWdoMzIoCi0vKj09PT09PT09PT0qLwotCXVsaW50CWEpCS8qITwg aW46IHVsaW50ICovCi17Ci0JaWJfaW50NjRfdAlpOwotCi0JaSA9IChpYl9pbnQ2NF90KWE7Ci0K LQlpID0gaSA+PiAzMjsKLQotCXJldHVybigodWxpbnQpaSk7Ci19Ci0KIC8qKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogUmV0dXJu cyBzeXN0ZW0gdGltZS4gV2UgZG8gbm90IHNwZWNpZnkgdGhlIGZvcm1hdCBvZiB0aGUgdGltZSBy ZXR1cm5lZDoKIHRoZSBvbmx5IHdheSB0byBtYW5pcHVsYXRlIGl0IGlzIHRvIHVzZSB0aGUgZnVu Y3Rpb24gdXRfZGlmZnRpbWUuCgo= --===============0461867959== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/marko.makela@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: marko.makela@stripped # target_branch: file:///home/marko/innobase/dev/mysql2a/5.6-innodb/ # testament_sha1: 27cf7591a015419b6cc8f144c751998756755c5a # timestamp: 2011-05-17 14:42:28 +0300 # source_branch: file:///home/marko/innobase/dev/mysql2a/5.5-innodb/ # base_revision_id: inaam.rana@stripped\ # 959jwnwpc1y220mr # # Begin bundle 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 --===============0461867959==--