From: marko.makela Date: September 17 2012 11:58am Subject: bzr push into mysql-5.6 branch (marko.makela:4289 to 4290) List-Archive: http://lists.mysql.com/commits/144801 Message-Id: <20120917115811.13758.91964.4290@x220> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDQyOTAgTWFya28gTcOka2Vsw6QJMjAxMi0wOS0xNyBbbWVyZ2VdCiAgICAgIE1lcmdlIG15c3Fs LTUuNSB0byBteXNxbC01LjYuCgogICAgbW9kaWZpZWQ6CiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2Uv YnRyL2J0cjBidHIuY2MKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9idHIvYnRyMGN1ci5jYwogICAg ICBzdG9yYWdlL2lubm9iYXNlL2J1Zi9idWYwbHJ1LmNjCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2Uv aWJ1Zi9pYnVmMGlidWYuY2MKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3BhZ2Uwemlw LmgKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9sb2cvbG9nMHJlY3YuY2MKICAgICAgc3RvcmFnZS9p bm5vYmFzZS9wYWdlL3BhZ2UwY3VyLmNjCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvcGFnZS9wYWdl MHBhZ2UuY2MKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9wYWdlL3BhZ2UwemlwLmNjCiAgICAgIHN0 b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzBpbXBvcnQuY2MKIDQyODkgSGFyaW4gVmFkb2RhcmlhCTIw MTItMDktMTcgW21lcmdlXQogICAgICBCdWcjMTE3NTM3Nzk6IE1BWF9DT05ORUNUX0VSUk9SUyBX T1JLUyBPTkxZIFdIRU4gMVNUCiAgICAgICAgICAgICAgICAgICAgSU5DX0hPU1RfRVJST1JTKCkg SVMgQ0FMTEVELgogICAgICAKICAgICAgRGVzY3JpcHRpb246IE51bGwgbWVyZ2UgZnJvbSBteXNx bC01LjUgdG8gbXlzcWwtNS42LgoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2Uv YnRyL2J0cjBidHIuY2MnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvYnRyL2J0cjBidHIuY2MJcmV2 aWQ6aGFyaW4udmFkb2RhcmlhQG9yYWNsZS5jb20tMjAxMjA5MTcxMTM5NDAtcnRuYmc1Y3hrM3kw YzFiaworKysgYi9zdG9yYWdlL2lubm9iYXNlL2J0ci9idHIwYnRyLmNjCXJldmlkOm1hcmtvLm1h a2VsYUBvcmFjbGUuY29tLTIwMTIwOTE3MTE0NTM0LW1wMzc2ZTZlZm90NTNibmsKQEAgLTE3NjIs NyArMTc2Miw3IEBAIGJ0cl9wYWdlX3Jlb3JnYW5pemVfbG93KAogCXV0X2FkKG10cl9tZW1vX2Nv bnRhaW5zKG10ciwgYmxvY2ssIE1UUl9NRU1PX1BBR0VfWF9GSVgpKTsKIAlidHJfYXNzZXJ0X25v dF9jb3JydXB0ZWQoYmxvY2ssIGluZGV4KTsKICNpZmRlZiBVTklWX1pJUF9ERUJVRwotCXV0X2Eo IXBhZ2VfemlwIHx8IHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2VfemlwLCBwYWdlKSk7CisJdXRfYSgh cGFnZV96aXAgfHwgcGFnZV96aXBfdmFsaWRhdGUocGFnZV96aXAsIHBhZ2UsIGluZGV4KSk7CiAj ZW5kaWYgLyogVU5JVl9aSVBfREVCVUcgKi8KIAlkYXRhX3NpemUxID0gcGFnZV9nZXRfZGF0YV9z aXplKHBhZ2UpOwogCW1heF9pbnNfc2l6ZTEgPSBwYWdlX2dldF9tYXhfaW5zZXJ0X3NpemVfYWZ0 ZXJfcmVvcmdhbml6ZShwYWdlLCAxKTsKQEAgLTE4OTUsNyArMTg5NSw3IEBAIGJ0cl9wYWdlX3Jl b3JnYW5pemVfbG93KAogCiBmdW5jX2V4aXQ6CiAjaWZkZWYgVU5JVl9aSVBfREVCVUcKLQl1dF9h KCFwYWdlX3ppcCB8fCBwYWdlX3ppcF92YWxpZGF0ZShwYWdlX3ppcCwgcGFnZSkpOworCXV0X2Eo IXBhZ2VfemlwIHx8IHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2VfemlwLCBwYWdlLCBpbmRleCkpOwog I2VuZGlmIC8qIFVOSVZfWklQX0RFQlVHICovCiAjaWZuZGVmIFVOSVZfSE9UQkFDS1VQCiAJYnVm X2Jsb2NrX2ZyZWUodGVtcF9ibG9jayk7CkBAIC0xOTg1LDcgKzE5ODUsNyBAQCBidHJfcGFnZV9l bXB0eSgKIAl1dF9hZChtdHJfbWVtb19jb250YWlucyhtdHIsIGJsb2NrLCBNVFJfTUVNT19QQUdF X1hfRklYKSk7CiAJdXRfYWQocGFnZV96aXAgPT0gYnVmX2Jsb2NrX2dldF9wYWdlX3ppcChibG9j aykpOwogI2lmZGVmIFVOSVZfWklQX0RFQlVHCi0JdXRfYSghcGFnZV96aXAgfHwgcGFnZV96aXBf dmFsaWRhdGUocGFnZV96aXAsIHBhZ2UpKTsKKwl1dF9hKCFwYWdlX3ppcCB8fCBwYWdlX3ppcF92 YWxpZGF0ZShwYWdlX3ppcCwgcGFnZSwgaW5kZXgpKTsKICNlbmRpZiAvKiBVTklWX1pJUF9ERUJV RyAqLwogCiAJYnRyX3NlYXJjaF9kcm9wX3BhZ2VfaGFzaF9pbmRleChibG9jayk7CkBAIC0yMDQ0 LDEwICsyMDQ0LDEwIEBAIGJ0cl9yb290X3JhaXNlX2FuZF9pbnNlcnQoCiAJcm9vdF9ibG9jayA9 IGJ0cl9jdXJfZ2V0X2Jsb2NrKGN1cnNvcik7CiAJcm9vdF9wYWdlX3ppcCA9IGJ1Zl9ibG9ja19n ZXRfcGFnZV96aXAocm9vdF9ibG9jayk7CiAJdXRfYWQocGFnZV9nZXRfbl9yZWNzKHJvb3QpID4g MCk7CisJaW5kZXggPSBidHJfY3VyX2dldF9pbmRleChjdXJzb3IpOwogI2lmZGVmIFVOSVZfWklQ X0RFQlVHCi0JdXRfYSghcm9vdF9wYWdlX3ppcCB8fCBwYWdlX3ppcF92YWxpZGF0ZShyb290X3Bh Z2VfemlwLCByb290KSk7CisJdXRfYSghcm9vdF9wYWdlX3ppcCB8fCBwYWdlX3ppcF92YWxpZGF0 ZShyb290X3BhZ2VfemlwLCByb290LCBpbmRleCkpOwogI2VuZGlmIC8qIFVOSVZfWklQX0RFQlVH ICovCi0JaW5kZXggPSBidHJfY3VyX2dldF9pbmRleChjdXJzb3IpOwogI2lmZGVmIFVOSVZfQlRS X0RFQlVHCiAJaWYgKCFkaWN0X2luZGV4X2lzX2lidWYoaW5kZXgpKSB7CiAJCXVsaW50CXNwYWNl ID0gZGljdF9pbmRleF9nZXRfc3BhY2UoaW5kZXgpOwpAQCAtMjk4OCw4ICsyOTg4LDggQEAgaW5z ZXJ0X2VtcHR5OgogCiAjaWZkZWYgVU5JVl9aSVBfREVCVUcKIAlpZiAocGFnZV96aXApIHsKLQkJ dXRfYShwYWdlX3ppcF92YWxpZGF0ZShwYWdlX3ppcCwgcGFnZSkpOwotCQl1dF9hKHBhZ2Vfemlw X3ZhbGlkYXRlKG5ld19wYWdlX3ppcCwgbmV3X3BhZ2UpKTsKKwkJdXRfYShwYWdlX3ppcF92YWxp ZGF0ZShwYWdlX3ppcCwgcGFnZSwgY3Vyc29yLT5pbmRleCkpOworCQl1dF9hKHBhZ2VfemlwX3Zh bGlkYXRlKG5ld19wYWdlX3ppcCwgbmV3X3BhZ2UsIGN1cnNvci0+aW5kZXgpKTsKIAl9CiAjZW5k aWYgLyogVU5JVl9aSVBfREVCVUcgKi8KIApAQCAtMzAyMyw3ICszMDIzLDggQEAgaW5zZXJ0X2Vt cHR5OgogCQkJPSBidWZfYmxvY2tfZ2V0X3BhZ2VfemlwKGluc2VydF9ibG9jayk7CiAKIAkJdXRf YSghaW5zZXJ0X3BhZ2VfemlwCi0JCSAgICAgfHwgcGFnZV96aXBfdmFsaWRhdGUoaW5zZXJ0X3Bh Z2VfemlwLCBpbnNlcnRfcGFnZSkpOworCQkgICAgIHx8IHBhZ2VfemlwX3ZhbGlkYXRlKGluc2Vy dF9wYWdlX3ppcCwgaW5zZXJ0X3BhZ2UsCisJCQkJCSAgY3Vyc29yLT5pbmRleCkpOwogCX0KICNl bmRpZiAvKiBVTklWX1pJUF9ERUJVRyAqLwogCkBAIC0zMzg3LDcgKzMzODgsNyBAQCBidHJfbGlm dF9wYWdlX3VwKAogCiAJCWJ0cl9wYWdlX3NldF9sZXZlbChwYWdlLCBwYWdlX3ppcCwgcGFnZV9s ZXZlbCwgbXRyKTsKICNpZmRlZiBVTklWX1pJUF9ERUJVRwotCQl1dF9hKCFwYWdlX3ppcCB8fCBw YWdlX3ppcF92YWxpZGF0ZShwYWdlX3ppcCwgcGFnZSkpOworCQl1dF9hKCFwYWdlX3ppcCB8fCBw YWdlX3ppcF92YWxpZGF0ZShwYWdlX3ppcCwgcGFnZSwgaW5kZXgpKTsKICNlbmRpZiAvKiBVTklW X1pJUF9ERUJVRyAqLwogCX0KIApAQCAtMzU3Miw4ICszNTczLDggQEAgZXJyX2V4aXQ6CiAJCWNv bnN0IHBhZ2VfemlwX2Rlc190KglwYWdlX3ppcAogCQkJPSBidWZfYmxvY2tfZ2V0X3BhZ2Vfemlw KGJsb2NrKTsKIAkJdXRfYShwYWdlX3ppcCk7Ci0JCXV0X2EocGFnZV96aXBfdmFsaWRhdGUobWVy Z2VfcGFnZV96aXAsIG1lcmdlX3BhZ2UpKTsKLQkJdXRfYShwYWdlX3ppcF92YWxpZGF0ZShwYWdl X3ppcCwgcGFnZSkpOworCQl1dF9hKHBhZ2VfemlwX3ZhbGlkYXRlKG1lcmdlX3BhZ2VfemlwLCBt ZXJnZV9wYWdlLCBpbmRleCkpOworCQl1dF9hKHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2VfemlwLCBw YWdlLCBpbmRleCkpOwogCX0KICNlbmRpZiAvKiBVTklWX1pJUF9ERUJVRyAqLwogCkBAIC0zNzA2 LDcgKzM3MDcsOCBAQCBlcnJfZXhpdDoKIAogCXV0X2FkKHBhZ2VfdmFsaWRhdGUobWVyZ2VfcGFn ZSwgaW5kZXgpKTsKICNpZmRlZiBVTklWX1pJUF9ERUJVRwotCXV0X2EoIW1lcmdlX3BhZ2Vfemlw IHx8IHBhZ2VfemlwX3ZhbGlkYXRlKG1lcmdlX3BhZ2VfemlwLCBtZXJnZV9wYWdlKSk7CisJdXRf YSghbWVyZ2VfcGFnZV96aXAgfHwgcGFnZV96aXBfdmFsaWRhdGUobWVyZ2VfcGFnZV96aXAsIG1l cmdlX3BhZ2UsCisJCQkJCQkgIGluZGV4KSk7CiAjZW5kaWYgLyogVU5JVl9aSVBfREVCVUcgKi8K IAogCS8qIEZyZWUgdGhlIGZpbGUgcGFnZSAqLwpAQCAtMzg4OSw3ICszODkxLDcgQEAgYnRyX2Rp c2NhcmRfcGFnZSgKIAkJcGFnZV96aXBfZGVzX3QqCW1lcmdlX3BhZ2VfemlwCiAJCQk9IGJ1Zl9i bG9ja19nZXRfcGFnZV96aXAobWVyZ2VfYmxvY2spOwogCQl1dF9hKCFtZXJnZV9wYWdlX3ppcAot CQkgICAgIHx8IHBhZ2VfemlwX3ZhbGlkYXRlKG1lcmdlX3BhZ2VfemlwLCBtZXJnZV9wYWdlKSk7 CisJCSAgICAgfHwgcGFnZV96aXBfdmFsaWRhdGUobWVyZ2VfcGFnZV96aXAsIG1lcmdlX3BhZ2Us IGluZGV4KSk7CiAJfQogI2VuZGlmIC8qIFVOSVZfWklQX0RFQlVHICovCiAKQEAgLTQzOTEsNyAr NDM5Myw3IEBAIGJ0cl92YWxpZGF0ZV9sZXZlbCgKIAkJdXRfYShzcGFjZSA9PSBwYWdlX2dldF9z cGFjZV9pZChwYWdlKSk7CiAjaWZkZWYgVU5JVl9aSVBfREVCVUcKIAkJcGFnZV96aXAgPSBidWZf YmxvY2tfZ2V0X3BhZ2VfemlwKGJsb2NrKTsKLQkJdXRfYSghcGFnZV96aXAgfHwgcGFnZV96aXBf dmFsaWRhdGUocGFnZV96aXAsIHBhZ2UpKTsKKwkJdXRfYSghcGFnZV96aXAgfHwgcGFnZV96aXBf dmFsaWRhdGUocGFnZV96aXAsIHBhZ2UsIGluZGV4KSk7CiAjZW5kaWYgLyogVU5JVl9aSVBfREVC VUcgKi8KIAkJdXRfYSghcGFnZV9pc19sZWFmKHBhZ2UpKTsKIApAQCAtNDQyMCw3ICs0NDIyLDcg QEAgbG9vcDoKIAogI2lmZGVmIFVOSVZfWklQX0RFQlVHCiAJcGFnZV96aXAgPSBidWZfYmxvY2tf Z2V0X3BhZ2VfemlwKGJsb2NrKTsKLQl1dF9hKCFwYWdlX3ppcCB8fCBwYWdlX3ppcF92YWxpZGF0 ZShwYWdlX3ppcCwgcGFnZSkpOworCXV0X2EoIXBhZ2VfemlwIHx8IHBhZ2VfemlwX3ZhbGlkYXRl KHBhZ2VfemlwLCBwYWdlLCBpbmRleCkpOwogI2VuZGlmIC8qIFVOSVZfWklQX0RFQlVHICovCiAK IAl1dF9hKGJsb2NrLT5wYWdlLnNwYWNlID09IHNwYWNlKTsKCj09PSBtb2RpZmllZCBmaWxlICdz dG9yYWdlL2lubm9iYXNlL2J0ci9idHIwY3VyLmNjJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2J0 ci9idHIwY3VyLmNjCXJldmlkOmhhcmluLnZhZG9kYXJpYUBvcmFjbGUuY29tLTIwMTIwOTE3MTEz OTQwLXJ0bmJnNWN4azN5MGMxYmsKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9idHIvYnRyMGN1ci5j YwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDkxNzExNDUzNC1tcDM3NmU2ZWZv dDUzYm5rCkBAIC02OTMsNyArNjkzLDcgQEAgcmV0cnlfcGFnZV9nZXQ6CiAjaWZkZWYgVU5JVl9a SVBfREVCVUcKIAkJY29uc3QgcGFnZV96aXBfZGVzX3QqCXBhZ2VfemlwCiAJCQk9IGJ1Zl9ibG9j a19nZXRfcGFnZV96aXAoYmxvY2spOwotCQl1dF9hKCFwYWdlX3ppcCB8fCBwYWdlX3ppcF92YWxp ZGF0ZShwYWdlX3ppcCwgcGFnZSkpOworCQl1dF9hKCFwYWdlX3ppcCB8fCBwYWdlX3ppcF92YWxp ZGF0ZShwYWdlX3ppcCwgcGFnZSwgaW5kZXgpKTsKICNlbmRpZiAvKiBVTklWX1pJUF9ERUJVRyAq LwogCiAJCWJ1Zl9ibG9ja19kYmdfYWRkX2xldmVsKApAQCAtMjEzMSw3ICsyMTMxLDcgQEAgYW55 X2V4dGVybjoKIAogCXBhZ2VfemlwID0gYnVmX2Jsb2NrX2dldF9wYWdlX3ppcChibG9jayk7CiAj aWZkZWYgVU5JVl9aSVBfREVCVUcKLQl1dF9hKCFwYWdlX3ppcCB8fCBwYWdlX3ppcF92YWxpZGF0 ZShwYWdlX3ppcCwgcGFnZSkpOworCXV0X2EoIXBhZ2VfemlwIHx8IHBhZ2VfemlwX3ZhbGlkYXRl KHBhZ2VfemlwLCBwYWdlLCBpbmRleCkpOwogI2VuZGlmIC8qIFVOSVZfWklQX0RFQlVHICovCiAK IAlpZiAocGFnZV96aXAKQEAgLTIzMzUsNyArMjMzNSw3IEBAIGJ0cl9jdXJfcGVzc2ltaXN0aWNf dXBkYXRlKAogCQkJCU1UUl9NRU1PX1hfTE9DSykpOwogCXV0X2FkKG10cl9tZW1vX2NvbnRhaW5z KG10ciwgYmxvY2ssIE1UUl9NRU1PX1BBR0VfWF9GSVgpKTsKICNpZmRlZiBVTklWX1pJUF9ERUJV RwotCXV0X2EoIXBhZ2VfemlwIHx8IHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2VfemlwLCBwYWdlKSk7 CisJdXRfYSghcGFnZV96aXAgfHwgcGFnZV96aXBfdmFsaWRhdGUocGFnZV96aXAsIHBhZ2UsIGlu ZGV4KSk7CiAjZW5kaWYgLyogVU5JVl9aSVBfREVCVUcgKi8KIAkvKiBUaGUgaW5zZXJ0IGJ1ZmZl ciB0cmVlIHNob3VsZCBuZXZlciBiZSB1cGRhdGVkIGluIHBsYWNlLiAqLwogCXV0X2FkKCFkaWN0 X2luZGV4X2lzX2lidWYoaW5kZXgpKTsKQEAgLTI0NzMsNyArMjQ3Myw3IEBAIG1ha2VfZXh0ZXJu YWw6CiAJYnRyX3NlYXJjaF91cGRhdGVfaGFzaF9vbl9kZWxldGUoY3Vyc29yKTsKIAogI2lmZGVm IFVOSVZfWklQX0RFQlVHCi0JdXRfYSghcGFnZV96aXAgfHwgcGFnZV96aXBfdmFsaWRhdGUocGFn ZV96aXAsIHBhZ2UpKTsKKwl1dF9hKCFwYWdlX3ppcCB8fCBwYWdlX3ppcF92YWxpZGF0ZShwYWdl X3ppcCwgcGFnZSwgaW5kZXgpKTsKICNlbmRpZiAvKiBVTklWX1pJUF9ERUJVRyAqLwogCXBhZ2Vf Y3Vyc29yID0gYnRyX2N1cl9nZXRfcGFnZV9jdXIoY3Vyc29yKTsKIApAQCAtMjU4MSw3ICsyNTgx LDcgQEAgbWFrZV9leHRlcm5hbDoKIAkJYnVmX2Jsb2NrX3QqCXJlY19ibG9jayA9IGJ0cl9jdXJf Z2V0X2Jsb2NrKGN1cnNvcik7CiAKICNpZmRlZiBVTklWX1pJUF9ERUJVRwotCQl1dF9hKCFwYWdl X3ppcCB8fCBwYWdlX3ppcF92YWxpZGF0ZShwYWdlX3ppcCwgcGFnZSkpOworCQl1dF9hKCFwYWdl X3ppcCB8fCBwYWdlX3ppcF92YWxpZGF0ZShwYWdlX3ppcCwgcGFnZSwgaW5kZXgpKTsKIAkJcGFn ZSA9IGJ1Zl9ibG9ja19nZXRfZnJhbWUocmVjX2Jsb2NrKTsKICNlbmRpZiAvKiBVTklWX1pJUF9E RUJVRyAqLwogCQlwYWdlX3ppcCA9IGJ1Zl9ibG9ja19nZXRfcGFnZV96aXAocmVjX2Jsb2NrKTsK QEAgLTI2MDUsNyArMjYwNSw3IEBAIG1ha2VfZXh0ZXJuYWw6CiAKIHJldHVybl9hZnRlcl9yZXNl cnZhdGlvbnM6CiAjaWZkZWYgVU5JVl9aSVBfREVCVUcKLQl1dF9hKCFwYWdlX3ppcCB8fCBwYWdl X3ppcF92YWxpZGF0ZShwYWdlX3ppcCwgcGFnZSkpOworCXV0X2EoIXBhZ2VfemlwIHx8IHBhZ2Vf emlwX3ZhbGlkYXRlKHBhZ2VfemlwLCBwYWdlLCBpbmRleCkpOwogI2VuZGlmIC8qIFVOSVZfWklQ X0RFQlVHICovCiAKIAlpZiAobl9leHRlbnRzID4gMCkgewpAQCAtMzA3MCwxMiArMzA3MCwxNCBA QCBidHJfY3VyX29wdGltaXN0aWNfZGVsZXRlX2Z1bmMoCiAJCQkJcGFnZSwgMSk7CiAJCX0KICNp ZmRlZiBVTklWX1pJUF9ERUJVRwotCQl1dF9hKCFwYWdlX3ppcCB8fCBwYWdlX3ppcF92YWxpZGF0 ZShwYWdlX3ppcCwgcGFnZSkpOworCQl1dF9hKCFwYWdlX3ppcAorCQkgICAgIHx8IHBhZ2Vfemlw X3ZhbGlkYXRlKHBhZ2VfemlwLCBwYWdlLCBjdXJzb3ItPmluZGV4KSk7CiAjZW5kaWYgLyogVU5J Vl9aSVBfREVCVUcgKi8KIAkJcGFnZV9jdXJfZGVsZXRlX3JlYyhidHJfY3VyX2dldF9wYWdlX2N1 cihjdXJzb3IpLAogCQkJCSAgICBjdXJzb3ItPmluZGV4LCBvZmZzZXRzLCBtdHIpOwogI2lmZGVm IFVOSVZfWklQX0RFQlVHCi0JCXV0X2EoIXBhZ2VfemlwIHx8IHBhZ2VfemlwX3ZhbGlkYXRlKHBh Z2VfemlwLCBwYWdlKSk7CisJCXV0X2EoIXBhZ2VfemlwCisJCSAgICAgfHwgcGFnZV96aXBfdmFs aWRhdGUocGFnZV96aXAsIHBhZ2UsIGN1cnNvci0+aW5kZXgpKTsKICNlbmRpZiAvKiBVTklWX1pJ UF9ERUJVRyAqLwogCiAJCWlmIChkaWN0X2luZGV4X2lzX2NsdXN0KGN1cnNvci0+aW5kZXgpCkBA IC0zMTc0LDcgKzMxNzYsNyBAQCBidHJfY3VyX3Blc3NpbWlzdGljX2RlbGV0ZSgKIAlyZWMgPSBi dHJfY3VyX2dldF9yZWMoY3Vyc29yKTsKIAlwYWdlX3ppcCA9IGJ1Zl9ibG9ja19nZXRfcGFnZV96 aXAoYmxvY2spOwogI2lmZGVmIFVOSVZfWklQX0RFQlVHCi0JdXRfYSghcGFnZV96aXAgfHwgcGFn ZV96aXBfdmFsaWRhdGUocGFnZV96aXAsIHBhZ2UpKTsKKwl1dF9hKCFwYWdlX3ppcCB8fCBwYWdl X3ppcF92YWxpZGF0ZShwYWdlX3ppcCwgcGFnZSwgaW5kZXgpKTsKICNlbmRpZiAvKiBVTklWX1pJ UF9ERUJVRyAqLwogCiAJb2Zmc2V0cyA9IHJlY19nZXRfb2Zmc2V0cyhyZWMsIGluZGV4LCBOVUxM LCBVTElOVF9VTkRFRklORUQsICZoZWFwKTsKQEAgLTMxODQsNyArMzE4Niw3IEBAIGJ0cl9jdXJf cGVzc2ltaXN0aWNfZGVsZXRlKAogCQkJCQkJICAgICAgcmVjLCBvZmZzZXRzLCBwYWdlX3ppcCwK IAkJCQkJCSAgICAgIHJiX2N0eCwgbXRyKTsKICNpZmRlZiBVTklWX1pJUF9ERUJVRwotCQl1dF9h KCFwYWdlX3ppcCB8fCBwYWdlX3ppcF92YWxpZGF0ZShwYWdlX3ppcCwgcGFnZSkpOworCQl1dF9h KCFwYWdlX3ppcCB8fCBwYWdlX3ppcF92YWxpZGF0ZShwYWdlX3ppcCwgcGFnZSwgaW5kZXgpKTsK ICNlbmRpZiAvKiBVTklWX1pJUF9ERUJVRyAqLwogCX0KIApAQCAtMzI0Nyw3ICszMjQ5LDcgQEAg YnRyX2N1cl9wZXNzaW1pc3RpY19kZWxldGUoCiAKIAlwYWdlX2N1cl9kZWxldGVfcmVjKGJ0cl9j dXJfZ2V0X3BhZ2VfY3VyKGN1cnNvciksIGluZGV4LCBvZmZzZXRzLCBtdHIpOwogI2lmZGVmIFVO SVZfWklQX0RFQlVHCi0JdXRfYSghcGFnZV96aXAgfHwgcGFnZV96aXBfdmFsaWRhdGUocGFnZV96 aXAsIHBhZ2UpKTsKKwl1dF9hKCFwYWdlX3ppcCB8fCBwYWdlX3ppcF92YWxpZGF0ZShwYWdlX3pp cCwgcGFnZSwgaW5kZXgpKTsKICNlbmRpZiAvKiBVTklWX1pJUF9ERUJVRyAqLwogCiAJdXRfYWQo YnRyX2NoZWNrX25vZGVfcHRyKGluZGV4LCBibG9jaywgbXRyKSk7Cgo9PT0gbW9kaWZpZWQgZmls ZSAnc3RvcmFnZS9pbm5vYmFzZS9idWYvYnVmMGxydS5jYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFz ZS9idWYvYnVmMGxydS5jYwlyZXZpZDpoYXJpbi52YWRvZGFyaWFAb3JhY2xlLmNvbS0yMDEyMDkx NzExMzk0MC1ydG5iZzVjeGszeTBjMWJrCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvYnVmL2J1ZjBs cnUuY2MJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA5MTcxMTQ1MzQtbXAzNzZl NmVmb3Q1M2JuawpAQCAtMjE5MSw3ICsyMTkxLDkgQEAgYnVmX0xSVV9ibG9ja19yZW1vdmVfaGFz aGVkX3BhZ2UoCiAJCQkJYnJlYWs7CiAJCQljYXNlIEZJTF9QQUdFX0lOREVYOgogI2lmZGVmIFVO SVZfWklQX0RFQlVHCi0JCQkJdXRfYShwYWdlX3ppcF92YWxpZGF0ZSgmYnBhZ2UtPnppcCwgcGFn ZSkpOworCQkJCXV0X2EocGFnZV96aXBfdmFsaWRhdGUoCisJCQkJCSAgICAgJmJwYWdlLT56aXAs IHBhZ2UsCisJCQkJCSAgICAgKChidWZfYmxvY2tfdCopIGJwYWdlKS0+aW5kZXgpKTsKICNlbmRp ZiAvKiBVTklWX1pJUF9ERUJVRyAqLwogCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKCj09PSBtb2Rp ZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2lidWYvaWJ1ZjBpYnVmLmNjJwotLS0gYS9zdG9y YWdlL2lubm9iYXNlL2lidWYvaWJ1ZjBpYnVmLmNjCXJldmlkOmhhcmluLnZhZG9kYXJpYUBvcmFj bGUuY29tLTIwMTIwOTE3MTEzOTQwLXJ0bmJnNWN4azN5MGMxYmsKKysrIGIvc3RvcmFnZS9pbm5v YmFzZS9pYnVmL2lidWYwaWJ1Zi5jYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEy MDkxNzExNDUzNC1tcDM3NmU2ZWZvdDUzYm5rCkBAIC00MjgzLDExICs0MjgzLDExIEBAIGlidWZf ZGVsZXRlKAogCQkJCQlwYWdlLCAxKTsKIAkJfQogI2lmZGVmIFVOSVZfWklQX0RFQlVHCi0JCXV0 X2EoIXBhZ2VfemlwIHx8IHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2VfemlwLCBwYWdlKSk7CisJCXV0 X2EoIXBhZ2VfemlwIHx8IHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2VfemlwLCBwYWdlLCBpbmRleCkp OwogI2VuZGlmIC8qIFVOSVZfWklQX0RFQlVHICovCiAJCXBhZ2VfY3VyX2RlbGV0ZV9yZWMoJnBh Z2VfY3VyLCBpbmRleCwgb2Zmc2V0cywgbXRyKTsKICNpZmRlZiBVTklWX1pJUF9ERUJVRwotCQl1 dF9hKCFwYWdlX3ppcCB8fCBwYWdlX3ppcF92YWxpZGF0ZShwYWdlX3ppcCwgcGFnZSkpOworCQl1 dF9hKCFwYWdlX3ppcCB8fCBwYWdlX3ppcF92YWxpZGF0ZShwYWdlX3ppcCwgcGFnZSwgaW5kZXgp KTsKICNlbmRpZiAvKiBVTklWX1pJUF9ERUJVRyAqLwogCiAJCWlmIChwYWdlX3ppcCkgewoKPT09 IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9wYWdlMHppcC5oJwotLS0g YS9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvcGFnZTB6aXAuaAlyZXZpZDpoYXJpbi52YWRvZGFy aWFAb3JhY2xlLmNvbS0yMDEyMDkxNzExMzk0MC1ydG5iZzVjeGszeTBjMWJrCisrKyBiL3N0b3Jh Z2UvaW5ub2Jhc2UvaW5jbHVkZS9wYWdlMHppcC5oCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUu Y29tLTIwMTIwOTE3MTE0NTM0LW1wMzc2ZTZlZm90NTNibmsKQEAgLTE2OSw5ICsxNjksMTAgQEAg cGFnZV96aXBfdmFsaWRhdGVfbG93KAogLyo9PT09PT09PT09PT09PT09PT0qLwogCWNvbnN0IHBh Z2VfemlwX2Rlc190KglwYWdlX3ppcCwvKiE8IGluOiBjb21wcmVzc2VkIHBhZ2UgKi8KIAljb25z dCBwYWdlX3QqCQlwYWdlLAkvKiE8IGluOiB1bmNvbXByZXNzZWQgcGFnZSAqLworCWNvbnN0IGRp Y3RfaW5kZXhfdCoJaW5kZXgsCS8qITwgaW46IGluZGV4IG9mIHRoZSBwYWdlLCBpZiBrbm93biAq LwogCWlib29sCQkJc2xvcHB5KQkvKiE8IGluOiBGQUxTRT1zdHJpY3QsCiAJCQkJCVRSVUU9aWdu b3JlIHRoZSBNSU5fUkVDX0ZMQUcgKi8KLQlfX2F0dHJpYnV0ZV9fKChub25udWxsKSk7CisJX19h dHRyaWJ1dGVfXygobm9ubnVsbCgxLDIpKSk7CiAvKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIENoZWNrIHRo YXQgdGhlIGNvbXByZXNzZWQgYW5kIGRlY29tcHJlc3NlZCBwYWdlcyBtYXRjaC4gKi8KIFVOSVZf SU5URVJOCkBAIC0xNzksOCArMTgwLDkgQEAgaWJvb2wKIHBhZ2VfemlwX3ZhbGlkYXRlKAogLyo9 PT09PT09PT09PT09PSovCiAJY29uc3QgcGFnZV96aXBfZGVzX3QqCXBhZ2VfemlwLC8qITwgaW46 IGNvbXByZXNzZWQgcGFnZSAqLwotCWNvbnN0IHBhZ2VfdCoJCXBhZ2UpCS8qITwgaW46IHVuY29t cHJlc3NlZCBwYWdlICovCi0JX19hdHRyaWJ1dGVfXygobm9ubnVsbCkpOworCWNvbnN0IHBhZ2Vf dCoJCXBhZ2UsCS8qITwgaW46IHVuY29tcHJlc3NlZCBwYWdlICovCisJY29uc3QgZGljdF9pbmRl eF90KglpbmRleCkJLyohPCBpbjogaW5kZXggb2YgdGhlIHBhZ2UsIGlmIGtub3duICovCisJX19h dHRyaWJ1dGVfXygobm9ubnVsbCgxLDIpKSk7CiAjZW5kaWYgLyogVU5JVl9aSVBfREVCVUcgKi8K IAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKiovLyoqCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFz ZS9sb2cvbG9nMHJlY3YuY2MnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvbG9nL2xvZzByZWN2LmNj CXJldmlkOmhhcmluLnZhZG9kYXJpYUBvcmFjbGUuY29tLTIwMTIwOTE3MTEzOTQwLXJ0bmJnNWN4 azN5MGMxYmsKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9sb2cvbG9nMHJlY3YuY2MJcmV2aWQ6bWFy a28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA5MTcxMTQ1MzQtbXAzNzZlNmVmb3Q1M2JuawpAQCAt MTY0OSw5ICsxNjQ5LDggQEAgcmVjdl9yZWNvdmVyX3BhZ2VfZnVuYygKIAlpZiAoZmlsX3BhZ2Vf Z2V0X3R5cGUocGFnZSkgPT0gRklMX1BBR0VfSU5ERVgpIHsKIAkJcGFnZV96aXBfZGVzX3QqCXBh Z2VfemlwID0gYnVmX2Jsb2NrX2dldF9wYWdlX3ppcChibG9jayk7CiAKLQkJaWYgKHBhZ2Vfemlw KSB7Ci0JCQl1dF9hKHBhZ2VfemlwX3ZhbGlkYXRlX2xvdyhwYWdlX3ppcCwgcGFnZSwgRkFMU0Up KTsKLQkJfQorCQl1dF9hKCFwYWdlX3ppcAorCQkgICAgIHx8IHBhZ2VfemlwX3ZhbGlkYXRlX2xv dyhwYWdlX3ppcCwgcGFnZSwgTlVMTCwgRkFMU0UpKTsKIAl9CiAjZW5kaWYgLyogVU5JVl9aSVBf REVCVUcgKi8KIAoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvcGFnZS9wYWdl MGN1ci5jYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9wYWdlL3BhZ2UwY3VyLmNjCXJldmlkOmhh cmluLnZhZG9kYXJpYUBvcmFjbGUuY29tLTIwMTIwOTE3MTEzOTQwLXJ0bmJnNWN4azN5MGMxYmsK KysrIGIvc3RvcmFnZS9pbm5vYmFzZS9wYWdlL3BhZ2UwY3VyLmNjCXJldmlkOm1hcmtvLm1ha2Vs YUBvcmFjbGUuY29tLTIwMTIwOTE3MTE0NTM0LW1wMzc2ZTZlZm90NTNibmsKQEAgLTMxMSw3ICsz MTEsNyBAQCBwYWdlX2N1cl9zZWFyY2hfd2l0aF9tYXRjaCgKICNlbmRpZiAvKiBVTklWX0RFQlVH ICovCiAJcGFnZSA9IGJ1Zl9ibG9ja19nZXRfZnJhbWUoYmxvY2spOwogI2lmZGVmIFVOSVZfWklQ X0RFQlVHCi0JdXRfYSghcGFnZV96aXAgfHwgcGFnZV96aXBfdmFsaWRhdGUocGFnZV96aXAsIHBh Z2UpKTsKKwl1dF9hKCFwYWdlX3ppcCB8fCBwYWdlX3ppcF92YWxpZGF0ZShwYWdlX3ppcCwgcGFn ZSwgaW5kZXgpKTsKICNlbmRpZiAvKiBVTklWX1pJUF9ERUJVRyAqLwogCiAJcGFnZV9jaGVja19k aXIocGFnZSk7CkBAIC0xMjY5LDcgKzEyNjksNyBAQCBwYWdlX2N1cl9pbnNlcnRfcmVjX3ppcCgK IAogCXV0X2FkKCFwYWdlX3JlY19pc19zdXByZW11bSgqY3VycmVudF9yZWMpKTsKICNpZmRlZiBV TklWX1pJUF9ERUJVRwotCXV0X2EocGFnZV96aXBfdmFsaWRhdGUocGFnZV96aXAsIHBhZ2UpKTsK Kwl1dF9hKHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2VfemlwLCBwYWdlLCBpbmRleCkpOwogI2VuZGlm IC8qIFVOSVZfWklQX0RFQlVHICovCiAKIAkvKiAxLiBHZXQgdGhlIHNpemUgb2YgdGhlIHBoeXNp Y2FsIHJlY29yZCBpbiB0aGUgcGFnZSAqLwpAQCAtMjAyMCw3ICsyMDIwLDcgQEAgcGFnZV9jdXJf ZGVsZXRlX3JlYygKIAl9CiAKICNpZmRlZiBVTklWX1pJUF9ERUJVRwotCXV0X2EoIXBhZ2Vfemlw IHx8IHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2VfemlwLCBwYWdlKSk7CisJdXRfYSghcGFnZV96aXAg fHwgcGFnZV96aXBfdmFsaWRhdGUocGFnZV96aXAsIHBhZ2UsIGluZGV4KSk7CiAjZW5kaWYgLyog VU5JVl9aSVBfREVCVUcgKi8KIH0KIAoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jh c2UvcGFnZS9wYWdlMHBhZ2UuY2MnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvcGFnZS9wYWdlMHBh Z2UuY2MJcmV2aWQ6aGFyaW4udmFkb2RhcmlhQG9yYWNsZS5jb20tMjAxMjA5MTcxMTM5NDAtcnRu Ymc1Y3hrM3kwYzFiaworKysgYi9zdG9yYWdlL2lubm9iYXNlL3BhZ2UvcGFnZTBwYWdlLmNjCXJl dmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTIwOTE3MTE0NTM0LW1wMzc2ZTZlZm90NTNi bmsKQEAgLTYyOCw3ICs2MjgsNyBAQCBwYWdlX2NvcHlfcmVjX2xpc3RfZW5kKAogCQlGdXJ0aGVy bW9yZSwgYnRyX2NvbXByZXNzKCkgbWF5IHNldCBGSUxfUEFHRV9QUkVWIHRvCiAJCUZJTF9OVUxM IG9uIG5ld19wYWdlIHdoaWxlIGxlYXZpbmcgaXQgaW50YWN0IG9uCiAJCW5ld19wYWdlX3ppcC4g IFNvLCB3ZSBjYW5ub3QgdmFsaWRhdGUgbmV3X3BhZ2VfemlwLiAqLwotCQl1dF9hKHBhZ2Vfemlw X3ZhbGlkYXRlX2xvdyhwYWdlX3ppcCwgcGFnZSwgVFJVRSkpOworCQl1dF9hKHBhZ2VfemlwX3Zh bGlkYXRlX2xvdyhwYWdlX3ppcCwgcGFnZSwgaW5kZXgsIFRSVUUpKTsKIAl9CiAjZW5kaWYgLyog VU5JVl9aSVBfREVCVUcgKi8KIAl1dF9hZChidWZfYmxvY2tfZ2V0X2ZyYW1lKGJsb2NrKSA9PSBw YWdlKTsKQEAgLTk1MCw3ICs5NTAsNyBAQCBwYWdlX2RlbGV0ZV9yZWNfbGlzdF9lbmQoCiAJdXRf YWQoc2l6ZSA9PSBVTElOVF9VTkRFRklORUQgfHwgc2l6ZSA8IFVOSVZfUEFHRV9TSVpFKTsKIAl1 dF9hZCghcGFnZV96aXAgfHwgcGFnZV9yZWNfaXNfY29tcChyZWMpKTsKICNpZmRlZiBVTklWX1pJ UF9ERUJVRwotCXV0X2EoIXBhZ2VfemlwIHx8IHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2VfemlwLCBw YWdlKSk7CisJdXRfYSghcGFnZV96aXAgfHwgcGFnZV96aXBfdmFsaWRhdGUocGFnZV96aXAsIHBh Z2UsIGluZGV4KSk7CiAjZW5kaWYgLyogVU5JVl9aSVBfREVCVUcgKi8KIAogCWlmIChwYWdlX3Jl Y19pc19pbmZpbXVtKHJlYykpIHsKQEAgLTk5Miw3ICs5OTIsNyBAQCBwYWdlX2RlbGV0ZV9yZWNf bGlzdF9lbmQoCiAJCQkJCQkgIFVMSU5UX1VOREVGSU5FRCwgJmhlYXApOwogCQkJcmVjID0gcmVj X2dldF9uZXh0X3B0cihyZWMsIFRSVUUpOwogI2lmZGVmIFVOSVZfWklQX0RFQlVHCi0JCQl1dF9h KHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2VfemlwLCBwYWdlKSk7CisJCQl1dF9hKHBhZ2VfemlwX3Zh bGlkYXRlKHBhZ2VfemlwLCBwYWdlLCBpbmRleCkpOwogI2VuZGlmIC8qIFVOSVZfWklQX0RFQlVH ICovCiAJCQlwYWdlX2N1cl9kZWxldGVfcmVjKCZjdXIsIGluZGV4LCBvZmZzZXRzLCBtdHIpOwog CQl9IHdoaWxlIChwYWdlX29mZnNldChyZWMpICE9IFBBR0VfTkVXX1NVUFJFTVVNKTsKQEAgLTEx MzIsNyArMTEzMiw4IEBAIHBhZ2VfZGVsZXRlX3JlY19saXN0X3N0YXJ0KAogCQliZXR3ZWVuIGJ0 cl9hdHRhY2hfaGFsZl9wYWdlcygpIGFuZCBpbnNlcnRfcGFnZSA9IC4uLgogCQl3aGVuIGJ0cl9w YWdlX2dldF9zcGxpdF9yZWNfdG9fbGVmdCgpIGhvbGRzCiAJCShkaXJlY3Rpb24gPT0gRlNQX0RP V04pLiAqLwotCQl1dF9hKCFwYWdlX3ppcCB8fCBwYWdlX3ppcF92YWxpZGF0ZV9sb3cocGFnZV96 aXAsIHBhZ2UsIFRSVUUpKTsKKwkJdXRfYSghcGFnZV96aXAKKwkJICAgICB8fCBwYWdlX3ppcF92 YWxpZGF0ZV9sb3cocGFnZV96aXAsIHBhZ2UsIGluZGV4LCBUUlVFKSk7CiAJfQogI2VuZGlmIC8q IFVOSVZfWklQX0RFQlVHICovCiAKQEAgLTEyMDMsOSArMTIwNCwxMCBAQCBwYWdlX21vdmVfcmVj X2xpc3RfZW5kKAogCQkJPSBidWZfYmxvY2tfZ2V0X3BhZ2VfemlwKGJsb2NrKTsKIAkJdXRfYSgh bmV3X3BhZ2VfemlwID09ICFwYWdlX3ppcCk7CiAJCXV0X2EoIW5ld19wYWdlX3ppcAotCQkgICAg IHx8IHBhZ2VfemlwX3ZhbGlkYXRlKG5ld19wYWdlX3ppcCwgbmV3X3BhZ2UpKTsKKwkJICAgICB8 fCBwYWdlX3ppcF92YWxpZGF0ZShuZXdfcGFnZV96aXAsIG5ld19wYWdlLCBpbmRleCkpOwogCQl1 dF9hKCFwYWdlX3ppcAotCQkgICAgIHx8IHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2VfemlwLCBwYWdl X2FsaWduKHNwbGl0X3JlYykpKTsKKwkJICAgICB8fCBwYWdlX3ppcF92YWxpZGF0ZShwYWdlX3pp cCwgcGFnZV9hbGlnbihzcGxpdF9yZWMpLAorCQkJCQkgIGluZGV4KSk7CiAJfQogI2VuZGlmIC8q IFVOSVZfWklQX0RFQlVHICovCiAKQEAgLTI2NTcsMTMgKzI2NTksMTMgQEAgcGFnZV9kZWxldGVf cmVjKAogCiAJaWYgKG5vX2NvbXByZXNzX25lZWRlZCkgewogI2lmZGVmIFVOSVZfWklQX0RFQlVH Ci0JCXV0X2EocGFnZV96aXAgPT0gMCB8fCBwYWdlX3ppcF92YWxpZGF0ZShwYWdlX3ppcCwgcGFn ZSkpOworCQl1dF9hKCFwYWdlX3ppcCB8fCBwYWdlX3ppcF92YWxpZGF0ZShwYWdlX3ppcCwgcGFn ZSwgaW5kZXgpKTsKICNlbmRpZiAvKiBVTklWX1pJUF9ERUJVRyAqLwogCiAJCXBhZ2VfY3VyX2Rl bGV0ZV9yZWMocGN1ciwgaW5kZXgsIG9mZnNldHMsIDApOwogCiAjaWZkZWYgVU5JVl9aSVBfREVC VUcKLQkJdXRfYShwYWdlX3ppcCA9PSAwIHx8IHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2VfemlwLCBw YWdlKSk7CisJCXV0X2EoIXBhZ2VfemlwIHx8IHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2VfemlwLCBw YWdlLCBpbmRleCkpOwogI2VuZGlmIC8qIFVOSVZfWklQX0RFQlVHICovCiAJfQogCgo9PT0gbW9k aWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9wYWdlL3BhZ2UwemlwLmNjJwotLS0gYS9zdG9y YWdlL2lubm9iYXNlL3BhZ2UvcGFnZTB6aXAuY2MJcmV2aWQ6aGFyaW4udmFkb2RhcmlhQG9yYWNs ZS5jb20tMjAxMjA5MTcxMTM5NDAtcnRuYmc1Y3hrM3kwYzFiaworKysgYi9zdG9yYWdlL2lubm9i YXNlL3BhZ2UvcGFnZTB6aXAuY2MJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA5 MTcxMTQ1MzQtbXAzNzZlNmVmb3Q1M2JuawpAQCAtMTQ4Niw3ICsxNDg2LDcgQEAgZXJyX2V4aXQ6 CiAJICAgICAgIHBhZ2VfemlwX2dldF9zaXplKHBhZ2VfemlwKSAtIFBBR0VfREFUQSk7CiAJbWVt X2hlYXBfZnJlZShoZWFwKTsKICNpZmRlZiBVTklWX1pJUF9ERUJVRwotCXV0X2EocGFnZV96aXBf dmFsaWRhdGUocGFnZV96aXAsIHBhZ2UpKTsKKwl1dF9hKHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2Vf emlwLCBwYWdlLCBpbmRleCkpOwogI2VuZGlmIC8qIFVOSVZfWklQX0RFQlVHICovCiAKIAlpZiAo bXRyKSB7CkBAIC0zMTkzLDYgKzMxOTMsNyBAQCBwYWdlX3ppcF92YWxpZGF0ZV9sb3coCiAvKj09 PT09PT09PT09PT09PT09PSovCiAJY29uc3QgcGFnZV96aXBfZGVzX3QqCXBhZ2VfemlwLC8qITwg aW46IGNvbXByZXNzZWQgcGFnZSAqLwogCWNvbnN0IHBhZ2VfdCoJCXBhZ2UsCS8qITwgaW46IHVu Y29tcHJlc3NlZCBwYWdlICovCisJY29uc3QgZGljdF9pbmRleF90KglpbmRleCwJLyohPCBpbjog aW5kZXggb2YgdGhlIHBhZ2UsIGlmIGtub3duICovCiAJaWJvb2wJCQlzbG9wcHkpCS8qITwgaW46 IEZBTFNFPXN0cmljdCwKIAkJCQkJVFJVRT1pZ25vcmUgdGhlIE1JTl9SRUNfRkxBRyAqLwogewpA QCAtMzIyOSw3ICszMjMwLDcgQEAgcGFnZV96aXBfdmFsaWRhdGVfbG93KAogCVVOSVZfTUVNX0FT U0VSVF9SVygpIGNoZWNrcyBmYWlsLiAgVGhlIHYtYml0cyBvZiBwYWdlW10sCiAJcGFnZV96aXAt PmRhdGFbXSBvciBwYWdlX3ppcCBjb3VsZCBiZSB2aWV3ZWQgYXQgdGVtcF9wYWdlW10gb3IKIAl0 ZW1wX3BhZ2VfemlwIGluIGEgZGVidWdnZXIgd2hlbiBydW5uaW5nIHZhbGdyaW5kIC0tZGItYXR0 YWNoLiAqLwotCVZBTEdSSU5EX0dFVF9WQklUUyhwYWdlLCB0ZW1wX3BhZ2UsIFVOSVZfUEFHRV9T SVpFKTsKKwkodm9pZCkgVkFMR1JJTkRfR0VUX1ZCSVRTKHBhZ2UsIHRlbXBfcGFnZSwgVU5JVl9Q QUdFX1NJWkUpOwogCVVOSVZfTUVNX0FTU0VSVF9SVyhwYWdlLCBVTklWX1BBR0VfU0laRSk7CiAj IGlmIFVOSVZfV09SRF9TSVpFID09IDQKIAlWQUxHUklORF9HRVRfVkJJVFMocGFnZV96aXAsICZ0 ZW1wX3BhZ2VfemlwLCBzaXplb2YgdGVtcF9wYWdlX3ppcCk7CkBAIC0zMjM4LDggKzMyMzksOCBA QCBwYWdlX3ppcF92YWxpZGF0ZV9sb3coCiAJcGFkIGJ5dGVzLiAqLwogCVVOSVZfTUVNX0FTU0VS VF9SVyhwYWdlX3ppcCwgc2l6ZW9mICpwYWdlX3ppcCk7CiAjIGVuZGlmCi0JVkFMR1JJTkRfR0VU X1ZCSVRTKHBhZ2VfemlwLT5kYXRhLCB0ZW1wX3BhZ2UsCi0JCQkgICBwYWdlX3ppcF9nZXRfc2l6 ZShwYWdlX3ppcCkpOworCSh2b2lkKSBWQUxHUklORF9HRVRfVkJJVFMocGFnZV96aXAtPmRhdGEs IHRlbXBfcGFnZSwKKwkJCQkgIHBhZ2VfemlwX2dldF9zaXplKHBhZ2VfemlwKSk7CiAJVU5JVl9N RU1fQVNTRVJUX1JXKHBhZ2VfemlwLT5kYXRhLCBwYWdlX3ppcF9nZXRfc2l6ZShwYWdlX3ppcCkp OwogI2VuZGlmIC8qIFVOSVZfREVCVUdfVkFMR1JJTkQgKi8KIApAQCAtMzI4MCwzOSArMzI4MSwx MDIgQEAgcGFnZV96aXBfdmFsaWRhdGVfbG93KAogCQljb21taXR0ZWQuICBMZXQgdXMgdG9sZXJh dGUgdGhhdCBkaWZmZXJlbmNlIHdoZW4gd2UKIAkJYXJlIHBlcmZvcm1pbmcgYSBzbG9wcHkgdmFs aWRhdGlvbi4gKi8KIAotCQlpZiAoc2xvcHB5KSB7Ci0JCQlieXRlCWluZm9fYml0c19kaWZmOwot CQkJdWxpbnQJb2Zmc2V0Ci0JCQkJPSByZWNfZ2V0X25leHRfb2ZmcyhwYWdlICsgUEFHRV9ORVdf SU5GSU1VTSwKLQkJCQkJCSAgICBUUlVFKTsKLQkJCXV0X2Eob2Zmc2V0ID49IFBBR0VfTkVXX1NV UFJFTVVNKTsKLQkJCW9mZnNldCAtPSA1IC8qIFJFQ19ORVdfSU5GT19CSVRTICovOwotCi0JCQlp bmZvX2JpdHNfZGlmZiA9IHBhZ2Vbb2Zmc2V0XSBeIHRlbXBfcGFnZVtvZmZzZXRdOwotCi0JCQlp ZiAoaW5mb19iaXRzX2RpZmYgPT0gUkVDX0lORk9fTUlOX1JFQ19GTEFHKSB7Ci0JCQkJdGVtcF9w YWdlW29mZnNldF0gPSBwYWdlW29mZnNldF07Ci0KLQkJCQlpZiAoIW1lbWNtcChwYWdlICsgUEFH RV9IRUFERVIsCi0JCQkJCSAgICB0ZW1wX3BhZ2UgKyBQQUdFX0hFQURFUiwKLQkJCQkJICAgIFVO SVZfUEFHRV9TSVpFIC0gUEFHRV9IRUFERVIKLQkJCQkJICAgIC0gRklMX1BBR0VfREFUQV9FTkQp KSB7Ci0KLQkJCQkJLyogT25seSB0aGUgbWluaW11bSByZWNvcmQgZmxhZwotCQkJCQlkaWZmZXJl ZC4gIExldCB1cyBpZ25vcmUgaXQuICovCi0JCQkJCXBhZ2VfemlwX2ZhaWwoKCJwYWdlX3ppcF92 YWxpZGF0ZTogIgotCQkJCQkJICAgICAgICJtaW5fcmVjX2ZsYWcgIgotCQkJCQkJICAgICAgICIo aWdub3JlZCwgIgotCQkJCQkJICAgICAgICIlbHUsJWx1LDB4JTAybHgpXG4iLAotCQkJCQkJICAg ICAgIHBhZ2VfZ2V0X3NwYWNlX2lkKHBhZ2UpLAotCQkJCQkJICAgICAgIHBhZ2VfZ2V0X3BhZ2Vf bm8ocGFnZSksCi0JCQkJCQkgICAgICAgKHVsb25nKSBwYWdlW29mZnNldF0pKTsKLQkJCQkJZ290 byBmdW5jX2V4aXQ7CisJCXVsaW50KgkJb2Zmc2V0czsKKwkJbWVtX2hlYXBfdCoJaGVhcDsKKwkJ Y29uc3QgcmVjX3QqCXJlYzsKKwkJY29uc3QgcmVjX3QqCXRyZWM7CisJCWJ5dGUJCWluZm9fYml0 c19kaWZmOworCQl1bGludAkJb2Zmc2V0CisJCQk9IHJlY19nZXRfbmV4dF9vZmZzKHBhZ2UgKyBQ QUdFX05FV19JTkZJTVVNLCBUUlVFKTsKKwkJdXRfYShvZmZzZXQgPj0gUEFHRV9ORVdfU1VQUkVN VU0pOworCQlvZmZzZXQgLT0gNS8qUkVDX05FV19JTkZPX0JJVFMqLzsKKworCQlpbmZvX2JpdHNf ZGlmZiA9IHBhZ2Vbb2Zmc2V0XSBeIHRlbXBfcGFnZVtvZmZzZXRdOworCisJCWlmIChpbmZvX2Jp dHNfZGlmZiA9PSBSRUNfSU5GT19NSU5fUkVDX0ZMQUcpIHsKKwkJCXRlbXBfcGFnZVtvZmZzZXRd ID0gcGFnZVtvZmZzZXRdOworCisJCQlpZiAoIW1lbWNtcChwYWdlICsgUEFHRV9IRUFERVIsCisJ CQkJICAgIHRlbXBfcGFnZSArIFBBR0VfSEVBREVSLAorCQkJCSAgICBVTklWX1BBR0VfU0laRSAt IFBBR0VfSEVBREVSCisJCQkJICAgIC0gRklMX1BBR0VfREFUQV9FTkQpKSB7CisKKwkJCQkvKiBP bmx5IHRoZSBtaW5pbXVtIHJlY29yZCBmbGFnCisJCQkJZGlmZmVyZWQuICBMZXQgdXMgaWdub3Jl IGl0LiAqLworCQkJCXBhZ2VfemlwX2ZhaWwoKCJwYWdlX3ppcF92YWxpZGF0ZTogIgorCQkJCQkg ICAgICAgIm1pbl9yZWNfZmxhZyAiCisJCQkJCSAgICAgICAiKCVzIgorCQkJCQkgICAgICAgIiVs dSwlbHUsMHglMDJseClcbiIsCisJCQkJCSAgICAgICBzbG9wcHkgPyAiaWdub3JlZCwgIiA6ICIi LAorCQkJCQkgICAgICAgcGFnZV9nZXRfc3BhY2VfaWQocGFnZSksCisJCQkJCSAgICAgICBwYWdl X2dldF9wYWdlX25vKHBhZ2UpLAorCQkJCQkgICAgICAgKHVsb25nKSBwYWdlW29mZnNldF0pKTsK KwkJCQl2YWxpZCA9IHNsb3BweTsKKwkJCQlnb3RvIGZ1bmNfZXhpdDsKKwkJCX0KKwkJfQorCisJ CS8qIENvbXBhcmUgdGhlIHBvaW50ZXJzIGluIHRoZSBQQUdFX0ZSRUUgbGlzdC4gKi8KKwkJcmVj ID0gcGFnZV9oZWFkZXJfZ2V0X3B0cihwYWdlLCBQQUdFX0ZSRUUpOworCQl0cmVjID0gcGFnZV9o ZWFkZXJfZ2V0X3B0cih0ZW1wX3BhZ2UsIFBBR0VfRlJFRSk7CisKKwkJd2hpbGUgKHJlYyB8fCB0 cmVjKSB7CisJCQlpZiAocGFnZV9vZmZzZXQocmVjKSAhPSBwYWdlX29mZnNldCh0cmVjKSkgewor CQkJCXBhZ2VfemlwX2ZhaWwoKCJwYWdlX3ppcF92YWxpZGF0ZTogIgorCQkJCQkgICAgICAgIlBB R0VfRlJFRSBsaXN0OiAldSE9JXVcbiIsCisJCQkJCSAgICAgICAodW5zaWduZWQpIHBhZ2Vfb2Zm c2V0KHJlYyksCisJCQkJCSAgICAgICAodW5zaWduZWQpIHBhZ2Vfb2Zmc2V0KHRyZWMpKSk7CisJ CQkJdmFsaWQgPSBGQUxTRTsKKwkJCQlnb3RvIGZ1bmNfZXhpdDsKKwkJCX0KKworCQkJcmVjID0g cGFnZV9yZWNfZ2V0X25leHRfbG93KHJlYywgVFJVRSk7CisJCQl0cmVjID0gcGFnZV9yZWNfZ2V0 X25leHRfbG93KHRyZWMsIFRSVUUpOworCQl9CisKKwkJLyogQ29tcGFyZSB0aGUgcmVjb3Jkcy4g Ki8KKwkJaGVhcCA9IE5VTEw7CisJCW9mZnNldHMgPSBOVUxMOworCQlyZWMgPSBwYWdlX3JlY19n ZXRfbmV4dF9sb3coCisJCQlwYWdlICsgUEFHRV9ORVdfSU5GSU1VTSwgVFJVRSk7CisJCXRyZWMg PSBwYWdlX3JlY19nZXRfbmV4dF9sb3coCisJCQl0ZW1wX3BhZ2UgKyBQQUdFX05FV19JTkZJTVVN LCBUUlVFKTsKKworCQlkbyB7CisJCQlpZiAocGFnZV9vZmZzZXQocmVjKSAhPSBwYWdlX29mZnNl dCh0cmVjKSkgeworCQkJCXBhZ2VfemlwX2ZhaWwoKCJwYWdlX3ppcF92YWxpZGF0ZTogIgorCQkJ CQkgICAgICAgInJlY29yZCBsaXN0OiAweCUwMnghPTB4JTAyeFxuIiwKKwkJCQkJICAgICAgICh1 bnNpZ25lZCkgcGFnZV9vZmZzZXQocmVjKSwKKwkJCQkJICAgICAgICh1bnNpZ25lZCkgcGFnZV9v ZmZzZXQodHJlYykpKTsKKwkJCQl2YWxpZCA9IEZBTFNFOworCQkJCWJyZWFrOworCQkJfQorCisJ CQlpZiAoaW5kZXgpIHsKKwkJCQkvKiBDb21wYXJlIHRoZSBkYXRhLiAqLworCQkJCW9mZnNldHMg PSByZWNfZ2V0X29mZnNldHMoCisJCQkJCXJlYywgaW5kZXgsIG9mZnNldHMsCisJCQkJCVVMSU5U X1VOREVGSU5FRCwgJmhlYXApOworCisJCQkJaWYgKG1lbWNtcChyZWMgLSByZWNfb2Zmc19leHRy YV9zaXplKG9mZnNldHMpLAorCQkJCQkgICB0cmVjIC0gcmVjX29mZnNfZXh0cmFfc2l6ZShvZmZz ZXRzKSwKKwkJCQkJICAgcmVjX29mZnNfc2l6ZShvZmZzZXRzKSkpIHsKKwkJCQkJcGFnZV96aXBf ZmFpbCgKKwkJCQkJCSgicGFnZV96aXBfdmFsaWRhdGU6ICIKKwkJCQkJCSAicmVjb3JkIGNvbnRl bnQ6IDB4JTAyeCIsCisJCQkJCQkgKHVuc2lnbmVkKSBwYWdlX29mZnNldChyZWMpKSk7CisJCQkJ CXZhbGlkID0gRkFMU0U7CisJCQkJCWJyZWFrOwogCQkJCX0KIAkJCX0KKworCQkJcmVjID0gcGFn ZV9yZWNfZ2V0X25leHRfbG93KHJlYywgVFJVRSk7CisJCQl0cmVjID0gcGFnZV9yZWNfZ2V0X25l eHRfbG93KHRyZWMsIFRSVUUpOworCQl9IHdoaWxlIChyZWMgfHwgdHJlYyk7CisKKwkJaWYgKGhl YXApIHsKKwkJCW1lbV9oZWFwX2ZyZWUoaGVhcCk7CiAJCX0KLQkJcGFnZV96aXBfZmFpbCgoInBh Z2VfemlwX3ZhbGlkYXRlOiBjb250ZW50XG4iKSk7Ci0JCXZhbGlkID0gRkFMU0U7CiAJfQogCiBm dW5jX2V4aXQ6CkBAIC0zMzM0LDkgKzMzOTgsMTAgQEAgaWJvb2wKIHBhZ2VfemlwX3ZhbGlkYXRl KAogLyo9PT09PT09PT09PT09PSovCiAJY29uc3QgcGFnZV96aXBfZGVzX3QqCXBhZ2VfemlwLC8q ITwgaW46IGNvbXByZXNzZWQgcGFnZSAqLwotCWNvbnN0IHBhZ2VfdCoJCXBhZ2UpCS8qITwgaW46 IHVuY29tcHJlc3NlZCBwYWdlICovCisJY29uc3QgcGFnZV90KgkJcGFnZSwJLyohPCBpbjogdW5j b21wcmVzc2VkIHBhZ2UgKi8KKwljb25zdCBkaWN0X2luZGV4X3QqCWluZGV4KQkvKiE8IGluOiBp bmRleCBvZiB0aGUgcGFnZSwgaWYga25vd24gKi8KIHsKLQlyZXR1cm4ocGFnZV96aXBfdmFsaWRh dGVfbG93KHBhZ2VfemlwLCBwYWdlLAorCXJldHVybihwYWdlX3ppcF92YWxpZGF0ZV9sb3cocGFn ZV96aXAsIHBhZ2UsIGluZGV4LAogCQkJCSAgICAgcmVjdl9yZWNvdmVyeV9pc19vbigpKSk7CiB9 CiAjZW5kaWYgLyogVU5JVl9aSVBfREVCVUcgKi8KQEAgLTM2NjcsNyArMzczMiw3IEBAIHBhZ2Vf emlwX3dyaXRlX3JlYygKIAlwYWdlX3ppcC0+bV9ub25lbXB0eSA9IFRSVUU7CiAKICNpZmRlZiBV TklWX1pJUF9ERUJVRwotCXV0X2EocGFnZV96aXBfdmFsaWRhdGUocGFnZV96aXAsIHBhZ2VfYWxp Z24ocmVjKSkpOworCXV0X2EocGFnZV96aXBfdmFsaWRhdGUocGFnZV96aXAsIHBhZ2VfYWxpZ24o cmVjKSwgaW5kZXgpKTsKICNlbmRpZiAvKiBVTklWX1pJUF9ERUJVRyAqLwogfQogCkBAIC0zNzE0 LDcgKzM3NzksNyBAQCBjb3JydXB0OgogCQl9CiAKICNpZmRlZiBVTklWX1pJUF9ERUJVRwotCQl1 dF9hKHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2VfemlwLCBwYWdlKSk7CisJCXV0X2EocGFnZV96aXBf dmFsaWRhdGUocGFnZV96aXAsIHBhZ2UsIE5VTEwpKTsKICNlbmRpZiAvKiBVTklWX1pJUF9ERUJV RyAqLwogCiAJCW1lbWNweShwYWdlICsgb2Zmc2V0LApAQCAtMzcyMyw3ICszNzg4LDcgQEAgY29y cnVwdDoKIAkJICAgICAgIHB0ciArIDQsIEJUUl9FWFRFUk5fRklFTERfUkVGX1NJWkUpOwogCiAj aWZkZWYgVU5JVl9aSVBfREVCVUcKLQkJdXRfYShwYWdlX3ppcF92YWxpZGF0ZShwYWdlX3ppcCwg cGFnZSkpOworCQl1dF9hKHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2VfemlwLCBwYWdlLCBOVUxMKSk7 CiAjZW5kaWYgLyogVU5JVl9aSVBfREVCVUcgKi8KIAl9CiAKQEAgLTM3OTAsNyArMzg1NSw3IEBA IHBhZ2VfemlwX3dyaXRlX2Jsb2JfcHRyKAogCW1lbWNweShleHRlcm5zLCBmaWVsZCwgQlRSX0VY VEVSTl9GSUVMRF9SRUZfU0laRSk7CiAKICNpZmRlZiBVTklWX1pJUF9ERUJVRwotCXV0X2EocGFn ZV96aXBfdmFsaWRhdGUocGFnZV96aXAsIHBhZ2UpKTsKKwl1dF9hKHBhZ2VfemlwX3ZhbGlkYXRl KHBhZ2VfemlwLCBwYWdlLCBpbmRleCkpOwogI2VuZGlmIC8qIFVOSVZfWklQX0RFQlVHICovCiAK IAlpZiAobXRyKSB7CkBAIC0zODYxLDcgKzM5MjYsNyBAQCBjb3JydXB0OgogCQl9CiAKICNpZmRl ZiBVTklWX1pJUF9ERUJVRwotCQl1dF9hKHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2VfemlwLCBwYWdl KSk7CisJCXV0X2EocGFnZV96aXBfdmFsaWRhdGUocGFnZV96aXAsIHBhZ2UsIE5VTEwpKTsKICNl bmRpZiAvKiBVTklWX1pJUF9ERUJVRyAqLwogCiAJCWZpZWxkID0gcGFnZSArIG9mZnNldDsKQEAg LTM4ODIsNyArMzk0Nyw3IEBAIGNvcnJ1cHQ6CiAJCW1lbWNweShzdG9yYWdlLCBwdHIgKyA0LCBS RUNfTk9ERV9QVFJfU0laRSk7CiAKICNpZmRlZiBVTklWX1pJUF9ERUJVRwotCQl1dF9hKHBhZ2Vf emlwX3ZhbGlkYXRlKHBhZ2VfemlwLCBwYWdlKSk7CisJCXV0X2EocGFnZV96aXBfdmFsaWRhdGUo cGFnZV96aXAsIHBhZ2UsIE5VTEwpKTsKICNlbmRpZiAvKiBVTklWX1pJUF9ERUJVRyAqLwogCX0K IApAQCAtNDExMCw3ICs0MTc1LDcgQEAgcGFnZV96aXBfY2xlYXJfcmVjKAogCX0KIAogI2lmZGVm IFVOSVZfWklQX0RFQlVHCi0JdXRfYShwYWdlX3ppcF92YWxpZGF0ZShwYWdlX3ppcCwgcGFnZSkp OworCXV0X2EocGFnZV96aXBfdmFsaWRhdGUocGFnZV96aXAsIHBhZ2UsIGluZGV4KSk7CiAjZW5k aWYgLyogVU5JVl9aSVBfREVCVUcgKi8KIH0KIApAQCAtNDEzNCw3ICs0MTk5LDcgQEAgcGFnZV96 aXBfcmVjX3NldF9kZWxldGVkKAogCQkqc2xvdCAmPSB+KFBBR0VfWklQX0RJUl9TTE9UX0RFTCA+ PiA4KTsKIAl9CiAjaWZkZWYgVU5JVl9aSVBfREVCVUcKLQl1dF9hKHBhZ2VfemlwX3ZhbGlkYXRl KHBhZ2VfemlwLCBwYWdlX2FsaWduKHJlYykpKTsKKwl1dF9hKHBhZ2VfemlwX3ZhbGlkYXRlKHBh Z2VfemlwLCBwYWdlX2FsaWduKHJlYyksIE5VTEwpKTsKICNlbmRpZiAvKiBVTklWX1pJUF9ERUJV RyAqLwogfQogCkBAIC00NDM2LDE0ICs0NTAxLDE0IEBAIGNvcnJ1cHQ6CiAJCQlnb3RvIGNvcnJ1 cHQ7CiAJCX0KICNpZmRlZiBVTklWX1pJUF9ERUJVRwotCQl1dF9hKHBhZ2VfemlwX3ZhbGlkYXRl KHBhZ2VfemlwLCBwYWdlKSk7CisJCXV0X2EocGFnZV96aXBfdmFsaWRhdGUocGFnZV96aXAsIHBh Z2UsIE5VTEwpKTsKICNlbmRpZiAvKiBVTklWX1pJUF9ERUJVRyAqLwogCiAJCW1lbWNweShwYWdl ICsgb2Zmc2V0LCBwdHIsIGxlbik7CiAJCW1lbWNweShwYWdlX3ppcC0+ZGF0YSArIG9mZnNldCwg cHRyLCBsZW4pOwogCiAjaWZkZWYgVU5JVl9aSVBfREVCVUcKLQkJdXRfYShwYWdlX3ppcF92YWxp ZGF0ZShwYWdlX3ppcCwgcGFnZSkpOworCQl1dF9hKHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2Vfemlw LCBwYWdlLCBOVUxMKSk7CiAjZW5kaWYgLyogVU5JVl9aSVBfREVCVUcgKi8KIAl9CiAKQEAgLTQ1 MjEsNyArNDU4Niw3IEBAIHBhZ2VfemlwX3Jlb3JnYW5pemUoCiAJdXRfYWQobXRyX21lbW9fY29u dGFpbnMobXRyLCBibG9jaywgTVRSX01FTU9fUEFHRV9YX0ZJWCkpOwogCXV0X2FkKHBhZ2VfaXNf Y29tcChwYWdlKSk7CiAJdXRfYWQoIWRpY3RfaW5kZXhfaXNfaWJ1ZihpbmRleCkpOwotCS8qIE5v dGUgdGhhdCBwYWdlX3ppcF92YWxpZGF0ZShwYWdlX3ppcCwgcGFnZSkgbWF5IGZhaWwgaGVyZS4g Ki8KKwkvKiBOb3RlIHRoYXQgcGFnZV96aXBfdmFsaWRhdGUocGFnZV96aXAsIHBhZ2UsIGluZGV4 KSBtYXkgZmFpbCBoZXJlLiAqLwogCVVOSVZfTUVNX0FTU0VSVF9SVyhwYWdlLCBVTklWX1BBR0Vf U0laRSk7CiAJVU5JVl9NRU1fQVNTRVJUX1JXKHBhZ2VfemlwLT5kYXRhLCBwYWdlX3ppcF9nZXRf c2l6ZShwYWdlX3ppcCkpOwogCkBAIC00NjA5LDcgKzQ2NzQsNyBAQCBwYWdlX3ppcF9jb3B5X3Jl Y3MoCiAJRklMX1BBR0VfUFJFViBvciBQQUdFX0xFVkVMLCBjYXVzaW5nIGEgdGVtcG9yYXJ5IG1p bl9yZWNfZmxhZwogCW1pc21hdGNoLiAgQSBzdHJpY3QgcGFnZV96aXBfdmFsaWRhdGUoKSB3aWxs IGJlIGV4ZWN1dGVkIGxhdGVyCiAJZHVyaW5nIHRoZSBCLXRyZWUgb3BlcmF0aW9ucy4gKi8KLQl1 dF9hKHBhZ2VfemlwX3ZhbGlkYXRlX2xvdyhzcmNfemlwLCBzcmMsIFRSVUUpKTsKKwl1dF9hKHBh Z2VfemlwX3ZhbGlkYXRlX2xvdyhzcmNfemlwLCBzcmMsIGluZGV4LCBUUlVFKSk7CiAjZW5kaWYg LyogVU5JVl9aSVBfREVCVUcgKi8KIAl1dF9hKHBhZ2VfemlwX2dldF9zaXplKHBhZ2VfemlwKSA9 PSBwYWdlX3ppcF9nZXRfc2l6ZShzcmNfemlwKSk7CiAJaWYgKFVOSVZfVU5MSUtFTFkoc3JjX3pp cC0+bl9ibG9icykpIHsKQEAgLTQ2NzAsNyArNDczNSw3IEBAIHBhZ2VfemlwX2NvcHlfcmVjcygK IAl9CiAKICNpZmRlZiBVTklWX1pJUF9ERUJVRwotCXV0X2EocGFnZV96aXBfdmFsaWRhdGUocGFn ZV96aXAsIHBhZ2UpKTsKKwl1dF9hKHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2VfemlwLCBwYWdlLCBp bmRleCkpOwogI2VuZGlmIC8qIFVOSVZfWklQX0RFQlVHICovCiAJYnRyX2Jsb2JfZGJnX2FkZChw YWdlLCBpbmRleCwgInBhZ2VfemlwX2NvcHlfcmVjcyIpOwogCgo9PT0gbW9kaWZpZWQgZmlsZSAn c3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MGltcG9ydC5jYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFz ZS9yb3cvcm93MGltcG9ydC5jYwlyZXZpZDpoYXJpbi52YWRvZGFyaWFAb3JhY2xlLmNvbS0yMDEy MDkxNzExMzk0MC1ydG5iZzVjeGszeTBjMWJrCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3Jv dzBpbXBvcnQuY2MJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA5MTcxMTQ1MzQt bXAzNzZlNmVmb3Q1M2JuawpAQCAtMTQ2MCwxMCArMTQ2MCw2IEBAIFBhZ2VDb252ZXJ0ZXI6OnVw ZGF0ZV9pbmRleF9wYWdlKAogCWluZGV4X2lkX3QJaWQ7CiAJYnVmX2ZyYW1lX3QqCXBhZ2UgPSBi bG9jay0+ZnJhbWU7CiAKLSNpZmRlZiBVTklWX1pJUF9ERUJVRwotCXV0X2EoIWlzX2NvbXByZXNz ZWRfdGFibGUoKSB8fCBwYWdlX3ppcF92YWxpZGF0ZShtX3BhZ2VfemlwX3B0ciwgcGFnZSkpOwot I2VuZGlmIC8qIFVOSVZfWklQX0RFQlVHICovCi0KIAlpZiAoKGlkID0gYnRyX3BhZ2VfZ2V0X2lu ZGV4X2lkKHBhZ2UpKSAhPSBtX2luZGV4LT5tX2lkKSB7CiAKIAkJcm93X2luZGV4X3QqCWluZGV4 ID0gZmluZF9pbmRleChpZCk7CkBAIC0xNDgwLDYgKzE0NzYsMTEgQEAgUGFnZUNvbnZlcnRlcjo6 dXBkYXRlX2luZGV4X3BhZ2UoCiAJCW1faW5kZXggPSBpbmRleDsKIAl9CiAKKyNpZmRlZiBVTklW X1pJUF9ERUJVRworCXV0X2EoIWlzX2NvbXByZXNzZWRfdGFibGUoKQorCSAgICAgfHwgcGFnZV96 aXBfdmFsaWRhdGUobV9wYWdlX3ppcF9wdHIsIHBhZ2UsIG1faW5kZXgtPm1fc3J2X2luZGV4KSk7 CisjZW5kaWYgLyogVU5JVl9aSVBfREVCVUcgKi8KKwogCS8qIFRoaXMgaGFzIHRvIGJlIHdyaXR0 ZW4gdG8gdW5jb21wcmVzc2VkIGluZGV4IGhlYWRlci4gU2V0IGl0IHRvCiAJdGhlIGN1cnJlbnQg aW5kZXggaWQuICovCiAJYnRyX3BhZ2Vfc2V0X2luZGV4X2lkKAoKTm8gYnVuZGxlIChyZWFzb246 IHVzZWxlc3MgZm9yIHB1c2ggZW1haWxzKS4=