From: marko.makela Date: August 15 2011 9:44am Subject: bzr push into mysql-5.5 branch (marko.makela:3493 to 3494) List-Archive: http://lists.mysql.com/commits/140617 Message-Id: <201108150944.p7F9iE1M023619@acsmt358.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDM0OTQgTWFya28gTcOka2Vsw6QJMjAxMS0wOC0xNSBbbWVyZ2VdCiAgICAgIE1lcmdlIG15c3Fs LTUuMSB0byBteXNxbC01LjUuIEFkZCBhIHRlc3QgY2FzZS4KCiAgICBhZGRlZDoKICAgICAgbXlz cWwtdGVzdC9zdWl0ZS9pbm5vZGIvci9pbm5vZGJfYnVnNTk3MzMucmVzdWx0CiAgICAgIG15c3Fs LXRlc3Qvc3VpdGUvaW5ub2RiL3QvaW5ub2RiX2J1ZzU5NzMzLnRlc3QKICAgIG1vZGlmaWVkOgog ICAgICBzdG9yYWdlL2lubm9iYXNlL2J0ci9idHIwYnRyLmMKICAgICAgc3RvcmFnZS9pbm5vYmFz ZS9idHIvYnRyMGN1ci5jCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvYnRyL2J0cjBwY3VyLmMKICAg ICAgc3RvcmFnZS9pbm5vYmFzZS9idHIvYnRyMHNlYS5jCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2Uv ZGljdC9kaWN0MGNyZWEuYwogICAgICBzdG9yYWdlL2lubm9iYXNlL2RpY3QvZGljdDBkaWN0LmMK ICAgICAgc3RvcmFnZS9pbm5vYmFzZS9pYnVmL2lidWYwaWJ1Zi5jCiAgICAgIHN0b3JhZ2UvaW5u b2Jhc2UvaW5jbHVkZS9idHIwYnRyLmgKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2J0 cjBidHIuaWMKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3N5bmMwc3luYy5oCiAgICAg IHN0b3JhZ2UvaW5ub2Jhc2Uvc3luYy9zeW5jMHN5bmMuYwogMzQ5MyBHZW9yZ2kgS29kaW5vdgky MDExLTA4LTEyCiAgICAgIEJ1ZyAjMTI3Nzc2NDk6ICJPUyBUSFJFQUQgSUQiIFJFTU9WRUQgCiAg ICAgIAogICAgICBQdXNoZWQgQ2FsdmluJ3MgcGF0Y2guCgogICAgbW9kaWZpZWQ6CiAgICAgIHNx bC9zcWxfY2xhc3MuY2MKPT09IGFkZGVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3Iv aW5ub2RiX2J1ZzU5NzMzLnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvci9p bm5vZGJfYnVnNTk3MzMucmVzdWx0CTE5NzAtMDEtMDEgMDA6MDA6MDAgKzAwMDAKKysrIGIvbXlz cWwtdGVzdC9zdWl0ZS9pbm5vZGIvci9pbm5vZGJfYnVnNTk3MzMucmVzdWx0CXJldmlkOm1hcmtv Lm1ha2VsYUBvcmFjbGUuY29tLTIwMTEwODE1MDkxODM0LWoyN2F0cnMxa3hpamkwMXUKQEAgLTAs MCArMSwxOCBAQAorQ1JFQVRFIFRBQkxFIGJ1ZzU5NzMzKGEgSU5UIEFVVE9fSU5DUkVNRU5UIFBS SU1BUlkgS0VZLGIgQ0hBUigxKSlFTkdJTkU9SW5ub0RCOworSU5TRVJUIElOVE8gYnVnNTk3MzMg VkFMVUVTKDAsJ3gnKTsKK0lOU0VSVCBJTlRPIGJ1ZzU5NzMzIFNFTEVDVCAwLGIgRlJPTSBidWc1 OTczMzsKK0lOU0VSVCBJTlRPIGJ1ZzU5NzMzIFNFTEVDVCAwLGIgRlJPTSBidWc1OTczMzsKK0lO U0VSVCBJTlRPIGJ1ZzU5NzMzIFNFTEVDVCAwLGIgRlJPTSBidWc1OTczMzsKK0lOU0VSVCBJTlRP IGJ1ZzU5NzMzIFNFTEVDVCAwLGIgRlJPTSBidWc1OTczMzsKK0lOU0VSVCBJTlRPIGJ1ZzU5NzMz IFNFTEVDVCAwLGIgRlJPTSBidWc1OTczMzsKK0lOU0VSVCBJTlRPIGJ1ZzU5NzMzIFNFTEVDVCAw LGIgRlJPTSBidWc1OTczMzsKK0lOU0VSVCBJTlRPIGJ1ZzU5NzMzIFNFTEVDVCAwLGIgRlJPTSBi dWc1OTczMzsKK0lOU0VSVCBJTlRPIGJ1ZzU5NzMzIFNFTEVDVCAwLGIgRlJPTSBidWc1OTczMzsK K0lOU0VSVCBJTlRPIGJ1ZzU5NzMzIFNFTEVDVCAwLGIgRlJPTSBidWc1OTczMzsKK0lOU0VSVCBJ TlRPIGJ1ZzU5NzMzIFNFTEVDVCAwLGIgRlJPTSBidWc1OTczMzsKK0lOU0VSVCBJTlRPIGJ1ZzU5 NzMzIFNFTEVDVCAwLGIgRlJPTSBidWc1OTczMzsKK0NSRUFURSBJTkRFWCBiIE9OIGJ1ZzU5NzMz IChiKTsKK0RFTEVURSBGUk9NIGJ1ZzU5NzMzIFdIRVJFIChhJTEwMCk9MDsKK0RST1AgSU5ERVgg YiBPTiBidWc1OTczMzsKK0NSRUFURSBJTkRFWCBiIE9OIGJ1ZzU5NzMzIChiKTsKK0RST1AgVEFC TEUgYnVnNTk3MzM7Cgo9PT0gYWRkZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvdC9p bm5vZGJfYnVnNTk3MzMudGVzdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvdC9pbm5v ZGJfYnVnNTk3MzMudGVzdAkxOTcwLTAxLTAxIDAwOjAwOjAwICswMDAwCisrKyBiL215c3FsLXRl c3Qvc3VpdGUvaW5ub2RiL3QvaW5ub2RiX2J1ZzU5NzMzLnRlc3QJcmV2aWQ6bWFya28ubWFrZWxh QG9yYWNsZS5jb20tMjAxMTA4MTUwOTE4MzQtajI3YXRyczFreGlqaTAxdQpAQCAtMCwwICsxLDUz IEBACisjCisjIEJ1ZyAjNTk3MzMgUG9zc2libGUgZGVhZGxvY2sgd2hlbiBidWZmZXJlZCBjaGFu Z2VzIGFyZSB0byBiZSBkaXNjYXJkZWQKKyMgaW4gYnVmX3BhZ2VfY3JlYXRlCisjCistLSBzb3Vy Y2UgaW5jbHVkZS9oYXZlX2lubm9kYi5pbmMKKworLS0gZGlzYWJsZV9xdWVyeV9sb2cKKyMgVGhl IGZsYWcgaW5ub2RiX2NoYW5nZV9idWZmZXJpbmdfZGVidWcgaXMgb25seSBhdmFpbGFibGUgaW4g ZGVidWcgYnVpbGRzLgorIyBJdCBpbnN0cnVjdHMgSW5ub0RCIHRvIHRyeSB0byBldmljdCBwYWdl cyBmcm9tIHRoZSBidWZmZXIgcG9vbCB3aGVuCisjIGNoYW5nZSBidWZmZXJpbmcgaXMgcG9zc2li bGUsIHNvIHRoYXQgdGhlIGNoYW5nZSBidWZmZXIgd2lsbCBiZSB1c2VkCisjIHdoZW5ldmVyIHBv c3NpYmxlLgorLS0gZXJyb3IgMCxFUl9VTktOT1dOX1NZU1RFTV9WQVJJQUJMRQorU0VUIEBpbm5v ZGJfY2hhbmdlX2J1ZmZlcmluZ19kZWJ1Z19vcmlnID0gQEBpbm5vZGJfY2hhbmdlX2J1ZmZlcmlu Z19kZWJ1ZzsKKy0tIGVycm9yIDAsRVJfVU5LTk9XTl9TWVNURU1fVkFSSUFCTEUKK1NFVCBHTE9C QUwgaW5ub2RiX2NoYW5nZV9idWZmZXJpbmdfZGVidWcgPSAxOworLS0gZW5hYmxlX3F1ZXJ5X2xv ZworCitDUkVBVEUgVEFCTEUgYnVnNTk3MzMoYSBJTlQgQVVUT19JTkNSRU1FTlQgUFJJTUFSWSBL RVksYiBDSEFSKDEpKUVOR0lORT1Jbm5vREI7CisKKyMgQ3JlYXRlIGVub3VnaCByb3dzIGZvciB0 aGUgdGFibGUsIHNvIHRoYXQgdGhlIGluc2VydCBidWZmZXIgd2lsbCBiZQorIyB1c2VkLiBUaGVy ZSBtdXN0IGJlIG11bHRpcGxlIGluZGV4IHBhZ2VzLCBiZWNhdXNlIGNoYW5nZXMgdG8gdGhlCisj IHJvb3QgcGFnZSBhcmUgbmV2ZXIgYnVmZmVyZWQuCisKK0lOU0VSVCBJTlRPIGJ1ZzU5NzMzIFZB TFVFUygwLCd4Jyk7CitJTlNFUlQgSU5UTyBidWc1OTczMyBTRUxFQ1QgMCxiIEZST00gYnVnNTk3 MzM7CitJTlNFUlQgSU5UTyBidWc1OTczMyBTRUxFQ1QgMCxiIEZST00gYnVnNTk3MzM7CitJTlNF UlQgSU5UTyBidWc1OTczMyBTRUxFQ1QgMCxiIEZST00gYnVnNTk3MzM7CitJTlNFUlQgSU5UTyBi dWc1OTczMyBTRUxFQ1QgMCxiIEZST00gYnVnNTk3MzM7CitJTlNFUlQgSU5UTyBidWc1OTczMyBT RUxFQ1QgMCxiIEZST00gYnVnNTk3MzM7CitJTlNFUlQgSU5UTyBidWc1OTczMyBTRUxFQ1QgMCxi IEZST00gYnVnNTk3MzM7CitJTlNFUlQgSU5UTyBidWc1OTczMyBTRUxFQ1QgMCxiIEZST00gYnVn NTk3MzM7CitJTlNFUlQgSU5UTyBidWc1OTczMyBTRUxFQ1QgMCxiIEZST00gYnVnNTk3MzM7CitJ TlNFUlQgSU5UTyBidWc1OTczMyBTRUxFQ1QgMCxiIEZST00gYnVnNTk3MzM7CitJTlNFUlQgSU5U TyBidWc1OTczMyBTRUxFQ1QgMCxiIEZST00gYnVnNTk3MzM7CitJTlNFUlQgSU5UTyBidWc1OTcz MyBTRUxFQ1QgMCxiIEZST00gYnVnNTk3MzM7CisKKyMgQ3JlYXRlIHRoZSBzZWNvbmRhcnkgaW5k ZXggZm9yIHdoaWNoIGNoYW5nZXMgd2lsbCBiZSBidWZmZXJlZC4KK0NSRUFURSBJTkRFWCBiIE9O IGJ1ZzU5NzMzIChiKTsKKworIyBUaGlzIHNob3VsZCBiZSBidWZmZXJlZCwgaWYgaW5ub2RiX2No YW5nZV9idWZmZXJpbmdfZGVidWcgPSAxIGlzIGluIGVmZmVjdC4KK0RFTEVURSBGUk9NIGJ1ZzU5 NzMzIFdIRVJFIChhJTEwMCk9MDsKKworIyBEcm9wIHRoZSBpbmRleCBpbiBvcmRlciB0byBnZXQg ZnJlZSBwYWdlcyB3aXRoIG9ycGhhbmVkIGJ1ZmZlcmVkIGNoYW5nZXMuCitEUk9QIElOREVYIGIg T04gYnVnNTk3MzM7CisKKyMgQ3JlYXRlIHRoZSBpbmRleCBhbmQgYXR0ZW1wdCB0byByZXVzZSBw YWdlcyBmb3Igd2hpY2ggYnVmZmVyZWQgY2hhbmdlcyBleGlzdC4KK0NSRUFURSBJTkRFWCBiIE9O IGJ1ZzU5NzMzIChiKTsKKworRFJPUCBUQUJMRSBidWc1OTczMzsKKworLS0gZGlzYWJsZV9xdWVy eV9sb2cKKy0tIGVycm9yIDAsIEVSX1VOS05PV05fU1lTVEVNX1ZBUklBQkxFCitTRVQgR0xPQkFM IGlubm9kYl9jaGFuZ2VfYnVmZmVyaW5nX2RlYnVnID0gQGlubm9kYl9jaGFuZ2VfYnVmZmVyaW5n X2RlYnVnX29yaWc7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9idHIvYnRy MGJ0ci5jJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2J0ci9idHIwYnRyLmMJcmV2aWQ6Z2Vvcmdp LmtvZGlub3ZAb3JhY2xlLmNvbS0yMDExMDgxMjEzNTAwNC0zejN5ank3a3JmMzc0Y2x1CisrKyBi L3N0b3JhZ2UvaW5ub2Jhc2UvYnRyL2J0cjBidHIuYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xl LmNvbS0yMDExMDgxNTA5MTgzNC1qMjdhdHJzMWt4aWppMDF1CkBAIC02OTAsNyArNjkwLDggQEAg YnRyX3Jvb3RfYmxvY2tfZ2V0KAogCXppcF9zaXplID0gZGljdF90YWJsZV96aXBfc2l6ZShpbmRl eC0+dGFibGUpOwogCXJvb3RfcGFnZV9ubyA9IGRpY3RfaW5kZXhfZ2V0X3BhZ2UoaW5kZXgpOwog Ci0JYmxvY2sgPSBidHJfYmxvY2tfZ2V0KHNwYWNlLCB6aXBfc2l6ZSwgcm9vdF9wYWdlX25vLCBS V19YX0xBVENILCBtdHIpOworCWJsb2NrID0gYnRyX2Jsb2NrX2dldChzcGFjZSwgemlwX3NpemUs IHJvb3RfcGFnZV9ubywgUldfWF9MQVRDSCwKKwkJCSAgICAgIGluZGV4LCBtdHIpOwogCXV0X2Eo KGlib29sKSEhcGFnZV9pc19jb21wKGJ1Zl9ibG9ja19nZXRfZnJhbWUoYmxvY2spKQogCSAgICAg PT0gZGljdF90YWJsZV9pc19jb21wKGluZGV4LT50YWJsZSkpOwogI2lmZGVmIFVOSVZfQlRSX0RF QlVHCkBAIC04OTEsNyArODkyLDcgQEAgYnRyX3BhZ2VfYWxsb2NfZm9yX2lidWYoCiAJCQkJIGRp Y3RfdGFibGVfemlwX3NpemUoaW5kZXgtPnRhYmxlKSwKIAkJCQkgbm9kZV9hZGRyLnBhZ2UsIFJX X1hfTEFUQ0gsIG10cik7CiAJbmV3X3BhZ2UgPSBidWZfYmxvY2tfZ2V0X2ZyYW1lKG5ld19ibG9j ayk7Ci0JYnVmX2Jsb2NrX2RiZ19hZGRfbGV2ZWwobmV3X2Jsb2NrLCBTWU5DX1RSRUVfTk9ERV9O RVcpOworCWJ1Zl9ibG9ja19kYmdfYWRkX2xldmVsKG5ld19ibG9jaywgU1lOQ19JQlVGX1RSRUVf Tk9ERV9ORVcpOwogCiAJZmxzdF9yZW1vdmUocm9vdCArIFBBR0VfSEVBREVSICsgUEFHRV9CVFJf SUJVRl9GUkVFX0xJU1QsCiAJCSAgICBuZXdfcGFnZSArIFBBR0VfSEVBREVSICsgUEFHRV9CVFJf SUJVRl9GUkVFX0xJU1RfTk9ERSwKQEAgLTExMzksNyArMTE0MCw3IEBAIGJ0cl9ub2RlX3B0cl9n ZXRfY2hpbGQoCiAJcGFnZV9ubyA9IGJ0cl9ub2RlX3B0cl9nZXRfY2hpbGRfcGFnZV9ubyhub2Rl X3B0ciwgb2Zmc2V0cyk7CiAKIAlyZXR1cm4oYnRyX2Jsb2NrX2dldChzcGFjZSwgZGljdF90YWJs ZV96aXBfc2l6ZShpbmRleC0+dGFibGUpLAotCQkJICAgICBwYWdlX25vLCBSV19YX0xBVENILCBt dHIpKTsKKwkJCSAgICAgcGFnZV9ubywgUldfWF9MQVRDSCwgaW5kZXgsIG10cikpOwogfQogCiAv KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqLy8qKgpAQCAtMTMxMiw3ICsxMzEzLDggQEAgYnRyX2NyZWF0ZSgKIAkJCXNwYWNlLCAwLAog CQkJSUJVRl9IRUFERVIgKyBJQlVGX1RSRUVfU0VHX0hFQURFUiwgbXRyKTsKIAotCQlidWZfYmxv Y2tfZGJnX2FkZF9sZXZlbChpYnVmX2hkcl9ibG9jaywgU1lOQ19UUkVFX05PREVfTkVXKTsKKwkJ YnVmX2Jsb2NrX2RiZ19hZGRfbGV2ZWwoCisJCQlpYnVmX2hkcl9ibG9jaywgU1lOQ19JQlVGX1RS RUVfTk9ERV9ORVcpOwogCiAJCXV0X2FkKGJ1Zl9ibG9ja19nZXRfcGFnZV9ubyhpYnVmX2hkcl9i bG9jaykKIAkJICAgICAgPT0gSUJVRl9IRUFERVJfUEFHRV9OTyk7CkBAIC0xMzUwLDEwICsxMzUy LDkgQEAgYnRyX2NyZWF0ZSgKIAlwYWdlX25vID0gYnVmX2Jsb2NrX2dldF9wYWdlX25vKGJsb2Nr KTsKIAlmcmFtZSA9IGJ1Zl9ibG9ja19nZXRfZnJhbWUoYmxvY2spOwogCi0JYnVmX2Jsb2NrX2Ri Z19hZGRfbGV2ZWwoYmxvY2ssIFNZTkNfVFJFRV9OT0RFX05FVyk7Ci0KIAlpZiAodHlwZSAmIERJ Q1RfSUJVRikgewogCQkvKiBJdCBpcyBhbiBpbnNlcnQgYnVmZmVyIHRyZWU6IGluaXRpYWxpemUg dGhlIGZyZWUgbGlzdCAqLworCQlidWZfYmxvY2tfZGJnX2FkZF9sZXZlbChibG9jaywgU1lOQ19J QlVGX1RSRUVfTk9ERV9ORVcpOwogCiAJCXV0X2FkKHBhZ2Vfbm8gPT0gSUJVRl9UUkVFX1JPT1Rf UEFHRV9OTyk7CiAKQEAgLTEzNjEsNiArMTM2Miw4IEBAIGJ0cl9jcmVhdGUoCiAJfSBlbHNlIHsK IAkJLyogSXQgaXMgYSBub24taWJ1ZiB0cmVlOiBjcmVhdGUgYSBmaWxlIHNlZ21lbnQgZm9yIGxl YWYKIAkJcGFnZXMgKi8KKwkJYnVmX2Jsb2NrX2RiZ19hZGRfbGV2ZWwoYmxvY2ssIFNZTkNfVFJF RV9OT0RFX05FVyk7CisKIAkJaWYgKCFmc2VnX2NyZWF0ZShzcGFjZSwgcGFnZV9ubywKIAkJCQkg UEFHRV9IRUFERVIgKyBQQUdFX0JUUl9TRUdfTEVBRiwgbXRyKSkgewogCQkJLyogTm90IGVub3Vn aCBzcGFjZSBmb3IgbmV3IHNlZ21lbnQsIGZyZWUgcm9vdApAQCAtMTQzMiw3ICsxNDM1LDggQEAg YnRyX2ZyZWVfYnV0X25vdF9yb290KAogbGVhZl9sb29wOgogCW10cl9zdGFydCgmbXRyKTsKIAot CXJvb3QgPSBidHJfcGFnZV9nZXQoc3BhY2UsIHppcF9zaXplLCByb290X3BhZ2Vfbm8sIFJXX1hf TEFUQ0gsICZtdHIpOworCXJvb3QgPSBidHJfcGFnZV9nZXQoc3BhY2UsIHppcF9zaXplLCByb290 X3BhZ2Vfbm8sIFJXX1hfTEFUQ0gsCisJCQkgICAgTlVMTCwgJm10cik7CiAjaWZkZWYgVU5JVl9C VFJfREVCVUcKIAl1dF9hKGJ0cl9yb290X2ZzZWdfdmFsaWRhdGUoRklMX1BBR0VfREFUQSArIFBB R0VfQlRSX1NFR19MRUFGCiAJCQkJICAgICsgcm9vdCwgc3BhY2UpKTsKQEAgLTE0NTQsNyArMTQ1 OCw4IEBAIGxlYWZfbG9vcDoKIHRvcF9sb29wOgogCW10cl9zdGFydCgmbXRyKTsKIAotCXJvb3Qg PSBidHJfcGFnZV9nZXQoc3BhY2UsIHppcF9zaXplLCByb290X3BhZ2Vfbm8sIFJXX1hfTEFUQ0gs ICZtdHIpOworCXJvb3QgPSBidHJfcGFnZV9nZXQoc3BhY2UsIHppcF9zaXplLCByb290X3BhZ2Vf bm8sIFJXX1hfTEFUQ0gsCisJCQkgICAgTlVMTCwgJm10cik7CiAjaWZkZWYgVU5JVl9CVFJfREVC VUcKIAl1dF9hKGJ0cl9yb290X2ZzZWdfdmFsaWRhdGUoRklMX1BBR0VfREFUQSArIFBBR0VfQlRS X1NFR19UT1AKIAkJCQkgICAgKyByb290LCBzcGFjZSkpOwpAQCAtMTQ4MCwxMyArMTQ4NSwxMyBA QCBidHJfZnJlZV9yb290KAogCXVsaW50CXppcF9zaXplLAkvKiE8IGluOiBjb21wcmVzc2VkIHBh Z2Ugc2l6ZSBpbiBieXRlcwogCQkJCW9yIDAgZm9yIHVuY29tcHJlc3NlZCBwYWdlcyAqLwogCXVs aW50CXJvb3RfcGFnZV9ubywJLyohPCBpbjogcm9vdCBwYWdlIG51bWJlciAqLwotCW10cl90Kglt dHIpCQkvKiE8IGluOiBhIG1pbmktdHJhbnNhY3Rpb24gd2hpY2ggaGFzIGFscmVhZHkKLQkJCQli ZWVuIHN0YXJ0ZWQgKi8KKwltdHJfdCoJbXRyKQkJLyohPCBpbi9vdXQ6IG1pbmktdHJhbnNhY3Rp b24gKi8KIHsKIAlidWZfYmxvY2tfdCoJYmxvY2s7CiAJZnNlZ19oZWFkZXJfdCoJaGVhZGVyOwog Ci0JYmxvY2sgPSBidHJfYmxvY2tfZ2V0KHNwYWNlLCB6aXBfc2l6ZSwgcm9vdF9wYWdlX25vLCBS V19YX0xBVENILCBtdHIpOworCWJsb2NrID0gYnRyX2Jsb2NrX2dldChzcGFjZSwgemlwX3NpemUs IHJvb3RfcGFnZV9ubywgUldfWF9MQVRDSCwKKwkJCSAgICAgIE5VTEwsIG10cik7CiAKIAlidHJf c2VhcmNoX2Ryb3BfcGFnZV9oYXNoX2luZGV4KGJsb2NrKTsKIApAQCAtMjM2NSw5ICsyMzcwLDgg QEAgYnRyX2F0dGFjaF9oYWxmX3BhZ2VzKAogCS8qIFVwZGF0ZSBwYWdlIGxpbmtzIG9mIHRoZSBs ZXZlbCAqLwogCiAJaWYgKHByZXZfcGFnZV9ubyAhPSBGSUxfTlVMTCkgewotCQlidWZfYmxvY2tf dCoJcHJldl9ibG9jayA9IGJ0cl9ibG9ja19nZXQoc3BhY2UsIHppcF9zaXplLAotCQkJCQkJCSAg IHByZXZfcGFnZV9ubywKLQkJCQkJCQkgICBSV19YX0xBVENILCBtdHIpOworCQlidWZfYmxvY2tf dCoJcHJldl9ibG9jayA9IGJ0cl9ibG9ja19nZXQoCisJCQlzcGFjZSwgemlwX3NpemUsIHByZXZf cGFnZV9ubywgUldfWF9MQVRDSCwgaW5kZXgsIG10cik7CiAjaWZkZWYgVU5JVl9CVFJfREVCVUcK IAkJdXRfYShwYWdlX2lzX2NvbXAocHJldl9ibG9jay0+ZnJhbWUpID09IHBhZ2VfaXNfY29tcChw YWdlKSk7CiAJCXV0X2EoYnRyX3BhZ2VfZ2V0X25leHQocHJldl9ibG9jay0+ZnJhbWUsIG10cikK QEAgLTIzODAsOSArMjM4NCw4IEBAIGJ0cl9hdHRhY2hfaGFsZl9wYWdlcygKIAl9CiAKIAlpZiAo bmV4dF9wYWdlX25vICE9IEZJTF9OVUxMKSB7Ci0JCWJ1Zl9ibG9ja190KgluZXh0X2Jsb2NrID0g YnRyX2Jsb2NrX2dldChzcGFjZSwgemlwX3NpemUsCi0JCQkJCQkJICAgbmV4dF9wYWdlX25vLAot CQkJCQkJCSAgIFJXX1hfTEFUQ0gsIG10cik7CisJCWJ1Zl9ibG9ja190KgluZXh0X2Jsb2NrID0g YnRyX2Jsb2NrX2dldCgKKwkJCXNwYWNlLCB6aXBfc2l6ZSwgbmV4dF9wYWdlX25vLCBSV19YX0xB VENILCBpbmRleCwgbXRyKTsKICNpZmRlZiBVTklWX0JUUl9ERUJVRwogCQl1dF9hKHBhZ2VfaXNf Y29tcChuZXh0X2Jsb2NrLT5mcmFtZSkgPT0gcGFnZV9pc19jb21wKHBhZ2UpKTsKIAkJdXRfYShi dHJfcGFnZV9nZXRfcHJldihuZXh0X2Jsb2NrLT5mcmFtZSwgbXRyKQpAQCAtMjgwNCwxNyArMjgw Nyw0MiBAQCBmdW5jX2V4aXQ6CiAJcmV0dXJuKHJlYyk7CiB9CiAKKyNpZmRlZiBVTklWX1NZTkNf REVCVUcKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqLy8qKgorUmVtb3ZlcyBhIHBhZ2UgZnJvbSB0aGUgbGV2ZWwgbGlzdCBvZiBw YWdlcy4KK0BwYXJhbSBzcGFjZQlpbjogc3BhY2Ugd2hlcmUgcmVtb3ZlZAorQHBhcmFtIHppcF9z aXplCWluOiBjb21wcmVzc2VkIHBhZ2Ugc2l6ZSBpbiBieXRlcywgb3IgMCBmb3IgdW5jb21wcmVz c2VkCitAcGFyYW0gcGFnZQlpbi9vdXQ6IHBhZ2UgdG8gcmVtb3ZlCitAcGFyYW0gaW5kZXgJaW46 IGluZGV4IHRyZWUKK0BwYXJhbSBtdHIJaW4vb3V0OiBtaW5pLXRyYW5zYWN0aW9uICovCisjIGRl ZmluZSBidHJfbGV2ZWxfbGlzdF9yZW1vdmUoc3BhY2UsemlwX3NpemUscGFnZSxpbmRleCxtdHIp CQlcCisJYnRyX2xldmVsX2xpc3RfcmVtb3ZlX2Z1bmMoc3BhY2UsemlwX3NpemUscGFnZSxpbmRl eCxtdHIpCisjZWxzZSAvKiBVTklWX1NZTkNfREVCVUcgKi8KKy8qKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgorUmVtb3ZlcyBh IHBhZ2UgZnJvbSB0aGUgbGV2ZWwgbGlzdCBvZiBwYWdlcy4KK0BwYXJhbSBzcGFjZQlpbjogc3Bh Y2Ugd2hlcmUgcmVtb3ZlZAorQHBhcmFtIHppcF9zaXplCWluOiBjb21wcmVzc2VkIHBhZ2Ugc2l6 ZSBpbiBieXRlcywgb3IgMCBmb3IgdW5jb21wcmVzc2VkCitAcGFyYW0gcGFnZQlpbi9vdXQ6IHBh Z2UgdG8gcmVtb3ZlCitAcGFyYW0gaW5kZXgJaW46IGluZGV4IHRyZWUKK0BwYXJhbSBtdHIJaW4v b3V0OiBtaW5pLXRyYW5zYWN0aW9uICovCisjIGRlZmluZSBidHJfbGV2ZWxfbGlzdF9yZW1vdmUo c3BhY2UsemlwX3NpemUscGFnZSxpbmRleCxtdHIpCQlcCisJYnRyX2xldmVsX2xpc3RfcmVtb3Zl X2Z1bmMoc3BhY2UsemlwX3NpemUscGFnZSxtdHIpCisjZW5kaWYgLyogVU5JVl9TWU5DX0RFQlVH ICovCisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqLy8qKgogUmVtb3ZlcyBhIHBhZ2UgZnJvbSB0aGUgbGV2ZWwgbGlzdCBvZiBw YWdlcy4gKi8KLXN0YXRpYworc3RhdGljIF9fYXR0cmlidXRlX18oKG5vbm51bGwpKQogdm9pZAot YnRyX2xldmVsX2xpc3RfcmVtb3ZlKAotLyo9PT09PT09PT09PT09PT09PT0qLwotCXVsaW50CQlz cGFjZSwJLyohPCBpbjogc3BhY2Ugd2hlcmUgcmVtb3ZlZCAqLwotCXVsaW50CQl6aXBfc2l6ZSwv KiE8IGluOiBjb21wcmVzc2VkIHBhZ2Ugc2l6ZSBpbiBieXRlcwotCQkJCW9yIDAgZm9yIHVuY29t cHJlc3NlZCBwYWdlcyAqLwotCXBhZ2VfdCoJCXBhZ2UsCS8qITwgaW46IHBhZ2UgdG8gcmVtb3Zl ICovCi0JbXRyX3QqCQltdHIpCS8qITwgaW46IG10ciAqLworYnRyX2xldmVsX2xpc3RfcmVtb3Zl X2Z1bmMoCisvKj09PT09PT09PT09PT09PT09PT09PT09Ki8KKwl1bGludAkJCXNwYWNlLAkvKiE8 IGluOiBzcGFjZSB3aGVyZSByZW1vdmVkICovCisJdWxpbnQJCQl6aXBfc2l6ZSwvKiE8IGluOiBj b21wcmVzc2VkIHBhZ2Ugc2l6ZSBpbiBieXRlcworCQkJCQlvciAwIGZvciB1bmNvbXByZXNzZWQg cGFnZXMgKi8KKwlwYWdlX3QqCQkJcGFnZSwJLyohPCBpbi9vdXQ6IHBhZ2UgdG8gcmVtb3ZlICov CisjaWZkZWYgVU5JVl9TWU5DX0RFQlVHCisJY29uc3QgZGljdF9pbmRleF90KglpbmRleCwJLyoh PCBpbjogaW5kZXggdHJlZSAqLworI2VuZGlmIC8qIFVOSVZfU1lOQ19ERUJVRyAqLworCW10cl90 KgkJCW10cikJLyohPCBpbi9vdXQ6IG1pbmktdHJhbnNhY3Rpb24gKi8KIHsKIAl1bGludAlwcmV2 X3BhZ2Vfbm87CiAJdWxpbnQJbmV4dF9wYWdlX25vOwpAQCAtMjgzMiw3ICsyODYwLDcgQEAgYnRy X2xldmVsX2xpc3RfcmVtb3ZlKAogCWlmIChwcmV2X3BhZ2Vfbm8gIT0gRklMX05VTEwpIHsKIAkJ YnVmX2Jsb2NrX3QqCXByZXZfYmxvY2sKIAkJCT0gYnRyX2Jsb2NrX2dldChzcGFjZSwgemlwX3Np emUsIHByZXZfcGFnZV9ubywKLQkJCQkJUldfWF9MQVRDSCwgbXRyKTsKKwkJCQkJUldfWF9MQVRD SCwgaW5kZXgsIG10cik7CiAJCXBhZ2VfdCoJCXByZXZfcGFnZQogCQkJPSBidWZfYmxvY2tfZ2V0 X2ZyYW1lKHByZXZfYmxvY2spOwogI2lmZGVmIFVOSVZfQlRSX0RFQlVHCkBAIC0yODQ5LDcgKzI4 NzcsNyBAQCBidHJfbGV2ZWxfbGlzdF9yZW1vdmUoCiAJaWYgKG5leHRfcGFnZV9ubyAhPSBGSUxf TlVMTCkgewogCQlidWZfYmxvY2tfdCoJbmV4dF9ibG9jawogCQkJPSBidHJfYmxvY2tfZ2V0KHNw YWNlLCB6aXBfc2l6ZSwgbmV4dF9wYWdlX25vLAotCQkJCQlSV19YX0xBVENILCBtdHIpOworCQkJ CQlSV19YX0xBVENILCBpbmRleCwgbXRyKTsKIAkJcGFnZV90KgkJbmV4dF9wYWdlCiAJCQk9IGJ1 Zl9ibG9ja19nZXRfZnJhbWUobmV4dF9ibG9jayk7CiAjaWZkZWYgVU5JVl9CVFJfREVCVUcKQEAg LTMxNzUsNyArMzIwMyw3IEBAIGJ0cl9jb21wcmVzcygKIAlpZiAoaXNfbGVmdCkgewogCiAJCW1l cmdlX2Jsb2NrID0gYnRyX2Jsb2NrX2dldChzcGFjZSwgemlwX3NpemUsIGxlZnRfcGFnZV9ubywK LQkJCQkJICAgIFJXX1hfTEFUQ0gsIG10cik7CisJCQkJCSAgICBSV19YX0xBVENILCBpbmRleCwg bXRyKTsKIAkJbWVyZ2VfcGFnZSA9IGJ1Zl9ibG9ja19nZXRfZnJhbWUobWVyZ2VfYmxvY2spOwog I2lmZGVmIFVOSVZfQlRSX0RFQlVHCiAJCXV0X2EoYnRyX3BhZ2VfZ2V0X25leHQobWVyZ2VfcGFn ZSwgbXRyKQpAQCAtMzE4NCw3ICszMjEyLDcgQEAgYnRyX2NvbXByZXNzKAogCX0gZWxzZSBpZiAo cmlnaHRfcGFnZV9ubyAhPSBGSUxfTlVMTCkgewogCiAJCW1lcmdlX2Jsb2NrID0gYnRyX2Jsb2Nr X2dldChzcGFjZSwgemlwX3NpemUsIHJpZ2h0X3BhZ2Vfbm8sCi0JCQkJCSAgICBSV19YX0xBVENI LCBtdHIpOworCQkJCQkgICAgUldfWF9MQVRDSCwgaW5kZXgsIG10cik7CiAJCW1lcmdlX3BhZ2Ug PSBidWZfYmxvY2tfZ2V0X2ZyYW1lKG1lcmdlX2Jsb2NrKTsKICNpZmRlZiBVTklWX0JUUl9ERUJV RwogCQl1dF9hKGJ0cl9wYWdlX2dldF9wcmV2KG1lcmdlX3BhZ2UsIG10cikKQEAgLTMyNzMsNyAr MzMwMSw3IEBAIGVycl9leGl0OgogCQlidHJfc2VhcmNoX2Ryb3BfcGFnZV9oYXNoX2luZGV4KGJs b2NrKTsKIAogCQkvKiBSZW1vdmUgdGhlIHBhZ2UgZnJvbSB0aGUgbGV2ZWwgbGlzdCAqLwotCQli dHJfbGV2ZWxfbGlzdF9yZW1vdmUoc3BhY2UsIHppcF9zaXplLCBwYWdlLCBtdHIpOworCQlidHJf bGV2ZWxfbGlzdF9yZW1vdmUoc3BhY2UsIHppcF9zaXplLCBwYWdlLCBpbmRleCwgbXRyKTsKIAog CQlidHJfbm9kZV9wdHJfZGVsZXRlKGluZGV4LCBibG9jaywgbXRyKTsKIAkJbG9ja191cGRhdGVf bWVyZ2VfbGVmdChtZXJnZV9ibG9jaywgb3JpZ19wcmVkLCBibG9jayk7CkBAIC0zMzMwLDcgKzMz NTgsNyBAQCBlcnJfZXhpdDoKICNlbmRpZiAvKiBVTklWX0JUUl9ERUJVRyAqLwogCiAJCS8qIFJl bW92ZSB0aGUgcGFnZSBmcm9tIHRoZSBsZXZlbCBsaXN0ICovCi0JCWJ0cl9sZXZlbF9saXN0X3Jl bW92ZShzcGFjZSwgemlwX3NpemUsIHBhZ2UsIG10cik7CisJCWJ0cl9sZXZlbF9saXN0X3JlbW92 ZShzcGFjZSwgemlwX3NpemUsIHBhZ2UsIGluZGV4LCBtdHIpOwogCiAJCS8qIFJlcGxhY2UgdGhl IGFkZHJlc3Mgb2YgdGhlIG9sZCBjaGlsZCBub2RlICg9IHBhZ2UpIHdpdGggdGhlCiAJCWFkZHJl c3Mgb2YgdGhlIG1lcmdlIHBhZ2UgdG8gdGhlIHJpZ2h0ICovCkBAIC0zNTIyLDcgKzM1NTAsNyBA QCBidHJfZGlzY2FyZF9wYWdlKAogCiAJaWYgKGxlZnRfcGFnZV9ubyAhPSBGSUxfTlVMTCkgewog CQltZXJnZV9ibG9jayA9IGJ0cl9ibG9ja19nZXQoc3BhY2UsIHppcF9zaXplLCBsZWZ0X3BhZ2Vf bm8sCi0JCQkJCSAgICBSV19YX0xBVENILCBtdHIpOworCQkJCQkgICAgUldfWF9MQVRDSCwgaW5k ZXgsIG10cik7CiAJCW1lcmdlX3BhZ2UgPSBidWZfYmxvY2tfZ2V0X2ZyYW1lKG1lcmdlX2Jsb2Nr KTsKICNpZmRlZiBVTklWX0JUUl9ERUJVRwogCQl1dF9hKGJ0cl9wYWdlX2dldF9uZXh0KG1lcmdl X3BhZ2UsIG10cikKQEAgLTM1MzAsNyArMzU1OCw3IEBAIGJ0cl9kaXNjYXJkX3BhZ2UoCiAjZW5k aWYgLyogVU5JVl9CVFJfREVCVUcgKi8KIAl9IGVsc2UgaWYgKHJpZ2h0X3BhZ2Vfbm8gIT0gRklM X05VTEwpIHsKIAkJbWVyZ2VfYmxvY2sgPSBidHJfYmxvY2tfZ2V0KHNwYWNlLCB6aXBfc2l6ZSwg cmlnaHRfcGFnZV9ubywKLQkJCQkJICAgIFJXX1hfTEFUQ0gsIG10cik7CisJCQkJCSAgICBSV19Y X0xBVENILCBpbmRleCwgbXRyKTsKIAkJbWVyZ2VfcGFnZSA9IGJ1Zl9ibG9ja19nZXRfZnJhbWUo bWVyZ2VfYmxvY2spOwogI2lmZGVmIFVOSVZfQlRSX0RFQlVHCiAJCXV0X2EoYnRyX3BhZ2VfZ2V0 X3ByZXYobWVyZ2VfcGFnZSwgbXRyKQpAQCAtMzU2NSw3ICszNTkzLDcgQEAgYnRyX2Rpc2NhcmRf cGFnZSgKIAlidHJfbm9kZV9wdHJfZGVsZXRlKGluZGV4LCBibG9jaywgbXRyKTsKIAogCS8qIFJl bW92ZSB0aGUgcGFnZSBmcm9tIHRoZSBsZXZlbCBsaXN0ICovCi0JYnRyX2xldmVsX2xpc3RfcmVt b3ZlKHNwYWNlLCB6aXBfc2l6ZSwgcGFnZSwgbXRyKTsKKwlidHJfbGV2ZWxfbGlzdF9yZW1vdmUo c3BhY2UsIHppcF9zaXplLCBwYWdlLCBpbmRleCwgbXRyKTsKICNpZmRlZiBVTklWX1pJUF9ERUJV RwogCXsKIAkJcGFnZV96aXBfZGVzX3QqCW1lcmdlX3BhZ2VfemlwCkBAIC00MDgzLDcgKzQxMTEs NyBAQCBsb29wOgogCWlmIChyaWdodF9wYWdlX25vICE9IEZJTF9OVUxMKSB7CiAJCWNvbnN0IHJl Y190KglyaWdodF9yZWM7CiAJCXJpZ2h0X2Jsb2NrID0gYnRyX2Jsb2NrX2dldChzcGFjZSwgemlw X3NpemUsIHJpZ2h0X3BhZ2Vfbm8sCi0JCQkJCSAgICBSV19YX0xBVENILCAmbXRyKTsKKwkJCQkJ ICAgIFJXX1hfTEFUQ0gsIGluZGV4LCAmbXRyKTsKIAkJcmlnaHRfcGFnZSA9IGJ1Zl9ibG9ja19n ZXRfZnJhbWUocmlnaHRfYmxvY2spOwogCQlpZiAoVU5JVl9VTkxJS0VMWShidHJfcGFnZV9nZXRf cHJldihyaWdodF9wYWdlLCAmbXRyKQogCQkJCSAgIT0gcGFnZV9nZXRfcGFnZV9ubyhwYWdlKSkp IHsKQEAgLTQzMDksNyArNDMzNyw3IEBAIG5vZGVfcHRyX2ZhaWxzOgogCQltdHJfc3RhcnQoJm10 cik7CiAKIAkJYmxvY2sgPSBidHJfYmxvY2tfZ2V0KHNwYWNlLCB6aXBfc2l6ZSwgcmlnaHRfcGFn ZV9ubywKLQkJCQkgICAgICBSV19YX0xBVENILCAmbXRyKTsKKwkJCQkgICAgICBSV19YX0xBVENI LCBpbmRleCwgJm10cik7CiAJCXBhZ2UgPSBidWZfYmxvY2tfZ2V0X2ZyYW1lKGJsb2NrKTsKIAog CQlnb3RvIGxvb3A7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9idHIvYnRy MGN1ci5jJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2J0ci9idHIwY3VyLmMJcmV2aWQ6Z2Vvcmdp LmtvZGlub3ZAb3JhY2xlLmNvbS0yMDExMDgxMjEzNTAwNC0zejN5ank3a3JmMzc0Y2x1CisrKyBi L3N0b3JhZ2UvaW5ub2Jhc2UvYnRyL2J0cjBjdXIuYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xl LmNvbS0yMDExMDgxNTA5MTgzNC1qMjdhdHJzMWt4aWppMDF1CkBAIC0yNDksNyArMjQ5LDggQEAg YnRyX2N1cl9sYXRjaF9sZWF2ZXMoCiAJY2FzZSBCVFJfU0VBUkNIX0xFQUY6CiAJY2FzZSBCVFJf TU9ESUZZX0xFQUY6CiAJCW1vZGUgPSBsYXRjaF9tb2RlID09IEJUUl9TRUFSQ0hfTEVBRiA/IFJX X1NfTEFUQ0ggOiBSV19YX0xBVENIOwotCQlnZXRfYmxvY2sgPSBidHJfYmxvY2tfZ2V0KHNwYWNl LCB6aXBfc2l6ZSwgcGFnZV9ubywgbW9kZSwgbXRyKTsKKwkJZ2V0X2Jsb2NrID0gYnRyX2Jsb2Nr X2dldCgKKwkJCXNwYWNlLCB6aXBfc2l6ZSwgcGFnZV9ubywgbW9kZSwgY3Vyc29yLT5pbmRleCwg bXRyKTsKICNpZmRlZiBVTklWX0JUUl9ERUJVRwogCQl1dF9hKHBhZ2VfaXNfY29tcChnZXRfYmxv Y2stPmZyYW1lKSA9PSBwYWdlX2lzX2NvbXAocGFnZSkpOwogI2VuZGlmIC8qIFVOSVZfQlRSX0RF QlVHICovCkBAIC0yNjAsOSArMjYxLDkgQEAgYnRyX2N1cl9sYXRjaF9sZWF2ZXMoCiAJCWxlZnRf cGFnZV9ubyA9IGJ0cl9wYWdlX2dldF9wcmV2KHBhZ2UsIG10cik7CiAKIAkJaWYgKGxlZnRfcGFn ZV9ubyAhPSBGSUxfTlVMTCkgewotCQkJZ2V0X2Jsb2NrID0gYnRyX2Jsb2NrX2dldChzcGFjZSwg emlwX3NpemUsCi0JCQkJCQkgIGxlZnRfcGFnZV9ubywKLQkJCQkJCSAgUldfWF9MQVRDSCwgbXRy KTsKKwkJCWdldF9ibG9jayA9IGJ0cl9ibG9ja19nZXQoCisJCQkJc3BhY2UsIHppcF9zaXplLCBs ZWZ0X3BhZ2Vfbm8sCisJCQkJUldfWF9MQVRDSCwgY3Vyc29yLT5pbmRleCwgbXRyKTsKICNpZmRl ZiBVTklWX0JUUl9ERUJVRwogCQkJdXRfYShwYWdlX2lzX2NvbXAoZ2V0X2Jsb2NrLT5mcmFtZSkK IAkJCSAgICAgPT0gcGFnZV9pc19jb21wKHBhZ2UpKTsKQEAgLTI3Miw4ICsyNzMsOSBAQCBidHJf Y3VyX2xhdGNoX2xlYXZlcygKIAkJCWdldF9ibG9jay0+Y2hlY2tfaW5kZXhfcGFnZV9hdF9mbHVz aCA9IFRSVUU7CiAJCX0KIAotCQlnZXRfYmxvY2sgPSBidHJfYmxvY2tfZ2V0KHNwYWNlLCB6aXBf c2l6ZSwgcGFnZV9ubywKLQkJCQkJICBSV19YX0xBVENILCBtdHIpOworCQlnZXRfYmxvY2sgPSBi dHJfYmxvY2tfZ2V0KAorCQkJc3BhY2UsIHppcF9zaXplLCBwYWdlX25vLAorCQkJUldfWF9MQVRD SCwgY3Vyc29yLT5pbmRleCwgbXRyKTsKICNpZmRlZiBVTklWX0JUUl9ERUJVRwogCQl1dF9hKHBh Z2VfaXNfY29tcChnZXRfYmxvY2stPmZyYW1lKSA9PSBwYWdlX2lzX2NvbXAocGFnZSkpOwogI2Vu ZGlmIC8qIFVOSVZfQlRSX0RFQlVHICovCkBAIC0yODIsOSArMjg0LDkgQEAgYnRyX2N1cl9sYXRj aF9sZWF2ZXMoCiAJCXJpZ2h0X3BhZ2Vfbm8gPSBidHJfcGFnZV9nZXRfbmV4dChwYWdlLCBtdHIp OwogCiAJCWlmIChyaWdodF9wYWdlX25vICE9IEZJTF9OVUxMKSB7Ci0JCQlnZXRfYmxvY2sgPSBi dHJfYmxvY2tfZ2V0KHNwYWNlLCB6aXBfc2l6ZSwKLQkJCQkJCSAgcmlnaHRfcGFnZV9ubywKLQkJ CQkJCSAgUldfWF9MQVRDSCwgbXRyKTsKKwkJCWdldF9ibG9jayA9IGJ0cl9ibG9ja19nZXQoCisJ CQkJc3BhY2UsIHppcF9zaXplLCByaWdodF9wYWdlX25vLAorCQkJCVJXX1hfTEFUQ0gsIGN1cnNv ci0+aW5kZXgsIG10cik7CiAjaWZkZWYgVU5JVl9CVFJfREVCVUcKIAkJCXV0X2EocGFnZV9pc19j b21wKGdldF9ibG9jay0+ZnJhbWUpCiAJCQkgICAgID09IHBhZ2VfaXNfY29tcChwYWdlKSk7CkBA IC0zMDMsOCArMzA1LDkgQEAgYnRyX2N1cl9sYXRjaF9sZWF2ZXMoCiAJCWxlZnRfcGFnZV9ubyA9 IGJ0cl9wYWdlX2dldF9wcmV2KHBhZ2UsIG10cik7CiAKIAkJaWYgKGxlZnRfcGFnZV9ubyAhPSBG SUxfTlVMTCkgewotCQkJZ2V0X2Jsb2NrID0gYnRyX2Jsb2NrX2dldChzcGFjZSwgemlwX3NpemUs Ci0JCQkJCQkgIGxlZnRfcGFnZV9ubywgbW9kZSwgbXRyKTsKKwkJCWdldF9ibG9jayA9IGJ0cl9i bG9ja19nZXQoCisJCQkJc3BhY2UsIHppcF9zaXplLAorCQkJCWxlZnRfcGFnZV9ubywgbW9kZSwg Y3Vyc29yLT5pbmRleCwgbXRyKTsKIAkJCWN1cnNvci0+bGVmdF9ibG9jayA9IGdldF9ibG9jazsK ICNpZmRlZiBVTklWX0JUUl9ERUJVRwogCQkJdXRfYShwYWdlX2lzX2NvbXAoZ2V0X2Jsb2NrLT5m cmFtZSkKQEAgLTMxNSw3ICszMTgsOCBAQCBidHJfY3VyX2xhdGNoX2xlYXZlcygKIAkJCWdldF9i bG9jay0+Y2hlY2tfaW5kZXhfcGFnZV9hdF9mbHVzaCA9IFRSVUU7CiAJCX0KIAotCQlnZXRfYmxv Y2sgPSBidHJfYmxvY2tfZ2V0KHNwYWNlLCB6aXBfc2l6ZSwgcGFnZV9ubywgbW9kZSwgbXRyKTsK KwkJZ2V0X2Jsb2NrID0gYnRyX2Jsb2NrX2dldCgKKwkJCXNwYWNlLCB6aXBfc2l6ZSwgcGFnZV9u bywgbW9kZSwgY3Vyc29yLT5pbmRleCwgbXRyKTsKICNpZmRlZiBVTklWX0JUUl9ERUJVRwogCQl1 dF9hKHBhZ2VfaXNfY29tcChnZXRfYmxvY2stPmZyYW1lKSA9PSBwYWdlX2lzX2NvbXAocGFnZSkp OwogI2VuZGlmIC8qIFVOSVZfQlRSX0RFQlVHICovCkBAIC02NjksNyArNjczLDkgQEAgcmV0cnlf cGFnZV9nZXQ6CiAJCXV0X2EoIXBhZ2VfemlwIHx8IHBhZ2VfemlwX3ZhbGlkYXRlKHBhZ2Vfemlw LCBwYWdlKSk7CiAjZW5kaWYgLyogVU5JVl9aSVBfREVCVUcgKi8KIAotCQlidWZfYmxvY2tfZGJn X2FkZF9sZXZlbChibG9jaywgU1lOQ19UUkVFX05PREUpOworCQlidWZfYmxvY2tfZGJnX2FkZF9s ZXZlbCgKKwkJCWJsb2NrLCBkaWN0X2luZGV4X2lzX2lidWYoaW5kZXgpCisJCQk/IFNZTkNfSUJV Rl9UUkVFX05PREUgOiBTWU5DX1RSRUVfTk9ERSk7CiAJfQogCiAJdXRfYWQoaW5kZXgtPmlkID09 IGJ0cl9wYWdlX2dldF9pbmRleF9pZChwYWdlKSk7CkBAIC03NjcsNyArNzczLDcgQEAgcmV0cnlf cGFnZV9nZXQ6CiAJaWYgKGxldmVsICE9IDApIHsKIAkJLyogeC1sYXRjaCB0aGUgcGFnZSAqLwog CQlwYWdlID0gYnRyX3BhZ2VfZ2V0KAotCQkJc3BhY2UsIHppcF9zaXplLCBwYWdlX25vLCBSV19Y X0xBVENILCBtdHIpOworCQkJc3BhY2UsIHppcF9zaXplLCBwYWdlX25vLCBSV19YX0xBVENILCBp bmRleCwgbXRyKTsKIAogCQl1dF9hKChpYm9vbCkhIXBhZ2VfaXNfY29tcChwYWdlKQogCQkgICAg ID09IGRpY3RfdGFibGVfaXNfY29tcChpbmRleC0+dGFibGUpKTsKCj09PSBtb2RpZmllZCBmaWxl ICdzdG9yYWdlL2lubm9iYXNlL2J0ci9idHIwcGN1ci5jJwotLS0gYS9zdG9yYWdlL2lubm9iYXNl L2J0ci9idHIwcGN1ci5jCXJldmlkOmdlb3JnaS5rb2Rpbm92QG9yYWNsZS5jb20tMjAxMTA4MTIx MzUwMDQtM3ozeWp5N2tyZjM3NGNsdQorKysgYi9zdG9yYWdlL2lubm9iYXNlL2J0ci9idHIwcGN1 ci5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTEwODE1MDkxODM0LWoyN2F0cnMx a3hpamkwMXUKQEAgLTEsNiArMSw2IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIAotQ29weXJp Z2h0IChjKSAxOTk2LCAyMDEwLCBJbm5vYmFzZSBPeS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KK0Nv cHlyaWdodCAoYykgMTk5NiwgMjAxMSwgT3JhY2xlIGFuZC9vciBpdHMgYWZmaWxpYXRlcy4gQWxs IFJpZ2h0cyBSZXNlcnZlZC4KIAogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv ZnR3YXJlCkBAIC0yNjYsOCArMjY2LDEwIEBAIGJ0cl9wY3VyX3Jlc3RvcmVfcG9zaXRpb25fZnVu YygKIAkJCQkJZmlsZSwgbGluZSwgbXRyKSkpIHsKIAkJCWN1cnNvci0+cG9zX3N0YXRlID0gQlRS X1BDVVJfSVNfUE9TSVRJT05FRDsKIAotCQkJYnVmX2Jsb2NrX2RiZ19hZGRfbGV2ZWwoYnRyX3Bj dXJfZ2V0X2Jsb2NrKGN1cnNvciksCi0JCQkJCQlTWU5DX1RSRUVfTk9ERSk7CisJCQlidWZfYmxv Y2tfZGJnX2FkZF9sZXZlbCgKKwkJCQlidHJfcGN1cl9nZXRfYmxvY2soY3Vyc29yKSwKKwkJCQlk aWN0X2luZGV4X2lzX2lidWYoaW5kZXgpCisJCQkJPyBTWU5DX0lCVUZfVFJFRV9OT0RFIDogU1lO Q19UUkVFX05PREUpOwogCiAJCQlpZiAoY3Vyc29yLT5yZWxfcG9zID09IEJUUl9QQ1VSX09OKSB7 CiAjaWZkZWYgVU5JVl9ERUJVRwpAQCAtNDE3LDcgKzQxOSw4IEBAIGJ0cl9wY3VyX21vdmVfdG9f bmV4dF9wYWdlKAogCXV0X2FkKG5leHRfcGFnZV9ubyAhPSBGSUxfTlVMTCk7CiAKIAluZXh0X2Js b2NrID0gYnRyX2Jsb2NrX2dldChzcGFjZSwgemlwX3NpemUsIG5leHRfcGFnZV9ubywKLQkJCQkg ICBjdXJzb3ItPmxhdGNoX21vZGUsIG10cik7CisJCQkJICAgY3Vyc29yLT5sYXRjaF9tb2RlLAor CQkJCSAgIGJ0cl9wY3VyX2dldF9idHJfY3VyKGN1cnNvciktPmluZGV4LCBtdHIpOwogCW5leHRf cGFnZSA9IGJ1Zl9ibG9ja19nZXRfZnJhbWUobmV4dF9ibG9jayk7CiAjaWZkZWYgVU5JVl9CVFJf REVCVUcKIAl1dF9hKHBhZ2VfaXNfY29tcChuZXh0X3BhZ2UpID09IHBhZ2VfaXNfY29tcChwYWdl KSk7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9idHIvYnRyMHNlYS5jJwot LS0gYS9zdG9yYWdlL2lubm9iYXNlL2J0ci9idHIwc2VhLmMJcmV2aWQ6Z2VvcmdpLmtvZGlub3ZA b3JhY2xlLmNvbS0yMDExMDgxMjEzNTAwNC0zejN5ank3a3JmMzc0Y2x1CisrKyBiL3N0b3JhZ2Uv aW5ub2Jhc2UvYnRyL2J0cjBzZWEuYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEx MDgxNTA5MTgzNC1qMjdhdHJzMWt4aWppMDF1CkBAIC0xLDYgKzEsNiBAQAogLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqCiAKLUNvcHlyaWdodCAoYykgMTk5NiwgMjAwOSwgSW5ub2Jhc2UgT3kuIEFsbCBS aWdodHMgUmVzZXJ2ZWQuCitDb3B5cmlnaHQgKGMpIDE5OTYsIDIwMTEsIE9yYWNsZSBhbmQvb3Ig aXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiBDb3B5cmlnaHQgKGMpIDIwMDgs IEdvb2dsZSBJbmMuCiAKIFBvcnRpb25zIG9mIHRoaXMgZmlsZSBjb250YWluIG1vZGlmaWNhdGlv bnMgY29udHJpYnV0ZWQgYW5kIGNvcHlyaWdodGVkIGJ5CkBAIC04NDUsNiArODQ1LDcgQEAgYnRy X3NlYXJjaF9ndWVzc19vbl9oYXNoKAogCWJ0cl9wY3VyX3QJcGN1cjsKICNlbmRpZgogCXV0X2Fk KGluZGV4ICYmIGluZm8gJiYgdHVwbGUgJiYgY3Vyc29yICYmIG10cik7CisJdXRfYWQoIWRpY3Rf aW5kZXhfaXNfaWJ1ZihpbmRleCkpOwogCXV0X2FkKChsYXRjaF9tb2RlID09IEJUUl9TRUFSQ0hf TEVBRikKIAkgICAgICB8fCAobGF0Y2hfbW9kZSA9PSBCVFJfTU9ESUZZX0xFQUYpKTsKIAoKPT09 IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvZGljdC9kaWN0MGNyZWEuYycKLS0tIGEv c3RvcmFnZS9pbm5vYmFzZS9kaWN0L2RpY3QwY3JlYS5jCXJldmlkOmdlb3JnaS5rb2Rpbm92QG9y YWNsZS5jb20tMjAxMTA4MTIxMzUwMDQtM3ozeWp5N2tyZjM3NGNsdQorKysgYi9zdG9yYWdlL2lu bm9iYXNlL2RpY3QvZGljdDBjcmVhLmMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAx MTA4MTUwOTE4MzQtajI3YXRyczFreGlqaTAxdQpAQCAtMSw2ICsxLDYgQEAKIC8qKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgogCi1Db3B5cmlnaHQgKGMpIDE5OTYsIDIwMTAsIElubm9iYXNlIE95LiBBbGwg UmlnaHRzIFJlc2VydmVkLgorQ29weXJpZ2h0IChjKSAxOTk2LCAyMDExLCBPcmFjbGUgYW5kL29y IGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogCiBUaGlzIHByb2dyYW0gaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1 bmRlcgogdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJs aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKQEAgLTgyNyw3ICs4MjcsNyBAQCBkaWN0X3RydW5j YXRlX2luZGV4X3RyZWUoCiAJYXBwcm9wcmlhdGUgZmllbGQgaW4gdGhlIFNZU19JTkRFWEVTIHJl Y29yZDogdGhpcyBtaW5pLXRyYW5zYWN0aW9uCiAJbWFya3MgdGhlIEItdHJlZSB0b3RhbGx5IHRy dW5jYXRlZCAqLwogCi0JYnRyX2Jsb2NrX2dldChzcGFjZSwgemlwX3NpemUsIHJvb3RfcGFnZV9u bywgUldfWF9MQVRDSCwgbXRyKTsKKwlidHJfYmxvY2tfZ2V0KHNwYWNlLCB6aXBfc2l6ZSwgcm9v dF9wYWdlX25vLCBSV19YX0xBVENILCBOVUxMLCBtdHIpOwogCiAJYnRyX2ZyZWVfcm9vdChzcGFj ZSwgemlwX3NpemUsIHJvb3RfcGFnZV9ubywgbXRyKTsKIGNyZWF0ZToKCj09PSBtb2RpZmllZCBm aWxlICdzdG9yYWdlL2lubm9iYXNlL2RpY3QvZGljdDBkaWN0LmMnCi0tLSBhL3N0b3JhZ2UvaW5u b2Jhc2UvZGljdC9kaWN0MGRpY3QuYwlyZXZpZDpnZW9yZ2kua29kaW5vdkBvcmFjbGUuY29tLTIw MTEwODEyMTM1MDA0LTN6M3lqeTdrcmYzNzRjbHUKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9kaWN0 L2RpY3QwZGljdC5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTEwODE1MDkxODM0 LWoyN2F0cnMxa3hpamkwMXUKQEAgLTEsNiArMSw2IEBACiAvKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK IAotQ29weXJpZ2h0IChjKSAxOTk2LCAyMDEwLCBJbm5vYmFzZSBPeS4gQWxsIFJpZ2h0cyBSZXNl cnZlZC4KK0NvcHlyaWdodCAoYykgMTk5NiwgMjAxMSwgT3JhY2xlIGFuZC9vciBpdHMgYWZmaWxp YXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KIAogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo ZSBGcmVlIFNvZnR3YXJlCkBAIC0xNzE0LDcgKzE3MTQsOCBAQCB1bmRvX3NpemVfb2s6CiAKIAlu ZXdfaW5kZXgtPnBhZ2UgPSBwYWdlX25vOwogCXJ3X2xvY2tfY3JlYXRlKGluZGV4X3RyZWVfcndf bG9ja19rZXksICZuZXdfaW5kZXgtPmxvY2ssCi0JCSAgICAgICBTWU5DX0lOREVYX1RSRUUpOwor CQkgICAgICAgZGljdF9pbmRleF9pc19pYnVmKGluZGV4KQorCQkgICAgICAgPyBTWU5DX0lCVUZf SU5ERVhfVFJFRSA6IFNZTkNfSU5ERVhfVFJFRSk7CiAKIAlpZiAoIVVOSVZfVU5MSUtFTFkobmV3 X2luZGV4LT50eXBlICYgRElDVF9VTklWRVJTQUwpKSB7CiAKCj09PSBtb2RpZmllZCBmaWxlICdz dG9yYWdlL2lubm9iYXNlL2lidWYvaWJ1ZjBpYnVmLmMnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2Uv aWJ1Zi9pYnVmMGlidWYuYwlyZXZpZDpnZW9yZ2kua29kaW5vdkBvcmFjbGUuY29tLTIwMTEwODEy MTM1MDA0LTN6M3lqeTdrcmYzNzRjbHUKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9pYnVmL2lidWYw aWJ1Zi5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTEwODE1MDkxODM0LWoyN2F0 cnMxa3hpamkwMXUKQEAgLTEsNiArMSw2IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIAotQ29w eXJpZ2h0IChjKSAxOTk3LCAyMDEwLCBJbm5vYmFzZSBPeS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4K K0NvcHlyaWdodCAoYykgMTk5NywgMjAxMSwgT3JhY2xlIGFuZC9vciBpdHMgYWZmaWxpYXRlcy4g QWxsIFJpZ2h0cyBSZXNlcnZlZC4KIAogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl IFNvZnR3YXJlCkBAIC00MDIsNyArNDAyLDcgQEAgaWJ1Zl90cmVlX3Jvb3RfZ2V0KAogCWJsb2Nr ID0gYnVmX3BhZ2VfZ2V0KAogCQlJQlVGX1NQQUNFX0lELCAwLCBGU1BfSUJVRl9UUkVFX1JPT1Rf UEFHRV9OTywgUldfWF9MQVRDSCwgbXRyKTsKIAotCWJ1Zl9ibG9ja19kYmdfYWRkX2xldmVsKGJs b2NrLCBTWU5DX1RSRUVfTk9ERSk7CisJYnVmX2Jsb2NrX2RiZ19hZGRfbGV2ZWwoYmxvY2ssIFNZ TkNfSUJVRl9UUkVFX05PREVfTkVXKTsKIAogCXJvb3QgPSBidWZfYmxvY2tfZ2V0X2ZyYW1lKGJs b2NrKTsKIApAQCAtNTQ5LDcgKzU0OSw3IEBAIGlidWZfaW5pdF9hdF9kYl9zdGFydCh2b2lkKQog CQlibG9jayA9IGJ1Zl9wYWdlX2dldCgKIAkJCUlCVUZfU1BBQ0VfSUQsIDAsIEZTUF9JQlVGX1RS RUVfUk9PVF9QQUdFX05PLAogCQkJUldfWF9MQVRDSCwgJm10cik7Ci0JCWJ1Zl9ibG9ja19kYmdf YWRkX2xldmVsKGJsb2NrLCBTWU5DX1RSRUVfTk9ERSk7CisJCWJ1Zl9ibG9ja19kYmdfYWRkX2xl dmVsKGJsb2NrLCBTWU5DX0lCVUZfVFJFRV9OT0RFKTsKIAogCQlyb290ID0gYnVmX2Jsb2NrX2dl dF9mcmFtZShibG9jayk7CiAJfQpAQCAtMjIwOSw3ICsyMjA5LDggQEAgaWJ1Zl9hZGRfZnJlZV9w YWdlKHZvaWQpCiAJfSBlbHNlIHsKIAkJYnVmX2Jsb2NrX3QqCWJsb2NrID0gYnVmX3BhZ2VfZ2V0 KAogCQkJSUJVRl9TUEFDRV9JRCwgMCwgcGFnZV9ubywgUldfWF9MQVRDSCwgJm10cik7Ci0JCWJ1 Zl9ibG9ja19kYmdfYWRkX2xldmVsKGJsb2NrLCBTWU5DX1RSRUVfTk9ERV9ORVcpOworCisJCWJ1 Zl9ibG9ja19kYmdfYWRkX2xldmVsKGJsb2NrLCBTWU5DX0lCVUZfVFJFRV9OT0RFX05FVyk7CiAK IAkJcGFnZSA9IGJ1Zl9ibG9ja19nZXRfZnJhbWUoYmxvY2spOwogCX0KQEAgLTIzMzIsOCArMjMz Myw3IEBAIGlidWZfcmVtb3ZlX2ZyZWVfcGFnZSh2b2lkKQogCQlibG9jayA9IGJ1Zl9wYWdlX2dl dCgKIAkJCUlCVUZfU1BBQ0VfSUQsIDAsIHBhZ2Vfbm8sIFJXX1hfTEFUQ0gsICZtdHIpOwogCi0J CWJ1Zl9ibG9ja19kYmdfYWRkX2xldmVsKGJsb2NrLCBTWU5DX1RSRUVfTk9ERSk7Ci0KKwkJYnVm X2Jsb2NrX2RiZ19hZGRfbGV2ZWwoYmxvY2ssIFNZTkNfSUJVRl9UUkVFX05PREUpOwogCiAJCXBh Z2UgPSBidWZfYmxvY2tfZ2V0X2ZyYW1lKGJsb2NrKTsKIAl9CkBAIC0zMDIyLDcgKzMwMjIsNyBA QCBpYnVmX2dldF92b2x1bWVfYnVmZmVyZWQoCiAJCQlJQlVGX1NQQUNFX0lELCAwLCBwcmV2X3Bh Z2Vfbm8sIFJXX1hfTEFUQ0gsCiAJCQltdHIpOwogCi0JCWJ1Zl9ibG9ja19kYmdfYWRkX2xldmVs KGJsb2NrLCBTWU5DX1RSRUVfTk9ERSk7CisJCWJ1Zl9ibG9ja19kYmdfYWRkX2xldmVsKGJsb2Nr LCBTWU5DX0lCVUZfVFJFRV9OT0RFKTsKIAogCiAJCXByZXZfcGFnZSA9IGJ1Zl9ibG9ja19nZXRf ZnJhbWUoYmxvY2spOwpAQCAtMzA5NSw3ICszMDk1LDcgQEAgY291bnRfbGF0ZXI6CiAJCQlJQlVG X1NQQUNFX0lELCAwLCBuZXh0X3BhZ2Vfbm8sIFJXX1hfTEFUQ0gsCiAJCQltdHIpOwogCi0JCWJ1 Zl9ibG9ja19kYmdfYWRkX2xldmVsKGJsb2NrLCBTWU5DX1RSRUVfTk9ERSk7CisJCWJ1Zl9ibG9j a19kYmdfYWRkX2xldmVsKGJsb2NrLCBTWU5DX0lCVUZfVFJFRV9OT0RFKTsKIAogCiAJCW5leHRf cGFnZSA9IGJ1Zl9ibG9ja19nZXRfZnJhbWUoYmxvY2spOwpAQCAtMzMzMyw3ICszMzMzLDcgQEAg aWJ1Zl9zZXRfZW50cnlfY291bnRlcigKIAkJCQlJQlVGX1NQQUNFX0lELCAwLCBwcmV2X3BhZ2Vf bm8sCiAJCQkJUldfWF9MQVRDSCwgbXRyKTsKIAotCQkJYnVmX2Jsb2NrX2RiZ19hZGRfbGV2ZWwo YmxvY2ssIFNZTkNfVFJFRV9OT0RFKTsKKwkJCWJ1Zl9ibG9ja19kYmdfYWRkX2xldmVsKGJsb2Nr LCBTWU5DX0lCVUZfVFJFRV9OT0RFKTsKIAogCQkJcHJldl9wYWdlID0gYnVmX2Jsb2NrX2dldF9m cmFtZShibG9jayk7CiAKQEAgLTQ0MTksNiArNDQxOSw3IEBAIGlidWZfbWVyZ2Vfb3JfZGVsZXRl X2Zvcl9wYWdlKAogCXV0X2FkKCFibG9jayB8fCBidWZfYmxvY2tfZ2V0X3NwYWNlKGJsb2NrKSA9 PSBzcGFjZSk7CiAJdXRfYWQoIWJsb2NrIHx8IGJ1Zl9ibG9ja19nZXRfcGFnZV9ubyhibG9jaykg PT0gcGFnZV9ubyk7CiAJdXRfYWQoIWJsb2NrIHx8IGJ1Zl9ibG9ja19nZXRfemlwX3NpemUoYmxv Y2spID09IHppcF9zaXplKTsKKwl1dF9hZCghYmxvY2sgfHwgYnVmX2Jsb2NrX2dldF9pb19maXgo YmxvY2spID09IEJVRl9JT19SRUFEKTsKIAogCWlmIChzcnZfZm9yY2VfcmVjb3ZlcnkgPj0gU1JW X0ZPUkNFX05PX0lCVUZfTUVSR0UKIAkgICAgfHwgdHJ4X3N5c19oZHJfcGFnZShzcGFjZSwgcGFn ZV9ubykpIHsKQEAgLTQ1NzEsNyArNDU3MiwxMyBAQCBsb29wOgogCiAJCXV0X2Eoc3VjY2Vzcyk7 CiAKLQkJYnVmX2Jsb2NrX2RiZ19hZGRfbGV2ZWwoYmxvY2ssIFNZTkNfVFJFRV9OT0RFKTsKKwkJ LyogVGhpcyBpcyBhIHVzZXIgcGFnZSAoc2Vjb25kYXJ5IGluZGV4IGxlYWYgcGFnZSksCisJCWJ1 dCB3ZSBwcmV0ZW5kIHRoYXQgaXQgaXMgYSBjaGFuZ2UgYnVmZmVyIHBhZ2UgaW4KKwkJb3JkZXIg dG8gb2JleSB0aGUgbGF0Y2hpbmcgb3JkZXIuIFRoaXMgc2hvdWxkIGJlIE9LLAorCQliZWNhdXNl IGJ1ZmZlcmVkIGNoYW5nZXMgYXJlIGFwcGxpZWQgaW1tZWRpYXRlbHkgd2hpbGUKKwkJdGhlIGJs b2NrIGlzIGlvLWZpeGVkLiBPdGhlciB0aHJlYWRzIG11c3Qgbm90IHRyeSB0bworCQlsYXRjaCBh biBpby1maXhlZCBibG9jay4gKi8KKwkJYnVmX2Jsb2NrX2RiZ19hZGRfbGV2ZWwoYmxvY2ssIFNZ TkNfSUJVRl9UUkVFX05PREUpOwogCX0KIAogCS8qIFBvc2l0aW9uIHBjdXIgaW4gdGhlIGluc2Vy dCBidWZmZXIgYXQgdGhlIGZpcnN0IGVudHJ5IGZvciB0aGlzCkBAIC00Njc1LDcgKzQ2ODIsMTIg QEAgbG9vcDoKIAkJCQkJX19GSUxFX18sIF9fTElORV9fLCAmbXRyKTsKIAkJCQl1dF9hKHN1Y2Nl c3MpOwogCi0JCQkJYnVmX2Jsb2NrX2RiZ19hZGRfbGV2ZWwoYmxvY2ssIFNZTkNfVFJFRV9OT0RF KTsKKwkJCQkvKiBUaGlzIGlzIGEgdXNlciBwYWdlIChzZWNvbmRhcnkKKwkJCQlpbmRleCBsZWFm IHBhZ2UpLCBidXQgaXQgc2hvdWxkIGJlIE9LCisJCQkJdG8gdXNlIHRvbyBsb3cgbGF0Y2hpbmcg b3JkZXIgZm9yIGl0LAorCQkJCWFzIHRoZSBibG9jayBpcyBpby1maXhlZC4gKi8KKwkJCQlidWZf YmxvY2tfZGJnX2FkZF9sZXZlbCgKKwkJCQkJYmxvY2ssIFNZTkNfSUJVRl9UUkVFX05PREUpOwog CiAJCQkJaWYgKCFpYnVmX3Jlc3RvcmVfcG9zKHNwYWNlLCBwYWdlX25vLAogCQkJCQkJICAgICAg c2VhcmNoX3R1cGxlLAoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVk ZS9idHIwYnRyLmgnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9idHIwYnRyLmgJcmV2 aWQ6Z2VvcmdpLmtvZGlub3ZAb3JhY2xlLmNvbS0yMDExMDgxMjEzNTAwNC0zejN5ank3a3JmMzc0 Y2x1CisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9idHIwYnRyLmgJcmV2aWQ6bWFya28u bWFrZWxhQG9yYWNsZS5jb20tMjAxMTA4MTUwOTE4MzQtajI3YXRyczFreGlqaTAxdQpAQCAtMTk5 LDI2ICsxOTksNDUgQEAgYnRyX2Jsb2NrX2dldF9mdW5jKAogCXVsaW50CQltb2RlLAkJLyohPCBp bjogbGF0Y2ggbW9kZSAqLwogCWNvbnN0IGNoYXIqCWZpbGUsCQkvKiE8IGluOiBmaWxlIG5hbWUg Ki8KIAl1bGludAkJbGluZSwJCS8qITwgaW46IGxpbmUgd2hlcmUgY2FsbGVkICovCi0JbXRyX3Qq CQltdHIpCQkvKiE8IGluL291dDogbXRyICovCi0JX19hdHRyaWJ1dGVfXygobm9ubnVsbCkpOwor IyBpZmRlZiBVTklWX1NZTkNfREVCVUcKKwljb25zdCBkaWN0X2luZGV4X3QqCWluZGV4LAkvKiE8 IGluOiBpbmRleCB0cmVlLCBtYXkgYmUgTlVMTAorCQkJCQlpZiBpdCBpcyBub3QgYW4gaW5zZXJ0 IGJ1ZmZlciB0cmVlICovCisjIGVuZGlmIC8qIFVOSVZfU1lOQ19ERUJVRyAqLworCW10cl90KgkJ bXRyKTsJCS8qITwgaW4vb3V0OiBtaW5pLXRyYW5zYWN0aW9uICovCisjIGlmZGVmIFVOSVZfU1lO Q19ERUJVRwogLyoqIEdldHMgYSBidWZmZXIgcGFnZSBhbmQgZGVjbGFyZXMgaXRzIGxhdGNoaW5n IG9yZGVyIGxldmVsLgogQHBhcmFtIHNwYWNlCXRhYmxlc3BhY2UgaWRlbnRpZmllcgogQHBhcmFt IHppcF9zaXplCWNvbXByZXNzZWQgcGFnZSBzaXplIGluIGJ5dGVzIG9yIDAgZm9yIHVuY29tcHJl c3NlZCBwYWdlcwogQHBhcmFtIHBhZ2Vfbm8JcGFnZSBudW1iZXIKIEBwYXJhbSBtb2RlCWxhdGNo IG1vZGUKK0BwYXJhbSBpbmRleAlpbmRleCB0cmVlLCBtYXkgYmUgTlVMTCBpZiBub3QgdGhlIGlu c2VydCBidWZmZXIgdHJlZQogQHBhcmFtIG10cgltaW5pLXRyYW5zYWN0aW9uIGhhbmRsZQogQHJl dHVybiB0aGUgYmxvY2sgZGVzY3JpcHRvciAqLwotIyBkZWZpbmUgYnRyX2Jsb2NrX2dldChzcGFj ZSx6aXBfc2l6ZSxwYWdlX25vLG1vZGUsbXRyKSBcCisjICBkZWZpbmUgYnRyX2Jsb2NrX2dldChz cGFjZSx6aXBfc2l6ZSxwYWdlX25vLG1vZGUsaW5kZXgsbXRyKQlcCisJYnRyX2Jsb2NrX2dldF9m dW5jKHNwYWNlLHppcF9zaXplLHBhZ2Vfbm8sbW9kZSwJCVwKKwkJCSAgIF9fRklMRV9fLF9fTElO RV9fLGluZGV4LG10cikKKyMgZWxzZSAvKiBVTklWX1NZTkNfREVCVUcgKi8KKy8qKiBHZXRzIGEg YnVmZmVyIHBhZ2UgYW5kIGRlY2xhcmVzIGl0cyBsYXRjaGluZyBvcmRlciBsZXZlbC4KK0BwYXJh bSBzcGFjZQl0YWJsZXNwYWNlIGlkZW50aWZpZXIKK0BwYXJhbSB6aXBfc2l6ZQljb21wcmVzc2Vk IHBhZ2Ugc2l6ZSBpbiBieXRlcyBvciAwIGZvciB1bmNvbXByZXNzZWQgcGFnZXMKK0BwYXJhbSBw YWdlX25vCXBhZ2UgbnVtYmVyCitAcGFyYW0gbW9kZQlsYXRjaCBtb2RlCitAcGFyYW0gaWR4CWlu ZGV4IHRyZWUsIG1heSBiZSBOVUxMIGlmIG5vdCB0aGUgaW5zZXJ0IGJ1ZmZlciB0cmVlCitAcGFy YW0gbXRyCW1pbmktdHJhbnNhY3Rpb24gaGFuZGxlCitAcmV0dXJuIHRoZSBibG9jayBkZXNjcmlw dG9yICovCisjICBkZWZpbmUgYnRyX2Jsb2NrX2dldChzcGFjZSx6aXBfc2l6ZSxwYWdlX25vLG1v ZGUsaWR4LG10cikJCVwKIAlidHJfYmxvY2tfZ2V0X2Z1bmMoc3BhY2UsemlwX3NpemUscGFnZV9u byxtb2RlLF9fRklMRV9fLF9fTElORV9fLG10cikKKyMgZW5kaWYgLyogVU5JVl9TWU5DX0RFQlVH ICovCiAvKiogR2V0cyBhIGJ1ZmZlciBwYWdlIGFuZCBkZWNsYXJlcyBpdHMgbGF0Y2hpbmcgb3Jk ZXIgbGV2ZWwuCiBAcGFyYW0gc3BhY2UJdGFibGVzcGFjZSBpZGVudGlmaWVyCiBAcGFyYW0gemlw X3NpemUJY29tcHJlc3NlZCBwYWdlIHNpemUgaW4gYnl0ZXMgb3IgMCBmb3IgdW5jb21wcmVzc2Vk IHBhZ2VzCiBAcGFyYW0gcGFnZV9ubwlwYWdlIG51bWJlcgogQHBhcmFtIG1vZGUJbGF0Y2ggbW9k ZQorQHBhcmFtIGlkeAlpbmRleCB0cmVlLCBtYXkgYmUgTlVMTCBpZiBub3QgdGhlIGluc2VydCBi dWZmZXIgdHJlZQogQHBhcmFtIG10cgltaW5pLXRyYW5zYWN0aW9uIGhhbmRsZQogQHJldHVybiB0 aGUgdW5jb21wcmVzc2VkIHBhZ2UgZnJhbWUgKi8KLSMgZGVmaW5lIGJ0cl9wYWdlX2dldChzcGFj ZSx6aXBfc2l6ZSxwYWdlX25vLG1vZGUsbXRyKSBcCi0JYnVmX2Jsb2NrX2dldF9mcmFtZShidHJf YmxvY2tfZ2V0KHNwYWNlLHppcF9zaXplLHBhZ2Vfbm8sbW9kZSxtdHIpKQorIyBkZWZpbmUgYnRy X3BhZ2VfZ2V0KHNwYWNlLHppcF9zaXplLHBhZ2Vfbm8sbW9kZSxpZHgsbXRyKQkJXAorCWJ1Zl9i bG9ja19nZXRfZnJhbWUoYnRyX2Jsb2NrX2dldChzcGFjZSx6aXBfc2l6ZSxwYWdlX25vLG1vZGUs aWR4LG10cikpCiAjZW5kaWYgLyogIVVOSVZfSE9UQkFDS1VQICovCiAvKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBHZXRz IHRoZSBpbmRleCBpZCBmaWVsZCBvZiBhIHBhZ2UuCkBAIC0zNDQsOCArMzYzLDcgQEAgYnRyX2Zy ZWVfcm9vdCgKIAl1bGludAl6aXBfc2l6ZSwJLyohPCBpbjogY29tcHJlc3NlZCBwYWdlIHNpemUg aW4gYnl0ZXMKIAkJCQlvciAwIGZvciB1bmNvbXByZXNzZWQgcGFnZXMgKi8KIAl1bGludAlyb290 X3BhZ2Vfbm8sCS8qITwgaW46IHJvb3QgcGFnZSBudW1iZXIgKi8KLQltdHJfdCoJbXRyKTsJCS8q ITwgaW46IGEgbWluaS10cmFuc2FjdGlvbiB3aGljaCBoYXMgYWxyZWFkeQotCQkJCWJlZW4gc3Rh cnRlZCAqLworCW10cl90KgltdHIpOwkJLyohPCBpbi9vdXQ6IG1pbmktdHJhbnNhY3Rpb24gKi8K IC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqLy8qKgogTWFrZXMgdHJlZSBvbmUgbGV2ZWwgaGlnaGVyIGJ5IHNwbGl0dGluZyB0aGUg cm9vdCwgYW5kIGluc2VydHMKIHRoZSB0dXBsZS4gSXQgaXMgYXNzdW1lZCB0aGF0IG10ciBjb250 YWlucyBhbiB4LWxhdGNoIG9uIHRoZSB0cmVlLgoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2Uv aW5ub2Jhc2UvaW5jbHVkZS9idHIwYnRyLmljJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2luY2x1 ZGUvYnRyMGJ0ci5pYwlyZXZpZDpnZW9yZ2kua29kaW5vdkBvcmFjbGUuY29tLTIwMTEwODEyMTM1 MDA0LTN6M3lqeTdrcmYzNzRjbHUKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2J0cjBi dHIuaWMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMTA4MTUwOTE4MzQtajI3YXRy czFreGlqaTAxdQpAQCAtMSw2ICsxLDYgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogCi1Db3B5 cmlnaHQgKGMpIDE5OTQsIDIwMTAsIElubm9iYXNlIE95LiBBbGwgUmlnaHRzIFJlc2VydmVkLgor Q29weXJpZ2h0IChjKSAxOTk0LCAyMDExLCBPcmFjbGUgYW5kL29yIGl0cyBhZmZpbGlhdGVzLiBB bGwgUmlnaHRzIFJlc2VydmVkLgogCiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlcgogdGhlIHRlcm1zIG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg U29mdHdhcmUKQEAgLTQ4LDYgKzQ4LDEwIEBAIGJ0cl9ibG9ja19nZXRfZnVuYygKIAl1bGludAkJ bW9kZSwJCS8qITwgaW46IGxhdGNoIG1vZGUgKi8KIAljb25zdCBjaGFyKglmaWxlLAkJLyohPCBp bjogZmlsZSBuYW1lICovCiAJdWxpbnQJCWxpbmUsCQkvKiE8IGluOiBsaW5lIHdoZXJlIGNhbGxl ZCAqLworI2lmZGVmIFVOSVZfU1lOQ19ERUJVRworCWNvbnN0IGRpY3RfaW5kZXhfdCoJaW5kZXgs CS8qITwgaW46IGluZGV4IHRyZWUsIG1heSBiZSBOVUxMCisJCQkJCWlmIGl0IGlzIG5vdCBhbiBp bnNlcnQgYnVmZmVyIHRyZWUgKi8KKyNlbmRpZiAvKiBVTklWX1NZTkNfREVCVUcgKi8KIAltdHJf dCoJCW10cikJCS8qITwgaW4vb3V0OiBtdHIgKi8KIHsKIAlidWZfYmxvY2tfdCoJYmxvY2s7CkBA IC01Nyw3ICs2MSw5IEBAIGJ0cl9ibG9ja19nZXRfZnVuYygKIAogCWlmIChtb2RlICE9IFJXX05P X0xBVENIKSB7CiAKLQkJYnVmX2Jsb2NrX2RiZ19hZGRfbGV2ZWwoYmxvY2ssIFNZTkNfVFJFRV9O T0RFKTsKKwkJYnVmX2Jsb2NrX2RiZ19hZGRfbGV2ZWwoCisJCQlibG9jaywgaW5kZXggIT0gTlVM TCAmJiBkaWN0X2luZGV4X2lzX2lidWYoaW5kZXgpCisJCQk/IFNZTkNfSUJVRl9UUkVFX05PREUg OiBTWU5DX1RSRUVfTk9ERSk7CiAJfQogCiAJcmV0dXJuKGJsb2NrKTsKCj09PSBtb2RpZmllZCBm aWxlICdzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvc3luYzBzeW5jLmgnCi0tLSBhL3N0b3JhZ2Uv aW5ub2Jhc2UvaW5jbHVkZS9zeW5jMHN5bmMuaAlyZXZpZDpnZW9yZ2kua29kaW5vdkBvcmFjbGUu Y29tLTIwMTEwODEyMTM1MDA0LTN6M3lqeTdrcmYzNzRjbHUKKysrIGIvc3RvcmFnZS9pbm5vYmFz ZS9pbmNsdWRlL3N5bmMwc3luYy5oCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTEw ODE1MDkxODM0LWoyN2F0cnMxa3hpamkwMXUKQEAgLTYzOCwxMCArNjM4LDYgQEAgb3Igcm93IGxv Y2shICovCiAjZGVmaW5lIFNZTkNfRElDVF9IRUFERVIJOTk1CiAjZGVmaW5lIFNZTkNfSUJVRl9I RUFERVIJOTE0CiAjZGVmaW5lIFNZTkNfSUJVRl9QRVNTX0lOU0VSVF9NVVRFWCA5MTIKLSNkZWZp bmUgU1lOQ19JQlVGX01VVEVYCQk5MTAJLyogaWJ1ZiBtdXRleCBpcyByZWFsbHkgYmVsb3cKLQkJ CQkJU1lOQ19GU1BfUEFHRTogd2UgYXNzaWduIGEgdmFsdWUgdGhpcwotCQkJCQloaWdoIG9ubHkg dG8gbWFrZSB0aGUgcHJvZ3JhbSB0byBwYXNzCi0JCQkJCXRoZSBkZWJ1ZyBjaGVja3MgKi8KIC8q LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAjZGVmaW5lCVNZTkNfSU5ERVhfVFJF RQkJOTAwCiAjZGVmaW5lIFNZTkNfVFJFRV9OT0RFX05FVwk4OTIKQEAgLTY1Nyw4ICs2NTMsMTEg QEAgb3Igcm93IGxvY2shICovCiAjZGVmaW5lCVNZTkNfRlNQCQk0MDAKICNkZWZpbmUJU1lOQ19G U1BfUEFHRQkJMzk1CiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gSW5z ZXJ0IGJ1ZmZlciBoZWFkZXJzICovCi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0gaWJ1Zl9tdXRleCAqLworI2RlZmluZSBTWU5DX0lCVUZfTVVURVgJCTM3MAkvKiBpYnVm X211dGV4ICovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gSW5zZXJ0 IGJ1ZmZlciB0cmVlICovCisjZGVmaW5lIFNZTkNfSUJVRl9JTkRFWF9UUkVFCTM2MAorI2RlZmlu ZSBTWU5DX0lCVUZfVFJFRV9OT0RFX05FVwkzNTkKKyNkZWZpbmUgU1lOQ19JQlVGX1RSRUVfTk9E RQkzNTgKICNkZWZpbmUJU1lOQ19JQlVGX0JJVE1BUF9NVVRFWAkzNTEKICNkZWZpbmUJU1lOQ19J QlVGX0JJVE1BUAkzNTAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBN eVNRTCBxdWVyeSBjYWNoZSBtdXRleCAqLwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5u b2Jhc2Uvc3luYy9zeW5jMHN5bmMuYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9zeW5jL3N5bmMw c3luYy5jCXJldmlkOmdlb3JnaS5rb2Rpbm92QG9yYWNsZS5jb20tMjAxMTA4MTIxMzUwMDQtM3oz eWp5N2tyZjM3NGNsdQorKysgYi9zdG9yYWdlL2lubm9iYXNlL3N5bmMvc3luYzBzeW5jLmMJcmV2 aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMTA4MTUwOTE4MzQtajI3YXRyczFreGlqaTAx dQpAQCAtMTIzMiw2ICsxMjMyLDcgQEAgc3luY190aHJlYWRfYWRkX2xldmVsKAogCWNhc2UgU1lO Q19ESUNUX0hFQURFUjoKIAljYXNlIFNZTkNfVFJYX0lfU19SV0xPQ0s6CiAJY2FzZSBTWU5DX1RS WF9JX1NfTEFTVF9SRUFEOgorCWNhc2UgU1lOQ19JQlVGX01VVEVYOgogCQlpZiAoIXN5bmNfdGhy ZWFkX2xldmVsc19nKGFycmF5LCBsZXZlbCwgVFJVRSkpIHsKIAkJCWZwcmludGYoc3RkZXJyLAog CQkJCSJJbm5vREI6IHN5bmNfdGhyZWFkX2xldmVsc19nKGFycmF5LCAlbHUpIgpAQCAtMTMxNywy MiArMTMxOCwyOCBAQCBzeW5jX3RocmVhZF9hZGRfbGV2ZWwoCiAJCSAgICAgfHwgc3luY190aHJl YWRfbGV2ZWxzX2coYXJyYXksIFNZTkNfVFJFRV9OT0RFIC0gMSwgVFJVRSkpOwogCQlicmVhazsK IAljYXNlIFNZTkNfVFJFRV9OT0RFX05FVzoKLQkJdXRfYShzeW5jX3RocmVhZF9sZXZlbHNfY29u dGFpbihhcnJheSwgU1lOQ19GU1BfUEFHRSkKLQkJICAgICB8fCBzeW5jX3RocmVhZF9sZXZlbHNf Y29udGFpbihhcnJheSwgU1lOQ19JQlVGX01VVEVYKSk7CisJCXV0X2Eoc3luY190aHJlYWRfbGV2 ZWxzX2NvbnRhaW4oYXJyYXksIFNZTkNfRlNQX1BBR0UpKTsKIAkJYnJlYWs7CiAJY2FzZSBTWU5D X0lOREVYX1RSRUU6Ci0JCWlmIChzeW5jX3RocmVhZF9sZXZlbHNfY29udGFpbihhcnJheSwgU1lO Q19JQlVGX01VVEVYKQotCQkgICAgJiYgc3luY190aHJlYWRfbGV2ZWxzX2NvbnRhaW4oYXJyYXks IFNZTkNfRlNQKSkgewotCQkJdXRfYShzeW5jX3RocmVhZF9sZXZlbHNfZyhhcnJheSwgU1lOQ19G U1BfUEFHRSAtIDEsCi0JCQkJCQkgIFRSVUUpKTsKKwkJdXRfYShzeW5jX3RocmVhZF9sZXZlbHNf ZyhhcnJheSwgU1lOQ19UUkVFX05PREUgLSAxLCBUUlVFKSk7CisJCWJyZWFrOworCWNhc2UgU1lO Q19JQlVGX1RSRUVfTk9ERToKKwkJdXRfYShzeW5jX3RocmVhZF9sZXZlbHNfY29udGFpbihhcnJh eSwgU1lOQ19JQlVGX0lOREVYX1RSRUUpCisJCSAgICAgfHwgc3luY190aHJlYWRfbGV2ZWxzX2co YXJyYXksIFNZTkNfSUJVRl9UUkVFX05PREUgLSAxLAorCQkJCQkgICAgIFRSVUUpKTsKKwkJYnJl YWs7CisJY2FzZSBTWU5DX0lCVUZfVFJFRV9OT0RFX05FVzoKKwkJdXRfYShzeW5jX3RocmVhZF9s ZXZlbHNfY29udGFpbihhcnJheSwgU1lOQ19JQlVGX01VVEVYKSk7CisJCWJyZWFrOworCWNhc2Ug U1lOQ19JQlVGX0lOREVYX1RSRUU6CisJCWlmIChzeW5jX3RocmVhZF9sZXZlbHNfY29udGFpbihh cnJheSwgU1lOQ19GU1ApKSB7CisJCQl1dF9hKHN5bmNfdGhyZWFkX2xldmVsc19nKAorCQkJCSAg ICAgYXJyYXksIFNZTkNfRlNQX1BBR0UgLSAxLCBUUlVFKSk7CiAJCX0gZWxzZSB7Ci0JCQl1dF9h KHN5bmNfdGhyZWFkX2xldmVsc19nKGFycmF5LCBTWU5DX1RSRUVfTk9ERSAtIDEsCi0JCQkJCQkg IFRSVUUpKTsKKwkJCXV0X2Eoc3luY190aHJlYWRfbGV2ZWxzX2coCisJCQkJICAgICBhcnJheSwg U1lOQ19JQlVGX1RSRUVfTk9ERSAtIDEsIFRSVUUpKTsKIAkJfQogCQlicmVhazsKLQljYXNlIFNZ TkNfSUJVRl9NVVRFWDoKLQkJdXRfYShzeW5jX3RocmVhZF9sZXZlbHNfZyhhcnJheSwgU1lOQ19G U1BfUEFHRSAtIDEsIFRSVUUpKTsKLQkJYnJlYWs7CiAJY2FzZSBTWU5DX0lCVUZfUEVTU19JTlNF UlRfTVVURVg6CiAJCXV0X2Eoc3luY190aHJlYWRfbGV2ZWxzX2coYXJyYXksIFNZTkNfRlNQIC0g MSwgVFJVRSkpOwogCQl1dF9hKCFzeW5jX3RocmVhZF9sZXZlbHNfY29udGFpbihhcnJheSwgU1lO Q19JQlVGX01VVEVYKSk7CgpObyBidW5kbGUgKHJlYXNvbjogdXNlbGVzcyBmb3IgcHVzaCBlbWFp bHMpLg==