ZGlmZiAtLWdpdCBhL0FwcHMtY29uZmlnLWhvc3QubWsgYi9BcHBzLWNvbmZpZy1ob3N0Lm1rCmluZGV4IDRhZjVhNzYuLmM2ZWJmODEgMTAwNjQ0Ci0tLSBhL0FwcHMtY29uZmlnLWhvc3QubWsKKysrIGIvQXBwcy1jb25maWctaG9zdC5tawpAQCAtMSw2ICsxLDYgQEAKICMgQXV0by1nZW5lcmF0ZWQgLSBETyBOT1QgRURJVCEKICMgVG8gcmVnZW5lcmF0ZSwgZWRpdCBvcGVuc3NsLmNvbmZpZywgdGhlbiBydW46Ci0jICAgICAuL2ltcG9ydF9vcGVuc3NsLnNoIGltcG9ydCAvcGF0aC90by9vcGVuc3NsLTEuMC4xaC50YXIuZ3oKKyMgICAgIC4vaW1wb3J0X29wZW5zc2wuc2ggaW1wb3J0IC9wYXRoL3RvL29wZW5zc2wtMS4wLjFqLnRhci5negogIwogIyBUaGlzIHNjcmlwdCB3aWxsIGFwcGVuZCB0byB0aGUgZm9sbG93aW5nIHZhcmlhYmxlczoKICMKZGlmZiAtLWdpdCBhL0FwcHMtY29uZmlnLXRhcmdldC5tayBiL0FwcHMtY29uZmlnLXRhcmdldC5tawppbmRleCA2OTdlNTZkLi5mZTYwMGMwIDEwMDY0NAotLS0gYS9BcHBzLWNvbmZpZy10YXJnZXQubWsKKysrIGIvQXBwcy1jb25maWctdGFyZ2V0Lm1rCkBAIC0xLDYgKzEsNiBAQAogIyBBdXRvLWdlbmVyYXRlZCAtIERPIE5PVCBFRElUIQogIyBUbyByZWdlbmVyYXRlLCBlZGl0IG9wZW5zc2wuY29uZmlnLCB0aGVuIHJ1bjoKLSMgICAgIC4vaW1wb3J0X29wZW5zc2wuc2ggaW1wb3J0IC9wYXRoL3RvL29wZW5zc2wtMS4wLjFoLnRhci5negorIyAgICAgLi9pbXBvcnRfb3BlbnNzbC5zaCBpbXBvcnQgL3BhdGgvdG8vb3BlbnNzbC0xLjAuMWoudGFyLmd6CiAjCiAjIFRoaXMgc2NyaXB0IHdpbGwgYXBwZW5kIHRvIHRoZSBmb2xsb3dpbmcgdmFyaWFibGVzOgogIwpkaWZmIC0tZ2l0IGEvQ3J5cHRvLWNvbmZpZy1ob3N0Lm1rIGIvQ3J5cHRvLWNvbmZpZy1ob3N0Lm1rCmluZGV4IDBjNDg3NmUuLjFlOTRmMTAgMTAwNjQ0Ci0tLSBhL0NyeXB0by1jb25maWctaG9zdC5taworKysgYi9DcnlwdG8tY29uZmlnLWhvc3QubWsKQEAgLTEsNiArMSw2IEBACiAjIEF1dG8tZ2VuZXJhdGVkIC0gRE8gTk9UIEVESVQhCiAjIFRvIHJlZ2VuZXJhdGUsIGVkaXQgb3BlbnNzbC5jb25maWcsIHRoZW4gcnVuOgotIyAgICAgLi9pbXBvcnRfb3BlbnNzbC5zaCBpbXBvcnQgL3BhdGgvdG8vb3BlbnNzbC0xLjAuMWgudGFyLmd6CisjICAgICAuL2ltcG9ydF9vcGVuc3NsLnNoIGltcG9ydCAvcGF0aC90by9vcGVuc3NsLTEuMC4xai50YXIuZ3oKICMKICMgVGhpcyBzY3JpcHQgd2lsbCBhcHBlbmQgdG8gdGhlIGZvbGxvd2luZyB2YXJpYWJsZXM6CiAjCkBAIC0xODQsNiArMTg0LDcgQEAKICAgY3J5cHRvL2NvbmYvY29uZl9tYWxsLmMgXAogICBjcnlwdG8vY29uZi9jb25mX21vZC5jIFwKICAgY3J5cHRvL2NvbmYvY29uZl9zYXAuYyBcCisgIGNyeXB0by9jb25zdGFudF90aW1lX2xvY2wuaCBcCiAgIGNyeXB0by9jcHRfZXJyLmMgXAogICBjcnlwdG8vY3J5cHRsaWIuYyBcCiAgIGNyeXB0by9jdmVyc2lvbi5jIFwKZGlmZiAtLWdpdCBhL0NyeXB0by1jb25maWctdGFyZ2V0Lm1rIGIvQ3J5cHRvLWNvbmZpZy10YXJnZXQubWsKaW5kZXggOWIzODk1Ni4uYmUzNDJkNCAxMDA2NDQKLS0tIGEvQ3J5cHRvLWNvbmZpZy10YXJnZXQubWsKKysrIGIvQ3J5cHRvLWNvbmZpZy10YXJnZXQubWsKQEAgLTEsNiArMSw2IEBACiAjIEF1dG8tZ2VuZXJhdGVkIC0gRE8gTk9UIEVESVQhCiAjIFRvIHJlZ2VuZXJhdGUsIGVkaXQgb3BlbnNzbC5jb25maWcsIHRoZW4gcnVuOgotIyAgICAgLi9pbXBvcnRfb3BlbnNzbC5zaCBpbXBvcnQgL3BhdGgvdG8vb3BlbnNzbC0xLjAuMWgudGFyLmd6CisjICAgICAuL2ltcG9ydF9vcGVuc3NsLnNoIGltcG9ydCAvcGF0aC90by9vcGVuc3NsLTEuMC4xai50YXIuZ3oKICMKICMgVGhpcyBzY3JpcHQgd2lsbCBhcHBlbmQgdG8gdGhlIGZvbGxvd2luZyB2YXJpYWJsZXM6CiAjCkBAIC0xODQsNiArMTg0LDcgQEAKICAgY3J5cHRvL2NvbmYvY29uZl9tYWxsLmMgXAogICBjcnlwdG8vY29uZi9jb25mX21vZC5jIFwKICAgY3J5cHRvL2NvbmYvY29uZl9zYXAuYyBcCisgIGNyeXB0by9jb25zdGFudF90aW1lX2xvY2wuaCBcCiAgIGNyeXB0by9jcHRfZXJyLmMgXAogICBjcnlwdG8vY3J5cHRsaWIuYyBcCiAgIGNyeXB0by9jdmVyc2lvbi5jIFwKZGlmZiAtLWdpdCBhL0NyeXB0by1jb25maWctdHJ1c3R5Lm1rIGIvQ3J5cHRvLWNvbmZpZy10cnVzdHkubWsKaW5kZXggODJmNzNiZC4uYzFiMDFkNSAxMDA2NDQKLS0tIGEvQ3J5cHRvLWNvbmZpZy10cnVzdHkubWsKKysrIGIvQ3J5cHRvLWNvbmZpZy10cnVzdHkubWsKQEAgLTEsNiArMSw2IEBACiAjIEF1dG8tZ2VuZXJhdGVkIC0gRE8gTk9UIEVESVQhCiAjIFRvIHJlZ2VuZXJhdGUsIGVkaXQgb3BlbnNzbC5jb25maWcsIHRoZW4gcnVuOgotIyAgICAgLi9pbXBvcnRfb3BlbnNzbC5zaCBpbXBvcnQgL3BhdGgvdG8vb3BlbnNzbC0xLjAuMWgudGFyLmd6CisjICAgICAuL2ltcG9ydF9vcGVuc3NsLnNoIGltcG9ydCAvcGF0aC90by9vcGVuc3NsLTEuMC4xai50YXIuZ3oKICMKICMgVGhpcyBzY3JpcHQgd2lsbCBhcHBlbmQgdG8gdGhlIGZvbGxvd2luZyB2YXJpYWJsZXM6CiAjCmRpZmYgLS1naXQgYS9Tc2wtY29uZmlnLWhvc3QubWsgYi9Tc2wtY29uZmlnLWhvc3QubWsKaW5kZXggZTZiODIyMS4uODNjNjAyNiAxMDA2NDQKLS0tIGEvU3NsLWNvbmZpZy1ob3N0Lm1rCisrKyBiL1NzbC1jb25maWctaG9zdC5tawpAQCAtMSw2ICsxLDYgQEAKICMgQXV0by1nZW5lcmF0ZWQgLSBETyBOT1QgRURJVCEKICMgVG8gcmVnZW5lcmF0ZSwgZWRpdCBvcGVuc3NsLmNvbmZpZywgdGhlbiBydW46Ci0jICAgICAuL2ltcG9ydF9vcGVuc3NsLnNoIGltcG9ydCAvcGF0aC90by9vcGVuc3NsLTEuMC4xaC50YXIuZ3oKKyMgICAgIC4vaW1wb3J0X29wZW5zc2wuc2ggaW1wb3J0IC9wYXRoL3RvL29wZW5zc2wtMS4wLjFqLnRhci5negogIwogIyBUaGlzIHNjcmlwdCB3aWxsIGFwcGVuZCB0byB0aGUgZm9sbG93aW5nIHZhcmlhYmxlczoKICMKZGlmZiAtLWdpdCBhL1NzbC1jb25maWctdGFyZ2V0Lm1rIGIvU3NsLWNvbmZpZy10YXJnZXQubWsKaW5kZXggNGFmZTA5Ni4uNDY1MjY3MyAxMDA2NDQKLS0tIGEvU3NsLWNvbmZpZy10YXJnZXQubWsKKysrIGIvU3NsLWNvbmZpZy10YXJnZXQubWsKQEAgLTEsNiArMSw2IEBACiAjIEF1dG8tZ2VuZXJhdGVkIC0gRE8gTk9UIEVESVQhCiAjIFRvIHJlZ2VuZXJhdGUsIGVkaXQgb3BlbnNzbC5jb25maWcsIHRoZW4gcnVuOgotIyAgICAgLi9pbXBvcnRfb3BlbnNzbC5zaCBpbXBvcnQgL3BhdGgvdG8vb3BlbnNzbC0xLjAuMWgudGFyLmd6CisjICAgICAuL2ltcG9ydF9vcGVuc3NsLnNoIGltcG9ydCAvcGF0aC90by9vcGVuc3NsLTEuMC4xai50YXIuZ3oKICMKICMgVGhpcyBzY3JpcHQgd2lsbCBhcHBlbmQgdG8gdGhlIGZvbGxvd2luZyB2YXJpYWJsZXM6CiAjCmRpZmYgLS1naXQgYS9hbmRyb2lkLnRlc3Rzc2wvdGVzdHNzbCBiL2FuZHJvaWQudGVzdHNzbC90ZXN0c3NsCmluZGV4IDVmZjQ4NjAuLjY2Yjg3MzYgMTAwNzU1Ci0tLSBhL2FuZHJvaWQudGVzdHNzbC90ZXN0c3NsCisrKyBiL2FuZHJvaWQudGVzdHNzbC90ZXN0c3NsCkBAIC0xNzYsNiArMTc2LDEyIEBACiAKICAgZWNobyB0ZXN0IHRsczEgd2l0aCBTUlAgdmlhIEJJTyBwYWlyCiAgICRzc2x0ZXN0IC1iaW9fcGFpciAtdGxzMSAtY2lwaGVyIFNSUCAtc3JwdXNlciB0ZXN0IC1zcnBwYXNzIGFiYzEyMworCisgIGVjaG8gdGVzdCB0bHMxIHdpdGggU1JQIGF1dGgKKyAgJHNzbHRlc3QgLXRsczEgLWNpcGhlciBhU1JQIC1zcnB1c2VyIHRlc3QgLXNycHBhc3MgYWJjMTIzCisKKyAgZWNobyB0ZXN0IHRsczEgd2l0aCBTUlAgYXV0aCB2aWEgQklPIHBhaXIKKyAgJHNzbHRlc3QgLWJpb19wYWlyIC10bHMxIC1jaXBoZXIgYVNSUCAtc3JwdXNlciB0ZXN0IC1zcnBwYXNzIGFiYzEyMwogZmkKIAogZXhpdCAwCmRpZmYgLS1naXQgYS9hcHBzL2FwcHMuYyBiL2FwcHMvYXBwcy5jCmluZGV4IGI3NmRiMTAuLjNlMTgyODkgMTAwNjQ0Ci0tLSBhL2FwcHMvYXBwcy5jCisrKyBiL2FwcHMvYXBwcy5jCkBAIC0zOTAsNiArMzkwLDggQEAKIAkJewogCQlhcmctPmNvdW50PTIwOwogCQlhcmctPmRhdGE9KGNoYXIgKiopT1BFTlNTTF9tYWxsb2Moc2l6ZW9mKGNoYXIgKikqYXJnLT5jb3VudCk7CisJCWlmIChhcmctPmRhdGEgPT0gTlVMTCkKKwkJCXJldHVybiAwOwogCQl9CiAJZm9yIChpPTA7IGk8YXJnLT5jb3VudDsgaSsrKQogCQlhcmctPmRhdGFbaV09TlVMTDsKQEAgLTE1NDIsNiArMTU0NCw4IEBACiAKIAlsZW49c3RybGVuKHQpK3N0cmxlbihPUEVOU1NMX0NPTkYpKzI7CiAJcD1PUEVOU1NMX21hbGxvYyhsZW4pOworCWlmIChwID09IE5VTEwpCisJCXJldHVybiBOVUxMOwogCUJVRl9zdHJsY3B5KHAsdCxsZW4pOwogI2lmbmRlZiBPUEVOU1NMX1NZU19WTVMKIAlCVUZfc3RybGNhdChwLCIvIixsZW4pOwpkaWZmIC0tZ2l0IGEvYXBwcy9jYS5jIGIvYXBwcy9jYS5jCmluZGV4IDFjZjUwZTAuLjljMjUwMjYgMTAwNjQ0Ci0tLSBhL2FwcHMvY2EuYworKysgYi9hcHBzL2NhLmMKQEAgLTE2MjAsMTIgKzE2MjAsMTQgQEAKIAkJewogCQlvaz0wOwogCQlCSU9fcHJpbnRmKGJpb19lcnIsIlNpZ25hdHVyZSB2ZXJpZmljYXRpb24gcHJvYmxlbXMuLi4uXG4iKTsKKwkJRVJSX3ByaW50X2Vycm9ycyhiaW9fZXJyKTsKIAkJZ290byBlcnI7CiAJCX0KIAlpZiAoaSA9PSAwKQogCQl7CiAJCW9rPTA7CiAJCUJJT19wcmludGYoYmlvX2VyciwiU2lnbmF0dXJlIGRpZCBub3QgbWF0Y2ggdGhlIGNlcnRpZmljYXRlIHJlcXVlc3RcbiIpOworCQlFUlJfcHJpbnRfZXJyb3JzKGJpb19lcnIpOwogCQlnb3RvIGVycjsKIAkJfQogCWVsc2UKQEAgLTI3NzcsNiArMjc3OSw5IEBACiAKIAlyZXZ0bSA9IFg1MDlfZ210aW1lX2FkaihOVUxMLCAwKTsKIAorCWlmICghcmV2dG0pCisJCXJldHVybiBOVUxMOworCiAJaSA9IHJldnRtLT5sZW5ndGggKyAxOwogCiAJaWYgKHJlYXNvbikgaSArPSBzdHJsZW4ocmVhc29uKSArIDE7CmRpZmYgLS1naXQgYS9hcHBzL2NpcGhlcnMuYyBiL2FwcHMvY2lwaGVycy5jCmluZGV4IDVmMmI3MzkuLjkzZGNlMWMgMTAwNjQ0Ci0tLSBhL2FwcHMvY2lwaGVycy5jCisrKyBiL2FwcHMvY2lwaGVycy5jCkBAIC05NiwxMyArOTYsNyBAQAogCWNoYXIgYnVmWzUxMl07CiAJQklPICpTVERvdXQ9TlVMTDsKIAotI2lmICFkZWZpbmVkKE9QRU5TU0xfTk9fU1NMMikgJiYgIWRlZmluZWQoT1BFTlNTTF9OT19TU0wzKQogCW1ldGg9U1NMdjIzX3NlcnZlcl9tZXRob2QoKTsKLSNlbGlmICFkZWZpbmVkKE9QRU5TU0xfTk9fU1NMMykKLQltZXRoPVNTTHYzX3NlcnZlcl9tZXRob2QoKTsKLSNlbGlmICFkZWZpbmVkKE9QRU5TU0xfTk9fU1NMMikKLQltZXRoPVNTTHYyX3NlcnZlcl9tZXRob2QoKTsKLSNlbmRpZgogCiAJYXBwc19zdGFydHVwKCk7CiAKZGlmZiAtLWdpdCBhL2FwcHMvY3JsMnA3LmMgYi9hcHBzL2NybDJwNy5jCmluZGV4IGJiYzgzNzcuLjQyYzY4ODYgMTAwNjQ0Ci0tLSBhL2FwcHMvY3JsMnA3LmMKKysrIGIvYXBwcy9jcmwycDcuYwpAQCAtMTQxLDcgKzE0MSwxMyBAQAogCQkJewogCQkJaWYgKC0tYXJnYyA8IDEpIGdvdG8gYmFkOwogCQkJaWYoIWNlcnRmbHN0KSBjZXJ0ZmxzdCA9IHNrX09QRU5TU0xfU1RSSU5HX25ld19udWxsKCk7Ci0JCQlza19PUEVOU1NMX1NUUklOR19wdXNoKGNlcnRmbHN0LCooKythcmd2KSk7CisJCQlpZiAoIWNlcnRmbHN0KQorCQkJCWdvdG8gZW5kOworCQkJaWYgKCFza19PUEVOU1NMX1NUUklOR19wdXNoKGNlcnRmbHN0LCooKythcmd2KSkpCisJCQkJeworCQkJCXNrX09QRU5TU0xfU1RSSU5HX2ZyZWUoY2VydGZsc3QpOworCQkJCWdvdG8gZW5kOworCQkJCX0KIAkJCX0KIAkJZWxzZQogCQkJewpkaWZmIC0tZ2l0IGEvYXBwcy9lbmMuYyBiL2FwcHMvZW5jLmMKaW5kZXggMTllYTNkZi4uYzhjYjAyMSAxMDA2NDQKLS0tIGEvYXBwcy9lbmMuYworKysgYi9hcHBzL2VuYy5jCkBAIC02Nyw3ICs2Nyw5IEBACiAjaW5jbHVkZSA8b3BlbnNzbC94NTA5Lmg+CiAjaW5jbHVkZSA8b3BlbnNzbC9yYW5kLmg+CiAjaW5jbHVkZSA8b3BlbnNzbC9wZW0uaD4KKyNpZm5kZWYgT1BFTlNTTF9OT19DT01QCiAjaW5jbHVkZSA8b3BlbnNzbC9jb21wLmg+CisjZW5kaWYKICNpbmNsdWRlIDxjdHlwZS5oPgogCiBpbnQgc2V0X2hleChjaGFyICppbix1bnNpZ25lZCBjaGFyICpvdXQsaW50IHNpemUpOwpAQCAtMzM3LDYgKzMzOSwxMiBAQAogCQlnb3RvIGVuZDsKIAkJfQogCisJaWYgKGNpcGhlciAmJiAoRVZQX0NJUEhFUl9tb2RlKGNpcGhlcikgPT0gRVZQX0NJUEhfWFRTX01PREUpKQorCQl7CisJCUJJT19wcmludGYoYmlvX2VyciwgIkNpcGhlcnMgaW4gWFRTIG1vZGUgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGVuYyB1dGlsaXR5XG4iKTsKKwkJZ290byBlbmQ7CisJCX0KKwogCWlmIChtZCAmJiAoZGdzdD1FVlBfZ2V0X2RpZ2VzdGJ5bmFtZShtZCkpID09IE5VTEwpCiAJCXsKIAkJQklPX3ByaW50ZihiaW9fZXJyLCIlcyBpcyBhbiB1bnN1cHBvcnRlZCBtZXNzYWdlIGRpZ2VzdCB0eXBlXG4iLG1kKTsKZGlmZiAtLWdpdCBhL2FwcHMvb2NzcC5jIGIvYXBwcy9vY3NwLmMKaW5kZXggNzY3ZjEyYy4uMDQyNjNmZiAxMDA2NDQKLS0tIGEvYXBwcy9vY3NwLmMKKysrIGIvYXBwcy9vY3NwLmMKQEAgLTE0MTksNyArMTQxOSw3IEBACiAJCX0KIAlyZXNwID0gcXVlcnlfcmVzcG9uZGVyKGVyciwgY2JpbywgcGF0aCwgaGVhZGVycywgcmVxLCByZXFfdGltZW91dCk7CiAJaWYgKCFyZXNwKQotCQlCSU9fcHJpbnRmKGJpb19lcnIsICJFcnJvciBxdWVyeWluZyBPQ1NQIHJlc3BvbnNkZXJcbiIpOworCQlCSU9fcHJpbnRmKGJpb19lcnIsICJFcnJvciBxdWVyeWluZyBPQ1NQIHJlc3BvbmRlclxuIik7CiAJZW5kOgogCWlmIChjYmlvKQogCQlCSU9fZnJlZV9hbGwoY2Jpbyk7CmRpZmYgLS1naXQgYS9hcHBzL3Byb2dzLmggYi9hcHBzL3Byb2dzLmgKaW5kZXggZGQyMjk4Yi4uYjE2MjA1NSAxMDA2NDQKLS0tIGEvYXBwcy9wcm9ncy5oCisrKyBiL2FwcHMvcHJvZ3MuaApAQCAtMTA3LDE2ICsxMDcsMTYgQEAKIAl7RlVOQ19UWVBFX0dFTkVSQUwsImdlbmRzYSIsZ2VuZHNhX21haW59LAogI2VuZGlmCiAJe0ZVTkNfVFlQRV9HRU5FUkFMLCJnZW5wa2V5IixnZW5wa2V5X21haW59LAotI2lmICFkZWZpbmVkKE9QRU5TU0xfTk9fU09DSykgJiYgIShkZWZpbmVkKE9QRU5TU0xfTk9fU1NMMikgJiYgZGVmaW5lZChPUEVOU1NMX05PX1NTTDMpKQorI2lmICFkZWZpbmVkKE9QRU5TU0xfTk9fU09DSykKIAl7RlVOQ19UWVBFX0dFTkVSQUwsInNfc2VydmVyIixzX3NlcnZlcl9tYWlufSwKICNlbmRpZgotI2lmICFkZWZpbmVkKE9QRU5TU0xfTk9fU09DSykgJiYgIShkZWZpbmVkKE9QRU5TU0xfTk9fU1NMMikgJiYgZGVmaW5lZChPUEVOU1NMX05PX1NTTDMpKQorI2lmICFkZWZpbmVkKE9QRU5TU0xfTk9fU09DSykKIAl7RlVOQ19UWVBFX0dFTkVSQUwsInNfY2xpZW50IixzX2NsaWVudF9tYWlufSwKICNlbmRpZgogI2lmbmRlZiBPUEVOU1NMX05PX1NQRUVECiAJe0ZVTkNfVFlQRV9HRU5FUkFMLCJzcGVlZCIsc3BlZWRfbWFpbn0sCiAjZW5kaWYKLSNpZiAhZGVmaW5lZChPUEVOU1NMX05PX1NPQ0spICYmICEoZGVmaW5lZChPUEVOU1NMX05PX1NTTDIpICYmIGRlZmluZWQoT1BFTlNTTF9OT19TU0wzKSkKKyNpZiAhZGVmaW5lZChPUEVOU1NMX05PX1NPQ0spCiAJe0ZVTkNfVFlQRV9HRU5FUkFMLCJzX3RpbWUiLHNfdGltZV9tYWlufSwKICNlbmRpZgogCXtGVU5DX1RZUEVfR0VORVJBTCwidmVyc2lvbiIsdmVyc2lvbl9tYWlufSwKQEAgLTEyNiw3ICsxMjYsNyBAQAogI2VuZGlmCiAJe0ZVTkNfVFlQRV9HRU5FUkFMLCJjcmwycGtjczciLGNybDJwa2NzN19tYWlufSwKIAl7RlVOQ19UWVBFX0dFTkVSQUwsInNlc3NfaWQiLHNlc3NfaWRfbWFpbn0sCi0jaWYgIWRlZmluZWQoT1BFTlNTTF9OT19TT0NLKSAmJiAhKGRlZmluZWQoT1BFTlNTTF9OT19TU0wyKSAmJiBkZWZpbmVkKE9QRU5TU0xfTk9fU1NMMykpCisjaWYgIWRlZmluZWQoT1BFTlNTTF9OT19TT0NLKQogCXtGVU5DX1RZUEVfR0VORVJBTCwiY2lwaGVycyIsY2lwaGVyc19tYWlufSwKICNlbmRpZgogCXtGVU5DX1RZUEVfR0VORVJBTCwibnNlcSIsbnNlcV9tYWlufSwKZGlmZiAtLWdpdCBhL2FwcHMvcHJvZ3MucGwgYi9hcHBzL3Byb2dzLnBsCmluZGV4IDM5Y2E4ZjcuLmZhNjI1OGMgMTAwNjQ0Ci0tLSBhL2FwcHMvcHJvZ3MucGwKKysrIGIvYXBwcy9wcm9ncy5wbApAQCAtMzIsNyArMzIsNyBAQAogCXB1c2goQGZpbGVzLCRfKTsKIAkkc3RyPSJcdHtGVU5DX1RZUEVfR0VORVJBTCxcIiRfXCIsJHtffV9tYWlufSxcbiI7CiAJaWYgKCgkXyA9fiAvXnNfLykgfHwgKCRfID1+IC9eY2lwaGVycyQvKSkKLQkJeyBwcmludCAiI2lmICFkZWZpbmVkKE9QRU5TU0xfTk9fU09DSykgJiYgIShkZWZpbmVkKE9QRU5TU0xfTk9fU1NMMikgJiYgZGVmaW5lZChPUEVOU1NMX05PX1NTTDMpKVxuJHtzdHJ9I2VuZGlmXG4iOyB9IAorCQl7IHByaW50ICIjaWYgIWRlZmluZWQoT1BFTlNTTF9OT19TT0NLKVxuJHtzdHJ9I2VuZGlmXG4iOyB9IAogCWVsc2lmICggKCRfID1+IC9ec3BlZWQkLykpCiAJCXsgcHJpbnQgIiNpZm5kZWYgT1BFTlNTTF9OT19TUEVFRFxuJHtzdHJ9I2VuZGlmXG4iOyB9CiAJZWxzaWYgKCAoJF8gPX4gL15lbmdpbmUkLykpCmRpZmYgLS1naXQgYS9hcHBzL3NfY2xpZW50LmMgYi9hcHBzL3NfY2xpZW50LmMKaW5kZXggMjk5ZmFjZC4uZGZlMmRlMSAxMDA2NDQKLS0tIGEvYXBwcy9zX2NsaWVudC5jCisrKyBiL2FwcHMvc19jbGllbnQuYwpAQCAtMjkwLDYgKzI5MCw3IEBACiAJQklPX3ByaW50ZihiaW9fZXJyLCIgLWNvbm5lY3QgaG9zdDpwb3J0IC0gd2hvIHRvIGNvbm5lY3QgdG8gKGRlZmF1bHQgaXMgJXM6JXMpXG4iLFNTTF9IT1NUX05BTUUsUE9SVF9TVFIpOwogCiAJQklPX3ByaW50ZihiaW9fZXJyLCIgLXZlcmlmeSBhcmcgICAtIHR1cm4gb24gcGVlciBjZXJ0aWZpY2F0ZSB2ZXJpZmljYXRpb25cbiIpOworCUJJT19wcmludGYoYmlvX2VyciwiIC12ZXJpZnlfcmV0dXJuX2Vycm9yIC0gcmV0dXJuIHZlcmlmaWNhdGlvbiBlcnJvcnNcbiIpOwogCUJJT19wcmludGYoYmlvX2VyciwiIC1jZXJ0IGFyZyAgICAgLSBjZXJ0aWZpY2F0ZSBmaWxlIHRvIHVzZSwgUEVNIGZvcm1hdCBhc3N1bWVkXG4iKTsKIAlCSU9fcHJpbnRmKGJpb19lcnIsIiAtY2VydGZvcm0gYXJnIC0gY2VydGlmaWNhdGUgZm9ybWF0IChQRU0gb3IgREVSKSBQRU0gZGVmYXVsdFxuIik7CiAJQklPX3ByaW50ZihiaW9fZXJyLCIgLWtleSBhcmcgICAgICAtIFByaXZhdGUga2V5IGZpbGUgdG8gdXNlLCBpbiBjZXJ0IGZpbGUgaWZcbiIpOwpAQCAtMzAwLDYgKzMwMSw3IEBACiAJQklPX3ByaW50ZihiaW9fZXJyLCIgLUNBZmlsZSBhcmcgICAtIFBFTSBmb3JtYXQgZmlsZSBvZiBDQSdzXG4iKTsKIAlCSU9fcHJpbnRmKGJpb19lcnIsIiAtcmVjb25uZWN0ICAgIC0gRHJvcCBhbmQgcmUtbWFrZSB0aGUgY29ubmVjdGlvbiB3aXRoIHRoZSBzYW1lIFNlc3Npb24tSURcbiIpOwogCUJJT19wcmludGYoYmlvX2VyciwiIC1wYXVzZSAgICAgICAgLSBzbGVlcCgxKSBhZnRlciBlYWNoIHJlYWQoMikgYW5kIHdyaXRlKDIpIHN5c3RlbSBjYWxsXG4iKTsKKwlCSU9fcHJpbnRmKGJpb19lcnIsIiAtcHJleGl0ICAgICAgIC0gcHJpbnQgc2Vzc2lvbiBpbmZvcm1hdGlvbiBldmVuIG9uIGNvbm5lY3Rpb24gZmFpbHVyZVxuIik7CiAJQklPX3ByaW50ZihiaW9fZXJyLCIgLXNob3djZXJ0cyAgICAtIHNob3cgYWxsIGNlcnRpZmljYXRlcyBpbiB0aGUgY2hhaW5cbiIpOwogCUJJT19wcmludGYoYmlvX2VyciwiIC1kZWJ1ZyAgICAgICAgLSBleHRyYSBvdXRwdXRcbiIpOwogI2lmZGVmIFdBVFQzMgpkaWZmIC0tZ2l0IGEvYXBwcy9zX3NlcnZlci5jIGIvYXBwcy9zX3NlcnZlci5jCmluZGV4IDgxOThkN2YuLmZlN2FkODggMTAwNjQ0Ci0tLSBhL2FwcHMvc19zZXJ2ZXIuYworKysgYi9hcHBzL3Nfc2VydmVyLmMKQEAgLTQ2Myw2ICs0NjMsNyBAQAogCUJJT19wcmludGYoYmlvX2VyciwiIC1jb250ZXh0IGFyZyAgLSBzZXQgc2Vzc2lvbiBJRCBjb250ZXh0XG4iKTsKIAlCSU9fcHJpbnRmKGJpb19lcnIsIiAtdmVyaWZ5IGFyZyAgIC0gdHVybiBvbiBwZWVyIGNlcnRpZmljYXRlIHZlcmlmaWNhdGlvblxuIik7CiAJQklPX3ByaW50ZihiaW9fZXJyLCIgLVZlcmlmeSBhcmcgICAtIHR1cm4gb24gcGVlciBjZXJ0aWZpY2F0ZSB2ZXJpZmljYXRpb24sIG11c3QgaGF2ZSBhIGNlcnQuXG4iKTsKKwlCSU9fcHJpbnRmKGJpb19lcnIsIiAtdmVyaWZ5X3JldHVybl9lcnJvciAtIHJldHVybiB2ZXJpZmljYXRpb24gZXJyb3JzXG4iKTsKIAlCSU9fcHJpbnRmKGJpb19lcnIsIiAtY2VydCBhcmcgICAgIC0gY2VydGlmaWNhdGUgZmlsZSB0byB1c2VcbiIpOwogCUJJT19wcmludGYoYmlvX2VyciwiICAgICAgICAgICAgICAgICAoZGVmYXVsdCBpcyAlcylcbiIsVEVTVF9DRVJUKTsKIAlCSU9fcHJpbnRmKGJpb19lcnIsIiAtY3JsX2NoZWNrICAgIC0gY2hlY2sgdGhlIHBlZXIgY2VydGlmaWNhdGUgaGFzIG5vdCBiZWVuIHJldm9rZWQgYnkgaXRzIENBLlxuIiBcCkBAIC01MzQsNiArNTM1LDcgQEAKIAlCSU9fcHJpbnRmKGJpb19lcnIsIiAtbm9fZWNkaGUgICAgIC0gRGlzYWJsZSBlcGhlbWVyYWwgRUNESFxuIik7CiAjZW5kaWYKIAlCSU9fcHJpbnRmKGJpb19lcnIsIiAtYnVncyAgICAgICAgIC0gVHVybiBvbiBTU0wgYnVnIGNvbXBhdGliaWxpdHlcbiIpOworCUJJT19wcmludGYoYmlvX2VyciwiIC1oYWNrICAgICAgICAgLSB3b3JrYXJvdW5kIGZvciBlYXJseSBOZXRzY2FwZSBjb2RlXG4iKTsKIAlCSU9fcHJpbnRmKGJpb19lcnIsIiAtd3d3ICAgICAgICAgIC0gUmVzcG9uZCB0byBhICdHRVQgLycgd2l0aCBhIHN0YXR1cyBwYWdlXG4iKTsKIAlCSU9fcHJpbnRmKGJpb19lcnIsIiAtV1dXICAgICAgICAgIC0gUmVzcG9uZCB0byBhICdHRVQgLzxwYXRoPiBIVFRQLzEuMCcgd2l0aCBmaWxlIC4vPHBhdGg+XG4iKTsKIAlCSU9fcHJpbnRmKGJpb19lcnIsIiAtSFRUUCAgICAgICAgIC0gUmVzcG9uZCB0byBhICdHRVQgLzxwYXRoPiBIVFRQLzEuMCcgd2l0aCBmaWxlIC4vPHBhdGg+XG4iKTsKQEAgLTU2Miw2ICs1NjQsMTAgQEAKICNlbmRpZgogCUJJT19wcmludGYoYmlvX2VyciwiIC1rZXltYXRleHBvcnQgbGFiZWwgICAtIEV4cG9ydCBrZXlpbmcgbWF0ZXJpYWwgdXNpbmcgbGFiZWxcbiIpOwogCUJJT19wcmludGYoYmlvX2VyciwiIC1rZXltYXRleHBvcnRsZW4gbGVuICAtIEV4cG9ydCBsZW4gYnl0ZXMgb2Yga2V5aW5nIG1hdGVyaWFsIChkZWZhdWx0IDIwKVxuIik7CisJQklPX3ByaW50ZihiaW9fZXJyLCIgLXN0YXR1cyAgICAgICAgICAgLSByZXNwb25kIHRvIGNlcnRpZmljYXRlIHN0YXR1cyByZXF1ZXN0c1xuIik7CisJQklPX3ByaW50ZihiaW9fZXJyLCIgLXN0YXR1c192ZXJib3NlICAgLSBlbmFibGUgc3RhdHVzIHJlcXVlc3QgdmVyYm9zZSBwcmludG91dFxuIik7CisJQklPX3ByaW50ZihiaW9fZXJyLCIgLXN0YXR1c190aW1lb3V0IG4gLSBzdGF0dXMgcmVxdWVzdCByZXNwb25kZXIgdGltZW91dFxuIik7CisJQklPX3ByaW50ZihiaW9fZXJyLCIgLXN0YXR1c191cmwgVVJMICAgLSBzdGF0dXMgcmVxdWVzdCBmYWxsYmFjayBVUkxcbiIpOwogCX0KIAogc3RhdGljIGludCBsb2NhbF9hcmdjPTA7CkBAIC03MzksNyArNzQ1LDcgQEAKIAkKIAlpZiAoc2VydmVybmFtZSkKIAkJewotICAgIAkJaWYgKHN0cmNtcChzZXJ2ZXJuYW1lLHAtPnNlcnZlcm5hbWUpKSAKKyAgICAJCWlmIChzdHJjYXNlY21wKHNlcnZlcm5hbWUscC0+c2VydmVybmFtZSkpIAogCQkJcmV0dXJuIHAtPmV4dGVuc2lvbl9lcnJvcjsKIAkJaWYgKGN0eDIpCiAJCQl7CkBAIC0xMzU2LDYgKzEzNjIsMTQgQEAKIAkJc3ZfdXNhZ2UoKTsKIAkJZ290byBlbmQ7CiAJCX0KKyNpZm5kZWYgT1BFTlNTTF9OT19EVExTMQorCWlmICh3d3cgJiYgc29ja2V0X3R5cGUgPT0gU09DS19ER1JBTSkKKwkJeworCQlCSU9fcHJpbnRmKGJpb19lcnIsCisJCQkJIkNhbid0IHVzZSAtSFRUUCwgLXd3dyBvciAtV1dXIHdpdGggRFRMU1xuIik7CisJCWdvdG8gZW5kOworCQl9CisjZW5kaWYKIAogI2lmICFkZWZpbmVkKE9QRU5TU0xfTk9fSlBBS0UpICYmICFkZWZpbmVkKE9QRU5TU0xfTk9fUFNLKQogCWlmIChqcGFrZV9zZWNyZXQpCmRpZmYgLS1naXQgYS9idWlsZC1jb25maWctMzIubWsgYi9idWlsZC1jb25maWctMzIubWsKaW5kZXggZDAzNWYxZS4uOWYxMzgwYiAxMDA2NDQKLS0tIGEvYnVpbGQtY29uZmlnLTMyLm1rCisrKyBiL2J1aWxkLWNvbmZpZy0zMi5tawpAQCAtMSw2ICsxLDYgQEAKICMgQXV0by1nZW5lcmF0ZWQgLSBETyBOT1QgRURJVCEKICMgVG8gcmVnZW5lcmF0ZSwgZWRpdCBvcGVuc3NsLmNvbmZpZywgdGhlbiBydW46Ci0jICAgICAuL2ltcG9ydF9vcGVuc3NsLnNoIGltcG9ydCAvcGF0aC90by9vcGVuc3NsLTEuMC4xaC50YXIuZ3oKKyMgICAgIC4vaW1wb3J0X29wZW5zc2wuc2ggaW1wb3J0IC9wYXRoL3RvL29wZW5zc2wtMS4wLjFqLnRhci5negogIwogb3BlbnNzbF9jZmxhZ3NfMzIgOj0gXAogICAtRE9QRU5TU0xfVEhSRUFEUyBcCkBAIC0zMSw2ICszMSw3IEBACiAgIC1ET1BFTlNTTF9OT19TSEEwIFwKICAgLURPUEVOU1NMX05PX1NUQVRJQ19FTkdJTkUgXAogICAtRE9QRU5TU0xfTk9fU1RPUkUgXAorICAtRE9QRU5TU0xfTk9fVU5JVF9URVNUIFwKICAgLURPUEVOU1NMX05PX1dISVJMUE9PTCBcCiAKIG9wZW5zc2xfY2ZsYWdzX3N0YXRpY18zMiA6PSBcCkBAIC02MCw1ICs2MSw2IEBACiAgIC1ET1BFTlNTTF9OT19TSEEwIFwKICAgLURPUEVOU1NMX05PX1NUQVRJQ19FTkdJTkUgXAogICAtRE9QRU5TU0xfTk9fU1RPUkUgXAorICAtRE9QRU5TU0xfTk9fVU5JVF9URVNUIFwKICAgLURPUEVOU1NMX05PX1dISVJMUE9PTCBcCiAKZGlmZiAtLWdpdCBhL2J1aWxkLWNvbmZpZy02NC5tayBiL2J1aWxkLWNvbmZpZy02NC5tawppbmRleCA0NWE4MTQxLi4yNDc1YzJlIDEwMDY0NAotLS0gYS9idWlsZC1jb25maWctNjQubWsKKysrIGIvYnVpbGQtY29uZmlnLTY0Lm1rCkBAIC0xLDYgKzEsNiBAQAogIyBBdXRvLWdlbmVyYXRlZCAtIERPIE5PVCBFRElUIQogIyBUbyByZWdlbmVyYXRlLCBlZGl0IG9wZW5zc2wuY29uZmlnLCB0aGVuIHJ1bjoKLSMgICAgIC4vaW1wb3J0X29wZW5zc2wuc2ggaW1wb3J0IC9wYXRoL3RvL29wZW5zc2wtMS4wLjFoLnRhci5negorIyAgICAgLi9pbXBvcnRfb3BlbnNzbC5zaCBpbXBvcnQgL3BhdGgvdG8vb3BlbnNzbC0xLjAuMWoudGFyLmd6CiAjCiBvcGVuc3NsX2NmbGFnc182NCA6PSBcCiAgIC1ET1BFTlNTTF9USFJFQURTIFwKQEAgLTMxLDYgKzMxLDcgQEAKICAgLURPUEVOU1NMX05PX1NIQTAgXAogICAtRE9QRU5TU0xfTk9fU1RBVElDX0VOR0lORSBcCiAgIC1ET1BFTlNTTF9OT19TVE9SRSBcCisgIC1ET1BFTlNTTF9OT19VTklUX1RFU1QgXAogICAtRE9QRU5TU0xfTk9fV0hJUkxQT09MIFwKIAogb3BlbnNzbF9jZmxhZ3Nfc3RhdGljXzY0IDo9IFwKQEAgLTYwLDUgKzYxLDYgQEAKICAgLURPUEVOU1NMX05PX1NIQTAgXAogICAtRE9QRU5TU0xfTk9fU1RBVElDX0VOR0lORSBcCiAgIC1ET1BFTlNTTF9OT19TVE9SRSBcCisgIC1ET1BFTlNTTF9OT19VTklUX1RFU1QgXAogICAtRE9QRU5TU0xfTk9fV0hJUkxQT09MIFwKIApkaWZmIC0tZ2l0IGEvYnVpbGQtY29uZmlnLXRydXN0eS5tayBiL2J1aWxkLWNvbmZpZy10cnVzdHkubWsKaW5kZXggNGQ2ZmI1OC4uMzQ1NzRmMyAxMDA2NDQKLS0tIGEvYnVpbGQtY29uZmlnLXRydXN0eS5taworKysgYi9idWlsZC1jb25maWctdHJ1c3R5Lm1rCkBAIC0xLDYgKzEsNiBAQAogIyBBdXRvLWdlbmVyYXRlZCAtIERPIE5PVCBFRElUIQogIyBUbyByZWdlbmVyYXRlLCBlZGl0IG9wZW5zc2wuY29uZmlnLCB0aGVuIHJ1bjoKLSMgICAgIC4vaW1wb3J0X29wZW5zc2wuc2ggaW1wb3J0IC9wYXRoL3RvL29wZW5zc2wtMS4wLjFoLnRhci5negorIyAgICAgLi9pbXBvcnRfb3BlbnNzbC5zaCBpbXBvcnQgL3BhdGgvdG8vb3BlbnNzbC0xLjAuMWoudGFyLmd6CiAjCiBvcGVuc3NsX2NmbGFnc190cnVzdHkgOj0gXAogICAtRExfRU5ESUFOIFwKQEAgLTQ4LDYgKzQ4LDcgQEAKICAgLURPUEVOU1NMX05PX1RTIFwKICAgLURPUEVOU1NMX05PX1RYVF9EQiBcCiAgIC1ET1BFTlNTTF9OT19VSSBcCisgIC1ET1BFTlNTTF9OT19VTklUX1RFU1QgXAogICAtRE9QRU5TU0xfTk9fV0hJUkxQT09MIFwKIAogb3BlbnNzbF9jZmxhZ3Nfc3RhdGljX3RydXN0eSA6PSBcCkBAIC05Niw1ICs5Nyw2IEBACiAgIC1ET1BFTlNTTF9OT19UUyBcCiAgIC1ET1BFTlNTTF9OT19UWFRfREIgXAogICAtRE9QRU5TU0xfTk9fVUkgXAorICAtRE9QRU5TU0xfTk9fVU5JVF9URVNUIFwKICAgLURPUEVOU1NMX05PX1dISVJMUE9PTCBcCiAKZGlmZiAtLWdpdCBhL2NyeXB0by9MUGRpcl93aW4uYyBiL2NyeXB0by9MUGRpcl93aW4uYwppbmRleCA3MDJkYmM3Li5kNWI1ZTJjOSAxMDA2NDQKLS0tIGEvY3J5cHRvL0xQZGlyX3dpbi5jCisrKyBiL2NyeXB0by9MUGRpcl93aW4uYwpAQCAtMSw0ICsxLDMgQEAKLS8qICRMUDogTFBsaWIvc291cmNlL0xQZGlyX3dpbi5jLHYgMS4xMCAyMDA0LzA4LzI2IDEzOjM2OjA1IF9jdnNfbGV2aXR0ZSBFeHAgJCAqLwogLyoKICAqIENvcHlyaWdodCAoYykgMjAwNCwgUmljaGFyZCBMZXZpdHRlIDxyaWNoYXJkQGxldml0dGUub3JnPgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAgLTYzLDYgKzYyLDE2IEBACiAgIGVycm5vID0gMDsKICAgaWYgKCpjdHggPT0gTlVMTCkKICAgICB7CisgICAgICBjb25zdCBjaGFyICpleHRkaXIgPSBkaXJlY3Rvcnk7CisgICAgICBjaGFyICpleHRkaXJidWYgPSBOVUxMOworICAgICAgc2l6ZV90IGRpcmxlbiA9IHN0cmxlbiAoZGlyZWN0b3J5KTsKKworICAgICAgaWYgKGRpcmxlbiA9PSAwKQorCXsKKwkgIGVycm5vID0gRU5PRU5UOworCSAgcmV0dXJuIDA7CisJfQorCiAgICAgICAqY3R4ID0gKExQX0RJUl9DVFggKiltYWxsb2Moc2l6ZW9mKExQX0RJUl9DVFgpKTsKICAgICAgIGlmICgqY3R4ID09IE5VTEwpCiAJewpAQCAtNzEsMTUgKzgwLDM1IEBACiAJfQogICAgICAgbWVtc2V0KCpjdHgsICdcMCcsIHNpemVvZihMUF9ESVJfQ1RYKSk7CiAKKyAgICAgIGlmIChkaXJlY3RvcnlbZGlybGVuLTFdICE9ICcqJykKKwl7CisJICBleHRkaXJidWYgPSAoY2hhciAqKW1hbGxvYyhkaXJsZW4gKyAzKTsKKwkgIGlmIChleHRkaXJidWYgPT0gTlVMTCkKKwkgICAgeworCSAgICAgIGZyZWUoKmN0eCk7CisJICAgICAgKmN0eCA9IE5VTEw7CisJICAgICAgZXJybm8gPSBFTk9NRU07CisJICAgICAgcmV0dXJuIDA7CisJICAgIH0KKwkgIGlmIChkaXJlY3RvcnlbZGlybGVuLTFdICE9ICcvJyAmJiBkaXJlY3RvcnlbZGlybGVuLTFdICE9ICdcXCcpCisJICAgIGV4dGRpciA9IHN0cmNhdChzdHJjcHkgKGV4dGRpcmJ1ZixkaXJlY3RvcnkpLCIvKiIpOworCSAgZWxzZQorCSAgICBleHRkaXIgPSBzdHJjYXQoc3RyY3B5IChleHRkaXJidWYsZGlyZWN0b3J5KSwiKiIpOworCX0KKwogICAgICAgaWYgKHNpemVvZihUQ0hBUikgIT0gc2l6ZW9mKGNoYXIpKQogCXsKIAkgIFRDSEFSICp3ZGlyID0gTlVMTDsKIAkgIC8qIGxlbl8wIGRlbm90ZXMgc3RyaW5nIGxlbmd0aCAqd2l0aCogdHJhaWxpbmcgMCAqLyAKLQkgIHNpemVfdCBpbmRleCA9IDAsbGVuXzAgPSBzdHJsZW4oZGlyZWN0b3J5KSArIDE7CisJICBzaXplX3QgaW5kZXggPSAwLGxlbl8wID0gc3RybGVuKGV4dGRpcikgKyAxOwogCi0JICB3ZGlyID0gKFRDSEFSICopbWFsbG9jKGxlbl8wICogc2l6ZW9mKFRDSEFSKSk7CisJICB3ZGlyID0gKFRDSEFSICopY2FsbG9jKGxlbl8wLCBzaXplb2YoVENIQVIpKTsKIAkgIGlmICh3ZGlyID09IE5VTEwpCiAJICAgIHsKKwkgICAgICBpZiAoZXh0ZGlyYnVmICE9IE5VTEwpCisJCXsKKwkJICBmcmVlIChleHRkaXJidWYpOworCQl9CiAJICAgICAgZnJlZSgqY3R4KTsKIAkgICAgICAqY3R4ID0gTlVMTDsKIAkgICAgICBlcnJubyA9IEVOT01FTTsKQEAgLTg3LDE3ICsxMTYsMjMgQEAKIAkgICAgfQogCiAjaWZkZWYgTFBfTVVMVElCWVRFX0FWQUlMQUJMRQotCSAgaWYgKCFNdWx0aUJ5dGVUb1dpZGVDaGFyKENQX0FDUCwgMCwgZGlyZWN0b3J5LCBsZW5fMCwgKFdDSEFSICopd2RpciwgbGVuXzApKQorCSAgaWYgKCFNdWx0aUJ5dGVUb1dpZGVDaGFyKENQX0FDUCwgMCwgZXh0ZGlyLCBsZW5fMCwgKFdDSEFSICopd2RpciwgbGVuXzApKQogI2VuZGlmCiAJICAgIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IGxlbl8wOyBpbmRleCsrKQotCSAgICAgIHdkaXJbaW5kZXhdID0gKFRDSEFSKWRpcmVjdG9yeVtpbmRleF07CisJICAgICAgd2RpcltpbmRleF0gPSAoVENIQVIpZXh0ZGlyW2luZGV4XTsKIAogCSAgKCpjdHgpLT5oYW5kbGUgPSBGaW5kRmlyc3RGaWxlKHdkaXIsICYoKmN0eCktPmN0eCk7CiAKIAkgIGZyZWUod2Rpcik7CiAJfQogICAgICAgZWxzZQotCSgqY3R4KS0+aGFuZGxlID0gRmluZEZpcnN0RmlsZSgoVENIQVIgKilkaXJlY3RvcnksICYoKmN0eCktPmN0eCk7CisJeworCSAgKCpjdHgpLT5oYW5kbGUgPSBGaW5kRmlyc3RGaWxlKChUQ0hBUiAqKWV4dGRpciwgJigqY3R4KS0+Y3R4KTsKKwl9CisgICAgICBpZiAoZXh0ZGlyYnVmICE9IE5VTEwpCisJeworCSAgZnJlZSAoZXh0ZGlyYnVmKTsKKwl9CiAKICAgICAgIGlmICgoKmN0eCktPmhhbmRsZSA9PSBJTlZBTElEX0hBTkRMRV9WQUxVRSkKIAl7CkBAIC0xMTQsNyArMTQ5LDYgQEAKIAkgIHJldHVybiAwOwogCX0KICAgICB9Ci0KICAgaWYgKHNpemVvZihUQ0hBUikgIT0gc2l6ZW9mKGNoYXIpKQogICAgIHsKICAgICAgIFRDSEFSICp3ZGlyID0gKCpjdHgpLT5jdHguY0ZpbGVOYW1lOwpkaWZmIC0tZ2l0IGEvY3J5cHRvL2Flcy9hc20vYWVzbmkteDg2XzY0LnBsIGIvY3J5cHRvL2Flcy9hc20vYWVzbmkteDg2XzY0LnBsCmluZGV4IDBkYmIxOTQuLmM5MjcwZGYgMTAwNjQ0Ci0tLSBhL2NyeXB0by9hZXMvYXNtL2Flc25pLXg4Nl82NC5wbAorKysgYi9jcnlwdG8vYWVzL2FzbS9hZXNuaS14ODZfNjQucGwKQEAgLTUyNSw2ICs1MjUsMTYgQEAKIC50eXBlCWFlc25pX2VjYl9lbmNyeXB0LFxAZnVuY3Rpb24sNQogLmFsaWduCTE2CiBhZXNuaV9lY2JfZW5jcnlwdDoKK19fXworJGNvZGUuPTw8X19fIGlmICgkd2luNjQpOworCWxlYQktMHg1OCglcnNwKSwlcnNwCisJbW92YXBzCSV4bW02LCglcnNwKQorCW1vdmFwcwkleG1tNywweDEwKCVyc3ApCisJbW92YXBzCSV4bW04LDB4MjAoJXJzcCkKKwltb3ZhcHMJJXhtbTksMHgzMCglcnNwKQorLkxlY2JfZW5jX2JvZHk6CitfX18KKyRjb2RlLj08PF9fXzsKIAlhbmQJXCQtMTYsJGxlbgogCWp6CS5MZWNiX3JldAogCkBAIC04MDUsNiArODE1LDE2IEBACiAJbW92dXBzCSRpbm91dDUsMHg1MCgkb3V0KQogCiAuTGVjYl9yZXQ6CitfX18KKyRjb2RlLj08PF9fXyBpZiAoJHdpbjY0KTsKKwltb3ZhcHMJKCVyc3ApLCV4bW02CisJbW92YXBzCTB4MTAoJXJzcCksJXhtbTcKKwltb3ZhcHMJMHgyMCglcnNwKSwleG1tOAorCW1vdmFwcwkweDMwKCVyc3ApLCV4bW05CisJbGVhCTB4NTgoJXJzcCksJXJzcAorLkxlY2JfZW5jX3JldDoKK19fXworJGNvZGUuPTw8X19fOwogCXJldAogLnNpemUJYWVzbmlfZWNiX2VuY3J5cHQsLi1hZXNuaV9lY2JfZW5jcnlwdAogX19fCkBAIC0yNzMwLDI4ICsyNzUwLDkgQEAKIC5leHRlcm4JX19pbXBfUnRsVmlydHVhbFVud2luZAogX19fCiAkY29kZS49PDxfX18gaWYgKCRQUkVGSVggZXEgImFlc25pIik7Ci0udHlwZQllY2Jfc2VfaGFuZGxlcixcQGFiaS1vbW5pcG90ZW50CisudHlwZQllY2JfY2NtNjRfc2VfaGFuZGxlcixcQGFiaS1vbW5pcG90ZW50CiAuYWxpZ24JMTYKLWVjYl9zZV9oYW5kbGVyOgotCXB1c2gJJXJzaQotCXB1c2gJJXJkaQotCXB1c2gJJXJieAotCXB1c2gJJXJicAotCXB1c2gJJXIxMgotCXB1c2gJJXIxMwotCXB1c2gJJXIxNAotCXB1c2gJJXIxNQotCXB1c2hmcQotCXN1YglcJDY0LCVyc3AKLQotCW1vdgkxNTIoJGNvbnRleHQpLCVyYXgJIyBwdWxsIGNvbnRleHQtPlJzcAotCi0Jam1wCS5MY29tbW9uX3NlaF90YWlsCi0uc2l6ZQllY2Jfc2VfaGFuZGxlciwuLWVjYl9zZV9oYW5kbGVyCi0KLS50eXBlCWNjbTY0X3NlX2hhbmRsZXIsXEBhYmktb21uaXBvdGVudAotLmFsaWduCTE2Ci1jY202NF9zZV9oYW5kbGVyOgorZWNiX2NjbTY0X3NlX2hhbmRsZXI6CiAJcHVzaAklcnNpCiAJcHVzaAklcmRpCiAJcHVzaAklcmJ4CkBAIC0yNzg4LDcgKzI3ODksNyBAQAogCWxlYQkweDU4KCVyYXgpLCVyYXgJCSMgYWRqdXN0IHN0YWNrIHBvaW50ZXIKIAogCWptcAkuTGNvbW1vbl9zZWhfdGFpbAotLnNpemUJY2NtNjRfc2VfaGFuZGxlciwuLWNjbTY0X3NlX2hhbmRsZXIKKy5zaXplCWVjYl9jY202NF9zZV9oYW5kbGVyLC4tZWNiX2NjbTY0X3NlX2hhbmRsZXIKIAogLnR5cGUJY3RyMzJfc2VfaGFuZGxlcixcQGFiaS1vbW5pcG90ZW50CiAuYWxpZ24JMTYKQEAgLTI5OTMsMTQgKzI5OTQsMTUgQEAKICRjb2RlLj08PF9fXyBpZiAoJFBSRUZJWCBlcSAiYWVzbmkiKTsKIC5MU0VIX2luZm9fZWNiOgogCS5ieXRlCTksMCwwLDAKLQkucnZhCWVjYl9zZV9oYW5kbGVyCisJLnJ2YQllY2JfY2NtNjRfc2VfaGFuZGxlcgorCS5ydmEJLkxlY2JfZW5jX2JvZHksLkxlY2JfZW5jX3JldAkJIyBIYW5kbGVyRGF0YVtdCiAuTFNFSF9pbmZvX2NjbTY0X2VuYzoKIAkuYnl0ZQk5LDAsMCwwCi0JLnJ2YQljY202NF9zZV9oYW5kbGVyCisJLnJ2YQllY2JfY2NtNjRfc2VfaGFuZGxlcgogCS5ydmEJLkxjY202NF9lbmNfYm9keSwuTGNjbTY0X2VuY19yZXQJIyBIYW5kbGVyRGF0YVtdCiAuTFNFSF9pbmZvX2NjbTY0X2RlYzoKIAkuYnl0ZQk5LDAsMCwwCi0JLnJ2YQljY202NF9zZV9oYW5kbGVyCisJLnJ2YQllY2JfY2NtNjRfc2VfaGFuZGxlcgogCS5ydmEJLkxjY202NF9kZWNfYm9keSwuTGNjbTY0X2RlY19yZXQJIyBIYW5kbGVyRGF0YVtdCiAuTFNFSF9pbmZvX2N0cjMyOgogCS5ieXRlCTksMCwwLDAKZGlmZiAtLWdpdCBhL2NyeXB0by9hc24xL2Ffb2JqZWN0LmMgYi9jcnlwdG8vYXNuMS9hX29iamVjdC5jCmluZGV4IDM5NzhjOTEuLjc3YjI3NjggMTAwNjQ0Ci0tLSBhL2NyeXB0by9hc24xL2Ffb2JqZWN0LmMKKysrIGIvY3J5cHRvL2FzbjEvYV9vYmplY3QuYwpAQCAtMjgzLDE3ICsyODMsMjkgQEAKIAlBU04xZXJyKEFTTjFfRl9EMklfQVNOMV9PQkpFQ1QsaSk7CiAJcmV0dXJuKE5VTEwpOwogfQorCiBBU04xX09CSkVDVCAqYzJpX0FTTjFfT0JKRUNUKEFTTjFfT0JKRUNUICoqYSwgY29uc3QgdW5zaWduZWQgY2hhciAqKnBwLAogCSAgICAgbG9uZyBsZW4pCiAJewogCUFTTjFfT0JKRUNUICpyZXQ9TlVMTDsKIAljb25zdCB1bnNpZ25lZCBjaGFyICpwOwogCXVuc2lnbmVkIGNoYXIgKmRhdGE7Ci0JaW50IGk7Ci0JLyogU2FuaXR5IGNoZWNrIE9JRCBlbmNvZGluZzogY2FuJ3QgaGF2ZSBsZWFkaW5nIDB4ODAgaW4KLQkgKiBzdWJpZGVudGlmaWVycywgc2VlOiBYLjY5MCA4LjE5LjIKKwlpbnQgaSwgbGVuZ3RoOworCisJLyogU2FuaXR5IGNoZWNrIE9JRCBlbmNvZGluZy4KKwkgKiBOZWVkIGF0IGxlYXN0IG9uZSBjb250ZW50IG9jdGV0LgorCSAqIE1TQiBtdXN0IGJlIGNsZWFyIGluIHRoZSBsYXN0IG9jdGV0LgorCSAqIGNhbid0IGhhdmUgbGVhZGluZyAweDgwIGluIHN1YmlkZW50aWZpZXJzLCBzZWU6IFguNjkwIDguMTkuMgogCSAqLwotCWZvciAoaSA9IDAsIHAgPSAqcHA7IGkgPCBsZW47IGkrKywgcCsrKQorCWlmIChsZW4gPD0gMCB8fCBsZW4gPiBJTlRfTUFYIHx8IHBwID09IE5VTEwgfHwgKHAgPSAqcHApID09IE5VTEwgfHwKKwkgICAgcFtsZW4gLSAxXSAmIDB4ODApCisJCXsKKwkJQVNOMWVycihBU04xX0ZfQzJJX0FTTjFfT0JKRUNULEFTTjFfUl9JTlZBTElEX09CSkVDVF9FTkNPRElORyk7CisJCXJldHVybiBOVUxMOworCQl9CisJLyogTm93IDAgPCBsZW4gPD0gSU5UX01BWCwgc28gdGhlIGNhc3QgaXMgc2FmZS4gKi8KKwlsZW5ndGggPSAoaW50KWxlbjsKKwlmb3IgKGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyssIHArKykKIAkJewogCQlpZiAoKnAgPT0gMHg4MCAmJiAoIWkgfHwgIShwWy0xXSAmIDB4ODApKSkKIAkJCXsKQEAgLTMxNiwyMyArMzI4LDIzIEBACiAJZGF0YSA9ICh1bnNpZ25lZCBjaGFyICopcmV0LT5kYXRhOwogCXJldC0+ZGF0YSA9IE5VTEw7CiAJLyogb25jZSBkZXRhY2hlZCB3ZSBjYW4gY2hhbmdlIGl0ICovCi0JaWYgKChkYXRhID09IE5VTEwpIHx8IChyZXQtPmxlbmd0aCA8IGxlbikpCisJaWYgKChkYXRhID09IE5VTEwpIHx8IChyZXQtPmxlbmd0aCA8IGxlbmd0aCkpCiAJCXsKIAkJcmV0LT5sZW5ndGg9MDsKIAkJaWYgKGRhdGEgIT0gTlVMTCkgT1BFTlNTTF9mcmVlKGRhdGEpOwotCQlkYXRhPSh1bnNpZ25lZCBjaGFyICopT1BFTlNTTF9tYWxsb2MobGVuID8gKGludClsZW4gOiAxKTsKKwkJZGF0YT0odW5zaWduZWQgY2hhciAqKU9QRU5TU0xfbWFsbG9jKGxlbmd0aCk7CiAJCWlmIChkYXRhID09IE5VTEwpCiAJCQl7IGk9RVJSX1JfTUFMTE9DX0ZBSUxVUkU7IGdvdG8gZXJyOyB9CiAJCXJldC0+ZmxhZ3N8PUFTTjFfT0JKRUNUX0ZMQUdfRFlOQU1JQ19EQVRBOwogCQl9Ci0JbWVtY3B5KGRhdGEscCwoaW50KWxlbik7CisJbWVtY3B5KGRhdGEscCxsZW5ndGgpOwogCS8qIHJlYXR0YWNoIGRhdGEgdG8gb2JqZWN0LCBhZnRlciB3aGljaCBpdCByZW1haW5zIGNvbnN0ICovCiAJcmV0LT5kYXRhICA9ZGF0YTsKLQlyZXQtPmxlbmd0aD0oaW50KWxlbjsKKwlyZXQtPmxlbmd0aD1sZW5ndGg7CiAJcmV0LT5zbj1OVUxMOwogCXJldC0+bG49TlVMTDsKIAkvKiByZXQtPmZsYWdzPUFTTjFfT0JKRUNUX0ZMQUdfRFlOQU1JQzsgd2Uga25vdyBpdCBpcyBkeW5hbWljICovCi0JcCs9bGVuOworCXArPWxlbmd0aDsKIAogCWlmIChhICE9IE5VTEwpICgqYSk9cmV0OwogCSpwcD1wOwpkaWZmIC0tZ2l0IGEvY3J5cHRvL2FzbjEvYV9zdHJleC5jIGIvY3J5cHRvL2FzbjEvYV9zdHJleC5jCmluZGV4IGVhZDM3YWMuLjhmYjQxOTMgMTAwNjQ0Ci0tLSBhL2NyeXB0by9hc24xL2Ffc3RyZXguYworKysgYi9jcnlwdG8vYXNuMS9hX3N0cmV4LmMKQEAgLTU2OCw2ICs1NjgsNyBAQAogCW1iZmxhZyB8PSBNQlNUUklOR19GTEFHOwogCXN0bXAuZGF0YSA9IE5VTEw7CiAJc3RtcC5sZW5ndGggPSAwOworCXN0bXAuZmxhZ3MgPSAwOwogCXJldCA9IEFTTjFfbWJzdHJpbmdfY29weSgmc3RyLCBpbi0+ZGF0YSwgaW4tPmxlbmd0aCwgbWJmbGFnLCBCX0FTTjFfVVRGOFNUUklORyk7CiAJaWYocmV0IDwgMCkgcmV0dXJuIHJldDsKIAkqb3V0ID0gc3RtcC5kYXRhOwpkaWZmIC0tZ2l0IGEvY3J5cHRvL2FzbjEvYV91dGN0bS5jIGIvY3J5cHRvL2FzbjEvYV91dGN0bS5jCmluZGV4IDA3MmUyMzYuLmJiZGM5YjMgMTAwNjQ0Ci0tLSBhL2NyeXB0by9hc24xL2FfdXRjdG0uYworKysgYi9jcnlwdG8vYXNuMS9hX3V0Y3RtLmMKQEAgLTE5NiwyNCArMTk2LDI5IEBACiAJc3RydWN0IHRtICp0czsKIAlzdHJ1Y3QgdG0gZGF0YTsKIAlzaXplX3QgbGVuID0gMjA7CisJaW50IGZyZWVfcyA9IDA7CiAKIAlpZiAocyA9PSBOVUxMKQorCQl7CisJCWZyZWVfcyA9IDE7CiAJCXM9TV9BU04xX1VUQ1RJTUVfbmV3KCk7CisJCX0KIAlpZiAocyA9PSBOVUxMKQotCQlyZXR1cm4oTlVMTCk7CisJCWdvdG8gZXJyOworCiAKIAl0cz1PUEVOU1NMX2dtdGltZSgmdCwgJmRhdGEpOwogCWlmICh0cyA9PSBOVUxMKQotCQlyZXR1cm4oTlVMTCk7CisJCWdvdG8gZXJyOwogCiAJaWYgKG9mZnNldF9kYXkgfHwgb2Zmc2V0X3NlYykKIAkJeyAKIAkJaWYgKCFPUEVOU1NMX2dtdGltZV9hZGoodHMsIG9mZnNldF9kYXksIG9mZnNldF9zZWMpKQotCQkJcmV0dXJuIE5VTEw7CisJCQlnb3RvIGVycjsKIAkJfQogCiAJaWYoKHRzLT50bV95ZWFyIDwgNTApIHx8ICh0cy0+dG1feWVhciA+PSAxNTApKQotCQlyZXR1cm4gTlVMTDsKKwkJZ290byBlcnI7CiAKIAlwPShjaGFyICopcy0+ZGF0YTsKIAlpZiAoKHAgPT0gTlVMTCkgfHwgKChzaXplX3Qpcy0+bGVuZ3RoIDwgbGVuKSkKQEAgLTIyMiw3ICsyMjcsNyBAQAogCQlpZiAocCA9PSBOVUxMKQogCQkJewogCQkJQVNOMWVycihBU04xX0ZfQVNOMV9VVENUSU1FX0FESixFUlJfUl9NQUxMT0NfRkFJTFVSRSk7Ci0JCQlyZXR1cm4oTlVMTCk7CisJCQlnb3RvIGVycjsKIAkJCX0KIAkJaWYgKHMtPmRhdGEgIT0gTlVMTCkKIAkJCU9QRU5TU0xfZnJlZShzLT5kYXRhKTsKQEAgLTIzNyw2ICsyNDIsMTAgQEAKIAllYmNkaWMyYXNjaWkocy0+ZGF0YSwgcy0+ZGF0YSwgcy0+bGVuZ3RoKTsKICNlbmRpZgogCXJldHVybihzKTsKKwllcnI6CisJaWYgKGZyZWVfcyAmJiBzKQorCQlNX0FTTjFfVVRDVElNRV9mcmVlKHMpOworCXJldHVybiBOVUxMOwogCX0KIAogCkBAIC0yNjEsNiArMjcwLDExIEBACiAJdCAtPSBvZmZzZXQqNjA7IC8qIEZJWE1FOiBtYXkgb3ZlcmZsb3cgaW4gZXh0cmVtZSBjYXNlcyAqLwogCiAJdG0gPSBPUEVOU1NMX2dtdGltZSgmdCwgJmRhdGEpOworCS8qIE5COiAtMSwgMCwgMSBhbHJlYWR5IHZhbGlkIHJldHVybiB2YWx1ZXMgc28gdXNlIC0yIHRvCisJICogaW5kaWNhdGUgZXJyb3IuCisJICovCisJaWYgKHRtID09IE5VTEwpCisJCXJldHVybiAtMjsKIAkKICNkZWZpbmUgcmV0dXJuX2NtcChhLGIpIGlmICgoYSk8KGIpKSByZXR1cm4gLTE7IGVsc2UgaWYgKChhKT4oYikpIHJldHVybiAxCiAJeWVhciA9IGcyKHMtPmRhdGEpOwpkaWZmIC0tZ2l0IGEvY3J5cHRvL2FzbjEvYW1ldGhfbGliLmMgYi9jcnlwdG8vYXNuMS9hbWV0aF9saWIuYwppbmRleCBhMTllMDU4Li5lZjE1M2Q0IDEwMDY0NAotLS0gYS9jcnlwdG8vYXNuMS9hbWV0aF9saWIuYworKysgYi9jcnlwdG8vYXNuMS9hbWV0aF9saWIuYwpAQCAtMjU4LDcgKzI1OCwxMiBAQAogCWlmICghYW1ldGgpCiAJCXJldHVybiAwOwogCWFtZXRoLT5wa2V5X2Jhc2VfaWQgPSB0bzsKLQlyZXR1cm4gRVZQX1BLRVlfYXNuMV9hZGQwKGFtZXRoKTsKKwlpZiAoIUVWUF9QS0VZX2FzbjFfYWRkMChhbWV0aCkpCisJCXsKKwkJRVZQX1BLRVlfYXNuMV9mcmVlKGFtZXRoKTsKKwkJcmV0dXJuIDA7CisJCX0KKwlyZXR1cm4gMTsKIAl9CiAKIGludCBFVlBfUEtFWV9hc24xX2dldDBfaW5mbyhpbnQgKnBwa2V5X2lkLCBpbnQgKnBwa2V5X2Jhc2VfaWQsIGludCAqcHBrZXlfZmxhZ3MsCmRpZmYgLS1naXQgYS9jcnlwdG8vYXNuMS9hc24xX2xpYi5jIGIvY3J5cHRvL2FzbjEvYXNuMV9saWIuYwppbmRleCAxYmNiNDRhLi5mYTA0YjA4IDEwMDY0NAotLS0gYS9jcnlwdG8vYXNuMS9hc24xX2xpYi5jCisrKyBiL2NyeXB0by9hc24xL2FzbjFfbGliLmMKQEAgLTEzMSw2ICsxMzEsOSBAQAogCSpwY2xhc3M9eGNsYXNzOwogCWlmICghYXNuMV9nZXRfbGVuZ3RoKCZwLCZpbmYscGxlbmd0aCwoaW50KW1heCkpIGdvdG8gZXJyOwogCisJaWYgKGluZiAmJiAhKHJldCAmIFZfQVNOMV9DT05TVFJVQ1RFRCkpCisJCWdvdG8gZXJyOworCiAjaWYgMAogCWZwcmludGYoc3RkZXJyLCJwPSVkICsgKnBsZW5ndGg9JWxkID4gb21heD0lbGQgKyAqcHA9JWQgICglZCA+ICVkKVxuIiwgCiAJCShpbnQpcCwqcGxlbmd0aCxvbWF4LChpbnQpKnBwLChpbnQpKHArICpwbGVuZ3RoKSwKZGlmZiAtLWdpdCBhL2NyeXB0by9hc24xL2Fzbl9taW1lLmMgYi9jcnlwdG8vYXNuMS9hc25fbWltZS5jCmluZGV4IDU0YTcwNGEuLjEzZDAwM2IgMTAwNjQ0Ci0tLSBhL2NyeXB0by9hc24xL2Fzbl9taW1lLmMKKysrIGIvY3J5cHRvL2FzbjEvYXNuX21pbWUuYwpAQCAtNjY3LDYgKzY2Nyw4IEBACiAJaW50IGxlbiwgc3RhdGUsIHNhdmVfc3RhdGUgPSAwOwogCiAJaGVhZGVycyA9IHNrX01JTUVfSEVBREVSX25ldyhtaW1lX2hkcl9jbXApOworCWlmICghaGVhZGVycykKKwkJcmV0dXJuIE5VTEw7CiAJd2hpbGUgKChsZW4gPSBCSU9fZ2V0cyhiaW8sIGxpbmVidWYsIE1BWF9TTUxFTikpID4gMCkgewogCS8qIElmIHdoaXRlc3BhY2UgYXQgbGluZSBzdGFydCB0aGVuIGNvbnRpbnVhdGlvbiBsaW5lICovCiAJaWYobWhkciAmJiBpc3NwYWNlKCh1bnNpZ25lZCBjaGFyKWxpbmVidWZbMF0pKSBzdGF0ZSA9IE1JTUVfTkFNRTsKZGlmZiAtLWdpdCBhL2NyeXB0by9hc24xL2Fzbl9wYWNrLmMgYi9jcnlwdG8vYXNuMS9hc25fcGFjay5jCmluZGV4IGFkNzM4MjEuLjAwZGJmNWEgMTAwNjQ0Ci0tLSBhL2NyeXB0by9hc24xL2Fzbl9wYWNrLmMKKysrIGIvY3J5cHRvL2FzbjEvYXNuX3BhY2suYwpAQCAtMTM0LDE1ICsxMzQsMjMgQEAKIAkJCiAJaWYgKCEob2N0bXAtPmxlbmd0aCA9IGkyZChvYmosIE5VTEwpKSkgewogCQlBU04xZXJyKEFTTjFfRl9BU04xX1BBQ0tfU1RSSU5HLEFTTjFfUl9FTkNPREVfRVJST1IpOwotCQlyZXR1cm4gTlVMTDsKKwkJZ290byBlcnI7CiAJfQogCWlmICghKHAgPSBPUEVOU1NMX21hbGxvYyAob2N0bXAtPmxlbmd0aCkpKSB7CiAJCUFTTjFlcnIoQVNOMV9GX0FTTjFfUEFDS19TVFJJTkcsRVJSX1JfTUFMTE9DX0ZBSUxVUkUpOwotCQlyZXR1cm4gTlVMTDsKKwkJZ290byBlcnI7CiAJfQogCW9jdG1wLT5kYXRhID0gcDsKIAlpMmQgKG9iaiwgJnApOwogCXJldHVybiBvY3RtcDsKKwllcnI6CisJaWYgKCFvY3QgfHwgISpvY3QpCisJCXsKKwkJQVNOMV9TVFJJTkdfZnJlZShvY3RtcCk7CisJCWlmIChvY3QpCisJCQkqb2N0ID0gTlVMTDsKKwkJfQorCXJldHVybiBOVUxMOwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2NyeXB0by9hc24xL2Jpb19hc24xLmMgYi9jcnlwdG8vYXNuMS9iaW9fYXNuMS5jCmluZGV4IGRjN2VmZDUuLmJjYTRlZWIgMTAwNjQ0Ci0tLSBhL2NyeXB0by9hc24xL2Jpb19hc24xLmMKKysrIGIvY3J5cHRvL2FzbjEvYmlvX2FzbjEuYwpAQCAtMTU0LDcgKzE1NCwxMCBAQAogCWlmICghY3R4KQogCQlyZXR1cm4gMDsKIAlpZiAoIWFzbjFfYmlvX2luaXQoY3R4LCBERUZBVUxUX0FTTjFfQlVGX1NJWkUpKQorCQl7CisJCU9QRU5TU0xfZnJlZShjdHgpOwogCQlyZXR1cm4gMDsKKwkJfQogCWItPmluaXQgPSAxOwogCWItPnB0ciA9IChjaGFyICopY3R4OwogCWItPmZsYWdzID0gMDsKZGlmZiAtLWdpdCBhL2NyeXB0by9hc24xL2NoYXJtYXAucGwgYi9jcnlwdG8vYXNuMS9jaGFybWFwLnBsCmluZGV4IDI4NzVjNTkuLjI1ZWJmMmMgMTAwNjQ0Ci0tLSBhL2NyeXB0by9hc24xL2NoYXJtYXAucGwKKysrIGIvY3J5cHRvL2FzbjEvY2hhcm1hcC5wbApAQCAtMSw1ICsxLDggQEAKICMhL3Vzci9sb2NhbC9iaW4vcGVybCAtdwogCisjIFdyaXR0ZW4gYnkgRHIgU3RlcGhlbiBOIEhlbnNvbiAoc3RldmVAb3BlbnNzbC5vcmcpLgorIyBMaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE9wZW5TU0wgbGljZW5zZS4KKwogdXNlIHN0cmljdDsKIAogbXkgKCRpLCBAYXJyKTsKZGlmZiAtLWdpdCBhL2NyeXB0by9hc24xL2V2cF9hc24xLmMgYi9jcnlwdG8vYXNuMS9ldnBfYXNuMS5jCmluZGV4IGYzZDk4MDQuLjFiOTQ0NTkgMTAwNjQ0Ci0tLSBhL2NyeXB0by9hc24xL2V2cF9hc24xLmMKKysrIGIvY3J5cHRvL2FzbjEvZXZwX2FzbjEuYwpAQCAtNjYsNyArNjYsMTEgQEAKIAlBU04xX1NUUklORyAqb3M7CiAKIAlpZiAoKG9zPU1fQVNOMV9PQ1RFVF9TVFJJTkdfbmV3KCkpID09IE5VTEwpIHJldHVybigwKTsKLQlpZiAoIU1fQVNOMV9PQ1RFVF9TVFJJTkdfc2V0KG9zLGRhdGEsbGVuKSkgcmV0dXJuKDApOworCWlmICghTV9BU04xX09DVEVUX1NUUklOR19zZXQob3MsZGF0YSxsZW4pKQorCQl7CisJCU1fQVNOMV9PQ1RFVF9TVFJJTkdfZnJlZShvcyk7CisJCXJldHVybiAwOworCQl9CiAJQVNOMV9UWVBFX3NldChhLFZfQVNOMV9PQ1RFVF9TVFJJTkcsb3MpOwogCXJldHVybigxKTsKIAl9CmRpZmYgLS1naXQgYS9jcnlwdG8vYXNuMS90X3g1MDkuYyBiL2NyeXB0by9hc24xL3RfeDUwOS5jCmluZGV4IGVkYmIzOWEuLjhlOTYxZjUgMTAwNjQ0Ci0tLSBhL2NyeXB0by9hc24xL3RfeDUwOS5jCisrKyBiL2NyeXB0by9hc24xL3RfeDUwOS5jCkBAIC00NzUsNiArNDc1LDggQEAKIAlsPTgwLTItb2Jhc2U7CiAKIAliPVg1MDlfTkFNRV9vbmVsaW5lKG5hbWUsTlVMTCwwKTsKKwlpZiAoIWIpCisJCXJldHVybiAwOwogCWlmICghKmIpCiAJCXsKIAkJT1BFTlNTTF9mcmVlKGIpOwpkaWZmIC0tZ2l0IGEvY3J5cHRvL2FzbjEvdGFzbl9lbmMuYyBiL2NyeXB0by9hc24xL3Rhc25fZW5jLmMKaW5kZXggOTM2YWQxZi4uMTM5MGU1ZSAxMDA2NDQKLS0tIGEvY3J5cHRvL2FzbjEvdGFzbl9lbmMuYworKysgYi9jcnlwdG8vYXNuMS90YXNuX2VuYy5jCkBAIC00NTMsOSArNDUzLDE0IEBACiAJCQl7CiAJCQlkZXJsc3QgPSBPUEVOU1NMX21hbGxvYyhza19BU04xX1ZBTFVFX251bShzaykKIAkJCQkJCSogc2l6ZW9mKCpkZXJsc3QpKTsKLQkJCXRtcGRhdCA9IE9QRU5TU0xfbWFsbG9jKHNrY29udGxlbik7Ci0JCQlpZiAoIWRlcmxzdCB8fCAhdG1wZGF0KQorCQkJaWYgKCFkZXJsc3QpCiAJCQkJcmV0dXJuIDA7CisJCQl0bXBkYXQgPSBPUEVOU1NMX21hbGxvYyhza2NvbnRsZW4pOworCQkJaWYgKCF0bXBkYXQpCisJCQkJeworCQkJCU9QRU5TU0xfZnJlZShkZXJsc3QpOworCQkJCXJldHVybiAwOworCQkJCX0KIAkJCX0KIAkJfQogCS8qIElmIG5vdCBzb3J0aW5nIGp1c3Qgb3V0cHV0IGVhY2ggaXRlbSAqLwpkaWZmIC0tZ2l0IGEvY3J5cHRvL2FzbjEveF9jcmwuYyBiL2NyeXB0by9hc24xL3hfY3JsLmMKaW5kZXggYzUxYzY5MC4uM2YwM2VmYiAxMDA2NDQKLS0tIGEvY3J5cHRvL2FzbjEveF9jcmwuYworKysgYi9jcnlwdG8vYXNuMS94X2NybC5jCkBAIC0yNzAsNiArMjcwLDcgQEAKIAkJCQl7CiAJCQkJLyogV2UgaGFuZGxlIElEUCBhbmQgZGVsdGFzICovCiAJCQkJaWYgKChuaWQgPT0gTklEX2lzc3VpbmdfZGlzdHJpYnV0aW9uX3BvaW50KQorCQkJCQl8fCAobmlkID09IE5JRF9hdXRob3JpdHlfa2V5X2lkZW50aWZpZXIpCiAJCQkJCXx8IChuaWQgPT0gTklEX2RlbHRhX2NybCkpCiAJCQkJCWJyZWFrOzsKIAkJCQljcmwtPmZsYWdzIHw9IEVYRkxBR19DUklUSUNBTDsKZGlmZiAtLWdpdCBhL2NyeXB0by9iaW8vYmlvX2xpYi5jIGIvY3J5cHRvL2Jpby9iaW9fbGliLmMKaW5kZXggOWM5NjQ2YS4uNDc5M2E0NSAxMDA2NDQKLS0tIGEvY3J5cHRvL2Jpby9iaW9fbGliLmMKKysrIGIvY3J5cHRvL2Jpby9iaW9fbGliLmMKQEAgLTEzMiw4ICsxMzIsOCBAQAogCiAJQ1JZUFRPX2ZyZWVfZXhfZGF0YShDUllQVE9fRVhfSU5ERVhfQklPLCBhLCAmYS0+ZXhfZGF0YSk7CiAKLQlpZiAoKGEtPm1ldGhvZCA9PSBOVUxMKSB8fCAoYS0+bWV0aG9kLT5kZXN0cm95ID09IE5VTEwpKSByZXR1cm4oMSk7Ci0JYS0+bWV0aG9kLT5kZXN0cm95KGEpOworCWlmICgoYS0+bWV0aG9kICE9IE5VTEwpICYmIChhLT5tZXRob2QtPmRlc3Ryb3kgIT0gTlVMTCkpCisJCWEtPm1ldGhvZC0+ZGVzdHJveShhKTsKIAlPUEVOU1NMX2ZyZWUoYSk7CiAJcmV0dXJuKDEpOwogCX0KZGlmZiAtLWdpdCBhL2NyeXB0by9ibi9hc20veDg2XzY0LWdjYy5jIGIvY3J5cHRvL2JuL2FzbS94ODZfNjQtZ2NjLmMKaW5kZXggMzI5OTQ2ZS4uNmJjZjMyZiAxMDA2NDQKLS0tIGEvY3J5cHRvL2JuL2FzbS94ODZfNjQtZ2NjLmMKKysrIGIvY3J5cHRvL2JuL2FzbS94ODZfNjQtZ2NjLmMKQEAgLTE4OSw3ICsxODksNyBAQAogCiAJaWYgKG4gPD0gMCkgcmV0dXJuIDA7CiAKLQlhc20gKAorCWFzbSB2b2xhdGlsZSAoCiAJIglzdWJxCSUyLCUyCQlcbiIKIAkiLnAyYWxpZ24gNAkJCVxuIgogCSIxOgltb3ZxCSglNCwlMiw4KSwlMAlcbiIKQEAgLTIwMCw3ICsyMDAsNyBAQAogCSIJc2JicQklMCwlMAkJXG4iCiAJCTogIj0mYSIocmV0KSwiK2MiKG4pLCI9JnIiKGkpCiAJCTogInIiKHJwKSwiciIoYXApLCJyIihicCkKLQkJOiAiY2MiCisJCTogImNjIiwgIm1lbW9yeSIKIAkpOwogCiAgIHJldHVybiByZXQmMTsKQEAgLTIxMiw3ICsyMTIsNyBAQAogCiAJaWYgKG4gPD0gMCkgcmV0dXJuIDA7CiAKLQlhc20gKAorCWFzbSB2b2xhdGlsZSAoCiAJIglzdWJxCSUyLCUyCQlcbiIKIAkiLnAyYWxpZ24gNAkJCVxuIgogCSIxOgltb3ZxCSglNCwlMiw4KSwlMAlcbiIKQEAgLTIyMyw3ICsyMjMsNyBAQAogCSIJc2JicQklMCwlMAkJXG4iCiAJCTogIj0mYSIocmV0KSwiK2MiKG4pLCI9JnIiKGkpCiAJCTogInIiKHJwKSwiciIoYXApLCJyIihicCkKLQkJOiAiY2MiCisJCTogImNjIiwgIm1lbW9yeSIKIAkpOwogCiAgIHJldHVybiByZXQmMTsKZGlmZiAtLWdpdCBhL2NyeXB0by9ibi9ibl9leHAuYyBiL2NyeXB0by9ibi9ibl9leHAuYwppbmRleCAyYWJmNmZkLi42MTFmYTMyIDEwMDY0NAotLS0gYS9jcnlwdG8vYm4vYm5fZXhwLmMKKysrIGIvY3J5cHRvL2JuL2JuX2V4cC5jCkBAIC02ODAsNyArNjgwLDcgQEAKIAogICAgIC8qIERlZGljYXRlZCB3aW5kb3c9PTQgY2FzZSBpbXByb3ZlcyA1MTItYml0IFJTQSBzaWduIGJ5IH4xNSUsIGJ1dCBhcwogICAgICAqIDUxMi1iaXQgUlNBIGlzIGhhcmRseSByZWxldmFudCwgd2Ugb21pdCBpdCB0byBzcGFyZSBzaXplLi4uICovIAotICAgIGlmICh3aW5kb3c9PTUpCisgICAgaWYgKHdpbmRvdz09NSAmJiB0b3A+MSkKIAl7CiAJdm9pZCBibl9tdWxfbW9udF9nYXRoZXI1KEJOX1VMT05HICpycCxjb25zdCBCTl9VTE9ORyAqYXAsCiAJCQljb25zdCB2b2lkICp0YWJsZSxjb25zdCBCTl9VTE9ORyAqbnAsCkBAIC04NzQsNyArODc0LDE0IEBACiAJYml0cyA9IEJOX251bV9iaXRzKHApOwogCWlmIChiaXRzID09IDApCiAJCXsKLQkJcmV0ID0gQk5fb25lKHJyKTsKKwkJLyogeCoqMCBtb2QgMSBpcyBzdGlsbCB6ZXJvLiAqLworCQlpZiAoQk5faXNfb25lKG0pKQorCQkJeworCQkJcmV0ID0gMTsKKwkJCUJOX3plcm8ocnIpOworCQkJfQorCQllbHNlCisJCQlyZXQgPSBCTl9vbmUocnIpOwogCQlyZXR1cm4gcmV0OwogCQl9CiAJaWYgKGEgPT0gMCkKZGlmZiAtLWdpdCBhL2NyeXB0by9ibi9ibl9saWIuYyBiL2NyeXB0by9ibi9ibl9saWIuYwppbmRleCA1NDYxZTZlLi5kNWEyMTFlIDEwMDY0NAotLS0gYS9jcnlwdG8vYm4vYm5fbGliLmMKKysrIGIvY3J5cHRvL2JuL2JuX2xpYi5jCkBAIC0zMjAsNiArMzIwLDE1IEBACiAJCUJOZXJyKEJOX0ZfQk5fRVhQQU5EX0lOVEVSTkFMLEVSUl9SX01BTExPQ19GQUlMVVJFKTsKIAkJcmV0dXJuKE5VTEwpOwogCQl9CisjaWZkZWYgUFVSSUZZCisJLyogVmFsZ3JpbmQgY29tcGxhaW5zIGluIEJOX2NvbnN0dGltZV9zd2FwIGJlY2F1c2Ugd2UgcHJvY2VzcyB0aGUgd2hvbGUKKwkgKiBhcnJheSBldmVuIGlmIGl0J3Mgbm90IGluaXRpYWxpc2VkIHlldC4gVGhpcyBkb2Vzbid0IG1hdHRlciBpbiB0aGF0CisJICogZnVuY3Rpb24gLSB3aGF0J3MgaW1wb3J0YW50IGlzIGNvbnN0YW50IHRpbWUgb3BlcmF0aW9uICh3ZSdyZSBub3QKKwkgKiBhY3R1YWxseSBnb2luZyB0byB1c2UgdGhlIGRhdGEpCisJKi8KKwltZW1zZXQoYSwgMCwgc2l6ZW9mKEJOX1VMT05HKSp3b3Jkcyk7CisjZW5kaWYKKwogI2lmIDEKIAlCPWItPmQ7CiAJLyogQ2hlY2sgaWYgdGhlIHByZXZpb3VzIG51bWJlciBuZWVkcyB0byBiZSBjb3BpZWQgKi8KZGlmZiAtLWdpdCBhL2NyeXB0by9ibi9ibl9uaXN0LmMgYi9jcnlwdG8vYm4vYm5fbmlzdC5jCmluZGV4IGUyMjk2OGQuLmFiYjE1NzAgMTAwNjQ0Ci0tLSBhL2NyeXB0by9ibi9ibl9uaXN0LmMKKysrIGIvY3J5cHRvL2JuL2JuX25pc3QuYwpAQCAtMTA4OCw5ICsxMDg4LDkgQEAKIAkvKiAuLi4gYW5kIHJpZ2h0IHNoaWZ0ICovCiAJZm9yICh2YWw9dF9kWzBdLGk9MDsgaTxCTl9OSVNUXzUyMV9UT1AtMTsgaSsrKQogCQl7Ci0JCXRtcCA9IHZhbD4+Qk5fTklTVF81MjFfUlNISUZUOwotCQl2YWwgPSB0X2RbaSsxXTsKLQkJdF9kW2ldID0gKHRtcCB8IHZhbDw8Qk5fTklTVF81MjFfTFNISUZUKSAmIEJOX01BU0syOworCQl0X2RbaV0gPSAoIHZhbD4+Qk5fTklTVF81MjFfUlNISUZUIHwKKwkJCSAgKHRtcD10X2RbaSsxXSk8PEJOX05JU1RfNTIxX0xTSElGVCApICYgQk5fTUFTSzI7CisJCXZhbD10bXA7CiAJCX0KIAl0X2RbaV0gPSB2YWw+PkJOX05JU1RfNTIxX1JTSElGVDsKIAkvKiBsb3dlciA1MjEgYml0cyAqLwpkaWZmIC0tZ2l0IGEvY3J5cHRvL2JuL2JuX3Nxci5jIGIvY3J5cHRvL2JuL2JuX3Nxci5jCmluZGV4IDI3MGQwY2QuLjY1YmJmMTYgMTAwNjQ0Ci0tLSBhL2NyeXB0by9ibi9ibl9zcXIuYworKysgYi9jcnlwdG8vYm4vYm5fc3FyLmMKQEAgLTc3LDYgKzc3LDcgQEAKIAlpZiAoYWwgPD0gMCkKIAkJewogCQlyLT50b3A9MDsKKwkJci0+bmVnID0gMDsKIAkJcmV0dXJuIDE7CiAJCX0KIApkaWZmIC0tZ2l0IGEvY3J5cHRvL2JuL2V4cHRlc3QuYyBiL2NyeXB0by9ibi9leHB0ZXN0LmMKaW5kZXggMDc0YThlOC4uNWZhMDJhMSAxMDA2NDQKLS0tIGEvY3J5cHRvL2JuL2V4cHRlc3QuYworKysgYi9jcnlwdG8vYm4vZXhwdGVzdC5jCkBAIC03MSw2ICs3MSw0MyBAQAogCiBzdGF0aWMgY29uc3QgY2hhciBybmRfc2VlZFtdID0gInN0cmluZyB0byBtYWtlIHRoZSByYW5kb20gbnVtYmVyIGdlbmVyYXRvciB0aGluayBpdCBoYXMgZW50cm9weSI7CiAKKy8qIHRlc3RfZXhwX21vZF96ZXJvIHRlc3RzIHRoYXQgeCoqMCBtb2QgMSA9PSAwLiBJdCByZXR1cm5zIHplcm8gb24gc3VjY2Vzcy4gKi8KK3N0YXRpYyBpbnQgdGVzdF9leHBfbW9kX3plcm8oKSB7CisJQklHTlVNIGEsIHAsIG07CisJQklHTlVNIHI7CisJQk5fQ1RYICpjdHggPSBCTl9DVFhfbmV3KCk7CisJaW50IHJldCA9IDE7CisKKwlCTl9pbml0KCZtKTsKKwlCTl9vbmUoJm0pOworCisJQk5faW5pdCgmYSk7CisJQk5fb25lKCZhKTsKKworCUJOX2luaXQoJnApOworCUJOX3plcm8oJnApOworCisJQk5faW5pdCgmcik7CisJQk5fbW9kX2V4cCgmciwgJmEsICZwLCAmbSwgY3R4KTsKKwlCTl9DVFhfZnJlZShjdHgpOworCisJaWYgKEJOX2lzX3plcm8oJnIpKQorCQlyZXQgPSAwOworCWVsc2UKKwkJeworCQlwcmludGYoIjEqKjAgbW9kIDEgPSAiKTsKKwkJQk5fcHJpbnRfZnAoc3Rkb3V0LCAmcik7CisJCXByaW50ZigiLCBzaG91bGQgYmUgMFxuIik7CisJCX0KKworCUJOX2ZyZWUoJnIpOworCUJOX2ZyZWUoJmEpOworCUJOX2ZyZWUoJnApOworCUJOX2ZyZWUoJm0pOworCisJcmV0dXJuIHJldDsKK30KKwogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAl7CiAJQk5fQ1RYICpjdHg7CkBAIC0xOTAsNyArMjI3LDEzIEBACiAJRVJSX3JlbW92ZV90aHJlYWRfc3RhdGUoTlVMTCk7CiAJQ1JZUFRPX21lbV9sZWFrcyhvdXQpOwogCUJJT19mcmVlKG91dCk7Ci0JcHJpbnRmKCIgZG9uZVxuIik7CisJcHJpbnRmKCJcbiIpOworCisJaWYgKHRlc3RfZXhwX21vZF96ZXJvKCkgIT0gMCkKKwkJZ290byBlcnI7CisKKwlwcmludGYoImRvbmVcbiIpOworCiAJRVhJVCgwKTsKIGVycjoKIAlFUlJfbG9hZF9jcnlwdG9fc3RyaW5ncygpOwpkaWZmIC0tZ2l0IGEvY3J5cHRvL2Ntcy9jbXNfcHdyaS5jIGIvY3J5cHRvL2Ntcy9jbXNfcHdyaS5jCmluZGV4IGI3OTYxMmEuLjcxZjJkZGIgMTAwNjQ0Ci0tLSBhL2NyeXB0by9jbXMvY21zX3B3cmkuYworKysgYi9jcnlwdG8vY21zL2Ntc19wd3JpLmMKQEAgLTkzLDkgKzkzLDEwIEBACiAJWDUwOV9BTEdPUiAqZW5jYWxnID0gTlVMTDsKIAl1bnNpZ25lZCBjaGFyIGl2W0VWUF9NQVhfSVZfTEVOR1RIXTsKIAlpbnQgaXZsZW47CisKIAllbnYgPSBjbXNfZ2V0MF9lbnZlbG9wZWQoY21zKTsKIAlpZiAoIWVudikKLQkJZ290byBlcnI7CisJCXJldHVybiBOVUxMOwogCiAJaWYgKHdyYXBfbmlkIDw9IDApCiAJCXdyYXBfbmlkID0gTklEX2lkX2FsZ19QV1JJX0tFSzsKZGlmZiAtLWdpdCBhL2NyeXB0by9jb25mL2NvbmZfZGVmLmMgYi9jcnlwdG8vY29uZi9jb25mX2RlZi5jCmluZGV4IGNmOTUxMzIuLmYwYjI3NjggMTAwNjQ0Ci0tLSBhL2NyeXB0by9jb25mL2NvbmZfZGVmLmMKKysrIGIvY3J5cHRvL2NvbmYvY29uZl9kZWYuYwpAQCAtMzIxLDcgKzMyMSw3IEBACiAJCQlwPWVhdF93cyhjb25mLCBlbmQpOwogCQkJaWYgKCpwICE9ICddJykKIAkJCQl7Ci0JCQkJaWYgKCpwICE9ICdcMCcpCisJCQkJaWYgKCpwICE9ICdcMCcgJiYgc3MgIT0gcCkKIAkJCQkJewogCQkJCQlzcz1wOwogCQkJCQlnb3RvIGFnYWluOwpkaWZmIC0tZ2l0IGEvY3J5cHRvL2NvbnN0YW50X3RpbWVfbG9jbC5oIGIvY3J5cHRvL2NvbnN0YW50X3RpbWVfbG9jbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMwNDgzOTMKLS0tIC9kZXYvbnVsbAorKysgYi9jcnlwdG8vY29uc3RhbnRfdGltZV9sb2NsLmgKQEAgLTAsMCArMSwyMTYgQEAKKy8qIGNyeXB0by9jb25zdGFudF90aW1lX2xvY2wuaCAqLworLyoKKyAqIFV0aWxpdGllcyBmb3IgY29uc3RhbnQtdGltZSBjcnlwdG9ncmFwaHkuCisgKgorICogQXV0aG9yOiBFbWlsaWEgS2FzcGVyIChlbWlsaWFAb3BlbnNzbC5vcmcpCisgKiBCYXNlZCBvbiBwcmV2aW91cyB3b3JrIGJ5IEJvZG8gTW9lbGxlciwgRW1pbGlhIEthc3BlciwgQWRhbSBMYW5nbGV5CisgKiAoR29vZ2xlKS4KKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiBDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIE9wZW5TU0wgUHJvamVjdC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBBbGwgYWR2ZXJ0aXNpbmcgbWF0ZXJpYWxzIG1lbnRpb25pbmcgZmVhdHVyZXMgb3IgdXNlIG9mIHRoaXMgc29mdHdhcmUKKyAqICAgIG11c3QgZGlzcGxheSB0aGUgZm9sbG93aW5nIGFja25vd2xlZGdlbWVudDoKKyAqICAgICJUaGlzIHByb2R1Y3QgaW5jbHVkZXMgY3J5cHRvZ3JhcGhpYyBzb2Z0d2FyZSB3cml0dGVuIGJ5CisgKiAgICAgRXJpYyBZb3VuZyAoZWF5QGNyeXB0c29mdC5jb20pIgorICogICAgVGhlIHdvcmQgJ2NyeXB0b2dyYXBoaWMnIGNhbiBiZSBsZWZ0IG91dCBpZiB0aGUgcm91aW5lcyBmcm9tIHRoZSBsaWJyYXJ5CisgKiAgICBiZWluZyB1c2VkIGFyZSBub3QgY3J5cHRvZ3JhcGhpYyByZWxhdGVkIDotKS4KKyAqIDQuIElmIHlvdSBpbmNsdWRlIGFueSBXaW5kb3dzIHNwZWNpZmljIGNvZGUgKG9yIGEgZGVyaXZhdGl2ZSB0aGVyZW9mKSBmcm9tCisgKiAgICB0aGUgYXBwcyBkaXJlY3RvcnkgKGFwcGxpY2F0aW9uIGNvZGUpIHlvdSBtdXN0IGluY2x1ZGUgYW4gYWNrbm93bGVkZ2VtZW50OgorICogICAgIlRoaXMgcHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSB3cml0dGVuIGJ5IFRpbSBIdWRzb24gKHRqaEBjcnlwdHNvZnQuY29tKSIKKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEVSSUMgWU9VTkcgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKgorICogVGhlIGxpY2VuY2UgYW5kIGRpc3RyaWJ1dGlvbiB0ZXJtcyBmb3IgYW55IHB1YmxpY2FsbHkgYXZhaWxhYmxlIHZlcnNpb24gb3IKKyAqIGRlcml2YXRpdmUgb2YgdGhpcyBjb2RlIGNhbm5vdCBiZSBjaGFuZ2VkLiAgaS5lLiB0aGlzIGNvZGUgY2Fubm90IHNpbXBseSBiZQorICogY29waWVkIGFuZCBwdXQgdW5kZXIgYW5vdGhlciBkaXN0cmlidXRpb24gbGljZW5jZQorICogW2luY2x1ZGluZyB0aGUgR05VIFB1YmxpYyBMaWNlbmNlLl0KKyAqLworCisjaWZuZGVmIEhFQURFUl9DT05TVEFOVF9USU1FX0xPQ0xfSAorI2RlZmluZSBIRUFERVJfQ09OU1RBTlRfVElNRV9MT0NMX0gKKworI2luY2x1ZGUgImVfb3MuaCIgIC8qIEZvciAnaW5saW5lJyAqLworCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8qCisgKiBUaGUgYm9vbGVhbiBtZXRob2RzIHJldHVybiBhIGJpdG1hc2sgb2YgYWxsIG9uZXMgKDB4ZmYuLi5mKSBmb3IgdHJ1ZQorICogYW5kIDAgZm9yIGZhbHNlLiBUaGlzIGlzIHVzZWZ1bCBmb3IgY2hvb3NpbmcgYSB2YWx1ZSBiYXNlZCBvbiB0aGUgcmVzdWx0CisgKiBvZiBhIGNvbmRpdGlvbmFsIGluIGNvbnN0YW50IHRpbWUuIEZvciBleGFtcGxlLAorICoKKyAqIGlmIChhIDwgYikgeworICogICBjID0gYTsKKyAqIH0gZWxzZSB7CisgKiAgIGMgPSBiOworICogfQorICoKKyAqIGNhbiBiZSB3cml0dGVuIGFzCisgKgorICogdW5zaWduZWQgaW50IGx0ID0gY29uc3RhbnRfdGltZV9sdChhLCBiKTsKKyAqIGMgPSBjb25zdGFudF90aW1lX3NlbGVjdChsdCwgYSwgYik7CisgKi8KKworLyoKKyAqIFJldHVybnMgdGhlIGdpdmVuIHZhbHVlIHdpdGggdGhlIE1TQiBjb3BpZWQgdG8gYWxsIHRoZSBvdGhlcgorICogYml0cy4gVXNlcyB0aGUgZmFjdCB0aGF0IGFyaXRobWV0aWMgc2hpZnQgc2hpZnRzLWluIHRoZSBzaWduIGJpdC4KKyAqIEhvd2V2ZXIsIHRoaXMgaXMgbm90IGVuc3VyZWQgYnkgdGhlIEMgc3RhbmRhcmQgc28geW91IG1heSBuZWVkIHRvCisgKiByZXBsYWNlIHRoaXMgd2l0aCBzb21ldGhpbmcgZWxzZSBvbiBvZGQgQ1BVcy4KKyAqLworc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgY29uc3RhbnRfdGltZV9tc2IodW5zaWduZWQgaW50IGEpOworCisvKgorICogUmV0dXJucyAweGZmLi5mIGlmIGEgPCBiIGFuZCAwIG90aGVyd2lzZS4KKyAqLworc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgY29uc3RhbnRfdGltZV9sdCh1bnNpZ25lZCBpbnQgYSwgdW5zaWduZWQgaW50IGIpOworLyogQ29udmVuaWVuY2UgbWV0aG9kIGZvciBnZXR0aW5nIGFuIDgtYml0IG1hc2suICovCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGNoYXIgY29uc3RhbnRfdGltZV9sdF84KHVuc2lnbmVkIGludCBhLCB1bnNpZ25lZCBpbnQgYik7CisKKy8qCisgKiBSZXR1cm5zIDB4ZmYuLmYgaWYgYSA+PSBiIGFuZCAwIG90aGVyd2lzZS4KKyAqLworc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgY29uc3RhbnRfdGltZV9nZSh1bnNpZ25lZCBpbnQgYSwgdW5zaWduZWQgaW50IGIpOworLyogQ29udmVuaWVuY2UgbWV0aG9kIGZvciBnZXR0aW5nIGFuIDgtYml0IG1hc2suICovCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGNoYXIgY29uc3RhbnRfdGltZV9nZV84KHVuc2lnbmVkIGludCBhLCB1bnNpZ25lZCBpbnQgYik7CisKKy8qCisgKiBSZXR1cm5zIDB4ZmYuLmYgaWYgYSA9PSAwIGFuZCAwIG90aGVyd2lzZS4KKyAqLworc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgY29uc3RhbnRfdGltZV9pc196ZXJvKHVuc2lnbmVkIGludCBhKTsKKy8qIENvbnZlbmllbmNlIG1ldGhvZCBmb3IgZ2V0dGluZyBhbiA4LWJpdCBtYXNrLiAqLworc3RhdGljIGlubGluZSB1bnNpZ25lZCBjaGFyIGNvbnN0YW50X3RpbWVfaXNfemVyb184KHVuc2lnbmVkIGludCBhKTsKKworCisvKgorICogUmV0dXJucyAweGZmLi5mIGlmIGEgPT0gYiBhbmQgMCBvdGhlcndpc2UuCisgKi8KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGNvbnN0YW50X3RpbWVfZXEodW5zaWduZWQgaW50IGEsIHVuc2lnbmVkIGludCBiKTsKKy8qIENvbnZlbmllbmNlIG1ldGhvZCBmb3IgZ2V0dGluZyBhbiA4LWJpdCBtYXNrLiAqLworc3RhdGljIGlubGluZSB1bnNpZ25lZCBjaGFyIGNvbnN0YW50X3RpbWVfZXFfOCh1bnNpZ25lZCBpbnQgYSwgdW5zaWduZWQgaW50IGIpOworLyogU2lnbmVkIGludGVnZXJzLiAqLworc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgY29uc3RhbnRfdGltZV9lcV9pbnQoaW50IGEsIGludCBiKTsKKy8qIENvbnZlbmllbmNlIG1ldGhvZCBmb3IgZ2V0dGluZyBhbiA4LWJpdCBtYXNrLiAqLworc3RhdGljIGlubGluZSB1bnNpZ25lZCBjaGFyIGNvbnN0YW50X3RpbWVfZXFfaW50XzgoaW50IGEsIGludCBiKTsKKworCisvKgorICogUmV0dXJucyAobWFzayAmIGEpIHwgKH5tYXNrICYgYikuCisgKgorICogV2hlbiB8bWFza3wgaXMgYWxsIDFzIG9yIGFsbCAwcyAoYXMgcmV0dXJuZWQgYnkgdGhlIG1ldGhvZHMgYWJvdmUpLAorICogdGhlIHNlbGVjdCBtZXRob2RzIHJldHVybiBlaXRoZXIgfGF8IChpZiB8bWFza3wgaXMgbm9uemVybykgb3IgfGJ8CisgKiAoaWYgfG1hc2t8IGlzIHplcm8pLgorICovCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBjb25zdGFudF90aW1lX3NlbGVjdCh1bnNpZ25lZCBpbnQgbWFzaywKKwl1bnNpZ25lZCBpbnQgYSwgdW5zaWduZWQgaW50IGIpOworLyogQ29udmVuaWVuY2UgbWV0aG9kIGZvciB1bnNpZ25lZCBjaGFycy4gKi8KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgY2hhciBjb25zdGFudF90aW1lX3NlbGVjdF84KHVuc2lnbmVkIGNoYXIgbWFzaywKKwl1bnNpZ25lZCBjaGFyIGEsIHVuc2lnbmVkIGNoYXIgYik7CisvKiBDb252ZW5pZW5jZSBtZXRob2QgZm9yIHNpZ25lZCBpbnRlZ2Vycy4gKi8KK3N0YXRpYyBpbmxpbmUgaW50IGNvbnN0YW50X3RpbWVfc2VsZWN0X2ludCh1bnNpZ25lZCBpbnQgbWFzaywgaW50IGEsIGludCBiKTsKKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgY29uc3RhbnRfdGltZV9tc2IodW5zaWduZWQgaW50IGEpCisJeworCXJldHVybiAodW5zaWduZWQgaW50KSgoaW50KShhKSA+PiAoc2l6ZW9mKGludCkgKiA4IC0gMSkpOworCX0KKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgY29uc3RhbnRfdGltZV9sdCh1bnNpZ25lZCBpbnQgYSwgdW5zaWduZWQgaW50IGIpCisJeworCXVuc2lnbmVkIGludCBsdDsKKwkvKiBDYXNlIDE6IG1zYihhKSA9PSBtc2IoYikuIGEgPCBiIGlmZiB0aGUgTVNCIG9mIGEgLSBiIGlzIHNldC4qLworCWx0ID0gfihhIF4gYikgJiAoYSAtIGIpOworCS8qIENhc2UgMjogbXNiKGEpICE9IG1zYihiKS4gYSA8IGIgaWZmIHRoZSBNU0Igb2YgYiBpcyBzZXQuICovCisJbHQgfD0gfmEgJiBiOworCXJldHVybiBjb25zdGFudF90aW1lX21zYihsdCk7CisJfQorCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGNoYXIgY29uc3RhbnRfdGltZV9sdF84KHVuc2lnbmVkIGludCBhLCB1bnNpZ25lZCBpbnQgYikKKwl7CisJcmV0dXJuICh1bnNpZ25lZCBjaGFyKShjb25zdGFudF90aW1lX2x0KGEsIGIpKTsKKwl9CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGNvbnN0YW50X3RpbWVfZ2UodW5zaWduZWQgaW50IGEsIHVuc2lnbmVkIGludCBiKQorCXsKKwl1bnNpZ25lZCBpbnQgZ2U7CisJLyogQ2FzZSAxOiBtc2IoYSkgPT0gbXNiKGIpLiBhID49IGIgaWZmIHRoZSBNU0Igb2YgYSAtIGIgaXMgbm90IHNldC4qLworCWdlID0gfigoYSBeIGIpIHwgKGEgLSBiKSk7CisJLyogQ2FzZSAyOiBtc2IoYSkgIT0gbXNiKGIpLiBhID49IGIgaWZmIHRoZSBNU0Igb2YgYSBpcyBzZXQuICovCisJZ2UgfD0gYSAmIH5iOworCXJldHVybiBjb25zdGFudF90aW1lX21zYihnZSk7CisJfQorCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGNoYXIgY29uc3RhbnRfdGltZV9nZV84KHVuc2lnbmVkIGludCBhLCB1bnNpZ25lZCBpbnQgYikKKwl7CisJcmV0dXJuICh1bnNpZ25lZCBjaGFyKShjb25zdGFudF90aW1lX2dlKGEsIGIpKTsKKwl9CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGNvbnN0YW50X3RpbWVfaXNfemVybyh1bnNpZ25lZCBpbnQgYSkKKwl7CisJcmV0dXJuIGNvbnN0YW50X3RpbWVfbXNiKH5hICYgKGEgLSAxKSk7CisJfQorCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGNoYXIgY29uc3RhbnRfdGltZV9pc196ZXJvXzgodW5zaWduZWQgaW50IGEpCisJeworCXJldHVybiAodW5zaWduZWQgY2hhcikoY29uc3RhbnRfdGltZV9pc196ZXJvKGEpKTsKKwl9CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGNvbnN0YW50X3RpbWVfZXEodW5zaWduZWQgaW50IGEsIHVuc2lnbmVkIGludCBiKQorCXsKKwlyZXR1cm4gY29uc3RhbnRfdGltZV9pc196ZXJvKGEgXiBiKTsKKwl9CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgY2hhciBjb25zdGFudF90aW1lX2VxXzgodW5zaWduZWQgaW50IGEsIHVuc2lnbmVkIGludCBiKQorCXsKKwlyZXR1cm4gKHVuc2lnbmVkIGNoYXIpKGNvbnN0YW50X3RpbWVfZXEoYSwgYikpOworCX0KKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgY29uc3RhbnRfdGltZV9lcV9pbnQoaW50IGEsIGludCBiKQorCXsKKwlyZXR1cm4gY29uc3RhbnRfdGltZV9lcSgodW5zaWduZWQpKGEpLCAodW5zaWduZWQpKGIpKTsKKwl9CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgY2hhciBjb25zdGFudF90aW1lX2VxX2ludF84KGludCBhLCBpbnQgYikKKwl7CisJcmV0dXJuIGNvbnN0YW50X3RpbWVfZXFfOCgodW5zaWduZWQpKGEpLCAodW5zaWduZWQpKGIpKTsKKwl9CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGNvbnN0YW50X3RpbWVfc2VsZWN0KHVuc2lnbmVkIGludCBtYXNrLAorCXVuc2lnbmVkIGludCBhLCB1bnNpZ25lZCBpbnQgYikKKwl7CisJcmV0dXJuIChtYXNrICYgYSkgfCAofm1hc2sgJiBiKTsKKwl9CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgY2hhciBjb25zdGFudF90aW1lX3NlbGVjdF84KHVuc2lnbmVkIGNoYXIgbWFzaywKKwl1bnNpZ25lZCBjaGFyIGEsIHVuc2lnbmVkIGNoYXIgYikKKwl7CisJcmV0dXJuICh1bnNpZ25lZCBjaGFyKShjb25zdGFudF90aW1lX3NlbGVjdChtYXNrLCBhLCBiKSk7CisJfQorCitpbmxpbmUgaW50IGNvbnN0YW50X3RpbWVfc2VsZWN0X2ludCh1bnNpZ25lZCBpbnQgbWFzaywgaW50IGEsIGludCBiKQorCXsKKwlyZXR1cm4gKGludCkoY29uc3RhbnRfdGltZV9zZWxlY3QobWFzaywgKHVuc2lnbmVkKShhKSwgKHVuc2lnbmVkKShiKSkpOworCX0KKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmICAvKiBIRUFERVJfQ09OU1RBTlRfVElNRV9MT0NMX0ggKi8KZGlmZiAtLWdpdCBhL2NyeXB0by9kc2EvZHNhX2FtZXRoLmMgYi9jcnlwdG8vZHNhL2RzYV9hbWV0aC5jCmluZGV4IDM3NjE1NmUuLjVhZjc2ZWEgMTAwNjQ0Ci0tLSBhL2NyeXB0by9kc2EvZHNhX2FtZXRoLmMKKysrIGIvY3J5cHRvL2RzYS9kc2FfYW1ldGguYwpAQCAtMzA3LDYgKzMwNywxMiBAQAogCXVuc2lnbmVkIGNoYXIgKmRwID0gTlVMTDsKIAlpbnQgZHBsZW47CiAKKwlpZiAoIXBrZXktPnBrZXkuZHNhIHx8ICFwa2V5LT5wa2V5LmRzYS0+cHJpdl9rZXkpCisJCXsKKwkJRFNBZXJyKERTQV9GX0RTQV9QUklWX0VOQ09ERSxEU0FfUl9NSVNTSU5HX1BBUkFNRVRFUlMpOworCQlnb3RvIGVycjsKKwkJfQorCiAJcGFyYW1zID0gQVNOMV9TVFJJTkdfbmV3KCk7CiAKIAlpZiAoIXBhcmFtcykKQEAgLTcwMSw0ICs3MDcsMyBAQAogCQlvbGRfZHNhX3ByaXZfZW5jb2RlCiAJCX0KIAl9OwotCmRpZmYgLS1naXQgYS9jcnlwdG8vZWJjZGljLmggYi9jcnlwdG8vZWJjZGljLmgKaW5kZXggNmQ2NWFmYy4uODVmM2NmNyAxMDA2NDQKLS0tIGEvY3J5cHRvL2ViY2RpYy5oCisrKyBiL2NyeXB0by9lYmNkaWMuaApAQCAtNSw2ICs1LDEwIEBACiAKICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KIAorI2lmZGVmICBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKwogLyogQXZvaWQgbmFtZSBjbGFzaGVzIHdpdGggb3RoZXIgYXBwbGljYXRpb25zICovCiAjZGVmaW5lIG9zX3RvYXNjaWkgICBfb3BlbnNzbF9vc190b2FzY2lpCiAjZGVmaW5lIG9zX3RvZWJjZGljICBfb3BlbnNzbF9vc190b2ViY2RpYwpAQCAtMTYsNCArMjAsNyBAQAogdm9pZCAqZWJjZGljMmFzY2lpKHZvaWQgKmRlc3QsIGNvbnN0IHZvaWQgKnNyY2UsIHNpemVfdCBjb3VudCk7CiB2b2lkICphc2NpaTJlYmNkaWModm9pZCAqZGVzdCwgY29uc3Qgdm9pZCAqc3JjZSwgc2l6ZV90IGNvdW50KTsKIAorI2lmZGVmICBfX2NwbHVzcGx1cworfQorI2VuZGlmCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2NyeXB0by9lYy9lYy5oIGIvY3J5cHRvL2VjL2VjLmgKaW5kZXggZDAwOGEwZC4uYjZlNzQ1YiAxMDA2NDQKLS0tIGEvY3J5cHRvL2VjL2VjLmgKKysrIGIvY3J5cHRvL2VjL2VjLmgKQEAgLTYyOSw3ICs2MjksNyBAQAogaW50IEVDX1BPSU5UX21ha2VfYWZmaW5lKGNvbnN0IEVDX0dST1VQICpncm91cCwgRUNfUE9JTlQgKnBvaW50LCBCTl9DVFggKmN0eCk7CiBpbnQgRUNfUE9JTlRzX21ha2VfYWZmaW5lKGNvbnN0IEVDX0dST1VQICpncm91cCwgc2l6ZV90IG51bSwgRUNfUE9JTlQgKnBvaW50c1tdLCBCTl9DVFggKmN0eCk7CiAKLS8qKiBDb21wdXRlcyByID0gZ2VuZXJhdG9yICogbiBzdW1fe2k9MH1ebnVtIHBbaV0gKiBtW2ldCisvKiogQ29tcHV0ZXMgciA9IGdlbmVyYXRvciAqIG4gc3VtX3tpPTB9XntudW0tMX0gcFtpXSAqIG1baV0KICAqICBccGFyYW0gIGdyb3VwICB1bmRlcmx5aW5nIEVDX0dST1VQIG9iamVjdAogICogIFxwYXJhbSAgciAgICAgIEVDX1BPSU5UIG9iamVjdCBmb3IgdGhlIHJlc3VsdAogICogIFxwYXJhbSAgbiAgICAgIEJJR05VTSB3aXRoIHRoZSBtdWx0aXBsaWVyIGZvciB0aGUgZ3JvdXAgZ2VuZXJhdG9yIChvcHRpb25hbCkKZGlmZiAtLWdpdCBhL2NyeXB0by9lYy9lYzJfc21wbC5jIGIvY3J5cHRvL2VjL2VjMl9zbXBsLmMKaW5kZXggZTBlNTljNy4uNjIyMjNjYiAxMDA2NDQKLS0tIGEvY3J5cHRvL2VjL2VjMl9zbXBsLmMKKysrIGIvY3J5cHRvL2VjL2VjMl9zbXBsLmMKQEAgLTgwLDkgKzgwLDYgQEAKIAogY29uc3QgRUNfTUVUSE9EICpFQ19HRjJtX3NpbXBsZV9tZXRob2Qodm9pZCkKIAl7Ci0jaWZkZWYgT1BFTlNTTF9GSVBTCi0JcmV0dXJuIGZpcHNfZWNfZ2YybV9zaW1wbGVfbWV0aG9kKCk7Ci0jZWxzZQogCXN0YXRpYyBjb25zdCBFQ19NRVRIT0QgcmV0ID0gewogCQlFQ19GTEFHU19ERUZBVUxUX09DVCwKIAkJTklEX1g5XzYyX2NoYXJhY3RlcmlzdGljX3R3b19maWVsZCwKQEAgLTEyNSw4ICsxMjIsMTIgQEAKIAkJMCAvKiBmaWVsZF9kZWNvZGUgKi8sCiAJCTAgLyogZmllbGRfc2V0X3RvX29uZSAqLyB9OwogCi0JcmV0dXJuICZyZXQ7CisjaWZkZWYgT1BFTlNTTF9GSVBTCisJaWYgKEZJUFNfbW9kZSgpKQorCQlyZXR1cm4gZmlwc19lY19nZjJtX3NpbXBsZV9tZXRob2QoKTsKICNlbmRpZgorCisJcmV0dXJuICZyZXQ7CiAJfQogCiAKZGlmZiAtLWdpdCBhL2NyeXB0by9lYy9lY19hbWV0aC5jIGIvY3J5cHRvL2VjL2VjX2FtZXRoLmMKaW5kZXggZjcxNWEyMy4uMTEyODM3NiAxMDA2NDQKLS0tIGEvY3J5cHRvL2VjL2VjX2FtZXRoLmMKKysrIGIvY3J5cHRvL2VjL2VjX2FtZXRoLmMKQEAgLTQ1MywxNCArNDUzLDE2IEBACiAJaWYgKGt0eXBlID4gMCkKIAkJewogCQlwdWJsaWNfa2V5ID0gRUNfS0VZX2dldDBfcHVibGljX2tleSh4KTsKLQkJaWYgKChwdWJfa2V5ID0gRUNfUE9JTlRfcG9pbnQyYm4oZ3JvdXAsIHB1YmxpY19rZXksCi0JCQlFQ19LRVlfZ2V0X2NvbnZfZm9ybSh4KSwgTlVMTCwgY3R4KSkgPT0gTlVMTCkKKwkJaWYgKHB1YmxpY19rZXkgIT0gTlVMTCkKIAkJCXsKLQkJCXJlYXNvbiA9IEVSUl9SX0VDX0xJQjsKLQkJCWdvdG8gZXJyOwotCQkJfQotCQlpZiAocHViX2tleSkKKwkJCWlmICgocHViX2tleSA9IEVDX1BPSU5UX3BvaW50MmJuKGdyb3VwLCBwdWJsaWNfa2V5LAorCQkJCUVDX0tFWV9nZXRfY29udl9mb3JtKHgpLCBOVUxMLCBjdHgpKSA9PSBOVUxMKQorCQkJCXsKKwkJCQlyZWFzb24gPSBFUlJfUl9FQ19MSUI7CisJCQkJZ290byBlcnI7CisJCQkJfQogCQkJYnVmX2xlbiA9IChzaXplX3QpQk5fbnVtX2J5dGVzKHB1Yl9rZXkpOworCQkJfQogCQl9CiAKIAlpZiAoa3R5cGUgPT0gMikKZGlmZiAtLWdpdCBhL2NyeXB0by9lYy9lY19hc24xLmMgYi9jcnlwdG8vZWMvZWNfYXNuMS5jCmluZGV4IGU5NGYzNGUuLjUyZDMxYzIgMTAwNjQ0Ci0tLSBhL2NyeXB0by9lYy9lY19hc24xLmMKKysrIGIvY3J5cHRvL2VjL2VjX2FzbjEuYwpAQCAtMTE4MywzMCArMTE4Myw0NyBAQAogCQlnb3RvIGVycjsKIAkJfQogCisJaWYgKHJldC0+cHViX2tleSkKKwkJRUNfUE9JTlRfY2xlYXJfZnJlZShyZXQtPnB1Yl9rZXkpOworCXJldC0+cHViX2tleSA9IEVDX1BPSU5UX25ldyhyZXQtPmdyb3VwKTsKKwlpZiAocmV0LT5wdWJfa2V5ID09IE5VTEwpCisJCXsKKwkJRUNlcnIoRUNfRl9EMklfRUNQUklWQVRFS0VZLCBFUlJfUl9FQ19MSUIpOworCQlnb3RvIGVycjsKKwkJfQorCiAJaWYgKHByaXZfa2V5LT5wdWJsaWNLZXkpCiAJCXsKIAkJY29uc3QgdW5zaWduZWQgY2hhciAqcHViX29jdDsKLQkJc2l6ZV90IHB1Yl9vY3RfbGVuOworCQlpbnQgcHViX29jdF9sZW47CiAKLQkJaWYgKHJldC0+cHViX2tleSkKLQkJCUVDX1BPSU5UX2NsZWFyX2ZyZWUocmV0LT5wdWJfa2V5KTsKLQkJcmV0LT5wdWJfa2V5ID0gRUNfUE9JTlRfbmV3KHJldC0+Z3JvdXApOwotCQlpZiAocmV0LT5wdWJfa2V5ID09IE5VTEwpCi0JCQl7Ci0JCQlFQ2VycihFQ19GX0QySV9FQ1BSSVZBVEVLRVksIEVSUl9SX0VDX0xJQik7Ci0JCQlnb3RvIGVycjsKLQkJCX0KIAkJcHViX29jdCAgICAgPSBNX0FTTjFfU1RSSU5HX2RhdGEocHJpdl9rZXktPnB1YmxpY0tleSk7CiAJCXB1Yl9vY3RfbGVuID0gTV9BU04xX1NUUklOR19sZW5ndGgocHJpdl9rZXktPnB1YmxpY0tleSk7Ci0JCS8qIHNhdmUgdGhlIHBvaW50IGNvbnZlcnNpb24gZm9ybSAqLworCQkvKiBUaGUgZmlyc3QgYnl0ZSAtIHBvaW50IGNvbnZlcnNpb24gZm9ybSAtIG11c3QgYmUgcHJlc2VudC4gKi8KKyAgICAgICAgICAgICAgICBpZiAocHViX29jdF9sZW4gPD0gMCkKKwkJCXsKKwkJCUVDZXJyKEVDX0ZfRDJJX0VDUFJJVkFURUtFWSwgRUNfUl9CVUZGRVJfVE9PX1NNQUxMKTsKKwkJCWdvdG8gZXJyOworCQkJfQorCQkvKiBTYXZlIHRoZSBwb2ludCBjb252ZXJzaW9uIGZvcm0uICovCiAJCXJldC0+Y29udl9mb3JtID0gKHBvaW50X2NvbnZlcnNpb25fZm9ybV90KShwdWJfb2N0WzBdICYgfjB4MDEpOwogCQlpZiAoIUVDX1BPSU5UX29jdDJwb2ludChyZXQtPmdyb3VwLCByZXQtPnB1Yl9rZXksCi0JCQlwdWJfb2N0LCBwdWJfb2N0X2xlbiwgTlVMTCkpCisJCQkJCXB1Yl9vY3QsIChzaXplX3QpKHB1Yl9vY3RfbGVuKSwgTlVMTCkpCiAJCQl7CiAJCQlFQ2VycihFQ19GX0QySV9FQ1BSSVZBVEVLRVksIEVSUl9SX0VDX0xJQik7CiAJCQlnb3RvIGVycjsKIAkJCX0KIAkJfQorCWVsc2UKKwkJeworCQlpZiAoIUVDX1BPSU5UX211bChyZXQtPmdyb3VwLCByZXQtPnB1Yl9rZXksIHJldC0+cHJpdl9rZXksIE5VTEwsIE5VTEwsIE5VTEwpKQorCQkJeworCQkJRUNlcnIoRUNfRl9EMklfRUNQUklWQVRFS0VZLCBFUlJfUl9FQ19MSUIpOworCQkJZ290byBlcnI7CisJCQl9CisJCS8qIFJlbWVtYmVyIHRoZSBvcmlnaW5hbCBwcml2YXRlLWtleS1vbmx5IGVuY29kaW5nLiAqLworCQlyZXQtPmVuY19mbGFnIHw9IEVDX1BLRVlfTk9fUFVCS0VZOworCQl9CiAKIAlvayA9IDE7CiBlcnI6CkBAIC0xMjMwLDcgKzEyNDcsOCBAQAogCXNpemVfdCAgICAgICAgICBidWZfbGVuPTAsIHRtcF9sZW47CiAJRUNfUFJJVkFURUtFWSAgICpwcml2X2tleT1OVUxMOwogCi0JaWYgKGEgPT0gTlVMTCB8fCBhLT5ncm91cCA9PSBOVUxMIHx8IGEtPnByaXZfa2V5ID09IE5VTEwpCisJaWYgKGEgPT0gTlVMTCB8fCBhLT5ncm91cCA9PSBOVUxMIHx8IGEtPnByaXZfa2V5ID09IE5VTEwgfHwKKwkgICAgKCEoYS0+ZW5jX2ZsYWcgJiBFQ19QS0VZX05PX1BVQktFWSkgJiYgYS0+cHViX2tleSA9PSBOVUxMKSkKIAkJewogCQlFQ2VycihFQ19GX0kyRF9FQ1BSSVZBVEVLRVksCiAgICAgICAgICAgICAgICAgICAgICAgRVJSX1JfUEFTU0VEX05VTExfUEFSQU1FVEVSKTsKZGlmZiAtLWdpdCBhL2NyeXB0by9lYy9lY19saWIuYyBiL2NyeXB0by9lYy9lY19saWIuYwppbmRleCBkZTlhMGNjLi5lMmM0NzQxIDEwMDY0NAotLS0gYS9jcnlwdG8vZWMvZWNfbGliLmMKKysrIGIvY3J5cHRvL2VjL2VjX2xpYi5jCkBAIC05NDIsNyArOTQyLDcgQEAKIAogaW50IEVDX1BPSU5UX2ludmVydChjb25zdCBFQ19HUk9VUCAqZ3JvdXAsIEVDX1BPSU5UICphLCBCTl9DVFggKmN0eCkKIAl7Ci0JaWYgKGdyb3VwLT5tZXRoLT5kYmwgPT0gMCkKKwlpZiAoZ3JvdXAtPm1ldGgtPmludmVydCA9PSAwKQogCQl7CiAJCUVDZXJyKEVDX0ZfRUNfUE9JTlRfSU5WRVJULCBFUlJfUl9TSE9VTERfTk9UX0hBVkVfQkVFTl9DQUxMRUQpOwogCQlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2NyeXB0by9lYy9lY3BfbW9udC5jIGIvY3J5cHRvL2VjL2VjcF9tb250LmMKaW5kZXggZjA0ZjEzMi4uM2M1ZWMxOSAxMDA2NDQKLS0tIGEvY3J5cHRvL2VjL2VjcF9tb250LmMKKysrIGIvY3J5cHRvL2VjL2VjcF9tb250LmMKQEAgLTcyLDkgKzcyLDYgQEAKIAogY29uc3QgRUNfTUVUSE9EICpFQ19HRnBfbW9udF9tZXRob2Qodm9pZCkKIAl7Ci0jaWZkZWYgT1BFTlNTTF9GSVBTCi0JcmV0dXJuIGZpcHNfZWNfZ2ZwX21vbnRfbWV0aG9kKCk7Ci0jZWxzZQogCXN0YXRpYyBjb25zdCBFQ19NRVRIT0QgcmV0ID0gewogCQlFQ19GTEFHU19ERUZBVUxUX09DVCwKIAkJTklEX1g5XzYyX3ByaW1lX2ZpZWxkLApAQCAtMTE0LDggKzExMSwxMiBAQAogCQllY19HRnBfbW9udF9maWVsZF9kZWNvZGUsCiAJCWVjX0dGcF9tb250X2ZpZWxkX3NldF90b19vbmUgfTsKIAotCXJldHVybiAmcmV0OworI2lmZGVmIE9QRU5TU0xfRklQUworCWlmIChGSVBTX21vZGUoKSkKKwkJcmV0dXJuIGZpcHNfZWNfZ2ZwX21vbnRfbWV0aG9kKCk7CiAjZW5kaWYKKworCXJldHVybiAmcmV0OwogCX0KIAogCmRpZmYgLS1naXQgYS9jcnlwdG8vZWMvZWNwX25pc3QuYyBiL2NyeXB0by9lYy9lY3BfbmlzdC5jCmluZGV4IGFhZDJkNWYuLmRiM2I5OWUgMTAwNjQ0Ci0tLSBhL2NyeXB0by9lYy9lY3BfbmlzdC5jCisrKyBiL2NyeXB0by9lYy9lY3BfbmlzdC5jCkBAIC03Myw5ICs3Myw2IEBACiAKIGNvbnN0IEVDX01FVEhPRCAqRUNfR0ZwX25pc3RfbWV0aG9kKHZvaWQpCiAJewotI2lmZGVmIE9QRU5TU0xfRklQUwotCXJldHVybiBmaXBzX2VjX2dmcF9uaXN0X21ldGhvZCgpOwotI2Vsc2UKIAlzdGF0aWMgY29uc3QgRUNfTUVUSE9EIHJldCA9IHsKIAkJRUNfRkxBR1NfREVGQVVMVF9PQ1QsCiAJCU5JRF9YOV82Ml9wcmltZV9maWVsZCwKQEAgLTExNSw4ICsxMTIsMTIgQEAKIAkJMCAvKiBmaWVsZF9kZWNvZGUgKi8sCiAJCTAgLyogZmllbGRfc2V0X3RvX29uZSAqLyB9OwogCi0JcmV0dXJuICZyZXQ7CisjaWZkZWYgT1BFTlNTTF9GSVBTCisJaWYgKEZJUFNfbW9kZSgpKQorCQlyZXR1cm4gZmlwc19lY19nZnBfbmlzdF9tZXRob2QoKTsKICNlbmRpZgorCisJcmV0dXJuICZyZXQ7CiAJfQogCiBpbnQgZWNfR0ZwX25pc3RfZ3JvdXBfY29weShFQ19HUk9VUCAqZGVzdCwgY29uc3QgRUNfR1JPVVAgKnNyYykKZGlmZiAtLWdpdCBhL2NyeXB0by9lYy9lY3Bfc21wbC5jIGIvY3J5cHRvL2VjL2VjcF9zbXBsLmMKaW5kZXggN2NiYjMyMS4uMmQxZjM1NyAxMDA2NDQKLS0tIGEvY3J5cHRvL2VjL2VjcF9zbXBsLmMKKysrIGIvY3J5cHRvL2VjL2VjcF9zbXBsLmMKQEAgLTczLDkgKzczLDYgQEAKIAogY29uc3QgRUNfTUVUSE9EICpFQ19HRnBfc2ltcGxlX21ldGhvZCh2b2lkKQogCXsKLSNpZmRlZiBPUEVOU1NMX0ZJUFMKLQlyZXR1cm4gZmlwc19lY19nZnBfc2ltcGxlX21ldGhvZCgpOwotI2Vsc2UKIAlzdGF0aWMgY29uc3QgRUNfTUVUSE9EIHJldCA9IHsKIAkJRUNfRkxBR1NfREVGQVVMVF9PQ1QsCiAJCU5JRF9YOV82Ml9wcmltZV9maWVsZCwKQEAgLTExNSw4ICsxMTIsMTIgQEAKIAkJMCAvKiBmaWVsZF9kZWNvZGUgKi8sCiAJCTAgLyogZmllbGRfc2V0X3RvX29uZSAqLyB9OwogCi0JcmV0dXJuICZyZXQ7CisjaWZkZWYgT1BFTlNTTF9GSVBTCisJaWYgKEZJUFNfbW9kZSgpKQorCQlyZXR1cm4gZmlwc19lY19nZnBfc2ltcGxlX21ldGhvZCgpOwogI2VuZGlmCisKKwlyZXR1cm4gJnJldDsKIAl9CiAKIApAQCAtMTE4MSw5ICsxMTgyLDggQEAKIGludCBlY19HRnBfc2ltcGxlX3BvaW50c19tYWtlX2FmZmluZShjb25zdCBFQ19HUk9VUCAqZ3JvdXAsIHNpemVfdCBudW0sIEVDX1BPSU5UICpwb2ludHNbXSwgQk5fQ1RYICpjdHgpCiAJewogCUJOX0NUWCAqbmV3X2N0eCA9IE5VTEw7Ci0JQklHTlVNICp0bXAwLCAqdG1wMTsKLQlzaXplX3QgcG93MiA9IDA7Ci0JQklHTlVNICoqaGVhcCA9IE5VTEw7CisJQklHTlVNICp0bXAsICp0bXBfWjsKKwlCSUdOVU0gKipwcm9kX1ogPSBOVUxMOwogCXNpemVfdCBpOwogCWludCByZXQgPSAwOwogCkBAIC0xMTk4LDEyNCArMTE5OCwxMDQgQEAKIAkJfQogCiAJQk5fQ1RYX3N0YXJ0KGN0eCk7Ci0JdG1wMCA9IEJOX0NUWF9nZXQoY3R4KTsKLQl0bXAxID0gQk5fQ1RYX2dldChjdHgpOwotCWlmICh0bXAwICA9PSBOVUxMIHx8IHRtcDEgPT0gTlVMTCkgZ290byBlcnI7CisJdG1wID0gQk5fQ1RYX2dldChjdHgpOworCXRtcF9aID0gQk5fQ1RYX2dldChjdHgpOworCWlmICh0bXAgPT0gTlVMTCB8fCB0bXBfWiA9PSBOVUxMKSBnb3RvIGVycjsKIAotCS8qIEJlZm9yZSBjb252ZXJ0aW5nIHRoZSBpbmRpdmlkdWFsIHBvaW50cywgY29tcHV0ZSBpbnZlcnNlcyBvZiBhbGwgWiB2YWx1ZXMuCi0JICogTW9kdWxhciBpbnZlcnNpb24gaXMgcmF0aGVyIHNsb3csIGJ1dCBsdWNraWx5IHdlIGNhbiBkbyB3aXRoIGEgc2luZ2xlCi0JICogZXhwbGljaXQgaW52ZXJzaW9uLCBwbHVzIGFib3V0IDMgbXVsdGlwbGljYXRpb25zIHBlciBpbnB1dCB2YWx1ZS4KLQkgKi8KLQotCXBvdzIgPSAxOwotCXdoaWxlIChudW0gPiBwb3cyKQotCQlwb3cyIDw8PSAxOwotCS8qIE5vdyBwb3cyIGlzIHRoZSBzbWFsbGVzdCBwb3dlciBvZiAyIHNhdGlmc3lpbmcgcG93MiA+PSBudW0uCi0JICogV2UgbmVlZCB0d2ljZSB0aGF0LiAqLwotCXBvdzIgPDw9IDE7Ci0KLQloZWFwID0gT1BFTlNTTF9tYWxsb2MocG93MiAqIHNpemVvZiBoZWFwWzBdKTsKLQlpZiAoaGVhcCA9PSBOVUxMKSBnb3RvIGVycjsKLQkKLQkvKiBUaGUgYXJyYXkgaXMgdXNlZCBhcyBhIGJpbmFyeSB0cmVlLCBleGFjdGx5IGFzIGluIGhlYXBzb3J0OgotCSAqCi0JICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhcFsxXQotCSAqICAgICAgICAgICAgICAgICBoZWFwWzJdICAgICAgICAgICAgICAgICAgICAgaGVhcFszXQotCSAqICAgICAgICAgIGhlYXBbNF0gICAgICAgaGVhcFs1XSAgICAgICBoZWFwWzZdICAgICAgIGhlYXBbN10KLQkgKiAgIGhlYXBbOF1oZWFwWzldIGhlYXBbMTBdaGVhcFsxMV0gaGVhcFsxMl1oZWFwWzEzXSBoZWFwWzE0XSBoZWFwWzE1XQotCSAqCi0JICogV2UgcHV0IHRoZSBaJ3MgaW4gdGhlIGxhc3QgbGluZTsKLQkgKiB0aGVuIHdlIHNldCBlYWNoIG90aGVyIG5vZGUgdG8gdGhlIHByb2R1Y3Qgb2YgaXRzIHR3byBjaGlsZC1ub2RlcyAod2hlcmUKLQkgKiBlbXB0eSBvciAwIGVudHJpZXMgYXJlIHRyZWF0ZWQgYXMgb25lcyk7Ci0JICogdGhlbiB3ZSBpbnZlcnQgaGVhcFsxXTsKLQkgKiB0aGVuIHdlIGludmVydCBlYWNoIG90aGVyIG5vZGUgYnkgcmVwbGFjaW5nIGl0IGJ5IHRoZSBwcm9kdWN0IG9mIGl0cwotCSAqIHBhcmVudCAoYWZ0ZXIgaW52ZXJzaW9uKSBhbmQgaXRzIHNpYmxpbmcgKGJlZm9yZSBpbnZlcnNpb24pLgotCSAqLwotCWhlYXBbMF0gPSBOVUxMOwotCWZvciAoaSA9IHBvdzIvMiAtIDE7IGkgPiAwOyBpLS0pCi0JCWhlYXBbaV0gPSBOVUxMOworCXByb2RfWiA9IE9QRU5TU0xfbWFsbG9jKG51bSAqIHNpemVvZiBwcm9kX1pbMF0pOworCWlmIChwcm9kX1ogPT0gTlVMTCkgZ290byBlcnI7CiAJZm9yIChpID0gMDsgaSA8IG51bTsgaSsrKQotCQloZWFwW3BvdzIvMiArIGldID0gJnBvaW50c1tpXS0+WjsKLQlmb3IgKGkgPSBwb3cyLzIgKyBudW07IGkgPCBwb3cyOyBpKyspCi0JCWhlYXBbaV0gPSBOVUxMOwotCQotCS8qIHNldCBlYWNoIG5vZGUgdG8gdGhlIHByb2R1Y3Qgb2YgaXRzIGNoaWxkcmVuICovCi0JZm9yIChpID0gcG93Mi8yIC0gMTsgaSA+IDA7IGktLSkKIAkJewotCQloZWFwW2ldID0gQk5fbmV3KCk7Ci0JCWlmIChoZWFwW2ldID09IE5VTEwpIGdvdG8gZXJyOwotCQkKLQkJaWYgKGhlYXBbMippXSAhPSBOVUxMKQotCQkJewotCQkJaWYgKChoZWFwWzIqaSArIDFdID09IE5VTEwpIHx8IEJOX2lzX3plcm8oaGVhcFsyKmkgKyAxXSkpCi0JCQkJewotCQkJCWlmICghQk5fY29weShoZWFwW2ldLCBoZWFwWzIqaV0pKSBnb3RvIGVycjsKLQkJCQl9Ci0JCQllbHNlCi0JCQkJewotCQkJCWlmIChCTl9pc196ZXJvKGhlYXBbMippXSkpCi0JCQkJCXsKLQkJCQkJaWYgKCFCTl9jb3B5KGhlYXBbaV0sIGhlYXBbMippICsgMV0pKSBnb3RvIGVycjsKLQkJCQkJfQotCQkJCWVsc2UKLQkJCQkJewotCQkJCQlpZiAoIWdyb3VwLT5tZXRoLT5maWVsZF9tdWwoZ3JvdXAsIGhlYXBbaV0sCi0JCQkJCQloZWFwWzIqaV0sIGhlYXBbMippICsgMV0sIGN0eCkpIGdvdG8gZXJyOwotCQkJCQl9Ci0JCQkJfQotCQkJfQorCQlwcm9kX1pbaV0gPSBCTl9uZXcoKTsKKwkJaWYgKHByb2RfWltpXSA9PSBOVUxMKSBnb3RvIGVycjsKIAkJfQogCi0JLyogaW52ZXJ0IGhlYXBbMV0gKi8KLQlpZiAoIUJOX2lzX3plcm8oaGVhcFsxXSkpCi0JCXsKLQkJaWYgKCFCTl9tb2RfaW52ZXJzZShoZWFwWzFdLCBoZWFwWzFdLCAmZ3JvdXAtPmZpZWxkLCBjdHgpKQotCQkJewotCQkJRUNlcnIoRUNfRl9FQ19HRlBfU0lNUExFX1BPSU5UU19NQUtFX0FGRklORSwgRVJSX1JfQk5fTElCKTsKLQkJCWdvdG8gZXJyOwotCQkJfQotCQl9Ci0JaWYgKGdyb3VwLT5tZXRoLT5maWVsZF9lbmNvZGUgIT0gMCkKLQkJewotCQkvKiBpbiB0aGUgTW9udGdvbWVyeSBjYXNlLCB3ZSBqdXN0IHR1cm5lZCAgUipIICAocmVwcmVzZW50aW5nIEgpCi0JCSAqIGludG8gIDEvKFIqSCksICBidXQgd2UgbmVlZCAgUiooMS9IKSAgKHJlcHJlc2VudGluZyAxL0gpOwotCQkgKiBpLmUuIHdlIGhhdmUgbmVlZCB0byBtdWx0aXBseSBieSB0aGUgTW9udGdvbWVyeSBmYWN0b3IgdHdpY2UgKi8KLQkJaWYgKCFncm91cC0+bWV0aC0+ZmllbGRfZW5jb2RlKGdyb3VwLCBoZWFwWzFdLCBoZWFwWzFdLCBjdHgpKSBnb3RvIGVycjsKLQkJaWYgKCFncm91cC0+bWV0aC0+ZmllbGRfZW5jb2RlKGdyb3VwLCBoZWFwWzFdLCBoZWFwWzFdLCBjdHgpKSBnb3RvIGVycjsKLQkJfQorCS8qIFNldCBlYWNoIHByb2RfWltpXSB0byB0aGUgcHJvZHVjdCBvZiBwb2ludHNbMF0tPlogLi4gcG9pbnRzW2ldLT5aLAorCSAqIHNraXBwaW5nIGFueSB6ZXJvLXZhbHVlZCBpbnB1dHMgKHByZXRlbmQgdGhhdCB0aGV5J3JlIDEpLiAqLwogCi0JLyogc2V0IG90aGVyIGhlYXBbaV0ncyB0byB0aGVpciBpbnZlcnNlcyAqLwotCWZvciAoaSA9IDI7IGkgPCBwb3cyLzIgKyBudW07IGkgKz0gMikKKwlpZiAoIUJOX2lzX3plcm8oJnBvaW50c1swXS0+WikpCiAJCXsKLQkJLyogaSBpcyBldmVuICovCi0JCWlmICgoaGVhcFtpICsgMV0gIT0gTlVMTCkgJiYgIUJOX2lzX3plcm8oaGVhcFtpICsgMV0pKQorCQlpZiAoIUJOX2NvcHkocHJvZF9aWzBdLCAmcG9pbnRzWzBdLT5aKSkgZ290byBlcnI7CisJCX0KKwllbHNlCisJCXsKKwkJaWYgKGdyb3VwLT5tZXRoLT5maWVsZF9zZXRfdG9fb25lICE9IDApCiAJCQl7Ci0JCQlpZiAoIWdyb3VwLT5tZXRoLT5maWVsZF9tdWwoZ3JvdXAsIHRtcDAsIGhlYXBbaS8yXSwgaGVhcFtpICsgMV0sIGN0eCkpIGdvdG8gZXJyOwotCQkJaWYgKCFncm91cC0+bWV0aC0+ZmllbGRfbXVsKGdyb3VwLCB0bXAxLCBoZWFwW2kvMl0sIGhlYXBbaV0sIGN0eCkpIGdvdG8gZXJyOwotCQkJaWYgKCFCTl9jb3B5KGhlYXBbaV0sIHRtcDApKSBnb3RvIGVycjsKLQkJCWlmICghQk5fY29weShoZWFwW2kgKyAxXSwgdG1wMSkpIGdvdG8gZXJyOworCQkJaWYgKCFncm91cC0+bWV0aC0+ZmllbGRfc2V0X3RvX29uZShncm91cCwgcHJvZF9aWzBdLCBjdHgpKSBnb3RvIGVycjsKIAkJCX0KIAkJZWxzZQogCQkJewotCQkJaWYgKCFCTl9jb3B5KGhlYXBbaV0sIGhlYXBbaS8yXSkpIGdvdG8gZXJyOworCQkJaWYgKCFCTl9vbmUocHJvZF9aWzBdKSkgZ290byBlcnI7CiAJCQl9CiAJCX0KIAotCS8qIHdlIGhhdmUgcmVwbGFjZWQgYWxsIG5vbi16ZXJvIFoncyBieSB0aGVpciBpbnZlcnNlcywgbm93IGZpeCB1cCBhbGwgdGhlIHBvaW50cyAqLworCWZvciAoaSA9IDE7IGkgPCBudW07IGkrKykKKwkJeworCQlpZiAoIUJOX2lzX3plcm8oJnBvaW50c1tpXS0+WikpCisJCQl7CisJCQlpZiAoIWdyb3VwLT5tZXRoLT5maWVsZF9tdWwoZ3JvdXAsIHByb2RfWltpXSwgcHJvZF9aW2kgLSAxXSwgJnBvaW50c1tpXS0+WiwgY3R4KSkgZ290byBlcnI7CisJCQl9CisJCWVsc2UKKwkJCXsKKwkJCWlmICghQk5fY29weShwcm9kX1pbaV0sIHByb2RfWltpIC0gMV0pKSBnb3RvIGVycjsKKwkJCX0KKwkJfQorCisJLyogTm93IHVzZSBhIHNpbmdsZSBleHBsaWNpdCBpbnZlcnNpb24gdG8gcmVwbGFjZSBldmVyeQorCSAqIG5vbi16ZXJvIHBvaW50c1tpXS0+WiBieSBpdHMgaW52ZXJzZS4gKi8KKworCWlmICghQk5fbW9kX2ludmVyc2UodG1wLCBwcm9kX1pbbnVtIC0gMV0sICZncm91cC0+ZmllbGQsIGN0eCkpCisJCXsKKwkJRUNlcnIoRUNfRl9FQ19HRlBfU0lNUExFX1BPSU5UU19NQUtFX0FGRklORSwgRVJSX1JfQk5fTElCKTsKKwkJZ290byBlcnI7CisJCX0KKwlpZiAoZ3JvdXAtPm1ldGgtPmZpZWxkX2VuY29kZSAhPSAwKQorCQl7CisJCS8qIEluIHRoZSBNb250Z29tZXJ5IGNhc2UsIHdlIGp1c3QgdHVybmVkICBSKkggIChyZXByZXNlbnRpbmcgSCkKKwkJICogaW50byAgMS8oUipIKSwgIGJ1dCB3ZSBuZWVkICBSKigxL0gpICAocmVwcmVzZW50aW5nIDEvSCk7CisJCSAqIGkuZS4gd2UgbmVlZCB0byBtdWx0aXBseSBieSB0aGUgTW9udGdvbWVyeSBmYWN0b3IgdHdpY2UuICovCisJCWlmICghZ3JvdXAtPm1ldGgtPmZpZWxkX2VuY29kZShncm91cCwgdG1wLCB0bXAsIGN0eCkpIGdvdG8gZXJyOworCQlpZiAoIWdyb3VwLT5tZXRoLT5maWVsZF9lbmNvZGUoZ3JvdXAsIHRtcCwgdG1wLCBjdHgpKSBnb3RvIGVycjsKKwkJfQorCisJZm9yIChpID0gbnVtIC0gMTsgaSA+IDA7IC0taSkKKwkJeworCQkvKiBMb29wIGludmFyaWFudDogdG1wIGlzIHRoZSBwcm9kdWN0IG9mIHRoZSBpbnZlcnNlcyBvZgorCQkgKiBwb2ludHNbMF0tPlogLi4gcG9pbnRzW2ldLT5aICh6ZXJvLXZhbHVlZCBpbnB1dHMgc2tpcHBlZCkuICovCisJCWlmICghQk5faXNfemVybygmcG9pbnRzW2ldLT5aKSkKKwkJCXsKKwkJCS8qIFNldCB0bXBfWiB0byB0aGUgaW52ZXJzZSBvZiBwb2ludHNbaV0tPlogKGFzIHByb2R1Y3QKKwkJCSAqIG9mIFogaW52ZXJzZXMgMCAuLiBpLCBaIHZhbHVlcyAwIC4uIGkgLSAxKS4gKi8KKwkJCWlmICghZ3JvdXAtPm1ldGgtPmZpZWxkX211bChncm91cCwgdG1wX1osIHByb2RfWltpIC0gMV0sIHRtcCwgY3R4KSkgZ290byBlcnI7CisJCQkvKiBVcGRhdGUgdG1wIHRvIHNhdGlzZnkgdGhlIGxvb3AgaW52YXJpYW50IGZvciBpIC0gMS4gKi8KKwkJCWlmICghZ3JvdXAtPm1ldGgtPmZpZWxkX211bChncm91cCwgdG1wLCB0bXAsICZwb2ludHNbaV0tPlosIGN0eCkpIGdvdG8gZXJyOworCQkJLyogUmVwbGFjZSBwb2ludHNbaV0tPlogYnkgaXRzIGludmVyc2UuICovCisJCQlpZiAoIUJOX2NvcHkoJnBvaW50c1tpXS0+WiwgdG1wX1opKSBnb3RvIGVycjsKKwkJCX0KKwkJfQorCisJaWYgKCFCTl9pc196ZXJvKCZwb2ludHNbMF0tPlopKQorCQl7CisJCS8qIFJlcGxhY2UgcG9pbnRzWzBdLT5aIGJ5IGl0cyBpbnZlcnNlLiAqLworCQlpZiAoIUJOX2NvcHkoJnBvaW50c1swXS0+WiwgdG1wKSkgZ290byBlcnI7CisJCX0KKworCS8qIEZpbmFsbHksIGZpeCB1cCB0aGUgWCBhbmQgWSBjb29yZGluYXRlcyBmb3IgYWxsIHBvaW50cy4gKi8KKwogCWZvciAoaSA9IDA7IGkgPCBudW07IGkrKykKIAkJewogCQlFQ19QT0lOVCAqcCA9IHBvaW50c1tpXTsKLQkJCisKIAkJaWYgKCFCTl9pc196ZXJvKCZwLT5aKSkKIAkJCXsKIAkJCS8qIHR1cm4gIChYLCBZLCAxL1opICBpbnRvICAoWC9aXjIsIFkvWl4zLCAxKSAqLwogCi0JCQlpZiAoIWdyb3VwLT5tZXRoLT5maWVsZF9zcXIoZ3JvdXAsIHRtcDEsICZwLT5aLCBjdHgpKSBnb3RvIGVycjsKLQkJCWlmICghZ3JvdXAtPm1ldGgtPmZpZWxkX211bChncm91cCwgJnAtPlgsICZwLT5YLCB0bXAxLCBjdHgpKSBnb3RvIGVycjsKKwkJCWlmICghZ3JvdXAtPm1ldGgtPmZpZWxkX3Nxcihncm91cCwgdG1wLCAmcC0+WiwgY3R4KSkgZ290byBlcnI7CisJCQlpZiAoIWdyb3VwLT5tZXRoLT5maWVsZF9tdWwoZ3JvdXAsICZwLT5YLCAmcC0+WCwgdG1wLCBjdHgpKSBnb3RvIGVycjsKIAotCQkJaWYgKCFncm91cC0+bWV0aC0+ZmllbGRfbXVsKGdyb3VwLCB0bXAxLCB0bXAxLCAmcC0+WiwgY3R4KSkgZ290byBlcnI7Ci0JCQlpZiAoIWdyb3VwLT5tZXRoLT5maWVsZF9tdWwoZ3JvdXAsICZwLT5ZLCAmcC0+WSwgdG1wMSwgY3R4KSkgZ290byBlcnI7Ci0JCQorCQkJaWYgKCFncm91cC0+bWV0aC0+ZmllbGRfbXVsKGdyb3VwLCB0bXAsIHRtcCwgJnAtPlosIGN0eCkpIGdvdG8gZXJyOworCQkJaWYgKCFncm91cC0+bWV0aC0+ZmllbGRfbXVsKGdyb3VwLCAmcC0+WSwgJnAtPlksIHRtcCwgY3R4KSkgZ290byBlcnI7CisKIAkJCWlmIChncm91cC0+bWV0aC0+ZmllbGRfc2V0X3RvX29uZSAhPSAwKQogCQkJCXsKIAkJCQlpZiAoIWdyb3VwLT5tZXRoLT5maWVsZF9zZXRfdG9fb25lKGdyb3VwLCAmcC0+WiwgY3R4KSkgZ290byBlcnI7CkBAIC0xMzI5LDIwICsxMzA5LDE5IEBACiAJCX0KIAogCXJldCA9IDE7Ci0JCQorCiAgZXJyOgogCUJOX0NUWF9lbmQoY3R4KTsKIAlpZiAobmV3X2N0eCAhPSBOVUxMKQogCQlCTl9DVFhfZnJlZShuZXdfY3R4KTsKLQlpZiAoaGVhcCAhPSBOVUxMKQorCWlmIChwcm9kX1ogIT0gTlVMTCkKIAkJewotCQkvKiBoZWFwW3BvdzIvMl0gLi4gaGVhcFtwb3cyLTFdIGhhdmUgbm90IGJlZW4gYWxsb2NhdGVkIGxvY2FsbHkhICovCi0JCWZvciAoaSA9IHBvdzIvMiAtIDE7IGkgPiAwOyBpLS0pCisJCWZvciAoaSA9IDA7IGkgPCBudW07IGkrKykKIAkJCXsKLQkJCWlmIChoZWFwW2ldICE9IE5VTEwpCi0JCQkJQk5fY2xlYXJfZnJlZShoZWFwW2ldKTsKKwkJCWlmIChwcm9kX1pbaV0gPT0gTlVMTCkgYnJlYWs7CisJCQlCTl9jbGVhcl9mcmVlKHByb2RfWltpXSk7CiAJCQl9Ci0JCU9QRU5TU0xfZnJlZShoZWFwKTsKKwkJT1BFTlNTTF9mcmVlKHByb2RfWik7CiAJCX0KIAlyZXR1cm4gcmV0OwogCX0KZGlmZiAtLWdpdCBhL2NyeXB0by9lYy9lY3Rlc3QuYyBiL2NyeXB0by9lYy9lY3Rlc3QuYwppbmRleCAxMDJlYWE5Li5kMWJmOTgwIDEwMDY0NAotLS0gYS9jcnlwdG8vZWMvZWN0ZXN0LmMKKysrIGIvY3J5cHRvL2VjL2VjdGVzdC5jCkBAIC0xOTksNiArMTk5LDcgQEAKIAlFQ19QT0lOVCAqUCA9IEVDX1BPSU5UX25ldyhncm91cCk7CiAJRUNfUE9JTlQgKlEgPSBFQ19QT0lOVF9uZXcoZ3JvdXApOwogCUJOX0NUWCAqY3R4ID0gQk5fQ1RYX25ldygpOworCWludCBpOwogCiAJbjEgPSBCTl9uZXcoKTsgbjIgPSBCTl9uZXcoKTsgb3JkZXIgPSBCTl9uZXcoKTsKIAlmcHJpbnRmKHN0ZG91dCwgInZlcmlmeSBncm91cCBvcmRlciAuLi4iKTsKQEAgLTIxMiwyMSArMjEzLDU2IEBACiAJaWYgKCFFQ19QT0lOVF9tdWwoZ3JvdXAsIFEsIG9yZGVyLCBOVUxMLCBOVUxMLCBjdHgpKSBBQk9SVDsKIAlpZiAoIUVDX1BPSU5UX2lzX2F0X2luZmluaXR5KGdyb3VwLCBRKSkgQUJPUlQ7CiAJZnByaW50ZihzdGRvdXQsICIgb2tcbiIpOwotCWZwcmludGYoc3Rkb3V0LCAibG9uZy9uZWdhdGl2ZSBzY2FsYXIgdGVzdHMgLi4uICIpOwotCWlmICghQk5fb25lKG4xKSkgQUJPUlQ7Ci0JLyogbjEgPSAxIC0gb3JkZXIgKi8KLQlpZiAoIUJOX3N1YihuMSwgbjEsIG9yZGVyKSkgQUJPUlQ7Ci0JaWYoIUVDX1BPSU5UX211bChncm91cCwgUSwgTlVMTCwgUCwgbjEsIGN0eCkpIEFCT1JUOwotCWlmICgwICE9IEVDX1BPSU5UX2NtcChncm91cCwgUSwgUCwgY3R4KSkgQUJPUlQ7Ci0JLyogbjIgPSAxICsgb3JkZXIgKi8KLQlpZiAoIUJOX2FkZChuMiwgb3JkZXIsIEJOX3ZhbHVlX29uZSgpKSkgQUJPUlQ7Ci0JaWYoIUVDX1BPSU5UX211bChncm91cCwgUSwgTlVMTCwgUCwgbjIsIGN0eCkpIEFCT1JUOwotCWlmICgwICE9IEVDX1BPSU5UX2NtcChncm91cCwgUSwgUCwgY3R4KSkgQUJPUlQ7Ci0JLyogbjIgPSAoMSAtIG9yZGVyKSAqICgxICsgb3JkZXIpICovCi0JaWYgKCFCTl9tdWwobjIsIG4xLCBuMiwgY3R4KSkgQUJPUlQ7Ci0JaWYoIUVDX1BPSU5UX211bChncm91cCwgUSwgTlVMTCwgUCwgbjIsIGN0eCkpIEFCT1JUOwotCWlmICgwICE9IEVDX1BPSU5UX2NtcChncm91cCwgUSwgUCwgY3R4KSkgQUJPUlQ7CisJZnByaW50ZihzdGRvdXQsICJsb25nL25lZ2F0aXZlIHNjYWxhciB0ZXN0cyAiKTsKKyAgICAgICAgZm9yIChpID0gMTsgaSA8PSAyOyBpKyspCisJCXsKKwkJY29uc3QgQklHTlVNICpzY2FsYXJzWzZdOworCQljb25zdCBFQ19QT0lOVCAqcG9pbnRzWzZdOworCisJCWZwcmludGYoc3Rkb3V0LCBpID09IDEgPworCQkJImFsbG93aW5nIHByZWNvbXB1dGF0aW9uIC4uLiAiIDoKKwkJCSJ3aXRob3V0IHByZWNvbXB1dGF0aW9uIC4uLiAiKTsKKwkJaWYgKCFCTl9zZXRfd29yZChuMSwgaSkpIEFCT1JUOworCQkvKiBJZiBpID09IDEsIFAgd2lsbCBiZSB0aGUgcHJlZGVmaW5lZCBnZW5lcmF0b3IgZm9yIHdoaWNoCisJCSAqIEVDX0dST1VQX3ByZWNvbXB1dGVfbXVsdCBoYXMgc2V0IHVwIHByZWNvbXB1dGF0aW9uLiAqLworCQlpZiAoIUVDX1BPSU5UX211bChncm91cCwgUCwgbjEsIE5VTEwsIE5VTEwsIGN0eCkpIEFCT1JUOworCisJCWlmICghQk5fb25lKG4xKSkgQUJPUlQ7CisJCS8qIG4xID0gMSAtIG9yZGVyICovCisJCWlmICghQk5fc3ViKG4xLCBuMSwgb3JkZXIpKSBBQk9SVDsKKwkJaWYgKCFFQ19QT0lOVF9tdWwoZ3JvdXAsIFEsIE5VTEwsIFAsIG4xLCBjdHgpKSBBQk9SVDsKKwkJaWYgKDAgIT0gRUNfUE9JTlRfY21wKGdyb3VwLCBRLCBQLCBjdHgpKSBBQk9SVDsKKworCQkvKiBuMiA9IDEgKyBvcmRlciAqLworCQlpZiAoIUJOX2FkZChuMiwgb3JkZXIsIEJOX3ZhbHVlX29uZSgpKSkgQUJPUlQ7CisJCWlmICghRUNfUE9JTlRfbXVsKGdyb3VwLCBRLCBOVUxMLCBQLCBuMiwgY3R4KSkgQUJPUlQ7CisJCWlmICgwICE9IEVDX1BPSU5UX2NtcChncm91cCwgUSwgUCwgY3R4KSkgQUJPUlQ7CisKKwkJLyogbjIgPSAoMSAtIG9yZGVyKSAqICgxICsgb3JkZXIpID0gMSAtIG9yZGVyXjIgKi8KKwkJaWYgKCFCTl9tdWwobjIsIG4xLCBuMiwgY3R4KSkgQUJPUlQ7CisJCWlmICghRUNfUE9JTlRfbXVsKGdyb3VwLCBRLCBOVUxMLCBQLCBuMiwgY3R4KSkgQUJPUlQ7CisJCWlmICgwICE9IEVDX1BPSU5UX2NtcChncm91cCwgUSwgUCwgY3R4KSkgQUJPUlQ7CisKKwkJLyogbjIgPSBvcmRlcl4yIC0gMSAqLworCQlCTl9zZXRfbmVnYXRpdmUobjIsIDApOworCQlpZiAoIUVDX1BPSU5UX211bChncm91cCwgUSwgTlVMTCwgUCwgbjIsIGN0eCkpIEFCT1JUOworCQkvKiBBZGQgUCB0byB2ZXJpZnkgdGhlIHJlc3VsdC4gKi8KKwkJaWYgKCFFQ19QT0lOVF9hZGQoZ3JvdXAsIFEsIFEsIFAsIGN0eCkpIEFCT1JUOworCQlpZiAoIUVDX1BPSU5UX2lzX2F0X2luZmluaXR5KGdyb3VwLCBRKSkgQUJPUlQ7CisKKwkJLyogRXhlcmNpc2UgRUNfUE9JTlRzX211bCwgaW5jbHVkaW5nIGNvcm5lciBjYXNlcy4gKi8KKwkJaWYgKEVDX1BPSU5UX2lzX2F0X2luZmluaXR5KGdyb3VwLCBQKSkgQUJPUlQ7CisJCXNjYWxhcnNbMF0gPSBuMTsgcG9pbnRzWzBdID0gUTsgLyogPT4gaW5maW5pdHkgKi8KKwkJc2NhbGFyc1sxXSA9IG4yOyBwb2ludHNbMV0gPSBQOyAvKiA9PiAtUCAqLworCQlzY2FsYXJzWzJdID0gbjE7IHBvaW50c1syXSA9IFE7IC8qID0+IGluZmluaXR5ICovCisJCXNjYWxhcnNbM10gPSBuMjsgcG9pbnRzWzNdID0gUTsgLyogPT4gaW5maW5pdHkgKi8KKwkJc2NhbGFyc1s0XSA9IG4xOyBwb2ludHNbNF0gPSBQOyAvKiA9PiBQICovCisJCXNjYWxhcnNbNV0gPSBuMjsgcG9pbnRzWzVdID0gUTsgLyogPT4gaW5maW5pdHkgKi8KKwkJaWYgKCFFQ19QT0lOVHNfbXVsKGdyb3VwLCBQLCBOVUxMLCA2LCBwb2ludHMsIHNjYWxhcnMsIGN0eCkpIEFCT1JUOworCQlpZiAoIUVDX1BPSU5UX2lzX2F0X2luZmluaXR5KGdyb3VwLCBQKSkgQUJPUlQ7CisJCX0KIAlmcHJpbnRmKHN0ZG91dCwgIm9rXG4iKTsKKwogCUVDX1BPSU5UX2ZyZWUoUCk7CiAJRUNfUE9JTlRfZnJlZShRKTsKIAlCTl9mcmVlKG4xKTsKZGlmZiAtLWdpdCBhL2NyeXB0by9lcnIvb3BlbnNzbC5lYyBiL2NyeXB0by9lcnIvb3BlbnNzbC5lYwppbmRleCAzNDc1NGU1Li5iYWZiYzM1IDEwMDY0NAotLS0gYS9jcnlwdG8vZXJyL29wZW5zc2wuZWMKKysrIGIvY3J5cHRvL2Vyci9vcGVuc3NsLmVjCkBAIC03MSw3ICs3MSw3IEBACiBSIFNTTF9SX1RMU1YxX0FMRVJUX1BST1RPQ09MX1ZFUlNJT04JCTEwNzAKIFIgU1NMX1JfVExTVjFfQUxFUlRfSU5TVUZGSUNJRU5UX1NFQ1VSSVRZCTEwNzEKIFIgU1NMX1JfVExTVjFfQUxFUlRfSU5URVJOQUxfRVJST1IJCTEwODAKLVIgU1NMX1JfU1NMVjNfQUxFUlRfSU5BUFBST1BSSUFURV9GQUxMQkFDSwkxMDg2CitSIFNTTF9SX1RMU1YxX0FMRVJUX0lOQVBQUk9QUklBVEVfRkFMTEJBQ0sJMTA4NgogUiBTU0xfUl9UTFNWMV9BTEVSVF9VU0VSX0NBTkNFTExFRAkJMTA5MAogUiBTU0xfUl9UTFNWMV9BTEVSVF9OT19SRU5FR09USUFUSU9OCQkxMTAwCiBSIFNTTF9SX1RMU1YxX1VOU1VQUE9SVEVEX0VYVEVOU0lPTgkJMTExMApkaWZmIC0tZ2l0IGEvY3J5cHRvL2V2cC9lX2Flcy5jIGIvY3J5cHRvL2V2cC9lX2Flcy5jCmluZGV4IGFkMGY3YTQuLjg1ZDVhYWEgMTAwNjQ0Ci0tLSBhL2NyeXB0by9ldnAvZV9hZXMuYworKysgYi9jcnlwdG8vZXZwL2VfYWVzLmMKQEAgLTE2Niw3ICsxNjYsNyBAQAogI2RlZmluZSBWUEFFU19DQVBBQkxFCShPUEVOU1NMX2lhMzJjYXBfUFsxXSYoMTw8KDQxLTMyKSkpCiAjZW5kaWYKICNpZmRlZiBCU0FFU19BU00KLSNkZWZpbmUgQlNBRVNfQ0FQQUJMRQlWUEFFU19DQVBBQkxFCisjZGVmaW5lIEJTQUVTX0NBUEFCTEUJKE9QRU5TU0xfaWEzMmNhcF9QWzFdJigxPDwoNDEtMzIpKSkKICNlbmRpZgogLyoKICAqIEFFUy1OSSBzZWN0aW9uCkBAIC04NzMsNiArODczLDI4IEBACiAJCS8qIEV4dHJhIHBhZGRpbmc6IHRhZyBhcHBlbmRlZCB0byByZWNvcmQgKi8KIAkJcmV0dXJuIEVWUF9HQ01fVExTX1RBR19MRU47CiAKKwljYXNlIEVWUF9DVFJMX0NPUFk6CisJCXsKKwkJCUVWUF9DSVBIRVJfQ1RYICpvdXQgPSBwdHI7CisJCQlFVlBfQUVTX0dDTV9DVFggKmdjdHhfb3V0ID0gb3V0LT5jaXBoZXJfZGF0YTsKKwkJCWlmIChnY3R4LT5nY20ua2V5KQorCQkJCXsKKwkJCQlpZiAoZ2N0eC0+Z2NtLmtleSAhPSAmZ2N0eC0+a3MpCisJCQkJCXJldHVybiAwOworCQkJCWdjdHhfb3V0LT5nY20ua2V5ID0gJmdjdHhfb3V0LT5rczsKKwkJCQl9CisJCQlpZiAoZ2N0eC0+aXYgPT0gYy0+aXYpCisJCQkJZ2N0eF9vdXQtPml2ID0gb3V0LT5pdjsKKwkJCWVsc2UKKwkJCXsKKwkJCQlnY3R4X291dC0+aXYgPSBPUEVOU1NMX21hbGxvYyhnY3R4LT5pdmxlbik7CisJCQkJaWYgKCFnY3R4X291dC0+aXYpCisJCQkJCXJldHVybiAwOworCQkJCW1lbWNweShnY3R4X291dC0+aXYsIGdjdHgtPml2LCBnY3R4LT5pdmxlbik7CisJCQl9CisJCQlyZXR1cm4gMTsKKwkJfQorCiAJZGVmYXVsdDoKIAkJcmV0dXJuIC0xOwogCkBAIC0xMTEyLDcgKzExMzQsOCBAQAogCiAjZGVmaW5lIENVU1RPTV9GTEFHUwkoRVZQX0NJUEhfRkxBR19ERUZBVUxUX0FTTjEgXAogCQl8IEVWUF9DSVBIX0NVU1RPTV9JViB8IEVWUF9DSVBIX0ZMQUdfQ1VTVE9NX0NJUEhFUiBcCi0JCXwgRVZQX0NJUEhfQUxXQVlTX0NBTExfSU5JVCB8IEVWUF9DSVBIX0NUUkxfSU5JVCkKKwkJfCBFVlBfQ0lQSF9BTFdBWVNfQ0FMTF9JTklUIHwgRVZQX0NJUEhfQ1RSTF9JTklUIFwKKwkJfCBFVlBfQ0lQSF9DVVNUT01fQ09QWSkKIAogQkxPQ0tfQ0lQSEVSX2N1c3RvbShOSURfYWVzLDEyOCwxLDEyLGdjbSxHQ00sCiAJCUVWUF9DSVBIX0ZMQUdfRklQU3xFVlBfQ0lQSF9GTEFHX0FFQURfQ0lQSEVSfENVU1RPTV9GTEFHUykKQEAgLTExMjQsNyArMTE0NywyNSBAQAogc3RhdGljIGludCBhZXNfeHRzX2N0cmwoRVZQX0NJUEhFUl9DVFggKmMsIGludCB0eXBlLCBpbnQgYXJnLCB2b2lkICpwdHIpCiAJewogCUVWUF9BRVNfWFRTX0NUWCAqeGN0eCA9IGMtPmNpcGhlcl9kYXRhOwotCWlmICh0eXBlICE9IEVWUF9DVFJMX0lOSVQpCisJaWYgKHR5cGUgPT0gRVZQX0NUUkxfQ09QWSkKKwkJeworCQlFVlBfQ0lQSEVSX0NUWCAqb3V0ID0gcHRyOworCQlFVlBfQUVTX1hUU19DVFggKnhjdHhfb3V0ID0gb3V0LT5jaXBoZXJfZGF0YTsKKwkJaWYgKHhjdHgtPnh0cy5rZXkxKQorCQkJeworCQkJaWYgKHhjdHgtPnh0cy5rZXkxICE9ICZ4Y3R4LT5rczEpCisJCQkJcmV0dXJuIDA7CisJCQl4Y3R4X291dC0+eHRzLmtleTEgPSAmeGN0eF9vdXQtPmtzMTsKKwkJCX0KKwkJaWYgKHhjdHgtPnh0cy5rZXkyKQorCQkJeworCQkJaWYgKHhjdHgtPnh0cy5rZXkyICE9ICZ4Y3R4LT5rczIpCisJCQkJcmV0dXJuIDA7CisJCQl4Y3R4X291dC0+eHRzLmtleTIgPSAmeGN0eF9vdXQtPmtzMjsKKwkJCX0KKwkJcmV0dXJuIDE7CisJCX0KKwllbHNlIGlmICh0eXBlICE9IEVWUF9DVFJMX0lOSVQpCiAJCXJldHVybiAtMTsKIAkvKiBrZXkxIGFuZCBrZXkyIGFyZSB1c2VkIGFzIGFuIGluZGljYXRvciBib3RoIGtleSBhbmQgSVYgYXJlIHNldCAqLwogCXhjdHgtPnh0cy5rZXkxID0gTlVMTDsKQEAgLTEyNTYsNyArMTI5Nyw4IEBACiAjZGVmaW5lIGFlc194dHNfY2xlYW51cCBOVUxMCiAKICNkZWZpbmUgWFRTX0ZMQUdTCShFVlBfQ0lQSF9GTEFHX0RFRkFVTFRfQVNOMSB8IEVWUF9DSVBIX0NVU1RPTV9JViBcCi0JCQkgfCBFVlBfQ0lQSF9BTFdBWVNfQ0FMTF9JTklUIHwgRVZQX0NJUEhfQ1RSTF9JTklUKQorCQkJIHwgRVZQX0NJUEhfQUxXQVlTX0NBTExfSU5JVCB8IEVWUF9DSVBIX0NUUkxfSU5JVCBcCisJCQkgfCBFVlBfQ0lQSF9DVVNUT01fQ09QWSkKIAogQkxPQ0tfQ0lQSEVSX2N1c3RvbShOSURfYWVzLDEyOCwxLDE2LHh0cyxYVFMsRVZQX0NJUEhfRkxBR19GSVBTfFhUU19GTEFHUykKIEJMT0NLX0NJUEhFUl9jdXN0b20oTklEX2FlcywyNTYsMSwxNix4dHMsWFRTLEVWUF9DSVBIX0ZMQUdfRklQU3xYVFNfRkxBR1MpCkBAIC0xMzA2LDYgKzEzNDgsMTkgQEAKIAkJY2N0eC0+bGVuX3NldCA9IDA7CiAJCXJldHVybiAxOwogCisJY2FzZSBFVlBfQ1RSTF9DT1BZOgorCQl7CisJCQlFVlBfQ0lQSEVSX0NUWCAqb3V0ID0gcHRyOworCQkJRVZQX0FFU19DQ01fQ1RYICpjY3R4X291dCA9IG91dC0+Y2lwaGVyX2RhdGE7CisJCQlpZiAoY2N0eC0+Y2NtLmtleSkKKwkJCQl7CisJCQkJaWYgKGNjdHgtPmNjbS5rZXkgIT0gJmNjdHgtPmtzKQorCQkJCQlyZXR1cm4gMDsKKwkJCQljY3R4X291dC0+Y2NtLmtleSA9ICZjY3R4X291dC0+a3M7CisJCQkJfQorCQkJcmV0dXJuIDE7CisJCX0KKwogCWRlZmF1bHQ6CiAJCXJldHVybiAtMTsKIApkaWZmIC0tZ2l0IGEvY3J5cHRvL2V2cC9ldnBfZW5jLmMgYi9jcnlwdG8vZXZwL2V2cF9lbmMuYwppbmRleCAwYzU0ZjA1Li43YjE4NDJhIDEwMDY0NAotLS0gYS9jcnlwdG8vZXZwL2V2cF9lbmMuYworKysgYi9jcnlwdG8vZXZwL2V2cF9lbmMuYwpAQCAtNjcsNiArNjcsNyBAQAogI2lmZGVmIE9QRU5TU0xfRklQUwogI2luY2x1ZGUgPG9wZW5zc2wvZmlwcy5oPgogI2VuZGlmCisjaW5jbHVkZSAiY29uc3RhbnRfdGltZV9sb2NsLmgiCiAjaW5jbHVkZSAiZXZwX2xvY2wuaCIKIAogI2lmZGVmIE9QRU5TU0xfRklQUwpAQCAtNTAwLDIxICs1MDEsMjEgQEAKIAogaW50IEVWUF9EZWNyeXB0RmluYWxfZXgoRVZQX0NJUEhFUl9DVFggKmN0eCwgdW5zaWduZWQgY2hhciAqb3V0LCBpbnQgKm91dGwpCiAJewotCWludCBpLG47Ci0JdW5zaWduZWQgaW50IGI7CisJdW5zaWduZWQgaW50IGksIGI7CisgICAgICAgIHVuc2lnbmVkIGNoYXIgcGFkLCBwYWRkaW5nX2dvb2Q7CiAJKm91dGw9MDsKIAogCWlmIChjdHgtPmNpcGhlci0+ZmxhZ3MgJiBFVlBfQ0lQSF9GTEFHX0NVU1RPTV9DSVBIRVIpCiAJCXsKLQkJaSA9IE1fZG9fY2lwaGVyKGN0eCwgb3V0LCBOVUxMLCAwKTsKLQkJaWYgKGkgPCAwKQorCQlpbnQgcmV0ID0gTV9kb19jaXBoZXIoY3R4LCBvdXQsIE5VTEwsIDApOworCQlpZiAocmV0IDwgMCkKIAkJCXJldHVybiAwOwogCQllbHNlCi0JCQkqb3V0bCA9IGk7CisJCQkqb3V0bCA9IHJldDsKIAkJcmV0dXJuIDE7CiAJCX0KIAotCWI9Y3R4LT5jaXBoZXItPmJsb2NrX3NpemU7CisJYj0odW5zaWduZWQgaW50KShjdHgtPmNpcGhlci0+YmxvY2tfc2l6ZSk7CiAJaWYgKGN0eC0+ZmxhZ3MgJiBFVlBfQ0lQSF9OT19QQURESU5HKQogCQl7CiAJCWlmKGN0eC0+YnVmX2xlbikKQEAgLTUzMywyOCArNTM0LDM0IEBACiAJCQlyZXR1cm4oMCk7CiAJCQl9CiAJCU9QRU5TU0xfYXNzZXJ0KGIgPD0gc2l6ZW9mIGN0eC0+ZmluYWwpOwotCQluPWN0eC0+ZmluYWxbYi0xXTsKLQkJaWYgKG4gPT0gMCB8fCBuID4gKGludCliKQorCQlwYWQ9Y3R4LT5maW5hbFtiLTFdOworCisJCXBhZGRpbmdfZ29vZCA9ICh1bnNpZ25lZCBjaGFyKSh+Y29uc3RhbnRfdGltZV9pc196ZXJvXzgocGFkKSk7CisJCXBhZGRpbmdfZ29vZCAmPSBjb25zdGFudF90aW1lX2dlXzgoYiwgcGFkKTsKKworICAgICAgICAgICAgICAgIGZvciAoaSA9IDE7IGkgPCBiOyArK2kpCiAJCQl7Ci0JCQlFVlBlcnIoRVZQX0ZfRVZQX0RFQ1JZUFRGSU5BTF9FWCxFVlBfUl9CQURfREVDUllQVCk7Ci0JCQlyZXR1cm4oMCk7CisJCQl1bnNpZ25lZCBjaGFyIGlzX3BhZF9pbmRleCA9IGNvbnN0YW50X3RpbWVfbHRfOChpLCBwYWQpOworCQkJdW5zaWduZWQgY2hhciBwYWRfYnl0ZV9nb29kID0gY29uc3RhbnRfdGltZV9lcV84KGN0eC0+ZmluYWxbYi1pLTFdLCBwYWQpOworCQkJcGFkZGluZ19nb29kICY9IGNvbnN0YW50X3RpbWVfc2VsZWN0XzgoaXNfcGFkX2luZGV4LCBwYWRfYnl0ZV9nb29kLCAweGZmKTsKIAkJCX0KLQkJZm9yIChpPTA7IGk8bjsgaSsrKQotCQkJewotCQkJaWYgKGN0eC0+ZmluYWxbLS1iXSAhPSBuKQotCQkJCXsKLQkJCQlFVlBlcnIoRVZQX0ZfRVZQX0RFQ1JZUFRGSU5BTF9FWCxFVlBfUl9CQURfREVDUllQVCk7Ci0JCQkJcmV0dXJuKDApOwotCQkJCX0KLQkJCX0KLQkJbj1jdHgtPmNpcGhlci0+YmxvY2tfc2l6ZS1uOwotCQlmb3IgKGk9MDsgaTxuOyBpKyspCi0JCQlvdXRbaV09Y3R4LT5maW5hbFtpXTsKLQkJKm91dGw9bjsKKworCQkvKgorCQkgKiBBdCBsZWFzdCAxIGJ5dGUgaXMgYWx3YXlzIHBhZGRpbmcsIHNvIHdlIGFsd2F5cyB3cml0ZSBiIC0gMQorCQkgKiBieXRlcyB0byBhdm9pZCBhIHRpbWluZyBsZWFrLiBUaGUgY2FsbGVyIGlzIHJlcXVpcmVkIHRvIGhhdmUgfGJ8CisJCSAqIGJ5dGVzIHNwYWNlIGluIHxvdXR8IGJ5IHRoZSBBUEkgY29udHJhY3QuCisJCSAqLworCQlmb3IgKGkgPSAwOyBpIDwgYiAtIDE7ICsraSkKKwkJCW91dFtpXSA9IGN0eC0+ZmluYWxbaV0gJiBwYWRkaW5nX2dvb2Q7CisJCS8qIFNhZmUgY2FzdDogZm9yIGEgZ29vZCBwYWRkaW5nLCBFVlBfTUFYX0lWX0xFTkdUSCA+PSBiID49IHBhZCAqLworCQkqb3V0bCA9IHBhZGRpbmdfZ29vZCAmICgodW5zaWduZWQgY2hhcikoYiAtIHBhZCkpOworCQlyZXR1cm4gcGFkZGluZ19nb29kICYgMTsKIAkJfQogCWVsc2UKLQkJKm91dGw9MDsKLQlyZXR1cm4oMSk7CisJCXsKKwkJKm91dGwgPSAwOworCQlyZXR1cm4gMTsKKwkJfQogCX0KIAogdm9pZCBFVlBfQ0lQSEVSX0NUWF9mcmVlKEVWUF9DSVBIRVJfQ1RYICpjdHgpCkBAIC02NzgsNCArNjg1LDMgQEAKIAkJcmV0dXJuIGluLT5jaXBoZXItPmN0cmwoKEVWUF9DSVBIRVJfQ1RYICopaW4sIEVWUF9DVFJMX0NPUFksIDAsIG91dCk7CiAJcmV0dXJuIDE7CiAJfQotCmRpZmYgLS1naXQgYS9jcnlwdG8vZXZwL2V2cF9wYmUuYyBiL2NyeXB0by9ldnAvZXZwX3BiZS5jCmluZGV4IGY4YzMyZDguLjU5Njk2OTUgMTAwNjQ0Ci0tLSBhL2NyeXB0by9ldnAvZXZwX3BiZS5jCisrKyBiL2NyeXB0by9ldnAvZXZwX3BiZS5jCkBAIC0yNTksNyArMjU5LDcgQEAKIAl7CiAJaW50IGNpcGhlcl9uaWQsIG1kX25pZDsKIAlpZiAoY2lwaGVyKQotCQljaXBoZXJfbmlkID0gRVZQX0NJUEhFUl90eXBlKGNpcGhlcik7CisJCWNpcGhlcl9uaWQgPSBFVlBfQ0lQSEVSX25pZChjaXBoZXIpOwogCWVsc2UKIAkJY2lwaGVyX25pZCA9IC0xOwogCWlmIChtZCkKZGlmZiAtLWdpdCBhL2NyeXB0by9tZDUvYXNtL21kNS14ODZfNjQucGwgYi9jcnlwdG8vbWQ1L2FzbS9tZDUteDg2XzY0LnBsCmluZGV4IGYxMTIyNGQuLjM4MWJmNzcgMTAwNzU1Ci0tLSBhL2NyeXB0by9tZDUvYXNtL21kNS14ODZfNjQucGwKKysrIGIvY3J5cHRvL21kNS9hc20vbWQ1LXg4Nl82NC5wbApAQCAtMTA4LDYgKzEwOCw3IEBACiBFT0YKIH0KIAorbm8gd2FybmluZ3MgcXcodW5pbml0aWFsaXplZCk7CiBteSAkZmxhdm91ciA9IHNoaWZ0OwogbXkgJG91dHB1dCAgPSBzaGlmdDsKIGlmICgkZmxhdm91ciA9fiAvXC4vKSB7ICRvdXRwdXQgPSAkZmxhdm91cjsgdW5kZWYgJGZsYXZvdXI7IH0KQEAgLTExOSw3ICsxMjAsNiBAQAogKCAkeGxhdGU9IiR7ZGlyfS4uLy4uL3Blcmxhc20veDg2XzY0LXhsYXRlLnBsIiBhbmQgLWYgJHhsYXRlKSBvcgogZGllICJjYW4ndCBsb2NhdGUgeDg2XzY0LXhsYXRlLnBsIjsKIAotbm8gd2FybmluZ3MgcXcodW5pbml0aWFsaXplZCk7CiBvcGVuIE9VVCwifCBcIiReWFwiICR4bGF0ZSAkZmxhdm91ciAkb3V0cHV0IjsKICpTVERPVVQ9Kk9VVDsKIApkaWZmIC0tZ2l0IGEvY3J5cHRvL29iamVjdHMvb2JqX2RhdC5jIGIvY3J5cHRvL29iamVjdHMvb2JqX2RhdC5jCmluZGV4IDhhMzQyYmEuLjBiMmY0NDIgMTAwNjQ0Ci0tLSBhL2NyeXB0by9vYmplY3RzL29ial9kYXQuYworKysgYi9jcnlwdG8vb2JqZWN0cy9vYmpfZGF0LmMKQEAgLTQ3MSwxMSArNDcxLDEyIEBACiAJY29uc3QgdW5zaWduZWQgY2hhciAqcDsKIAljaGFyIHRidWZbREVDSU1BTF9TSVpFKGkpK0RFQ0lNQUxfU0laRShsKSsyXTsKIAotCWlmICgoYSA9PSBOVUxMKSB8fCAoYS0+ZGF0YSA9PSBOVUxMKSkgewotCQlidWZbMF09J1wwJzsKLQkJcmV0dXJuKDApOwotCX0KKwkvKiBFbnN1cmUgdGhhdCwgYXQgZXZlcnkgc3RhdGUsIHxidWZ8IGlzIE5VTC10ZXJtaW5hdGVkLiAqLworCWlmIChidWYgJiYgYnVmX2xlbiA+IDApCisJCWJ1ZlswXSA9ICdcMCc7CiAKKwlpZiAoKGEgPT0gTlVMTCkgfHwgKGEtPmRhdGEgPT0gTlVMTCkpCisJCXJldHVybigwKTsKIAogCWlmICghbm9fbmFtZSAmJiAobmlkPU9CSl9vYmoybmlkKGEpKSAhPSBOSURfdW5kZWYpCiAJCXsKQEAgLTU1NCw5ICs1NTUsMTAgQEAKIAkJCQlpPShpbnQpKGwvNDApOwogCQkJCWwtPShsb25nKShpKjQwKTsKIAkJCQl9Ci0JCQlpZiAoYnVmICYmIChidWZfbGVuID4gMCkpCisJCQlpZiAoYnVmICYmIChidWZfbGVuID4gMSkpCiAJCQkJewogCQkJCSpidWYrKyA9IGkgKyAnMCc7CisJCQkJKmJ1ZiA9ICdcMCc7CiAJCQkJYnVmX2xlbi0tOwogCQkJCX0KIAkJCW4rKzsKQEAgLTU3MSw5ICs1NzMsMTAgQEAKIAkJCWkgPSBzdHJsZW4oYm5kZWMpOwogCQkJaWYgKGJ1ZikKIAkJCQl7Ci0JCQkJaWYgKGJ1Zl9sZW4gPiAwKQorCQkJCWlmIChidWZfbGVuID4gMSkKIAkJCQkJewogCQkJCQkqYnVmKysgPSAnLic7CisJCQkJCSpidWYgPSAnXDAnOwogCQkJCQlidWZfbGVuLS07CiAJCQkJCX0KIAkJCQlCVUZfc3RybGNweShidWYsYm5kZWMsYnVmX2xlbik7CkBAIC04MDcsNCArODEwLDMgQEAKIAlPUEVOU1NMX2ZyZWUoYnVmKTsKIAlyZXR1cm4ob2spOwogCX0KLQpkaWZmIC0tZ2l0IGEvY3J5cHRvL29iamVjdHMvb2JqX2RhdC5oIGIvY3J5cHRvL29iamVjdHMvb2JqX2RhdC5oCmluZGV4IGQ0MDRhZDAuLmJjNjk2NjUgMTAwNjQ0Ci0tLSBhL2NyeXB0by9vYmplY3RzL29ial9kYXQuaAorKysgYi9jcnlwdG8vb2JqZWN0cy9vYmpfZGF0LmgKQEAgLTY3LDE5MDggKzY3LDE5MDEgQEAKICNkZWZpbmUgTlVNX0xOIDkxMwogI2RlZmluZSBOVU1fT0JKIDg1NwogCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBsdmFsdWVzWzU5ODBdPXsKLTB4MDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsgIDBdIE9CSl91bmRlZiAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsICAgICAgICAgICAgICAgLyogWyAgMV0gT0JKX3JzYWRzaSAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwgICAgICAgICAgLyogWyAgN10gT0JKX3BrY3MgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDIsMHgwMiwgICAgIC8qIFsgMTRdIE9CSl9tZDIgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDIsMHgwNSwgICAgIC8qIFsgMjJdIE9CSl9tZDUgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDMsMHgwNCwgICAgIC8qIFsgMzBdIE9CSl9yYzQgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwMSwweDAxLC8qIFsgMzhdIE9CSl9yc2FFbmNyeXB0aW9uICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDEsMHgwMiwvKiBbIDQ3XSBPQkpfbWQyV2l0aFJTQUVuY3J5cHRpb24gKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwMSwweDA0LC8qIFsgNTZdIE9CSl9tZDVXaXRoUlNBRW5jcnlwdGlvbiAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA1LDB4MDEsLyogWyA2NV0gT0JKX3BiZVdpdGhNRDJBbmRERVNfQ0JDICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDUsMHgwMywvKiBbIDc0XSBPQkpfcGJlV2l0aE1ENUFuZERFU19DQkMgKi8KLTB4NTUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsgODNdIE9CSl9YNTAwICovCi0weDU1LDB4MDQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbIDg0XSBPQkpfWDUwOSAqLwotMHg1NSwweDA0LDB4MDMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWyA4Nl0gT0JKX2NvbW1vbk5hbWUgKi8KLTB4NTUsMHgwNCwweDA2LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsgODldIE9CSl9jb3VudHJ5TmFtZSAqLwotMHg1NSwweDA0LDB4MDcsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWyA5Ml0gT0JKX2xvY2FsaXR5TmFtZSAqLwotMHg1NSwweDA0LDB4MDgsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWyA5NV0gT0JKX3N0YXRlT3JQcm92aW5jZU5hbWUgKi8KLTB4NTUsMHgwNCwweDBBLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsgOThdIE9CSl9vcmdhbml6YXRpb25OYW1lICovCi0weDU1LDB4MDQsMHgwQiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMTAxXSBPQkpfb3JnYW5pemF0aW9uYWxVbml0TmFtZSAqLwotMHg1NSwweDA4LDB4MDEsMHgwMSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzEwNF0gT0JKX3JzYSAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA3LCAgICAgLyogWzEwOF0gT0JKX3BrY3M3ICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDcsMHgwMSwvKiBbMTE2XSBPQkpfcGtjczdfZGF0YSAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA3LDB4MDIsLyogWzEyNV0gT0JKX3BrY3M3X3NpZ25lZCAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA3LDB4MDMsLyogWzEzNF0gT0JKX3BrY3M3X2VudmVsb3BlZCAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA3LDB4MDQsLyogWzE0M10gT0JKX3BrY3M3X3NpZ25lZEFuZEVudmVsb3BlZCAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA3LDB4MDUsLyogWzE1Ml0gT0JKX3BrY3M3X2RpZ2VzdCAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA3LDB4MDYsLyogWzE2MV0gT0JKX3BrY3M3X2VuY3J5cHRlZCAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDAzLCAgICAgLyogWzE3MF0gT0JKX3BrY3MzICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDMsMHgwMSwvKiBbMTc4XSBPQkpfZGhLZXlBZ3JlZW1lbnQgKi8KLTB4MkIsMHgwRSwweDAzLDB4MDIsMHgwNiwgICAgICAgICAgICAgICAgICAgIC8qIFsxODddIE9CSl9kZXNfZWNiICovCi0weDJCLDB4MEUsMHgwMywweDAyLDB4MDksICAgICAgICAgICAgICAgICAgICAvKiBbMTkyXSBPQkpfZGVzX2NmYjY0ICovCi0weDJCLDB4MEUsMHgwMywweDAyLDB4MDcsICAgICAgICAgICAgICAgICAgICAvKiBbMTk3XSBPQkpfZGVzX2NiYyAqLwotMHgyQiwweDBFLDB4MDMsMHgwMiwweDExLCAgICAgICAgICAgICAgICAgICAgLyogWzIwMl0gT0JKX2Rlc19lZGVfZWNiICovCi0weDJCLDB4MDYsMHgwMSwweDA0LDB4MDEsMHg4MSwweDNDLDB4MDcsMHgwMSwweDAxLDB4MDIsLyogWzIwN10gT0JKX2lkZWFfY2JjICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAzLDB4MDIsICAgICAvKiBbMjE4XSBPQkpfcmMyX2NiYyAqLwotMHgyQiwweDBFLDB4MDMsMHgwMiwweDEyLCAgICAgICAgICAgICAgICAgICAgLyogWzIyNl0gT0JKX3NoYSAqLwotMHgyQiwweDBFLDB4MDMsMHgwMiwweDBGLCAgICAgICAgICAgICAgICAgICAgLyogWzIzMV0gT0JKX3NoYVdpdGhSU0FFbmNyeXB0aW9uICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAzLDB4MDcsICAgICAvKiBbMjM2XSBPQkpfZGVzX2VkZTNfY2JjICovCi0weDJCLDB4MEUsMHgwMywweDAyLDB4MDgsICAgICAgICAgICAgICAgICAgICAvKiBbMjQ0XSBPQkpfZGVzX29mYjY0ICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksICAgICAvKiBbMjQ5XSBPQkpfcGtjczkgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDAxLC8qIFsyNTddIE9CSl9wa2NzOV9lbWFpbEFkZHJlc3MgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDAyLC8qIFsyNjZdIE9CSl9wa2NzOV91bnN0cnVjdHVyZWROYW1lICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgwMywvKiBbMjc1XSBPQkpfcGtjczlfY29udGVudFR5cGUgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDA0LC8qIFsyODRdIE9CSl9wa2NzOV9tZXNzYWdlRGlnZXN0ICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgwNSwvKiBbMjkzXSBPQkpfcGtjczlfc2lnbmluZ1RpbWUgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDA2LC8qIFszMDJdIE9CSl9wa2NzOV9jb3VudGVyc2lnbmF0dXJlICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgwNywvKiBbMzExXSBPQkpfcGtjczlfY2hhbGxlbmdlUGFzc3dvcmQgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDA4LC8qIFszMjBdIE9CSl9wa2NzOV91bnN0cnVjdHVyZWRBZGRyZXNzICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgwOSwvKiBbMzI5XSBPQkpfcGtjczlfZXh0Q2VydEF0dHJpYnV0ZXMgKi8KLTB4NjAsMHg4NiwweDQ4LDB4MDEsMHg4NiwweEY4LDB4NDIsICAgICAgICAgIC8qIFszMzhdIE9CSl9uZXRzY2FwZSAqLwotMHg2MCwweDg2LDB4NDgsMHgwMSwweDg2LDB4RjgsMHg0MiwweDAxLCAgICAgLyogWzM0NV0gT0JKX25ldHNjYXBlX2NlcnRfZXh0ZW5zaW9uICovCi0weDYwLDB4ODYsMHg0OCwweDAxLDB4ODYsMHhGOCwweDQyLDB4MDIsICAgICAvKiBbMzUzXSBPQkpfbmV0c2NhcGVfZGF0YV90eXBlICovCi0weDJCLDB4MEUsMHgwMywweDAyLDB4MUEsICAgICAgICAgICAgICAgICAgICAvKiBbMzYxXSBPQkpfc2hhMSAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDAxLDB4MDUsLyogWzM2Nl0gT0JKX3NoYTFXaXRoUlNBRW5jcnlwdGlvbiAqLwotMHgyQiwweDBFLDB4MDMsMHgwMiwweDBELCAgICAgICAgICAgICAgICAgICAgLyogWzM3NV0gT0JKX2RzYVdpdGhTSEEgKi8KLTB4MkIsMHgwRSwweDAzLDB4MDIsMHgwQywgICAgICAgICAgICAgICAgICAgIC8qIFszODBdIE9CSl9kc2FfMiAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA1LDB4MEIsLyogWzM4NV0gT0JKX3BiZVdpdGhTSEExQW5kUkMyX0NCQyAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA1LDB4MEMsLyogWzM5NF0gT0JKX2lkX3Bia2RmMiAqLwotMHgyQiwweDBFLDB4MDMsMHgwMiwweDFCLCAgICAgICAgICAgICAgICAgICAgLyogWzQwM10gT0JKX2RzYVdpdGhTSEExXzIgKi8KLTB4NjAsMHg4NiwweDQ4LDB4MDEsMHg4NiwweEY4LDB4NDIsMHgwMSwweDAxLC8qIFs0MDhdIE9CSl9uZXRzY2FwZV9jZXJ0X3R5cGUgKi8KLTB4NjAsMHg4NiwweDQ4LDB4MDEsMHg4NiwweEY4LDB4NDIsMHgwMSwweDAyLC8qIFs0MTddIE9CSl9uZXRzY2FwZV9iYXNlX3VybCAqLwotMHg2MCwweDg2LDB4NDgsMHgwMSwweDg2LDB4RjgsMHg0MiwweDAxLDB4MDMsLyogWzQyNl0gT0JKX25ldHNjYXBlX3Jldm9jYXRpb25fdXJsICovCi0weDYwLDB4ODYsMHg0OCwweDAxLDB4ODYsMHhGOCwweDQyLDB4MDEsMHgwNCwvKiBbNDM1XSBPQkpfbmV0c2NhcGVfY2FfcmV2b2NhdGlvbl91cmwgKi8KLTB4NjAsMHg4NiwweDQ4LDB4MDEsMHg4NiwweEY4LDB4NDIsMHgwMSwweDA3LC8qIFs0NDRdIE9CSl9uZXRzY2FwZV9yZW5ld2FsX3VybCAqLwotMHg2MCwweDg2LDB4NDgsMHgwMSwweDg2LDB4RjgsMHg0MiwweDAxLDB4MDgsLyogWzQ1M10gT0JKX25ldHNjYXBlX2NhX3BvbGljeV91cmwgKi8KLTB4NjAsMHg4NiwweDQ4LDB4MDEsMHg4NiwweEY4LDB4NDIsMHgwMSwweDBDLC8qIFs0NjJdIE9CSl9uZXRzY2FwZV9zc2xfc2VydmVyX25hbWUgKi8KLTB4NjAsMHg4NiwweDQ4LDB4MDEsMHg4NiwweEY4LDB4NDIsMHgwMSwweDBELC8qIFs0NzFdIE9CSl9uZXRzY2FwZV9jb21tZW50ICovCi0weDYwLDB4ODYsMHg0OCwweDAxLDB4ODYsMHhGOCwweDQyLDB4MDIsMHgwNSwvKiBbNDgwXSBPQkpfbmV0c2NhcGVfY2VydF9zZXF1ZW5jZSAqLwotMHg1NSwweDFELCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQ4OV0gT0JKX2lkX2NlICovCi0weDU1LDB4MUQsMHgwRSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDkxXSBPQkpfc3ViamVjdF9rZXlfaWRlbnRpZmllciAqLwotMHg1NSwweDFELDB4MEYsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQ5NF0gT0JKX2tleV91c2FnZSAqLwotMHg1NSwweDFELDB4MTAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQ5N10gT0JKX3ByaXZhdGVfa2V5X3VzYWdlX3BlcmlvZCAqLwotMHg1NSwweDFELDB4MTEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzUwMF0gT0JKX3N1YmplY3RfYWx0X25hbWUgKi8KLTB4NTUsMHgxRCwweDEyLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1MDNdIE9CSl9pc3N1ZXJfYWx0X25hbWUgKi8KLTB4NTUsMHgxRCwweDEzLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1MDZdIE9CSl9iYXNpY19jb25zdHJhaW50cyAqLwotMHg1NSwweDFELDB4MTQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzUwOV0gT0JKX2NybF9udW1iZXIgKi8KLTB4NTUsMHgxRCwweDIwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1MTJdIE9CSl9jZXJ0aWZpY2F0ZV9wb2xpY2llcyAqLwotMHg1NSwweDFELDB4MjMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzUxNV0gT0JKX2F1dGhvcml0eV9rZXlfaWRlbnRpZmllciAqLwotMHgyQiwweDA2LDB4MDEsMHgwNCwweDAxLDB4OTcsMHg1NSwweDAxLDB4MDIsLyogWzUxOF0gT0JKX2JmX2NiYyAqLwotMHg1NSwweDA4LDB4MDMsMHg2NSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzUyN10gT0JKX21kYzIgKi8KLTB4NTUsMHgwOCwweDAzLDB4NjQsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1MzFdIE9CSl9tZGMyV2l0aFJTQSAqLwotMHg1NSwweDA0LDB4MkEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzUzNV0gT0JKX2dpdmVuTmFtZSAqLwotMHg1NSwweDA0LDB4MDQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzUzOF0gT0JKX3N1cm5hbWUgKi8KLTB4NTUsMHgwNCwweDJCLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NDFdIE9CSl9pbml0aWFscyAqLwotMHg1NSwweDFELDB4MUYsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU0NF0gT0JKX2NybF9kaXN0cmlidXRpb25fcG9pbnRzICovCi0weDJCLDB4MEUsMHgwMywweDAyLDB4MDMsICAgICAgICAgICAgICAgICAgICAvKiBbNTQ3XSBPQkpfbWQ1V2l0aFJTQSAqLwotMHg1NSwweDA0LDB4MDUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU1Ml0gT0JKX3NlcmlhbE51bWJlciAqLwotMHg1NSwweDA0LDB4MEMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU1NV0gT0JKX3RpdGxlICovCi0weDU1LDB4MDQsMHgwRCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTU4XSBPQkpfZGVzY3JpcHRpb24gKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNiwweDdELDB4MDcsMHg0MiwweDBBLC8qIFs1NjFdIE9CSl9jYXN0NV9jYmMgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNiwweDdELDB4MDcsMHg0MiwweDBDLC8qIFs1NzBdIE9CSl9wYmVXaXRoTUQ1QW5kQ2FzdDVfQ0JDICovCi0weDJBLDB4ODYsMHg0OCwweENFLDB4MzgsMHgwNCwweDAzLCAgICAgICAgICAvKiBbNTc5XSBPQkpfZHNhV2l0aFNIQTEgKi8KLTB4MkIsMHgwRSwweDAzLDB4MDIsMHgxRCwgICAgICAgICAgICAgICAgICAgIC8qIFs1ODZdIE9CSl9zaGExV2l0aFJTQSAqLwotMHgyQSwweDg2LDB4NDgsMHhDRSwweDM4LDB4MDQsMHgwMSwgICAgICAgICAgLyogWzU5MV0gT0JKX2RzYSAqLwotMHgyQiwweDI0LDB4MDMsMHgwMiwweDAxLCAgICAgICAgICAgICAgICAgICAgLyogWzU5OF0gT0JKX3JpcGVtZDE2MCAqLwotMHgyQiwweDI0LDB4MDMsMHgwMywweDAxLDB4MDIsICAgICAgICAgICAgICAgLyogWzYwM10gT0JKX3JpcGVtZDE2MFdpdGhSU0EgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDMsMHgwOCwgICAgIC8qIFs2MDldIE9CSl9yYzVfY2JjICovCi0weDI5LDB4MDEsMHgwMSwweDg1LDB4MUEsMHgwMSwgICAgICAgICAgICAgICAvKiBbNjE3XSBPQkpfcmxlX2NvbXByZXNzaW9uICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAzLDB4MDgsLyogWzYyM10gT0JKX3psaWJfY29tcHJlc3Npb24gKi8KLTB4NTUsMHgxRCwweDI1LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs2MzRdIE9CSl9leHRfa2V5X3VzYWdlICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywgICAgICAgICAgICAgICAvKiBbNjM3XSBPQkpfaWRfcGtpeCAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMywgICAgICAgICAgLyogWzY0M10gT0JKX2lkX2twICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAzLDB4MDEsICAgICAvKiBbNjUwXSBPQkpfc2VydmVyX2F1dGggKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDMsMHgwMiwgICAgIC8qIFs2NThdIE9CSl9jbGllbnRfYXV0aCAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMywweDAzLCAgICAgLyogWzY2Nl0gT0JKX2NvZGVfc2lnbiAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMywweDA0LCAgICAgLyogWzY3NF0gT0JKX2VtYWlsX3Byb3RlY3QgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDMsMHgwOCwgICAgIC8qIFs2ODJdIE9CSl90aW1lX3N0YW1wICovCi0weDJCLDB4MDYsMHgwMSwweDA0LDB4MDEsMHg4MiwweDM3LDB4MDIsMHgwMSwweDE1LC8qIFs2OTBdIE9CSl9tc19jb2RlX2luZCAqLwotMHgyQiwweDA2LDB4MDEsMHgwNCwweDAxLDB4ODIsMHgzNywweDAyLDB4MDEsMHgxNiwvKiBbNzAwXSBPQkpfbXNfY29kZV9jb20gKi8KLTB4MkIsMHgwNiwweDAxLDB4MDQsMHgwMSwweDgyLDB4MzcsMHgwQSwweDAzLDB4MDEsLyogWzcxMF0gT0JKX21zX2N0bF9zaWduICovCi0weDJCLDB4MDYsMHgwMSwweDA0LDB4MDEsMHg4MiwweDM3LDB4MEEsMHgwMywweDAzLC8qIFs3MjBdIE9CSl9tc19zZ2MgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDQsMHgwMSwweDgyLDB4MzcsMHgwQSwweDAzLDB4MDQsLyogWzczMF0gT0JKX21zX2VmcyAqLwotMHg2MCwweDg2LDB4NDgsMHgwMSwweDg2LDB4RjgsMHg0MiwweDA0LDB4MDEsLyogWzc0MF0gT0JKX25zX3NnYyAqLwotMHg1NSwweDFELDB4MUIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzc0OV0gT0JKX2RlbHRhX2NybCAqLwotMHg1NSwweDFELDB4MTUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzc1Ml0gT0JKX2NybF9yZWFzb24gKi8KLTB4NTUsMHgxRCwweDE4LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs3NTVdIE9CSl9pbnZhbGlkaXR5X2RhdGUgKi8KLTB4MkIsMHg2NSwweDAxLDB4MDQsMHgwMSwgICAgICAgICAgICAgICAgICAgIC8qIFs3NThdIE9CSl9zeG5ldCAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDBDLDB4MDEsMHgwMSwvKiBbNzYzXSBPQkpfcGJlX1dpdGhTSEExQW5kMTI4Qml0UkM0ICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MEMsMHgwMSwweDAyLC8qIFs3NzNdIE9CSl9wYmVfV2l0aFNIQTFBbmQ0MEJpdFJDNCAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDBDLDB4MDEsMHgwMywvKiBbNzgzXSBPQkpfcGJlX1dpdGhTSEExQW5kM19LZXlfVHJpcGxlREVTX0NCQyAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDBDLDB4MDEsMHgwNCwvKiBbNzkzXSBPQkpfcGJlX1dpdGhTSEExQW5kMl9LZXlfVHJpcGxlREVTX0NCQyAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDBDLDB4MDEsMHgwNSwvKiBbODAzXSBPQkpfcGJlX1dpdGhTSEExQW5kMTI4Qml0UkMyX0NCQyAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDBDLDB4MDEsMHgwNiwvKiBbODEzXSBPQkpfcGJlX1dpdGhTSEExQW5kNDBCaXRSQzJfQ0JDICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MEMsMHgwQSwweDAxLDB4MDEsLyogWzgyM10gT0JKX2tleUJhZyAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDBDLDB4MEEsMHgwMSwweDAyLC8qIFs4MzRdIE9CSl9wa2NzOFNocm91ZGVkS2V5QmFnICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MEMsMHgwQSwweDAxLDB4MDMsLyogWzg0NV0gT0JKX2NlcnRCYWcgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwQywweDBBLDB4MDEsMHgwNCwvKiBbODU2XSBPQkpfY3JsQmFnICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MEMsMHgwQSwweDAxLDB4MDUsLyogWzg2N10gT0JKX3NlY3JldEJhZyAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDBDLDB4MEEsMHgwMSwweDA2LC8qIFs4NzhdIE9CSl9zYWZlQ29udGVudHNCYWcgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDE0LC8qIFs4ODldIE9CSl9mcmllbmRseU5hbWUgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDE1LC8qIFs4OThdIE9CSl9sb2NhbEtleUlEICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxNiwweDAxLC8qIFs5MDddIE9CSl94NTA5Q2VydGlmaWNhdGUgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDE2LDB4MDIsLyogWzkxN10gT0JKX3Nkc2lDZXJ0aWZpY2F0ZSAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTcsMHgwMSwvKiBbOTI3XSBPQkpfeDUwOUNybCAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA1LDB4MEQsLyogWzkzN10gT0JKX3BiZXMyICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDUsMHgwRSwvKiBbOTQ2XSBPQkpfcGJtYWMxICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAyLDB4MDcsICAgICAvKiBbOTU1XSBPQkpfaG1hY1dpdGhTSEExICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAyLDB4MDEsICAgICAvKiBbOTYzXSBPQkpfaWRfcXRfY3BzICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAyLDB4MDIsICAgICAvKiBbOTcxXSBPQkpfaWRfcXRfdW5vdGljZSAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MEYsLyogWzk3OV0gT0JKX1NNSU1FQ2FwYWJpbGl0aWVzICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDUsMHgwNCwvKiBbOTg4XSBPQkpfcGJlV2l0aE1EMkFuZFJDMl9DQkMgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwNSwweDA2LC8qIFs5OTddIE9CSl9wYmVXaXRoTUQ1QW5kUkMyX0NCQyAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA1LDB4MEEsLyogWzEwMDZdIE9CSl9wYmVXaXRoU0hBMUFuZERFU19DQkMgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDQsMHgwMSwweDgyLDB4MzcsMHgwMiwweDAxLDB4MEUsLyogWzEwMTVdIE9CSl9tc19leHRfcmVxICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgwRSwvKiBbMTAyNV0gT0JKX2V4dF9yZXEgKi8KLTB4NTUsMHgwNCwweDI5LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsxMDM0XSBPQkpfbmFtZSAqLwotMHg1NSwweDA0LDB4MkUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzEwMzddIE9CSl9kblF1YWxpZmllciAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMSwgICAgICAgICAgLyogWzEwNDBdIE9CSl9pZF9wZSAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgzMCwgICAgICAgICAgLyogWzEwNDddIE9CSl9pZF9hZCAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMSwweDAxLCAgICAgLyogWzEwNTRdIE9CSl9pbmZvX2FjY2VzcyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgzMCwweDAxLCAgICAgLyogWzEwNjJdIE9CSl9hZF9PQ1NQICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDMwLDB4MDIsICAgICAvKiBbMTA3MF0gT0JKX2FkX2NhX2lzc3VlcnMgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDMsMHgwOSwgICAgIC8qIFsxMDc4XSBPQkpfT0NTUF9zaWduICovCi0weDI4LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMTA4Nl0gT0JKX2lzbyAqLwotMHgyQSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzEwODddIE9CSl9tZW1iZXJfYm9keSAqLwotMHgyQSwweDg2LDB4NDgsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzEwODhdIE9CSl9JU09fVVMgKi8KLTB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzOCwgICAgICAgICAgICAgICAgICAgIC8qIFsxMDkxXSBPQkpfWDlfNTcgKi8KLTB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzOCwweDA0LCAgICAgICAgICAgICAgIC8qIFsxMDk2XSBPQkpfWDljbSAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDAxLCAgICAgLyogWzExMDJdIE9CSl9wa2NzMSAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA1LCAgICAgLyogWzExMTBdIE9CSl9wa2NzNSAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsLyogWzExMThdIE9CSl9TTUlNRSAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMCwvKiBbMTEyN10gT0JKX2lkX3NtaW1lX21vZCAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMSwvKiBbMTEzN10gT0JKX2lkX3NtaW1lX2N0ICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLC8qIFsxMTQ3XSBPQkpfaWRfc21pbWVfYWEgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDMsLyogWzExNTddIE9CSl9pZF9zbWltZV9hbGcgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDQsLyogWzExNjddIE9CSl9pZF9zbWltZV9jZCAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwNSwvKiBbMTE3N10gT0JKX2lkX3NtaW1lX3NwcSAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwNiwvKiBbMTE4N10gT0JKX2lkX3NtaW1lX2N0aSAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMCwweDAxLC8qIFsxMTk3XSBPQkpfaWRfc21pbWVfbW9kX2NtcyAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMCwweDAyLC8qIFsxMjA4XSBPQkpfaWRfc21pbWVfbW9kX2VzcyAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMCwweDAzLC8qIFsxMjE5XSBPQkpfaWRfc21pbWVfbW9kX29pZCAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMCwweDA0LC8qIFsxMjMwXSBPQkpfaWRfc21pbWVfbW9kX21zZ192MyAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMCwweDA1LC8qIFsxMjQxXSBPQkpfaWRfc21pbWVfbW9kX2V0c19lU2lnbmF0dXJlXzg4ICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAwLDB4MDYsLyogWzEyNTJdIE9CSl9pZF9zbWltZV9tb2RfZXRzX2VTaWduYXR1cmVfOTcgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDAsMHgwNywvKiBbMTI2M10gT0JKX2lkX3NtaW1lX21vZF9ldHNfZVNpZ1BvbGljeV84OCAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMCwweDA4LC8qIFsxMjc0XSBPQkpfaWRfc21pbWVfbW9kX2V0c19lU2lnUG9saWN5Xzk3ICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAxLDB4MDEsLyogWzEyODVdIE9CSl9pZF9zbWltZV9jdF9yZWNlaXB0ICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAxLDB4MDIsLyogWzEyOTZdIE9CSl9pZF9zbWltZV9jdF9hdXRoRGF0YSAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMSwweDAzLC8qIFsxMzA3XSBPQkpfaWRfc21pbWVfY3RfcHVibGlzaENlcnQgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDEsMHgwNCwvKiBbMTMxOF0gT0JKX2lkX3NtaW1lX2N0X1RTVEluZm8gKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDEsMHgwNSwvKiBbMTMyOV0gT0JKX2lkX3NtaW1lX2N0X1REVEluZm8gKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDEsMHgwNiwvKiBbMTM0MF0gT0JKX2lkX3NtaW1lX2N0X2NvbnRlbnRJbmZvICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAxLDB4MDcsLyogWzEzNTFdIE9CSl9pZF9zbWltZV9jdF9EVkNTUmVxdWVzdERhdGEgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDEsMHgwOCwvKiBbMTM2Ml0gT0JKX2lkX3NtaW1lX2N0X0RWQ1NSZXNwb25zZURhdGEgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsMHgwMSwvKiBbMTM3M10gT0JKX2lkX3NtaW1lX2FhX3JlY2VpcHRSZXF1ZXN0ICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MDIsLyogWzEzODRdIE9CSl9pZF9zbWltZV9hYV9zZWN1cml0eUxhYmVsICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MDMsLyogWzEzOTVdIE9CSl9pZF9zbWltZV9hYV9tbEV4cGFuZEhpc3RvcnkgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsMHgwNCwvKiBbMTQwNl0gT0JKX2lkX3NtaW1lX2FhX2NvbnRlbnRIaW50ICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MDUsLyogWzE0MTddIE9CSl9pZF9zbWltZV9hYV9tc2dTaWdEaWdlc3QgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsMHgwNiwvKiBbMTQyOF0gT0JKX2lkX3NtaW1lX2FhX2VuY2FwQ29udGVudFR5cGUgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsMHgwNywvKiBbMTQzOV0gT0JKX2lkX3NtaW1lX2FhX2NvbnRlbnRJZGVudGlmaWVyICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MDgsLyogWzE0NTBdIE9CSl9pZF9zbWltZV9hYV9tYWNWYWx1ZSAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDA5LC8qIFsxNDYxXSBPQkpfaWRfc21pbWVfYWFfZXF1aXZhbGVudExhYmVscyAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDBBLC8qIFsxNDcyXSBPQkpfaWRfc21pbWVfYWFfY29udGVudFJlZmVyZW5jZSAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDBCLC8qIFsxNDgzXSBPQkpfaWRfc21pbWVfYWFfZW5jcnlwS2V5UHJlZiAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDBDLC8qIFsxNDk0XSBPQkpfaWRfc21pbWVfYWFfc2lnbmluZ0NlcnRpZmljYXRlICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MEQsLyogWzE1MDVdIE9CSl9pZF9zbWltZV9hYV9zbWltZUVuY3J5cHRDZXJ0cyAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDBFLC8qIFsxNTE2XSBPQkpfaWRfc21pbWVfYWFfdGltZVN0YW1wVG9rZW4gKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsMHgwRiwvKiBbMTUyN10gT0JKX2lkX3NtaW1lX2FhX2V0c19zaWdQb2xpY3lJZCAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDEwLC8qIFsxNTM4XSBPQkpfaWRfc21pbWVfYWFfZXRzX2NvbW1pdG1lbnRUeXBlICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MTEsLyogWzE1NDldIE9CSl9pZF9zbWltZV9hYV9ldHNfc2lnbmVyTG9jYXRpb24gKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsMHgxMiwvKiBbMTU2MF0gT0JKX2lkX3NtaW1lX2FhX2V0c19zaWduZXJBdHRyICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MTMsLyogWzE1NzFdIE9CSl9pZF9zbWltZV9hYV9ldHNfb3RoZXJTaWdDZXJ0ICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MTQsLyogWzE1ODJdIE9CSl9pZF9zbWltZV9hYV9ldHNfY29udGVudFRpbWVzdGFtcCAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDE1LC8qIFsxNTkzXSBPQkpfaWRfc21pbWVfYWFfZXRzX0NlcnRpZmljYXRlUmVmcyAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDE2LC8qIFsxNjA0XSBPQkpfaWRfc21pbWVfYWFfZXRzX1Jldm9jYXRpb25SZWZzICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MTcsLyogWzE2MTVdIE9CSl9pZF9zbWltZV9hYV9ldHNfY2VydFZhbHVlcyAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDE4LC8qIFsxNjI2XSBPQkpfaWRfc21pbWVfYWFfZXRzX3Jldm9jYXRpb25WYWx1ZXMgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsMHgxOSwvKiBbMTYzN10gT0JKX2lkX3NtaW1lX2FhX2V0c19lc2NUaW1lU3RhbXAgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsMHgxQSwvKiBbMTY0OF0gT0JKX2lkX3NtaW1lX2FhX2V0c19jZXJ0Q1JMVGltZXN0YW1wICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MUIsLyogWzE2NTldIE9CSl9pZF9zbWltZV9hYV9ldHNfYXJjaGl2ZVRpbWVTdGFtcCAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDFDLC8qIFsxNjcwXSBPQkpfaWRfc21pbWVfYWFfc2lnbmF0dXJlVHlwZSAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDFELC8qIFsxNjgxXSBPQkpfaWRfc21pbWVfYWFfZHZjc19kdmMgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDMsMHgwMSwvKiBbMTY5Ml0gT0JKX2lkX3NtaW1lX2FsZ19FU0RId2l0aDNERVMgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDMsMHgwMiwvKiBbMTcwM10gT0JKX2lkX3NtaW1lX2FsZ19FU0RId2l0aFJDMiAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMywweDAzLC8qIFsxNzE0XSBPQkpfaWRfc21pbWVfYWxnXzNERVN3cmFwICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAzLDB4MDQsLyogWzE3MjVdIE9CSl9pZF9zbWltZV9hbGdfUkMyd3JhcCAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMywweDA1LC8qIFsxNzM2XSBPQkpfaWRfc21pbWVfYWxnX0VTREggKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDMsMHgwNiwvKiBbMTc0N10gT0JKX2lkX3NtaW1lX2FsZ19DTVMzREVTd3JhcCAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMywweDA3LC8qIFsxNzU4XSBPQkpfaWRfc21pbWVfYWxnX0NNU1JDMndyYXAgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDQsMHgwMSwvKiBbMTc2OV0gT0JKX2lkX3NtaW1lX2NkX2xkYXAgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDUsMHgwMSwvKiBbMTc4MF0gT0JKX2lkX3NtaW1lX3NwcV9ldHNfc3F0X3VyaSAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwNSwweDAyLC8qIFsxNzkxXSBPQkpfaWRfc21pbWVfc3BxX2V0c19zcXRfdW5vdGljZSAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwNiwweDAxLC8qIFsxODAyXSBPQkpfaWRfc21pbWVfY3RpX2V0c19wcm9vZk9mT3JpZ2luICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDA2LDB4MDIsLyogWzE4MTNdIE9CSl9pZF9zbWltZV9jdGlfZXRzX3Byb29mT2ZSZWNlaXB0ICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDA2LDB4MDMsLyogWzE4MjRdIE9CSl9pZF9zbWltZV9jdGlfZXRzX3Byb29mT2ZEZWxpdmVyeSAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwNiwweDA0LC8qIFsxODM1XSBPQkpfaWRfc21pbWVfY3RpX2V0c19wcm9vZk9mU2VuZGVyICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDA2LDB4MDUsLyogWzE4NDZdIE9CSl9pZF9zbWltZV9jdGlfZXRzX3Byb29mT2ZBcHByb3ZhbCAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwNiwweDA2LC8qIFsxODU3XSBPQkpfaWRfc21pbWVfY3RpX2V0c19wcm9vZk9mQ3JlYXRpb24gKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDIsMHgwNCwgICAgIC8qIFsxODY4XSBPQkpfbWQ0ICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAwLCAgICAgICAgICAvKiBbMTg3Nl0gT0JKX2lkX3BraXhfbW9kICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAyLCAgICAgICAgICAvKiBbMTg4M10gT0JKX2lkX3F0ICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA0LCAgICAgICAgICAvKiBbMTg5MF0gT0JKX2lkX2l0ICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA1LCAgICAgICAgICAvKiBbMTg5N10gT0JKX2lkX3BraXAgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDYsICAgICAgICAgIC8qIFsxOTA0XSBPQkpfaWRfYWxnICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA3LCAgICAgICAgICAvKiBbMTkxMV0gT0JKX2lkX2NtYyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwOCwgICAgICAgICAgLyogWzE5MThdIE9CSl9pZF9vbiAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwOSwgICAgICAgICAgLyogWzE5MjVdIE9CSl9pZF9wZGEgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MEEsICAgICAgICAgIC8qIFsxOTMyXSBPQkpfaWRfYWNhICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDBCLCAgICAgICAgICAvKiBbMTkzOV0gT0JKX2lkX3FjcyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwQywgICAgICAgICAgLyogWzE5NDZdIE9CSl9pZF9jY3QgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDAsMHgwMSwgICAgIC8qIFsxOTUzXSBPQkpfaWRfcGtpeDFfZXhwbGljaXRfODggKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDAsMHgwMiwgICAgIC8qIFsxOTYxXSBPQkpfaWRfcGtpeDFfaW1wbGljaXRfODggKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDAsMHgwMywgICAgIC8qIFsxOTY5XSBPQkpfaWRfcGtpeDFfZXhwbGljaXRfOTMgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDAsMHgwNCwgICAgIC8qIFsxOTc3XSBPQkpfaWRfcGtpeDFfaW1wbGljaXRfOTMgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDAsMHgwNSwgICAgIC8qIFsxOTg1XSBPQkpfaWRfbW9kX2NybWYgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDAsMHgwNiwgICAgIC8qIFsxOTkzXSBPQkpfaWRfbW9kX2NtYyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMCwweDA3LCAgICAgLyogWzIwMDFdIE9CSl9pZF9tb2Rfa2VhX3Byb2ZpbGVfODggKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDAsMHgwOCwgICAgIC8qIFsyMDA5XSBPQkpfaWRfbW9kX2tlYV9wcm9maWxlXzkzICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAwLDB4MDksICAgICAvKiBbMjAxN10gT0JKX2lkX21vZF9jbXAgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDAsMHgwQSwgICAgIC8qIFsyMDI1XSBPQkpfaWRfbW9kX3F1YWxpZmllZF9jZXJ0Xzg4ICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAwLDB4MEIsICAgICAvKiBbMjAzM10gT0JKX2lkX21vZF9xdWFsaWZpZWRfY2VydF85MyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMCwweDBDLCAgICAgLyogWzIwNDFdIE9CSl9pZF9tb2RfYXR0cmlidXRlX2NlcnQgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDAsMHgwRCwgICAgIC8qIFsyMDQ5XSBPQkpfaWRfbW9kX3RpbWVzdGFtcF9wcm90b2NvbCAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMCwweDBFLCAgICAgLyogWzIwNTddIE9CSl9pZF9tb2Rfb2NzcCAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMCwweDBGLCAgICAgLyogWzIwNjVdIE9CSl9pZF9tb2RfZHZjcyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMCwweDEwLCAgICAgLyogWzIwNzNdIE9CSl9pZF9tb2RfY21wMjAwMCAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMSwweDAyLCAgICAgLyogWzIwODFdIE9CSl9iaW9tZXRyaWNJbmZvICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAxLDB4MDMsICAgICAvKiBbMjA4OV0gT0JKX3FjU3RhdGVtZW50cyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMSwweDA0LCAgICAgLyogWzIwOTddIE9CSl9hY19hdWRpdEVudGl0eSAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMSwweDA1LCAgICAgLyogWzIxMDVdIE9CSl9hY190YXJnZXRpbmcgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDEsMHgwNiwgICAgIC8qIFsyMTEzXSBPQkpfYWFDb250cm9scyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMSwweDA3LCAgICAgLyogWzIxMjFdIE9CSl9zYmdwX2lwQWRkckJsb2NrICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAxLDB4MDgsICAgICAvKiBbMjEyOV0gT0JKX3NiZ3BfYXV0b25vbW91c1N5c051bSAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMSwweDA5LCAgICAgLyogWzIxMzddIE9CSl9zYmdwX3JvdXRlcklkZW50aWZpZXIgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDIsMHgwMywgICAgIC8qIFsyMTQ1XSBPQkpfdGV4dE5vdGljZSAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMywweDA1LCAgICAgLyogWzIxNTNdIE9CSl9pcHNlY0VuZFN5c3RlbSAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMywweDA2LCAgICAgLyogWzIxNjFdIE9CSl9pcHNlY1R1bm5lbCAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMywweDA3LCAgICAgLyogWzIxNjldIE9CSl9pcHNlY1VzZXIgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDMsMHgwQSwgICAgIC8qIFsyMTc3XSBPQkpfZHZjcyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNCwweDAxLCAgICAgLyogWzIxODVdIE9CSl9pZF9pdF9jYVByb3RFbmNDZXJ0ICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA0LDB4MDIsICAgICAvKiBbMjE5M10gT0JKX2lkX2l0X3NpZ25LZXlQYWlyVHlwZXMgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDQsMHgwMywgICAgIC8qIFsyMjAxXSBPQkpfaWRfaXRfZW5jS2V5UGFpclR5cGVzICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA0LDB4MDQsICAgICAvKiBbMjIwOV0gT0JKX2lkX2l0X3ByZWZlcnJlZFN5bW1BbGcgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDQsMHgwNSwgICAgIC8qIFsyMjE3XSBPQkpfaWRfaXRfY2FLZXlVcGRhdGVJbmZvICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA0LDB4MDYsICAgICAvKiBbMjIyNV0gT0JKX2lkX2l0X2N1cnJlbnRDUkwgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDQsMHgwNywgICAgIC8qIFsyMjMzXSBPQkpfaWRfaXRfdW5zdXBwb3J0ZWRPSURzICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA0LDB4MDgsICAgICAvKiBbMjI0MV0gT0JKX2lkX2l0X3N1YnNjcmlwdGlvblJlcXVlc3QgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDQsMHgwOSwgICAgIC8qIFsyMjQ5XSBPQkpfaWRfaXRfc3Vic2NyaXB0aW9uUmVzcG9uc2UgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDQsMHgwQSwgICAgIC8qIFsyMjU3XSBPQkpfaWRfaXRfa2V5UGFpclBhcmFtUmVxICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA0LDB4MEIsICAgICAvKiBbMjI2NV0gT0JKX2lkX2l0X2tleVBhaXJQYXJhbVJlcCAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNCwweDBDLCAgICAgLyogWzIyNzNdIE9CSl9pZF9pdF9yZXZQYXNzcGhyYXNlICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA0LDB4MEQsICAgICAvKiBbMjI4MV0gT0JKX2lkX2l0X2ltcGxpY2l0Q29uZmlybSAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNCwweDBFLCAgICAgLyogWzIyODldIE9CSl9pZF9pdF9jb25maXJtV2FpdFRpbWUgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDQsMHgwRiwgICAgIC8qIFsyMjk3XSBPQkpfaWRfaXRfb3JpZ1BLSU1lc3NhZ2UgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDUsMHgwMSwgICAgIC8qIFsyMzA1XSBPQkpfaWRfcmVnQ3RybCAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNSwweDAyLCAgICAgLyogWzIzMTNdIE9CSl9pZF9yZWdJbmZvICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA1LDB4MDEsMHgwMSwvKiBbMjMyMV0gT0JKX2lkX3JlZ0N0cmxfcmVnVG9rZW4gKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDUsMHgwMSwweDAyLC8qIFsyMzMwXSBPQkpfaWRfcmVnQ3RybF9hdXRoZW50aWNhdG9yICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA1LDB4MDEsMHgwMywvKiBbMjMzOV0gT0JKX2lkX3JlZ0N0cmxfcGtpUHVibGljYXRpb25JbmZvICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA1LDB4MDEsMHgwNCwvKiBbMjM0OF0gT0JKX2lkX3JlZ0N0cmxfcGtpQXJjaGl2ZU9wdGlvbnMgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDUsMHgwMSwweDA1LC8qIFsyMzU3XSBPQkpfaWRfcmVnQ3RybF9vbGRDZXJ0SUQgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDUsMHgwMSwweDA2LC8qIFsyMzY2XSBPQkpfaWRfcmVnQ3RybF9wcm90b2NvbEVuY3JLZXkgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDUsMHgwMiwweDAxLC8qIFsyMzc1XSBPQkpfaWRfcmVnSW5mb191dGY4UGFpcnMgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDUsMHgwMiwweDAyLC8qIFsyMzg0XSBPQkpfaWRfcmVnSW5mb19jZXJ0UmVxICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA2LDB4MDEsICAgICAvKiBbMjM5M10gT0JKX2lkX2FsZ19kZXM0MCAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNiwweDAyLCAgICAgLyogWzI0MDFdIE9CSl9pZF9hbGdfbm9TaWduYXR1cmUgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDYsMHgwMywgICAgIC8qIFsyNDA5XSBPQkpfaWRfYWxnX2RoX3NpZ19obWFjX3NoYTEgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDYsMHgwNCwgICAgIC8qIFsyNDE3XSBPQkpfaWRfYWxnX2RoX3BvcCAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNywweDAxLCAgICAgLyogWzI0MjVdIE9CSl9pZF9jbWNfc3RhdHVzSW5mbyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNywweDAyLCAgICAgLyogWzI0MzNdIE9CSl9pZF9jbWNfaWRlbnRpZmljYXRpb24gKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDcsMHgwMywgICAgIC8qIFsyNDQxXSBPQkpfaWRfY21jX2lkZW50aXR5UHJvb2YgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDcsMHgwNCwgICAgIC8qIFsyNDQ5XSBPQkpfaWRfY21jX2RhdGFSZXR1cm4gKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDcsMHgwNSwgICAgIC8qIFsyNDU3XSBPQkpfaWRfY21jX3RyYW5zYWN0aW9uSWQgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDcsMHgwNiwgICAgIC8qIFsyNDY1XSBPQkpfaWRfY21jX3NlbmRlck5vbmNlICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA3LDB4MDcsICAgICAvKiBbMjQ3M10gT0JKX2lkX2NtY19yZWNpcGllbnROb25jZSAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNywweDA4LCAgICAgLyogWzI0ODFdIE9CSl9pZF9jbWNfYWRkRXh0ZW5zaW9ucyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNywweDA5LCAgICAgLyogWzI0ODldIE9CSl9pZF9jbWNfZW5jcnlwdGVkUE9QICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA3LDB4MEEsICAgICAvKiBbMjQ5N10gT0JKX2lkX2NtY19kZWNyeXB0ZWRQT1AgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDcsMHgwQiwgICAgIC8qIFsyNTA1XSBPQkpfaWRfY21jX2xyYVBPUFdpdG5lc3MgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDcsMHgwRiwgICAgIC8qIFsyNTEzXSBPQkpfaWRfY21jX2dldENlcnQgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDcsMHgxMCwgICAgIC8qIFsyNTIxXSBPQkpfaWRfY21jX2dldENSTCAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNywweDExLCAgICAgLyogWzI1MjldIE9CSl9pZF9jbWNfcmV2b2tlUmVxdWVzdCAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNywweDEyLCAgICAgLyogWzI1MzddIE9CSl9pZF9jbWNfcmVnSW5mbyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNywweDEzLCAgICAgLyogWzI1NDVdIE9CSl9pZF9jbWNfcmVzcG9uc2VJbmZvICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA3LDB4MTUsICAgICAvKiBbMjU1M10gT0JKX2lkX2NtY19xdWVyeVBlbmRpbmcgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDcsMHgxNiwgICAgIC8qIFsyNTYxXSBPQkpfaWRfY21jX3BvcExpbmtSYW5kb20gKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDcsMHgxNywgICAgIC8qIFsyNTY5XSBPQkpfaWRfY21jX3BvcExpbmtXaXRuZXNzICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA3LDB4MTgsICAgICAvKiBbMjU3N10gT0JKX2lkX2NtY19jb25maXJtQ2VydEFjY2VwdGFuY2UgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDgsMHgwMSwgICAgIC8qIFsyNTg1XSBPQkpfaWRfb25fcGVyc29uYWxEYXRhICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA5LDB4MDEsICAgICAvKiBbMjU5M10gT0JKX2lkX3BkYV9kYXRlT2ZCaXJ0aCAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwOSwweDAyLCAgICAgLyogWzI2MDFdIE9CSl9pZF9wZGFfcGxhY2VPZkJpcnRoICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA5LDB4MDMsICAgICAvKiBbMjYwOV0gT0JKX2lkX3BkYV9nZW5kZXIgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDksMHgwNCwgICAgIC8qIFsyNjE3XSBPQkpfaWRfcGRhX2NvdW50cnlPZkNpdGl6ZW5zaGlwICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA5LDB4MDUsICAgICAvKiBbMjYyNV0gT0JKX2lkX3BkYV9jb3VudHJ5T2ZSZXNpZGVuY2UgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MEEsMHgwMSwgICAgIC8qIFsyNjMzXSBPQkpfaWRfYWNhX2F1dGhlbnRpY2F0aW9uSW5mbyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwQSwweDAyLCAgICAgLyogWzI2NDFdIE9CSl9pZF9hY2FfYWNjZXNzSWRlbnRpdHkgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MEEsMHgwMywgICAgIC8qIFsyNjQ5XSBPQkpfaWRfYWNhX2NoYXJnaW5nSWRlbnRpdHkgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MEEsMHgwNCwgICAgIC8qIFsyNjU3XSBPQkpfaWRfYWNhX2dyb3VwICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDBBLDB4MDUsICAgICAvKiBbMjY2NV0gT0JKX2lkX2FjYV9yb2xlICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDBCLDB4MDEsICAgICAvKiBbMjY3M10gT0JKX2lkX3Fjc19wa2l4UUNTeW50YXhfdjEgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MEMsMHgwMSwgICAgIC8qIFsyNjgxXSBPQkpfaWRfY2N0X2NycyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwQywweDAyLCAgICAgLyogWzI2ODldIE9CSl9pZF9jY3RfUEtJRGF0YSAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwQywweDAzLCAgICAgLyogWzI2OTddIE9CSl9pZF9jY3RfUEtJUmVzcG9uc2UgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MzAsMHgwMywgICAgIC8qIFsyNzA1XSBPQkpfYWRfdGltZVN0YW1waW5nICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDMwLDB4MDQsICAgICAvKiBbMjcxM10gT0JKX2FkX2R2Y3MgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MzAsMHgwMSwweDAxLC8qIFsyNzIxXSBPQkpfaWRfcGtpeF9PQ1NQX2Jhc2ljICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDMwLDB4MDEsMHgwMiwvKiBbMjczMF0gT0JKX2lkX3BraXhfT0NTUF9Ob25jZSAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgzMCwweDAxLDB4MDMsLyogWzI3MzldIE9CSl9pZF9wa2l4X09DU1BfQ3JsSUQgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MzAsMHgwMSwweDA0LC8qIFsyNzQ4XSBPQkpfaWRfcGtpeF9PQ1NQX2FjY2VwdGFibGVSZXNwb25zZXMgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MzAsMHgwMSwweDA1LC8qIFsyNzU3XSBPQkpfaWRfcGtpeF9PQ1NQX25vQ2hlY2sgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MzAsMHgwMSwweDA2LC8qIFsyNzY2XSBPQkpfaWRfcGtpeF9PQ1NQX2FyY2hpdmVDdXRvZmYgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MzAsMHgwMSwweDA3LC8qIFsyNzc1XSBPQkpfaWRfcGtpeF9PQ1NQX3NlcnZpY2VMb2NhdG9yICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDMwLDB4MDEsMHgwOCwvKiBbMjc4NF0gT0JKX2lkX3BraXhfT0NTUF9leHRlbmRlZFN0YXR1cyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgzMCwweDAxLDB4MDksLyogWzI3OTNdIE9CSl9pZF9wa2l4X09DU1BfdmFsaWQgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MzAsMHgwMSwweDBBLC8qIFsyODAyXSBPQkpfaWRfcGtpeF9PQ1NQX3BhdGggKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MzAsMHgwMSwweDBCLC8qIFsyODExXSBPQkpfaWRfcGtpeF9PQ1NQX3RydXN0Um9vdCAqLwotMHgyQiwweDBFLDB4MDMsMHgwMiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzI4MjBdIE9CSl9hbGdvcml0aG0gKi8KLTB4MkIsMHgwRSwweDAzLDB4MDIsMHgwQiwgICAgICAgICAgICAgICAgICAgIC8qIFsyODI0XSBPQkpfcnNhU2lnbmF0dXJlICovCi0weDU1LDB4MDgsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMjgyOV0gT0JKX1g1MDBhbGdvcml0aG1zICovCi0weDJCLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMjgzMV0gT0JKX29yZyAqLwotMHgyQiwweDA2LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzI4MzJdIE9CSl9kb2QgKi8KLTB4MkIsMHgwNiwweDAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsyODM0XSBPQkpfaWFuYSAqLwotMHgyQiwweDA2LDB4MDEsMHgwMSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzI4MzddIE9CSl9EaXJlY3RvcnkgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDIsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsyODQxXSBPQkpfTWFuYWdlbWVudCAqLwotMHgyQiwweDA2LDB4MDEsMHgwMywgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzI4NDVdIE9CSl9FeHBlcmltZW50YWwgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDQsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsyODQ5XSBPQkpfUHJpdmF0ZSAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzI4NTNdIE9CSl9TZWN1cml0eSAqLwotMHgyQiwweDA2LDB4MDEsMHgwNiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzI4NTddIE9CSl9TTk1QdjIgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDcsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsyODYxXSBPQkpfTWFpbCAqLwotMHgyQiwweDA2LDB4MDEsMHgwNCwweDAxLCAgICAgICAgICAgICAgICAgICAgLyogWzI4NjVdIE9CSl9FbnRlcnByaXNlcyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNCwweDAxLDB4OEIsMHgzQSwweDgyLDB4NTgsLyogWzI4NzBdIE9CSl9kY09iamVjdCAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgxOSwvKiBbMjg3OV0gT0JKX2RvbWFpbkNvbXBvbmVudCAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDQsMHgwRCwvKiBbMjg4OV0gT0JKX0RvbWFpbiAqLwotMHgwMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzI4OTldIE9CSl9qb2ludF9pc29fY2NpdHQgKi8KLTB4NTUsMHgwMSwweDA1LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsyOTAwXSBPQkpfc2VsZWN0ZWRfYXR0cmlidXRlX3R5cGVzICovCi0weDU1LDB4MDEsMHgwNSwweDM3LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMjkwM10gT0JKX2NsZWFyYW5jZSAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDAxLDB4MDMsLyogWzI5MDddIE9CSl9tZDRXaXRoUlNBRW5jcnlwdGlvbiAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMSwweDBBLCAgICAgLyogWzI5MTZdIE9CSl9hY19wcm94eWluZyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMSwweDBCLCAgICAgLyogWzI5MjRdIE9CSl9zaW5mb19hY2Nlc3MgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MEEsMHgwNiwgICAgIC8qIFsyOTMyXSBPQkpfaWRfYWNhX2VuY0F0dHJzICovCi0weDU1LDB4MDQsMHg0OCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMjk0MF0gT0JKX3JvbGUgKi8KLTB4NTUsMHgxRCwweDI0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsyOTQzXSBPQkpfcG9saWN5X2NvbnN0cmFpbnRzICovCi0weDU1LDB4MUQsMHgzNywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMjk0Nl0gT0JKX3RhcmdldF9pbmZvcm1hdGlvbiAqLwotMHg1NSwweDFELDB4MzgsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzI5NDldIE9CSl9ub19yZXZfYXZhaWwgKi8KLTB4MDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsyOTUyXSBPQkpfY2NpdHQgKi8KLTB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwgICAgICAgICAgICAgICAgICAgIC8qIFsyOTUzXSBPQkpfYW5zaV9YOV82MiAqLwotMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDEsMHgwMSwgICAgICAgICAgLyogWzI5NThdIE9CSl9YOV82Ml9wcmltZV9maWVsZCAqLwotMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDEsMHgwMiwgICAgICAgICAgLyogWzI5NjVdIE9CSl9YOV82Ml9jaGFyYWN0ZXJpc3RpY190d29fZmllbGQgKi8KLTB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAyLDB4MDEsICAgICAgICAgIC8qIFsyOTcyXSBPQkpfWDlfNjJfaWRfZWNQdWJsaWNLZXkgKi8KLTB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAzLDB4MDEsMHgwMSwgICAgIC8qIFsyOTc5XSBPQkpfWDlfNjJfcHJpbWUxOTJ2MSAqLwotMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDMsMHgwMSwweDAyLCAgICAgLyogWzI5ODddIE9CSl9YOV82Ml9wcmltZTE5MnYyICovCi0weDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMywweDAxLDB4MDMsICAgICAvKiBbMjk5NV0gT0JKX1g5XzYyX3ByaW1lMTkydjMgKi8KLTB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAzLDB4MDEsMHgwNCwgICAgIC8qIFszMDAzXSBPQkpfWDlfNjJfcHJpbWUyMzl2MSAqLwotMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDMsMHgwMSwweDA1LCAgICAgLyogWzMwMTFdIE9CSl9YOV82Ml9wcmltZTIzOXYyICovCi0weDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMywweDAxLDB4MDYsICAgICAvKiBbMzAxOV0gT0JKX1g5XzYyX3ByaW1lMjM5djMgKi8KLTB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAzLDB4MDEsMHgwNywgICAgIC8qIFszMDI3XSBPQkpfWDlfNjJfcHJpbWUyNTZ2MSAqLwotMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDQsMHgwMSwgICAgICAgICAgLyogWzMwMzVdIE9CSl9lY2RzYV93aXRoX1NIQTEgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDQsMHgwMSwweDgyLDB4MzcsMHgxMSwweDAxLC8qIFszMDQyXSBPQkpfbXNfY3NwX25hbWUgKi8KLTB4NjAsMHg4NiwweDQ4LDB4MDEsMHg2NSwweDAzLDB4MDQsMHgwMSwweDAxLC8qIFszMDUxXSBPQkpfYWVzXzEyOF9lY2IgKi8KLTB4NjAsMHg4NiwweDQ4LDB4MDEsMHg2NSwweDAzLDB4MDQsMHgwMSwweDAyLC8qIFszMDYwXSBPQkpfYWVzXzEyOF9jYmMgKi8KLTB4NjAsMHg4NiwweDQ4LDB4MDEsMHg2NSwweDAzLDB4MDQsMHgwMSwweDAzLC8qIFszMDY5XSBPQkpfYWVzXzEyOF9vZmIxMjggKi8KLTB4NjAsMHg4NiwweDQ4LDB4MDEsMHg2NSwweDAzLDB4MDQsMHgwMSwweDA0LC8qIFszMDc4XSBPQkpfYWVzXzEyOF9jZmIxMjggKi8KLTB4NjAsMHg4NiwweDQ4LDB4MDEsMHg2NSwweDAzLDB4MDQsMHgwMSwweDE1LC8qIFszMDg3XSBPQkpfYWVzXzE5Ml9lY2IgKi8KLTB4NjAsMHg4NiwweDQ4LDB4MDEsMHg2NSwweDAzLDB4MDQsMHgwMSwweDE2LC8qIFszMDk2XSBPQkpfYWVzXzE5Ml9jYmMgKi8KLTB4NjAsMHg4NiwweDQ4LDB4MDEsMHg2NSwweDAzLDB4MDQsMHgwMSwweDE3LC8qIFszMTA1XSBPQkpfYWVzXzE5Ml9vZmIxMjggKi8KLTB4NjAsMHg4NiwweDQ4LDB4MDEsMHg2NSwweDAzLDB4MDQsMHgwMSwweDE4LC8qIFszMTE0XSBPQkpfYWVzXzE5Ml9jZmIxMjggKi8KLTB4NjAsMHg4NiwweDQ4LDB4MDEsMHg2NSwweDAzLDB4MDQsMHgwMSwweDI5LC8qIFszMTIzXSBPQkpfYWVzXzI1Nl9lY2IgKi8KLTB4NjAsMHg4NiwweDQ4LDB4MDEsMHg2NSwweDAzLDB4MDQsMHgwMSwweDJBLC8qIFszMTMyXSBPQkpfYWVzXzI1Nl9jYmMgKi8KLTB4NjAsMHg4NiwweDQ4LDB4MDEsMHg2NSwweDAzLDB4MDQsMHgwMSwweDJCLC8qIFszMTQxXSBPQkpfYWVzXzI1Nl9vZmIxMjggKi8KLTB4NjAsMHg4NiwweDQ4LDB4MDEsMHg2NSwweDAzLDB4MDQsMHgwMSwweDJDLC8qIFszMTUwXSBPQkpfYWVzXzI1Nl9jZmIxMjggKi8KLTB4NTUsMHgxRCwweDE3LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszMTU5XSBPQkpfaG9sZF9pbnN0cnVjdGlvbl9jb2RlICovCi0weDJBLDB4ODYsMHg0OCwweENFLDB4MzgsMHgwMiwweDAxLCAgICAgICAgICAvKiBbMzE2Ml0gT0JKX2hvbGRfaW5zdHJ1Y3Rpb25fbm9uZSAqLwotMHgyQSwweDg2LDB4NDgsMHhDRSwweDM4LDB4MDIsMHgwMiwgICAgICAgICAgLyogWzMxNjldIE9CSl9ob2xkX2luc3RydWN0aW9uX2NhbGxfaXNzdWVyICovCi0weDJBLDB4ODYsMHg0OCwweENFLDB4MzgsMHgwMiwweDAzLCAgICAgICAgICAvKiBbMzE3Nl0gT0JKX2hvbGRfaW5zdHJ1Y3Rpb25fcmVqZWN0ICovCi0weDA5LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzE4M10gT0JKX2RhdGEgKi8KLTB4MDksMHg5MiwweDI2LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszMTg0XSBPQkpfcHNzICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLCAgICAgICAgICAvKiBbMzE4N10gT0JKX3VjbCAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LCAgICAgLyogWzMxOTRdIE9CSl9waWxvdCAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsLyogWzMyMDJdIE9CSl9waWxvdEF0dHJpYnV0ZVR5cGUgKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAzLC8qIFszMjExXSBPQkpfcGlsb3RBdHRyaWJ1dGVTeW50YXggKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDA0LC8qIFszMjIwXSBPQkpfcGlsb3RPYmplY3RDbGFzcyAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MEEsLyogWzMyMjldIE9CSl9waWxvdEdyb3VwcyAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDMsMHgwNCwvKiBbMzIzOF0gT0JKX2lBNVN0cmluZ1N5bnRheCAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDMsMHgwNSwvKiBbMzI0OF0gT0JKX2Nhc2VJZ25vcmVJQTVTdHJpbmdTeW50YXggKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDA0LDB4MDMsLyogWzMyNThdIE9CSl9waWxvdE9iamVjdCAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDQsMHgwNCwvKiBbMzI2OF0gT0JKX3BpbG90UGVyc29uICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwNCwweDA1LC8qIFszMjc4XSBPQkpfYWNjb3VudCAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDQsMHgwNiwvKiBbMzI4OF0gT0JKX2RvY3VtZW50ICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwNCwweDA3LC8qIFszMjk4XSBPQkpfcm9vbSAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDQsMHgwOSwvKiBbMzMwOF0gT0JKX2RvY3VtZW50U2VyaWVzICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwNCwweDBFLC8qIFszMzE4XSBPQkpfckZDODIybG9jYWxQYXJ0ICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwNCwweDBGLC8qIFszMzI4XSBPQkpfZE5TRG9tYWluICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwNCwweDExLC8qIFszMzM4XSBPQkpfZG9tYWluUmVsYXRlZE9iamVjdCAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDQsMHgxMiwvKiBbMzM0OF0gT0JKX2ZyaWVuZGx5Q291bnRyeSAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDQsMHgxMywvKiBbMzM1OF0gT0JKX3NpbXBsZVNlY3VyaXR5T2JqZWN0ICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwNCwweDE0LC8qIFszMzY4XSBPQkpfcGlsb3RPcmdhbml6YXRpb24gKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDA0LDB4MTUsLyogWzMzNzhdIE9CSl9waWxvdERTQSAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDQsMHgxNiwvKiBbMzM4OF0gT0JKX3F1YWxpdHlMYWJlbGxlZERhdGEgKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MDEsLyogWzMzOThdIE9CSl91c2VySWQgKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MDIsLyogWzM0MDhdIE9CSl90ZXh0RW5jb2RlZE9SQWRkcmVzcyAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgwMywvKiBbMzQxOF0gT0JKX3JmYzgyMk1haWxib3ggKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MDQsLyogWzM0MjhdIE9CSl9pbmZvICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDA1LC8qIFszNDM4XSBPQkpfZmF2b3VyaXRlRHJpbmsgKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MDYsLyogWzM0NDhdIE9CSl9yb29tTnVtYmVyICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDA3LC8qIFszNDU4XSBPQkpfcGhvdG8gKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MDgsLyogWzM0NjhdIE9CSl91c2VyQ2xhc3MgKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MDksLyogWzM0NzhdIE9CSl9ob3N0ICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDBBLC8qIFszNDg4XSBPQkpfbWFuYWdlciAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgwQiwvKiBbMzQ5OF0gT0JKX2RvY3VtZW50SWRlbnRpZmllciAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgwQywvKiBbMzUwOF0gT0JKX2RvY3VtZW50VGl0bGUgKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MEQsLyogWzM1MThdIE9CSl9kb2N1bWVudFZlcnNpb24gKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MEUsLyogWzM1MjhdIE9CSl9kb2N1bWVudEF1dGhvciAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgwRiwvKiBbMzUzOF0gT0JKX2RvY3VtZW50TG9jYXRpb24gKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MTQsLyogWzM1NDhdIE9CSl9ob21lVGVsZXBob25lTnVtYmVyICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDE1LC8qIFszNTU4XSBPQkpfc2VjcmV0YXJ5ICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDE2LC8qIFszNTY4XSBPQkpfb3RoZXJNYWlsYm94ICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDE3LC8qIFszNTc4XSBPQkpfbGFzdE1vZGlmaWVkVGltZSAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgxOCwvKiBbMzU4OF0gT0JKX2xhc3RNb2RpZmllZEJ5ICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDFBLC8qIFszNTk4XSBPQkpfYVJlY29yZCAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgxQiwvKiBbMzYwOF0gT0JKX3BpbG90QXR0cmlidXRlVHlwZTI3ICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDFDLC8qIFszNjE4XSBPQkpfbVhSZWNvcmQgKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MUQsLyogWzM2MjhdIE9CSl9uU1JlY29yZCAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgxRSwvKiBbMzYzOF0gT0JKX3NPQVJlY29yZCAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgxRiwvKiBbMzY0OF0gT0JKX2NOQU1FUmVjb3JkICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDI1LC8qIFszNjU4XSBPQkpfYXNzb2NpYXRlZERvbWFpbiAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgyNiwvKiBbMzY2OF0gT0JKX2Fzc29jaWF0ZWROYW1lICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDI3LC8qIFszNjc4XSBPQkpfaG9tZVBvc3RhbEFkZHJlc3MgKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MjgsLyogWzM2ODhdIE9CSl9wZXJzb25hbFRpdGxlICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDI5LC8qIFszNjk4XSBPQkpfbW9iaWxlVGVsZXBob25lTnVtYmVyICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDJBLC8qIFszNzA4XSBPQkpfcGFnZXJUZWxlcGhvbmVOdW1iZXIgKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MkIsLyogWzM3MThdIE9CSl9mcmllbmRseUNvdW50cnlOYW1lICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDJELC8qIFszNzI4XSBPQkpfb3JnYW5pemF0aW9uYWxTdGF0dXMgKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MkUsLyogWzM3MzhdIE9CSl9qYW5ldE1haWxib3ggKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MkYsLyogWzM3NDhdIE9CSl9tYWlsUHJlZmVyZW5jZU9wdGlvbiAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgzMCwvKiBbMzc1OF0gT0JKX2J1aWxkaW5nTmFtZSAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgzMSwvKiBbMzc2OF0gT0JKX2RTQVF1YWxpdHkgKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MzIsLyogWzM3NzhdIE9CSl9zaW5nbGVMZXZlbFF1YWxpdHkgKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MzMsLyogWzM3ODhdIE9CSl9zdWJ0cmVlTWluaW11bVF1YWxpdHkgKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MzQsLyogWzM3OThdIE9CSl9zdWJ0cmVlTWF4aW11bVF1YWxpdHkgKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MzUsLyogWzM4MDhdIE9CSl9wZXJzb25hbFNpZ25hdHVyZSAqLwotMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgzNiwvKiBbMzgxOF0gT0JKX2RJVFJlZGlyZWN0ICovCi0weDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDM3LC8qIFszODI4XSBPQkpfYXVkaW8gKi8KLTB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MzgsLyogWzM4MzhdIE9CSl9kb2N1bWVudFB1Ymxpc2hlciAqLwotMHg1NSwweDA0LDB4MkQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM4NDhdIE9CSl94NTAwVW5pcXVlSWRlbnRpZmllciAqLwotMHgyQiwweDA2LDB4MDEsMHgwNywweDAxLCAgICAgICAgICAgICAgICAgICAgLyogWzM4NTFdIE9CSl9taW1lX21ocyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNywweDAxLDB4MDEsICAgICAgICAgICAgICAgLyogWzM4NTZdIE9CSl9taW1lX21oc19oZWFkaW5ncyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNywweDAxLDB4MDIsICAgICAgICAgICAgICAgLyogWzM4NjJdIE9CSl9taW1lX21oc19ib2RpZXMgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDcsMHgwMSwweDAxLDB4MDEsICAgICAgICAgIC8qIFszODY4XSBPQkpfaWRfaGV4X3BhcnRpYWxfbWVzc2FnZSAqLwotMHgyQiwweDA2LDB4MDEsMHgwNywweDAxLDB4MDEsMHgwMiwgICAgICAgICAgLyogWzM4NzVdIE9CSl9pZF9oZXhfbXVsdGlwYXJ0X21lc3NhZ2UgKi8KLTB4NTUsMHgwNCwweDJDLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszODgyXSBPQkpfZ2VuZXJhdGlvblF1YWxpZmllciAqLwotMHg1NSwweDA0LDB4NDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM4ODVdIE9CSl9wc2V1ZG9ueW0gKi8KLTB4NjcsMHgyQSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszODg4XSBPQkpfaWRfc2V0ICovCi0weDY3LDB4MkEsMHgwMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzg5MF0gT0JKX3NldF9jdHlwZSAqLwotMHg2NywweDJBLDB4MDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM4OTNdIE9CSl9zZXRfbXNnRXh0ICovCi0weDY3LDB4MkEsMHgwMywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzg5Nl0gT0JKX3NldF9hdHRyICovCi0weDY3LDB4MkEsMHgwNSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzg5OV0gT0JKX3NldF9wb2xpY3kgKi8KLTB4NjcsMHgyQSwweDA3LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszOTAyXSBPQkpfc2V0X2NlcnRFeHQgKi8KLTB4NjcsMHgyQSwweDA4LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszOTA1XSBPQkpfc2V0X2JyYW5kICovCi0weDY3LDB4MkEsMHgwMCwweDAwLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzkwOF0gT0JKX3NldGN0X1BBTkRhdGEgKi8KLTB4NjcsMHgyQSwweDAwLDB4MDEsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszOTEyXSBPQkpfc2V0Y3RfUEFOVG9rZW4gKi8KLTB4NjcsMHgyQSwweDAwLDB4MDIsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszOTE2XSBPQkpfc2V0Y3RfUEFOT25seSAqLwotMHg2NywweDJBLDB4MDAsMHgwMywgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM5MjBdIE9CSl9zZXRjdF9PSURhdGEgKi8KLTB4NjcsMHgyQSwweDAwLDB4MDQsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszOTI0XSBPQkpfc2V0Y3RfUEkgKi8KLTB4NjcsMHgyQSwweDAwLDB4MDUsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszOTI4XSBPQkpfc2V0Y3RfUElEYXRhICovCi0weDY3LDB4MkEsMHgwMCwweDA2LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzkzMl0gT0JKX3NldGN0X1BJRGF0YVVuc2lnbmVkICovCi0weDY3LDB4MkEsMHgwMCwweDA3LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzkzNl0gT0JKX3NldGN0X0hPRElucHV0ICovCi0weDY3LDB4MkEsMHgwMCwweDA4LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzk0MF0gT0JKX3NldGN0X0F1dGhSZXNCYWdnYWdlICovCi0weDY3LDB4MkEsMHgwMCwweDA5LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzk0NF0gT0JKX3NldGN0X0F1dGhSZXZSZXFCYWdnYWdlICovCi0weDY3LDB4MkEsMHgwMCwweDBBLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzk0OF0gT0JKX3NldGN0X0F1dGhSZXZSZXNCYWdnYWdlICovCi0weDY3LDB4MkEsMHgwMCwweDBCLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzk1Ml0gT0JKX3NldGN0X0NhcFRva2VuU2VxICovCi0weDY3LDB4MkEsMHgwMCwweDBDLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzk1Nl0gT0JKX3NldGN0X1BJbml0UmVzRGF0YSAqLwotMHg2NywweDJBLDB4MDAsMHgwRCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM5NjBdIE9CSl9zZXRjdF9QSV9UQlMgKi8KLTB4NjcsMHgyQSwweDAwLDB4MEUsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszOTY0XSBPQkpfc2V0Y3RfUFJlc0RhdGEgKi8KLTB4NjcsMHgyQSwweDAwLDB4MTAsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszOTY4XSBPQkpfc2V0Y3RfQXV0aFJlcVRCUyAqLwotMHg2NywweDJBLDB4MDAsMHgxMSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM5NzJdIE9CSl9zZXRjdF9BdXRoUmVzVEJTICovCi0weDY3LDB4MkEsMHgwMCwweDEyLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzk3Nl0gT0JKX3NldGN0X0F1dGhSZXNUQlNYICovCi0weDY3LDB4MkEsMHgwMCwweDEzLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzk4MF0gT0JKX3NldGN0X0F1dGhUb2tlblRCUyAqLwotMHg2NywweDJBLDB4MDAsMHgxNCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM5ODRdIE9CSl9zZXRjdF9DYXBUb2tlbkRhdGEgKi8KLTB4NjcsMHgyQSwweDAwLDB4MTUsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszOTg4XSBPQkpfc2V0Y3RfQ2FwVG9rZW5UQlMgKi8KLTB4NjcsMHgyQSwweDAwLDB4MTYsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszOTkyXSBPQkpfc2V0Y3RfQWNxQ2FyZENvZGVNc2cgKi8KLTB4NjcsMHgyQSwweDAwLDB4MTcsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszOTk2XSBPQkpfc2V0Y3RfQXV0aFJldlJlcVRCUyAqLwotMHg2NywweDJBLDB4MDAsMHgxOCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQwMDBdIE9CSl9zZXRjdF9BdXRoUmV2UmVzRGF0YSAqLwotMHg2NywweDJBLDB4MDAsMHgxOSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQwMDRdIE9CSl9zZXRjdF9BdXRoUmV2UmVzVEJTICovCi0weDY3LDB4MkEsMHgwMCwweDFBLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDAwOF0gT0JKX3NldGN0X0NhcFJlcVRCUyAqLwotMHg2NywweDJBLDB4MDAsMHgxQiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQwMTJdIE9CSl9zZXRjdF9DYXBSZXFUQlNYICovCi0weDY3LDB4MkEsMHgwMCwweDFDLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDAxNl0gT0JKX3NldGN0X0NhcFJlc0RhdGEgKi8KLTB4NjcsMHgyQSwweDAwLDB4MUQsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MDIwXSBPQkpfc2V0Y3RfQ2FwUmV2UmVxVEJTICovCi0weDY3LDB4MkEsMHgwMCwweDFFLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDAyNF0gT0JKX3NldGN0X0NhcFJldlJlcVRCU1ggKi8KLTB4NjcsMHgyQSwweDAwLDB4MUYsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MDI4XSBPQkpfc2V0Y3RfQ2FwUmV2UmVzRGF0YSAqLwotMHg2NywweDJBLDB4MDAsMHgyMCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQwMzJdIE9CSl9zZXRjdF9DcmVkUmVxVEJTICovCi0weDY3LDB4MkEsMHgwMCwweDIxLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDAzNl0gT0JKX3NldGN0X0NyZWRSZXFUQlNYICovCi0weDY3LDB4MkEsMHgwMCwweDIyLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDA0MF0gT0JKX3NldGN0X0NyZWRSZXNEYXRhICovCi0weDY3LDB4MkEsMHgwMCwweDIzLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDA0NF0gT0JKX3NldGN0X0NyZWRSZXZSZXFUQlMgKi8KLTB4NjcsMHgyQSwweDAwLDB4MjQsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MDQ4XSBPQkpfc2V0Y3RfQ3JlZFJldlJlcVRCU1ggKi8KLTB4NjcsMHgyQSwweDAwLDB4MjUsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MDUyXSBPQkpfc2V0Y3RfQ3JlZFJldlJlc0RhdGEgKi8KLTB4NjcsMHgyQSwweDAwLDB4MjYsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MDU2XSBPQkpfc2V0Y3RfUENlcnRSZXFEYXRhICovCi0weDY3LDB4MkEsMHgwMCwweDI3LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDA2MF0gT0JKX3NldGN0X1BDZXJ0UmVzVEJTICovCi0weDY3LDB4MkEsMHgwMCwweDI4LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDA2NF0gT0JKX3NldGN0X0JhdGNoQWRtaW5SZXFEYXRhICovCi0weDY3LDB4MkEsMHgwMCwweDI5LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDA2OF0gT0JKX3NldGN0X0JhdGNoQWRtaW5SZXNEYXRhICovCi0weDY3LDB4MkEsMHgwMCwweDJBLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDA3Ml0gT0JKX3NldGN0X0NhcmRDSW5pdFJlc1RCUyAqLwotMHg2NywweDJBLDB4MDAsMHgyQiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQwNzZdIE9CSl9zZXRjdF9NZUFxQ0luaXRSZXNUQlMgKi8KLTB4NjcsMHgyQSwweDAwLDB4MkMsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MDgwXSBPQkpfc2V0Y3RfUmVnRm9ybVJlc1RCUyAqLwotMHg2NywweDJBLDB4MDAsMHgyRCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQwODRdIE9CSl9zZXRjdF9DZXJ0UmVxRGF0YSAqLwotMHg2NywweDJBLDB4MDAsMHgyRSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQwODhdIE9CSl9zZXRjdF9DZXJ0UmVxVEJTICovCi0weDY3LDB4MkEsMHgwMCwweDJGLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDA5Ml0gT0JKX3NldGN0X0NlcnRSZXNEYXRhICovCi0weDY3LDB4MkEsMHgwMCwweDMwLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDA5Nl0gT0JKX3NldGN0X0NlcnRJbnFSZXFUQlMgKi8KLTB4NjcsMHgyQSwweDAwLDB4MzEsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MTAwXSBPQkpfc2V0Y3RfRXJyb3JUQlMgKi8KLTB4NjcsMHgyQSwweDAwLDB4MzIsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MTA0XSBPQkpfc2V0Y3RfUElEdWFsU2lnbmVkVEJFICovCi0weDY3LDB4MkEsMHgwMCwweDMzLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDEwOF0gT0JKX3NldGN0X1BJVW5zaWduZWRUQkUgKi8KLTB4NjcsMHgyQSwweDAwLDB4MzQsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MTEyXSBPQkpfc2V0Y3RfQXV0aFJlcVRCRSAqLwotMHg2NywweDJBLDB4MDAsMHgzNSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQxMTZdIE9CSl9zZXRjdF9BdXRoUmVzVEJFICovCi0weDY3LDB4MkEsMHgwMCwweDM2LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDEyMF0gT0JKX3NldGN0X0F1dGhSZXNUQkVYICovCi0weDY3LDB4MkEsMHgwMCwweDM3LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDEyNF0gT0JKX3NldGN0X0F1dGhUb2tlblRCRSAqLwotMHg2NywweDJBLDB4MDAsMHgzOCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQxMjhdIE9CSl9zZXRjdF9DYXBUb2tlblRCRSAqLwotMHg2NywweDJBLDB4MDAsMHgzOSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQxMzJdIE9CSl9zZXRjdF9DYXBUb2tlblRCRVggKi8KLTB4NjcsMHgyQSwweDAwLDB4M0EsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MTM2XSBPQkpfc2V0Y3RfQWNxQ2FyZENvZGVNc2dUQkUgKi8KLTB4NjcsMHgyQSwweDAwLDB4M0IsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MTQwXSBPQkpfc2V0Y3RfQXV0aFJldlJlcVRCRSAqLwotMHg2NywweDJBLDB4MDAsMHgzQywgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQxNDRdIE9CSl9zZXRjdF9BdXRoUmV2UmVzVEJFICovCi0weDY3LDB4MkEsMHgwMCwweDNELCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDE0OF0gT0JKX3NldGN0X0F1dGhSZXZSZXNUQkVCICovCi0weDY3LDB4MkEsMHgwMCwweDNFLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDE1Ml0gT0JKX3NldGN0X0NhcFJlcVRCRSAqLwotMHg2NywweDJBLDB4MDAsMHgzRiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQxNTZdIE9CSl9zZXRjdF9DYXBSZXFUQkVYICovCi0weDY3LDB4MkEsMHgwMCwweDQwLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDE2MF0gT0JKX3NldGN0X0NhcFJlc1RCRSAqLwotMHg2NywweDJBLDB4MDAsMHg0MSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQxNjRdIE9CSl9zZXRjdF9DYXBSZXZSZXFUQkUgKi8KLTB4NjcsMHgyQSwweDAwLDB4NDIsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MTY4XSBPQkpfc2V0Y3RfQ2FwUmV2UmVxVEJFWCAqLwotMHg2NywweDJBLDB4MDAsMHg0MywgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQxNzJdIE9CSl9zZXRjdF9DYXBSZXZSZXNUQkUgKi8KLTB4NjcsMHgyQSwweDAwLDB4NDQsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MTc2XSBPQkpfc2V0Y3RfQ3JlZFJlcVRCRSAqLwotMHg2NywweDJBLDB4MDAsMHg0NSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQxODBdIE9CSl9zZXRjdF9DcmVkUmVxVEJFWCAqLwotMHg2NywweDJBLDB4MDAsMHg0NiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQxODRdIE9CSl9zZXRjdF9DcmVkUmVzVEJFICovCi0weDY3LDB4MkEsMHgwMCwweDQ3LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDE4OF0gT0JKX3NldGN0X0NyZWRSZXZSZXFUQkUgKi8KLTB4NjcsMHgyQSwweDAwLDB4NDgsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MTkyXSBPQkpfc2V0Y3RfQ3JlZFJldlJlcVRCRVggKi8KLTB4NjcsMHgyQSwweDAwLDB4NDksICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MTk2XSBPQkpfc2V0Y3RfQ3JlZFJldlJlc1RCRSAqLwotMHg2NywweDJBLDB4MDAsMHg0QSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQyMDBdIE9CSl9zZXRjdF9CYXRjaEFkbWluUmVxVEJFICovCi0weDY3LDB4MkEsMHgwMCwweDRCLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDIwNF0gT0JKX3NldGN0X0JhdGNoQWRtaW5SZXNUQkUgKi8KLTB4NjcsMHgyQSwweDAwLDB4NEMsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MjA4XSBPQkpfc2V0Y3RfUmVnRm9ybVJlcVRCRSAqLwotMHg2NywweDJBLDB4MDAsMHg0RCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQyMTJdIE9CSl9zZXRjdF9DZXJ0UmVxVEJFICovCi0weDY3LDB4MkEsMHgwMCwweDRFLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDIxNl0gT0JKX3NldGN0X0NlcnRSZXFUQkVYICovCi0weDY3LDB4MkEsMHgwMCwweDRGLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDIyMF0gT0JKX3NldGN0X0NlcnRSZXNUQkUgKi8KLTB4NjcsMHgyQSwweDAwLDB4NTAsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MjI0XSBPQkpfc2V0Y3RfQ1JMTm90aWZpY2F0aW9uVEJTICovCi0weDY3LDB4MkEsMHgwMCwweDUxLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDIyOF0gT0JKX3NldGN0X0NSTE5vdGlmaWNhdGlvblJlc1RCUyAqLwotMHg2NywweDJBLDB4MDAsMHg1MiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQyMzJdIE9CSl9zZXRjdF9CQ0lEaXN0cmlidXRpb25UQlMgKi8KLTB4NjcsMHgyQSwweDAxLDB4MDEsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MjM2XSBPQkpfc2V0ZXh0X2dlbkNyeXB0ICovCi0weDY3LDB4MkEsMHgwMSwweDAzLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDI0MF0gT0JKX3NldGV4dF9taUF1dGggKi8KLTB4NjcsMHgyQSwweDAxLDB4MDQsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MjQ0XSBPQkpfc2V0ZXh0X3BpblNlY3VyZSAqLwotMHg2NywweDJBLDB4MDEsMHgwNSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQyNDhdIE9CSl9zZXRleHRfcGluQW55ICovCi0weDY3LDB4MkEsMHgwMSwweDA3LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDI1Ml0gT0JKX3NldGV4dF90cmFjazIgKi8KLTB4NjcsMHgyQSwweDAxLDB4MDgsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MjU2XSBPQkpfc2V0ZXh0X2N2ICovCi0weDY3LDB4MkEsMHgwNSwweDAwLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDI2MF0gT0JKX3NldF9wb2xpY3lfcm9vdCAqLwotMHg2NywweDJBLDB4MDcsMHgwMCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQyNjRdIE9CSl9zZXRDZXh0X2hhc2hlZFJvb3QgKi8KLTB4NjcsMHgyQSwweDA3LDB4MDEsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MjY4XSBPQkpfc2V0Q2V4dF9jZXJ0VHlwZSAqLwotMHg2NywweDJBLDB4MDcsMHgwMiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQyNzJdIE9CSl9zZXRDZXh0X21lcmNoRGF0YSAqLwotMHg2NywweDJBLDB4MDcsMHgwMywgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQyNzZdIE9CSl9zZXRDZXh0X2NDZXJ0UmVxdWlyZWQgKi8KLTB4NjcsMHgyQSwweDA3LDB4MDQsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MjgwXSBPQkpfc2V0Q2V4dF90dW5uZWxpbmcgKi8KLTB4NjcsMHgyQSwweDA3LDB4MDUsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0Mjg0XSBPQkpfc2V0Q2V4dF9zZXRFeHQgKi8KLTB4NjcsMHgyQSwweDA3LDB4MDYsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0Mjg4XSBPQkpfc2V0Q2V4dF9zZXRRdWFsZiAqLwotMHg2NywweDJBLDB4MDcsMHgwNywgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQyOTJdIE9CSl9zZXRDZXh0X1BHV1ljYXBhYmlsaXRpZXMgKi8KLTB4NjcsMHgyQSwweDA3LDB4MDgsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0Mjk2XSBPQkpfc2V0Q2V4dF9Ub2tlbklkZW50aWZpZXIgKi8KLTB4NjcsMHgyQSwweDA3LDB4MDksICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MzAwXSBPQkpfc2V0Q2V4dF9UcmFjazJEYXRhICovCi0weDY3LDB4MkEsMHgwNywweDBBLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDMwNF0gT0JKX3NldENleHRfVG9rZW5UeXBlICovCi0weDY3LDB4MkEsMHgwNywweDBCLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDMwOF0gT0JKX3NldENleHRfSXNzdWVyQ2FwYWJpbGl0aWVzICovCi0weDY3LDB4MkEsMHgwMywweDAwLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDMxMl0gT0JKX3NldEF0dHJfQ2VydCAqLwotMHg2NywweDJBLDB4MDMsMHgwMSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQzMTZdIE9CSl9zZXRBdHRyX1BHV1ljYXAgKi8KLTB4NjcsMHgyQSwweDAzLDB4MDIsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MzIwXSBPQkpfc2V0QXR0cl9Ub2tlblR5cGUgKi8KLTB4NjcsMHgyQSwweDAzLDB4MDMsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MzI0XSBPQkpfc2V0QXR0cl9Jc3NDYXAgKi8KLTB4NjcsMHgyQSwweDAzLDB4MDAsMHgwMCwgICAgICAgICAgICAgICAgICAgIC8qIFs0MzI4XSBPQkpfc2V0X3Jvb3RLZXlUaHVtYiAqLwotMHg2NywweDJBLDB4MDMsMHgwMCwweDAxLCAgICAgICAgICAgICAgICAgICAgLyogWzQzMzNdIE9CSl9zZXRfYWRkUG9saWN5ICovCi0weDY3LDB4MkEsMHgwMywweDAyLDB4MDEsICAgICAgICAgICAgICAgICAgICAvKiBbNDMzOF0gT0JKX3NldEF0dHJfVG9rZW5fRU1WICovCi0weDY3LDB4MkEsMHgwMywweDAyLDB4MDIsICAgICAgICAgICAgICAgICAgICAvKiBbNDM0M10gT0JKX3NldEF0dHJfVG9rZW5fQjBQcmltZSAqLwotMHg2NywweDJBLDB4MDMsMHgwMywweDAzLCAgICAgICAgICAgICAgICAgICAgLyogWzQzNDhdIE9CSl9zZXRBdHRyX0lzc0NhcF9DVk0gKi8KLTB4NjcsMHgyQSwweDAzLDB4MDMsMHgwNCwgICAgICAgICAgICAgICAgICAgIC8qIFs0MzUzXSBPQkpfc2V0QXR0cl9Jc3NDYXBfVDIgKi8KLTB4NjcsMHgyQSwweDAzLDB4MDMsMHgwNSwgICAgICAgICAgICAgICAgICAgIC8qIFs0MzU4XSBPQkpfc2V0QXR0cl9Jc3NDYXBfU2lnICovCi0weDY3LDB4MkEsMHgwMywweDAzLDB4MDMsMHgwMSwgICAgICAgICAgICAgICAvKiBbNDM2M10gT0JKX3NldEF0dHJfR2VuQ3J5cHRncm0gKi8KLTB4NjcsMHgyQSwweDAzLDB4MDMsMHgwNCwweDAxLCAgICAgICAgICAgICAgIC8qIFs0MzY5XSBPQkpfc2V0QXR0cl9UMkVuYyAqLwotMHg2NywweDJBLDB4MDMsMHgwMywweDA0LDB4MDIsICAgICAgICAgICAgICAgLyogWzQzNzVdIE9CSl9zZXRBdHRyX1QyY2xlYXJ0eHQgKi8KLTB4NjcsMHgyQSwweDAzLDB4MDMsMHgwNSwweDAxLCAgICAgICAgICAgICAgIC8qIFs0MzgxXSBPQkpfc2V0QXR0cl9Ub2tJQ0NzaWcgKi8KLTB4NjcsMHgyQSwweDAzLDB4MDMsMHgwNSwweDAyLCAgICAgICAgICAgICAgIC8qIFs0Mzg3XSBPQkpfc2V0QXR0cl9TZWNEZXZTaWcgKi8KLTB4NjcsMHgyQSwweDA4LDB4MDEsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MzkzXSBPQkpfc2V0X2JyYW5kX0lBVEFfQVRBICovCi0weDY3LDB4MkEsMHgwOCwweDFFLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDM5N10gT0JKX3NldF9icmFuZF9EaW5lcnMgKi8KLTB4NjcsMHgyQSwweDA4LDB4MjIsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0NDAxXSBPQkpfc2V0X2JyYW5kX0FtZXJpY2FuRXhwcmVzcyAqLwotMHg2NywweDJBLDB4MDgsMHgyMywgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQ0MDVdIE9CSl9zZXRfYnJhbmRfSkNCICovCi0weDY3LDB4MkEsMHgwOCwweDA0LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDQwOV0gT0JKX3NldF9icmFuZF9WaXNhICovCi0weDY3LDB4MkEsMHgwOCwweDA1LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDQxM10gT0JKX3NldF9icmFuZF9NYXN0ZXJDYXJkICovCi0weDY3LDB4MkEsMHgwOCwweEFFLDB4N0IsICAgICAgICAgICAgICAgICAgICAvKiBbNDQxN10gT0JKX3NldF9icmFuZF9Ob3Z1cyAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMywweDBBLCAgICAgLyogWzQ0MjJdIE9CSl9kZXNfY2RtZiAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDAxLDB4MDYsLyogWzQ0MzBdIE9CSl9yc2FPQUVQRW5jcnlwdGlvblNFVCAqLwotMHgwMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQ0MzldIE9CSl9pdHVfdCAqLwotMHg1MCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQ0NDBdIE9CSl9qb2ludF9pc29faXR1X3QgKi8KLTB4NjcsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0NDQxXSBPQkpfaW50ZXJuYXRpb25hbF9vcmdhbml6YXRpb25zICovCi0weDJCLDB4MDYsMHgwMSwweDA0LDB4MDEsMHg4MiwweDM3LDB4MTQsMHgwMiwweDAyLC8qIFs0NDQyXSBPQkpfbXNfc21hcnRjYXJkX2xvZ2luICovCi0weDJCLDB4MDYsMHgwMSwweDA0LDB4MDEsMHg4MiwweDM3LDB4MTQsMHgwMiwweDAzLC8qIFs0NDUyXSBPQkpfbXNfdXBuICovCi0weDU1LDB4MDQsMHgwOSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDQ2Ml0gT0JKX3N0cmVldEFkZHJlc3MgKi8KLTB4NTUsMHgwNCwweDExLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0NDY1XSBPQkpfcG9zdGFsQ29kZSAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgxNSwgICAgICAgICAgLyogWzQ0NjhdIE9CSl9pZF9wcGwgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDEsMHgwRSwgICAgIC8qIFs0NDc1XSBPQkpfcHJveHlDZXJ0SW5mbyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgxNSwweDAwLCAgICAgLyogWzQ0ODNdIE9CSl9pZF9wcGxfYW55TGFuZ3VhZ2UgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MTUsMHgwMSwgICAgIC8qIFs0NDkxXSBPQkpfaWRfcHBsX2luaGVyaXRBbGwgKi8KLTB4NTUsMHgxRCwweDFFLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0NDk5XSBPQkpfbmFtZV9jb25zdHJhaW50cyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgxNSwweDAyLCAgICAgLyogWzQ1MDJdIE9CSl9JbmRlcGVuZGVudCAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDAxLDB4MEIsLyogWzQ1MTBdIE9CSl9zaGEyNTZXaXRoUlNBRW5jcnlwdGlvbiAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDAxLDB4MEMsLyogWzQ1MTldIE9CSl9zaGEzODRXaXRoUlNBRW5jcnlwdGlvbiAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDAxLDB4MEQsLyogWzQ1MjhdIE9CSl9zaGE1MTJXaXRoUlNBRW5jcnlwdGlvbiAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDAxLDB4MEUsLyogWzQ1MzddIE9CSl9zaGEyMjRXaXRoUlNBRW5jcnlwdGlvbiAqLwotMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAyLDB4MDEsLyogWzQ1NDZdIE9CSl9zaGEyNTYgKi8KLTB4NjAsMHg4NiwweDQ4LDB4MDEsMHg2NSwweDAzLDB4MDQsMHgwMiwweDAyLC8qIFs0NTU1XSBPQkpfc2hhMzg0ICovCi0weDYwLDB4ODYsMHg0OCwweDAxLDB4NjUsMHgwMywweDA0LDB4MDIsMHgwMywvKiBbNDU2NF0gT0JKX3NoYTUxMiAqLwotMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAyLDB4MDQsLyogWzQ1NzNdIE9CSl9zaGEyMjQgKi8KLTB4MkIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0NTgyXSBPQkpfaWRlbnRpZmllZF9vcmdhbml6YXRpb24gKi8KLTB4MkIsMHg4MSwweDA0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0NTgzXSBPQkpfY2VydGljb21fYXJjICovCi0weDY3LDB4MkIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDU4Nl0gT0JKX3dhcCAqLwotMHg2NywweDJCLDB4MDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQ1ODhdIE9CSl93YXBfd3NnICovCi0weDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMSwweDAyLDB4MDMsICAgICAvKiBbNDU5MV0gT0JKX1g5XzYyX2lkX2NoYXJhY3RlcmlzdGljX3R3b19iYXNpcyAqLwotMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDEsMHgwMiwweDAzLDB4MDEsLyogWzQ1OTldIE9CSl9YOV82Ml9vbkJhc2lzICovCi0weDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMSwweDAyLDB4MDMsMHgwMiwvKiBbNDYwOF0gT0JKX1g5XzYyX3RwQmFzaXMgKi8KLTB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAxLDB4MDIsMHgwMywweDAzLC8qIFs0NjE3XSBPQkpfWDlfNjJfcHBCYXNpcyAqLwotMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDMsMHgwMCwweDAxLCAgICAgLyogWzQ2MjZdIE9CSl9YOV82Ml9jMnBuYjE2M3YxICovCi0weDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMywweDAwLDB4MDIsICAgICAvKiBbNDYzNF0gT0JKX1g5XzYyX2MycG5iMTYzdjIgKi8KLTB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAzLDB4MDAsMHgwMywgICAgIC8qIFs0NjQyXSBPQkpfWDlfNjJfYzJwbmIxNjN2MyAqLwotMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDMsMHgwMCwweDA0LCAgICAgLyogWzQ2NTBdIE9CSl9YOV82Ml9jMnBuYjE3NnYxICovCi0weDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMywweDAwLDB4MDUsICAgICAvKiBbNDY1OF0gT0JKX1g5XzYyX2MydG5iMTkxdjEgKi8KLTB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAzLDB4MDAsMHgwNiwgICAgIC8qIFs0NjY2XSBPQkpfWDlfNjJfYzJ0bmIxOTF2MiAqLwotMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDMsMHgwMCwweDA3LCAgICAgLyogWzQ2NzRdIE9CSl9YOV82Ml9jMnRuYjE5MXYzICovCi0weDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMywweDAwLDB4MDgsICAgICAvKiBbNDY4Ml0gT0JKX1g5XzYyX2Myb25iMTkxdjQgKi8KLTB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAzLDB4MDAsMHgwOSwgICAgIC8qIFs0NjkwXSBPQkpfWDlfNjJfYzJvbmIxOTF2NSAqLwotMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDMsMHgwMCwweDBBLCAgICAgLyogWzQ2OThdIE9CSl9YOV82Ml9jMnBuYjIwOHcxICovCi0weDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMywweDAwLDB4MEIsICAgICAvKiBbNDcwNl0gT0JKX1g5XzYyX2MydG5iMjM5djEgKi8KLTB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAzLDB4MDAsMHgwQywgICAgIC8qIFs0NzE0XSBPQkpfWDlfNjJfYzJ0bmIyMzl2MiAqLwotMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDMsMHgwMCwweDBELCAgICAgLyogWzQ3MjJdIE9CSl9YOV82Ml9jMnRuYjIzOXYzICovCi0weDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMywweDAwLDB4MEUsICAgICAvKiBbNDczMF0gT0JKX1g5XzYyX2Myb25iMjM5djQgKi8KLTB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAzLDB4MDAsMHgwRiwgICAgIC8qIFs0NzM4XSBPQkpfWDlfNjJfYzJvbmIyMzl2NSAqLwotMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDMsMHgwMCwweDEwLCAgICAgLyogWzQ3NDZdIE9CSl9YOV82Ml9jMnBuYjI3MncxICovCi0weDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMywweDAwLDB4MTEsICAgICAvKiBbNDc1NF0gT0JKX1g5XzYyX2MycG5iMzA0dzEgKi8KLTB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAzLDB4MDAsMHgxMiwgICAgIC8qIFs0NzYyXSBPQkpfWDlfNjJfYzJ0bmIzNTl2MSAqLwotMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDMsMHgwMCwweDEzLCAgICAgLyogWzQ3NzBdIE9CSl9YOV82Ml9jMnBuYjM2OHcxICovCi0weDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMywweDAwLDB4MTQsICAgICAvKiBbNDc3OF0gT0JKX1g5XzYyX2MydG5iNDMxcjEgKi8KLTB4MkIsMHg4MSwweDA0LDB4MDAsMHgwNiwgICAgICAgICAgICAgICAgICAgIC8qIFs0Nzg2XSBPQkpfc2VjcDExMnIxICovCi0weDJCLDB4ODEsMHgwNCwweDAwLDB4MDcsICAgICAgICAgICAgICAgICAgICAvKiBbNDc5MV0gT0JKX3NlY3AxMTJyMiAqLwotMHgyQiwweDgxLDB4MDQsMHgwMCwweDFDLCAgICAgICAgICAgICAgICAgICAgLyogWzQ3OTZdIE9CSl9zZWNwMTI4cjEgKi8KLTB4MkIsMHg4MSwweDA0LDB4MDAsMHgxRCwgICAgICAgICAgICAgICAgICAgIC8qIFs0ODAxXSBPQkpfc2VjcDEyOHIyICovCi0weDJCLDB4ODEsMHgwNCwweDAwLDB4MDksICAgICAgICAgICAgICAgICAgICAvKiBbNDgwNl0gT0JKX3NlY3AxNjBrMSAqLwotMHgyQiwweDgxLDB4MDQsMHgwMCwweDA4LCAgICAgICAgICAgICAgICAgICAgLyogWzQ4MTFdIE9CSl9zZWNwMTYwcjEgKi8KLTB4MkIsMHg4MSwweDA0LDB4MDAsMHgxRSwgICAgICAgICAgICAgICAgICAgIC8qIFs0ODE2XSBPQkpfc2VjcDE2MHIyICovCi0weDJCLDB4ODEsMHgwNCwweDAwLDB4MUYsICAgICAgICAgICAgICAgICAgICAvKiBbNDgyMV0gT0JKX3NlY3AxOTJrMSAqLwotMHgyQiwweDgxLDB4MDQsMHgwMCwweDIwLCAgICAgICAgICAgICAgICAgICAgLyogWzQ4MjZdIE9CSl9zZWNwMjI0azEgKi8KLTB4MkIsMHg4MSwweDA0LDB4MDAsMHgyMSwgICAgICAgICAgICAgICAgICAgIC8qIFs0ODMxXSBPQkpfc2VjcDIyNHIxICovCi0weDJCLDB4ODEsMHgwNCwweDAwLDB4MEEsICAgICAgICAgICAgICAgICAgICAvKiBbNDgzNl0gT0JKX3NlY3AyNTZrMSAqLwotMHgyQiwweDgxLDB4MDQsMHgwMCwweDIyLCAgICAgICAgICAgICAgICAgICAgLyogWzQ4NDFdIE9CSl9zZWNwMzg0cjEgKi8KLTB4MkIsMHg4MSwweDA0LDB4MDAsMHgyMywgICAgICAgICAgICAgICAgICAgIC8qIFs0ODQ2XSBPQkpfc2VjcDUyMXIxICovCi0weDJCLDB4ODEsMHgwNCwweDAwLDB4MDQsICAgICAgICAgICAgICAgICAgICAvKiBbNDg1MV0gT0JKX3NlY3QxMTNyMSAqLwotMHgyQiwweDgxLDB4MDQsMHgwMCwweDA1LCAgICAgICAgICAgICAgICAgICAgLyogWzQ4NTZdIE9CSl9zZWN0MTEzcjIgKi8KLTB4MkIsMHg4MSwweDA0LDB4MDAsMHgxNiwgICAgICAgICAgICAgICAgICAgIC8qIFs0ODYxXSBPQkpfc2VjdDEzMXIxICovCi0weDJCLDB4ODEsMHgwNCwweDAwLDB4MTcsICAgICAgICAgICAgICAgICAgICAvKiBbNDg2Nl0gT0JKX3NlY3QxMzFyMiAqLwotMHgyQiwweDgxLDB4MDQsMHgwMCwweDAxLCAgICAgICAgICAgICAgICAgICAgLyogWzQ4NzFdIE9CSl9zZWN0MTYzazEgKi8KLTB4MkIsMHg4MSwweDA0LDB4MDAsMHgwMiwgICAgICAgICAgICAgICAgICAgIC8qIFs0ODc2XSBPQkpfc2VjdDE2M3IxICovCi0weDJCLDB4ODEsMHgwNCwweDAwLDB4MEYsICAgICAgICAgICAgICAgICAgICAvKiBbNDg4MV0gT0JKX3NlY3QxNjNyMiAqLwotMHgyQiwweDgxLDB4MDQsMHgwMCwweDE4LCAgICAgICAgICAgICAgICAgICAgLyogWzQ4ODZdIE9CSl9zZWN0MTkzcjEgKi8KLTB4MkIsMHg4MSwweDA0LDB4MDAsMHgxOSwgICAgICAgICAgICAgICAgICAgIC8qIFs0ODkxXSBPQkpfc2VjdDE5M3IyICovCi0weDJCLDB4ODEsMHgwNCwweDAwLDB4MUEsICAgICAgICAgICAgICAgICAgICAvKiBbNDg5Nl0gT0JKX3NlY3QyMzNrMSAqLwotMHgyQiwweDgxLDB4MDQsMHgwMCwweDFCLCAgICAgICAgICAgICAgICAgICAgLyogWzQ5MDFdIE9CSl9zZWN0MjMzcjEgKi8KLTB4MkIsMHg4MSwweDA0LDB4MDAsMHgwMywgICAgICAgICAgICAgICAgICAgIC8qIFs0OTA2XSBPQkpfc2VjdDIzOWsxICovCi0weDJCLDB4ODEsMHgwNCwweDAwLDB4MTAsICAgICAgICAgICAgICAgICAgICAvKiBbNDkxMV0gT0JKX3NlY3QyODNrMSAqLwotMHgyQiwweDgxLDB4MDQsMHgwMCwweDExLCAgICAgICAgICAgICAgICAgICAgLyogWzQ5MTZdIE9CSl9zZWN0MjgzcjEgKi8KLTB4MkIsMHg4MSwweDA0LDB4MDAsMHgyNCwgICAgICAgICAgICAgICAgICAgIC8qIFs0OTIxXSBPQkpfc2VjdDQwOWsxICovCi0weDJCLDB4ODEsMHgwNCwweDAwLDB4MjUsICAgICAgICAgICAgICAgICAgICAvKiBbNDkyNl0gT0JKX3NlY3Q0MDlyMSAqLwotMHgyQiwweDgxLDB4MDQsMHgwMCwweDI2LCAgICAgICAgICAgICAgICAgICAgLyogWzQ5MzFdIE9CSl9zZWN0NTcxazEgKi8KLTB4MkIsMHg4MSwweDA0LDB4MDAsMHgyNywgICAgICAgICAgICAgICAgICAgIC8qIFs0OTM2XSBPQkpfc2VjdDU3MXIxICovCi0weDY3LDB4MkIsMHgwMSwweDA0LDB4MDEsICAgICAgICAgICAgICAgICAgICAvKiBbNDk0MV0gT0JKX3dhcF93c2dfaWRtX2VjaWRfd3RsczEgKi8KLTB4NjcsMHgyQiwweDAxLDB4MDQsMHgwMywgICAgICAgICAgICAgICAgICAgIC8qIFs0OTQ2XSBPQkpfd2FwX3dzZ19pZG1fZWNpZF93dGxzMyAqLwotMHg2NywweDJCLDB4MDEsMHgwNCwweDA0LCAgICAgICAgICAgICAgICAgICAgLyogWzQ5NTFdIE9CSl93YXBfd3NnX2lkbV9lY2lkX3d0bHM0ICovCi0weDY3LDB4MkIsMHgwMSwweDA0LDB4MDUsICAgICAgICAgICAgICAgICAgICAvKiBbNDk1Nl0gT0JKX3dhcF93c2dfaWRtX2VjaWRfd3RsczUgKi8KLTB4NjcsMHgyQiwweDAxLDB4MDQsMHgwNiwgICAgICAgICAgICAgICAgICAgIC8qIFs0OTYxXSBPQkpfd2FwX3dzZ19pZG1fZWNpZF93dGxzNiAqLwotMHg2NywweDJCLDB4MDEsMHgwNCwweDA3LCAgICAgICAgICAgICAgICAgICAgLyogWzQ5NjZdIE9CSl93YXBfd3NnX2lkbV9lY2lkX3d0bHM3ICovCi0weDY3LDB4MkIsMHgwMSwweDA0LDB4MDgsICAgICAgICAgICAgICAgICAgICAvKiBbNDk3MV0gT0JKX3dhcF93c2dfaWRtX2VjaWRfd3RsczggKi8KLTB4NjcsMHgyQiwweDAxLDB4MDQsMHgwOSwgICAgICAgICAgICAgICAgICAgIC8qIFs0OTc2XSBPQkpfd2FwX3dzZ19pZG1fZWNpZF93dGxzOSAqLwotMHg2NywweDJCLDB4MDEsMHgwNCwweDBBLCAgICAgICAgICAgICAgICAgICAgLyogWzQ5ODFdIE9CSl93YXBfd3NnX2lkbV9lY2lkX3d0bHMxMCAqLwotMHg2NywweDJCLDB4MDEsMHgwNCwweDBCLCAgICAgICAgICAgICAgICAgICAgLyogWzQ5ODZdIE9CSl93YXBfd3NnX2lkbV9lY2lkX3d0bHMxMSAqLwotMHg2NywweDJCLDB4MDEsMHgwNCwweDBDLCAgICAgICAgICAgICAgICAgICAgLyogWzQ5OTFdIE9CSl93YXBfd3NnX2lkbV9lY2lkX3d0bHMxMiAqLwotMHg1NSwweDFELDB4MjAsMHgwMCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQ5OTZdIE9CSl9hbnlfcG9saWN5ICovCi0weDU1LDB4MUQsMHgyMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTAwMF0gT0JKX3BvbGljeV9tYXBwaW5ncyAqLwotMHg1NSwweDFELDB4MzYsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzUwMDNdIE9CSl9pbmhpYml0X2FueV9wb2xpY3kgKi8KLTB4MkEsMHg4MywweDA4LDB4OEMsMHg5QSwweDRCLDB4M0QsMHgwMSwweDAxLDB4MDEsMHgwMiwvKiBbNTAwNl0gT0JKX2NhbWVsbGlhXzEyOF9jYmMgKi8KLTB4MkEsMHg4MywweDA4LDB4OEMsMHg5QSwweDRCLDB4M0QsMHgwMSwweDAxLDB4MDEsMHgwMywvKiBbNTAxN10gT0JKX2NhbWVsbGlhXzE5Ml9jYmMgKi8KLTB4MkEsMHg4MywweDA4LDB4OEMsMHg5QSwweDRCLDB4M0QsMHgwMSwweDAxLDB4MDEsMHgwNCwvKiBbNTAyOF0gT0JKX2NhbWVsbGlhXzI1Nl9jYmMgKi8KLTB4MDMsMHhBMiwweDMxLDB4MDUsMHgwMywweDAxLDB4MDksMHgwMSwgICAgIC8qIFs1MDM5XSBPQkpfY2FtZWxsaWFfMTI4X2VjYiAqLwotMHgwMywweEEyLDB4MzEsMHgwNSwweDAzLDB4MDEsMHgwOSwweDE1LCAgICAgLyogWzUwNDddIE9CSl9jYW1lbGxpYV8xOTJfZWNiICovCi0weDAzLDB4QTIsMHgzMSwweDA1LDB4MDMsMHgwMSwweDA5LDB4MjksICAgICAvKiBbNTA1NV0gT0JKX2NhbWVsbGlhXzI1Nl9lY2IgKi8KLTB4MDMsMHhBMiwweDMxLDB4MDUsMHgwMywweDAxLDB4MDksMHgwNCwgICAgIC8qIFs1MDYzXSBPQkpfY2FtZWxsaWFfMTI4X2NmYjEyOCAqLwotMHgwMywweEEyLDB4MzEsMHgwNSwweDAzLDB4MDEsMHgwOSwweDE4LCAgICAgLyogWzUwNzFdIE9CSl9jYW1lbGxpYV8xOTJfY2ZiMTI4ICovCi0weDAzLDB4QTIsMHgzMSwweDA1LDB4MDMsMHgwMSwweDA5LDB4MkMsICAgICAvKiBbNTA3OV0gT0JKX2NhbWVsbGlhXzI1Nl9jZmIxMjggKi8KLTB4MDMsMHhBMiwweDMxLDB4MDUsMHgwMywweDAxLDB4MDksMHgwMywgICAgIC8qIFs1MDg3XSBPQkpfY2FtZWxsaWFfMTI4X29mYjEyOCAqLwotMHgwMywweEEyLDB4MzEsMHgwNSwweDAzLDB4MDEsMHgwOSwweDE3LCAgICAgLyogWzUwOTVdIE9CSl9jYW1lbGxpYV8xOTJfb2ZiMTI4ICovCi0weDAzLDB4QTIsMHgzMSwweDA1LDB4MDMsMHgwMSwweDA5LDB4MkIsICAgICAvKiBbNTEwM10gT0JKX2NhbWVsbGlhXzI1Nl9vZmIxMjggKi8KLTB4NTUsMHgxRCwweDA5LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1MTExXSBPQkpfc3ViamVjdF9kaXJlY3RvcnlfYXR0cmlidXRlcyAqLwotMHg1NSwweDFELDB4MUMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzUxMTRdIE9CSl9pc3N1aW5nX2Rpc3RyaWJ1dGlvbl9wb2ludCAqLwotMHg1NSwweDFELDB4MUQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzUxMTddIE9CSl9jZXJ0aWZpY2F0ZV9pc3N1ZXIgKi8KLTB4MkEsMHg4MywweDFBLDB4OEMsMHg5QSwweDQ0LCAgICAgICAgICAgICAgIC8qIFs1MTIwXSBPQkpfa2lzYSAqLwotMHgyQSwweDgzLDB4MUEsMHg4QywweDlBLDB4NDQsMHgwMSwweDAzLCAgICAgLyogWzUxMjZdIE9CSl9zZWVkX2VjYiAqLwotMHgyQSwweDgzLDB4MUEsMHg4QywweDlBLDB4NDQsMHgwMSwweDA0LCAgICAgLyogWzUxMzRdIE9CSl9zZWVkX2NiYyAqLwotMHgyQSwweDgzLDB4MUEsMHg4QywweDlBLDB4NDQsMHgwMSwweDA2LCAgICAgLyogWzUxNDJdIE9CSl9zZWVkX29mYjEyOCAqLwotMHgyQSwweDgzLDB4MUEsMHg4QywweDlBLDB4NDQsMHgwMSwweDA1LCAgICAgLyogWzUxNTBdIE9CSl9zZWVkX2NmYjEyOCAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDgsMHgwMSwweDAxLCAgICAgLyogWzUxNThdIE9CSl9obWFjX21kNSAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDgsMHgwMSwweDAyLCAgICAgLyogWzUxNjZdIE9CSl9obWFjX3NoYTEgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNiwweDdELDB4MDcsMHg0MiwweDBELC8qIFs1MTc0XSBPQkpfaWRfUGFzc3dvcmRCYXNlZE1BQyAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY2LDB4N0QsMHgwNywweDQyLDB4MUUsLyogWzUxODNdIE9CSl9pZF9ESEJhc2VkTWFjICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA0LDB4MTAsICAgICAvKiBbNTE5Ml0gT0JKX2lkX2l0X3N1cHBMYW5nVGFncyAqLwotMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgzMCwweDA1LCAgICAgLyogWzUyMDBdIE9CSl9jYVJlcG9zaXRvcnkgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDEsMHgwOSwvKiBbNTIwOF0gT0JKX2lkX3NtaW1lX2N0X2NvbXByZXNzZWREYXRhICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAxLDB4MUIsLyogWzUyMTldIE9CSl9pZF9jdF9hc2NpaVRleHRXaXRoQ1JMRiAqLwotMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MDUsLyogWzUyMzBdIE9CSl9pZF9hZXMxMjhfd3JhcCAqLwotMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MTksLyogWzUyMzldIE9CSl9pZF9hZXMxOTJfd3JhcCAqLwotMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MkQsLyogWzUyNDhdIE9CSl9pZF9hZXMyNTZfd3JhcCAqLwotMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDQsMHgwMiwgICAgICAgICAgLyogWzUyNTddIE9CSl9lY2RzYV93aXRoX1JlY29tbWVuZGVkICovCi0weDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwNCwweDAzLCAgICAgICAgICAvKiBbNTI2NF0gT0JKX2VjZHNhX3dpdGhfU3BlY2lmaWVkICovCi0weDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwNCwweDAzLDB4MDEsICAgICAvKiBbNTI3MV0gT0JKX2VjZHNhX3dpdGhfU0hBMjI0ICovCi0weDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwNCwweDAzLDB4MDIsICAgICAvKiBbNTI3OV0gT0JKX2VjZHNhX3dpdGhfU0hBMjU2ICovCi0weDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwNCwweDAzLDB4MDMsICAgICAvKiBbNTI4N10gT0JKX2VjZHNhX3dpdGhfU0hBMzg0ICovCi0weDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwNCwweDAzLDB4MDQsICAgICAvKiBbNTI5NV0gT0JKX2VjZHNhX3dpdGhfU0hBNTEyICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAyLDB4MDYsICAgICAvKiBbNTMwM10gT0JKX2htYWNXaXRoTUQ1ICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAyLDB4MDgsICAgICAvKiBbNTMxMV0gT0JKX2htYWNXaXRoU0hBMjI0ICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAyLDB4MDksICAgICAvKiBbNTMxOV0gT0JKX2htYWNXaXRoU0hBMjU2ICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAyLDB4MEEsICAgICAvKiBbNTMyN10gT0JKX2htYWNXaXRoU0hBMzg0ICovCi0weDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAyLDB4MEIsICAgICAvKiBbNTMzNV0gT0JKX2htYWNXaXRoU0hBNTEyICovCi0weDYwLDB4ODYsMHg0OCwweDAxLDB4NjUsMHgwMywweDA0LDB4MDMsMHgwMSwvKiBbNTM0M10gT0JKX2RzYV93aXRoX1NIQTIyNCAqLwotMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAzLDB4MDIsLyogWzUzNTJdIE9CSl9kc2Ffd2l0aF9TSEEyNTYgKi8KLTB4MjgsMHhDRiwweDA2LDB4MDMsMHgwMCwweDM3LCAgICAgICAgICAgICAgIC8qIFs1MzYxXSBPQkpfd2hpcmxwb29sICovCi0weDJBLDB4ODUsMHgwMywweDAyLDB4MDIsICAgICAgICAgICAgICAgICAgICAvKiBbNTM2N10gT0JKX2NyeXB0b3BybyAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDA5LCAgICAgICAgICAgICAgICAgICAgLyogWzUzNzJdIE9CSl9jcnlwdG9jb20gKi8KLTB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDAzLCAgICAgICAgICAgICAgIC8qIFs1Mzc3XSBPQkpfaWRfR29zdFIzNDExXzk0X3dpdGhfR29zdFIzNDEwXzIwMDEgKi8KLTB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDA0LCAgICAgICAgICAgICAgIC8qIFs1MzgzXSBPQkpfaWRfR29zdFIzNDExXzk0X3dpdGhfR29zdFIzNDEwXzk0ICovCi0weDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgwOSwgICAgICAgICAgICAgICAvKiBbNTM4OV0gT0JKX2lkX0dvc3RSMzQxMV85NCAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MEEsICAgICAgICAgICAgICAgLyogWzUzOTVdIE9CSl9pZF9ITUFDR29zdFIzNDExXzk0ICovCi0weDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgxMywgICAgICAgICAgICAgICAvKiBbNTQwMV0gT0JKX2lkX0dvc3RSMzQxMF8yMDAxICovCi0weDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgxNCwgICAgICAgICAgICAgICAvKiBbNTQwN10gT0JKX2lkX0dvc3RSMzQxMF85NCAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MTUsICAgICAgICAgICAgICAgLyogWzU0MTNdIE9CSl9pZF9Hb3N0MjgxNDdfODkgKi8KLTB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDE2LCAgICAgICAgICAgICAgIC8qIFs1NDE5XSBPQkpfaWRfR29zdDI4MTQ3Xzg5X01BQyAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MTcsICAgICAgICAgICAgICAgLyogWzU0MjVdIE9CSl9pZF9Hb3N0UjM0MTFfOTRfcHJmICovCi0weDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHg2MiwgICAgICAgICAgICAgICAvKiBbNTQzMV0gT0JKX2lkX0dvc3RSMzQxMF8yMDAxREggKi8KLTB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDYzLCAgICAgICAgICAgICAgIC8qIFs1NDM3XSBPQkpfaWRfR29zdFIzNDEwXzk0REggKi8KLTB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDBFLDB4MDEsICAgICAgICAgIC8qIFs1NDQzXSBPQkpfaWRfR29zdDI4MTQ3Xzg5X0NyeXB0b1Byb19LZXlNZXNoaW5nICovCi0weDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgwRSwweDAwLCAgICAgICAgICAvKiBbNTQ1MF0gT0JKX2lkX0dvc3QyODE0N184OV9Ob25lX0tleU1lc2hpbmcgKi8KLTB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDFFLDB4MDAsICAgICAgICAgIC8qIFs1NDU3XSBPQkpfaWRfR29zdFIzNDExXzk0X1Rlc3RQYXJhbVNldCAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MUUsMHgwMSwgICAgICAgICAgLyogWzU0NjRdIE9CSl9pZF9Hb3N0UjM0MTFfOTRfQ3J5cHRvUHJvUGFyYW1TZXQgKi8KLTB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDFGLDB4MDAsICAgICAgICAgIC8qIFs1NDcxXSBPQkpfaWRfR29zdDI4MTQ3Xzg5X1Rlc3RQYXJhbVNldCAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MUYsMHgwMSwgICAgICAgICAgLyogWzU0NzhdIE9CSl9pZF9Hb3N0MjgxNDdfODlfQ3J5cHRvUHJvX0FfUGFyYW1TZXQgKi8KLTB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDFGLDB4MDIsICAgICAgICAgIC8qIFs1NDg1XSBPQkpfaWRfR29zdDI4MTQ3Xzg5X0NyeXB0b1Byb19CX1BhcmFtU2V0ICovCi0weDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgxRiwweDAzLCAgICAgICAgICAvKiBbNTQ5Ml0gT0JKX2lkX0dvc3QyODE0N184OV9DcnlwdG9Qcm9fQ19QYXJhbVNldCAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MUYsMHgwNCwgICAgICAgICAgLyogWzU0OTldIE9CSl9pZF9Hb3N0MjgxNDdfODlfQ3J5cHRvUHJvX0RfUGFyYW1TZXQgKi8KLTB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDFGLDB4MDUsICAgICAgICAgIC8qIFs1NTA2XSBPQkpfaWRfR29zdDI4MTQ3Xzg5X0NyeXB0b1Byb19Pc2Nhcl8xXzFfUGFyYW1TZXQgKi8KLTB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDFGLDB4MDYsICAgICAgICAgIC8qIFs1NTEzXSBPQkpfaWRfR29zdDI4MTQ3Xzg5X0NyeXB0b1Byb19Pc2Nhcl8xXzBfUGFyYW1TZXQgKi8KLTB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDFGLDB4MDcsICAgICAgICAgIC8qIFs1NTIwXSBPQkpfaWRfR29zdDI4MTQ3Xzg5X0NyeXB0b1Byb19SSUNfMV9QYXJhbVNldCAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MjAsMHgwMCwgICAgICAgICAgLyogWzU1MjddIE9CSl9pZF9Hb3N0UjM0MTBfOTRfVGVzdFBhcmFtU2V0ICovCi0weDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgyMCwweDAyLCAgICAgICAgICAvKiBbNTUzNF0gT0JKX2lkX0dvc3RSMzQxMF85NF9DcnlwdG9Qcm9fQV9QYXJhbVNldCAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MjAsMHgwMywgICAgICAgICAgLyogWzU1NDFdIE9CSl9pZF9Hb3N0UjM0MTBfOTRfQ3J5cHRvUHJvX0JfUGFyYW1TZXQgKi8KLTB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDIwLDB4MDQsICAgICAgICAgIC8qIFs1NTQ4XSBPQkpfaWRfR29zdFIzNDEwXzk0X0NyeXB0b1Byb19DX1BhcmFtU2V0ICovCi0weDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgyMCwweDA1LCAgICAgICAgICAvKiBbNTU1NV0gT0JKX2lkX0dvc3RSMzQxMF85NF9DcnlwdG9Qcm9fRF9QYXJhbVNldCAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MjEsMHgwMSwgICAgICAgICAgLyogWzU1NjJdIE9CSl9pZF9Hb3N0UjM0MTBfOTRfQ3J5cHRvUHJvX1hjaEFfUGFyYW1TZXQgKi8KLTB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDIxLDB4MDIsICAgICAgICAgIC8qIFs1NTY5XSBPQkpfaWRfR29zdFIzNDEwXzk0X0NyeXB0b1Byb19YY2hCX1BhcmFtU2V0ICovCi0weDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgyMSwweDAzLCAgICAgICAgICAvKiBbNTU3Nl0gT0JKX2lkX0dvc3RSMzQxMF85NF9DcnlwdG9Qcm9fWGNoQ19QYXJhbVNldCAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MjMsMHgwMCwgICAgICAgICAgLyogWzU1ODNdIE9CSl9pZF9Hb3N0UjM0MTBfMjAwMV9UZXN0UGFyYW1TZXQgKi8KLTB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDIzLDB4MDEsICAgICAgICAgIC8qIFs1NTkwXSBPQkpfaWRfR29zdFIzNDEwXzIwMDFfQ3J5cHRvUHJvX0FfUGFyYW1TZXQgKi8KLTB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDIzLDB4MDIsICAgICAgICAgIC8qIFs1NTk3XSBPQkpfaWRfR29zdFIzNDEwXzIwMDFfQ3J5cHRvUHJvX0JfUGFyYW1TZXQgKi8KLTB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDIzLDB4MDMsICAgICAgICAgIC8qIFs1NjA0XSBPQkpfaWRfR29zdFIzNDEwXzIwMDFfQ3J5cHRvUHJvX0NfUGFyYW1TZXQgKi8KLTB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDI0LDB4MDAsICAgICAgICAgIC8qIFs1NjExXSBPQkpfaWRfR29zdFIzNDEwXzIwMDFfQ3J5cHRvUHJvX1hjaEFfUGFyYW1TZXQgKi8KLTB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDI0LDB4MDEsICAgICAgICAgIC8qIFs1NjE4XSBPQkpfaWRfR29zdFIzNDEwXzIwMDFfQ3J5cHRvUHJvX1hjaEJfUGFyYW1TZXQgKi8KLTB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDE0LDB4MDEsICAgICAgICAgIC8qIFs1NjI1XSBPQkpfaWRfR29zdFIzNDEwXzk0X2EgKi8KLTB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDE0LDB4MDIsICAgICAgICAgIC8qIFs1NjMyXSBPQkpfaWRfR29zdFIzNDEwXzk0X2FCaXMgKi8KLTB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDE0LDB4MDMsICAgICAgICAgIC8qIFs1NjM5XSBPQkpfaWRfR29zdFIzNDEwXzk0X2IgKi8KLTB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDE0LDB4MDQsICAgICAgICAgIC8qIFs1NjQ2XSBPQkpfaWRfR29zdFIzNDEwXzk0X2JCaXMgKi8KLTB4MkEsMHg4NSwweDAzLDB4MDIsMHgwOSwweDAxLDB4MDYsMHgwMSwgICAgIC8qIFs1NjUzXSBPQkpfaWRfR29zdDI4MTQ3Xzg5X2NjICovCi0weDJBLDB4ODUsMHgwMywweDAyLDB4MDksMHgwMSwweDA1LDB4MDMsICAgICAvKiBbNTY2MV0gT0JKX2lkX0dvc3RSMzQxMF85NF9jYyAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDA5LDB4MDEsMHgwNSwweDA0LCAgICAgLyogWzU2NjldIE9CSl9pZF9Hb3N0UjM0MTBfMjAwMV9jYyAqLwotMHgyQSwweDg1LDB4MDMsMHgwMiwweDA5LDB4MDEsMHgwMywweDAzLCAgICAgLyogWzU2NzddIE9CSl9pZF9Hb3N0UjM0MTFfOTRfd2l0aF9Hb3N0UjM0MTBfOTRfY2MgKi8KLTB4MkEsMHg4NSwweDAzLDB4MDIsMHgwOSwweDAxLDB4MDMsMHgwNCwgICAgIC8qIFs1Njg1XSBPQkpfaWRfR29zdFIzNDExXzk0X3dpdGhfR29zdFIzNDEwXzIwMDFfY2MgKi8KLTB4MkEsMHg4NSwweDAzLDB4MDIsMHgwOSwweDAxLDB4MDgsMHgwMSwgICAgIC8qIFs1NjkzXSBPQkpfaWRfR29zdFIzNDEwXzIwMDFfUGFyYW1TZXRfY2MgKi8KLTB4MkIsMHgwNiwweDAxLDB4MDQsMHgwMSwweDgyLDB4MzcsMHgxMSwweDAyLC8qIFs1NzAxXSBPQkpfTG9jYWxLZXlTZXQgKi8KLTB4NTUsMHgxRCwweDJFLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NzEwXSBPQkpfZnJlc2hlc3RfY3JsICovCi0weDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA4LDB4MDMsICAgICAvKiBbNTcxM10gT0JKX2lkX29uX3Blcm1hbmVudElkZW50aWZpZXIgKi8KLTB4NTUsMHgwNCwweDBFLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NzIxXSBPQkpfc2VhcmNoR3VpZGUgKi8KLTB4NTUsMHgwNCwweDBGLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NzI0XSBPQkpfYnVzaW5lc3NDYXRlZ29yeSAqLwotMHg1NSwweDA0LDB4MTAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU3MjddIE9CSl9wb3N0YWxBZGRyZXNzICovCi0weDU1LDB4MDQsMHgxMiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTczMF0gT0JKX3Bvc3RPZmZpY2VCb3ggKi8KLTB4NTUsMHgwNCwweDEzLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NzMzXSBPQkpfcGh5c2ljYWxEZWxpdmVyeU9mZmljZU5hbWUgKi8KLTB4NTUsMHgwNCwweDE0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NzM2XSBPQkpfdGVsZXBob25lTnVtYmVyICovCi0weDU1LDB4MDQsMHgxNSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTczOV0gT0JKX3RlbGV4TnVtYmVyICovCi0weDU1LDB4MDQsMHgxNiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTc0Ml0gT0JKX3RlbGV0ZXhUZXJtaW5hbElkZW50aWZpZXIgKi8KLTB4NTUsMHgwNCwweDE3LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NzQ1XSBPQkpfZmFjc2ltaWxlVGVsZXBob25lTnVtYmVyICovCi0weDU1LDB4MDQsMHgxOCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTc0OF0gT0JKX3gxMjFBZGRyZXNzICovCi0weDU1LDB4MDQsMHgxOSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTc1MV0gT0JKX2ludGVybmF0aW9uYWxpU0ROTnVtYmVyICovCi0weDU1LDB4MDQsMHgxQSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTc1NF0gT0JKX3JlZ2lzdGVyZWRBZGRyZXNzICovCi0weDU1LDB4MDQsMHgxQiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTc1N10gT0JKX2Rlc3RpbmF0aW9uSW5kaWNhdG9yICovCi0weDU1LDB4MDQsMHgxQywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTc2MF0gT0JKX3ByZWZlcnJlZERlbGl2ZXJ5TWV0aG9kICovCi0weDU1LDB4MDQsMHgxRCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTc2M10gT0JKX3ByZXNlbnRhdGlvbkFkZHJlc3MgKi8KLTB4NTUsMHgwNCwweDFFLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NzY2XSBPQkpfc3VwcG9ydGVkQXBwbGljYXRpb25Db250ZXh0ICovCi0weDU1LDB4MDQsMHgxRiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTc2OV0gT0JKX21lbWJlciAqLwotMHg1NSwweDA0LDB4MjAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU3NzJdIE9CSl9vd25lciAqLwotMHg1NSwweDA0LDB4MjEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU3NzVdIE9CSl9yb2xlT2NjdXBhbnQgKi8KLTB4NTUsMHgwNCwweDIyLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1Nzc4XSBPQkpfc2VlQWxzbyAqLwotMHg1NSwweDA0LDB4MjMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU3ODFdIE9CSl91c2VyUGFzc3dvcmQgKi8KLTB4NTUsMHgwNCwweDI0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1Nzg0XSBPQkpfdXNlckNlcnRpZmljYXRlICovCi0weDU1LDB4MDQsMHgyNSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTc4N10gT0JKX2NBQ2VydGlmaWNhdGUgKi8KLTB4NTUsMHgwNCwweDI2LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NzkwXSBPQkpfYXV0aG9yaXR5UmV2b2NhdGlvbkxpc3QgKi8KLTB4NTUsMHgwNCwweDI3LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NzkzXSBPQkpfY2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdCAqLwotMHg1NSwweDA0LDB4MjgsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU3OTZdIE9CSl9jcm9zc0NlcnRpZmljYXRlUGFpciAqLwotMHg1NSwweDA0LDB4MkYsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU3OTldIE9CSl9lbmhhbmNlZFNlYXJjaEd1aWRlICovCi0weDU1LDB4MDQsMHgzMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTgwMl0gT0JKX3Byb3RvY29sSW5mb3JtYXRpb24gKi8KLTB4NTUsMHgwNCwweDMxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1ODA1XSBPQkpfZGlzdGluZ3Vpc2hlZE5hbWUgKi8KLTB4NTUsMHgwNCwweDMyLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1ODA4XSBPQkpfdW5pcXVlTWVtYmVyICovCi0weDU1LDB4MDQsMHgzMywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTgxMV0gT0JKX2hvdXNlSWRlbnRpZmllciAqLwotMHg1NSwweDA0LDB4MzQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU4MTRdIE9CSl9zdXBwb3J0ZWRBbGdvcml0aG1zICovCi0weDU1LDB4MDQsMHgzNSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTgxN10gT0JKX2RlbHRhUmV2b2NhdGlvbkxpc3QgKi8KLTB4NTUsMHgwNCwweDM2LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1ODIwXSBPQkpfZG1kTmFtZSAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMywweDA5LC8qIFs1ODIzXSBPQkpfaWRfYWxnX1BXUklfS0VLICovCi0weDYwLDB4ODYsMHg0OCwweDAxLDB4NjUsMHgwMywweDA0LDB4MDEsMHgwNiwvKiBbNTgzNF0gT0JKX2Flc18xMjhfZ2NtICovCi0weDYwLDB4ODYsMHg0OCwweDAxLDB4NjUsMHgwMywweDA0LDB4MDEsMHgwNywvKiBbNTg0M10gT0JKX2Flc18xMjhfY2NtICovCi0weDYwLDB4ODYsMHg0OCwweDAxLDB4NjUsMHgwMywweDA0LDB4MDEsMHgwOCwvKiBbNTg1Ml0gT0JKX2lkX2FlczEyOF93cmFwX3BhZCAqLwotMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MUEsLyogWzU4NjFdIE9CSl9hZXNfMTkyX2djbSAqLwotMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MUIsLyogWzU4NzBdIE9CSl9hZXNfMTkyX2NjbSAqLwotMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MUMsLyogWzU4NzldIE9CSl9pZF9hZXMxOTJfd3JhcF9wYWQgKi8KLTB4NjAsMHg4NiwweDQ4LDB4MDEsMHg2NSwweDAzLDB4MDQsMHgwMSwweDJFLC8qIFs1ODg4XSBPQkpfYWVzXzI1Nl9nY20gKi8KLTB4NjAsMHg4NiwweDQ4LDB4MDEsMHg2NSwweDAzLDB4MDQsMHgwMSwweDJGLC8qIFs1ODk3XSBPQkpfYWVzXzI1Nl9jY20gKi8KLTB4NjAsMHg4NiwweDQ4LDB4MDEsMHg2NSwweDAzLDB4MDQsMHgwMSwweDMwLC8qIFs1OTA2XSBPQkpfaWRfYWVzMjU2X3dyYXBfcGFkICovCi0weDJBLDB4ODMsMHgwOCwweDhDLDB4OUEsMHg0QiwweDNELDB4MDEsMHgwMSwweDAzLDB4MDIsLyogWzU5MTVdIE9CSl9pZF9jYW1lbGxpYTEyOF93cmFwICovCi0weDJBLDB4ODMsMHgwOCwweDhDLDB4OUEsMHg0QiwweDNELDB4MDEsMHgwMSwweDAzLDB4MDMsLyogWzU5MjZdIE9CSl9pZF9jYW1lbGxpYTE5Ml93cmFwICovCi0weDJBLDB4ODMsMHgwOCwweDhDLDB4OUEsMHg0QiwweDNELDB4MDEsMHgwMSwweDAzLDB4MDQsLyogWzU5MzddIE9CSl9pZF9jYW1lbGxpYTI1Nl93cmFwICovCi0weDU1LDB4MUQsMHgyNSwweDAwLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTk0OF0gT0JKX2FueUV4dGVuZGVkS2V5VXNhZ2UgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwMSwweDA4LC8qIFs1OTUyXSBPQkpfbWdmMSAqLwotMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDAxLDB4MEEsLyogWzU5NjFdIE9CSl9yc2Fzc2FQc3MgKi8KLTB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwMSwweDA3LC8qIFs1OTcwXSBPQkpfcnNhZXNPYWVwICovCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBsdmFsdWVzWzU5NzRdPXsKKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELCAgICAgICAgICAgICAgIC8qIFsgIDBdIE9CSl9yc2Fkc2kgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsICAgICAgICAgIC8qIFsgIDZdIE9CSl9wa2NzICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAyLDB4MDIsICAgICAvKiBbIDEzXSBPQkpfbWQyICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAyLDB4MDUsICAgICAvKiBbIDIxXSBPQkpfbWQ1ICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAzLDB4MDQsICAgICAvKiBbIDI5XSBPQkpfcmM0ICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDEsMHgwMSwvKiBbIDM3XSBPQkpfcnNhRW5jcnlwdGlvbiAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDAxLDB4MDIsLyogWyA0Nl0gT0JKX21kMldpdGhSU0FFbmNyeXB0aW9uICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDEsMHgwNCwvKiBbIDU1XSBPQkpfbWQ1V2l0aFJTQUVuY3J5cHRpb24gKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwNSwweDAxLC8qIFsgNjRdIE9CSl9wYmVXaXRoTUQyQW5kREVTX0NCQyAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA1LDB4MDMsLyogWyA3M10gT0JKX3BiZVdpdGhNRDVBbmRERVNfQ0JDICovCisweDU1LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbIDgyXSBPQkpfWDUwMCAqLworMHg1NSwweDA0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWyA4M10gT0JKX1g1MDkgKi8KKzB4NTUsMHgwNCwweDAzLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsgODVdIE9CSl9jb21tb25OYW1lICovCisweDU1LDB4MDQsMHgwNiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbIDg4XSBPQkpfY291bnRyeU5hbWUgKi8KKzB4NTUsMHgwNCwweDA3LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsgOTFdIE9CSl9sb2NhbGl0eU5hbWUgKi8KKzB4NTUsMHgwNCwweDA4LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsgOTRdIE9CSl9zdGF0ZU9yUHJvdmluY2VOYW1lICovCisweDU1LDB4MDQsMHgwQSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbIDk3XSBPQkpfb3JnYW5pemF0aW9uTmFtZSAqLworMHg1NSwweDA0LDB4MEIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzEwMF0gT0JKX29yZ2FuaXphdGlvbmFsVW5pdE5hbWUgKi8KKzB4NTUsMHgwOCwweDAxLDB4MDEsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsxMDNdIE9CSl9yc2EgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwNywgICAgIC8qIFsxMDddIE9CSl9wa2NzNyAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA3LDB4MDEsLyogWzExNV0gT0JKX3BrY3M3X2RhdGEgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwNywweDAyLC8qIFsxMjRdIE9CSl9wa2NzN19zaWduZWQgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwNywweDAzLC8qIFsxMzNdIE9CSl9wa2NzN19lbnZlbG9wZWQgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwNywweDA0LC8qIFsxNDJdIE9CSl9wa2NzN19zaWduZWRBbmRFbnZlbG9wZWQgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwNywweDA1LC8qIFsxNTFdIE9CSl9wa2NzN19kaWdlc3QgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwNywweDA2LC8qIFsxNjBdIE9CSl9wa2NzN19lbmNyeXB0ZWQgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwMywgICAgIC8qIFsxNjldIE9CSl9wa2NzMyAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDAzLDB4MDEsLyogWzE3N10gT0JKX2RoS2V5QWdyZWVtZW50ICovCisweDJCLDB4MEUsMHgwMywweDAyLDB4MDYsICAgICAgICAgICAgICAgICAgICAvKiBbMTg2XSBPQkpfZGVzX2VjYiAqLworMHgyQiwweDBFLDB4MDMsMHgwMiwweDA5LCAgICAgICAgICAgICAgICAgICAgLyogWzE5MV0gT0JKX2Rlc19jZmI2NCAqLworMHgyQiwweDBFLDB4MDMsMHgwMiwweDA3LCAgICAgICAgICAgICAgICAgICAgLyogWzE5Nl0gT0JKX2Rlc19jYmMgKi8KKzB4MkIsMHgwRSwweDAzLDB4MDIsMHgxMSwgICAgICAgICAgICAgICAgICAgIC8qIFsyMDFdIE9CSl9kZXNfZWRlX2VjYiAqLworMHgyQiwweDA2LDB4MDEsMHgwNCwweDAxLDB4ODEsMHgzQywweDA3LDB4MDEsMHgwMSwweDAyLC8qIFsyMDZdIE9CSl9pZGVhX2NiYyAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMywweDAyLCAgICAgLyogWzIxN10gT0JKX3JjMl9jYmMgKi8KKzB4MkIsMHgwRSwweDAzLDB4MDIsMHgxMiwgICAgICAgICAgICAgICAgICAgIC8qIFsyMjVdIE9CSl9zaGEgKi8KKzB4MkIsMHgwRSwweDAzLDB4MDIsMHgwRiwgICAgICAgICAgICAgICAgICAgIC8qIFsyMzBdIE9CSl9zaGFXaXRoUlNBRW5jcnlwdGlvbiAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMywweDA3LCAgICAgLyogWzIzNV0gT0JKX2Rlc19lZGUzX2NiYyAqLworMHgyQiwweDBFLDB4MDMsMHgwMiwweDA4LCAgICAgICAgICAgICAgICAgICAgLyogWzI0M10gT0JKX2Rlc19vZmI2NCAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LCAgICAgLyogWzI0OF0gT0JKX3BrY3M5ICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgwMSwvKiBbMjU2XSBPQkpfcGtjczlfZW1haWxBZGRyZXNzICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgwMiwvKiBbMjY1XSBPQkpfcGtjczlfdW5zdHJ1Y3R1cmVkTmFtZSAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MDMsLyogWzI3NF0gT0JKX3BrY3M5X2NvbnRlbnRUeXBlICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgwNCwvKiBbMjgzXSBPQkpfcGtjczlfbWVzc2FnZURpZ2VzdCAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MDUsLyogWzI5Ml0gT0JKX3BrY3M5X3NpZ25pbmdUaW1lICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgwNiwvKiBbMzAxXSBPQkpfcGtjczlfY291bnRlcnNpZ25hdHVyZSAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MDcsLyogWzMxMF0gT0JKX3BrY3M5X2NoYWxsZW5nZVBhc3N3b3JkICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgwOCwvKiBbMzE5XSBPQkpfcGtjczlfdW5zdHJ1Y3R1cmVkQWRkcmVzcyAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MDksLyogWzMyOF0gT0JKX3BrY3M5X2V4dENlcnRBdHRyaWJ1dGVzICovCisweDYwLDB4ODYsMHg0OCwweDAxLDB4ODYsMHhGOCwweDQyLCAgICAgICAgICAvKiBbMzM3XSBPQkpfbmV0c2NhcGUgKi8KKzB4NjAsMHg4NiwweDQ4LDB4MDEsMHg4NiwweEY4LDB4NDIsMHgwMSwgICAgIC8qIFszNDRdIE9CSl9uZXRzY2FwZV9jZXJ0X2V4dGVuc2lvbiAqLworMHg2MCwweDg2LDB4NDgsMHgwMSwweDg2LDB4RjgsMHg0MiwweDAyLCAgICAgLyogWzM1Ml0gT0JKX25ldHNjYXBlX2RhdGFfdHlwZSAqLworMHgyQiwweDBFLDB4MDMsMHgwMiwweDFBLCAgICAgICAgICAgICAgICAgICAgLyogWzM2MF0gT0JKX3NoYTEgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwMSwweDA1LC8qIFszNjVdIE9CSl9zaGExV2l0aFJTQUVuY3J5cHRpb24gKi8KKzB4MkIsMHgwRSwweDAzLDB4MDIsMHgwRCwgICAgICAgICAgICAgICAgICAgIC8qIFszNzRdIE9CSl9kc2FXaXRoU0hBICovCisweDJCLDB4MEUsMHgwMywweDAyLDB4MEMsICAgICAgICAgICAgICAgICAgICAvKiBbMzc5XSBPQkpfZHNhXzIgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwNSwweDBCLC8qIFszODRdIE9CSl9wYmVXaXRoU0hBMUFuZFJDMl9DQkMgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwNSwweDBDLC8qIFszOTNdIE9CSl9pZF9wYmtkZjIgKi8KKzB4MkIsMHgwRSwweDAzLDB4MDIsMHgxQiwgICAgICAgICAgICAgICAgICAgIC8qIFs0MDJdIE9CSl9kc2FXaXRoU0hBMV8yICovCisweDYwLDB4ODYsMHg0OCwweDAxLDB4ODYsMHhGOCwweDQyLDB4MDEsMHgwMSwvKiBbNDA3XSBPQkpfbmV0c2NhcGVfY2VydF90eXBlICovCisweDYwLDB4ODYsMHg0OCwweDAxLDB4ODYsMHhGOCwweDQyLDB4MDEsMHgwMiwvKiBbNDE2XSBPQkpfbmV0c2NhcGVfYmFzZV91cmwgKi8KKzB4NjAsMHg4NiwweDQ4LDB4MDEsMHg4NiwweEY4LDB4NDIsMHgwMSwweDAzLC8qIFs0MjVdIE9CSl9uZXRzY2FwZV9yZXZvY2F0aW9uX3VybCAqLworMHg2MCwweDg2LDB4NDgsMHgwMSwweDg2LDB4RjgsMHg0MiwweDAxLDB4MDQsLyogWzQzNF0gT0JKX25ldHNjYXBlX2NhX3Jldm9jYXRpb25fdXJsICovCisweDYwLDB4ODYsMHg0OCwweDAxLDB4ODYsMHhGOCwweDQyLDB4MDEsMHgwNywvKiBbNDQzXSBPQkpfbmV0c2NhcGVfcmVuZXdhbF91cmwgKi8KKzB4NjAsMHg4NiwweDQ4LDB4MDEsMHg4NiwweEY4LDB4NDIsMHgwMSwweDA4LC8qIFs0NTJdIE9CSl9uZXRzY2FwZV9jYV9wb2xpY3lfdXJsICovCisweDYwLDB4ODYsMHg0OCwweDAxLDB4ODYsMHhGOCwweDQyLDB4MDEsMHgwQywvKiBbNDYxXSBPQkpfbmV0c2NhcGVfc3NsX3NlcnZlcl9uYW1lICovCisweDYwLDB4ODYsMHg0OCwweDAxLDB4ODYsMHhGOCwweDQyLDB4MDEsMHgwRCwvKiBbNDcwXSBPQkpfbmV0c2NhcGVfY29tbWVudCAqLworMHg2MCwweDg2LDB4NDgsMHgwMSwweDg2LDB4RjgsMHg0MiwweDAyLDB4MDUsLyogWzQ3OV0gT0JKX25ldHNjYXBlX2NlcnRfc2VxdWVuY2UgKi8KKzB4NTUsMHgxRCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0ODhdIE9CSl9pZF9jZSAqLworMHg1NSwweDFELDB4MEUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQ5MF0gT0JKX3N1YmplY3Rfa2V5X2lkZW50aWZpZXIgKi8KKzB4NTUsMHgxRCwweDBGLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0OTNdIE9CSl9rZXlfdXNhZ2UgKi8KKzB4NTUsMHgxRCwweDEwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0OTZdIE9CSl9wcml2YXRlX2tleV91c2FnZV9wZXJpb2QgKi8KKzB4NTUsMHgxRCwweDExLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0OTldIE9CSl9zdWJqZWN0X2FsdF9uYW1lICovCisweDU1LDB4MUQsMHgxMiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTAyXSBPQkpfaXNzdWVyX2FsdF9uYW1lICovCisweDU1LDB4MUQsMHgxMywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTA1XSBPQkpfYmFzaWNfY29uc3RyYWludHMgKi8KKzB4NTUsMHgxRCwweDE0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1MDhdIE9CSl9jcmxfbnVtYmVyICovCisweDU1LDB4MUQsMHgyMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTExXSBPQkpfY2VydGlmaWNhdGVfcG9saWNpZXMgKi8KKzB4NTUsMHgxRCwweDIzLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1MTRdIE9CSl9hdXRob3JpdHlfa2V5X2lkZW50aWZpZXIgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDQsMHgwMSwweDk3LDB4NTUsMHgwMSwweDAyLC8qIFs1MTddIE9CSl9iZl9jYmMgKi8KKzB4NTUsMHgwOCwweDAzLDB4NjUsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1MjZdIE9CSl9tZGMyICovCisweDU1LDB4MDgsMHgwMywweDY0LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTMwXSBPQkpfbWRjMldpdGhSU0EgKi8KKzB4NTUsMHgwNCwweDJBLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1MzRdIE9CSl9naXZlbk5hbWUgKi8KKzB4NTUsMHgwNCwweDA0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1MzddIE9CSl9zdXJuYW1lICovCisweDU1LDB4MDQsMHgyQiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTQwXSBPQkpfaW5pdGlhbHMgKi8KKzB4NTUsMHgxRCwweDFGLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NDNdIE9CSl9jcmxfZGlzdHJpYnV0aW9uX3BvaW50cyAqLworMHgyQiwweDBFLDB4MDMsMHgwMiwweDAzLCAgICAgICAgICAgICAgICAgICAgLyogWzU0Nl0gT0JKX21kNVdpdGhSU0EgKi8KKzB4NTUsMHgwNCwweDA1LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NTFdIE9CSl9zZXJpYWxOdW1iZXIgKi8KKzB4NTUsMHgwNCwweDBDLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NTRdIE9CSl90aXRsZSAqLworMHg1NSwweDA0LDB4MEQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU1N10gT0JKX2Rlc2NyaXB0aW9uICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjYsMHg3RCwweDA3LDB4NDIsMHgwQSwvKiBbNTYwXSBPQkpfY2FzdDVfY2JjICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjYsMHg3RCwweDA3LDB4NDIsMHgwQywvKiBbNTY5XSBPQkpfcGJlV2l0aE1ENUFuZENhc3Q1X0NCQyAqLworMHgyQSwweDg2LDB4NDgsMHhDRSwweDM4LDB4MDQsMHgwMywgICAgICAgICAgLyogWzU3OF0gT0JKX2RzYVdpdGhTSEExICovCisweDJCLDB4MEUsMHgwMywweDAyLDB4MUQsICAgICAgICAgICAgICAgICAgICAvKiBbNTg1XSBPQkpfc2hhMVdpdGhSU0EgKi8KKzB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzOCwweDA0LDB4MDEsICAgICAgICAgIC8qIFs1OTBdIE9CSl9kc2EgKi8KKzB4MkIsMHgyNCwweDAzLDB4MDIsMHgwMSwgICAgICAgICAgICAgICAgICAgIC8qIFs1OTddIE9CSl9yaXBlbWQxNjAgKi8KKzB4MkIsMHgyNCwweDAzLDB4MDMsMHgwMSwweDAyLCAgICAgICAgICAgICAgIC8qIFs2MDJdIE9CSl9yaXBlbWQxNjBXaXRoUlNBICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAzLDB4MDgsICAgICAvKiBbNjA4XSBPQkpfcmM1X2NiYyAqLworMHgyOSwweDAxLDB4MDEsMHg4NSwweDFBLDB4MDEsICAgICAgICAgICAgICAgLyogWzYxNl0gT0JKX3JsZV9jb21wcmVzc2lvbiAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMywweDA4LC8qIFs2MjJdIE9CSl96bGliX2NvbXByZXNzaW9uICovCisweDU1LDB4MUQsMHgyNSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNjMzXSBPQkpfZXh0X2tleV91c2FnZSAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsICAgICAgICAgICAgICAgLyogWzYzNl0gT0JKX2lkX3BraXggKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDMsICAgICAgICAgIC8qIFs2NDJdIE9CSl9pZF9rcCAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMywweDAxLCAgICAgLyogWzY0OV0gT0JKX3NlcnZlcl9hdXRoICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAzLDB4MDIsICAgICAvKiBbNjU3XSBPQkpfY2xpZW50X2F1dGggKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDMsMHgwMywgICAgIC8qIFs2NjVdIE9CSl9jb2RlX3NpZ24gKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDMsMHgwNCwgICAgIC8qIFs2NzNdIE9CSl9lbWFpbF9wcm90ZWN0ICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAzLDB4MDgsICAgICAvKiBbNjgxXSBPQkpfdGltZV9zdGFtcCAqLworMHgyQiwweDA2LDB4MDEsMHgwNCwweDAxLDB4ODIsMHgzNywweDAyLDB4MDEsMHgxNSwvKiBbNjg5XSBPQkpfbXNfY29kZV9pbmQgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDQsMHgwMSwweDgyLDB4MzcsMHgwMiwweDAxLDB4MTYsLyogWzY5OV0gT0JKX21zX2NvZGVfY29tICovCisweDJCLDB4MDYsMHgwMSwweDA0LDB4MDEsMHg4MiwweDM3LDB4MEEsMHgwMywweDAxLC8qIFs3MDldIE9CSl9tc19jdGxfc2lnbiAqLworMHgyQiwweDA2LDB4MDEsMHgwNCwweDAxLDB4ODIsMHgzNywweDBBLDB4MDMsMHgwMywvKiBbNzE5XSBPQkpfbXNfc2djICovCisweDJCLDB4MDYsMHgwMSwweDA0LDB4MDEsMHg4MiwweDM3LDB4MEEsMHgwMywweDA0LC8qIFs3MjldIE9CSl9tc19lZnMgKi8KKzB4NjAsMHg4NiwweDQ4LDB4MDEsMHg4NiwweEY4LDB4NDIsMHgwNCwweDAxLC8qIFs3MzldIE9CSl9uc19zZ2MgKi8KKzB4NTUsMHgxRCwweDFCLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs3NDhdIE9CSl9kZWx0YV9jcmwgKi8KKzB4NTUsMHgxRCwweDE1LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs3NTFdIE9CSl9jcmxfcmVhc29uICovCisweDU1LDB4MUQsMHgxOCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNzU0XSBPQkpfaW52YWxpZGl0eV9kYXRlICovCisweDJCLDB4NjUsMHgwMSwweDA0LDB4MDEsICAgICAgICAgICAgICAgICAgICAvKiBbNzU3XSBPQkpfc3huZXQgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwQywweDAxLDB4MDEsLyogWzc2Ml0gT0JKX3BiZV9XaXRoU0hBMUFuZDEyOEJpdFJDNCAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDBDLDB4MDEsMHgwMiwvKiBbNzcyXSBPQkpfcGJlX1dpdGhTSEExQW5kNDBCaXRSQzQgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwQywweDAxLDB4MDMsLyogWzc4Ml0gT0JKX3BiZV9XaXRoU0hBMUFuZDNfS2V5X1RyaXBsZURFU19DQkMgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwQywweDAxLDB4MDQsLyogWzc5Ml0gT0JKX3BiZV9XaXRoU0hBMUFuZDJfS2V5X1RyaXBsZURFU19DQkMgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwQywweDAxLDB4MDUsLyogWzgwMl0gT0JKX3BiZV9XaXRoU0hBMUFuZDEyOEJpdFJDMl9DQkMgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwQywweDAxLDB4MDYsLyogWzgxMl0gT0JKX3BiZV9XaXRoU0hBMUFuZDQwQml0UkMyX0NCQyAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDBDLDB4MEEsMHgwMSwweDAxLC8qIFs4MjJdIE9CSl9rZXlCYWcgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwQywweDBBLDB4MDEsMHgwMiwvKiBbODMzXSBPQkpfcGtjczhTaHJvdWRlZEtleUJhZyAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDBDLDB4MEEsMHgwMSwweDAzLC8qIFs4NDRdIE9CSl9jZXJ0QmFnICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MEMsMHgwQSwweDAxLDB4MDQsLyogWzg1NV0gT0JKX2NybEJhZyAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDBDLDB4MEEsMHgwMSwweDA1LC8qIFs4NjZdIE9CSl9zZWNyZXRCYWcgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwQywweDBBLDB4MDEsMHgwNiwvKiBbODc3XSBPQkpfc2FmZUNvbnRlbnRzQmFnICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxNCwvKiBbODg4XSBPQkpfZnJpZW5kbHlOYW1lICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxNSwvKiBbODk3XSBPQkpfbG9jYWxLZXlJRCAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTYsMHgwMSwvKiBbOTA2XSBPQkpfeDUwOUNlcnRpZmljYXRlICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxNiwweDAyLC8qIFs5MTZdIE9CSl9zZHNpQ2VydGlmaWNhdGUgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDE3LDB4MDEsLyogWzkyNl0gT0JKX3g1MDlDcmwgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwNSwweDBELC8qIFs5MzZdIE9CSl9wYmVzMiAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA1LDB4MEUsLyogWzk0NV0gT0JKX3BibWFjMSAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMiwweDA3LCAgICAgLyogWzk1NF0gT0JKX2htYWNXaXRoU0hBMSAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMiwweDAxLCAgICAgLyogWzk2Ml0gT0JKX2lkX3F0X2NwcyAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMiwweDAyLCAgICAgLyogWzk3MF0gT0JKX2lkX3F0X3Vub3RpY2UgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDBGLC8qIFs5NzhdIE9CSl9TTUlNRUNhcGFiaWxpdGllcyAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA1LDB4MDQsLyogWzk4N10gT0JKX3BiZVdpdGhNRDJBbmRSQzJfQ0JDICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDUsMHgwNiwvKiBbOTk2XSBPQkpfcGJlV2l0aE1ENUFuZFJDMl9DQkMgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwNSwweDBBLC8qIFsxMDA1XSBPQkpfcGJlV2l0aFNIQTFBbmRERVNfQ0JDICovCisweDJCLDB4MDYsMHgwMSwweDA0LDB4MDEsMHg4MiwweDM3LDB4MDIsMHgwMSwweDBFLC8qIFsxMDE0XSBPQkpfbXNfZXh0X3JlcSAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MEUsLyogWzEwMjRdIE9CSl9leHRfcmVxICovCisweDU1LDB4MDQsMHgyOSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMTAzM10gT0JKX25hbWUgKi8KKzB4NTUsMHgwNCwweDJFLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsxMDM2XSBPQkpfZG5RdWFsaWZpZXIgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDEsICAgICAgICAgIC8qIFsxMDM5XSBPQkpfaWRfcGUgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MzAsICAgICAgICAgIC8qIFsxMDQ2XSBPQkpfaWRfYWQgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDEsMHgwMSwgICAgIC8qIFsxMDUzXSBPQkpfaW5mb19hY2Nlc3MgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MzAsMHgwMSwgICAgIC8qIFsxMDYxXSBPQkpfYWRfT0NTUCAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgzMCwweDAyLCAgICAgLyogWzEwNjldIE9CSl9hZF9jYV9pc3N1ZXJzICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAzLDB4MDksICAgICAvKiBbMTA3N10gT0JKX09DU1Bfc2lnbiAqLworMHgyQSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzEwODVdIE9CSl9tZW1iZXJfYm9keSAqLworMHgyQSwweDg2LDB4NDgsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzEwODZdIE9CSl9JU09fVVMgKi8KKzB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzOCwgICAgICAgICAgICAgICAgICAgIC8qIFsxMDg5XSBPQkpfWDlfNTcgKi8KKzB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzOCwweDA0LCAgICAgICAgICAgICAgIC8qIFsxMDk0XSBPQkpfWDljbSAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDAxLCAgICAgLyogWzExMDBdIE9CSl9wa2NzMSAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA1LCAgICAgLyogWzExMDhdIE9CSl9wa2NzNSAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsLyogWzExMTZdIE9CSl9TTUlNRSAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMCwvKiBbMTEyNV0gT0JKX2lkX3NtaW1lX21vZCAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMSwvKiBbMTEzNV0gT0JKX2lkX3NtaW1lX2N0ICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLC8qIFsxMTQ1XSBPQkpfaWRfc21pbWVfYWEgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDMsLyogWzExNTVdIE9CSl9pZF9zbWltZV9hbGcgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDQsLyogWzExNjVdIE9CSl9pZF9zbWltZV9jZCAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwNSwvKiBbMTE3NV0gT0JKX2lkX3NtaW1lX3NwcSAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwNiwvKiBbMTE4NV0gT0JKX2lkX3NtaW1lX2N0aSAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMCwweDAxLC8qIFsxMTk1XSBPQkpfaWRfc21pbWVfbW9kX2NtcyAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMCwweDAyLC8qIFsxMjA2XSBPQkpfaWRfc21pbWVfbW9kX2VzcyAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMCwweDAzLC8qIFsxMjE3XSBPQkpfaWRfc21pbWVfbW9kX29pZCAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMCwweDA0LC8qIFsxMjI4XSBPQkpfaWRfc21pbWVfbW9kX21zZ192MyAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMCwweDA1LC8qIFsxMjM5XSBPQkpfaWRfc21pbWVfbW9kX2V0c19lU2lnbmF0dXJlXzg4ICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAwLDB4MDYsLyogWzEyNTBdIE9CSl9pZF9zbWltZV9tb2RfZXRzX2VTaWduYXR1cmVfOTcgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDAsMHgwNywvKiBbMTI2MV0gT0JKX2lkX3NtaW1lX21vZF9ldHNfZVNpZ1BvbGljeV84OCAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMCwweDA4LC8qIFsxMjcyXSBPQkpfaWRfc21pbWVfbW9kX2V0c19lU2lnUG9saWN5Xzk3ICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAxLDB4MDEsLyogWzEyODNdIE9CSl9pZF9zbWltZV9jdF9yZWNlaXB0ICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAxLDB4MDIsLyogWzEyOTRdIE9CSl9pZF9zbWltZV9jdF9hdXRoRGF0YSAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMSwweDAzLC8qIFsxMzA1XSBPQkpfaWRfc21pbWVfY3RfcHVibGlzaENlcnQgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDEsMHgwNCwvKiBbMTMxNl0gT0JKX2lkX3NtaW1lX2N0X1RTVEluZm8gKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDEsMHgwNSwvKiBbMTMyN10gT0JKX2lkX3NtaW1lX2N0X1REVEluZm8gKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDEsMHgwNiwvKiBbMTMzOF0gT0JKX2lkX3NtaW1lX2N0X2NvbnRlbnRJbmZvICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAxLDB4MDcsLyogWzEzNDldIE9CSl9pZF9zbWltZV9jdF9EVkNTUmVxdWVzdERhdGEgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDEsMHgwOCwvKiBbMTM2MF0gT0JKX2lkX3NtaW1lX2N0X0RWQ1NSZXNwb25zZURhdGEgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsMHgwMSwvKiBbMTM3MV0gT0JKX2lkX3NtaW1lX2FhX3JlY2VpcHRSZXF1ZXN0ICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MDIsLyogWzEzODJdIE9CSl9pZF9zbWltZV9hYV9zZWN1cml0eUxhYmVsICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MDMsLyogWzEzOTNdIE9CSl9pZF9zbWltZV9hYV9tbEV4cGFuZEhpc3RvcnkgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsMHgwNCwvKiBbMTQwNF0gT0JKX2lkX3NtaW1lX2FhX2NvbnRlbnRIaW50ICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MDUsLyogWzE0MTVdIE9CSl9pZF9zbWltZV9hYV9tc2dTaWdEaWdlc3QgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsMHgwNiwvKiBbMTQyNl0gT0JKX2lkX3NtaW1lX2FhX2VuY2FwQ29udGVudFR5cGUgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsMHgwNywvKiBbMTQzN10gT0JKX2lkX3NtaW1lX2FhX2NvbnRlbnRJZGVudGlmaWVyICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MDgsLyogWzE0NDhdIE9CSl9pZF9zbWltZV9hYV9tYWNWYWx1ZSAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDA5LC8qIFsxNDU5XSBPQkpfaWRfc21pbWVfYWFfZXF1aXZhbGVudExhYmVscyAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDBBLC8qIFsxNDcwXSBPQkpfaWRfc21pbWVfYWFfY29udGVudFJlZmVyZW5jZSAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDBCLC8qIFsxNDgxXSBPQkpfaWRfc21pbWVfYWFfZW5jcnlwS2V5UHJlZiAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDBDLC8qIFsxNDkyXSBPQkpfaWRfc21pbWVfYWFfc2lnbmluZ0NlcnRpZmljYXRlICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MEQsLyogWzE1MDNdIE9CSl9pZF9zbWltZV9hYV9zbWltZUVuY3J5cHRDZXJ0cyAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDBFLC8qIFsxNTE0XSBPQkpfaWRfc21pbWVfYWFfdGltZVN0YW1wVG9rZW4gKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsMHgwRiwvKiBbMTUyNV0gT0JKX2lkX3NtaW1lX2FhX2V0c19zaWdQb2xpY3lJZCAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDEwLC8qIFsxNTM2XSBPQkpfaWRfc21pbWVfYWFfZXRzX2NvbW1pdG1lbnRUeXBlICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MTEsLyogWzE1NDddIE9CSl9pZF9zbWltZV9hYV9ldHNfc2lnbmVyTG9jYXRpb24gKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsMHgxMiwvKiBbMTU1OF0gT0JKX2lkX3NtaW1lX2FhX2V0c19zaWduZXJBdHRyICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MTMsLyogWzE1NjldIE9CSl9pZF9zbWltZV9hYV9ldHNfb3RoZXJTaWdDZXJ0ICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MTQsLyogWzE1ODBdIE9CSl9pZF9zbWltZV9hYV9ldHNfY29udGVudFRpbWVzdGFtcCAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDE1LC8qIFsxNTkxXSBPQkpfaWRfc21pbWVfYWFfZXRzX0NlcnRpZmljYXRlUmVmcyAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDE2LC8qIFsxNjAyXSBPQkpfaWRfc21pbWVfYWFfZXRzX1Jldm9jYXRpb25SZWZzICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MTcsLyogWzE2MTNdIE9CSl9pZF9zbWltZV9hYV9ldHNfY2VydFZhbHVlcyAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDE4LC8qIFsxNjI0XSBPQkpfaWRfc21pbWVfYWFfZXRzX3Jldm9jYXRpb25WYWx1ZXMgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsMHgxOSwvKiBbMTYzNV0gT0JKX2lkX3NtaW1lX2FhX2V0c19lc2NUaW1lU3RhbXAgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDIsMHgxQSwvKiBbMTY0Nl0gT0JKX2lkX3NtaW1lX2FhX2V0c19jZXJ0Q1JMVGltZXN0YW1wICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAyLDB4MUIsLyogWzE2NTddIE9CSl9pZF9zbWltZV9hYV9ldHNfYXJjaGl2ZVRpbWVTdGFtcCAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDFDLC8qIFsxNjY4XSBPQkpfaWRfc21pbWVfYWFfc2lnbmF0dXJlVHlwZSAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMiwweDFELC8qIFsxNjc5XSBPQkpfaWRfc21pbWVfYWFfZHZjc19kdmMgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDMsMHgwMSwvKiBbMTY5MF0gT0JKX2lkX3NtaW1lX2FsZ19FU0RId2l0aDNERVMgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDMsMHgwMiwvKiBbMTcwMV0gT0JKX2lkX3NtaW1lX2FsZ19FU0RId2l0aFJDMiAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMywweDAzLC8qIFsxNzEyXSBPQkpfaWRfc21pbWVfYWxnXzNERVN3cmFwICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAzLDB4MDQsLyogWzE3MjNdIE9CSl9pZF9zbWltZV9hbGdfUkMyd3JhcCAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMywweDA1LC8qIFsxNzM0XSBPQkpfaWRfc21pbWVfYWxnX0VTREggKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDMsMHgwNiwvKiBbMTc0NV0gT0JKX2lkX3NtaW1lX2FsZ19DTVMzREVTd3JhcCAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMywweDA3LC8qIFsxNzU2XSBPQkpfaWRfc21pbWVfYWxnX0NNU1JDMndyYXAgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDQsMHgwMSwvKiBbMTc2N10gT0JKX2lkX3NtaW1lX2NkX2xkYXAgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDUsMHgwMSwvKiBbMTc3OF0gT0JKX2lkX3NtaW1lX3NwcV9ldHNfc3F0X3VyaSAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwNSwweDAyLC8qIFsxNzg5XSBPQkpfaWRfc21pbWVfc3BxX2V0c19zcXRfdW5vdGljZSAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwNiwweDAxLC8qIFsxODAwXSBPQkpfaWRfc21pbWVfY3RpX2V0c19wcm9vZk9mT3JpZ2luICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDA2LDB4MDIsLyogWzE4MTFdIE9CSl9pZF9zbWltZV9jdGlfZXRzX3Byb29mT2ZSZWNlaXB0ICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDA2LDB4MDMsLyogWzE4MjJdIE9CSl9pZF9zbWltZV9jdGlfZXRzX3Byb29mT2ZEZWxpdmVyeSAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwNiwweDA0LC8qIFsxODMzXSBPQkpfaWRfc21pbWVfY3RpX2V0c19wcm9vZk9mU2VuZGVyICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDA2LDB4MDUsLyogWzE4NDRdIE9CSl9pZF9zbWltZV9jdGlfZXRzX3Byb29mT2ZBcHByb3ZhbCAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwNiwweDA2LC8qIFsxODU1XSBPQkpfaWRfc21pbWVfY3RpX2V0c19wcm9vZk9mQ3JlYXRpb24gKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDIsMHgwNCwgICAgIC8qIFsxODY2XSBPQkpfbWQ0ICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAwLCAgICAgICAgICAvKiBbMTg3NF0gT0JKX2lkX3BraXhfbW9kICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAyLCAgICAgICAgICAvKiBbMTg4MV0gT0JKX2lkX3F0ICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA0LCAgICAgICAgICAvKiBbMTg4OF0gT0JKX2lkX2l0ICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA1LCAgICAgICAgICAvKiBbMTg5NV0gT0JKX2lkX3BraXAgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDYsICAgICAgICAgIC8qIFsxOTAyXSBPQkpfaWRfYWxnICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA3LCAgICAgICAgICAvKiBbMTkwOV0gT0JKX2lkX2NtYyAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwOCwgICAgICAgICAgLyogWzE5MTZdIE9CSl9pZF9vbiAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwOSwgICAgICAgICAgLyogWzE5MjNdIE9CSl9pZF9wZGEgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MEEsICAgICAgICAgIC8qIFsxOTMwXSBPQkpfaWRfYWNhICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDBCLCAgICAgICAgICAvKiBbMTkzN10gT0JKX2lkX3FjcyAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwQywgICAgICAgICAgLyogWzE5NDRdIE9CSl9pZF9jY3QgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDAsMHgwMSwgICAgIC8qIFsxOTUxXSBPQkpfaWRfcGtpeDFfZXhwbGljaXRfODggKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDAsMHgwMiwgICAgIC8qIFsxOTU5XSBPQkpfaWRfcGtpeDFfaW1wbGljaXRfODggKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDAsMHgwMywgICAgIC8qIFsxOTY3XSBPQkpfaWRfcGtpeDFfZXhwbGljaXRfOTMgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDAsMHgwNCwgICAgIC8qIFsxOTc1XSBPQkpfaWRfcGtpeDFfaW1wbGljaXRfOTMgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDAsMHgwNSwgICAgIC8qIFsxOTgzXSBPQkpfaWRfbW9kX2NybWYgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDAsMHgwNiwgICAgIC8qIFsxOTkxXSBPQkpfaWRfbW9kX2NtYyAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMCwweDA3LCAgICAgLyogWzE5OTldIE9CSl9pZF9tb2Rfa2VhX3Byb2ZpbGVfODggKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDAsMHgwOCwgICAgIC8qIFsyMDA3XSBPQkpfaWRfbW9kX2tlYV9wcm9maWxlXzkzICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAwLDB4MDksICAgICAvKiBbMjAxNV0gT0JKX2lkX21vZF9jbXAgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDAsMHgwQSwgICAgIC8qIFsyMDIzXSBPQkpfaWRfbW9kX3F1YWxpZmllZF9jZXJ0Xzg4ICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAwLDB4MEIsICAgICAvKiBbMjAzMV0gT0JKX2lkX21vZF9xdWFsaWZpZWRfY2VydF85MyAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMCwweDBDLCAgICAgLyogWzIwMzldIE9CSl9pZF9tb2RfYXR0cmlidXRlX2NlcnQgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDAsMHgwRCwgICAgIC8qIFsyMDQ3XSBPQkpfaWRfbW9kX3RpbWVzdGFtcF9wcm90b2NvbCAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMCwweDBFLCAgICAgLyogWzIwNTVdIE9CSl9pZF9tb2Rfb2NzcCAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMCwweDBGLCAgICAgLyogWzIwNjNdIE9CSl9pZF9tb2RfZHZjcyAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMCwweDEwLCAgICAgLyogWzIwNzFdIE9CSl9pZF9tb2RfY21wMjAwMCAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMSwweDAyLCAgICAgLyogWzIwNzldIE9CSl9iaW9tZXRyaWNJbmZvICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAxLDB4MDMsICAgICAvKiBbMjA4N10gT0JKX3FjU3RhdGVtZW50cyAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMSwweDA0LCAgICAgLyogWzIwOTVdIE9CSl9hY19hdWRpdEVudGl0eSAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMSwweDA1LCAgICAgLyogWzIxMDNdIE9CSl9hY190YXJnZXRpbmcgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDEsMHgwNiwgICAgIC8qIFsyMTExXSBPQkpfYWFDb250cm9scyAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMSwweDA3LCAgICAgLyogWzIxMTldIE9CSl9zYmdwX2lwQWRkckJsb2NrICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAxLDB4MDgsICAgICAvKiBbMjEyN10gT0JKX3NiZ3BfYXV0b25vbW91c1N5c051bSAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMSwweDA5LCAgICAgLyogWzIxMzVdIE9CSl9zYmdwX3JvdXRlcklkZW50aWZpZXIgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDIsMHgwMywgICAgIC8qIFsyMTQzXSBPQkpfdGV4dE5vdGljZSAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMywweDA1LCAgICAgLyogWzIxNTFdIE9CSl9pcHNlY0VuZFN5c3RlbSAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMywweDA2LCAgICAgLyogWzIxNTldIE9CSl9pcHNlY1R1bm5lbCAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwMywweDA3LCAgICAgLyogWzIxNjddIE9CSl9pcHNlY1VzZXIgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDMsMHgwQSwgICAgIC8qIFsyMTc1XSBPQkpfZHZjcyAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNCwweDAxLCAgICAgLyogWzIxODNdIE9CSl9pZF9pdF9jYVByb3RFbmNDZXJ0ICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA0LDB4MDIsICAgICAvKiBbMjE5MV0gT0JKX2lkX2l0X3NpZ25LZXlQYWlyVHlwZXMgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDQsMHgwMywgICAgIC8qIFsyMTk5XSBPQkpfaWRfaXRfZW5jS2V5UGFpclR5cGVzICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA0LDB4MDQsICAgICAvKiBbMjIwN10gT0JKX2lkX2l0X3ByZWZlcnJlZFN5bW1BbGcgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDQsMHgwNSwgICAgIC8qIFsyMjE1XSBPQkpfaWRfaXRfY2FLZXlVcGRhdGVJbmZvICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA0LDB4MDYsICAgICAvKiBbMjIyM10gT0JKX2lkX2l0X2N1cnJlbnRDUkwgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDQsMHgwNywgICAgIC8qIFsyMjMxXSBPQkpfaWRfaXRfdW5zdXBwb3J0ZWRPSURzICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA0LDB4MDgsICAgICAvKiBbMjIzOV0gT0JKX2lkX2l0X3N1YnNjcmlwdGlvblJlcXVlc3QgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDQsMHgwOSwgICAgIC8qIFsyMjQ3XSBPQkpfaWRfaXRfc3Vic2NyaXB0aW9uUmVzcG9uc2UgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDQsMHgwQSwgICAgIC8qIFsyMjU1XSBPQkpfaWRfaXRfa2V5UGFpclBhcmFtUmVxICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA0LDB4MEIsICAgICAvKiBbMjI2M10gT0JKX2lkX2l0X2tleVBhaXJQYXJhbVJlcCAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNCwweDBDLCAgICAgLyogWzIyNzFdIE9CSl9pZF9pdF9yZXZQYXNzcGhyYXNlICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA0LDB4MEQsICAgICAvKiBbMjI3OV0gT0JKX2lkX2l0X2ltcGxpY2l0Q29uZmlybSAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNCwweDBFLCAgICAgLyogWzIyODddIE9CSl9pZF9pdF9jb25maXJtV2FpdFRpbWUgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDQsMHgwRiwgICAgIC8qIFsyMjk1XSBPQkpfaWRfaXRfb3JpZ1BLSU1lc3NhZ2UgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDUsMHgwMSwgICAgIC8qIFsyMzAzXSBPQkpfaWRfcmVnQ3RybCAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNSwweDAyLCAgICAgLyogWzIzMTFdIE9CSl9pZF9yZWdJbmZvICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA1LDB4MDEsMHgwMSwvKiBbMjMxOV0gT0JKX2lkX3JlZ0N0cmxfcmVnVG9rZW4gKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDUsMHgwMSwweDAyLC8qIFsyMzI4XSBPQkpfaWRfcmVnQ3RybF9hdXRoZW50aWNhdG9yICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA1LDB4MDEsMHgwMywvKiBbMjMzN10gT0JKX2lkX3JlZ0N0cmxfcGtpUHVibGljYXRpb25JbmZvICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA1LDB4MDEsMHgwNCwvKiBbMjM0Nl0gT0JKX2lkX3JlZ0N0cmxfcGtpQXJjaGl2ZU9wdGlvbnMgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDUsMHgwMSwweDA1LC8qIFsyMzU1XSBPQkpfaWRfcmVnQ3RybF9vbGRDZXJ0SUQgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDUsMHgwMSwweDA2LC8qIFsyMzY0XSBPQkpfaWRfcmVnQ3RybF9wcm90b2NvbEVuY3JLZXkgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDUsMHgwMiwweDAxLC8qIFsyMzczXSBPQkpfaWRfcmVnSW5mb191dGY4UGFpcnMgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDUsMHgwMiwweDAyLC8qIFsyMzgyXSBPQkpfaWRfcmVnSW5mb19jZXJ0UmVxICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA2LDB4MDEsICAgICAvKiBbMjM5MV0gT0JKX2lkX2FsZ19kZXM0MCAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNiwweDAyLCAgICAgLyogWzIzOTldIE9CSl9pZF9hbGdfbm9TaWduYXR1cmUgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDYsMHgwMywgICAgIC8qIFsyNDA3XSBPQkpfaWRfYWxnX2RoX3NpZ19obWFjX3NoYTEgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDYsMHgwNCwgICAgIC8qIFsyNDE1XSBPQkpfaWRfYWxnX2RoX3BvcCAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNywweDAxLCAgICAgLyogWzI0MjNdIE9CSl9pZF9jbWNfc3RhdHVzSW5mbyAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNywweDAyLCAgICAgLyogWzI0MzFdIE9CSl9pZF9jbWNfaWRlbnRpZmljYXRpb24gKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDcsMHgwMywgICAgIC8qIFsyNDM5XSBPQkpfaWRfY21jX2lkZW50aXR5UHJvb2YgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDcsMHgwNCwgICAgIC8qIFsyNDQ3XSBPQkpfaWRfY21jX2RhdGFSZXR1cm4gKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDcsMHgwNSwgICAgIC8qIFsyNDU1XSBPQkpfaWRfY21jX3RyYW5zYWN0aW9uSWQgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDcsMHgwNiwgICAgIC8qIFsyNDYzXSBPQkpfaWRfY21jX3NlbmRlck5vbmNlICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA3LDB4MDcsICAgICAvKiBbMjQ3MV0gT0JKX2lkX2NtY19yZWNpcGllbnROb25jZSAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNywweDA4LCAgICAgLyogWzI0NzldIE9CSl9pZF9jbWNfYWRkRXh0ZW5zaW9ucyAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNywweDA5LCAgICAgLyogWzI0ODddIE9CSl9pZF9jbWNfZW5jcnlwdGVkUE9QICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA3LDB4MEEsICAgICAvKiBbMjQ5NV0gT0JKX2lkX2NtY19kZWNyeXB0ZWRQT1AgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDcsMHgwQiwgICAgIC8qIFsyNTAzXSBPQkpfaWRfY21jX2xyYVBPUFdpdG5lc3MgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDcsMHgwRiwgICAgIC8qIFsyNTExXSBPQkpfaWRfY21jX2dldENlcnQgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDcsMHgxMCwgICAgIC8qIFsyNTE5XSBPQkpfaWRfY21jX2dldENSTCAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNywweDExLCAgICAgLyogWzI1MjddIE9CSl9pZF9jbWNfcmV2b2tlUmVxdWVzdCAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNywweDEyLCAgICAgLyogWzI1MzVdIE9CSl9pZF9jbWNfcmVnSW5mbyAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNywweDEzLCAgICAgLyogWzI1NDNdIE9CSl9pZF9jbWNfcmVzcG9uc2VJbmZvICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA3LDB4MTUsICAgICAvKiBbMjU1MV0gT0JKX2lkX2NtY19xdWVyeVBlbmRpbmcgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDcsMHgxNiwgICAgIC8qIFsyNTU5XSBPQkpfaWRfY21jX3BvcExpbmtSYW5kb20gKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDcsMHgxNywgICAgIC8qIFsyNTY3XSBPQkpfaWRfY21jX3BvcExpbmtXaXRuZXNzICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA3LDB4MTgsICAgICAvKiBbMjU3NV0gT0JKX2lkX2NtY19jb25maXJtQ2VydEFjY2VwdGFuY2UgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDgsMHgwMSwgICAgIC8qIFsyNTgzXSBPQkpfaWRfb25fcGVyc29uYWxEYXRhICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA5LDB4MDEsICAgICAvKiBbMjU5MV0gT0JKX2lkX3BkYV9kYXRlT2ZCaXJ0aCAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwOSwweDAyLCAgICAgLyogWzI1OTldIE9CSl9pZF9wZGFfcGxhY2VPZkJpcnRoICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA5LDB4MDMsICAgICAvKiBbMjYwN10gT0JKX2lkX3BkYV9nZW5kZXIgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MDksMHgwNCwgICAgIC8qIFsyNjE1XSBPQkpfaWRfcGRhX2NvdW50cnlPZkNpdGl6ZW5zaGlwICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDA5LDB4MDUsICAgICAvKiBbMjYyM10gT0JKX2lkX3BkYV9jb3VudHJ5T2ZSZXNpZGVuY2UgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MEEsMHgwMSwgICAgIC8qIFsyNjMxXSBPQkpfaWRfYWNhX2F1dGhlbnRpY2F0aW9uSW5mbyAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwQSwweDAyLCAgICAgLyogWzI2MzldIE9CSl9pZF9hY2FfYWNjZXNzSWRlbnRpdHkgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MEEsMHgwMywgICAgIC8qIFsyNjQ3XSBPQkpfaWRfYWNhX2NoYXJnaW5nSWRlbnRpdHkgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MEEsMHgwNCwgICAgIC8qIFsyNjU1XSBPQkpfaWRfYWNhX2dyb3VwICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDBBLDB4MDUsICAgICAvKiBbMjY2M10gT0JKX2lkX2FjYV9yb2xlICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDBCLDB4MDEsICAgICAvKiBbMjY3MV0gT0JKX2lkX3Fjc19wa2l4UUNTeW50YXhfdjEgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MEMsMHgwMSwgICAgIC8qIFsyNjc5XSBPQkpfaWRfY2N0X2NycyAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwQywweDAyLCAgICAgLyogWzI2ODddIE9CSl9pZF9jY3RfUEtJRGF0YSAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwQywweDAzLCAgICAgLyogWzI2OTVdIE9CSl9pZF9jY3RfUEtJUmVzcG9uc2UgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MzAsMHgwMywgICAgIC8qIFsyNzAzXSBPQkpfYWRfdGltZVN0YW1waW5nICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDMwLDB4MDQsICAgICAvKiBbMjcxMV0gT0JKX2FkX2R2Y3MgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MzAsMHgwMSwweDAxLC8qIFsyNzE5XSBPQkpfaWRfcGtpeF9PQ1NQX2Jhc2ljICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDMwLDB4MDEsMHgwMiwvKiBbMjcyOF0gT0JKX2lkX3BraXhfT0NTUF9Ob25jZSAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgzMCwweDAxLDB4MDMsLyogWzI3MzddIE9CSl9pZF9wa2l4X09DU1BfQ3JsSUQgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MzAsMHgwMSwweDA0LC8qIFsyNzQ2XSBPQkpfaWRfcGtpeF9PQ1NQX2FjY2VwdGFibGVSZXNwb25zZXMgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MzAsMHgwMSwweDA1LC8qIFsyNzU1XSBPQkpfaWRfcGtpeF9PQ1NQX25vQ2hlY2sgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MzAsMHgwMSwweDA2LC8qIFsyNzY0XSBPQkpfaWRfcGtpeF9PQ1NQX2FyY2hpdmVDdXRvZmYgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MzAsMHgwMSwweDA3LC8qIFsyNzczXSBPQkpfaWRfcGtpeF9PQ1NQX3NlcnZpY2VMb2NhdG9yICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDMwLDB4MDEsMHgwOCwvKiBbMjc4Ml0gT0JKX2lkX3BraXhfT0NTUF9leHRlbmRlZFN0YXR1cyAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgzMCwweDAxLDB4MDksLyogWzI3OTFdIE9CSl9pZF9wa2l4X09DU1BfdmFsaWQgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MzAsMHgwMSwweDBBLC8qIFsyODAwXSBPQkpfaWRfcGtpeF9PQ1NQX3BhdGggKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MzAsMHgwMSwweDBCLC8qIFsyODA5XSBPQkpfaWRfcGtpeF9PQ1NQX3RydXN0Um9vdCAqLworMHgyQiwweDBFLDB4MDMsMHgwMiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzI4MThdIE9CSl9hbGdvcml0aG0gKi8KKzB4MkIsMHgwRSwweDAzLDB4MDIsMHgwQiwgICAgICAgICAgICAgICAgICAgIC8qIFsyODIyXSBPQkpfcnNhU2lnbmF0dXJlICovCisweDU1LDB4MDgsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMjgyN10gT0JKX1g1MDBhbGdvcml0aG1zICovCisweDJCLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMjgyOV0gT0JKX29yZyAqLworMHgyQiwweDA2LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzI4MzBdIE9CSl9kb2QgKi8KKzB4MkIsMHgwNiwweDAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsyODMyXSBPQkpfaWFuYSAqLworMHgyQiwweDA2LDB4MDEsMHgwMSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzI4MzVdIE9CSl9EaXJlY3RvcnkgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDIsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsyODM5XSBPQkpfTWFuYWdlbWVudCAqLworMHgyQiwweDA2LDB4MDEsMHgwMywgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzI4NDNdIE9CSl9FeHBlcmltZW50YWwgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDQsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsyODQ3XSBPQkpfUHJpdmF0ZSAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzI4NTFdIE9CSl9TZWN1cml0eSAqLworMHgyQiwweDA2LDB4MDEsMHgwNiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzI4NTVdIE9CSl9TTk1QdjIgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDcsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsyODU5XSBPQkpfTWFpbCAqLworMHgyQiwweDA2LDB4MDEsMHgwNCwweDAxLCAgICAgICAgICAgICAgICAgICAgLyogWzI4NjNdIE9CSl9FbnRlcnByaXNlcyAqLworMHgyQiwweDA2LDB4MDEsMHgwNCwweDAxLDB4OEIsMHgzQSwweDgyLDB4NTgsLyogWzI4NjhdIE9CSl9kY09iamVjdCAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgxOSwvKiBbMjg3N10gT0JKX2RvbWFpbkNvbXBvbmVudCAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDQsMHgwRCwvKiBbMjg4N10gT0JKX0RvbWFpbiAqLworMHg1NSwweDAxLDB4MDUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzI4OTddIE9CSl9zZWxlY3RlZF9hdHRyaWJ1dGVfdHlwZXMgKi8KKzB4NTUsMHgwMSwweDA1LDB4MzcsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsyOTAwXSBPQkpfY2xlYXJhbmNlICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDEsMHgwMywvKiBbMjkwNF0gT0JKX21kNFdpdGhSU0FFbmNyeXB0aW9uICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAxLDB4MEEsICAgICAvKiBbMjkxM10gT0JKX2FjX3Byb3h5aW5nICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAxLDB4MEIsICAgICAvKiBbMjkyMV0gT0JKX3NpbmZvX2FjY2VzcyAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwQSwweDA2LCAgICAgLyogWzI5MjldIE9CSl9pZF9hY2FfZW5jQXR0cnMgKi8KKzB4NTUsMHgwNCwweDQ4LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsyOTM3XSBPQkpfcm9sZSAqLworMHg1NSwweDFELDB4MjQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzI5NDBdIE9CSl9wb2xpY3lfY29uc3RyYWludHMgKi8KKzB4NTUsMHgxRCwweDM3LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFsyOTQzXSBPQkpfdGFyZ2V0X2luZm9ybWF0aW9uICovCisweDU1LDB4MUQsMHgzOCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMjk0Nl0gT0JKX25vX3Jldl9hdmFpbCAqLworMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELCAgICAgICAgICAgICAgICAgICAgLyogWzI5NDldIE9CSl9hbnNpX1g5XzYyICovCisweDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMSwweDAxLCAgICAgICAgICAvKiBbMjk1NF0gT0JKX1g5XzYyX3ByaW1lX2ZpZWxkICovCisweDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMSwweDAyLCAgICAgICAgICAvKiBbMjk2MV0gT0JKX1g5XzYyX2NoYXJhY3RlcmlzdGljX3R3b19maWVsZCAqLworMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDIsMHgwMSwgICAgICAgICAgLyogWzI5NjhdIE9CSl9YOV82Ml9pZF9lY1B1YmxpY0tleSAqLworMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDMsMHgwMSwweDAxLCAgICAgLyogWzI5NzVdIE9CSl9YOV82Ml9wcmltZTE5MnYxICovCisweDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMywweDAxLDB4MDIsICAgICAvKiBbMjk4M10gT0JKX1g5XzYyX3ByaW1lMTkydjIgKi8KKzB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAzLDB4MDEsMHgwMywgICAgIC8qIFsyOTkxXSBPQkpfWDlfNjJfcHJpbWUxOTJ2MyAqLworMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDMsMHgwMSwweDA0LCAgICAgLyogWzI5OTldIE9CSl9YOV82Ml9wcmltZTIzOXYxICovCisweDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMywweDAxLDB4MDUsICAgICAvKiBbMzAwN10gT0JKX1g5XzYyX3ByaW1lMjM5djIgKi8KKzB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAzLDB4MDEsMHgwNiwgICAgIC8qIFszMDE1XSBPQkpfWDlfNjJfcHJpbWUyMzl2MyAqLworMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDMsMHgwMSwweDA3LCAgICAgLyogWzMwMjNdIE9CSl9YOV82Ml9wcmltZTI1NnYxICovCisweDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwNCwweDAxLCAgICAgICAgICAvKiBbMzAzMV0gT0JKX2VjZHNhX3dpdGhfU0hBMSAqLworMHgyQiwweDA2LDB4MDEsMHgwNCwweDAxLDB4ODIsMHgzNywweDExLDB4MDEsLyogWzMwMzhdIE9CSl9tc19jc3BfbmFtZSAqLworMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MDEsLyogWzMwNDddIE9CSl9hZXNfMTI4X2VjYiAqLworMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MDIsLyogWzMwNTZdIE9CSl9hZXNfMTI4X2NiYyAqLworMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MDMsLyogWzMwNjVdIE9CSl9hZXNfMTI4X29mYjEyOCAqLworMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MDQsLyogWzMwNzRdIE9CSl9hZXNfMTI4X2NmYjEyOCAqLworMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MTUsLyogWzMwODNdIE9CSl9hZXNfMTkyX2VjYiAqLworMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MTYsLyogWzMwOTJdIE9CSl9hZXNfMTkyX2NiYyAqLworMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MTcsLyogWzMxMDFdIE9CSl9hZXNfMTkyX29mYjEyOCAqLworMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MTgsLyogWzMxMTBdIE9CSl9hZXNfMTkyX2NmYjEyOCAqLworMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MjksLyogWzMxMTldIE9CSl9hZXNfMjU2X2VjYiAqLworMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MkEsLyogWzMxMjhdIE9CSl9hZXNfMjU2X2NiYyAqLworMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MkIsLyogWzMxMzddIE9CSl9hZXNfMjU2X29mYjEyOCAqLworMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MkMsLyogWzMxNDZdIE9CSl9hZXNfMjU2X2NmYjEyOCAqLworMHg1NSwweDFELDB4MTcsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzMxNTVdIE9CSl9ob2xkX2luc3RydWN0aW9uX2NvZGUgKi8KKzB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzOCwweDAyLDB4MDEsICAgICAgICAgIC8qIFszMTU4XSBPQkpfaG9sZF9pbnN0cnVjdGlvbl9ub25lICovCisweDJBLDB4ODYsMHg0OCwweENFLDB4MzgsMHgwMiwweDAyLCAgICAgICAgICAvKiBbMzE2NV0gT0JKX2hvbGRfaW5zdHJ1Y3Rpb25fY2FsbF9pc3N1ZXIgKi8KKzB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzOCwweDAyLDB4MDMsICAgICAgICAgIC8qIFszMTcyXSBPQkpfaG9sZF9pbnN0cnVjdGlvbl9yZWplY3QgKi8KKzB4MDksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszMTc5XSBPQkpfZGF0YSAqLworMHgwOSwweDkyLDB4MjYsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzMxODBdIE9CSl9wc3MgKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsICAgICAgICAgIC8qIFszMTgzXSBPQkpfdWNsICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsICAgICAvKiBbMzE5MF0gT0JKX3BpbG90ICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwvKiBbMzE5OF0gT0JKX3BpbG90QXR0cmlidXRlVHlwZSAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDMsLyogWzMyMDddIE9CSl9waWxvdEF0dHJpYnV0ZVN5bnRheCAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDQsLyogWzMyMTZdIE9CSl9waWxvdE9iamVjdENsYXNzICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwQSwvKiBbMzIyNV0gT0JKX3BpbG90R3JvdXBzICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMywweDA0LC8qIFszMjM0XSBPQkpfaUE1U3RyaW5nU3ludGF4ICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMywweDA1LC8qIFszMjQ0XSBPQkpfY2FzZUlnbm9yZUlBNVN0cmluZ1N5bnRheCAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDQsMHgwMywvKiBbMzI1NF0gT0JKX3BpbG90T2JqZWN0ICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwNCwweDA0LC8qIFszMjY0XSBPQkpfcGlsb3RQZXJzb24gKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDA0LDB4MDUsLyogWzMyNzRdIE9CSl9hY2NvdW50ICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwNCwweDA2LC8qIFszMjg0XSBPQkpfZG9jdW1lbnQgKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDA0LDB4MDcsLyogWzMyOTRdIE9CSl9yb29tICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwNCwweDA5LC8qIFszMzA0XSBPQkpfZG9jdW1lbnRTZXJpZXMgKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDA0LDB4MEUsLyogWzMzMTRdIE9CSl9yRkM4MjJsb2NhbFBhcnQgKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDA0LDB4MEYsLyogWzMzMjRdIE9CSl9kTlNEb21haW4gKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDA0LDB4MTEsLyogWzMzMzRdIE9CSl9kb21haW5SZWxhdGVkT2JqZWN0ICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwNCwweDEyLC8qIFszMzQ0XSBPQkpfZnJpZW5kbHlDb3VudHJ5ICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwNCwweDEzLC8qIFszMzU0XSBPQkpfc2ltcGxlU2VjdXJpdHlPYmplY3QgKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDA0LDB4MTQsLyogWzMzNjRdIE9CSl9waWxvdE9yZ2FuaXphdGlvbiAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDQsMHgxNSwvKiBbMzM3NF0gT0JKX3BpbG90RFNBICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwNCwweDE2LC8qIFszMzg0XSBPQkpfcXVhbGl0eUxhYmVsbGVkRGF0YSAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgwMSwvKiBbMzM5NF0gT0JKX3VzZXJJZCAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgwMiwvKiBbMzQwNF0gT0JKX3RleHRFbmNvZGVkT1JBZGRyZXNzICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDAzLC8qIFszNDE0XSBPQkpfcmZjODIyTWFpbGJveCAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgwNCwvKiBbMzQyNF0gT0JKX2luZm8gKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MDUsLyogWzM0MzRdIE9CSl9mYXZvdXJpdGVEcmluayAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgwNiwvKiBbMzQ0NF0gT0JKX3Jvb21OdW1iZXIgKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MDcsLyogWzM0NTRdIE9CSl9waG90byAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgwOCwvKiBbMzQ2NF0gT0JKX3VzZXJDbGFzcyAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgwOSwvKiBbMzQ3NF0gT0JKX2hvc3QgKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MEEsLyogWzM0ODRdIE9CSl9tYW5hZ2VyICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDBCLC8qIFszNDk0XSBPQkpfZG9jdW1lbnRJZGVudGlmaWVyICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDBDLC8qIFszNTA0XSBPQkpfZG9jdW1lbnRUaXRsZSAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgwRCwvKiBbMzUxNF0gT0JKX2RvY3VtZW50VmVyc2lvbiAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgwRSwvKiBbMzUyNF0gT0JKX2RvY3VtZW50QXV0aG9yICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDBGLC8qIFszNTM0XSBPQkpfZG9jdW1lbnRMb2NhdGlvbiAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgxNCwvKiBbMzU0NF0gT0JKX2hvbWVUZWxlcGhvbmVOdW1iZXIgKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MTUsLyogWzM1NTRdIE9CSl9zZWNyZXRhcnkgKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MTYsLyogWzM1NjRdIE9CSl9vdGhlck1haWxib3ggKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MTcsLyogWzM1NzRdIE9CSl9sYXN0TW9kaWZpZWRUaW1lICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDE4LC8qIFszNTg0XSBPQkpfbGFzdE1vZGlmaWVkQnkgKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MUEsLyogWzM1OTRdIE9CSl9hUmVjb3JkICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDFCLC8qIFszNjA0XSBPQkpfcGlsb3RBdHRyaWJ1dGVUeXBlMjcgKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MUMsLyogWzM2MTRdIE9CSl9tWFJlY29yZCAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgxRCwvKiBbMzYyNF0gT0JKX25TUmVjb3JkICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDFFLC8qIFszNjM0XSBPQkpfc09BUmVjb3JkICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDFGLC8qIFszNjQ0XSBPQkpfY05BTUVSZWNvcmQgKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MjUsLyogWzM2NTRdIE9CSl9hc3NvY2lhdGVkRG9tYWluICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDI2LC8qIFszNjY0XSBPQkpfYXNzb2NpYXRlZE5hbWUgKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MjcsLyogWzM2NzRdIE9CSl9ob21lUG9zdGFsQWRkcmVzcyAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgyOCwvKiBbMzY4NF0gT0JKX3BlcnNvbmFsVGl0bGUgKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MjksLyogWzM2OTRdIE9CSl9tb2JpbGVUZWxlcGhvbmVOdW1iZXIgKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MkEsLyogWzM3MDRdIE9CSl9wYWdlclRlbGVwaG9uZU51bWJlciAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgyQiwvKiBbMzcxNF0gT0JKX2ZyaWVuZGx5Q291bnRyeU5hbWUgKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MkQsLyogWzM3MjRdIE9CSl9vcmdhbml6YXRpb25hbFN0YXR1cyAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgyRSwvKiBbMzczNF0gT0JKX2phbmV0TWFpbGJveCAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgyRiwvKiBbMzc0NF0gT0JKX21haWxQcmVmZXJlbmNlT3B0aW9uICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDMwLC8qIFszNzU0XSBPQkpfYnVpbGRpbmdOYW1lICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDMxLC8qIFszNzY0XSBPQkpfZFNBUXVhbGl0eSAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgzMiwvKiBbMzc3NF0gT0JKX3NpbmdsZUxldmVsUXVhbGl0eSAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgzMywvKiBbMzc4NF0gT0JKX3N1YnRyZWVNaW5pbXVtUXVhbGl0eSAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgzNCwvKiBbMzc5NF0gT0JKX3N1YnRyZWVNYXhpbXVtUXVhbGl0eSAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgzNSwvKiBbMzgwNF0gT0JKX3BlcnNvbmFsU2lnbmF0dXJlICovCisweDA5LDB4OTIsMHgyNiwweDg5LDB4OTMsMHhGMiwweDJDLDB4NjQsMHgwMSwweDM2LC8qIFszODE0XSBPQkpfZElUUmVkaXJlY3QgKi8KKzB4MDksMHg5MiwweDI2LDB4ODksMHg5MywweEYyLDB4MkMsMHg2NCwweDAxLDB4MzcsLyogWzM4MjRdIE9CSl9hdWRpbyAqLworMHgwOSwweDkyLDB4MjYsMHg4OSwweDkzLDB4RjIsMHgyQywweDY0LDB4MDEsMHgzOCwvKiBbMzgzNF0gT0JKX2RvY3VtZW50UHVibGlzaGVyICovCisweDU1LDB4MDQsMHgyRCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzg0NF0gT0JKX3g1MDBVbmlxdWVJZGVudGlmaWVyICovCisweDJCLDB4MDYsMHgwMSwweDA3LDB4MDEsICAgICAgICAgICAgICAgICAgICAvKiBbMzg0N10gT0JKX21pbWVfbWhzICovCisweDJCLDB4MDYsMHgwMSwweDA3LDB4MDEsMHgwMSwgICAgICAgICAgICAgICAvKiBbMzg1Ml0gT0JKX21pbWVfbWhzX2hlYWRpbmdzICovCisweDJCLDB4MDYsMHgwMSwweDA3LDB4MDEsMHgwMiwgICAgICAgICAgICAgICAvKiBbMzg1OF0gT0JKX21pbWVfbWhzX2JvZGllcyAqLworMHgyQiwweDA2LDB4MDEsMHgwNywweDAxLDB4MDEsMHgwMSwgICAgICAgICAgLyogWzM4NjRdIE9CSl9pZF9oZXhfcGFydGlhbF9tZXNzYWdlICovCisweDJCLDB4MDYsMHgwMSwweDA3LDB4MDEsMHgwMSwweDAyLCAgICAgICAgICAvKiBbMzg3MV0gT0JKX2lkX2hleF9tdWx0aXBhcnRfbWVzc2FnZSAqLworMHg1NSwweDA0LDB4MkMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM4NzhdIE9CSl9nZW5lcmF0aW9uUXVhbGlmaWVyICovCisweDU1LDB4MDQsMHg0MSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzg4MV0gT0JKX3BzZXVkb255bSAqLworMHg2NywweDJBLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM4ODRdIE9CSl9pZF9zZXQgKi8KKzB4NjcsMHgyQSwweDAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszODg2XSBPQkpfc2V0X2N0eXBlICovCisweDY3LDB4MkEsMHgwMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzg4OV0gT0JKX3NldF9tc2dFeHQgKi8KKzB4NjcsMHgyQSwweDAzLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszODkyXSBPQkpfc2V0X2F0dHIgKi8KKzB4NjcsMHgyQSwweDA1LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszODk1XSBPQkpfc2V0X3BvbGljeSAqLworMHg2NywweDJBLDB4MDcsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM4OThdIE9CSl9zZXRfY2VydEV4dCAqLworMHg2NywweDJBLDB4MDgsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM5MDFdIE9CSl9zZXRfYnJhbmQgKi8KKzB4NjcsMHgyQSwweDAwLDB4MDAsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszOTA0XSBPQkpfc2V0Y3RfUEFORGF0YSAqLworMHg2NywweDJBLDB4MDAsMHgwMSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM5MDhdIE9CSl9zZXRjdF9QQU5Ub2tlbiAqLworMHg2NywweDJBLDB4MDAsMHgwMiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM5MTJdIE9CSl9zZXRjdF9QQU5Pbmx5ICovCisweDY3LDB4MkEsMHgwMCwweDAzLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzkxNl0gT0JKX3NldGN0X09JRGF0YSAqLworMHg2NywweDJBLDB4MDAsMHgwNCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM5MjBdIE9CSl9zZXRjdF9QSSAqLworMHg2NywweDJBLDB4MDAsMHgwNSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM5MjRdIE9CSl9zZXRjdF9QSURhdGEgKi8KKzB4NjcsMHgyQSwweDAwLDB4MDYsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszOTI4XSBPQkpfc2V0Y3RfUElEYXRhVW5zaWduZWQgKi8KKzB4NjcsMHgyQSwweDAwLDB4MDcsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszOTMyXSBPQkpfc2V0Y3RfSE9ESW5wdXQgKi8KKzB4NjcsMHgyQSwweDAwLDB4MDgsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszOTM2XSBPQkpfc2V0Y3RfQXV0aFJlc0JhZ2dhZ2UgKi8KKzB4NjcsMHgyQSwweDAwLDB4MDksICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszOTQwXSBPQkpfc2V0Y3RfQXV0aFJldlJlcUJhZ2dhZ2UgKi8KKzB4NjcsMHgyQSwweDAwLDB4MEEsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszOTQ0XSBPQkpfc2V0Y3RfQXV0aFJldlJlc0JhZ2dhZ2UgKi8KKzB4NjcsMHgyQSwweDAwLDB4MEIsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszOTQ4XSBPQkpfc2V0Y3RfQ2FwVG9rZW5TZXEgKi8KKzB4NjcsMHgyQSwweDAwLDB4MEMsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszOTUyXSBPQkpfc2V0Y3RfUEluaXRSZXNEYXRhICovCisweDY3LDB4MkEsMHgwMCwweDBELCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzk1Nl0gT0JKX3NldGN0X1BJX1RCUyAqLworMHg2NywweDJBLDB4MDAsMHgwRSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM5NjBdIE9CSl9zZXRjdF9QUmVzRGF0YSAqLworMHg2NywweDJBLDB4MDAsMHgxMCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM5NjRdIE9CSl9zZXRjdF9BdXRoUmVxVEJTICovCisweDY3LDB4MkEsMHgwMCwweDExLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzk2OF0gT0JKX3NldGN0X0F1dGhSZXNUQlMgKi8KKzB4NjcsMHgyQSwweDAwLDB4MTIsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszOTcyXSBPQkpfc2V0Y3RfQXV0aFJlc1RCU1ggKi8KKzB4NjcsMHgyQSwweDAwLDB4MTMsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFszOTc2XSBPQkpfc2V0Y3RfQXV0aFRva2VuVEJTICovCisweDY3LDB4MkEsMHgwMCwweDE0LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzk4MF0gT0JKX3NldGN0X0NhcFRva2VuRGF0YSAqLworMHg2NywweDJBLDB4MDAsMHgxNSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM5ODRdIE9CSl9zZXRjdF9DYXBUb2tlblRCUyAqLworMHg2NywweDJBLDB4MDAsMHgxNiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM5ODhdIE9CSl9zZXRjdF9BY3FDYXJkQ29kZU1zZyAqLworMHg2NywweDJBLDB4MDAsMHgxNywgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzM5OTJdIE9CSl9zZXRjdF9BdXRoUmV2UmVxVEJTICovCisweDY3LDB4MkEsMHgwMCwweDE4LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbMzk5Nl0gT0JKX3NldGN0X0F1dGhSZXZSZXNEYXRhICovCisweDY3LDB4MkEsMHgwMCwweDE5LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDAwMF0gT0JKX3NldGN0X0F1dGhSZXZSZXNUQlMgKi8KKzB4NjcsMHgyQSwweDAwLDB4MUEsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MDA0XSBPQkpfc2V0Y3RfQ2FwUmVxVEJTICovCisweDY3LDB4MkEsMHgwMCwweDFCLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDAwOF0gT0JKX3NldGN0X0NhcFJlcVRCU1ggKi8KKzB4NjcsMHgyQSwweDAwLDB4MUMsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MDEyXSBPQkpfc2V0Y3RfQ2FwUmVzRGF0YSAqLworMHg2NywweDJBLDB4MDAsMHgxRCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQwMTZdIE9CSl9zZXRjdF9DYXBSZXZSZXFUQlMgKi8KKzB4NjcsMHgyQSwweDAwLDB4MUUsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MDIwXSBPQkpfc2V0Y3RfQ2FwUmV2UmVxVEJTWCAqLworMHg2NywweDJBLDB4MDAsMHgxRiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQwMjRdIE9CSl9zZXRjdF9DYXBSZXZSZXNEYXRhICovCisweDY3LDB4MkEsMHgwMCwweDIwLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDAyOF0gT0JKX3NldGN0X0NyZWRSZXFUQlMgKi8KKzB4NjcsMHgyQSwweDAwLDB4MjEsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MDMyXSBPQkpfc2V0Y3RfQ3JlZFJlcVRCU1ggKi8KKzB4NjcsMHgyQSwweDAwLDB4MjIsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MDM2XSBPQkpfc2V0Y3RfQ3JlZFJlc0RhdGEgKi8KKzB4NjcsMHgyQSwweDAwLDB4MjMsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MDQwXSBPQkpfc2V0Y3RfQ3JlZFJldlJlcVRCUyAqLworMHg2NywweDJBLDB4MDAsMHgyNCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQwNDRdIE9CSl9zZXRjdF9DcmVkUmV2UmVxVEJTWCAqLworMHg2NywweDJBLDB4MDAsMHgyNSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQwNDhdIE9CSl9zZXRjdF9DcmVkUmV2UmVzRGF0YSAqLworMHg2NywweDJBLDB4MDAsMHgyNiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQwNTJdIE9CSl9zZXRjdF9QQ2VydFJlcURhdGEgKi8KKzB4NjcsMHgyQSwweDAwLDB4MjcsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MDU2XSBPQkpfc2V0Y3RfUENlcnRSZXNUQlMgKi8KKzB4NjcsMHgyQSwweDAwLDB4MjgsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MDYwXSBPQkpfc2V0Y3RfQmF0Y2hBZG1pblJlcURhdGEgKi8KKzB4NjcsMHgyQSwweDAwLDB4MjksICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MDY0XSBPQkpfc2V0Y3RfQmF0Y2hBZG1pblJlc0RhdGEgKi8KKzB4NjcsMHgyQSwweDAwLDB4MkEsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MDY4XSBPQkpfc2V0Y3RfQ2FyZENJbml0UmVzVEJTICovCisweDY3LDB4MkEsMHgwMCwweDJCLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDA3Ml0gT0JKX3NldGN0X01lQXFDSW5pdFJlc1RCUyAqLworMHg2NywweDJBLDB4MDAsMHgyQywgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQwNzZdIE9CSl9zZXRjdF9SZWdGb3JtUmVzVEJTICovCisweDY3LDB4MkEsMHgwMCwweDJELCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDA4MF0gT0JKX3NldGN0X0NlcnRSZXFEYXRhICovCisweDY3LDB4MkEsMHgwMCwweDJFLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDA4NF0gT0JKX3NldGN0X0NlcnRSZXFUQlMgKi8KKzB4NjcsMHgyQSwweDAwLDB4MkYsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MDg4XSBPQkpfc2V0Y3RfQ2VydFJlc0RhdGEgKi8KKzB4NjcsMHgyQSwweDAwLDB4MzAsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MDkyXSBPQkpfc2V0Y3RfQ2VydElucVJlcVRCUyAqLworMHg2NywweDJBLDB4MDAsMHgzMSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQwOTZdIE9CSl9zZXRjdF9FcnJvclRCUyAqLworMHg2NywweDJBLDB4MDAsMHgzMiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQxMDBdIE9CSl9zZXRjdF9QSUR1YWxTaWduZWRUQkUgKi8KKzB4NjcsMHgyQSwweDAwLDB4MzMsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MTA0XSBPQkpfc2V0Y3RfUElVbnNpZ25lZFRCRSAqLworMHg2NywweDJBLDB4MDAsMHgzNCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQxMDhdIE9CSl9zZXRjdF9BdXRoUmVxVEJFICovCisweDY3LDB4MkEsMHgwMCwweDM1LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDExMl0gT0JKX3NldGN0X0F1dGhSZXNUQkUgKi8KKzB4NjcsMHgyQSwweDAwLDB4MzYsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MTE2XSBPQkpfc2V0Y3RfQXV0aFJlc1RCRVggKi8KKzB4NjcsMHgyQSwweDAwLDB4MzcsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MTIwXSBPQkpfc2V0Y3RfQXV0aFRva2VuVEJFICovCisweDY3LDB4MkEsMHgwMCwweDM4LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDEyNF0gT0JKX3NldGN0X0NhcFRva2VuVEJFICovCisweDY3LDB4MkEsMHgwMCwweDM5LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDEyOF0gT0JKX3NldGN0X0NhcFRva2VuVEJFWCAqLworMHg2NywweDJBLDB4MDAsMHgzQSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQxMzJdIE9CSl9zZXRjdF9BY3FDYXJkQ29kZU1zZ1RCRSAqLworMHg2NywweDJBLDB4MDAsMHgzQiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQxMzZdIE9CSl9zZXRjdF9BdXRoUmV2UmVxVEJFICovCisweDY3LDB4MkEsMHgwMCwweDNDLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDE0MF0gT0JKX3NldGN0X0F1dGhSZXZSZXNUQkUgKi8KKzB4NjcsMHgyQSwweDAwLDB4M0QsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MTQ0XSBPQkpfc2V0Y3RfQXV0aFJldlJlc1RCRUIgKi8KKzB4NjcsMHgyQSwweDAwLDB4M0UsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MTQ4XSBPQkpfc2V0Y3RfQ2FwUmVxVEJFICovCisweDY3LDB4MkEsMHgwMCwweDNGLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDE1Ml0gT0JKX3NldGN0X0NhcFJlcVRCRVggKi8KKzB4NjcsMHgyQSwweDAwLDB4NDAsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MTU2XSBPQkpfc2V0Y3RfQ2FwUmVzVEJFICovCisweDY3LDB4MkEsMHgwMCwweDQxLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDE2MF0gT0JKX3NldGN0X0NhcFJldlJlcVRCRSAqLworMHg2NywweDJBLDB4MDAsMHg0MiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQxNjRdIE9CSl9zZXRjdF9DYXBSZXZSZXFUQkVYICovCisweDY3LDB4MkEsMHgwMCwweDQzLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDE2OF0gT0JKX3NldGN0X0NhcFJldlJlc1RCRSAqLworMHg2NywweDJBLDB4MDAsMHg0NCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQxNzJdIE9CSl9zZXRjdF9DcmVkUmVxVEJFICovCisweDY3LDB4MkEsMHgwMCwweDQ1LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDE3Nl0gT0JKX3NldGN0X0NyZWRSZXFUQkVYICovCisweDY3LDB4MkEsMHgwMCwweDQ2LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDE4MF0gT0JKX3NldGN0X0NyZWRSZXNUQkUgKi8KKzB4NjcsMHgyQSwweDAwLDB4NDcsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MTg0XSBPQkpfc2V0Y3RfQ3JlZFJldlJlcVRCRSAqLworMHg2NywweDJBLDB4MDAsMHg0OCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQxODhdIE9CSl9zZXRjdF9DcmVkUmV2UmVxVEJFWCAqLworMHg2NywweDJBLDB4MDAsMHg0OSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQxOTJdIE9CSl9zZXRjdF9DcmVkUmV2UmVzVEJFICovCisweDY3LDB4MkEsMHgwMCwweDRBLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDE5Nl0gT0JKX3NldGN0X0JhdGNoQWRtaW5SZXFUQkUgKi8KKzB4NjcsMHgyQSwweDAwLDB4NEIsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MjAwXSBPQkpfc2V0Y3RfQmF0Y2hBZG1pblJlc1RCRSAqLworMHg2NywweDJBLDB4MDAsMHg0QywgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQyMDRdIE9CSl9zZXRjdF9SZWdGb3JtUmVxVEJFICovCisweDY3LDB4MkEsMHgwMCwweDRELCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDIwOF0gT0JKX3NldGN0X0NlcnRSZXFUQkUgKi8KKzB4NjcsMHgyQSwweDAwLDB4NEUsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MjEyXSBPQkpfc2V0Y3RfQ2VydFJlcVRCRVggKi8KKzB4NjcsMHgyQSwweDAwLDB4NEYsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MjE2XSBPQkpfc2V0Y3RfQ2VydFJlc1RCRSAqLworMHg2NywweDJBLDB4MDAsMHg1MCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQyMjBdIE9CSl9zZXRjdF9DUkxOb3RpZmljYXRpb25UQlMgKi8KKzB4NjcsMHgyQSwweDAwLDB4NTEsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MjI0XSBPQkpfc2V0Y3RfQ1JMTm90aWZpY2F0aW9uUmVzVEJTICovCisweDY3LDB4MkEsMHgwMCwweDUyLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDIyOF0gT0JKX3NldGN0X0JDSURpc3RyaWJ1dGlvblRCUyAqLworMHg2NywweDJBLDB4MDEsMHgwMSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQyMzJdIE9CSl9zZXRleHRfZ2VuQ3J5cHQgKi8KKzB4NjcsMHgyQSwweDAxLDB4MDMsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MjM2XSBPQkpfc2V0ZXh0X21pQXV0aCAqLworMHg2NywweDJBLDB4MDEsMHgwNCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQyNDBdIE9CSl9zZXRleHRfcGluU2VjdXJlICovCisweDY3LDB4MkEsMHgwMSwweDA1LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDI0NF0gT0JKX3NldGV4dF9waW5BbnkgKi8KKzB4NjcsMHgyQSwweDAxLDB4MDcsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MjQ4XSBPQkpfc2V0ZXh0X3RyYWNrMiAqLworMHg2NywweDJBLDB4MDEsMHgwOCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQyNTJdIE9CSl9zZXRleHRfY3YgKi8KKzB4NjcsMHgyQSwweDA1LDB4MDAsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MjU2XSBPQkpfc2V0X3BvbGljeV9yb290ICovCisweDY3LDB4MkEsMHgwNywweDAwLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDI2MF0gT0JKX3NldENleHRfaGFzaGVkUm9vdCAqLworMHg2NywweDJBLDB4MDcsMHgwMSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQyNjRdIE9CSl9zZXRDZXh0X2NlcnRUeXBlICovCisweDY3LDB4MkEsMHgwNywweDAyLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDI2OF0gT0JKX3NldENleHRfbWVyY2hEYXRhICovCisweDY3LDB4MkEsMHgwNywweDAzLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDI3Ml0gT0JKX3NldENleHRfY0NlcnRSZXF1aXJlZCAqLworMHg2NywweDJBLDB4MDcsMHgwNCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQyNzZdIE9CSl9zZXRDZXh0X3R1bm5lbGluZyAqLworMHg2NywweDJBLDB4MDcsMHgwNSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQyODBdIE9CSl9zZXRDZXh0X3NldEV4dCAqLworMHg2NywweDJBLDB4MDcsMHgwNiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQyODRdIE9CSl9zZXRDZXh0X3NldFF1YWxmICovCisweDY3LDB4MkEsMHgwNywweDA3LCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDI4OF0gT0JKX3NldENleHRfUEdXWWNhcGFiaWxpdGllcyAqLworMHg2NywweDJBLDB4MDcsMHgwOCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQyOTJdIE9CSl9zZXRDZXh0X1Rva2VuSWRlbnRpZmllciAqLworMHg2NywweDJBLDB4MDcsMHgwOSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQyOTZdIE9CSl9zZXRDZXh0X1RyYWNrMkRhdGEgKi8KKzB4NjcsMHgyQSwweDA3LDB4MEEsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MzAwXSBPQkpfc2V0Q2V4dF9Ub2tlblR5cGUgKi8KKzB4NjcsMHgyQSwweDA3LDB4MEIsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MzA0XSBPQkpfc2V0Q2V4dF9Jc3N1ZXJDYXBhYmlsaXRpZXMgKi8KKzB4NjcsMHgyQSwweDAzLDB4MDAsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MzA4XSBPQkpfc2V0QXR0cl9DZXJ0ICovCisweDY3LDB4MkEsMHgwMywweDAxLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDMxMl0gT0JKX3NldEF0dHJfUEdXWWNhcCAqLworMHg2NywweDJBLDB4MDMsMHgwMiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQzMTZdIE9CSl9zZXRBdHRyX1Rva2VuVHlwZSAqLworMHg2NywweDJBLDB4MDMsMHgwMywgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQzMjBdIE9CSl9zZXRBdHRyX0lzc0NhcCAqLworMHg2NywweDJBLDB4MDMsMHgwMCwweDAwLCAgICAgICAgICAgICAgICAgICAgLyogWzQzMjRdIE9CSl9zZXRfcm9vdEtleVRodW1iICovCisweDY3LDB4MkEsMHgwMywweDAwLDB4MDEsICAgICAgICAgICAgICAgICAgICAvKiBbNDMyOV0gT0JKX3NldF9hZGRQb2xpY3kgKi8KKzB4NjcsMHgyQSwweDAzLDB4MDIsMHgwMSwgICAgICAgICAgICAgICAgICAgIC8qIFs0MzM0XSBPQkpfc2V0QXR0cl9Ub2tlbl9FTVYgKi8KKzB4NjcsMHgyQSwweDAzLDB4MDIsMHgwMiwgICAgICAgICAgICAgICAgICAgIC8qIFs0MzM5XSBPQkpfc2V0QXR0cl9Ub2tlbl9CMFByaW1lICovCisweDY3LDB4MkEsMHgwMywweDAzLDB4MDMsICAgICAgICAgICAgICAgICAgICAvKiBbNDM0NF0gT0JKX3NldEF0dHJfSXNzQ2FwX0NWTSAqLworMHg2NywweDJBLDB4MDMsMHgwMywweDA0LCAgICAgICAgICAgICAgICAgICAgLyogWzQzNDldIE9CSl9zZXRBdHRyX0lzc0NhcF9UMiAqLworMHg2NywweDJBLDB4MDMsMHgwMywweDA1LCAgICAgICAgICAgICAgICAgICAgLyogWzQzNTRdIE9CSl9zZXRBdHRyX0lzc0NhcF9TaWcgKi8KKzB4NjcsMHgyQSwweDAzLDB4MDMsMHgwMywweDAxLCAgICAgICAgICAgICAgIC8qIFs0MzU5XSBPQkpfc2V0QXR0cl9HZW5DcnlwdGdybSAqLworMHg2NywweDJBLDB4MDMsMHgwMywweDA0LDB4MDEsICAgICAgICAgICAgICAgLyogWzQzNjVdIE9CSl9zZXRBdHRyX1QyRW5jICovCisweDY3LDB4MkEsMHgwMywweDAzLDB4MDQsMHgwMiwgICAgICAgICAgICAgICAvKiBbNDM3MV0gT0JKX3NldEF0dHJfVDJjbGVhcnR4dCAqLworMHg2NywweDJBLDB4MDMsMHgwMywweDA1LDB4MDEsICAgICAgICAgICAgICAgLyogWzQzNzddIE9CSl9zZXRBdHRyX1Rva0lDQ3NpZyAqLworMHg2NywweDJBLDB4MDMsMHgwMywweDA1LDB4MDIsICAgICAgICAgICAgICAgLyogWzQzODNdIE9CSl9zZXRBdHRyX1NlY0RldlNpZyAqLworMHg2NywweDJBLDB4MDgsMHgwMSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQzODldIE9CSl9zZXRfYnJhbmRfSUFUQV9BVEEgKi8KKzB4NjcsMHgyQSwweDA4LDB4MUUsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0MzkzXSBPQkpfc2V0X2JyYW5kX0RpbmVycyAqLworMHg2NywweDJBLDB4MDgsMHgyMiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQzOTddIE9CSl9zZXRfYnJhbmRfQW1lcmljYW5FeHByZXNzICovCisweDY3LDB4MkEsMHgwOCwweDIzLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDQwMV0gT0JKX3NldF9icmFuZF9KQ0IgKi8KKzB4NjcsMHgyQSwweDA4LDB4MDQsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0NDA1XSBPQkpfc2V0X2JyYW5kX1Zpc2EgKi8KKzB4NjcsMHgyQSwweDA4LDB4MDUsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0NDA5XSBPQkpfc2V0X2JyYW5kX01hc3RlckNhcmQgKi8KKzB4NjcsMHgyQSwweDA4LDB4QUUsMHg3QiwgICAgICAgICAgICAgICAgICAgIC8qIFs0NDEzXSBPQkpfc2V0X2JyYW5kX05vdnVzICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAzLDB4MEEsICAgICAvKiBbNDQxOF0gT0JKX2Rlc19jZG1mICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDEsMHgwNiwvKiBbNDQyNl0gT0JKX3JzYU9BRVBFbmNyeXB0aW9uU0VUICovCisweDY3LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDQzNV0gT0JKX2ludGVybmF0aW9uYWxfb3JnYW5pemF0aW9ucyAqLworMHgyQiwweDA2LDB4MDEsMHgwNCwweDAxLDB4ODIsMHgzNywweDE0LDB4MDIsMHgwMiwvKiBbNDQzNl0gT0JKX21zX3NtYXJ0Y2FyZF9sb2dpbiAqLworMHgyQiwweDA2LDB4MDEsMHgwNCwweDAxLDB4ODIsMHgzNywweDE0LDB4MDIsMHgwMywvKiBbNDQ0Nl0gT0JKX21zX3VwbiAqLworMHg1NSwweDA0LDB4MDksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQ0NTZdIE9CSl9zdHJlZXRBZGRyZXNzICovCisweDU1LDB4MDQsMHgxMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDQ1OV0gT0JKX3Bvc3RhbENvZGUgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MTUsICAgICAgICAgIC8qIFs0NDYyXSBPQkpfaWRfcHBsICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDAxLDB4MEUsICAgICAvKiBbNDQ2OV0gT0JKX3Byb3h5Q2VydEluZm8gKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MTUsMHgwMCwgICAgIC8qIFs0NDc3XSBPQkpfaWRfcHBsX2FueUxhbmd1YWdlICovCisweDJCLDB4MDYsMHgwMSwweDA1LDB4MDUsMHgwNywweDE1LDB4MDEsICAgICAvKiBbNDQ4NV0gT0JKX2lkX3BwbF9pbmhlcml0QWxsICovCisweDU1LDB4MUQsMHgxRSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDQ5M10gT0JKX25hbWVfY29uc3RyYWludHMgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MTUsMHgwMiwgICAgIC8qIFs0NDk2XSBPQkpfSW5kZXBlbmRlbnQgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwMSwweDBCLC8qIFs0NTA0XSBPQkpfc2hhMjU2V2l0aFJTQUVuY3J5cHRpb24gKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwMSwweDBDLC8qIFs0NTEzXSBPQkpfc2hhMzg0V2l0aFJTQUVuY3J5cHRpb24gKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwMSwweDBELC8qIFs0NTIyXSBPQkpfc2hhNTEyV2l0aFJTQUVuY3J5cHRpb24gKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwMSwweDBFLC8qIFs0NTMxXSBPQkpfc2hhMjI0V2l0aFJTQUVuY3J5cHRpb24gKi8KKzB4NjAsMHg4NiwweDQ4LDB4MDEsMHg2NSwweDAzLDB4MDQsMHgwMiwweDAxLC8qIFs0NTQwXSBPQkpfc2hhMjU2ICovCisweDYwLDB4ODYsMHg0OCwweDAxLDB4NjUsMHgwMywweDA0LDB4MDIsMHgwMiwvKiBbNDU0OV0gT0JKX3NoYTM4NCAqLworMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAyLDB4MDMsLyogWzQ1NThdIE9CSl9zaGE1MTIgKi8KKzB4NjAsMHg4NiwweDQ4LDB4MDEsMHg2NSwweDAzLDB4MDQsMHgwMiwweDA0LC8qIFs0NTY3XSBPQkpfc2hhMjI0ICovCisweDJCLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDU3Nl0gT0JKX2lkZW50aWZpZWRfb3JnYW5pemF0aW9uICovCisweDJCLDB4ODEsMHgwNCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNDU3N10gT0JKX2NlcnRpY29tX2FyYyAqLworMHg2NywweDJCLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQ1ODBdIE9CSl93YXAgKi8KKzB4NjcsMHgyQiwweDAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0NTgyXSBPQkpfd2FwX3dzZyAqLworMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDEsMHgwMiwweDAzLCAgICAgLyogWzQ1ODVdIE9CSl9YOV82Ml9pZF9jaGFyYWN0ZXJpc3RpY190d29fYmFzaXMgKi8KKzB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAxLDB4MDIsMHgwMywweDAxLC8qIFs0NTkzXSBPQkpfWDlfNjJfb25CYXNpcyAqLworMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDEsMHgwMiwweDAzLDB4MDIsLyogWzQ2MDJdIE9CSl9YOV82Ml90cEJhc2lzICovCisweDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMSwweDAyLDB4MDMsMHgwMywvKiBbNDYxMV0gT0JKX1g5XzYyX3BwQmFzaXMgKi8KKzB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAzLDB4MDAsMHgwMSwgICAgIC8qIFs0NjIwXSBPQkpfWDlfNjJfYzJwbmIxNjN2MSAqLworMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDMsMHgwMCwweDAyLCAgICAgLyogWzQ2MjhdIE9CSl9YOV82Ml9jMnBuYjE2M3YyICovCisweDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMywweDAwLDB4MDMsICAgICAvKiBbNDYzNl0gT0JKX1g5XzYyX2MycG5iMTYzdjMgKi8KKzB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAzLDB4MDAsMHgwNCwgICAgIC8qIFs0NjQ0XSBPQkpfWDlfNjJfYzJwbmIxNzZ2MSAqLworMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDMsMHgwMCwweDA1LCAgICAgLyogWzQ2NTJdIE9CSl9YOV82Ml9jMnRuYjE5MXYxICovCisweDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMywweDAwLDB4MDYsICAgICAvKiBbNDY2MF0gT0JKX1g5XzYyX2MydG5iMTkxdjIgKi8KKzB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAzLDB4MDAsMHgwNywgICAgIC8qIFs0NjY4XSBPQkpfWDlfNjJfYzJ0bmIxOTF2MyAqLworMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDMsMHgwMCwweDA4LCAgICAgLyogWzQ2NzZdIE9CSl9YOV82Ml9jMm9uYjE5MXY0ICovCisweDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMywweDAwLDB4MDksICAgICAvKiBbNDY4NF0gT0JKX1g5XzYyX2Myb25iMTkxdjUgKi8KKzB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAzLDB4MDAsMHgwQSwgICAgIC8qIFs0NjkyXSBPQkpfWDlfNjJfYzJwbmIyMDh3MSAqLworMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDMsMHgwMCwweDBCLCAgICAgLyogWzQ3MDBdIE9CSl9YOV82Ml9jMnRuYjIzOXYxICovCisweDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMywweDAwLDB4MEMsICAgICAvKiBbNDcwOF0gT0JKX1g5XzYyX2MydG5iMjM5djIgKi8KKzB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAzLDB4MDAsMHgwRCwgICAgIC8qIFs0NzE2XSBPQkpfWDlfNjJfYzJ0bmIyMzl2MyAqLworMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDMsMHgwMCwweDBFLCAgICAgLyogWzQ3MjRdIE9CSl9YOV82Ml9jMm9uYjIzOXY0ICovCisweDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMywweDAwLDB4MEYsICAgICAvKiBbNDczMl0gT0JKX1g5XzYyX2Myb25iMjM5djUgKi8KKzB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAzLDB4MDAsMHgxMCwgICAgIC8qIFs0NzQwXSBPQkpfWDlfNjJfYzJwbmIyNzJ3MSAqLworMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDMsMHgwMCwweDExLCAgICAgLyogWzQ3NDhdIE9CSl9YOV82Ml9jMnBuYjMwNHcxICovCisweDJBLDB4ODYsMHg0OCwweENFLDB4M0QsMHgwMywweDAwLDB4MTIsICAgICAvKiBbNDc1Nl0gT0JKX1g5XzYyX2MydG5iMzU5djEgKi8KKzB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDAzLDB4MDAsMHgxMywgICAgIC8qIFs0NzY0XSBPQkpfWDlfNjJfYzJwbmIzNjh3MSAqLworMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDMsMHgwMCwweDE0LCAgICAgLyogWzQ3NzJdIE9CSl9YOV82Ml9jMnRuYjQzMXIxICovCisweDJCLDB4ODEsMHgwNCwweDAwLDB4MDYsICAgICAgICAgICAgICAgICAgICAvKiBbNDc4MF0gT0JKX3NlY3AxMTJyMSAqLworMHgyQiwweDgxLDB4MDQsMHgwMCwweDA3LCAgICAgICAgICAgICAgICAgICAgLyogWzQ3ODVdIE9CSl9zZWNwMTEycjIgKi8KKzB4MkIsMHg4MSwweDA0LDB4MDAsMHgxQywgICAgICAgICAgICAgICAgICAgIC8qIFs0NzkwXSBPQkpfc2VjcDEyOHIxICovCisweDJCLDB4ODEsMHgwNCwweDAwLDB4MUQsICAgICAgICAgICAgICAgICAgICAvKiBbNDc5NV0gT0JKX3NlY3AxMjhyMiAqLworMHgyQiwweDgxLDB4MDQsMHgwMCwweDA5LCAgICAgICAgICAgICAgICAgICAgLyogWzQ4MDBdIE9CSl9zZWNwMTYwazEgKi8KKzB4MkIsMHg4MSwweDA0LDB4MDAsMHgwOCwgICAgICAgICAgICAgICAgICAgIC8qIFs0ODA1XSBPQkpfc2VjcDE2MHIxICovCisweDJCLDB4ODEsMHgwNCwweDAwLDB4MUUsICAgICAgICAgICAgICAgICAgICAvKiBbNDgxMF0gT0JKX3NlY3AxNjByMiAqLworMHgyQiwweDgxLDB4MDQsMHgwMCwweDFGLCAgICAgICAgICAgICAgICAgICAgLyogWzQ4MTVdIE9CSl9zZWNwMTkyazEgKi8KKzB4MkIsMHg4MSwweDA0LDB4MDAsMHgyMCwgICAgICAgICAgICAgICAgICAgIC8qIFs0ODIwXSBPQkpfc2VjcDIyNGsxICovCisweDJCLDB4ODEsMHgwNCwweDAwLDB4MjEsICAgICAgICAgICAgICAgICAgICAvKiBbNDgyNV0gT0JKX3NlY3AyMjRyMSAqLworMHgyQiwweDgxLDB4MDQsMHgwMCwweDBBLCAgICAgICAgICAgICAgICAgICAgLyogWzQ4MzBdIE9CSl9zZWNwMjU2azEgKi8KKzB4MkIsMHg4MSwweDA0LDB4MDAsMHgyMiwgICAgICAgICAgICAgICAgICAgIC8qIFs0ODM1XSBPQkpfc2VjcDM4NHIxICovCisweDJCLDB4ODEsMHgwNCwweDAwLDB4MjMsICAgICAgICAgICAgICAgICAgICAvKiBbNDg0MF0gT0JKX3NlY3A1MjFyMSAqLworMHgyQiwweDgxLDB4MDQsMHgwMCwweDA0LCAgICAgICAgICAgICAgICAgICAgLyogWzQ4NDVdIE9CSl9zZWN0MTEzcjEgKi8KKzB4MkIsMHg4MSwweDA0LDB4MDAsMHgwNSwgICAgICAgICAgICAgICAgICAgIC8qIFs0ODUwXSBPQkpfc2VjdDExM3IyICovCisweDJCLDB4ODEsMHgwNCwweDAwLDB4MTYsICAgICAgICAgICAgICAgICAgICAvKiBbNDg1NV0gT0JKX3NlY3QxMzFyMSAqLworMHgyQiwweDgxLDB4MDQsMHgwMCwweDE3LCAgICAgICAgICAgICAgICAgICAgLyogWzQ4NjBdIE9CSl9zZWN0MTMxcjIgKi8KKzB4MkIsMHg4MSwweDA0LDB4MDAsMHgwMSwgICAgICAgICAgICAgICAgICAgIC8qIFs0ODY1XSBPQkpfc2VjdDE2M2sxICovCisweDJCLDB4ODEsMHgwNCwweDAwLDB4MDIsICAgICAgICAgICAgICAgICAgICAvKiBbNDg3MF0gT0JKX3NlY3QxNjNyMSAqLworMHgyQiwweDgxLDB4MDQsMHgwMCwweDBGLCAgICAgICAgICAgICAgICAgICAgLyogWzQ4NzVdIE9CSl9zZWN0MTYzcjIgKi8KKzB4MkIsMHg4MSwweDA0LDB4MDAsMHgxOCwgICAgICAgICAgICAgICAgICAgIC8qIFs0ODgwXSBPQkpfc2VjdDE5M3IxICovCisweDJCLDB4ODEsMHgwNCwweDAwLDB4MTksICAgICAgICAgICAgICAgICAgICAvKiBbNDg4NV0gT0JKX3NlY3QxOTNyMiAqLworMHgyQiwweDgxLDB4MDQsMHgwMCwweDFBLCAgICAgICAgICAgICAgICAgICAgLyogWzQ4OTBdIE9CSl9zZWN0MjMzazEgKi8KKzB4MkIsMHg4MSwweDA0LDB4MDAsMHgxQiwgICAgICAgICAgICAgICAgICAgIC8qIFs0ODk1XSBPQkpfc2VjdDIzM3IxICovCisweDJCLDB4ODEsMHgwNCwweDAwLDB4MDMsICAgICAgICAgICAgICAgICAgICAvKiBbNDkwMF0gT0JKX3NlY3QyMzlrMSAqLworMHgyQiwweDgxLDB4MDQsMHgwMCwweDEwLCAgICAgICAgICAgICAgICAgICAgLyogWzQ5MDVdIE9CSl9zZWN0MjgzazEgKi8KKzB4MkIsMHg4MSwweDA0LDB4MDAsMHgxMSwgICAgICAgICAgICAgICAgICAgIC8qIFs0OTEwXSBPQkpfc2VjdDI4M3IxICovCisweDJCLDB4ODEsMHgwNCwweDAwLDB4MjQsICAgICAgICAgICAgICAgICAgICAvKiBbNDkxNV0gT0JKX3NlY3Q0MDlrMSAqLworMHgyQiwweDgxLDB4MDQsMHgwMCwweDI1LCAgICAgICAgICAgICAgICAgICAgLyogWzQ5MjBdIE9CSl9zZWN0NDA5cjEgKi8KKzB4MkIsMHg4MSwweDA0LDB4MDAsMHgyNiwgICAgICAgICAgICAgICAgICAgIC8qIFs0OTI1XSBPQkpfc2VjdDU3MWsxICovCisweDJCLDB4ODEsMHgwNCwweDAwLDB4MjcsICAgICAgICAgICAgICAgICAgICAvKiBbNDkzMF0gT0JKX3NlY3Q1NzFyMSAqLworMHg2NywweDJCLDB4MDEsMHgwNCwweDAxLCAgICAgICAgICAgICAgICAgICAgLyogWzQ5MzVdIE9CSl93YXBfd3NnX2lkbV9lY2lkX3d0bHMxICovCisweDY3LDB4MkIsMHgwMSwweDA0LDB4MDMsICAgICAgICAgICAgICAgICAgICAvKiBbNDk0MF0gT0JKX3dhcF93c2dfaWRtX2VjaWRfd3RsczMgKi8KKzB4NjcsMHgyQiwweDAxLDB4MDQsMHgwNCwgICAgICAgICAgICAgICAgICAgIC8qIFs0OTQ1XSBPQkpfd2FwX3dzZ19pZG1fZWNpZF93dGxzNCAqLworMHg2NywweDJCLDB4MDEsMHgwNCwweDA1LCAgICAgICAgICAgICAgICAgICAgLyogWzQ5NTBdIE9CSl93YXBfd3NnX2lkbV9lY2lkX3d0bHM1ICovCisweDY3LDB4MkIsMHgwMSwweDA0LDB4MDYsICAgICAgICAgICAgICAgICAgICAvKiBbNDk1NV0gT0JKX3dhcF93c2dfaWRtX2VjaWRfd3RsczYgKi8KKzB4NjcsMHgyQiwweDAxLDB4MDQsMHgwNywgICAgICAgICAgICAgICAgICAgIC8qIFs0OTYwXSBPQkpfd2FwX3dzZ19pZG1fZWNpZF93dGxzNyAqLworMHg2NywweDJCLDB4MDEsMHgwNCwweDA4LCAgICAgICAgICAgICAgICAgICAgLyogWzQ5NjVdIE9CSl93YXBfd3NnX2lkbV9lY2lkX3d0bHM4ICovCisweDY3LDB4MkIsMHgwMSwweDA0LDB4MDksICAgICAgICAgICAgICAgICAgICAvKiBbNDk3MF0gT0JKX3dhcF93c2dfaWRtX2VjaWRfd3RsczkgKi8KKzB4NjcsMHgyQiwweDAxLDB4MDQsMHgwQSwgICAgICAgICAgICAgICAgICAgIC8qIFs0OTc1XSBPQkpfd2FwX3dzZ19pZG1fZWNpZF93dGxzMTAgKi8KKzB4NjcsMHgyQiwweDAxLDB4MDQsMHgwQiwgICAgICAgICAgICAgICAgICAgIC8qIFs0OTgwXSBPQkpfd2FwX3dzZ19pZG1fZWNpZF93dGxzMTEgKi8KKzB4NjcsMHgyQiwweDAxLDB4MDQsMHgwQywgICAgICAgICAgICAgICAgICAgIC8qIFs0OTg1XSBPQkpfd2FwX3dzZ19pZG1fZWNpZF93dGxzMTIgKi8KKzB4NTUsMHgxRCwweDIwLDB4MDAsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0OTkwXSBPQkpfYW55X3BvbGljeSAqLworMHg1NSwweDFELDB4MjEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzQ5OTRdIE9CSl9wb2xpY3lfbWFwcGluZ3MgKi8KKzB4NTUsMHgxRCwweDM2LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs0OTk3XSBPQkpfaW5oaWJpdF9hbnlfcG9saWN5ICovCisweDJBLDB4ODMsMHgwOCwweDhDLDB4OUEsMHg0QiwweDNELDB4MDEsMHgwMSwweDAxLDB4MDIsLyogWzUwMDBdIE9CSl9jYW1lbGxpYV8xMjhfY2JjICovCisweDJBLDB4ODMsMHgwOCwweDhDLDB4OUEsMHg0QiwweDNELDB4MDEsMHgwMSwweDAxLDB4MDMsLyogWzUwMTFdIE9CSl9jYW1lbGxpYV8xOTJfY2JjICovCisweDJBLDB4ODMsMHgwOCwweDhDLDB4OUEsMHg0QiwweDNELDB4MDEsMHgwMSwweDAxLDB4MDQsLyogWzUwMjJdIE9CSl9jYW1lbGxpYV8yNTZfY2JjICovCisweDAzLDB4QTIsMHgzMSwweDA1LDB4MDMsMHgwMSwweDA5LDB4MDEsICAgICAvKiBbNTAzM10gT0JKX2NhbWVsbGlhXzEyOF9lY2IgKi8KKzB4MDMsMHhBMiwweDMxLDB4MDUsMHgwMywweDAxLDB4MDksMHgxNSwgICAgIC8qIFs1MDQxXSBPQkpfY2FtZWxsaWFfMTkyX2VjYiAqLworMHgwMywweEEyLDB4MzEsMHgwNSwweDAzLDB4MDEsMHgwOSwweDI5LCAgICAgLyogWzUwNDldIE9CSl9jYW1lbGxpYV8yNTZfZWNiICovCisweDAzLDB4QTIsMHgzMSwweDA1LDB4MDMsMHgwMSwweDA5LDB4MDQsICAgICAvKiBbNTA1N10gT0JKX2NhbWVsbGlhXzEyOF9jZmIxMjggKi8KKzB4MDMsMHhBMiwweDMxLDB4MDUsMHgwMywweDAxLDB4MDksMHgxOCwgICAgIC8qIFs1MDY1XSBPQkpfY2FtZWxsaWFfMTkyX2NmYjEyOCAqLworMHgwMywweEEyLDB4MzEsMHgwNSwweDAzLDB4MDEsMHgwOSwweDJDLCAgICAgLyogWzUwNzNdIE9CSl9jYW1lbGxpYV8yNTZfY2ZiMTI4ICovCisweDAzLDB4QTIsMHgzMSwweDA1LDB4MDMsMHgwMSwweDA5LDB4MDMsICAgICAvKiBbNTA4MV0gT0JKX2NhbWVsbGlhXzEyOF9vZmIxMjggKi8KKzB4MDMsMHhBMiwweDMxLDB4MDUsMHgwMywweDAxLDB4MDksMHgxNywgICAgIC8qIFs1MDg5XSBPQkpfY2FtZWxsaWFfMTkyX29mYjEyOCAqLworMHgwMywweEEyLDB4MzEsMHgwNSwweDAzLDB4MDEsMHgwOSwweDJCLCAgICAgLyogWzUwOTddIE9CSl9jYW1lbGxpYV8yNTZfb2ZiMTI4ICovCisweDU1LDB4MUQsMHgwOSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTEwNV0gT0JKX3N1YmplY3RfZGlyZWN0b3J5X2F0dHJpYnV0ZXMgKi8KKzB4NTUsMHgxRCwweDFDLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1MTA4XSBPQkpfaXNzdWluZ19kaXN0cmlidXRpb25fcG9pbnQgKi8KKzB4NTUsMHgxRCwweDFELCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1MTExXSBPQkpfY2VydGlmaWNhdGVfaXNzdWVyICovCisweDJBLDB4ODMsMHgxQSwweDhDLDB4OUEsMHg0NCwgICAgICAgICAgICAgICAvKiBbNTExNF0gT0JKX2tpc2EgKi8KKzB4MkEsMHg4MywweDFBLDB4OEMsMHg5QSwweDQ0LDB4MDEsMHgwMywgICAgIC8qIFs1MTIwXSBPQkpfc2VlZF9lY2IgKi8KKzB4MkEsMHg4MywweDFBLDB4OEMsMHg5QSwweDQ0LDB4MDEsMHgwNCwgICAgIC8qIFs1MTI4XSBPQkpfc2VlZF9jYmMgKi8KKzB4MkEsMHg4MywweDFBLDB4OEMsMHg5QSwweDQ0LDB4MDEsMHgwNiwgICAgIC8qIFs1MTM2XSBPQkpfc2VlZF9vZmIxMjggKi8KKzB4MkEsMHg4MywweDFBLDB4OEMsMHg5QSwweDQ0LDB4MDEsMHgwNSwgICAgIC8qIFs1MTQ0XSBPQkpfc2VlZF9jZmIxMjggKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA4LDB4MDEsMHgwMSwgICAgIC8qIFs1MTUyXSBPQkpfaG1hY19tZDUgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA4LDB4MDEsMHgwMiwgICAgIC8qIFs1MTYwXSBPQkpfaG1hY19zaGExICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjYsMHg3RCwweDA3LDB4NDIsMHgwRCwvKiBbNTE2OF0gT0JKX2lkX1Bhc3N3b3JkQmFzZWRNQUMgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNiwweDdELDB4MDcsMHg0MiwweDFFLC8qIFs1MTc3XSBPQkpfaWRfREhCYXNlZE1hYyAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwNCwweDEwLCAgICAgLyogWzUxODZdIE9CSl9pZF9pdF9zdXBwTGFuZ1RhZ3MgKi8KKzB4MkIsMHgwNiwweDAxLDB4MDUsMHgwNSwweDA3LDB4MzAsMHgwNSwgICAgIC8qIFs1MTk0XSBPQkpfY2FSZXBvc2l0b3J5ICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDksMHgxMCwweDAxLDB4MDksLyogWzUyMDJdIE9CSl9pZF9zbWltZV9jdF9jb21wcmVzc2VkRGF0YSAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMSwweDA5LDB4MTAsMHgwMSwweDFCLC8qIFs1MjEzXSBPQkpfaWRfY3RfYXNjaWlUZXh0V2l0aENSTEYgKi8KKzB4NjAsMHg4NiwweDQ4LDB4MDEsMHg2NSwweDAzLDB4MDQsMHgwMSwweDA1LC8qIFs1MjI0XSBPQkpfaWRfYWVzMTI4X3dyYXAgKi8KKzB4NjAsMHg4NiwweDQ4LDB4MDEsMHg2NSwweDAzLDB4MDQsMHgwMSwweDE5LC8qIFs1MjMzXSBPQkpfaWRfYWVzMTkyX3dyYXAgKi8KKzB4NjAsMHg4NiwweDQ4LDB4MDEsMHg2NSwweDAzLDB4MDQsMHgwMSwweDJELC8qIFs1MjQyXSBPQkpfaWRfYWVzMjU2X3dyYXAgKi8KKzB4MkEsMHg4NiwweDQ4LDB4Q0UsMHgzRCwweDA0LDB4MDIsICAgICAgICAgIC8qIFs1MjUxXSBPQkpfZWNkc2Ffd2l0aF9SZWNvbW1lbmRlZCAqLworMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDQsMHgwMywgICAgICAgICAgLyogWzUyNThdIE9CSl9lY2RzYV93aXRoX1NwZWNpZmllZCAqLworMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDQsMHgwMywweDAxLCAgICAgLyogWzUyNjVdIE9CSl9lY2RzYV93aXRoX1NIQTIyNCAqLworMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDQsMHgwMywweDAyLCAgICAgLyogWzUyNzNdIE9CSl9lY2RzYV93aXRoX1NIQTI1NiAqLworMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDQsMHgwMywweDAzLCAgICAgLyogWzUyODFdIE9CSl9lY2RzYV93aXRoX1NIQTM4NCAqLworMHgyQSwweDg2LDB4NDgsMHhDRSwweDNELDB4MDQsMHgwMywweDA0LCAgICAgLyogWzUyODldIE9CSl9lY2RzYV93aXRoX1NIQTUxMiAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMiwweDA2LCAgICAgLyogWzUyOTddIE9CSl9obWFjV2l0aE1ENSAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMiwweDA4LCAgICAgLyogWzUzMDVdIE9CSl9obWFjV2l0aFNIQTIyNCAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMiwweDA5LCAgICAgLyogWzUzMTNdIE9CSl9obWFjV2l0aFNIQTI1NiAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMiwweDBBLCAgICAgLyogWzUzMjFdIE9CSl9obWFjV2l0aFNIQTM4NCAqLworMHgyQSwweDg2LDB4NDgsMHg4NiwweEY3LDB4MEQsMHgwMiwweDBCLCAgICAgLyogWzUzMjldIE9CSl9obWFjV2l0aFNIQTUxMiAqLworMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAzLDB4MDEsLyogWzUzMzddIE9CSl9kc2Ffd2l0aF9TSEEyMjQgKi8KKzB4NjAsMHg4NiwweDQ4LDB4MDEsMHg2NSwweDAzLDB4MDQsMHgwMywweDAyLC8qIFs1MzQ2XSBPQkpfZHNhX3dpdGhfU0hBMjU2ICovCisweDI4LDB4Q0YsMHgwNiwweDAzLDB4MDAsMHgzNywgICAgICAgICAgICAgICAvKiBbNTM1NV0gT0JKX3doaXJscG9vbCAqLworMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLCAgICAgICAgICAgICAgICAgICAgLyogWzUzNjFdIE9CSl9jcnlwdG9wcm8gKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwOSwgICAgICAgICAgICAgICAgICAgIC8qIFs1MzY2XSBPQkpfY3J5cHRvY29tICovCisweDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgwMywgICAgICAgICAgICAgICAvKiBbNTM3MV0gT0JKX2lkX0dvc3RSMzQxMV85NF93aXRoX0dvc3RSMzQxMF8yMDAxICovCisweDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgwNCwgICAgICAgICAgICAgICAvKiBbNTM3N10gT0JKX2lkX0dvc3RSMzQxMV85NF93aXRoX0dvc3RSMzQxMF85NCAqLworMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MDksICAgICAgICAgICAgICAgLyogWzUzODNdIE9CSl9pZF9Hb3N0UjM0MTFfOTQgKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDBBLCAgICAgICAgICAgICAgIC8qIFs1Mzg5XSBPQkpfaWRfSE1BQ0dvc3RSMzQxMV85NCAqLworMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MTMsICAgICAgICAgICAgICAgLyogWzUzOTVdIE9CSl9pZF9Hb3N0UjM0MTBfMjAwMSAqLworMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MTQsICAgICAgICAgICAgICAgLyogWzU0MDFdIE9CSl9pZF9Hb3N0UjM0MTBfOTQgKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDE1LCAgICAgICAgICAgICAgIC8qIFs1NDA3XSBPQkpfaWRfR29zdDI4MTQ3Xzg5ICovCisweDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgxNiwgICAgICAgICAgICAgICAvKiBbNTQxM10gT0JKX2lkX0dvc3QyODE0N184OV9NQUMgKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDE3LCAgICAgICAgICAgICAgIC8qIFs1NDE5XSBPQkpfaWRfR29zdFIzNDExXzk0X3ByZiAqLworMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4NjIsICAgICAgICAgICAgICAgLyogWzU0MjVdIE9CSl9pZF9Hb3N0UjM0MTBfMjAwMURIICovCisweDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHg2MywgICAgICAgICAgICAgICAvKiBbNTQzMV0gT0JKX2lkX0dvc3RSMzQxMF85NERIICovCisweDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgwRSwweDAxLCAgICAgICAgICAvKiBbNTQzN10gT0JKX2lkX0dvc3QyODE0N184OV9DcnlwdG9Qcm9fS2V5TWVzaGluZyAqLworMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MEUsMHgwMCwgICAgICAgICAgLyogWzU0NDRdIE9CSl9pZF9Hb3N0MjgxNDdfODlfTm9uZV9LZXlNZXNoaW5nICovCisweDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgxRSwweDAwLCAgICAgICAgICAvKiBbNTQ1MV0gT0JKX2lkX0dvc3RSMzQxMV85NF9UZXN0UGFyYW1TZXQgKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDFFLDB4MDEsICAgICAgICAgIC8qIFs1NDU4XSBPQkpfaWRfR29zdFIzNDExXzk0X0NyeXB0b1Byb1BhcmFtU2V0ICovCisweDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgxRiwweDAwLCAgICAgICAgICAvKiBbNTQ2NV0gT0JKX2lkX0dvc3QyODE0N184OV9UZXN0UGFyYW1TZXQgKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDFGLDB4MDEsICAgICAgICAgIC8qIFs1NDcyXSBPQkpfaWRfR29zdDI4MTQ3Xzg5X0NyeXB0b1Byb19BX1BhcmFtU2V0ICovCisweDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgxRiwweDAyLCAgICAgICAgICAvKiBbNTQ3OV0gT0JKX2lkX0dvc3QyODE0N184OV9DcnlwdG9Qcm9fQl9QYXJhbVNldCAqLworMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MUYsMHgwMywgICAgICAgICAgLyogWzU0ODZdIE9CSl9pZF9Hb3N0MjgxNDdfODlfQ3J5cHRvUHJvX0NfUGFyYW1TZXQgKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDFGLDB4MDQsICAgICAgICAgIC8qIFs1NDkzXSBPQkpfaWRfR29zdDI4MTQ3Xzg5X0NyeXB0b1Byb19EX1BhcmFtU2V0ICovCisweDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgxRiwweDA1LCAgICAgICAgICAvKiBbNTUwMF0gT0JKX2lkX0dvc3QyODE0N184OV9DcnlwdG9Qcm9fT3NjYXJfMV8xX1BhcmFtU2V0ICovCisweDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgxRiwweDA2LCAgICAgICAgICAvKiBbNTUwN10gT0JKX2lkX0dvc3QyODE0N184OV9DcnlwdG9Qcm9fT3NjYXJfMV8wX1BhcmFtU2V0ICovCisweDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgxRiwweDA3LCAgICAgICAgICAvKiBbNTUxNF0gT0JKX2lkX0dvc3QyODE0N184OV9DcnlwdG9Qcm9fUklDXzFfUGFyYW1TZXQgKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDIwLDB4MDAsICAgICAgICAgIC8qIFs1NTIxXSBPQkpfaWRfR29zdFIzNDEwXzk0X1Rlc3RQYXJhbVNldCAqLworMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MjAsMHgwMiwgICAgICAgICAgLyogWzU1MjhdIE9CSl9pZF9Hb3N0UjM0MTBfOTRfQ3J5cHRvUHJvX0FfUGFyYW1TZXQgKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDIwLDB4MDMsICAgICAgICAgIC8qIFs1NTM1XSBPQkpfaWRfR29zdFIzNDEwXzk0X0NyeXB0b1Byb19CX1BhcmFtU2V0ICovCisweDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgyMCwweDA0LCAgICAgICAgICAvKiBbNTU0Ml0gT0JKX2lkX0dvc3RSMzQxMF85NF9DcnlwdG9Qcm9fQ19QYXJhbVNldCAqLworMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MjAsMHgwNSwgICAgICAgICAgLyogWzU1NDldIE9CSl9pZF9Hb3N0UjM0MTBfOTRfQ3J5cHRvUHJvX0RfUGFyYW1TZXQgKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDIxLDB4MDEsICAgICAgICAgIC8qIFs1NTU2XSBPQkpfaWRfR29zdFIzNDEwXzk0X0NyeXB0b1Byb19YY2hBX1BhcmFtU2V0ICovCisweDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgyMSwweDAyLCAgICAgICAgICAvKiBbNTU2M10gT0JKX2lkX0dvc3RSMzQxMF85NF9DcnlwdG9Qcm9fWGNoQl9QYXJhbVNldCAqLworMHgyQSwweDg1LDB4MDMsMHgwMiwweDAyLDB4MjEsMHgwMywgICAgICAgICAgLyogWzU1NzBdIE9CSl9pZF9Hb3N0UjM0MTBfOTRfQ3J5cHRvUHJvX1hjaENfUGFyYW1TZXQgKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwMiwweDIzLDB4MDAsICAgICAgICAgIC8qIFs1NTc3XSBPQkpfaWRfR29zdFIzNDEwXzIwMDFfVGVzdFBhcmFtU2V0ICovCisweDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgyMywweDAxLCAgICAgICAgICAvKiBbNTU4NF0gT0JKX2lkX0dvc3RSMzQxMF8yMDAxX0NyeXB0b1Byb19BX1BhcmFtU2V0ICovCisweDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgyMywweDAyLCAgICAgICAgICAvKiBbNTU5MV0gT0JKX2lkX0dvc3RSMzQxMF8yMDAxX0NyeXB0b1Byb19CX1BhcmFtU2V0ICovCisweDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgyMywweDAzLCAgICAgICAgICAvKiBbNTU5OF0gT0JKX2lkX0dvc3RSMzQxMF8yMDAxX0NyeXB0b1Byb19DX1BhcmFtU2V0ICovCisweDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgyNCwweDAwLCAgICAgICAgICAvKiBbNTYwNV0gT0JKX2lkX0dvc3RSMzQxMF8yMDAxX0NyeXB0b1Byb19YY2hBX1BhcmFtU2V0ICovCisweDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgyNCwweDAxLCAgICAgICAgICAvKiBbNTYxMl0gT0JKX2lkX0dvc3RSMzQxMF8yMDAxX0NyeXB0b1Byb19YY2hCX1BhcmFtU2V0ICovCisweDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgxNCwweDAxLCAgICAgICAgICAvKiBbNTYxOV0gT0JKX2lkX0dvc3RSMzQxMF85NF9hICovCisweDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgxNCwweDAyLCAgICAgICAgICAvKiBbNTYyNl0gT0JKX2lkX0dvc3RSMzQxMF85NF9hQmlzICovCisweDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgxNCwweDAzLCAgICAgICAgICAvKiBbNTYzM10gT0JKX2lkX0dvc3RSMzQxMF85NF9iICovCisweDJBLDB4ODUsMHgwMywweDAyLDB4MDIsMHgxNCwweDA0LCAgICAgICAgICAvKiBbNTY0MF0gT0JKX2lkX0dvc3RSMzQxMF85NF9iQmlzICovCisweDJBLDB4ODUsMHgwMywweDAyLDB4MDksMHgwMSwweDA2LDB4MDEsICAgICAvKiBbNTY0N10gT0JKX2lkX0dvc3QyODE0N184OV9jYyAqLworMHgyQSwweDg1LDB4MDMsMHgwMiwweDA5LDB4MDEsMHgwNSwweDAzLCAgICAgLyogWzU2NTVdIE9CSl9pZF9Hb3N0UjM0MTBfOTRfY2MgKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwOSwweDAxLDB4MDUsMHgwNCwgICAgIC8qIFs1NjYzXSBPQkpfaWRfR29zdFIzNDEwXzIwMDFfY2MgKi8KKzB4MkEsMHg4NSwweDAzLDB4MDIsMHgwOSwweDAxLDB4MDMsMHgwMywgICAgIC8qIFs1NjcxXSBPQkpfaWRfR29zdFIzNDExXzk0X3dpdGhfR29zdFIzNDEwXzk0X2NjICovCisweDJBLDB4ODUsMHgwMywweDAyLDB4MDksMHgwMSwweDAzLDB4MDQsICAgICAvKiBbNTY3OV0gT0JKX2lkX0dvc3RSMzQxMV85NF93aXRoX0dvc3RSMzQxMF8yMDAxX2NjICovCisweDJBLDB4ODUsMHgwMywweDAyLDB4MDksMHgwMSwweDA4LDB4MDEsICAgICAvKiBbNTY4N10gT0JKX2lkX0dvc3RSMzQxMF8yMDAxX1BhcmFtU2V0X2NjICovCisweDJCLDB4MDYsMHgwMSwweDA0LDB4MDEsMHg4MiwweDM3LDB4MTEsMHgwMiwvKiBbNTY5NV0gT0JKX0xvY2FsS2V5U2V0ICovCisweDU1LDB4MUQsMHgyRSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTcwNF0gT0JKX2ZyZXNoZXN0X2NybCAqLworMHgyQiwweDA2LDB4MDEsMHgwNSwweDA1LDB4MDcsMHgwOCwweDAzLCAgICAgLyogWzU3MDddIE9CSl9pZF9vbl9wZXJtYW5lbnRJZGVudGlmaWVyICovCisweDU1LDB4MDQsMHgwRSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTcxNV0gT0JKX3NlYXJjaEd1aWRlICovCisweDU1LDB4MDQsMHgwRiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTcxOF0gT0JKX2J1c2luZXNzQ2F0ZWdvcnkgKi8KKzB4NTUsMHgwNCwweDEwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NzIxXSBPQkpfcG9zdGFsQWRkcmVzcyAqLworMHg1NSwweDA0LDB4MTIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU3MjRdIE9CSl9wb3N0T2ZmaWNlQm94ICovCisweDU1LDB4MDQsMHgxMywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTcyN10gT0JKX3BoeXNpY2FsRGVsaXZlcnlPZmZpY2VOYW1lICovCisweDU1LDB4MDQsMHgxNCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTczMF0gT0JKX3RlbGVwaG9uZU51bWJlciAqLworMHg1NSwweDA0LDB4MTUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU3MzNdIE9CSl90ZWxleE51bWJlciAqLworMHg1NSwweDA0LDB4MTYsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU3MzZdIE9CSl90ZWxldGV4VGVybWluYWxJZGVudGlmaWVyICovCisweDU1LDB4MDQsMHgxNywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTczOV0gT0JKX2ZhY3NpbWlsZVRlbGVwaG9uZU51bWJlciAqLworMHg1NSwweDA0LDB4MTgsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU3NDJdIE9CSl94MTIxQWRkcmVzcyAqLworMHg1NSwweDA0LDB4MTksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU3NDVdIE9CSl9pbnRlcm5hdGlvbmFsaVNETk51bWJlciAqLworMHg1NSwweDA0LDB4MUEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU3NDhdIE9CSl9yZWdpc3RlcmVkQWRkcmVzcyAqLworMHg1NSwweDA0LDB4MUIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU3NTFdIE9CSl9kZXN0aW5hdGlvbkluZGljYXRvciAqLworMHg1NSwweDA0LDB4MUMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU3NTRdIE9CSl9wcmVmZXJyZWREZWxpdmVyeU1ldGhvZCAqLworMHg1NSwweDA0LDB4MUQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU3NTddIE9CSl9wcmVzZW50YXRpb25BZGRyZXNzICovCisweDU1LDB4MDQsMHgxRSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTc2MF0gT0JKX3N1cHBvcnRlZEFwcGxpY2F0aW9uQ29udGV4dCAqLworMHg1NSwweDA0LDB4MUYsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU3NjNdIE9CSl9tZW1iZXIgKi8KKzB4NTUsMHgwNCwweDIwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NzY2XSBPQkpfb3duZXIgKi8KKzB4NTUsMHgwNCwweDIxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NzY5XSBPQkpfcm9sZU9jY3VwYW50ICovCisweDU1LDB4MDQsMHgyMiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTc3Ml0gT0JKX3NlZUFsc28gKi8KKzB4NTUsMHgwNCwweDIzLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1Nzc1XSBPQkpfdXNlclBhc3N3b3JkICovCisweDU1LDB4MDQsMHgyNCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTc3OF0gT0JKX3VzZXJDZXJ0aWZpY2F0ZSAqLworMHg1NSwweDA0LDB4MjUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU3ODFdIE9CSl9jQUNlcnRpZmljYXRlICovCisweDU1LDB4MDQsMHgyNiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTc4NF0gT0JKX2F1dGhvcml0eVJldm9jYXRpb25MaXN0ICovCisweDU1LDB4MDQsMHgyNywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTc4N10gT0JKX2NlcnRpZmljYXRlUmV2b2NhdGlvbkxpc3QgKi8KKzB4NTUsMHgwNCwweDI4LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NzkwXSBPQkpfY3Jvc3NDZXJ0aWZpY2F0ZVBhaXIgKi8KKzB4NTUsMHgwNCwweDJGLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1NzkzXSBPQkpfZW5oYW5jZWRTZWFyY2hHdWlkZSAqLworMHg1NSwweDA0LDB4MzAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU3OTZdIE9CSl9wcm90b2NvbEluZm9ybWF0aW9uICovCisweDU1LDB4MDQsMHgzMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTc5OV0gT0JKX2Rpc3Rpbmd1aXNoZWROYW1lICovCisweDU1LDB4MDQsMHgzMiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTgwMl0gT0JKX3VuaXF1ZU1lbWJlciAqLworMHg1NSwweDA0LDB4MzMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU4MDVdIE9CSl9ob3VzZUlkZW50aWZpZXIgKi8KKzB4NTUsMHgwNCwweDM0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFs1ODA4XSBPQkpfc3VwcG9ydGVkQWxnb3JpdGhtcyAqLworMHg1NSwweDA0LDB4MzUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU4MTFdIE9CSl9kZWx0YVJldm9jYXRpb25MaXN0ICovCisweDU1LDB4MDQsMHgzNiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBbNTgxNF0gT0JKX2RtZE5hbWUgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwOSwweDEwLDB4MDMsMHgwOSwvKiBbNTgxN10gT0JKX2lkX2FsZ19QV1JJX0tFSyAqLworMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MDYsLyogWzU4MjhdIE9CSl9hZXNfMTI4X2djbSAqLworMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MDcsLyogWzU4MzddIE9CSl9hZXNfMTI4X2NjbSAqLworMHg2MCwweDg2LDB4NDgsMHgwMSwweDY1LDB4MDMsMHgwNCwweDAxLDB4MDgsLyogWzU4NDZdIE9CSl9pZF9hZXMxMjhfd3JhcF9wYWQgKi8KKzB4NjAsMHg4NiwweDQ4LDB4MDEsMHg2NSwweDAzLDB4MDQsMHgwMSwweDFBLC8qIFs1ODU1XSBPQkpfYWVzXzE5Ml9nY20gKi8KKzB4NjAsMHg4NiwweDQ4LDB4MDEsMHg2NSwweDAzLDB4MDQsMHgwMSwweDFCLC8qIFs1ODY0XSBPQkpfYWVzXzE5Ml9jY20gKi8KKzB4NjAsMHg4NiwweDQ4LDB4MDEsMHg2NSwweDAzLDB4MDQsMHgwMSwweDFDLC8qIFs1ODczXSBPQkpfaWRfYWVzMTkyX3dyYXBfcGFkICovCisweDYwLDB4ODYsMHg0OCwweDAxLDB4NjUsMHgwMywweDA0LDB4MDEsMHgyRSwvKiBbNTg4Ml0gT0JKX2Flc18yNTZfZ2NtICovCisweDYwLDB4ODYsMHg0OCwweDAxLDB4NjUsMHgwMywweDA0LDB4MDEsMHgyRiwvKiBbNTg5MV0gT0JKX2Flc18yNTZfY2NtICovCisweDYwLDB4ODYsMHg0OCwweDAxLDB4NjUsMHgwMywweDA0LDB4MDEsMHgzMCwvKiBbNTkwMF0gT0JKX2lkX2FlczI1Nl93cmFwX3BhZCAqLworMHgyQSwweDgzLDB4MDgsMHg4QywweDlBLDB4NEIsMHgzRCwweDAxLDB4MDEsMHgwMywweDAyLC8qIFs1OTA5XSBPQkpfaWRfY2FtZWxsaWExMjhfd3JhcCAqLworMHgyQSwweDgzLDB4MDgsMHg4QywweDlBLDB4NEIsMHgzRCwweDAxLDB4MDEsMHgwMywweDAzLC8qIFs1OTIwXSBPQkpfaWRfY2FtZWxsaWExOTJfd3JhcCAqLworMHgyQSwweDgzLDB4MDgsMHg4QywweDlBLDB4NEIsMHgzRCwweDAxLDB4MDEsMHgwMywweDA0LC8qIFs1OTMxXSBPQkpfaWRfY2FtZWxsaWEyNTZfd3JhcCAqLworMHg1NSwweDFELDB4MjUsMHgwMCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogWzU5NDJdIE9CSl9hbnlFeHRlbmRlZEtleVVzYWdlICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDEsMHgwOCwvKiBbNTk0Nl0gT0JKX21nZjEgKi8KKzB4MkEsMHg4NiwweDQ4LDB4ODYsMHhGNywweDBELDB4MDEsMHgwMSwweDBBLC8qIFs1OTU1XSBPQkpfcnNhc3NhUHNzICovCisweDJBLDB4ODYsMHg0OCwweDg2LDB4RjcsMHgwRCwweDAxLDB4MDEsMHgwNywvKiBbNTk2NF0gT0JKX3JzYWVzT2FlcCAqLwogfTsKIAogc3RhdGljIGNvbnN0IEFTTjFfT0JKRUNUIG5pZF9vYmpzW05VTV9OSURdPXsKLXsiVU5ERUYiLCJ1bmRlZmluZWQiLE5JRF91bmRlZiwxLCYobHZhbHVlc1swXSksMH0sCi17InJzYWRzaSIsIlJTQSBEYXRhIFNlY3VyaXR5LCBJbmMuIixOSURfcnNhZHNpLDYsJihsdmFsdWVzWzFdKSwwfSwKLXsicGtjcyIsIlJTQSBEYXRhIFNlY3VyaXR5LCBJbmMuIFBLQ1MiLE5JRF9wa2NzLDcsJihsdmFsdWVzWzddKSwwfSwKLXsiTUQyIiwibWQyIixOSURfbWQyLDgsJihsdmFsdWVzWzE0XSksMH0sCi17Ik1ENSIsIm1kNSIsTklEX21kNSw4LCYobHZhbHVlc1syMl0pLDB9LAoteyJSQzQiLCJyYzQiLE5JRF9yYzQsOCwmKGx2YWx1ZXNbMzBdKSwwfSwKLXsicnNhRW5jcnlwdGlvbiIsInJzYUVuY3J5cHRpb24iLE5JRF9yc2FFbmNyeXB0aW9uLDksJihsdmFsdWVzWzM4XSksMH0sCit7IlVOREVGIiwidW5kZWZpbmVkIixOSURfdW5kZWYsMCxOVUxMLDB9LAoreyJyc2Fkc2kiLCJSU0EgRGF0YSBTZWN1cml0eSwgSW5jLiIsTklEX3JzYWRzaSw2LCYobHZhbHVlc1swXSksMH0sCit7InBrY3MiLCJSU0EgRGF0YSBTZWN1cml0eSwgSW5jLiBQS0NTIixOSURfcGtjcyw3LCYobHZhbHVlc1s2XSksMH0sCit7Ik1EMiIsIm1kMiIsTklEX21kMiw4LCYobHZhbHVlc1sxM10pLDB9LAoreyJNRDUiLCJtZDUiLE5JRF9tZDUsOCwmKGx2YWx1ZXNbMjFdKSwwfSwKK3siUkM0IiwicmM0IixOSURfcmM0LDgsJihsdmFsdWVzWzI5XSksMH0sCit7InJzYUVuY3J5cHRpb24iLCJyc2FFbmNyeXB0aW9uIixOSURfcnNhRW5jcnlwdGlvbiw5LCYobHZhbHVlc1szN10pLDB9LAogeyJSU0EtTUQyIiwibWQyV2l0aFJTQUVuY3J5cHRpb24iLE5JRF9tZDJXaXRoUlNBRW5jcnlwdGlvbiw5LAotCSYobHZhbHVlc1s0N10pLDB9LAorCSYobHZhbHVlc1s0Nl0pLDB9LAogeyJSU0EtTUQ1IiwibWQ1V2l0aFJTQUVuY3J5cHRpb24iLE5JRF9tZDVXaXRoUlNBRW5jcnlwdGlvbiw5LAotCSYobHZhbHVlc1s1Nl0pLDB9LAorCSYobHZhbHVlc1s1NV0pLDB9LAogeyJQQkUtTUQyLURFUyIsInBiZVdpdGhNRDJBbmRERVMtQ0JDIixOSURfcGJlV2l0aE1EMkFuZERFU19DQkMsOSwKLQkmKGx2YWx1ZXNbNjVdKSwwfSwKKwkmKGx2YWx1ZXNbNjRdKSwwfSwKIHsiUEJFLU1ENS1ERVMiLCJwYmVXaXRoTUQ1QW5kREVTLUNCQyIsTklEX3BiZVdpdGhNRDVBbmRERVNfQ0JDLDksCi0JJihsdmFsdWVzWzc0XSksMH0sCi17Ilg1MDAiLCJkaXJlY3Rvcnkgc2VydmljZXMgKFguNTAwKSIsTklEX1g1MDAsMSwmKGx2YWx1ZXNbODNdKSwwfSwKLXsiWDUwOSIsIlg1MDkiLE5JRF9YNTA5LDIsJihsdmFsdWVzWzg0XSksMH0sCi17IkNOIiwiY29tbW9uTmFtZSIsTklEX2NvbW1vbk5hbWUsMywmKGx2YWx1ZXNbODZdKSwwfSwKLXsiQyIsImNvdW50cnlOYW1lIixOSURfY291bnRyeU5hbWUsMywmKGx2YWx1ZXNbODldKSwwfSwKLXsiTCIsImxvY2FsaXR5TmFtZSIsTklEX2xvY2FsaXR5TmFtZSwzLCYobHZhbHVlc1s5Ml0pLDB9LAoteyJTVCIsInN0YXRlT3JQcm92aW5jZU5hbWUiLE5JRF9zdGF0ZU9yUHJvdmluY2VOYW1lLDMsJihsdmFsdWVzWzk1XSksMH0sCi17Ik8iLCJvcmdhbml6YXRpb25OYW1lIixOSURfb3JnYW5pemF0aW9uTmFtZSwzLCYobHZhbHVlc1s5OF0pLDB9LAorCSYobHZhbHVlc1s3M10pLDB9LAoreyJYNTAwIiwiZGlyZWN0b3J5IHNlcnZpY2VzIChYLjUwMCkiLE5JRF9YNTAwLDEsJihsdmFsdWVzWzgyXSksMH0sCit7Ilg1MDkiLCJYNTA5IixOSURfWDUwOSwyLCYobHZhbHVlc1s4M10pLDB9LAoreyJDTiIsImNvbW1vbk5hbWUiLE5JRF9jb21tb25OYW1lLDMsJihsdmFsdWVzWzg1XSksMH0sCit7IkMiLCJjb3VudHJ5TmFtZSIsTklEX2NvdW50cnlOYW1lLDMsJihsdmFsdWVzWzg4XSksMH0sCit7IkwiLCJsb2NhbGl0eU5hbWUiLE5JRF9sb2NhbGl0eU5hbWUsMywmKGx2YWx1ZXNbOTFdKSwwfSwKK3siU1QiLCJzdGF0ZU9yUHJvdmluY2VOYW1lIixOSURfc3RhdGVPclByb3ZpbmNlTmFtZSwzLCYobHZhbHVlc1s5NF0pLDB9LAoreyJPIiwib3JnYW5pemF0aW9uTmFtZSIsTklEX29yZ2FuaXphdGlvbk5hbWUsMywmKGx2YWx1ZXNbOTddKSwwfSwKIHsiT1UiLCJvcmdhbml6YXRpb25hbFVuaXROYW1lIixOSURfb3JnYW5pemF0aW9uYWxVbml0TmFtZSwzLAotCSYobHZhbHVlc1sxMDFdKSwwfSwKLXsiUlNBIiwicnNhIixOSURfcnNhLDQsJihsdmFsdWVzWzEwNF0pLDB9LAoteyJwa2NzNyIsInBrY3M3IixOSURfcGtjczcsOCwmKGx2YWx1ZXNbMTA4XSksMH0sCi17InBrY3M3LWRhdGEiLCJwa2NzNy1kYXRhIixOSURfcGtjczdfZGF0YSw5LCYobHZhbHVlc1sxMTZdKSwwfSwKKwkmKGx2YWx1ZXNbMTAwXSksMH0sCit7IlJTQSIsInJzYSIsTklEX3JzYSw0LCYobHZhbHVlc1sxMDNdKSwwfSwKK3sicGtjczciLCJwa2NzNyIsTklEX3BrY3M3LDgsJihsdmFsdWVzWzEwN10pLDB9LAoreyJwa2NzNy1kYXRhIiwicGtjczctZGF0YSIsTklEX3BrY3M3X2RhdGEsOSwmKGx2YWx1ZXNbMTE1XSksMH0sCiB7InBrY3M3LXNpZ25lZERhdGEiLCJwa2NzNy1zaWduZWREYXRhIixOSURfcGtjczdfc2lnbmVkLDksCi0JJihsdmFsdWVzWzEyNV0pLDB9LAorCSYobHZhbHVlc1sxMjRdKSwwfSwKIHsicGtjczctZW52ZWxvcGVkRGF0YSIsInBrY3M3LWVudmVsb3BlZERhdGEiLE5JRF9wa2NzN19lbnZlbG9wZWQsOSwKLQkmKGx2YWx1ZXNbMTM0XSksMH0sCisJJihsdmFsdWVzWzEzM10pLDB9LAogeyJwa2NzNy1zaWduZWRBbmRFbnZlbG9wZWREYXRhIiwicGtjczctc2lnbmVkQW5kRW52ZWxvcGVkRGF0YSIsCi0JTklEX3BrY3M3X3NpZ25lZEFuZEVudmVsb3BlZCw5LCYobHZhbHVlc1sxNDNdKSwwfSwKKwlOSURfcGtjczdfc2lnbmVkQW5kRW52ZWxvcGVkLDksJihsdmFsdWVzWzE0Ml0pLDB9LAogeyJwa2NzNy1kaWdlc3REYXRhIiwicGtjczctZGlnZXN0RGF0YSIsTklEX3BrY3M3X2RpZ2VzdCw5LAotCSYobHZhbHVlc1sxNTJdKSwwfSwKKwkmKGx2YWx1ZXNbMTUxXSksMH0sCiB7InBrY3M3LWVuY3J5cHRlZERhdGEiLCJwa2NzNy1lbmNyeXB0ZWREYXRhIixOSURfcGtjczdfZW5jcnlwdGVkLDksCi0JJihsdmFsdWVzWzE2MV0pLDB9LAoteyJwa2NzMyIsInBrY3MzIixOSURfcGtjczMsOCwmKGx2YWx1ZXNbMTcwXSksMH0sCisJJihsdmFsdWVzWzE2MF0pLDB9LAoreyJwa2NzMyIsInBrY3MzIixOSURfcGtjczMsOCwmKGx2YWx1ZXNbMTY5XSksMH0sCiB7ImRoS2V5QWdyZWVtZW50IiwiZGhLZXlBZ3JlZW1lbnQiLE5JRF9kaEtleUFncmVlbWVudCw5LAotCSYobHZhbHVlc1sxNzhdKSwwfSwKLXsiREVTLUVDQiIsImRlcy1lY2IiLE5JRF9kZXNfZWNiLDUsJihsdmFsdWVzWzE4N10pLDB9LAoteyJERVMtQ0ZCIiwiZGVzLWNmYiIsTklEX2Rlc19jZmI2NCw1LCYobHZhbHVlc1sxOTJdKSwwfSwKLXsiREVTLUNCQyIsImRlcy1jYmMiLE5JRF9kZXNfY2JjLDUsJihsdmFsdWVzWzE5N10pLDB9LAoteyJERVMtRURFIiwiZGVzLWVkZSIsTklEX2Rlc19lZGVfZWNiLDUsJihsdmFsdWVzWzIwMl0pLDB9LAorCSYobHZhbHVlc1sxNzddKSwwfSwKK3siREVTLUVDQiIsImRlcy1lY2IiLE5JRF9kZXNfZWNiLDUsJihsdmFsdWVzWzE4Nl0pLDB9LAoreyJERVMtQ0ZCIiwiZGVzLWNmYiIsTklEX2Rlc19jZmI2NCw1LCYobHZhbHVlc1sxOTFdKSwwfSwKK3siREVTLUNCQyIsImRlcy1jYmMiLE5JRF9kZXNfY2JjLDUsJihsdmFsdWVzWzE5Nl0pLDB9LAoreyJERVMtRURFIiwiZGVzLWVkZSIsTklEX2Rlc19lZGVfZWNiLDUsJihsdmFsdWVzWzIwMV0pLDB9LAogeyJERVMtRURFMyIsImRlcy1lZGUzIixOSURfZGVzX2VkZTNfZWNiLDAsTlVMTCwwfSwKLXsiSURFQS1DQkMiLCJpZGVhLWNiYyIsTklEX2lkZWFfY2JjLDExLCYobHZhbHVlc1syMDddKSwwfSwKK3siSURFQS1DQkMiLCJpZGVhLWNiYyIsTklEX2lkZWFfY2JjLDExLCYobHZhbHVlc1syMDZdKSwwfSwKIHsiSURFQS1DRkIiLCJpZGVhLWNmYiIsTklEX2lkZWFfY2ZiNjQsMCxOVUxMLDB9LAogeyJJREVBLUVDQiIsImlkZWEtZWNiIixOSURfaWRlYV9lY2IsMCxOVUxMLDB9LAoteyJSQzItQ0JDIiwicmMyLWNiYyIsTklEX3JjMl9jYmMsOCwmKGx2YWx1ZXNbMjE4XSksMH0sCit7IlJDMi1DQkMiLCJyYzItY2JjIixOSURfcmMyX2NiYyw4LCYobHZhbHVlc1syMTddKSwwfSwKIHsiUkMyLUVDQiIsInJjMi1lY2IiLE5JRF9yYzJfZWNiLDAsTlVMTCwwfSwKIHsiUkMyLUNGQiIsInJjMi1jZmIiLE5JRF9yYzJfY2ZiNjQsMCxOVUxMLDB9LAogeyJSQzItT0ZCIiwicmMyLW9mYiIsTklEX3JjMl9vZmI2NCwwLE5VTEwsMH0sCi17IlNIQSIsInNoYSIsTklEX3NoYSw1LCYobHZhbHVlc1syMjZdKSwwfSwKK3siU0hBIiwic2hhIixOSURfc2hhLDUsJihsdmFsdWVzWzIyNV0pLDB9LAogeyJSU0EtU0hBIiwic2hhV2l0aFJTQUVuY3J5cHRpb24iLE5JRF9zaGFXaXRoUlNBRW5jcnlwdGlvbiw1LAotCSYobHZhbHVlc1syMzFdKSwwfSwKKwkmKGx2YWx1ZXNbMjMwXSksMH0sCiB7IkRFUy1FREUtQ0JDIiwiZGVzLWVkZS1jYmMiLE5JRF9kZXNfZWRlX2NiYywwLE5VTEwsMH0sCi17IkRFUy1FREUzLUNCQyIsImRlcy1lZGUzLWNiYyIsTklEX2Rlc19lZGUzX2NiYyw4LCYobHZhbHVlc1syMzZdKSwwfSwKLXsiREVTLU9GQiIsImRlcy1vZmIiLE5JRF9kZXNfb2ZiNjQsNSwmKGx2YWx1ZXNbMjQ0XSksMH0sCit7IkRFUy1FREUzLUNCQyIsImRlcy1lZGUzLWNiYyIsTklEX2Rlc19lZGUzX2NiYyw4LCYobHZhbHVlc1syMzVdKSwwfSwKK3siREVTLU9GQiIsImRlcy1vZmIiLE5JRF9kZXNfb2ZiNjQsNSwmKGx2YWx1ZXNbMjQzXSksMH0sCiB7IklERUEtT0ZCIiwiaWRlYS1vZmIiLE5JRF9pZGVhX29mYjY0LDAsTlVMTCwwfSwKLXsicGtjczkiLCJwa2NzOSIsTklEX3BrY3M5LDgsJihsdmFsdWVzWzI0OV0pLDB9LAoreyJwa2NzOSIsInBrY3M5IixOSURfcGtjczksOCwmKGx2YWx1ZXNbMjQ4XSksMH0sCiB7ImVtYWlsQWRkcmVzcyIsImVtYWlsQWRkcmVzcyIsTklEX3BrY3M5X2VtYWlsQWRkcmVzcyw5LAotCSYobHZhbHVlc1syNTddKSwwfSwKKwkmKGx2YWx1ZXNbMjU2XSksMH0sCiB7InVuc3RydWN0dXJlZE5hbWUiLCJ1bnN0cnVjdHVyZWROYW1lIixOSURfcGtjczlfdW5zdHJ1Y3R1cmVkTmFtZSw5LAotCSYobHZhbHVlc1syNjZdKSwwfSwKLXsiY29udGVudFR5cGUiLCJjb250ZW50VHlwZSIsTklEX3BrY3M5X2NvbnRlbnRUeXBlLDksJihsdmFsdWVzWzI3NV0pLDB9LAorCSYobHZhbHVlc1syNjVdKSwwfSwKK3siY29udGVudFR5cGUiLCJjb250ZW50VHlwZSIsTklEX3BrY3M5X2NvbnRlbnRUeXBlLDksJihsdmFsdWVzWzI3NF0pLDB9LAogeyJtZXNzYWdlRGlnZXN0IiwibWVzc2FnZURpZ2VzdCIsTklEX3BrY3M5X21lc3NhZ2VEaWdlc3QsOSwKLQkmKGx2YWx1ZXNbMjg0XSksMH0sCi17InNpZ25pbmdUaW1lIiwic2lnbmluZ1RpbWUiLE5JRF9wa2NzOV9zaWduaW5nVGltZSw5LCYobHZhbHVlc1syOTNdKSwwfSwKKwkmKGx2YWx1ZXNbMjgzXSksMH0sCit7InNpZ25pbmdUaW1lIiwic2lnbmluZ1RpbWUiLE5JRF9wa2NzOV9zaWduaW5nVGltZSw5LCYobHZhbHVlc1syOTJdKSwwfSwKIHsiY291bnRlcnNpZ25hdHVyZSIsImNvdW50ZXJzaWduYXR1cmUiLE5JRF9wa2NzOV9jb3VudGVyc2lnbmF0dXJlLDksCi0JJihsdmFsdWVzWzMwMl0pLDB9LAorCSYobHZhbHVlc1szMDFdKSwwfSwKIHsiY2hhbGxlbmdlUGFzc3dvcmQiLCJjaGFsbGVuZ2VQYXNzd29yZCIsTklEX3BrY3M5X2NoYWxsZW5nZVBhc3N3b3JkLAotCTksJihsdmFsdWVzWzMxMV0pLDB9LAorCTksJihsdmFsdWVzWzMxMF0pLDB9LAogeyJ1bnN0cnVjdHVyZWRBZGRyZXNzIiwidW5zdHJ1Y3R1cmVkQWRkcmVzcyIsCi0JTklEX3BrY3M5X3Vuc3RydWN0dXJlZEFkZHJlc3MsOSwmKGx2YWx1ZXNbMzIwXSksMH0sCisJTklEX3BrY3M5X3Vuc3RydWN0dXJlZEFkZHJlc3MsOSwmKGx2YWx1ZXNbMzE5XSksMH0sCiB7ImV4dGVuZGVkQ2VydGlmaWNhdGVBdHRyaWJ1dGVzIiwiZXh0ZW5kZWRDZXJ0aWZpY2F0ZUF0dHJpYnV0ZXMiLAotCU5JRF9wa2NzOV9leHRDZXJ0QXR0cmlidXRlcyw5LCYobHZhbHVlc1szMjldKSwwfSwKKwlOSURfcGtjczlfZXh0Q2VydEF0dHJpYnV0ZXMsOSwmKGx2YWx1ZXNbMzI4XSksMH0sCiB7Ik5ldHNjYXBlIiwiTmV0c2NhcGUgQ29tbXVuaWNhdGlvbnMgQ29ycC4iLE5JRF9uZXRzY2FwZSw3LAotCSYobHZhbHVlc1szMzhdKSwwfSwKKwkmKGx2YWx1ZXNbMzM3XSksMH0sCiB7Im5zQ2VydEV4dCIsIk5ldHNjYXBlIENlcnRpZmljYXRlIEV4dGVuc2lvbiIsCi0JTklEX25ldHNjYXBlX2NlcnRfZXh0ZW5zaW9uLDgsJihsdmFsdWVzWzM0NV0pLDB9LAorCU5JRF9uZXRzY2FwZV9jZXJ0X2V4dGVuc2lvbiw4LCYobHZhbHVlc1szNDRdKSwwfSwKIHsibnNEYXRhVHlwZSIsIk5ldHNjYXBlIERhdGEgVHlwZSIsTklEX25ldHNjYXBlX2RhdGFfdHlwZSw4LAotCSYobHZhbHVlc1szNTNdKSwwfSwKKwkmKGx2YWx1ZXNbMzUyXSksMH0sCiB7IkRFUy1FREUtQ0ZCIiwiZGVzLWVkZS1jZmIiLE5JRF9kZXNfZWRlX2NmYjY0LDAsTlVMTCwwfSwKIHsiREVTLUVERTMtQ0ZCIiwiZGVzLWVkZTMtY2ZiIixOSURfZGVzX2VkZTNfY2ZiNjQsMCxOVUxMLDB9LAogeyJERVMtRURFLU9GQiIsImRlcy1lZGUtb2ZiIixOSURfZGVzX2VkZV9vZmI2NCwwLE5VTEwsMH0sCiB7IkRFUy1FREUzLU9GQiIsImRlcy1lZGUzLW9mYiIsTklEX2Rlc19lZGUzX29mYjY0LDAsTlVMTCwwfSwKLXsiU0hBMSIsInNoYTEiLE5JRF9zaGExLDUsJihsdmFsdWVzWzM2MV0pLDB9LAoreyJTSEExIiwic2hhMSIsTklEX3NoYTEsNSwmKGx2YWx1ZXNbMzYwXSksMH0sCiB7IlJTQS1TSEExIiwic2hhMVdpdGhSU0FFbmNyeXB0aW9uIixOSURfc2hhMVdpdGhSU0FFbmNyeXB0aW9uLDksCi0JJihsdmFsdWVzWzM2Nl0pLDB9LAoteyJEU0EtU0hBIiwiZHNhV2l0aFNIQSIsTklEX2RzYVdpdGhTSEEsNSwmKGx2YWx1ZXNbMzc1XSksMH0sCi17IkRTQS1vbGQiLCJkc2FFbmNyeXB0aW9uLW9sZCIsTklEX2RzYV8yLDUsJihsdmFsdWVzWzM4MF0pLDB9LAorCSYobHZhbHVlc1szNjVdKSwwfSwKK3siRFNBLVNIQSIsImRzYVdpdGhTSEEiLE5JRF9kc2FXaXRoU0hBLDUsJihsdmFsdWVzWzM3NF0pLDB9LAoreyJEU0Etb2xkIiwiZHNhRW5jcnlwdGlvbi1vbGQiLE5JRF9kc2FfMiw1LCYobHZhbHVlc1szNzldKSwwfSwKIHsiUEJFLVNIQTEtUkMyLTY0IiwicGJlV2l0aFNIQTFBbmRSQzItQ0JDIixOSURfcGJlV2l0aFNIQTFBbmRSQzJfQ0JDLAotCTksJihsdmFsdWVzWzM4NV0pLDB9LAoteyJQQktERjIiLCJQQktERjIiLE5JRF9pZF9wYmtkZjIsOSwmKGx2YWx1ZXNbMzk0XSksMH0sCi17IkRTQS1TSEExLW9sZCIsImRzYVdpdGhTSEExLW9sZCIsTklEX2RzYVdpdGhTSEExXzIsNSwmKGx2YWx1ZXNbNDAzXSksMH0sCisJOSwmKGx2YWx1ZXNbMzg0XSksMH0sCit7IlBCS0RGMiIsIlBCS0RGMiIsTklEX2lkX3Bia2RmMiw5LCYobHZhbHVlc1szOTNdKSwwfSwKK3siRFNBLVNIQTEtb2xkIiwiZHNhV2l0aFNIQTEtb2xkIixOSURfZHNhV2l0aFNIQTFfMiw1LCYobHZhbHVlc1s0MDJdKSwwfSwKIHsibnNDZXJ0VHlwZSIsIk5ldHNjYXBlIENlcnQgVHlwZSIsTklEX25ldHNjYXBlX2NlcnRfdHlwZSw5LAotCSYobHZhbHVlc1s0MDhdKSwwfSwKKwkmKGx2YWx1ZXNbNDA3XSksMH0sCiB7Im5zQmFzZVVybCIsIk5ldHNjYXBlIEJhc2UgVXJsIixOSURfbmV0c2NhcGVfYmFzZV91cmwsOSwKLQkmKGx2YWx1ZXNbNDE3XSksMH0sCisJJihsdmFsdWVzWzQxNl0pLDB9LAogeyJuc1Jldm9jYXRpb25VcmwiLCJOZXRzY2FwZSBSZXZvY2F0aW9uIFVybCIsCi0JTklEX25ldHNjYXBlX3Jldm9jYXRpb25fdXJsLDksJihsdmFsdWVzWzQyNl0pLDB9LAorCU5JRF9uZXRzY2FwZV9yZXZvY2F0aW9uX3VybCw5LCYobHZhbHVlc1s0MjVdKSwwfSwKIHsibnNDYVJldm9jYXRpb25VcmwiLCJOZXRzY2FwZSBDQSBSZXZvY2F0aW9uIFVybCIsCi0JTklEX25ldHNjYXBlX2NhX3Jldm9jYXRpb25fdXJsLDksJihsdmFsdWVzWzQzNV0pLDB9LAorCU5JRF9uZXRzY2FwZV9jYV9yZXZvY2F0aW9uX3VybCw5LCYobHZhbHVlc1s0MzRdKSwwfSwKIHsibnNSZW5ld2FsVXJsIiwiTmV0c2NhcGUgUmVuZXdhbCBVcmwiLE5JRF9uZXRzY2FwZV9yZW5ld2FsX3VybCw5LAotCSYobHZhbHVlc1s0NDRdKSwwfSwKKwkmKGx2YWx1ZXNbNDQzXSksMH0sCiB7Im5zQ2FQb2xpY3lVcmwiLCJOZXRzY2FwZSBDQSBQb2xpY3kgVXJsIixOSURfbmV0c2NhcGVfY2FfcG9saWN5X3VybCwKLQk5LCYobHZhbHVlc1s0NTNdKSwwfSwKKwk5LCYobHZhbHVlc1s0NTJdKSwwfSwKIHsibnNTc2xTZXJ2ZXJOYW1lIiwiTmV0c2NhcGUgU1NMIFNlcnZlciBOYW1lIiwKLQlOSURfbmV0c2NhcGVfc3NsX3NlcnZlcl9uYW1lLDksJihsdmFsdWVzWzQ2Ml0pLDB9LAoteyJuc0NvbW1lbnQiLCJOZXRzY2FwZSBDb21tZW50IixOSURfbmV0c2NhcGVfY29tbWVudCw5LCYobHZhbHVlc1s0NzFdKSwwfSwKKwlOSURfbmV0c2NhcGVfc3NsX3NlcnZlcl9uYW1lLDksJihsdmFsdWVzWzQ2MV0pLDB9LAoreyJuc0NvbW1lbnQiLCJOZXRzY2FwZSBDb21tZW50IixOSURfbmV0c2NhcGVfY29tbWVudCw5LCYobHZhbHVlc1s0NzBdKSwwfSwKIHsibnNDZXJ0U2VxdWVuY2UiLCJOZXRzY2FwZSBDZXJ0aWZpY2F0ZSBTZXF1ZW5jZSIsCi0JTklEX25ldHNjYXBlX2NlcnRfc2VxdWVuY2UsOSwmKGx2YWx1ZXNbNDgwXSksMH0sCisJTklEX25ldHNjYXBlX2NlcnRfc2VxdWVuY2UsOSwmKGx2YWx1ZXNbNDc5XSksMH0sCiB7IkRFU1gtQ0JDIiwiZGVzeC1jYmMiLE5JRF9kZXN4X2NiYywwLE5VTEwsMH0sCi17ImlkLWNlIiwiaWQtY2UiLE5JRF9pZF9jZSwyLCYobHZhbHVlc1s0ODldKSwwfSwKK3siaWQtY2UiLCJpZC1jZSIsTklEX2lkX2NlLDIsJihsdmFsdWVzWzQ4OF0pLDB9LAogeyJzdWJqZWN0S2V5SWRlbnRpZmllciIsIlg1MDl2MyBTdWJqZWN0IEtleSBJZGVudGlmaWVyIiwKLQlOSURfc3ViamVjdF9rZXlfaWRlbnRpZmllciwzLCYobHZhbHVlc1s0OTFdKSwwfSwKLXsia2V5VXNhZ2UiLCJYNTA5djMgS2V5IFVzYWdlIixOSURfa2V5X3VzYWdlLDMsJihsdmFsdWVzWzQ5NF0pLDB9LAorCU5JRF9zdWJqZWN0X2tleV9pZGVudGlmaWVyLDMsJihsdmFsdWVzWzQ5MF0pLDB9LAoreyJrZXlVc2FnZSIsIlg1MDl2MyBLZXkgVXNhZ2UiLE5JRF9rZXlfdXNhZ2UsMywmKGx2YWx1ZXNbNDkzXSksMH0sCiB7InByaXZhdGVLZXlVc2FnZVBlcmlvZCIsIlg1MDl2MyBQcml2YXRlIEtleSBVc2FnZSBQZXJpb2QiLAotCU5JRF9wcml2YXRlX2tleV91c2FnZV9wZXJpb2QsMywmKGx2YWx1ZXNbNDk3XSksMH0sCisJTklEX3ByaXZhdGVfa2V5X3VzYWdlX3BlcmlvZCwzLCYobHZhbHVlc1s0OTZdKSwwfSwKIHsic3ViamVjdEFsdE5hbWUiLCJYNTA5djMgU3ViamVjdCBBbHRlcm5hdGl2ZSBOYW1lIiwKLQlOSURfc3ViamVjdF9hbHRfbmFtZSwzLCYobHZhbHVlc1s1MDBdKSwwfSwKKwlOSURfc3ViamVjdF9hbHRfbmFtZSwzLCYobHZhbHVlc1s0OTldKSwwfSwKIHsiaXNzdWVyQWx0TmFtZSIsIlg1MDl2MyBJc3N1ZXIgQWx0ZXJuYXRpdmUgTmFtZSIsTklEX2lzc3Vlcl9hbHRfbmFtZSwKLQkzLCYobHZhbHVlc1s1MDNdKSwwfSwKKwkzLCYobHZhbHVlc1s1MDJdKSwwfSwKIHsiYmFzaWNDb25zdHJhaW50cyIsIlg1MDl2MyBCYXNpYyBDb25zdHJhaW50cyIsTklEX2Jhc2ljX2NvbnN0cmFpbnRzLAotCTMsJihsdmFsdWVzWzUwNl0pLDB9LAoteyJjcmxOdW1iZXIiLCJYNTA5djMgQ1JMIE51bWJlciIsTklEX2NybF9udW1iZXIsMywmKGx2YWx1ZXNbNTA5XSksMH0sCisJMywmKGx2YWx1ZXNbNTA1XSksMH0sCit7ImNybE51bWJlciIsIlg1MDl2MyBDUkwgTnVtYmVyIixOSURfY3JsX251bWJlciwzLCYobHZhbHVlc1s1MDhdKSwwfSwKIHsiY2VydGlmaWNhdGVQb2xpY2llcyIsIlg1MDl2MyBDZXJ0aWZpY2F0ZSBQb2xpY2llcyIsCi0JTklEX2NlcnRpZmljYXRlX3BvbGljaWVzLDMsJihsdmFsdWVzWzUxMl0pLDB9LAorCU5JRF9jZXJ0aWZpY2F0ZV9wb2xpY2llcywzLCYobHZhbHVlc1s1MTFdKSwwfSwKIHsiYXV0aG9yaXR5S2V5SWRlbnRpZmllciIsIlg1MDl2MyBBdXRob3JpdHkgS2V5IElkZW50aWZpZXIiLAotCU5JRF9hdXRob3JpdHlfa2V5X2lkZW50aWZpZXIsMywmKGx2YWx1ZXNbNTE1XSksMH0sCi17IkJGLUNCQyIsImJmLWNiYyIsTklEX2JmX2NiYyw5LCYobHZhbHVlc1s1MThdKSwwfSwKKwlOSURfYXV0aG9yaXR5X2tleV9pZGVudGlmaWVyLDMsJihsdmFsdWVzWzUxNF0pLDB9LAoreyJCRi1DQkMiLCJiZi1jYmMiLE5JRF9iZl9jYmMsOSwmKGx2YWx1ZXNbNTE3XSksMH0sCiB7IkJGLUVDQiIsImJmLWVjYiIsTklEX2JmX2VjYiwwLE5VTEwsMH0sCiB7IkJGLUNGQiIsImJmLWNmYiIsTklEX2JmX2NmYjY0LDAsTlVMTCwwfSwKIHsiQkYtT0ZCIiwiYmYtb2ZiIixOSURfYmZfb2ZiNjQsMCxOVUxMLDB9LAoteyJNREMyIiwibWRjMiIsTklEX21kYzIsNCwmKGx2YWx1ZXNbNTI3XSksMH0sCi17IlJTQS1NREMyIiwibWRjMldpdGhSU0EiLE5JRF9tZGMyV2l0aFJTQSw0LCYobHZhbHVlc1s1MzFdKSwwfSwKK3siTURDMiIsIm1kYzIiLE5JRF9tZGMyLDQsJihsdmFsdWVzWzUyNl0pLDB9LAoreyJSU0EtTURDMiIsIm1kYzJXaXRoUlNBIixOSURfbWRjMldpdGhSU0EsNCwmKGx2YWx1ZXNbNTMwXSksMH0sCiB7IlJDNC00MCIsInJjNC00MCIsTklEX3JjNF80MCwwLE5VTEwsMH0sCiB7IlJDMi00MC1DQkMiLCJyYzItNDAtY2JjIixOSURfcmMyXzQwX2NiYywwLE5VTEwsMH0sCi17IkdOIiwiZ2l2ZW5OYW1lIixOSURfZ2l2ZW5OYW1lLDMsJihsdmFsdWVzWzUzNV0pLDB9LAoteyJTTiIsInN1cm5hbWUiLE5JRF9zdXJuYW1lLDMsJihsdmFsdWVzWzUzOF0pLDB9LAoteyJpbml0aWFscyIsImluaXRpYWxzIixOSURfaW5pdGlhbHMsMywmKGx2YWx1ZXNbNTQxXSksMH0sCit7IkdOIiwiZ2l2ZW5OYW1lIixOSURfZ2l2ZW5OYW1lLDMsJihsdmFsdWVzWzUzNF0pLDB9LAoreyJTTiIsInN1cm5hbWUiLE5JRF9zdXJuYW1lLDMsJihsdmFsdWVzWzUzN10pLDB9LAoreyJpbml0aWFscyIsImluaXRpYWxzIixOSURfaW5pdGlhbHMsMywmKGx2YWx1ZXNbNTQwXSksMH0sCiB7TlVMTCxOVUxMLE5JRF91bmRlZiwwLE5VTEwsMH0sCiB7ImNybERpc3RyaWJ1dGlvblBvaW50cyIsIlg1MDl2MyBDUkwgRGlzdHJpYnV0aW9uIFBvaW50cyIsCi0JTklEX2NybF9kaXN0cmlidXRpb25fcG9pbnRzLDMsJihsdmFsdWVzWzU0NF0pLDB9LAoteyJSU0EtTlAtTUQ1IiwibWQ1V2l0aFJTQSIsTklEX21kNVdpdGhSU0EsNSwmKGx2YWx1ZXNbNTQ3XSksMH0sCi17InNlcmlhbE51bWJlciIsInNlcmlhbE51bWJlciIsTklEX3NlcmlhbE51bWJlciwzLCYobHZhbHVlc1s1NTJdKSwwfSwKLXsidGl0bGUiLCJ0aXRsZSIsTklEX3RpdGxlLDMsJihsdmFsdWVzWzU1NV0pLDB9LAoteyJkZXNjcmlwdGlvbiIsImRlc2NyaXB0aW9uIixOSURfZGVzY3JpcHRpb24sMywmKGx2YWx1ZXNbNTU4XSksMH0sCi17IkNBU1Q1LUNCQyIsImNhc3Q1LWNiYyIsTklEX2Nhc3Q1X2NiYyw5LCYobHZhbHVlc1s1NjFdKSwwfSwKKwlOSURfY3JsX2Rpc3RyaWJ1dGlvbl9wb2ludHMsMywmKGx2YWx1ZXNbNTQzXSksMH0sCit7IlJTQS1OUC1NRDUiLCJtZDVXaXRoUlNBIixOSURfbWQ1V2l0aFJTQSw1LCYobHZhbHVlc1s1NDZdKSwwfSwKK3sic2VyaWFsTnVtYmVyIiwic2VyaWFsTnVtYmVyIixOSURfc2VyaWFsTnVtYmVyLDMsJihsdmFsdWVzWzU1MV0pLDB9LAoreyJ0aXRsZSIsInRpdGxlIixOSURfdGl0bGUsMywmKGx2YWx1ZXNbNTU0XSksMH0sCit7ImRlc2NyaXB0aW9uIiwiZGVzY3JpcHRpb24iLE5JRF9kZXNjcmlwdGlvbiwzLCYobHZhbHVlc1s1NTddKSwwfSwKK3siQ0FTVDUtQ0JDIiwiY2FzdDUtY2JjIixOSURfY2FzdDVfY2JjLDksJihsdmFsdWVzWzU2MF0pLDB9LAogeyJDQVNUNS1FQ0IiLCJjYXN0NS1lY2IiLE5JRF9jYXN0NV9lY2IsMCxOVUxMLDB9LAogeyJDQVNUNS1DRkIiLCJjYXN0NS1jZmIiLE5JRF9jYXN0NV9jZmI2NCwwLE5VTEwsMH0sCiB7IkNBU1Q1LU9GQiIsImNhc3Q1LW9mYiIsTklEX2Nhc3Q1X29mYjY0LDAsTlVMTCwwfSwKIHsicGJlV2l0aE1ENUFuZENhc3Q1Q0JDIiwicGJlV2l0aE1ENUFuZENhc3Q1Q0JDIiwKLQlOSURfcGJlV2l0aE1ENUFuZENhc3Q1X0NCQyw5LCYobHZhbHVlc1s1NzBdKSwwfSwKLXsiRFNBLVNIQTEiLCJkc2FXaXRoU0hBMSIsTklEX2RzYVdpdGhTSEExLDcsJihsdmFsdWVzWzU3OV0pLDB9LAorCU5JRF9wYmVXaXRoTUQ1QW5kQ2FzdDVfQ0JDLDksJihsdmFsdWVzWzU2OV0pLDB9LAoreyJEU0EtU0hBMSIsImRzYVdpdGhTSEExIixOSURfZHNhV2l0aFNIQTEsNywmKGx2YWx1ZXNbNTc4XSksMH0sCiB7Ik1ENS1TSEExIiwibWQ1LXNoYTEiLE5JRF9tZDVfc2hhMSwwLE5VTEwsMH0sCi17IlJTQS1TSEExLTIiLCJzaGExV2l0aFJTQSIsTklEX3NoYTFXaXRoUlNBLDUsJihsdmFsdWVzWzU4Nl0pLDB9LAoteyJEU0EiLCJkc2FFbmNyeXB0aW9uIixOSURfZHNhLDcsJihsdmFsdWVzWzU5MV0pLDB9LAoteyJSSVBFTUQxNjAiLCJyaXBlbWQxNjAiLE5JRF9yaXBlbWQxNjAsNSwmKGx2YWx1ZXNbNTk4XSksMH0sCit7IlJTQS1TSEExLTIiLCJzaGExV2l0aFJTQSIsTklEX3NoYTFXaXRoUlNBLDUsJihsdmFsdWVzWzU4NV0pLDB9LAoreyJEU0EiLCJkc2FFbmNyeXB0aW9uIixOSURfZHNhLDcsJihsdmFsdWVzWzU5MF0pLDB9LAoreyJSSVBFTUQxNjAiLCJyaXBlbWQxNjAiLE5JRF9yaXBlbWQxNjAsNSwmKGx2YWx1ZXNbNTk3XSksMH0sCiB7TlVMTCxOVUxMLE5JRF91bmRlZiwwLE5VTEwsMH0sCiB7IlJTQS1SSVBFTUQxNjAiLCJyaXBlbWQxNjBXaXRoUlNBIixOSURfcmlwZW1kMTYwV2l0aFJTQSw2LAotCSYobHZhbHVlc1s2MDNdKSwwfSwKLXsiUkM1LUNCQyIsInJjNS1jYmMiLE5JRF9yYzVfY2JjLDgsJihsdmFsdWVzWzYwOV0pLDB9LAorCSYobHZhbHVlc1s2MDJdKSwwfSwKK3siUkM1LUNCQyIsInJjNS1jYmMiLE5JRF9yYzVfY2JjLDgsJihsdmFsdWVzWzYwOF0pLDB9LAogeyJSQzUtRUNCIiwicmM1LWVjYiIsTklEX3JjNV9lY2IsMCxOVUxMLDB9LAogeyJSQzUtQ0ZCIiwicmM1LWNmYiIsTklEX3JjNV9jZmI2NCwwLE5VTEwsMH0sCiB7IlJDNS1PRkIiLCJyYzUtb2ZiIixOSURfcmM1X29mYjY0LDAsTlVMTCwwfSwKLXsiUkxFIiwicnVuIGxlbmd0aCBjb21wcmVzc2lvbiIsTklEX3JsZV9jb21wcmVzc2lvbiw2LCYobHZhbHVlc1s2MTddKSwwfSwKLXsiWkxJQiIsInpsaWIgY29tcHJlc3Npb24iLE5JRF96bGliX2NvbXByZXNzaW9uLDExLCYobHZhbHVlc1s2MjNdKSwwfSwKK3siUkxFIiwicnVuIGxlbmd0aCBjb21wcmVzc2lvbiIsTklEX3JsZV9jb21wcmVzc2lvbiw2LCYobHZhbHVlc1s2MTZdKSwwfSwKK3siWkxJQiIsInpsaWIgY29tcHJlc3Npb24iLE5JRF96bGliX2NvbXByZXNzaW9uLDExLCYobHZhbHVlc1s2MjJdKSwwfSwKIHsiZXh0ZW5kZWRLZXlVc2FnZSIsIlg1MDl2MyBFeHRlbmRlZCBLZXkgVXNhZ2UiLE5JRF9leHRfa2V5X3VzYWdlLDMsCi0JJihsdmFsdWVzWzYzNF0pLDB9LAoteyJQS0lYIiwiUEtJWCIsTklEX2lkX3BraXgsNiwmKGx2YWx1ZXNbNjM3XSksMH0sCi17ImlkLWtwIiwiaWQta3AiLE5JRF9pZF9rcCw3LCYobHZhbHVlc1s2NDNdKSwwfSwKKwkmKGx2YWx1ZXNbNjMzXSksMH0sCit7IlBLSVgiLCJQS0lYIixOSURfaWRfcGtpeCw2LCYobHZhbHVlc1s2MzZdKSwwfSwKK3siaWQta3AiLCJpZC1rcCIsTklEX2lkX2twLDcsJihsdmFsdWVzWzY0Ml0pLDB9LAogeyJzZXJ2ZXJBdXRoIiwiVExTIFdlYiBTZXJ2ZXIgQXV0aGVudGljYXRpb24iLE5JRF9zZXJ2ZXJfYXV0aCw4LAotCSYobHZhbHVlc1s2NTBdKSwwfSwKKwkmKGx2YWx1ZXNbNjQ5XSksMH0sCiB7ImNsaWVudEF1dGgiLCJUTFMgV2ViIENsaWVudCBBdXRoZW50aWNhdGlvbiIsTklEX2NsaWVudF9hdXRoLDgsCi0JJihsdmFsdWVzWzY1OF0pLDB9LAoteyJjb2RlU2lnbmluZyIsIkNvZGUgU2lnbmluZyIsTklEX2NvZGVfc2lnbiw4LCYobHZhbHVlc1s2NjZdKSwwfSwKKwkmKGx2YWx1ZXNbNjU3XSksMH0sCit7ImNvZGVTaWduaW5nIiwiQ29kZSBTaWduaW5nIixOSURfY29kZV9zaWduLDgsJihsdmFsdWVzWzY2NV0pLDB9LAogeyJlbWFpbFByb3RlY3Rpb24iLCJFLW1haWwgUHJvdGVjdGlvbiIsTklEX2VtYWlsX3Byb3RlY3QsOCwKLQkmKGx2YWx1ZXNbNjc0XSksMH0sCi17InRpbWVTdGFtcGluZyIsIlRpbWUgU3RhbXBpbmciLE5JRF90aW1lX3N0YW1wLDgsJihsdmFsdWVzWzY4Ml0pLDB9LAorCSYobHZhbHVlc1s2NzNdKSwwfSwKK3sidGltZVN0YW1waW5nIiwiVGltZSBTdGFtcGluZyIsTklEX3RpbWVfc3RhbXAsOCwmKGx2YWx1ZXNbNjgxXSksMH0sCiB7Im1zQ29kZUluZCIsIk1pY3Jvc29mdCBJbmRpdmlkdWFsIENvZGUgU2lnbmluZyIsTklEX21zX2NvZGVfaW5kLDEwLAotCSYobHZhbHVlc1s2OTBdKSwwfSwKKwkmKGx2YWx1ZXNbNjg5XSksMH0sCiB7Im1zQ29kZUNvbSIsIk1pY3Jvc29mdCBDb21tZXJjaWFsIENvZGUgU2lnbmluZyIsTklEX21zX2NvZGVfY29tLDEwLAotCSYobHZhbHVlc1s3MDBdKSwwfSwKKwkmKGx2YWx1ZXNbNjk5XSksMH0sCiB7Im1zQ1RMU2lnbiIsIk1pY3Jvc29mdCBUcnVzdCBMaXN0IFNpZ25pbmciLE5JRF9tc19jdGxfc2lnbiwxMCwKLQkmKGx2YWx1ZXNbNzEwXSksMH0sCi17Im1zU0dDIiwiTWljcm9zb2Z0IFNlcnZlciBHYXRlZCBDcnlwdG8iLE5JRF9tc19zZ2MsMTAsJihsdmFsdWVzWzcyMF0pLDB9LAorCSYobHZhbHVlc1s3MDldKSwwfSwKK3sibXNTR0MiLCJNaWNyb3NvZnQgU2VydmVyIEdhdGVkIENyeXB0byIsTklEX21zX3NnYywxMCwmKGx2YWx1ZXNbNzE5XSksMH0sCiB7Im1zRUZTIiwiTWljcm9zb2Z0IEVuY3J5cHRlZCBGaWxlIFN5c3RlbSIsTklEX21zX2VmcywxMCwKLQkmKGx2YWx1ZXNbNzMwXSksMH0sCi17Im5zU0dDIiwiTmV0c2NhcGUgU2VydmVyIEdhdGVkIENyeXB0byIsTklEX25zX3NnYyw5LCYobHZhbHVlc1s3NDBdKSwwfSwKKwkmKGx2YWx1ZXNbNzI5XSksMH0sCit7Im5zU0dDIiwiTmV0c2NhcGUgU2VydmVyIEdhdGVkIENyeXB0byIsTklEX25zX3NnYyw5LCYobHZhbHVlc1s3MzldKSwwfSwKIHsiZGVsdGFDUkwiLCJYNTA5djMgRGVsdGEgQ1JMIEluZGljYXRvciIsTklEX2RlbHRhX2NybCwzLAotCSYobHZhbHVlc1s3NDldKSwwfSwKLXsiQ1JMUmVhc29uIiwiWDUwOXYzIENSTCBSZWFzb24gQ29kZSIsTklEX2NybF9yZWFzb24sMywmKGx2YWx1ZXNbNzUyXSksMH0sCisJJihsdmFsdWVzWzc0OF0pLDB9LAoreyJDUkxSZWFzb24iLCJYNTA5djMgQ1JMIFJlYXNvbiBDb2RlIixOSURfY3JsX3JlYXNvbiwzLCYobHZhbHVlc1s3NTFdKSwwfSwKIHsiaW52YWxpZGl0eURhdGUiLCJJbnZhbGlkaXR5IERhdGUiLE5JRF9pbnZhbGlkaXR5X2RhdGUsMywKLQkmKGx2YWx1ZXNbNzU1XSksMH0sCi17IlNYTmV0SUQiLCJTdHJvbmcgRXh0cmFuZXQgSUQiLE5JRF9zeG5ldCw1LCYobHZhbHVlc1s3NThdKSwwfSwKKwkmKGx2YWx1ZXNbNzU0XSksMH0sCit7IlNYTmV0SUQiLCJTdHJvbmcgRXh0cmFuZXQgSUQiLE5JRF9zeG5ldCw1LCYobHZhbHVlc1s3NTddKSwwfSwKIHsiUEJFLVNIQTEtUkM0LTEyOCIsInBiZVdpdGhTSEExQW5kMTI4Qml0UkM0IiwKLQlOSURfcGJlX1dpdGhTSEExQW5kMTI4Qml0UkM0LDEwLCYobHZhbHVlc1s3NjNdKSwwfSwKKwlOSURfcGJlX1dpdGhTSEExQW5kMTI4Qml0UkM0LDEwLCYobHZhbHVlc1s3NjJdKSwwfSwKIHsiUEJFLVNIQTEtUkM0LTQwIiwicGJlV2l0aFNIQTFBbmQ0MEJpdFJDNCIsCi0JTklEX3BiZV9XaXRoU0hBMUFuZDQwQml0UkM0LDEwLCYobHZhbHVlc1s3NzNdKSwwfSwKKwlOSURfcGJlX1dpdGhTSEExQW5kNDBCaXRSQzQsMTAsJihsdmFsdWVzWzc3Ml0pLDB9LAogeyJQQkUtU0hBMS0zREVTIiwicGJlV2l0aFNIQTFBbmQzLUtleVRyaXBsZURFUy1DQkMiLAotCU5JRF9wYmVfV2l0aFNIQTFBbmQzX0tleV9UcmlwbGVERVNfQ0JDLDEwLCYobHZhbHVlc1s3ODNdKSwwfSwKKwlOSURfcGJlX1dpdGhTSEExQW5kM19LZXlfVHJpcGxlREVTX0NCQywxMCwmKGx2YWx1ZXNbNzgyXSksMH0sCiB7IlBCRS1TSEExLTJERVMiLCJwYmVXaXRoU0hBMUFuZDItS2V5VHJpcGxlREVTLUNCQyIsCi0JTklEX3BiZV9XaXRoU0hBMUFuZDJfS2V5X1RyaXBsZURFU19DQkMsMTAsJihsdmFsdWVzWzc5M10pLDB9LAorCU5JRF9wYmVfV2l0aFNIQTFBbmQyX0tleV9UcmlwbGVERVNfQ0JDLDEwLCYobHZhbHVlc1s3OTJdKSwwfSwKIHsiUEJFLVNIQTEtUkMyLTEyOCIsInBiZVdpdGhTSEExQW5kMTI4Qml0UkMyLUNCQyIsCi0JTklEX3BiZV9XaXRoU0hBMUFuZDEyOEJpdFJDMl9DQkMsMTAsJihsdmFsdWVzWzgwM10pLDB9LAorCU5JRF9wYmVfV2l0aFNIQTFBbmQxMjhCaXRSQzJfQ0JDLDEwLCYobHZhbHVlc1s4MDJdKSwwfSwKIHsiUEJFLVNIQTEtUkMyLTQwIiwicGJlV2l0aFNIQTFBbmQ0MEJpdFJDMi1DQkMiLAotCU5JRF9wYmVfV2l0aFNIQTFBbmQ0MEJpdFJDMl9DQkMsMTAsJihsdmFsdWVzWzgxM10pLDB9LAoteyJrZXlCYWciLCJrZXlCYWciLE5JRF9rZXlCYWcsMTEsJihsdmFsdWVzWzgyM10pLDB9LAorCU5JRF9wYmVfV2l0aFNIQTFBbmQ0MEJpdFJDMl9DQkMsMTAsJihsdmFsdWVzWzgxMl0pLDB9LAoreyJrZXlCYWciLCJrZXlCYWciLE5JRF9rZXlCYWcsMTEsJihsdmFsdWVzWzgyMl0pLDB9LAogeyJwa2NzOFNocm91ZGVkS2V5QmFnIiwicGtjczhTaHJvdWRlZEtleUJhZyIsTklEX3BrY3M4U2hyb3VkZWRLZXlCYWcsCi0JMTEsJihsdmFsdWVzWzgzNF0pLDB9LAoteyJjZXJ0QmFnIiwiY2VydEJhZyIsTklEX2NlcnRCYWcsMTEsJihsdmFsdWVzWzg0NV0pLDB9LAoteyJjcmxCYWciLCJjcmxCYWciLE5JRF9jcmxCYWcsMTEsJihsdmFsdWVzWzg1Nl0pLDB9LAoteyJzZWNyZXRCYWciLCJzZWNyZXRCYWciLE5JRF9zZWNyZXRCYWcsMTEsJihsdmFsdWVzWzg2N10pLDB9LAorCTExLCYobHZhbHVlc1s4MzNdKSwwfSwKK3siY2VydEJhZyIsImNlcnRCYWciLE5JRF9jZXJ0QmFnLDExLCYobHZhbHVlc1s4NDRdKSwwfSwKK3siY3JsQmFnIiwiY3JsQmFnIixOSURfY3JsQmFnLDExLCYobHZhbHVlc1s4NTVdKSwwfSwKK3sic2VjcmV0QmFnIiwic2VjcmV0QmFnIixOSURfc2VjcmV0QmFnLDExLCYobHZhbHVlc1s4NjZdKSwwfSwKIHsic2FmZUNvbnRlbnRzQmFnIiwic2FmZUNvbnRlbnRzQmFnIixOSURfc2FmZUNvbnRlbnRzQmFnLDExLAotCSYobHZhbHVlc1s4NzhdKSwwfSwKLXsiZnJpZW5kbHlOYW1lIiwiZnJpZW5kbHlOYW1lIixOSURfZnJpZW5kbHlOYW1lLDksJihsdmFsdWVzWzg4OV0pLDB9LAoteyJsb2NhbEtleUlEIiwibG9jYWxLZXlJRCIsTklEX2xvY2FsS2V5SUQsOSwmKGx2YWx1ZXNbODk4XSksMH0sCisJJihsdmFsdWVzWzg3N10pLDB9LAoreyJmcmllbmRseU5hbWUiLCJmcmllbmRseU5hbWUiLE5JRF9mcmllbmRseU5hbWUsOSwmKGx2YWx1ZXNbODg4XSksMH0sCit7ImxvY2FsS2V5SUQiLCJsb2NhbEtleUlEIixOSURfbG9jYWxLZXlJRCw5LCYobHZhbHVlc1s4OTddKSwwfSwKIHsieDUwOUNlcnRpZmljYXRlIiwieDUwOUNlcnRpZmljYXRlIixOSURfeDUwOUNlcnRpZmljYXRlLDEwLAotCSYobHZhbHVlc1s5MDddKSwwfSwKKwkmKGx2YWx1ZXNbOTA2XSksMH0sCiB7InNkc2lDZXJ0aWZpY2F0ZSIsInNkc2lDZXJ0aWZpY2F0ZSIsTklEX3Nkc2lDZXJ0aWZpY2F0ZSwxMCwKLQkmKGx2YWx1ZXNbOTE3XSksMH0sCi17Ing1MDlDcmwiLCJ4NTA5Q3JsIixOSURfeDUwOUNybCwxMCwmKGx2YWx1ZXNbOTI3XSksMH0sCi17IlBCRVMyIiwiUEJFUzIiLE5JRF9wYmVzMiw5LCYobHZhbHVlc1s5MzddKSwwfSwKLXsiUEJNQUMxIiwiUEJNQUMxIixOSURfcGJtYWMxLDksJihsdmFsdWVzWzk0Nl0pLDB9LAoteyJobWFjV2l0aFNIQTEiLCJobWFjV2l0aFNIQTEiLE5JRF9obWFjV2l0aFNIQTEsOCwmKGx2YWx1ZXNbOTU1XSksMH0sCi17ImlkLXF0LWNwcyIsIlBvbGljeSBRdWFsaWZpZXIgQ1BTIixOSURfaWRfcXRfY3BzLDgsJihsdmFsdWVzWzk2M10pLDB9LAorCSYobHZhbHVlc1s5MTZdKSwwfSwKK3sieDUwOUNybCIsIng1MDlDcmwiLE5JRF94NTA5Q3JsLDEwLCYobHZhbHVlc1s5MjZdKSwwfSwKK3siUEJFUzIiLCJQQkVTMiIsTklEX3BiZXMyLDksJihsdmFsdWVzWzkzNl0pLDB9LAoreyJQQk1BQzEiLCJQQk1BQzEiLE5JRF9wYm1hYzEsOSwmKGx2YWx1ZXNbOTQ1XSksMH0sCit7ImhtYWNXaXRoU0hBMSIsImhtYWNXaXRoU0hBMSIsTklEX2htYWNXaXRoU0hBMSw4LCYobHZhbHVlc1s5NTRdKSwwfSwKK3siaWQtcXQtY3BzIiwiUG9saWN5IFF1YWxpZmllciBDUFMiLE5JRF9pZF9xdF9jcHMsOCwmKGx2YWx1ZXNbOTYyXSksMH0sCiB7ImlkLXF0LXVub3RpY2UiLCJQb2xpY3kgUXVhbGlmaWVyIFVzZXIgTm90aWNlIixOSURfaWRfcXRfdW5vdGljZSw4LAotCSYobHZhbHVlc1s5NzFdKSwwfSwKKwkmKGx2YWx1ZXNbOTcwXSksMH0sCiB7IlJDMi02NC1DQkMiLCJyYzItNjQtY2JjIixOSURfcmMyXzY0X2NiYywwLE5VTEwsMH0sCiB7IlNNSU1FLUNBUFMiLCJTL01JTUUgQ2FwYWJpbGl0aWVzIixOSURfU01JTUVDYXBhYmlsaXRpZXMsOSwKLQkmKGx2YWx1ZXNbOTc5XSksMH0sCisJJihsdmFsdWVzWzk3OF0pLDB9LAogeyJQQkUtTUQyLVJDMi02NCIsInBiZVdpdGhNRDJBbmRSQzItQ0JDIixOSURfcGJlV2l0aE1EMkFuZFJDMl9DQkMsOSwKLQkmKGx2YWx1ZXNbOTg4XSksMH0sCisJJihsdmFsdWVzWzk4N10pLDB9LAogeyJQQkUtTUQ1LVJDMi02NCIsInBiZVdpdGhNRDVBbmRSQzItQ0JDIixOSURfcGJlV2l0aE1ENUFuZFJDMl9DQkMsOSwKLQkmKGx2YWx1ZXNbOTk3XSksMH0sCisJJihsdmFsdWVzWzk5Nl0pLDB9LAogeyJQQkUtU0hBMS1ERVMiLCJwYmVXaXRoU0hBMUFuZERFUy1DQkMiLE5JRF9wYmVXaXRoU0hBMUFuZERFU19DQkMsOSwKLQkmKGx2YWx1ZXNbMTAwNl0pLDB9LAorCSYobHZhbHVlc1sxMDA1XSksMH0sCiB7Im1zRXh0UmVxIiwiTWljcm9zb2Z0IEV4dGVuc2lvbiBSZXF1ZXN0IixOSURfbXNfZXh0X3JlcSwxMCwKLQkmKGx2YWx1ZXNbMTAxNV0pLDB9LAoteyJleHRSZXEiLCJFeHRlbnNpb24gUmVxdWVzdCIsTklEX2V4dF9yZXEsOSwmKGx2YWx1ZXNbMTAyNV0pLDB9LAoteyJuYW1lIiwibmFtZSIsTklEX25hbWUsMywmKGx2YWx1ZXNbMTAzNF0pLDB9LAoteyJkblF1YWxpZmllciIsImRuUXVhbGlmaWVyIixOSURfZG5RdWFsaWZpZXIsMywmKGx2YWx1ZXNbMTAzN10pLDB9LAoteyJpZC1wZSIsImlkLXBlIixOSURfaWRfcGUsNywmKGx2YWx1ZXNbMTA0MF0pLDB9LAoteyJpZC1hZCIsImlkLWFkIixOSURfaWRfYWQsNywmKGx2YWx1ZXNbMTA0N10pLDB9LAorCSYobHZhbHVlc1sxMDE0XSksMH0sCit7ImV4dFJlcSIsIkV4dGVuc2lvbiBSZXF1ZXN0IixOSURfZXh0X3JlcSw5LCYobHZhbHVlc1sxMDI0XSksMH0sCit7Im5hbWUiLCJuYW1lIixOSURfbmFtZSwzLCYobHZhbHVlc1sxMDMzXSksMH0sCit7ImRuUXVhbGlmaWVyIiwiZG5RdWFsaWZpZXIiLE5JRF9kblF1YWxpZmllciwzLCYobHZhbHVlc1sxMDM2XSksMH0sCit7ImlkLXBlIiwiaWQtcGUiLE5JRF9pZF9wZSw3LCYobHZhbHVlc1sxMDM5XSksMH0sCit7ImlkLWFkIiwiaWQtYWQiLE5JRF9pZF9hZCw3LCYobHZhbHVlc1sxMDQ2XSksMH0sCiB7ImF1dGhvcml0eUluZm9BY2Nlc3MiLCJBdXRob3JpdHkgSW5mb3JtYXRpb24gQWNjZXNzIixOSURfaW5mb19hY2Nlc3MsCi0JOCwmKGx2YWx1ZXNbMTA1NF0pLDB9LAoteyJPQ1NQIiwiT0NTUCIsTklEX2FkX09DU1AsOCwmKGx2YWx1ZXNbMTA2Ml0pLDB9LAoteyJjYUlzc3VlcnMiLCJDQSBJc3N1ZXJzIixOSURfYWRfY2FfaXNzdWVycyw4LCYobHZhbHVlc1sxMDcwXSksMH0sCi17Ik9DU1BTaWduaW5nIiwiT0NTUCBTaWduaW5nIixOSURfT0NTUF9zaWduLDgsJihsdmFsdWVzWzEwNzhdKSwwfSwKLXsiSVNPIiwiaXNvIixOSURfaXNvLDEsJihsdmFsdWVzWzEwODZdKSwwfSwKLXsibWVtYmVyLWJvZHkiLCJJU08gTWVtYmVyIEJvZHkiLE5JRF9tZW1iZXJfYm9keSwxLCYobHZhbHVlc1sxMDg3XSksMH0sCi17IklTTy1VUyIsIklTTyBVUyBNZW1iZXIgQm9keSIsTklEX0lTT19VUywzLCYobHZhbHVlc1sxMDg4XSksMH0sCi17Ilg5LTU3IiwiWDkuNTciLE5JRF9YOV81Nyw1LCYobHZhbHVlc1sxMDkxXSksMH0sCi17Ilg5Y20iLCJYOS41NyBDTSA/IixOSURfWDljbSw2LCYobHZhbHVlc1sxMDk2XSksMH0sCi17InBrY3MxIiwicGtjczEiLE5JRF9wa2NzMSw4LCYobHZhbHVlc1sxMTAyXSksMH0sCi17InBrY3M1IiwicGtjczUiLE5JRF9wa2NzNSw4LCYobHZhbHVlc1sxMTEwXSksMH0sCi17IlNNSU1FIiwiUy9NSU1FIixOSURfU01JTUUsOSwmKGx2YWx1ZXNbMTExOF0pLDB9LAoteyJpZC1zbWltZS1tb2QiLCJpZC1zbWltZS1tb2QiLE5JRF9pZF9zbWltZV9tb2QsMTAsJihsdmFsdWVzWzExMjddKSwwfSwKLXsiaWQtc21pbWUtY3QiLCJpZC1zbWltZS1jdCIsTklEX2lkX3NtaW1lX2N0LDEwLCYobHZhbHVlc1sxMTM3XSksMH0sCi17ImlkLXNtaW1lLWFhIiwiaWQtc21pbWUtYWEiLE5JRF9pZF9zbWltZV9hYSwxMCwmKGx2YWx1ZXNbMTE0N10pLDB9LAoteyJpZC1zbWltZS1hbGciLCJpZC1zbWltZS1hbGciLE5JRF9pZF9zbWltZV9hbGcsMTAsJihsdmFsdWVzWzExNTddKSwwfSwKLXsiaWQtc21pbWUtY2QiLCJpZC1zbWltZS1jZCIsTklEX2lkX3NtaW1lX2NkLDEwLCYobHZhbHVlc1sxMTY3XSksMH0sCi17ImlkLXNtaW1lLXNwcSIsImlkLXNtaW1lLXNwcSIsTklEX2lkX3NtaW1lX3NwcSwxMCwmKGx2YWx1ZXNbMTE3N10pLDB9LAoteyJpZC1zbWltZS1jdGkiLCJpZC1zbWltZS1jdGkiLE5JRF9pZF9zbWltZV9jdGksMTAsJihsdmFsdWVzWzExODddKSwwfSwKKwk4LCYobHZhbHVlc1sxMDUzXSksMH0sCit7Ik9DU1AiLCJPQ1NQIixOSURfYWRfT0NTUCw4LCYobHZhbHVlc1sxMDYxXSksMH0sCit7ImNhSXNzdWVycyIsIkNBIElzc3VlcnMiLE5JRF9hZF9jYV9pc3N1ZXJzLDgsJihsdmFsdWVzWzEwNjldKSwwfSwKK3siT0NTUFNpZ25pbmciLCJPQ1NQIFNpZ25pbmciLE5JRF9PQ1NQX3NpZ24sOCwmKGx2YWx1ZXNbMTA3N10pLDB9LAoreyJJU08iLCJpc28iLE5JRF9pc28sMCxOVUxMLDB9LAoreyJtZW1iZXItYm9keSIsIklTTyBNZW1iZXIgQm9keSIsTklEX21lbWJlcl9ib2R5LDEsJihsdmFsdWVzWzEwODVdKSwwfSwKK3siSVNPLVVTIiwiSVNPIFVTIE1lbWJlciBCb2R5IixOSURfSVNPX1VTLDMsJihsdmFsdWVzWzEwODZdKSwwfSwKK3siWDktNTciLCJYOS41NyIsTklEX1g5XzU3LDUsJihsdmFsdWVzWzEwODldKSwwfSwKK3siWDljbSIsIlg5LjU3IENNID8iLE5JRF9YOWNtLDYsJihsdmFsdWVzWzEwOTRdKSwwfSwKK3sicGtjczEiLCJwa2NzMSIsTklEX3BrY3MxLDgsJihsdmFsdWVzWzExMDBdKSwwfSwKK3sicGtjczUiLCJwa2NzNSIsTklEX3BrY3M1LDgsJihsdmFsdWVzWzExMDhdKSwwfSwKK3siU01JTUUiLCJTL01JTUUiLE5JRF9TTUlNRSw5LCYobHZhbHVlc1sxMTE2XSksMH0sCit7ImlkLXNtaW1lLW1vZCIsImlkLXNtaW1lLW1vZCIsTklEX2lkX3NtaW1lX21vZCwxMCwmKGx2YWx1ZXNbMTEyNV0pLDB9LAoreyJpZC1zbWltZS1jdCIsImlkLXNtaW1lLWN0IixOSURfaWRfc21pbWVfY3QsMTAsJihsdmFsdWVzWzExMzVdKSwwfSwKK3siaWQtc21pbWUtYWEiLCJpZC1zbWltZS1hYSIsTklEX2lkX3NtaW1lX2FhLDEwLCYobHZhbHVlc1sxMTQ1XSksMH0sCit7ImlkLXNtaW1lLWFsZyIsImlkLXNtaW1lLWFsZyIsTklEX2lkX3NtaW1lX2FsZywxMCwmKGx2YWx1ZXNbMTE1NV0pLDB9LAoreyJpZC1zbWltZS1jZCIsImlkLXNtaW1lLWNkIixOSURfaWRfc21pbWVfY2QsMTAsJihsdmFsdWVzWzExNjVdKSwwfSwKK3siaWQtc21pbWUtc3BxIiwiaWQtc21pbWUtc3BxIixOSURfaWRfc21pbWVfc3BxLDEwLCYobHZhbHVlc1sxMTc1XSksMH0sCit7ImlkLXNtaW1lLWN0aSIsImlkLXNtaW1lLWN0aSIsTklEX2lkX3NtaW1lX2N0aSwxMCwmKGx2YWx1ZXNbMTE4NV0pLDB9LAogeyJpZC1zbWltZS1tb2QtY21zIiwiaWQtc21pbWUtbW9kLWNtcyIsTklEX2lkX3NtaW1lX21vZF9jbXMsMTEsCi0JJihsdmFsdWVzWzExOTddKSwwfSwKKwkmKGx2YWx1ZXNbMTE5NV0pLDB9LAogeyJpZC1zbWltZS1tb2QtZXNzIiwiaWQtc21pbWUtbW9kLWVzcyIsTklEX2lkX3NtaW1lX21vZF9lc3MsMTEsCi0JJihsdmFsdWVzWzEyMDhdKSwwfSwKKwkmKGx2YWx1ZXNbMTIwNl0pLDB9LAogeyJpZC1zbWltZS1tb2Qtb2lkIiwiaWQtc21pbWUtbW9kLW9pZCIsTklEX2lkX3NtaW1lX21vZF9vaWQsMTEsCi0JJihsdmFsdWVzWzEyMTldKSwwfSwKKwkmKGx2YWx1ZXNbMTIxN10pLDB9LAogeyJpZC1zbWltZS1tb2QtbXNnLXYzIiwiaWQtc21pbWUtbW9kLW1zZy12MyIsTklEX2lkX3NtaW1lX21vZF9tc2dfdjMsCi0JMTEsJihsdmFsdWVzWzEyMzBdKSwwfSwKKwkxMSwmKGx2YWx1ZXNbMTIyOF0pLDB9LAogeyJpZC1zbWltZS1tb2QtZXRzLWVTaWduYXR1cmUtODgiLCJpZC1zbWltZS1tb2QtZXRzLWVTaWduYXR1cmUtODgiLAotCU5JRF9pZF9zbWltZV9tb2RfZXRzX2VTaWduYXR1cmVfODgsMTEsJihsdmFsdWVzWzEyNDFdKSwwfSwKKwlOSURfaWRfc21pbWVfbW9kX2V0c19lU2lnbmF0dXJlXzg4LDExLCYobHZhbHVlc1sxMjM5XSksMH0sCiB7ImlkLXNtaW1lLW1vZC1ldHMtZVNpZ25hdHVyZS05NyIsImlkLXNtaW1lLW1vZC1ldHMtZVNpZ25hdHVyZS05NyIsCi0JTklEX2lkX3NtaW1lX21vZF9ldHNfZVNpZ25hdHVyZV85NywxMSwmKGx2YWx1ZXNbMTI1Ml0pLDB9LAorCU5JRF9pZF9zbWltZV9tb2RfZXRzX2VTaWduYXR1cmVfOTcsMTEsJihsdmFsdWVzWzEyNTBdKSwwfSwKIHsiaWQtc21pbWUtbW9kLWV0cy1lU2lnUG9saWN5LTg4IiwiaWQtc21pbWUtbW9kLWV0cy1lU2lnUG9saWN5LTg4IiwKLQlOSURfaWRfc21pbWVfbW9kX2V0c19lU2lnUG9saWN5Xzg4LDExLCYobHZhbHVlc1sxMjYzXSksMH0sCisJTklEX2lkX3NtaW1lX21vZF9ldHNfZVNpZ1BvbGljeV84OCwxMSwmKGx2YWx1ZXNbMTI2MV0pLDB9LAogeyJpZC1zbWltZS1tb2QtZXRzLWVTaWdQb2xpY3ktOTciLCJpZC1zbWltZS1tb2QtZXRzLWVTaWdQb2xpY3ktOTciLAotCU5JRF9pZF9zbWltZV9tb2RfZXRzX2VTaWdQb2xpY3lfOTcsMTEsJihsdmFsdWVzWzEyNzRdKSwwfSwKKwlOSURfaWRfc21pbWVfbW9kX2V0c19lU2lnUG9saWN5Xzk3LDExLCYobHZhbHVlc1sxMjcyXSksMH0sCiB7ImlkLXNtaW1lLWN0LXJlY2VpcHQiLCJpZC1zbWltZS1jdC1yZWNlaXB0IixOSURfaWRfc21pbWVfY3RfcmVjZWlwdCwKLQkxMSwmKGx2YWx1ZXNbMTI4NV0pLDB9LAorCTExLCYobHZhbHVlc1sxMjgzXSksMH0sCiB7ImlkLXNtaW1lLWN0LWF1dGhEYXRhIiwiaWQtc21pbWUtY3QtYXV0aERhdGEiLAotCU5JRF9pZF9zbWltZV9jdF9hdXRoRGF0YSwxMSwmKGx2YWx1ZXNbMTI5Nl0pLDB9LAorCU5JRF9pZF9zbWltZV9jdF9hdXRoRGF0YSwxMSwmKGx2YWx1ZXNbMTI5NF0pLDB9LAogeyJpZC1zbWltZS1jdC1wdWJsaXNoQ2VydCIsImlkLXNtaW1lLWN0LXB1Ymxpc2hDZXJ0IiwKLQlOSURfaWRfc21pbWVfY3RfcHVibGlzaENlcnQsMTEsJihsdmFsdWVzWzEzMDddKSwwfSwKKwlOSURfaWRfc21pbWVfY3RfcHVibGlzaENlcnQsMTEsJihsdmFsdWVzWzEzMDVdKSwwfSwKIHsiaWQtc21pbWUtY3QtVFNUSW5mbyIsImlkLXNtaW1lLWN0LVRTVEluZm8iLE5JRF9pZF9zbWltZV9jdF9UU1RJbmZvLAotCTExLCYobHZhbHVlc1sxMzE4XSksMH0sCisJMTEsJihsdmFsdWVzWzEzMTZdKSwwfSwKIHsiaWQtc21pbWUtY3QtVERUSW5mbyIsImlkLXNtaW1lLWN0LVREVEluZm8iLE5JRF9pZF9zbWltZV9jdF9URFRJbmZvLAotCTExLCYobHZhbHVlc1sxMzI5XSksMH0sCisJMTEsJihsdmFsdWVzWzEzMjddKSwwfSwKIHsiaWQtc21pbWUtY3QtY29udGVudEluZm8iLCJpZC1zbWltZS1jdC1jb250ZW50SW5mbyIsCi0JTklEX2lkX3NtaW1lX2N0X2NvbnRlbnRJbmZvLDExLCYobHZhbHVlc1sxMzQwXSksMH0sCisJTklEX2lkX3NtaW1lX2N0X2NvbnRlbnRJbmZvLDExLCYobHZhbHVlc1sxMzM4XSksMH0sCiB7ImlkLXNtaW1lLWN0LURWQ1NSZXF1ZXN0RGF0YSIsImlkLXNtaW1lLWN0LURWQ1NSZXF1ZXN0RGF0YSIsCi0JTklEX2lkX3NtaW1lX2N0X0RWQ1NSZXF1ZXN0RGF0YSwxMSwmKGx2YWx1ZXNbMTM1MV0pLDB9LAorCU5JRF9pZF9zbWltZV9jdF9EVkNTUmVxdWVzdERhdGEsMTEsJihsdmFsdWVzWzEzNDldKSwwfSwKIHsiaWQtc21pbWUtY3QtRFZDU1Jlc3BvbnNlRGF0YSIsImlkLXNtaW1lLWN0LURWQ1NSZXNwb25zZURhdGEiLAotCU5JRF9pZF9zbWltZV9jdF9EVkNTUmVzcG9uc2VEYXRhLDExLCYobHZhbHVlc1sxMzYyXSksMH0sCisJTklEX2lkX3NtaW1lX2N0X0RWQ1NSZXNwb25zZURhdGEsMTEsJihsdmFsdWVzWzEzNjBdKSwwfSwKIHsiaWQtc21pbWUtYWEtcmVjZWlwdFJlcXVlc3QiLCJpZC1zbWltZS1hYS1yZWNlaXB0UmVxdWVzdCIsCi0JTklEX2lkX3NtaW1lX2FhX3JlY2VpcHRSZXF1ZXN0LDExLCYobHZhbHVlc1sxMzczXSksMH0sCisJTklEX2lkX3NtaW1lX2FhX3JlY2VpcHRSZXF1ZXN0LDExLCYobHZhbHVlc1sxMzcxXSksMH0sCiB7ImlkLXNtaW1lLWFhLXNlY3VyaXR5TGFiZWwiLCJpZC1zbWltZS1hYS1zZWN1cml0eUxhYmVsIiwKLQlOSURfaWRfc21pbWVfYWFfc2VjdXJpdHlMYWJlbCwxMSwmKGx2YWx1ZXNbMTM4NF0pLDB9LAorCU5JRF9pZF9zbWltZV9hYV9zZWN1cml0eUxhYmVsLDExLCYobHZhbHVlc1sxMzgyXSksMH0sCiB7ImlkLXNtaW1lLWFhLW1sRXhwYW5kSGlzdG9yeSIsImlkLXNtaW1lLWFhLW1sRXhwYW5kSGlzdG9yeSIsCi0JTklEX2lkX3NtaW1lX2FhX21sRXhwYW5kSGlzdG9yeSwxMSwmKGx2YWx1ZXNbMTM5NV0pLDB9LAorCU5JRF9pZF9zbWltZV9hYV9tbEV4cGFuZEhpc3RvcnksMTEsJihsdmFsdWVzWzEzOTNdKSwwfSwKIHsiaWQtc21pbWUtYWEtY29udGVudEhpbnQiLCJpZC1zbWltZS1hYS1jb250ZW50SGludCIsCi0JTklEX2lkX3NtaW1lX2FhX2NvbnRlbnRIaW50LDExLCYobHZhbHVlc1sxNDA2XSksMH0sCisJTklEX2lkX3NtaW1lX2FhX2NvbnRlbnRIaW50LDExLCYobHZhbHVlc1sxNDA0XSksMH0sCiB7ImlkLXNtaW1lLWFhLW1zZ1NpZ0RpZ2VzdCIsImlkLXNtaW1lLWFhLW1zZ1NpZ0RpZ2VzdCIsCi0JTklEX2lkX3NtaW1lX2FhX21zZ1NpZ0RpZ2VzdCwxMSwmKGx2YWx1ZXNbMTQxN10pLDB9LAorCU5JRF9pZF9zbWltZV9hYV9tc2dTaWdEaWdlc3QsMTEsJihsdmFsdWVzWzE0MTVdKSwwfSwKIHsiaWQtc21pbWUtYWEtZW5jYXBDb250ZW50VHlwZSIsImlkLXNtaW1lLWFhLWVuY2FwQ29udGVudFR5cGUiLAotCU5JRF9pZF9zbWltZV9hYV9lbmNhcENvbnRlbnRUeXBlLDExLCYobHZhbHVlc1sxNDI4XSksMH0sCisJTklEX2lkX3NtaW1lX2FhX2VuY2FwQ29udGVudFR5cGUsMTEsJihsdmFsdWVzWzE0MjZdKSwwfSwKIHsiaWQtc21pbWUtYWEtY29udGVudElkZW50aWZpZXIiLCJpZC1zbWltZS1hYS1jb250ZW50SWRlbnRpZmllciIsCi0JTklEX2lkX3NtaW1lX2FhX2NvbnRlbnRJZGVudGlmaWVyLDExLCYobHZhbHVlc1sxNDM5XSksMH0sCisJTklEX2lkX3NtaW1lX2FhX2NvbnRlbnRJZGVudGlmaWVyLDExLCYobHZhbHVlc1sxNDM3XSksMH0sCiB7ImlkLXNtaW1lLWFhLW1hY1ZhbHVlIiwiaWQtc21pbWUtYWEtbWFjVmFsdWUiLAotCU5JRF9pZF9zbWltZV9hYV9tYWNWYWx1ZSwxMSwmKGx2YWx1ZXNbMTQ1MF0pLDB9LAorCU5JRF9pZF9zbWltZV9hYV9tYWNWYWx1ZSwxMSwmKGx2YWx1ZXNbMTQ0OF0pLDB9LAogeyJpZC1zbWltZS1hYS1lcXVpdmFsZW50TGFiZWxzIiwiaWQtc21pbWUtYWEtZXF1aXZhbGVudExhYmVscyIsCi0JTklEX2lkX3NtaW1lX2FhX2VxdWl2YWxlbnRMYWJlbHMsMTEsJihsdmFsdWVzWzE0NjFdKSwwfSwKKwlOSURfaWRfc21pbWVfYWFfZXF1aXZhbGVudExhYmVscywxMSwmKGx2YWx1ZXNbMTQ1OV0pLDB9LAogeyJpZC1zbWltZS1hYS1jb250ZW50UmVmZXJlbmNlIiwiaWQtc21pbWUtYWEtY29udGVudFJlZmVyZW5jZSIsCi0JTklEX2lkX3NtaW1lX2FhX2NvbnRlbnRSZWZlcmVuY2UsMTEsJihsdmFsdWVzWzE0NzJdKSwwfSwKKwlOSURfaWRfc21pbWVfYWFfY29udGVudFJlZmVyZW5jZSwxMSwmKGx2YWx1ZXNbMTQ3MF0pLDB9LAogeyJpZC1zbWltZS1hYS1lbmNyeXBLZXlQcmVmIiwiaWQtc21pbWUtYWEtZW5jcnlwS2V5UHJlZiIsCi0JTklEX2lkX3NtaW1lX2FhX2VuY3J5cEtleVByZWYsMTEsJihsdmFsdWVzWzE0ODNdKSwwfSwKKwlOSURfaWRfc21pbWVfYWFfZW5jcnlwS2V5UHJlZiwxMSwmKGx2YWx1ZXNbMTQ4MV0pLDB9LAogeyJpZC1zbWltZS1hYS1zaWduaW5nQ2VydGlmaWNhdGUiLCJpZC1zbWltZS1hYS1zaWduaW5nQ2VydGlmaWNhdGUiLAotCU5JRF9pZF9zbWltZV9hYV9zaWduaW5nQ2VydGlmaWNhdGUsMTEsJihsdmFsdWVzWzE0OTRdKSwwfSwKKwlOSURfaWRfc21pbWVfYWFfc2lnbmluZ0NlcnRpZmljYXRlLDExLCYobHZhbHVlc1sxNDkyXSksMH0sCiB7ImlkLXNtaW1lLWFhLXNtaW1lRW5jcnlwdENlcnRzIiwiaWQtc21pbWUtYWEtc21pbWVFbmNyeXB0Q2VydHMiLAotCU5JRF9pZF9zbWltZV9hYV9zbWltZUVuY3J5cHRDZXJ0cywxMSwmKGx2YWx1ZXNbMTUwNV0pLDB9LAorCU5JRF9pZF9zbWltZV9hYV9zbWltZUVuY3J5cHRDZXJ0cywxMSwmKGx2YWx1ZXNbMTUwM10pLDB9LAogeyJpZC1zbWltZS1hYS10aW1lU3RhbXBUb2tlbiIsImlkLXNtaW1lLWFhLXRpbWVTdGFtcFRva2VuIiwKLQlOSURfaWRfc21pbWVfYWFfdGltZVN0YW1wVG9rZW4sMTEsJihsdmFsdWVzWzE1MTZdKSwwfSwKKwlOSURfaWRfc21pbWVfYWFfdGltZVN0YW1wVG9rZW4sMTEsJihsdmFsdWVzWzE1MTRdKSwwfSwKIHsiaWQtc21pbWUtYWEtZXRzLXNpZ1BvbGljeUlkIiwiaWQtc21pbWUtYWEtZXRzLXNpZ1BvbGljeUlkIiwKLQlOSURfaWRfc21pbWVfYWFfZXRzX3NpZ1BvbGljeUlkLDExLCYobHZhbHVlc1sxNTI3XSksMH0sCisJTklEX2lkX3NtaW1lX2FhX2V0c19zaWdQb2xpY3lJZCwxMSwmKGx2YWx1ZXNbMTUyNV0pLDB9LAogeyJpZC1zbWltZS1hYS1ldHMtY29tbWl0bWVudFR5cGUiLCJpZC1zbWltZS1hYS1ldHMtY29tbWl0bWVudFR5cGUiLAotCU5JRF9pZF9zbWltZV9hYV9ldHNfY29tbWl0bWVudFR5cGUsMTEsJihsdmFsdWVzWzE1MzhdKSwwfSwKKwlOSURfaWRfc21pbWVfYWFfZXRzX2NvbW1pdG1lbnRUeXBlLDExLCYobHZhbHVlc1sxNTM2XSksMH0sCiB7ImlkLXNtaW1lLWFhLWV0cy1zaWduZXJMb2NhdGlvbiIsImlkLXNtaW1lLWFhLWV0cy1zaWduZXJMb2NhdGlvbiIsCi0JTklEX2lkX3NtaW1lX2FhX2V0c19zaWduZXJMb2NhdGlvbiwxMSwmKGx2YWx1ZXNbMTU0OV0pLDB9LAorCU5JRF9pZF9zbWltZV9hYV9ldHNfc2lnbmVyTG9jYXRpb24sMTEsJihsdmFsdWVzWzE1NDddKSwwfSwKIHsiaWQtc21pbWUtYWEtZXRzLXNpZ25lckF0dHIiLCJpZC1zbWltZS1hYS1ldHMtc2lnbmVyQXR0ciIsCi0JTklEX2lkX3NtaW1lX2FhX2V0c19zaWduZXJBdHRyLDExLCYobHZhbHVlc1sxNTYwXSksMH0sCisJTklEX2lkX3NtaW1lX2FhX2V0c19zaWduZXJBdHRyLDExLCYobHZhbHVlc1sxNTU4XSksMH0sCiB7ImlkLXNtaW1lLWFhLWV0cy1vdGhlclNpZ0NlcnQiLCJpZC1zbWltZS1hYS1ldHMtb3RoZXJTaWdDZXJ0IiwKLQlOSURfaWRfc21pbWVfYWFfZXRzX290aGVyU2lnQ2VydCwxMSwmKGx2YWx1ZXNbMTU3MV0pLDB9LAorCU5JRF9pZF9zbWltZV9hYV9ldHNfb3RoZXJTaWdDZXJ0LDExLCYobHZhbHVlc1sxNTY5XSksMH0sCiB7ImlkLXNtaW1lLWFhLWV0cy1jb250ZW50VGltZXN0YW1wIiwKIAkiaWQtc21pbWUtYWEtZXRzLWNvbnRlbnRUaW1lc3RhbXAiLAotCU5JRF9pZF9zbWltZV9hYV9ldHNfY29udGVudFRpbWVzdGFtcCwxMSwmKGx2YWx1ZXNbMTU4Ml0pLDB9LAorCU5JRF9pZF9zbWltZV9hYV9ldHNfY29udGVudFRpbWVzdGFtcCwxMSwmKGx2YWx1ZXNbMTU4MF0pLDB9LAogeyJpZC1zbWltZS1hYS1ldHMtQ2VydGlmaWNhdGVSZWZzIiwiaWQtc21pbWUtYWEtZXRzLUNlcnRpZmljYXRlUmVmcyIsCi0JTklEX2lkX3NtaW1lX2FhX2V0c19DZXJ0aWZpY2F0ZVJlZnMsMTEsJihsdmFsdWVzWzE1OTNdKSwwfSwKKwlOSURfaWRfc21pbWVfYWFfZXRzX0NlcnRpZmljYXRlUmVmcywxMSwmKGx2YWx1ZXNbMTU5MV0pLDB9LAogeyJpZC1zbWltZS1hYS1ldHMtUmV2b2NhdGlvblJlZnMiLCJpZC1zbWltZS1hYS1ldHMtUmV2b2NhdGlvblJlZnMiLAotCU5JRF9pZF9zbWltZV9hYV9ldHNfUmV2b2NhdGlvblJlZnMsMTEsJihsdmFsdWVzWzE2MDRdKSwwfSwKKwlOSURfaWRfc21pbWVfYWFfZXRzX1Jldm9jYXRpb25SZWZzLDExLCYobHZhbHVlc1sxNjAyXSksMH0sCiB7ImlkLXNtaW1lLWFhLWV0cy1jZXJ0VmFsdWVzIiwiaWQtc21pbWUtYWEtZXRzLWNlcnRWYWx1ZXMiLAotCU5JRF9pZF9zbWltZV9hYV9ldHNfY2VydFZhbHVlcywxMSwmKGx2YWx1ZXNbMTYxNV0pLDB9LAorCU5JRF9pZF9zbWltZV9hYV9ldHNfY2VydFZhbHVlcywxMSwmKGx2YWx1ZXNbMTYxM10pLDB9LAogeyJpZC1zbWltZS1hYS1ldHMtcmV2b2NhdGlvblZhbHVlcyIsCiAJImlkLXNtaW1lLWFhLWV0cy1yZXZvY2F0aW9uVmFsdWVzIiwKLQlOSURfaWRfc21pbWVfYWFfZXRzX3Jldm9jYXRpb25WYWx1ZXMsMTEsJihsdmFsdWVzWzE2MjZdKSwwfSwKKwlOSURfaWRfc21pbWVfYWFfZXRzX3Jldm9jYXRpb25WYWx1ZXMsMTEsJihsdmFsdWVzWzE2MjRdKSwwfSwKIHsiaWQtc21pbWUtYWEtZXRzLWVzY1RpbWVTdGFtcCIsImlkLXNtaW1lLWFhLWV0cy1lc2NUaW1lU3RhbXAiLAotCU5JRF9pZF9zbWltZV9hYV9ldHNfZXNjVGltZVN0YW1wLDExLCYobHZhbHVlc1sxNjM3XSksMH0sCisJTklEX2lkX3NtaW1lX2FhX2V0c19lc2NUaW1lU3RhbXAsMTEsJihsdmFsdWVzWzE2MzVdKSwwfSwKIHsiaWQtc21pbWUtYWEtZXRzLWNlcnRDUkxUaW1lc3RhbXAiLAogCSJpZC1zbWltZS1hYS1ldHMtY2VydENSTFRpbWVzdGFtcCIsCi0JTklEX2lkX3NtaW1lX2FhX2V0c19jZXJ0Q1JMVGltZXN0YW1wLDExLCYobHZhbHVlc1sxNjQ4XSksMH0sCisJTklEX2lkX3NtaW1lX2FhX2V0c19jZXJ0Q1JMVGltZXN0YW1wLDExLCYobHZhbHVlc1sxNjQ2XSksMH0sCiB7ImlkLXNtaW1lLWFhLWV0cy1hcmNoaXZlVGltZVN0YW1wIiwKIAkiaWQtc21pbWUtYWEtZXRzLWFyY2hpdmVUaW1lU3RhbXAiLAotCU5JRF9pZF9zbWltZV9hYV9ldHNfYXJjaGl2ZVRpbWVTdGFtcCwxMSwmKGx2YWx1ZXNbMTY1OV0pLDB9LAorCU5JRF9pZF9zbWltZV9hYV9ldHNfYXJjaGl2ZVRpbWVTdGFtcCwxMSwmKGx2YWx1ZXNbMTY1N10pLDB9LAogeyJpZC1zbWltZS1hYS1zaWduYXR1cmVUeXBlIiwiaWQtc21pbWUtYWEtc2lnbmF0dXJlVHlwZSIsCi0JTklEX2lkX3NtaW1lX2FhX3NpZ25hdHVyZVR5cGUsMTEsJihsdmFsdWVzWzE2NzBdKSwwfSwKKwlOSURfaWRfc21pbWVfYWFfc2lnbmF0dXJlVHlwZSwxMSwmKGx2YWx1ZXNbMTY2OF0pLDB9LAogeyJpZC1zbWltZS1hYS1kdmNzLWR2YyIsImlkLXNtaW1lLWFhLWR2Y3MtZHZjIiwKLQlOSURfaWRfc21pbWVfYWFfZHZjc19kdmMsMTEsJihsdmFsdWVzWzE2ODFdKSwwfSwKKwlOSURfaWRfc21pbWVfYWFfZHZjc19kdmMsMTEsJihsdmFsdWVzWzE2NzldKSwwfSwKIHsiaWQtc21pbWUtYWxnLUVTREh3aXRoM0RFUyIsImlkLXNtaW1lLWFsZy1FU0RId2l0aDNERVMiLAotCU5JRF9pZF9zbWltZV9hbGdfRVNESHdpdGgzREVTLDExLCYobHZhbHVlc1sxNjkyXSksMH0sCisJTklEX2lkX3NtaW1lX2FsZ19FU0RId2l0aDNERVMsMTEsJihsdmFsdWVzWzE2OTBdKSwwfSwKIHsiaWQtc21pbWUtYWxnLUVTREh3aXRoUkMyIiwiaWQtc21pbWUtYWxnLUVTREh3aXRoUkMyIiwKLQlOSURfaWRfc21pbWVfYWxnX0VTREh3aXRoUkMyLDExLCYobHZhbHVlc1sxNzAzXSksMH0sCisJTklEX2lkX3NtaW1lX2FsZ19FU0RId2l0aFJDMiwxMSwmKGx2YWx1ZXNbMTcwMV0pLDB9LAogeyJpZC1zbWltZS1hbGctM0RFU3dyYXAiLCJpZC1zbWltZS1hbGctM0RFU3dyYXAiLAotCU5JRF9pZF9zbWltZV9hbGdfM0RFU3dyYXAsMTEsJihsdmFsdWVzWzE3MTRdKSwwfSwKKwlOSURfaWRfc21pbWVfYWxnXzNERVN3cmFwLDExLCYobHZhbHVlc1sxNzEyXSksMH0sCiB7ImlkLXNtaW1lLWFsZy1SQzJ3cmFwIiwiaWQtc21pbWUtYWxnLVJDMndyYXAiLAotCU5JRF9pZF9zbWltZV9hbGdfUkMyd3JhcCwxMSwmKGx2YWx1ZXNbMTcyNV0pLDB9LAorCU5JRF9pZF9zbWltZV9hbGdfUkMyd3JhcCwxMSwmKGx2YWx1ZXNbMTcyM10pLDB9LAogeyJpZC1zbWltZS1hbGctRVNESCIsImlkLXNtaW1lLWFsZy1FU0RIIixOSURfaWRfc21pbWVfYWxnX0VTREgsMTEsCi0JJihsdmFsdWVzWzE3MzZdKSwwfSwKKwkmKGx2YWx1ZXNbMTczNF0pLDB9LAogeyJpZC1zbWltZS1hbGctQ01TM0RFU3dyYXAiLCJpZC1zbWltZS1hbGctQ01TM0RFU3dyYXAiLAotCU5JRF9pZF9zbWltZV9hbGdfQ01TM0RFU3dyYXAsMTEsJihsdmFsdWVzWzE3NDddKSwwfSwKKwlOSURfaWRfc21pbWVfYWxnX0NNUzNERVN3cmFwLDExLCYobHZhbHVlc1sxNzQ1XSksMH0sCiB7ImlkLXNtaW1lLWFsZy1DTVNSQzJ3cmFwIiwiaWQtc21pbWUtYWxnLUNNU1JDMndyYXAiLAotCU5JRF9pZF9zbWltZV9hbGdfQ01TUkMyd3JhcCwxMSwmKGx2YWx1ZXNbMTc1OF0pLDB9LAorCU5JRF9pZF9zbWltZV9hbGdfQ01TUkMyd3JhcCwxMSwmKGx2YWx1ZXNbMTc1Nl0pLDB9LAogeyJpZC1zbWltZS1jZC1sZGFwIiwiaWQtc21pbWUtY2QtbGRhcCIsTklEX2lkX3NtaW1lX2NkX2xkYXAsMTEsCi0JJihsdmFsdWVzWzE3NjldKSwwfSwKKwkmKGx2YWx1ZXNbMTc2N10pLDB9LAogeyJpZC1zbWltZS1zcHEtZXRzLXNxdC11cmkiLCJpZC1zbWltZS1zcHEtZXRzLXNxdC11cmkiLAotCU5JRF9pZF9zbWltZV9zcHFfZXRzX3NxdF91cmksMTEsJihsdmFsdWVzWzE3ODBdKSwwfSwKKwlOSURfaWRfc21pbWVfc3BxX2V0c19zcXRfdXJpLDExLCYobHZhbHVlc1sxNzc4XSksMH0sCiB7ImlkLXNtaW1lLXNwcS1ldHMtc3F0LXVub3RpY2UiLCJpZC1zbWltZS1zcHEtZXRzLXNxdC11bm90aWNlIiwKLQlOSURfaWRfc21pbWVfc3BxX2V0c19zcXRfdW5vdGljZSwxMSwmKGx2YWx1ZXNbMTc5MV0pLDB9LAorCU5JRF9pZF9zbWltZV9zcHFfZXRzX3NxdF91bm90aWNlLDExLCYobHZhbHVlc1sxNzg5XSksMH0sCiB7ImlkLXNtaW1lLWN0aS1ldHMtcHJvb2ZPZk9yaWdpbiIsImlkLXNtaW1lLWN0aS1ldHMtcHJvb2ZPZk9yaWdpbiIsCi0JTklEX2lkX3NtaW1lX2N0aV9ldHNfcHJvb2ZPZk9yaWdpbiwxMSwmKGx2YWx1ZXNbMTgwMl0pLDB9LAorCU5JRF9pZF9zbWltZV9jdGlfZXRzX3Byb29mT2ZPcmlnaW4sMTEsJihsdmFsdWVzWzE4MDBdKSwwfSwKIHsiaWQtc21pbWUtY3RpLWV0cy1wcm9vZk9mUmVjZWlwdCIsImlkLXNtaW1lLWN0aS1ldHMtcHJvb2ZPZlJlY2VpcHQiLAotCU5JRF9pZF9zbWltZV9jdGlfZXRzX3Byb29mT2ZSZWNlaXB0LDExLCYobHZhbHVlc1sxODEzXSksMH0sCisJTklEX2lkX3NtaW1lX2N0aV9ldHNfcHJvb2ZPZlJlY2VpcHQsMTEsJihsdmFsdWVzWzE4MTFdKSwwfSwKIHsiaWQtc21pbWUtY3RpLWV0cy1wcm9vZk9mRGVsaXZlcnkiLAogCSJpZC1zbWltZS1jdGktZXRzLXByb29mT2ZEZWxpdmVyeSIsCi0JTklEX2lkX3NtaW1lX2N0aV9ldHNfcHJvb2ZPZkRlbGl2ZXJ5LDExLCYobHZhbHVlc1sxODI0XSksMH0sCisJTklEX2lkX3NtaW1lX2N0aV9ldHNfcHJvb2ZPZkRlbGl2ZXJ5LDExLCYobHZhbHVlc1sxODIyXSksMH0sCiB7ImlkLXNtaW1lLWN0aS1ldHMtcHJvb2ZPZlNlbmRlciIsImlkLXNtaW1lLWN0aS1ldHMtcHJvb2ZPZlNlbmRlciIsCi0JTklEX2lkX3NtaW1lX2N0aV9ldHNfcHJvb2ZPZlNlbmRlciwxMSwmKGx2YWx1ZXNbMTgzNV0pLDB9LAorCU5JRF9pZF9zbWltZV9jdGlfZXRzX3Byb29mT2ZTZW5kZXIsMTEsJihsdmFsdWVzWzE4MzNdKSwwfSwKIHsiaWQtc21pbWUtY3RpLWV0cy1wcm9vZk9mQXBwcm92YWwiLAogCSJpZC1zbWltZS1jdGktZXRzLXByb29mT2ZBcHByb3ZhbCIsCi0JTklEX2lkX3NtaW1lX2N0aV9ldHNfcHJvb2ZPZkFwcHJvdmFsLDExLCYobHZhbHVlc1sxODQ2XSksMH0sCisJTklEX2lkX3NtaW1lX2N0aV9ldHNfcHJvb2ZPZkFwcHJvdmFsLDExLCYobHZhbHVlc1sxODQ0XSksMH0sCiB7ImlkLXNtaW1lLWN0aS1ldHMtcHJvb2ZPZkNyZWF0aW9uIiwKIAkiaWQtc21pbWUtY3RpLWV0cy1wcm9vZk9mQ3JlYXRpb24iLAotCU5JRF9pZF9zbWltZV9jdGlfZXRzX3Byb29mT2ZDcmVhdGlvbiwxMSwmKGx2YWx1ZXNbMTg1N10pLDB9LAoteyJNRDQiLCJtZDQiLE5JRF9tZDQsOCwmKGx2YWx1ZXNbMTg2OF0pLDB9LAoteyJpZC1wa2l4LW1vZCIsImlkLXBraXgtbW9kIixOSURfaWRfcGtpeF9tb2QsNywmKGx2YWx1ZXNbMTg3Nl0pLDB9LAoteyJpZC1xdCIsImlkLXF0IixOSURfaWRfcXQsNywmKGx2YWx1ZXNbMTg4M10pLDB9LAoteyJpZC1pdCIsImlkLWl0IixOSURfaWRfaXQsNywmKGx2YWx1ZXNbMTg5MF0pLDB9LAoteyJpZC1wa2lwIiwiaWQtcGtpcCIsTklEX2lkX3BraXAsNywmKGx2YWx1ZXNbMTg5N10pLDB9LAoteyJpZC1hbGciLCJpZC1hbGciLE5JRF9pZF9hbGcsNywmKGx2YWx1ZXNbMTkwNF0pLDB9LAoteyJpZC1jbWMiLCJpZC1jbWMiLE5JRF9pZF9jbWMsNywmKGx2YWx1ZXNbMTkxMV0pLDB9LAoteyJpZC1vbiIsImlkLW9uIixOSURfaWRfb24sNywmKGx2YWx1ZXNbMTkxOF0pLDB9LAoteyJpZC1wZGEiLCJpZC1wZGEiLE5JRF9pZF9wZGEsNywmKGx2YWx1ZXNbMTkyNV0pLDB9LAoteyJpZC1hY2EiLCJpZC1hY2EiLE5JRF9pZF9hY2EsNywmKGx2YWx1ZXNbMTkzMl0pLDB9LAoteyJpZC1xY3MiLCJpZC1xY3MiLE5JRF9pZF9xY3MsNywmKGx2YWx1ZXNbMTkzOV0pLDB9LAoteyJpZC1jY3QiLCJpZC1jY3QiLE5JRF9pZF9jY3QsNywmKGx2YWx1ZXNbMTk0Nl0pLDB9LAorCU5JRF9pZF9zbWltZV9jdGlfZXRzX3Byb29mT2ZDcmVhdGlvbiwxMSwmKGx2YWx1ZXNbMTg1NV0pLDB9LAoreyJNRDQiLCJtZDQiLE5JRF9tZDQsOCwmKGx2YWx1ZXNbMTg2Nl0pLDB9LAoreyJpZC1wa2l4LW1vZCIsImlkLXBraXgtbW9kIixOSURfaWRfcGtpeF9tb2QsNywmKGx2YWx1ZXNbMTg3NF0pLDB9LAoreyJpZC1xdCIsImlkLXF0IixOSURfaWRfcXQsNywmKGx2YWx1ZXNbMTg4MV0pLDB9LAoreyJpZC1pdCIsImlkLWl0IixOSURfaWRfaXQsNywmKGx2YWx1ZXNbMTg4OF0pLDB9LAoreyJpZC1wa2lwIiwiaWQtcGtpcCIsTklEX2lkX3BraXAsNywmKGx2YWx1ZXNbMTg5NV0pLDB9LAoreyJpZC1hbGciLCJpZC1hbGciLE5JRF9pZF9hbGcsNywmKGx2YWx1ZXNbMTkwMl0pLDB9LAoreyJpZC1jbWMiLCJpZC1jbWMiLE5JRF9pZF9jbWMsNywmKGx2YWx1ZXNbMTkwOV0pLDB9LAoreyJpZC1vbiIsImlkLW9uIixOSURfaWRfb24sNywmKGx2YWx1ZXNbMTkxNl0pLDB9LAoreyJpZC1wZGEiLCJpZC1wZGEiLE5JRF9pZF9wZGEsNywmKGx2YWx1ZXNbMTkyM10pLDB9LAoreyJpZC1hY2EiLCJpZC1hY2EiLE5JRF9pZF9hY2EsNywmKGx2YWx1ZXNbMTkzMF0pLDB9LAoreyJpZC1xY3MiLCJpZC1xY3MiLE5JRF9pZF9xY3MsNywmKGx2YWx1ZXNbMTkzN10pLDB9LAoreyJpZC1jY3QiLCJpZC1jY3QiLE5JRF9pZF9jY3QsNywmKGx2YWx1ZXNbMTk0NF0pLDB9LAogeyJpZC1wa2l4MS1leHBsaWNpdC04OCIsImlkLXBraXgxLWV4cGxpY2l0LTg4IiwKLQlOSURfaWRfcGtpeDFfZXhwbGljaXRfODgsOCwmKGx2YWx1ZXNbMTk1M10pLDB9LAorCU5JRF9pZF9wa2l4MV9leHBsaWNpdF84OCw4LCYobHZhbHVlc1sxOTUxXSksMH0sCiB7ImlkLXBraXgxLWltcGxpY2l0LTg4IiwiaWQtcGtpeDEtaW1wbGljaXQtODgiLAotCU5JRF9pZF9wa2l4MV9pbXBsaWNpdF84OCw4LCYobHZhbHVlc1sxOTYxXSksMH0sCisJTklEX2lkX3BraXgxX2ltcGxpY2l0Xzg4LDgsJihsdmFsdWVzWzE5NTldKSwwfSwKIHsiaWQtcGtpeDEtZXhwbGljaXQtOTMiLCJpZC1wa2l4MS1leHBsaWNpdC05MyIsCi0JTklEX2lkX3BraXgxX2V4cGxpY2l0XzkzLDgsJihsdmFsdWVzWzE5NjldKSwwfSwKKwlOSURfaWRfcGtpeDFfZXhwbGljaXRfOTMsOCwmKGx2YWx1ZXNbMTk2N10pLDB9LAogeyJpZC1wa2l4MS1pbXBsaWNpdC05MyIsImlkLXBraXgxLWltcGxpY2l0LTkzIiwKLQlOSURfaWRfcGtpeDFfaW1wbGljaXRfOTMsOCwmKGx2YWx1ZXNbMTk3N10pLDB9LAoteyJpZC1tb2QtY3JtZiIsImlkLW1vZC1jcm1mIixOSURfaWRfbW9kX2NybWYsOCwmKGx2YWx1ZXNbMTk4NV0pLDB9LAoteyJpZC1tb2QtY21jIiwiaWQtbW9kLWNtYyIsTklEX2lkX21vZF9jbWMsOCwmKGx2YWx1ZXNbMTk5M10pLDB9LAorCU5JRF9pZF9wa2l4MV9pbXBsaWNpdF85Myw4LCYobHZhbHVlc1sxOTc1XSksMH0sCit7ImlkLW1vZC1jcm1mIiwiaWQtbW9kLWNybWYiLE5JRF9pZF9tb2RfY3JtZiw4LCYobHZhbHVlc1sxOTgzXSksMH0sCit7ImlkLW1vZC1jbWMiLCJpZC1tb2QtY21jIixOSURfaWRfbW9kX2NtYyw4LCYobHZhbHVlc1sxOTkxXSksMH0sCiB7ImlkLW1vZC1rZWEtcHJvZmlsZS04OCIsImlkLW1vZC1rZWEtcHJvZmlsZS04OCIsCi0JTklEX2lkX21vZF9rZWFfcHJvZmlsZV84OCw4LCYobHZhbHVlc1syMDAxXSksMH0sCisJTklEX2lkX21vZF9rZWFfcHJvZmlsZV84OCw4LCYobHZhbHVlc1sxOTk5XSksMH0sCiB7ImlkLW1vZC1rZWEtcHJvZmlsZS05MyIsImlkLW1vZC1rZWEtcHJvZmlsZS05MyIsCi0JTklEX2lkX21vZF9rZWFfcHJvZmlsZV85Myw4LCYobHZhbHVlc1syMDA5XSksMH0sCi17ImlkLW1vZC1jbXAiLCJpZC1tb2QtY21wIixOSURfaWRfbW9kX2NtcCw4LCYobHZhbHVlc1syMDE3XSksMH0sCisJTklEX2lkX21vZF9rZWFfcHJvZmlsZV85Myw4LCYobHZhbHVlc1syMDA3XSksMH0sCit7ImlkLW1vZC1jbXAiLCJpZC1tb2QtY21wIixOSURfaWRfbW9kX2NtcCw4LCYobHZhbHVlc1syMDE1XSksMH0sCiB7ImlkLW1vZC1xdWFsaWZpZWQtY2VydC04OCIsImlkLW1vZC1xdWFsaWZpZWQtY2VydC04OCIsCi0JTklEX2lkX21vZF9xdWFsaWZpZWRfY2VydF84OCw4LCYobHZhbHVlc1syMDI1XSksMH0sCisJTklEX2lkX21vZF9xdWFsaWZpZWRfY2VydF84OCw4LCYobHZhbHVlc1syMDIzXSksMH0sCiB7ImlkLW1vZC1xdWFsaWZpZWQtY2VydC05MyIsImlkLW1vZC1xdWFsaWZpZWQtY2VydC05MyIsCi0JTklEX2lkX21vZF9xdWFsaWZpZWRfY2VydF85Myw4LCYobHZhbHVlc1syMDMzXSksMH0sCisJTklEX2lkX21vZF9xdWFsaWZpZWRfY2VydF85Myw4LCYobHZhbHVlc1syMDMxXSksMH0sCiB7ImlkLW1vZC1hdHRyaWJ1dGUtY2VydCIsImlkLW1vZC1hdHRyaWJ1dGUtY2VydCIsCi0JTklEX2lkX21vZF9hdHRyaWJ1dGVfY2VydCw4LCYobHZhbHVlc1syMDQxXSksMH0sCisJTklEX2lkX21vZF9hdHRyaWJ1dGVfY2VydCw4LCYobHZhbHVlc1syMDM5XSksMH0sCiB7ImlkLW1vZC10aW1lc3RhbXAtcHJvdG9jb2wiLCJpZC1tb2QtdGltZXN0YW1wLXByb3RvY29sIiwKLQlOSURfaWRfbW9kX3RpbWVzdGFtcF9wcm90b2NvbCw4LCYobHZhbHVlc1syMDQ5XSksMH0sCi17ImlkLW1vZC1vY3NwIiwiaWQtbW9kLW9jc3AiLE5JRF9pZF9tb2Rfb2NzcCw4LCYobHZhbHVlc1syMDU3XSksMH0sCi17ImlkLW1vZC1kdmNzIiwiaWQtbW9kLWR2Y3MiLE5JRF9pZF9tb2RfZHZjcyw4LCYobHZhbHVlc1syMDY1XSksMH0sCisJTklEX2lkX21vZF90aW1lc3RhbXBfcHJvdG9jb2wsOCwmKGx2YWx1ZXNbMjA0N10pLDB9LAoreyJpZC1tb2Qtb2NzcCIsImlkLW1vZC1vY3NwIixOSURfaWRfbW9kX29jc3AsOCwmKGx2YWx1ZXNbMjA1NV0pLDB9LAoreyJpZC1tb2QtZHZjcyIsImlkLW1vZC1kdmNzIixOSURfaWRfbW9kX2R2Y3MsOCwmKGx2YWx1ZXNbMjA2M10pLDB9LAogeyJpZC1tb2QtY21wMjAwMCIsImlkLW1vZC1jbXAyMDAwIixOSURfaWRfbW9kX2NtcDIwMDAsOCwKLQkmKGx2YWx1ZXNbMjA3M10pLDB9LAoteyJiaW9tZXRyaWNJbmZvIiwiQmlvbWV0cmljIEluZm8iLE5JRF9iaW9tZXRyaWNJbmZvLDgsJihsdmFsdWVzWzIwODFdKSwwfSwKLXsicWNTdGF0ZW1lbnRzIiwicWNTdGF0ZW1lbnRzIixOSURfcWNTdGF0ZW1lbnRzLDgsJihsdmFsdWVzWzIwODldKSwwfSwKKwkmKGx2YWx1ZXNbMjA3MV0pLDB9LAoreyJiaW9tZXRyaWNJbmZvIiwiQmlvbWV0cmljIEluZm8iLE5JRF9iaW9tZXRyaWNJbmZvLDgsJihsdmFsdWVzWzIwNzldKSwwfSwKK3sicWNTdGF0ZW1lbnRzIiwicWNTdGF0ZW1lbnRzIixOSURfcWNTdGF0ZW1lbnRzLDgsJihsdmFsdWVzWzIwODddKSwwfSwKIHsiYWMtYXVkaXRFbnRpdHkiLCJhYy1hdWRpdEVudGl0eSIsTklEX2FjX2F1ZGl0RW50aXR5LDgsCi0JJihsdmFsdWVzWzIwOTddKSwwfSwKLXsiYWMtdGFyZ2V0aW5nIiwiYWMtdGFyZ2V0aW5nIixOSURfYWNfdGFyZ2V0aW5nLDgsJihsdmFsdWVzWzIxMDVdKSwwfSwKLXsiYWFDb250cm9scyIsImFhQ29udHJvbHMiLE5JRF9hYUNvbnRyb2xzLDgsJihsdmFsdWVzWzIxMTNdKSwwfSwKKwkmKGx2YWx1ZXNbMjA5NV0pLDB9LAoreyJhYy10YXJnZXRpbmciLCJhYy10YXJnZXRpbmciLE5JRF9hY190YXJnZXRpbmcsOCwmKGx2YWx1ZXNbMjEwM10pLDB9LAoreyJhYUNvbnRyb2xzIiwiYWFDb250cm9scyIsTklEX2FhQ29udHJvbHMsOCwmKGx2YWx1ZXNbMjExMV0pLDB9LAogeyJzYmdwLWlwQWRkckJsb2NrIiwic2JncC1pcEFkZHJCbG9jayIsTklEX3NiZ3BfaXBBZGRyQmxvY2ssOCwKLQkmKGx2YWx1ZXNbMjEyMV0pLDB9LAorCSYobHZhbHVlc1syMTE5XSksMH0sCiB7InNiZ3AtYXV0b25vbW91c1N5c051bSIsInNiZ3AtYXV0b25vbW91c1N5c051bSIsCi0JTklEX3NiZ3BfYXV0b25vbW91c1N5c051bSw4LCYobHZhbHVlc1syMTI5XSksMH0sCisJTklEX3NiZ3BfYXV0b25vbW91c1N5c051bSw4LCYobHZhbHVlc1syMTI3XSksMH0sCiB7InNiZ3Atcm91dGVySWRlbnRpZmllciIsInNiZ3Atcm91dGVySWRlbnRpZmllciIsCi0JTklEX3NiZ3Bfcm91dGVySWRlbnRpZmllciw4LCYobHZhbHVlc1syMTM3XSksMH0sCi17InRleHROb3RpY2UiLCJ0ZXh0Tm90aWNlIixOSURfdGV4dE5vdGljZSw4LCYobHZhbHVlc1syMTQ1XSksMH0sCisJTklEX3NiZ3Bfcm91dGVySWRlbnRpZmllciw4LCYobHZhbHVlc1syMTM1XSksMH0sCit7InRleHROb3RpY2UiLCJ0ZXh0Tm90aWNlIixOSURfdGV4dE5vdGljZSw4LCYobHZhbHVlc1syMTQzXSksMH0sCiB7Imlwc2VjRW5kU3lzdGVtIiwiSVBTZWMgRW5kIFN5c3RlbSIsTklEX2lwc2VjRW5kU3lzdGVtLDgsCi0JJihsdmFsdWVzWzIxNTNdKSwwfSwKLXsiaXBzZWNUdW5uZWwiLCJJUFNlYyBUdW5uZWwiLE5JRF9pcHNlY1R1bm5lbCw4LCYobHZhbHVlc1syMTYxXSksMH0sCi17Imlwc2VjVXNlciIsIklQU2VjIFVzZXIiLE5JRF9pcHNlY1VzZXIsOCwmKGx2YWx1ZXNbMjE2OV0pLDB9LAoteyJEVkNTIiwiZHZjcyIsTklEX2R2Y3MsOCwmKGx2YWx1ZXNbMjE3N10pLDB9LAorCSYobHZhbHVlc1syMTUxXSksMH0sCit7Imlwc2VjVHVubmVsIiwiSVBTZWMgVHVubmVsIixOSURfaXBzZWNUdW5uZWwsOCwmKGx2YWx1ZXNbMjE1OV0pLDB9LAoreyJpcHNlY1VzZXIiLCJJUFNlYyBVc2VyIixOSURfaXBzZWNVc2VyLDgsJihsdmFsdWVzWzIxNjddKSwwfSwKK3siRFZDUyIsImR2Y3MiLE5JRF9kdmNzLDgsJihsdmFsdWVzWzIxNzVdKSwwfSwKIHsiaWQtaXQtY2FQcm90RW5jQ2VydCIsImlkLWl0LWNhUHJvdEVuY0NlcnQiLE5JRF9pZF9pdF9jYVByb3RFbmNDZXJ0LAotCTgsJihsdmFsdWVzWzIxODVdKSwwfSwKKwk4LCYobHZhbHVlc1syMTgzXSksMH0sCiB7ImlkLWl0LXNpZ25LZXlQYWlyVHlwZXMiLCJpZC1pdC1zaWduS2V5UGFpclR5cGVzIiwKLQlOSURfaWRfaXRfc2lnbktleVBhaXJUeXBlcyw4LCYobHZhbHVlc1syMTkzXSksMH0sCisJTklEX2lkX2l0X3NpZ25LZXlQYWlyVHlwZXMsOCwmKGx2YWx1ZXNbMjE5MV0pLDB9LAogeyJpZC1pdC1lbmNLZXlQYWlyVHlwZXMiLCJpZC1pdC1lbmNLZXlQYWlyVHlwZXMiLAotCU5JRF9pZF9pdF9lbmNLZXlQYWlyVHlwZXMsOCwmKGx2YWx1ZXNbMjIwMV0pLDB9LAorCU5JRF9pZF9pdF9lbmNLZXlQYWlyVHlwZXMsOCwmKGx2YWx1ZXNbMjE5OV0pLDB9LAogeyJpZC1pdC1wcmVmZXJyZWRTeW1tQWxnIiwiaWQtaXQtcHJlZmVycmVkU3ltbUFsZyIsCi0JTklEX2lkX2l0X3ByZWZlcnJlZFN5bW1BbGcsOCwmKGx2YWx1ZXNbMjIwOV0pLDB9LAorCU5JRF9pZF9pdF9wcmVmZXJyZWRTeW1tQWxnLDgsJihsdmFsdWVzWzIyMDddKSwwfSwKIHsiaWQtaXQtY2FLZXlVcGRhdGVJbmZvIiwiaWQtaXQtY2FLZXlVcGRhdGVJbmZvIiwKLQlOSURfaWRfaXRfY2FLZXlVcGRhdGVJbmZvLDgsJihsdmFsdWVzWzIyMTddKSwwfSwKKwlOSURfaWRfaXRfY2FLZXlVcGRhdGVJbmZvLDgsJihsdmFsdWVzWzIyMTVdKSwwfSwKIHsiaWQtaXQtY3VycmVudENSTCIsImlkLWl0LWN1cnJlbnRDUkwiLE5JRF9pZF9pdF9jdXJyZW50Q1JMLDgsCi0JJihsdmFsdWVzWzIyMjVdKSwwfSwKKwkmKGx2YWx1ZXNbMjIyM10pLDB9LAogeyJpZC1pdC11bnN1cHBvcnRlZE9JRHMiLCJpZC1pdC11bnN1cHBvcnRlZE9JRHMiLAotCU5JRF9pZF9pdF91bnN1cHBvcnRlZE9JRHMsOCwmKGx2YWx1ZXNbMjIzM10pLDB9LAorCU5JRF9pZF9pdF91bnN1cHBvcnRlZE9JRHMsOCwmKGx2YWx1ZXNbMjIzMV0pLDB9LAogeyJpZC1pdC1zdWJzY3JpcHRpb25SZXF1ZXN0IiwiaWQtaXQtc3Vic2NyaXB0aW9uUmVxdWVzdCIsCi0JTklEX2lkX2l0X3N1YnNjcmlwdGlvblJlcXVlc3QsOCwmKGx2YWx1ZXNbMjI0MV0pLDB9LAorCU5JRF9pZF9pdF9zdWJzY3JpcHRpb25SZXF1ZXN0LDgsJihsdmFsdWVzWzIyMzldKSwwfSwKIHsiaWQtaXQtc3Vic2NyaXB0aW9uUmVzcG9uc2UiLCJpZC1pdC1zdWJzY3JpcHRpb25SZXNwb25zZSIsCi0JTklEX2lkX2l0X3N1YnNjcmlwdGlvblJlc3BvbnNlLDgsJihsdmFsdWVzWzIyNDldKSwwfSwKKwlOSURfaWRfaXRfc3Vic2NyaXB0aW9uUmVzcG9uc2UsOCwmKGx2YWx1ZXNbMjI0N10pLDB9LAogeyJpZC1pdC1rZXlQYWlyUGFyYW1SZXEiLCJpZC1pdC1rZXlQYWlyUGFyYW1SZXEiLAotCU5JRF9pZF9pdF9rZXlQYWlyUGFyYW1SZXEsOCwmKGx2YWx1ZXNbMjI1N10pLDB9LAorCU5JRF9pZF9pdF9rZXlQYWlyUGFyYW1SZXEsOCwmKGx2YWx1ZXNbMjI1NV0pLDB9LAogeyJpZC1pdC1rZXlQYWlyUGFyYW1SZXAiLCJpZC1pdC1rZXlQYWlyUGFyYW1SZXAiLAotCU5JRF9pZF9pdF9rZXlQYWlyUGFyYW1SZXAsOCwmKGx2YWx1ZXNbMjI2NV0pLDB9LAorCU5JRF9pZF9pdF9rZXlQYWlyUGFyYW1SZXAsOCwmKGx2YWx1ZXNbMjI2M10pLDB9LAogeyJpZC1pdC1yZXZQYXNzcGhyYXNlIiwiaWQtaXQtcmV2UGFzc3BocmFzZSIsTklEX2lkX2l0X3JldlBhc3NwaHJhc2UsCi0JOCwmKGx2YWx1ZXNbMjI3M10pLDB9LAorCTgsJihsdmFsdWVzWzIyNzFdKSwwfSwKIHsiaWQtaXQtaW1wbGljaXRDb25maXJtIiwiaWQtaXQtaW1wbGljaXRDb25maXJtIiwKLQlOSURfaWRfaXRfaW1wbGljaXRDb25maXJtLDgsJihsdmFsdWVzWzIyODFdKSwwfSwKKwlOSURfaWRfaXRfaW1wbGljaXRDb25maXJtLDgsJihsdmFsdWVzWzIyNzldKSwwfSwKIHsiaWQtaXQtY29uZmlybVdhaXRUaW1lIiwiaWQtaXQtY29uZmlybVdhaXRUaW1lIiwKLQlOSURfaWRfaXRfY29uZmlybVdhaXRUaW1lLDgsJihsdmFsdWVzWzIyODldKSwwfSwKKwlOSURfaWRfaXRfY29uZmlybVdhaXRUaW1lLDgsJihsdmFsdWVzWzIyODddKSwwfSwKIHsiaWQtaXQtb3JpZ1BLSU1lc3NhZ2UiLCJpZC1pdC1vcmlnUEtJTWVzc2FnZSIsCi0JTklEX2lkX2l0X29yaWdQS0lNZXNzYWdlLDgsJihsdmFsdWVzWzIyOTddKSwwfSwKLXsiaWQtcmVnQ3RybCIsImlkLXJlZ0N0cmwiLE5JRF9pZF9yZWdDdHJsLDgsJihsdmFsdWVzWzIzMDVdKSwwfSwKLXsiaWQtcmVnSW5mbyIsImlkLXJlZ0luZm8iLE5JRF9pZF9yZWdJbmZvLDgsJihsdmFsdWVzWzIzMTNdKSwwfSwKKwlOSURfaWRfaXRfb3JpZ1BLSU1lc3NhZ2UsOCwmKGx2YWx1ZXNbMjI5NV0pLDB9LAoreyJpZC1yZWdDdHJsIiwiaWQtcmVnQ3RybCIsTklEX2lkX3JlZ0N0cmwsOCwmKGx2YWx1ZXNbMjMwM10pLDB9LAoreyJpZC1yZWdJbmZvIiwiaWQtcmVnSW5mbyIsTklEX2lkX3JlZ0luZm8sOCwmKGx2YWx1ZXNbMjMxMV0pLDB9LAogeyJpZC1yZWdDdHJsLXJlZ1Rva2VuIiwiaWQtcmVnQ3RybC1yZWdUb2tlbiIsTklEX2lkX3JlZ0N0cmxfcmVnVG9rZW4sCi0JOSwmKGx2YWx1ZXNbMjMyMV0pLDB9LAorCTksJihsdmFsdWVzWzIzMTldKSwwfSwKIHsiaWQtcmVnQ3RybC1hdXRoZW50aWNhdG9yIiwiaWQtcmVnQ3RybC1hdXRoZW50aWNhdG9yIiwKLQlOSURfaWRfcmVnQ3RybF9hdXRoZW50aWNhdG9yLDksJihsdmFsdWVzWzIzMzBdKSwwfSwKKwlOSURfaWRfcmVnQ3RybF9hdXRoZW50aWNhdG9yLDksJihsdmFsdWVzWzIzMjhdKSwwfSwKIHsiaWQtcmVnQ3RybC1wa2lQdWJsaWNhdGlvbkluZm8iLCJpZC1yZWdDdHJsLXBraVB1YmxpY2F0aW9uSW5mbyIsCi0JTklEX2lkX3JlZ0N0cmxfcGtpUHVibGljYXRpb25JbmZvLDksJihsdmFsdWVzWzIzMzldKSwwfSwKKwlOSURfaWRfcmVnQ3RybF9wa2lQdWJsaWNhdGlvbkluZm8sOSwmKGx2YWx1ZXNbMjMzN10pLDB9LAogeyJpZC1yZWdDdHJsLXBraUFyY2hpdmVPcHRpb25zIiwiaWQtcmVnQ3RybC1wa2lBcmNoaXZlT3B0aW9ucyIsCi0JTklEX2lkX3JlZ0N0cmxfcGtpQXJjaGl2ZU9wdGlvbnMsOSwmKGx2YWx1ZXNbMjM0OF0pLDB9LAorCU5JRF9pZF9yZWdDdHJsX3BraUFyY2hpdmVPcHRpb25zLDksJihsdmFsdWVzWzIzNDZdKSwwfSwKIHsiaWQtcmVnQ3RybC1vbGRDZXJ0SUQiLCJpZC1yZWdDdHJsLW9sZENlcnRJRCIsCi0JTklEX2lkX3JlZ0N0cmxfb2xkQ2VydElELDksJihsdmFsdWVzWzIzNTddKSwwfSwKKwlOSURfaWRfcmVnQ3RybF9vbGRDZXJ0SUQsOSwmKGx2YWx1ZXNbMjM1NV0pLDB9LAogeyJpZC1yZWdDdHJsLXByb3RvY29sRW5jcktleSIsImlkLXJlZ0N0cmwtcHJvdG9jb2xFbmNyS2V5IiwKLQlOSURfaWRfcmVnQ3RybF9wcm90b2NvbEVuY3JLZXksOSwmKGx2YWx1ZXNbMjM2Nl0pLDB9LAorCU5JRF9pZF9yZWdDdHJsX3Byb3RvY29sRW5jcktleSw5LCYobHZhbHVlc1syMzY0XSksMH0sCiB7ImlkLXJlZ0luZm8tdXRmOFBhaXJzIiwiaWQtcmVnSW5mby11dGY4UGFpcnMiLAotCU5JRF9pZF9yZWdJbmZvX3V0ZjhQYWlycyw5LCYobHZhbHVlc1syMzc1XSksMH0sCisJTklEX2lkX3JlZ0luZm9fdXRmOFBhaXJzLDksJihsdmFsdWVzWzIzNzNdKSwwfSwKIHsiaWQtcmVnSW5mby1jZXJ0UmVxIiwiaWQtcmVnSW5mby1jZXJ0UmVxIixOSURfaWRfcmVnSW5mb19jZXJ0UmVxLDksCi0JJihsdmFsdWVzWzIzODRdKSwwfSwKLXsiaWQtYWxnLWRlczQwIiwiaWQtYWxnLWRlczQwIixOSURfaWRfYWxnX2RlczQwLDgsJihsdmFsdWVzWzIzOTNdKSwwfSwKKwkmKGx2YWx1ZXNbMjM4Ml0pLDB9LAoreyJpZC1hbGctZGVzNDAiLCJpZC1hbGctZGVzNDAiLE5JRF9pZF9hbGdfZGVzNDAsOCwmKGx2YWx1ZXNbMjM5MV0pLDB9LAogeyJpZC1hbGctbm9TaWduYXR1cmUiLCJpZC1hbGctbm9TaWduYXR1cmUiLE5JRF9pZF9hbGdfbm9TaWduYXR1cmUsOCwKLQkmKGx2YWx1ZXNbMjQwMV0pLDB9LAorCSYobHZhbHVlc1syMzk5XSksMH0sCiB7ImlkLWFsZy1kaC1zaWctaG1hYy1zaGExIiwiaWQtYWxnLWRoLXNpZy1obWFjLXNoYTEiLAotCU5JRF9pZF9hbGdfZGhfc2lnX2htYWNfc2hhMSw4LCYobHZhbHVlc1syNDA5XSksMH0sCi17ImlkLWFsZy1kaC1wb3AiLCJpZC1hbGctZGgtcG9wIixOSURfaWRfYWxnX2RoX3BvcCw4LCYobHZhbHVlc1syNDE3XSksMH0sCisJTklEX2lkX2FsZ19kaF9zaWdfaG1hY19zaGExLDgsJihsdmFsdWVzWzI0MDddKSwwfSwKK3siaWQtYWxnLWRoLXBvcCIsImlkLWFsZy1kaC1wb3AiLE5JRF9pZF9hbGdfZGhfcG9wLDgsJihsdmFsdWVzWzI0MTVdKSwwfSwKIHsiaWQtY21jLXN0YXR1c0luZm8iLCJpZC1jbWMtc3RhdHVzSW5mbyIsTklEX2lkX2NtY19zdGF0dXNJbmZvLDgsCi0JJihsdmFsdWVzWzI0MjVdKSwwfSwKKwkmKGx2YWx1ZXNbMjQyM10pLDB9LAogeyJpZC1jbWMtaWRlbnRpZmljYXRpb24iLCJpZC1jbWMtaWRlbnRpZmljYXRpb24iLAotCU5JRF9pZF9jbWNfaWRlbnRpZmljYXRpb24sOCwmKGx2YWx1ZXNbMjQzM10pLDB9LAorCU5JRF9pZF9jbWNfaWRlbnRpZmljYXRpb24sOCwmKGx2YWx1ZXNbMjQzMV0pLDB9LAogeyJpZC1jbWMtaWRlbnRpdHlQcm9vZiIsImlkLWNtYy1pZGVudGl0eVByb29mIiwKLQlOSURfaWRfY21jX2lkZW50aXR5UHJvb2YsOCwmKGx2YWx1ZXNbMjQ0MV0pLDB9LAorCU5JRF9pZF9jbWNfaWRlbnRpdHlQcm9vZiw4LCYobHZhbHVlc1syNDM5XSksMH0sCiB7ImlkLWNtYy1kYXRhUmV0dXJuIiwiaWQtY21jLWRhdGFSZXR1cm4iLE5JRF9pZF9jbWNfZGF0YVJldHVybiw4LAotCSYobHZhbHVlc1syNDQ5XSksMH0sCisJJihsdmFsdWVzWzI0NDddKSwwfSwKIHsiaWQtY21jLXRyYW5zYWN0aW9uSWQiLCJpZC1jbWMtdHJhbnNhY3Rpb25JZCIsCi0JTklEX2lkX2NtY190cmFuc2FjdGlvbklkLDgsJihsdmFsdWVzWzI0NTddKSwwfSwKKwlOSURfaWRfY21jX3RyYW5zYWN0aW9uSWQsOCwmKGx2YWx1ZXNbMjQ1NV0pLDB9LAogeyJpZC1jbWMtc2VuZGVyTm9uY2UiLCJpZC1jbWMtc2VuZGVyTm9uY2UiLE5JRF9pZF9jbWNfc2VuZGVyTm9uY2UsOCwKLQkmKGx2YWx1ZXNbMjQ2NV0pLDB9LAorCSYobHZhbHVlc1syNDYzXSksMH0sCiB7ImlkLWNtYy1yZWNpcGllbnROb25jZSIsImlkLWNtYy1yZWNpcGllbnROb25jZSIsCi0JTklEX2lkX2NtY19yZWNpcGllbnROb25jZSw4LCYobHZhbHVlc1syNDczXSksMH0sCisJTklEX2lkX2NtY19yZWNpcGllbnROb25jZSw4LCYobHZhbHVlc1syNDcxXSksMH0sCiB7ImlkLWNtYy1hZGRFeHRlbnNpb25zIiwiaWQtY21jLWFkZEV4dGVuc2lvbnMiLAotCU5JRF9pZF9jbWNfYWRkRXh0ZW5zaW9ucyw4LCYobHZhbHVlc1syNDgxXSksMH0sCisJTklEX2lkX2NtY19hZGRFeHRlbnNpb25zLDgsJihsdmFsdWVzWzI0NzldKSwwfSwKIHsiaWQtY21jLWVuY3J5cHRlZFBPUCIsImlkLWNtYy1lbmNyeXB0ZWRQT1AiLE5JRF9pZF9jbWNfZW5jcnlwdGVkUE9QLAotCTgsJihsdmFsdWVzWzI0ODldKSwwfSwKKwk4LCYobHZhbHVlc1syNDg3XSksMH0sCiB7ImlkLWNtYy1kZWNyeXB0ZWRQT1AiLCJpZC1jbWMtZGVjcnlwdGVkUE9QIixOSURfaWRfY21jX2RlY3J5cHRlZFBPUCwKLQk4LCYobHZhbHVlc1syNDk3XSksMH0sCisJOCwmKGx2YWx1ZXNbMjQ5NV0pLDB9LAogeyJpZC1jbWMtbHJhUE9QV2l0bmVzcyIsImlkLWNtYy1scmFQT1BXaXRuZXNzIiwKLQlOSURfaWRfY21jX2xyYVBPUFdpdG5lc3MsOCwmKGx2YWx1ZXNbMjUwNV0pLDB9LAorCU5JRF9pZF9jbWNfbHJhUE9QV2l0bmVzcyw4LCYobHZhbHVlc1syNTAzXSksMH0sCiB7ImlkLWNtYy1nZXRDZXJ0IiwiaWQtY21jLWdldENlcnQiLE5JRF9pZF9jbWNfZ2V0Q2VydCw4LAotCSYobHZhbHVlc1syNTEzXSksMH0sCi17ImlkLWNtYy1nZXRDUkwiLCJpZC1jbWMtZ2V0Q1JMIixOSURfaWRfY21jX2dldENSTCw4LCYobHZhbHVlc1syNTIxXSksMH0sCisJJihsdmFsdWVzWzI1MTFdKSwwfSwKK3siaWQtY21jLWdldENSTCIsImlkLWNtYy1nZXRDUkwiLE5JRF9pZF9jbWNfZ2V0Q1JMLDgsJihsdmFsdWVzWzI1MTldKSwwfSwKIHsiaWQtY21jLXJldm9rZVJlcXVlc3QiLCJpZC1jbWMtcmV2b2tlUmVxdWVzdCIsCi0JTklEX2lkX2NtY19yZXZva2VSZXF1ZXN0LDgsJihsdmFsdWVzWzI1MjldKSwwfSwKKwlOSURfaWRfY21jX3Jldm9rZVJlcXVlc3QsOCwmKGx2YWx1ZXNbMjUyN10pLDB9LAogeyJpZC1jbWMtcmVnSW5mbyIsImlkLWNtYy1yZWdJbmZvIixOSURfaWRfY21jX3JlZ0luZm8sOCwKLQkmKGx2YWx1ZXNbMjUzN10pLDB9LAorCSYobHZhbHVlc1syNTM1XSksMH0sCiB7ImlkLWNtYy1yZXNwb25zZUluZm8iLCJpZC1jbWMtcmVzcG9uc2VJbmZvIixOSURfaWRfY21jX3Jlc3BvbnNlSW5mbywKLQk4LCYobHZhbHVlc1syNTQ1XSksMH0sCisJOCwmKGx2YWx1ZXNbMjU0M10pLDB9LAogeyJpZC1jbWMtcXVlcnlQZW5kaW5nIiwiaWQtY21jLXF1ZXJ5UGVuZGluZyIsTklEX2lkX2NtY19xdWVyeVBlbmRpbmcsCi0JOCwmKGx2YWx1ZXNbMjU1M10pLDB9LAorCTgsJihsdmFsdWVzWzI1NTFdKSwwfSwKIHsiaWQtY21jLXBvcExpbmtSYW5kb20iLCJpZC1jbWMtcG9wTGlua1JhbmRvbSIsCi0JTklEX2lkX2NtY19wb3BMaW5rUmFuZG9tLDgsJihsdmFsdWVzWzI1NjFdKSwwfSwKKwlOSURfaWRfY21jX3BvcExpbmtSYW5kb20sOCwmKGx2YWx1ZXNbMjU1OV0pLDB9LAogeyJpZC1jbWMtcG9wTGlua1dpdG5lc3MiLCJpZC1jbWMtcG9wTGlua1dpdG5lc3MiLAotCU5JRF9pZF9jbWNfcG9wTGlua1dpdG5lc3MsOCwmKGx2YWx1ZXNbMjU2OV0pLDB9LAorCU5JRF9pZF9jbWNfcG9wTGlua1dpdG5lc3MsOCwmKGx2YWx1ZXNbMjU2N10pLDB9LAogeyJpZC1jbWMtY29uZmlybUNlcnRBY2NlcHRhbmNlIiwiaWQtY21jLWNvbmZpcm1DZXJ0QWNjZXB0YW5jZSIsCi0JTklEX2lkX2NtY19jb25maXJtQ2VydEFjY2VwdGFuY2UsOCwmKGx2YWx1ZXNbMjU3N10pLDB9LAorCU5JRF9pZF9jbWNfY29uZmlybUNlcnRBY2NlcHRhbmNlLDgsJihsdmFsdWVzWzI1NzVdKSwwfSwKIHsiaWQtb24tcGVyc29uYWxEYXRhIiwiaWQtb24tcGVyc29uYWxEYXRhIixOSURfaWRfb25fcGVyc29uYWxEYXRhLDgsCi0JJihsdmFsdWVzWzI1ODVdKSwwfSwKKwkmKGx2YWx1ZXNbMjU4M10pLDB9LAogeyJpZC1wZGEtZGF0ZU9mQmlydGgiLCJpZC1wZGEtZGF0ZU9mQmlydGgiLE5JRF9pZF9wZGFfZGF0ZU9mQmlydGgsOCwKLQkmKGx2YWx1ZXNbMjU5M10pLDB9LAorCSYobHZhbHVlc1syNTkxXSksMH0sCiB7ImlkLXBkYS1wbGFjZU9mQmlydGgiLCJpZC1wZGEtcGxhY2VPZkJpcnRoIixOSURfaWRfcGRhX3BsYWNlT2ZCaXJ0aCwKLQk4LCYobHZhbHVlc1syNjAxXSksMH0sCisJOCwmKGx2YWx1ZXNbMjU5OV0pLDB9LAoge05VTEwsTlVMTCxOSURfdW5kZWYsMCxOVUxMLDB9LAoteyJpZC1wZGEtZ2VuZGVyIiwiaWQtcGRhLWdlbmRlciIsTklEX2lkX3BkYV9nZW5kZXIsOCwmKGx2YWx1ZXNbMjYwOV0pLDB9LAoreyJpZC1wZGEtZ2VuZGVyIiwiaWQtcGRhLWdlbmRlciIsTklEX2lkX3BkYV9nZW5kZXIsOCwmKGx2YWx1ZXNbMjYwN10pLDB9LAogeyJpZC1wZGEtY291bnRyeU9mQ2l0aXplbnNoaXAiLCJpZC1wZGEtY291bnRyeU9mQ2l0aXplbnNoaXAiLAotCU5JRF9pZF9wZGFfY291bnRyeU9mQ2l0aXplbnNoaXAsOCwmKGx2YWx1ZXNbMjYxN10pLDB9LAorCU5JRF9pZF9wZGFfY291bnRyeU9mQ2l0aXplbnNoaXAsOCwmKGx2YWx1ZXNbMjYxNV0pLDB9LAogeyJpZC1wZGEtY291bnRyeU9mUmVzaWRlbmNlIiwiaWQtcGRhLWNvdW50cnlPZlJlc2lkZW5jZSIsCi0JTklEX2lkX3BkYV9jb3VudHJ5T2ZSZXNpZGVuY2UsOCwmKGx2YWx1ZXNbMjYyNV0pLDB9LAorCU5JRF9pZF9wZGFfY291bnRyeU9mUmVzaWRlbmNlLDgsJihsdmFsdWVzWzI2MjNdKSwwfSwKIHsiaWQtYWNhLWF1dGhlbnRpY2F0aW9uSW5mbyIsImlkLWFjYS1hdXRoZW50aWNhdGlvbkluZm8iLAotCU5JRF9pZF9hY2FfYXV0aGVudGljYXRpb25JbmZvLDgsJihsdmFsdWVzWzI2MzNdKSwwfSwKKwlOSURfaWRfYWNhX2F1dGhlbnRpY2F0aW9uSW5mbyw4LCYobHZhbHVlc1syNjMxXSksMH0sCiB7ImlkLWFjYS1hY2Nlc3NJZGVudGl0eSIsImlkLWFjYS1hY2Nlc3NJZGVudGl0eSIsCi0JTklEX2lkX2FjYV9hY2Nlc3NJZGVudGl0eSw4LCYobHZhbHVlc1syNjQxXSksMH0sCisJTklEX2lkX2FjYV9hY2Nlc3NJZGVudGl0eSw4LCYobHZhbHVlc1syNjM5XSksMH0sCiB7ImlkLWFjYS1jaGFyZ2luZ0lkZW50aXR5IiwiaWQtYWNhLWNoYXJnaW5nSWRlbnRpdHkiLAotCU5JRF9pZF9hY2FfY2hhcmdpbmdJZGVudGl0eSw4LCYobHZhbHVlc1syNjQ5XSksMH0sCi17ImlkLWFjYS1ncm91cCIsImlkLWFjYS1ncm91cCIsTklEX2lkX2FjYV9ncm91cCw4LCYobHZhbHVlc1syNjU3XSksMH0sCi17ImlkLWFjYS1yb2xlIiwiaWQtYWNhLXJvbGUiLE5JRF9pZF9hY2Ffcm9sZSw4LCYobHZhbHVlc1syNjY1XSksMH0sCisJTklEX2lkX2FjYV9jaGFyZ2luZ0lkZW50aXR5LDgsJihsdmFsdWVzWzI2NDddKSwwfSwKK3siaWQtYWNhLWdyb3VwIiwiaWQtYWNhLWdyb3VwIixOSURfaWRfYWNhX2dyb3VwLDgsJihsdmFsdWVzWzI2NTVdKSwwfSwKK3siaWQtYWNhLXJvbGUiLCJpZC1hY2Etcm9sZSIsTklEX2lkX2FjYV9yb2xlLDgsJihsdmFsdWVzWzI2NjNdKSwwfSwKIHsiaWQtcWNzLXBraXhRQ1N5bnRheC12MSIsImlkLXFjcy1wa2l4UUNTeW50YXgtdjEiLAotCU5JRF9pZF9xY3NfcGtpeFFDU3ludGF4X3YxLDgsJihsdmFsdWVzWzI2NzNdKSwwfSwKLXsiaWQtY2N0LWNycyIsImlkLWNjdC1jcnMiLE5JRF9pZF9jY3RfY3JzLDgsJihsdmFsdWVzWzI2ODFdKSwwfSwKKwlOSURfaWRfcWNzX3BraXhRQ1N5bnRheF92MSw4LCYobHZhbHVlc1syNjcxXSksMH0sCit7ImlkLWNjdC1jcnMiLCJpZC1jY3QtY3JzIixOSURfaWRfY2N0X2Nycyw4LCYobHZhbHVlc1syNjc5XSksMH0sCiB7ImlkLWNjdC1QS0lEYXRhIiwiaWQtY2N0LVBLSURhdGEiLE5JRF9pZF9jY3RfUEtJRGF0YSw4LAotCSYobHZhbHVlc1syNjg5XSksMH0sCisJJihsdmFsdWVzWzI2ODddKSwwfSwKIHsiaWQtY2N0LVBLSVJlc3BvbnNlIiwiaWQtY2N0LVBLSVJlc3BvbnNlIixOSURfaWRfY2N0X1BLSVJlc3BvbnNlLDgsCi0JJihsdmFsdWVzWzI2OTddKSwwfSwKKwkmKGx2YWx1ZXNbMjY5NV0pLDB9LAogeyJhZF90aW1lc3RhbXBpbmciLCJBRCBUaW1lIFN0YW1waW5nIixOSURfYWRfdGltZVN0YW1waW5nLDgsCi0JJihsdmFsdWVzWzI3MDVdKSwwfSwKLXsiQURfRFZDUyIsImFkIGR2Y3MiLE5JRF9hZF9kdmNzLDgsJihsdmFsdWVzWzI3MTNdKSwwfSwKKwkmKGx2YWx1ZXNbMjcwM10pLDB9LAoreyJBRF9EVkNTIiwiYWQgZHZjcyIsTklEX2FkX2R2Y3MsOCwmKGx2YWx1ZXNbMjcxMV0pLDB9LAogeyJiYXNpY09DU1BSZXNwb25zZSIsIkJhc2ljIE9DU1AgUmVzcG9uc2UiLE5JRF9pZF9wa2l4X09DU1BfYmFzaWMsOSwKLQkmKGx2YWx1ZXNbMjcyMV0pLDB9LAoteyJOb25jZSIsIk9DU1AgTm9uY2UiLE5JRF9pZF9wa2l4X09DU1BfTm9uY2UsOSwmKGx2YWx1ZXNbMjczMF0pLDB9LAoteyJDcmxJRCIsIk9DU1AgQ1JMIElEIixOSURfaWRfcGtpeF9PQ1NQX0NybElELDksJihsdmFsdWVzWzI3MzldKSwwfSwKKwkmKGx2YWx1ZXNbMjcxOV0pLDB9LAoreyJOb25jZSIsIk9DU1AgTm9uY2UiLE5JRF9pZF9wa2l4X09DU1BfTm9uY2UsOSwmKGx2YWx1ZXNbMjcyOF0pLDB9LAoreyJDcmxJRCIsIk9DU1AgQ1JMIElEIixOSURfaWRfcGtpeF9PQ1NQX0NybElELDksJihsdmFsdWVzWzI3MzddKSwwfSwKIHsiYWNjZXB0YWJsZVJlc3BvbnNlcyIsIkFjY2VwdGFibGUgT0NTUCBSZXNwb25zZXMiLAotCU5JRF9pZF9wa2l4X09DU1BfYWNjZXB0YWJsZVJlc3BvbnNlcyw5LCYobHZhbHVlc1syNzQ4XSksMH0sCi17Im5vQ2hlY2siLCJPQ1NQIE5vIENoZWNrIixOSURfaWRfcGtpeF9PQ1NQX25vQ2hlY2ssOSwmKGx2YWx1ZXNbMjc1N10pLDB9LAorCU5JRF9pZF9wa2l4X09DU1BfYWNjZXB0YWJsZVJlc3BvbnNlcyw5LCYobHZhbHVlc1syNzQ2XSksMH0sCit7Im5vQ2hlY2siLCJPQ1NQIE5vIENoZWNrIixOSURfaWRfcGtpeF9PQ1NQX25vQ2hlY2ssOSwmKGx2YWx1ZXNbMjc1NV0pLDB9LAogeyJhcmNoaXZlQ3V0b2ZmIiwiT0NTUCBBcmNoaXZlIEN1dG9mZiIsTklEX2lkX3BraXhfT0NTUF9hcmNoaXZlQ3V0b2ZmLAotCTksJihsdmFsdWVzWzI3NjZdKSwwfSwKKwk5LCYobHZhbHVlc1syNzY0XSksMH0sCiB7InNlcnZpY2VMb2NhdG9yIiwiT0NTUCBTZXJ2aWNlIExvY2F0b3IiLAotCU5JRF9pZF9wa2l4X09DU1Bfc2VydmljZUxvY2F0b3IsOSwmKGx2YWx1ZXNbMjc3NV0pLDB9LAorCU5JRF9pZF9wa2l4X09DU1Bfc2VydmljZUxvY2F0b3IsOSwmKGx2YWx1ZXNbMjc3M10pLDB9LAogeyJleHRlbmRlZFN0YXR1cyIsIkV4dGVuZGVkIE9DU1AgU3RhdHVzIiwKLQlOSURfaWRfcGtpeF9PQ1NQX2V4dGVuZGVkU3RhdHVzLDksJihsdmFsdWVzWzI3ODRdKSwwfSwKLXsidmFsaWQiLCJ2YWxpZCIsTklEX2lkX3BraXhfT0NTUF92YWxpZCw5LCYobHZhbHVlc1syNzkzXSksMH0sCi17InBhdGgiLCJwYXRoIixOSURfaWRfcGtpeF9PQ1NQX3BhdGgsOSwmKGx2YWx1ZXNbMjgwMl0pLDB9LAorCU5JRF9pZF9wa2l4X09DU1BfZXh0ZW5kZWRTdGF0dXMsOSwmKGx2YWx1ZXNbMjc4Ml0pLDB9LAoreyJ2YWxpZCIsInZhbGlkIixOSURfaWRfcGtpeF9PQ1NQX3ZhbGlkLDksJihsdmFsdWVzWzI3OTFdKSwwfSwKK3sicGF0aCIsInBhdGgiLE5JRF9pZF9wa2l4X09DU1BfcGF0aCw5LCYobHZhbHVlc1syODAwXSksMH0sCiB7InRydXN0Um9vdCIsIlRydXN0IFJvb3QiLE5JRF9pZF9wa2l4X09DU1BfdHJ1c3RSb290LDksCi0JJihsdmFsdWVzWzI4MTFdKSwwfSwKLXsiYWxnb3JpdGhtIiwiYWxnb3JpdGhtIixOSURfYWxnb3JpdGhtLDQsJihsdmFsdWVzWzI4MjBdKSwwfSwKLXsicnNhU2lnbmF0dXJlIiwicnNhU2lnbmF0dXJlIixOSURfcnNhU2lnbmF0dXJlLDUsJihsdmFsdWVzWzI4MjRdKSwwfSwKKwkmKGx2YWx1ZXNbMjgwOV0pLDB9LAoreyJhbGdvcml0aG0iLCJhbGdvcml0aG0iLE5JRF9hbGdvcml0aG0sNCwmKGx2YWx1ZXNbMjgxOF0pLDB9LAoreyJyc2FTaWduYXR1cmUiLCJyc2FTaWduYXR1cmUiLE5JRF9yc2FTaWduYXR1cmUsNSwmKGx2YWx1ZXNbMjgyMl0pLDB9LAogeyJYNTAwYWxnb3JpdGhtcyIsImRpcmVjdG9yeSBzZXJ2aWNlcyAtIGFsZ29yaXRobXMiLAotCU5JRF9YNTAwYWxnb3JpdGhtcywyLCYobHZhbHVlc1syODI5XSksMH0sCi17Ik9SRyIsIm9yZyIsTklEX29yZywxLCYobHZhbHVlc1syODMxXSksMH0sCi17IkRPRCIsImRvZCIsTklEX2RvZCwyLCYobHZhbHVlc1syODMyXSksMH0sCi17IklBTkEiLCJpYW5hIixOSURfaWFuYSwzLCYobHZhbHVlc1syODM0XSksMH0sCi17ImRpcmVjdG9yeSIsIkRpcmVjdG9yeSIsTklEX0RpcmVjdG9yeSw0LCYobHZhbHVlc1syODM3XSksMH0sCi17Im1nbXQiLCJNYW5hZ2VtZW50IixOSURfTWFuYWdlbWVudCw0LCYobHZhbHVlc1syODQxXSksMH0sCi17ImV4cGVyaW1lbnRhbCIsIkV4cGVyaW1lbnRhbCIsTklEX0V4cGVyaW1lbnRhbCw0LCYobHZhbHVlc1syODQ1XSksMH0sCi17InByaXZhdGUiLCJQcml2YXRlIixOSURfUHJpdmF0ZSw0LCYobHZhbHVlc1syODQ5XSksMH0sCi17InNlY3VyaXR5IiwiU2VjdXJpdHkiLE5JRF9TZWN1cml0eSw0LCYobHZhbHVlc1syODUzXSksMH0sCi17InNubXB2MiIsIlNOTVB2MiIsTklEX1NOTVB2Miw0LCYobHZhbHVlc1syODU3XSksMH0sCi17Ik1haWwiLCJNYWlsIixOSURfTWFpbCw0LCYobHZhbHVlc1syODYxXSksMH0sCi17ImVudGVycHJpc2VzIiwiRW50ZXJwcmlzZXMiLE5JRF9FbnRlcnByaXNlcyw1LCYobHZhbHVlc1syODY1XSksMH0sCi17ImRjb2JqZWN0IiwiZGNPYmplY3QiLE5JRF9kY09iamVjdCw5LCYobHZhbHVlc1syODcwXSksMH0sCi17IkRDIiwiZG9tYWluQ29tcG9uZW50IixOSURfZG9tYWluQ29tcG9uZW50LDEwLCYobHZhbHVlc1syODc5XSksMH0sCi17ImRvbWFpbiIsIkRvbWFpbiIsTklEX0RvbWFpbiwxMCwmKGx2YWx1ZXNbMjg4OV0pLDB9LAoteyJOVUxMIiwiTlVMTCIsTklEX2pvaW50X2lzb19jY2l0dCwxLCYobHZhbHVlc1syODk5XSksMH0sCisJTklEX1g1MDBhbGdvcml0aG1zLDIsJihsdmFsdWVzWzI4MjddKSwwfSwKK3siT1JHIiwib3JnIixOSURfb3JnLDEsJihsdmFsdWVzWzI4MjldKSwwfSwKK3siRE9EIiwiZG9kIixOSURfZG9kLDIsJihsdmFsdWVzWzI4MzBdKSwwfSwKK3siSUFOQSIsImlhbmEiLE5JRF9pYW5hLDMsJihsdmFsdWVzWzI4MzJdKSwwfSwKK3siZGlyZWN0b3J5IiwiRGlyZWN0b3J5IixOSURfRGlyZWN0b3J5LDQsJihsdmFsdWVzWzI4MzVdKSwwfSwKK3sibWdtdCIsIk1hbmFnZW1lbnQiLE5JRF9NYW5hZ2VtZW50LDQsJihsdmFsdWVzWzI4MzldKSwwfSwKK3siZXhwZXJpbWVudGFsIiwiRXhwZXJpbWVudGFsIixOSURfRXhwZXJpbWVudGFsLDQsJihsdmFsdWVzWzI4NDNdKSwwfSwKK3sicHJpdmF0ZSIsIlByaXZhdGUiLE5JRF9Qcml2YXRlLDQsJihsdmFsdWVzWzI4NDddKSwwfSwKK3sic2VjdXJpdHkiLCJTZWN1cml0eSIsTklEX1NlY3VyaXR5LDQsJihsdmFsdWVzWzI4NTFdKSwwfSwKK3sic25tcHYyIiwiU05NUHYyIixOSURfU05NUHYyLDQsJihsdmFsdWVzWzI4NTVdKSwwfSwKK3siTWFpbCIsIk1haWwiLE5JRF9NYWlsLDQsJihsdmFsdWVzWzI4NTldKSwwfSwKK3siZW50ZXJwcmlzZXMiLCJFbnRlcnByaXNlcyIsTklEX0VudGVycHJpc2VzLDUsJihsdmFsdWVzWzI4NjNdKSwwfSwKK3siZGNvYmplY3QiLCJkY09iamVjdCIsTklEX2RjT2JqZWN0LDksJihsdmFsdWVzWzI4NjhdKSwwfSwKK3siREMiLCJkb21haW5Db21wb25lbnQiLE5JRF9kb21haW5Db21wb25lbnQsMTAsJihsdmFsdWVzWzI4NzddKSwwfSwKK3siZG9tYWluIiwiRG9tYWluIixOSURfRG9tYWluLDEwLCYobHZhbHVlc1syODg3XSksMH0sCit7Ik5VTEwiLCJOVUxMIixOSURfam9pbnRfaXNvX2NjaXR0LDAsTlVMTCwwfSwKIHsic2VsZWN0ZWQtYXR0cmlidXRlLXR5cGVzIiwiU2VsZWN0ZWQgQXR0cmlidXRlIFR5cGVzIiwKLQlOSURfc2VsZWN0ZWRfYXR0cmlidXRlX3R5cGVzLDMsJihsdmFsdWVzWzI5MDBdKSwwfSwKLXsiY2xlYXJhbmNlIiwiY2xlYXJhbmNlIixOSURfY2xlYXJhbmNlLDQsJihsdmFsdWVzWzI5MDNdKSwwfSwKKwlOSURfc2VsZWN0ZWRfYXR0cmlidXRlX3R5cGVzLDMsJihsdmFsdWVzWzI4OTddKSwwfSwKK3siY2xlYXJhbmNlIiwiY2xlYXJhbmNlIixOSURfY2xlYXJhbmNlLDQsJihsdmFsdWVzWzI5MDBdKSwwfSwKIHsiUlNBLU1ENCIsIm1kNFdpdGhSU0FFbmNyeXB0aW9uIixOSURfbWQ0V2l0aFJTQUVuY3J5cHRpb24sOSwKLQkmKGx2YWx1ZXNbMjkwN10pLDB9LAoteyJhYy1wcm94eWluZyIsImFjLXByb3h5aW5nIixOSURfYWNfcHJveHlpbmcsOCwmKGx2YWx1ZXNbMjkxNl0pLDB9LAorCSYobHZhbHVlc1syOTA0XSksMH0sCit7ImFjLXByb3h5aW5nIiwiYWMtcHJveHlpbmciLE5JRF9hY19wcm94eWluZyw4LCYobHZhbHVlc1syOTEzXSksMH0sCiB7InN1YmplY3RJbmZvQWNjZXNzIiwiU3ViamVjdCBJbmZvcm1hdGlvbiBBY2Nlc3MiLE5JRF9zaW5mb19hY2Nlc3MsOCwKLQkmKGx2YWx1ZXNbMjkyNF0pLDB9LAorCSYobHZhbHVlc1syOTIxXSksMH0sCiB7ImlkLWFjYS1lbmNBdHRycyIsImlkLWFjYS1lbmNBdHRycyIsTklEX2lkX2FjYV9lbmNBdHRycyw4LAotCSYobHZhbHVlc1syOTMyXSksMH0sCi17InJvbGUiLCJyb2xlIixOSURfcm9sZSwzLCYobHZhbHVlc1syOTQwXSksMH0sCisJJihsdmFsdWVzWzI5MjldKSwwfSwKK3sicm9sZSIsInJvbGUiLE5JRF9yb2xlLDMsJihsdmFsdWVzWzI5MzddKSwwfSwKIHsicG9saWN5Q29uc3RyYWludHMiLCJYNTA5djMgUG9saWN5IENvbnN0cmFpbnRzIiwKLQlOSURfcG9saWN5X2NvbnN0cmFpbnRzLDMsJihsdmFsdWVzWzI5NDNdKSwwfSwKKwlOSURfcG9saWN5X2NvbnN0cmFpbnRzLDMsJihsdmFsdWVzWzI5NDBdKSwwfSwKIHsidGFyZ2V0SW5mb3JtYXRpb24iLCJYNTA5djMgQUMgVGFyZ2V0aW5nIixOSURfdGFyZ2V0X2luZm9ybWF0aW9uLDMsCi0JJihsdmFsdWVzWzI5NDZdKSwwfSwKKwkmKGx2YWx1ZXNbMjk0M10pLDB9LAogeyJub1JldkF2YWlsIiwiWDUwOXYzIE5vIFJldm9jYXRpb24gQXZhaWxhYmxlIixOSURfbm9fcmV2X2F2YWlsLDMsCi0JJihsdmFsdWVzWzI5NDldKSwwfSwKLXsiTlVMTCIsIk5VTEwiLE5JRF9jY2l0dCwxLCYobHZhbHVlc1syOTUyXSksMH0sCi17ImFuc2ktWDktNjIiLCJBTlNJIFg5LjYyIixOSURfYW5zaV9YOV82Miw1LCYobHZhbHVlc1syOTUzXSksMH0sCi17InByaW1lLWZpZWxkIiwicHJpbWUtZmllbGQiLE5JRF9YOV82Ml9wcmltZV9maWVsZCw3LCYobHZhbHVlc1syOTU4XSksMH0sCisJJihsdmFsdWVzWzI5NDZdKSwwfSwKK3siTlVMTCIsIk5VTEwiLE5JRF9jY2l0dCwwLE5VTEwsMH0sCit7ImFuc2ktWDktNjIiLCJBTlNJIFg5LjYyIixOSURfYW5zaV9YOV82Miw1LCYobHZhbHVlc1syOTQ5XSksMH0sCit7InByaW1lLWZpZWxkIiwicHJpbWUtZmllbGQiLE5JRF9YOV82Ml9wcmltZV9maWVsZCw3LCYobHZhbHVlc1syOTU0XSksMH0sCiB7ImNoYXJhY3RlcmlzdGljLXR3by1maWVsZCIsImNoYXJhY3RlcmlzdGljLXR3by1maWVsZCIsCi0JTklEX1g5XzYyX2NoYXJhY3RlcmlzdGljX3R3b19maWVsZCw3LCYobHZhbHVlc1syOTY1XSksMH0sCisJTklEX1g5XzYyX2NoYXJhY3RlcmlzdGljX3R3b19maWVsZCw3LCYobHZhbHVlc1syOTYxXSksMH0sCiB7ImlkLWVjUHVibGljS2V5IiwiaWQtZWNQdWJsaWNLZXkiLE5JRF9YOV82Ml9pZF9lY1B1YmxpY0tleSw3LAotCSYobHZhbHVlc1syOTcyXSksMH0sCi17InByaW1lMTkydjEiLCJwcmltZTE5MnYxIixOSURfWDlfNjJfcHJpbWUxOTJ2MSw4LCYobHZhbHVlc1syOTc5XSksMH0sCi17InByaW1lMTkydjIiLCJwcmltZTE5MnYyIixOSURfWDlfNjJfcHJpbWUxOTJ2Miw4LCYobHZhbHVlc1syOTg3XSksMH0sCi17InByaW1lMTkydjMiLCJwcmltZTE5MnYzIixOSURfWDlfNjJfcHJpbWUxOTJ2Myw4LCYobHZhbHVlc1syOTk1XSksMH0sCi17InByaW1lMjM5djEiLCJwcmltZTIzOXYxIixOSURfWDlfNjJfcHJpbWUyMzl2MSw4LCYobHZhbHVlc1szMDAzXSksMH0sCi17InByaW1lMjM5djIiLCJwcmltZTIzOXYyIixOSURfWDlfNjJfcHJpbWUyMzl2Miw4LCYobHZhbHVlc1szMDExXSksMH0sCi17InByaW1lMjM5djMiLCJwcmltZTIzOXYzIixOSURfWDlfNjJfcHJpbWUyMzl2Myw4LCYobHZhbHVlc1szMDE5XSksMH0sCi17InByaW1lMjU2djEiLCJwcmltZTI1NnYxIixOSURfWDlfNjJfcHJpbWUyNTZ2MSw4LCYobHZhbHVlc1szMDI3XSksMH0sCisJJihsdmFsdWVzWzI5NjhdKSwwfSwKK3sicHJpbWUxOTJ2MSIsInByaW1lMTkydjEiLE5JRF9YOV82Ml9wcmltZTE5MnYxLDgsJihsdmFsdWVzWzI5NzVdKSwwfSwKK3sicHJpbWUxOTJ2MiIsInByaW1lMTkydjIiLE5JRF9YOV82Ml9wcmltZTE5MnYyLDgsJihsdmFsdWVzWzI5ODNdKSwwfSwKK3sicHJpbWUxOTJ2MyIsInByaW1lMTkydjMiLE5JRF9YOV82Ml9wcmltZTE5MnYzLDgsJihsdmFsdWVzWzI5OTFdKSwwfSwKK3sicHJpbWUyMzl2MSIsInByaW1lMjM5djEiLE5JRF9YOV82Ml9wcmltZTIzOXYxLDgsJihsdmFsdWVzWzI5OTldKSwwfSwKK3sicHJpbWUyMzl2MiIsInByaW1lMjM5djIiLE5JRF9YOV82Ml9wcmltZTIzOXYyLDgsJihsdmFsdWVzWzMwMDddKSwwfSwKK3sicHJpbWUyMzl2MyIsInByaW1lMjM5djMiLE5JRF9YOV82Ml9wcmltZTIzOXYzLDgsJihsdmFsdWVzWzMwMTVdKSwwfSwKK3sicHJpbWUyNTZ2MSIsInByaW1lMjU2djEiLE5JRF9YOV82Ml9wcmltZTI1NnYxLDgsJihsdmFsdWVzWzMwMjNdKSwwfSwKIHsiZWNkc2Etd2l0aC1TSEExIiwiZWNkc2Etd2l0aC1TSEExIixOSURfZWNkc2Ffd2l0aF9TSEExLDcsCi0JJihsdmFsdWVzWzMwMzVdKSwwfSwKLXsiQ1NQTmFtZSIsIk1pY3Jvc29mdCBDU1AgTmFtZSIsTklEX21zX2NzcF9uYW1lLDksJihsdmFsdWVzWzMwNDJdKSwwfSwKLXsiQUVTLTEyOC1FQ0IiLCJhZXMtMTI4LWVjYiIsTklEX2Flc18xMjhfZWNiLDksJihsdmFsdWVzWzMwNTFdKSwwfSwKLXsiQUVTLTEyOC1DQkMiLCJhZXMtMTI4LWNiYyIsTklEX2Flc18xMjhfY2JjLDksJihsdmFsdWVzWzMwNjBdKSwwfSwKLXsiQUVTLTEyOC1PRkIiLCJhZXMtMTI4LW9mYiIsTklEX2Flc18xMjhfb2ZiMTI4LDksJihsdmFsdWVzWzMwNjldKSwwfSwKLXsiQUVTLTEyOC1DRkIiLCJhZXMtMTI4LWNmYiIsTklEX2Flc18xMjhfY2ZiMTI4LDksJihsdmFsdWVzWzMwNzhdKSwwfSwKLXsiQUVTLTE5Mi1FQ0IiLCJhZXMtMTkyLWVjYiIsTklEX2Flc18xOTJfZWNiLDksJihsdmFsdWVzWzMwODddKSwwfSwKLXsiQUVTLTE5Mi1DQkMiLCJhZXMtMTkyLWNiYyIsTklEX2Flc18xOTJfY2JjLDksJihsdmFsdWVzWzMwOTZdKSwwfSwKLXsiQUVTLTE5Mi1PRkIiLCJhZXMtMTkyLW9mYiIsTklEX2Flc18xOTJfb2ZiMTI4LDksJihsdmFsdWVzWzMxMDVdKSwwfSwKLXsiQUVTLTE5Mi1DRkIiLCJhZXMtMTkyLWNmYiIsTklEX2Flc18xOTJfY2ZiMTI4LDksJihsdmFsdWVzWzMxMTRdKSwwfSwKLXsiQUVTLTI1Ni1FQ0IiLCJhZXMtMjU2LWVjYiIsTklEX2Flc18yNTZfZWNiLDksJihsdmFsdWVzWzMxMjNdKSwwfSwKLXsiQUVTLTI1Ni1DQkMiLCJhZXMtMjU2LWNiYyIsTklEX2Flc18yNTZfY2JjLDksJihsdmFsdWVzWzMxMzJdKSwwfSwKLXsiQUVTLTI1Ni1PRkIiLCJhZXMtMjU2LW9mYiIsTklEX2Flc18yNTZfb2ZiMTI4LDksJihsdmFsdWVzWzMxNDFdKSwwfSwKLXsiQUVTLTI1Ni1DRkIiLCJhZXMtMjU2LWNmYiIsTklEX2Flc18yNTZfY2ZiMTI4LDksJihsdmFsdWVzWzMxNTBdKSwwfSwKKwkmKGx2YWx1ZXNbMzAzMV0pLDB9LAoreyJDU1BOYW1lIiwiTWljcm9zb2Z0IENTUCBOYW1lIixOSURfbXNfY3NwX25hbWUsOSwmKGx2YWx1ZXNbMzAzOF0pLDB9LAoreyJBRVMtMTI4LUVDQiIsImFlcy0xMjgtZWNiIixOSURfYWVzXzEyOF9lY2IsOSwmKGx2YWx1ZXNbMzA0N10pLDB9LAoreyJBRVMtMTI4LUNCQyIsImFlcy0xMjgtY2JjIixOSURfYWVzXzEyOF9jYmMsOSwmKGx2YWx1ZXNbMzA1Nl0pLDB9LAoreyJBRVMtMTI4LU9GQiIsImFlcy0xMjgtb2ZiIixOSURfYWVzXzEyOF9vZmIxMjgsOSwmKGx2YWx1ZXNbMzA2NV0pLDB9LAoreyJBRVMtMTI4LUNGQiIsImFlcy0xMjgtY2ZiIixOSURfYWVzXzEyOF9jZmIxMjgsOSwmKGx2YWx1ZXNbMzA3NF0pLDB9LAoreyJBRVMtMTkyLUVDQiIsImFlcy0xOTItZWNiIixOSURfYWVzXzE5Ml9lY2IsOSwmKGx2YWx1ZXNbMzA4M10pLDB9LAoreyJBRVMtMTkyLUNCQyIsImFlcy0xOTItY2JjIixOSURfYWVzXzE5Ml9jYmMsOSwmKGx2YWx1ZXNbMzA5Ml0pLDB9LAoreyJBRVMtMTkyLU9GQiIsImFlcy0xOTItb2ZiIixOSURfYWVzXzE5Ml9vZmIxMjgsOSwmKGx2YWx1ZXNbMzEwMV0pLDB9LAoreyJBRVMtMTkyLUNGQiIsImFlcy0xOTItY2ZiIixOSURfYWVzXzE5Ml9jZmIxMjgsOSwmKGx2YWx1ZXNbMzExMF0pLDB9LAoreyJBRVMtMjU2LUVDQiIsImFlcy0yNTYtZWNiIixOSURfYWVzXzI1Nl9lY2IsOSwmKGx2YWx1ZXNbMzExOV0pLDB9LAoreyJBRVMtMjU2LUNCQyIsImFlcy0yNTYtY2JjIixOSURfYWVzXzI1Nl9jYmMsOSwmKGx2YWx1ZXNbMzEyOF0pLDB9LAoreyJBRVMtMjU2LU9GQiIsImFlcy0yNTYtb2ZiIixOSURfYWVzXzI1Nl9vZmIxMjgsOSwmKGx2YWx1ZXNbMzEzN10pLDB9LAoreyJBRVMtMjU2LUNGQiIsImFlcy0yNTYtY2ZiIixOSURfYWVzXzI1Nl9jZmIxMjgsOSwmKGx2YWx1ZXNbMzE0Nl0pLDB9LAogeyJob2xkSW5zdHJ1Y3Rpb25Db2RlIiwiSG9sZCBJbnN0cnVjdGlvbiBDb2RlIiwKLQlOSURfaG9sZF9pbnN0cnVjdGlvbl9jb2RlLDMsJihsdmFsdWVzWzMxNTldKSwwfSwKKwlOSURfaG9sZF9pbnN0cnVjdGlvbl9jb2RlLDMsJihsdmFsdWVzWzMxNTVdKSwwfSwKIHsiaG9sZEluc3RydWN0aW9uTm9uZSIsIkhvbGQgSW5zdHJ1Y3Rpb24gTm9uZSIsCi0JTklEX2hvbGRfaW5zdHJ1Y3Rpb25fbm9uZSw3LCYobHZhbHVlc1szMTYyXSksMH0sCisJTklEX2hvbGRfaW5zdHJ1Y3Rpb25fbm9uZSw3LCYobHZhbHVlc1szMTU4XSksMH0sCiB7ImhvbGRJbnN0cnVjdGlvbkNhbGxJc3N1ZXIiLCJIb2xkIEluc3RydWN0aW9uIENhbGwgSXNzdWVyIiwKLQlOSURfaG9sZF9pbnN0cnVjdGlvbl9jYWxsX2lzc3Vlciw3LCYobHZhbHVlc1szMTY5XSksMH0sCisJTklEX2hvbGRfaW5zdHJ1Y3Rpb25fY2FsbF9pc3N1ZXIsNywmKGx2YWx1ZXNbMzE2NV0pLDB9LAogeyJob2xkSW5zdHJ1Y3Rpb25SZWplY3QiLCJIb2xkIEluc3RydWN0aW9uIFJlamVjdCIsCi0JTklEX2hvbGRfaW5zdHJ1Y3Rpb25fcmVqZWN0LDcsJihsdmFsdWVzWzMxNzZdKSwwfSwKLXsiZGF0YSIsImRhdGEiLE5JRF9kYXRhLDEsJihsdmFsdWVzWzMxODNdKSwwfSwKLXsicHNzIiwicHNzIixOSURfcHNzLDMsJihsdmFsdWVzWzMxODRdKSwwfSwKLXsidWNsIiwidWNsIixOSURfdWNsLDcsJihsdmFsdWVzWzMxODddKSwwfSwKLXsicGlsb3QiLCJwaWxvdCIsTklEX3BpbG90LDgsJihsdmFsdWVzWzMxOTRdKSwwfSwKKwlOSURfaG9sZF9pbnN0cnVjdGlvbl9yZWplY3QsNywmKGx2YWx1ZXNbMzE3Ml0pLDB9LAoreyJkYXRhIiwiZGF0YSIsTklEX2RhdGEsMSwmKGx2YWx1ZXNbMzE3OV0pLDB9LAoreyJwc3MiLCJwc3MiLE5JRF9wc3MsMywmKGx2YWx1ZXNbMzE4MF0pLDB9LAoreyJ1Y2wiLCJ1Y2wiLE5JRF91Y2wsNywmKGx2YWx1ZXNbMzE4M10pLDB9LAoreyJwaWxvdCIsInBpbG90IixOSURfcGlsb3QsOCwmKGx2YWx1ZXNbMzE5MF0pLDB9LAogeyJwaWxvdEF0dHJpYnV0ZVR5cGUiLCJwaWxvdEF0dHJpYnV0ZVR5cGUiLE5JRF9waWxvdEF0dHJpYnV0ZVR5cGUsOSwKLQkmKGx2YWx1ZXNbMzIwMl0pLDB9LAorCSYobHZhbHVlc1szMTk4XSksMH0sCiB7InBpbG90QXR0cmlidXRlU3ludGF4IiwicGlsb3RBdHRyaWJ1dGVTeW50YXgiLAotCU5JRF9waWxvdEF0dHJpYnV0ZVN5bnRheCw5LCYobHZhbHVlc1szMjExXSksMH0sCisJTklEX3BpbG90QXR0cmlidXRlU3ludGF4LDksJihsdmFsdWVzWzMyMDddKSwwfSwKIHsicGlsb3RPYmplY3RDbGFzcyIsInBpbG90T2JqZWN0Q2xhc3MiLE5JRF9waWxvdE9iamVjdENsYXNzLDksCi0JJihsdmFsdWVzWzMyMjBdKSwwfSwKLXsicGlsb3RHcm91cHMiLCJwaWxvdEdyb3VwcyIsTklEX3BpbG90R3JvdXBzLDksJihsdmFsdWVzWzMyMjldKSwwfSwKKwkmKGx2YWx1ZXNbMzIxNl0pLDB9LAoreyJwaWxvdEdyb3VwcyIsInBpbG90R3JvdXBzIixOSURfcGlsb3RHcm91cHMsOSwmKGx2YWx1ZXNbMzIyNV0pLDB9LAogeyJpQTVTdHJpbmdTeW50YXgiLCJpQTVTdHJpbmdTeW50YXgiLE5JRF9pQTVTdHJpbmdTeW50YXgsMTAsCi0JJihsdmFsdWVzWzMyMzhdKSwwfSwKKwkmKGx2YWx1ZXNbMzIzNF0pLDB9LAogeyJjYXNlSWdub3JlSUE1U3RyaW5nU3ludGF4IiwiY2FzZUlnbm9yZUlBNVN0cmluZ1N5bnRheCIsCi0JTklEX2Nhc2VJZ25vcmVJQTVTdHJpbmdTeW50YXgsMTAsJihsdmFsdWVzWzMyNDhdKSwwfSwKLXsicGlsb3RPYmplY3QiLCJwaWxvdE9iamVjdCIsTklEX3BpbG90T2JqZWN0LDEwLCYobHZhbHVlc1szMjU4XSksMH0sCi17InBpbG90UGVyc29uIiwicGlsb3RQZXJzb24iLE5JRF9waWxvdFBlcnNvbiwxMCwmKGx2YWx1ZXNbMzI2OF0pLDB9LAoteyJhY2NvdW50IiwiYWNjb3VudCIsTklEX2FjY291bnQsMTAsJihsdmFsdWVzWzMyNzhdKSwwfSwKLXsiZG9jdW1lbnQiLCJkb2N1bWVudCIsTklEX2RvY3VtZW50LDEwLCYobHZhbHVlc1szMjg4XSksMH0sCi17InJvb20iLCJyb29tIixOSURfcm9vbSwxMCwmKGx2YWx1ZXNbMzI5OF0pLDB9LAorCU5JRF9jYXNlSWdub3JlSUE1U3RyaW5nU3ludGF4LDEwLCYobHZhbHVlc1szMjQ0XSksMH0sCit7InBpbG90T2JqZWN0IiwicGlsb3RPYmplY3QiLE5JRF9waWxvdE9iamVjdCwxMCwmKGx2YWx1ZXNbMzI1NF0pLDB9LAoreyJwaWxvdFBlcnNvbiIsInBpbG90UGVyc29uIixOSURfcGlsb3RQZXJzb24sMTAsJihsdmFsdWVzWzMyNjRdKSwwfSwKK3siYWNjb3VudCIsImFjY291bnQiLE5JRF9hY2NvdW50LDEwLCYobHZhbHVlc1szMjc0XSksMH0sCit7ImRvY3VtZW50IiwiZG9jdW1lbnQiLE5JRF9kb2N1bWVudCwxMCwmKGx2YWx1ZXNbMzI4NF0pLDB9LAoreyJyb29tIiwicm9vbSIsTklEX3Jvb20sMTAsJihsdmFsdWVzWzMyOTRdKSwwfSwKIHsiZG9jdW1lbnRTZXJpZXMiLCJkb2N1bWVudFNlcmllcyIsTklEX2RvY3VtZW50U2VyaWVzLDEwLAotCSYobHZhbHVlc1szMzA4XSksMH0sCisJJihsdmFsdWVzWzMzMDRdKSwwfSwKIHsickZDODIybG9jYWxQYXJ0IiwickZDODIybG9jYWxQYXJ0IixOSURfckZDODIybG9jYWxQYXJ0LDEwLAotCSYobHZhbHVlc1szMzE4XSksMH0sCi17ImROU0RvbWFpbiIsImROU0RvbWFpbiIsTklEX2ROU0RvbWFpbiwxMCwmKGx2YWx1ZXNbMzMyOF0pLDB9LAorCSYobHZhbHVlc1szMzE0XSksMH0sCit7ImROU0RvbWFpbiIsImROU0RvbWFpbiIsTklEX2ROU0RvbWFpbiwxMCwmKGx2YWx1ZXNbMzMyNF0pLDB9LAogeyJkb21haW5SZWxhdGVkT2JqZWN0IiwiZG9tYWluUmVsYXRlZE9iamVjdCIsTklEX2RvbWFpblJlbGF0ZWRPYmplY3QsCi0JMTAsJihsdmFsdWVzWzMzMzhdKSwwfSwKKwkxMCwmKGx2YWx1ZXNbMzMzNF0pLDB9LAogeyJmcmllbmRseUNvdW50cnkiLCJmcmllbmRseUNvdW50cnkiLE5JRF9mcmllbmRseUNvdW50cnksMTAsCi0JJihsdmFsdWVzWzMzNDhdKSwwfSwKKwkmKGx2YWx1ZXNbMzM0NF0pLDB9LAogeyJzaW1wbGVTZWN1cml0eU9iamVjdCIsInNpbXBsZVNlY3VyaXR5T2JqZWN0IiwKLQlOSURfc2ltcGxlU2VjdXJpdHlPYmplY3QsMTAsJihsdmFsdWVzWzMzNThdKSwwfSwKKwlOSURfc2ltcGxlU2VjdXJpdHlPYmplY3QsMTAsJihsdmFsdWVzWzMzNTRdKSwwfSwKIHsicGlsb3RPcmdhbml6YXRpb24iLCJwaWxvdE9yZ2FuaXphdGlvbiIsTklEX3BpbG90T3JnYW5pemF0aW9uLDEwLAotCSYobHZhbHVlc1szMzY4XSksMH0sCi17InBpbG90RFNBIiwicGlsb3REU0EiLE5JRF9waWxvdERTQSwxMCwmKGx2YWx1ZXNbMzM3OF0pLDB9LAorCSYobHZhbHVlc1szMzY0XSksMH0sCit7InBpbG90RFNBIiwicGlsb3REU0EiLE5JRF9waWxvdERTQSwxMCwmKGx2YWx1ZXNbMzM3NF0pLDB9LAogeyJxdWFsaXR5TGFiZWxsZWREYXRhIiwicXVhbGl0eUxhYmVsbGVkRGF0YSIsTklEX3F1YWxpdHlMYWJlbGxlZERhdGEsCi0JMTAsJihsdmFsdWVzWzMzODhdKSwwfSwKLXsiVUlEIiwidXNlcklkIixOSURfdXNlcklkLDEwLCYobHZhbHVlc1szMzk4XSksMH0sCisJMTAsJihsdmFsdWVzWzMzODRdKSwwfSwKK3siVUlEIiwidXNlcklkIixOSURfdXNlcklkLDEwLCYobHZhbHVlc1szMzk0XSksMH0sCiB7InRleHRFbmNvZGVkT1JBZGRyZXNzIiwidGV4dEVuY29kZWRPUkFkZHJlc3MiLAotCU5JRF90ZXh0RW5jb2RlZE9SQWRkcmVzcywxMCwmKGx2YWx1ZXNbMzQwOF0pLDB9LAoteyJtYWlsIiwicmZjODIyTWFpbGJveCIsTklEX3JmYzgyMk1haWxib3gsMTAsJihsdmFsdWVzWzM0MThdKSwwfSwKLXsiaW5mbyIsImluZm8iLE5JRF9pbmZvLDEwLCYobHZhbHVlc1szNDI4XSksMH0sCisJTklEX3RleHRFbmNvZGVkT1JBZGRyZXNzLDEwLCYobHZhbHVlc1szNDA0XSksMH0sCit7Im1haWwiLCJyZmM4MjJNYWlsYm94IixOSURfcmZjODIyTWFpbGJveCwxMCwmKGx2YWx1ZXNbMzQxNF0pLDB9LAoreyJpbmZvIiwiaW5mbyIsTklEX2luZm8sMTAsJihsdmFsdWVzWzM0MjRdKSwwfSwKIHsiZmF2b3VyaXRlRHJpbmsiLCJmYXZvdXJpdGVEcmluayIsTklEX2Zhdm91cml0ZURyaW5rLDEwLAotCSYobHZhbHVlc1szNDM4XSksMH0sCi17InJvb21OdW1iZXIiLCJyb29tTnVtYmVyIixOSURfcm9vbU51bWJlciwxMCwmKGx2YWx1ZXNbMzQ0OF0pLDB9LAoteyJwaG90byIsInBob3RvIixOSURfcGhvdG8sMTAsJihsdmFsdWVzWzM0NThdKSwwfSwKLXsidXNlckNsYXNzIiwidXNlckNsYXNzIixOSURfdXNlckNsYXNzLDEwLCYobHZhbHVlc1szNDY4XSksMH0sCi17Imhvc3QiLCJob3N0IixOSURfaG9zdCwxMCwmKGx2YWx1ZXNbMzQ3OF0pLDB9LAoteyJtYW5hZ2VyIiwibWFuYWdlciIsTklEX21hbmFnZXIsMTAsJihsdmFsdWVzWzM0ODhdKSwwfSwKKwkmKGx2YWx1ZXNbMzQzNF0pLDB9LAoreyJyb29tTnVtYmVyIiwicm9vbU51bWJlciIsTklEX3Jvb21OdW1iZXIsMTAsJihsdmFsdWVzWzM0NDRdKSwwfSwKK3sicGhvdG8iLCJwaG90byIsTklEX3Bob3RvLDEwLCYobHZhbHVlc1szNDU0XSksMH0sCit7InVzZXJDbGFzcyIsInVzZXJDbGFzcyIsTklEX3VzZXJDbGFzcywxMCwmKGx2YWx1ZXNbMzQ2NF0pLDB9LAoreyJob3N0IiwiaG9zdCIsTklEX2hvc3QsMTAsJihsdmFsdWVzWzM0NzRdKSwwfSwKK3sibWFuYWdlciIsIm1hbmFnZXIiLE5JRF9tYW5hZ2VyLDEwLCYobHZhbHVlc1szNDg0XSksMH0sCiB7ImRvY3VtZW50SWRlbnRpZmllciIsImRvY3VtZW50SWRlbnRpZmllciIsTklEX2RvY3VtZW50SWRlbnRpZmllciwxMCwKLQkmKGx2YWx1ZXNbMzQ5OF0pLDB9LAoteyJkb2N1bWVudFRpdGxlIiwiZG9jdW1lbnRUaXRsZSIsTklEX2RvY3VtZW50VGl0bGUsMTAsJihsdmFsdWVzWzM1MDhdKSwwfSwKKwkmKGx2YWx1ZXNbMzQ5NF0pLDB9LAoreyJkb2N1bWVudFRpdGxlIiwiZG9jdW1lbnRUaXRsZSIsTklEX2RvY3VtZW50VGl0bGUsMTAsJihsdmFsdWVzWzM1MDRdKSwwfSwKIHsiZG9jdW1lbnRWZXJzaW9uIiwiZG9jdW1lbnRWZXJzaW9uIixOSURfZG9jdW1lbnRWZXJzaW9uLDEwLAotCSYobHZhbHVlc1szNTE4XSksMH0sCisJJihsdmFsdWVzWzM1MTRdKSwwfSwKIHsiZG9jdW1lbnRBdXRob3IiLCJkb2N1bWVudEF1dGhvciIsTklEX2RvY3VtZW50QXV0aG9yLDEwLAotCSYobHZhbHVlc1szNTI4XSksMH0sCisJJihsdmFsdWVzWzM1MjRdKSwwfSwKIHsiZG9jdW1lbnRMb2NhdGlvbiIsImRvY3VtZW50TG9jYXRpb24iLE5JRF9kb2N1bWVudExvY2F0aW9uLDEwLAotCSYobHZhbHVlc1szNTM4XSksMH0sCisJJihsdmFsdWVzWzM1MzRdKSwwfSwKIHsiaG9tZVRlbGVwaG9uZU51bWJlciIsImhvbWVUZWxlcGhvbmVOdW1iZXIiLE5JRF9ob21lVGVsZXBob25lTnVtYmVyLAotCTEwLCYobHZhbHVlc1szNTQ4XSksMH0sCi17InNlY3JldGFyeSIsInNlY3JldGFyeSIsTklEX3NlY3JldGFyeSwxMCwmKGx2YWx1ZXNbMzU1OF0pLDB9LAoteyJvdGhlck1haWxib3giLCJvdGhlck1haWxib3giLE5JRF9vdGhlck1haWxib3gsMTAsJihsdmFsdWVzWzM1NjhdKSwwfSwKKwkxMCwmKGx2YWx1ZXNbMzU0NF0pLDB9LAoreyJzZWNyZXRhcnkiLCJzZWNyZXRhcnkiLE5JRF9zZWNyZXRhcnksMTAsJihsdmFsdWVzWzM1NTRdKSwwfSwKK3sib3RoZXJNYWlsYm94Iiwib3RoZXJNYWlsYm94IixOSURfb3RoZXJNYWlsYm94LDEwLCYobHZhbHVlc1szNTY0XSksMH0sCiB7Imxhc3RNb2RpZmllZFRpbWUiLCJsYXN0TW9kaWZpZWRUaW1lIixOSURfbGFzdE1vZGlmaWVkVGltZSwxMCwKLQkmKGx2YWx1ZXNbMzU3OF0pLDB9LAorCSYobHZhbHVlc1szNTc0XSksMH0sCiB7Imxhc3RNb2RpZmllZEJ5IiwibGFzdE1vZGlmaWVkQnkiLE5JRF9sYXN0TW9kaWZpZWRCeSwxMCwKLQkmKGx2YWx1ZXNbMzU4OF0pLDB9LAoteyJhUmVjb3JkIiwiYVJlY29yZCIsTklEX2FSZWNvcmQsMTAsJihsdmFsdWVzWzM1OThdKSwwfSwKKwkmKGx2YWx1ZXNbMzU4NF0pLDB9LAoreyJhUmVjb3JkIiwiYVJlY29yZCIsTklEX2FSZWNvcmQsMTAsJihsdmFsdWVzWzM1OTRdKSwwfSwKIHsicGlsb3RBdHRyaWJ1dGVUeXBlMjciLCJwaWxvdEF0dHJpYnV0ZVR5cGUyNyIsCi0JTklEX3BpbG90QXR0cmlidXRlVHlwZTI3LDEwLCYobHZhbHVlc1szNjA4XSksMH0sCi17Im1YUmVjb3JkIiwibVhSZWNvcmQiLE5JRF9tWFJlY29yZCwxMCwmKGx2YWx1ZXNbMzYxOF0pLDB9LAoteyJuU1JlY29yZCIsIm5TUmVjb3JkIixOSURfblNSZWNvcmQsMTAsJihsdmFsdWVzWzM2MjhdKSwwfSwKLXsic09BUmVjb3JkIiwic09BUmVjb3JkIixOSURfc09BUmVjb3JkLDEwLCYobHZhbHVlc1szNjM4XSksMH0sCi17ImNOQU1FUmVjb3JkIiwiY05BTUVSZWNvcmQiLE5JRF9jTkFNRVJlY29yZCwxMCwmKGx2YWx1ZXNbMzY0OF0pLDB9LAorCU5JRF9waWxvdEF0dHJpYnV0ZVR5cGUyNywxMCwmKGx2YWx1ZXNbMzYwNF0pLDB9LAoreyJtWFJlY29yZCIsIm1YUmVjb3JkIixOSURfbVhSZWNvcmQsMTAsJihsdmFsdWVzWzM2MTRdKSwwfSwKK3siblNSZWNvcmQiLCJuU1JlY29yZCIsTklEX25TUmVjb3JkLDEwLCYobHZhbHVlc1szNjI0XSksMH0sCit7InNPQVJlY29yZCIsInNPQVJlY29yZCIsTklEX3NPQVJlY29yZCwxMCwmKGx2YWx1ZXNbMzYzNF0pLDB9LAoreyJjTkFNRVJlY29yZCIsImNOQU1FUmVjb3JkIixOSURfY05BTUVSZWNvcmQsMTAsJihsdmFsdWVzWzM2NDRdKSwwfSwKIHsiYXNzb2NpYXRlZERvbWFpbiIsImFzc29jaWF0ZWREb21haW4iLE5JRF9hc3NvY2lhdGVkRG9tYWluLDEwLAotCSYobHZhbHVlc1szNjU4XSksMH0sCisJJihsdmFsdWVzWzM2NTRdKSwwfSwKIHsiYXNzb2NpYXRlZE5hbWUiLCJhc3NvY2lhdGVkTmFtZSIsTklEX2Fzc29jaWF0ZWROYW1lLDEwLAotCSYobHZhbHVlc1szNjY4XSksMH0sCisJJihsdmFsdWVzWzM2NjRdKSwwfSwKIHsiaG9tZVBvc3RhbEFkZHJlc3MiLCJob21lUG9zdGFsQWRkcmVzcyIsTklEX2hvbWVQb3N0YWxBZGRyZXNzLDEwLAotCSYobHZhbHVlc1szNjc4XSksMH0sCi17InBlcnNvbmFsVGl0bGUiLCJwZXJzb25hbFRpdGxlIixOSURfcGVyc29uYWxUaXRsZSwxMCwmKGx2YWx1ZXNbMzY4OF0pLDB9LAorCSYobHZhbHVlc1szNjc0XSksMH0sCit7InBlcnNvbmFsVGl0bGUiLCJwZXJzb25hbFRpdGxlIixOSURfcGVyc29uYWxUaXRsZSwxMCwmKGx2YWx1ZXNbMzY4NF0pLDB9LAogeyJtb2JpbGVUZWxlcGhvbmVOdW1iZXIiLCJtb2JpbGVUZWxlcGhvbmVOdW1iZXIiLAotCU5JRF9tb2JpbGVUZWxlcGhvbmVOdW1iZXIsMTAsJihsdmFsdWVzWzM2OThdKSwwfSwKKwlOSURfbW9iaWxlVGVsZXBob25lTnVtYmVyLDEwLCYobHZhbHVlc1szNjk0XSksMH0sCiB7InBhZ2VyVGVsZXBob25lTnVtYmVyIiwicGFnZXJUZWxlcGhvbmVOdW1iZXIiLAotCU5JRF9wYWdlclRlbGVwaG9uZU51bWJlciwxMCwmKGx2YWx1ZXNbMzcwOF0pLDB9LAorCU5JRF9wYWdlclRlbGVwaG9uZU51bWJlciwxMCwmKGx2YWx1ZXNbMzcwNF0pLDB9LAogeyJmcmllbmRseUNvdW50cnlOYW1lIiwiZnJpZW5kbHlDb3VudHJ5TmFtZSIsTklEX2ZyaWVuZGx5Q291bnRyeU5hbWUsCi0JMTAsJihsdmFsdWVzWzM3MThdKSwwfSwKKwkxMCwmKGx2YWx1ZXNbMzcxNF0pLDB9LAogeyJvcmdhbml6YXRpb25hbFN0YXR1cyIsIm9yZ2FuaXphdGlvbmFsU3RhdHVzIiwKLQlOSURfb3JnYW5pemF0aW9uYWxTdGF0dXMsMTAsJihsdmFsdWVzWzM3MjhdKSwwfSwKLXsiamFuZXRNYWlsYm94IiwiamFuZXRNYWlsYm94IixOSURfamFuZXRNYWlsYm94LDEwLCYobHZhbHVlc1szNzM4XSksMH0sCisJTklEX29yZ2FuaXphdGlvbmFsU3RhdHVzLDEwLCYobHZhbHVlc1szNzI0XSksMH0sCit7ImphbmV0TWFpbGJveCIsImphbmV0TWFpbGJveCIsTklEX2phbmV0TWFpbGJveCwxMCwmKGx2YWx1ZXNbMzczNF0pLDB9LAogeyJtYWlsUHJlZmVyZW5jZU9wdGlvbiIsIm1haWxQcmVmZXJlbmNlT3B0aW9uIiwKLQlOSURfbWFpbFByZWZlcmVuY2VPcHRpb24sMTAsJihsdmFsdWVzWzM3NDhdKSwwfSwKLXsiYnVpbGRpbmdOYW1lIiwiYnVpbGRpbmdOYW1lIixOSURfYnVpbGRpbmdOYW1lLDEwLCYobHZhbHVlc1szNzU4XSksMH0sCi17ImRTQVF1YWxpdHkiLCJkU0FRdWFsaXR5IixOSURfZFNBUXVhbGl0eSwxMCwmKGx2YWx1ZXNbMzc2OF0pLDB9LAorCU5JRF9tYWlsUHJlZmVyZW5jZU9wdGlvbiwxMCwmKGx2YWx1ZXNbMzc0NF0pLDB9LAoreyJidWlsZGluZ05hbWUiLCJidWlsZGluZ05hbWUiLE5JRF9idWlsZGluZ05hbWUsMTAsJihsdmFsdWVzWzM3NTRdKSwwfSwKK3siZFNBUXVhbGl0eSIsImRTQVF1YWxpdHkiLE5JRF9kU0FRdWFsaXR5LDEwLCYobHZhbHVlc1szNzY0XSksMH0sCiB7InNpbmdsZUxldmVsUXVhbGl0eSIsInNpbmdsZUxldmVsUXVhbGl0eSIsTklEX3NpbmdsZUxldmVsUXVhbGl0eSwxMCwKLQkmKGx2YWx1ZXNbMzc3OF0pLDB9LAorCSYobHZhbHVlc1szNzc0XSksMH0sCiB7InN1YnRyZWVNaW5pbXVtUXVhbGl0eSIsInN1YnRyZWVNaW5pbXVtUXVhbGl0eSIsCi0JTklEX3N1YnRyZWVNaW5pbXVtUXVhbGl0eSwxMCwmKGx2YWx1ZXNbMzc4OF0pLDB9LAorCU5JRF9zdWJ0cmVlTWluaW11bVF1YWxpdHksMTAsJihsdmFsdWVzWzM3ODRdKSwwfSwKIHsic3VidHJlZU1heGltdW1RdWFsaXR5Iiwic3VidHJlZU1heGltdW1RdWFsaXR5IiwKLQlOSURfc3VidHJlZU1heGltdW1RdWFsaXR5LDEwLCYobHZhbHVlc1szNzk4XSksMH0sCisJTklEX3N1YnRyZWVNYXhpbXVtUXVhbGl0eSwxMCwmKGx2YWx1ZXNbMzc5NF0pLDB9LAogeyJwZXJzb25hbFNpZ25hdHVyZSIsInBlcnNvbmFsU2lnbmF0dXJlIixOSURfcGVyc29uYWxTaWduYXR1cmUsMTAsCi0JJihsdmFsdWVzWzM4MDhdKSwwfSwKLXsiZElUUmVkaXJlY3QiLCJkSVRSZWRpcmVjdCIsTklEX2RJVFJlZGlyZWN0LDEwLCYobHZhbHVlc1szODE4XSksMH0sCi17ImF1ZGlvIiwiYXVkaW8iLE5JRF9hdWRpbywxMCwmKGx2YWx1ZXNbMzgyOF0pLDB9LAorCSYobHZhbHVlc1szODA0XSksMH0sCit7ImRJVFJlZGlyZWN0IiwiZElUUmVkaXJlY3QiLE5JRF9kSVRSZWRpcmVjdCwxMCwmKGx2YWx1ZXNbMzgxNF0pLDB9LAoreyJhdWRpbyIsImF1ZGlvIixOSURfYXVkaW8sMTAsJihsdmFsdWVzWzM4MjRdKSwwfSwKIHsiZG9jdW1lbnRQdWJsaXNoZXIiLCJkb2N1bWVudFB1Ymxpc2hlciIsTklEX2RvY3VtZW50UHVibGlzaGVyLDEwLAotCSYobHZhbHVlc1szODM4XSksMH0sCisJJihsdmFsdWVzWzM4MzRdKSwwfSwKIHsieDUwMFVuaXF1ZUlkZW50aWZpZXIiLCJ4NTAwVW5pcXVlSWRlbnRpZmllciIsCi0JTklEX3g1MDBVbmlxdWVJZGVudGlmaWVyLDMsJihsdmFsdWVzWzM4NDhdKSwwfSwKLXsibWltZS1taHMiLCJNSU1FIE1IUyIsTklEX21pbWVfbWhzLDUsJihsdmFsdWVzWzM4NTFdKSwwfSwKKwlOSURfeDUwMFVuaXF1ZUlkZW50aWZpZXIsMywmKGx2YWx1ZXNbMzg0NF0pLDB9LAoreyJtaW1lLW1ocyIsIk1JTUUgTUhTIixOSURfbWltZV9taHMsNSwmKGx2YWx1ZXNbMzg0N10pLDB9LAogeyJtaW1lLW1ocy1oZWFkaW5ncyIsIm1pbWUtbWhzLWhlYWRpbmdzIixOSURfbWltZV9taHNfaGVhZGluZ3MsNiwKLQkmKGx2YWx1ZXNbMzg1Nl0pLDB9LAorCSYobHZhbHVlc1szODUyXSksMH0sCiB7Im1pbWUtbWhzLWJvZGllcyIsIm1pbWUtbWhzLWJvZGllcyIsTklEX21pbWVfbWhzX2JvZGllcyw2LAotCSYobHZhbHVlc1szODYyXSksMH0sCisJJihsdmFsdWVzWzM4NThdKSwwfSwKIHsiaWQtaGV4LXBhcnRpYWwtbWVzc2FnZSIsImlkLWhleC1wYXJ0aWFsLW1lc3NhZ2UiLAotCU5JRF9pZF9oZXhfcGFydGlhbF9tZXNzYWdlLDcsJihsdmFsdWVzWzM4NjhdKSwwfSwKKwlOSURfaWRfaGV4X3BhcnRpYWxfbWVzc2FnZSw3LCYobHZhbHVlc1szODY0XSksMH0sCiB7ImlkLWhleC1tdWx0aXBhcnQtbWVzc2FnZSIsImlkLWhleC1tdWx0aXBhcnQtbWVzc2FnZSIsCi0JTklEX2lkX2hleF9tdWx0aXBhcnRfbWVzc2FnZSw3LCYobHZhbHVlc1szODc1XSksMH0sCisJTklEX2lkX2hleF9tdWx0aXBhcnRfbWVzc2FnZSw3LCYobHZhbHVlc1szODcxXSksMH0sCiB7ImdlbmVyYXRpb25RdWFsaWZpZXIiLCJnZW5lcmF0aW9uUXVhbGlmaWVyIixOSURfZ2VuZXJhdGlvblF1YWxpZmllciwKLQkzLCYobHZhbHVlc1szODgyXSksMH0sCi17InBzZXVkb255bSIsInBzZXVkb255bSIsTklEX3BzZXVkb255bSwzLCYobHZhbHVlc1szODg1XSksMH0sCisJMywmKGx2YWx1ZXNbMzg3OF0pLDB9LAoreyJwc2V1ZG9ueW0iLCJwc2V1ZG9ueW0iLE5JRF9wc2V1ZG9ueW0sMywmKGx2YWx1ZXNbMzg4MV0pLDB9LAoge05VTEwsTlVMTCxOSURfdW5kZWYsMCxOVUxMLDB9LAogeyJpZC1zZXQiLCJTZWN1cmUgRWxlY3Ryb25pYyBUcmFuc2FjdGlvbnMiLE5JRF9pZF9zZXQsMiwKLQkmKGx2YWx1ZXNbMzg4OF0pLDB9LAoteyJzZXQtY3R5cGUiLCJjb250ZW50IHR5cGVzIixOSURfc2V0X2N0eXBlLDMsJihsdmFsdWVzWzM4OTBdKSwwfSwKLXsic2V0LW1zZ0V4dCIsIm1lc3NhZ2UgZXh0ZW5zaW9ucyIsTklEX3NldF9tc2dFeHQsMywmKGx2YWx1ZXNbMzg5M10pLDB9LAoteyJzZXQtYXR0ciIsInNldC1hdHRyIixOSURfc2V0X2F0dHIsMywmKGx2YWx1ZXNbMzg5Nl0pLDB9LAoteyJzZXQtcG9saWN5Iiwic2V0LXBvbGljeSIsTklEX3NldF9wb2xpY3ksMywmKGx2YWx1ZXNbMzg5OV0pLDB9LAorCSYobHZhbHVlc1szODg0XSksMH0sCit7InNldC1jdHlwZSIsImNvbnRlbnQgdHlwZXMiLE5JRF9zZXRfY3R5cGUsMywmKGx2YWx1ZXNbMzg4Nl0pLDB9LAoreyJzZXQtbXNnRXh0IiwibWVzc2FnZSBleHRlbnNpb25zIixOSURfc2V0X21zZ0V4dCwzLCYobHZhbHVlc1szODg5XSksMH0sCit7InNldC1hdHRyIiwic2V0LWF0dHIiLE5JRF9zZXRfYXR0ciwzLCYobHZhbHVlc1szODkyXSksMH0sCit7InNldC1wb2xpY3kiLCJzZXQtcG9saWN5IixOSURfc2V0X3BvbGljeSwzLCYobHZhbHVlc1szODk1XSksMH0sCiB7InNldC1jZXJ0RXh0IiwiY2VydGlmaWNhdGUgZXh0ZW5zaW9ucyIsTklEX3NldF9jZXJ0RXh0LDMsCi0JJihsdmFsdWVzWzM5MDJdKSwwfSwKLXsic2V0LWJyYW5kIiwic2V0LWJyYW5kIixOSURfc2V0X2JyYW5kLDMsJihsdmFsdWVzWzM5MDVdKSwwfSwKLXsic2V0Y3QtUEFORGF0YSIsInNldGN0LVBBTkRhdGEiLE5JRF9zZXRjdF9QQU5EYXRhLDQsJihsdmFsdWVzWzM5MDhdKSwwfSwKKwkmKGx2YWx1ZXNbMzg5OF0pLDB9LAoreyJzZXQtYnJhbmQiLCJzZXQtYnJhbmQiLE5JRF9zZXRfYnJhbmQsMywmKGx2YWx1ZXNbMzkwMV0pLDB9LAoreyJzZXRjdC1QQU5EYXRhIiwic2V0Y3QtUEFORGF0YSIsTklEX3NldGN0X1BBTkRhdGEsNCwmKGx2YWx1ZXNbMzkwNF0pLDB9LAogeyJzZXRjdC1QQU5Ub2tlbiIsInNldGN0LVBBTlRva2VuIixOSURfc2V0Y3RfUEFOVG9rZW4sNCwKLQkmKGx2YWx1ZXNbMzkxMl0pLDB9LAoteyJzZXRjdC1QQU5Pbmx5Iiwic2V0Y3QtUEFOT25seSIsTklEX3NldGN0X1BBTk9ubHksNCwmKGx2YWx1ZXNbMzkxNl0pLDB9LAoteyJzZXRjdC1PSURhdGEiLCJzZXRjdC1PSURhdGEiLE5JRF9zZXRjdF9PSURhdGEsNCwmKGx2YWx1ZXNbMzkyMF0pLDB9LAoteyJzZXRjdC1QSSIsInNldGN0LVBJIixOSURfc2V0Y3RfUEksNCwmKGx2YWx1ZXNbMzkyNF0pLDB9LAoteyJzZXRjdC1QSURhdGEiLCJzZXRjdC1QSURhdGEiLE5JRF9zZXRjdF9QSURhdGEsNCwmKGx2YWx1ZXNbMzkyOF0pLDB9LAorCSYobHZhbHVlc1szOTA4XSksMH0sCit7InNldGN0LVBBTk9ubHkiLCJzZXRjdC1QQU5Pbmx5IixOSURfc2V0Y3RfUEFOT25seSw0LCYobHZhbHVlc1szOTEyXSksMH0sCit7InNldGN0LU9JRGF0YSIsInNldGN0LU9JRGF0YSIsTklEX3NldGN0X09JRGF0YSw0LCYobHZhbHVlc1szOTE2XSksMH0sCit7InNldGN0LVBJIiwic2V0Y3QtUEkiLE5JRF9zZXRjdF9QSSw0LCYobHZhbHVlc1szOTIwXSksMH0sCit7InNldGN0LVBJRGF0YSIsInNldGN0LVBJRGF0YSIsTklEX3NldGN0X1BJRGF0YSw0LCYobHZhbHVlc1szOTI0XSksMH0sCiB7InNldGN0LVBJRGF0YVVuc2lnbmVkIiwic2V0Y3QtUElEYXRhVW5zaWduZWQiLAotCU5JRF9zZXRjdF9QSURhdGFVbnNpZ25lZCw0LCYobHZhbHVlc1szOTMyXSksMH0sCisJTklEX3NldGN0X1BJRGF0YVVuc2lnbmVkLDQsJihsdmFsdWVzWzM5MjhdKSwwfSwKIHsic2V0Y3QtSE9ESW5wdXQiLCJzZXRjdC1IT0RJbnB1dCIsTklEX3NldGN0X0hPRElucHV0LDQsCi0JJihsdmFsdWVzWzM5MzZdKSwwfSwKKwkmKGx2YWx1ZXNbMzkzMl0pLDB9LAogeyJzZXRjdC1BdXRoUmVzQmFnZ2FnZSIsInNldGN0LUF1dGhSZXNCYWdnYWdlIiwKLQlOSURfc2V0Y3RfQXV0aFJlc0JhZ2dhZ2UsNCwmKGx2YWx1ZXNbMzk0MF0pLDB9LAorCU5JRF9zZXRjdF9BdXRoUmVzQmFnZ2FnZSw0LCYobHZhbHVlc1szOTM2XSksMH0sCiB7InNldGN0LUF1dGhSZXZSZXFCYWdnYWdlIiwic2V0Y3QtQXV0aFJldlJlcUJhZ2dhZ2UiLAotCU5JRF9zZXRjdF9BdXRoUmV2UmVxQmFnZ2FnZSw0LCYobHZhbHVlc1szOTQ0XSksMH0sCisJTklEX3NldGN0X0F1dGhSZXZSZXFCYWdnYWdlLDQsJihsdmFsdWVzWzM5NDBdKSwwfSwKIHsic2V0Y3QtQXV0aFJldlJlc0JhZ2dhZ2UiLCJzZXRjdC1BdXRoUmV2UmVzQmFnZ2FnZSIsCi0JTklEX3NldGN0X0F1dGhSZXZSZXNCYWdnYWdlLDQsJihsdmFsdWVzWzM5NDhdKSwwfSwKKwlOSURfc2V0Y3RfQXV0aFJldlJlc0JhZ2dhZ2UsNCwmKGx2YWx1ZXNbMzk0NF0pLDB9LAogeyJzZXRjdC1DYXBUb2tlblNlcSIsInNldGN0LUNhcFRva2VuU2VxIixOSURfc2V0Y3RfQ2FwVG9rZW5TZXEsNCwKLQkmKGx2YWx1ZXNbMzk1Ml0pLDB9LAorCSYobHZhbHVlc1szOTQ4XSksMH0sCiB7InNldGN0LVBJbml0UmVzRGF0YSIsInNldGN0LVBJbml0UmVzRGF0YSIsTklEX3NldGN0X1BJbml0UmVzRGF0YSw0LAotCSYobHZhbHVlc1szOTU2XSksMH0sCi17InNldGN0LVBJLVRCUyIsInNldGN0LVBJLVRCUyIsTklEX3NldGN0X1BJX1RCUyw0LCYobHZhbHVlc1szOTYwXSksMH0sCisJJihsdmFsdWVzWzM5NTJdKSwwfSwKK3sic2V0Y3QtUEktVEJTIiwic2V0Y3QtUEktVEJTIixOSURfc2V0Y3RfUElfVEJTLDQsJihsdmFsdWVzWzM5NTZdKSwwfSwKIHsic2V0Y3QtUFJlc0RhdGEiLCJzZXRjdC1QUmVzRGF0YSIsTklEX3NldGN0X1BSZXNEYXRhLDQsCi0JJihsdmFsdWVzWzM5NjRdKSwwfSwKKwkmKGx2YWx1ZXNbMzk2MF0pLDB9LAogeyJzZXRjdC1BdXRoUmVxVEJTIiwic2V0Y3QtQXV0aFJlcVRCUyIsTklEX3NldGN0X0F1dGhSZXFUQlMsNCwKLQkmKGx2YWx1ZXNbMzk2OF0pLDB9LAorCSYobHZhbHVlc1szOTY0XSksMH0sCiB7InNldGN0LUF1dGhSZXNUQlMiLCJzZXRjdC1BdXRoUmVzVEJTIixOSURfc2V0Y3RfQXV0aFJlc1RCUyw0LAotCSYobHZhbHVlc1szOTcyXSksMH0sCisJJihsdmFsdWVzWzM5NjhdKSwwfSwKIHsic2V0Y3QtQXV0aFJlc1RCU1giLCJzZXRjdC1BdXRoUmVzVEJTWCIsTklEX3NldGN0X0F1dGhSZXNUQlNYLDQsCi0JJihsdmFsdWVzWzM5NzZdKSwwfSwKKwkmKGx2YWx1ZXNbMzk3Ml0pLDB9LAogeyJzZXRjdC1BdXRoVG9rZW5UQlMiLCJzZXRjdC1BdXRoVG9rZW5UQlMiLE5JRF9zZXRjdF9BdXRoVG9rZW5UQlMsNCwKLQkmKGx2YWx1ZXNbMzk4MF0pLDB9LAorCSYobHZhbHVlc1szOTc2XSksMH0sCiB7InNldGN0LUNhcFRva2VuRGF0YSIsInNldGN0LUNhcFRva2VuRGF0YSIsTklEX3NldGN0X0NhcFRva2VuRGF0YSw0LAotCSYobHZhbHVlc1szOTg0XSksMH0sCisJJihsdmFsdWVzWzM5ODBdKSwwfSwKIHsic2V0Y3QtQ2FwVG9rZW5UQlMiLCJzZXRjdC1DYXBUb2tlblRCUyIsTklEX3NldGN0X0NhcFRva2VuVEJTLDQsCi0JJihsdmFsdWVzWzM5ODhdKSwwfSwKKwkmKGx2YWx1ZXNbMzk4NF0pLDB9LAogeyJzZXRjdC1BY3FDYXJkQ29kZU1zZyIsInNldGN0LUFjcUNhcmRDb2RlTXNnIiwKLQlOSURfc2V0Y3RfQWNxQ2FyZENvZGVNc2csNCwmKGx2YWx1ZXNbMzk5Ml0pLDB9LAorCU5JRF9zZXRjdF9BY3FDYXJkQ29kZU1zZyw0LCYobHZhbHVlc1szOTg4XSksMH0sCiB7InNldGN0LUF1dGhSZXZSZXFUQlMiLCJzZXRjdC1BdXRoUmV2UmVxVEJTIixOSURfc2V0Y3RfQXV0aFJldlJlcVRCUywKLQk0LCYobHZhbHVlc1szOTk2XSksMH0sCisJNCwmKGx2YWx1ZXNbMzk5Ml0pLDB9LAogeyJzZXRjdC1BdXRoUmV2UmVzRGF0YSIsInNldGN0LUF1dGhSZXZSZXNEYXRhIiwKLQlOSURfc2V0Y3RfQXV0aFJldlJlc0RhdGEsNCwmKGx2YWx1ZXNbNDAwMF0pLDB9LAorCU5JRF9zZXRjdF9BdXRoUmV2UmVzRGF0YSw0LCYobHZhbHVlc1szOTk2XSksMH0sCiB7InNldGN0LUF1dGhSZXZSZXNUQlMiLCJzZXRjdC1BdXRoUmV2UmVzVEJTIixOSURfc2V0Y3RfQXV0aFJldlJlc1RCUywKLQk0LCYobHZhbHVlc1s0MDA0XSksMH0sCisJNCwmKGx2YWx1ZXNbNDAwMF0pLDB9LAogeyJzZXRjdC1DYXBSZXFUQlMiLCJzZXRjdC1DYXBSZXFUQlMiLE5JRF9zZXRjdF9DYXBSZXFUQlMsNCwKLQkmKGx2YWx1ZXNbNDAwOF0pLDB9LAorCSYobHZhbHVlc1s0MDA0XSksMH0sCiB7InNldGN0LUNhcFJlcVRCU1giLCJzZXRjdC1DYXBSZXFUQlNYIixOSURfc2V0Y3RfQ2FwUmVxVEJTWCw0LAotCSYobHZhbHVlc1s0MDEyXSksMH0sCisJJihsdmFsdWVzWzQwMDhdKSwwfSwKIHsic2V0Y3QtQ2FwUmVzRGF0YSIsInNldGN0LUNhcFJlc0RhdGEiLE5JRF9zZXRjdF9DYXBSZXNEYXRhLDQsCi0JJihsdmFsdWVzWzQwMTZdKSwwfSwKKwkmKGx2YWx1ZXNbNDAxMl0pLDB9LAogeyJzZXRjdC1DYXBSZXZSZXFUQlMiLCJzZXRjdC1DYXBSZXZSZXFUQlMiLE5JRF9zZXRjdF9DYXBSZXZSZXFUQlMsNCwKLQkmKGx2YWx1ZXNbNDAyMF0pLDB9LAorCSYobHZhbHVlc1s0MDE2XSksMH0sCiB7InNldGN0LUNhcFJldlJlcVRCU1giLCJzZXRjdC1DYXBSZXZSZXFUQlNYIixOSURfc2V0Y3RfQ2FwUmV2UmVxVEJTWCwKLQk0LCYobHZhbHVlc1s0MDI0XSksMH0sCisJNCwmKGx2YWx1ZXNbNDAyMF0pLDB9LAogeyJzZXRjdC1DYXBSZXZSZXNEYXRhIiwic2V0Y3QtQ2FwUmV2UmVzRGF0YSIsTklEX3NldGN0X0NhcFJldlJlc0RhdGEsCi0JNCwmKGx2YWx1ZXNbNDAyOF0pLDB9LAorCTQsJihsdmFsdWVzWzQwMjRdKSwwfSwKIHsic2V0Y3QtQ3JlZFJlcVRCUyIsInNldGN0LUNyZWRSZXFUQlMiLE5JRF9zZXRjdF9DcmVkUmVxVEJTLDQsCi0JJihsdmFsdWVzWzQwMzJdKSwwfSwKKwkmKGx2YWx1ZXNbNDAyOF0pLDB9LAogeyJzZXRjdC1DcmVkUmVxVEJTWCIsInNldGN0LUNyZWRSZXFUQlNYIixOSURfc2V0Y3RfQ3JlZFJlcVRCU1gsNCwKLQkmKGx2YWx1ZXNbNDAzNl0pLDB9LAorCSYobHZhbHVlc1s0MDMyXSksMH0sCiB7InNldGN0LUNyZWRSZXNEYXRhIiwic2V0Y3QtQ3JlZFJlc0RhdGEiLE5JRF9zZXRjdF9DcmVkUmVzRGF0YSw0LAotCSYobHZhbHVlc1s0MDQwXSksMH0sCisJJihsdmFsdWVzWzQwMzZdKSwwfSwKIHsic2V0Y3QtQ3JlZFJldlJlcVRCUyIsInNldGN0LUNyZWRSZXZSZXFUQlMiLE5JRF9zZXRjdF9DcmVkUmV2UmVxVEJTLAotCTQsJihsdmFsdWVzWzQwNDRdKSwwfSwKKwk0LCYobHZhbHVlc1s0MDQwXSksMH0sCiB7InNldGN0LUNyZWRSZXZSZXFUQlNYIiwic2V0Y3QtQ3JlZFJldlJlcVRCU1giLAotCU5JRF9zZXRjdF9DcmVkUmV2UmVxVEJTWCw0LCYobHZhbHVlc1s0MDQ4XSksMH0sCisJTklEX3NldGN0X0NyZWRSZXZSZXFUQlNYLDQsJihsdmFsdWVzWzQwNDRdKSwwfSwKIHsic2V0Y3QtQ3JlZFJldlJlc0RhdGEiLCJzZXRjdC1DcmVkUmV2UmVzRGF0YSIsCi0JTklEX3NldGN0X0NyZWRSZXZSZXNEYXRhLDQsJihsdmFsdWVzWzQwNTJdKSwwfSwKKwlOSURfc2V0Y3RfQ3JlZFJldlJlc0RhdGEsNCwmKGx2YWx1ZXNbNDA0OF0pLDB9LAogeyJzZXRjdC1QQ2VydFJlcURhdGEiLCJzZXRjdC1QQ2VydFJlcURhdGEiLE5JRF9zZXRjdF9QQ2VydFJlcURhdGEsNCwKLQkmKGx2YWx1ZXNbNDA1Nl0pLDB9LAorCSYobHZhbHVlc1s0MDUyXSksMH0sCiB7InNldGN0LVBDZXJ0UmVzVEJTIiwic2V0Y3QtUENlcnRSZXNUQlMiLE5JRF9zZXRjdF9QQ2VydFJlc1RCUyw0LAotCSYobHZhbHVlc1s0MDYwXSksMH0sCisJJihsdmFsdWVzWzQwNTZdKSwwfSwKIHsic2V0Y3QtQmF0Y2hBZG1pblJlcURhdGEiLCJzZXRjdC1CYXRjaEFkbWluUmVxRGF0YSIsCi0JTklEX3NldGN0X0JhdGNoQWRtaW5SZXFEYXRhLDQsJihsdmFsdWVzWzQwNjRdKSwwfSwKKwlOSURfc2V0Y3RfQmF0Y2hBZG1pblJlcURhdGEsNCwmKGx2YWx1ZXNbNDA2MF0pLDB9LAogeyJzZXRjdC1CYXRjaEFkbWluUmVzRGF0YSIsInNldGN0LUJhdGNoQWRtaW5SZXNEYXRhIiwKLQlOSURfc2V0Y3RfQmF0Y2hBZG1pblJlc0RhdGEsNCwmKGx2YWx1ZXNbNDA2OF0pLDB9LAorCU5JRF9zZXRjdF9CYXRjaEFkbWluUmVzRGF0YSw0LCYobHZhbHVlc1s0MDY0XSksMH0sCiB7InNldGN0LUNhcmRDSW5pdFJlc1RCUyIsInNldGN0LUNhcmRDSW5pdFJlc1RCUyIsCi0JTklEX3NldGN0X0NhcmRDSW5pdFJlc1RCUyw0LCYobHZhbHVlc1s0MDcyXSksMH0sCisJTklEX3NldGN0X0NhcmRDSW5pdFJlc1RCUyw0LCYobHZhbHVlc1s0MDY4XSksMH0sCiB7InNldGN0LU1lQXFDSW5pdFJlc1RCUyIsInNldGN0LU1lQXFDSW5pdFJlc1RCUyIsCi0JTklEX3NldGN0X01lQXFDSW5pdFJlc1RCUyw0LCYobHZhbHVlc1s0MDc2XSksMH0sCisJTklEX3NldGN0X01lQXFDSW5pdFJlc1RCUyw0LCYobHZhbHVlc1s0MDcyXSksMH0sCiB7InNldGN0LVJlZ0Zvcm1SZXNUQlMiLCJzZXRjdC1SZWdGb3JtUmVzVEJTIixOSURfc2V0Y3RfUmVnRm9ybVJlc1RCUywKLQk0LCYobHZhbHVlc1s0MDgwXSksMH0sCisJNCwmKGx2YWx1ZXNbNDA3Nl0pLDB9LAogeyJzZXRjdC1DZXJ0UmVxRGF0YSIsInNldGN0LUNlcnRSZXFEYXRhIixOSURfc2V0Y3RfQ2VydFJlcURhdGEsNCwKLQkmKGx2YWx1ZXNbNDA4NF0pLDB9LAorCSYobHZhbHVlc1s0MDgwXSksMH0sCiB7InNldGN0LUNlcnRSZXFUQlMiLCJzZXRjdC1DZXJ0UmVxVEJTIixOSURfc2V0Y3RfQ2VydFJlcVRCUyw0LAotCSYobHZhbHVlc1s0MDg4XSksMH0sCisJJihsdmFsdWVzWzQwODRdKSwwfSwKIHsic2V0Y3QtQ2VydFJlc0RhdGEiLCJzZXRjdC1DZXJ0UmVzRGF0YSIsTklEX3NldGN0X0NlcnRSZXNEYXRhLDQsCi0JJihsdmFsdWVzWzQwOTJdKSwwfSwKKwkmKGx2YWx1ZXNbNDA4OF0pLDB9LAogeyJzZXRjdC1DZXJ0SW5xUmVxVEJTIiwic2V0Y3QtQ2VydElucVJlcVRCUyIsTklEX3NldGN0X0NlcnRJbnFSZXFUQlMsCi0JNCwmKGx2YWx1ZXNbNDA5Nl0pLDB9LAorCTQsJihsdmFsdWVzWzQwOTJdKSwwfSwKIHsic2V0Y3QtRXJyb3JUQlMiLCJzZXRjdC1FcnJvclRCUyIsTklEX3NldGN0X0Vycm9yVEJTLDQsCi0JJihsdmFsdWVzWzQxMDBdKSwwfSwKKwkmKGx2YWx1ZXNbNDA5Nl0pLDB9LAogeyJzZXRjdC1QSUR1YWxTaWduZWRUQkUiLCJzZXRjdC1QSUR1YWxTaWduZWRUQkUiLAotCU5JRF9zZXRjdF9QSUR1YWxTaWduZWRUQkUsNCwmKGx2YWx1ZXNbNDEwNF0pLDB9LAorCU5JRF9zZXRjdF9QSUR1YWxTaWduZWRUQkUsNCwmKGx2YWx1ZXNbNDEwMF0pLDB9LAogeyJzZXRjdC1QSVVuc2lnbmVkVEJFIiwic2V0Y3QtUElVbnNpZ25lZFRCRSIsTklEX3NldGN0X1BJVW5zaWduZWRUQkUsCi0JNCwmKGx2YWx1ZXNbNDEwOF0pLDB9LAorCTQsJihsdmFsdWVzWzQxMDRdKSwwfSwKIHsic2V0Y3QtQXV0aFJlcVRCRSIsInNldGN0LUF1dGhSZXFUQkUiLE5JRF9zZXRjdF9BdXRoUmVxVEJFLDQsCi0JJihsdmFsdWVzWzQxMTJdKSwwfSwKKwkmKGx2YWx1ZXNbNDEwOF0pLDB9LAogeyJzZXRjdC1BdXRoUmVzVEJFIiwic2V0Y3QtQXV0aFJlc1RCRSIsTklEX3NldGN0X0F1dGhSZXNUQkUsNCwKLQkmKGx2YWx1ZXNbNDExNl0pLDB9LAorCSYobHZhbHVlc1s0MTEyXSksMH0sCiB7InNldGN0LUF1dGhSZXNUQkVYIiwic2V0Y3QtQXV0aFJlc1RCRVgiLE5JRF9zZXRjdF9BdXRoUmVzVEJFWCw0LAotCSYobHZhbHVlc1s0MTIwXSksMH0sCisJJihsdmFsdWVzWzQxMTZdKSwwfSwKIHsic2V0Y3QtQXV0aFRva2VuVEJFIiwic2V0Y3QtQXV0aFRva2VuVEJFIixOSURfc2V0Y3RfQXV0aFRva2VuVEJFLDQsCi0JJihsdmFsdWVzWzQxMjRdKSwwfSwKKwkmKGx2YWx1ZXNbNDEyMF0pLDB9LAogeyJzZXRjdC1DYXBUb2tlblRCRSIsInNldGN0LUNhcFRva2VuVEJFIixOSURfc2V0Y3RfQ2FwVG9rZW5UQkUsNCwKLQkmKGx2YWx1ZXNbNDEyOF0pLDB9LAorCSYobHZhbHVlc1s0MTI0XSksMH0sCiB7InNldGN0LUNhcFRva2VuVEJFWCIsInNldGN0LUNhcFRva2VuVEJFWCIsTklEX3NldGN0X0NhcFRva2VuVEJFWCw0LAotCSYobHZhbHVlc1s0MTMyXSksMH0sCisJJihsdmFsdWVzWzQxMjhdKSwwfSwKIHsic2V0Y3QtQWNxQ2FyZENvZGVNc2dUQkUiLCJzZXRjdC1BY3FDYXJkQ29kZU1zZ1RCRSIsCi0JTklEX3NldGN0X0FjcUNhcmRDb2RlTXNnVEJFLDQsJihsdmFsdWVzWzQxMzZdKSwwfSwKKwlOSURfc2V0Y3RfQWNxQ2FyZENvZGVNc2dUQkUsNCwmKGx2YWx1ZXNbNDEzMl0pLDB9LAogeyJzZXRjdC1BdXRoUmV2UmVxVEJFIiwic2V0Y3QtQXV0aFJldlJlcVRCRSIsTklEX3NldGN0X0F1dGhSZXZSZXFUQkUsCi0JNCwmKGx2YWx1ZXNbNDE0MF0pLDB9LAorCTQsJihsdmFsdWVzWzQxMzZdKSwwfSwKIHsic2V0Y3QtQXV0aFJldlJlc1RCRSIsInNldGN0LUF1dGhSZXZSZXNUQkUiLE5JRF9zZXRjdF9BdXRoUmV2UmVzVEJFLAotCTQsJihsdmFsdWVzWzQxNDRdKSwwfSwKKwk0LCYobHZhbHVlc1s0MTQwXSksMH0sCiB7InNldGN0LUF1dGhSZXZSZXNUQkVCIiwic2V0Y3QtQXV0aFJldlJlc1RCRUIiLAotCU5JRF9zZXRjdF9BdXRoUmV2UmVzVEJFQiw0LCYobHZhbHVlc1s0MTQ4XSksMH0sCisJTklEX3NldGN0X0F1dGhSZXZSZXNUQkVCLDQsJihsdmFsdWVzWzQxNDRdKSwwfSwKIHsic2V0Y3QtQ2FwUmVxVEJFIiwic2V0Y3QtQ2FwUmVxVEJFIixOSURfc2V0Y3RfQ2FwUmVxVEJFLDQsCi0JJihsdmFsdWVzWzQxNTJdKSwwfSwKKwkmKGx2YWx1ZXNbNDE0OF0pLDB9LAogeyJzZXRjdC1DYXBSZXFUQkVYIiwic2V0Y3QtQ2FwUmVxVEJFWCIsTklEX3NldGN0X0NhcFJlcVRCRVgsNCwKLQkmKGx2YWx1ZXNbNDE1Nl0pLDB9LAorCSYobHZhbHVlc1s0MTUyXSksMH0sCiB7InNldGN0LUNhcFJlc1RCRSIsInNldGN0LUNhcFJlc1RCRSIsTklEX3NldGN0X0NhcFJlc1RCRSw0LAotCSYobHZhbHVlc1s0MTYwXSksMH0sCisJJihsdmFsdWVzWzQxNTZdKSwwfSwKIHsic2V0Y3QtQ2FwUmV2UmVxVEJFIiwic2V0Y3QtQ2FwUmV2UmVxVEJFIixOSURfc2V0Y3RfQ2FwUmV2UmVxVEJFLDQsCi0JJihsdmFsdWVzWzQxNjRdKSwwfSwKKwkmKGx2YWx1ZXNbNDE2MF0pLDB9LAogeyJzZXRjdC1DYXBSZXZSZXFUQkVYIiwic2V0Y3QtQ2FwUmV2UmVxVEJFWCIsTklEX3NldGN0X0NhcFJldlJlcVRCRVgsCi0JNCwmKGx2YWx1ZXNbNDE2OF0pLDB9LAorCTQsJihsdmFsdWVzWzQxNjRdKSwwfSwKIHsic2V0Y3QtQ2FwUmV2UmVzVEJFIiwic2V0Y3QtQ2FwUmV2UmVzVEJFIixOSURfc2V0Y3RfQ2FwUmV2UmVzVEJFLDQsCi0JJihsdmFsdWVzWzQxNzJdKSwwfSwKKwkmKGx2YWx1ZXNbNDE2OF0pLDB9LAogeyJzZXRjdC1DcmVkUmVxVEJFIiwic2V0Y3QtQ3JlZFJlcVRCRSIsTklEX3NldGN0X0NyZWRSZXFUQkUsNCwKLQkmKGx2YWx1ZXNbNDE3Nl0pLDB9LAorCSYobHZhbHVlc1s0MTcyXSksMH0sCiB7InNldGN0LUNyZWRSZXFUQkVYIiwic2V0Y3QtQ3JlZFJlcVRCRVgiLE5JRF9zZXRjdF9DcmVkUmVxVEJFWCw0LAotCSYobHZhbHVlc1s0MTgwXSksMH0sCisJJihsdmFsdWVzWzQxNzZdKSwwfSwKIHsic2V0Y3QtQ3JlZFJlc1RCRSIsInNldGN0LUNyZWRSZXNUQkUiLE5JRF9zZXRjdF9DcmVkUmVzVEJFLDQsCi0JJihsdmFsdWVzWzQxODRdKSwwfSwKKwkmKGx2YWx1ZXNbNDE4MF0pLDB9LAogeyJzZXRjdC1DcmVkUmV2UmVxVEJFIiwic2V0Y3QtQ3JlZFJldlJlcVRCRSIsTklEX3NldGN0X0NyZWRSZXZSZXFUQkUsCi0JNCwmKGx2YWx1ZXNbNDE4OF0pLDB9LAorCTQsJihsdmFsdWVzWzQxODRdKSwwfSwKIHsic2V0Y3QtQ3JlZFJldlJlcVRCRVgiLCJzZXRjdC1DcmVkUmV2UmVxVEJFWCIsCi0JTklEX3NldGN0X0NyZWRSZXZSZXFUQkVYLDQsJihsdmFsdWVzWzQxOTJdKSwwfSwKKwlOSURfc2V0Y3RfQ3JlZFJldlJlcVRCRVgsNCwmKGx2YWx1ZXNbNDE4OF0pLDB9LAogeyJzZXRjdC1DcmVkUmV2UmVzVEJFIiwic2V0Y3QtQ3JlZFJldlJlc1RCRSIsTklEX3NldGN0X0NyZWRSZXZSZXNUQkUsCi0JNCwmKGx2YWx1ZXNbNDE5Nl0pLDB9LAorCTQsJihsdmFsdWVzWzQxOTJdKSwwfSwKIHsic2V0Y3QtQmF0Y2hBZG1pblJlcVRCRSIsInNldGN0LUJhdGNoQWRtaW5SZXFUQkUiLAotCU5JRF9zZXRjdF9CYXRjaEFkbWluUmVxVEJFLDQsJihsdmFsdWVzWzQyMDBdKSwwfSwKKwlOSURfc2V0Y3RfQmF0Y2hBZG1pblJlcVRCRSw0LCYobHZhbHVlc1s0MTk2XSksMH0sCiB7InNldGN0LUJhdGNoQWRtaW5SZXNUQkUiLCJzZXRjdC1CYXRjaEFkbWluUmVzVEJFIiwKLQlOSURfc2V0Y3RfQmF0Y2hBZG1pblJlc1RCRSw0LCYobHZhbHVlc1s0MjA0XSksMH0sCisJTklEX3NldGN0X0JhdGNoQWRtaW5SZXNUQkUsNCwmKGx2YWx1ZXNbNDIwMF0pLDB9LAogeyJzZXRjdC1SZWdGb3JtUmVxVEJFIiwic2V0Y3QtUmVnRm9ybVJlcVRCRSIsTklEX3NldGN0X1JlZ0Zvcm1SZXFUQkUsCi0JNCwmKGx2YWx1ZXNbNDIwOF0pLDB9LAorCTQsJihsdmFsdWVzWzQyMDRdKSwwfSwKIHsic2V0Y3QtQ2VydFJlcVRCRSIsInNldGN0LUNlcnRSZXFUQkUiLE5JRF9zZXRjdF9DZXJ0UmVxVEJFLDQsCi0JJihsdmFsdWVzWzQyMTJdKSwwfSwKKwkmKGx2YWx1ZXNbNDIwOF0pLDB9LAogeyJzZXRjdC1DZXJ0UmVxVEJFWCIsInNldGN0LUNlcnRSZXFUQkVYIixOSURfc2V0Y3RfQ2VydFJlcVRCRVgsNCwKLQkmKGx2YWx1ZXNbNDIxNl0pLDB9LAorCSYobHZhbHVlc1s0MjEyXSksMH0sCiB7InNldGN0LUNlcnRSZXNUQkUiLCJzZXRjdC1DZXJ0UmVzVEJFIixOSURfc2V0Y3RfQ2VydFJlc1RCRSw0LAotCSYobHZhbHVlc1s0MjIwXSksMH0sCisJJihsdmFsdWVzWzQyMTZdKSwwfSwKIHsic2V0Y3QtQ1JMTm90aWZpY2F0aW9uVEJTIiwic2V0Y3QtQ1JMTm90aWZpY2F0aW9uVEJTIiwKLQlOSURfc2V0Y3RfQ1JMTm90aWZpY2F0aW9uVEJTLDQsJihsdmFsdWVzWzQyMjRdKSwwfSwKKwlOSURfc2V0Y3RfQ1JMTm90aWZpY2F0aW9uVEJTLDQsJihsdmFsdWVzWzQyMjBdKSwwfSwKIHsic2V0Y3QtQ1JMTm90aWZpY2F0aW9uUmVzVEJTIiwic2V0Y3QtQ1JMTm90aWZpY2F0aW9uUmVzVEJTIiwKLQlOSURfc2V0Y3RfQ1JMTm90aWZpY2F0aW9uUmVzVEJTLDQsJihsdmFsdWVzWzQyMjhdKSwwfSwKKwlOSURfc2V0Y3RfQ1JMTm90aWZpY2F0aW9uUmVzVEJTLDQsJihsdmFsdWVzWzQyMjRdKSwwfSwKIHsic2V0Y3QtQkNJRGlzdHJpYnV0aW9uVEJTIiwic2V0Y3QtQkNJRGlzdHJpYnV0aW9uVEJTIiwKLQlOSURfc2V0Y3RfQkNJRGlzdHJpYnV0aW9uVEJTLDQsJihsdmFsdWVzWzQyMzJdKSwwfSwKKwlOSURfc2V0Y3RfQkNJRGlzdHJpYnV0aW9uVEJTLDQsJihsdmFsdWVzWzQyMjhdKSwwfSwKIHsic2V0ZXh0LWdlbkNyeXB0IiwiZ2VuZXJpYyBjcnlwdG9ncmFtIixOSURfc2V0ZXh0X2dlbkNyeXB0LDQsCi0JJihsdmFsdWVzWzQyMzZdKSwwfSwKKwkmKGx2YWx1ZXNbNDIzMl0pLDB9LAogeyJzZXRleHQtbWlBdXRoIiwibWVyY2hhbnQgaW5pdGlhdGVkIGF1dGgiLE5JRF9zZXRleHRfbWlBdXRoLDQsCi0JJihsdmFsdWVzWzQyNDBdKSwwfSwKKwkmKGx2YWx1ZXNbNDIzNl0pLDB9LAogeyJzZXRleHQtcGluU2VjdXJlIiwic2V0ZXh0LXBpblNlY3VyZSIsTklEX3NldGV4dF9waW5TZWN1cmUsNCwKLQkmKGx2YWx1ZXNbNDI0NF0pLDB9LAoteyJzZXRleHQtcGluQW55Iiwic2V0ZXh0LXBpbkFueSIsTklEX3NldGV4dF9waW5BbnksNCwmKGx2YWx1ZXNbNDI0OF0pLDB9LAoteyJzZXRleHQtdHJhY2syIiwic2V0ZXh0LXRyYWNrMiIsTklEX3NldGV4dF90cmFjazIsNCwmKGx2YWx1ZXNbNDI1Ml0pLDB9LAorCSYobHZhbHVlc1s0MjQwXSksMH0sCit7InNldGV4dC1waW5BbnkiLCJzZXRleHQtcGluQW55IixOSURfc2V0ZXh0X3BpbkFueSw0LCYobHZhbHVlc1s0MjQ0XSksMH0sCit7InNldGV4dC10cmFjazIiLCJzZXRleHQtdHJhY2syIixOSURfc2V0ZXh0X3RyYWNrMiw0LCYobHZhbHVlc1s0MjQ4XSksMH0sCiB7InNldGV4dC1jdiIsImFkZGl0aW9uYWwgdmVyaWZpY2F0aW9uIixOSURfc2V0ZXh0X2N2LDQsCi0JJihsdmFsdWVzWzQyNTZdKSwwfSwKKwkmKGx2YWx1ZXNbNDI1Ml0pLDB9LAogeyJzZXQtcG9saWN5LXJvb3QiLCJzZXQtcG9saWN5LXJvb3QiLE5JRF9zZXRfcG9saWN5X3Jvb3QsNCwKLQkmKGx2YWx1ZXNbNDI2MF0pLDB9LAorCSYobHZhbHVlc1s0MjU2XSksMH0sCiB7InNldENleHQtaGFzaGVkUm9vdCIsInNldENleHQtaGFzaGVkUm9vdCIsTklEX3NldENleHRfaGFzaGVkUm9vdCw0LAotCSYobHZhbHVlc1s0MjY0XSksMH0sCisJJihsdmFsdWVzWzQyNjBdKSwwfSwKIHsic2V0Q2V4dC1jZXJ0VHlwZSIsInNldENleHQtY2VydFR5cGUiLE5JRF9zZXRDZXh0X2NlcnRUeXBlLDQsCi0JJihsdmFsdWVzWzQyNjhdKSwwfSwKKwkmKGx2YWx1ZXNbNDI2NF0pLDB9LAogeyJzZXRDZXh0LW1lcmNoRGF0YSIsInNldENleHQtbWVyY2hEYXRhIixOSURfc2V0Q2V4dF9tZXJjaERhdGEsNCwKLQkmKGx2YWx1ZXNbNDI3Ml0pLDB9LAorCSYobHZhbHVlc1s0MjY4XSksMH0sCiB7InNldENleHQtY0NlcnRSZXF1aXJlZCIsInNldENleHQtY0NlcnRSZXF1aXJlZCIsCi0JTklEX3NldENleHRfY0NlcnRSZXF1aXJlZCw0LCYobHZhbHVlc1s0Mjc2XSksMH0sCisJTklEX3NldENleHRfY0NlcnRSZXF1aXJlZCw0LCYobHZhbHVlc1s0MjcyXSksMH0sCiB7InNldENleHQtdHVubmVsaW5nIiwic2V0Q2V4dC10dW5uZWxpbmciLE5JRF9zZXRDZXh0X3R1bm5lbGluZyw0LAotCSYobHZhbHVlc1s0MjgwXSksMH0sCisJJihsdmFsdWVzWzQyNzZdKSwwfSwKIHsic2V0Q2V4dC1zZXRFeHQiLCJzZXRDZXh0LXNldEV4dCIsTklEX3NldENleHRfc2V0RXh0LDQsCi0JJihsdmFsdWVzWzQyODRdKSwwfSwKKwkmKGx2YWx1ZXNbNDI4MF0pLDB9LAogeyJzZXRDZXh0LXNldFF1YWxmIiwic2V0Q2V4dC1zZXRRdWFsZiIsTklEX3NldENleHRfc2V0UXVhbGYsNCwKLQkmKGx2YWx1ZXNbNDI4OF0pLDB9LAorCSYobHZhbHVlc1s0Mjg0XSksMH0sCiB7InNldENleHQtUEdXWWNhcGFiaWxpdGllcyIsInNldENleHQtUEdXWWNhcGFiaWxpdGllcyIsCi0JTklEX3NldENleHRfUEdXWWNhcGFiaWxpdGllcyw0LCYobHZhbHVlc1s0MjkyXSksMH0sCisJTklEX3NldENleHRfUEdXWWNhcGFiaWxpdGllcyw0LCYobHZhbHVlc1s0Mjg4XSksMH0sCiB7InNldENleHQtVG9rZW5JZGVudGlmaWVyIiwic2V0Q2V4dC1Ub2tlbklkZW50aWZpZXIiLAotCU5JRF9zZXRDZXh0X1Rva2VuSWRlbnRpZmllciw0LCYobHZhbHVlc1s0Mjk2XSksMH0sCisJTklEX3NldENleHRfVG9rZW5JZGVudGlmaWVyLDQsJihsdmFsdWVzWzQyOTJdKSwwfSwKIHsic2V0Q2V4dC1UcmFjazJEYXRhIiwic2V0Q2V4dC1UcmFjazJEYXRhIixOSURfc2V0Q2V4dF9UcmFjazJEYXRhLDQsCi0JJihsdmFsdWVzWzQzMDBdKSwwfSwKKwkmKGx2YWx1ZXNbNDI5Nl0pLDB9LAogeyJzZXRDZXh0LVRva2VuVHlwZSIsInNldENleHQtVG9rZW5UeXBlIixOSURfc2V0Q2V4dF9Ub2tlblR5cGUsNCwKLQkmKGx2YWx1ZXNbNDMwNF0pLDB9LAorCSYobHZhbHVlc1s0MzAwXSksMH0sCiB7InNldENleHQtSXNzdWVyQ2FwYWJpbGl0aWVzIiwic2V0Q2V4dC1Jc3N1ZXJDYXBhYmlsaXRpZXMiLAotCU5JRF9zZXRDZXh0X0lzc3VlckNhcGFiaWxpdGllcyw0LCYobHZhbHVlc1s0MzA4XSksMH0sCi17InNldEF0dHItQ2VydCIsInNldEF0dHItQ2VydCIsTklEX3NldEF0dHJfQ2VydCw0LCYobHZhbHVlc1s0MzEyXSksMH0sCisJTklEX3NldENleHRfSXNzdWVyQ2FwYWJpbGl0aWVzLDQsJihsdmFsdWVzWzQzMDRdKSwwfSwKK3sic2V0QXR0ci1DZXJ0Iiwic2V0QXR0ci1DZXJ0IixOSURfc2V0QXR0cl9DZXJ0LDQsJihsdmFsdWVzWzQzMDhdKSwwfSwKIHsic2V0QXR0ci1QR1dZY2FwIiwicGF5bWVudCBnYXRld2F5IGNhcGFiaWxpdGllcyIsTklEX3NldEF0dHJfUEdXWWNhcCwKLQk0LCYobHZhbHVlc1s0MzE2XSksMH0sCisJNCwmKGx2YWx1ZXNbNDMxMl0pLDB9LAogeyJzZXRBdHRyLVRva2VuVHlwZSIsInNldEF0dHItVG9rZW5UeXBlIixOSURfc2V0QXR0cl9Ub2tlblR5cGUsNCwKLQkmKGx2YWx1ZXNbNDMyMF0pLDB9LAorCSYobHZhbHVlc1s0MzE2XSksMH0sCiB7InNldEF0dHItSXNzQ2FwIiwiaXNzdWVyIGNhcGFiaWxpdGllcyIsTklEX3NldEF0dHJfSXNzQ2FwLDQsCi0JJihsdmFsdWVzWzQzMjRdKSwwfSwKKwkmKGx2YWx1ZXNbNDMyMF0pLDB9LAogeyJzZXQtcm9vdEtleVRodW1iIiwic2V0LXJvb3RLZXlUaHVtYiIsTklEX3NldF9yb290S2V5VGh1bWIsNSwKLQkmKGx2YWx1ZXNbNDMyOF0pLDB9LAoteyJzZXQtYWRkUG9saWN5Iiwic2V0LWFkZFBvbGljeSIsTklEX3NldF9hZGRQb2xpY3ksNSwmKGx2YWx1ZXNbNDMzM10pLDB9LAorCSYobHZhbHVlc1s0MzI0XSksMH0sCit7InNldC1hZGRQb2xpY3kiLCJzZXQtYWRkUG9saWN5IixOSURfc2V0X2FkZFBvbGljeSw1LCYobHZhbHVlc1s0MzI5XSksMH0sCiB7InNldEF0dHItVG9rZW4tRU1WIiwic2V0QXR0ci1Ub2tlbi1FTVYiLE5JRF9zZXRBdHRyX1Rva2VuX0VNViw1LAotCSYobHZhbHVlc1s0MzM4XSksMH0sCisJJihsdmFsdWVzWzQzMzRdKSwwfSwKIHsic2V0QXR0ci1Ub2tlbi1CMFByaW1lIiwic2V0QXR0ci1Ub2tlbi1CMFByaW1lIiwKLQlOSURfc2V0QXR0cl9Ub2tlbl9CMFByaW1lLDUsJihsdmFsdWVzWzQzNDNdKSwwfSwKKwlOSURfc2V0QXR0cl9Ub2tlbl9CMFByaW1lLDUsJihsdmFsdWVzWzQzMzldKSwwfSwKIHsic2V0QXR0ci1Jc3NDYXAtQ1ZNIiwic2V0QXR0ci1Jc3NDYXAtQ1ZNIixOSURfc2V0QXR0cl9Jc3NDYXBfQ1ZNLDUsCi0JJihsdmFsdWVzWzQzNDhdKSwwfSwKKwkmKGx2YWx1ZXNbNDM0NF0pLDB9LAogeyJzZXRBdHRyLUlzc0NhcC1UMiIsInNldEF0dHItSXNzQ2FwLVQyIixOSURfc2V0QXR0cl9Jc3NDYXBfVDIsNSwKLQkmKGx2YWx1ZXNbNDM1M10pLDB9LAorCSYobHZhbHVlc1s0MzQ5XSksMH0sCiB7InNldEF0dHItSXNzQ2FwLVNpZyIsInNldEF0dHItSXNzQ2FwLVNpZyIsTklEX3NldEF0dHJfSXNzQ2FwX1NpZyw1LAotCSYobHZhbHVlc1s0MzU4XSksMH0sCisJJihsdmFsdWVzWzQzNTRdKSwwfSwKIHsic2V0QXR0ci1HZW5DcnlwdGdybSIsImdlbmVyYXRlIGNyeXB0b2dyYW0iLE5JRF9zZXRBdHRyX0dlbkNyeXB0Z3JtLAotCTYsJihsdmFsdWVzWzQzNjNdKSwwfSwKKwk2LCYobHZhbHVlc1s0MzU5XSksMH0sCiB7InNldEF0dHItVDJFbmMiLCJlbmNyeXB0ZWQgdHJhY2sgMiIsTklEX3NldEF0dHJfVDJFbmMsNiwKLQkmKGx2YWx1ZXNbNDM2OV0pLDB9LAorCSYobHZhbHVlc1s0MzY1XSksMH0sCiB7InNldEF0dHItVDJjbGVhcnR4dCIsImNsZWFydGV4dCB0cmFjayAyIixOSURfc2V0QXR0cl9UMmNsZWFydHh0LDYsCi0JJihsdmFsdWVzWzQzNzVdKSwwfSwKKwkmKGx2YWx1ZXNbNDM3MV0pLDB9LAogeyJzZXRBdHRyLVRva0lDQ3NpZyIsIklDQyBvciB0b2tlbiBzaWduYXR1cmUiLE5JRF9zZXRBdHRyX1Rva0lDQ3NpZyw2LAotCSYobHZhbHVlc1s0MzgxXSksMH0sCisJJihsdmFsdWVzWzQzNzddKSwwfSwKIHsic2V0QXR0ci1TZWNEZXZTaWciLCJzZWN1cmUgZGV2aWNlIHNpZ25hdHVyZSIsTklEX3NldEF0dHJfU2VjRGV2U2lnLAotCTYsJihsdmFsdWVzWzQzODddKSwwfSwKKwk2LCYobHZhbHVlc1s0MzgzXSksMH0sCiB7InNldC1icmFuZC1JQVRBLUFUQSIsInNldC1icmFuZC1JQVRBLUFUQSIsTklEX3NldF9icmFuZF9JQVRBX0FUQSw0LAotCSYobHZhbHVlc1s0MzkzXSksMH0sCisJJihsdmFsdWVzWzQzODldKSwwfSwKIHsic2V0LWJyYW5kLURpbmVycyIsInNldC1icmFuZC1EaW5lcnMiLE5JRF9zZXRfYnJhbmRfRGluZXJzLDQsCi0JJihsdmFsdWVzWzQzOTddKSwwfSwKKwkmKGx2YWx1ZXNbNDM5M10pLDB9LAogeyJzZXQtYnJhbmQtQW1lcmljYW5FeHByZXNzIiwic2V0LWJyYW5kLUFtZXJpY2FuRXhwcmVzcyIsCi0JTklEX3NldF9icmFuZF9BbWVyaWNhbkV4cHJlc3MsNCwmKGx2YWx1ZXNbNDQwMV0pLDB9LAoteyJzZXQtYnJhbmQtSkNCIiwic2V0LWJyYW5kLUpDQiIsTklEX3NldF9icmFuZF9KQ0IsNCwmKGx2YWx1ZXNbNDQwNV0pLDB9LAorCU5JRF9zZXRfYnJhbmRfQW1lcmljYW5FeHByZXNzLDQsJihsdmFsdWVzWzQzOTddKSwwfSwKK3sic2V0LWJyYW5kLUpDQiIsInNldC1icmFuZC1KQ0IiLE5JRF9zZXRfYnJhbmRfSkNCLDQsJihsdmFsdWVzWzQ0MDFdKSwwfSwKIHsic2V0LWJyYW5kLVZpc2EiLCJzZXQtYnJhbmQtVmlzYSIsTklEX3NldF9icmFuZF9WaXNhLDQsCi0JJihsdmFsdWVzWzQ0MDldKSwwfSwKKwkmKGx2YWx1ZXNbNDQwNV0pLDB9LAogeyJzZXQtYnJhbmQtTWFzdGVyQ2FyZCIsInNldC1icmFuZC1NYXN0ZXJDYXJkIiwKLQlOSURfc2V0X2JyYW5kX01hc3RlckNhcmQsNCwmKGx2YWx1ZXNbNDQxM10pLDB9LAorCU5JRF9zZXRfYnJhbmRfTWFzdGVyQ2FyZCw0LCYobHZhbHVlc1s0NDA5XSksMH0sCiB7InNldC1icmFuZC1Ob3Z1cyIsInNldC1icmFuZC1Ob3Z1cyIsTklEX3NldF9icmFuZF9Ob3Z1cyw1LAotCSYobHZhbHVlc1s0NDE3XSksMH0sCi17IkRFUy1DRE1GIiwiZGVzLWNkbWYiLE5JRF9kZXNfY2RtZiw4LCYobHZhbHVlc1s0NDIyXSksMH0sCisJJihsdmFsdWVzWzQ0MTNdKSwwfSwKK3siREVTLUNETUYiLCJkZXMtY2RtZiIsTklEX2Rlc19jZG1mLDgsJihsdmFsdWVzWzQ0MThdKSwwfSwKIHsicnNhT0FFUEVuY3J5cHRpb25TRVQiLCJyc2FPQUVQRW5jcnlwdGlvblNFVCIsCi0JTklEX3JzYU9BRVBFbmNyeXB0aW9uU0VULDksJihsdmFsdWVzWzQ0MzBdKSwwfSwKLXsiSVRVLVQiLCJpdHUtdCIsTklEX2l0dV90LDEsJihsdmFsdWVzWzQ0MzldKSwwfSwKLXsiSk9JTlQtSVNPLUlUVS1UIiwiam9pbnQtaXNvLWl0dS10IixOSURfam9pbnRfaXNvX2l0dV90LDEsCi0JJihsdmFsdWVzWzQ0NDBdKSwwfSwKKwlOSURfcnNhT0FFUEVuY3J5cHRpb25TRVQsOSwmKGx2YWx1ZXNbNDQyNl0pLDB9LAoreyJJVFUtVCIsIml0dS10IixOSURfaXR1X3QsMCxOVUxMLDB9LAoreyJKT0lOVC1JU08tSVRVLVQiLCJqb2ludC1pc28taXR1LXQiLE5JRF9qb2ludF9pc29faXR1X3QsMCxOVUxMLDB9LAogeyJpbnRlcm5hdGlvbmFsLW9yZ2FuaXphdGlvbnMiLCJJbnRlcm5hdGlvbmFsIE9yZ2FuaXphdGlvbnMiLAotCU5JRF9pbnRlcm5hdGlvbmFsX29yZ2FuaXphdGlvbnMsMSwmKGx2YWx1ZXNbNDQ0MV0pLDB9LAorCU5JRF9pbnRlcm5hdGlvbmFsX29yZ2FuaXphdGlvbnMsMSwmKGx2YWx1ZXNbNDQzNV0pLDB9LAogeyJtc1NtYXJ0Y2FyZExvZ2luIiwiTWljcm9zb2Z0IFNtYXJ0Y2FyZGxvZ2luIixOSURfbXNfc21hcnRjYXJkX2xvZ2luLAotCTEwLCYobHZhbHVlc1s0NDQyXSksMH0sCisJMTAsJihsdmFsdWVzWzQ0MzZdKSwwfSwKIHsibXNVUE4iLCJNaWNyb3NvZnQgVW5pdmVyc2FsIFByaW5jaXBhbCBOYW1lIixOSURfbXNfdXBuLDEwLAotCSYobHZhbHVlc1s0NDUyXSksMH0sCisJJihsdmFsdWVzWzQ0NDZdKSwwfSwKIHsiQUVTLTEyOC1DRkIxIiwiYWVzLTEyOC1jZmIxIixOSURfYWVzXzEyOF9jZmIxLDAsTlVMTCwwfSwKIHsiQUVTLTE5Mi1DRkIxIiwiYWVzLTE5Mi1jZmIxIixOSURfYWVzXzE5Ml9jZmIxLDAsTlVMTCwwfSwKIHsiQUVTLTI1Ni1DRkIxIiwiYWVzLTI1Ni1jZmIxIixOSURfYWVzXzI1Nl9jZmIxLDAsTlVMTCwwfSwKQEAgLTE5NzksMTM4ICsxOTcyLDEzOCBAQAogeyJERVMtQ0ZCOCIsImRlcy1jZmI4IixOSURfZGVzX2NmYjgsMCxOVUxMLDB9LAogeyJERVMtRURFMy1DRkIxIiwiZGVzLWVkZTMtY2ZiMSIsTklEX2Rlc19lZGUzX2NmYjEsMCxOVUxMLDB9LAogeyJERVMtRURFMy1DRkI4IiwiZGVzLWVkZTMtY2ZiOCIsTklEX2Rlc19lZGUzX2NmYjgsMCxOVUxMLDB9LAoteyJzdHJlZXQiLCJzdHJlZXRBZGRyZXNzIixOSURfc3RyZWV0QWRkcmVzcywzLCYobHZhbHVlc1s0NDYyXSksMH0sCi17InBvc3RhbENvZGUiLCJwb3N0YWxDb2RlIixOSURfcG9zdGFsQ29kZSwzLCYobHZhbHVlc1s0NDY1XSksMH0sCi17ImlkLXBwbCIsImlkLXBwbCIsTklEX2lkX3BwbCw3LCYobHZhbHVlc1s0NDY4XSksMH0sCit7InN0cmVldCIsInN0cmVldEFkZHJlc3MiLE5JRF9zdHJlZXRBZGRyZXNzLDMsJihsdmFsdWVzWzQ0NTZdKSwwfSwKK3sicG9zdGFsQ29kZSIsInBvc3RhbENvZGUiLE5JRF9wb3N0YWxDb2RlLDMsJihsdmFsdWVzWzQ0NTldKSwwfSwKK3siaWQtcHBsIiwiaWQtcHBsIixOSURfaWRfcHBsLDcsJihsdmFsdWVzWzQ0NjJdKSwwfSwKIHsicHJveHlDZXJ0SW5mbyIsIlByb3h5IENlcnRpZmljYXRlIEluZm9ybWF0aW9uIixOSURfcHJveHlDZXJ0SW5mbyw4LAotCSYobHZhbHVlc1s0NDc1XSksMH0sCisJJihsdmFsdWVzWzQ0NjldKSwwfSwKIHsiaWQtcHBsLWFueUxhbmd1YWdlIiwiQW55IGxhbmd1YWdlIixOSURfaWRfcHBsX2FueUxhbmd1YWdlLDgsCi0JJihsdmFsdWVzWzQ0ODNdKSwwfSwKKwkmKGx2YWx1ZXNbNDQ3N10pLDB9LAogeyJpZC1wcGwtaW5oZXJpdEFsbCIsIkluaGVyaXQgYWxsIixOSURfaWRfcHBsX2luaGVyaXRBbGwsOCwKLQkmKGx2YWx1ZXNbNDQ5MV0pLDB9LAorCSYobHZhbHVlc1s0NDg1XSksMH0sCiB7Im5hbWVDb25zdHJhaW50cyIsIlg1MDl2MyBOYW1lIENvbnN0cmFpbnRzIixOSURfbmFtZV9jb25zdHJhaW50cywzLAotCSYobHZhbHVlc1s0NDk5XSksMH0sCi17ImlkLXBwbC1pbmRlcGVuZGVudCIsIkluZGVwZW5kZW50IixOSURfSW5kZXBlbmRlbnQsOCwmKGx2YWx1ZXNbNDUwMl0pLDB9LAorCSYobHZhbHVlc1s0NDkzXSksMH0sCit7ImlkLXBwbC1pbmRlcGVuZGVudCIsIkluZGVwZW5kZW50IixOSURfSW5kZXBlbmRlbnQsOCwmKGx2YWx1ZXNbNDQ5Nl0pLDB9LAogeyJSU0EtU0hBMjU2Iiwic2hhMjU2V2l0aFJTQUVuY3J5cHRpb24iLE5JRF9zaGEyNTZXaXRoUlNBRW5jcnlwdGlvbiw5LAotCSYobHZhbHVlc1s0NTEwXSksMH0sCisJJihsdmFsdWVzWzQ1MDRdKSwwfSwKIHsiUlNBLVNIQTM4NCIsInNoYTM4NFdpdGhSU0FFbmNyeXB0aW9uIixOSURfc2hhMzg0V2l0aFJTQUVuY3J5cHRpb24sOSwKLQkmKGx2YWx1ZXNbNDUxOV0pLDB9LAorCSYobHZhbHVlc1s0NTEzXSksMH0sCiB7IlJTQS1TSEE1MTIiLCJzaGE1MTJXaXRoUlNBRW5jcnlwdGlvbiIsTklEX3NoYTUxMldpdGhSU0FFbmNyeXB0aW9uLDksCi0JJihsdmFsdWVzWzQ1MjhdKSwwfSwKKwkmKGx2YWx1ZXNbNDUyMl0pLDB9LAogeyJSU0EtU0hBMjI0Iiwic2hhMjI0V2l0aFJTQUVuY3J5cHRpb24iLE5JRF9zaGEyMjRXaXRoUlNBRW5jcnlwdGlvbiw5LAotCSYobHZhbHVlc1s0NTM3XSksMH0sCi17IlNIQTI1NiIsInNoYTI1NiIsTklEX3NoYTI1Niw5LCYobHZhbHVlc1s0NTQ2XSksMH0sCi17IlNIQTM4NCIsInNoYTM4NCIsTklEX3NoYTM4NCw5LCYobHZhbHVlc1s0NTU1XSksMH0sCi17IlNIQTUxMiIsInNoYTUxMiIsTklEX3NoYTUxMiw5LCYobHZhbHVlc1s0NTY0XSksMH0sCi17IlNIQTIyNCIsInNoYTIyNCIsTklEX3NoYTIyNCw5LCYobHZhbHVlc1s0NTczXSksMH0sCisJJihsdmFsdWVzWzQ1MzFdKSwwfSwKK3siU0hBMjU2Iiwic2hhMjU2IixOSURfc2hhMjU2LDksJihsdmFsdWVzWzQ1NDBdKSwwfSwKK3siU0hBMzg0Iiwic2hhMzg0IixOSURfc2hhMzg0LDksJihsdmFsdWVzWzQ1NDldKSwwfSwKK3siU0hBNTEyIiwic2hhNTEyIixOSURfc2hhNTEyLDksJihsdmFsdWVzWzQ1NThdKSwwfSwKK3siU0hBMjI0Iiwic2hhMjI0IixOSURfc2hhMjI0LDksJihsdmFsdWVzWzQ1NjddKSwwfSwKIHsiaWRlbnRpZmllZC1vcmdhbml6YXRpb24iLCJpZGVudGlmaWVkLW9yZ2FuaXphdGlvbiIsCi0JTklEX2lkZW50aWZpZWRfb3JnYW5pemF0aW9uLDEsJihsdmFsdWVzWzQ1ODJdKSwwfSwKLXsiY2VydGljb20tYXJjIiwiY2VydGljb20tYXJjIixOSURfY2VydGljb21fYXJjLDMsJihsdmFsdWVzWzQ1ODNdKSwwfSwKLXsid2FwIiwid2FwIixOSURfd2FwLDIsJihsdmFsdWVzWzQ1ODZdKSwwfSwKLXsid2FwLXdzZyIsIndhcC13c2ciLE5JRF93YXBfd3NnLDMsJihsdmFsdWVzWzQ1ODhdKSwwfSwKKwlOSURfaWRlbnRpZmllZF9vcmdhbml6YXRpb24sMSwmKGx2YWx1ZXNbNDU3Nl0pLDB9LAoreyJjZXJ0aWNvbS1hcmMiLCJjZXJ0aWNvbS1hcmMiLE5JRF9jZXJ0aWNvbV9hcmMsMywmKGx2YWx1ZXNbNDU3N10pLDB9LAoreyJ3YXAiLCJ3YXAiLE5JRF93YXAsMiwmKGx2YWx1ZXNbNDU4MF0pLDB9LAoreyJ3YXAtd3NnIiwid2FwLXdzZyIsTklEX3dhcF93c2csMywmKGx2YWx1ZXNbNDU4Ml0pLDB9LAogeyJpZC1jaGFyYWN0ZXJpc3RpYy10d28tYmFzaXMiLCJpZC1jaGFyYWN0ZXJpc3RpYy10d28tYmFzaXMiLAotCU5JRF9YOV82Ml9pZF9jaGFyYWN0ZXJpc3RpY190d29fYmFzaXMsOCwmKGx2YWx1ZXNbNDU5MV0pLDB9LAoteyJvbkJhc2lzIiwib25CYXNpcyIsTklEX1g5XzYyX29uQmFzaXMsOSwmKGx2YWx1ZXNbNDU5OV0pLDB9LAoteyJ0cEJhc2lzIiwidHBCYXNpcyIsTklEX1g5XzYyX3RwQmFzaXMsOSwmKGx2YWx1ZXNbNDYwOF0pLDB9LAoteyJwcEJhc2lzIiwicHBCYXNpcyIsTklEX1g5XzYyX3BwQmFzaXMsOSwmKGx2YWx1ZXNbNDYxN10pLDB9LAoteyJjMnBuYjE2M3YxIiwiYzJwbmIxNjN2MSIsTklEX1g5XzYyX2MycG5iMTYzdjEsOCwmKGx2YWx1ZXNbNDYyNl0pLDB9LAoteyJjMnBuYjE2M3YyIiwiYzJwbmIxNjN2MiIsTklEX1g5XzYyX2MycG5iMTYzdjIsOCwmKGx2YWx1ZXNbNDYzNF0pLDB9LAoteyJjMnBuYjE2M3YzIiwiYzJwbmIxNjN2MyIsTklEX1g5XzYyX2MycG5iMTYzdjMsOCwmKGx2YWx1ZXNbNDY0Ml0pLDB9LAoteyJjMnBuYjE3NnYxIiwiYzJwbmIxNzZ2MSIsTklEX1g5XzYyX2MycG5iMTc2djEsOCwmKGx2YWx1ZXNbNDY1MF0pLDB9LAoteyJjMnRuYjE5MXYxIiwiYzJ0bmIxOTF2MSIsTklEX1g5XzYyX2MydG5iMTkxdjEsOCwmKGx2YWx1ZXNbNDY1OF0pLDB9LAoteyJjMnRuYjE5MXYyIiwiYzJ0bmIxOTF2MiIsTklEX1g5XzYyX2MydG5iMTkxdjIsOCwmKGx2YWx1ZXNbNDY2Nl0pLDB9LAoteyJjMnRuYjE5MXYzIiwiYzJ0bmIxOTF2MyIsTklEX1g5XzYyX2MydG5iMTkxdjMsOCwmKGx2YWx1ZXNbNDY3NF0pLDB9LAoteyJjMm9uYjE5MXY0IiwiYzJvbmIxOTF2NCIsTklEX1g5XzYyX2Myb25iMTkxdjQsOCwmKGx2YWx1ZXNbNDY4Ml0pLDB9LAoteyJjMm9uYjE5MXY1IiwiYzJvbmIxOTF2NSIsTklEX1g5XzYyX2Myb25iMTkxdjUsOCwmKGx2YWx1ZXNbNDY5MF0pLDB9LAoteyJjMnBuYjIwOHcxIiwiYzJwbmIyMDh3MSIsTklEX1g5XzYyX2MycG5iMjA4dzEsOCwmKGx2YWx1ZXNbNDY5OF0pLDB9LAoteyJjMnRuYjIzOXYxIiwiYzJ0bmIyMzl2MSIsTklEX1g5XzYyX2MydG5iMjM5djEsOCwmKGx2YWx1ZXNbNDcwNl0pLDB9LAoteyJjMnRuYjIzOXYyIiwiYzJ0bmIyMzl2MiIsTklEX1g5XzYyX2MydG5iMjM5djIsOCwmKGx2YWx1ZXNbNDcxNF0pLDB9LAoteyJjMnRuYjIzOXYzIiwiYzJ0bmIyMzl2MyIsTklEX1g5XzYyX2MydG5iMjM5djMsOCwmKGx2YWx1ZXNbNDcyMl0pLDB9LAoteyJjMm9uYjIzOXY0IiwiYzJvbmIyMzl2NCIsTklEX1g5XzYyX2Myb25iMjM5djQsOCwmKGx2YWx1ZXNbNDczMF0pLDB9LAoteyJjMm9uYjIzOXY1IiwiYzJvbmIyMzl2NSIsTklEX1g5XzYyX2Myb25iMjM5djUsOCwmKGx2YWx1ZXNbNDczOF0pLDB9LAoteyJjMnBuYjI3MncxIiwiYzJwbmIyNzJ3MSIsTklEX1g5XzYyX2MycG5iMjcydzEsOCwmKGx2YWx1ZXNbNDc0Nl0pLDB9LAoteyJjMnBuYjMwNHcxIiwiYzJwbmIzMDR3MSIsTklEX1g5XzYyX2MycG5iMzA0dzEsOCwmKGx2YWx1ZXNbNDc1NF0pLDB9LAoteyJjMnRuYjM1OXYxIiwiYzJ0bmIzNTl2MSIsTklEX1g5XzYyX2MydG5iMzU5djEsOCwmKGx2YWx1ZXNbNDc2Ml0pLDB9LAoteyJjMnBuYjM2OHcxIiwiYzJwbmIzNjh3MSIsTklEX1g5XzYyX2MycG5iMzY4dzEsOCwmKGx2YWx1ZXNbNDc3MF0pLDB9LAoteyJjMnRuYjQzMXIxIiwiYzJ0bmI0MzFyMSIsTklEX1g5XzYyX2MydG5iNDMxcjEsOCwmKGx2YWx1ZXNbNDc3OF0pLDB9LAoteyJzZWNwMTEycjEiLCJzZWNwMTEycjEiLE5JRF9zZWNwMTEycjEsNSwmKGx2YWx1ZXNbNDc4Nl0pLDB9LAoteyJzZWNwMTEycjIiLCJzZWNwMTEycjIiLE5JRF9zZWNwMTEycjIsNSwmKGx2YWx1ZXNbNDc5MV0pLDB9LAoteyJzZWNwMTI4cjEiLCJzZWNwMTI4cjEiLE5JRF9zZWNwMTI4cjEsNSwmKGx2YWx1ZXNbNDc5Nl0pLDB9LAoteyJzZWNwMTI4cjIiLCJzZWNwMTI4cjIiLE5JRF9zZWNwMTI4cjIsNSwmKGx2YWx1ZXNbNDgwMV0pLDB9LAoteyJzZWNwMTYwazEiLCJzZWNwMTYwazEiLE5JRF9zZWNwMTYwazEsNSwmKGx2YWx1ZXNbNDgwNl0pLDB9LAoteyJzZWNwMTYwcjEiLCJzZWNwMTYwcjEiLE5JRF9zZWNwMTYwcjEsNSwmKGx2YWx1ZXNbNDgxMV0pLDB9LAoteyJzZWNwMTYwcjIiLCJzZWNwMTYwcjIiLE5JRF9zZWNwMTYwcjIsNSwmKGx2YWx1ZXNbNDgxNl0pLDB9LAoteyJzZWNwMTkyazEiLCJzZWNwMTkyazEiLE5JRF9zZWNwMTkyazEsNSwmKGx2YWx1ZXNbNDgyMV0pLDB9LAoteyJzZWNwMjI0azEiLCJzZWNwMjI0azEiLE5JRF9zZWNwMjI0azEsNSwmKGx2YWx1ZXNbNDgyNl0pLDB9LAoteyJzZWNwMjI0cjEiLCJzZWNwMjI0cjEiLE5JRF9zZWNwMjI0cjEsNSwmKGx2YWx1ZXNbNDgzMV0pLDB9LAoteyJzZWNwMjU2azEiLCJzZWNwMjU2azEiLE5JRF9zZWNwMjU2azEsNSwmKGx2YWx1ZXNbNDgzNl0pLDB9LAoteyJzZWNwMzg0cjEiLCJzZWNwMzg0cjEiLE5JRF9zZWNwMzg0cjEsNSwmKGx2YWx1ZXNbNDg0MV0pLDB9LAoteyJzZWNwNTIxcjEiLCJzZWNwNTIxcjEiLE5JRF9zZWNwNTIxcjEsNSwmKGx2YWx1ZXNbNDg0Nl0pLDB9LAoteyJzZWN0MTEzcjEiLCJzZWN0MTEzcjEiLE5JRF9zZWN0MTEzcjEsNSwmKGx2YWx1ZXNbNDg1MV0pLDB9LAoteyJzZWN0MTEzcjIiLCJzZWN0MTEzcjIiLE5JRF9zZWN0MTEzcjIsNSwmKGx2YWx1ZXNbNDg1Nl0pLDB9LAoteyJzZWN0MTMxcjEiLCJzZWN0MTMxcjEiLE5JRF9zZWN0MTMxcjEsNSwmKGx2YWx1ZXNbNDg2MV0pLDB9LAoteyJzZWN0MTMxcjIiLCJzZWN0MTMxcjIiLE5JRF9zZWN0MTMxcjIsNSwmKGx2YWx1ZXNbNDg2Nl0pLDB9LAoteyJzZWN0MTYzazEiLCJzZWN0MTYzazEiLE5JRF9zZWN0MTYzazEsNSwmKGx2YWx1ZXNbNDg3MV0pLDB9LAoteyJzZWN0MTYzcjEiLCJzZWN0MTYzcjEiLE5JRF9zZWN0MTYzcjEsNSwmKGx2YWx1ZXNbNDg3Nl0pLDB9LAoteyJzZWN0MTYzcjIiLCJzZWN0MTYzcjIiLE5JRF9zZWN0MTYzcjIsNSwmKGx2YWx1ZXNbNDg4MV0pLDB9LAoteyJzZWN0MTkzcjEiLCJzZWN0MTkzcjEiLE5JRF9zZWN0MTkzcjEsNSwmKGx2YWx1ZXNbNDg4Nl0pLDB9LAoteyJzZWN0MTkzcjIiLCJzZWN0MTkzcjIiLE5JRF9zZWN0MTkzcjIsNSwmKGx2YWx1ZXNbNDg5MV0pLDB9LAoteyJzZWN0MjMzazEiLCJzZWN0MjMzazEiLE5JRF9zZWN0MjMzazEsNSwmKGx2YWx1ZXNbNDg5Nl0pLDB9LAoteyJzZWN0MjMzcjEiLCJzZWN0MjMzcjEiLE5JRF9zZWN0MjMzcjEsNSwmKGx2YWx1ZXNbNDkwMV0pLDB9LAoteyJzZWN0MjM5azEiLCJzZWN0MjM5azEiLE5JRF9zZWN0MjM5azEsNSwmKGx2YWx1ZXNbNDkwNl0pLDB9LAoteyJzZWN0MjgzazEiLCJzZWN0MjgzazEiLE5JRF9zZWN0MjgzazEsNSwmKGx2YWx1ZXNbNDkxMV0pLDB9LAoteyJzZWN0MjgzcjEiLCJzZWN0MjgzcjEiLE5JRF9zZWN0MjgzcjEsNSwmKGx2YWx1ZXNbNDkxNl0pLDB9LAoteyJzZWN0NDA5azEiLCJzZWN0NDA5azEiLE5JRF9zZWN0NDA5azEsNSwmKGx2YWx1ZXNbNDkyMV0pLDB9LAoteyJzZWN0NDA5cjEiLCJzZWN0NDA5cjEiLE5JRF9zZWN0NDA5cjEsNSwmKGx2YWx1ZXNbNDkyNl0pLDB9LAoteyJzZWN0NTcxazEiLCJzZWN0NTcxazEiLE5JRF9zZWN0NTcxazEsNSwmKGx2YWx1ZXNbNDkzMV0pLDB9LAoteyJzZWN0NTcxcjEiLCJzZWN0NTcxcjEiLE5JRF9zZWN0NTcxcjEsNSwmKGx2YWx1ZXNbNDkzNl0pLDB9LAorCU5JRF9YOV82Ml9pZF9jaGFyYWN0ZXJpc3RpY190d29fYmFzaXMsOCwmKGx2YWx1ZXNbNDU4NV0pLDB9LAoreyJvbkJhc2lzIiwib25CYXNpcyIsTklEX1g5XzYyX29uQmFzaXMsOSwmKGx2YWx1ZXNbNDU5M10pLDB9LAoreyJ0cEJhc2lzIiwidHBCYXNpcyIsTklEX1g5XzYyX3RwQmFzaXMsOSwmKGx2YWx1ZXNbNDYwMl0pLDB9LAoreyJwcEJhc2lzIiwicHBCYXNpcyIsTklEX1g5XzYyX3BwQmFzaXMsOSwmKGx2YWx1ZXNbNDYxMV0pLDB9LAoreyJjMnBuYjE2M3YxIiwiYzJwbmIxNjN2MSIsTklEX1g5XzYyX2MycG5iMTYzdjEsOCwmKGx2YWx1ZXNbNDYyMF0pLDB9LAoreyJjMnBuYjE2M3YyIiwiYzJwbmIxNjN2MiIsTklEX1g5XzYyX2MycG5iMTYzdjIsOCwmKGx2YWx1ZXNbNDYyOF0pLDB9LAoreyJjMnBuYjE2M3YzIiwiYzJwbmIxNjN2MyIsTklEX1g5XzYyX2MycG5iMTYzdjMsOCwmKGx2YWx1ZXNbNDYzNl0pLDB9LAoreyJjMnBuYjE3NnYxIiwiYzJwbmIxNzZ2MSIsTklEX1g5XzYyX2MycG5iMTc2djEsOCwmKGx2YWx1ZXNbNDY0NF0pLDB9LAoreyJjMnRuYjE5MXYxIiwiYzJ0bmIxOTF2MSIsTklEX1g5XzYyX2MydG5iMTkxdjEsOCwmKGx2YWx1ZXNbNDY1Ml0pLDB9LAoreyJjMnRuYjE5MXYyIiwiYzJ0bmIxOTF2MiIsTklEX1g5XzYyX2MydG5iMTkxdjIsOCwmKGx2YWx1ZXNbNDY2MF0pLDB9LAoreyJjMnRuYjE5MXYzIiwiYzJ0bmIxOTF2MyIsTklEX1g5XzYyX2MydG5iMTkxdjMsOCwmKGx2YWx1ZXNbNDY2OF0pLDB9LAoreyJjMm9uYjE5MXY0IiwiYzJvbmIxOTF2NCIsTklEX1g5XzYyX2Myb25iMTkxdjQsOCwmKGx2YWx1ZXNbNDY3Nl0pLDB9LAoreyJjMm9uYjE5MXY1IiwiYzJvbmIxOTF2NSIsTklEX1g5XzYyX2Myb25iMTkxdjUsOCwmKGx2YWx1ZXNbNDY4NF0pLDB9LAoreyJjMnBuYjIwOHcxIiwiYzJwbmIyMDh3MSIsTklEX1g5XzYyX2MycG5iMjA4dzEsOCwmKGx2YWx1ZXNbNDY5Ml0pLDB9LAoreyJjMnRuYjIzOXYxIiwiYzJ0bmIyMzl2MSIsTklEX1g5XzYyX2MydG5iMjM5djEsOCwmKGx2YWx1ZXNbNDcwMF0pLDB9LAoreyJjMnRuYjIzOXYyIiwiYzJ0bmIyMzl2MiIsTklEX1g5XzYyX2MydG5iMjM5djIsOCwmKGx2YWx1ZXNbNDcwOF0pLDB9LAoreyJjMnRuYjIzOXYzIiwiYzJ0bmIyMzl2MyIsTklEX1g5XzYyX2MydG5iMjM5djMsOCwmKGx2YWx1ZXNbNDcxNl0pLDB9LAoreyJjMm9uYjIzOXY0IiwiYzJvbmIyMzl2NCIsTklEX1g5XzYyX2Myb25iMjM5djQsOCwmKGx2YWx1ZXNbNDcyNF0pLDB9LAoreyJjMm9uYjIzOXY1IiwiYzJvbmIyMzl2NSIsTklEX1g5XzYyX2Myb25iMjM5djUsOCwmKGx2YWx1ZXNbNDczMl0pLDB9LAoreyJjMnBuYjI3MncxIiwiYzJwbmIyNzJ3MSIsTklEX1g5XzYyX2MycG5iMjcydzEsOCwmKGx2YWx1ZXNbNDc0MF0pLDB9LAoreyJjMnBuYjMwNHcxIiwiYzJwbmIzMDR3MSIsTklEX1g5XzYyX2MycG5iMzA0dzEsOCwmKGx2YWx1ZXNbNDc0OF0pLDB9LAoreyJjMnRuYjM1OXYxIiwiYzJ0bmIzNTl2MSIsTklEX1g5XzYyX2MydG5iMzU5djEsOCwmKGx2YWx1ZXNbNDc1Nl0pLDB9LAoreyJjMnBuYjM2OHcxIiwiYzJwbmIzNjh3MSIsTklEX1g5XzYyX2MycG5iMzY4dzEsOCwmKGx2YWx1ZXNbNDc2NF0pLDB9LAoreyJjMnRuYjQzMXIxIiwiYzJ0bmI0MzFyMSIsTklEX1g5XzYyX2MydG5iNDMxcjEsOCwmKGx2YWx1ZXNbNDc3Ml0pLDB9LAoreyJzZWNwMTEycjEiLCJzZWNwMTEycjEiLE5JRF9zZWNwMTEycjEsNSwmKGx2YWx1ZXNbNDc4MF0pLDB9LAoreyJzZWNwMTEycjIiLCJzZWNwMTEycjIiLE5JRF9zZWNwMTEycjIsNSwmKGx2YWx1ZXNbNDc4NV0pLDB9LAoreyJzZWNwMTI4cjEiLCJzZWNwMTI4cjEiLE5JRF9zZWNwMTI4cjEsNSwmKGx2YWx1ZXNbNDc5MF0pLDB9LAoreyJzZWNwMTI4cjIiLCJzZWNwMTI4cjIiLE5JRF9zZWNwMTI4cjIsNSwmKGx2YWx1ZXNbNDc5NV0pLDB9LAoreyJzZWNwMTYwazEiLCJzZWNwMTYwazEiLE5JRF9zZWNwMTYwazEsNSwmKGx2YWx1ZXNbNDgwMF0pLDB9LAoreyJzZWNwMTYwcjEiLCJzZWNwMTYwcjEiLE5JRF9zZWNwMTYwcjEsNSwmKGx2YWx1ZXNbNDgwNV0pLDB9LAoreyJzZWNwMTYwcjIiLCJzZWNwMTYwcjIiLE5JRF9zZWNwMTYwcjIsNSwmKGx2YWx1ZXNbNDgxMF0pLDB9LAoreyJzZWNwMTkyazEiLCJzZWNwMTkyazEiLE5JRF9zZWNwMTkyazEsNSwmKGx2YWx1ZXNbNDgxNV0pLDB9LAoreyJzZWNwMjI0azEiLCJzZWNwMjI0azEiLE5JRF9zZWNwMjI0azEsNSwmKGx2YWx1ZXNbNDgyMF0pLDB9LAoreyJzZWNwMjI0cjEiLCJzZWNwMjI0cjEiLE5JRF9zZWNwMjI0cjEsNSwmKGx2YWx1ZXNbNDgyNV0pLDB9LAoreyJzZWNwMjU2azEiLCJzZWNwMjU2azEiLE5JRF9zZWNwMjU2azEsNSwmKGx2YWx1ZXNbNDgzMF0pLDB9LAoreyJzZWNwMzg0cjEiLCJzZWNwMzg0cjEiLE5JRF9zZWNwMzg0cjEsNSwmKGx2YWx1ZXNbNDgzNV0pLDB9LAoreyJzZWNwNTIxcjEiLCJzZWNwNTIxcjEiLE5JRF9zZWNwNTIxcjEsNSwmKGx2YWx1ZXNbNDg0MF0pLDB9LAoreyJzZWN0MTEzcjEiLCJzZWN0MTEzcjEiLE5JRF9zZWN0MTEzcjEsNSwmKGx2YWx1ZXNbNDg0NV0pLDB9LAoreyJzZWN0MTEzcjIiLCJzZWN0MTEzcjIiLE5JRF9zZWN0MTEzcjIsNSwmKGx2YWx1ZXNbNDg1MF0pLDB9LAoreyJzZWN0MTMxcjEiLCJzZWN0MTMxcjEiLE5JRF9zZWN0MTMxcjEsNSwmKGx2YWx1ZXNbNDg1NV0pLDB9LAoreyJzZWN0MTMxcjIiLCJzZWN0MTMxcjIiLE5JRF9zZWN0MTMxcjIsNSwmKGx2YWx1ZXNbNDg2MF0pLDB9LAoreyJzZWN0MTYzazEiLCJzZWN0MTYzazEiLE5JRF9zZWN0MTYzazEsNSwmKGx2YWx1ZXNbNDg2NV0pLDB9LAoreyJzZWN0MTYzcjEiLCJzZWN0MTYzcjEiLE5JRF9zZWN0MTYzcjEsNSwmKGx2YWx1ZXNbNDg3MF0pLDB9LAoreyJzZWN0MTYzcjIiLCJzZWN0MTYzcjIiLE5JRF9zZWN0MTYzcjIsNSwmKGx2YWx1ZXNbNDg3NV0pLDB9LAoreyJzZWN0MTkzcjEiLCJzZWN0MTkzcjEiLE5JRF9zZWN0MTkzcjEsNSwmKGx2YWx1ZXNbNDg4MF0pLDB9LAoreyJzZWN0MTkzcjIiLCJzZWN0MTkzcjIiLE5JRF9zZWN0MTkzcjIsNSwmKGx2YWx1ZXNbNDg4NV0pLDB9LAoreyJzZWN0MjMzazEiLCJzZWN0MjMzazEiLE5JRF9zZWN0MjMzazEsNSwmKGx2YWx1ZXNbNDg5MF0pLDB9LAoreyJzZWN0MjMzcjEiLCJzZWN0MjMzcjEiLE5JRF9zZWN0MjMzcjEsNSwmKGx2YWx1ZXNbNDg5NV0pLDB9LAoreyJzZWN0MjM5azEiLCJzZWN0MjM5azEiLE5JRF9zZWN0MjM5azEsNSwmKGx2YWx1ZXNbNDkwMF0pLDB9LAoreyJzZWN0MjgzazEiLCJzZWN0MjgzazEiLE5JRF9zZWN0MjgzazEsNSwmKGx2YWx1ZXNbNDkwNV0pLDB9LAoreyJzZWN0MjgzcjEiLCJzZWN0MjgzcjEiLE5JRF9zZWN0MjgzcjEsNSwmKGx2YWx1ZXNbNDkxMF0pLDB9LAoreyJzZWN0NDA5azEiLCJzZWN0NDA5azEiLE5JRF9zZWN0NDA5azEsNSwmKGx2YWx1ZXNbNDkxNV0pLDB9LAoreyJzZWN0NDA5cjEiLCJzZWN0NDA5cjEiLE5JRF9zZWN0NDA5cjEsNSwmKGx2YWx1ZXNbNDkyMF0pLDB9LAoreyJzZWN0NTcxazEiLCJzZWN0NTcxazEiLE5JRF9zZWN0NTcxazEsNSwmKGx2YWx1ZXNbNDkyNV0pLDB9LAoreyJzZWN0NTcxcjEiLCJzZWN0NTcxcjEiLE5JRF9zZWN0NTcxcjEsNSwmKGx2YWx1ZXNbNDkzMF0pLDB9LAogeyJ3YXAtd3NnLWlkbS1lY2lkLXd0bHMxIiwid2FwLXdzZy1pZG0tZWNpZC13dGxzMSIsCi0JTklEX3dhcF93c2dfaWRtX2VjaWRfd3RsczEsNSwmKGx2YWx1ZXNbNDk0MV0pLDB9LAorCU5JRF93YXBfd3NnX2lkbV9lY2lkX3d0bHMxLDUsJihsdmFsdWVzWzQ5MzVdKSwwfSwKIHsid2FwLXdzZy1pZG0tZWNpZC13dGxzMyIsIndhcC13c2ctaWRtLWVjaWQtd3RsczMiLAotCU5JRF93YXBfd3NnX2lkbV9lY2lkX3d0bHMzLDUsJihsdmFsdWVzWzQ5NDZdKSwwfSwKKwlOSURfd2FwX3dzZ19pZG1fZWNpZF93dGxzMyw1LCYobHZhbHVlc1s0OTQwXSksMH0sCiB7IndhcC13c2ctaWRtLWVjaWQtd3RsczQiLCJ3YXAtd3NnLWlkbS1lY2lkLXd0bHM0IiwKLQlOSURfd2FwX3dzZ19pZG1fZWNpZF93dGxzNCw1LCYobHZhbHVlc1s0OTUxXSksMH0sCisJTklEX3dhcF93c2dfaWRtX2VjaWRfd3RsczQsNSwmKGx2YWx1ZXNbNDk0NV0pLDB9LAogeyJ3YXAtd3NnLWlkbS1lY2lkLXd0bHM1Iiwid2FwLXdzZy1pZG0tZWNpZC13dGxzNSIsCi0JTklEX3dhcF93c2dfaWRtX2VjaWRfd3RsczUsNSwmKGx2YWx1ZXNbNDk1Nl0pLDB9LAorCU5JRF93YXBfd3NnX2lkbV9lY2lkX3d0bHM1LDUsJihsdmFsdWVzWzQ5NTBdKSwwfSwKIHsid2FwLXdzZy1pZG0tZWNpZC13dGxzNiIsIndhcC13c2ctaWRtLWVjaWQtd3RsczYiLAotCU5JRF93YXBfd3NnX2lkbV9lY2lkX3d0bHM2LDUsJihsdmFsdWVzWzQ5NjFdKSwwfSwKKwlOSURfd2FwX3dzZ19pZG1fZWNpZF93dGxzNiw1LCYobHZhbHVlc1s0OTU1XSksMH0sCiB7IndhcC13c2ctaWRtLWVjaWQtd3RsczciLCJ3YXAtd3NnLWlkbS1lY2lkLXd0bHM3IiwKLQlOSURfd2FwX3dzZ19pZG1fZWNpZF93dGxzNyw1LCYobHZhbHVlc1s0OTY2XSksMH0sCisJTklEX3dhcF93c2dfaWRtX2VjaWRfd3RsczcsNSwmKGx2YWx1ZXNbNDk2MF0pLDB9LAogeyJ3YXAtd3NnLWlkbS1lY2lkLXd0bHM4Iiwid2FwLXdzZy1pZG0tZWNpZC13dGxzOCIsCi0JTklEX3dhcF93c2dfaWRtX2VjaWRfd3RsczgsNSwmKGx2YWx1ZXNbNDk3MV0pLDB9LAorCU5JRF93YXBfd3NnX2lkbV9lY2lkX3d0bHM4LDUsJihsdmFsdWVzWzQ5NjVdKSwwfSwKIHsid2FwLXdzZy1pZG0tZWNpZC13dGxzOSIsIndhcC13c2ctaWRtLWVjaWQtd3RsczkiLAotCU5JRF93YXBfd3NnX2lkbV9lY2lkX3d0bHM5LDUsJihsdmFsdWVzWzQ5NzZdKSwwfSwKKwlOSURfd2FwX3dzZ19pZG1fZWNpZF93dGxzOSw1LCYobHZhbHVlc1s0OTcwXSksMH0sCiB7IndhcC13c2ctaWRtLWVjaWQtd3RsczEwIiwid2FwLXdzZy1pZG0tZWNpZC13dGxzMTAiLAotCU5JRF93YXBfd3NnX2lkbV9lY2lkX3d0bHMxMCw1LCYobHZhbHVlc1s0OTgxXSksMH0sCisJTklEX3dhcF93c2dfaWRtX2VjaWRfd3RsczEwLDUsJihsdmFsdWVzWzQ5NzVdKSwwfSwKIHsid2FwLXdzZy1pZG0tZWNpZC13dGxzMTEiLCJ3YXAtd3NnLWlkbS1lY2lkLXd0bHMxMSIsCi0JTklEX3dhcF93c2dfaWRtX2VjaWRfd3RsczExLDUsJihsdmFsdWVzWzQ5ODZdKSwwfSwKKwlOSURfd2FwX3dzZ19pZG1fZWNpZF93dGxzMTEsNSwmKGx2YWx1ZXNbNDk4MF0pLDB9LAogeyJ3YXAtd3NnLWlkbS1lY2lkLXd0bHMxMiIsIndhcC13c2ctaWRtLWVjaWQtd3RsczEyIiwKLQlOSURfd2FwX3dzZ19pZG1fZWNpZF93dGxzMTIsNSwmKGx2YWx1ZXNbNDk5MV0pLDB9LAoteyJhbnlQb2xpY3kiLCJYNTA5djMgQW55IFBvbGljeSIsTklEX2FueV9wb2xpY3ksNCwmKGx2YWx1ZXNbNDk5Nl0pLDB9LAorCU5JRF93YXBfd3NnX2lkbV9lY2lkX3d0bHMxMiw1LCYobHZhbHVlc1s0OTg1XSksMH0sCit7ImFueVBvbGljeSIsIlg1MDl2MyBBbnkgUG9saWN5IixOSURfYW55X3BvbGljeSw0LCYobHZhbHVlc1s0OTkwXSksMH0sCiB7InBvbGljeU1hcHBpbmdzIiwiWDUwOXYzIFBvbGljeSBNYXBwaW5ncyIsTklEX3BvbGljeV9tYXBwaW5ncywzLAotCSYobHZhbHVlc1s1MDAwXSksMH0sCisJJihsdmFsdWVzWzQ5OTRdKSwwfSwKIHsiaW5oaWJpdEFueVBvbGljeSIsIlg1MDl2MyBJbmhpYml0IEFueSBQb2xpY3kiLAotCU5JRF9pbmhpYml0X2FueV9wb2xpY3ksMywmKGx2YWx1ZXNbNTAwM10pLDB9LAorCU5JRF9pbmhpYml0X2FueV9wb2xpY3ksMywmKGx2YWx1ZXNbNDk5N10pLDB9LAogeyJPYWtsZXktRUMyTi0zIiwiaXBzZWMzIixOSURfaXBzZWMzLDAsTlVMTCwwfSwKIHsiT2FrbGV5LUVDMk4tNCIsImlwc2VjNCIsTklEX2lwc2VjNCwwLE5VTEwsMH0sCiB7IkNBTUVMTElBLTEyOC1DQkMiLCJjYW1lbGxpYS0xMjgtY2JjIixOSURfY2FtZWxsaWFfMTI4X2NiYywxMSwKLQkmKGx2YWx1ZXNbNTAwNl0pLDB9LAorCSYobHZhbHVlc1s1MDAwXSksMH0sCiB7IkNBTUVMTElBLTE5Mi1DQkMiLCJjYW1lbGxpYS0xOTItY2JjIixOSURfY2FtZWxsaWFfMTkyX2NiYywxMSwKLQkmKGx2YWx1ZXNbNTAxN10pLDB9LAorCSYobHZhbHVlc1s1MDExXSksMH0sCiB7IkNBTUVMTElBLTI1Ni1DQkMiLCJjYW1lbGxpYS0yNTYtY2JjIixOSURfY2FtZWxsaWFfMjU2X2NiYywxMSwKLQkmKGx2YWx1ZXNbNTAyOF0pLDB9LAorCSYobHZhbHVlc1s1MDIyXSksMH0sCiB7IkNBTUVMTElBLTEyOC1FQ0IiLCJjYW1lbGxpYS0xMjgtZWNiIixOSURfY2FtZWxsaWFfMTI4X2VjYiw4LAotCSYobHZhbHVlc1s1MDM5XSksMH0sCisJJihsdmFsdWVzWzUwMzNdKSwwfSwKIHsiQ0FNRUxMSUEtMTkyLUVDQiIsImNhbWVsbGlhLTE5Mi1lY2IiLE5JRF9jYW1lbGxpYV8xOTJfZWNiLDgsCi0JJihsdmFsdWVzWzUwNDddKSwwfSwKKwkmKGx2YWx1ZXNbNTA0MV0pLDB9LAogeyJDQU1FTExJQS0yNTYtRUNCIiwiY2FtZWxsaWEtMjU2LWVjYiIsTklEX2NhbWVsbGlhXzI1Nl9lY2IsOCwKLQkmKGx2YWx1ZXNbNTA1NV0pLDB9LAorCSYobHZhbHVlc1s1MDQ5XSksMH0sCiB7IkNBTUVMTElBLTEyOC1DRkIiLCJjYW1lbGxpYS0xMjgtY2ZiIixOSURfY2FtZWxsaWFfMTI4X2NmYjEyOCw4LAotCSYobHZhbHVlc1s1MDYzXSksMH0sCisJJihsdmFsdWVzWzUwNTddKSwwfSwKIHsiQ0FNRUxMSUEtMTkyLUNGQiIsImNhbWVsbGlhLTE5Mi1jZmIiLE5JRF9jYW1lbGxpYV8xOTJfY2ZiMTI4LDgsCi0JJihsdmFsdWVzWzUwNzFdKSwwfSwKKwkmKGx2YWx1ZXNbNTA2NV0pLDB9LAogeyJDQU1FTExJQS0yNTYtQ0ZCIiwiY2FtZWxsaWEtMjU2LWNmYiIsTklEX2NhbWVsbGlhXzI1Nl9jZmIxMjgsOCwKLQkmKGx2YWx1ZXNbNTA3OV0pLDB9LAorCSYobHZhbHVlc1s1MDczXSksMH0sCiB7IkNBTUVMTElBLTEyOC1DRkIxIiwiY2FtZWxsaWEtMTI4LWNmYjEiLE5JRF9jYW1lbGxpYV8xMjhfY2ZiMSwwLE5VTEwsMH0sCiB7IkNBTUVMTElBLTE5Mi1DRkIxIiwiY2FtZWxsaWEtMTkyLWNmYjEiLE5JRF9jYW1lbGxpYV8xOTJfY2ZiMSwwLE5VTEwsMH0sCiB7IkNBTUVMTElBLTI1Ni1DRkIxIiwiY2FtZWxsaWEtMjU2LWNmYjEiLE5JRF9jYW1lbGxpYV8yNTZfY2ZiMSwwLE5VTEwsMH0sCkBAIC0yMTE4LDI4NCArMjExMSwyODQgQEAKIHsiQ0FNRUxMSUEtMTkyLUNGQjgiLCJjYW1lbGxpYS0xOTItY2ZiOCIsTklEX2NhbWVsbGlhXzE5Ml9jZmI4LDAsTlVMTCwwfSwKIHsiQ0FNRUxMSUEtMjU2LUNGQjgiLCJjYW1lbGxpYS0yNTYtY2ZiOCIsTklEX2NhbWVsbGlhXzI1Nl9jZmI4LDAsTlVMTCwwfSwKIHsiQ0FNRUxMSUEtMTI4LU9GQiIsImNhbWVsbGlhLTEyOC1vZmIiLE5JRF9jYW1lbGxpYV8xMjhfb2ZiMTI4LDgsCi0JJihsdmFsdWVzWzUwODddKSwwfSwKKwkmKGx2YWx1ZXNbNTA4MV0pLDB9LAogeyJDQU1FTExJQS0xOTItT0ZCIiwiY2FtZWxsaWEtMTkyLW9mYiIsTklEX2NhbWVsbGlhXzE5Ml9vZmIxMjgsOCwKLQkmKGx2YWx1ZXNbNTA5NV0pLDB9LAorCSYobHZhbHVlc1s1MDg5XSksMH0sCiB7IkNBTUVMTElBLTI1Ni1PRkIiLCJjYW1lbGxpYS0yNTYtb2ZiIixOSURfY2FtZWxsaWFfMjU2X29mYjEyOCw4LAotCSYobHZhbHVlc1s1MTAzXSksMH0sCisJJihsdmFsdWVzWzUwOTddKSwwfSwKIHsic3ViamVjdERpcmVjdG9yeUF0dHJpYnV0ZXMiLCJYNTA5djMgU3ViamVjdCBEaXJlY3RvcnkgQXR0cmlidXRlcyIsCi0JTklEX3N1YmplY3RfZGlyZWN0b3J5X2F0dHJpYnV0ZXMsMywmKGx2YWx1ZXNbNTExMV0pLDB9LAorCU5JRF9zdWJqZWN0X2RpcmVjdG9yeV9hdHRyaWJ1dGVzLDMsJihsdmFsdWVzWzUxMDVdKSwwfSwKIHsiaXNzdWluZ0Rpc3RyaWJ1dGlvblBvaW50IiwiWDUwOXYzIElzc3VpbmcgRGlzdHJ1YnV0aW9uIFBvaW50IiwKLQlOSURfaXNzdWluZ19kaXN0cmlidXRpb25fcG9pbnQsMywmKGx2YWx1ZXNbNTExNF0pLDB9LAorCU5JRF9pc3N1aW5nX2Rpc3RyaWJ1dGlvbl9wb2ludCwzLCYobHZhbHVlc1s1MTA4XSksMH0sCiB7ImNlcnRpZmljYXRlSXNzdWVyIiwiWDUwOXYzIENlcnRpZmljYXRlIElzc3VlciIsCi0JTklEX2NlcnRpZmljYXRlX2lzc3VlciwzLCYobHZhbHVlc1s1MTE3XSksMH0sCisJTklEX2NlcnRpZmljYXRlX2lzc3VlciwzLCYobHZhbHVlc1s1MTExXSksMH0sCiB7TlVMTCxOVUxMLE5JRF91bmRlZiwwLE5VTEwsMH0sCi17IktJU0EiLCJraXNhIixOSURfa2lzYSw2LCYobHZhbHVlc1s1MTIwXSksMH0sCit7IktJU0EiLCJraXNhIixOSURfa2lzYSw2LCYobHZhbHVlc1s1MTE0XSksMH0sCiB7TlVMTCxOVUxMLE5JRF91bmRlZiwwLE5VTEwsMH0sCiB7TlVMTCxOVUxMLE5JRF91bmRlZiwwLE5VTEwsMH0sCi17IlNFRUQtRUNCIiwic2VlZC1lY2IiLE5JRF9zZWVkX2VjYiw4LCYobHZhbHVlc1s1MTI2XSksMH0sCi17IlNFRUQtQ0JDIiwic2VlZC1jYmMiLE5JRF9zZWVkX2NiYyw4LCYobHZhbHVlc1s1MTM0XSksMH0sCi17IlNFRUQtT0ZCIiwic2VlZC1vZmIiLE5JRF9zZWVkX29mYjEyOCw4LCYobHZhbHVlc1s1MTQyXSksMH0sCi17IlNFRUQtQ0ZCIiwic2VlZC1jZmIiLE5JRF9zZWVkX2NmYjEyOCw4LCYobHZhbHVlc1s1MTUwXSksMH0sCi17IkhNQUMtTUQ1IiwiaG1hYy1tZDUiLE5JRF9obWFjX21kNSw4LCYobHZhbHVlc1s1MTU4XSksMH0sCi17IkhNQUMtU0hBMSIsImhtYWMtc2hhMSIsTklEX2htYWNfc2hhMSw4LCYobHZhbHVlc1s1MTY2XSksMH0sCit7IlNFRUQtRUNCIiwic2VlZC1lY2IiLE5JRF9zZWVkX2VjYiw4LCYobHZhbHVlc1s1MTIwXSksMH0sCit7IlNFRUQtQ0JDIiwic2VlZC1jYmMiLE5JRF9zZWVkX2NiYyw4LCYobHZhbHVlc1s1MTI4XSksMH0sCit7IlNFRUQtT0ZCIiwic2VlZC1vZmIiLE5JRF9zZWVkX29mYjEyOCw4LCYobHZhbHVlc1s1MTM2XSksMH0sCit7IlNFRUQtQ0ZCIiwic2VlZC1jZmIiLE5JRF9zZWVkX2NmYjEyOCw4LCYobHZhbHVlc1s1MTQ0XSksMH0sCit7IkhNQUMtTUQ1IiwiaG1hYy1tZDUiLE5JRF9obWFjX21kNSw4LCYobHZhbHVlc1s1MTUyXSksMH0sCit7IkhNQUMtU0hBMSIsImhtYWMtc2hhMSIsTklEX2htYWNfc2hhMSw4LCYobHZhbHVlc1s1MTYwXSksMH0sCiB7ImlkLVBhc3N3b3JkQmFzZWRNQUMiLCJwYXNzd29yZCBiYXNlZCBNQUMiLE5JRF9pZF9QYXNzd29yZEJhc2VkTUFDLDksCi0JJihsdmFsdWVzWzUxNzRdKSwwfSwKKwkmKGx2YWx1ZXNbNTE2OF0pLDB9LAogeyJpZC1ESEJhc2VkTWFjIiwiRGlmZmllLUhlbGxtYW4gYmFzZWQgTUFDIixOSURfaWRfREhCYXNlZE1hYyw5LAotCSYobHZhbHVlc1s1MTgzXSksMH0sCisJJihsdmFsdWVzWzUxNzddKSwwfSwKIHsiaWQtaXQtc3VwcExhbmdUYWdzIiwiaWQtaXQtc3VwcExhbmdUYWdzIixOSURfaWRfaXRfc3VwcExhbmdUYWdzLDgsCi0JJihsdmFsdWVzWzUxOTJdKSwwfSwKLXsiY2FSZXBvc2l0b3J5IiwiQ0EgUmVwb3NpdG9yeSIsTklEX2NhUmVwb3NpdG9yeSw4LCYobHZhbHVlc1s1MjAwXSksMH0sCisJJihsdmFsdWVzWzUxODZdKSwwfSwKK3siY2FSZXBvc2l0b3J5IiwiQ0EgUmVwb3NpdG9yeSIsTklEX2NhUmVwb3NpdG9yeSw4LCYobHZhbHVlc1s1MTk0XSksMH0sCiB7ImlkLXNtaW1lLWN0LWNvbXByZXNzZWREYXRhIiwiaWQtc21pbWUtY3QtY29tcHJlc3NlZERhdGEiLAotCU5JRF9pZF9zbWltZV9jdF9jb21wcmVzc2VkRGF0YSwxMSwmKGx2YWx1ZXNbNTIwOF0pLDB9LAorCU5JRF9pZF9zbWltZV9jdF9jb21wcmVzc2VkRGF0YSwxMSwmKGx2YWx1ZXNbNTIwMl0pLDB9LAogeyJpZC1jdC1hc2NpaVRleHRXaXRoQ1JMRiIsImlkLWN0LWFzY2lpVGV4dFdpdGhDUkxGIiwKLQlOSURfaWRfY3RfYXNjaWlUZXh0V2l0aENSTEYsMTEsJihsdmFsdWVzWzUyMTldKSwwfSwKKwlOSURfaWRfY3RfYXNjaWlUZXh0V2l0aENSTEYsMTEsJihsdmFsdWVzWzUyMTNdKSwwfSwKIHsiaWQtYWVzMTI4LXdyYXAiLCJpZC1hZXMxMjgtd3JhcCIsTklEX2lkX2FlczEyOF93cmFwLDksCi0JJihsdmFsdWVzWzUyMzBdKSwwfSwKKwkmKGx2YWx1ZXNbNTIyNF0pLDB9LAogeyJpZC1hZXMxOTItd3JhcCIsImlkLWFlczE5Mi13cmFwIixOSURfaWRfYWVzMTkyX3dyYXAsOSwKLQkmKGx2YWx1ZXNbNTIzOV0pLDB9LAorCSYobHZhbHVlc1s1MjMzXSksMH0sCiB7ImlkLWFlczI1Ni13cmFwIiwiaWQtYWVzMjU2LXdyYXAiLE5JRF9pZF9hZXMyNTZfd3JhcCw5LAotCSYobHZhbHVlc1s1MjQ4XSksMH0sCisJJihsdmFsdWVzWzUyNDJdKSwwfSwKIHsiZWNkc2Etd2l0aC1SZWNvbW1lbmRlZCIsImVjZHNhLXdpdGgtUmVjb21tZW5kZWQiLAotCU5JRF9lY2RzYV93aXRoX1JlY29tbWVuZGVkLDcsJihsdmFsdWVzWzUyNTddKSwwfSwKKwlOSURfZWNkc2Ffd2l0aF9SZWNvbW1lbmRlZCw3LCYobHZhbHVlc1s1MjUxXSksMH0sCiB7ImVjZHNhLXdpdGgtU3BlY2lmaWVkIiwiZWNkc2Etd2l0aC1TcGVjaWZpZWQiLAotCU5JRF9lY2RzYV93aXRoX1NwZWNpZmllZCw3LCYobHZhbHVlc1s1MjY0XSksMH0sCisJTklEX2VjZHNhX3dpdGhfU3BlY2lmaWVkLDcsJihsdmFsdWVzWzUyNThdKSwwfSwKIHsiZWNkc2Etd2l0aC1TSEEyMjQiLCJlY2RzYS13aXRoLVNIQTIyNCIsTklEX2VjZHNhX3dpdGhfU0hBMjI0LDgsCi0JJihsdmFsdWVzWzUyNzFdKSwwfSwKKwkmKGx2YWx1ZXNbNTI2NV0pLDB9LAogeyJlY2RzYS13aXRoLVNIQTI1NiIsImVjZHNhLXdpdGgtU0hBMjU2IixOSURfZWNkc2Ffd2l0aF9TSEEyNTYsOCwKLQkmKGx2YWx1ZXNbNTI3OV0pLDB9LAorCSYobHZhbHVlc1s1MjczXSksMH0sCiB7ImVjZHNhLXdpdGgtU0hBMzg0IiwiZWNkc2Etd2l0aC1TSEEzODQiLE5JRF9lY2RzYV93aXRoX1NIQTM4NCw4LAotCSYobHZhbHVlc1s1Mjg3XSksMH0sCisJJihsdmFsdWVzWzUyODFdKSwwfSwKIHsiZWNkc2Etd2l0aC1TSEE1MTIiLCJlY2RzYS13aXRoLVNIQTUxMiIsTklEX2VjZHNhX3dpdGhfU0hBNTEyLDgsCi0JJihsdmFsdWVzWzUyOTVdKSwwfSwKLXsiaG1hY1dpdGhNRDUiLCJobWFjV2l0aE1ENSIsTklEX2htYWNXaXRoTUQ1LDgsJihsdmFsdWVzWzUzMDNdKSwwfSwKKwkmKGx2YWx1ZXNbNTI4OV0pLDB9LAoreyJobWFjV2l0aE1ENSIsImhtYWNXaXRoTUQ1IixOSURfaG1hY1dpdGhNRDUsOCwmKGx2YWx1ZXNbNTI5N10pLDB9LAogeyJobWFjV2l0aFNIQTIyNCIsImhtYWNXaXRoU0hBMjI0IixOSURfaG1hY1dpdGhTSEEyMjQsOCwKLQkmKGx2YWx1ZXNbNTMxMV0pLDB9LAorCSYobHZhbHVlc1s1MzA1XSksMH0sCiB7ImhtYWNXaXRoU0hBMjU2IiwiaG1hY1dpdGhTSEEyNTYiLE5JRF9obWFjV2l0aFNIQTI1Niw4LAotCSYobHZhbHVlc1s1MzE5XSksMH0sCisJJihsdmFsdWVzWzUzMTNdKSwwfSwKIHsiaG1hY1dpdGhTSEEzODQiLCJobWFjV2l0aFNIQTM4NCIsTklEX2htYWNXaXRoU0hBMzg0LDgsCi0JJihsdmFsdWVzWzUzMjddKSwwfSwKKwkmKGx2YWx1ZXNbNTMyMV0pLDB9LAogeyJobWFjV2l0aFNIQTUxMiIsImhtYWNXaXRoU0hBNTEyIixOSURfaG1hY1dpdGhTSEE1MTIsOCwKLQkmKGx2YWx1ZXNbNTMzNV0pLDB9LAorCSYobHZhbHVlc1s1MzI5XSksMH0sCiB7ImRzYV93aXRoX1NIQTIyNCIsImRzYV93aXRoX1NIQTIyNCIsTklEX2RzYV93aXRoX1NIQTIyNCw5LAotCSYobHZhbHVlc1s1MzQzXSksMH0sCisJJihsdmFsdWVzWzUzMzddKSwwfSwKIHsiZHNhX3dpdGhfU0hBMjU2IiwiZHNhX3dpdGhfU0hBMjU2IixOSURfZHNhX3dpdGhfU0hBMjU2LDksCi0JJihsdmFsdWVzWzUzNTJdKSwwfSwKLXsid2hpcmxwb29sIiwid2hpcmxwb29sIixOSURfd2hpcmxwb29sLDYsJihsdmFsdWVzWzUzNjFdKSwwfSwKLXsiY3J5cHRvcHJvIiwiY3J5cHRvcHJvIixOSURfY3J5cHRvcHJvLDUsJihsdmFsdWVzWzUzNjddKSwwfSwKLXsiY3J5cHRvY29tIiwiY3J5cHRvY29tIixOSURfY3J5cHRvY29tLDUsJihsdmFsdWVzWzUzNzJdKSwwfSwKKwkmKGx2YWx1ZXNbNTM0Nl0pLDB9LAoreyJ3aGlybHBvb2wiLCJ3aGlybHBvb2wiLE5JRF93aGlybHBvb2wsNiwmKGx2YWx1ZXNbNTM1NV0pLDB9LAoreyJjcnlwdG9wcm8iLCJjcnlwdG9wcm8iLE5JRF9jcnlwdG9wcm8sNSwmKGx2YWx1ZXNbNTM2MV0pLDB9LAoreyJjcnlwdG9jb20iLCJjcnlwdG9jb20iLE5JRF9jcnlwdG9jb20sNSwmKGx2YWx1ZXNbNTM2Nl0pLDB9LAogeyJpZC1Hb3N0UjM0MTEtOTQtd2l0aC1Hb3N0UjM0MTAtMjAwMSIsCiAJIkdPU1QgUiAzNC4xMS05NCB3aXRoIEdPU1QgUiAzNC4xMC0yMDAxIiwKLQlOSURfaWRfR29zdFIzNDExXzk0X3dpdGhfR29zdFIzNDEwXzIwMDEsNiwmKGx2YWx1ZXNbNTM3N10pLDB9LAorCU5JRF9pZF9Hb3N0UjM0MTFfOTRfd2l0aF9Hb3N0UjM0MTBfMjAwMSw2LCYobHZhbHVlc1s1MzcxXSksMH0sCiB7ImlkLUdvc3RSMzQxMS05NC13aXRoLUdvc3RSMzQxMC05NCIsCiAJIkdPU1QgUiAzNC4xMS05NCB3aXRoIEdPU1QgUiAzNC4xMC05NCIsCi0JTklEX2lkX0dvc3RSMzQxMV85NF93aXRoX0dvc3RSMzQxMF85NCw2LCYobHZhbHVlc1s1MzgzXSksMH0sCi17Im1kX2dvc3Q5NCIsIkdPU1QgUiAzNC4xMS05NCIsTklEX2lkX0dvc3RSMzQxMV85NCw2LCYobHZhbHVlc1s1Mzg5XSksMH0sCisJTklEX2lkX0dvc3RSMzQxMV85NF93aXRoX0dvc3RSMzQxMF85NCw2LCYobHZhbHVlc1s1Mzc3XSksMH0sCit7Im1kX2dvc3Q5NCIsIkdPU1QgUiAzNC4xMS05NCIsTklEX2lkX0dvc3RSMzQxMV85NCw2LCYobHZhbHVlc1s1MzgzXSksMH0sCiB7ImlkLUhNQUNHb3N0UjM0MTEtOTQiLCJITUFDIEdPU1QgMzQuMTEtOTQiLE5JRF9pZF9ITUFDR29zdFIzNDExXzk0LDYsCi0JJihsdmFsdWVzWzUzOTVdKSwwfSwKKwkmKGx2YWx1ZXNbNTM4OV0pLDB9LAogeyJnb3N0MjAwMSIsIkdPU1QgUiAzNC4xMC0yMDAxIixOSURfaWRfR29zdFIzNDEwXzIwMDEsNiwKLQkmKGx2YWx1ZXNbNTQwMV0pLDB9LAoteyJnb3N0OTQiLCJHT1NUIFIgMzQuMTAtOTQiLE5JRF9pZF9Hb3N0UjM0MTBfOTQsNiwmKGx2YWx1ZXNbNTQwN10pLDB9LAoteyJnb3N0ODkiLCJHT1NUIDI4MTQ3LTg5IixOSURfaWRfR29zdDI4MTQ3Xzg5LDYsJihsdmFsdWVzWzU0MTNdKSwwfSwKKwkmKGx2YWx1ZXNbNTM5NV0pLDB9LAoreyJnb3N0OTQiLCJHT1NUIFIgMzQuMTAtOTQiLE5JRF9pZF9Hb3N0UjM0MTBfOTQsNiwmKGx2YWx1ZXNbNTQwMV0pLDB9LAoreyJnb3N0ODkiLCJHT1NUIDI4MTQ3LTg5IixOSURfaWRfR29zdDI4MTQ3Xzg5LDYsJihsdmFsdWVzWzU0MDddKSwwfSwKIHsiZ29zdDg5LWNudCIsImdvc3Q4OS1jbnQiLE5JRF9nb3N0ODlfY250LDAsTlVMTCwwfSwKIHsiZ29zdC1tYWMiLCJHT1NUIDI4MTQ3LTg5IE1BQyIsTklEX2lkX0dvc3QyODE0N184OV9NQUMsNiwKLQkmKGx2YWx1ZXNbNTQxOV0pLDB9LAorCSYobHZhbHVlc1s1NDEzXSksMH0sCiB7InByZi1nb3N0cjM0MTEtOTQiLCJHT1NUIFIgMzQuMTEtOTQgUFJGIixOSURfaWRfR29zdFIzNDExXzk0X3ByZiw2LAotCSYobHZhbHVlc1s1NDI1XSksMH0sCisJJihsdmFsdWVzWzU0MTldKSwwfSwKIHsiaWQtR29zdFIzNDEwLTIwMDFESCIsIkdPU1QgUiAzNC4xMC0yMDAxIERIIixOSURfaWRfR29zdFIzNDEwXzIwMDFESCwKLQk2LCYobHZhbHVlc1s1NDMxXSksMH0sCisJNiwmKGx2YWx1ZXNbNTQyNV0pLDB9LAogeyJpZC1Hb3N0UjM0MTAtOTRESCIsIkdPU1QgUiAzNC4xMC05NCBESCIsTklEX2lkX0dvc3RSMzQxMF85NERILDYsCi0JJihsdmFsdWVzWzU0MzddKSwwfSwKKwkmKGx2YWx1ZXNbNTQzMV0pLDB9LAogeyJpZC1Hb3N0MjgxNDctODktQ3J5cHRvUHJvLUtleU1lc2hpbmciLAogCSJpZC1Hb3N0MjgxNDctODktQ3J5cHRvUHJvLUtleU1lc2hpbmciLAotCU5JRF9pZF9Hb3N0MjgxNDdfODlfQ3J5cHRvUHJvX0tleU1lc2hpbmcsNywmKGx2YWx1ZXNbNTQ0M10pLDB9LAorCU5JRF9pZF9Hb3N0MjgxNDdfODlfQ3J5cHRvUHJvX0tleU1lc2hpbmcsNywmKGx2YWx1ZXNbNTQzN10pLDB9LAogeyJpZC1Hb3N0MjgxNDctODktTm9uZS1LZXlNZXNoaW5nIiwiaWQtR29zdDI4MTQ3LTg5LU5vbmUtS2V5TWVzaGluZyIsCi0JTklEX2lkX0dvc3QyODE0N184OV9Ob25lX0tleU1lc2hpbmcsNywmKGx2YWx1ZXNbNTQ1MF0pLDB9LAorCU5JRF9pZF9Hb3N0MjgxNDdfODlfTm9uZV9LZXlNZXNoaW5nLDcsJihsdmFsdWVzWzU0NDRdKSwwfSwKIHsiaWQtR29zdFIzNDExLTk0LVRlc3RQYXJhbVNldCIsImlkLUdvc3RSMzQxMS05NC1UZXN0UGFyYW1TZXQiLAotCU5JRF9pZF9Hb3N0UjM0MTFfOTRfVGVzdFBhcmFtU2V0LDcsJihsdmFsdWVzWzU0NTddKSwwfSwKKwlOSURfaWRfR29zdFIzNDExXzk0X1Rlc3RQYXJhbVNldCw3LCYobHZhbHVlc1s1NDUxXSksMH0sCiB7ImlkLUdvc3RSMzQxMS05NC1DcnlwdG9Qcm9QYXJhbVNldCIsCiAJImlkLUdvc3RSMzQxMS05NC1DcnlwdG9Qcm9QYXJhbVNldCIsCi0JTklEX2lkX0dvc3RSMzQxMV85NF9DcnlwdG9Qcm9QYXJhbVNldCw3LCYobHZhbHVlc1s1NDY0XSksMH0sCisJTklEX2lkX0dvc3RSMzQxMV85NF9DcnlwdG9Qcm9QYXJhbVNldCw3LCYobHZhbHVlc1s1NDU4XSksMH0sCiB7ImlkLUdvc3QyODE0Ny04OS1UZXN0UGFyYW1TZXQiLCJpZC1Hb3N0MjgxNDctODktVGVzdFBhcmFtU2V0IiwKLQlOSURfaWRfR29zdDI4MTQ3Xzg5X1Rlc3RQYXJhbVNldCw3LCYobHZhbHVlc1s1NDcxXSksMH0sCisJTklEX2lkX0dvc3QyODE0N184OV9UZXN0UGFyYW1TZXQsNywmKGx2YWx1ZXNbNTQ2NV0pLDB9LAogeyJpZC1Hb3N0MjgxNDctODktQ3J5cHRvUHJvLUEtUGFyYW1TZXQiLAogCSJpZC1Hb3N0MjgxNDctODktQ3J5cHRvUHJvLUEtUGFyYW1TZXQiLAotCU5JRF9pZF9Hb3N0MjgxNDdfODlfQ3J5cHRvUHJvX0FfUGFyYW1TZXQsNywmKGx2YWx1ZXNbNTQ3OF0pLDB9LAorCU5JRF9pZF9Hb3N0MjgxNDdfODlfQ3J5cHRvUHJvX0FfUGFyYW1TZXQsNywmKGx2YWx1ZXNbNTQ3Ml0pLDB9LAogeyJpZC1Hb3N0MjgxNDctODktQ3J5cHRvUHJvLUItUGFyYW1TZXQiLAogCSJpZC1Hb3N0MjgxNDctODktQ3J5cHRvUHJvLUItUGFyYW1TZXQiLAotCU5JRF9pZF9Hb3N0MjgxNDdfODlfQ3J5cHRvUHJvX0JfUGFyYW1TZXQsNywmKGx2YWx1ZXNbNTQ4NV0pLDB9LAorCU5JRF9pZF9Hb3N0MjgxNDdfODlfQ3J5cHRvUHJvX0JfUGFyYW1TZXQsNywmKGx2YWx1ZXNbNTQ3OV0pLDB9LAogeyJpZC1Hb3N0MjgxNDctODktQ3J5cHRvUHJvLUMtUGFyYW1TZXQiLAogCSJpZC1Hb3N0MjgxNDctODktQ3J5cHRvUHJvLUMtUGFyYW1TZXQiLAotCU5JRF9pZF9Hb3N0MjgxNDdfODlfQ3J5cHRvUHJvX0NfUGFyYW1TZXQsNywmKGx2YWx1ZXNbNTQ5Ml0pLDB9LAorCU5JRF9pZF9Hb3N0MjgxNDdfODlfQ3J5cHRvUHJvX0NfUGFyYW1TZXQsNywmKGx2YWx1ZXNbNTQ4Nl0pLDB9LAogeyJpZC1Hb3N0MjgxNDctODktQ3J5cHRvUHJvLUQtUGFyYW1TZXQiLAogCSJpZC1Hb3N0MjgxNDctODktQ3J5cHRvUHJvLUQtUGFyYW1TZXQiLAotCU5JRF9pZF9Hb3N0MjgxNDdfODlfQ3J5cHRvUHJvX0RfUGFyYW1TZXQsNywmKGx2YWx1ZXNbNTQ5OV0pLDB9LAorCU5JRF9pZF9Hb3N0MjgxNDdfODlfQ3J5cHRvUHJvX0RfUGFyYW1TZXQsNywmKGx2YWx1ZXNbNTQ5M10pLDB9LAogeyJpZC1Hb3N0MjgxNDctODktQ3J5cHRvUHJvLU9zY2FyLTEtMS1QYXJhbVNldCIsCiAJImlkLUdvc3QyODE0Ny04OS1DcnlwdG9Qcm8tT3NjYXItMS0xLVBhcmFtU2V0IiwKLQlOSURfaWRfR29zdDI4MTQ3Xzg5X0NyeXB0b1Byb19Pc2Nhcl8xXzFfUGFyYW1TZXQsNywmKGx2YWx1ZXNbNTUwNl0pLAorCU5JRF9pZF9Hb3N0MjgxNDdfODlfQ3J5cHRvUHJvX09zY2FyXzFfMV9QYXJhbVNldCw3LCYobHZhbHVlc1s1NTAwXSksCiAJMH0sCiB7ImlkLUdvc3QyODE0Ny04OS1DcnlwdG9Qcm8tT3NjYXItMS0wLVBhcmFtU2V0IiwKIAkiaWQtR29zdDI4MTQ3LTg5LUNyeXB0b1Byby1Pc2Nhci0xLTAtUGFyYW1TZXQiLAotCU5JRF9pZF9Hb3N0MjgxNDdfODlfQ3J5cHRvUHJvX09zY2FyXzFfMF9QYXJhbVNldCw3LCYobHZhbHVlc1s1NTEzXSksCisJTklEX2lkX0dvc3QyODE0N184OV9DcnlwdG9Qcm9fT3NjYXJfMV8wX1BhcmFtU2V0LDcsJihsdmFsdWVzWzU1MDddKSwKIAkwfSwKIHsiaWQtR29zdDI4MTQ3LTg5LUNyeXB0b1Byby1SSUMtMS1QYXJhbVNldCIsCiAJImlkLUdvc3QyODE0Ny04OS1DcnlwdG9Qcm8tUklDLTEtUGFyYW1TZXQiLAotCU5JRF9pZF9Hb3N0MjgxNDdfODlfQ3J5cHRvUHJvX1JJQ18xX1BhcmFtU2V0LDcsJihsdmFsdWVzWzU1MjBdKSwwfSwKKwlOSURfaWRfR29zdDI4MTQ3Xzg5X0NyeXB0b1Byb19SSUNfMV9QYXJhbVNldCw3LCYobHZhbHVlc1s1NTE0XSksMH0sCiB7ImlkLUdvc3RSMzQxMC05NC1UZXN0UGFyYW1TZXQiLCJpZC1Hb3N0UjM0MTAtOTQtVGVzdFBhcmFtU2V0IiwKLQlOSURfaWRfR29zdFIzNDEwXzk0X1Rlc3RQYXJhbVNldCw3LCYobHZhbHVlc1s1NTI3XSksMH0sCisJTklEX2lkX0dvc3RSMzQxMF85NF9UZXN0UGFyYW1TZXQsNywmKGx2YWx1ZXNbNTUyMV0pLDB9LAogeyJpZC1Hb3N0UjM0MTAtOTQtQ3J5cHRvUHJvLUEtUGFyYW1TZXQiLAogCSJpZC1Hb3N0UjM0MTAtOTQtQ3J5cHRvUHJvLUEtUGFyYW1TZXQiLAotCU5JRF9pZF9Hb3N0UjM0MTBfOTRfQ3J5cHRvUHJvX0FfUGFyYW1TZXQsNywmKGx2YWx1ZXNbNTUzNF0pLDB9LAorCU5JRF9pZF9Hb3N0UjM0MTBfOTRfQ3J5cHRvUHJvX0FfUGFyYW1TZXQsNywmKGx2YWx1ZXNbNTUyOF0pLDB9LAogeyJpZC1Hb3N0UjM0MTAtOTQtQ3J5cHRvUHJvLUItUGFyYW1TZXQiLAogCSJpZC1Hb3N0UjM0MTAtOTQtQ3J5cHRvUHJvLUItUGFyYW1TZXQiLAotCU5JRF9pZF9Hb3N0UjM0MTBfOTRfQ3J5cHRvUHJvX0JfUGFyYW1TZXQsNywmKGx2YWx1ZXNbNTU0MV0pLDB9LAorCU5JRF9pZF9Hb3N0UjM0MTBfOTRfQ3J5cHRvUHJvX0JfUGFyYW1TZXQsNywmKGx2YWx1ZXNbNTUzNV0pLDB9LAogeyJpZC1Hb3N0UjM0MTAtOTQtQ3J5cHRvUHJvLUMtUGFyYW1TZXQiLAogCSJpZC1Hb3N0UjM0MTAtOTQtQ3J5cHRvUHJvLUMtUGFyYW1TZXQiLAotCU5JRF9pZF9Hb3N0UjM0MTBfOTRfQ3J5cHRvUHJvX0NfUGFyYW1TZXQsNywmKGx2YWx1ZXNbNTU0OF0pLDB9LAorCU5JRF9pZF9Hb3N0UjM0MTBfOTRfQ3J5cHRvUHJvX0NfUGFyYW1TZXQsNywmKGx2YWx1ZXNbNTU0Ml0pLDB9LAogeyJpZC1Hb3N0UjM0MTAtOTQtQ3J5cHRvUHJvLUQtUGFyYW1TZXQiLAogCSJpZC1Hb3N0UjM0MTAtOTQtQ3J5cHRvUHJvLUQtUGFyYW1TZXQiLAotCU5JRF9pZF9Hb3N0UjM0MTBfOTRfQ3J5cHRvUHJvX0RfUGFyYW1TZXQsNywmKGx2YWx1ZXNbNTU1NV0pLDB9LAorCU5JRF9pZF9Hb3N0UjM0MTBfOTRfQ3J5cHRvUHJvX0RfUGFyYW1TZXQsNywmKGx2YWx1ZXNbNTU0OV0pLDB9LAogeyJpZC1Hb3N0UjM0MTAtOTQtQ3J5cHRvUHJvLVhjaEEtUGFyYW1TZXQiLAogCSJpZC1Hb3N0UjM0MTAtOTQtQ3J5cHRvUHJvLVhjaEEtUGFyYW1TZXQiLAotCU5JRF9pZF9Hb3N0UjM0MTBfOTRfQ3J5cHRvUHJvX1hjaEFfUGFyYW1TZXQsNywmKGx2YWx1ZXNbNTU2Ml0pLDB9LAorCU5JRF9pZF9Hb3N0UjM0MTBfOTRfQ3J5cHRvUHJvX1hjaEFfUGFyYW1TZXQsNywmKGx2YWx1ZXNbNTU1Nl0pLDB9LAogeyJpZC1Hb3N0UjM0MTAtOTQtQ3J5cHRvUHJvLVhjaEItUGFyYW1TZXQiLAogCSJpZC1Hb3N0UjM0MTAtOTQtQ3J5cHRvUHJvLVhjaEItUGFyYW1TZXQiLAotCU5JRF9pZF9Hb3N0UjM0MTBfOTRfQ3J5cHRvUHJvX1hjaEJfUGFyYW1TZXQsNywmKGx2YWx1ZXNbNTU2OV0pLDB9LAorCU5JRF9pZF9Hb3N0UjM0MTBfOTRfQ3J5cHRvUHJvX1hjaEJfUGFyYW1TZXQsNywmKGx2YWx1ZXNbNTU2M10pLDB9LAogeyJpZC1Hb3N0UjM0MTAtOTQtQ3J5cHRvUHJvLVhjaEMtUGFyYW1TZXQiLAogCSJpZC1Hb3N0UjM0MTAtOTQtQ3J5cHRvUHJvLVhjaEMtUGFyYW1TZXQiLAotCU5JRF9pZF9Hb3N0UjM0MTBfOTRfQ3J5cHRvUHJvX1hjaENfUGFyYW1TZXQsNywmKGx2YWx1ZXNbNTU3Nl0pLDB9LAorCU5JRF9pZF9Hb3N0UjM0MTBfOTRfQ3J5cHRvUHJvX1hjaENfUGFyYW1TZXQsNywmKGx2YWx1ZXNbNTU3MF0pLDB9LAogeyJpZC1Hb3N0UjM0MTAtMjAwMS1UZXN0UGFyYW1TZXQiLCJpZC1Hb3N0UjM0MTAtMjAwMS1UZXN0UGFyYW1TZXQiLAotCU5JRF9pZF9Hb3N0UjM0MTBfMjAwMV9UZXN0UGFyYW1TZXQsNywmKGx2YWx1ZXNbNTU4M10pLDB9LAorCU5JRF9pZF9Hb3N0UjM0MTBfMjAwMV9UZXN0UGFyYW1TZXQsNywmKGx2YWx1ZXNbNTU3N10pLDB9LAogeyJpZC1Hb3N0UjM0MTAtMjAwMS1DcnlwdG9Qcm8tQS1QYXJhbVNldCIsCiAJImlkLUdvc3RSMzQxMC0yMDAxLUNyeXB0b1Byby1BLVBhcmFtU2V0IiwKLQlOSURfaWRfR29zdFIzNDEwXzIwMDFfQ3J5cHRvUHJvX0FfUGFyYW1TZXQsNywmKGx2YWx1ZXNbNTU5MF0pLDB9LAorCU5JRF9pZF9Hb3N0UjM0MTBfMjAwMV9DcnlwdG9Qcm9fQV9QYXJhbVNldCw3LCYobHZhbHVlc1s1NTg0XSksMH0sCiB7ImlkLUdvc3RSMzQxMC0yMDAxLUNyeXB0b1Byby1CLVBhcmFtU2V0IiwKIAkiaWQtR29zdFIzNDEwLTIwMDEtQ3J5cHRvUHJvLUItUGFyYW1TZXQiLAotCU5JRF9pZF9Hb3N0UjM0MTBfMjAwMV9DcnlwdG9Qcm9fQl9QYXJhbVNldCw3LCYobHZhbHVlc1s1NTk3XSksMH0sCisJTklEX2lkX0dvc3RSMzQxMF8yMDAxX0NyeXB0b1Byb19CX1BhcmFtU2V0LDcsJihsdmFsdWVzWzU1OTFdKSwwfSwKIHsiaWQtR29zdFIzNDEwLTIwMDEtQ3J5cHRvUHJvLUMtUGFyYW1TZXQiLAogCSJpZC1Hb3N0UjM0MTAtMjAwMS1DcnlwdG9Qcm8tQy1QYXJhbVNldCIsCi0JTklEX2lkX0dvc3RSMzQxMF8yMDAxX0NyeXB0b1Byb19DX1BhcmFtU2V0LDcsJihsdmFsdWVzWzU2MDRdKSwwfSwKKwlOSURfaWRfR29zdFIzNDEwXzIwMDFfQ3J5cHRvUHJvX0NfUGFyYW1TZXQsNywmKGx2YWx1ZXNbNTU5OF0pLDB9LAogeyJpZC1Hb3N0UjM0MTAtMjAwMS1DcnlwdG9Qcm8tWGNoQS1QYXJhbVNldCIsCiAJImlkLUdvc3RSMzQxMC0yMDAxLUNyeXB0b1Byby1YY2hBLVBhcmFtU2V0IiwKLQlOSURfaWRfR29zdFIzNDEwXzIwMDFfQ3J5cHRvUHJvX1hjaEFfUGFyYW1TZXQsNywmKGx2YWx1ZXNbNTYxMV0pLDB9LAorCU5JRF9pZF9Hb3N0UjM0MTBfMjAwMV9DcnlwdG9Qcm9fWGNoQV9QYXJhbVNldCw3LCYobHZhbHVlc1s1NjA1XSksMH0sCiAJCiB7ImlkLUdvc3RSMzQxMC0yMDAxLUNyeXB0b1Byby1YY2hCLVBhcmFtU2V0IiwKIAkiaWQtR29zdFIzNDEwLTIwMDEtQ3J5cHRvUHJvLVhjaEItUGFyYW1TZXQiLAotCU5JRF9pZF9Hb3N0UjM0MTBfMjAwMV9DcnlwdG9Qcm9fWGNoQl9QYXJhbVNldCw3LCYobHZhbHVlc1s1NjE4XSksMH0sCisJTklEX2lkX0dvc3RSMzQxMF8yMDAxX0NyeXB0b1Byb19YY2hCX1BhcmFtU2V0LDcsJihsdmFsdWVzWzU2MTJdKSwwfSwKIAkKIHsiaWQtR29zdFIzNDEwLTk0LWEiLCJpZC1Hb3N0UjM0MTAtOTQtYSIsTklEX2lkX0dvc3RSMzQxMF85NF9hLDcsCi0JJihsdmFsdWVzWzU2MjVdKSwwfSwKKwkmKGx2YWx1ZXNbNTYxOV0pLDB9LAogeyJpZC1Hb3N0UjM0MTAtOTQtYUJpcyIsImlkLUdvc3RSMzQxMC05NC1hQmlzIiwKLQlOSURfaWRfR29zdFIzNDEwXzk0X2FCaXMsNywmKGx2YWx1ZXNbNTYzMl0pLDB9LAorCU5JRF9pZF9Hb3N0UjM0MTBfOTRfYUJpcyw3LCYobHZhbHVlc1s1NjI2XSksMH0sCiB7ImlkLUdvc3RSMzQxMC05NC1iIiwiaWQtR29zdFIzNDEwLTk0LWIiLE5JRF9pZF9Hb3N0UjM0MTBfOTRfYiw3LAotCSYobHZhbHVlc1s1NjM5XSksMH0sCisJJihsdmFsdWVzWzU2MzNdKSwwfSwKIHsiaWQtR29zdFIzNDEwLTk0LWJCaXMiLCJpZC1Hb3N0UjM0MTAtOTQtYkJpcyIsCi0JTklEX2lkX0dvc3RSMzQxMF85NF9iQmlzLDcsJihsdmFsdWVzWzU2NDZdKSwwfSwKKwlOSURfaWRfR29zdFIzNDEwXzk0X2JCaXMsNywmKGx2YWx1ZXNbNTY0MF0pLDB9LAogeyJpZC1Hb3N0MjgxNDctODktY2MiLCJHT1NUIDI4MTQ3LTg5IENyeXB0b2NvbSBQYXJhbVNldCIsCi0JTklEX2lkX0dvc3QyODE0N184OV9jYyw4LCYobHZhbHVlc1s1NjUzXSksMH0sCisJTklEX2lkX0dvc3QyODE0N184OV9jYyw4LCYobHZhbHVlc1s1NjQ3XSksMH0sCiB7Imdvc3Q5NGNjIiwiR09TVCAzNC4xMC05NCBDcnlwdG9jb20iLE5JRF9pZF9Hb3N0UjM0MTBfOTRfY2MsOCwKLQkmKGx2YWx1ZXNbNTY2MV0pLDB9LAorCSYobHZhbHVlc1s1NjU1XSksMH0sCiB7Imdvc3QyMDAxY2MiLCJHT1NUIDM0LjEwLTIwMDEgQ3J5cHRvY29tIixOSURfaWRfR29zdFIzNDEwXzIwMDFfY2MsOCwKLQkmKGx2YWx1ZXNbNTY2OV0pLDB9LAorCSYobHZhbHVlc1s1NjYzXSksMH0sCiB7ImlkLUdvc3RSMzQxMS05NC13aXRoLUdvc3RSMzQxMC05NC1jYyIsCiAJIkdPU1QgUiAzNC4xMS05NCB3aXRoIEdPU1QgUiAzNC4xMC05NCBDcnlwdG9jb20iLAotCU5JRF9pZF9Hb3N0UjM0MTFfOTRfd2l0aF9Hb3N0UjM0MTBfOTRfY2MsOCwmKGx2YWx1ZXNbNTY3N10pLDB9LAorCU5JRF9pZF9Hb3N0UjM0MTFfOTRfd2l0aF9Hb3N0UjM0MTBfOTRfY2MsOCwmKGx2YWx1ZXNbNTY3MV0pLDB9LAogeyJpZC1Hb3N0UjM0MTEtOTQtd2l0aC1Hb3N0UjM0MTAtMjAwMS1jYyIsCiAJIkdPU1QgUiAzNC4xMS05NCB3aXRoIEdPU1QgUiAzNC4xMC0yMDAxIENyeXB0b2NvbSIsCi0JTklEX2lkX0dvc3RSMzQxMV85NF93aXRoX0dvc3RSMzQxMF8yMDAxX2NjLDgsJihsdmFsdWVzWzU2ODVdKSwwfSwKKwlOSURfaWRfR29zdFIzNDExXzk0X3dpdGhfR29zdFIzNDEwXzIwMDFfY2MsOCwmKGx2YWx1ZXNbNTY3OV0pLDB9LAogeyJpZC1Hb3N0UjM0MTAtMjAwMS1QYXJhbVNldC1jYyIsCiAJIkdPU1QgUiAzNDEwLTIwMDEgUGFyYW1ldGVyIFNldCBDcnlwdG9jb20iLAotCU5JRF9pZF9Hb3N0UjM0MTBfMjAwMV9QYXJhbVNldF9jYyw4LCYobHZhbHVlc1s1NjkzXSksMH0sCisJTklEX2lkX0dvc3RSMzQxMF8yMDAxX1BhcmFtU2V0X2NjLDgsJihsdmFsdWVzWzU2ODddKSwwfSwKIHsiSE1BQyIsImhtYWMiLE5JRF9obWFjLDAsTlVMTCwwfSwKIHsiTG9jYWxLZXlTZXQiLCJNaWNyb3NvZnQgTG9jYWwgS2V5IHNldCIsTklEX0xvY2FsS2V5U2V0LDksCi0JJihsdmFsdWVzWzU3MDFdKSwwfSwKKwkmKGx2YWx1ZXNbNTY5NV0pLDB9LAogeyJmcmVzaGVzdENSTCIsIlg1MDl2MyBGcmVzaGVzdCBDUkwiLE5JRF9mcmVzaGVzdF9jcmwsMywKLQkmKGx2YWx1ZXNbNTcxMF0pLDB9LAorCSYobHZhbHVlc1s1NzA0XSksMH0sCiB7ImlkLW9uLXBlcm1hbmVudElkZW50aWZpZXIiLCJQZXJtYW5lbnQgSWRlbnRpZmllciIsCi0JTklEX2lkX29uX3Blcm1hbmVudElkZW50aWZpZXIsOCwmKGx2YWx1ZXNbNTcxM10pLDB9LAoteyJzZWFyY2hHdWlkZSIsInNlYXJjaEd1aWRlIixOSURfc2VhcmNoR3VpZGUsMywmKGx2YWx1ZXNbNTcyMV0pLDB9LAorCU5JRF9pZF9vbl9wZXJtYW5lbnRJZGVudGlmaWVyLDgsJihsdmFsdWVzWzU3MDddKSwwfSwKK3sic2VhcmNoR3VpZGUiLCJzZWFyY2hHdWlkZSIsTklEX3NlYXJjaEd1aWRlLDMsJihsdmFsdWVzWzU3MTVdKSwwfSwKIHsiYnVzaW5lc3NDYXRlZ29yeSIsImJ1c2luZXNzQ2F0ZWdvcnkiLE5JRF9idXNpbmVzc0NhdGVnb3J5LDMsCi0JJihsdmFsdWVzWzU3MjRdKSwwfSwKLXsicG9zdGFsQWRkcmVzcyIsInBvc3RhbEFkZHJlc3MiLE5JRF9wb3N0YWxBZGRyZXNzLDMsJihsdmFsdWVzWzU3MjddKSwwfSwKLXsicG9zdE9mZmljZUJveCIsInBvc3RPZmZpY2VCb3giLE5JRF9wb3N0T2ZmaWNlQm94LDMsJihsdmFsdWVzWzU3MzBdKSwwfSwKKwkmKGx2YWx1ZXNbNTcxOF0pLDB9LAoreyJwb3N0YWxBZGRyZXNzIiwicG9zdGFsQWRkcmVzcyIsTklEX3Bvc3RhbEFkZHJlc3MsMywmKGx2YWx1ZXNbNTcyMV0pLDB9LAoreyJwb3N0T2ZmaWNlQm94IiwicG9zdE9mZmljZUJveCIsTklEX3Bvc3RPZmZpY2VCb3gsMywmKGx2YWx1ZXNbNTcyNF0pLDB9LAogeyJwaHlzaWNhbERlbGl2ZXJ5T2ZmaWNlTmFtZSIsInBoeXNpY2FsRGVsaXZlcnlPZmZpY2VOYW1lIiwKLQlOSURfcGh5c2ljYWxEZWxpdmVyeU9mZmljZU5hbWUsMywmKGx2YWx1ZXNbNTczM10pLDB9LAorCU5JRF9waHlzaWNhbERlbGl2ZXJ5T2ZmaWNlTmFtZSwzLCYobHZhbHVlc1s1NzI3XSksMH0sCiB7InRlbGVwaG9uZU51bWJlciIsInRlbGVwaG9uZU51bWJlciIsTklEX3RlbGVwaG9uZU51bWJlciwzLAotCSYobHZhbHVlc1s1NzM2XSksMH0sCi17InRlbGV4TnVtYmVyIiwidGVsZXhOdW1iZXIiLE5JRF90ZWxleE51bWJlciwzLCYobHZhbHVlc1s1NzM5XSksMH0sCisJJihsdmFsdWVzWzU3MzBdKSwwfSwKK3sidGVsZXhOdW1iZXIiLCJ0ZWxleE51bWJlciIsTklEX3RlbGV4TnVtYmVyLDMsJihsdmFsdWVzWzU3MzNdKSwwfSwKIHsidGVsZXRleFRlcm1pbmFsSWRlbnRpZmllciIsInRlbGV0ZXhUZXJtaW5hbElkZW50aWZpZXIiLAotCU5JRF90ZWxldGV4VGVybWluYWxJZGVudGlmaWVyLDMsJihsdmFsdWVzWzU3NDJdKSwwfSwKKwlOSURfdGVsZXRleFRlcm1pbmFsSWRlbnRpZmllciwzLCYobHZhbHVlc1s1NzM2XSksMH0sCiB7ImZhY3NpbWlsZVRlbGVwaG9uZU51bWJlciIsImZhY3NpbWlsZVRlbGVwaG9uZU51bWJlciIsCi0JTklEX2ZhY3NpbWlsZVRlbGVwaG9uZU51bWJlciwzLCYobHZhbHVlc1s1NzQ1XSksMH0sCi17IngxMjFBZGRyZXNzIiwieDEyMUFkZHJlc3MiLE5JRF94MTIxQWRkcmVzcywzLCYobHZhbHVlc1s1NzQ4XSksMH0sCisJTklEX2ZhY3NpbWlsZVRlbGVwaG9uZU51bWJlciwzLCYobHZhbHVlc1s1NzM5XSksMH0sCit7IngxMjFBZGRyZXNzIiwieDEyMUFkZHJlc3MiLE5JRF94MTIxQWRkcmVzcywzLCYobHZhbHVlc1s1NzQyXSksMH0sCiB7ImludGVybmF0aW9uYWxpU0ROTnVtYmVyIiwiaW50ZXJuYXRpb25hbGlTRE5OdW1iZXIiLAotCU5JRF9pbnRlcm5hdGlvbmFsaVNETk51bWJlciwzLCYobHZhbHVlc1s1NzUxXSksMH0sCisJTklEX2ludGVybmF0aW9uYWxpU0ROTnVtYmVyLDMsJihsdmFsdWVzWzU3NDVdKSwwfSwKIHsicmVnaXN0ZXJlZEFkZHJlc3MiLCJyZWdpc3RlcmVkQWRkcmVzcyIsTklEX3JlZ2lzdGVyZWRBZGRyZXNzLDMsCi0JJihsdmFsdWVzWzU3NTRdKSwwfSwKKwkmKGx2YWx1ZXNbNTc0OF0pLDB9LAogeyJkZXN0aW5hdGlvbkluZGljYXRvciIsImRlc3RpbmF0aW9uSW5kaWNhdG9yIiwKLQlOSURfZGVzdGluYXRpb25JbmRpY2F0b3IsMywmKGx2YWx1ZXNbNTc1N10pLDB9LAorCU5JRF9kZXN0aW5hdGlvbkluZGljYXRvciwzLCYobHZhbHVlc1s1NzUxXSksMH0sCiB7InByZWZlcnJlZERlbGl2ZXJ5TWV0aG9kIiwicHJlZmVycmVkRGVsaXZlcnlNZXRob2QiLAotCU5JRF9wcmVmZXJyZWREZWxpdmVyeU1ldGhvZCwzLCYobHZhbHVlc1s1NzYwXSksMH0sCisJTklEX3ByZWZlcnJlZERlbGl2ZXJ5TWV0aG9kLDMsJihsdmFsdWVzWzU3NTRdKSwwfSwKIHsicHJlc2VudGF0aW9uQWRkcmVzcyIsInByZXNlbnRhdGlvbkFkZHJlc3MiLE5JRF9wcmVzZW50YXRpb25BZGRyZXNzLAotCTMsJihsdmFsdWVzWzU3NjNdKSwwfSwKKwkzLCYobHZhbHVlc1s1NzU3XSksMH0sCiB7InN1cHBvcnRlZEFwcGxpY2F0aW9uQ29udGV4dCIsInN1cHBvcnRlZEFwcGxpY2F0aW9uQ29udGV4dCIsCi0JTklEX3N1cHBvcnRlZEFwcGxpY2F0aW9uQ29udGV4dCwzLCYobHZhbHVlc1s1NzY2XSksMH0sCi17Im1lbWJlciIsIm1lbWJlciIsTklEX21lbWJlciwzLCYobHZhbHVlc1s1NzY5XSksMH0sCi17Im93bmVyIiwib3duZXIiLE5JRF9vd25lciwzLCYobHZhbHVlc1s1NzcyXSksMH0sCi17InJvbGVPY2N1cGFudCIsInJvbGVPY2N1cGFudCIsTklEX3JvbGVPY2N1cGFudCwzLCYobHZhbHVlc1s1Nzc1XSksMH0sCi17InNlZUFsc28iLCJzZWVBbHNvIixOSURfc2VlQWxzbywzLCYobHZhbHVlc1s1Nzc4XSksMH0sCi17InVzZXJQYXNzd29yZCIsInVzZXJQYXNzd29yZCIsTklEX3VzZXJQYXNzd29yZCwzLCYobHZhbHVlc1s1NzgxXSksMH0sCisJTklEX3N1cHBvcnRlZEFwcGxpY2F0aW9uQ29udGV4dCwzLCYobHZhbHVlc1s1NzYwXSksMH0sCit7Im1lbWJlciIsIm1lbWJlciIsTklEX21lbWJlciwzLCYobHZhbHVlc1s1NzYzXSksMH0sCit7Im93bmVyIiwib3duZXIiLE5JRF9vd25lciwzLCYobHZhbHVlc1s1NzY2XSksMH0sCit7InJvbGVPY2N1cGFudCIsInJvbGVPY2N1cGFudCIsTklEX3JvbGVPY2N1cGFudCwzLCYobHZhbHVlc1s1NzY5XSksMH0sCit7InNlZUFsc28iLCJzZWVBbHNvIixOSURfc2VlQWxzbywzLCYobHZhbHVlc1s1NzcyXSksMH0sCit7InVzZXJQYXNzd29yZCIsInVzZXJQYXNzd29yZCIsTklEX3VzZXJQYXNzd29yZCwzLCYobHZhbHVlc1s1Nzc1XSksMH0sCiB7InVzZXJDZXJ0aWZpY2F0ZSIsInVzZXJDZXJ0aWZpY2F0ZSIsTklEX3VzZXJDZXJ0aWZpY2F0ZSwzLAotCSYobHZhbHVlc1s1Nzg0XSksMH0sCi17ImNBQ2VydGlmaWNhdGUiLCJjQUNlcnRpZmljYXRlIixOSURfY0FDZXJ0aWZpY2F0ZSwzLCYobHZhbHVlc1s1Nzg3XSksMH0sCisJJihsdmFsdWVzWzU3NzhdKSwwfSwKK3siY0FDZXJ0aWZpY2F0ZSIsImNBQ2VydGlmaWNhdGUiLE5JRF9jQUNlcnRpZmljYXRlLDMsJihsdmFsdWVzWzU3ODFdKSwwfSwKIHsiYXV0aG9yaXR5UmV2b2NhdGlvbkxpc3QiLCJhdXRob3JpdHlSZXZvY2F0aW9uTGlzdCIsCi0JTklEX2F1dGhvcml0eVJldm9jYXRpb25MaXN0LDMsJihsdmFsdWVzWzU3OTBdKSwwfSwKKwlOSURfYXV0aG9yaXR5UmV2b2NhdGlvbkxpc3QsMywmKGx2YWx1ZXNbNTc4NF0pLDB9LAogeyJjZXJ0aWZpY2F0ZVJldm9jYXRpb25MaXN0IiwiY2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdCIsCi0JTklEX2NlcnRpZmljYXRlUmV2b2NhdGlvbkxpc3QsMywmKGx2YWx1ZXNbNTc5M10pLDB9LAorCU5JRF9jZXJ0aWZpY2F0ZVJldm9jYXRpb25MaXN0LDMsJihsdmFsdWVzWzU3ODddKSwwfSwKIHsiY3Jvc3NDZXJ0aWZpY2F0ZVBhaXIiLCJjcm9zc0NlcnRpZmljYXRlUGFpciIsCi0JTklEX2Nyb3NzQ2VydGlmaWNhdGVQYWlyLDMsJihsdmFsdWVzWzU3OTZdKSwwfSwKKwlOSURfY3Jvc3NDZXJ0aWZpY2F0ZVBhaXIsMywmKGx2YWx1ZXNbNTc5MF0pLDB9LAogeyJlbmhhbmNlZFNlYXJjaEd1aWRlIiwiZW5oYW5jZWRTZWFyY2hHdWlkZSIsTklEX2VuaGFuY2VkU2VhcmNoR3VpZGUsCi0JMywmKGx2YWx1ZXNbNTc5OV0pLDB9LAorCTMsJihsdmFsdWVzWzU3OTNdKSwwfSwKIHsicHJvdG9jb2xJbmZvcm1hdGlvbiIsInByb3RvY29sSW5mb3JtYXRpb24iLE5JRF9wcm90b2NvbEluZm9ybWF0aW9uLAotCTMsJihsdmFsdWVzWzU4MDJdKSwwfSwKKwkzLCYobHZhbHVlc1s1Nzk2XSksMH0sCiB7ImRpc3Rpbmd1aXNoZWROYW1lIiwiZGlzdGluZ3Vpc2hlZE5hbWUiLE5JRF9kaXN0aW5ndWlzaGVkTmFtZSwzLAotCSYobHZhbHVlc1s1ODA1XSksMH0sCi17InVuaXF1ZU1lbWJlciIsInVuaXF1ZU1lbWJlciIsTklEX3VuaXF1ZU1lbWJlciwzLCYobHZhbHVlc1s1ODA4XSksMH0sCisJJihsdmFsdWVzWzU3OTldKSwwfSwKK3sidW5pcXVlTWVtYmVyIiwidW5pcXVlTWVtYmVyIixOSURfdW5pcXVlTWVtYmVyLDMsJihsdmFsdWVzWzU4MDJdKSwwfSwKIHsiaG91c2VJZGVudGlmaWVyIiwiaG91c2VJZGVudGlmaWVyIixOSURfaG91c2VJZGVudGlmaWVyLDMsCi0JJihsdmFsdWVzWzU4MTFdKSwwfSwKKwkmKGx2YWx1ZXNbNTgwNV0pLDB9LAogeyJzdXBwb3J0ZWRBbGdvcml0aG1zIiwic3VwcG9ydGVkQWxnb3JpdGhtcyIsTklEX3N1cHBvcnRlZEFsZ29yaXRobXMsCi0JMywmKGx2YWx1ZXNbNTgxNF0pLDB9LAorCTMsJihsdmFsdWVzWzU4MDhdKSwwfSwKIHsiZGVsdGFSZXZvY2F0aW9uTGlzdCIsImRlbHRhUmV2b2NhdGlvbkxpc3QiLE5JRF9kZWx0YVJldm9jYXRpb25MaXN0LAotCTMsJihsdmFsdWVzWzU4MTddKSwwfSwKLXsiZG1kTmFtZSIsImRtZE5hbWUiLE5JRF9kbWROYW1lLDMsJihsdmFsdWVzWzU4MjBdKSwwfSwKKwkzLCYobHZhbHVlc1s1ODExXSksMH0sCit7ImRtZE5hbWUiLCJkbWROYW1lIixOSURfZG1kTmFtZSwzLCYobHZhbHVlc1s1ODE0XSksMH0sCiB7ImlkLWFsZy1QV1JJLUtFSyIsImlkLWFsZy1QV1JJLUtFSyIsTklEX2lkX2FsZ19QV1JJX0tFSywxMSwKLQkmKGx2YWx1ZXNbNTgyM10pLDB9LAorCSYobHZhbHVlc1s1ODE3XSksMH0sCiB7IkNNQUMiLCJjbWFjIixOSURfY21hYywwLE5VTEwsMH0sCi17ImlkLWFlczEyOC1HQ00iLCJhZXMtMTI4LWdjbSIsTklEX2Flc18xMjhfZ2NtLDksJihsdmFsdWVzWzU4MzRdKSwwfSwKLXsiaWQtYWVzMTI4LUNDTSIsImFlcy0xMjgtY2NtIixOSURfYWVzXzEyOF9jY20sOSwmKGx2YWx1ZXNbNTg0M10pLDB9LAoreyJpZC1hZXMxMjgtR0NNIiwiYWVzLTEyOC1nY20iLE5JRF9hZXNfMTI4X2djbSw5LCYobHZhbHVlc1s1ODI4XSksMH0sCit7ImlkLWFlczEyOC1DQ00iLCJhZXMtMTI4LWNjbSIsTklEX2Flc18xMjhfY2NtLDksJihsdmFsdWVzWzU4MzddKSwwfSwKIHsiaWQtYWVzMTI4LXdyYXAtcGFkIiwiaWQtYWVzMTI4LXdyYXAtcGFkIixOSURfaWRfYWVzMTI4X3dyYXBfcGFkLDksCi0JJihsdmFsdWVzWzU4NTJdKSwwfSwKLXsiaWQtYWVzMTkyLUdDTSIsImFlcy0xOTItZ2NtIixOSURfYWVzXzE5Ml9nY20sOSwmKGx2YWx1ZXNbNTg2MV0pLDB9LAoteyJpZC1hZXMxOTItQ0NNIiwiYWVzLTE5Mi1jY20iLE5JRF9hZXNfMTkyX2NjbSw5LCYobHZhbHVlc1s1ODcwXSksMH0sCisJJihsdmFsdWVzWzU4NDZdKSwwfSwKK3siaWQtYWVzMTkyLUdDTSIsImFlcy0xOTItZ2NtIixOSURfYWVzXzE5Ml9nY20sOSwmKGx2YWx1ZXNbNTg1NV0pLDB9LAoreyJpZC1hZXMxOTItQ0NNIiwiYWVzLTE5Mi1jY20iLE5JRF9hZXNfMTkyX2NjbSw5LCYobHZhbHVlc1s1ODY0XSksMH0sCiB7ImlkLWFlczE5Mi13cmFwLXBhZCIsImlkLWFlczE5Mi13cmFwLXBhZCIsTklEX2lkX2FlczE5Ml93cmFwX3BhZCw5LAotCSYobHZhbHVlc1s1ODc5XSksMH0sCi17ImlkLWFlczI1Ni1HQ00iLCJhZXMtMjU2LWdjbSIsTklEX2Flc18yNTZfZ2NtLDksJihsdmFsdWVzWzU4ODhdKSwwfSwKLXsiaWQtYWVzMjU2LUNDTSIsImFlcy0yNTYtY2NtIixOSURfYWVzXzI1Nl9jY20sOSwmKGx2YWx1ZXNbNTg5N10pLDB9LAorCSYobHZhbHVlc1s1ODczXSksMH0sCit7ImlkLWFlczI1Ni1HQ00iLCJhZXMtMjU2LWdjbSIsTklEX2Flc18yNTZfZ2NtLDksJihsdmFsdWVzWzU4ODJdKSwwfSwKK3siaWQtYWVzMjU2LUNDTSIsImFlcy0yNTYtY2NtIixOSURfYWVzXzI1Nl9jY20sOSwmKGx2YWx1ZXNbNTg5MV0pLDB9LAogeyJpZC1hZXMyNTYtd3JhcC1wYWQiLCJpZC1hZXMyNTYtd3JhcC1wYWQiLE5JRF9pZF9hZXMyNTZfd3JhcF9wYWQsOSwKLQkmKGx2YWx1ZXNbNTkwNl0pLDB9LAorCSYobHZhbHVlc1s1OTAwXSksMH0sCiB7IkFFUy0xMjgtQ1RSIiwiYWVzLTEyOC1jdHIiLE5JRF9hZXNfMTI4X2N0ciwwLE5VTEwsMH0sCiB7IkFFUy0xOTItQ1RSIiwiYWVzLTE5Mi1jdHIiLE5JRF9hZXNfMTkyX2N0ciwwLE5VTEwsMH0sCiB7IkFFUy0yNTYtQ1RSIiwiYWVzLTI1Ni1jdHIiLE5JRF9hZXNfMjU2X2N0ciwwLE5VTEwsMH0sCiB7ImlkLWNhbWVsbGlhMTI4LXdyYXAiLCJpZC1jYW1lbGxpYTEyOC13cmFwIixOSURfaWRfY2FtZWxsaWExMjhfd3JhcCwKLQkxMSwmKGx2YWx1ZXNbNTkxNV0pLDB9LAorCTExLCYobHZhbHVlc1s1OTA5XSksMH0sCiB7ImlkLWNhbWVsbGlhMTkyLXdyYXAiLCJpZC1jYW1lbGxpYTE5Mi13cmFwIixOSURfaWRfY2FtZWxsaWExOTJfd3JhcCwKLQkxMSwmKGx2YWx1ZXNbNTkyNl0pLDB9LAorCTExLCYobHZhbHVlc1s1OTIwXSksMH0sCiB7ImlkLWNhbWVsbGlhMjU2LXdyYXAiLCJpZC1jYW1lbGxpYTI1Ni13cmFwIixOSURfaWRfY2FtZWxsaWEyNTZfd3JhcCwKLQkxMSwmKGx2YWx1ZXNbNTkzN10pLDB9LAorCTExLCYobHZhbHVlc1s1OTMxXSksMH0sCiB7ImFueUV4dGVuZGVkS2V5VXNhZ2UiLCJBbnkgRXh0ZW5kZWQgS2V5IFVzYWdlIiwKLQlOSURfYW55RXh0ZW5kZWRLZXlVc2FnZSw0LCYobHZhbHVlc1s1OTQ4XSksMH0sCi17Ik1HRjEiLCJtZ2YxIixOSURfbWdmMSw5LCYobHZhbHVlc1s1OTUyXSksMH0sCi17IlJTQVNTQS1QU1MiLCJyc2Fzc2FQc3MiLE5JRF9yc2Fzc2FQc3MsOSwmKGx2YWx1ZXNbNTk2MV0pLDB9LAorCU5JRF9hbnlFeHRlbmRlZEtleVVzYWdlLDQsJihsdmFsdWVzWzU5NDJdKSwwfSwKK3siTUdGMSIsIm1nZjEiLE5JRF9tZ2YxLDksJihsdmFsdWVzWzU5NDZdKSwwfSwKK3siUlNBU1NBLVBTUyIsInJzYXNzYVBzcyIsTklEX3JzYXNzYVBzcyw5LCYobHZhbHVlc1s1OTU1XSksMH0sCiB7IkFFUy0xMjgtWFRTIiwiYWVzLTEyOC14dHMiLE5JRF9hZXNfMTI4X3h0cywwLE5VTEwsMH0sCiB7IkFFUy0yNTYtWFRTIiwiYWVzLTI1Ni14dHMiLE5JRF9hZXNfMjU2X3h0cywwLE5VTEwsMH0sCiB7IlJDNC1ITUFDLU1ENSIsInJjNC1obWFjLW1kNSIsTklEX3JjNF9obWFjX21kNSwwLE5VTEwsMH0sCkBAIC0yNDA1LDcgKzIzOTgsNyBAQAogCU5JRF9hZXNfMTkyX2NiY19obWFjX3NoYTEsMCxOVUxMLDB9LAogeyJBRVMtMjU2LUNCQy1ITUFDLVNIQTEiLCJhZXMtMjU2LWNiYy1obWFjLXNoYTEiLAogCU5JRF9hZXNfMjU2X2NiY19obWFjX3NoYTEsMCxOVUxMLDB9LAoteyJSU0FFUy1PQUVQIiwicnNhZXNPYWVwIixOSURfcnNhZXNPYWVwLDksJihsdmFsdWVzWzU5NzBdKSwwfSwKK3siUlNBRVMtT0FFUCIsInJzYWVzT2FlcCIsTklEX3JzYWVzT2FlcCw5LCYobHZhbHVlc1s1OTY0XSksMH0sCiB9OwogCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IHNuX29ianNbTlVNX1NOXT17CkBAIC00MjQyLDE1ICs0MjM1LDE1IEBACiAKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgb2JqX29ianNbTlVNX09CSl09ewogIDAsCS8qIE9CSl91bmRlZiAgICAgICAgICAgICAgICAgICAgICAgIDAgKi8KKzE4MSwJLyogT0JKX2lzbyAgICAgICAgICAgICAgICAgICAgICAgICAgMSAqLwogMzkzLAkvKiBPQkpfam9pbnRfaXNvX2NjaXR0ICAgICAgICAgICAgICBPQkpfam9pbnRfaXNvX2l0dV90ICovCiA0MDQsCS8qIE9CSl9jY2l0dCAgICAgICAgICAgICAgICAgICAgICAgIE9CSl9pdHVfdCAqLwogNjQ1LAkvKiBPQkpfaXR1X3QgICAgICAgICAgICAgICAgICAgICAgICAwICovCis2NDYsCS8qIE9CSl9qb2ludF9pc29faXR1X3QgICAgICAgICAgICAgIDIgKi8KIDQzNCwJLyogT0JKX2RhdGEgICAgICAgICAgICAgICAgICAgICAgICAgMCA5ICovCi0xODEsCS8qIE9CSl9pc28gICAgICAgICAgICAgICAgICAgICAgICAgIDEgKi8KIDE4MiwJLyogT0JKX21lbWJlcl9ib2R5ICAgICAgICAgICAgICAgICAgMSAyICovCiAzNzksCS8qIE9CSl9vcmcgICAgICAgICAgICAgICAgICAgICAgICAgIDEgMyAqLwogNjc2LAkvKiBPQkpfaWRlbnRpZmllZF9vcmdhbml6YXRpb24gICAgICAxIDMgKi8KLTY0NiwJLyogT0JKX2pvaW50X2lzb19pdHVfdCAgICAgICAgICAgICAgMiAqLwogMTEsCS8qIE9CSl9YNTAwICAgICAgICAgICAgICAgICAgICAgICAgIDIgNSAqLwogNjQ3LAkvKiBPQkpfaW50ZXJuYXRpb25hbF9vcmdhbml6YXRpb25zICAyIDIzICovCiAzODAsCS8qIE9CSl9kb2QgICAgICAgICAgICAgICAgICAgICAgICAgIDEgMyA2ICovCmRpZmYgLS1naXQgYS9jcnlwdG8vb2JqZWN0cy9vYmpfZGF0LnBsIGIvY3J5cHRvL29iamVjdHMvb2JqX2RhdC5wbAppbmRleCBjNjdmNzFjLi44NmJjZWZiIDEwMDY0NAotLS0gYS9jcnlwdG8vb2JqZWN0cy9vYmpfZGF0LnBsCisrKyBiL2NyeXB0by9vYmplY3RzL29ial9kYXQucGwKQEAgLTExNSw3ICsxMTUsNyBAQAogCQkkb3V0Lj0iXCIkc25cIiI7CiAJCSRvdXQuPSIsIi4iXCIkbG5cIiI7CiAJCSRvdXQuPSIsTklEXyRuaWR7JGl9LCI7Ci0JCWlmIChkZWZpbmVkKCRvYmp7JG5pZHskaX19KSkKKwkJaWYgKGRlZmluZWQoJG9ianskbmlkeyRpfX0pICYmICRvYmpkeyRvYmp7JG5pZHskaX19fSA9fiAvLC8pCiAJCQl7CiAJCQkkdj0kb2JqZHskb2JqeyRuaWR7JGl9fX07CiAJCQkkdiA9fiBzL0wvL2c7CmRpZmYgLS1naXQgYS9jcnlwdG8vb2NzcC9vY3NwX2h0LmMgYi9jcnlwdG8vb2NzcC9vY3NwX2h0LmMKaW5kZXggYWY1ZmMxNi4uMDllYjg1NSAxMDA2NDQKLS0tIGEvY3J5cHRvL29jc3Avb2NzcF9odC5jCisrKyBiL2NyeXB0by9vY3NwL29jc3BfaHQuYwpAQCAtMTU4LDYgKzE1OCw4IEBACiAKIAlPQ1NQX1JFUV9DVFggKnJjdHg7CiAJcmN0eCA9IE9QRU5TU0xfbWFsbG9jKHNpemVvZihPQ1NQX1JFUV9DVFgpKTsKKwlpZiAoIXJjdHgpCisJCXJldHVybiBOVUxMOwogCXJjdHgtPnN0YXRlID0gT0hTX0VSUk9SOwogCXJjdHgtPm1lbSA9IEJJT19uZXcoQklPX3NfbWVtKCkpOwogCXJjdHgtPmlvID0gaW87CkBAIC0xNjcsMTggKzE2OSwyMSBAQAogCWVsc2UKIAkJcmN0eC0+aW9idWZsZW4gPSBPQ1NQX01BWF9MSU5FX0xFTjsKIAlyY3R4LT5pb2J1ZiA9IE9QRU5TU0xfbWFsbG9jKHJjdHgtPmlvYnVmbGVuKTsKLQlpZiAoIXJjdHgtPmlvYnVmKQotCQlyZXR1cm4gMDsKKwlpZiAoIXJjdHgtPm1lbSB8fCAhcmN0eC0+aW9idWYpCisJCWdvdG8gZXJyOwogCWlmICghcGF0aCkKIAkJcGF0aCA9ICIvIjsKIAogICAgICAgICBpZiAoQklPX3ByaW50ZihyY3R4LT5tZW0sIHBvc3RfaGRyLCBwYXRoKSA8PSAwKQotCQlyZXR1cm4gMDsKKwkJZ290byBlcnI7CiAKIAlpZiAocmVxICYmICFPQ1NQX1JFUV9DVFhfc2V0MV9yZXEocmN0eCwgcmVxKSkKLQkJcmV0dXJuIDA7CisJCWdvdG8gZXJyOwogCiAJcmV0dXJuIHJjdHg7CisJZXJyOgorCU9DU1BfUkVRX0NUWF9mcmVlKHJjdHgpOworCXJldHVybiBOVUxMOwogCX0KIAogLyogUGFyc2UgdGhlIEhUVFAgcmVzcG9uc2UuIFRoaXMgd2lsbCBsb29rIGxpa2UgdGhpczoKQEAgLTQ5MCw2ICs0OTUsOSBAQAogCiAJY3R4ID0gT0NTUF9zZW5kcmVxX25ldyhiLCBwYXRoLCByZXEsIC0xKTsKIAorCWlmICghY3R4KQorCQlyZXR1cm4gTlVMTDsKKwogCWRvCiAJCXsKIAkJcnYgPSBPQ1NQX3NlbmRyZXFfbmJpbygmcmVzcCwgY3R4KTsKZGlmZiAtLWdpdCBhL2NyeXB0by9vY3NwL29jc3BfbGliLmMgYi9jcnlwdG8vb2NzcC9vY3NwX2xpYi5jCmluZGV4IGE5NGRjODMuLjUwNjFjMDUgMTAwNjQ0Ci0tLSBhL2NyeXB0by9vY3NwL29jc3BfbGliLmMKKysrIGIvY3J5cHRvL29jc3Avb2NzcF9saWIuYwpAQCAtMjIyLDggKzIyMiwxOSBAQAogCiAJaWYgKCEqcHBhdGgpIGdvdG8gbWVtX2VycjsKIAorCXAgPSBob3N0OworCWlmKGhvc3RbMF0gPT0gJ1snKQorCQl7CisJCS8qIGlwdjYgbGl0ZXJhbCAqLworCQlob3N0Kys7CisJCXAgPSBzdHJjaHIoaG9zdCwgJ10nKTsKKwkJaWYoIXApIGdvdG8gcGFyc2VfZXJyOworCQkqcCA9ICdcMCc7CisJCXArKzsKKwkJfQorCiAJLyogTG9vayBmb3Igb3B0aW9uYWwgJzonIGZvciBwb3J0IG51bWJlciAqLwotCWlmICgocCA9IHN0cmNocihob3N0LCAnOicpKSkKKwlpZiAoKHAgPSBzdHJjaHIocCwgJzonKSkpCiAJCXsKIAkJKnAgPSAwOwogCQlwb3J0ID0gcCArIDE7CmRpZmYgLS1naXQgYS9jcnlwdG8vb2NzcC9vY3NwX3ZmeS5jIGIvY3J5cHRvL29jc3Avb2NzcF92ZnkuYwppbmRleCAyNzY3MTgzLi5mYzBkNGNjIDEwMDY0NAotLS0gYS9jcnlwdG8vb2NzcC9vY3NwX3ZmeS5jCisrKyBiL2NyeXB0by9vY3NwL29jc3BfdmZ5LmMKQEAgLTQzNiw4ICs0MzYsMTEgQEAKIAlpZighKGZsYWdzICYgT0NTUF9OT0lOVEVSTikpCiAJCXsKIAkJc2lnbmVyID0gWDUwOV9maW5kX2J5X3N1YmplY3QocmVxLT5vcHRpb25hbFNpZ25hdHVyZS0+Y2VydHMsIG5tKTsKLQkJKnBzaWduZXIgPSBzaWduZXI7Ci0JCXJldHVybiAxOworCQlpZiAoc2lnbmVyKQorCQkJeworCQkJKnBzaWduZXIgPSBzaWduZXI7CisJCQlyZXR1cm4gMTsKKwkJCX0KIAkJfQogCiAJc2lnbmVyID0gWDUwOV9maW5kX2J5X3N1YmplY3QoY2VydHMsIG5tKTsKZGlmZiAtLWdpdCBhL2NyeXB0by9vcGVuc3NsY29uZi0zMi5oIGIvY3J5cHRvL29wZW5zc2xjb25mLTMyLmgKaW5kZXggY2FmNmYxYi4uYjViM2RkMmIgMTAwNjQ0Ci0tLSBhL2NyeXB0by9vcGVuc3NsY29uZi0zMi5oCisrKyBiL2NyeXB0by9vcGVuc3NsY29uZi0zMi5oCkBAIC0xLDYgKzEsOSBAQAogLyogb3BlbnNzbGNvbmYuaCAqLwogLyogV0FSTklORzogR2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgZnJvbSBvcGVuc3NsY29uZi5oLmluIGJ5IENvbmZpZ3VyZS4gKi8KIAorI2lmZGVmICBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKIC8qIE9wZW5TU0wgd2FzIGNvbmZpZ3VyZWQgd2l0aCB0aGUgZm9sbG93aW5nIG9wdGlvbnM6ICovCiAjaWZuZGVmIE9QRU5TU0xfRE9JTkdfTUFLRURFUEVORAogCkBAIC03NCw2ICs3Nyw5IEBACiAjaWZuZGVmIE9QRU5TU0xfTk9fU1RPUkUKICMgZGVmaW5lIE9QRU5TU0xfTk9fU1RPUkUKICNlbmRpZgorI2lmbmRlZiBPUEVOU1NMX05PX1VOSVRfVEVTVAorIyBkZWZpbmUgT1BFTlNTTF9OT19VTklUX1RFU1QKKyNlbmRpZgogI2lmbmRlZiBPUEVOU1NMX05PX1dISVJMUE9PTAogIyBkZWZpbmUgT1BFTlNTTF9OT19XSElSTFBPT0wKICNlbmRpZgpAQCAtMTYxLDYgKzE2Nyw5IEBACiAjIGlmIGRlZmluZWQoT1BFTlNTTF9OT19TVE9SRSkgJiYgIWRlZmluZWQoTk9fU1RPUkUpCiAjICBkZWZpbmUgTk9fU1RPUkUKICMgZW5kaWYKKyMgaWYgZGVmaW5lZChPUEVOU1NMX05PX1VOSVRfVEVTVCkgJiYgIWRlZmluZWQoTk9fVU5JVF9URVNUKQorIyAgZGVmaW5lIE5PX1VOSVRfVEVTVAorIyBlbmRpZgogIyBpZiBkZWZpbmVkKE9QRU5TU0xfTk9fV0hJUkxQT09MKSAmJiAhZGVmaW5lZChOT19XSElSTFBPT0wpCiAjICBkZWZpbmUgTk9fV0hJUkxQT09MCiAjIGVuZGlmCkBAIC0zMjAsMyArMzI5LDYgQEAKIAogI2VuZGlmIC8qIERFU19ERUZBVUxUX09QVElPTlMgKi8KICNlbmRpZiAvKiBIRUFERVJfREVTX0xPQ0xfSCAqLworI2lmZGVmICBfX2NwbHVzcGx1cworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9jcnlwdG8vb3BlbnNzbGNvbmYtNjQuaCBiL2NyeXB0by9vcGVuc3NsY29uZi02NC5oCmluZGV4IDg4ZmIwNDEuLjMwZTdhZDggMTAwNjQ0Ci0tLSBhL2NyeXB0by9vcGVuc3NsY29uZi02NC5oCisrKyBiL2NyeXB0by9vcGVuc3NsY29uZi02NC5oCkBAIC0xLDYgKzEsOSBAQAogLyogb3BlbnNzbGNvbmYuaCAqLwogLyogV0FSTklORzogR2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgZnJvbSBvcGVuc3NsY29uZi5oLmluIGJ5IENvbmZpZ3VyZS4gKi8KIAorI2lmZGVmICBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKIC8qIE9wZW5TU0wgd2FzIGNvbmZpZ3VyZWQgd2l0aCB0aGUgZm9sbG93aW5nIG9wdGlvbnM6ICovCiAjaWZuZGVmIE9QRU5TU0xfRE9JTkdfTUFLRURFUEVORAogCkBAIC03NCw2ICs3Nyw5IEBACiAjaWZuZGVmIE9QRU5TU0xfTk9fU1RPUkUKICMgZGVmaW5lIE9QRU5TU0xfTk9fU1RPUkUKICNlbmRpZgorI2lmbmRlZiBPUEVOU1NMX05PX1VOSVRfVEVTVAorIyBkZWZpbmUgT1BFTlNTTF9OT19VTklUX1RFU1QKKyNlbmRpZgogI2lmbmRlZiBPUEVOU1NMX05PX1dISVJMUE9PTAogIyBkZWZpbmUgT1BFTlNTTF9OT19XSElSTFBPT0wKICNlbmRpZgpAQCAtMTYxLDYgKzE2Nyw5IEBACiAjIGlmIGRlZmluZWQoT1BFTlNTTF9OT19TVE9SRSkgJiYgIWRlZmluZWQoTk9fU1RPUkUpCiAjICBkZWZpbmUgTk9fU1RPUkUKICMgZW5kaWYKKyMgaWYgZGVmaW5lZChPUEVOU1NMX05PX1VOSVRfVEVTVCkgJiYgIWRlZmluZWQoTk9fVU5JVF9URVNUKQorIyAgZGVmaW5lIE5PX1VOSVRfVEVTVAorIyBlbmRpZgogIyBpZiBkZWZpbmVkKE9QRU5TU0xfTk9fV0hJUkxQT09MKSAmJiAhZGVmaW5lZChOT19XSElSTFBPT0wpCiAjICBkZWZpbmUgTk9fV0hJUkxQT09MCiAjIGVuZGlmCkBAIC0zMjAsMyArMzI5LDYgQEAKIAogI2VuZGlmIC8qIERFU19ERUZBVUxUX09QVElPTlMgKi8KICNlbmRpZiAvKiBIRUFERVJfREVTX0xPQ0xfSCAqLworI2lmZGVmICBfX2NwbHVzcGx1cworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9jcnlwdG8vb3BlbnNzbGNvbmYtc3RhdGljLTMyLmggYi9jcnlwdG8vb3BlbnNzbGNvbmYtc3RhdGljLTMyLmgKaW5kZXggY2FmNmYxYi4uYjViM2RkMmIgMTAwNjQ0Ci0tLSBhL2NyeXB0by9vcGVuc3NsY29uZi1zdGF0aWMtMzIuaAorKysgYi9jcnlwdG8vb3BlbnNzbGNvbmYtc3RhdGljLTMyLmgKQEAgLTEsNiArMSw5IEBACiAvKiBvcGVuc3NsY29uZi5oICovCiAvKiBXQVJOSU5HOiBHZW5lcmF0ZWQgYXV0b21hdGljYWxseSBmcm9tIG9wZW5zc2xjb25mLmguaW4gYnkgQ29uZmlndXJlLiAqLwogCisjaWZkZWYgIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgogLyogT3BlblNTTCB3YXMgY29uZmlndXJlZCB3aXRoIHRoZSBmb2xsb3dpbmcgb3B0aW9uczogKi8KICNpZm5kZWYgT1BFTlNTTF9ET0lOR19NQUtFREVQRU5ECiAKQEAgLTc0LDYgKzc3LDkgQEAKICNpZm5kZWYgT1BFTlNTTF9OT19TVE9SRQogIyBkZWZpbmUgT1BFTlNTTF9OT19TVE9SRQogI2VuZGlmCisjaWZuZGVmIE9QRU5TU0xfTk9fVU5JVF9URVNUCisjIGRlZmluZSBPUEVOU1NMX05PX1VOSVRfVEVTVAorI2VuZGlmCiAjaWZuZGVmIE9QRU5TU0xfTk9fV0hJUkxQT09MCiAjIGRlZmluZSBPUEVOU1NMX05PX1dISVJMUE9PTAogI2VuZGlmCkBAIC0xNjEsNiArMTY3LDkgQEAKICMgaWYgZGVmaW5lZChPUEVOU1NMX05PX1NUT1JFKSAmJiAhZGVmaW5lZChOT19TVE9SRSkKICMgIGRlZmluZSBOT19TVE9SRQogIyBlbmRpZgorIyBpZiBkZWZpbmVkKE9QRU5TU0xfTk9fVU5JVF9URVNUKSAmJiAhZGVmaW5lZChOT19VTklUX1RFU1QpCisjICBkZWZpbmUgTk9fVU5JVF9URVNUCisjIGVuZGlmCiAjIGlmIGRlZmluZWQoT1BFTlNTTF9OT19XSElSTFBPT0wpICYmICFkZWZpbmVkKE5PX1dISVJMUE9PTCkKICMgIGRlZmluZSBOT19XSElSTFBPT0wKICMgZW5kaWYKQEAgLTMyMCwzICszMjksNiBAQAogCiAjZW5kaWYgLyogREVTX0RFRkFVTFRfT1BUSU9OUyAqLwogI2VuZGlmIC8qIEhFQURFUl9ERVNfTE9DTF9IICovCisjaWZkZWYgIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL2NyeXB0by9vcGVuc3NsY29uZi1zdGF0aWMtNjQuaCBiL2NyeXB0by9vcGVuc3NsY29uZi1zdGF0aWMtNjQuaAppbmRleCA4OGZiMDQxLi4zMGU3YWQ4IDEwMDY0NAotLS0gYS9jcnlwdG8vb3BlbnNzbGNvbmYtc3RhdGljLTY0LmgKKysrIGIvY3J5cHRvL29wZW5zc2xjb25mLXN0YXRpYy02NC5oCkBAIC0xLDYgKzEsOSBAQAogLyogb3BlbnNzbGNvbmYuaCAqLwogLyogV0FSTklORzogR2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgZnJvbSBvcGVuc3NsY29uZi5oLmluIGJ5IENvbmZpZ3VyZS4gKi8KIAorI2lmZGVmICBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKIC8qIE9wZW5TU0wgd2FzIGNvbmZpZ3VyZWQgd2l0aCB0aGUgZm9sbG93aW5nIG9wdGlvbnM6ICovCiAjaWZuZGVmIE9QRU5TU0xfRE9JTkdfTUFLRURFUEVORAogCkBAIC03NCw2ICs3Nyw5IEBACiAjaWZuZGVmIE9QRU5TU0xfTk9fU1RPUkUKICMgZGVmaW5lIE9QRU5TU0xfTk9fU1RPUkUKICNlbmRpZgorI2lmbmRlZiBPUEVOU1NMX05PX1VOSVRfVEVTVAorIyBkZWZpbmUgT1BFTlNTTF9OT19VTklUX1RFU1QKKyNlbmRpZgogI2lmbmRlZiBPUEVOU1NMX05PX1dISVJMUE9PTAogIyBkZWZpbmUgT1BFTlNTTF9OT19XSElSTFBPT0wKICNlbmRpZgpAQCAtMTYxLDYgKzE2Nyw5IEBACiAjIGlmIGRlZmluZWQoT1BFTlNTTF9OT19TVE9SRSkgJiYgIWRlZmluZWQoTk9fU1RPUkUpCiAjICBkZWZpbmUgTk9fU1RPUkUKICMgZW5kaWYKKyMgaWYgZGVmaW5lZChPUEVOU1NMX05PX1VOSVRfVEVTVCkgJiYgIWRlZmluZWQoTk9fVU5JVF9URVNUKQorIyAgZGVmaW5lIE5PX1VOSVRfVEVTVAorIyBlbmRpZgogIyBpZiBkZWZpbmVkKE9QRU5TU0xfTk9fV0hJUkxQT09MKSAmJiAhZGVmaW5lZChOT19XSElSTFBPT0wpCiAjICBkZWZpbmUgTk9fV0hJUkxQT09MCiAjIGVuZGlmCkBAIC0zMjAsMyArMzI5LDYgQEAKIAogI2VuZGlmIC8qIERFU19ERUZBVUxUX09QVElPTlMgKi8KICNlbmRpZiAvKiBIRUFERVJfREVTX0xPQ0xfSCAqLworI2lmZGVmICBfX2NwbHVzcGx1cworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9jcnlwdG8vb3BlbnNzbGNvbmYtc3RhdGljLXRydXN0eS5oIGIvY3J5cHRvL29wZW5zc2xjb25mLXN0YXRpYy10cnVzdHkuaAppbmRleCAwNmY5Zjk4Li5iZmY1OTEwIDEwMDY0NAotLS0gYS9jcnlwdG8vb3BlbnNzbGNvbmYtc3RhdGljLXRydXN0eS5oCisrKyBiL2NyeXB0by9vcGVuc3NsY29uZi1zdGF0aWMtdHJ1c3R5LmgKQEAgLTEsNiArMSw5IEBACiAvKiBvcGVuc3NsY29uZi5oICovCiAvKiBXQVJOSU5HOiBHZW5lcmF0ZWQgYXV0b21hdGljYWxseSBmcm9tIG9wZW5zc2xjb25mLmguaW4gYnkgQ29uZmlndXJlLiAqLwogCisjaWZkZWYgIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgogLyogT3BlblNTTCB3YXMgY29uZmlndXJlZCB3aXRoIHRoZSBmb2xsb3dpbmcgb3B0aW9uczogKi8KICNpZm5kZWYgT1BFTlNTTF9ET0lOR19NQUtFREVQRU5ECiAKQEAgLTEzNyw2ICsxNDAsOSBAQAogI2lmbmRlZiBPUEVOU1NMX05PX1VJCiAjIGRlZmluZSBPUEVOU1NMX05PX1VJCiAjZW5kaWYKKyNpZm5kZWYgT1BFTlNTTF9OT19VTklUX1RFU1QKKyMgZGVmaW5lIE9QRU5TU0xfTk9fVU5JVF9URVNUCisjZW5kaWYKICNpZm5kZWYgT1BFTlNTTF9OT19XSElSTFBPT0wKICMgZGVmaW5lIE9QRU5TU0xfTk9fV0hJUkxQT09MCiAjZW5kaWYKQEAgLTI4Nyw2ICsyOTMsOSBAQAogIyBpZiBkZWZpbmVkKE9QRU5TU0xfTk9fVUkpICYmICFkZWZpbmVkKE5PX1VJKQogIyAgZGVmaW5lIE5PX1VJCiAjIGVuZGlmCisjIGlmIGRlZmluZWQoT1BFTlNTTF9OT19VTklUX1RFU1QpICYmICFkZWZpbmVkKE5PX1VOSVRfVEVTVCkKKyMgIGRlZmluZSBOT19VTklUX1RFU1QKKyMgZW5kaWYKICMgaWYgZGVmaW5lZChPUEVOU1NMX05PX1dISVJMUE9PTCkgJiYgIWRlZmluZWQoTk9fV0hJUkxQT09MKQogIyAgZGVmaW5lIE5PX1dISVJMUE9PTAogIyBlbmRpZgpAQCAtNDQ2LDMgKzQ1NSw2IEBACiAKICNlbmRpZiAvKiBERVNfREVGQVVMVF9PUFRJT05TICovCiAjZW5kaWYgLyogSEVBREVSX0RFU19MT0NMX0ggKi8KKyNpZmRlZiAgX19jcGx1c3BsdXMKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvY3J5cHRvL29wZW5zc2xjb25mLXRydXN0eS5oIGIvY3J5cHRvL29wZW5zc2xjb25mLXRydXN0eS5oCmluZGV4IDA2ZjlmOTguLmJmZjU5MTAgMTAwNjQ0Ci0tLSBhL2NyeXB0by9vcGVuc3NsY29uZi10cnVzdHkuaAorKysgYi9jcnlwdG8vb3BlbnNzbGNvbmYtdHJ1c3R5LmgKQEAgLTEsNiArMSw5IEBACiAvKiBvcGVuc3NsY29uZi5oICovCiAvKiBXQVJOSU5HOiBHZW5lcmF0ZWQgYXV0b21hdGljYWxseSBmcm9tIG9wZW5zc2xjb25mLmguaW4gYnkgQ29uZmlndXJlLiAqLwogCisjaWZkZWYgIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgogLyogT3BlblNTTCB3YXMgY29uZmlndXJlZCB3aXRoIHRoZSBmb2xsb3dpbmcgb3B0aW9uczogKi8KICNpZm5kZWYgT1BFTlNTTF9ET0lOR19NQUtFREVQRU5ECiAKQEAgLTEzNyw2ICsxNDAsOSBAQAogI2lmbmRlZiBPUEVOU1NMX05PX1VJCiAjIGRlZmluZSBPUEVOU1NMX05PX1VJCiAjZW5kaWYKKyNpZm5kZWYgT1BFTlNTTF9OT19VTklUX1RFU1QKKyMgZGVmaW5lIE9QRU5TU0xfTk9fVU5JVF9URVNUCisjZW5kaWYKICNpZm5kZWYgT1BFTlNTTF9OT19XSElSTFBPT0wKICMgZGVmaW5lIE9QRU5TU0xfTk9fV0hJUkxQT09MCiAjZW5kaWYKQEAgLTI4Nyw2ICsyOTMsOSBAQAogIyBpZiBkZWZpbmVkKE9QRU5TU0xfTk9fVUkpICYmICFkZWZpbmVkKE5PX1VJKQogIyAgZGVmaW5lIE5PX1VJCiAjIGVuZGlmCisjIGlmIGRlZmluZWQoT1BFTlNTTF9OT19VTklUX1RFU1QpICYmICFkZWZpbmVkKE5PX1VOSVRfVEVTVCkKKyMgIGRlZmluZSBOT19VTklUX1RFU1QKKyMgZW5kaWYKICMgaWYgZGVmaW5lZChPUEVOU1NMX05PX1dISVJMUE9PTCkgJiYgIWRlZmluZWQoTk9fV0hJUkxQT09MKQogIyAgZGVmaW5lIE5PX1dISVJMUE9PTAogIyBlbmRpZgpAQCAtNDQ2LDMgKzQ1NSw2IEBACiAKICNlbmRpZiAvKiBERVNfREVGQVVMVF9PUFRJT05TICovCiAjZW5kaWYgLyogSEVBREVSX0RFU19MT0NMX0ggKi8KKyNpZmRlZiAgX19jcGx1c3BsdXMKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvY3J5cHRvL29wZW5zc2x2LmggYi9jcnlwdG8vb3BlbnNzbHYuaAppbmRleCBjM2I2YWNlLi5mMzc1OTY3IDEwMDY0NAotLS0gYS9jcnlwdG8vb3BlbnNzbHYuaAorKysgYi9jcnlwdG8vb3BlbnNzbHYuaApAQCAtMSw2ICsxLDEwIEBACiAjaWZuZGVmIEhFQURFUl9PUEVOU1NMVl9ICiAjZGVmaW5lIEhFQURFUl9PUEVOU1NMVl9ICiAKKyNpZmRlZiAgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKIC8qIE51bWVyaWMgcmVsZWFzZSB2ZXJzaW9uIGlkZW50aWZpZXI6CiAgKiBNTk5GRlBQUzogbWFqb3IgbWlub3IgZml4IHBhdGNoIHN0YXR1cwogICogVGhlIHN0YXR1cyBuaWJibGUgaGFzIG9uZSBvZiB0aGUgdmFsdWVzIDAgZm9yIGRldmVsb3BtZW50LCAxIHRvIGUgZm9yIGJldGFzCkBAIC0yNSwxMSArMjksMTEgQEAKICAqIChQcmlvciB0byAwLjkuNWEgYmV0YTEsIGEgZGlmZmVyZW50IHNjaGVtZSB3YXMgdXNlZDogTU1OTkZGUkJCIGZvcgogICogIG1ham9yIG1pbm9yIGZpeCBmaW5hbCBwYXRjaC9iZXRhKQogICovCi0jZGVmaW5lIE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIJMHgxMDAwMTA4ZkwKKyNkZWZpbmUgT1BFTlNTTF9WRVJTSU9OX05VTUJFUgkweDEwMDAxMGFmTAogI2lmZGVmIE9QRU5TU0xfRklQUwotI2RlZmluZSBPUEVOU1NMX1ZFUlNJT05fVEVYVAkiT3BlblNTTCAxLjAuMWgtZmlwcyA1IEp1biAyMDE0IgorI2RlZmluZSBPUEVOU1NMX1ZFUlNJT05fVEVYVAkiT3BlblNTTCAxLjAuMWotZmlwcyAxNSBPY3QgMjAxNCIKICNlbHNlCi0jZGVmaW5lIE9QRU5TU0xfVkVSU0lPTl9URVhUCSJPcGVuU1NMIDEuMC4xaCA1IEp1biAyMDE0IgorI2RlZmluZSBPUEVOU1NMX1ZFUlNJT05fVEVYVAkiT3BlblNTTCAxLjAuMWogMTUgT2N0IDIwMTQiCiAjZW5kaWYKICNkZWZpbmUgT1BFTlNTTF9WRVJTSU9OX1BURVhUCSIgcGFydCBvZiAiIE9QRU5TU0xfVkVSU0lPTl9URVhUCiAKQEAgLTg2LDQgKzkwLDcgQEAKICNkZWZpbmUgU0hMSUJfVkVSU0lPTl9OVU1CRVIgIjEuMC4wIgogCiAKKyNpZmRlZiAgX19jcGx1c3BsdXMKK30KKyNlbmRpZgogI2VuZGlmIC8qIEhFQURFUl9PUEVOU1NMVl9IICovCmRpZmYgLS1naXQgYS9jcnlwdG8vb3NzbF90eXAuaCBiL2NyeXB0by9vc3NsX3R5cC5oCmluZGV4IGVhOTIyN2YuLjEyY2RkNDMgMTAwNjQ0Ci0tLSBhL2NyeXB0by9vc3NsX3R5cC5oCisrKyBiL2NyeXB0by9vc3NsX3R5cC5oCkBAIC01NSw2ICs1NSwxMCBAQAogI2lmbmRlZiBIRUFERVJfT1BFTlNTTF9UWVBFU19ICiAjZGVmaW5lIEhFQURFUl9PUEVOU1NMX1RZUEVTX0gKIAorI2lmZGVmICBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKwogI2luY2x1ZGUgPG9wZW5zc2wvZV9vczIuaD4KIAogI2lmZGVmIE5PX0FTTjFfVFlQRURFRlMKQEAgLTE5OSw0ICsyMDMsNyBAQAogdHlwZWRlZiBzdHJ1Y3Qgb2NzcF9yZXNwb25zZV9zdCBPQ1NQX1JFU1BPTlNFOwogdHlwZWRlZiBzdHJ1Y3Qgb2NzcF9yZXNwb25kZXJfaWRfc3QgT0NTUF9SRVNQSUQ7CiAKKyNpZmRlZiAgX19jcGx1c3BsdXMKK30KKyNlbmRpZgogI2VuZGlmIC8qIGRlZiBIRUFERVJfT1BFTlNTTF9UWVBFU19IICovCmRpZmYgLS1naXQgYS9jcnlwdG8vcGVtL3B2a2ZtdC5jIGIvY3J5cHRvL3BlbS9wdmtmbXQuYwppbmRleCBiMWJmNzFhLi5hZTg5ZjgyIDEwMDY0NAotLS0gYS9jcnlwdG8vcGVtL3B2a2ZtdC5jCisrKyBiL2NyeXB0by9wZW0vcHZrZm10LmMKQEAgLTc1OSw2ICs3NTksMTEgQEAKIAkJLyogQ29weSBCTE9CSEVBREVSIGFjcm9zcywgZGVjcnlwdCByZXN0ICovCiAJCW1lbWNweShlbmN0bXAsIHAsIDgpOwogCQlwICs9IDg7CisJCWlmIChrZXlsZW4gPCA4KQorCQkJeworCQkJUEVNZXJyKFBFTV9GX0RPX1BWS19CT0RZLCBQRU1fUl9QVktfVE9PX1NIT1JUKTsKKwkJCXJldHVybiBOVUxMOworCQkJfQogCQlpbmxlbiA9IGtleWxlbiAtIDg7CiAJCXEgPSBlbmN0bXAgKyA4OwogCQlpZiAoIUVWUF9EZWNyeXB0SW5pdF9leCgmY2N0eCwgRVZQX3JjNCgpLCBOVUxMLCBrZXlidWYsIE5VTEwpKQpkaWZmIC0tZ2l0IGEvY3J5cHRvL3BrY3M3L2Jpb19iZXIuYyBiL2NyeXB0by9wa2NzNy9iaW9fYmVyLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMxOTczZmMuLjAwMDAwMDAKLS0tIGEvY3J5cHRvL3BrY3M3L2Jpb19iZXIuYworKysgL2Rldi9udWxsCkBAIC0xLDQ2NiArMCwwIEBACi0vKiBjcnlwdG8vZXZwL2Jpb19iZXIuYyAqLwotLyogQ29weXJpZ2h0IChDKSAxOTk1LTE5OTggRXJpYyBZb3VuZyAoZWF5QGNyeXB0c29mdC5jb20pCi0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgcGFja2FnZSBpcyBhbiBTU0wgaW1wbGVtZW50YXRpb24gd3JpdHRlbgotICogYnkgRXJpYyBZb3VuZyAoZWF5QGNyeXB0c29mdC5jb20pLgotICogVGhlIGltcGxlbWVudGF0aW9uIHdhcyB3cml0dGVuIHNvIGFzIHRvIGNvbmZvcm0gd2l0aCBOZXRzY2FwZXMgU1NMLgotICogCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBmb3IgY29tbWVyY2lhbCBhbmQgbm9uLWNvbW1lcmNpYWwgdXNlIGFzIGxvbmcgYXMKLSAqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgYWhlYXJlZCB0by4gIFRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXBwbHkgdG8gYWxsIGNvZGUgZm91bmQgaW4gdGhpcyBkaXN0cmlidXRpb24sIGJlIGl0IHRoZSBSQzQsIFJTQSwKLSAqIGxoYXNoLCBERVMsIGV0Yy4sIGNvZGU7IG5vdCBqdXN0IHRoZSBTU0wgY29kZS4gIFRoZSBTU0wgZG9jdW1lbnRhdGlvbgotICogaW5jbHVkZWQgd2l0aCB0aGlzIGRpc3RyaWJ1dGlvbiBpcyBjb3ZlcmVkIGJ5IHRoZSBzYW1lIGNvcHlyaWdodCB0ZXJtcwotICogZXhjZXB0IHRoYXQgdGhlIGhvbGRlciBpcyBUaW0gSHVkc29uICh0amhAY3J5cHRzb2Z0LmNvbSkuCi0gKiAKLSAqIENvcHlyaWdodCByZW1haW5zIEVyaWMgWW91bmcncywgYW5kIGFzIHN1Y2ggYW55IENvcHlyaWdodCBub3RpY2VzIGluCi0gKiB0aGUgY29kZSBhcmUgbm90IHRvIGJlIHJlbW92ZWQuCi0gKiBJZiB0aGlzIHBhY2thZ2UgaXMgdXNlZCBpbiBhIHByb2R1Y3QsIEVyaWMgWW91bmcgc2hvdWxkIGJlIGdpdmVuIGF0dHJpYnV0aW9uCi0gKiBhcyB0aGUgYXV0aG9yIG9mIHRoZSBwYXJ0cyBvZiB0aGUgbGlicmFyeSB1c2VkLgotICogVGhpcyBjYW4gYmUgaW4gdGhlIGZvcm0gb2YgYSB0ZXh0dWFsIG1lc3NhZ2UgYXQgcHJvZ3JhbSBzdGFydHVwIG9yCi0gKiBpbiBkb2N1bWVudGF0aW9uIChvbmxpbmUgb3IgdGV4dHVhbCkgcHJvdmlkZWQgd2l0aCB0aGUgcGFja2FnZS4KLSAqIAotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiBBbGwgYWR2ZXJ0aXNpbmcgbWF0ZXJpYWxzIG1lbnRpb25pbmcgZmVhdHVyZXMgb3IgdXNlIG9mIHRoaXMgc29mdHdhcmUKLSAqICAgIG11c3QgZGlzcGxheSB0aGUgZm9sbG93aW5nIGFja25vd2xlZGdlbWVudDoKLSAqICAgICJUaGlzIHByb2R1Y3QgaW5jbHVkZXMgY3J5cHRvZ3JhcGhpYyBzb2Z0d2FyZSB3cml0dGVuIGJ5Ci0gKiAgICAgRXJpYyBZb3VuZyAoZWF5QGNyeXB0c29mdC5jb20pIgotICogICAgVGhlIHdvcmQgJ2NyeXB0b2dyYXBoaWMnIGNhbiBiZSBsZWZ0IG91dCBpZiB0aGUgcm91aW5lcyBmcm9tIHRoZSBsaWJyYXJ5Ci0gKiAgICBiZWluZyB1c2VkIGFyZSBub3QgY3J5cHRvZ3JhcGhpYyByZWxhdGVkIDotKS4KLSAqIDQuIElmIHlvdSBpbmNsdWRlIGFueSBXaW5kb3dzIHNwZWNpZmljIGNvZGUgKG9yIGEgZGVyaXZhdGl2ZSB0aGVyZW9mKSBmcm9tIAotICogICAgdGhlIGFwcHMgZGlyZWN0b3J5IChhcHBsaWNhdGlvbiBjb2RlKSB5b3UgbXVzdCBpbmNsdWRlIGFuIGFja25vd2xlZGdlbWVudDoKLSAqICAgICJUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUgd3JpdHRlbiBieSBUaW0gSHVkc29uICh0amhAY3J5cHRzb2Z0LmNvbSkiCi0gKiAKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgRVJJQyBZT1VORyBgYEFTIElTJycgQU5ECi0gKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCi0gKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQotICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKLSAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCi0gKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKLSAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCi0gKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCi0gKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCi0gKiBTVUNIIERBTUFHRS4KLSAqIAotICogVGhlIGxpY2VuY2UgYW5kIGRpc3RyaWJ1dGlvbiB0ZXJtcyBmb3IgYW55IHB1YmxpY2FsbHkgYXZhaWxhYmxlIHZlcnNpb24gb3IKLSAqIGRlcml2YXRpdmUgb2YgdGhpcyBjb2RlIGNhbm5vdCBiZSBjaGFuZ2VkLiAgaS5lLiB0aGlzIGNvZGUgY2Fubm90IHNpbXBseSBiZQotICogY29waWVkIGFuZCBwdXQgdW5kZXIgYW5vdGhlciBkaXN0cmlidXRpb24gbGljZW5jZQotICogW2luY2x1ZGluZyB0aGUgR05VIFB1YmxpYyBMaWNlbmNlLl0KLSAqLwotCi0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgImNyeXB0bGliLmgiCi0jaW5jbHVkZSA8b3BlbnNzbC9idWZmZXIuaD4KLSNpbmNsdWRlIDxvcGVuc3NsL2V2cC5oPgotCi1zdGF0aWMgaW50IGJlcl93cml0ZShCSU8gKmgsY2hhciAqYnVmLGludCBudW0pOwotc3RhdGljIGludCBiZXJfcmVhZChCSU8gKmgsY2hhciAqYnVmLGludCBzaXplKTsKLS8qc3RhdGljIGludCBiZXJfcHV0cyhCSU8gKmgsY2hhciAqc3RyKTsgKi8KLS8qc3RhdGljIGludCBiZXJfZ2V0cyhCSU8gKmgsY2hhciAqc3RyLGludCBzaXplKTsgKi8KLXN0YXRpYyBsb25nIGJlcl9jdHJsKEJJTyAqaCxpbnQgY21kLGxvbmcgYXJnMSxjaGFyICphcmcyKTsKLXN0YXRpYyBpbnQgYmVyX25ldyhCSU8gKmgpOwotc3RhdGljIGludCBiZXJfZnJlZShCSU8gKmRhdGEpOwotc3RhdGljIGxvbmcgYmVyX2NhbGxiYWNrX2N0cmwoQklPICpoLGludCBjbWQsdm9pZCAqKCpmcCkoKSk7Ci0jZGVmaW5lIEJFUl9CVUZfU0laRQkoMzIpCi0KLS8qIFRoaXMgaXMgdXNlZCB0byBob2xkIHRoZSBzdGF0ZSBvZiB0aGUgQkVSIG9iamVjdHMgYmVpbmcgcmVhZC4gKi8KLXR5cGVkZWYgc3RydWN0IGJlcl9zdHJ1Y3QKLQl7Ci0JaW50IHRhZzsKLQlpbnQgY2xhc3M7Ci0JbG9uZyBsZW5ndGg7Ci0JaW50IGluZjsKLQlpbnQgbnVtX2xlZnQ7Ci0JaW50IGRlcHRoOwotCX0gQkVSX0NUWDsKLQotdHlwZWRlZiBzdHJ1Y3QgYmlvX2Jlcl9zdHJ1Y3QKLQl7Ci0JaW50IHRhZzsKLQlpbnQgY2xhc3M7Ci0JbG9uZyBsZW5ndGg7Ci0JaW50IGluZjsKLQotCS8qIG1vc3Qgb2YgdGhlIGZvbGxvd2luZyBhcmUgdXNlZCB3aGVuIGRvaW5nIG5vbi1ibG9ja2luZyBJTyAqLwotCS8qIHJlYWRpbmcgKi8KLQlsb25nIG51bV9sZWZ0OwkvKiBudW1iZXIgb2YgYnl0ZXMgc3RpbGwgdG8gcmVhZC93cml0ZSBpbiBibG9jayAqLwotCWludCBkZXB0aDsJLyogdXNlZCB3aXRoIGluZGVmaW5pdGUgZW5jb2RpbmcuICovCi0JaW50IGZpbmlzaGVkOwkvKiBObyBtb3JlIHJlYWQgZGF0YSAqLwotCi0JLyogd3JpdHRpbmcgKi8gCi0JY2hhciAqd19hZGRyOwotCWludCB3X29mZnNldDsKLQlpbnQgd19sZWZ0OwotCi0JaW50IGJ1Zl9sZW47Ci0JaW50IGJ1Zl9vZmY7Ci0JdW5zaWduZWQgY2hhciBidWZbQkVSX0JVRl9TSVpFXTsKLQl9IEJJT19CRVJfQ1RYOwotCi1zdGF0aWMgQklPX01FVEhPRCBtZXRob2RzX2Jlcj0KLQl7Ci0JQklPX1RZUEVfQ0lQSEVSLCJjaXBoZXIiLAotCWJlcl93cml0ZSwKLQliZXJfcmVhZCwKLQlOVUxMLCAvKiBiZXJfcHV0cywgKi8KLQlOVUxMLCAvKiBiZXJfZ2V0cywgKi8KLQliZXJfY3RybCwKLQliZXJfbmV3LAotCWJlcl9mcmVlLAotCWJlcl9jYWxsYmFja19jdHJsLAotCX07Ci0KLUJJT19NRVRIT0QgKkJJT19mX2Jlcih2b2lkKQotCXsKLQlyZXR1cm4oJm1ldGhvZHNfYmVyKTsKLQl9Ci0KLXN0YXRpYyBpbnQgYmVyX25ldyhCSU8gKmJpKQotCXsKLQlCSU9fQkVSX0NUWCAqY3R4OwotCi0JY3R4PShCSU9fQkVSX0NUWCAqKU9QRU5TU0xfbWFsbG9jKHNpemVvZihCSU9fQkVSX0NUWCkpOwotCWlmIChjdHggPT0gTlVMTCkgcmV0dXJuKDApOwotCi0JbWVtc2V0KChjaGFyICopY3R4LDAsc2l6ZW9mKEJJT19CRVJfQ1RYKSk7Ci0KLQliaS0+aW5pdD0wOwotCWJpLT5wdHI9KGNoYXIgKiljdHg7Ci0JYmktPmZsYWdzPTA7Ci0JcmV0dXJuKDEpOwotCX0KLQotc3RhdGljIGludCBiZXJfZnJlZShCSU8gKmEpCi0JewotCUJJT19CRVJfQ1RYICpiOwotCi0JaWYgKGEgPT0gTlVMTCkgcmV0dXJuKDApOwotCWI9KEJJT19CRVJfQ1RYICopYS0+cHRyOwotCU9QRU5TU0xfY2xlYW5zZShhLT5wdHIsc2l6ZW9mKEJJT19CRVJfQ1RYKSk7Ci0JT1BFTlNTTF9mcmVlKGEtPnB0cik7Ci0JYS0+cHRyPU5VTEw7Ci0JYS0+aW5pdD0wOwotCWEtPmZsYWdzPTA7Ci0JcmV0dXJuKDEpOwotCX0KLQotaW50IGJpb19iZXJfZ2V0X2hlYWRlcihCSU8gKmJpbywgQklPX0JFUl9DVFggKmN0eCkKLQl7Ci0JY2hhciBidWZbNjRdOwotCWludCBpLGosbjsKLQlpbnQgcmV0OwotCXVuc2lnbmVkIGNoYXIgKnA7Ci0JdW5zaWduZWQgbG9uZyBsZW5ndGgKLQlpbnQgdGFnOwotCWludCBjbGFzczsKLQlsb25nIG1heDsKLQotCUJJT19jbGVhcl9yZXRyeV9mbGFncyhiKTsKLQotCS8qIFBhY2sgdGhlIGJ1ZmZlciBkb3duIGlmIHRoZXJlIGlzIGEgaG9sZSBhdCB0aGUgZnJvbnQgKi8KLQlpZiAoY3R4LT5idWZfb2ZmICE9IDApCi0JCXsKLQkJcD1jdHgtPmJ1ZjsKLQkJaj1jdHgtPmJ1Zl9vZmY7Ci0JCW49Y3R4LT5idWZfbGVuLWo7Ci0JCWZvciAoaT0wOyBpPG47IGkrKykKLQkJCXsKLQkJCXBbMF09cFtqXTsKLQkJCXArKzsKLQkJCX0KLQkJY3R4LT5idWZfbGVuLWo7Ci0JCWN0eC0+YnVmX29mZj0wOwotCQl9Ci0KLQkvKiBJZiB0aGVyZSBpcyBtb3JlIHJvb20sIHJlYWQgc29tZSBtb3JlIGRhdGEgKi8KLQlpPUJFUl9CVUZfU0laRS1jdHgtPmJ1Zl9sZW47Ci0JaWYgKGkpCi0JCXsKLQkJaT1CSU9fcmVhZChiaW8tPm5leHRfYmlvLCYoY3R4LT5idWZbY3R4LT5idWZfbGVuXSksaSk7Ci0JCWlmIChpIDw9IDApCi0JCQl7Ci0JCQlCSU9fY29weV9uZXh0X3JldHJ5KGIpOwotCQkJcmV0dXJuKGkpOwotCQkJfQotCQllbHNlCi0JCQljdHgtPmJ1Zl9sZW4rPWk7Ci0JCX0KLQotCW1heD1jdHgtPmJ1Zl9sZW47Ci0JcD1jdHgtPmJ1ZjsKLQlyZXQ9QVNOMV9nZXRfb2JqZWN0KCZwLCZsZW5ndGgsJnRhZywmY2xhc3MsbWF4KTsKLQotCWlmIChyZXQgJiAweDgwKQotCQl7Ci0JCWlmICgoY3R4LT5idWZfbGVuIDwgQkVSX0JVRl9TSVpFKSAmJgotCQkJKEVSUl9HRVRfUkVBU09OKEVSUl9wZWVrX2Vycm9yKCkpID09IEFTTjFfUl9UT09fTE9ORykpCi0JCQl7Ci0JCQlFUlJfY2xlYXJfZXJyb3IoKTsgLyogY2xlYXIgdGhlIGVycm9yICovCi0JCQlCSU9fc2V0X3JldHJ5X3JlYWQoYik7Ci0JCQl9Ci0JCXJldHVybigtMSk7Ci0JCX0KLQotCS8qIFdlIGhhdmUgbm8gZXJyb3IsIHdlIGhhdmUgYSBoZWFkZXIsIHNvIG1ha2UgdXNlIG9mIGl0ICovCi0KLQlpZiAoKGN0eC0+dGFnICA+PSAwKSAmJiAoY3R4LT50YWcgIT0gdGFnKSkKLQkJewotCQlCSU9lcnIoQklPX0ZfQklPX0JFUl9HRVRfSEVBREVSLEJJT19SX1RBR19NSVNNQVRDSCk7Ci0JCXNwcmludGYoYnVmLCJ0YWc9JWQsIGdvdCAlZCIsY3R4LT50YWcsdGFnKTsKLQkJRVJSX2FkZF9lcnJvcl9kYXRhKDEsYnVmKTsKLQkJcmV0dXJuKC0xKTsKLQkJfQotCWlmIChyZXQgJiAweDAxKQotCWlmIChyZXQgJiBWX0FTTjFfQ09OU1RSVUNURUQpCi0JfQotCQotc3RhdGljIGludCBiZXJfcmVhZChCSU8gKmIsIGNoYXIgKm91dCwgaW50IG91dGwpCi0JewotCWludCByZXQ9MCxpLG47Ci0JQklPX0JFUl9DVFggKmN0eDsKLQotCUJJT19jbGVhcl9yZXRyeV9mbGFncyhiKTsKLQotCWlmIChvdXQgPT0gTlVMTCkgcmV0dXJuKDApOwotCWN0eD0oQklPX0JFUl9DVFggKiliLT5wdHI7Ci0KLQlpZiAoKGN0eCA9PSBOVUxMKSB8fCAoYi0+bmV4dF9iaW8gPT0gTlVMTCkpIHJldHVybigwKTsKLQotCWlmIChjdHgtPmZpbmlzaGVkKSByZXR1cm4oMCk7Ci0KLWFnYWluOgotCS8qIEZpcnN0IHNlZSBpZiB3ZSBhcmUgaGFsZiB3YXkgdGhyb3VnaCByZWFkaW5nIGEgYmxvY2sgKi8KLQlpZiAoY3R4LT5udW1fbGVmdCA+IDApCi0JCXsKLQkJaWYgKGN0eC0+bnVtX2xlZnQgPCBvdXRsKQotCQkJbj1jdHgtPm51bV9sZWZ0OwotCQllbHNlCi0JCQluPW91dGw7Ci0JCWk9QklPX3JlYWQoYi0+bmV4dF9iaW8sb3V0LG4pOwotCQlpZiAoaSA8PSAwKQotCQkJewotCQkJQklPX2NvcHlfbmV4dF9yZXRyeShiKTsKLQkJCXJldHVybihpKTsKLQkJCX0KLQkJY3R4LT5udW1fbGVmdC09aTsKLQkJb3V0bC09aTsKLQkJcmV0Kz1pOwotCQlpZiAoY3R4LT5udW1fbGVmdCA8PSAwKQotCQkJewotCQkJY3R4LT5kZXB0aC0tOwotCQkJaWYgKGN0eC0+ZGVwdGggPD0gMCkKLQkJCQljdHgtPmZpbmlzaGVkPTE7Ci0JCQl9Ci0JCWlmIChvdXRsIDw9IDApCi0JCQlyZXR1cm4ocmV0KTsKLQkJZWxzZQotCQkJZ290byBhZ2FpbjsKLQkJfQotCWVsc2UJLyogd2UgbmVlZCB0byByZWFkIGFub3RoZXIgQkVSIGhlYWRlciAqLwotCQl7Ci0JCX0KLQl9Ci0KLXN0YXRpYyBpbnQgYmVyX3dyaXRlKEJJTyAqYiwgY2hhciAqaW4sIGludCBpbmwpCi0JewotCWludCByZXQ9MCxuLGk7Ci0JQklPX0VOQ19DVFggKmN0eDsKLQotCWN0eD0oQklPX0VOQ19DVFggKiliLT5wdHI7Ci0JcmV0PWlubDsKLQotCUJJT19jbGVhcl9yZXRyeV9mbGFncyhiKTsKLQluPWN0eC0+YnVmX2xlbi1jdHgtPmJ1Zl9vZmY7Ci0Jd2hpbGUgKG4gPiAwKQotCQl7Ci0JCWk9QklPX3dyaXRlKGItPm5leHRfYmlvLCYoY3R4LT5idWZbY3R4LT5idWZfb2ZmXSksbik7Ci0JCWlmIChpIDw9IDApCi0JCQl7Ci0JCQlCSU9fY29weV9uZXh0X3JldHJ5KGIpOwotCQkJcmV0dXJuKGkpOwotCQkJfQotCQljdHgtPmJ1Zl9vZmYrPWk7Ci0JCW4tPWk7Ci0JCX0KLQkvKiBhdCB0aGlzIHBvaW50IGFsbCBwZW5kaW5nIGRhdGEgaGFzIGJlZW4gd3JpdHRlbiAqLwotCi0JaWYgKChpbiA9PSBOVUxMKSB8fCAoaW5sIDw9IDApKSByZXR1cm4oMCk7Ci0KLQljdHgtPmJ1Zl9vZmY9MDsKLQl3aGlsZSAoaW5sID4gMCkKLQkJewotCQluPShpbmwgPiBFTkNfQkxPQ0tfU0laRSk/RU5DX0JMT0NLX1NJWkU6aW5sOwotCQlFVlBfQ2lwaGVyVXBkYXRlKCYoY3R4LT5jaXBoZXIpLAotCQkJKHVuc2lnbmVkIGNoYXIgKiljdHgtPmJ1ZiwmY3R4LT5idWZfbGVuLAotCQkJKHVuc2lnbmVkIGNoYXIgKilpbixuKTsKLQkJaW5sLT1uOwotCQlpbis9bjsKLQotCQljdHgtPmJ1Zl9vZmY9MDsKLQkJbj1jdHgtPmJ1Zl9sZW47Ci0JCXdoaWxlIChuID4gMCkKLQkJCXsKLQkJCWk9QklPX3dyaXRlKGItPm5leHRfYmlvLCYoY3R4LT5idWZbY3R4LT5idWZfb2ZmXSksbik7Ci0JCQlpZiAoaSA8PSAwKQotCQkJCXsKLQkJCQlCSU9fY29weV9uZXh0X3JldHJ5KGIpOwotCQkJCXJldHVybihpKTsKLQkJCQl9Ci0JCQluLT1pOwotCQkJY3R4LT5idWZfb2ZmKz1pOwotCQkJfQotCQljdHgtPmJ1Zl9sZW49MDsKLQkJY3R4LT5idWZfb2ZmPTA7Ci0JCX0KLQlCSU9fY29weV9uZXh0X3JldHJ5KGIpOwotCXJldHVybihyZXQpOwotCX0KLQotc3RhdGljIGxvbmcgYmVyX2N0cmwoQklPICpiLCBpbnQgY21kLCBsb25nIG51bSwgY2hhciAqcHRyKQotCXsKLQlCSU8gKmRiaW87Ci0JQklPX0VOQ19DVFggKmN0eCwqZGN0eDsKLQlsb25nIHJldD0xOwotCWludCBpOwotCi0JY3R4PShCSU9fRU5DX0NUWCAqKWItPnB0cjsKLQotCXN3aXRjaCAoY21kKQotCQl7Ci0JY2FzZSBCSU9fQ1RSTF9SRVNFVDoKLQkJY3R4LT5vaz0xOwotCQljdHgtPmZpbmlzaGVkPTA7Ci0JCUVWUF9DaXBoZXJJbml0X2V4KCYoY3R4LT5jaXBoZXIpLE5VTEwsTlVMTCxOVUxMLE5VTEwsCi0JCQljdHgtPmNpcGhlci5iZXJyeXB0KTsKLQkJcmV0PUJJT19jdHJsKGItPm5leHRfYmlvLGNtZCxudW0scHRyKTsKLQkJYnJlYWs7Ci0JY2FzZSBCSU9fQ1RSTF9FT0Y6CS8qIE1vcmUgdG8gcmVhZCAqLwotCQlpZiAoY3R4LT5jb250IDw9IDApCi0JCQlyZXQ9MTsKLQkJZWxzZQotCQkJcmV0PUJJT19jdHJsKGItPm5leHRfYmlvLGNtZCxudW0scHRyKTsKLQkJYnJlYWs7Ci0JY2FzZSBCSU9fQ1RSTF9XUEVORElORzoKLQkJcmV0PWN0eC0+YnVmX2xlbi1jdHgtPmJ1Zl9vZmY7Ci0JCWlmIChyZXQgPD0gMCkKLQkJCXJldD1CSU9fY3RybChiLT5uZXh0X2JpbyxjbWQsbnVtLHB0cik7Ci0JCWJyZWFrOwotCWNhc2UgQklPX0NUUkxfUEVORElORzogLyogTW9yZSB0byByZWFkIGluIGJ1ZmZlciAqLwotCQlyZXQ9Y3R4LT5idWZfbGVuLWN0eC0+YnVmX29mZjsKLQkJaWYgKHJldCA8PSAwKQotCQkJcmV0PUJJT19jdHJsKGItPm5leHRfYmlvLGNtZCxudW0scHRyKTsKLQkJYnJlYWs7Ci0JY2FzZSBCSU9fQ1RSTF9GTFVTSDoKLQkJLyogZG8gYSBmaW5hbCB3cml0ZSAqLwotYWdhaW46Ci0JCXdoaWxlIChjdHgtPmJ1Zl9sZW4gIT0gY3R4LT5idWZfb2ZmKQotCQkJewotCQkJaT1iZXJfd3JpdGUoYixOVUxMLDApOwotCQkJaWYgKGkgPCAwKQotCQkJCXsKLQkJCQlyZXQ9aTsKLQkJCQlicmVhazsKLQkJCQl9Ci0JCQl9Ci0KLQkJaWYgKCFjdHgtPmZpbmlzaGVkKQotCQkJewotCQkJY3R4LT5maW5pc2hlZD0xOwotCQkJY3R4LT5idWZfb2ZmPTA7Ci0JCQlyZXQ9RVZQX0NpcGhlckZpbmFsX2V4KCYoY3R4LT5jaXBoZXIpLAotCQkJCSh1bnNpZ25lZCBjaGFyICopY3R4LT5idWYsCi0JCQkJJihjdHgtPmJ1Zl9sZW4pKTsKLQkJCWN0eC0+b2s9KGludClyZXQ7Ci0JCQlpZiAocmV0IDw9IDApIGJyZWFrOwotCi0JCQkvKiBwdXNoIG91dCB0aGUgYnl0ZXMgKi8KLQkJCWdvdG8gYWdhaW47Ci0JCQl9Ci0JCQotCQkvKiBGaW5hbGx5IGZsdXNoIHRoZSB1bmRlcmx5aW5nIEJJTyAqLwotCQlyZXQ9QklPX2N0cmwoYi0+bmV4dF9iaW8sY21kLG51bSxwdHIpOwotCQlicmVhazsKLQljYXNlIEJJT19DX0dFVF9DSVBIRVJfU1RBVFVTOgotCQlyZXQ9KGxvbmcpY3R4LT5vazsKLQkJYnJlYWs7Ci0JY2FzZSBCSU9fQ19ET19TVEFURV9NQUNISU5FOgotCQlCSU9fY2xlYXJfcmV0cnlfZmxhZ3MoYik7Ci0JCXJldD1CSU9fY3RybChiLT5uZXh0X2JpbyxjbWQsbnVtLHB0cik7Ci0JCUJJT19jb3B5X25leHRfcmV0cnkoYik7Ci0JCWJyZWFrOwotCi0JY2FzZSBCSU9fQ1RSTF9EVVA6Ci0JCWRiaW89KEJJTyAqKXB0cjsKLQkJZGN0eD0oQklPX0VOQ19DVFggKilkYmlvLT5wdHI7Ci0JCW1lbWNweSgmKGRjdHgtPmNpcGhlciksJihjdHgtPmNpcGhlciksc2l6ZW9mKGN0eC0+Y2lwaGVyKSk7Ci0JCWRiaW8tPmluaXQ9MTsKLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJcmV0PUJJT19jdHJsKGItPm5leHRfYmlvLGNtZCxudW0scHRyKTsKLQkJYnJlYWs7Ci0JCX0KLQlyZXR1cm4ocmV0KTsKLQl9Ci0KLXN0YXRpYyBsb25nIGJlcl9jYWxsYmFja19jdHJsKEJJTyAqYiwgaW50IGNtZCwgdm9pZCAqKCpmcCkoKSkKLQl7Ci0JbG9uZyByZXQ9MTsKLQotCWlmIChiLT5uZXh0X2JpbyA9PSBOVUxMKSByZXR1cm4oMCk7Ci0Jc3dpdGNoIChjbWQpCi0JCXsKLQlkZWZhdWx0OgotCQlyZXQ9QklPX2NhbGxiYWNrX2N0cmwoYi0+bmV4dF9iaW8sY21kLGZwKTsKLQkJYnJlYWs7Ci0JCX0KLQlyZXR1cm4ocmV0KTsKLQl9Ci0KLS8qCi12b2lkIEJJT19zZXRfY2lwaGVyX2N0eChiLGMpCi1CSU8gKmI7Ci1FVlBfQ0lQSEVSX2N0eCAqYzsKLQl7Ci0JaWYgKGIgPT0gTlVMTCkgcmV0dXJuOwotCi0JaWYgKChiLT5jYWxsYmFjayAhPSBOVUxMKSAmJgotCQkoYi0+Y2FsbGJhY2soYixCSU9fQ0JfQ1RSTCwoY2hhciAqKWMsQklPX0NUUkxfU0VULGUsMEwpIDw9IDApKQotCQlyZXR1cm47Ci0KLQliLT5pbml0PTE7Ci0JY3R4PShCSU9fRU5DX0NUWCAqKWItPnB0cjsKLQltZW1jcHkoY3R4LT5jaXBoZXIsYyxzaXplb2YoRVZQX0NJUEhFUl9DVFgpKTsKLQkKLQlpZiAoYi0+Y2FsbGJhY2sgIT0gTlVMTCkKLQkJYi0+Y2FsbGJhY2soYixCSU9fQ0JfQ1RSTCwoY2hhciAqKWMsQklPX0NUUkxfU0VULGUsMUwpOwotCX0KLSovCi0KLXZvaWQgQklPX3NldF9jaXBoZXIoQklPICpiLCBFVlBfQ0lQSEVSICpjLCB1bnNpZ25lZCBjaGFyICprLCB1bnNpZ25lZCBjaGFyICppLAotCSAgICAgaW50IGUpCi0JewotCUJJT19FTkNfQ1RYICpjdHg7Ci0KLQlpZiAoYiA9PSBOVUxMKSByZXR1cm47Ci0KLQlpZiAoKGItPmNhbGxiYWNrICE9IE5VTEwpICYmCi0JCShiLT5jYWxsYmFjayhiLEJJT19DQl9DVFJMLChjaGFyICopYyxCSU9fQ1RSTF9TRVQsZSwwTCkgPD0gMCkpCi0JCXJldHVybjsKLQotCWItPmluaXQ9MTsKLQljdHg9KEJJT19FTkNfQ1RYICopYi0+cHRyOwotCUVWUF9DaXBoZXJJbml0X2V4KCYoY3R4LT5jaXBoZXIpLGMsTlVMTCxrLGksZSk7Ci0JCi0JaWYgKGItPmNhbGxiYWNrICE9IE5VTEwpCi0JCWItPmNhbGxiYWNrKGIsQklPX0NCX0NUUkwsKGNoYXIgKiljLEJJT19DVFJMX1NFVCxlLDFMKTsKLQl9Ci0KZGlmZiAtLWdpdCBhL2NyeXB0by9wa2NzNy9kZWMuYyBiL2NyeXB0by9wa2NzNy9kZWMuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjc1MmVjNS4uMDAwMDAwMAotLS0gYS9jcnlwdG8vcGtjczcvZGVjLmMKKysrIC9kZXYvbnVsbApAQCAtMSwyNDggKzAsMCBAQAotLyogY3J5cHRvL3BrY3M3L3ZlcmlmeS5jICovCi0vKiBDb3B5cmlnaHQgKEMpIDE5OTUtMTk5OCBFcmljIFlvdW5nIChlYXlAY3J5cHRzb2Z0LmNvbSkKLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBwYWNrYWdlIGlzIGFuIFNTTCBpbXBsZW1lbnRhdGlvbiB3cml0dGVuCi0gKiBieSBFcmljIFlvdW5nIChlYXlAY3J5cHRzb2Z0LmNvbSkuCi0gKiBUaGUgaW1wbGVtZW50YXRpb24gd2FzIHdyaXR0ZW4gc28gYXMgdG8gY29uZm9ybSB3aXRoIE5ldHNjYXBlcyBTU0wuCi0gKiAKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIGZvciBjb21tZXJjaWFsIGFuZCBub24tY29tbWVyY2lhbCB1c2UgYXMgbG9uZyBhcwotICogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBhaGVhcmVkIHRvLiAgVGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcHBseSB0byBhbGwgY29kZSBmb3VuZCBpbiB0aGlzIGRpc3RyaWJ1dGlvbiwgYmUgaXQgdGhlIFJDNCwgUlNBLAotICogbGhhc2gsIERFUywgZXRjLiwgY29kZTsgbm90IGp1c3QgdGhlIFNTTCBjb2RlLiAgVGhlIFNTTCBkb2N1bWVudGF0aW9uCi0gKiBpbmNsdWRlZCB3aXRoIHRoaXMgZGlzdHJpYnV0aW9uIGlzIGNvdmVyZWQgYnkgdGhlIHNhbWUgY29weXJpZ2h0IHRlcm1zCi0gKiBleGNlcHQgdGhhdCB0aGUgaG9sZGVyIGlzIFRpbSBIdWRzb24gKHRqaEBjcnlwdHNvZnQuY29tKS4KLSAqIAotICogQ29weXJpZ2h0IHJlbWFpbnMgRXJpYyBZb3VuZydzLCBhbmQgYXMgc3VjaCBhbnkgQ29weXJpZ2h0IG5vdGljZXMgaW4KLSAqIHRoZSBjb2RlIGFyZSBub3QgdG8gYmUgcmVtb3ZlZC4KLSAqIElmIHRoaXMgcGFja2FnZSBpcyB1c2VkIGluIGEgcHJvZHVjdCwgRXJpYyBZb3VuZyBzaG91bGQgYmUgZ2l2ZW4gYXR0cmlidXRpb24KLSAqIGFzIHRoZSBhdXRob3Igb2YgdGhlIHBhcnRzIG9mIHRoZSBsaWJyYXJ5IHVzZWQuCi0gKiBUaGlzIGNhbiBiZSBpbiB0aGUgZm9ybSBvZiBhIHRleHR1YWwgbWVzc2FnZSBhdCBwcm9ncmFtIHN0YXJ0dXAgb3IKLSAqIGluIGRvY3VtZW50YXRpb24gKG9ubGluZSBvciB0ZXh0dWFsKSBwcm92aWRlZCB3aXRoIHRoZSBwYWNrYWdlLgotICogCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuIEFsbCBhZHZlcnRpc2luZyBtYXRlcmlhbHMgbWVudGlvbmluZyBmZWF0dXJlcyBvciB1c2Ugb2YgdGhpcyBzb2Z0d2FyZQotICogICAgbXVzdCBkaXNwbGF5IHRoZSBmb2xsb3dpbmcgYWNrbm93bGVkZ2VtZW50OgotICogICAgIlRoaXMgcHJvZHVjdCBpbmNsdWRlcyBjcnlwdG9ncmFwaGljIHNvZnR3YXJlIHdyaXR0ZW4gYnkKLSAqICAgICBFcmljIFlvdW5nIChlYXlAY3J5cHRzb2Z0LmNvbSkiCi0gKiAgICBUaGUgd29yZCAnY3J5cHRvZ3JhcGhpYycgY2FuIGJlIGxlZnQgb3V0IGlmIHRoZSByb3VpbmVzIGZyb20gdGhlIGxpYnJhcnkKLSAqICAgIGJlaW5nIHVzZWQgYXJlIG5vdCBjcnlwdG9ncmFwaGljIHJlbGF0ZWQgOi0pLgotICogNC4gSWYgeW91IGluY2x1ZGUgYW55IFdpbmRvd3Mgc3BlY2lmaWMgY29kZSAob3IgYSBkZXJpdmF0aXZlIHRoZXJlb2YpIGZyb20gCi0gKiAgICB0aGUgYXBwcyBkaXJlY3RvcnkgKGFwcGxpY2F0aW9uIGNvZGUpIHlvdSBtdXN0IGluY2x1ZGUgYW4gYWNrbm93bGVkZ2VtZW50OgotICogICAgIlRoaXMgcHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSB3cml0dGVuIGJ5IFRpbSBIdWRzb24gKHRqaEBjcnlwdHNvZnQuY29tKSIKLSAqIAotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBFUklDIFlPVU5HIGBgQVMgSVMnJyBBTkQKLSAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKLSAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCi0gKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAotICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKLSAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQotICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKLSAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKLSAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKLSAqIFNVQ0ggREFNQUdFLgotICogCi0gKiBUaGUgbGljZW5jZSBhbmQgZGlzdHJpYnV0aW9uIHRlcm1zIGZvciBhbnkgcHVibGljYWxseSBhdmFpbGFibGUgdmVyc2lvbiBvcgotICogZGVyaXZhdGl2ZSBvZiB0aGlzIGNvZGUgY2Fubm90IGJlIGNoYW5nZWQuICBpLmUuIHRoaXMgY29kZSBjYW5ub3Qgc2ltcGx5IGJlCi0gKiBjb3BpZWQgYW5kIHB1dCB1bmRlciBhbm90aGVyIGRpc3RyaWJ1dGlvbiBsaWNlbmNlCi0gKiBbaW5jbHVkaW5nIHRoZSBHTlUgUHVibGljIExpY2VuY2UuXQotICovCi0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlIDxvcGVuc3NsL2Jpby5oPgotI2luY2x1ZGUgPG9wZW5zc2wveDUwOS5oPgotI2luY2x1ZGUgPG9wZW5zc2wvcGVtLmg+Ci0jaW5jbHVkZSA8b3BlbnNzbC9lcnIuaD4KLSNpbmNsdWRlIDxvcGVuc3NsL2FzbjEuaD4KLQotaW50IHZlcmlmeV9jYWxsYmFjayhpbnQgb2ssIFg1MDlfU1RPUkVfQ1RYICpjdHgpOwotCi1CSU8gKmJpb19lcnI9TlVMTDsKLQotaW50IG1haW4oYXJnYyxhcmd2KQotaW50IGFyZ2M7Ci1jaGFyICphcmd2W107Ci0JewotCWNoYXIgKmtleWZpbGU9TlVMTDsKLQlCSU8gKmluOwotCUVWUF9QS0VZICpwa2V5OwotCVg1MDkgKng1MDk7Ci0JUEtDUzcgKnA3OwotCVBLQ1M3X1NJR05FUl9JTkZPICpzaTsKLQlYNTA5X1NUT1JFX0NUWCBjZXJ0X2N0eDsKLQlYNTA5X1NUT1JFICpjZXJ0X3N0b3JlPU5VTEw7Ci0JQklPICpkYXRhLCpkZXRhY2hlZD1OVUxMLCpwN2Jpbz1OVUxMOwotCWNoYXIgYnVmWzEwMjQqNF07Ci0JdW5zaWduZWQgY2hhciAqcHA7Ci0JaW50IGkscHJpbnRpdD0wOwotCVNUQUNLX09GKFBLQ1M3X1NJR05FUl9JTkZPKSAqc2s7Ci0KLQlPcGVuU1NMX2FkZF9hbGxfYWxnb3JpdGhtcygpOwotCWJpb19lcnI9QklPX25ld19mcChzdGRlcnIsQklPX05PQ0xPU0UpOwotCi0JZGF0YT1CSU9fbmV3KEJJT19zX2ZpbGUoKSk7Ci0JcHA9TlVMTDsKLQl3aGlsZSAoYXJnYyA+IDEpCi0JCXsKLQkJYXJnYy0tOwotCQlhcmd2Kys7Ci0JCWlmIChzdHJjbXAoYXJndlswXSwiLXAiKSA9PSAwKQotCQkJewotCQkJcHJpbnRpdD0xOwotCQkJfQotCQllbHNlIGlmICgoc3RyY21wKGFyZ3ZbMF0sIi1rIikgPT0gMCkgJiYgKGFyZ2MgPj0gMikpIHsKLQkJCWtleWZpbGUgPSBhcmd2WzFdOwotCQkJYXJnYy09MTsKLQkJCWFyZ3YrPTE7Ci0JCX0gZWxzZSBpZiAoKHN0cmNtcChhcmd2WzBdLCItZCIpID09IDApICYmIChhcmdjID49IDIpKQotCQkJewotCQkJZGV0YWNoZWQ9QklPX25ldyhCSU9fc19maWxlKCkpOwotCQkJaWYgKCFCSU9fcmVhZF9maWxlbmFtZShkZXRhY2hlZCxhcmd2WzFdKSkKLQkJCQlnb3RvIGVycjsKLQkJCWFyZ2MtPTE7Ci0JCQlhcmd2Kz0xOwotCQkJfQotCQllbHNlIGJyZWFrOwotCQl9Ci0KLQkgaWYgKCFCSU9fcmVhZF9maWxlbmFtZShkYXRhLGFyZ3ZbMF0pKSBnb3RvIGVycjsgCi0KLQlpZigha2V5ZmlsZSkgewotCQlmcHJpbnRmKHN0ZGVyciwgIk5vIHByaXZhdGUga2V5IGZpbGUgc3BlY2lmaWVkXG4iKTsKLQkJZ290byBlcnI7Ci0JfQotCi0gICAgICAgIGlmICgoaW49QklPX25ld19maWxlKGtleWZpbGUsInIiKSkgPT0gTlVMTCkgZ290byBlcnI7Ci0gICAgICAgIGlmICgoeDUwOT1QRU1fcmVhZF9iaW9fWDUwOShpbixOVUxMLE5VTEwsTlVMTCkpID09IE5VTEwpIGdvdG8gZXJyOwotICAgICAgICBCSU9fcmVzZXQoaW4pOwotICAgICAgICBpZiAoKHBrZXk9UEVNX3JlYWRfYmlvX1ByaXZhdGVLZXkoaW4sTlVMTCxOVUxMLE5VTEwpKSA9PSBOVUxMKQotCQlnb3RvIGVycjsKLSAgICAgICAgQklPX2ZyZWUoaW4pOwotCi0JaWYgKHBwID09IE5VTEwpCi0JCUJJT19zZXRfZnAoZGF0YSxzdGRpbixCSU9fTk9DTE9TRSk7Ci0KLQotCS8qIExvYWQgdGhlIFBLQ1M3IG9iamVjdCBmcm9tIGEgZmlsZSAqLwotCWlmICgocDc9UEVNX3JlYWRfYmlvX1BLQ1M3KGRhdGEsTlVMTCxOVUxMLE5VTEwpKSA9PSBOVUxMKSBnb3RvIGVycjsKLQotCi0KLQkvKiBUaGlzIHN0dWZmIGlzIGJlaW5nIHNldHVwIGZvciBjZXJ0aWZpY2F0ZSB2ZXJpZmljYXRpb24uCi0JICogV2hlbiB1c2luZyBTU0wsIGl0IGNvdWxkIGJlIHJlcGxhY2VkIHdpdGggYSAKLQkgKiBjZXJ0X3N0cmU9U1NMX0NUWF9nZXRfY2VydF9zdG9yZShzc2xfY3R4KTsgKi8KLQljZXJ0X3N0b3JlPVg1MDlfU1RPUkVfbmV3KCk7Ci0JWDUwOV9TVE9SRV9zZXRfZGVmYXVsdF9wYXRocyhjZXJ0X3N0b3JlKTsKLQlYNTA5X1NUT1JFX2xvYWRfbG9jYXRpb25zKGNlcnRfc3RvcmUsTlVMTCwiLi4vLi4vY2VydHMiKTsKLQlYNTA5X1NUT1JFX3NldF92ZXJpZnlfY2JfZnVuYyhjZXJ0X3N0b3JlLHZlcmlmeV9jYWxsYmFjayk7Ci0KLQlFUlJfY2xlYXJfZXJyb3IoKTsKLQotCS8qIFdlIG5lZWQgdG8gcHJvY2VzcyB0aGUgZGF0YSAqLwotCS8qIFdlIGNhbm5vdCBzdXBwb3J0IGRldGFjaGVkIGVuY3J5cHRpb24gKi8KLQlwN2Jpbz1QS0NTN19kYXRhRGVjb2RlKHA3LHBrZXksZGV0YWNoZWQseDUwOSk7Ci0KLQlpZiAocDdiaW8gPT0gTlVMTCkKLQkJewotCQlwcmludGYoInByb2JsZW1zIGRlY29kaW5nXG4iKTsKLQkJZ290byBlcnI7Ci0JCX0KLQotCS8qIFdlIG5vdyBoYXZlIHRvICdyZWFkJyBmcm9tIHA3YmlvIHRvIGNhbGN1bGF0ZSBkaWdlc3RzIGV0Yy4gKi8KLQlmb3IgKDs7KQotCQl7Ci0JCWk9QklPX3JlYWQocDdiaW8sYnVmLHNpemVvZihidWYpKTsKLQkJLyogcHJpbnQgaXQ/ICovCi0JCWlmIChpIDw9IDApIGJyZWFrOwotCQlmd3JpdGUoYnVmLDEsIGksIHN0ZG91dCk7Ci0JCX0KLQotCS8qIFdlIGNhbiBub3cgdmVyaWZ5IHNpZ25hdHVyZXMgKi8KLQlzaz1QS0NTN19nZXRfc2lnbmVyX2luZm8ocDcpOwotCWlmIChzayA9PSBOVUxMKQotCQl7Ci0JCWZwcmludGYoc3RkZXJyLCAidGhlcmUgYXJlIG5vIHNpZ25hdHVyZXMgb24gdGhpcyBkYXRhXG4iKTsKLQkJfQotCWVsc2UKLQkJewotCQkvKiBPaywgZmlyc3Qgd2UgbmVlZCB0bywgZm9yIGVhY2ggc3ViamVjdCBlbnRyeSwKLQkJICogc2VlIGlmIHdlIGNhbiB2ZXJpZnkgKi8KLQkJRVJSX2NsZWFyX2Vycm9yKCk7Ci0JCWZvciAoaT0wOyBpPHNrX1BLQ1M3X1NJR05FUl9JTkZPX251bShzayk7IGkrKykKLQkJCXsKLQkJCXNpPXNrX1BLQ1M3X1NJR05FUl9JTkZPX3ZhbHVlKHNrLGkpOwotCQkJaT1QS0NTN19kYXRhVmVyaWZ5KGNlcnRfc3RvcmUsJmNlcnRfY3R4LHA3YmlvLHA3LHNpKTsKLQkJCWlmIChpIDw9IDApCi0JCQkJZ290byBlcnI7Ci0JCQllbHNlCi0JCQkJZnByaW50ZihzdGRlcnIsIlNpZ25hdHVyZSB2ZXJpZmllZFxuIik7Ci0JCQl9Ci0JCX0KLQlYNTA5X1NUT1JFX2ZyZWUoY2VydF9zdG9yZSk7Ci0KLQlleGl0KDApOwotZXJyOgotCUVSUl9sb2FkX2NyeXB0b19zdHJpbmdzKCk7Ci0JRVJSX3ByaW50X2Vycm9yc19mcChzdGRlcnIpOwotCWV4aXQoMSk7Ci0JfQotCi0vKiBzaG91bGQgYmUgWDUwOSAqIGJ1dCB3ZSBjYW4ganVzdCBoYXZlIHRoZW0gYXMgY2hhciAqLiAqLwotaW50IHZlcmlmeV9jYWxsYmFjayhpbnQgb2ssIFg1MDlfU1RPUkVfQ1RYICpjdHgpCi0JewotCWNoYXIgYnVmWzI1Nl07Ci0JWDUwOSAqZXJyX2NlcnQ7Ci0JaW50IGVycixkZXB0aDsKLQotCWVycl9jZXJ0PVg1MDlfU1RPUkVfQ1RYX2dldF9jdXJyZW50X2NlcnQoY3R4KTsKLQllcnI9CVg1MDlfU1RPUkVfQ1RYX2dldF9lcnJvcihjdHgpOwotCWRlcHRoPQlYNTA5X1NUT1JFX0NUWF9nZXRfZXJyb3JfZGVwdGgoY3R4KTsKLQotCVg1MDlfTkFNRV9vbmVsaW5lKFg1MDlfZ2V0X3N1YmplY3RfbmFtZShlcnJfY2VydCksYnVmLDI1Nik7Ci0JQklPX3ByaW50ZihiaW9fZXJyLCJkZXB0aD0lZCAlc1xuIixkZXB0aCxidWYpOwotCWlmICghb2spCi0JCXsKLQkJQklPX3ByaW50ZihiaW9fZXJyLCJ2ZXJpZnkgZXJyb3I6bnVtPSVkOiVzXG4iLGVyciwKLQkJCVg1MDlfdmVyaWZ5X2NlcnRfZXJyb3Jfc3RyaW5nKGVycikpOwotCQlpZiAoZGVwdGggPCA2KQotCQkJewotCQkJb2s9MTsKLQkJCVg1MDlfU1RPUkVfQ1RYX3NldF9lcnJvcihjdHgsWDUwOV9WX09LKTsKLQkJCX0KLQkJZWxzZQotCQkJewotCQkJb2s9MDsKLQkJCVg1MDlfU1RPUkVfQ1RYX3NldF9lcnJvcihjdHgsWDUwOV9WX0VSUl9DRVJUX0NIQUlOX1RPT19MT05HKTsKLQkJCX0KLQkJfQotCXN3aXRjaCAoY3R4LT5lcnJvcikKLQkJewotCWNhc2UgWDUwOV9WX0VSUl9VTkFCTEVfVE9fR0VUX0lTU1VFUl9DRVJUOgotCQlYNTA5X05BTUVfb25lbGluZShYNTA5X2dldF9pc3N1ZXJfbmFtZShjdHgtPmN1cnJlbnRfY2VydCksYnVmLDI1Nik7Ci0JCUJJT19wcmludGYoYmlvX2VyciwiaXNzdWVyPSAlc1xuIixidWYpOwotCQlicmVhazsKLQljYXNlIFg1MDlfVl9FUlJfQ0VSVF9OT1RfWUVUX1ZBTElEOgotCWNhc2UgWDUwOV9WX0VSUl9FUlJPUl9JTl9DRVJUX05PVF9CRUZPUkVfRklFTEQ6Ci0JCUJJT19wcmludGYoYmlvX2Vyciwibm90QmVmb3JlPSIpOwotCQlBU04xX1VUQ1RJTUVfcHJpbnQoYmlvX2VycixYNTA5X2dldF9ub3RCZWZvcmUoY3R4LT5jdXJyZW50X2NlcnQpKTsKLQkJQklPX3ByaW50ZihiaW9fZXJyLCJcbiIpOwotCQlicmVhazsKLQljYXNlIFg1MDlfVl9FUlJfQ0VSVF9IQVNfRVhQSVJFRDoKLQljYXNlIFg1MDlfVl9FUlJfRVJST1JfSU5fQ0VSVF9OT1RfQUZURVJfRklFTEQ6Ci0JCUJJT19wcmludGYoYmlvX2Vyciwibm90QWZ0ZXI9Iik7Ci0JCUFTTjFfVVRDVElNRV9wcmludChiaW9fZXJyLFg1MDlfZ2V0X25vdEFmdGVyKGN0eC0+Y3VycmVudF9jZXJ0KSk7Ci0JCUJJT19wcmludGYoYmlvX2VyciwiXG4iKTsKLQkJYnJlYWs7Ci0JCX0KLQlCSU9fcHJpbnRmKGJpb19lcnIsInZlcmlmeSByZXR1cm46JWRcbiIsb2spOwotCXJldHVybihvayk7Ci0JfQpkaWZmIC0tZ2l0IGEvY3J5cHRvL3BrY3M3L2Rlcy5wZW0gYi9jcnlwdG8vcGtjczcvZGVzLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjJkMTY1Ny4uMDAwMDAwMAotLS0gYS9jcnlwdG8vcGtjczcvZGVzLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLQotTUlBR0NTcUdTSWIzRFFFSEE2Q0FNSUFDQVFBeGdnSG1NSUh3QWdFQU1JR1pNSUdTTVFzd0NRWURWUVFHRXdKQlZURVRNQkVHCi1BMVVFQ0JNS1VYVmxaVzV6YkdGdVpERVJNQThHQTFVRUJ4TUlRbkpwYzJKaGJtVXhHakFZQmdOVkJBb1RFVU55ZVhCMGMyOW0KLWRDQlFkSGtnVEhSa01TSXdJQVlEVlFRTEV4bEVSVTFQVGxOVVVrRlVTVTlPSUVGT1JDQlVSVk5VU1U1SE1Sc3dHUVlEVlFRRAotRXhKRVJVMVBJRnBGVWs4Z1ZrRk1WVVVnUTBFQ0FnUitNQTBHQ1NxR1NJYjNEUUVCQVFVQUJFQzJ2WEkxeFFEVzZsVUhNM3pRCi0vOXVCRUJPTzVBM1R0a3JrbEFYcTd2MDFnc0lDMjF0NTJxU2szNlJFWFkrc2xoTlowT1EzNDl0Z2tUc29FVEhGTG9Fd01JSHcKLUFnRUFNSUdaTUlHU01Rc3dDUVlEVlFRR0V3SkJWVEVUTUJFR0ExVUVDQk1LVVhWbFpXNXpiR0Z1WkRFUk1BOEdBMVVFQnhNSQotUW5KcGMySmhibVV4R2pBWUJnTlZCQW9URVVOeWVYQjBjMjltZENCUWRIa2dUSFJrTVNJd0lBWURWUVFMRXhsRVJVMVBUbE5VCi1Va0ZVU1U5T0lFRk9SQ0JVUlZOVVNVNUhNUnN3R1FZRFZRUURFeEpFUlUxUElGcEZVazhnVmtGTVZVVWdRMEVDQWdSOU1BMEcKLUNTcUdTSWIzRFFFQkFRVUFCRUI4dWp4YmFieFhVWUpob3B1RG0zb0RxNEpOcVg2SW80cDNybytTaHFmSW5kc1hUWjF2NWEyTgotV3RMTENXbEhuL2hhYmpCd1ovRGdRZ2NLQVNiWjdReE5NSUFHQ1NxR1NJYjNEUUVIQVRBYUJnZ3Foa2lHOXcwREFqQU9BZ0lBCi1vQVFJYnNMNXYxd1g5OEtnZ0FRb0FhSjRXSG02OGZYWTFXRTVPSWpmVkJJRHBPMUsraThkbUtoam5BanJqb3laOUJ3YzhyREwKLWxnUWc0Q1hiODA1aDV4bCtHZnZTd1VhSEpheXRlMW0ybWNPaHMzSjJZeXFiUStNRUlNSWlKUWNjbWhPM29ES20zNkNGdllSOAotNVBqcGNsVmNaeVgybmdid1BGTW5CQWd5MGNsT0FFNlVLQUFBQUFBQUFBQUFBQUE9Ci0KZGlmZiAtLWdpdCBhL2NyeXB0by9wa2NzNy9kb2MgYi9jcnlwdG8vcGtjczcvZG9jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMmU4YjdiLi4wMDAwMDAwCi0tLSBhL2NyeXB0by9wa2NzNy9kb2MKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi1pbnQgUEtDUzdfc2V0X2NvbnRlbnRfdHlwZShQS0NTNyAqcDcsIGludCB0eXBlKTsKLUNhbGwgdG8gc2V0IHRoZSB0eXBlIG9mIFBLQ1M3IG9iamVjdCB3ZSBhcmUgd29ya2luZyBvbgotCi1pbnQgUEtDUzdfU0lHTkVSX0lORk9fc2V0KFBLQ1M3X1NJR05FUl9JTkZPICpwN2ksIFg1MDkgKng1MDksIEVWUF9QS0VZICpwa2V5LAotCUVWUF9NRCAqZGdzdCk7Ci1Vc2UgdGhpcyB0byBzZXR1cCBhIHNpZ25lciBpbmZvCi1UaGVyZSB3aWxsIGFsc28gYmUgZnVuY3Rpb25zIHRvIGFkZCBzaWduZWQgYW5kIHVuc2lnbmVkIGF0dHJpYnV0ZXMuCi0KLWludCBQS0NTN19hZGRfc2lnbmVyKFBLQ1M3ICpwNywgUEtDUzdfU0lHTkVSX0lORk8gKnA3aSk7Ci1BZGQgYSBzaWduZXIgaW5mbyB0byB0aGUgY29udGVudC4KLQotaW50IFBLQ1M3X2FkZF9jZXJ0aWZpY2FlKFBLQ1M3ICpwNywgWDUwOSAqeDUwOSk7Ci1pbnQgUEtDUzdfYWRkX2NybChQS0NTNyAqcDcsIFg1MDlfQ1JMICp4NTA5KTsKLQotLS0tLQotCi1wNz1QS0NTN19uZXcoKTsKLVBLQ1M3X3NldF9jb250ZW50X3R5cGUocDcsTklEX3BrY3M3X3NpZ25lZCk7Ci0KLXNpZ25lcj1QS0NTN19TSU5HTkVSX0lORk9fbmV3KCk7Ci1QS0NTN19TSUdORVJfSU5GT19zZXQoc2lnbmVyLHg1MDkscGtleSxFVlBfbWQ1KCkpOwotUEtDUzdfYWRkX3NpZ25lcihweSxzaWduZXIpOwotCi13ZSBhcmUgbm93IHNldHVwLgpkaWZmIC0tZ2l0IGEvY3J5cHRvL3BrY3M3L2VuYy5jIGIvY3J5cHRvL3BrY3M3L2VuYy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NDE3ZjhhLi4wMDAwMDAwCi0tLSBhL2NyeXB0by9wa2NzNy9lbmMuYworKysgL2Rldi9udWxsCkBAIC0xLDE3NCArMCwwIEBACi0vKiBjcnlwdG8vcGtjczcvZW5jLmMgKi8KLS8qIENvcHlyaWdodCAoQykgMTk5NS0xOTk4IEVyaWMgWW91bmcgKGVheUBjcnlwdHNvZnQuY29tKQotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIHBhY2thZ2UgaXMgYW4gU1NMIGltcGxlbWVudGF0aW9uIHdyaXR0ZW4KLSAqIGJ5IEVyaWMgWW91bmcgKGVheUBjcnlwdHNvZnQuY29tKS4KLSAqIFRoZSBpbXBsZW1lbnRhdGlvbiB3YXMgd3JpdHRlbiBzbyBhcyB0byBjb25mb3JtIHdpdGggTmV0c2NhcGVzIFNTTC4KLSAqIAotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgZm9yIGNvbW1lcmNpYWwgYW5kIG5vbi1jb21tZXJjaWFsIHVzZSBhcyBsb25nIGFzCi0gKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIGFoZWFyZWQgdG8uICBUaGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFwcGx5IHRvIGFsbCBjb2RlIGZvdW5kIGluIHRoaXMgZGlzdHJpYnV0aW9uLCBiZSBpdCB0aGUgUkM0LCBSU0EsCi0gKiBsaGFzaCwgREVTLCBldGMuLCBjb2RlOyBub3QganVzdCB0aGUgU1NMIGNvZGUuICBUaGUgU1NMIGRvY3VtZW50YXRpb24KLSAqIGluY2x1ZGVkIHdpdGggdGhpcyBkaXN0cmlidXRpb24gaXMgY292ZXJlZCBieSB0aGUgc2FtZSBjb3B5cmlnaHQgdGVybXMKLSAqIGV4Y2VwdCB0aGF0IHRoZSBob2xkZXIgaXMgVGltIEh1ZHNvbiAodGpoQGNyeXB0c29mdC5jb20pLgotICogCi0gKiBDb3B5cmlnaHQgcmVtYWlucyBFcmljIFlvdW5nJ3MsIGFuZCBhcyBzdWNoIGFueSBDb3B5cmlnaHQgbm90aWNlcyBpbgotICogdGhlIGNvZGUgYXJlIG5vdCB0byBiZSByZW1vdmVkLgotICogSWYgdGhpcyBwYWNrYWdlIGlzIHVzZWQgaW4gYSBwcm9kdWN0LCBFcmljIFlvdW5nIHNob3VsZCBiZSBnaXZlbiBhdHRyaWJ1dGlvbgotICogYXMgdGhlIGF1dGhvciBvZiB0aGUgcGFydHMgb2YgdGhlIGxpYnJhcnkgdXNlZC4KLSAqIFRoaXMgY2FuIGJlIGluIHRoZSBmb3JtIG9mIGEgdGV4dHVhbCBtZXNzYWdlIGF0IHByb2dyYW0gc3RhcnR1cCBvcgotICogaW4gZG9jdW1lbnRhdGlvbiAob25saW5lIG9yIHRleHR1YWwpIHByb3ZpZGVkIHdpdGggdGhlIHBhY2thZ2UuCi0gKiAKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gQWxsIGFkdmVydGlzaW5nIG1hdGVyaWFscyBtZW50aW9uaW5nIGZlYXR1cmVzIG9yIHVzZSBvZiB0aGlzIHNvZnR3YXJlCi0gKiAgICBtdXN0IGRpc3BsYXkgdGhlIGZvbGxvd2luZyBhY2tub3dsZWRnZW1lbnQ6Ci0gKiAgICAiVGhpcyBwcm9kdWN0IGluY2x1ZGVzIGNyeXB0b2dyYXBoaWMgc29mdHdhcmUgd3JpdHRlbiBieQotICogICAgIEVyaWMgWW91bmcgKGVheUBjcnlwdHNvZnQuY29tKSIKLSAqICAgIFRoZSB3b3JkICdjcnlwdG9ncmFwaGljJyBjYW4gYmUgbGVmdCBvdXQgaWYgdGhlIHJvdWluZXMgZnJvbSB0aGUgbGlicmFyeQotICogICAgYmVpbmcgdXNlZCBhcmUgbm90IGNyeXB0b2dyYXBoaWMgcmVsYXRlZCA6LSkuCi0gKiA0LiBJZiB5b3UgaW5jbHVkZSBhbnkgV2luZG93cyBzcGVjaWZpYyBjb2RlIChvciBhIGRlcml2YXRpdmUgdGhlcmVvZikgZnJvbSAKLSAqICAgIHRoZSBhcHBzIGRpcmVjdG9yeSAoYXBwbGljYXRpb24gY29kZSkgeW91IG11c3QgaW5jbHVkZSBhbiBhY2tub3dsZWRnZW1lbnQ6Ci0gKiAgICAiVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIHdyaXR0ZW4gYnkgVGltIEh1ZHNvbiAodGpoQGNyeXB0c29mdC5jb20pIgotICogCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEVSSUMgWU9VTkcgYGBBUyBJUycnIEFORAotICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQotICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKLSAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0gKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUwotICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCi0gKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAotICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQotICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgotICogU1VDSCBEQU1BR0UuCi0gKiAKLSAqIFRoZSBsaWNlbmNlIGFuZCBkaXN0cmlidXRpb24gdGVybXMgZm9yIGFueSBwdWJsaWNhbGx5IGF2YWlsYWJsZSB2ZXJzaW9uIG9yCi0gKiBkZXJpdmF0aXZlIG9mIHRoaXMgY29kZSBjYW5ub3QgYmUgY2hhbmdlZC4gIGkuZS4gdGhpcyBjb2RlIGNhbm5vdCBzaW1wbHkgYmUKLSAqIGNvcGllZCBhbmQgcHV0IHVuZGVyIGFub3RoZXIgZGlzdHJpYnV0aW9uIGxpY2VuY2UKLSAqIFtpbmNsdWRpbmcgdGhlIEdOVSBQdWJsaWMgTGljZW5jZS5dCi0gKi8KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPG9wZW5zc2wvYmlvLmg+Ci0jaW5jbHVkZSA8b3BlbnNzbC94NTA5Lmg+Ci0jaW5jbHVkZSA8b3BlbnNzbC9wZW0uaD4KLSNpbmNsdWRlIDxvcGVuc3NsL2Vyci5oPgotCi1pbnQgbWFpbihhcmdjLGFyZ3YpCi1pbnQgYXJnYzsKLWNoYXIgKmFyZ3ZbXTsKLQl7Ci0JWDUwOSAqeDUwOTsKLQlQS0NTNyAqcDc7Ci0JQklPICppbjsKLQlCSU8gKmRhdGEsKnA3YmlvOwotCWNoYXIgYnVmWzEwMjQqNF07Ci0JaW50IGk7Ci0JaW50IG5vZGV0YWNoPTE7Ci0JY2hhciAqa2V5ZmlsZSA9IE5VTEw7Ci0JY29uc3QgRVZQX0NJUEhFUiAqY2lwaGVyPU5VTEw7Ci0JU1RBQ0tfT0YoWDUwOSkgKnJlY2lwcz1OVUxMOwotCi0JT3BlblNTTF9hZGRfYWxsX2FsZ29yaXRobXMoKTsKLQotCWRhdGE9QklPX25ldyhCSU9fc19maWxlKCkpOwotCXdoaWxlKGFyZ2MgPiAxKQotCQl7Ci0JCWlmIChzdHJjbXAoYXJndlsxXSwiLW5kIikgPT0gMCkKLQkJCXsKLQkJCW5vZGV0YWNoPTE7Ci0JCQlhcmd2Kys7IGFyZ2MtLTsKLQkJCX0KLQkJZWxzZSBpZiAoKHN0cmNtcChhcmd2WzFdLCItYyIpID09IDApICYmIChhcmdjID49IDIpKSB7Ci0JCQlpZighKGNpcGhlciA9IEVWUF9nZXRfY2lwaGVyYnluYW1lKGFyZ3ZbMl0pKSkgewotCQkJCWZwcmludGYoc3RkZXJyLCAiVW5rbm93biBjaXBoZXIgJXNcbiIsIGFyZ3ZbMl0pOwotCQkJCWdvdG8gZXJyOwotCQkJfQotCQkJYXJnYy09MjsKLQkJCWFyZ3YrPTI7Ci0JCX0gZWxzZSBpZiAoKHN0cmNtcChhcmd2WzFdLCItayIpID09IDApICYmIChhcmdjID49IDIpKSB7Ci0JCQlrZXlmaWxlID0gYXJndlsyXTsKLQkJCWFyZ2MtPTI7Ci0JCQlhcmd2Kz0yOwotCQkJaWYgKCEoaW49QklPX25ld19maWxlKGtleWZpbGUsInIiKSkpIGdvdG8gZXJyOwotCQkJaWYgKCEoeDUwOT1QRU1fcmVhZF9iaW9fWDUwOShpbixOVUxMLE5VTEwsTlVMTCkpKQotCQkJCWdvdG8gZXJyOwotCQkJaWYoIXJlY2lwcykgcmVjaXBzID0gc2tfWDUwOV9uZXdfbnVsbCgpOwotCQkJc2tfWDUwOV9wdXNoKHJlY2lwcywgeDUwOSk7Ci0JCQlCSU9fZnJlZShpbik7Ci0JCX0gZWxzZSBicmVhazsKLQl9Ci0KLQlpZighcmVjaXBzKSB7Ci0JCWZwcmludGYoc3RkZXJyLCAiTm8gcmVjaXBpZW50c1xuIik7Ci0JCWdvdG8gZXJyOwotCX0KLQotCWlmICghQklPX3JlYWRfZmlsZW5hbWUoZGF0YSxhcmd2WzFdKSkgZ290byBlcnI7Ci0KLQlwNz1QS0NTN19uZXcoKTsKLSNpZiAwCi0JQklPX3Jlc2V0KGluKTsKLQlpZiAoKHBrZXk9UEVNX3JlYWRfYmlvX1ByaXZhdGVLZXkoaW4sTlVMTCxOVUxMKSkgPT0gTlVMTCkgZ290byBlcnI7Ci0JQklPX2ZyZWUoaW4pOwotCVBLQ1M3X3NldF90eXBlKHA3LE5JRF9wa2NzN19zaWduZWRBbmRFbnZlbG9wZWQpOwotCSAKLQlpZiAoUEtDUzdfYWRkX3NpZ25hdHVyZShwNyx4NTA5LHBrZXksRVZQX3NoYTEoKSkgPT0gTlVMTCkgZ290byBlcnI7Ci0JLyogd2UgbWF5IHdhbnQgdG8gYWRkIG1vcmUgKi8KLQlQS0NTN19hZGRfY2VydGlmaWNhdGUocDcseDUwOSk7Ci0jZWxzZQotCVBLQ1M3X3NldF90eXBlKHA3LE5JRF9wa2NzN19lbnZlbG9wZWQpOwotI2VuZGlmCi0JaWYoIWNpcGhlcikJewotI2lmbmRlZiBPUEVOU1NMX05PX0RFUwotCQljaXBoZXIgPSBFVlBfZGVzX2VkZTNfY2JjKCk7Ci0jZWxzZQotCQlmcHJpbnRmKHN0ZGVyciwgIk5vIGNpcGhlciBzZWxlY3RlZFxuIik7Ci0JCWdvdG8gZXJyOwotI2VuZGlmCi0JfQotCi0JaWYgKCFQS0NTN19zZXRfY2lwaGVyKHA3LGNpcGhlcikpIGdvdG8gZXJyOwotCWZvcihpID0gMDsgaSA8IHNrX1g1MDlfbnVtKHJlY2lwcyk7IGkrKykgewotCQlpZiAoIVBLQ1M3X2FkZF9yZWNpcGllbnQocDcsc2tfWDUwOV92YWx1ZShyZWNpcHMsIGkpKSkgZ290byBlcnI7Ci0JfQotCXNrX1g1MDlfcG9wX2ZyZWUocmVjaXBzLCBYNTA5X2ZyZWUpOwotCi0JLyogU2V0IHRoZSBjb250ZW50IG9mIHRoZSBzaWduZWQgdG8gJ2RhdGEnICovCi0JLyogUEtDUzdfY29udGVudF9uZXcocDcsTklEX3BrY3M3X2RhdGEpOyBub3QgdXNlZCBpbiBlbnZlbG9wZSAqLwotCi0JLyogY291bGQgYmUgdXNlZCwgYnV0IG5vdCBpbiB0aGlzIHZlcnNpb24gOi0pCi0JaWYgKCFub2RldGFjaCkgUEtDUzdfc2V0X2RldGFjaGVkKHA3LDEpOwotCSovCi0KLQlpZiAoKHA3YmlvPVBLQ1M3X2RhdGFJbml0KHA3LE5VTEwpKSA9PSBOVUxMKSBnb3RvIGVycjsKLQotCWZvciAoOzspCi0JCXsKLQkJaT1CSU9fcmVhZChkYXRhLGJ1ZixzaXplb2YoYnVmKSk7Ci0JCWlmIChpIDw9IDApIGJyZWFrOwotCQlCSU9fd3JpdGUocDdiaW8sYnVmLGkpOwotCQl9Ci0JQklPX2ZsdXNoKHA3YmlvKTsKLQotCWlmICghUEtDUzdfZGF0YUZpbmFsKHA3LHA3YmlvKSkgZ290byBlcnI7Ci0JQklPX2ZyZWUocDdiaW8pOwotCi0JUEVNX3dyaXRlX1BLQ1M3KHN0ZG91dCxwNyk7Ci0JUEtDUzdfZnJlZShwNyk7Ci0KLQlleGl0KDApOwotZXJyOgotCUVSUl9sb2FkX2NyeXB0b19zdHJpbmdzKCk7Ci0JRVJSX3ByaW50X2Vycm9yc19mcChzdGRlcnIpOwotCWV4aXQoMSk7Ci0JfQotCmRpZmYgLS1naXQgYS9jcnlwdG8vcGtjczcvZXMxLnBlbSBiL2NyeXB0by9wa2NzNy9lczEucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NzExMmEyLi4wMDAwMDAwCi0tLSBhL2NyeXB0by9wa2NzNy9lczEucGVtCisrKyAvZGV2L251bGwKQEAgLTEsNjYgKzAsMCBAQAotLS0tLS1CRUdJTiBQS0NTNy0tLS0tCi1NSUFHQ1NxR1NJYjNEUUVIQTZDQU1JQUNBUUF4Z2dIbU1JSHdBZ0VBTUlHWk1JR1NNUXN3Q1FZRFZRUUdFd0pCVlRFVE1CRUcKLUExVUVDQk1LVVhWbFpXNXpiR0Z1WkRFUk1BOEdBMVVFQnhNSVFuSnBjMkpoYm1VeEdqQVlCZ05WQkFvVEVVTnllWEIwYzI5bQotZENCUWRIa2dUSFJrTVNJd0lBWURWUVFMRXhsRVJVMVBUbE5VVWtGVVNVOU9JRUZPUkNCVVJWTlVTVTVITVJzd0dRWURWUVFECi1FeEpFUlUxUElGcEZVazhnVmtGTVZVVWdRMEVDQWdSdU1BMEdDU3FHU0liM0RRRUJBUVVBQkVEV2FrMHkvNVhaSmhRSmVDTG8KLUtFQ2NIWGtURWJqellrWU5ISWluYmlQbVJLNFFiTmZzOXoybUEzei9jMnlrUTRlQXFGUjJqeU5yVU1OLytJNVhFaXY2TUlIdwotQWdFQU1JR1pNSUdTTVFzd0NRWURWUVFHRXdKQlZURVRNQkVHQTFVRUNCTUtVWFZsWlc1emJHRnVaREVSTUE4R0ExVUVCeE1JCi1RbkpwYzJKaGJtVXhHakFZQmdOVkJBb1RFVU55ZVhCMGMyOW1kQ0JRZEhrZ1RIUmtNU0l3SUFZRFZRUUxFeGxFUlUxUFRsTlUKLVVrRlVTVTlPSUVGT1JDQlVSVk5VU1U1SE1Sc3dHUVlEVlFRREV4SkVSVTFQSUZwRlVrOGdWa0ZNVlVVZ1EwRUNBZ1I5TUEwRwotQ1NxR1NJYjNEUUVCQVFVQUJFQVdnOStLZ3RDamM3N0pkajFWZTR3R2dIalZIYmJTWUVBMVpxS0ZEb2kxNXZTcjloZnBIbUM0Ci15Y1p6Y1JvMTZKa1Rmb2xlZmlIWnpteWpWejk0dlNONk1JQUdDU3FHU0liM0RRRUhBVEFhQmdncWhraUc5dzBEQWpBT0FnSUEKLW9BUUk3WDRUazRtY2JWNmdnQVNCc0hsMW1DYUozUmhYV2xOUENnQ1JVNTNkN001eDZURFpSa3Z3ZHRkdlc5Nm0xbHVwVDAzRgotWHRvbmtCcWs3b01rSDdrR2ZzNS9SRVFPUGp4MFFFMkl4bWd0MVczc3p1bTgyRVp3QTdwWk5wcGNyYUs3Vy9vZHcvN2JZWk8rCi1JSTNIUG1Sa2xFMk45cWl1MUxQYVBVc25Zb2drTzZTZW5ueWVMNXRaMzgydkJ3ZUwvOHBuRzBxc2JUMU9CYjY1ditsbG5zalQKLXBhMVQvcCtmSXgvaUpKR0U2SzlmWUZva0M2Z1hMUTZvelhSZE91NW9CREI4bVBDWVl2QXFLeWNpZE0vTXJHR1VrcEV0UzRmMAotbFMzMVB3UWk1WVRpbThJZzMvVE93VnBQWDMyaTQ2RlR1RUlFSU1Ia0QvT3ZwZndDQ3pYVUhISm5LbktVQVV2SXNTWTN2R0JzCi04ZXpwVURmQkJCajlMSER5MzJoWjJ0UWlsa0RlZlA1Vk0yTExkcldnYW1ZRWdmaXlJVFF2bjA4VWw1bFFPUXhiRktCaGVGcTUKLW90Q0NONE1SK3c1ZXExMnhRdTZ5K2Y5ejAxNTlhZzJydTg3RDBsTHRVdFhYdENFTGJPMW5Va1Qyc0oway9pRHM5VE9YcjZDeAotZ28xWEtZaG84M2hsa1hZaUN0ZVZpemRBYmdWR05zTlJENHd0SWRhanNvckVUL0x1SkVDZ3AxMVllTDl3MWRsREIwSExFWmZpCi1YQ3NVcGhINGpHYWdiYTNoRGVVU2libmpTaUpsTjB1a2Z1UXVyQkJiSTJVa0JBdWppRUF1YktQbjdDMUZaSlJTdzZDUFBYNXQKLUtFcG1jcVQxSk5rNkxPOEpzNi8xc0NtbUJoMVZHQ3kxK0V1VEk5SjFwN0RhZ2Y0blE4Y0hpdG9DUnBIdUtabEZIblp5djd0dwotUm4vS09oSGFZUDJWekFoNDBnUUl2S01BQVdoOW9Gc0VFSU13SW9PbUx3TEg1d2YrOFFkYkRob0VDSDhId1p0OWExMmRCQWpMCi1yNGoyemx2dGZnUUl0N25tRU0zd3oxRUVDS2xjM0VJeTFpckNCQkNBS0lOY2VybUszQStqSTZJU04yUnpCRkEzZHNoL3h3TXUKLWw2MWFXTUJCWnpFei9TRjkyazZuMzVLWmhDQzBkNmZJVkMvMVdNdjBmbkN3UThvRUR5blNyZTIxNlZFRmlZS0JhUUxKZTVvLwotbVRBeEM3SHQzZ29YbnVjK2kxRkl0T2tMcmdSSS93eXZUSUNFbjJXc05aaU1BRG5HYWVlMmJxUG5Vb3BvK1ZNR2V4SkV0Q1BrCi1sMFpObERKR3F1UERrcFV3YUV0ZWNWWnpDTnlWUFl5eUY0Si9sOHJtR0RoRGRZVUlDOElLQkVnL2lwL0UwQnV1YkJMV1ZidisKLUhSbDRRcm5HcHlDeWVYUlhYSzYwM1FQM3NUMVpiYm0xdjVwSS9sb09oVkhpNzI0TG10WEhTeXA1cXY5TURjeEUxUG9YMTBMWQotZ0JSdGx3d0VTUGVDRjhiSzVqazR4SVFNaEs1Tk1IajFZMUtRV1RaOU5HSVRCTDRoalJxMnFwNFFrNUdJcEdnT1ZQb3BBdUNvCi1USXlQaWtwcUJSTnRMU1BSU3NEczZRUFVQeldCaDZKZ3h3UlFibG5ES0tVa3hVY25KaUQ0aTlRdEdhL1phYk1uNEt4dE5PQkwKLTVKU2gxbkprYUxYQ1pZMDcwMTMxV1dQQUJ5TGNkNVRpWHE4eDg0cG16VjVOTms0dGlNcG9YaEpOc3g4ZTRyc2tRUWxLZDZNRQotU0NlMmVZREhLY0tQWDNXSmJVemhySlNROTIvYVduSTJpVVk4V1Era1NOeWlaMlFVanl1VWc5WjY2Zy8wZDJTVGx2UE9CSFQvCi15NU9EUDJDd2JjV1g0UW1DYlVjOVRUNjZmUVJJclJWdXd2dE9mblV1ZXlHZ1loSjNIcEFKZlZhQi83a2FwNWJqN0ZpL2F6VzQKLTlKRGZkMWJDL1c5aDBLeWs3Uk8yZ3h2RTBoSUhjMjZtWkpIVG05TU5QNUQzMjhNbk0yTWRCRWpLalFCdGdycCtsRklpaTdNUAotbkdIRlRLVWtHNFdBSVpKQ2YvQ3NUK3A2L1NXMHFHNzFNZS9ZY1N3NVNUQjI0aithK0hnTVY4UlZJZVVsa1A0ejBJV1dyU29CCi1HaDRkL1owRVVNQ1ZIcy9IWi9iV2dpeWh0SHB2dVZBemlkbThEODFwMUxKNUJRWDUvNWYvbStxNStmUy9ucEwyN2RURWJOcXMKLUxTQjZpajNNWkFpN0x3SFdwVG45elduRGFqQ01Fajl2bGFWN21jS3RISzVpQkVnODVhZ0ZpMWgzTXZpY3FMdG9GZTVoVnY5VAotdEcwajZDUmtqa2l4UHppdmx0bHJmNDRLSHYxNGdMTTBYSnhDR3lxN3ZkM2w4UVlyMys5YXQwek5uWC95cVRpQm5zbkU1ZFVFCi1TSWdyWXV6ODdNMmdpL0VSOVBjRG9UdE9OSDMrQ2tjcVZ5MDNxL1NqOGNWV0QvYjFLZ0VocW5OT2ZjOEFrOVBjdHlSL0l0Y1IKLThNZTVYVm4xR0pLa1FKazRPMjlmeHZnTm9BUUlySUVTdlVXR3NoQUVRQnlYaUZvRlREVUJ5alRsZ2pjeTc3SDFsckgreTNQLwotd0FJbkpqSkF1dDlrQ055R0pWMFBBNGtkUEI1VVNXbHR1TzZ0OGdrNFBkMllCTWwwOXpxVVdrQUVVQ2pGcnRaM21hcGpjR1pJCi11UVRBU0tSNUxTalhvV3hUVDVnYWUvKzY0TWVyRi9vQ0VlTzNlaFJUcGpuUHJzaVJEbzByV0lRVGFqOStOcm84WjJ4dFdzdHcKLVJuZm9BSEl4VjFsRWFtUHdqc2NlQkVpMlNEOWhpaWZGZU81RUNpVm9hRTFGZFhVWGhVK2p3WUFNeDZqSFdPOWhNa1l6UzlwTQotWTNJeVdSNXlidE9qaVFna1VkdlJKUFVQR2Y1RFZWTVBueW1HWDI1YURoNVBZcElFU1Bic005YWtDcE9PVnVzY3l3Y1Vzd21VCi1vN2RYdmxCNDhXV0NmZy9hbDNCUUtBWmJuNVpYdFdOd3BVWmtyRWRIc3J4QVZ2M3J4UmNka1QzWjFmelViSXVZa0xKTjIwMG8KLVdnUklKdm42Uk84S0VqNy9IT2cyc1l1dU04bnoxa1IwVFNnd1g3LzB5LzdKZmpCYTBKSWxQN283NXNOSnNjRThveW9JTXp1eQotRHZuNi9VOWczQkNEWG44M0EvcytrZTYwcW45Z0JGQzZOQWVMT2xYYWwxWVZXWWhNUU5PcUN5VWZBamlYQlRhd2F5c1FiMU1rCi1ZZ2VObEY4eHVFRmNVUVdJUCt2Tkc3Rko1SlBNYU1STDRZRW9hUTNzVkZoWU9FUkpSMWNTYis4eHQ0UUNZdEJLUWdSSVVPbUoKLUNIVzVvMWhYSldKaVRrWksycVdGY0VNelRJTlNqNUVwWUZ5U3I4YVZCamtSbkk3dnhlZ1JULytYWlpYb1llZFEzVU5zbkdJMwotRGRrV2lpNVZ6WDBQTkY2QzYwcGZCRWlWcGF1c1l1WDdXamIzTGZtOGNCajdHZ042OWk2UG0yZ3h0b2JWY21wbzJuUzRENzE0Ci1lUHlobFg5bjhrSjZRQWNxV01SajIyc21EUHJIVkdOVGl6ZnpIQmg1ek5sbEs5Z0VTSml6SUxPV0kzMjdvZzNaV3ArcVVodDUKLWtOREpDek1LN1owOVVBeStoK3ZxMFZUUXVFbzNGZ0x6VmRxa0p1ampTTDROeDk3bFhnNTFBb3ZyRW4zbmQ0ZXZ5ZHdjaktMWAotMXdSSW83Mk5hZVd1VUVRK3J0MVNsQ3NPSjdrMWlvSlNxaHJQT2Z2d2NhRmNiNGJlVmV0MUpXaXk0eXZvd1RqTERHYlVqZTJzCi14anJsVnQ0QkpXSS91QTZqYlFzcnhTZTg5QURaQkFpNVlBbFI0cXN6ZUFRSVhEM1ZTQlZLYlJVRUNOVHR5dnc5dnZxWEJBaGIKLUlaTm40SDRjeGdRSStYVzdHa2ZMK2VrRUNDQ0NnMnJlTXlHREJBaDFQWXFrZzNsdzNnUVFrTmxnZ0VQVStCSDhlaDdHbTduNwotN0FRSWpDNUVXYmtpbDVjRUVLY3B1cXdUV3d3L1g4OUtuUUFnOFRjRUNKUG9tcUh2cmxaRkJCaVJTdUlpSHBtTitQYXVqWHB2Ci1xWlYyVmhqa0IyajA5R0VFQ09JZHY4QVZPSmdLQkFqbEhnSXFBRDlqWlFRSVhIYnM0NCt3b2djRUlHR3FUQUNSSnhyaE1jTUcKLVg4ZHJOamtzSVB0K3NueFRYVUJJa1RWcFpXb0FCQWg2dW5YUFR5SXI4UVFnQkY4eEtvWDI3TVdrN2lUTm1rU05aZ2daWGEyYQotRFdDR0hTWUxuZ2JTT0hJRUNEOVhtTzZWc3ZUZ0JBamZxQjcwQ0VXNFd3UUlWSUJrYkNvY3puVUVFSEIvekZYeS9zUjRPWUhlCi1VZmJOUG5JRUVEV0JCL05UQ0xNR0UrbzhCZnl1amNBRUNGaWs3R1FubkY5VkJCQWhMWEV4UWVXQW9mWk5jNk50TjdxWkJDQzEKLWdWSVMzcnVUd0tsdG1jcmd4M2hlVDNNOFpKaENmV2ErNkt6Y2hubUt5Z1FRKzFOTDVzU3pSNG0vZmRycXhIRnlVQVFZQ1QyeAotUGFtUXIzd0szaDBseVpFUis0SDB6UE04NkFoRkJCQzNDa212TDJ2amZsTWZ1am56UEJWcEJCZ2U5ck1iSTUrMHE5RExyVGlUCi01RjNBSWdYTHBEOFBRV0FFQ0hrSFZvNlJvbVYzQkFnTWJpOEUyNzFVZUFRSXF0Uzh3bkkzWG5nRUNHM1RXbU9NYjMvaUJFaGEKLXkrbXZDUzZJM24zSmZMOGUxQjVQNHFYOS9jekpSYUVSTHVLcEdOakxpTDRBK3p4TjBMWjBVSGQwcWZtSmp3T1R4QXgzaUpBQwotbEdYWDRuQjlBVFlQVVQ1RVUrbzFZNHNFQ04wMXBQNnZXTklkQkRBc2lFMFRzOC85bHRKbHFYMkIzQW9PTTRxT3Q5RWFDalhmCi1sQithRW1yaHRqVXd1WjZHcVM1S2U3UDZYbmFrVGs0RUNDTElNYXROZG9vdEFBQUFBQUFBQUFBQUFBPT0KLS0tLS0tRU5EIFBLQ1M3LS0tLS0KZGlmZiAtLWdpdCBhL2NyeXB0by9wa2NzNy9leGFtcGxlLmMgYi9jcnlwdG8vcGtjczcvZXhhbXBsZS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOTUzZDA0Li4wMDAwMDAwCi0tLSBhL2NyeXB0by9wa2NzNy9leGFtcGxlLmMKKysrIC9kZXYvbnVsbApAQCAtMSwzMjkgKzAsMCBAQAotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8b3BlbnNzbC9wa2NzNy5oPgotI2luY2x1ZGUgPG9wZW5zc2wvYXNuMV9tYWMuaD4KLSNpbmNsdWRlIDxvcGVuc3NsL3g1MDkuaD4KLQotaW50IGFkZF9zaWduZWRfdGltZShQS0NTN19TSUdORVJfSU5GTyAqc2kpCi0JewotCUFTTjFfVVRDVElNRSAqc2lnbl90aW1lOwotCi0JLyogVGhlIGxhc3QgcGFyYW1ldGVyIGlzIHRoZSBhbW91bnQgdG8gYWRkL3N1YnRyYWN0IGZyb20gdGhlIGN1cnJlbnQKLQkgKiB0aW1lIChpbiBzZWNvbmRzKSAqLwotCXNpZ25fdGltZT1YNTA5X2dtdGltZV9hZGooTlVMTCwwKTsKLQlQS0NTN19hZGRfc2lnbmVkX2F0dHJpYnV0ZShzaSxOSURfcGtjczlfc2lnbmluZ1RpbWUsCi0JCVZfQVNOMV9VVENUSU1FLChjaGFyICopc2lnbl90aW1lKTsKLQlyZXR1cm4oMSk7Ci0JfQotCi1BU04xX1VUQ1RJTUUgKmdldF9zaWduZWRfdGltZShQS0NTN19TSUdORVJfSU5GTyAqc2kpCi0JewotCUFTTjFfVFlQRSAqc287Ci0KLQlzbz1QS0NTN19nZXRfc2lnbmVkX2F0dHJpYnV0ZShzaSxOSURfcGtjczlfc2lnbmluZ1RpbWUpOwotCWlmIChzby0+dHlwZSA9PSBWX0FTTjFfVVRDVElNRSkKLQkgICAgcmV0dXJuIHNvLT52YWx1ZS51dGN0aW1lOwotCXJldHVybiBOVUxMOwotCX0KLQkKLXN0YXRpYyBpbnQgc2lnbmVkX3N0cmluZ19uaWQ9IC0xOwotCi12b2lkIGFkZF9zaWduZWRfc3RyaW5nKFBLQ1M3X1NJR05FUl9JTkZPICpzaSwgY2hhciAqc3RyKQotCXsKLQlBU04xX09DVEVUX1NUUklORyAqb3M7Ci0KLQkvKiBUbyBhIGFuIG9iamVjdCBvZiBPSUQgMS4yLjMuNC41LCB3aGljaCBpcyBhbiBvY3RldCBzdHJpbmcgKi8KLQlpZiAoc2lnbmVkX3N0cmluZ19uaWQgPT0gLTEpCi0JCXNpZ25lZF9zdHJpbmdfbmlkPQotCQkJT0JKX2NyZWF0ZSgiMS4yLjMuNC41IiwiT0lEX2V4YW1wbGUiLCJPdXIgZXhhbXBsZSBPSUQiKTsKLQlvcz1BU04xX09DVEVUX1NUUklOR19uZXcoKTsKLQlBU04xX09DVEVUX1NUUklOR19zZXQob3MsKHVuc2lnbmVkIGNoYXIqKXN0cixzdHJsZW4oc3RyKSk7Ci0JLyogV2hlbiB3ZSBhZGQsIHdlIGRvIG5vdCBmcmVlICovCi0JUEtDUzdfYWRkX3NpZ25lZF9hdHRyaWJ1dGUoc2ksc2lnbmVkX3N0cmluZ19uaWQsCi0JCVZfQVNOMV9PQ1RFVF9TVFJJTkcsKGNoYXIgKilvcyk7Ci0JfQotCi1pbnQgZ2V0X3NpZ25lZF9zdHJpbmcoUEtDUzdfU0lHTkVSX0lORk8gKnNpLCBjaGFyICpidWYsIGludCBsZW4pCi0JewotCUFTTjFfVFlQRSAqc287Ci0JQVNOMV9PQ1RFVF9TVFJJTkcgKm9zOwotCWludCBpOwotCi0JaWYgKHNpZ25lZF9zdHJpbmdfbmlkID09IC0xKQotCQlzaWduZWRfc3RyaW5nX25pZD0KLQkJCU9CSl9jcmVhdGUoIjEuMi4zLjQuNSIsIk9JRF9leGFtcGxlIiwiT3VyIGV4YW1wbGUgT0lEIik7Ci0JLyogVG8gcmV0cmlldmUgKi8KLQlzbz1QS0NTN19nZXRfc2lnbmVkX2F0dHJpYnV0ZShzaSxzaWduZWRfc3RyaW5nX25pZCk7Ci0JaWYgKHNvICE9IE5VTEwpCi0JCXsKLQkJaWYgKHNvLT50eXBlID09IFZfQVNOMV9PQ1RFVF9TVFJJTkcpCi0JCQl7Ci0JCQlvcz1zby0+dmFsdWUub2N0ZXRfc3RyaW5nOwotCQkJaT1vcy0+bGVuZ3RoOwotCQkJaWYgKChpKzEpID4gbGVuKQotCQkJCWk9bGVuLTE7Ci0JCQltZW1jcHkoYnVmLG9zLT5kYXRhLGkpOwotCQkJcmV0dXJuKGkpOwotCQkJfQotCQl9Ci0JcmV0dXJuKDApOwotCX0KLQotc3RhdGljIGludCBzaWduZWRfc2VxMnN0cmluZ19uaWQ9IC0xOwotLyogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyAqLwotaW50IGFkZF9zaWduZWRfc2VxMnN0cmluZyhQS0NTN19TSUdORVJfSU5GTyAqc2ksIGNoYXIgKnN0cjEsIGNoYXIgKnN0cjIpCi0JewotCS8qIFRvIGFkZCBhbiBvYmplY3Qgb2YgT0lEIDEuOS45OTksIHdoaWNoIGlzIGEgc2VxdWVuY2UgY29udGFpbmluZwotCSAqIDIgb2N0ZXQgc3RyaW5ncyAqLwotCXVuc2lnbmVkIGNoYXIgKnA7Ci0JQVNOMV9PQ1RFVF9TVFJJTkcgKm9zMSwqb3MyOwotCUFTTjFfU1RSSU5HICpzZXE7Ci0JdW5zaWduZWQgY2hhciAqZGF0YTsKLQlpbnQgaSx0b3RhbDsKLQotCWlmIChzaWduZWRfc2VxMnN0cmluZ19uaWQgPT0gLTEpCi0JCXNpZ25lZF9zZXEyc3RyaW5nX25pZD0KLQkJCU9CSl9jcmVhdGUoIjEuOS45OTk5IiwiT0lEX2V4YW1wbGUiLCJPdXIgZXhhbXBsZSBPSUQiKTsKLQotCW9zMT1BU04xX09DVEVUX1NUUklOR19uZXcoKTsKLQlvczI9QVNOMV9PQ1RFVF9TVFJJTkdfbmV3KCk7Ci0JQVNOMV9PQ1RFVF9TVFJJTkdfc2V0KG9zMSwodW5zaWduZWQgY2hhciopc3RyMSxzdHJsZW4oc3RyMSkpOwotCUFTTjFfT0NURVRfU1RSSU5HX3NldChvczIsKHVuc2lnbmVkIGNoYXIqKXN0cjEsc3RybGVuKHN0cjEpKTsKLQlpID1pMmRfQVNOMV9PQ1RFVF9TVFJJTkcob3MxLE5VTEwpOwotCWkrPWkyZF9BU04xX09DVEVUX1NUUklORyhvczIsTlVMTCk7Ci0JdG90YWw9QVNOMV9vYmplY3Rfc2l6ZSgxLGksVl9BU04xX1NFUVVFTkNFKTsKLQotCWRhdGE9bWFsbG9jKHRvdGFsKTsKLQlwPWRhdGE7Ci0JQVNOMV9wdXRfb2JqZWN0KCZwLDEsaSxWX0FTTjFfU0VRVUVOQ0UsVl9BU04xX1VOSVZFUlNBTCk7Ci0JaTJkX0FTTjFfT0NURVRfU1RSSU5HKG9zMSwmcCk7Ci0JaTJkX0FTTjFfT0NURVRfU1RSSU5HKG9zMiwmcCk7Ci0KLQlzZXE9QVNOMV9TVFJJTkdfbmV3KCk7Ci0JQVNOMV9TVFJJTkdfc2V0KHNlcSxkYXRhLHRvdGFsKTsKLQlmcmVlKGRhdGEpOwotCUFTTjFfT0NURVRfU1RSSU5HX2ZyZWUob3MxKTsKLQlBU04xX09DVEVUX1NUUklOR19mcmVlKG9zMik7Ci0KLQlQS0NTN19hZGRfc2lnbmVkX2F0dHJpYnV0ZShzaSxzaWduZWRfc2VxMnN0cmluZ19uaWQsCi0JCVZfQVNOMV9TRVFVRU5DRSwoY2hhciAqKXNlcSk7Ci0JcmV0dXJuKDEpOwotCX0KLQotLyogRm9yIHRoaXMgY2FzZSwgSSB3aWxsIG1hbGxvYyB0aGUgcmV0dXJuIHN0cmluZ3MgKi8KLWludCBnZXRfc2lnbmVkX3NlcTJzdHJpbmcoUEtDUzdfU0lHTkVSX0lORk8gKnNpLCBjaGFyICoqc3RyMSwgY2hhciAqKnN0cjIpCi0JewotCUFTTjFfVFlQRSAqc287Ci0KLQlpZiAoc2lnbmVkX3NlcTJzdHJpbmdfbmlkID09IC0xKQotCQlzaWduZWRfc2VxMnN0cmluZ19uaWQ9Ci0JCQlPQkpfY3JlYXRlKCIxLjkuOTk5OSIsIk9JRF9leGFtcGxlIiwiT3VyIGV4YW1wbGUgT0lEIik7Ci0JLyogVG8gcmV0cmlldmUgKi8KLQlzbz1QS0NTN19nZXRfc2lnbmVkX2F0dHJpYnV0ZShzaSxzaWduZWRfc2VxMnN0cmluZ19uaWQpOwotCWlmIChzbyAmJiAoc28tPnR5cGUgPT0gVl9BU04xX1NFUVVFTkNFKSkKLQkJewotCQlBU04xX2NvbnN0X0NUWCBjOwotCQlBU04xX1NUUklORyAqczsKLQkJbG9uZyBsZW5ndGg7Ci0JCUFTTjFfT0NURVRfU1RSSU5HICpvczEsKm9zMjsKLQotCQlzPXNvLT52YWx1ZS5zZXF1ZW5jZTsKLQkJYy5wPUFTTjFfU1RSSU5HX2RhdGEocyk7Ci0JCWMubWF4PWMucCtBU04xX1NUUklOR19sZW5ndGgocyk7Ci0JCWlmICghYXNuMV9HZXRTZXF1ZW5jZSgmYywmbGVuZ3RoKSkgZ290byBlcnI7Ci0JCS8qIExlbmd0aCBpcyB0aGUgbGVuZ3RoIG9mIHRoZSBzZXFlbmNlICovCi0KLQkJYy5xPWMucDsKLQkJaWYgKChvczE9ZDJpX0FTTjFfT0NURVRfU1RSSU5HKE5VTEwsJmMucCxjLnNsZW4pKSA9PSBOVUxMKSAKLQkJCWdvdG8gZXJyOwotCQljLnNsZW4tPShjLnAtYy5xKTsKLQotCQljLnE9Yy5wOwotCQlpZiAoKG9zMj1kMmlfQVNOMV9PQ1RFVF9TVFJJTkcoTlVMTCwmYy5wLGMuc2xlbikpID09IE5VTEwpIAotCQkJZ290byBlcnI7Ci0JCWMuc2xlbi09KGMucC1jLnEpOwotCi0JCWlmICghYXNuMV9jb25zdF9GaW5pc2goJmMpKSBnb3RvIGVycjsKLQkJKnN0cjE9bWFsbG9jKG9zMS0+bGVuZ3RoKzEpOwotCQkqc3RyMj1tYWxsb2Mob3MyLT5sZW5ndGgrMSk7Ci0JCW1lbWNweSgqc3RyMSxvczEtPmRhdGEsb3MxLT5sZW5ndGgpOwotCQltZW1jcHkoKnN0cjIsb3MyLT5kYXRhLG9zMi0+bGVuZ3RoKTsKLQkJKCpzdHIxKVtvczEtPmxlbmd0aF09J1wwJzsKLQkJKCpzdHIyKVtvczItPmxlbmd0aF09J1wwJzsKLQkJQVNOMV9PQ1RFVF9TVFJJTkdfZnJlZShvczEpOwotCQlBU04xX09DVEVUX1NUUklOR19mcmVlKG9zMik7Ci0JCXJldHVybigxKTsKLQkJfQotZXJyOgotCXJldHVybigwKTsKLQl9Ci0KLQotLyogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gKiBUSEUgT1RIRVIgV0FZIFRPIERPIFRISU5HUwotICogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gKi8KLVg1MDlfQVRUUklCVVRFICpjcmVhdGVfdGltZSh2b2lkKQotCXsKLQlBU04xX1VUQ1RJTUUgKnNpZ25fdGltZTsKLQlYNTA5X0FUVFJJQlVURSAqcmV0OwotCi0JLyogVGhlIGxhc3QgcGFyYW1ldGVyIGlzIHRoZSBhbW91bnQgdG8gYWRkL3N1YnRyYWN0IGZyb20gdGhlIGN1cnJlbnQKLQkgKiB0aW1lIChpbiBzZWNvbmRzKSAqLwotCXNpZ25fdGltZT1YNTA5X2dtdGltZV9hZGooTlVMTCwwKTsKLQlyZXQ9WDUwOV9BVFRSSUJVVEVfY3JlYXRlKE5JRF9wa2NzOV9zaWduaW5nVGltZSwKLQkJVl9BU04xX1VUQ1RJTUUsKGNoYXIgKilzaWduX3RpbWUpOwotCXJldHVybihyZXQpOwotCX0KLQotQVNOMV9VVENUSU1FICpza19nZXRfdGltZShTVEFDS19PRihYNTA5X0FUVFJJQlVURSkgKnNrKQotCXsKLQlBU04xX1RZUEUgKnNvOwotCVBLQ1M3X1NJR05FUl9JTkZPIHNpOwotCi0Jc2kuYXV0aF9hdHRyPXNrOwotCXNvPVBLQ1M3X2dldF9zaWduZWRfYXR0cmlidXRlKCZzaSxOSURfcGtjczlfc2lnbmluZ1RpbWUpOwotCWlmIChzby0+dHlwZSA9PSBWX0FTTjFfVVRDVElNRSkKLQkgICAgcmV0dXJuIHNvLT52YWx1ZS51dGN0aW1lOwotCXJldHVybiBOVUxMOwotCX0KLQkKLVg1MDlfQVRUUklCVVRFICpjcmVhdGVfc3RyaW5nKGNoYXIgKnN0cikKLQl7Ci0JQVNOMV9PQ1RFVF9TVFJJTkcgKm9zOwotCVg1MDlfQVRUUklCVVRFICpyZXQ7Ci0KLQkvKiBUbyBhIGFuIG9iamVjdCBvZiBPSUQgMS4yLjMuNC41LCB3aGljaCBpcyBhbiBvY3RldCBzdHJpbmcgKi8KLQlpZiAoc2lnbmVkX3N0cmluZ19uaWQgPT0gLTEpCi0JCXNpZ25lZF9zdHJpbmdfbmlkPQotCQkJT0JKX2NyZWF0ZSgiMS4yLjMuNC41IiwiT0lEX2V4YW1wbGUiLCJPdXIgZXhhbXBsZSBPSUQiKTsKLQlvcz1BU04xX09DVEVUX1NUUklOR19uZXcoKTsKLQlBU04xX09DVEVUX1NUUklOR19zZXQob3MsKHVuc2lnbmVkIGNoYXIqKXN0cixzdHJsZW4oc3RyKSk7Ci0JLyogV2hlbiB3ZSBhZGQsIHdlIGRvIG5vdCBmcmVlICovCi0JcmV0PVg1MDlfQVRUUklCVVRFX2NyZWF0ZShzaWduZWRfc3RyaW5nX25pZCwKLQkJVl9BU04xX09DVEVUX1NUUklORywoY2hhciAqKW9zKTsKLQlyZXR1cm4ocmV0KTsKLQl9Ci0KLWludCBza19nZXRfc3RyaW5nKFNUQUNLX09GKFg1MDlfQVRUUklCVVRFKSAqc2ssIGNoYXIgKmJ1ZiwgaW50IGxlbikKLQl7Ci0JQVNOMV9UWVBFICpzbzsKLQlBU04xX09DVEVUX1NUUklORyAqb3M7Ci0JaW50IGk7Ci0JUEtDUzdfU0lHTkVSX0lORk8gc2k7Ci0KLQlzaS5hdXRoX2F0dHI9c2s7Ci0KLQlpZiAoc2lnbmVkX3N0cmluZ19uaWQgPT0gLTEpCi0JCXNpZ25lZF9zdHJpbmdfbmlkPQotCQkJT0JKX2NyZWF0ZSgiMS4yLjMuNC41IiwiT0lEX2V4YW1wbGUiLCJPdXIgZXhhbXBsZSBPSUQiKTsKLQkvKiBUbyByZXRyaWV2ZSAqLwotCXNvPVBLQ1M3X2dldF9zaWduZWRfYXR0cmlidXRlKCZzaSxzaWduZWRfc3RyaW5nX25pZCk7Ci0JaWYgKHNvICE9IE5VTEwpCi0JCXsKLQkJaWYgKHNvLT50eXBlID09IFZfQVNOMV9PQ1RFVF9TVFJJTkcpCi0JCQl7Ci0JCQlvcz1zby0+dmFsdWUub2N0ZXRfc3RyaW5nOwotCQkJaT1vcy0+bGVuZ3RoOwotCQkJaWYgKChpKzEpID4gbGVuKQotCQkJCWk9bGVuLTE7Ci0JCQltZW1jcHkoYnVmLG9zLT5kYXRhLGkpOwotCQkJcmV0dXJuKGkpOwotCQkJfQotCQl9Ci0JcmV0dXJuKDApOwotCX0KLQotWDUwOV9BVFRSSUJVVEUgKmFkZF9zZXEyc3RyaW5nKFBLQ1M3X1NJR05FUl9JTkZPICpzaSwgY2hhciAqc3RyMSwgY2hhciAqc3RyMikKLQl7Ci0JLyogVG8gYWRkIGFuIG9iamVjdCBvZiBPSUQgMS45Ljk5OSwgd2hpY2ggaXMgYSBzZXF1ZW5jZSBjb250YWluaW5nCi0JICogMiBvY3RldCBzdHJpbmdzICovCi0JdW5zaWduZWQgY2hhciAqcDsKLQlBU04xX09DVEVUX1NUUklORyAqb3MxLCpvczI7Ci0JQVNOMV9TVFJJTkcgKnNlcTsKLQlYNTA5X0FUVFJJQlVURSAqcmV0OwotCXVuc2lnbmVkIGNoYXIgKmRhdGE7Ci0JaW50IGksdG90YWw7Ci0KLQlpZiAoc2lnbmVkX3NlcTJzdHJpbmdfbmlkID09IC0xKQotCQlzaWduZWRfc2VxMnN0cmluZ19uaWQ9Ci0JCQlPQkpfY3JlYXRlKCIxLjkuOTk5OSIsIk9JRF9leGFtcGxlIiwiT3VyIGV4YW1wbGUgT0lEIik7Ci0KLQlvczE9QVNOMV9PQ1RFVF9TVFJJTkdfbmV3KCk7Ci0Jb3MyPUFTTjFfT0NURVRfU1RSSU5HX25ldygpOwotCUFTTjFfT0NURVRfU1RSSU5HX3NldChvczEsKHVuc2lnbmVkIGNoYXIqKXN0cjEsc3RybGVuKHN0cjEpKTsKLQlBU04xX09DVEVUX1NUUklOR19zZXQob3MyLCh1bnNpZ25lZCBjaGFyKilzdHIxLHN0cmxlbihzdHIxKSk7Ci0JaSA9aTJkX0FTTjFfT0NURVRfU1RSSU5HKG9zMSxOVUxMKTsKLQlpKz1pMmRfQVNOMV9PQ1RFVF9TVFJJTkcob3MyLE5VTEwpOwotCXRvdGFsPUFTTjFfb2JqZWN0X3NpemUoMSxpLFZfQVNOMV9TRVFVRU5DRSk7Ci0KLQlkYXRhPW1hbGxvYyh0b3RhbCk7Ci0JcD1kYXRhOwotCUFTTjFfcHV0X29iamVjdCgmcCwxLGksVl9BU04xX1NFUVVFTkNFLFZfQVNOMV9VTklWRVJTQUwpOwotCWkyZF9BU04xX09DVEVUX1NUUklORyhvczEsJnApOwotCWkyZF9BU04xX09DVEVUX1NUUklORyhvczIsJnApOwotCi0Jc2VxPUFTTjFfU1RSSU5HX25ldygpOwotCUFTTjFfU1RSSU5HX3NldChzZXEsZGF0YSx0b3RhbCk7Ci0JZnJlZShkYXRhKTsKLQlBU04xX09DVEVUX1NUUklOR19mcmVlKG9zMSk7Ci0JQVNOMV9PQ1RFVF9TVFJJTkdfZnJlZShvczIpOwotCi0JcmV0PVg1MDlfQVRUUklCVVRFX2NyZWF0ZShzaWduZWRfc2VxMnN0cmluZ19uaWQsCi0JCVZfQVNOMV9TRVFVRU5DRSwoY2hhciAqKXNlcSk7Ci0JcmV0dXJuKHJldCk7Ci0JfQotCi0vKiBGb3IgdGhpcyBjYXNlLCBJIHdpbGwgbWFsbG9jIHRoZSByZXR1cm4gc3RyaW5ncyAqLwotaW50IHNrX2dldF9zZXEyc3RyaW5nKFNUQUNLX09GKFg1MDlfQVRUUklCVVRFKSAqc2ssIGNoYXIgKipzdHIxLCBjaGFyICoqc3RyMikKLQl7Ci0JQVNOMV9UWVBFICpzbzsKLQlQS0NTN19TSUdORVJfSU5GTyBzaTsKLQotCWlmIChzaWduZWRfc2VxMnN0cmluZ19uaWQgPT0gLTEpCi0JCXNpZ25lZF9zZXEyc3RyaW5nX25pZD0KLQkJCU9CSl9jcmVhdGUoIjEuOS45OTk5IiwiT0lEX2V4YW1wbGUiLCJPdXIgZXhhbXBsZSBPSUQiKTsKLQotCXNpLmF1dGhfYXR0cj1zazsKLQkvKiBUbyByZXRyaWV2ZSAqLwotCXNvPVBLQ1M3X2dldF9zaWduZWRfYXR0cmlidXRlKCZzaSxzaWduZWRfc2VxMnN0cmluZ19uaWQpOwotCWlmIChzby0+dHlwZSA9PSBWX0FTTjFfU0VRVUVOQ0UpCi0JCXsKLQkJQVNOMV9jb25zdF9DVFggYzsKLQkJQVNOMV9TVFJJTkcgKnM7Ci0JCWxvbmcgbGVuZ3RoOwotCQlBU04xX09DVEVUX1NUUklORyAqb3MxLCpvczI7Ci0KLQkJcz1zby0+dmFsdWUuc2VxdWVuY2U7Ci0JCWMucD1BU04xX1NUUklOR19kYXRhKHMpOwotCQljLm1heD1jLnArQVNOMV9TVFJJTkdfbGVuZ3RoKHMpOwotCQlpZiAoIWFzbjFfR2V0U2VxdWVuY2UoJmMsJmxlbmd0aCkpIGdvdG8gZXJyOwotCQkvKiBMZW5ndGggaXMgdGhlIGxlbmd0aCBvZiB0aGUgc2VxZW5jZSAqLwotCi0JCWMucT1jLnA7Ci0JCWlmICgob3MxPWQyaV9BU04xX09DVEVUX1NUUklORyhOVUxMLCZjLnAsYy5zbGVuKSkgPT0gTlVMTCkgCi0JCQlnb3RvIGVycjsKLQkJYy5zbGVuLT0oYy5wLWMucSk7Ci0KLQkJYy5xPWMucDsKLQkJaWYgKChvczI9ZDJpX0FTTjFfT0NURVRfU1RSSU5HKE5VTEwsJmMucCxjLnNsZW4pKSA9PSBOVUxMKSAKLQkJCWdvdG8gZXJyOwotCQljLnNsZW4tPShjLnAtYy5xKTsKLQotCQlpZiAoIWFzbjFfY29uc3RfRmluaXNoKCZjKSkgZ290byBlcnI7Ci0JCSpzdHIxPW1hbGxvYyhvczEtPmxlbmd0aCsxKTsKLQkJKnN0cjI9bWFsbG9jKG9zMi0+bGVuZ3RoKzEpOwotCQltZW1jcHkoKnN0cjEsb3MxLT5kYXRhLG9zMS0+bGVuZ3RoKTsKLQkJbWVtY3B5KCpzdHIyLG9zMi0+ZGF0YSxvczItPmxlbmd0aCk7Ci0JCSgqc3RyMSlbb3MxLT5sZW5ndGhdPSdcMCc7Ci0JCSgqc3RyMilbb3MyLT5sZW5ndGhdPSdcMCc7Ci0JCUFTTjFfT0NURVRfU1RSSU5HX2ZyZWUob3MxKTsKLQkJQVNOMV9PQ1RFVF9TVFJJTkdfZnJlZShvczIpOwotCQlyZXR1cm4oMSk7Ci0JCX0KLWVycjoKLQlyZXR1cm4oMCk7Ci0JfQotCi0KZGlmZiAtLWdpdCBhL2NyeXB0by9wa2NzNy9leGFtcGxlLmggYi9jcnlwdG8vcGtjczcvZXhhbXBsZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NjE2N2RlLi4wMDAwMDAwCi0tLSBhL2NyeXB0by9wa2NzNy9leGFtcGxlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi0vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICogQ29weXJpZ2h0IChjKSAxOTk5IFRoZSBPcGVuU1NMIFByb2plY3QuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAotICoKLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4KLSAqICAgIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqICAgIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiAzLiBBbGwgYWR2ZXJ0aXNpbmcgbWF0ZXJpYWxzIG1lbnRpb25pbmcgZmVhdHVyZXMgb3IgdXNlIG9mIHRoaXMKLSAqICAgIHNvZnR3YXJlIG11c3QgZGlzcGxheSB0aGUgZm9sbG93aW5nIGFja25vd2xlZGdtZW50OgotICogICAgIlRoaXMgcHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSBkZXZlbG9wZWQgYnkgdGhlIE9wZW5TU0wgUHJvamVjdAotICogICAgZm9yIHVzZSBpbiB0aGUgT3BlblNTTCBUb29sa2l0LiAoaHR0cDovL3d3dy5vcGVuc3NsLm9yZy8pIgotICoKLSAqIDQuIFRoZSBuYW1lcyAiT3BlblNTTCBUb29sa2l0IiBhbmQgIk9wZW5TU0wgUHJvamVjdCIgbXVzdCBub3QgYmUgdXNlZCB0bwotICogICAgZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQKLSAqICAgIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gRm9yIHdyaXR0ZW4gcGVybWlzc2lvbiwgcGxlYXNlIGNvbnRhY3QKLSAqICAgIG9wZW5zc2wtY29yZUBvcGVuc3NsLm9yZy4KLSAqCi0gKiA1LiBQcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSBtYXkgbm90IGJlIGNhbGxlZCAiT3BlblNTTCIKLSAqICAgIG5vciBtYXkgIk9wZW5TU0wiIGFwcGVhciBpbiB0aGVpciBuYW1lcyB3aXRob3V0IHByaW9yIHdyaXR0ZW4KLSAqICAgIHBlcm1pc3Npb24gb2YgdGhlIE9wZW5TU0wgUHJvamVjdC4KLSAqCi0gKiA2LiBSZWRpc3RyaWJ1dGlvbnMgb2YgYW55IGZvcm0gd2hhdHNvZXZlciBtdXN0IHJldGFpbiB0aGUgZm9sbG93aW5nCi0gKiAgICBhY2tub3dsZWRnbWVudDoKLSAqICAgICJUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUgZGV2ZWxvcGVkIGJ5IHRoZSBPcGVuU1NMIFByb2plY3QKLSAqICAgIGZvciB1c2UgaW4gdGhlIE9wZW5TU0wgVG9vbGtpdCAoaHR0cDovL3d3dy5vcGVuc3NsLm9yZy8pIgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIE9wZW5TU0wgUFJPSkVDVCBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTU0VEIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIE9wZW5TU0wgUFJPSkVDVCBPUgotICogSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCi0gKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCi0gKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsCi0gKiBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VECi0gKiBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICoKLSAqIFRoaXMgcHJvZHVjdCBpbmNsdWRlcyBjcnlwdG9ncmFwaGljIHNvZnR3YXJlIHdyaXR0ZW4gYnkgRXJpYyBZb3VuZwotICogKGVheUBjcnlwdHNvZnQuY29tKS4gIFRoaXMgcHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSB3cml0dGVuIGJ5IFRpbQotICogSHVkc29uICh0amhAY3J5cHRzb2Z0LmNvbSkuCi0gKgotICovCi0KLWludCBhZGRfc2lnbmVkX3RpbWUoUEtDUzdfU0lHTkVSX0lORk8gKnNpKTsKLUFTTjFfVVRDVElNRSAqZ2V0X3NpZ25lZF90aW1lKFBLQ1M3X1NJR05FUl9JTkZPICpzaSk7Ci1pbnQgZ2V0X3NpZ25lZF9zZXEyc3RyaW5nKFBLQ1M3X1NJR05FUl9JTkZPICpzaSwgY2hhciAqKnN0cjEsIGNoYXIgKipzdHIyKTsKZGlmZiAtLWdpdCBhL2NyeXB0by9wa2NzNy9pbmZvLnBlbSBiL2NyeXB0by9wa2NzNy9pbmZvLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTg5YmFmOC4uMDAwMDAwMAotLS0gYS9jcnlwdG8vcGtjczcvaW5mby5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi1pc3N1ZXIgOi9DPUFVL1NQPVF1ZWVuc2xhbmQvTD1CcmlzYmFuZS9PPUNyeXB0c29mdCBQdHkgTHRkL09VPURFTU9OU1RSQVRJT04gQU5EIFRFU1RJTkcvQ049REVNTyBaRVJPIFZBTFVFIENBCi1zdWJqZWN0Oi9DPUFVL1NQPVF1ZWVuc2xhbmQvTD1CcmlzYmFuZS9PPUNyeXB0c29mdCBQdHkgTHRkL09VPVNNSU1FIDAwMy9DTj1JbmZvcm1hdGlvbi9FbWFpbD1pbmZvQGNyeXB0c29mdC5jb20KLXNlcmlhbCA6MDQ3RAotCi1DZXJ0aWZpY2F0ZToKLSAgICBEYXRhOgotICAgICAgICBWZXJzaW9uOiAzICgweDIpCi0gICAgICAgIFNlcmlhbCBOdW1iZXI6IDExNDkgKDB4NDdkKQotICAgICAgICBTaWduYXR1cmUgQWxnb3JpdGhtOiBtZDV3aXRoUlNBRW5jcnlwdGlvbgotICAgICAgICBJc3N1ZXI6IEM9QVUsIFNQPVF1ZWVuc2xhbmQsIEw9QnJpc2JhbmUsIE89Q3J5cHRzb2Z0IFB0eSBMdGQsIE9VPURFTU9OU1RSQVRJT04gQU5EIFRFU1RJTkcsIENOPURFTU8gWkVSTyBWQUxVRSBDQQotICAgICAgICBWYWxpZGl0eQotICAgICAgICAgICAgTm90IEJlZm9yZTogTWF5IDEzIDA1OjQwOjU4IDE5OTggR01UCi0gICAgICAgICAgICBOb3QgQWZ0ZXIgOiBNYXkgMTIgMDU6NDA6NTggMjAwMCBHTVQKLSAgICAgICAgU3ViamVjdDogQz1BVSwgU1A9UXVlZW5zbGFuZCwgTD1CcmlzYmFuZSwgTz1DcnlwdHNvZnQgUHR5IEx0ZCwgT1U9U01JTUUgMDAzLCBDTj1JbmZvcm1hdGlvbi9FbWFpbD1pbmZvQGNyeXB0c29mdC5jb20KLSAgICAgICAgU3ViamVjdCBQdWJsaWMgS2V5IEluZm86Ci0gICAgICAgICAgICBQdWJsaWMgS2V5IEFsZ29yaXRobTogcnNhRW5jcnlwdGlvbgotICAgICAgICAgICAgICAgIE1vZHVsdXM6Ci0gICAgICAgICAgICAgICAgICAgIDAwOmFkOmU3OjIzOjg5OmVlOjBkOjg3OmI3OjljOjMyOjQ0OjRiOjk1OjgxOgotICAgICAgICAgICAgICAgICAgICA3MzpkZDoyMjo4MDo0YjoyZDpjNTo2MDpiODpmZToxZToxODo2MzplZjpkYzoKLSAgICAgICAgICAgICAgICAgICAgODk6ODk6MjI6ZGY6OTU6M2M6N2E6ZGI6M2Q6OWE6MDY6YTg6MDg6ZDY6Mjk6Ci0gICAgICAgICAgICAgICAgICAgIGZkOmVmOjQxOjA5OjkxOmVkOmJjOmFkOjk4OmY5OmY2OjI4OjkwOjYyOjZmOgotICAgICAgICAgICAgICAgICAgICBlNzplNzowYzo0ZDowYgotICAgICAgICAgICAgICAgIEV4cG9uZW50OiA2NTUzNyAoMHgxMDAwMSkKLSAgICAgICAgWDUwOXYzIGV4dGVuc2lvbnM6Ci0gICAgICAgICAgICBOZXRzY2FwZSBDb21tZW50OiAKLSAgICAgICAgICAgICAgICBHZW5lcmF0ZWQgd2l0aCBTU0xlYXkKLSAgICBTaWduYXR1cmUgQWxnb3JpdGhtOiBtZDV3aXRoUlNBRW5jcnlwdGlvbgotICAgICAgICA1MjoxNTplYTo4ODpmNDpmMDpmOTowYjplZjpjZTpkNTpmODo4Mzo0MDo2MToxNjo1ZTo1NToKLSAgICAgICAgZjk6Y2U6MmQ6ZDE6OGI6MzE6NWM6MDM6YzY6MmQ6MTA6N2M6NjE6ZDU6NWM6MGE6NDI6OTc6Ci0gICAgICAgIGQxOmZkOjY1OmI2OmI2Ojg0OmE1OjM5OmVjOjQ2OmVjOmZjOmUwOjBkOmQ5OjIyOmRhOjFiOgotICAgICAgICA1MDo3NDphZDo5MjpjYjo0ZTo5MDplNTpmYTo3ZAotCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUNURENDQWZhZ0F3SUJBZ0lDQkgwd0RRWUpLb1pJaHZjTkFRRUVCUUF3Z1pJeEN6QUpCZ05WQkFZVEFrRlYKLU1STXdFUVlEVlFRSUV3cFJkV1ZsYm5Oc1lXNWtNUkV3RHdZRFZRUUhFd2hDY21selltRnVaVEVhTUJnR0ExVUUKLUNoTVJRM0o1Y0hSemIyWjBJRkIwZVNCTWRHUXhJakFnQmdOVkJBc1RHVVJGVFU5T1UxUlNRVlJKVDA0Z1FVNUUKLUlGUkZVMVJKVGtjeEd6QVpCZ05WQkFNVEVrUkZUVThnV2tWU1R5QldRVXhWUlNCRFFUQWVGdzA1T0RBMU1UTXcKLU5UUXdOVGhhRncwd01EQTFNVEl3TlRRd05UaGFNSUdlTVFzd0NRWURWUVFHRXdKQlZURVRNQkVHQTFVRUNCTUsKLVVYVmxaVzV6YkdGdVpERVJNQThHQTFVRUJ4TUlRbkpwYzJKaGJtVXhHakFZQmdOVkJBb1RFVU55ZVhCMGMyOW0KLWRDQlFkSGtnVEhSa01SSXdFQVlEVlFRTEV3bFRUVWxOUlNBd01ETXhGREFTQmdOVkJBTVRDMGx1Wm05eWJXRjAKLWFXOXVNU0V3SHdZSktvWklodmNOQVFrQkZoSnBibVp2UUdOeWVYQjBjMjltZEM1amIyMHdYREFOQmdrcWhraUcKLTl3MEJBUUVGQUFOTEFEQklBa0VBcmVjamllNE5oN2VjTWtSTGxZRnozU0tBU3kzRllMaitIaGhqNzl5SmlTTGYKLWxUeDYyejJhQnFnSTFpbjk3MEVKa2UyOHJaajU5aWlRWW0vbjV3eE5Dd0lEQVFBQm95Z3dKakFrQmdsZ2hrZ0IKLWh2aENBUTBFRnhZVlIyVnVaWEpoZEdWa0lIZHBkR2dnVTFOTVpXRjVNQTBHQ1NxR1NJYjNEUUVCQkFVQUEwRUEKLVVoWHFpUFR3K1F2dnp0WDRnMEJoRmw1VitjNHQwWXN4WEFQR0xSQjhZZFZjQ2tLWDBmMWx0cmFFcFRuc1J1ejgKLTRBM1pJdG9iVUhTdGtzdE9rT1g2ZlE9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotCi0tLS0tLUJFR0lOIFJTQSBQUklWQVRFIEtFWS0tLS0tCi1NSUlCT2dJQkFBSkJBSzNuSTRudURZZTNuREpFUzVXQmM5MGlnRXN0eFdDNC9oNFlZKy9jaVlraTM1VThldHM5Ci1tZ2FvQ05ZcC9lOUJDWkh0dksyWStmWW9rR0p2NStjTVRRc0NBd0VBQVFKQkFJSHB2WHZxRWNPRW9EUlJIdUlHCi1ma2NCNGpQSGNyOUtFOVRweGFiSDZ4czliZU42T0pua2VQWEFId2F6NU1uVWdTbmJwT0txK2N3OG1pS2pYd2UvCi16VkVDSVFEVkx3bmNUMmxSbVhhckVZSHpiK3EvMHVhU3ZLaFdLS3Qza0phc0xOVHJBd0loQU5EVWMvZ2h1dDI5Ci1wM2pKWWp1cnpVS3VHNzc0LzVlTGpQTHN4UFBJWnpOWkFpQS8xMGhTcTQxVW5HcUhMRVVJUzltMi9FZUVaZTdiCi1ibTU2N2RmUlU5T25WUUlnRG84Uk9yWlhTY2hFR2Jhb2c1SjVyL0ZsZTgzdU84bDkzUjNHcVZ4S1haa0NJRmZrCi1JUEQ1UElZUUF5eW9kM2h5S0t6YTdaUDRDR1k0b09mWmV0YmtTR0dHCi0tLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvY3J5cHRvL3BrY3M3L2luZm9rZXkucGVtIGIvY3J5cHRvL3BrY3M3L2luZm9rZXkucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZTJhY2M5Li4wMDAwMDAwCi0tLSBhL2NyeXB0by9wa2NzNy9pbmZva2V5LnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotLS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQotTUlJQk9nSUJBQUpCQUszbkk0bnVEWWUzbkRKRVM1V0JjOTBpZ0VzdHhXQzQvaDRZWSsvY2lZa2kzNVU4ZXRzOQotbWdhb0NOWXAvZTlCQ1pIdHZLMlkrZllva0dKdjUrY01UUXNDQXdFQUFRSkJBSUhwdlh2cUVjT0VvRFJSSHVJRwotZmtjQjRqUEhjcjlLRTlUcHhhYkg2eHM5YmVONk9KbmtlUFhBSHdhejVNblVnU25icE9LcStjdzhtaUtqWHdlLwotelZFQ0lRRFZMd25jVDJsUm1YYXJFWUh6YitxLzB1YVN2S2hXS0t0M2tKYXNMTlRyQXdJaEFORFVjL2dodXQyOQotcDNqSllqdXJ6VUt1Rzc3NC81ZUxqUExzeFBQSVp6TlpBaUEvMTBoU3E0MVVuR3FITEVVSVM5bTIvRWVFWmU3YgotYm01NjdkZlJVOU9uVlFJZ0RvOFJPclpYU2NoRUdiYW9nNUo1ci9GbGU4M3VPOGw5M1IzR3FWeEtYWmtDSUZmawotSVBENVBJWVFBeXlvZDNoeUtLemE3WlA0Q0dZNG9PZlpldGJrU0dHRwotLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL2NyeXB0by9wa2NzNy9wNy9hMSBiL2NyeXB0by9wa2NzNy9wNy9hMQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTZjYTk0My4uMDAwMDAwMAotLS0gYS9jcnlwdG8vcGtjczcvcDcvYTEKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLWosBEg+El8V5uEQX61E9HoRBg9F7kycCVZKs9/op6wQpJQdlEUz++FZCOR4JRpfwGsKLTPqKURMU2PxOBklDPRNClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY3J5cHRvL3BrY3M3L3A3L2EyIGIvY3J5cHRvL3BrY3M3L3A3L2EyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyM2Q4ZmI1Li4wMDAwMDAwCi0tLSBhL2NyeXB0by9wa2NzNy9wNy9hMgorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWt+QGGULE7iTQYVHc25vAkBPE8oIEtQl+mooKRLsj6t1xZVv29fvRABBEJxcm3OP9mgdD9094HPgelJZAUyiYoKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jcnlwdG8vcGtjczcvcDcvY2VydC5wN2MgYi9jcnlwdG8vcGtjczcvcDcvY2VydC5wN2MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiNzVlYzAuLjAwMDAwMDAKLS0tIGEvY3J5cHRvL3BrY3M3L3A3L2NlcnQucDdjCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvY3J5cHRvL3BrY3M3L3A3L3NtaW1lLnA3bSBiL2NyeXB0by9wa2NzNy9wNy9zbWltZS5wN20KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiNmU2ZjguLjAwMDAwMDAKLS0tIGEvY3J5cHRvL3BrY3M3L3A3L3NtaW1lLnA3bQorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2NyeXB0by9wa2NzNy9wNy9zbWltZS5wN3MgYi9jcnlwdG8vcGtjczcvcDcvc21pbWUucDdzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYjVkNGZiLi4wMDAwMDAwCi0tLSBhL2NyeXB0by9wa2NzNy9wNy9zbWltZS5wN3MKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jcnlwdG8vcGtjczcvcGtjczcuaCBiL2NyeXB0by9wa2NzNy9wa2NzNy5oCmluZGV4IDA0ZjYwMzcuLjVkNTRjNGEgMTAwNjQ0Ci0tLSBhL2NyeXB0by9wa2NzNy9wa2NzNy5oCisrKyBiL2NyeXB0by9wa2NzNy9wa2NzNy5oCkBAIC0yMzMsMTAgKzIzMyw2IEBACiAJCShPQkpfb2JqMm5pZCgoYSktPnR5cGUpID09IE5JRF9wa2NzN19zaWduZWRBbmRFbnZlbG9wZWQpCiAjZGVmaW5lIFBLQ1M3X3R5cGVfaXNfZGF0YShhKSAgIChPQkpfb2JqMm5pZCgoYSktPnR5cGUpID09IE5JRF9wa2NzN19kYXRhKQogI2RlZmluZSBQS0NTN190eXBlX2lzX2RpZ2VzdChhKSAgIChPQkpfb2JqMm5pZCgoYSktPnR5cGUpID09IE5JRF9wa2NzN19kaWdlc3QpCi0jZGVmaW5lIFBLQ1M3X3R5cGVfaXNfZW5jcnlwdGVkKGEpIFwKLQkJKE9CSl9vYmoybmlkKChhKS0+dHlwZSkgPT0gTklEX3BrY3M3X2VuY3J5cHRlZCkKLQotI2RlZmluZSBQS0NTN190eXBlX2lzX2RpZ2VzdChhKSAgIChPQkpfb2JqMm5pZCgoYSktPnR5cGUpID09IE5JRF9wa2NzN19kaWdlc3QpCiAKICNkZWZpbmUgUEtDUzdfc2V0X2RldGFjaGVkKHAsdikgXAogCQlQS0NTN19jdHJsKHAsUEtDUzdfT1BfU0VUX0RFVEFDSEVEX1NJR05BVFVSRSx2LE5VTEwpCmRpZmYgLS1naXQgYS9jcnlwdG8vcGtjczcvc2VydmVyLnBlbSBiL2NyeXB0by9wa2NzNy9zZXJ2ZXIucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NTBhYWMyLi4wMDAwMDAwCi0tLSBhL2NyeXB0by9wa2NzNy9zZXJ2ZXIucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotaXNzdWVyPSAvQz1BVS9TVD1RdWVlbnNsYW5kL089Q3J5cHRTb2Z0IFB0eSBMdGQvQ049VGVzdCBDQSAoMTAyNCBiaXQpCi1zdWJqZWN0PS9DPUFVL1NUPVF1ZWVuc2xhbmQvTz1DcnlwdFNvZnQgUHR5IEx0ZC9DTj1TZXJ2ZXIgdGVzdCBjZXJ0ICg1MTIgYml0KQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCNlRDQ0FWSUNBUUF3RFFZSktvWklodmNOQVFFRUJRQXdXekVMTUFrR0ExVUVCaE1DUVZVeEV6QVJCZ05WCi1CQWdUQ2xGMVpXVnVjMnhoYm1ReEdqQVlCZ05WQkFvVEVVTnllWEIwVTI5bWRDQlFkSGtnVEhSa01Sc3dHUVlECi1WUVFERXhKVVpYTjBJRU5CSUNneE1ESTBJR0pwZENrd0hoY05PVGN3TmpBNU1UTTFOelEyV2hjTk9UZ3dOakE1Ci1NVE0xTnpRMldqQmpNUXN3Q1FZRFZRUUdFd0pCVlRFVE1CRUdBMVVFQ0JNS1VYVmxaVzV6YkdGdVpERWFNQmdHCi1BMVVFQ2hNUlEzSjVjSFJUYjJaMElGQjBlU0JNZEdReEl6QWhCZ05WQkFNVEdsTmxjblpsY2lCMFpYTjBJR05sCi1jblFnS0RVeE1pQmlhWFFwTUZ3d0RRWUpLb1pJaHZjTkFRRUJCUUFEU3dBd1NBSkJBSit6dzRRbmxmOFNNVklQCi1GZTlHRWNTdGdPWTJXdy9kZ05kaGplRDhja1VKTlA1VlprVkRUR2lYYXY2b29LWGZYM2ovN3Rka3VEOEV5Mi8vCi1LdjcrdWUwQ0F3RUFBVEFOQmdrcWhraUc5dzBCQVFRRkFBT0JnUUI0VE1SMkN2YWNLRTl3QXN1OWp5Q1g4WWlXCi1tZ0NNK1lvUDZrdDRaa2oyejVJUmZtN1dyeWNLc25wbk9SK3RHZXFBamtDZVo2LzM2bzlsOTFSdlBuTjFWSi9pCi14UXYyZGYwS0ZlTXIwMElrRGRUTkFkSVdxRmtTc1pUQVkyUUFkZ2VuYjdNQjFqb2VqcXVZek8yRFFJTzcrd3BICi1pck9icEVTeEFaTHlTQ21QUGc9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQotTUlJQlBBSUJBQUpCQUorenc0UW5sZjhTTVZJUEZlOUdFY1N0Z09ZMld3L2RnTmRoamVEOGNrVUpOUDVWWmtWRAotVEdpWGF2Nm9vS1hmWDNqLzd0ZGt1RDhFeTIvL0t2Nyt1ZTBDQXdFQUFRSkFONlczMXZERVAyRGpkcWh6Q0REdQotT0E0TkFDcW9pRnF5YmxvN3ljMnRNNGg0eE1iQzNZeDVVS01OOVprQ3RYMGd6cno2RHlGNDdiZEtjV0J6TldDagotZ1FJaEFORW9valZ0N2hxK1NRNk1DTjZGVEF5c0dnUWY1NlEzVFlvSk1vV3ZkaVhWQWlFQXczZTNyYytWSnBPegotckh1RG82YmdwalVBQVhNK3YzZmNwc2ZaU05PNlY3a0NJUUN0YlZqYW5wVXd2WmtNSTlieTAyb1VrOXRha2kzYgotUHpQZkFmTlBZQWJDSlFJaEFKWE5RRFd5cXduL2xHbVIxMWNxWTJ5OW5aMSs1dzN5SEdhdExyY0RuUUh4QWlFQQotdm5sRUdvOEs4NXUrS3dJT2ltTTQ4Wkc4b1RrN2lGZGtxTEpSMXV0VDNhVT0KLS0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS9jcnlwdG8vcGtjczcvc2lnbi5jIGIvY3J5cHRvL3BrY3M3L3NpZ24uYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGI1OTg4NS4uMDAwMDAwMAotLS0gYS9jcnlwdG8vcGtjczcvc2lnbi5jCisrKyAvZGV2L251bGwKQEAgLTEsMTU0ICswLDAgQEAKLS8qIGNyeXB0by9wa2NzNy9zaWduLmMgKi8KLS8qIENvcHlyaWdodCAoQykgMTk5NS0xOTk4IEVyaWMgWW91bmcgKGVheUBjcnlwdHNvZnQuY29tKQotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIHBhY2thZ2UgaXMgYW4gU1NMIGltcGxlbWVudGF0aW9uIHdyaXR0ZW4KLSAqIGJ5IEVyaWMgWW91bmcgKGVheUBjcnlwdHNvZnQuY29tKS4KLSAqIFRoZSBpbXBsZW1lbnRhdGlvbiB3YXMgd3JpdHRlbiBzbyBhcyB0byBjb25mb3JtIHdpdGggTmV0c2NhcGVzIFNTTC4KLSAqIAotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgZm9yIGNvbW1lcmNpYWwgYW5kIG5vbi1jb21tZXJjaWFsIHVzZSBhcyBsb25nIGFzCi0gKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIGFoZWFyZWQgdG8uICBUaGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFwcGx5IHRvIGFsbCBjb2RlIGZvdW5kIGluIHRoaXMgZGlzdHJpYnV0aW9uLCBiZSBpdCB0aGUgUkM0LCBSU0EsCi0gKiBsaGFzaCwgREVTLCBldGMuLCBjb2RlOyBub3QganVzdCB0aGUgU1NMIGNvZGUuICBUaGUgU1NMIGRvY3VtZW50YXRpb24KLSAqIGluY2x1ZGVkIHdpdGggdGhpcyBkaXN0cmlidXRpb24gaXMgY292ZXJlZCBieSB0aGUgc2FtZSBjb3B5cmlnaHQgdGVybXMKLSAqIGV4Y2VwdCB0aGF0IHRoZSBob2xkZXIgaXMgVGltIEh1ZHNvbiAodGpoQGNyeXB0c29mdC5jb20pLgotICogCi0gKiBDb3B5cmlnaHQgcmVtYWlucyBFcmljIFlvdW5nJ3MsIGFuZCBhcyBzdWNoIGFueSBDb3B5cmlnaHQgbm90aWNlcyBpbgotICogdGhlIGNvZGUgYXJlIG5vdCB0byBiZSByZW1vdmVkLgotICogSWYgdGhpcyBwYWNrYWdlIGlzIHVzZWQgaW4gYSBwcm9kdWN0LCBFcmljIFlvdW5nIHNob3VsZCBiZSBnaXZlbiBhdHRyaWJ1dGlvbgotICogYXMgdGhlIGF1dGhvciBvZiB0aGUgcGFydHMgb2YgdGhlIGxpYnJhcnkgdXNlZC4KLSAqIFRoaXMgY2FuIGJlIGluIHRoZSBmb3JtIG9mIGEgdGV4dHVhbCBtZXNzYWdlIGF0IHByb2dyYW0gc3RhcnR1cCBvcgotICogaW4gZG9jdW1lbnRhdGlvbiAob25saW5lIG9yIHRleHR1YWwpIHByb3ZpZGVkIHdpdGggdGhlIHBhY2thZ2UuCi0gKiAKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gQWxsIGFkdmVydGlzaW5nIG1hdGVyaWFscyBtZW50aW9uaW5nIGZlYXR1cmVzIG9yIHVzZSBvZiB0aGlzIHNvZnR3YXJlCi0gKiAgICBtdXN0IGRpc3BsYXkgdGhlIGZvbGxvd2luZyBhY2tub3dsZWRnZW1lbnQ6Ci0gKiAgICAiVGhpcyBwcm9kdWN0IGluY2x1ZGVzIGNyeXB0b2dyYXBoaWMgc29mdHdhcmUgd3JpdHRlbiBieQotICogICAgIEVyaWMgWW91bmcgKGVheUBjcnlwdHNvZnQuY29tKSIKLSAqICAgIFRoZSB3b3JkICdjcnlwdG9ncmFwaGljJyBjYW4gYmUgbGVmdCBvdXQgaWYgdGhlIHJvdWluZXMgZnJvbSB0aGUgbGlicmFyeQotICogICAgYmVpbmcgdXNlZCBhcmUgbm90IGNyeXB0b2dyYXBoaWMgcmVsYXRlZCA6LSkuCi0gKiA0LiBJZiB5b3UgaW5jbHVkZSBhbnkgV2luZG93cyBzcGVjaWZpYyBjb2RlIChvciBhIGRlcml2YXRpdmUgdGhlcmVvZikgZnJvbSAKLSAqICAgIHRoZSBhcHBzIGRpcmVjdG9yeSAoYXBwbGljYXRpb24gY29kZSkgeW91IG11c3QgaW5jbHVkZSBhbiBhY2tub3dsZWRnZW1lbnQ6Ci0gKiAgICAiVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIHdyaXR0ZW4gYnkgVGltIEh1ZHNvbiAodGpoQGNyeXB0c29mdC5jb20pIgotICogCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEVSSUMgWU9VTkcgYGBBUyBJUycnIEFORAotICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQotICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKLSAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0gKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUwotICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCi0gKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAotICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQotICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgotICogU1VDSCBEQU1BR0UuCi0gKiAKLSAqIFRoZSBsaWNlbmNlIGFuZCBkaXN0cmlidXRpb24gdGVybXMgZm9yIGFueSBwdWJsaWNhbGx5IGF2YWlsYWJsZSB2ZXJzaW9uIG9yCi0gKiBkZXJpdmF0aXZlIG9mIHRoaXMgY29kZSBjYW5ub3QgYmUgY2hhbmdlZC4gIGkuZS4gdGhpcyBjb2RlIGNhbm5vdCBzaW1wbHkgYmUKLSAqIGNvcGllZCBhbmQgcHV0IHVuZGVyIGFub3RoZXIgZGlzdHJpYnV0aW9uIGxpY2VuY2UKLSAqIFtpbmNsdWRpbmcgdGhlIEdOVSBQdWJsaWMgTGljZW5jZS5dCi0gKi8KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPG9wZW5zc2wvYmlvLmg+Ci0jaW5jbHVkZSA8b3BlbnNzbC94NTA5Lmg+Ci0jaW5jbHVkZSA8b3BlbnNzbC9wZW0uaD4KLSNpbmNsdWRlIDxvcGVuc3NsL2Vyci5oPgotCi1pbnQgbWFpbihhcmdjLGFyZ3YpCi1pbnQgYXJnYzsKLWNoYXIgKmFyZ3ZbXTsKLQl7Ci0JWDUwOSAqeDUwOTsKLQlFVlBfUEtFWSAqcGtleTsKLQlQS0NTNyAqcDc7Ci0JUEtDUzdfU0lHTkVSX0lORk8gKnNpOwotCUJJTyAqaW47Ci0JQklPICpkYXRhLCpwN2JpbzsKLQljaGFyIGJ1ZlsxMDI0KjRdOwotCWludCBpOwotCWludCBub2RldGFjaD0wOwotCi0jaWZuZGVmIE9QRU5TU0xfTk9fTUQyCi0JRVZQX2FkZF9kaWdlc3QoRVZQX21kMigpKTsKLSNlbmRpZgotI2lmbmRlZiBPUEVOU1NMX05PX01ENQotCUVWUF9hZGRfZGlnZXN0KEVWUF9tZDUoKSk7Ci0jZW5kaWYKLSNpZm5kZWYgT1BFTlNTTF9OT19TSEExCi0JRVZQX2FkZF9kaWdlc3QoRVZQX3NoYTEoKSk7Ci0jZW5kaWYKLSNpZm5kZWYgT1BFTlNTTF9OT19NREMyCi0JRVZQX2FkZF9kaWdlc3QoRVZQX21kYzIoKSk7Ci0jZW5kaWYKLQotCWRhdGE9QklPX25ldyhCSU9fc19maWxlKCkpOwotYWdhaW46Ci0JaWYgKGFyZ2MgPiAxKQotCQl7Ci0JCWlmIChzdHJjbXAoYXJndlsxXSwiLW5kIikgPT0gMCkKLQkJCXsKLQkJCW5vZGV0YWNoPTE7Ci0JCQlhcmd2Kys7IGFyZ2MtLTsKLQkJCWdvdG8gYWdhaW47Ci0JCQl9Ci0JCWlmICghQklPX3JlYWRfZmlsZW5hbWUoZGF0YSxhcmd2WzFdKSkKLQkJCWdvdG8gZXJyOwotCQl9Ci0JZWxzZQotCQlCSU9fc2V0X2ZwKGRhdGEsc3RkaW4sQklPX05PQ0xPU0UpOwotCi0JaWYgKChpbj1CSU9fbmV3X2ZpbGUoInNlcnZlci5wZW0iLCJyIikpID09IE5VTEwpIGdvdG8gZXJyOwotCWlmICgoeDUwOT1QRU1fcmVhZF9iaW9fWDUwOShpbixOVUxMLE5VTEwsTlVMTCkpID09IE5VTEwpIGdvdG8gZXJyOwotCUJJT19yZXNldChpbik7Ci0JaWYgKChwa2V5PVBFTV9yZWFkX2Jpb19Qcml2YXRlS2V5KGluLE5VTEwsTlVMTCxOVUxMKSkgPT0gTlVMTCkgZ290byBlcnI7Ci0JQklPX2ZyZWUoaW4pOwotCi0JcDc9UEtDUzdfbmV3KCk7Ci0JUEtDUzdfc2V0X3R5cGUocDcsTklEX3BrY3M3X3NpZ25lZCk7Ci0JIAotCXNpPVBLQ1M3X2FkZF9zaWduYXR1cmUocDcseDUwOSxwa2V5LEVWUF9zaGExKCkpOwotCWlmIChzaSA9PSBOVUxMKSBnb3RvIGVycjsKLQotCS8qIElmIHlvdSBkbyB0aGlzIHRoZW4geW91IGdldCBzaWduaW5nIHRpbWUgYXV0b21hdGljYWxseSBhZGRlZCAqLwotCVBLQ1M3X2FkZF9zaWduZWRfYXR0cmlidXRlKHNpLCBOSURfcGtjczlfY29udGVudFR5cGUsIFZfQVNOMV9PQkpFQ1QsCi0JCQkJCQlPQkpfbmlkMm9iaihOSURfcGtjczdfZGF0YSkpOwotCi0JLyogd2UgbWF5IHdhbnQgdG8gYWRkIG1vcmUgKi8KLQlQS0NTN19hZGRfY2VydGlmaWNhdGUocDcseDUwOSk7Ci0KLQkvKiBTZXQgdGhlIGNvbnRlbnQgb2YgdGhlIHNpZ25lZCB0byAnZGF0YScgKi8KLQlQS0NTN19jb250ZW50X25ldyhwNyxOSURfcGtjczdfZGF0YSk7Ci0KLQlpZiAoIW5vZGV0YWNoKQotCQlQS0NTN19zZXRfZGV0YWNoZWQocDcsMSk7Ci0KLQlpZiAoKHA3YmlvPVBLQ1M3X2RhdGFJbml0KHA3LE5VTEwpKSA9PSBOVUxMKSBnb3RvIGVycjsKLQotCWZvciAoOzspCi0JCXsKLQkJaT1CSU9fcmVhZChkYXRhLGJ1ZixzaXplb2YoYnVmKSk7Ci0JCWlmIChpIDw9IDApIGJyZWFrOwotCQlCSU9fd3JpdGUocDdiaW8sYnVmLGkpOwotCQl9Ci0KLQlpZiAoIVBLQ1M3X2RhdGFGaW5hbChwNyxwN2JpbykpIGdvdG8gZXJyOwotCUJJT19mcmVlKHA3YmlvKTsKLQotCVBFTV93cml0ZV9QS0NTNyhzdGRvdXQscDcpOwotCVBLQ1M3X2ZyZWUocDcpOwotCi0JZXhpdCgwKTsKLWVycjoKLQlFUlJfbG9hZF9jcnlwdG9fc3RyaW5ncygpOwotCUVSUl9wcmludF9lcnJvcnNfZnAoc3RkZXJyKTsKLQlleGl0KDEpOwotCX0KLQpkaWZmIC0tZ2l0IGEvY3J5cHRvL3BrY3M3L3QvM2Rlcy5wZW0gYi9jcnlwdG8vcGtjczcvdC8zZGVzLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjJiNTA4MS4uMDAwMDAwMAotLS0gYS9jcnlwdG8vcGtjczcvdC8zZGVzLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLS0tLS0tQkVHSU4gUEtDUzctLS0tLQotTUlBR0NTcUdTSWIzRFFFSEE2Q0FNSUFDQVFBeGdnSG1NSUh3QWdFQU1JR1pNSUdTTVFzd0NRWURWUVFHRXdKQlZURVRNQkVHCi1BMVVFQ0JNS1VYVmxaVzV6YkdGdVpERVJNQThHQTFVRUJ4TUlRbkpwYzJKaGJtVXhHakFZQmdOVkJBb1RFVU55ZVhCMGMyOW0KLWRDQlFkSGtnVEhSa01TSXdJQVlEVlFRTEV4bEVSVTFQVGxOVVVrRlVTVTlPSUVGT1JDQlVSVk5VU1U1SE1Sc3dHUVlEVlFRRAotRXhKRVJVMVBJRnBGVWs4Z1ZrRk1WVVVnUTBFQ0FnUitNQTBHQ1NxR1NJYjNEUUVCQVFVQUJFQzJ2WEkxeFFEVzZsVUhNM3pRCi0vOXVCRUJPTzVBM1R0a3JrbEFYcTd2MDFnc0lDMjF0NTJxU2szNlJFWFkrc2xoTlowT1EzNDl0Z2tUc29FVEhGTG9Fd01JSHcKLUFnRUFNSUdaTUlHU01Rc3dDUVlEVlFRR0V3SkJWVEVUTUJFR0ExVUVDQk1LVVhWbFpXNXpiR0Z1WkRFUk1BOEdBMVVFQnhNSQotUW5KcGMySmhibVV4R2pBWUJnTlZCQW9URVVOeWVYQjBjMjltZENCUWRIa2dUSFJrTVNJd0lBWURWUVFMRXhsRVJVMVBUbE5VCi1Va0ZVU1U5T0lFRk9SQ0JVUlZOVVNVNUhNUnN3R1FZRFZRUURFeEpFUlUxUElGcEZVazhnVmtGTVZVVWdRMEVDQWdSOU1BMEcKLUNTcUdTSWIzRFFFQkFRVUFCRUI4dWp4YmFieFhVWUpob3B1RG0zb0RxNEpOcVg2SW80cDNybytTaHFmSW5kc1hUWjF2NWEyTgotV3RMTENXbEhuL2hhYmpCd1ovRGdRZ2NLQVNiWjdReE5NSUFHQ1NxR1NJYjNEUUVIQVRBYUJnZ3Foa2lHOXcwREFqQU9BZ0lBCi1vQVFJYnNMNXYxd1g5OEtnZ0FRb0FhSjRXSG02OGZYWTFXRTVPSWpmVkJJRHBPMUsraThkbUtoam5BanJqb3laOUJ3YzhyREwKLWxnUWc0Q1hiODA1aDV4bCtHZnZTd1VhSEpheXRlMW0ybWNPaHMzSjJZeXFiUStNRUlNSWlKUWNjbWhPM29ES20zNkNGdllSOAotNVBqcGNsVmNaeVgybmdid1BGTW5CQWd5MGNsT0FFNlVLQUFBQUFBQUFBQUFBQUE9Ci0tLS0tLUVORCBQS0NTNy0tLS0tCi0KZGlmZiAtLWdpdCBhL2NyeXB0by9wa2NzNy90LzNkZXNzLnBlbSBiL2NyeXB0by9wa2NzNy90LzNkZXNzLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjNmMDEzNS4uMDAwMDAwMAotLS0gYS9jcnlwdG8vcGtjczcvdC8zZGVzcy5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi0tLS0tLUJFR0lOIFBLQ1M3LS0tLS0KLU1JSUdIZ1lKS29aSWh2Y05BUWNDb0lJR0R6Q0NCZ3NDQVFFeEN6QUpCZ1VyRGdNQ0dnVUFNQXNHQ1NxR1NJYjNEUUVIQWFDQwotQkdzd2dnSlRNSUlCL2FBREFnRUNBZ0lFZmpBTkJna3Foa2lHOXcwQkFRUUZBRENCa2pFTE1Ba0dBMVVFQmhNQ1FWVXhFekFSCi1CZ05WQkFnVENsRjFaV1Z1YzJ4aGJtUXhFVEFQQmdOVkJBY1RDRUp5YVhOaVlXNWxNUm93R0FZRFZRUUtFeEZEY25sd2RITnYKLVpuUWdVSFI1SUV4MFpERWlNQ0FHQTFVRUN4TVpSRVZOVDA1VFZGSkJWRWxQVGlCQlRrUWdWRVZUVkVsT1J6RWJNQmtHQTFVRQotQXhNU1JFVk5UeUJhUlZKUElGWkJURlZGSUVOQk1CNFhEVGs0TURVeE16QTJNalkxTmxvWERUQXdNRFV4TWpBMk1qWTFObG93Ci1nYVV4Q3pBSkJnTlZCQVlUQWtGVk1STXdFUVlEVlFRSUV3cFJkV1ZsYm5Oc1lXNWtNUkV3RHdZRFZRUUhFd2hDY21selltRnUKLVpURWFNQmdHQTFVRUNoTVJRM0o1Y0hSemIyWjBJRkIwZVNCTWRHUXhFakFRQmdOVkJBc1RDVk5OU1UxRklEQXdNekVaTUJjRwotQTFVRUF4TVFRVzVuWld4aElIWmhiaUJNWldWdWRERWpNQ0VHQ1NxR1NJYjNEUUVKQVJZVVlXNW5aV3hoUUdOeWVYQjBjMjltCi1kQzVqYjIwd1hEQU5CZ2txaGtpRzl3MEJBUUVGQUFOTEFEQklBa0VBdUMzKzdkQWIyTGh1TzdndDJjVE04dnNOamhHNUpmRGgKLWhYMVZsL3dWR2JLRUVqME1BNnZXRW9sdmVmUWx4QitFendDdFIwWVo3ZUVDL1QvNEpvQ3llUUlEQVFBQm95Z3dKakFrQmdsZwotaGtnQmh2aENBUTBFRnhZVlIyVnVaWEpoZEdWa0lIZHBkR2dnVTFOTVpXRjVNQTBHQ1NxR1NJYjNEUUVCQkFVQUEwRUFVblNQCi1pZ3M2VE1GSVNUanc4Y0J0SlliOThjemdBVmtWRmpLeUpRd1lNSDhGYkRuQ3l4Nk5vY001NTVuc3lEc3RhdzhmS1IxMUtoZHMKLXN5ZDNpa2tyaERDQ0FoQXdnZ0c2QWdFRE1BMEdDU3FHU0liM0RRRUJCQVVBTUlHU01Rc3dDUVlEVlFRR0V3SkJWVEVUTUJFRwotQTFVRUNCTUtVWFZsWlc1emJHRnVaREVSTUE4R0ExVUVCeE1JUW5KcGMySmhibVV4R2pBWUJnTlZCQW9URVVOeWVYQjBjMjltCi1kQ0JRZEhrZ1RIUmtNU0l3SUFZRFZRUUxFeGxFUlUxUFRsTlVVa0ZVU1U5T0lFRk9SQ0JVUlZOVVNVNUhNUnN3R1FZRFZRUUQKLUV4SkVSVTFQSUZwRlVrOGdWa0ZNVlVVZ1EwRXdIaGNOT1Rnd016QXpNRGMwTVRNeVdoY05NRGd3TWpJNU1EYzBNVE15V2pDQgota2pFTE1Ba0dBMVVFQmhNQ1FWVXhFekFSQmdOVkJBZ1RDbEYxWldWdWMyeGhibVF4RVRBUEJnTlZCQWNUQ0VKeWFYTmlZVzVsCi1NUm93R0FZRFZRUUtFeEZEY25sd2RITnZablFnVUhSNUlFeDBaREVpTUNBR0ExVUVDeE1aUkVWTlQwNVRWRkpCVkVsUFRpQkIKLVRrUWdWRVZUVkVsT1J6RWJNQmtHQTFVRUF4TVNSRVZOVHlCYVJWSlBJRlpCVEZWRklFTkJNRnd3RFFZSktvWklodmNOQVFFQgotQlFBRFN3QXdTQUpCQUwrMEUyZkxlajNGU0N3ZTJBMmlSbk11QzN6MTJxSElwNkt5MXdvMnpaY3hmdDdBSStSZmtyV3JTR3RmCi1tZnpCRXVQckxkZnVsbmNDNVkxcE5jTThSVFVDQXdFQUFUQU5CZ2txaGtpRzl3MEJBUVFGQUFOQkFHU2JMTXBoTDZGNXBwM3MKLThvMFh5aDg2RkhGZHBWT3dZeDA5RUxMa3VHMTdWL1A5cGdJYzBFby9nRE1iTitLVDNJZGdFQ2Y4Uy8vcENSQTZSck5qY1hJeAotZ2dGN01JSUJkd0lCQVRDQm1UQ0JrakVMTUFrR0ExVUVCaE1DUVZVeEV6QVJCZ05WQkFnVENsRjFaV1Z1YzJ4aGJtUXhFVEFQCi1CZ05WQkFjVENFSnlhWE5pWVc1bE1Sb3dHQVlEVlFRS0V4RkRjbmx3ZEhOdlpuUWdVSFI1SUV4MFpERWlNQ0FHQTFVRUN4TVoKLVJFVk5UMDVUVkZKQlZFbFBUaUJCVGtRZ1ZFVlRWRWxPUnpFYk1Ca0dBMVVFQXhNU1JFVk5UeUJhUlZKUElGWkJURlZGSUVOQgotQWdJRWZqQUpCZ1VyRGdNQ0dnVUFvSG93R0FZSktvWklodmNOQVFrRE1Rc0dDU3FHU0liM0RRRUhBVEFiQmdrcWhraUc5dzBCCi1DUTh4RGpBTU1Bb0dDQ3FHU0liM0RRTUhNQndHQ1NxR1NJYjNEUUVKQlRFUEZ3MDVPREExTVRRd016TTVNemRhTUNNR0NTcUcKLVNJYjNEUUVKQkRFV0JCUXN0Tk1uU1YyNmJhOFBhcFFFRGhPMjF5TkZyakFOQmdrcWhraUc5dzBCQVFFRkFBUkFXOVhiOVlYdgotQmZjTmt1dGdGWDlHcjhpWGhCVnNOdEdFVnJqcnBrUXdwS2E3akhJOFNqQWxMaGsvNFJGd0RIZitJU0I5TnAzWjFXRFduTGNBCi05Q1dSNmc9PQotLS0tLS1FTkQgUEtDUzctLS0tLQpkaWZmIC0tZ2l0IGEvY3J5cHRvL3BrY3M3L3QvYy5wZW0gYi9jcnlwdG8vcGtjczcvdC9jLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTRiNTVlMy4uMDAwMDAwMAotLS0gYS9jcnlwdG8vcGtjczcvdC9jLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLWlzc3VlciA6L0M9QVUvU1A9UXVlZW5zbGFuZC9MPUJyaXNiYW5lL089Q3J5cHRzb2Z0IFB0eSBMdGQvT1U9REVNT05TVFJBVElPTiBBTkQgVEVTVElORy9DTj1ERU1PIFpFUk8gVkFMVUUgQ0EKLXN1YmplY3Q6L0M9QVUvU1A9UXVlZW5zbGFuZC9MPUJyaXNiYW5lL089Q3J5cHRzb2Z0IFB0eSBMdGQvT1U9U01JTUUgMDAzL0NOPUluZm9ybWF0aW9uL0VtYWlsPWluZm9AY3J5cHRzb2Z0LmNvbQotc2VyaWFsIDowNDdECi0KLUNlcnRpZmljYXRlOgotICAgIERhdGE6Ci0gICAgICAgIFZlcnNpb246IDMgKDB4MikKLSAgICAgICAgU2VyaWFsIE51bWJlcjogMTE0OSAoMHg0N2QpCi0gICAgICAgIFNpZ25hdHVyZSBBbGdvcml0aG06IG1kNXdpdGhSU0FFbmNyeXB0aW9uCi0gICAgICAgIElzc3VlcjogQz1BVSwgU1A9UXVlZW5zbGFuZCwgTD1CcmlzYmFuZSwgTz1DcnlwdHNvZnQgUHR5IEx0ZCwgT1U9REVNT05TVFJBVElPTiBBTkQgVEVTVElORywgQ049REVNTyBaRVJPIFZBTFVFIENBCi0gICAgICAgIFZhbGlkaXR5Ci0gICAgICAgICAgICBOb3QgQmVmb3JlOiBNYXkgMTMgMDU6NDA6NTggMTk5OCBHTVQKLSAgICAgICAgICAgIE5vdCBBZnRlciA6IE1heSAxMiAwNTo0MDo1OCAyMDAwIEdNVAotICAgICAgICBTdWJqZWN0OiBDPUFVLCBTUD1RdWVlbnNsYW5kLCBMPUJyaXNiYW5lLCBPPUNyeXB0c29mdCBQdHkgTHRkLCBPVT1TTUlNRSAwMDMsIENOPUluZm9ybWF0aW9uL0VtYWlsPWluZm9AY3J5cHRzb2Z0LmNvbQotICAgICAgICBTdWJqZWN0IFB1YmxpYyBLZXkgSW5mbzoKLSAgICAgICAgICAgIFB1YmxpYyBLZXkgQWxnb3JpdGhtOiByc2FFbmNyeXB0aW9uCi0gICAgICAgICAgICAgICAgTW9kdWx1czoKLSAgICAgICAgICAgICAgICAgICAgMDA6YWQ6ZTc6MjM6ODk6ZWU6MGQ6ODc6Yjc6OWM6MzI6NDQ6NGI6OTU6ODE6Ci0gICAgICAgICAgICAgICAgICAgIDczOmRkOjIyOjgwOjRiOjJkOmM1OjYwOmI4OmZlOjFlOjE4OjYzOmVmOmRjOgotICAgICAgICAgICAgICAgICAgICA4OTo4OToyMjpkZjo5NTozYzo3YTpkYjozZDo5YTowNjphODowODpkNjoyOToKLSAgICAgICAgICAgICAgICAgICAgZmQ6ZWY6NDE6MDk6OTE6ZWQ6YmM6YWQ6OTg6Zjk6ZjY6Mjg6OTA6NjI6NmY6Ci0gICAgICAgICAgICAgICAgICAgIGU3OmU3OjBjOjRkOjBiCi0gICAgICAgICAgICAgICAgRXhwb25lbnQ6IDY1NTM3ICgweDEwMDAxKQotICAgICAgICBYNTA5djMgZXh0ZW5zaW9uczoKLSAgICAgICAgICAgIE5ldHNjYXBlIENvbW1lbnQ6IAotICAgICAgICAgICAgICAgIEdlbmVyYXRlZCB3aXRoIFNTTGVheQotICAgIFNpZ25hdHVyZSBBbGdvcml0aG06IG1kNXdpdGhSU0FFbmNyeXB0aW9uCi0gICAgICAgIDUyOjE1OmVhOjg4OmY0OmYwOmY5OjBiOmVmOmNlOmQ1OmY4OjgzOjQwOjYxOjE2OjVlOjU1OgotICAgICAgICBmOTpjZToyZDpkMTo4YjozMTo1YzowMzpjNjoyZDoxMDo3Yzo2MTpkNTo1YzowYTo0Mjo5NzoKLSAgICAgICAgZDE6ZmQ6NjU6YjY6YjY6ODQ6YTU6Mzk6ZWM6NDY6ZWM6ZmM6ZTA6MGQ6ZDk6MjI6ZGE6MWI6Ci0gICAgICAgIDUwOjc0OmFkOjkyOmNiOjRlOjkwOmU1OmZhOjdkCi0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQ1REQ0NBZmFnQXdJQkFnSUNCSDB3RFFZSktvWklodmNOQVFFRUJRQXdnWkl4Q3pBSkJnTlZCQVlUQWtGVgotTVJNd0VRWURWUVFJRXdwUmRXVmxibk5zWVc1a01SRXdEd1lEVlFRSEV3aENjbWx6WW1GdVpURWFNQmdHQTFVRQotQ2hNUlEzSjVjSFJ6YjJaMElGQjBlU0JNZEdReElqQWdCZ05WQkFzVEdVUkZUVTlPVTFSU1FWUkpUMDRnUVU1RQotSUZSRlUxUkpUa2N4R3pBWkJnTlZCQU1URWtSRlRVOGdXa1ZTVHlCV1FVeFZSU0JEUVRBZUZ3MDVPREExTVRNdwotTlRRd05UaGFGdzB3TURBMU1USXdOVFF3TlRoYU1JR2VNUXN3Q1FZRFZRUUdFd0pCVlRFVE1CRUdBMVVFQ0JNSwotVVhWbFpXNXpiR0Z1WkRFUk1BOEdBMVVFQnhNSVFuSnBjMkpoYm1VeEdqQVlCZ05WQkFvVEVVTnllWEIwYzI5bQotZENCUWRIa2dUSFJrTVJJd0VBWURWUVFMRXdsVFRVbE5SU0F3TURNeEZEQVNCZ05WQkFNVEMwbHVabTl5YldGMAotYVc5dU1TRXdId1lKS29aSWh2Y05BUWtCRmhKcGJtWnZRR055ZVhCMGMyOW1kQzVqYjIwd1hEQU5CZ2txaGtpRwotOXcwQkFRRUZBQU5MQURCSUFrRUFyZWNqaWU0Tmg3ZWNNa1JMbFlGejNTS0FTeTNGWUxqK0hoaGo3OXlKaVNMZgotbFR4NjJ6MmFCcWdJMWluOTcwRUprZTI4clpqNTlpaVFZbS9uNXd4TkN3SURBUUFCb3lnd0pqQWtCZ2xnaGtnQgotaHZoQ0FRMEVGeFlWUjJWdVpYSmhkR1ZrSUhkcGRHZ2dVMU5NWldGNU1BMEdDU3FHU0liM0RRRUJCQVVBQTBFQQotVWhYcWlQVHcrUXZ2enRYNGcwQmhGbDVWK2M0dDBZc3hYQVBHTFJCOFlkVmNDa0tYMGYxbHRyYUVwVG5zUnV6OAotNEEzWkl0b2JVSFN0a3N0T2tPWDZmUT09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0KZGlmZiAtLWdpdCBhL2NyeXB0by9wa2NzNy90L2ZmIGIvY3J5cHRvL3BrY3M3L3QvZmYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIzZjAxMzUuLjAwMDAwMDAKLS0tIGEvY3J5cHRvL3BrY3M3L3QvZmYKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi0tLS0tLUJFR0lOIFBLQ1M3LS0tLS0KLU1JSUdIZ1lKS29aSWh2Y05BUWNDb0lJR0R6Q0NCZ3NDQVFFeEN6QUpCZ1VyRGdNQ0dnVUFNQXNHQ1NxR1NJYjNEUUVIQWFDQwotQkdzd2dnSlRNSUlCL2FBREFnRUNBZ0lFZmpBTkJna3Foa2lHOXcwQkFRUUZBRENCa2pFTE1Ba0dBMVVFQmhNQ1FWVXhFekFSCi1CZ05WQkFnVENsRjFaV1Z1YzJ4aGJtUXhFVEFQQmdOVkJBY1RDRUp5YVhOaVlXNWxNUm93R0FZRFZRUUtFeEZEY25sd2RITnYKLVpuUWdVSFI1SUV4MFpERWlNQ0FHQTFVRUN4TVpSRVZOVDA1VFZGSkJWRWxQVGlCQlRrUWdWRVZUVkVsT1J6RWJNQmtHQTFVRQotQXhNU1JFVk5UeUJhUlZKUElGWkJURlZGSUVOQk1CNFhEVGs0TURVeE16QTJNalkxTmxvWERUQXdNRFV4TWpBMk1qWTFObG93Ci1nYVV4Q3pBSkJnTlZCQVlUQWtGVk1STXdFUVlEVlFRSUV3cFJkV1ZsYm5Oc1lXNWtNUkV3RHdZRFZRUUhFd2hDY21selltRnUKLVpURWFNQmdHQTFVRUNoTVJRM0o1Y0hSemIyWjBJRkIwZVNCTWRHUXhFakFRQmdOVkJBc1RDVk5OU1UxRklEQXdNekVaTUJjRwotQTFVRUF4TVFRVzVuWld4aElIWmhiaUJNWldWdWRERWpNQ0VHQ1NxR1NJYjNEUUVKQVJZVVlXNW5aV3hoUUdOeWVYQjBjMjltCi1kQzVqYjIwd1hEQU5CZ2txaGtpRzl3MEJBUUVGQUFOTEFEQklBa0VBdUMzKzdkQWIyTGh1TzdndDJjVE04dnNOamhHNUpmRGgKLWhYMVZsL3dWR2JLRUVqME1BNnZXRW9sdmVmUWx4QitFendDdFIwWVo3ZUVDL1QvNEpvQ3llUUlEQVFBQm95Z3dKakFrQmdsZwotaGtnQmh2aENBUTBFRnhZVlIyVnVaWEpoZEdWa0lIZHBkR2dnVTFOTVpXRjVNQTBHQ1NxR1NJYjNEUUVCQkFVQUEwRUFVblNQCi1pZ3M2VE1GSVNUanc4Y0J0SlliOThjemdBVmtWRmpLeUpRd1lNSDhGYkRuQ3l4Nk5vY001NTVuc3lEc3RhdzhmS1IxMUtoZHMKLXN5ZDNpa2tyaERDQ0FoQXdnZ0c2QWdFRE1BMEdDU3FHU0liM0RRRUJCQVVBTUlHU01Rc3dDUVlEVlFRR0V3SkJWVEVUTUJFRwotQTFVRUNCTUtVWFZsWlc1emJHRnVaREVSTUE4R0ExVUVCeE1JUW5KcGMySmhibVV4R2pBWUJnTlZCQW9URVVOeWVYQjBjMjltCi1kQ0JRZEhrZ1RIUmtNU0l3SUFZRFZRUUxFeGxFUlUxUFRsTlVVa0ZVU1U5T0lFRk9SQ0JVUlZOVVNVNUhNUnN3R1FZRFZRUUQKLUV4SkVSVTFQSUZwRlVrOGdWa0ZNVlVVZ1EwRXdIaGNOT1Rnd016QXpNRGMwTVRNeVdoY05NRGd3TWpJNU1EYzBNVE15V2pDQgota2pFTE1Ba0dBMVVFQmhNQ1FWVXhFekFSQmdOVkJBZ1RDbEYxWldWdWMyeGhibVF4RVRBUEJnTlZCQWNUQ0VKeWFYTmlZVzVsCi1NUm93R0FZRFZRUUtFeEZEY25sd2RITnZablFnVUhSNUlFeDBaREVpTUNBR0ExVUVDeE1aUkVWTlQwNVRWRkpCVkVsUFRpQkIKLVRrUWdWRVZUVkVsT1J6RWJNQmtHQTFVRUF4TVNSRVZOVHlCYVJWSlBJRlpCVEZWRklFTkJNRnd3RFFZSktvWklodmNOQVFFQgotQlFBRFN3QXdTQUpCQUwrMEUyZkxlajNGU0N3ZTJBMmlSbk11QzN6MTJxSElwNkt5MXdvMnpaY3hmdDdBSStSZmtyV3JTR3RmCi1tZnpCRXVQckxkZnVsbmNDNVkxcE5jTThSVFVDQXdFQUFUQU5CZ2txaGtpRzl3MEJBUVFGQUFOQkFHU2JMTXBoTDZGNXBwM3MKLThvMFh5aDg2RkhGZHBWT3dZeDA5RUxMa3VHMTdWL1A5cGdJYzBFby9nRE1iTitLVDNJZGdFQ2Y4Uy8vcENSQTZSck5qY1hJeAotZ2dGN01JSUJkd0lCQVRDQm1UQ0JrakVMTUFrR0ExVUVCaE1DUVZVeEV6QVJCZ05WQkFnVENsRjFaV1Z1YzJ4aGJtUXhFVEFQCi1CZ05WQkFjVENFSnlhWE5pWVc1bE1Sb3dHQVlEVlFRS0V4RkRjbmx3ZEhOdlpuUWdVSFI1SUV4MFpERWlNQ0FHQTFVRUN4TVoKLVJFVk5UMDVUVkZKQlZFbFBUaUJCVGtRZ1ZFVlRWRWxPUnpFYk1Ca0dBMVVFQXhNU1JFVk5UeUJhUlZKUElGWkJURlZGSUVOQgotQWdJRWZqQUpCZ1VyRGdNQ0dnVUFvSG93R0FZSktvWklodmNOQVFrRE1Rc0dDU3FHU0liM0RRRUhBVEFiQmdrcWhraUc5dzBCCi1DUTh4RGpBTU1Bb0dDQ3FHU0liM0RRTUhNQndHQ1NxR1NJYjNEUUVKQlRFUEZ3MDVPREExTVRRd016TTVNemRhTUNNR0NTcUcKLVNJYjNEUUVKQkRFV0JCUXN0Tk1uU1YyNmJhOFBhcFFFRGhPMjF5TkZyakFOQmdrcWhraUc5dzBCQVFFRkFBUkFXOVhiOVlYdgotQmZjTmt1dGdGWDlHcjhpWGhCVnNOdEdFVnJqcnBrUXdwS2E3akhJOFNqQWxMaGsvNFJGd0RIZitJU0I5TnAzWjFXRFduTGNBCi05Q1dSNmc9PQotLS0tLS1FTkQgUEtDUzctLS0tLQpkaWZmIC0tZ2l0IGEvY3J5cHRvL3BrY3M3L3QvbXNpZS1lIGIvY3J5cHRvL3BrY3M3L3QvbXNpZS1lCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYWZhZTY5Li4wMDAwMDAwCi0tLSBhL2NyeXB0by9wa2NzNy90L21zaWUtZQorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLQotTUlBR0NTcUdTSWIzRFFFSEE2Q0FNSUFDQVFBeGdnSENNSUhNQWdFQU1IWXdZakVSTUE4R0ExVUVCeE1JU1c1MFpYSnVaWFF4RnpBVgotQmdOVkJBb1REbFpsY21sVGFXZHVMQ0JKYm1NdU1UUXdNZ1lEVlFRTEV5dFdaWEpwVTJsbmJpQkRiR0Z6Y3lBeElFTkJJQzBnU1c1awotYVhacFpIVmhiQ0JUZFdKelkzSnBZbVZ5QWhCZ1FKaUMzcWZiQ2JqZGo1SU5ZTG5LTUEwR0NTcUdTSWIzRFFFQkFRVUFCRUNNenU4eQotd1EvcVpiTzhjQUdNUkJGK21QcnV2MytEdmI5YVdOWjJrOG5qVWdxRjZtY2RoVkIyTWtHY3NHM21lbVJYSkJpeHZNWVdWa1UzcUs0WgotVnVLc01JSHdBZ0VBTUlHWk1JR1NNUXN3Q1FZRFZRUUdFd0pCVlRFVE1CRUdBMVVFQ0JNS1VYVmxaVzV6YkdGdVpERVJNQThHQTFVRQotQnhNSVFuSnBjMkpoYm1VeEdqQVlCZ05WQkFvVEVVTnllWEIwYzI5bWRDQlFkSGtnVEhSa01TSXdJQVlEVlFRTEV4bEVSVTFQVGxOVQotVWtGVVNVOU9JRUZPUkNCVVJWTlVTVTVITVJzd0dRWURWUVFERXhKRVJVMVBJRnBGVWs4Z1ZrRk1WVVVnUTBFQ0FnUnVNQTBHQ1NxRwotU0liM0RRRUJBUVVBQkVCY1d3WUZISmJKR2hpenR0N2x6dWUzTGM5Q0g1V0FieVIrMkJaM3V2K0p4WmZSczFQdWFXUE93UmEwVmdzMwotWXdTSm9SZnhRajJHazB3RnFHMXF0NmQxTUlBR0NTcUdTSWIzRFFFSEFUQWFCZ2dxaGtpRzl3MERBakFPQWdJQW9BUUk4dlJsUC9OeAotMmlTZ2dBU0NBWmhSNXNyeHlzcHk3RGZvbVJKOWZmOGVNQ3RhTndFb0V4N0cyNVBaUm9uQzU3aEJ2R29TY0x0RVBVM1dwOUZFYlBONwotb0pFU2VDK0FxTVR5VExOeThhUXN5QzVzNTNFOVVrb0l2ZzYyZWtZWkJiWFpxWHNyeHg0UGhpaVgzTkg4R1ZoNDJwaEIwQ2hqdzBuSwotSFplUkRteEdZM0NtaytKK2wwdVZLeGJOSWZKSUtPZ3VMQm5ocW1uS0gvUHJuekR0NTkxdTBVTHkyYVRMcVJtKzQvMVlhdC9RUGI2SgotZW9LR3dOUEJiUzlvZ0JkckNOQ3A5WkZnM1hhcjJBdFFIenlUUUlmWWVIM1NSUVVwS21SbTVVNW85cDVlbWdFZFQrWmZKbS9KNHRTSAotT21iZ0FGc2JIUWFrQTRNQlo0SjVxZkRKaE9BMmc1bFdrMWhJZXU1RG4vQWFMUlpkMHl6M29ZMEllby9lclBXeC9iQ3F0QnpZYk1lOQotcVNGVGVkS2xiYzlFR2Uzb3BPVGRCWlZ6SzhLSDN3M3pzeTVsdXhLZE9VRzU5WVliNUYxSVppV0dpRHl1by9IdWFjWCtncml1NUxlRAotYkV6T3RabmtvK1RaWHZXSWtvMzBmRDc5ajNUNE1SUmhXWGJnajJIS3phKzR2SjBtemNDLzErR1BzSmpBRUFBL0pnSUVEVTR3Ni9ESQotL0hRSGhMQU8zRys5eEtEN012bXJ6a29BQUFBQUFBQUFBQUFBCi0KLQpkaWZmIC0tZ2l0IGEvY3J5cHRvL3BrY3M3L3QvbXNpZS1lLnBlbSBiL2NyeXB0by9wa2NzNy90L21zaWUtZS5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEyYTVlMjQuLjAwMDAwMDAKLS0tIGEvY3J5cHRvL3BrY3M3L3QvbXNpZS1lLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLS0tLS0tQkVHSU4gUEtDUzctLS0tLQotTUlBR0NTcUdTSWIzRFFFSEE2Q0FNSUlEa0FJQkFER0NBY0l3Z2N3Q0FRQXdkakJpTVJFd0R3WURWUVFIRXdoSgotYm5SbGNtNWxkREVYTUJVR0ExVUVDaE1PVm1WeWFWTnBaMjRzSUVsdVl5NHhOREF5QmdOVkJBc1RLMVpsY21sVAotYVdkdUlFTnNZWE56SURFZ1EwRWdMU0JKYm1ScGRtbGtkV0ZzSUZOMVluTmpjbWxpWlhJQ0VHQkFtSUxlcDlzSgotdU4yUGtnMWd1Y293RFFZSktvWklodmNOQVFFQkJRQUVRSXpPN3pMQkQrcGxzN3h3QVl4RUVYNlkrdTYvZjRPOQotdjFwWTFuYVR5ZU5TQ29YcVp4MkZVSFl5UVp5d2JlWjZaRmNrR0xHOHhoWldSVGVvcmhsVzRxd3dnZkFDQVFBdwotZ1prd2daSXhDekFKQmdOVkJBWVRBa0ZWTVJNd0VRWURWUVFJRXdwUmRXVmxibk5zWVc1a01SRXdEd1lEVlFRSAotRXdoQ2NtbHpZbUZ1WlRFYU1CZ0dBMVVFQ2hNUlEzSjVjSFJ6YjJaMElGQjBlU0JNZEdReElqQWdCZ05WQkFzVAotR1VSRlRVOU9VMVJTUVZSSlQwNGdRVTVFSUZSRlUxUkpUa2N4R3pBWkJnTlZCQU1URWtSRlRVOGdXa1ZTVHlCVwotUVV4VlJTQkRRUUlDQkc0d0RRWUpLb1pJaHZjTkFRRUJCUUFFUUZ4YkJnVWNsc2thR0xPMjN1WE81N2N0ejBJZgotbFlCdkpIN1lGbmU2LzRuRmw5R3pVKzVwWTg3QkZyUldDemRqQkltaEYvRkNQWWFUVEFXb2JXcTNwM1V3Z2dIRAotQmdrcWhraUc5dzBCQndFd0dnWUlLb1pJaHZjTkF3SXdEZ0lDQUtBRUNQTDBaVC96Y2Rva2dJSUJtRkhteXZISwoteW5Mc04raVpFbjE5L3g0d0sxbzNBU2dUSHNiYms5bEdpY0xudUVHOGFoSnd1MFE5VGRhbjBVUnM4M3Vna1JKNAotTDRDb3hQSk1zM0x4cEN6SUxtem5jVDFTU2dpK0RyWjZSaGtGdGRtcGV5dkhIZytHS0pmYzBmd1pXSGphbUVIUQotS0dQRFNjb2RsNUVPYkVaamNLYVQ0bjZYUzVVckZzMGg4a2dvNkM0c0dlR3FhY29mOCt1Zk1PM24zVzdSUXZMWgotcE11cEdiN2ovVmhxMzlBOXZvbDZnb2JBMDhGdEwyaUFGMnNJMEtuMWtXRGRkcXZZQzFBZlBKTkFoOWg0ZmRKRgotQlNrcVpHYmxUbWoybmw2YUFSMVA1bDhtYjhuaTFJYzZadUFBV3hzZEJxUURnd0ZuZ25tcDhNbUU0RGFEbVZhVAotV0VoNjdrT2Y4Qm90RmwzVExQZWhqUWg2ajk2czliSDlzS3EwSE5oc3g3MnBJVk41MHFWdHowUVo3ZWlrNU4wRgotbFhNcndvZmZEZk96TG1XN0VwMDVRYm4xaGh2a1hVaG1KWWFJUEs2ajhlNXB4ZjZDdUs3a3Q0TnNUTTYxbWVTagotNU5sZTlZaVNqZlI4UHYyUGRQZ3hGR0ZaZHVDUFljck5yN2k4blNiTndML1g0WSt3bU1BUUFEOG1BZ1FOVGpEcgotOE1qOGRBZUVzQTdjYjczRW9Qc3krYXZPU2dBQUFBQT0KLS0tLS0tRU5EIFBLQ1M3LS0tLS0KZGlmZiAtLWdpdCBhL2NyeXB0by9wa2NzNy90L21zaWUtZW5jLTAxIGIvY3J5cHRvL3BrY3M3L3QvbXNpZS1lbmMtMDEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJjOTNhYjYuLjAwMDAwMDAKLS0tIGEvY3J5cHRvL3BrY3M3L3QvbXNpZS1lbmMtMDEKKysrIC9kZXYvbnVsbApAQCAtMSw2MiArMCwwIEBACi0KLU1JQUdDU3FHU0liM0RRRUhBNkNBTUlBQ0FRQXhnZk13Z2ZBQ0FRQXdnWmt3Z1pJeEN6QUpCZ05WQkFZVEFrRlZNUk13RVFZRAotVlFRSUV3cFJkV1ZsYm5Oc1lXNWtNUkV3RHdZRFZRUUhFd2hDY21selltRnVaVEVhTUJnR0ExVUVDaE1SUTNKNWNIUnpiMlowCi1JRkIwZVNCTWRHUXhJakFnQmdOVkJBc1RHVVJGVFU5T1UxUlNRVlJKVDA0Z1FVNUVJRlJGVTFSSlRrY3hHekFaQmdOVkJBTVQKLUVrUkZUVThnV2tWU1R5QldRVXhWUlNCRFFRSUNCRzR3RFFZSktvWklodmNOQVFFQkJRQUVRS3ZNYVc4eGg2b0YvWCtDSml2egotSVpWN3lIeGxwNE8zTkhRdFdHMEE4TU9aQitDdEtsVTcvNmc1ZS9hOUR1L1RPcXhSTXF0WVJwNjNwYTJRL21NNElZTXdnQVlKCi1Lb1pJaHZjTkFRY0JNQm9HQ0NxR1NJYjNEUU1DTUE0Q0FnQ2dCQWlmejZSdnpPUFlsS0NBQklHd3h0R0EvRkxCQlJzMXdiQlAKLWdEQ2JTRzB5Q3dqSk5zRmc4OS9rNnh1WG84YzVZVHdzdzgrWGxJVnEwM25hdnBldzZYeHh6WTA5MHJEMk9KMHQ2SEE2R3FySQotcGQ4V2lTaC9BdHFuMHlmTEZta0xxZ0lBUFJmenhVeHFVb2N4THBRc0xJRnAyWU5VR0UreXBzK1VabUlqdy9XSGZkcXJjV1RtCi1TVFN2S3V5M1VrSUpaQ2tHREJwVHZxazRCRmFIaDRvVFhFcGdwTlkrR0t4amY5VEROOUdRUHFRWlI3c2dRa2k0dDJnNC9TYXEKLUtsNEVNSVNnbHVrNnN3ZE5EMHRpSFk3djVkNllSMjllUENsMi9TVEo5OGVKcFdrRUVDMjJHTk52T3k3cnUvUnYySGU0TWdRZwotb3B0ZDdzazlNTWQ5eGhKcHBnN0NjSC95RHgvL0hydGdwT2NXbW42VnhwZ0VDRnFvbjR1WGtRdElCSUg0UGFOY2xGbjcvaEx4Ci1QdzJWbUJHYUMwU1lGM1UxanlOOTZFQnhkanF5OEFhNkJ5TVhZRFc1QmNmcW5pRDVtWVhmdytiODFsaDFrdXR4YVBhVjRZSjkKLVpsUlVXNzUyTjdWSG8vZkcwL2Z1a29lNVc5YThrSWhnTHB5Z2xsYi9HUDRvU0Y0d002bjEvT2dSelpqMklXRmlvYktPNGQvdAotTW5oK0MrUG9FVkF1RlpjeFF3aTlHcXZzSzVPb0lqVndOeDBYY1ZTT2wxVFRZUzlTd0M3dWdNQkNhYjczSmlydUMyNHBMNzhZCi1NK05hSXBJUTNPbjREb2tKQTJaSHRqQmpaSXhGNHRLQTE0NFJ2Rk42cEJkNlRWRTVYTTZLRC9WaDlialNtdWp0RUFmZFEzVGUKLWR2S0pzYlp1dTBzdEVyYnZXY1J5MTFJMzI4bDU1N0VFQ0FKVDdkNDRPSjNyQkJCajZibm54NmREVTJTUnFwMkNFb1FhQkFoSwotUkJ1eWhOeGt5Z1FJT1k5L05od3FBSkFFQ092WDBaZDBEcWdvQkFqb2JQcE1IaFZWM2dRUVdMVTJ2RW9aNTFCd3p4ZHpDbXhPCi13d1FJNG9LZnVkYU5xb0FFU0t6Qk5BcXY1a0d1bUhPbE1Lc1JmcnM3alpDY1NhT3VFajk3cFl4MDhGTEVnRjIzY2F2MzlNT1EKLU5VRU0xZE5VK0VZc2xMNG8zUm9TSFJqVWdQVSsydDljMHByUzlBL2JQQVJJRU9QOTRQeW5hVE54d0hpM1ZUSzdTenVRbWd6QQotNG45NDJFOWpvU2lxc1FQbHNLQWIzc1BVYUxDM1N1VXhTak5CZ2ZwdkQwYm1yQS81aCtXWm9ZWHZJb2dGcHdqa1NtbkZCRWllCi0wbGg1T3YxYVJydkN3NS9qM1EvVy80WnRONVUrYWVWQkpNdEE4bjBNeGQ1a1B4SGJOVmg0b0dwclo2d0VlZ1Y4aHQzdm95WmEKLW1aNUN5eGM4ZmZNWW5NL0pKSTYvb0VZRVVFTXl5aVM1Rm5ZeXZ4S3pmTXR5bjJsWjJzdDluWkdOTmdNYzlONjJyNUhnTmJkRAotRkh1UmRLS3pWKzhrUWZ1TWMzbU9QcEsxdDlURlkrUWdyeGlCNXA2UzdWb29JOTdZdFAzUGJma25zekNFQkVoNFBkWFliYmFSCi0zQWFjTjNRNWtZWW1Xc3EzV1c2eGdyZzBtbUVHb3NHdndTUXhCQnVpWFpyeFNjQ2E0aXZFcTA1VVp3eVNoZVB2S2R1T3ZuVUUKLTJ6RE82SVhGTFp4aFRaQUVTRW05L0ZvdkxnR0FpSjdpTUdtWXZzSVNMSlNjd0c0bit3clNhUU5RWGl6czlOM3lreXM1NHdCTgotZC8rQlE0RjdwbmNIaERRMkR5dDVNZWtCOFk4aU5Pb2NVVEZDdTUyNHZRUklhV0NYbVhQM3ZVN0QyMWRwMFhuQU16UlFKNTY1Ci1KVjNhSFJvWTdYRGE0TGVQYTdQUDl5d3lhZk9FNXlDVzduZHF4M0orMkpoVER2U0ZzVzgvcTNIM2l5ZUZoeWt1SlZTNkJGREsKLTZDbUtibnl5ak9mRTJpTEdKbVRGYTkwNVYyS3JWRENtbEV1L3h5R01zODB5VHlaQyt5U3pNODNGTVZ2TEVRbVN6Y1ROVVpWcAotRGZBMWtOWGJYa1BvdUJYWFQ2ZzhyOEpDUmxqYUtLQUJtZ1JJbE1oZU9KUVJVVVU0Y2d2aE1yZVhQYXlocTVBbzRWTVNDa0E1Ci1oWVJDQmN6bTREaS9NTW9oRjBTeElzZFJZNmdZOUNQbnJCWEFzWTZoMVJiUjdUdzBpUVptZVhpNTJEQ2lCRWowYnkrU1lNQWEKLTl6MENSZUl6bDhKTEw2RVZJRno4a0Z4bGtHV2pyNGRuT3poaFBPcS9tQ3BwMFd4YmF2RGZkaEU4N01kWEpaQm5Md29UNjJRRwotOTU1SGxBb0VRQk9HSmJjRVNDZ2Q1WFNpclo5WTNBYkNmdUtPcW9NQnZFVUduK3cvcE1hcW5Hdm5yNUZaaHVCREtyaFJYcXR4Ci1Rc3hBLy9kckdVeHNyWk91U0wvMCtmYnZvN24yaDFaOE55ODZqT3ZWWkFRSUFqdzJsMVljNVJBRVNOYzlpM0k4cEtFT1ZRZi8KLVVCY3pKME5SOWFURUY4MGRSZzJscFh3RDBobzROMEF2U2lWYmd4QzdjUFpIUXdJcXZxOUxIUlVzLzRuK1Z1M1NWWVUzY0F4bwotbFVUaUNHVVNsQVJJRitURDU3U0k1K1JJK01OdG5EOXJzNEUxbWw1MVlvSEdXRmozVVByaURtWTBGS0V3SWdxdE1YTVkzZlo5Ci1LcThkODNiakR6eHdiRFg3V3dSN0tiU2VKV1Q0MnBDejdrTStCRWpqUHNPblpIdXVzWFQzeDJycnNCbll0WXNidDk4bVNGaVMKLUt6VHRGbVhma09CYkNRZGl0MVA3NlFuWUoxYVhNR3M2elA2R3lwUVRhZEsvellXdmxtMzhRa1Z3dWVhSjB3b0VTS1cycHFLQQotNzBoMlVNREhPcnBlcFUxbGowWU16bW90REhTVFUzTDkwOVZ2VU1OZzl1cWZyUTZtU2tiOWo1VGw4b0Yyb3RPdzVFekExWWRhCi1LUG1nc3Y2MlJXTFlsODB3WFFSUXdHMGUvbWdHNzVqcDlsT2hKZFZYcWNZYlFwUzl2aXdWYVZrd0grNjltdS9iUUk0Z2pvRXMKLVVZWDZPNzFSZTJ6K2NZaGNtOVVySytEWHVTRkJYUU9JbEFGeEtNVzRCMGFwZDZmVTg0RnNaTE1FU09vclhFNU9FMEEyQjJqaQotSjhRSTBFeGs0aFV2V3JNTkpmVVp3RnlTN0UwNXhWOU9SdVgxeG1zS3FrVDR0VlI1TnFsbjR2aHZBWTg2MFZCb2xvejBDRGtkCi04c2VTQkVqZU1nUkk5RnZwWXVmbEllSGc5dXJrd3A2TisxZjBEckpKaEpZOVpRMEhUUWh6aUptSWZ2YkVqTnFDbDdoRUMyOCsKLUY4STV0dVZpTGdmU3djRkZDdm5TNldGb040WDZRZEZkcU1DYkJFamRsSTFjK0lRR0EvSXVURE1KWUN1US92KzhCRzVaZVdWSAotaWNQWm1YZlJhdDllRksxZEdLQUplZjYrVGY5SFB1RGpTcER5ZmZyaWZzcDdEYzM0bG1tN0dOMStPTjNaTXR3RVVObTZlcGI4Ci0xUktXam9JN2pJS1VWL00ycC8wZWVHU3FzNGIwNktGL1ZSNmRCd3NKVkw1RHBuVHNwM01WNGovQ0FPbFJkU1BaNSsrdHNLYk0KLWFwbGsrY2VxUXRwRUZ6MU1ZVHRWVjQrcmxyV2FCRUExb2tKeU5aNS90Tk93TTdCK1hmT1oweHcrdXlWaTl2NGJ5VFpNMlFkcwotSitkM1lHWUxBdWdUR0hJU0xxUUVlckQ4L2dHSysvU0wwNmIyZ05lZFhQSHRCQWlCS1grTWR5M3dGUVFJcUU5Z1ZndnJGTlVFCi1DS0tvVEZvTUdxblBCQWpEUGdMQ2tsTmZyd1FJM0VrMXZTcTY4dzhFQ0JvZHUyRk9aSlZrQkFnendqZlNyMk45V1FRUVRDb1EKLUtrQWJyUzl0bmpYbjFJMytad1FJclB4M2VJTm8vWVVFQ0llWVdDRnNreGxZQkFpRFVkdlpYd0QzdmdRSWtFeVpiYlpXYlVVRQotQ0g0K29kbDFJc2szQkJqNjhma3FKMGZLSlJXVkxXdVcvTzNWRTRCT1BLd0ZsYUlFQ0ZzZVZUZERVaG84QkFqK2NPS3ZWMldBCi1oZ1FnYVhyK3d3cStJdGJsRzBReHo4SVZVWFg2UFYybUlkSHd6NFNDQ3ZuQ3NhSUVDSmhCWXhkZkxJL1hCQ0Rzd2FtUG45TVIKLXlYaTJIVlFCaW5lVitHdFdWa0lvWjJkQ0xGQjltUVJNb0FRSTBuVVI1YTVBT0pvRUNBK0F1bktsQWx4OEJBaTVSdEZlRjRnMQotRlFRSXovaWUrMTZMbFFjRUNPbU51Vmc1RFhqTUJBakgybmtmcFhaZ1d3UUlWZEx1Ty8ra3VIQUVDTy81ckVIbXlJOXZCQkQ0Ci0xNkJVNFJkM1llckRRbkh0cndPUUJDQ2tobzFYeEs1TWF6OEtMQ05pMjB3dmNHdDh3c0lYbGoyaDVxOUlUQnE3SWdRUXZLVlkKLTRPZko3YktiSXRQMmR5bHdRZ1FZUElHeHdra2JSWE5yYU9OWXZOMTlHOFVkRjM1ckZPdUlCQWpmMHNLei82MThaUVFJeE9icgoteEprUmUwc0VDSUMrc3NuakViMk5CQkJJK1hNNE9udFZXR3NSVjlUZDNzRmdCQWluR3dJcm9vOE8wZ1FRTUdBd2djOVBhTGFHCi1nQkNpd1NUcllRUUlWSGpmQ1FnT3R5Z0VVSW9yYUZvQU5maFpnSVNocE9kL1JSeEZVNC83eFpSNXRNZEdvWXovZzB0aFIwbE0KLStIaTg4RnRGRDRtQWgvT2F0NFJpOEI3YnYwNGFva2pOMlVIejZuUGJISGpaOHpJcXBiWVRDeTA0M0dOWkJBaE9xanlCMkpiRAotTndRb1IyM1hDWUQ5eDZFMjBDaEhKUlhtYUh3eU1kWVhLbDVDVXh5cGw3b2lzK3N5MkQ3akR1a1Mzd1FJc1R5eVBnSmkwR3NBCi1BQUFBQUFBQUFBQUEKLQpkaWZmIC0tZ2l0IGEvY3J5cHRvL3BrY3M3L3QvbXNpZS1lbmMtMDEucGVtIGIvY3J5cHRvL3BrY3M3L3QvbXNpZS1lbmMtMDEucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YWJmMDBiLi4wMDAwMDAwCi0tLSBhL2NyeXB0by9wa2NzNy90L21zaWUtZW5jLTAxLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDY2ICswLDAgQEAKLS0tLS0tQkVHSU4gUEtDUzctLS0tLQotTUlBR0NTcUdTSWIzRFFFSEE2Q0FNSUlMeUFJQkFER0I4ekNCOEFJQkFEQ0JtVENCa2pFTE1Ba0dBMVVFQmhNQwotUVZVeEV6QVJCZ05WQkFnVENsRjFaV1Z1YzJ4aGJtUXhFVEFQQmdOVkJBY1RDRUp5YVhOaVlXNWxNUm93R0FZRAotVlFRS0V4RkRjbmx3ZEhOdlpuUWdVSFI1SUV4MFpERWlNQ0FHQTFVRUN4TVpSRVZOVDA1VFZGSkJWRWxQVGlCQgotVGtRZ1ZFVlRWRWxPUnpFYk1Ca0dBMVVFQXhNU1JFVk5UeUJhUlZKUElGWkJURlZGSUVOQkFnSUViakFOQmdrcQotaGtpRzl3MEJBUUVGQUFSQXE4eHBiekdIcWdYOWY0SW1LL01obFh2SWZHV25nN2MwZEMxWWJRRHd3NWtINEswcQotVlR2L3FEbDc5cjBPNzlNNnJGRXlxMWhHbnJlbHJaRCtZemdoZ3pDQ0Nzc0dDU3FHU0liM0RRRUhBVEFhQmdncQotaGtpRzl3MERBakFPQWdJQW9BUUluOCtrYjh6ajJKU0FnZ3FneHRHQS9GTEJCUnMxd2JCUGdEQ2JTRzB5Q3dqSgotTnNGZzg5L2s2eHVYbzhjNVlUd3N3OCtYbElWcTAzbmF2cGV3Nlh4eHpZMDkwckQyT0owdDZIQTZHcXJJcGQ4VwotaVNoL0F0cW4weWZMRm1rTHFnSUFQUmZ6eFV4cVVvY3hMcFFzTElGcDJZTlVHRSt5cHMrVVptSWp3L1dIZmRxcgotY1dUbVNUU3ZLdXkzVWtJSlpDa0dEQnBUdnFrNEJGYUhoNG9UWEVwZ3BOWStHS3hqZjlURE45R1FQcVFaUjdzZwotUWtpNHQyZzQvU2FxS2w2RW9KYnBPck1IVFE5TFloMk83K1hlbUVkdlhqd3BkdjBreWZmSGlhVnBCQkF0dGhqVAotYnpzdTY3djBiOWgzdURLaW0xM3V5VDB3eDMzR0VtbW1Ec0p3Zi9JUEgvOGV1MkNrNXhhYWZwWEdtRnFvbjR1WAota1F0SVBhTmNsRm43L2hMeFB3MlZtQkdhQzBTWUYzVTFqeU45NkVCeGRqcXk4QWE2QnlNWFlEVzVCY2ZxbmlENQotbVlYZncrYjgxbGgxa3V0eGFQYVY0WUo5WmxSVVc3NTJON1ZIby9mRzAvZnVrb2U1VzlhOGtJaGdMcHlnbGxiLwotR1A0b1NGNHdNNm4xL09nUnpaajJJV0Zpb2JLTzRkL3RNbmgrQytQb0VWQXVGWmN4UXdpOUdxdnNLNU9vSWpWdwotTngwWGNWU09sMVRUWVM5U3dDN3VnTUJDYWI3M0ppcnVDMjRwTDc4WU0rTmFJcElRM09uNERva0pBMlpIdGpCagotWkl4RjR0S0ExNDRSdkZONnBCZDZUVkU1WE02S0QvVmg5YmpTbXVqdEVBZmRRM1RlZHZLSnNiWnV1MHN0RXJidgotV2NSeTExSTMyOGw1NTdFQ1UrM2VPRGlkNjJQcHVlZkhwME5UWkpHcW5ZSVNoQnBLUkJ1eWhOeGt5am1QZnpZYwotS2dDUTY5ZlJsM1FPcUNqb2JQcE1IaFZWM2xpMU5yeEtHZWRRY004WGN3cHNUc1BpZ3ArNTFvMnFnS3pCTkFxdgotNWtHdW1IT2xNS3NSZnJzN2paQ2NTYU91RWo5N3BZeDA4RkxFZ0YyM2NhdjM5TU9RTlVFTTFkTlUrRVlzbEw0bwotM1JvU0hSalVnUFUrMnQ5YzBwclM5QS9iUEJEai9lRDhwMmt6Y2NCNHQxVXl1MHM3a0pvTXdPSi9lTmhQWTZFbwotcXJFRDViQ2dHOTdEMUdpd3QwcmxNVW96UVlINmJ3OUc1cXdQK1lmbG1hR0Y3eUtJQmFjSTVFcHB4WjdTV0hrNgotL1ZwR3U4TERuK1BkRDliL2htMDNsVDVwNVVFa3kwRHlmUXpGM21RL0VkczFXSGlnYW10bnJBUjZCWHlHM2UragotSmxxWm5rTExGeng5OHhpY3o4a2tqcitnUmtNeXlpUzVGbll5dnhLemZNdHluMmxaMnN0OW5aR05OZ01jOU42MgotcjVIZ05iZERGSHVSZEtLelYrOGtRZnVNYzNtT1BwSzF0OVRGWStRZ3J4aUI1cDZTN1Zvb0k5N1l0UDNQYmZrbgotc3pDRWVEM1YyRzIya2R3R25EZDBPWkdHSmxyS3QxbHVzWUs0TkpwaEJxTEJyOEVrTVFRYm9sMmE4VW5BbXVJcgoteEt0T1ZHY01rb1hqN3luYmpyNTFCTnN3enVpRnhTMmNZVTJRU2IzOFdpOHVBWUNJbnVJd2FaaSt3aElzbEp6QQotYmlmN0N0SnBBMUJlTE96MDNmS1RLem5qQUUxMy80RkRnWHVtZHdlRU5EWVBLM2t4NlFIeGp5STA2aHhSTVVLNwotbmJpOWFXQ1htWFAzdlU3RDIxZHAwWG5BTXpSUUo1NjVKVjNhSFJvWTdYRGE0TGVQYTdQUDl5d3lhZk9FNXlDVwotN25kcXgzSisySmhURHZTRnNXOC9xM0gzaXllRmh5a3VKVlM2eXVncGltNThzb3pueE5vaXhpWmt4V3ZkT1ZkaQotcTFRd3BwUkx2OGNoakxQTk1rOG1RdnNrc3pQTnhURmJ5eEVKa3MzRXpWR1ZhUTN3TlpEVjIxNUQ2TGdWMTArbwotUEsvQ1FrWlkyaWlnQVpxVXlGNDRsQkZSUlRoeUMrRXl0NWM5cktHcmtDamhVeElLUURtRmhFSUZ6T2JnT0w4dwoteWlFWFJMRWl4MUZqcUJqMEkrZXNGY0N4anFIVkZ0SHRQRFNKQm1aNWVMbllNS0wwYnkrU1lNQWE5ejBDUmVJegotbDhKTEw2RVZJRno4a0Z4bGtHV2pyNGRuT3poaFBPcS9tQ3BwMFd4YmF2RGZkaEU4N01kWEpaQm5Md29UNjJRRwotOTU1SGxBb0VRQk9HSmJjb0hlVjBvcTJmV053R3duN2lqcXFEQWJ4RkJwL3NQNlRHcXB4cjU2K1JXWWJnUXlxNAotVVY2cmNVTE1RUC8zYXhsTWJLMlRya2kvOVBuMjc2TzU5b2RXZkRjdk9venIxV1FDUERhWFZoemxFTmM5aTNJOAotcEtFT1ZRZi9VQmN6SjBOUjlhVEVGODBkUmcybHBYd0QwaG80TjBBdlNpVmJneEM3Y1BaSFF3SXF2cTlMSFJVcwotLzRuK1Z1M1NWWVUzY0F4b2xVVGlDR1VTbEJma3crZTBpT2ZrU1BqRGJady9hN09CTlpwZWRXS0J4bGhZOTFENgotNGc1bU5CU2hNQ0lLclRGekdOMzJmU3F2SGZOMjR3ODhjR3cxKzFzRWV5bTBuaVZrK05xUXMrNURQdU0rdzZkawotZTY2eGRQZkhhdXV3R2RpMWl4dTMzeVpJV0pJck5PMFdaZCtRNEZzSkIySzNVL3ZwQ2RnblZwY3dhenJNL29iSwotbEJOcDByL05oYStXYmZ4Q1JYQzU1b25UQ3FXMnBxS0E3MGgyVU1ESE9ycGVwVTFsajBZTXptb3RESFNUVTNMOQotMDlWdlVNTmc5dXFmclE2bVNrYjlqNVRsOG9GMm90T3c1RXpBMVlkYUtQbWdzdjYyUldMWWw4MHdYY0J0SHY1bwotQnUrWTZmWlRvU1hWVjZuR0cwS1V2YjRzRldsWk1CL3V2WnJ2MjBDT0lJNkJMRkdGK2p1OVVYdHMvbkdJWEp2VgotS3l2ZzE3a2hRVjBEaUpRQmNTakZ1QWRHcVhlbjFQT0JiR1N6Nml0Y1RrNFRRRFlIYU9JbnhBalFUR1RpRlM5YQotc3cwbDlSbkFYSkxzVFRuRlgwNUc1ZlhHYXdxcVJQaTFWSGsycVdmaStHOEJqenJSVUdpV2pQUUlPUjN5eDVJRQotU040eTlGdnBZdWZsSWVIZzl1cmt3cDZOKzFmMERySkpoSlk5WlEwSFRRaHppSm1JZnZiRWpOcUNsN2hFQzI4KwotRjhJNXR1VmlMZ2ZTd2NGRkN2blM2V0ZvTjRYNlFkRmRxTUNiM1pTTlhQaUVCZ1B5TGt3ekNXQXJrUDcvdkFSdQotV1hsbFI0bkQyWmwzMFdyZlhoU3RYUmlnQ1huK3ZrMy9SejdnNDBxUThuMzY0bjdLZXczTitKWnB1eGpkZmpqZAotMlRMYzJicDZsdnpWRXBhT2dqdU1ncFJYOHphbi9SNTRaS3F6aHZUb29YOVZIcDBIQ3dsVXZrT21kT3luY3hYaQotUDhJQTZWRjFJOW5uNzYyd3BzeHFtV1Q1eDZwQzJrUVhQVXhoTzFWWGo2dVd0Wm8xb2tKeU5aNS90Tk93TTdCKwotWGZPWjB4dyt1eVZpOXY0YnlUWk0yUWRzSitkM1lHWUxBdWdUR0hJU0xxUUVlckQ4L2dHSysvU0wwNmIyZ05lZAotWFBIdGdTbC9qSGN0OEJXb1QyQldDK3NVMWFLb1RGb01HcW5Qd3o0Q3dwSlRYNi9jU1RXOUtycnpEeG9kdTJGTwotWkpWa004STMwcTlqZlZsTUtoQXFRQnV0TDIyZU5lZlVqZjVuclB4M2VJTm8vWVdIbUZnaGJKTVpXSU5SMjlsZgotQVBlK2tFeVpiYlpXYlVWK1BxSFpkU0xKTi9yeCtTb25SOG9sRlpVdGE1Yjg3ZFVUZ0U0OHJBV1ZvbHNlVlRkRAotVWhvOC9uRGlyMWRsZ0lacGV2N0RDcjRpMXVVYlJESFB3aFZSZGZvOVhhWWgwZkRQaElJSytjS3hvcGhCWXhkZgotTEkvWDdNR3BqNS9URWNsNHRoMVVBWXAzbGZoclZsWkNLR2RuUWl4UWZaa0VUS0RTZFJIbHJrQTRtZytBdW5LbAotQWx4OHVVYlJYaGVJTlJYUCtKNzdYb3VWQittTnVWZzVEWGpNeDlwNUg2VjJZRnRWMHU0Ny82UzRjTy81ckVIbQoteUk5ditOZWdWT0VYZDJIcXcwSng3YThEa0tTR2pWZkVya3hyUHdvc0kyTGJUQzl3YTN6Q3doZVdQYUhtcjBoTQotR3JzaXZLVlk0T2ZKN2JLYkl0UDJkeWx3UWp5QnNjSkpHMFZ6YTJqaldMemRmUnZGSFJkK2F4VHJpTi9Td3JQLwotclh4bHhPYnJ4SmtSZTB1QXZyTEo0eEc5alVqNWN6ZzZlMVZZYXhGWDFOM2V3V0NuR3dJcm9vOE8wakJnTUlIUAotVDJpMmhvQVFvc0VrNjJGVWVOOEpDQTYzS0lvcmFGb0FOZmhaZ0lTaHBPZC9SUnhGVTQvN3haUjV0TWRHb1l6LwotZzB0aFIwbE0rSGk4OEZ0RkQ0bUFoL09hdDRSaThCN2J2MDRhb2tqTjJVSHo2blBiSEhqWjh6SXFwYllUQ3kwNAotM0dOWlRxbzhnZGlXd3pkSGJkY0pnUDNIb1RiUUtFY2xGZVpvZkRJeDFoY3FYa0pUSEttWHVpS3o2ekxZUHVNTwotNlJMZnNUeXlQZ0ppMEdzQUFBQUEKLS0tLS0tRU5EIFBLQ1M3LS0tLS0KZGlmZiAtLWdpdCBhL2NyeXB0by9wa2NzNy90L21zaWUtZW5jLTAyIGIvY3J5cHRvL3BrY3M3L3QvbXNpZS1lbmMtMDIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcwMTcwNTUuLjAwMDAwMDAKLS0tIGEvY3J5cHRvL3BrY3M3L3QvbXNpZS1lbmMtMDIKKysrIC9kZXYvbnVsbApAQCAtMSw5MCArMCwwIEBACi0KLU1JQUdDU3FHU0liM0RRRUhBNkNBTUlBQ0FRQXhnZ0hDTUlITUFnRUFNSFl3WWpFUk1BOEdBMVVFQnhNSVNXNTBaWEp1WlhReEZ6QVYKLUJnTlZCQW9URGxabGNtbFRhV2R1TENCSmJtTXVNVFF3TWdZRFZRUUxFeXRXWlhKcFUybG5iaUJEYkdGemN5QXhJRU5CSUMwZ1NXNWsKLWFYWnBaSFZoYkNCVGRXSnpZM0pwWW1WeUFoQmdRSmlDM3FmYkNiamRqNUlOWUxuS01BMEdDU3FHU0liM0RRRUJBUVVBQkVBQ3I0dG4KLWtTenZvM2FJbEhmSkxHYmZva05DVjZGamREUDF2UWhMK2tkWE9OcWNGQ0VmOVJlRVRDdmFIc2xJci9XZXBjNWoyaGpac2VsemdxTG4KLXJNMVpNSUh3QWdFQU1JR1pNSUdTTVFzd0NRWURWUVFHRXdKQlZURVRNQkVHQTFVRUNCTUtVWFZsWlc1emJHRnVaREVSTUE4R0ExVUUKLUJ4TUlRbkpwYzJKaGJtVXhHakFZQmdOVkJBb1RFVU55ZVhCMGMyOW1kQ0JRZEhrZ1RIUmtNU0l3SUFZRFZRUUxFeGxFUlUxUFRsTlUKLVVrRlVTVTlPSUVGT1JDQlVSVk5VU1U1SE1Sc3dHUVlEVlFRREV4SkVSVTFQSUZwRlVrOGdWa0ZNVlVVZ1EwRUNBZ1J1TUEwR0NTcUcKLVNJYjNEUUVCQVFVQUJFQmFuQnhLT3ZVb1JuM0RpRlk1NWxseTJUUHUyQ3YrZEkvR0xyelc2cXZuVU1aUFdHUEdhVWxQeVdMTVpyWEoKLXhHWFpVaVJKS1RCd0R1OTFmbm9kVUVLOU1JQUdDU3FHU0liM0RRRUhBVEFhQmdncWhraUc5dzBEQWpBT0FnSUFvQVFJbXhLWkVEV1AKLUV1T2dnQVNDQkFDQmkxYlgvcWMzZ2VxRnlmUnBYN0p5SW8vZzRDRHI2Mkdsd3Zhc3NBR2xJTzh6SjVaL1VESUlvb2VWNlFTNEQ0T1cKLVB5bUtkMFdYaHdjSkkweUJjSlRXRW94TkQyN0xNN0NXRkpwQTA3QW94VkNSSFRPUGdtNzk0TnluTGVjTlVPcVZURnlTNENSdUxoVkcKLVBBazBuRlpHL1JFMnlNdHg0ckFrU2lWZ09leEVTN3dxL3hXdW9EU1NtdVRNTlFPVGJLZmtFS3FkRkxrTS9kNjJnRDJ3bmFwaDd2S2sKLVBQSzgyd2RaUDhyRjNuVVVDNWM0YWhiTm9hOGcrNUIzdElGL0p6M1paSzN2R0xVMElXTytpN1c0NTFkbmExM01nbEREalhPZWlrTmwKLVhMc1FkQVZvMG5zamZHdStmNjZiZXNKb2pQenlzTkErSUVabDZnTldVZXRsOWxpbTRTcXJ4dWJVRXhkUzJybVhuWFhtRXVFVy9IQzcKLWRsVEFlWXE1Q2xxeDVpZDZzbGhDMkMyb2VnTXd3M1hIOXl4SHc2T3F6dlhZNnBWUEVTY0V0Qk1RTGdhS0ZRVCttMlNSdGJUVkZHN2MKLVFjblVPRHlWQjFJYnBRVEYxREhlZU9YMVcvSGZwV1p5bThkemt0aTZTQ3lldW1IbXFPNDA2eERpSU1WS3RIT3FNODZuRUh1QU1ac3IKLWNMeStleTZURUp2UjZTNE44UVJ6bmc4SkpEWkRUSlhRTjZxODRhRXVkc25PcncyS3lPVndQcEk2ZXk0cUJzSFVnUThrQUZ5NWxzUWEKLVdWNDVoNmV4Z1V3YkJjS0xnUFpHRmorT2REMlJLSnNUYjgzL1VxYkpTNVEvbEdYaHpCbG5hWXVjeUp4RXByUnhibnRtY25PRVBGSmUKLSt0UkRVd09UZDdxbEpsamRoSUpMK3VEY29vTDlBaGdvNkN3ZXA2dGR1ZWt2MmNTRW9oSmVURThEdnkzNFlSaE1iTHZuRk5kbW5wTnkKLXJOWkRZVlZ4eGFLb3lkMkFmQjhOUEZaaDFWZEFZZkkzUjFRQVEya1hFZWY1Tk5JZlZRZk16RDlha0puNFJQK0t2MzJRYXhtNEZybksKLXhtd1J5R0pTaGF2SUJjMmF4K0YxcjErTlpYdVNCSG41dmZvUlR4T2swU1Q0ZFhzdzc0ZG5sWVVNUmFTdTRxcVVkTTlqc1hTeWVYNFoKLWdRZ2tSMmJrYVlPNmV6RmdlbkZJYTdRV1Z3OHJYWkFFWjVhaWJDeGJuWTFWRTQxUFlJdmhsTGRiRkpoSDlnWTIycytmRkF1d256eUEKLVNSakM0MEE5YUFFSXRSbGFQU3RXU0dpcWxMUmdOa0JCd2RwdjJsMllQQmQyUXpIeDZlazZYR3J2Ukp1QUMrTmg2MnJ0UUt3cE5INTQKLVlBT0hXNTVtYUJGVzJTUTNURitjWjZOYmJxaENtSFR5eVI3bWNTWWM5c1hTVkRXRWhZS1ExaXlVODcwemhIV1ZwdmdsWml6WmV0SkMKLVpGallleDNiMW5nVmRjZ2FyZ092cFBxOXVyQ0tLaTJtYmtxdi9FRnB6U1dHWGtLU3BmQ0cvWGZNbkVPdGtOckI4UzA2dm5rMkpjSkIKLU9CcUpvdCt1dVNINWhPZzB2VHB4WDJEdU9OSlNpV1NXeWZSRS9sVGZKSkZYd2hvZDdTWGNsVXlYUGVTeWliY1NpYzJoVkF6RG13akQKLTMxanMvajJrMDJQSS9hZ1BocjNVUThjTWdjTkFpYW9DS2JOYVdmbjZCR2JDQWJUY2h4elVsbzJjU0ppTGxyWDJJRFptZlhiWG1aQ28KLW0xc21XSUcrQklJRUFMaXVBeERiNmRXTEFZeVZCb045aFlJNEFpUGVaQVk5TXR2UTZBVjhvMi9FRm02UHZZR1h5M0hlaTU4MzBDSDAKLVBCZVg3S2RkNmZmMXkzM1RXL2w1cVNrSUwxVUxUR1I3b2tGZkplUEhEbXExZEZ0Ni9KT01wdGlROFdTdTdDc0pRdlo5VlRGWGVZRmMKLVpxQ1BQWmMxTnJQZWdOSzcwWmY5UXhXSWJEQWV2SjVLTEJmMWM2ajhwVTIvNkxudkRZNlZqYVR2WVNncjd2VFI4ZVZ6SDRSbTc3VzAKLWlPSHhnNVZjT0R2NmNHU1Z5dXZiWDhVQUdvOENtYjU4RVJEdEJESkJRWFZwV0tMTkF1REo5R1g4bjJ6TmtwalpMYlBTa2NtdWhxR2EKLUJKQkUvQmFDVGtVUVdsWTlkSWJSdEVueElVMW1mYlBQZHgxUHBhOERxR0RqU09zUWRLY0tZTk5adGF5RXcrK0VJcG1wZEJOc0twaEMKLWZCOFVFSzJXa2s0WlZXK3F5R29pL3IwTUZzdk8xTm1TT09aMG8vankvWUhtb2VVUkhoUHk5N0FPM2VWVGtFQWE1Q2ZKRUp5Ym1vNTYKLTdDRHcvRndvR0FVQ2dzb3o3cmx4ek11ZHIvSWhISUgrQVBpbm5jeFhsSE8yZWN2SEQ5aThEYUhHQTh0VmlmZ3NVaHFRb1ppZVVMdXQKLWVGOTRPNVVBeE9rdjQxVVpzc1lUd040bllyTjFRa2VzWmwzQlg0T1JTNEVFMzAvUFEyM0FSZjNXWnB0WnJDSmV2R20yWll6R2VoOHgKLWcxN21DRGZpTE8rYmZmNHFQLzRtQzk2UHU0aWE2ajR0bzVCd0tJSlMvK0RDdW9EOFdlU0tGNHB1Z1hRa01VaUhkUW5OblZQOVNwMk8KLS80bHk1bU84SnpyUUM1OVYyYm5UTkJxUGhwbm84a2ZKdks1VHlwUFNWQytiVHplcm4zcko2VWNlQjNzcmNuOXp4S3g5R2ROeWRKUWoKLXlXanY4ZWMzbjNkMW51UXdoejVRMDUzTkJoSWp3b0dnM0dvN0xPNmk3OFpPbHBGN2Rjb0FPMTNOZkhMeU5qbnlIQ2FpV3RWUlRjdDkKLXJMZjV2TjAwdXJTbjhZSm5nSGsxZVRLSzhuSEdJY09nNllkWURPRDJuRTVYd1JpakttaWVHOFhhM2VLUnpmYkwwNkdyQlFFTmxlNkoKLW1DMTMxYnAzY1JWeHBqcStvNlJBYkdvTW00eUlDc0w0ZVRhckNRcnN5SG1vUEhxcjkxVUhvOTFhdnl4VTdrbldtRWhYMjd5Ym1zcnMKLThhZVp3UEhpeEwxNFRleWhydUNxUlZ2a2YxS3M3UCt6OE1QVWJvR05xUWUyV0xOOGt0Q0dFcjE1TzhNSlIvZW04NkcwM0pmbzRvYXcKLS9EVlVINVJ3TFQ2YWNlZE9HdXpNaC8ycjhCY21lbWhWUTgvY1d2VjRZSjB0T1c0aHp5VkhDNWhRZjhzWjNMenhYTEg2T2hucmJwcmgKLXh2cmRiYVNkQ2hXWkREUDBiQ0NieEVoa3d1QmtCZUtack1id1JUUCtUUFRQWUxWVEgvQ21LTHpLaC8xMTR0a0dreU8zaEhTNHFFeFUKLVYzOUYyU2o0bXlseCtoRDArMjBEOXBudHBOaTdodGNjR2xPbTZ5Tk02OWF0LzMra0xnSkp5b0lsYXhMY0NVWUhOTWlmRHQrVDNwL3QKLTVVNFhtRDUzdVVRNk04ZHZqL3VkcVBla05TVWZzZTE1eXJkOXBqT3Q1UGNKdXFXMjhxMHNGSGY5cEhJZ3ozWFpGTWU1UEQ3cHB3NnIKLVMrQzZJcjRQcllJRWdnUUE3WkRWdGlDbStCYnROTkIvVUptNzkvT1E1bXA1YlRJMGtQbURleWNhV1RhME9qcHVtK2MvZHBHL2lKT0IKLURJQ2o3akhPWFNIVDdKbEd5WDZhU0ZKVWx0dWNBblp2d3poUERtZERhSURpS1NrODVHcWdkRFdWZkdvc1NDWDlQaC9UM1dwSXhud2YKLVdTRFJ0SUhrV1RqbHkrcGU0eXk1SzYvWElTeS9MNVpoL2ZoaUk1ZmpIamd6bWxpYnMycnU0blZ3NmhCaFV2bFNTZTJCRXM1ZDloL3kKLU5IOFd5M3F2YjJEM2poN2hrZXBGdFpKR05USHA4WlVDN05zMkpJcFFZT2JzYXhkSTY1aTNtTU91N2ZSd0krMC80ZWpzV2hQNktDRWkKLUxnd3ZMZzBxTTgybWE2WUI3cUhBSGJvYWN6UlZFZmZEY0pVRzRhNXV5Y0IwRG9aRm4rdUVhRUZ5aWxpMjBoQ240aFZmc3FVUWsyUFQKLThNbzF0U2w1ZTMweEkxWUpaclJnaUptOW5IUlg2Zkxpem5nUCtJTEpMUEhac1B2bFNWSWZZKy92L0ZSOGZlS09qYUdoeUdGNTFCQXgKLWFNMk5JUTRqTVA1L1grVTVnUXliaTBFNnU3cnJvRGhhSHNLbUNNZ1hxc3p3WFdDcGVkQS9zRWJlSHBpVEM1OVlsUFBTbElPTWM5dlAKLUtvL21RQ2ZXeS85aWNVYUlmS1FsZHZrbGxVeHhOa3F1NkFiSXBIVnNjYkFFelNQczV4YlFYVThFWk5OQ0Rpc0ZubnBZM25RM2VMbmwKLW04OXNhVEp4UmI3TldIUk1sbVB2N3FnRDd1TUlxM3ZkT0dBN2k1d1Q5TWVvTklnSzEvRHNnSDMwczZSV2pKeTRZeXlMbVJUWFB6YmoKLWhiUVZwRW1pTVJiRWlkSXZVeDJPaktWeFZRSWNndExzYTJsdkhRNFhMMWNwTHI1R1Z0T2d5MGZNZzVPQ0RVVURzdmpnamdMUTNQMlUKLXAyblZZNUZNNi9RcFBjNURUTHV1Ujlla0kyL2M5Qml6MDlSdGNZRFVRSzJhamRvOGgxSXlLcUhGb0I3aDQ4T1h4WEtLWTk0RFkwVEcKLXg2UG9uQi9lcGo4b3JBdzRRS21tNU0wdlhZd0JPcVJ5bUNUSFRxT0pHT2JkTHgxZXVGRnlxZ3V6SEpPVTJnQUdaSTB6OUxnMXlSdUYKLXloZFBaeXVuaUljbXRMTnhSWjFkdVlIRXJjQXlYNTZxbmRtTFh0N1VWa0FUYWkvcklNdW9KTGZBc1VuVnVUVVM1cDd0Sk03NTRVWlQKLTdsVGNYdkRKZ09VTm5CUmFJY3hDM3B4dmJyWURKMmlGSjcyeGt4VVAycDc0Z3VjcWcyNVhuQ1ZtUXVMZzZ6RER4RjZDTHV3OWlzeHkKLVhnNHBrbmVNTi8vN2ZwcDhHWWw5bnlabTJ5cVlZTStqY3cwZmNWYzY0TCtYNHcvZ0wzSDJVTUdneElIU0pwN0hJRzdWS0h0WHJOeWoKLWRQWFhQVlVzTXNBQWltcU9yMExyMnNaV2lyZnVpdkxhUFRxaGJrdkc1UEY3SzNnVDgwQU9JY2QvNkVJSEJ5MmhaN3VrZmpIbWRQNEwKLXlRT2hUUWtsYUt6R0hJMG15cHEwdUZMV0pPVWxablZyTWlMUDF4cldrcEM4Um85ZW82bWZqalE0NXo4YWRDNDNhNDdrbHdURXp2b2QKLTNyTkVGSUdKSlVFakFOM21icWllN0l4b1NKa25CQkpLMEQ5bFpFUThsWldscTd2dU44SmRxUE02eGgxNTVqTVZzUHdqTEs2VHprajUKLUJwUkQ5VGdtM3U2SFBRU0NCQURna1dFTjc1TXU5VEdvc1hZMHhtMWs2SzZzUHY4TDk0OUNyTFdvNHIxSTJMQTA3MmJUR3ZRUDI4VnMKLWhVQTc2amdjVDFvY0MrKzlQb2t0SUsxMFlDcTV3K0ZmTUFRMDRLZUNYdUFkbWlZMmlBVDRTbGVhNjFQTUNNdGEzbVZHeUxVWkNMRW0KLVArSTBVS1I1bWxPMGZHRWNqVTlqOFRtYmpacXhORnFsb0xzVTdvU2k3T3MwRXRZSGtkQVZyRXhVeU9jL1pEaWU2ZkJqZExUbUxkQ20KLWJFOUpOd2psYlh5cGRUWnVwR2dMTmhLR0RJc2tVQUFNd1pZYXlJNllmU0lNa05DZUFZVG5qT3VHWloxbXNDWEdYc2ZNQlIxc2ZVSWoKLTlVZUdqd0Q4Z3ErVVZWSFgvb2VvSC9tMGVKNXBwcWkzK25VbGdjOUR2cFlzQy9GZzBHMkt1WWI5QitWSithNEdNelFTUFJFb0Z0UXAKLUI5ZHRMa0JiN0hhL2hwR1dUSWRxelcwZUFvNWxseU44Rk52bDJGdTJJY0xhTm1XRk82OWdMalJLUW9wcDBkdkZPdXdBVkk2ZnZHRGoKLXAxV2lnb05iRlpsOE4raWlXbXpLT2pvRzJaTGJlejFjbFpDbXMvSlBKclhoRU1NT3hXcFZ6a1F5TjMzNlZXSG1HZ01jamFLQ0dTZUEKLTJubkVTSUd1aUNYTXJrSGxHZmFiWUlzS2NIRkNvMnQxM3VYeVpQZjB6U1BUa3VEMEVoOTJ3cUM5cHZBM2d2cnJDVWZvOU1uM2JzK2UKLUtXS21EbHBjczhtRG4wMzJvSWcrenJRaElkdU1xWFZuM2V2emVWTTNCNU1CT0dNdmc1MS9TWGc3UitNQy80NjNqdVFRRWI5SVZlL0kKLVlHbk8vL29XbTlsdy8zNzdBZi9xSCtGbk4wMm9iSncxRnZlc1FJczllNVJITlF5a0tiTyt2bVZKUWwxbmQ5RFpXckhETk83LzgwWXoKLTJoQ203VHdzNW5TUk4yaUZseVJhWUpIcjd5cHhrVTJyQ2FrMnI2dWE3WER3dTFxVTJSVDMrcVBqVDFSdXhRMm9UbEh5R2tLUE1aR0MKLVJjK0NTV3o1YWVlQ21IWlZ3ZGIzbkM4WXBmc3VqTWlZcXlnTGV1UTgycGpLdVI3RElLR21uZmNPTGR2NUYrRWsyV3l5MEQ5OGlTZ2sKLSthb1FHWUxoTDlsbFUxM3BuMjF1UnNEWTV1R2NYaUl3MUlFVEZsVGRnRU5FdjhmdXRadUpzZWdycDdmbUZYeU5vTnlGTnl5cGVEck0KLTZacVI0dkt4RmpnM3RLS2VWcGt3L1c0RUFrbHpNeG1OaWF6R05EQkhzbllWM3J3UGxLYStIZWVFMll4bnNLd0dMQ05nUllVWFRhSmsKLTQ2MXZTMTYwejNkdmgvbUxmZFo3TVlDa21PM2JORTNFTFVEQXc3WVFrU3VvOXVqemRGS3RlOUxDMzRzamc5Zk9leDNUaEFnNVk1MG4KLXdZbTR6Qm1HTTd5RXFMOE82UWduTTZ0SURGUzlYcnlEYUxOemNHaE1XcU12aHpPNnNDL0FBMldmTGd3UzUxN0NwMDNJa0pRV3FHOXEKLXc1MitFK0dBdHBpb0pmY3pFaGx2OUJyaGp0dGR1Z1JTakpyRzhTWVZZRTR6RzNBdXI1ZU5Cb0dhQUxJT0hPdFB3OCtKb3ZRbUlXY0YKLW9hSi9XUXVnbEZyV3RldzUxSUs2RjhSaUhBT0JWYXZaT3VaY083dFYrNWVuVmZyZU9kMHJYOFpPeTRoWW1IaG1GMWhPcnJXT24rRWUKLUUwU1lLb25YTjAxQk05eE1CSUlCU0xDdk5BcHBuR1BUVUdqd2JNSlJnMVZKMktNaUJXSDVvSnA4dHlmSUF4TXVXRmR0YUxZYlJTT0QKLVhiT0FzaFBWSzhKQVk4RFFEa3pxYUNUQWtMVGZTUkF0OXlZNlNiVXBNc1J2N3hhOG5NWk5KQkp6SlQ5Yi93TmpnaU9KZ2FHdUpNa1YKLTJnL0RYMmpmUDNQck1NL1Nibno3ZWRPUlhIajFQYTVYVFQ4bkc1TVMwRnVaZ3ZldmRxM28vZ1ZWQXorWkNLT0gzU2hNelp2ZnAwMWwKLVNYNWdhSlRmbG1VNmNkTnd0bjJ5WjZJU2NGN09yalVlQTlpRW9TVlI5ZFFjQSs0bEIzUkFHM0xNd2NueFhZMzVENytQTUp6SElaZEYKLWNTbnErbjAzQUNZMi9FL1QzMWlpalJIMjlydllIR0krbVAvaWVZczQ1aXE0ZlRXbzZpMUhvZmVXTGRQMGZYN3hXM1hPMC9oV1lGaXcKLUJ4S3U2NndoQWJSaGFpYjNYSk52ZXRWczI1VG9ZWHlpRHBqRytjZDVyQ01laThzR1F3VEJqOVplaDBVUm9lTVcxaW5UUDBKdkNtTVUKLXJaZ0FBQUFBQUFBQUFBQUEKLQpkaWZmIC0tZ2l0IGEvY3J5cHRvL3BrY3M3L3QvbXNpZS1lbmMtMDIucGVtIGIvY3J5cHRvL3BrY3M3L3QvbXNpZS1lbmMtMDIucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNzljNWQ4Li4wMDAwMDAwCi0tLSBhL2NyeXB0by9wa2NzNy90L21zaWUtZW5jLTAyLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDEwNiArMCwwIEBACi0tLS0tLUJFR0lOIFBLQ1M3LS0tLS0KLU1JQUdDU3FHU0liM0RRRUhBNkNBTUlJVFFBSUJBREdDQWNJd2djd0NBUUF3ZGpCaU1SRXdEd1lEVlFRSEV3aEoKLWJuUmxjbTVsZERFWE1CVUdBMVVFQ2hNT1ZtVnlhVk5wWjI0c0lFbHVZeTR4TkRBeUJnTlZCQXNUSzFabGNtbFQKLWFXZHVJRU5zWVhOeklERWdRMEVnTFNCSmJtUnBkbWxrZFdGc0lGTjFZbk5qY21saVpYSUNFR0JBbUlMZXA5c0oKLXVOMlBrZzFndWNvd0RRWUpLb1pJaHZjTkFRRUJCUUFFUUFLdmkyZVJMTytqZG9pVWQ4a3NadCtpUTBKWG9XTjAKLU0vVzlDRXY2UjFjNDJwd1VJUi8xRjRSTUs5b2V5VWl2OVo2bHptUGFHTm14NlhPQ291ZXN6Vmt3Z2ZBQ0FRQXcKLWdaa3dnWkl4Q3pBSkJnTlZCQVlUQWtGVk1STXdFUVlEVlFRSUV3cFJkV1ZsYm5Oc1lXNWtNUkV3RHdZRFZRUUgKLUV3aENjbWx6WW1GdVpURWFNQmdHQTFVRUNoTVJRM0o1Y0hSemIyWjBJRkIwZVNCTWRHUXhJakFnQmdOVkJBc1QKLUdVUkZUVTlPVTFSU1FWUkpUMDRnUVU1RUlGUkZVMVJKVGtjeEd6QVpCZ05WQkFNVEVrUkZUVThnV2tWU1R5QlcKLVFVeFZSU0JEUVFJQ0JHNHdEUVlKS29aSWh2Y05BUUVCQlFBRVFGcWNIRW82OVNoR2ZjT0lWam5tV1hMWk0rN1kKLUsvNTBqOFl1dk5icXErZFF4azlZWThacFNVL0pZc3htdGNuRVpkbFNKRWtwTUhBTzczVitlaDFRUXIwd2doRnoKLUJna3Foa2lHOXcwQkJ3RXdHZ1lJS29aSWh2Y05Bd0l3RGdJQ0FLQUVDSnNTbVJBMWp4TGpnSUlSU0lHTFZ0ZisKLXB6ZUI2b1hKOUdsZnNuSWlqK0RnSU92cllhWEM5cXl3QWFVZzd6TW5sbjlRTWdpaWg1WHBCTGdQZzVZL0tZcDMKLVJaZUhCd2tqVElGd2xOWVNqRTBQYnNzenNKWVVta0RUc0NqRlVKRWRNNCtDYnYzZzNLY3Q1dzFRNnBWTVhKTGcKLUpHNHVGVVk4Q1RTY1ZrYjlFVGJJeTNIaXNDUktKV0E1N0VSTHZDci9GYTZnTkpLYTVNdzFBNU5zcCtRUXFwMFUKLXVRejkzcmFBUGJDZHFtSHU4cVE4OHJ6YkIxay95c1hlZFJRTGx6aHFGczJocnlEN2tIZTBnWDhuUGRsa3JlOFkKLXRUUWhZNzZMdGJqblYyZHJYY3lDVU1PTmM1NktRMlZjdXhCMEJXalNleU44YTc1L3JwdDZ3bWlNL1BLdzBENGcKLVJtWHFBMVpSNjJYMldLYmhLcXZHNXRRVEYxTGF1WmVkZGVZUzRSYjhjTHQyVk1CNWlya0tXckhtSjNxeVdFTFkKLUxhaDZBekREZGNmM0xFZkRvNnJPOWRqcWxVOFJKd1MwRXhBdUJvb1ZCUDZiWkpHMXROVVVidHhCeWRRNFBKVUgKLVVodWxCTVhVTWQ1NDVmVmI4ZCtsWm5LYngzT1MyTHBJTEo2NlllYW83alRyRU9JZ3hVcTBjNm96enFjUWU0QXgKLW15dHd2TDU3THBNUW05SHBMZzN4QkhPZUR3a2tOa05NbGRBM3FyemhvUzUyeWM2dkRZckk1WEEra2pwN0xpb0cKLXdkU0JEeVFBWExtV3hCcFpYam1IcDdHQlRCc0Z3b3VBOWtZV1A0NTBQWkVvbXhOdnpmOVNwc2xMbEQrVVplSE0KLUdXZHBpNXpJbkVTbXRIRnVlMlp5YzRROFVsNzYxRU5UQTVOM3VxVW1XTjJFZ2t2NjROeWlndjBDR0Nqb0xCNm4KLXExMjU2Uy9aeElTaUVsNU1Ud08vTGZoaEdFeHN1K2NVMTJhZWszS3Mxa05oVlhIRm9xakozWUI4SHcwOFZtSFYKLVYwQmg4amRIVkFCRGFSY1I1L2swMGg5VkI4ek1QMXFRbWZoRS80cS9mWkJyR2JnV3VjckdiQkhJWWxLRnE4Z0YKLXpackg0WFd2WDQxbGU1SUVlZm05K2hGUEU2VFJKUGgxZXpEdmgyZVZoUXhGcEs3aXFwUjB6Mk94ZExKNWZobUIKLUNDUkhadVJwZzdwN01XQjZjVWhydEJaWER5dGRrQVJubHFKc0xGdWRqVlVUalU5Z2krR1V0MXNVbUVmMkJqYmEKLXo1OFVDN0NmUElCSkdNTGpRRDFvQVFpMUdWbzlLMVpJYUtxVXRHQTJRRUhCMm0vYVhaZzhGM1pETWZIcDZUcGMKLWF1OUVtNEFMNDJIcmF1MUFyQ2swZm5oZ0E0ZGJubVpvRVZiWkpEZE1YNXhubzF0dXFFS1lkUExKSHVaeEpoejIKLXhkSlVOWVNGZ3BEV0xKVHp2VE9FZFpXbStDVm1MTmw2MGtKa1dOaDdIZHZXZUJWMXlCcXVBNitrK3IyNnNJb3EKLUxhWnVTcS84UVduTkpZWmVRcEtsOEliOWQ4eWNRNjJRMnNIeExUcStlVFlsd2tFNEdvbWkzNjY1SWZtRTZEUzkKLU9uRmZZTzQ0MGxLSlpKYko5RVQrVk44a2tWZkNHaDN0SmR5VlRKYzk1TEtKdHhLSnphRlVETU9iQ01QZldPeisKLVBhVFRZOGo5cUErR3ZkUkR4d3lCdzBDSnFnSXBzMXBaK2ZvRVpzSUJ0TnlISE5TV2paeEltSXVXdGZZZ05tWjkKLWR0ZVprS2liV3laWWdiNjRyZ01RMituVml3R01sUWFEZllXQ09BSWozbVFHUFRMYjBPZ0ZmS052eEJadWo3MkIKLWw4dHgzb3VmTjlBaDlEd1hsK3luWGVuMzljdDkwMXY1ZWFrcENDOVZDMHhrZTZKQlh5WGp4dzVxdFhSYmV2eVQKLWpLYllrUEZrcnV3ckNVTDJmVlV4VjNtQlhHYWdqejJYTlRhejNvRFN1OUdYL1VNVmlHd3dIcnllU2l3WDlYT28KLS9LVk52K2k1N3cyT2xZMms3MkVvSys3MDBmSGxjeCtFWnUrMXRJamg4WU9WWERnNytuQmtsY3JyMjEvRkFCcVAKLUFwbStmQkVRN1FReVFVRjFhVmlpelFMZ3lmUmwvSjlzelpLWTJTMnowcEhKcm9haG1nU1FSUHdXZ2s1RkVGcFcKLVBYU0cwYlJKOFNGTlpuMnp6M2NkVDZXdkE2aGc0MGpyRUhTbkNtRFRXYldzaE1QdmhDS1pxWFFUYkNxWVFud2YKLUZCQ3RscEpPR1ZWdnFzaHFJdjY5REJiTHp0VFpramptZEtQNDh2MkI1cUhsRVI0VDh2ZXdEdDNsVTVCQUd1UW4KLXlSQ2NtNXFPZXV3ZzhQeGNLQmdGQW9MS00rNjVjY3pMbmEveUlSeUIvZ0Q0cDUzTVY1Unp0bm5MeHcvWXZBMmgKLXhnUExWWW40TEZJYWtLR1lubEM3clhoZmVEdVZBTVRwTCtOVkdiTEdFOERlSjJLemRVSkhyR1pkd1YrRGtVdUIKLUJOOVB6ME50d0VYOTFtYWJXYXdpWHJ4cHRtV014bm9mTVlOZTVnZzM0aXp2bTMzK0tqLytKZ3Zlajd1SW11bysKLUxhT1FjQ2lDVXYvZ3dycUEvRm5raWhlS2JvRjBKREZJaDNVSnpaMVQvVXFkanYrSmN1Wmp2Q2M2MEF1ZlZkbTUKLTB6UWFqNGFaNlBKSHlieXVVOHFUMGxRdm0wODNxNTk2eWVsSEhnZDdLM0ovYzhTc2ZSblRjblNVSThsbzcvSG4KLU41OTNkWjdrTUljK1VOT2R6UVlTSThLQm9OeHFPeXp1b3UvR1RwYVJlM1hLQUR0ZHpYeHk4alk1OGh3bW9sclYKLVVVM0xmYXkzK2J6ZE5McTBwL0dDWjRCNU5Ya3lpdkp4eGlIRG9PbUhXQXpnOXB4T1Y4RVlveXBvbmh2RjJ0M2kKLWtjMzJ5OU9ocXdVQkRaWHVpWmd0ZDlXNmQzRVZjYVk2dnFPa1FHeHFESnVNaUFyQytIazJxd2tLN01oNXFEeDYKLXEvZFZCNlBkV3I4c1ZPNUoxcGhJVjl1OG01cks3UEdubWNEeDRzUzllRTNzb2E3Z3FrVmI1SDlTck96L3MvREQKLTFHNkJqYWtIdGxpemZKTFFoaEs5ZVR2RENVZjNwdk9odE55WDZPS0dzUHcxVkIrVWNDMCttbkhuVGhyc3pJZjkKLXEvQVhKbnBvVlVQUDNGcjFlR0NkTFRsdUljOGxSd3VZVUgvTEdkeTg4Vnl4K2pvWjYyNmE0Y2I2M1cya25Rb1YKLW1Rd3o5R3dnbThSSVpNTGdaQVhpbWF6RzhFVXova3owejJDMVV4L3dwaWk4eW9mOWRlTFpCcE1qdDRSMHVLaE0KLVZGZC9SZGtvK0pzcGNmb1E5UHR0QS9hWjdhVFl1NGJYSEJwVHB1c2pUT3ZXcmY5L3BDNENTY3FDSldzUzNBbEcKLUJ6VEludzdmazk2ZjdlVk9GNWcrZDdsRU9qUEhiNC83bmFqM3BEVWxIN0h0ZWNxM2ZhWXpyZVQzQ2JxbHR2S3QKLUxCUjMvYVJ5SU05MTJSVEh1VHcrNmFjT3Ewdmd1aUsrRDYyQzdaRFZ0aUNtK0JidE5OQi9VSm03OS9PUTVtcDUKLWJUSTBrUG1EZXljYVdUYTBPanB1bStjL2RwRy9pSk9CRElDajdqSE9YU0hUN0psR3lYNmFTRkpVbHR1Y0FuWnYKLXd6aFBEbWREYUlEaUtTazg1R3FnZERXVmZHb3NTQ1g5UGgvVDNXcEl4bndmV1NEUnRJSGtXVGpseStwZTR5eTUKLUs2L1hJU3kvTDVaaC9maGlJNWZqSGpnem1saWJzMnJ1NG5WdzZoQmhVdmxTU2UyQkVzNWQ5aC95Tkg4V3kzcXYKLWIyRDNqaDdoa2VwRnRaSkdOVEhwOFpVQzdOczJKSXBRWU9ic2F4ZEk2NWkzbU1PdTdmUndJKzAvNGVqc1doUDYKLUtDRWlMZ3d2TGcwcU04Mm1hNllCN3FIQUhib2FjelJWRWZmRGNKVUc0YTV1eWNCMERvWkZuK3VFYUVGeWlsaTIKLTBoQ240aFZmc3FVUWsyUFQ4TW8xdFNsNWUzMHhJMVlKWnJSZ2lKbTluSFJYNmZMaXpuZ1ArSUxKTFBIWnNQdmwKLVNWSWZZKy92L0ZSOGZlS09qYUdoeUdGNTFCQXhhTTJOSVE0ak1QNS9YK1U1Z1F5YmkwRTZ1N3Jyb0RoYUhzS20KLUNNZ1hxc3p3WFdDcGVkQS9zRWJlSHBpVEM1OVlsUFBTbElPTWM5dlBLby9tUUNmV3kvOWljVWFJZktRbGR2a2wKLWxVeHhOa3F1NkFiSXBIVnNjYkFFelNQczV4YlFYVThFWk5OQ0Rpc0ZubnBZM25RM2VMbmxtODlzYVRKeFJiN04KLVdIUk1sbVB2N3FnRDd1TUlxM3ZkT0dBN2k1d1Q5TWVvTklnSzEvRHNnSDMwczZSV2pKeTRZeXlMbVJUWFB6YmoKLWhiUVZwRW1pTVJiRWlkSXZVeDJPaktWeFZRSWNndExzYTJsdkhRNFhMMWNwTHI1R1Z0T2d5MGZNZzVPQ0RVVUQKLXN2amdqZ0xRM1AyVXAyblZZNUZNNi9RcFBjNURUTHV1Ujlla0kyL2M5Qml6MDlSdGNZRFVRSzJhamRvOGgxSXkKLUtxSEZvQjdoNDhPWHhYS0tZOTREWTBUR3g2UG9uQi9lcGo4b3JBdzRRS21tNU0wdlhZd0JPcVJ5bUNUSFRxT0oKLUdPYmRMeDFldUZGeXFndXpISk9VMmdBR1pJMHo5TGcxeVJ1RnloZFBaeXVuaUljbXRMTnhSWjFkdVlIRXJjQXkKLVg1NnFuZG1MWHQ3VVZrQVRhaS9ySU11b0pMZkFzVW5WdVRVUzVwN3RKTTc1NFVaVDdsVGNYdkRKZ09VTm5CUmEKLUljeEMzcHh2YnJZREoyaUZKNzJ4a3hVUDJwNzRndWNxZzI1WG5DVm1RdUxnNnpERHhGNkNMdXc5aXN4eVhnNHAKLWtuZU1OLy83ZnBwOEdZbDlueVptMnlxWVlNK2pjdzBmY1ZjNjRMK1g0dy9nTDNIMlVNR2d4SUhTSnA3SElHN1YKLUtIdFhyTnlqZFBYWFBWVXNNc0FBaW1xT3IwTHIyc1pXaXJmdWl2TGFQVHFoYmt2RzVQRjdLM2dUODBBT0ljZC8KLTZFSUhCeTJoWjd1a2ZqSG1kUDRMeVFPaFRRa2xhS3pHSEkwbXlwcTB1RkxXSk9VbFpuVnJNaUxQMXhyV2twQzgKLVJvOWVvNm1mampRNDV6OGFkQzQzYTQ3a2x3VEV6dm9kM3JORUZJR0pKVUVqQU4zbWJxaWU3SXhvU0prbkJCSksKLTBEOWxaRVE4bFpXbHE3dnVOOEpkcVBNNnhoMTU1ak1Wc1B3akxLNlR6a2o1QnBSRDlUZ20zdTZIUGVDUllRM3YKLWt5NzFNYWl4ZGpUR2JXVG9ycXcrL3d2M2owS3N0YWppdlVqWXNEVHZadE1hOUEvYnhXeUZRRHZxT0J4UFdod0wKLTc3MCtpUzBnclhSZ0tybkQ0Vjh3QkRUZ3A0SmU0QjJhSmphSUJQaEtWNXJyVTh3SXkxcmVaVWJJdFJrSXNTWS8KLTRqUlFwSG1hVTdSOFlSeU5UMlB4T1p1Tm1yRTBXcVdndXhUdWhLTHM2elFTMWdlUjBCV3NURlRJNXo5a09KN3AKLThHTjB0T1l0MEtac1QwazNDT1Z0ZktsMU5tNmthQXMyRW9ZTWl5UlFBQXpCbGhySWpwaDlJZ3lRMEo0QmhPZU0KLTY0WmxuV2F3SmNaZXg4d0ZIV3g5UWlQMVI0YVBBUHlDcjVSVlVkZitoNmdmK2JSNG5tbW1xTGY2ZFNXQnowTysKLWxpd0w4V0RRYllxNWh2MEg1VW41cmdZek5CSTlFU2dXMUNrSDEyMHVRRnZzZHIrR2taWk1oMnJOYlI0Q2ptV1gKLUkzd1UyK1hZVzdZaHd0bzJaWVU3cjJBdU5FcENpbW5SMjhVNjdBQlVqcCs4WU9PblZhS0NnMXNWbVh3MzZLSmEKLWJNbzZPZ2Jaa3R0N1BWeVZrS2F6OGs4bXRlRVF3dzdGYWxYT1JESTNmZnBWWWVZYUF4eU5vb0laSjREYWVjUkkKLWdhNklKY3l1UWVVWjlwdGdpd3B3Y1VLamEzWGU1ZkprOS9UTkk5T1M0UFFTSDNiQ29MMm04RGVDK3VzSlIrajAKLXlmZHV6NTRwWXFZT1dseXp5WU9mVGZhZ2lEN090Q0VoMjR5cGRXZmQ2L041VXpjSGt3RTRZeStEblg5SmVEdEgKLTR3TC9qcmVPNUJBUnYwaFY3OGhnYWM3LytoYWIyWEQvZnZzQi8rb2Y0V2MzVGFoc25EVVc5NnhBaXoxN2xFYzEKLURLUXBzNzYrWlVsQ1hXZDMwTmxhc2NNMDd2L3pSalBhRUtidFBDem1kSkUzYUlXWEpGcGdrZXZ2S25HUlRhc0oKLXFUYXZxNXJ0Y1BDN1dwVFpGUGY2bytOUFZHN0ZEYWhPVWZJYVFvOHhrWUpGejRKSmJQbHA1NEtZZGxYQjF2ZWMKLUx4aWwreTZNeUppcktBdDY1RHphbU1xNUhzTWdvYWFkOXc0dDIva1g0U1RaYkxMUVAzeUpLQ1Q1cWhBWmd1RXYKLTJXVlRYZW1mYlc1R3dOam00WnhlSWpEVWdSTVdWTjJBUTBTL3grNjFtNG14NkN1bnQrWVZmSTJnM0lVM0xLbDQKLU9zenBtcEhpOHJFV09EZTBvcDVXbVREOWJnUUNTWE16R1kySnJNWTBNRWV5ZGhYZXZBK1VwcjRkNTRUWmpHZXcKLXJBWXNJMkJGaFJkTm9tVGpyVzlMWHJUUGQyK0grWXQ5MW5zeGdLU1k3ZHMwVGNRdFFNRER0aENSSzZqMjZQTjAKLVVxMTcwc0xmaXlPRDE4NTdIZE9FQ0Rsam5TZkJpYmpNR1lZenZJU292dzdwQ0NjenEwZ01WTDFldklOb3MzTncKLWFFeGFveStITTdxd0w4QURaWjh1REJMblhzS25UY2lRbEJhb2IyckRuYjRUNFlDMm1LZ2w5ek1TR1cvMEd1R08KLTIxMjZCRktNbXNieEpoVmdUak1iY0M2dmw0MEdnWm9Bc2c0YzYwL0R6NG1pOUNZaFp3V2hvbjlaQzZDVVd0YTEKLTdEblVncm9YeEdJY0E0RlZxOWs2NWx3N3UxWDdsNmRWK3Q0NTNTdGZ4azdMaUZpWWVHWVhXRTZ1dFk2ZjRSNFQKLVJKZ3FpZGMzVFVFejNFeXdyelFLYVp4ajAxQm84R3pDVVlOVlNkaWpJZ1ZoK2FDYWZMY255QU1UTGxoWGJXaTIKLUcwVWpnMTJ6Z0xJVDFTdkNRR1BBMEE1TTZtZ2t3SkMwMzBrUUxmY21Pa20xS1RMRWIrOFd2SnpHVFNRU2N5VS8KLVcvOERZNElqaVlHaHJpVEpGZG9QdzE5bzN6OXo2ekRQMG01OCszblRrVng0OVQydVYwMC9KeHVURXRCYm1ZTDMKLXIzYXQ2UDRGVlFNL21RaWpoOTBvVE0yYjM2ZE5aVWwrWUdpVTM1WmxPbkhUY0xaOXNtZWlFbkJlenE0MUhnUFkKLWhLRWxVZlhVSEFQdUpRZDBRQnR5ek1ISjhWMk4rUSsvanpDY3h5R1hSWEVwNnZwOU53QW1OdnhQMDk5WW9vMFIKLTl2YTcyQnhpUHBqLzRubUxPT1lxdUgwMXFPb3RSNkgzbGkzVDlIMSs4VnQxenRQNFZtQllzQWNTcnV1c0lRRzAKLVlXb205MXlUYjNyVmJOdVU2R0Y4b2c2WXh2bkhlYXdqSG92TEJrTUV3WS9XWG9kRkVhSGpGdFlwMHo5Q2J3cGoKLUZLMllBQUFBQUE9PQotLS0tLS1FTkQgUEtDUzctLS0tLQpkaWZmIC0tZ2l0IGEvY3J5cHRvL3BrY3M3L3QvbXNpZS1zLWEtZSBiL2NyeXB0by9wa2NzNy90L21zaWUtcy1hLWUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwNjc3OTQuLjAwMDAwMDAKLS0tIGEvY3J5cHRvL3BrY3M3L3QvbXNpZS1zLWEtZQorKysgL2Rldi9udWxsCkBAIC0xLDkxICswLDAgQEAKLQotTUlBR0NTcUdTSWIzRFFFSEE2Q0FNSUFDQVFBeGdnSENNSUhNQWdFQU1IWXdZakVSTUE4R0ExVUVCeE1JU1c1MFpYSnVaWFF4RnpBVgotQmdOVkJBb1REbFpsY21sVGFXZHVMQ0JKYm1NdU1UUXdNZ1lEVlFRTEV5dFdaWEpwVTJsbmJpQkRiR0Z6Y3lBeElFTkJJQzBnU1c1awotYVhacFpIVmhiQ0JUZFdKelkzSnBZbVZ5QWhCZ1FKaUMzcWZiQ2JqZGo1SU5ZTG5LTUEwR0NTcUdTSWIzRFFFQkFRVUFCRUNqc2NhUwotRzBVMjk5ZnFpRUFnVHFURlFCcDhBaTZ6empsNTU3Y1ZiM2s2ejRRWjdDYnFCalNYQWpMYmg1ZTdTNUhkL0ZyRmNEbnhsMUthMDZoYQotVkhHUE1JSHdBZ0VBTUlHWk1JR1NNUXN3Q1FZRFZRUUdFd0pCVlRFVE1CRUdBMVVFQ0JNS1VYVmxaVzV6YkdGdVpERVJNQThHQTFVRQotQnhNSVFuSnBjMkpoYm1VeEdqQVlCZ05WQkFvVEVVTnllWEIwYzI5bWRDQlFkSGtnVEhSa01TSXdJQVlEVlFRTEV4bEVSVTFQVGxOVQotVWtGVVNVOU9JRUZPUkNCVVJWTlVTVTVITVJzd0dRWURWUVFERXhKRVJVMVBJRnBGVWs4Z1ZrRk1WVVVnUTBFQ0FnUnVNQTBHQ1NxRwotU0liM0RRRUJBUVVBQkVDc3lIWFoxeGFpdjBVUVJ2T21WWXNhRjM4QUwyWFg3NXd4YkNzejUvd09nN2czUlA0YWljWnhhUjRzQm9nMAotZjJHMW85b20vaHUrQTBySVlGL0w0L0dVTUlBR0NTcUdTSWIzRFFFSEFUQWFCZ2dxaGtpRzl3MERBakFPQWdJQW9BUUlzb3pRcm53agotY2MyZ2dBU0NCQUFRei9MUG9KZS8raVlXZVR3U2ViejZROVVlS1p6UTJVV203R0x0RU0zczNjOVNDdnBta3dJUmRFaExqV2FCSk15SQotRGlMN3QxSTF2TWY5aW5COExYZ0FjSUVZa3BOU2NqUzhFUkE5RWJiN2llTktTQmc3dzdCOEFUSEZ4TFNsREFEcVJnb1pyQjFDdGZnZgoteGltcDNFZ3hUZ25odHlRaFp4WFc3a0JReUZSd3VtcGxySlhPcDdhbGJQN0lvdGhyT0tuY3czMElKVDFmd1B4V05NSXRJOWp1WEYwVQotQ2JXVlNqUHpHQm80K1hOWE12VU82TXBsT1FFei95d0VROUU4T1pBUWV4MVp3OXFxNXBwc1hCMnBNc1lWNXNMSkdpa3VrTVlLcXVpegotM1lLK3RONko4YWhMY0RVcytWR3dxdlppMTdncEJUbGJFUCtabVhKcG5PNjN0MXlURUIwVjVBWmNSS1dVT2h6bENCTTVZVWFncU5vWQotY3BzbVN2T0s2Yll6a1VLT3J6V3BEQ0F0R1ovRHZ1bDVkVFpabXhzMldwTStpeWVIWE14TzNodXk4SzFiclBUcXQxZjFzSGh1cTFqRAotMWVYZWRhQ2pJZ1VXOXFWMTh2TkFRQ29mL1liNlQvMWZ4enRmL2pEN3BQTFFKKzdMSmtLQ0FFSEdjYWl6cG9LcWhZY3R0YUVoTHExRwotTytPaHFmN3lGZWdNZFRKM3d3UDMyNHc1WllTVTVmTG8yWjM0L0VkZjZFR3ZYeVRJcVZmQW1FQkFMZDZKR1ZkTjVHbFlZVHhyTCtlTwotUDgwWjRhbzRZS294d0VtUnA1Ym1Rc1E4QjI5UWhPRkttQzZlaUc1Qjk2cUxNdHA3Wm11MWdyRE54VGQ2T1hTaFdWd1lBUkQwL0IxUAotU3kwUEFmazlHYjRmQWtPOWZaSkRRWVo3czBtTTVpT1BFZVNSNzgyMFRvbE9iK0tmUmFiTEE5ZDcxNGpzYzJqRXlrS2xwUDY2Qmg0agotYUNzeXFKMHVVUWNFOFNuenJLQXFHd2dXaUNHUXBpVGErSEJpUDZlUmxSR09LUWo1WTA2dmNOeDZJamE0Y0dlNit5Q044SFY4dENZMAotb2taSzk4TlFDbDV0NzlSL1pCMmMzTnZCSkgrL2czdWxVNDhpa1QzdFZtRHhFM21PWm9mWnlHRkVNOTlQK1lDTVNjTER4VGwzaHpHeQotMFlrSThVODU1UDdxT0FiY0ZmaDJUNW4rTFNFTHdMaGJreW1FZlpUOTE3R1dUZm15cEJXTXZKeDBXSGVEaEt3UVlQZHpiS2dXRVRuYwoteWVLYXNhQ1crb0xkaEJ3cmQ2V3MycjRNQThjd2lZWERMYndZbUN4SkE4VkYrKzhrdWJGMkhKT2pTeU1CUytRVDJQU1YvMEQ5VVdvaQotVmZrN1I0T3ZXQkpWdnE3blYrbFhTME81aWdqRXh4bG14MU9hQmZnNytDci9NYks0elZOcktTSm44Mk5uS0t0NkxDNlJhVG12RllheQotMHNERnhRN1hvK1RoNnRETkttS1dKdDZLZWdmamMrcVRXSlRLYjNrTCtVSTh2UzB6VEx5MStNL3JaNGVrb3MvSmlTNXJZSWNBc3d2ZwotNThrQmdwLzByYzZ1cEJlV2pCYUs1TzBhTEFlQlFmTHVsbzFheFdYMDRPU1ZLbVllb0FsdHlSNlVPOU1FM2FjdXJReWc3VGEyNHlxTwotd2hpL1BySWFFaU83ZHNXdkZ0enNzaFZ6QkxpYzAyTmxBa1BrTVV6bGlQWW5aSFdRZ2xEQVZ4TDVLMnFodksxT0ZDa1FwSWdCc0JETQotNktZUkwvbWtCSUlFQUxJbDkyN3JJa2FOMzcvQlFJY3hMY1NhMDVZZkMwSGwzbXhXRVN0MUEwRDRsQTM3QTlTOEViWW1EZkFZbE1jMAotM0hoWkdkWkV0YXdmcEpGeURIek5aY2VOV0JjaDZueGVOWkNZNFlGZHNienVHUzBSS3B3TkE5Uy9jek9KNHA5eW1CQ3h1aEdlcEkzVQotUEtiQzhDNzQ5V3d3MS93TWRBb3QxbitLN00vUEJHUjhoV21hSDVTUzdVM3lNd0FCMWZxMk5Eang0dXIrVW0rTWNsU2ROMDFNRFh6RwotRU8rZUFvMXBkQVk4NDc5MjM0bDhkQjJZVkFoWjFabEo0S21icU1LSnJHSlhuUVVFWVM2L2NURFJqc1VvY3NvVzd1R2cxY2kyR2lIYQotcWpsa2ZwQmZpZTNTZGhGVy9LOGh3QUgwSEFMczU2b0ZONjZ3VWtQL0FhSkFQZklVTmhSNlJwSEt6Wjl6Q0M0Mm9CMm1OYXdRUk1uRgotRVRCbDFzL1N3TXhMS1JwN2pBZktzNE5aeFNZNkk5ei8yZFRwelMzdHNITWp4VkR1eGtvbHZSTldCSUxFTWVMMUNCdmlwMkhobW9VdwotL1N6NU5EZ3l6azFhUUxWNkRRTkoyUlpMTVpEUkN0U3daU0J1NmxoaFNnVEpHYXpQMCtOYnFYWEM1YVFUcnFyRkljV3lEWHorQURsZQota3N6ellNL2dTYVFUQ0FMVHdmRERhVTlFazN4VmdXK1hCdEV4dEozVSswQU4zbDBqODZyVUlkSXZwNmVXZHhXUXF2OUx0cG9vcktNRAotS2ZVYzVQWVYwOVoxSmdzVDRYNTFaenErNzRsNWR6N3VkSU03VU5iZFRwbVJtOVBEajNUVWJHQ3ZOUjlocU9FR1RMYmt2YjFaUjI0YQotaDZ1R1JsMnpuQjI1SXBEQUdSaE5SYjlpcy9wTzJ0dkh3SFRETU9qcmd2WkcvcE52WGdTVXh6MHBSalVqWEljcUJlMlgyZ2NRZmVhbAotcjhnWTc2bzgzV0VHTDZPRHJ5Vjl2VFFWSHQ1MitpemdwWW9CWmFWbHBncWJabDU0YytPRTBaeGY5UndYd0RiY1l1NUt1NUUwTVBMMAotcVVqYzB5MitZNkU0UDViQVdhWkdNR1QrT1JreVZVemNhV21NLytYbE83UEVSNXdyV2xDSU1aQ1gxTC9udmlvWTBxMENLcUFMbjdESgotUVUrcWVuYndyYjZ1d1M3dU5aWTZWODZzMGFEWXBVN3lSeXF4QzVTYnV5TkpiMDJnZHhVQ2dwSXNjRmFNVWpNVlJtbDRNNEJJalgvYgotVStIZ0hvVk1VbThTbk45Z1JjVDJpelByZ09HVmNNVEpqZmVuem9DS29DUG85UmpnR01jdGdCNER2S2FtRXJOVTdPcmlsSWZ1b3F6RQotUE5TZVA5U1B3L3prRG1Odk1lYk00OTlXZTlDVm5zSFVXcUYwMC9aSldvdWE3NyswZjFiTFMvdG1jaTFKQnZJY01vLzRTSnZnSCtLRgotbzBnaWpQOWdxQVBkNWlDT25wbkpsSFVxUkl5bTQyU215S0VEdXpkU3dYS2pBUjZqN3VYZGEzOUp5TUpyOGdHekVzdTBqWVJrQW1qMQotWWRpcXdLWFVjTE1rY2oxQUtlVS9QeFRVVncwWUtzdi9yb3dyUFl3dzN4UVVXcU5pdnJYQjdHQ0hFM0J6c1lOZEhzbXppYUdJWFFiQQotK0VCSGRrdUtyTThCY0MrZnhoRi9sL0tVeG5nc0QxRTc1SWNVdjh6RkRGK3NrNENCWUhxa3M5UzRKWWxjdWJ1aXpxc0lMYmRHeklNTgotWjd3MzRrMFhUK3NFZ2dRQXl6cjhNSGVJSkdzVCtBWW5acjA4UGVUYnlyMDFKRW9UN2xQWVQ2UHpYNEY2M1FLS0RsK21CK1B3TE16WQotQ1hyeFpjVW11YXk2L01WOHcvZjVUNnZRWGRvU3c1cHVXb2RCWXdWUmVZaDFJYUVOK2ppVGFwbTlZQlZtY0lzSlBPNmFiSG93a25TVgotT1dTdlNUMEF0QVg1N2ZGT1Rja20rZmFjZkJLOXM5VDFsVVVnRjQ0Qmg1ZThmOXFLcWZPVjQ0bnFkQ09FeVVtMERhbzQ5N2llTjRFZwotWEJMTnZPWlk5K2lyTWlYanAwbGN5RnZockpPY3pmeUNyOUVpaWFpSDFUZlN6S0dLc2YyVzg0aUtuL0pINngyZU9vN3hqd0o0MEJRRAotYzZTMWNVTkV1cUJoUDZieTBGaW9PWFlPS1Z5aWZweGs4NEViK0YvNENOZFRKVHZDUHdzaWVnZGZzWC9RNTNEdktWdFhwOVljYW01SgotVG1LUkhYSy9iTUhGNE9OdjNwL08va24vQnFSeCtmYmJQMmVNWDhaMUYvbHRIS2ZwNkIrMDZIbGpVd1FMQkpzOVh0Q2ZxSDVaZ2R6OQotZ2FkNVdaRjV5a0ZBcm1IRGdlRmxnZ2d2Ylo3ejl2cW5qTi9USDY4VHhKemF1WVE1dkxIUTZ3R1hpazQvNHVxNy9UcU5taHhsUUVNNAotelZrd3NuMjAzYlVtS0x5eit5bDF6SXREcG41enkxdVhmR285OXJCZFV6ZGJkRTlMbUVGUE1hRnNhSGQ0YThvRGFVcm9EN0ZnQ2JlRAotSkpWbGQzYWM2RjgrM1FiRXhQczQ4T3JnQTFrSTMvVXdYcjUybGRqaVl6VExmQUdSOUJqcU5GVHc0NUZVSHVNZjhURU01aGNIeDU2dwotOTVlS0FxcmFEazI4bzlrK00yVUtwY21yZGxXb1d6ZHFWVkZlV0dwTTh4OVk5TnQwbGYvNFZVUWdyWGpxVGtVQ1FrSnlxVGVUZUdnSAotcm4zUUJrMlhBZ3B4WmhhSnMzSW5XMEJrQWxCbUs5OWNNaW5VaUplRnQ1YTRwNXdQZVhyVnVoNlY5bTdNcGw5aHpwb2dnKytFWnFhaAotZnp6Tm5EZ3hPWmZXMzQyRFgwNTJQZGdYbzBObmtoQ2swMDVMdkZ0Nk0ybVJuMGZMZ05WZnlVWlpvT3A4Y081WldiaFhYbHJocmdVdAotajJ6S1BLNlE5NFpqNGtkWEhCR3BBa3JCOFpRNEVHR09ERTBEcXVzbThXUFh6Qis5MjM2SU1IUFU3bEZieWpCckZOSTdPNGpnK3FSSQotSXBpKzd0WDBGc2lscUVibWpHK09Qd2haWHJkcVVxeUYrcmpLUXVTUnE3bE9lREI0YzZTMmRxNE9PbnkwMWk1SENiYnljOVV2U0hSbQotaE9oR3FVbHpIeUhMbzNXN2orMjZWL01oa0RYSitUeCtxZnlsdjRwYmxpd1R0ZUpKaitDWnd6anYyOXFiNmx4WWkrMzhCdzEwRVJhcAotbThVQ1JGQmVjVk43eFhsY0lmeWVBbDY2NlZpN0VCSlp2M0VkRk5yeDFubEx3TTY1bll5YTd1ajZMN0l3SldvdElVeDhFMFhIMC9jVQoteFMvZEc4YnhmOUwvODY1Mmg1Z3EzTEkrd1ROR3VFWDBETXV6N0JHUUcrTnRnYWJyWjZTc0tHdGhHYTdlVUxUcHowTWNXVExSVTB5LwotL3RrY2twbTVwRG5YU0ZiSU1za3d3akVDejgyVVpCU1BwaWdkTi9Qamc1ZCsweVd1N3MzVkp4dzRFTldQUHB6WitqN3NPWG1kdm45UAotTzF0UWQ2MEVPKzNhd0FTQ0JBQVpRdldWMy95SjZGeFB0dGJQK3FlVVJwSm9QRVpmcE4yVVlabWQ4SHF0UjBZYmFPWjZSbG45bnZwZAotSzlmeWxYZHc5ejJ4ZUNiakRXVXR0SkI0VnFaeEdKTThlQ1RDMVZEVnlBT3NRNW43U1k1NWRNa1FiVStvNFovNEo1bTgrd3o1MEJCSQotTGZydUwxZVo2L0NGNkNkdnhWUmlKMTBzWGMwVG4yc1ZNWHFrdzdBZHAxR1lvQ0k5YzZWRlNGSzc0K24reTdMVkZRNUhCbmJReUtKYwotZHZkTE9Yd1pPUGFGSEM1VU5YUm1PcGN3ZFBxeVhVZSt4SXNPTVliemRsQW5JOWVHRE5lUkRrdFVhL1JoMENiWkN4am1Kem9aRVlPRQotWmpzWVpsRWZwMUtiNjF0OHo0bTI4aEdMRWc4OFQxSWhteGEySGVVV2VzMVJwbWdJT1ArLzJMYjNzbWovbC9mcFN1NGdhYkZneUNBVgotSDVIZENZTVNjVXY4U1Z1NTUrdHBlTzhFTG9ISFFVWFY0cnIwODRPNGJ1ZHpoZ05TT1B5TEdEbDVzZkRVWGl5dXNQQ3hTNEpWTy9LWQotNlYyUXJ0Zy9xMnd0bVhwRWtabkdUK1FpM1dEend0NFc4MWFsenRuWU1QMTdvR0xteFg3MUtWOU9FaU1aakk0V2FhR3QrT09JTkx0UgotcWVmaW9aMU5JMkwxczVNMHR5YndUc3lVOVdFUk0rM3BVd1hJZkpWc2JNWlJsTmFPMk9vZ2NIYmFSNFVXdmhPaiszQ1RHMXNUaGlZUQotTXhNbnAxUnBxeDNuaHl6cUxPM1RScmtZdnhuQTNjZFBCbjlFZXFwZ0JNZzdYM2hDaU1WM0ZsNWNqL1dPTWh0SFlnWTdCZ2VDWG80NgotRUZWWjQrV3JvR1o0NnhHaVJEaUlibG84YnpMZDdRQ3h2dWt6eHkzbVVEZ3NaUThwZHM0TjI4d2VTVWhCazVNQVBiZkJwUnZYVVZKeAotTWhLcVh1Y1FVMU1kMXFTR0xidXVJUXV6OXBBR3AxSkZVeC92RWtDZ203NGRhU29WV0NadUIrMVpFNGY0OGNsdnJCajUxeE1OZjhDUAotRUZFN3Z5U3pWYjZYMkgxaTVYM1orWTNEZEljV3c0WTJGQ2xmY0prNE13cThDcTJHQUxHRkVnZTlZU0VFOVlteXVVNk9GZVUwSUNvbgotaVhBZ1o3MlNNOGZCd0pQcnVMRmJkc05ZS1crb0FmbVBpc1hTV01jWm1kU2JmazBHWXYrdkt0dTNlZWdTYld3MVVzQ1Z0Wk9oOUU1WgotdVE4M2w1OUNCcU85c1YvU0ZVM1dyckowcU5XeHJtWHU5bkpuNVFmNWlDUm9GR1lOSFlIa0lHNUZTNk4wMEdFRFp4R2t4bXJvMmQrKwotQWRqNUxWSGMvYjFjWVdtcnV4K2pFcUk4Wks4Y3lUQjBYTWJCQS9IWWJ4OU5YYXpyN3puUDQvTWx2M3BaVG9FY1l0K2xnTEhBQXJ0VQotQWRoeWJoYkxJd05NcTBncjZFd3REa2xCYTNuczRXeC9ySlU4SDdMR3M2Z1Y4dXFlYVNrZXR2K256K3NRaGZjdHhaMXJ4KzVxelhmeQotRk9RVnBPMjNLRFF1bkJpMUJsOWs2MURpNHE5SldjeUFEQlhQSFhKenA3bUw4Rms3emR2TUFFZnVFRDFwaGRSbTZHZ0RZb1lVczR5UQotSXJoU2pGbFd5azdoVDg0NzV4azNCSXYrK29idldTQXYvMytwRjZBNlUyUlhEQ2hWbW5HMEpuUGE5d1lZdGR6Qm1MZlpLQmpYK0RqRAoteUVNc3VoUHNDenVONFI2dEJJSUJXQ1ZSS21Ld2RrYXRtcHNRQmdEdzQ4dTAvQXJmZmw1L0RSbFM5ZWUrUWZmRmVjVWl0RGRDSytrdAotWDVMMmZHWXJMNWc2U2x0bmNNSWVWMXB0eDRudVNqQy9POTQ0cTFLWXRxdlFpUEZXSnFFWElSTU5iYllPQzQ3c2pMemEwdEVGcmltTgotd3hjcldHU3pzeTVSOWJlRlExYUhQY01yRFdmQ292aU5SazJxUHR4dUtJQzVRazJadU9tSkxqQ2lMd1VHRWIwLzFNcHp2M01xUWE3ZAotbVJheVhnM0RaV0pQYWp4Tlp2NmVTMzU3RWxNdndHUW1xYWZiMm1sUUp3V0xzZzltOVBHN3VxRW95cnFTYzZNaXVZK2ljTEVGaWI5agotT2ZSUXJ4NzByVFNLVWZUcjRNdFAwYVpaQWVmakNycFZJeVRla2hGRE9rME5teDA1N2Vvbmx5R2dtR3BsNS9Vbyt0MUoxWjExWWEvbAotYk5iZm1lYlJJU0plVFZXMEk4RmhzZUFaTUkxR1N3cC9sdWRKeFNMWU9neVJraCtHWDEzNE1leE5vN085RjFTeExDZldhU0c5RmMzcwotNWlmeTA0dWE5L3Q4U0dyWVpQbS9sM01rQUFBQUFBQUFBQUFBQUE9PQotCi0KZGlmZiAtLWdpdCBhL2NyeXB0by9wa2NzNy90L21zaWUtcy1hLWUucGVtIGIvY3J5cHRvL3BrY3M3L3QvbXNpZS1zLWEtZS5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU1ZGJkOGYuLjAwMDAwMDAKLS0tIGEvY3J5cHRvL3BrY3M3L3QvbXNpZS1zLWEtZS5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSwxMDYgKzAsMCBAQAotLS0tLS1CRUdJTiBQS0NTNy0tLS0tCi1NSUFHQ1NxR1NJYjNEUUVIQTZDQU1JSVRVQUlCQURHQ0FjSXdnY3dDQVFBd2RqQmlNUkV3RHdZRFZRUUhFd2hKCi1iblJsY201bGRERVhNQlVHQTFVRUNoTU9WbVZ5YVZOcFoyNHNJRWx1WXk0eE5EQXlCZ05WQkFzVEsxWmxjbWxUCi1hV2R1SUVOc1lYTnpJREVnUTBFZ0xTQkpibVJwZG1sa2RXRnNJRk4xWW5OamNtbGlaWElDRUdCQW1JTGVwOXNKCi11TjJQa2cxZ3Vjb3dEUVlKS29aSWh2Y05BUUVCQlFBRVFLT3h4cEliUlRiMzErcUlRQ0JPcE1WQUdud0NMclBPCi1PWG5udHhWdmVUclBoQm5zSnVvR05KY0NNdHVIbDd0TGtkMzhXc1Z3T2ZHWFVwclRxRnBVY1k4d2dmQUNBUUF3Ci1nWmt3Z1pJeEN6QUpCZ05WQkFZVEFrRlZNUk13RVFZRFZRUUlFd3BSZFdWbGJuTnNZVzVrTVJFd0R3WURWUVFICi1Fd2hDY21selltRnVaVEVhTUJnR0ExVUVDaE1SUTNKNWNIUnpiMlowSUZCMGVTQk1kR1F4SWpBZ0JnTlZCQXNUCi1HVVJGVFU5T1UxUlNRVlJKVDA0Z1FVNUVJRlJGVTFSSlRrY3hHekFaQmdOVkJBTVRFa1JGVFU4Z1drVlNUeUJXCi1RVXhWUlNCRFFRSUNCRzR3RFFZSktvWklodmNOQVFFQkJRQUVRS3pJZGRuWEZxSy9SUkJHODZaVml4b1hmd0F2Ci1aZGZ2bkRGc0t6UG4vQTZEdURkRS9ocUp4bkZwSGl3R2lEUi9ZYldqMmliK0c3NERTc2hnWDh2ajhaUXdnaEdECi1CZ2txaGtpRzl3MEJCd0V3R2dZSUtvWklodmNOQXdJd0RnSUNBS0FFQ0xLTTBLNThJM0hOZ0lJUldCRFA4cytnCi1sNy82SmhaNVBCSjV2UHBEMVI0cG5ORFpSYWJzWXUwUXplemR6MUlLK21hVEFoRjBTRXVOWm9Fa3pJZ09JdnUzCi1Valc4eC8yS2NId3RlQUJ3Z1JpU2sxSnlOTHdSRUQwUnR2dUo0MHBJR0R2RHNId0JNY1hFdEtVTUFPcEdDaG1zCi1IVUsxK0IvR0thbmNTREZPQ2VHM0pDRm5GZGJ1UUZESVZIQzZhbVdzbGM2bnRxVnMvc2lpMkdzNHFkekRmUWdsCi1QVi9BL0ZZMHdpMGoyTzVjWFJRSnRaVktNL01ZR2pqNWMxY3k5UTdveW1VNUFUUC9MQVJEMFR3NWtCQjdIVm5ECi0ycXJtbW14Y0hha3l4aFhtd3NrYUtTNlF4Z3FxNkxQZGdyNjAzb254cUV0d05TejVVYkNxOW1MWHVDa0ZPVnNRCi0vNW1aY21tYzdyZTNYSk1RSFJYa0JseEVwWlE2SE9VSUV6bGhScUNvMmhoeW15Wks4NHJwdGpPUlFvNnZOYWtNCi1JQzBabjhPKzZYbDFObG1iR3paYWt6NkxKNGRjekU3ZUc3THdyVnVzOU9xM1YvV3dlRzZyV01QVjVkNTFvS01pCi1CUmIycFhYeTgwQkFLaC85aHZwUC9WL0hPMS8rTVB1azh0QW43c3NtUW9JQVFjWnhxTE9tZ3FxRmh5MjFvU0V1Ci1yVVk3NDZHcC92SVY2QXgxTW5mREEvZmJqRGxsaEpUbDh1alpuZmo4UjEvb1FhOWZKTWlwVjhDWVFFQXQzb2taCi1WMDNrYVZoaFBHc3Y1NDQvelJuaHFqaGdxakhBU1pHbmx1WkN4RHdIYjFDRTRVcVlMcDZJYmtIM3Fvc3kybnRtCi1hN1dDc00zRk4zbzVkS0ZaWEJnQkVQVDhIVTlMTFE4QitUMFp2aDhDUTcxOWtrTkJobnV6U1l6bUk0OFI1Skh2Ci16YlJPaVU1djRwOUZwc3NEMTN2WGlPeHphTVRLUXFXay9yb0dIaU5vS3pLb25TNVJCd1R4S2ZPc29Db2JDQmFJCi1JWkNtSk5yNGNHSS9wNUdWRVk0cENQbGpUcTl3M0hvaU5yaHdaN3I3SUkzd2RYeTBKalNpUmtyM3cxQUtYbTN2Ci0xSDlrSFp6YzI4RWtmNytEZTZWVGp5S1JQZTFXWVBFVGVZNW1oOW5JWVVRejMwLzVnSXhKd3NQRk9YZUhNYkxSCi1pUWp4VHpuay91bzRCdHdWK0haUG1mNHRJUXZBdUZ1VEtZUjlsUDNYc1paTitiS2tGWXk4bkhSWWQ0T0VyQkJnCi05M05zcUJZUk9keko0cHF4b0piNmd0MkVIQ3QzcGF6YXZnd0R4ekNKaGNNdHZCaVlMRWtEeFVYNzd5UzVzWFljCi1rNk5MSXdGTDVCUFk5SlgvUVAxUmFpSlYrVHRIZzY5WUVsVytydWRYNlZkTFE3bUtDTVRIR1diSFU1b0YrRHY0Ci1Ldjh4c3JqTlUyc3BJbWZ6WTJjb3Ezb3NMcEZwT2E4VmhyTFN3TVhGRHRlajVPSHEwTTBxWXBZbTNvcDZCK056Ci02cE5ZbE1wdmVRdjVRank5TFROTXZMWDR6K3RuaDZTaXo4bUpMbXRnaHdDekMrRG55UUdDbi9TdHpxNmtGNWFNCi1Gb3JrN1Jvc0I0RkI4dTZXalZyRlpmVGc1SlVxWmg2Z0NXM0pIcFE3MHdUZHB5NnRES0R0TnJiaktvN0NHTDgrCi1zaG9TSTd0MnhhOFczT3l5RlhNRXVKelRZMlVDUStReFRPV0k5aWRrZFpDQ1VNQlhFdmtyYXFHOHJVNFVLUkNrCi1pQUd3RU16b3BoRXYrYVN5SmZkdTZ5SkdqZCsvd1VDSE1TM0VtdE9XSHd0QjVkNXNWaEVyZFFOQStKUU4rd1BVCi12QkcySmczd0dKVEhOTng0V1JuV1JMV3NINlNSY2d4OHpXWEhqVmdYSWVwOFhqV1FtT0dCWGJHODdoa3RFU3FjCi1EUVBVdjNNemllS2ZjcGdRc2JvUm5xU04xRHltd3ZBdStQVnNNTmY4REhRS0xkWi9pdXpQendSa2ZJVnBtaCtVCi1rdTFOOGpNQUFkWDZ0alE0OGVMcS9sSnZqSEpVblRkTlRBMTh4aER2bmdLTmFYUUdQT08vZHQrSmZIUWRtRlFJCi1XZFdaU2VDcG02akNpYXhpVjUwRkJHRXV2M0V3MFk3RktITEtGdTdob05YSXRob2gycW81Wkg2UVg0bnQwbllSCi1Wdnl2SWNBQjlCd0M3T2VxQlRldXNGSkQvd0dpUUQzeUZEWVVla2FSeXMyZmN3Z3VOcUFkcGpXc0VFVEp4UkV3Ci1aZGJQMHNETVN5a2FlNHdIeXJPRFdjVW1PaVBjLzluVTZjMHQ3YkJ6SThWUTdzWktKYjBUVmdTQ3hESGk5UWdiCi00cWRoNFpxRk1QMHMrVFE0TXM1TldrQzFlZzBEU2RrV1N6R1EwUXJVc0dVZ2J1cFlZVW9FeVJtc3o5UGpXNmwxCi13dVdrRTY2cXhTSEZzZzE4L2dBNVhwTE04MkRQNEVta0V3Z0MwOEh3dzJsUFJKTjhWWUZ2bHdiUk1iU2QxUHRBCi1EZDVkSS9PcTFDSFNMNmVubG5jVmtLci9TN2FhS0t5akF5bjFIT1QyRmRQV2RTWUxFK0YrZFdjNnZ1K0plWGMrCi03blNETzFEVzNVNlprWnZUdzQ5MDFHeGdyelVmWWFqaEJreTI1TDI5V1VkdUdvZXJoa1pkczV3ZHVTS1F3QmtZCi1UVVcvWXJQNlR0cmJ4OEIwd3pEbzY0TDJSdjZUYjE0RWxNYzlLVVkxSTF5SEtnWHRsOW9IRUgzbXBhL0lHTytxCi1QTjFoQmkramc2OGxmYjAwRlI3ZWR2b3M0S1dLQVdXbFphWUttMlplZUhQamhOR2NYL1VjRjhBMjNHTHVTcnVSCi1ORER5OUtsSTNOTXR2bU9oT0QrV3dGbW1SakJrL2prWk1sVk0zR2xwalAvbDVUdXp4RWVjSzFwUWlER1FsOVMvCi01NzRxR05LdEFpcWdDNSt3eVVGUHFucDI4SzIrcnNFdTdqV1dPbGZPck5HZzJLVk84a2Nxc1F1VW03c2pTVzlOCi1vSGNWQW9LU0xIQldqRkl6RlVacGVET0FTSTEvMjFQaDRCNkZURkp2RXB6ZllFWEU5b3N6NjREaGxYREV5WTMzCi1wODZBaXFBajZQVVk0QmpITFlBZUE3eW1waEt6Vk96cTRwU0g3cUtzeER6VW5qL1VqOFA4NUE1amJ6SG16T1BmCi1WbnZRbFo3QjFGcWhkTlAyU1ZxTG11Ky90SDlXeTB2N1puSXRTUWJ5SERLUCtFaWI0Qi9paGFOSUlvei9ZS2dECi0zZVlnanA2WnlaUjFLa1NNcHVOa3BzaWhBN3MzVXNGeW93RWVvKzdsM1d0L1NjakNhL0lCc3hMTHRJMkVaQUpvCi05V0hZcXNDbDFIQ3pKSEk5UUNubFB6OFUxRmNOR0NyTC82Nk1LejJNTU44VUZGcWpZcjYxd2V4Z2h4TndjN0dECi1YUjdKczRtaGlGMEd3UGhBUjNaTGlxelBBWEF2bjhZUmY1ZnlsTVo0TEE5Uk8rU0hGTC9NeFF4ZnJKT0FnV0I2Ci1wTFBVdUNXSlhMbTdvczZyQ0MyM1JzeUREV2U4TitKTkYwL3J5enI4TUhlSUpHc1QrQVluWnIwOFBlVGJ5cjAxCi1KRW9UN2xQWVQ2UHpYNEY2M1FLS0RsK21CK1B3TE16WUNYcnhaY1VtdWF5Ni9NVjh3L2Y1VDZ2UVhkb1N3NXB1Ci1Xb2RCWXdWUmVZaDFJYUVOK2ppVGFwbTlZQlZtY0lzSlBPNmFiSG93a25TVk9XU3ZTVDBBdEFYNTdmRk9UY2ttCi0rZmFjZkJLOXM5VDFsVVVnRjQ0Qmg1ZThmOXFLcWZPVjQ0bnFkQ09FeVVtMERhbzQ5N2llTjRFZ1hCTE52T1pZCi05K2lyTWlYanAwbGN5RnZockpPY3pmeUNyOUVpaWFpSDFUZlN6S0dLc2YyVzg0aUtuL0pINngyZU9vN3hqd0o0Ci0wQlFEYzZTMWNVTkV1cUJoUDZieTBGaW9PWFlPS1Z5aWZweGs4NEViK0YvNENOZFRKVHZDUHdzaWVnZGZzWC9RCi01M0R2S1Z0WHA5WWNhbTVKVG1LUkhYSy9iTUhGNE9OdjNwL08va24vQnFSeCtmYmJQMmVNWDhaMUYvbHRIS2ZwCi02QiswNkhsalV3UUxCSnM5WHRDZnFINVpnZHo5Z2FkNVdaRjV5a0ZBcm1IRGdlRmxnZ2d2Ylo3ejl2cW5qTi9UCi1INjhUeEp6YXVZUTV2TEhRNndHWGlrNC80dXE3L1RxTm1oeGxRRU00elZrd3NuMjAzYlVtS0x5eit5bDF6SXRECi1wbjV6eTF1WGZHbzk5ckJkVXpkYmRFOUxtRUZQTWFGc2FIZDRhOG9EYVVyb0Q3RmdDYmVESkpWbGQzYWM2RjgrCi0zUWJFeFBzNDhPcmdBMWtJMy9Vd1hyNTJsZGppWXpUTGZBR1I5QmpxTkZUdzQ1RlVIdU1mOFRFTTVoY0h4NTZ3Ci05NWVLQXFyYURrMjhvOWsrTTJVS3BjbXJkbFdvV3pkcVZWRmVXR3BNOHg5WTlOdDBsZi80VlVRZ3JYanFUa1VDCi1Ra0p5cVRlVGVHZ0hybjNRQmsyWEFncHhaaGFKczNJblcwQmtBbEJtSzk5Y01pblVpSmVGdDVhNHA1d1BlWHJWCi11aDZWOW03TXBsOWh6cG9nZysrRVpxYWhmenpObkRneE9aZlczNDJEWDA1MlBkZ1hvME5ua2hDazAwNUx2RnQ2Ci1NMm1SbjBmTGdOVmZ5VVpab09wOGNPNVpXYmhYWGxyaHJnVXRqMnpLUEs2UTk0Wmo0a2RYSEJHcEFrckI4WlE0Ci1FR0dPREUwRHF1c204V1BYekIrOTIzNklNSFBVN2xGYnlqQnJGTkk3TzRqZytxUklJcGkrN3RYMEZzaWxxRWJtCi1qRytPUHdoWlhyZHFVcXlGK3JqS1F1U1JxN2xPZURCNGM2UzJkcTRPT255MDFpNUhDYmJ5YzlVdlNIUm1oT2hHCi1xVWx6SHlITG8zVzdqKzI2Vi9NaGtEWEorVHgrcWZ5bHY0cGJsaXdUdGVKSmorQ1p3emp2MjlxYjZseFlpKzM4Ci1CdzEwRVJhcG04VUNSRkJlY1ZON3hYbGNJZnllQWw2NjZWaTdFQkpadjNFZEZOcngxbmxMd002NW5ZeWE3dWo2Ci1MN0l3SldvdElVeDhFMFhIMC9jVXhTL2RHOGJ4ZjlMLzg2NTJoNWdxM0xJK3dUTkd1RVgwRE11ejdCR1FHK050Ci1nYWJyWjZTc0tHdGhHYTdlVUxUcHowTWNXVExSVTB5Ly90a2NrcG01cERuWFNGYklNc2t3d2pFQ3o4MlVaQlNQCi1waWdkTi9Qamc1ZCsweVd1N3MzVkp4dzRFTldQUHB6WitqN3NPWG1kdm45UE8xdFFkNjBFTyszYXdCbEM5WlhmCi0vSW5vWEUrMjFzLzZwNVJHa21nOFJsK2szWlJobVozd2VxMUhSaHRvNW5wR1dmMmUrbDByMS9LVmQzRDNQYkY0Ci1KdU1OWlMyMGtIaFdwbkVZa3p4NEpNTFZVTlhJQTZ4RG1mdEpqbmwweVJCdFQ2amhuL2dubWJ6N0RQblFFRWd0Ci0rdTR2VjVucjhJWG9KMi9GVkdJblhTeGR6Uk9mYXhVeGVxVERzQjJuVVppZ0lqMXpwVVZJVXJ2ajZmN0xzdFVWCi1Ea2NHZHRESW9seDI5MHM1ZkJrNDlvVWNMbFExZEdZNmx6QjArckpkUjc3RWl3NHhodk4yVUNjajE0WU0xNUVPCi1TMVJyOUdIUUp0a0xHT1luT2hrUmc0Um1PeGhtVVIrblVwdnJXM3pQaWJieUVZc1NEenhQVWlHYkZyWWQ1Ulo2Ci16VkdtYUFnNC83L1l0dmV5YVArWDkrbEs3aUJwc1dESUlCVWZrZDBKZ3hKeFMveEpXN25uNjJsNDd3UXVnY2RCCi1SZFhpdXZUemc3aHU1M09HQTFJNC9Jc1lPWG14OE5SZUxLNnc4TEZMZ2xVNzhwanBYWkN1MkQrcmJDMlpla1NSCi1tY1pQNUNMZFlQUEMzaGJ6VnFYTzJkZ3cvWHVnWXViRmZ2VXBYMDRTSXhtTWpoWnBvYTM0NDRnMHUxR3A1K0toCi1uVTBqWXZXemt6UzNKdkJPekpUMVlSRXo3ZWxUQmNoOGxXeHN4bEdVMW83WTZpQndkdHBIaFJhK0U2UDdjSk1iCi1XeE9HSmhBekV5ZW5WR21ySGVlSExPb3M3ZE5HdVJpL0djRGR4MDhHZjBSNnFtQUV5RHRmZUVLSXhYY1dYbHlQCi05WTR5RzBkaUJqc0dCNEplampvUVZWbmo1YXVnWm5qckVhSkVPSWh1V2p4dk10M3RBTEcrNlRQSExlWlFPQ3hsCi1EeWwyemczYnpCNUpTRUdUa3dBOXQ4R2xHOWRSVW5FeUVxcGU1eEJUVXgzV3BJWXR1NjRoQzdQMmtBYW5Va1ZUCi1IKzhTUUtDYnZoMXBLaFZZSm00SDdWa1RoL2p4eVcrc0dQblhFdzEvd0k4UVVUdS9KTE5WdnBmWWZXTGxmZG41Ci1qY04waHhiRGhqWVVLVjl3bVRnekNyd0tyWVlBc1lVU0I3MWhJUVQxaWJLNVRvNFY1VFFnS2llSmNDQm52Wkl6Ci14OEhBayt1NHNWdDJ3MWdwYjZnQitZK0t4ZEpZeHhtWjFKdCtUUVppLzY4cTI3ZDU2Qkp0YkRWU3dKVzFrNkgwCi1UbG01RHplWG4wSUdvNzJ4WDlJVlRkYXVzblNvMWJHdVplNzJjbWZsQi9tSUpHZ1VaZzBkZ2VRZ2JrVkxvM1RRCi1ZUU5uRWFUR2F1alozNzRCMlBrdFVkejl2VnhoYWF1N0g2TVNvanhrcnh6Sk1IUmN4c0VEOGRodkgwMWRyT3Z2Ci1PYy9qOHlXL2VsbE9nUnhpMzZXQXNjQUN1MVFCMkhKdUZzc2pBMHlyU0N2b1RDME9TVUZyZWV6aGJIK3NsVHdmCi1zc2F6cUJYeTZwNXBLUjYyLzZmUDZ4Q0Y5eTNGbld2SDdtck5kL0lVNUJXazdiY29OQzZjR0xVR1gyVHJVT0xpCi1yMGxaeklBTUZjOGRjbk9udVl2d1dUdk4yOHdBUis0UVBXbUYxR2JvYUFOaWhoU3pqSkFpdUZLTVdWYktUdUZQCi16anZuR1RjRWkvNzZodTlaSUMvL2Y2a1hvRHBUWkZjTUtGV2FjYlFtYzlyM0JoaTEzTUdZdDlrb0dOZjRPTVBJCi1ReXk2RSt3TE80M2hIcTBsVVNwaXNIWkdyWnFiRUFZQThPUEx0UHdLMzM1ZWZ3MFpVdlhudmtIM3hYbkZJclEzCi1RaXZwTFYrUzlueG1LeStZT2twYlozRENIbGRhYmNlSjdrb3d2enZlT0t0U21MYXIwSWp4VmlhaEZ5RVREVzIyCi1EZ3VPN0l5ODJ0TFJCYTRwamNNWEsxaGtzN011VWZXM2hVTldoejNES3cxbndxTDRqVVpOcWo3Y2JpaUF1VUpOCi1tYmpwaVM0d29pOEZCaEc5UDlUS2M3OXpLa0d1M1prV3NsNE53MlZpVDJvOFRXYitua3QrZXhKVEw4QmtKcW1uCi0yOXBwVUNjRmk3SVBadlR4dTdxaEtNcTZrbk9qSXJtUG9uQ3hCWW0vWXpuMFVLOGU5SzAwaWxIMDYrRExUOUdtCi1XUUhuNHdxNlZTTWszcElSUXpwTkRac2RPZTNxSjVjaG9KaHFaZWYxS1ByZFNkV2RkV0d2NVd6VzM1bm0wU0VpCi1YazFWdENQQlliSGdHVENOUmtzS2Y1Ym5TY1VpMkRvTWtaSWZobDlkK0RIc1RhT3p2UmRVc1N3bjFta2h2UlhOCi03T1luOHRPTG12ZjdmRWhxMkdUNXY1ZHpKQUFBQUFBPQotLS0tLS1FTkQgUEtDUzctLS0tLQpkaWZmIC0tZ2l0IGEvY3J5cHRvL3BrY3M3L3QvbmF2LXNtaW1lIGIvY3J5cHRvL3BrY3M3L3QvbmF2LXNtaW1lCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZWU0YjU5Li4wMDAwMDAwCi0tLSBhL2NyeXB0by9wa2NzNy90L25hdi1zbWltZQorKysgL2Rldi9udWxsCkBAIC0xLDE1NyArMCwwIEBACi1Gcm9tIGFuZ2VsYUBjMi5uZXQuYXUgVGh1IE1heSAxNCAxMzozMjoyNyAxOTk4Ci1YLVVJREw6IDgzYzk0ZGQ1NTBlNTQzMjliZjk1NzFiNzIwMzhiOGM4Ci1SZXR1cm4tUGF0aDogYW5nZWxhQGMyLm5ldC5hdQotUmVjZWl2ZWQ6IGZyb20gY3J5cHRzb2Z0LmNvbSAocGxheS5jcnlwdHNvZnQuY29tIFsyMDMuNTYuNDQuM10pIGJ5IHBhbmRvcmEuY3J5cHRzb2Z0LmNvbSAoOC44LjMvOC43LjMpIHdpdGggRVNNVFAgaWQgTkFBMjc4MzggZm9yIDx0amhAY3J5cHRzb2Z0LmNvbT47IFRodSwgMTQgTWF5IDE5OTggMTM6MzI6MjYgKzEwMDAgKEVTVCkKLU1lc3NhZ2UtSUQ6IDwzNTVBNjc3OS40QjYzRTY0Q0BjcnlwdHNvZnQuY29tPgotRGF0ZTogVGh1LCAxNCBNYXkgMTk5OCAxMzozOTozNyArMTAwMAotRnJvbTogQW5nZWxhIHZhbiBMZW50IDxhbmdlbGFAYzIubmV0LmF1PgotWC1NYWlsZXI6IE1vemlsbGEgNC4wMyBbZW5dIChXaW45NTsgVSkKLU1JTUUtVmVyc2lvbjogMS4wCi1UbzogdGpoQGNyeXB0c29mdC5jb20KLVN1YmplY3Q6IHNpZ25lZAotQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvc2lnbmVkOyBwcm90b2NvbD0iYXBwbGljYXRpb24veC1wa2NzNy1zaWduYXR1cmUiOyBtaWNhbGc9c2hhMTsgYm91bmRhcnk9Ii0tLS0tLS0tLS0tLW1zOUE1ODg0NEM5NTk0OUVDQzc4QTFDNTRDIgotQ29udGVudC1MZW5ndGg6IDI2MDQKLVN0YXR1czogT1IKLQotVGhpcyBpcyBhIGNyeXB0b2dyYXBoaWNhbGx5IHNpZ25lZCBtZXNzYWdlIGluIE1JTUUgZm9ybWF0LgotCi0tLS0tLS0tLS0tLS0tLW1zOUE1ODg0NEM5NTk0OUVDQzc4QTFDNTRDCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNjaWkKLUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKLQotc2lnbmVkIGJvZHkKLQotLS0tLS0tLS0tLS0tLS1tczlBNTg4NDRDOTU5NDlFQ0M3OEExQzU0QwotQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LXBrY3M3LXNpZ25hdHVyZTsgbmFtZT0ic21pbWUucDdzIgotQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0Ci1Db250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0ic21pbWUucDdzIgotQ29udGVudC1EZXNjcmlwdGlvbjogUy9NSU1FIENyeXB0b2dyYXBoaWMgU2lnbmF0dXJlCi0KLU1JSUdIZ1lKS29aSWh2Y05BUWNDb0lJR0R6Q0NCZ3NDQVFFeEN6QUpCZ1VyRGdNQ0dnVUFNQXNHQ1NxR1NJYjNEUUVIQWFDQwotQkdzd2dnSlRNSUlCL2FBREFnRUNBZ0lFZmpBTkJna3Foa2lHOXcwQkFRUUZBRENCa2pFTE1Ba0dBMVVFQmhNQ1FWVXhFekFSCi1CZ05WQkFnVENsRjFaV1Z1YzJ4aGJtUXhFVEFQQmdOVkJBY1RDRUp5YVhOaVlXNWxNUm93R0FZRFZRUUtFeEZEY25sd2RITnYKLVpuUWdVSFI1SUV4MFpERWlNQ0FHQTFVRUN4TVpSRVZOVDA1VFZGSkJWRWxQVGlCQlRrUWdWRVZUVkVsT1J6RWJNQmtHQTFVRQotQXhNU1JFVk5UeUJhUlZKUElGWkJURlZGSUVOQk1CNFhEVGs0TURVeE16QTJNalkxTmxvWERUQXdNRFV4TWpBMk1qWTFObG93Ci1nYVV4Q3pBSkJnTlZCQVlUQWtGVk1STXdFUVlEVlFRSUV3cFJkV1ZsYm5Oc1lXNWtNUkV3RHdZRFZRUUhFd2hDY21selltRnUKLVpURWFNQmdHQTFVRUNoTVJRM0o1Y0hSemIyWjBJRkIwZVNCTWRHUXhFakFRQmdOVkJBc1RDVk5OU1UxRklEQXdNekVaTUJjRwotQTFVRUF4TVFRVzVuWld4aElIWmhiaUJNWldWdWRERWpNQ0VHQ1NxR1NJYjNEUUVKQVJZVVlXNW5aV3hoUUdOeWVYQjBjMjltCi1kQzVqYjIwd1hEQU5CZ2txaGtpRzl3MEJBUUVGQUFOTEFEQklBa0VBdUMzKzdkQWIyTGh1TzdndDJjVE04dnNOamhHNUpmRGgKLWhYMVZsL3dWR2JLRUVqME1BNnZXRW9sdmVmUWx4QitFendDdFIwWVo3ZUVDL1QvNEpvQ3llUUlEQVFBQm95Z3dKakFrQmdsZwotaGtnQmh2aENBUTBFRnhZVlIyVnVaWEpoZEdWa0lIZHBkR2dnVTFOTVpXRjVNQTBHQ1NxR1NJYjNEUUVCQkFVQUEwRUFVblNQCi1pZ3M2VE1GSVNUanc4Y0J0SlliOThjemdBVmtWRmpLeUpRd1lNSDhGYkRuQ3l4Nk5vY001NTVuc3lEc3RhdzhmS1IxMUtoZHMKLXN5ZDNpa2tyaERDQ0FoQXdnZ0c2QWdFRE1BMEdDU3FHU0liM0RRRUJCQVVBTUlHU01Rc3dDUVlEVlFRR0V3SkJWVEVUTUJFRwotQTFVRUNCTUtVWFZsWlc1emJHRnVaREVSTUE4R0ExVUVCeE1JUW5KcGMySmhibVV4R2pBWUJnTlZCQW9URVVOeWVYQjBjMjltCi1kQ0JRZEhrZ1RIUmtNU0l3SUFZRFZRUUxFeGxFUlUxUFRsTlVVa0ZVU1U5T0lFRk9SQ0JVUlZOVVNVNUhNUnN3R1FZRFZRUUQKLUV4SkVSVTFQSUZwRlVrOGdWa0ZNVlVVZ1EwRXdIaGNOT1Rnd016QXpNRGMwTVRNeVdoY05NRGd3TWpJNU1EYzBNVE15V2pDQgota2pFTE1Ba0dBMVVFQmhNQ1FWVXhFekFSQmdOVkJBZ1RDbEYxWldWdWMyeGhibVF4RVRBUEJnTlZCQWNUQ0VKeWFYTmlZVzVsCi1NUm93R0FZRFZRUUtFeEZEY25sd2RITnZablFnVUhSNUlFeDBaREVpTUNBR0ExVUVDeE1aUkVWTlQwNVRWRkpCVkVsUFRpQkIKLVRrUWdWRVZUVkVsT1J6RWJNQmtHQTFVRUF4TVNSRVZOVHlCYVJWSlBJRlpCVEZWRklFTkJNRnd3RFFZSktvWklodmNOQVFFQgotQlFBRFN3QXdTQUpCQUwrMEUyZkxlajNGU0N3ZTJBMmlSbk11QzN6MTJxSElwNkt5MXdvMnpaY3hmdDdBSStSZmtyV3JTR3RmCi1tZnpCRXVQckxkZnVsbmNDNVkxcE5jTThSVFVDQXdFQUFUQU5CZ2txaGtpRzl3MEJBUVFGQUFOQkFHU2JMTXBoTDZGNXBwM3MKLThvMFh5aDg2RkhGZHBWT3dZeDA5RUxMa3VHMTdWL1A5cGdJYzBFby9nRE1iTitLVDNJZGdFQ2Y4Uy8vcENSQTZSck5qY1hJeAotZ2dGN01JSUJkd0lCQVRDQm1UQ0JrakVMTUFrR0ExVUVCaE1DUVZVeEV6QVJCZ05WQkFnVENsRjFaV1Z1YzJ4aGJtUXhFVEFQCi1CZ05WQkFjVENFSnlhWE5pWVc1bE1Sb3dHQVlEVlFRS0V4RkRjbmx3ZEhOdlpuUWdVSFI1SUV4MFpERWlNQ0FHQTFVRUN4TVoKLVJFVk5UMDVUVkZKQlZFbFBUaUJCVGtRZ1ZFVlRWRWxPUnpFYk1Ca0dBMVVFQXhNU1JFVk5UeUJhUlZKUElGWkJURlZGSUVOQgotQWdJRWZqQUpCZ1VyRGdNQ0dnVUFvSG93R0FZSktvWklodmNOQVFrRE1Rc0dDU3FHU0liM0RRRUhBVEFiQmdrcWhraUc5dzBCCi1DUTh4RGpBTU1Bb0dDQ3FHU0liM0RRTUhNQndHQ1NxR1NJYjNEUUVKQlRFUEZ3MDVPREExTVRRd016TTVNemRhTUNNR0NTcUcKLVNJYjNEUUVKQkRFV0JCUXN0Tk1uU1YyNmJhOFBhcFFFRGhPMjF5TkZyakFOQmdrcWhraUc5dzBCQVFFRkFBUkFXOVhiOVlYdgotQmZjTmt1dGdGWDlHcjhpWGhCVnNOdEdFVnJqcnBrUXdwS2E3akhJOFNqQWxMaGsvNFJGd0RIZitJU0I5TnAzWjFXRFduTGNBCi05Q1dSNmc9PQotLS0tLS0tLS0tLS0tLS1tczlBNTg4NDRDOTU5NDlFQ0M3OEExQzU0Qy0tCi0KLQotRnJvbSBhbmdlbGFAYzIubmV0LmF1IFRodSBNYXkgMTQgMTM6MzM6MTYgMTk5OAotWC1VSURMOiA4ZjA3NmM0NGZmN2M1OTY3ZmQ1YjAwYzQ1ODhhODczMQotUmV0dXJuLVBhdGg6IGFuZ2VsYUBjMi5uZXQuYXUKLVJlY2VpdmVkOiBmcm9tIGNyeXB0c29mdC5jb20gKHBsYXkuY3J5cHRzb2Z0LmNvbSBbMjAzLjU2LjQ0LjNdKSBieSBwYW5kb3JhLmNyeXB0c29mdC5jb20gKDguOC4zLzguNy4zKSB3aXRoIEVTTVRQIGlkIE5BQTI3ODQ3IGZvciA8dGpoQGNyeXB0c29mdC5jb20+OyBUaHUsIDE0IE1heSAxOTk4IDEzOjMzOjE1ICsxMDAwIChFU1QpCi1NZXNzYWdlLUlEOiA8MzU1QTY3QUIuMkFGMzg4MDZAY3J5cHRzb2Z0LmNvbT4KLURhdGU6IFRodSwgMTQgTWF5IDE5OTggMTM6NDA6MjcgKzEwMDAKLUZyb206IEFuZ2VsYSB2YW4gTGVudCA8YW5nZWxhQGMyLm5ldC5hdT4KLVgtTWFpbGVyOiBNb3ppbGxhIDQuMDMgW2VuXSAoV2luOTU7IFUpCi1NSU1FLVZlcnNpb246IDEuMAotVG86IHRqaEBjcnlwdHNvZnQuY29tCi1TdWJqZWN0OiBzaWduZWQKLUNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L3NpZ25lZDsgcHJvdG9jb2w9ImFwcGxpY2F0aW9uL3gtcGtjczctc2lnbmF0dXJlIjsgbWljYWxnPXNoYTE7IGJvdW5kYXJ5PSItLS0tLS0tLS0tLS1tc0Q3ODYzQjg0QkQ2MUUwMkM0MDdGMkY1RSIKLUNvbnRlbnQtTGVuZ3RoOiAyNjc5Ci1TdGF0dXM6IE9SCi0KLVRoaXMgaXMgYSBjcnlwdG9ncmFwaGljYWxseSBzaWduZWQgbWVzc2FnZSBpbiBNSU1FIGZvcm1hdC4KLQotLS0tLS0tLS0tLS0tLS1tc0Q3ODYzQjg0QkQ2MUUwMkM0MDdGMkY1RQotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lpCi1Db250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0Ci0KLXNpZ25lZCBib2R5IDIKLQotLS0tLS0tLS0tLS0tLS1tc0Q3ODYzQjg0QkQ2MUUwMkM0MDdGMkY1RQotQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LXBrY3M3LXNpZ25hdHVyZTsgbmFtZT0ic21pbWUucDdzIgotQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0Ci1Db250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0ic21pbWUucDdzIgotQ29udGVudC1EZXNjcmlwdGlvbjogUy9NSU1FIENyeXB0b2dyYXBoaWMgU2lnbmF0dXJlCi0KLU1JSUdWZ1lKS29aSWh2Y05BUWNDb0lJR1J6Q0NCa01DQVFFeEN6QUpCZ1VyRGdNQ0dnVUFNQXNHQ1NxR1NJYjNEUUVIQWFDQwotQkdzd2dnSlRNSUlCL2FBREFnRUNBZ0lFZmpBTkJna3Foa2lHOXcwQkFRUUZBRENCa2pFTE1Ba0dBMVVFQmhNQ1FWVXhFekFSCi1CZ05WQkFnVENsRjFaV1Z1YzJ4aGJtUXhFVEFQQmdOVkJBY1RDRUp5YVhOaVlXNWxNUm93R0FZRFZRUUtFeEZEY25sd2RITnYKLVpuUWdVSFI1SUV4MFpERWlNQ0FHQTFVRUN4TVpSRVZOVDA1VFZGSkJWRWxQVGlCQlRrUWdWRVZUVkVsT1J6RWJNQmtHQTFVRQotQXhNU1JFVk5UeUJhUlZKUElGWkJURlZGSUVOQk1CNFhEVGs0TURVeE16QTJNalkxTmxvWERUQXdNRFV4TWpBMk1qWTFObG93Ci1nYVV4Q3pBSkJnTlZCQVlUQWtGVk1STXdFUVlEVlFRSUV3cFJkV1ZsYm5Oc1lXNWtNUkV3RHdZRFZRUUhFd2hDY21selltRnUKLVpURWFNQmdHQTFVRUNoTVJRM0o1Y0hSemIyWjBJRkIwZVNCTWRHUXhFakFRQmdOVkJBc1RDVk5OU1UxRklEQXdNekVaTUJjRwotQTFVRUF4TVFRVzVuWld4aElIWmhiaUJNWldWdWRERWpNQ0VHQ1NxR1NJYjNEUUVKQVJZVVlXNW5aV3hoUUdOeWVYQjBjMjltCi1kQzVqYjIwd1hEQU5CZ2txaGtpRzl3MEJBUUVGQUFOTEFEQklBa0VBdUMzKzdkQWIyTGh1TzdndDJjVE04dnNOamhHNUpmRGgKLWhYMVZsL3dWR2JLRUVqME1BNnZXRW9sdmVmUWx4QitFendDdFIwWVo3ZUVDL1QvNEpvQ3llUUlEQVFBQm95Z3dKakFrQmdsZwotaGtnQmh2aENBUTBFRnhZVlIyVnVaWEpoZEdWa0lIZHBkR2dnVTFOTVpXRjVNQTBHQ1NxR1NJYjNEUUVCQkFVQUEwRUFVblNQCi1pZ3M2VE1GSVNUanc4Y0J0SlliOThjemdBVmtWRmpLeUpRd1lNSDhGYkRuQ3l4Nk5vY001NTVuc3lEc3RhdzhmS1IxMUtoZHMKLXN5ZDNpa2tyaERDQ0FoQXdnZ0c2QWdFRE1BMEdDU3FHU0liM0RRRUJCQVVBTUlHU01Rc3dDUVlEVlFRR0V3SkJWVEVUTUJFRwotQTFVRUNCTUtVWFZsWlc1emJHRnVaREVSTUE4R0ExVUVCeE1JUW5KcGMySmhibVV4R2pBWUJnTlZCQW9URVVOeWVYQjBjMjltCi1kQ0JRZEhrZ1RIUmtNU0l3SUFZRFZRUUxFeGxFUlUxUFRsTlVVa0ZVU1U5T0lFRk9SQ0JVUlZOVVNVNUhNUnN3R1FZRFZRUUQKLUV4SkVSVTFQSUZwRlVrOGdWa0ZNVlVVZ1EwRXdIaGNOT1Rnd016QXpNRGMwTVRNeVdoY05NRGd3TWpJNU1EYzBNVE15V2pDQgota2pFTE1Ba0dBMVVFQmhNQ1FWVXhFekFSQmdOVkJBZ1RDbEYxWldWdWMyeGhibVF4RVRBUEJnTlZCQWNUQ0VKeWFYTmlZVzVsCi1NUm93R0FZRFZRUUtFeEZEY25sd2RITnZablFnVUhSNUlFeDBaREVpTUNBR0ExVUVDeE1aUkVWTlQwNVRWRkpCVkVsUFRpQkIKLVRrUWdWRVZUVkVsT1J6RWJNQmtHQTFVRUF4TVNSRVZOVHlCYVJWSlBJRlpCVEZWRklFTkJNRnd3RFFZSktvWklodmNOQVFFQgotQlFBRFN3QXdTQUpCQUwrMEUyZkxlajNGU0N3ZTJBMmlSbk11QzN6MTJxSElwNkt5MXdvMnpaY3hmdDdBSStSZmtyV3JTR3RmCi1tZnpCRXVQckxkZnVsbmNDNVkxcE5jTThSVFVDQXdFQUFUQU5CZ2txaGtpRzl3MEJBUVFGQUFOQkFHU2JMTXBoTDZGNXBwM3MKLThvMFh5aDg2RkhGZHBWT3dZeDA5RUxMa3VHMTdWL1A5cGdJYzBFby9nRE1iTitLVDNJZGdFQ2Y4Uy8vcENSQTZSck5qY1hJeAotZ2dHek1JSUJyd0lCQVRDQm1UQ0JrakVMTUFrR0ExVUVCaE1DUVZVeEV6QVJCZ05WQkFnVENsRjFaV1Z1YzJ4aGJtUXhFVEFQCi1CZ05WQkFjVENFSnlhWE5pWVc1bE1Sb3dHQVlEVlFRS0V4RkRjbmx3ZEhOdlpuUWdVSFI1SUV4MFpERWlNQ0FHQTFVRUN4TVoKLVJFVk5UMDVUVkZKQlZFbFBUaUJCVGtRZ1ZFVlRWRWxPUnpFYk1Ca0dBMVVFQXhNU1JFVk5UeUJhUlZKUElGWkJURlZGSUVOQgotQWdJRWZqQUpCZ1VyRGdNQ0dnVUFvSUd4TUJnR0NTcUdTSWIzRFFFSkF6RUxCZ2txaGtpRzl3MEJCd0V3SEFZSktvWklodmNOCi1BUWtGTVE4WERUazRNRFV4TkRBek5EQXlOMW93SXdZSktvWklodmNOQVFrRU1SWUVGT0tjVjhtTllKbk04ckhRYWpjU0VxSk4KLXJ3ZERNRklHQ1NxR1NJYjNEUUVKRHpGRk1FTXdDZ1lJS29aSWh2Y05Bd2N3RGdZSUtvWklodmNOQXdJQ0FnQ0FNQWNHQlNzTwotQXdJSE1BMEdDQ3FHU0liM0RRTUNBZ0ZBTUEwR0NDcUdTSWIzRFFNQ0FnRW9NQTBHQ1NxR1NJYjNEUUVCQVFVQUJFQURQRS9OCi1jb0grelRGdVg1WXBvbHVwVEt4S0s4ZUVqYzQ4VHVBRHVPOGJJSEhERS9mRVlhV3VubHdEdVRsY0ZKbDFpZzBpZGZmUEIxcUMKLVpwOFNTVlZZCi0tLS0tLS0tLS0tLS0tLW1zRDc4NjNCODRCRDYxRTAyQzQwN0YyRjVFLS0KLQotCi1Gcm9tIGFuZ2VsYUBjMi5uZXQuYXUgVGh1IE1heSAxNCAxNDowNTozMiAxOTk4Ci1YLVVJREw6IGE3ZDYyOWI0YjlhY2FjYWVlOGIzOTM3MWI4NjBhMzJhCi1SZXR1cm4tUGF0aDogYW5nZWxhQGMyLm5ldC5hdQotUmVjZWl2ZWQ6IGZyb20gY3J5cHRzb2Z0LmNvbSAocGxheS5jcnlwdHNvZnQuY29tIFsyMDMuNTYuNDQuM10pIGJ5IHBhbmRvcmEuY3J5cHRzb2Z0LmNvbSAoOC44LjMvOC43LjMpIHdpdGggRVNNVFAgaWQgT0FBMjgwMzMgZm9yIDx0amhAY3J5cHRzb2Z0LmNvbT47IFRodSwgMTQgTWF5IDE5OTggMTQ6MDU6MzIgKzEwMDAgKEVTVCkKLU1lc3NhZ2UtSUQ6IDwzNTVBNkYzQi5BQzM4NTk4MUBjcnlwdHNvZnQuY29tPgotRGF0ZTogVGh1LCAxNCBNYXkgMTk5OCAxNDoxMjo0MyArMTAwMAotRnJvbTogQW5nZWxhIHZhbiBMZW50IDxhbmdlbGFAYzIubmV0LmF1PgotWC1NYWlsZXI6IE1vemlsbGEgNC4wMyBbZW5dIChXaW45NTsgVSkKLU1JTUUtVmVyc2lvbjogMS4wCi1UbzogdGpoQGNyeXB0c29mdC5jb20KLVN1YmplY3Q6IGVuY3J5cHRlZAotQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LXBrY3M3LW1pbWU7IG5hbWU9InNtaW1lLnA3bSIKLUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IGJhc2U2NAotQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9InNtaW1lLnA3bSIKLUNvbnRlbnQtRGVzY3JpcHRpb246IFMvTUlNRSBFbmNyeXB0ZWQgTWVzc2FnZQotQ29udGVudC1MZW5ndGg6IDkwNQotU3RhdHVzOiBPUgotCi1NSUFHQ1NxR1NJYjNEUUVIQTZDQU1JQUNBUUF4Z2dIbU1JSHdBZ0VBTUlHWk1JR1NNUXN3Q1FZRFZRUUdFd0pCVlRFVE1CRUcKLUExVUVDQk1LVVhWbFpXNXpiR0Z1WkRFUk1BOEdBMVVFQnhNSVFuSnBjMkpoYm1VeEdqQVlCZ05WQkFvVEVVTnllWEIwYzI5bQotZENCUWRIa2dUSFJrTVNJd0lBWURWUVFMRXhsRVJVMVBUbE5VVWtGVVNVOU9JRUZPUkNCVVJWTlVTVTVITVJzd0dRWURWUVFECi1FeEpFUlUxUElGcEZVazhnVmtGTVZVVWdRMEVDQWdSK01BMEdDU3FHU0liM0RRRUJBUVVBQkVBOTJOMjlZazM5UlVZMnRJVmQKLWV4R1QyTUZYM0o2SDhMQjhhRFJKanc3ODQzQUxnSjV6WHBNNStmODBRa0FXd0VOMkE2UGwzVnhpQ2VLTGk0MzV6WFZ5TUlIdwotQWdFQU1JR1pNSUdTTVFzd0NRWURWUVFHRXdKQlZURVRNQkVHQTFVRUNCTUtVWFZsWlc1emJHRnVaREVSTUE4R0ExVUVCeE1JCi1RbkpwYzJKaGJtVXhHakFZQmdOVkJBb1RFVU55ZVhCMGMyOW1kQ0JRZEhrZ1RIUmtNU0l3SUFZRFZRUUxFeGxFUlUxUFRsTlUKLVVrRlVTVTlPSUVGT1JDQlVSVk5VU1U1SE1Sc3dHUVlEVlFRREV4SkVSVTFQSUZwRlVrOGdWa0ZNVlVVZ1EwRUNBZ1J1TUEwRwotQ1NxR1NJYjNEUUVCQVFVQUJFQ1I5SWZ5SHR2bmpGbVo4QjJvVUNFczF2eE1zRzB1MWt4S0U0Uk1QRnlEcURDRUFScTd6WE1nCi1uelNVSTdXZ3Y1VVNTS0RxY0xSSmVXK2p2WVVSdi9uSk1JQUdDU3FHU0liM0RRRUhBVEFhQmdncWhraUc5dzBEQWpBT0FnSUEKLW9BUUlyTHFyaWoyWk1wZWdnQVFvaWJ0bjZyZVJaV3VXazVJdjVJQWhnaXRyOEVZRTR3NHlTUTdFTUI2bVRsQm9GcGNjVU1XWAotQndRZ1FuMVVvV0N2WUFsaER6VVJkYnVpNjREYzByUzJ3dGora0UvSW5TNnkyNUVFRVBlNE5VS2FGOC9VbEUrbG8zTHRJTFFFCi1DTDN1VjhrN20waXFBQUFBQUFBQUFBQUFBQT09Ci0KZGlmZiAtLWdpdCBhL2NyeXB0by9wa2NzNy90L3MucGVtIGIvY3J5cHRvL3BrY3M3L3Qvcy5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRmYTkyNWIuLjAwMDAwMDAKLS0tIGEvY3J5cHRvL3BrY3M3L3Qvcy5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi0tLS0tLUJFR0lOIFJTQSBQUklWQVRFIEtFWS0tLS0tCi1NSUlCT2dJQkFBSkJBSzNuSTRudURZZTNuREpFUzVXQmM5MGlnRXN0eFdDNC9oNFlZKy9jaVlraTM1VThldHM5Ci1tZ2FvQ05ZcC9lOUJDWkh0dksyWStmWW9rR0p2NStjTVRRc0NBd0VBQVFKQkFJSHB2WHZxRWNPRW9EUlJIdUlHCi1ma2NCNGpQSGNyOUtFOVRweGFiSDZ4czliZU42T0pua2VQWEFId2F6NU1uVWdTbmJwT0txK2N3OG1pS2pYd2UvCi16VkVDSVFEVkx3bmNUMmxSbVhhckVZSHpiK3EvMHVhU3ZLaFdLS3Qza0phc0xOVHJBd0loQU5EVWMvZ2h1dDI5Ci1wM2pKWWp1cnpVS3VHNzc0LzVlTGpQTHN4UFBJWnpOWkFpQS8xMGhTcTQxVW5HcUhMRVVJUzltMi9FZUVaZTdiCi1ibTU2N2RmUlU5T25WUUlnRG84Uk9yWlhTY2hFR2Jhb2c1SjVyL0ZsZTgzdU84bDkzUjNHcVZ4S1haa0NJRmZrCi1JUEQ1UElZUUF5eW9kM2h5S0t6YTdaUDRDR1k0b09mWmV0YmtTR0dHCi0tLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQotaXNzdWVyIDovQz1BVS9TUD1RdWVlbnNsYW5kL0w9QnJpc2JhbmUvTz1DcnlwdHNvZnQgUHR5IEx0ZC9PVT1ERU1PTlNUUkFUSU9OIEFORCBURVNUSU5HL0NOPURFTU8gWkVSTyBWQUxVRSBDQQotc3ViamVjdDovQz1BVS9TUD1RdWVlbnNsYW5kL0w9QnJpc2JhbmUvTz1DcnlwdHNvZnQgUHR5IEx0ZC9PVT1TTUlNRSAwMDMvQ049SW5mb3JtYXRpb24vRW1haWw9aW5mb0BjcnlwdHNvZnQuY29tCi1zZXJpYWwgOjA0N0QKLQotQ2VydGlmaWNhdGU6Ci0gICAgRGF0YToKLSAgICAgICAgVmVyc2lvbjogMyAoMHgyKQotICAgICAgICBTZXJpYWwgTnVtYmVyOiAxMTQ5ICgweDQ3ZCkKLSAgICAgICAgU2lnbmF0dXJlIEFsZ29yaXRobTogbWQ1d2l0aFJTQUVuY3J5cHRpb24KLSAgICAgICAgSXNzdWVyOiBDPUFVLCBTUD1RdWVlbnNsYW5kLCBMPUJyaXNiYW5lLCBPPUNyeXB0c29mdCBQdHkgTHRkLCBPVT1ERU1PTlNUUkFUSU9OIEFORCBURVNUSU5HLCBDTj1ERU1PIFpFUk8gVkFMVUUgQ0EKLSAgICAgICAgVmFsaWRpdHkKLSAgICAgICAgICAgIE5vdCBCZWZvcmU6IE1heSAxMyAwNTo0MDo1OCAxOTk4IEdNVAotICAgICAgICAgICAgTm90IEFmdGVyIDogTWF5IDEyIDA1OjQwOjU4IDIwMDAgR01UCi0gICAgICAgIFN1YmplY3Q6IEM9QVUsIFNQPVF1ZWVuc2xhbmQsIEw9QnJpc2JhbmUsIE89Q3J5cHRzb2Z0IFB0eSBMdGQsIE9VPVNNSU1FIDAwMywgQ049SW5mb3JtYXRpb24vRW1haWw9aW5mb0BjcnlwdHNvZnQuY29tCi0gICAgICAgIFN1YmplY3QgUHVibGljIEtleSBJbmZvOgotICAgICAgICAgICAgUHVibGljIEtleSBBbGdvcml0aG06IHJzYUVuY3J5cHRpb24KLSAgICAgICAgICAgICAgICBNb2R1bHVzOgotICAgICAgICAgICAgICAgICAgICAwMDphZDplNzoyMzo4OTplZTowZDo4NzpiNzo5YzozMjo0NDo0Yjo5NTo4MToKLSAgICAgICAgICAgICAgICAgICAgNzM6ZGQ6MjI6ODA6NGI6MmQ6YzU6NjA6Yjg6ZmU6MWU6MTg6NjM6ZWY6ZGM6Ci0gICAgICAgICAgICAgICAgICAgIDg5Ojg5OjIyOmRmOjk1OjNjOjdhOmRiOjNkOjlhOjA2OmE4OjA4OmQ2OjI5OgotICAgICAgICAgICAgICAgICAgICBmZDplZjo0MTowOTo5MTplZDpiYzphZDo5ODpmOTpmNjoyODo5MDo2Mjo2ZjoKLSAgICAgICAgICAgICAgICAgICAgZTc6ZTc6MGM6NGQ6MGIKLSAgICAgICAgICAgICAgICBFeHBvbmVudDogNjU1MzcgKDB4MTAwMDEpCi0gICAgICAgIFg1MDl2MyBleHRlbnNpb25zOgotICAgICAgICAgICAgTmV0c2NhcGUgQ29tbWVudDogCi0gICAgICAgICAgICAgICAgR2VuZXJhdGVkIHdpdGggU1NMZWF5Ci0gICAgU2lnbmF0dXJlIEFsZ29yaXRobTogbWQ1d2l0aFJTQUVuY3J5cHRpb24KLSAgICAgICAgNTI6MTU6ZWE6ODg6ZjQ6ZjA6Zjk6MGI6ZWY6Y2U6ZDU6Zjg6ODM6NDA6NjE6MTY6NWU6NTU6Ci0gICAgICAgIGY5OmNlOjJkOmQxOjhiOjMxOjVjOjAzOmM2OjJkOjEwOjdjOjYxOmQ1OjVjOjBhOjQyOjk3OgotICAgICAgICBkMTpmZDo2NTpiNjpiNjo4NDphNTozOTplYzo0NjplYzpmYzplMDowZDpkOToyMjpkYToxYjoKLSAgICAgICAgNTA6NzQ6YWQ6OTI6Y2I6NGU6OTA6ZTU6ZmE6N2QKLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlDVERDQ0FmYWdBd0lCQWdJQ0JIMHdEUVlKS29aSWh2Y05BUUVFQlFBd2daSXhDekFKQmdOVkJBWVRBa0ZWCi1NUk13RVFZRFZRUUlFd3BSZFdWbGJuTnNZVzVrTVJFd0R3WURWUVFIRXdoQ2NtbHpZbUZ1WlRFYU1CZ0dBMVVFCi1DaE1SUTNKNWNIUnpiMlowSUZCMGVTQk1kR1F4SWpBZ0JnTlZCQXNUR1VSRlRVOU9VMVJTUVZSSlQwNGdRVTVFCi1JRlJGVTFSSlRrY3hHekFaQmdOVkJBTVRFa1JGVFU4Z1drVlNUeUJXUVV4VlJTQkRRVEFlRncwNU9EQTFNVE13Ci1OVFF3TlRoYUZ3MHdNREExTVRJd05UUXdOVGhhTUlHZU1Rc3dDUVlEVlFRR0V3SkJWVEVUTUJFR0ExVUVDQk1LCi1VWFZsWlc1emJHRnVaREVSTUE4R0ExVUVCeE1JUW5KcGMySmhibVV4R2pBWUJnTlZCQW9URVVOeWVYQjBjMjltCi1kQ0JRZEhrZ1RIUmtNUkl3RUFZRFZRUUxFd2xUVFVsTlJTQXdNRE14RkRBU0JnTlZCQU1UQzBsdVptOXliV0YwCi1hVzl1TVNFd0h3WUpLb1pJaHZjTkFRa0JGaEpwYm1adlFHTnllWEIwYzI5bWRDNWpiMjB3WERBTkJna3Foa2lHCi05dzBCQVFFRkFBTkxBREJJQWtFQXJlY2ppZTROaDdlY01rUkxsWUZ6M1NLQVN5M0ZZTGorSGhoajc5eUppU0xmCi1sVHg2MnoyYUJxZ0kxaW45NzBFSmtlMjhyWmo1OWlpUVltL241d3hOQ3dJREFRQUJveWd3SmpBa0JnbGdoa2dCCi1odmhDQVEwRUZ4WVZSMlZ1WlhKaGRHVmtJSGRwZEdnZ1UxTk1aV0Y1TUEwR0NTcUdTSWIzRFFFQkJBVUFBMEVBCi1VaFhxaVBUdytRdnZ6dFg0ZzBCaEZsNVYrYzR0MFlzeFhBUEdMUkI4WWRWY0NrS1gwZjFsdHJhRXBUbnNSdXo4Ci00QTNaSXRvYlVIU3Rrc3RPa09YNmZRPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLQpkaWZmIC0tZ2l0IGEvY3J5cHRvL3BrY3M3L3Qvc2VydmVyLnBlbSBiL2NyeXB0by9wa2NzNy90L3NlcnZlci5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk4OWJhZjguLjAwMDAwMDAKLS0tIGEvY3J5cHRvL3BrY3M3L3Qvc2VydmVyLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLWlzc3VlciA6L0M9QVUvU1A9UXVlZW5zbGFuZC9MPUJyaXNiYW5lL089Q3J5cHRzb2Z0IFB0eSBMdGQvT1U9REVNT05TVFJBVElPTiBBTkQgVEVTVElORy9DTj1ERU1PIFpFUk8gVkFMVUUgQ0EKLXN1YmplY3Q6L0M9QVUvU1A9UXVlZW5zbGFuZC9MPUJyaXNiYW5lL089Q3J5cHRzb2Z0IFB0eSBMdGQvT1U9U01JTUUgMDAzL0NOPUluZm9ybWF0aW9uL0VtYWlsPWluZm9AY3J5cHRzb2Z0LmNvbQotc2VyaWFsIDowNDdECi0KLUNlcnRpZmljYXRlOgotICAgIERhdGE6Ci0gICAgICAgIFZlcnNpb246IDMgKDB4MikKLSAgICAgICAgU2VyaWFsIE51bWJlcjogMTE0OSAoMHg0N2QpCi0gICAgICAgIFNpZ25hdHVyZSBBbGdvcml0aG06IG1kNXdpdGhSU0FFbmNyeXB0aW9uCi0gICAgICAgIElzc3VlcjogQz1BVSwgU1A9UXVlZW5zbGFuZCwgTD1CcmlzYmFuZSwgTz1DcnlwdHNvZnQgUHR5IEx0ZCwgT1U9REVNT05TVFJBVElPTiBBTkQgVEVTVElORywgQ049REVNTyBaRVJPIFZBTFVFIENBCi0gICAgICAgIFZhbGlkaXR5Ci0gICAgICAgICAgICBOb3QgQmVmb3JlOiBNYXkgMTMgMDU6NDA6NTggMTk5OCBHTVQKLSAgICAgICAgICAgIE5vdCBBZnRlciA6IE1heSAxMiAwNTo0MDo1OCAyMDAwIEdNVAotICAgICAgICBTdWJqZWN0OiBDPUFVLCBTUD1RdWVlbnNsYW5kLCBMPUJyaXNiYW5lLCBPPUNyeXB0c29mdCBQdHkgTHRkLCBPVT1TTUlNRSAwMDMsIENOPUluZm9ybWF0aW9uL0VtYWlsPWluZm9AY3J5cHRzb2Z0LmNvbQotICAgICAgICBTdWJqZWN0IFB1YmxpYyBLZXkgSW5mbzoKLSAgICAgICAgICAgIFB1YmxpYyBLZXkgQWxnb3JpdGhtOiByc2FFbmNyeXB0aW9uCi0gICAgICAgICAgICAgICAgTW9kdWx1czoKLSAgICAgICAgICAgICAgICAgICAgMDA6YWQ6ZTc6MjM6ODk6ZWU6MGQ6ODc6Yjc6OWM6MzI6NDQ6NGI6OTU6ODE6Ci0gICAgICAgICAgICAgICAgICAgIDczOmRkOjIyOjgwOjRiOjJkOmM1OjYwOmI4OmZlOjFlOjE4OjYzOmVmOmRjOgotICAgICAgICAgICAgICAgICAgICA4OTo4OToyMjpkZjo5NTozYzo3YTpkYjozZDo5YTowNjphODowODpkNjoyOToKLSAgICAgICAgICAgICAgICAgICAgZmQ6ZWY6NDE6MDk6OTE6ZWQ6YmM6YWQ6OTg6Zjk6ZjY6Mjg6OTA6NjI6NmY6Ci0gICAgICAgICAgICAgICAgICAgIGU3OmU3OjBjOjRkOjBiCi0gICAgICAgICAgICAgICAgRXhwb25lbnQ6IDY1NTM3ICgweDEwMDAxKQotICAgICAgICBYNTA5djMgZXh0ZW5zaW9uczoKLSAgICAgICAgICAgIE5ldHNjYXBlIENvbW1lbnQ6IAotICAgICAgICAgICAgICAgIEdlbmVyYXRlZCB3aXRoIFNTTGVheQotICAgIFNpZ25hdHVyZSBBbGdvcml0aG06IG1kNXdpdGhSU0FFbmNyeXB0aW9uCi0gICAgICAgIDUyOjE1OmVhOjg4OmY0OmYwOmY5OjBiOmVmOmNlOmQ1OmY4OjgzOjQwOjYxOjE2OjVlOjU1OgotICAgICAgICBmOTpjZToyZDpkMTo4YjozMTo1YzowMzpjNjoyZDoxMDo3Yzo2MTpkNTo1YzowYTo0Mjo5NzoKLSAgICAgICAgZDE6ZmQ6NjU6YjY6YjY6ODQ6YTU6Mzk6ZWM6NDY6ZWM6ZmM6ZTA6MGQ6ZDk6MjI6ZGE6MWI6Ci0gICAgICAgIDUwOjc0OmFkOjkyOmNiOjRlOjkwOmU1OmZhOjdkCi0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQ1REQ0NBZmFnQXdJQkFnSUNCSDB3RFFZSktvWklodmNOQVFFRUJRQXdnWkl4Q3pBSkJnTlZCQVlUQWtGVgotTVJNd0VRWURWUVFJRXdwUmRXVmxibk5zWVc1a01SRXdEd1lEVlFRSEV3aENjbWx6WW1GdVpURWFNQmdHQTFVRQotQ2hNUlEzSjVjSFJ6YjJaMElGQjBlU0JNZEdReElqQWdCZ05WQkFzVEdVUkZUVTlPVTFSU1FWUkpUMDRnUVU1RQotSUZSRlUxUkpUa2N4R3pBWkJnTlZCQU1URWtSRlRVOGdXa1ZTVHlCV1FVeFZSU0JEUVRBZUZ3MDVPREExTVRNdwotTlRRd05UaGFGdzB3TURBMU1USXdOVFF3TlRoYU1JR2VNUXN3Q1FZRFZRUUdFd0pCVlRFVE1CRUdBMVVFQ0JNSwotVVhWbFpXNXpiR0Z1WkRFUk1BOEdBMVVFQnhNSVFuSnBjMkpoYm1VeEdqQVlCZ05WQkFvVEVVTnllWEIwYzI5bQotZENCUWRIa2dUSFJrTVJJd0VBWURWUVFMRXdsVFRVbE5SU0F3TURNeEZEQVNCZ05WQkFNVEMwbHVabTl5YldGMAotYVc5dU1TRXdId1lKS29aSWh2Y05BUWtCRmhKcGJtWnZRR055ZVhCMGMyOW1kQzVqYjIwd1hEQU5CZ2txaGtpRwotOXcwQkFRRUZBQU5MQURCSUFrRUFyZWNqaWU0Tmg3ZWNNa1JMbFlGejNTS0FTeTNGWUxqK0hoaGo3OXlKaVNMZgotbFR4NjJ6MmFCcWdJMWluOTcwRUprZTI4clpqNTlpaVFZbS9uNXd4TkN3SURBUUFCb3lnd0pqQWtCZ2xnaGtnQgotaHZoQ0FRMEVGeFlWUjJWdVpYSmhkR1ZrSUhkcGRHZ2dVMU5NWldGNU1BMEdDU3FHU0liM0RRRUJCQVVBQTBFQQotVWhYcWlQVHcrUXZ2enRYNGcwQmhGbDVWK2M0dDBZc3hYQVBHTFJCOFlkVmNDa0tYMGYxbHRyYUVwVG5zUnV6OAotNEEzWkl0b2JVSFN0a3N0T2tPWDZmUT09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0KLS0tLS0tQkVHSU4gUlNBIFBSSVZBVEUgS0VZLS0tLS0KLU1JSUJPZ0lCQUFKQkFLM25JNG51RFllM25ESkVTNVdCYzkwaWdFc3R4V0M0L2g0WVkrL2NpWWtpMzVVOGV0czkKLW1nYW9DTllwL2U5QkNaSHR2SzJZK2ZZb2tHSnY1K2NNVFFzQ0F3RUFBUUpCQUlIcHZYdnFFY09Fb0RSUkh1SUcKLWZrY0I0alBIY3I5S0U5VHB4YWJINnhzOWJlTjZPSm5rZVBYQUh3YXo1TW5VZ1NuYnBPS3ErY3c4bWlLalh3ZS8KLXpWRUNJUURWTHduY1QybFJtWGFyRVlIemIrcS8wdWFTdktoV0tLdDNrSmFzTE5UckF3SWhBTkRVYy9naHV0MjkKLXAzakpZanVyelVLdUc3NzQvNWVMalBMc3hQUElaek5aQWlBLzEwaFNxNDFVbkdxSExFVUlTOW0yL0VlRVplN2IKLWJtNTY3ZGZSVTlPblZRSWdEbzhST3JaWFNjaEVHYmFvZzVKNXIvRmxlODN1TzhsOTNSM0dxVnhLWFprQ0lGZmsKLUlQRDVQSVlRQXl5b2QzaHlLS3phN1pQNENHWTRvT2ZaZXRia1NHR0cKLS0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS9jcnlwdG8vcGtjczcvdmVyaWZ5LmMgYi9jcnlwdG8vcGtjczcvdmVyaWZ5LmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI0MGYyNjAuLjAwMDAwMDAKLS0tIGEvY3J5cHRvL3BrY3M3L3ZlcmlmeS5jCisrKyAvZGV2L251bGwKQEAgLTEsMjYzICswLDAgQEAKLS8qIGNyeXB0by9wa2NzNy92ZXJpZnkuYyAqLwotLyogQ29weXJpZ2h0IChDKSAxOTk1LTE5OTggRXJpYyBZb3VuZyAoZWF5QGNyeXB0c29mdC5jb20pCi0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgcGFja2FnZSBpcyBhbiBTU0wgaW1wbGVtZW50YXRpb24gd3JpdHRlbgotICogYnkgRXJpYyBZb3VuZyAoZWF5QGNyeXB0c29mdC5jb20pLgotICogVGhlIGltcGxlbWVudGF0aW9uIHdhcyB3cml0dGVuIHNvIGFzIHRvIGNvbmZvcm0gd2l0aCBOZXRzY2FwZXMgU1NMLgotICogCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBmb3IgY29tbWVyY2lhbCBhbmQgbm9uLWNvbW1lcmNpYWwgdXNlIGFzIGxvbmcgYXMKLSAqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgYWhlYXJlZCB0by4gIFRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXBwbHkgdG8gYWxsIGNvZGUgZm91bmQgaW4gdGhpcyBkaXN0cmlidXRpb24sIGJlIGl0IHRoZSBSQzQsIFJTQSwKLSAqIGxoYXNoLCBERVMsIGV0Yy4sIGNvZGU7IG5vdCBqdXN0IHRoZSBTU0wgY29kZS4gIFRoZSBTU0wgZG9jdW1lbnRhdGlvbgotICogaW5jbHVkZWQgd2l0aCB0aGlzIGRpc3RyaWJ1dGlvbiBpcyBjb3ZlcmVkIGJ5IHRoZSBzYW1lIGNvcHlyaWdodCB0ZXJtcwotICogZXhjZXB0IHRoYXQgdGhlIGhvbGRlciBpcyBUaW0gSHVkc29uICh0amhAY3J5cHRzb2Z0LmNvbSkuCi0gKiAKLSAqIENvcHlyaWdodCByZW1haW5zIEVyaWMgWW91bmcncywgYW5kIGFzIHN1Y2ggYW55IENvcHlyaWdodCBub3RpY2VzIGluCi0gKiB0aGUgY29kZSBhcmUgbm90IHRvIGJlIHJlbW92ZWQuCi0gKiBJZiB0aGlzIHBhY2thZ2UgaXMgdXNlZCBpbiBhIHByb2R1Y3QsIEVyaWMgWW91bmcgc2hvdWxkIGJlIGdpdmVuIGF0dHJpYnV0aW9uCi0gKiBhcyB0aGUgYXV0aG9yIG9mIHRoZSBwYXJ0cyBvZiB0aGUgbGlicmFyeSB1c2VkLgotICogVGhpcyBjYW4gYmUgaW4gdGhlIGZvcm0gb2YgYSB0ZXh0dWFsIG1lc3NhZ2UgYXQgcHJvZ3JhbSBzdGFydHVwIG9yCi0gKiBpbiBkb2N1bWVudGF0aW9uIChvbmxpbmUgb3IgdGV4dHVhbCkgcHJvdmlkZWQgd2l0aCB0aGUgcGFja2FnZS4KLSAqIAotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiBBbGwgYWR2ZXJ0aXNpbmcgbWF0ZXJpYWxzIG1lbnRpb25pbmcgZmVhdHVyZXMgb3IgdXNlIG9mIHRoaXMgc29mdHdhcmUKLSAqICAgIG11c3QgZGlzcGxheSB0aGUgZm9sbG93aW5nIGFja25vd2xlZGdlbWVudDoKLSAqICAgICJUaGlzIHByb2R1Y3QgaW5jbHVkZXMgY3J5cHRvZ3JhcGhpYyBzb2Z0d2FyZSB3cml0dGVuIGJ5Ci0gKiAgICAgRXJpYyBZb3VuZyAoZWF5QGNyeXB0c29mdC5jb20pIgotICogICAgVGhlIHdvcmQgJ2NyeXB0b2dyYXBoaWMnIGNhbiBiZSBsZWZ0IG91dCBpZiB0aGUgcm91aW5lcyBmcm9tIHRoZSBsaWJyYXJ5Ci0gKiAgICBiZWluZyB1c2VkIGFyZSBub3QgY3J5cHRvZ3JhcGhpYyByZWxhdGVkIDotKS4KLSAqIDQuIElmIHlvdSBpbmNsdWRlIGFueSBXaW5kb3dzIHNwZWNpZmljIGNvZGUgKG9yIGEgZGVyaXZhdGl2ZSB0aGVyZW9mKSBmcm9tIAotICogICAgdGhlIGFwcHMgZGlyZWN0b3J5IChhcHBsaWNhdGlvbiBjb2RlKSB5b3UgbXVzdCBpbmNsdWRlIGFuIGFja25vd2xlZGdlbWVudDoKLSAqICAgICJUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUgd3JpdHRlbiBieSBUaW0gSHVkc29uICh0amhAY3J5cHRzb2Z0LmNvbSkiCi0gKiAKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgRVJJQyBZT1VORyBgYEFTIElTJycgQU5ECi0gKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCi0gKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQotICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKLSAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCi0gKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKLSAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCi0gKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCi0gKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCi0gKiBTVUNIIERBTUFHRS4KLSAqIAotICogVGhlIGxpY2VuY2UgYW5kIGRpc3RyaWJ1dGlvbiB0ZXJtcyBmb3IgYW55IHB1YmxpY2FsbHkgYXZhaWxhYmxlIHZlcnNpb24gb3IKLSAqIGRlcml2YXRpdmUgb2YgdGhpcyBjb2RlIGNhbm5vdCBiZSBjaGFuZ2VkLiAgaS5lLiB0aGlzIGNvZGUgY2Fubm90IHNpbXBseSBiZQotICogY29waWVkIGFuZCBwdXQgdW5kZXIgYW5vdGhlciBkaXN0cmlidXRpb24gbGljZW5jZQotICogW2luY2x1ZGluZyB0aGUgR05VIFB1YmxpYyBMaWNlbmNlLl0KLSAqLwotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8b3BlbnNzbC9iaW8uaD4KLSNpbmNsdWRlIDxvcGVuc3NsL2FzbjEuaD4KLSNpbmNsdWRlIDxvcGVuc3NsL3g1MDkuaD4KLSNpbmNsdWRlIDxvcGVuc3NsL3BlbS5oPgotI2luY2x1ZGUgPG9wZW5zc2wvZXJyLmg+Ci0jaW5jbHVkZSAiZXhhbXBsZS5oIgotCi1pbnQgdmVyaWZ5X2NhbGxiYWNrKGludCBvaywgWDUwOV9TVE9SRV9DVFggKmN0eCk7Ci0KLUJJTyAqYmlvX2Vycj1OVUxMOwotQklPICpiaW9fb3V0PU5VTEw7Ci0KLWludCBtYWluKGFyZ2MsYXJndikKLWludCBhcmdjOwotY2hhciAqYXJndltdOwotCXsKLQlQS0NTNyAqcDc7Ci0JUEtDUzdfU0lHTkVSX0lORk8gKnNpOwotCVg1MDlfU1RPUkVfQ1RYIGNlcnRfY3R4OwotCVg1MDlfU1RPUkUgKmNlcnRfc3RvcmU9TlVMTDsKLQlCSU8gKmRhdGEsKmRldGFjaGVkPU5VTEwsKnA3YmlvPU5VTEw7Ci0JY2hhciBidWZbMTAyNCo0XTsKLQljaGFyICpwcDsKLQlpbnQgaSxwcmludGl0PTA7Ci0JU1RBQ0tfT0YoUEtDUzdfU0lHTkVSX0lORk8pICpzazsKLQotCWJpb19lcnI9QklPX25ld19mcChzdGRlcnIsQklPX05PQ0xPU0UpOwotCWJpb19vdXQ9QklPX25ld19mcChzdGRvdXQsQklPX05PQ0xPU0UpOwotI2lmbmRlZiBPUEVOU1NMX05PX01EMgotCUVWUF9hZGRfZGlnZXN0KEVWUF9tZDIoKSk7Ci0jZW5kaWYKLSNpZm5kZWYgT1BFTlNTTF9OT19NRDUKLQlFVlBfYWRkX2RpZ2VzdChFVlBfbWQ1KCkpOwotI2VuZGlmCi0jaWZuZGVmIE9QRU5TU0xfTk9fU0hBMQotCUVWUF9hZGRfZGlnZXN0KEVWUF9zaGExKCkpOwotI2VuZGlmCi0jaWZuZGVmIE9QRU5TU0xfTk9fTURDMgotCUVWUF9hZGRfZGlnZXN0KEVWUF9tZGMyKCkpOwotI2VuZGlmCi0KLQlkYXRhPUJJT19uZXcoQklPX3NfZmlsZSgpKTsKLQotCXBwPU5VTEw7Ci0Jd2hpbGUgKGFyZ2MgPiAxKQotCQl7Ci0JCWFyZ2MtLTsKLQkJYXJndisrOwotCQlpZiAoc3RyY21wKGFyZ3ZbMF0sIi1wIikgPT0gMCkKLQkJCXsKLQkJCXByaW50aXQ9MTsKLQkJCX0KLQkJZWxzZSBpZiAoKHN0cmNtcChhcmd2WzBdLCItZCIpID09IDApICYmIChhcmdjID49IDIpKQotCQkJewotCQkJZGV0YWNoZWQ9QklPX25ldyhCSU9fc19maWxlKCkpOwotCQkJaWYgKCFCSU9fcmVhZF9maWxlbmFtZShkZXRhY2hlZCxhcmd2WzFdKSkKLQkJCQlnb3RvIGVycjsKLQkJCWFyZ2MtLTsKLQkJCWFyZ3YrKzsKLQkJCX0KLQkJZWxzZQotCQkJewotCQkJcHA9YXJndlswXTsKLQkJCWlmICghQklPX3JlYWRfZmlsZW5hbWUoZGF0YSxhcmd2WzBdKSkKLQkJCQlnb3RvIGVycjsKLQkJCX0KLQkJfQotCi0JaWYgKHBwID09IE5VTEwpCi0JCUJJT19zZXRfZnAoZGF0YSxzdGRpbixCSU9fTk9DTE9TRSk7Ci0KLQotCS8qIExvYWQgdGhlIFBLQ1M3IG9iamVjdCBmcm9tIGEgZmlsZSAqLwotCWlmICgocDc9UEVNX3JlYWRfYmlvX1BLQ1M3KGRhdGEsTlVMTCxOVUxMLE5VTEwpKSA9PSBOVUxMKSBnb3RvIGVycjsKLQotCS8qIFRoaXMgc3R1ZmYgaXMgYmVpbmcgc2V0dXAgZm9yIGNlcnRpZmljYXRlIHZlcmlmaWNhdGlvbi4KLQkgKiBXaGVuIHVzaW5nIFNTTCwgaXQgY291bGQgYmUgcmVwbGFjZWQgd2l0aCBhIAotCSAqIGNlcnRfc3RyZT1TU0xfQ1RYX2dldF9jZXJ0X3N0b3JlKHNzbF9jdHgpOyAqLwotCWNlcnRfc3RvcmU9WDUwOV9TVE9SRV9uZXcoKTsKLQlYNTA5X1NUT1JFX3NldF9kZWZhdWx0X3BhdGhzKGNlcnRfc3RvcmUpOwotCVg1MDlfU1RPUkVfbG9hZF9sb2NhdGlvbnMoY2VydF9zdG9yZSxOVUxMLCIuLi8uLi9jZXJ0cyIpOwotCVg1MDlfU1RPUkVfc2V0X3ZlcmlmeV9jYl9mdW5jKGNlcnRfc3RvcmUsdmVyaWZ5X2NhbGxiYWNrKTsKLQotCUVSUl9jbGVhcl9lcnJvcigpOwotCi0JLyogV2UgbmVlZCB0byBwcm9jZXNzIHRoZSBkYXRhICovCi0JaWYgKChQS0NTN19nZXRfZGV0YWNoZWQocDcpIHx8IGRldGFjaGVkKSkKLQkJewotCQlpZiAoZGV0YWNoZWQgPT0gTlVMTCkKLQkJCXsKLQkJCXByaW50Zigibm8gZGF0YSB0byB2ZXJpZnkgdGhlIHNpZ25hdHVyZSBvblxuIik7Ci0JCQlleGl0KDEpOwotCQkJfQotCQllbHNlCi0JCQlwN2Jpbz1QS0NTN19kYXRhSW5pdChwNyxkZXRhY2hlZCk7Ci0JCX0KLQllbHNlCi0JCXsKLQkJcDdiaW89UEtDUzdfZGF0YUluaXQocDcsTlVMTCk7Ci0JCX0KLQotCS8qIFdlIG5vdyBoYXZlIHRvICdyZWFkJyBmcm9tIHA3YmlvIHRvIGNhbGN1bGF0ZSBkaWdlc3RzIGV0Yy4gKi8KLQlmb3IgKDs7KQotCQl7Ci0JCWk9QklPX3JlYWQocDdiaW8sYnVmLHNpemVvZihidWYpKTsKLQkJLyogcHJpbnQgaXQ/ICovCi0JCWlmIChpIDw9IDApIGJyZWFrOwotCQl9Ci0KLQkvKiBXZSBjYW4gbm93IHZlcmlmeSBzaWduYXR1cmVzICovCi0Jc2s9UEtDUzdfZ2V0X3NpZ25lcl9pbmZvKHA3KTsKLQlpZiAoc2sgPT0gTlVMTCkKLQkJewotCQlwcmludGYoInRoZXJlIGFyZSBubyBzaWduYXR1cmVzIG9uIHRoaXMgZGF0YVxuIik7Ci0JCWV4aXQoMSk7Ci0JCX0KLQotCS8qIE9rLCBmaXJzdCB3ZSBuZWVkIHRvLCBmb3IgZWFjaCBzdWJqZWN0IGVudHJ5LCBzZWUgaWYgd2UgY2FuIHZlcmlmeSAqLwotCWZvciAoaT0wOyBpPHNrX1BLQ1M3X1NJR05FUl9JTkZPX251bShzayk7IGkrKykKLQkJewotCQlBU04xX1VUQ1RJTUUgKnRtOwotCQljaGFyICpzdHIxLCpzdHIyOwotCQlpbnQgcmM7Ci0KLQkJc2k9c2tfUEtDUzdfU0lHTkVSX0lORk9fdmFsdWUoc2ssaSk7Ci0JCXJjPVBLQ1M3X2RhdGFWZXJpZnkoY2VydF9zdG9yZSwmY2VydF9jdHgscDdiaW8scDcsc2kpOwotCQlpZiAocmMgPD0gMCkKLQkJCWdvdG8gZXJyOwotCQlwcmludGYoInNpZ25lciBpbmZvXG4iKTsKLQkJaWYgKCh0bT1nZXRfc2lnbmVkX3RpbWUoc2kpKSAhPSBOVUxMKQotCQkJewotCQkJQklPX3ByaW50ZihiaW9fb3V0LCJTaWduZWQgdGltZToiKTsKLQkJCUFTTjFfVVRDVElNRV9wcmludChiaW9fb3V0LHRtKTsKLQkJCUFTTjFfVVRDVElNRV9mcmVlKHRtKTsKLQkJCUJJT19wcmludGYoYmlvX291dCwiXG4iKTsKLQkJCX0KLQkJaWYgKGdldF9zaWduZWRfc2VxMnN0cmluZyhzaSwmc3RyMSwmc3RyMikpCi0JCQl7Ci0JCQlCSU9fcHJpbnRmKGJpb19vdXQsIlN0cmluZyAxIGlzICVzXG4iLHN0cjEpOwotCQkJQklPX3ByaW50ZihiaW9fb3V0LCJTdHJpbmcgMiBpcyAlc1xuIixzdHIyKTsKLQkJCX0KLQotCQl9Ci0KLQlYNTA5X1NUT1JFX2ZyZWUoY2VydF9zdG9yZSk7Ci0KLQlwcmludGYoImRvbmVcbiIpOwotCWV4aXQoMCk7Ci1lcnI6Ci0JRVJSX2xvYWRfY3J5cHRvX3N0cmluZ3MoKTsKLQlFUlJfcHJpbnRfZXJyb3JzX2ZwKHN0ZGVycik7Ci0JZXhpdCgxKTsKLQl9Ci0KLS8qIHNob3VsZCBiZSBYNTA5ICogYnV0IHdlIGNhbiBqdXN0IGhhdmUgdGhlbSBhcyBjaGFyICouICovCi1pbnQgdmVyaWZ5X2NhbGxiYWNrKGludCBvaywgWDUwOV9TVE9SRV9DVFggKmN0eCkKLQl7Ci0JY2hhciBidWZbMjU2XTsKLQlYNTA5ICplcnJfY2VydDsKLQlpbnQgZXJyLGRlcHRoOwotCi0JZXJyX2NlcnQ9WDUwOV9TVE9SRV9DVFhfZ2V0X2N1cnJlbnRfY2VydChjdHgpOwotCWVycj0JWDUwOV9TVE9SRV9DVFhfZ2V0X2Vycm9yKGN0eCk7Ci0JZGVwdGg9CVg1MDlfU1RPUkVfQ1RYX2dldF9lcnJvcl9kZXB0aChjdHgpOwotCi0JWDUwOV9OQU1FX29uZWxpbmUoWDUwOV9nZXRfc3ViamVjdF9uYW1lKGVycl9jZXJ0KSxidWYsMjU2KTsKLQlCSU9fcHJpbnRmKGJpb19lcnIsImRlcHRoPSVkICVzXG4iLGRlcHRoLGJ1Zik7Ci0JaWYgKCFvaykKLQkJewotCQlCSU9fcHJpbnRmKGJpb19lcnIsInZlcmlmeSBlcnJvcjpudW09JWQ6JXNcbiIsZXJyLAotCQkJWDUwOV92ZXJpZnlfY2VydF9lcnJvcl9zdHJpbmcoZXJyKSk7Ci0JCWlmIChkZXB0aCA8IDYpCi0JCQl7Ci0JCQlvaz0xOwotCQkJWDUwOV9TVE9SRV9DVFhfc2V0X2Vycm9yKGN0eCxYNTA5X1ZfT0spOwotCQkJfQotCQllbHNlCi0JCQl7Ci0JCQlvaz0wOwotCQkJWDUwOV9TVE9SRV9DVFhfc2V0X2Vycm9yKGN0eCxYNTA5X1ZfRVJSX0NFUlRfQ0hBSU5fVE9PX0xPTkcpOwotCQkJfQotCQl9Ci0Jc3dpdGNoIChjdHgtPmVycm9yKQotCQl7Ci0JY2FzZSBYNTA5X1ZfRVJSX1VOQUJMRV9UT19HRVRfSVNTVUVSX0NFUlQ6Ci0JCVg1MDlfTkFNRV9vbmVsaW5lKFg1MDlfZ2V0X2lzc3Vlcl9uYW1lKGN0eC0+Y3VycmVudF9jZXJ0KSxidWYsMjU2KTsKLQkJQklPX3ByaW50ZihiaW9fZXJyLCJpc3N1ZXI9ICVzXG4iLGJ1Zik7Ci0JCWJyZWFrOwotCWNhc2UgWDUwOV9WX0VSUl9DRVJUX05PVF9ZRVRfVkFMSUQ6Ci0JY2FzZSBYNTA5X1ZfRVJSX0VSUk9SX0lOX0NFUlRfTk9UX0JFRk9SRV9GSUVMRDoKLQkJQklPX3ByaW50ZihiaW9fZXJyLCJub3RCZWZvcmU9Iik7Ci0JCUFTTjFfVVRDVElNRV9wcmludChiaW9fZXJyLFg1MDlfZ2V0X25vdEJlZm9yZShjdHgtPmN1cnJlbnRfY2VydCkpOwotCQlCSU9fcHJpbnRmKGJpb19lcnIsIlxuIik7Ci0JCWJyZWFrOwotCWNhc2UgWDUwOV9WX0VSUl9DRVJUX0hBU19FWFBJUkVEOgotCWNhc2UgWDUwOV9WX0VSUl9FUlJPUl9JTl9DRVJUX05PVF9BRlRFUl9GSUVMRDoKLQkJQklPX3ByaW50ZihiaW9fZXJyLCJub3RBZnRlcj0iKTsKLQkJQVNOMV9VVENUSU1FX3ByaW50KGJpb19lcnIsWDUwOV9nZXRfbm90QWZ0ZXIoY3R4LT5jdXJyZW50X2NlcnQpKTsKLQkJQklPX3ByaW50ZihiaW9fZXJyLCJcbiIpOwotCQlicmVhazsKLQkJfQotCUJJT19wcmludGYoYmlvX2VyciwidmVyaWZ5IHJldHVybjolZFxuIixvayk7Ci0JcmV0dXJuKG9rKTsKLQl9CmRpZmYgLS1naXQgYS9jcnlwdG8vcHF1ZXVlL3BxdWV1ZS5oIGIvY3J5cHRvL3BxdWV1ZS9wcXVldWUuaAppbmRleCA4N2ZjOTAzLi4yNmI1MzQ4IDEwMDY0NAotLS0gYS9jcnlwdG8vcHF1ZXVlL3BxdWV1ZS5oCisrKyBiL2NyeXB0by9wcXVldWUvcHF1ZXVlLmgKQEAgLTY0LDYgKzY0LDkgQEAKICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KIAorI2lmZGVmICBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKIHR5cGVkZWYgc3RydWN0IF9wcXVldWUgKnBxdWV1ZTsKIAogdHlwZWRlZiBzdHJ1Y3QgX3BpdGVtCkBAIC05MSw0ICs5NCw3IEBACiB2b2lkICAgcHF1ZXVlX3ByaW50KHBxdWV1ZSBwcSk7CiBpbnQgICAgcHF1ZXVlX3NpemUocHF1ZXVlIHBxKTsKIAorI2lmZGVmICBfX2NwbHVzcGx1cworfQorI2VuZGlmCiAjZW5kaWYgLyogISBIRUFERVJfUFFVRVVFX0ggKi8KZGlmZiAtLWdpdCBhL2NyeXB0by9yYW5kL21kX3JhbmQuYyBiL2NyeXB0by9yYW5kL21kX3JhbmQuYwppbmRleCBhZWUxYzMwLi44ODhiNGViIDEwMDY0NAotLS0gYS9jcnlwdG8vcmFuZC9tZF9yYW5kLmMKKysrIGIvY3J5cHRvL3JhbmQvbWRfcmFuZC5jCkBAIC0xNTksNyArMTU5LDYgQEAKIHN0YXRpYyB2b2lkIHNzbGVheV9yYW5kX2NsZWFudXAodm9pZCk7CiBzdGF0aWMgdm9pZCBzc2xlYXlfcmFuZF9zZWVkKGNvbnN0IHZvaWQgKmJ1ZiwgaW50IG51bSk7CiBzdGF0aWMgdm9pZCBzc2xlYXlfcmFuZF9hZGQoY29uc3Qgdm9pZCAqYnVmLCBpbnQgbnVtLCBkb3VibGUgYWRkX2VudHJvcHkpOwotc3RhdGljIGludCBzc2xlYXlfcmFuZF9ieXRlcyh1bnNpZ25lZCBjaGFyICpidWYsIGludCBudW0sIGludCBwc2V1ZG8pOwogc3RhdGljIGludCBzc2xlYXlfcmFuZF9ub3BzZXVkb19ieXRlcyh1bnNpZ25lZCBjaGFyICpidWYsIGludCBudW0pOwogc3RhdGljIGludCBzc2xlYXlfcmFuZF9wc2V1ZG9fYnl0ZXModW5zaWduZWQgY2hhciAqYnVmLCBpbnQgbnVtKTsKIHN0YXRpYyBpbnQgc3NsZWF5X3JhbmRfc3RhdHVzKHZvaWQpOwpAQCAtMzM0LDcgKzMzMyw3IEBACiAJc3NsZWF5X3JhbmRfYWRkKGJ1ZiwgbnVtLCAoZG91YmxlKW51bSk7CiAJfQogCi1zdGF0aWMgaW50IHNzbGVheV9yYW5kX2J5dGVzKHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IG51bSwgaW50IHBzZXVkbykKK2ludCBzc2xlYXlfcmFuZF9ieXRlcyh1bnNpZ25lZCBjaGFyICpidWYsIGludCBudW0sIGludCBwc2V1ZG8sIGludCBsb2NrKQogCXsKIAlzdGF0aWMgdm9sYXRpbGUgaW50IHN0aXJyZWRfcG9vbCA9IDA7CiAJaW50IGksaixrLHN0X251bSxzdF9pZHg7CkBAIC0zODMsMTAgKzM4Miw3IEBACiAJICogYXJlIGZlZCBpbnRvIHRoZSBoYXNoIGZ1bmN0aW9uIGFuZCB0aGUgcmVzdWx0cyBhcmUga2VwdCBpbiB0aGUKIAkgKiBnbG9iYWwgJ21kJy4KIAkgKi8KLSNpZmRlZiBPUEVOU1NMX0ZJUFMKLQkvKiBOQjogaW4gRklQUyBtb2RlIHdlIGFyZSBhbHJlYWR5IHVuZGVyIGEgbG9jayAqLwotCWlmICghRklQU19tb2RlKCkpCi0jZW5kaWYKKwlpZiAobG9jaykKIAkJQ1JZUFRPX3dfbG9jayhDUllQVE9fTE9DS19SQU5EKTsKIAogCS8qIHByZXZlbnQgc3NsZWF5X3JhbmRfYnl0ZXMoKSBmcm9tIHRyeWluZyB0byBvYnRhaW4gdGhlIGxvY2sgYWdhaW4gKi8KQEAgLTQ2Niw5ICs0NjIsNyBAQAogCiAJLyogYmVmb3JlIHVubG9ja2luZywgd2UgbXVzdCBjbGVhciAnY3J5cHRvX2xvY2tfcmFuZCcgKi8KIAljcnlwdG9fbG9ja19yYW5kID0gMDsKLSNpZmRlZiBPUEVOU1NMX0ZJUFMKLQlpZiAoIUZJUFNfbW9kZSgpKQotI2VuZGlmCisJaWYgKGxvY2spCiAJCUNSWVBUT193X3VubG9jayhDUllQVE9fTE9DS19SQU5EKTsKIAogCXdoaWxlIChudW0gPiAwKQpAQCAtNTIxLDE1ICs1MTUsMTEgQEAKIAlNRF9Jbml0KCZtKTsKIAlNRF9VcGRhdGUoJm0sKHVuc2lnbmVkIGNoYXIgKikmKG1kX2NbMF0pLHNpemVvZihtZF9jKSk7CiAJTURfVXBkYXRlKCZtLGxvY2FsX21kLE1EX0RJR0VTVF9MRU5HVEgpOwotI2lmZGVmIE9QRU5TU0xfRklQUwotCWlmICghRklQU19tb2RlKCkpCi0jZW5kaWYKKwlpZiAobG9jaykKIAkJQ1JZUFRPX3dfbG9jayhDUllQVE9fTE9DS19SQU5EKTsKIAlNRF9VcGRhdGUoJm0sbWQsTURfRElHRVNUX0xFTkdUSCk7CiAJTURfRmluYWwoJm0sbWQpOwotI2lmZGVmIE9QRU5TU0xfRklQUwotCWlmICghRklQU19tb2RlKCkpCi0jZW5kaWYKKwlpZiAobG9jaykKIAkJQ1JZUFRPX3dfdW5sb2NrKENSWVBUT19MT0NLX1JBTkQpOwogCiAJRVZQX01EX0NUWF9jbGVhbnVwKCZtKTsKQEAgLTU0OCwxNCArNTM4LDE0IEBACiAKIHN0YXRpYyBpbnQgc3NsZWF5X3JhbmRfbm9wc2V1ZG9fYnl0ZXModW5zaWduZWQgY2hhciAqYnVmLCBpbnQgbnVtKQogCXsKLQlyZXR1cm4gc3NsZWF5X3JhbmRfYnl0ZXMoYnVmLCBudW0sIDApOworCXJldHVybiBzc2xlYXlfcmFuZF9ieXRlcyhidWYsIG51bSwgMCwgMSk7CiAJfQogCiAvKiBwc2V1ZG8tcmFuZG9tIGJ5dGVzIHRoYXQgYXJlIGd1YXJhbnRlZWQgdG8gYmUgdW5pcXVlIGJ1dCBub3QKICAgIHVucHJlZGljdGFibGUgKi8KIHN0YXRpYyBpbnQgc3NsZWF5X3JhbmRfcHNldWRvX2J5dGVzKHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IG51bSkgCiAJewotCXJldHVybiBzc2xlYXlfcmFuZF9ieXRlcyhidWYsIG51bSwgMSk7CisJcmV0dXJuIHNzbGVheV9yYW5kX2J5dGVzKGJ1ZiwgbnVtLCAxLCAxKTsKIAl9CiAKIHN0YXRpYyBpbnQgc3NsZWF5X3JhbmRfc3RhdHVzKHZvaWQpCmRpZmYgLS1naXQgYS9jcnlwdG8vcmFuZC9yYW5kX2xjbC5oIGIvY3J5cHRvL3JhbmQvcmFuZF9sY2wuaAppbmRleCA2MThhOGVjLi4wZmFiZjhkIDEwMDY0NAotLS0gYS9jcnlwdG8vcmFuZC9yYW5kX2xjbC5oCisrKyBiL2NyeXB0by9yYW5kL3JhbmRfbGNsLmgKQEAgLTE1NCw1ICsxNTQsNiBAQAogI2RlZmluZQlNRChhLGIsYykJCUVWUF9EaWdlc3QoYSxiLGMsTlVMTCxFVlBfbWQyKCksIE5VTEwpCiAjZW5kaWYKIAoraW50IHNzbGVheV9yYW5kX2J5dGVzKHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IG51bSwgaW50IHBzZXVkbywgaW50IGxvY2spOwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2NyeXB0by9yYW5kL3JhbmRfbGliLmMgYi9jcnlwdG8vcmFuZC9yYW5kX2xpYi5jCmluZGV4IDVhYzBlMTQuLjIzOWExY2QgMTAwNjQ0Ci0tLSBhL2NyeXB0by9yYW5kL3JhbmRfbGliLmMKKysrIGIvY3J5cHRvL3JhbmQvcmFuZF9saWIuYwpAQCAtNjgsNiArNjgsNyBAQAogI2lmZGVmIE9QRU5TU0xfRklQUwogI2luY2x1ZGUgPG9wZW5zc2wvZmlwcy5oPgogI2luY2x1ZGUgPG9wZW5zc2wvZmlwc19yYW5kLmg+CisjaW5jbHVkZSAicmFuZF9sY2wuaCIKICNlbmRpZgogCiAjaWZuZGVmIE9QRU5TU0xfTk9fRU5HSU5FCkBAIC0xOTksNyArMjAwLDcgQEAKIAkqcG91dCA9IE9QRU5TU0xfbWFsbG9jKG1pbl9sZW4pOwogCWlmICghKnBvdXQpCiAJCXJldHVybiAwOwotCWlmIChSQU5EX1NTTGVheSgpLT5ieXRlcygqcG91dCwgbWluX2xlbikgPD0gMCkKKwlpZiAoc3NsZWF5X3JhbmRfYnl0ZXMoKnBvdXQsIG1pbl9sZW4sIDAsIDApIDw9IDApCiAJCXsKIAkJT1BFTlNTTF9mcmVlKCpwb3V0KTsKIAkJKnBvdXQgPSBOVUxMOwpkaWZmIC0tZ2l0IGEvY3J5cHRvL3JhbmQvcmFuZGZpbGUuYyBiL2NyeXB0by9yYW5kL3JhbmRmaWxlLmMKaW5kZXggN2YxNDI4MC4uMTRiYTY5ZCAxMDA2NDQKLS0tIGEvY3J5cHRvL3JhbmQvcmFuZGZpbGUuYworKysgYi9jcnlwdG8vcmFuZC9yYW5kZmlsZS5jCkBAIC03OSw2ICs3OSw3IEBACiAjZW5kaWYKICNpZm5kZWYgT1BFTlNTTF9OT19QT1NJWF9JTwogIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgorIyBpbmNsdWRlIDxmY250bC5oPgogI2VuZGlmCiAKICNpZmRlZiBfV0lOMzIKZGlmZiAtLWdpdCBhL2NyeXB0by9yc2EvcnNhLmggYi9jcnlwdG8vcnNhL3JzYS5oCmluZGV4IDVmMjY5ZTUuLjExODUzZmUgMTAwNjQ0Ci0tLSBhL2NyeXB0by9yc2EvcnNhLmgKKysrIGIvY3J5cHRvL3JzYS9yc2EuaApAQCAtNTU5LDYgKzU1OSw3IEBACiAjZGVmaW5lIFJTQV9SX09QRVJBVElPTl9OT1RfQUxMT1dFRF9JTl9GSVBTX01PREUJIDE1OAogI2RlZmluZSBSU0FfUl9PUEVSQVRJT05fTk9UX1NVUFBPUlRFRF9GT1JfVEhJU19LRVlUWVBFCSAxNDgKICNkZWZpbmUgUlNBX1JfUEFERElOR19DSEVDS19GQUlMRUQJCQkgMTE0CisjZGVmaW5lIFJTQV9SX1BLQ1NfREVDT0RJTkdfRVJST1IJCQkgMTU5CiAjZGVmaW5lIFJTQV9SX1BfTk9UX1BSSU1FCQkJCSAxMjgKICNkZWZpbmUgUlNBX1JfUV9OT1RfUFJJTUUJCQkJIDEyOQogI2RlZmluZSBSU0FfUl9SU0FfT1BFUkFUSU9OU19OT1RfU1VQUE9SVEVECQkgMTMwCmRpZmYgLS1naXQgYS9jcnlwdG8vcnNhL3JzYV9lYXkuYyBiL2NyeXB0by9yc2EvcnNhX2VheS5jCmluZGV4IDg4ZWUyY2IuLmFhODEwNDUgMTAwNjQ0Ci0tLSBhL2NyeXB0by9yc2EvcnNhX2VheS5jCisrKyBiL2NyeXB0by9yc2EvcnNhX2VheS5jCkBAIC00NTksNyArNDU5LDcgQEAKIAlpZiAocGFkZGluZyA9PSBSU0FfWDkzMV9QQURESU5HKQogCQl7CiAJCUJOX3N1YihmLCByc2EtPm4sIHJldCk7Ci0JCWlmIChCTl9jbXAocmV0LCBmKSkKKwkJaWYgKEJOX2NtcChyZXQsIGYpID4gMCkKIAkJCXJlcyA9IGY7CiAJCWVsc2UKIAkJCXJlcyA9IHJldDsKZGlmZiAtLWdpdCBhL2NyeXB0by9yc2EvcnNhX2Vyci5jIGIvY3J5cHRvL3JzYS9yc2FfZXJyLmMKaW5kZXggNDZlMGJmOS4uOWRhNzlkOSAxMDA2NDQKLS0tIGEvY3J5cHRvL3JzYS9yc2FfZXJyLmMKKysrIGIvY3J5cHRvL3JzYS9yc2FfZXJyLmMKQEAgLTE3NSw2ICsxNzUsNyBAQAoge0VSUl9SRUFTT04oUlNBX1JfT1BFUkFUSU9OX05PVF9BTExPV0VEX0lOX0ZJUFNfTU9ERSksIm9wZXJhdGlvbiBub3QgYWxsb3dlZCBpbiBmaXBzIG1vZGUifSwKIHtFUlJfUkVBU09OKFJTQV9SX09QRVJBVElPTl9OT1RfU1VQUE9SVEVEX0ZPUl9USElTX0tFWVRZUEUpLCJvcGVyYXRpb24gbm90IHN1cHBvcnRlZCBmb3IgdGhpcyBrZXl0eXBlIn0sCiB7RVJSX1JFQVNPTihSU0FfUl9QQURESU5HX0NIRUNLX0ZBSUxFRCkgICwicGFkZGluZyBjaGVjayBmYWlsZWQifSwKK3tFUlJfUkVBU09OKFJTQV9SX1BLQ1NfREVDT0RJTkdfRVJST1IpICAgLCJwa2NzIGRlY29kaW5nIGVycm9yIn0sCiB7RVJSX1JFQVNPTihSU0FfUl9QX05PVF9QUklNRSkgICAgICAgICAgICwicCBub3QgcHJpbWUifSwKIHtFUlJfUkVBU09OKFJTQV9SX1FfTk9UX1BSSU1FKSAgICAgICAgICAgLCJxIG5vdCBwcmltZSJ9LAoge0VSUl9SRUFTT04oUlNBX1JfUlNBX09QRVJBVElPTlNfTk9UX1NVUFBPUlRFRCksInJzYSBvcGVyYXRpb25zIG5vdCBzdXBwb3J0ZWQifSwKZGlmZiAtLWdpdCBhL2NyeXB0by9yc2EvcnNhX29hZXAuYyBiL2NyeXB0by9yc2EvcnNhX29hZXAuYwppbmRleCBhZjRkMjRhLi5jMzYzMzMxIDEwMDY0NAotLS0gYS9jcnlwdG8vcnNhL3JzYV9vYWVwLmMKKysrIGIvY3J5cHRvL3JzYS9yc2Ffb2FlcC5jCkBAIC0xOCw2ICsxOCw3IEBACiAgKiBhbiBlcXVpdmFsZW50IG5vdGlvbi4KICAqLwogCisjaW5jbHVkZSAiY29uc3RhbnRfdGltZV9sb2NsLmgiCiAKICNpZiAhZGVmaW5lZChPUEVOU1NMX05PX1NIQSkgJiYgIWRlZmluZWQoT1BFTlNTTF9OT19TSEExKQogI2luY2x1ZGUgPHN0ZGlvLmg+CkBAIC05NSw5MiArOTYsMTE3IEBACiAJY29uc3QgdW5zaWduZWQgY2hhciAqZnJvbSwgaW50IGZsZW4sIGludCBudW0sCiAJY29uc3QgdW5zaWduZWQgY2hhciAqcGFyYW0sIGludCBwbGVuKQogCXsKLQlpbnQgaSwgZGJsZW4sIG1sZW4gPSAtMTsKLQljb25zdCB1bnNpZ25lZCBjaGFyICptYXNrZWRkYjsKLQlpbnQgbHplcm87Ci0JdW5zaWduZWQgY2hhciAqZGIgPSBOVUxMLCBzZWVkW1NIQV9ESUdFU1RfTEVOR1RIXSwgcGhhc2hbU0hBX0RJR0VTVF9MRU5HVEhdOwotCXVuc2lnbmVkIGNoYXIgKnBhZGRlZF9mcm9tOwotCWludCBiYWQgPSAwOworCWludCBpLCBkYmxlbiwgbWxlbiA9IC0xLCBvbmVfaW5kZXggPSAwLCBtc2dfaW5kZXg7CisJdW5zaWduZWQgaW50IGdvb2QsIGZvdW5kX29uZV9ieXRlOworCWNvbnN0IHVuc2lnbmVkIGNoYXIgKm1hc2tlZHNlZWQsICptYXNrZWRkYjsKKwkvKiB8ZW18IGlzIHRoZSBlbmNvZGVkIG1lc3NhZ2UsIHplcm8tcGFkZGVkIHRvIGV4YWN0bHkgfG51bXwgYnl0ZXM6CisJICogZW0gPSBZIHx8IG1hc2tlZFNlZWQgfHwgbWFza2VkREIgKi8KKwl1bnNpZ25lZCBjaGFyICpkYiA9IE5VTEwsICplbSA9IE5VTEwsIHNlZWRbRVZQX01BWF9NRF9TSVpFXSwKKwkJcGhhc2hbRVZQX01BWF9NRF9TSVpFXTsKIAotCWlmICgtLW51bSA8IDIgKiBTSEFfRElHRVNUX0xFTkdUSCArIDEpCi0JCS8qICdudW0nIGlzIHRoZSBsZW5ndGggb2YgdGhlIG1vZHVsdXMsIGkuZS4gZG9lcyBub3QgZGVwZW5kIG9uIHRoZQotCQkgKiBwYXJ0aWN1bGFyIGNpcGhlcnRleHQuICovCisgICAgICAgIGlmICh0bGVuIDw9IDAgfHwgZmxlbiA8PSAwKQorCQlyZXR1cm4gLTE7CisKKwkvKgorCSAqIHxudW18IGlzIHRoZSBsZW5ndGggb2YgdGhlIG1vZHVsdXM7IHxmbGVufCBpcyB0aGUgbGVuZ3RoIG9mIHRoZQorCSAqIGVuY29kZWQgbWVzc2FnZS4gVGhlcmVmb3JlLCBmb3IgYW55IHxmcm9tfCB0aGF0IHdhcyBvYnRhaW5lZCBieQorCSAqIGRlY3J5cHRpbmcgYSBjaXBoZXJ0ZXh0LCB3ZSBtdXN0IGhhdmUgfGZsZW58IDw9IHxudW18LiBTaW1pbGFybHksCisJICogbnVtIDwgMiAqIFNIQV9ESUdFU1RfTEVOR1RIICsgMiBtdXN0IGhvbGQgZm9yIHRoZSBtb2R1bHVzCisJICogaXJyZXNwZWN0aXZlIG9mIHRoZSBjaXBoZXJ0ZXh0LCBzZWUgUEtDUyAjMSB2Mi4yLCBzZWN0aW9uIDcuMS4yLgorCSAqIFRoaXMgZG9lcyBub3QgbGVhayBhbnkgc2lkZS1jaGFubmVsIGluZm9ybWF0aW9uLgorCSAqLworCWlmIChudW0gPCBmbGVuIHx8IG51bSA8IDIgKiBTSEFfRElHRVNUX0xFTkdUSCArIDIpCiAJCWdvdG8gZGVjb2RpbmdfZXJyOwogCi0JbHplcm8gPSBudW0gLSBmbGVuOwotCWlmIChsemVybyA8IDApCi0JCXsKLQkJLyogc2lnbmFsbGluZyB0aGlzIGVycm9yIGltbWVkaWF0ZWx5IGFmdGVyIGRldGVjdGlvbiBtaWdodCBhbGxvdwotCQkgKiBmb3Igc2lkZS1jaGFubmVsIGF0dGFja3MgKGUuZy4gdGltaW5nIGlmICdwbGVuJyBpcyBodWdlCi0JCSAqIC0tIGNmLiBKYW1lcyBILiBNYW5nZXIsICJBIENob3NlbiBDaXBoZXJ0ZXh0IEF0dGFjayBvbiBSU0EgT3B0aW1hbAotCQkgKiBBc3ltbWV0cmljIEVuY3J5cHRpb24gUGFkZGluZyAoT0FFUCkgWy4uLl0iLCBDUllQVE8gMjAwMSksCi0JCSAqIHNvIHdlIHVzZSBhICdiYWQnIGZsYWcgKi8KLQkJYmFkID0gMTsKLQkJbHplcm8gPSAwOwotCQlmbGVuID0gbnVtOyAvKiBkb24ndCBvdmVyZmxvdyB0aGUgbWVtY3B5IHRvIHBhZGRlZF9mcm9tICovCi0JCX0KLQotCWRibGVuID0gbnVtIC0gU0hBX0RJR0VTVF9MRU5HVEg7Ci0JZGIgPSBPUEVOU1NMX21hbGxvYyhkYmxlbiArIG51bSk7Ci0JaWYgKGRiID09IE5VTEwpCisJZGJsZW4gPSBudW0gLSBTSEFfRElHRVNUX0xFTkdUSCAtIDE7CisJZGIgPSBPUEVOU1NMX21hbGxvYyhkYmxlbik7CisJZW0gPSBPUEVOU1NMX21hbGxvYyhudW0pOworCWlmIChkYiA9PSBOVUxMIHx8IGVtID09IE5VTEwpCiAJCXsKIAkJUlNBZXJyKFJTQV9GX1JTQV9QQURESU5HX0NIRUNLX1BLQ1MxX09BRVAsIEVSUl9SX01BTExPQ19GQUlMVVJFKTsKLQkJcmV0dXJuIC0xOworCQlnb3RvIGNsZWFudXA7CiAJCX0KIAotCS8qIEFsd2F5cyBkbyB0aGlzIHplcm8tcGFkZGluZyBjb3B5IChldmVuIHdoZW4gbHplcm8gPT0gMCkKLQkgKiB0byBhdm9pZCBsZWFraW5nIHRpbWluZyBpbmZvIGFib3V0IHRoZSB2YWx1ZSBvZiBsemVyby4gKi8KLQlwYWRkZWRfZnJvbSA9IGRiICsgZGJsZW47Ci0JbWVtc2V0KHBhZGRlZF9mcm9tLCAwLCBsemVybyk7Ci0JbWVtY3B5KHBhZGRlZF9mcm9tICsgbHplcm8sIGZyb20sIGZsZW4pOworCS8qCisJICogQWx3YXlzIGRvIHRoaXMgemVyby1wYWRkaW5nIGNvcHkgKGV2ZW4gd2hlbiBudW0gPT0gZmxlbikgdG8gYXZvaWQKKwkgKiBsZWFraW5nIHRoYXQgaW5mb3JtYXRpb24uIFRoZSBjb3B5IHN0aWxsIGxlYWtzIHNvbWUgc2lkZS1jaGFubmVsCisJICogaW5mb3JtYXRpb24sIGJ1dCBpdCdzIGltcG9zc2libGUgdG8gaGF2ZSBhIGZpeGVkICBtZW1vcnkgYWNjZXNzCisJICogcGF0dGVybiBzaW5jZSB3ZSBjYW4ndCByZWFkIG91dCBvZiB0aGUgYm91bmRzIG9mIHxmcm9tfC4KKwkgKgorCSAqIFRPRE8oZW1pbGlhKTogQ29uc2lkZXIgcG9ydGluZyBCTl9ibjJiaW5fcGFkZGVkIGZyb20gQm9yaW5nU1NMLgorCSAqLworCW1lbXNldChlbSwgMCwgbnVtKTsKKwltZW1jcHkoZW0gKyBudW0gLSBmbGVuLCBmcm9tLCBmbGVuKTsKIAotCW1hc2tlZGRiID0gcGFkZGVkX2Zyb20gKyBTSEFfRElHRVNUX0xFTkdUSDsKKwkvKgorCSAqIFRoZSBmaXJzdCBieXRlIG11c3QgYmUgemVybywgaG93ZXZlciB3ZSBtdXN0IG5vdCBsZWFrIGlmIHRoaXMgaXMKKwkgKiB0cnVlLiBTZWUgSmFtZXMgSC4gTWFuZ2VyLCAiQSBDaG9zZW4gQ2lwaGVydGV4dCAgQXR0YWNrIG9uIFJTQQorCSAqIE9wdGltYWwgQXN5bW1ldHJpYyBFbmNyeXB0aW9uIFBhZGRpbmcgKE9BRVApIFsuLi5dIiwgQ1JZUFRPIDIwMDEpLgorCSAqLworCWdvb2QgPSBjb25zdGFudF90aW1lX2lzX3plcm8oZW1bMF0pOworCisJbWFza2Vkc2VlZCA9IGVtICsgMTsKKwltYXNrZWRkYiA9IGVtICsgMSArIFNIQV9ESUdFU1RfTEVOR1RIOwogCiAJaWYgKE1HRjEoc2VlZCwgU0hBX0RJR0VTVF9MRU5HVEgsIG1hc2tlZGRiLCBkYmxlbikpCi0JCXJldHVybiAtMTsKKwkJZ290byBjbGVhbnVwOwogCWZvciAoaSA9IDA7IGkgPCBTSEFfRElHRVNUX0xFTkdUSDsgaSsrKQotCQlzZWVkW2ldIF49IHBhZGRlZF9mcm9tW2ldOwotICAKKwkJc2VlZFtpXSBePSBtYXNrZWRzZWVkW2ldOworCiAJaWYgKE1HRjEoZGIsIGRibGVuLCBzZWVkLCBTSEFfRElHRVNUX0xFTkdUSCkpCi0JCXJldHVybiAtMTsKKwkJZ290byBjbGVhbnVwOwogCWZvciAoaSA9IDA7IGkgPCBkYmxlbjsgaSsrKQogCQlkYltpXSBePSBtYXNrZWRkYltpXTsKIAogCWlmICghRVZQX0RpZ2VzdCgodm9pZCAqKXBhcmFtLCBwbGVuLCBwaGFzaCwgTlVMTCwgRVZQX3NoYTEoKSwgTlVMTCkpCi0JCXJldHVybiAtMTsKKwkJZ290byBjbGVhbnVwOwogCi0JaWYgKENSWVBUT19tZW1jbXAoZGIsIHBoYXNoLCBTSEFfRElHRVNUX0xFTkdUSCkgIT0gMCB8fCBiYWQpCisJZ29vZCAmPSBjb25zdGFudF90aW1lX2lzX3plcm8oQ1JZUFRPX21lbWNtcChkYiwgcGhhc2gsIFNIQV9ESUdFU1RfTEVOR1RIKSk7CisKKwlmb3VuZF9vbmVfYnl0ZSA9IDA7CisJZm9yIChpID0gU0hBX0RJR0VTVF9MRU5HVEg7IGkgPCBkYmxlbjsgaSsrKQorCQl7CisJCS8qIFBhZGRpbmcgY29uc2lzdHMgb2YgYSBudW1iZXIgb2YgMC1ieXRlcywgZm9sbG93ZWQgYnkgYSAxLiAqLworCQl1bnNpZ25lZCBpbnQgZXF1YWxzMSA9IGNvbnN0YW50X3RpbWVfZXEoZGJbaV0sIDEpOworCQl1bnNpZ25lZCBpbnQgZXF1YWxzMCA9IGNvbnN0YW50X3RpbWVfaXNfemVybyhkYltpXSk7CisJCW9uZV9pbmRleCA9IGNvbnN0YW50X3RpbWVfc2VsZWN0X2ludCh+Zm91bmRfb25lX2J5dGUgJiBlcXVhbHMxLAorCQkJaSwgb25lX2luZGV4KTsKKwkJZm91bmRfb25lX2J5dGUgfD0gZXF1YWxzMTsKKwkJZ29vZCAmPSAoZm91bmRfb25lX2J5dGUgfCBlcXVhbHMwKTsKKwkJfQorCisJZ29vZCAmPSBmb3VuZF9vbmVfYnl0ZTsKKworCS8qCisJICogQXQgdGhpcyBwb2ludCB8Z29vZHwgaXMgemVybyB1bmxlc3MgdGhlIHBsYWludGV4dCB3YXMgdmFsaWQsCisJICogc28gcGxhaW50ZXh0LWF3YXJlbmVzcyBlbnN1cmVzIHRpbWluZyBzaWRlLWNoYW5uZWxzIGFyZSBubyBsb25nZXIgYQorCSAqIGNvbmNlcm4uCisJICovCisJaWYgKCFnb29kKQogCQlnb3RvIGRlY29kaW5nX2VycjsKKworCW1zZ19pbmRleCA9IG9uZV9pbmRleCArIDE7CisJbWxlbiA9IGRibGVuIC0gbXNnX2luZGV4OworCisJaWYgKHRsZW4gPCBtbGVuKQorCQl7CisJCVJTQWVycihSU0FfRl9SU0FfUEFERElOR19DSEVDS19QS0NTMV9PQUVQLCBSU0FfUl9EQVRBX1RPT19MQVJHRSk7CisJCW1sZW4gPSAtMTsKKwkJfQogCWVsc2UKIAkJewotCQlmb3IgKGkgPSBTSEFfRElHRVNUX0xFTkdUSDsgaSA8IGRibGVuOyBpKyspCi0JCQlpZiAoZGJbaV0gIT0gMHgwMCkKLQkJCQlicmVhazsKLQkJaWYgKGkgPT0gZGJsZW4gfHwgZGJbaV0gIT0gMHgwMSkKLQkJCWdvdG8gZGVjb2RpbmdfZXJyOwotCQllbHNlCi0JCQl7Ci0JCQkvKiBldmVyeXRoaW5nIGxvb2tzIE9LICovCi0KLQkJCW1sZW4gPSBkYmxlbiAtICsraTsKLQkJCWlmICh0bGVuIDwgbWxlbikKLQkJCQl7Ci0JCQkJUlNBZXJyKFJTQV9GX1JTQV9QQURESU5HX0NIRUNLX1BLQ1MxX09BRVAsIFJTQV9SX0RBVEFfVE9PX0xBUkdFKTsKLQkJCQltbGVuID0gLTE7Ci0JCQkJfQotCQkJZWxzZQotCQkJCW1lbWNweSh0bywgZGIgKyBpLCBtbGVuKTsKLQkJCX0KKwkJbWVtY3B5KHRvLCBkYiArIG1zZ19pbmRleCwgbWxlbik7CisJCWdvdG8gY2xlYW51cDsKIAkJfQotCU9QRU5TU0xfZnJlZShkYik7Ci0JcmV0dXJuIG1sZW47CiAKIGRlY29kaW5nX2VycjoKLQkvKiB0byBhdm9pZCBjaG9zZW4gY2lwaGVydGV4dCBhdHRhY2tzLCB0aGUgZXJyb3IgbWVzc2FnZSBzaG91bGQgbm90IHJldmVhbAotCSAqIHdoaWNoIGtpbmQgb2YgZGVjb2RpbmcgZXJyb3IgaGFwcGVuZWQgKi8KKwkvKiBUbyBhdm9pZCBjaG9zZW4gY2lwaGVydGV4dCBhdHRhY2tzLCB0aGUgZXJyb3IgbWVzc2FnZSBzaG91bGQgbm90IHJldmVhbAorCSAqIHdoaWNoIGtpbmQgb2YgZGVjb2RpbmcgZXJyb3IgaGFwcGVuZWQuICovCiAJUlNBZXJyKFJTQV9GX1JTQV9QQURESU5HX0NIRUNLX1BLQ1MxX09BRVAsIFJTQV9SX09BRVBfREVDT0RJTkdfRVJST1IpOworY2xlYW51cDoKIAlpZiAoZGIgIT0gTlVMTCkgT1BFTlNTTF9mcmVlKGRiKTsKLQlyZXR1cm4gLTE7CisJaWYgKGVtICE9IE5VTEwpIE9QRU5TU0xfZnJlZShlbSk7CisJcmV0dXJuIG1sZW47CiAJfQogCiBpbnQgUEtDUzFfTUdGMSh1bnNpZ25lZCBjaGFyICptYXNrLCBsb25nIGxlbiwKZGlmZiAtLWdpdCBhL2NyeXB0by9yc2EvcnNhX3BrMS5jIGIvY3J5cHRvL3JzYS9yc2FfcGsxLmMKaW5kZXggODU2MDc1NS4uYzJkYTU2ZiAxMDA2NDQKLS0tIGEvY3J5cHRvL3JzYS9yc2FfcGsxLmMKKysrIGIvY3J5cHRvL3JzYS9yc2FfcGsxLmMKQEAgLTU2LDYgKzU2LDggQEAKICAqIFtpbmNsdWRpbmcgdGhlIEdOVSBQdWJsaWMgTGljZW5jZS5dCiAgKi8KIAorI2luY2x1ZGUgImNvbnN0YW50X3RpbWVfbG9jbC5oIgorCiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlICJjcnlwdGxpYi5oIgogI2luY2x1ZGUgPG9wZW5zc2wvYm4uaD4KQEAgLTE4MSw0NCArMTgzLDg3IEBACiBpbnQgUlNBX3BhZGRpbmdfY2hlY2tfUEtDUzFfdHlwZV8yKHVuc2lnbmVkIGNoYXIgKnRvLCBpbnQgdGxlbiwKIAkgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmZyb20sIGludCBmbGVuLCBpbnQgbnVtKQogCXsKLQlpbnQgaSxqOwotCWNvbnN0IHVuc2lnbmVkIGNoYXIgKnA7CisJaW50IGk7CisJLyogfGVtfCBpcyB0aGUgZW5jb2RlZCBtZXNzYWdlLCB6ZXJvLXBhZGRlZCB0byBleGFjdGx5IHxudW18IGJ5dGVzICovCisJdW5zaWduZWQgY2hhciAqZW0gPSBOVUxMOworCXVuc2lnbmVkIGludCBnb29kLCBmb3VuZF96ZXJvX2J5dGU7CisJaW50IHplcm9faW5kZXggPSAwLCBtc2dfaW5kZXgsIG1sZW4gPSAtMTsKIAotCXA9ZnJvbTsKLQlpZiAoKG51bSAhPSAoZmxlbisxKSkgfHwgKCoocCsrKSAhPSAwMikpCisgICAgICAgIGlmICh0bGVuIDwgMCB8fCBmbGVuIDwgMCkKKwkJcmV0dXJuIC0xOworCisJLyogUEtDUyMxIHYxLjUgZGVjcnlwdGlvbi4gU2VlICJQS0NTICMxIHYyLjI6IFJTQSBDcnlwdG9ncmFwaHkKKwkgKiBTdGFuZGFyZCIsIHNlY3Rpb24gNy4yLjIuICovCisKKwlpZiAoZmxlbiA+IG51bSkKKwkJZ290byBlcnI7CisKKwlpZiAobnVtIDwgMTEpCisJCWdvdG8gZXJyOworCisJZW0gPSBPUEVOU1NMX21hbGxvYyhudW0pOworCWlmIChlbSA9PSBOVUxMKQogCQl7Ci0JCVJTQWVycihSU0FfRl9SU0FfUEFERElOR19DSEVDS19QS0NTMV9UWVBFXzIsUlNBX1JfQkxPQ0tfVFlQRV9JU19OT1RfMDIpOwotCQlyZXR1cm4oLTEpOworCQlSU0FlcnIoUlNBX0ZfUlNBX1BBRERJTkdfQ0hFQ0tfUEtDUzFfVFlQRV8yLCBFUlJfUl9NQUxMT0NfRkFJTFVSRSk7CisJCXJldHVybiAtMTsKIAkJfQotI2lmZGVmIFBLQ1MxX0NIRUNLCi0JcmV0dXJuKG51bS0xMSk7Ci0jZW5kaWYKKwltZW1zZXQoZW0sIDAsIG51bSk7CisJLyoKKwkgKiBBbHdheXMgZG8gdGhpcyB6ZXJvLXBhZGRpbmcgY29weSAoZXZlbiB3aGVuIG51bSA9PSBmbGVuKSB0byBhdm9pZAorCSAqIGxlYWtpbmcgdGhhdCBpbmZvcm1hdGlvbi4gVGhlIGNvcHkgc3RpbGwgbGVha3Mgc29tZSBzaWRlLWNoYW5uZWwKKwkgKiBpbmZvcm1hdGlvbiwgYnV0IGl0J3MgaW1wb3NzaWJsZSB0byBoYXZlIGEgZml4ZWQgIG1lbW9yeSBhY2Nlc3MKKwkgKiBwYXR0ZXJuIHNpbmNlIHdlIGNhbid0IHJlYWQgb3V0IG9mIHRoZSBib3VuZHMgb2YgfGZyb218LgorCSAqCisJICogVE9ETyhlbWlsaWEpOiBDb25zaWRlciBwb3J0aW5nIEJOX2JuMmJpbl9wYWRkZWQgZnJvbSBCb3JpbmdTU0wuCisJICovCisJbWVtY3B5KGVtICsgbnVtIC0gZmxlbiwgZnJvbSwgZmxlbik7CiAKLQkvKiBzY2FuIG92ZXIgcGFkZGluZyBkYXRhICovCi0Jaj1mbGVuLTE7IC8qIG9uZSBmb3IgdHlwZS4gKi8KLQlmb3IgKGk9MDsgaTxqOyBpKyspCi0JCWlmICgqKHArKykgPT0gMCkgYnJlYWs7CisJZ29vZCA9IGNvbnN0YW50X3RpbWVfaXNfemVybyhlbVswXSk7CisJZ29vZCAmPSBjb25zdGFudF90aW1lX2VxKGVtWzFdLCAyKTsKIAotCWlmIChpID09IGopCisJZm91bmRfemVyb19ieXRlID0gMDsKKwlmb3IgKGkgPSAyOyBpIDwgbnVtOyBpKyspCiAJCXsKLQkJUlNBZXJyKFJTQV9GX1JTQV9QQURESU5HX0NIRUNLX1BLQ1MxX1RZUEVfMixSU0FfUl9OVUxMX0JFRk9SRV9CTE9DS19NSVNTSU5HKTsKLQkJcmV0dXJuKC0xKTsKKwkJdW5zaWduZWQgaW50IGVxdWFsczAgPSBjb25zdGFudF90aW1lX2lzX3plcm8oZW1baV0pOworCQl6ZXJvX2luZGV4ID0gY29uc3RhbnRfdGltZV9zZWxlY3RfaW50KH5mb3VuZF96ZXJvX2J5dGUgJiBlcXVhbHMwLCBpLCB6ZXJvX2luZGV4KTsKKwkJZm91bmRfemVyb19ieXRlIHw9IGVxdWFsczA7CiAJCX0KIAotCWlmIChpIDwgOCkKLQkJewotCQlSU0FlcnIoUlNBX0ZfUlNBX1BBRERJTkdfQ0hFQ0tfUEtDUzFfVFlQRV8yLFJTQV9SX0JBRF9QQURfQllURV9DT1VOVCk7Ci0JCXJldHVybigtMSk7Ci0JCX0KLQlpKys7IC8qIFNraXAgb3ZlciB0aGUgJ1wwJyAqLwotCWotPWk7Ci0JaWYgKGogPiB0bGVuKQotCQl7Ci0JCVJTQWVycihSU0FfRl9SU0FfUEFERElOR19DSEVDS19QS0NTMV9UWVBFXzIsUlNBX1JfREFUQV9UT09fTEFSR0UpOwotCQlyZXR1cm4oLTEpOwotCQl9Ci0JbWVtY3B5KHRvLHAsKHVuc2lnbmVkIGludClqKTsKKwkvKgorCSAqIFBTIG11c3QgYmUgYXQgbGVhc3QgOCBieXRlcyBsb25nLCBhbmQgaXQgc3RhcnRzIHR3byBieXRlcyBpbnRvIHxlbXwuCisgICAgICAgICAqIElmIHdlIG5ldmVyIGZvdW5kIGEgMC1ieXRlLCB0aGVuIHx6ZXJvX2luZGV4fCBpcyAwIGFuZCB0aGUgY2hlY2sKKwkgKiBhbHNvIGZhaWxzLgorCSAqLworCWdvb2QgJj0gY29uc3RhbnRfdGltZV9nZSgodW5zaWduZWQgaW50KSh6ZXJvX2luZGV4KSwgMiArIDgpOwogCi0JcmV0dXJuKGopOworCS8qIFNraXAgdGhlIHplcm8gYnl0ZS4gVGhpcyBpcyBpbmNvcnJlY3QgaWYgd2UgbmV2ZXIgZm91bmQgYSB6ZXJvLWJ5dGUKKwkgKiBidXQgaW4gdGhpcyBjYXNlIHdlIGFsc28gZG8gbm90IGNvcHkgdGhlIG1lc3NhZ2Ugb3V0LiAqLworCW1zZ19pbmRleCA9IHplcm9faW5kZXggKyAxOworCW1sZW4gPSBudW0gLSBtc2dfaW5kZXg7CisKKwkvKiBGb3IgZ29vZCBtZWFzdXJlLCBkbyB0aGlzIGNoZWNrIGluIGNvbnN0YW50IHRpbWUgYXMgd2VsbDsgaXQgY291bGQKKwkgKiBsZWFrIHNvbWV0aGluZyBpZiB8dGxlbnwgd2FzIGFzc3VtaW5nIHZhbGlkIHBhZGRpbmcuICovCisJZ29vZCAmPSBjb25zdGFudF90aW1lX2dlKCh1bnNpZ25lZCBpbnQpKHRsZW4pLCAodW5zaWduZWQgaW50KShtbGVuKSk7CisKKwkvKgorCSAqIFdlIGNhbid0IGNvbnRpbnVlIGluIGNvbnN0YW50LXRpbWUgYmVjYXVzZSB3ZSBuZWVkIHRvIGNvcHkgdGhlIHJlc3VsdAorCSAqIGFuZCB3ZSBjYW5ub3QgZmFrZSBpdHMgbGVuZ3RoLiBUaGlzIHVuYXZvaWRhYmx5IGxlYWtzIHRpbWluZworCSAqIGluZm9ybWF0aW9uIGF0IHRoZSBBUEkgYm91bmRhcnkuCisJICogVE9ETyhlbWlsaWEpOiB0aGlzIGNvdWxkIGJlIGFkZHJlc3NlZCBhdCB0aGUgY2FsbCBzaXRlLAorCSAqIHNlZSBCb3JpbmdTU0wgY29tbWl0IDBhYTA3NjczNDBiYWY5MjViZGE0ODA0ODgyYWFiMGNiOTc0YjJkMjYuCisJICovCisJaWYgKCFnb29kKQorCQl7CisJCW1sZW4gPSAtMTsKKwkJZ290byBlcnI7CisJCX0KKworCW1lbWNweSh0bywgZW0gKyBtc2dfaW5kZXgsIG1sZW4pOworCitlcnI6CisJaWYgKGVtICE9IE5VTEwpCisJCU9QRU5TU0xfZnJlZShlbSk7CisJaWYgKG1sZW4gPT0gLTEpCisJCVJTQWVycihSU0FfRl9SU0FfUEFERElOR19DSEVDS19QS0NTMV9UWVBFXzIsIFJTQV9SX1BLQ1NfREVDT0RJTkdfRVJST1IpOworCXJldHVybiBtbGVuOwogCX0KLQpkaWZmIC0tZ2l0IGEvY3J5cHRvL3JzYS9yc2Ffc2lnbi5jIGIvY3J5cHRvL3JzYS9yc2Ffc2lnbi5jCmluZGV4IGI2ZjYwMzcuLjIyNWJjZmUgMTAwNjQ0Ci0tLSBhL2NyeXB0by9yc2EvcnNhX3NpZ24uYworKysgYi9jcnlwdG8vcnNhL3JzYV9zaWduLmMKQEAgLTE1MSw2ICsxNTEsMjUgQEAKIAlyZXR1cm4ocmV0KTsKIAl9CiAKKy8qCisgKiBDaGVjayBEaWdlc3RJbmZvIHN0cnVjdHVyZSBkb2VzIG5vdCBjb250YWluIGV4dHJhbmVvdXMgZGF0YSBieSByZWVuY29kaW5nCisgKiB1c2luZyBERVIgYW5kIGNoZWNraW5nIGVuY29kaW5nIGFnYWluc3Qgb3JpZ2luYWwuIAorICovCitzdGF0aWMgaW50IHJzYV9jaGVja19kaWdlc3RpbmZvKFg1MDlfU0lHICpzaWcsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRpbmZvLCBpbnQgZGluZm9sZW4pCisJeworCXVuc2lnbmVkIGNoYXIgKmRlciA9IE5VTEw7CisJaW50IGRlcmxlbjsKKwlpbnQgcmV0ID0gMDsKKwlkZXJsZW4gPSBpMmRfWDUwOV9TSUcoc2lnLCAmZGVyKTsKKwlpZiAoZGVybGVuIDw9IDApCisJCXJldHVybiAwOworCWlmIChkZXJsZW4gPT0gZGluZm9sZW4gJiYgIW1lbWNtcChkaW5mbywgZGVyLCBkZXJsZW4pKQorCQlyZXQgPSAxOworCU9QRU5TU0xfY2xlYW5zZShkZXIsIGRlcmxlbik7CisJT1BFTlNTTF9mcmVlKGRlcik7CisJcmV0dXJuIHJldDsKKwl9CisKIGludCBpbnRfcnNhX3ZlcmlmeShpbnQgZHR5cGUsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKm0sCiAJCQkgIHVuc2lnbmVkIGludCBtX2xlbiwKIAkJCSAgdW5zaWduZWQgY2hhciAqcm0sIHNpemVfdCAqcHJtX2xlbiwKQEAgLTIyOCw3ICsyNDcsNyBAQAogCQlpZiAoc2lnID09IE5VTEwpIGdvdG8gZXJyOwogCiAJCS8qIEV4Y2VzcyBkYXRhIGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBmb3JnZXJpZXMgKi8KLQkJaWYocCAhPSBzK2kpCisJCWlmKHAgIT0gcytpIHx8ICFyc2FfY2hlY2tfZGlnZXN0aW5mbyhzaWcsIHMsIGkpKQogCQkJewogCQkJUlNBZXJyKFJTQV9GX0lOVF9SU0FfVkVSSUZZLFJTQV9SX0JBRF9TSUdOQVRVUkUpOwogCQkJZ290byBlcnI7CmRpZmYgLS1naXQgYS9jcnlwdG8vc3JwL3NycF9saWIuYyBiL2NyeXB0by9zcnAvc3JwX2xpYi5jCmluZGV4IDdjMWRjYzUuLjgzZDQxN2EgMTAwNjQ0Ci0tLSBhL2NyeXB0by9zcnAvc3JwX2xpYi5jCisrKyBiL2NyeXB0by9zcnAvc3JwX2xpYi5jCkBAIC04OSw2ICs4OSw5IEBACiAJaW50IGxvbmdnIDsKIAlpbnQgbG9uZ04gPSBCTl9udW1fYnl0ZXMoTik7CiAKKwlpZiAoQk5fdWNtcChnLCBOKSA+PSAwKQorCQlyZXR1cm4gTlVMTDsKKwogCWlmICgodG1wID0gT1BFTlNTTF9tYWxsb2MobG9uZ04pKSA9PSBOVUxMKQogCQlyZXR1cm4gTlVMTDsKIAlCTl9ibjJiaW4oTix0bXApIDsKQEAgLTEyMSw2ICsxMjQsOSBAQAogCWlmICgoQSA9PSBOVUxMKSB8fChCID09IE5VTEwpIHx8IChOID09IE5VTEwpKQogCQlyZXR1cm4gTlVMTDsKIAorCWlmIChCTl91Y21wKEEsIE4pID49IDAgfHwgQk5fdWNtcChCLCBOKSA+PSAwKQorCQlyZXR1cm4gTlVMTDsKKwogCWxvbmdOPSBCTl9udW1fYnl0ZXMoTik7CiAKIAlpZiAoKGNBQiA9IE9QRU5TU0xfbWFsbG9jKDIqbG9uZ04pKSA9PSBOVUxMKSAKZGlmZiAtLWdpdCBhL2NyeXB0by9zdGFjay9zYWZlc3RhY2suaCBiL2NyeXB0by9zdGFjay9zYWZlc3RhY2suaAppbmRleCBlYTNhYTBkLi5iYzE5NGNiIDEwMDY0NAotLS0gYS9jcnlwdG8vc3RhY2svc2FmZXN0YWNrLmgKKysrIGIvY3J5cHRvL3N0YWNrL3NhZmVzdGFjay5oCkBAIC01Nyw2ICs1NywxMCBAQAogCiAjaW5jbHVkZSA8b3BlbnNzbC9zdGFjay5oPgogCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKICNpZm5kZWYgQ0hFQ0tFRF9QVFJfT0YKICNkZWZpbmUgQ0hFQ0tFRF9QVFJfT0YodHlwZSwgcCkgXAogICAgICgodm9pZCopICgxID8gcCA6ICh0eXBlKikwKSkKQEAgLTI2NjAsNCArMjY2NCw4IEBACiAjZGVmaW5lIGxoX1NTTF9TRVNTSU9OX2ZyZWUobGgpIExITV9saF9mcmVlKFNTTF9TRVNTSU9OLGxoKQogLyogRW5kIG9mIHV0aWwvbWtzdGFjay5wbCBibG9jaywgeW91IG1heSBub3cgZWRpdCA6LSkgKi8KIAorCisjaWZkZWYgIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKICNlbmRpZiAvKiAhZGVmaW5lZCBIRUFERVJfU0FGRVNUQUNLX0ggKi8KZGlmZiAtLWdpdCBhL2NyeXB0by91aS91aV9saWIuYyBiL2NyeXB0by91aS91aV9saWIuYwppbmRleCBhOGFiYzI3Li4xNjdkYTAwIDEwMDY0NAotLS0gYS9jcnlwdG8vdWkvdWlfbGliLmMKKysrIGIvY3J5cHRvL3VpL3VpX2xpYi5jCkBAIC05MTYsOSArOTE2LDkgQEAKIAkJCQlicmVhazsKIAkJCQl9CiAJCQl9CisJCX0KIAlkZWZhdWx0OgogCQlicmVhazsKIAkJfQotCQl9CiAJcmV0dXJuIDA7CiAJfQpkaWZmIC0tZ2l0IGEvZV9vcy5oIGIvZV9vcy5oCmluZGV4IDZhMGFhZDEuLjczMzE1NWUgMTAwNjQ0Ci0tLSBhL2Vfb3MuaAorKysgYi9lX29zLmgKQEAgLTM3Myw3ICszNzMsMTYgQEAKICMgIGRlZmluZSBjaGVja193aW5udCgpICgxKQogI2Vsc2UKICMgIGRlZmluZSBjaGVja193aW5udCgpIChHZXRWZXJzaW9uKCkgPCAweDgwMDAwMDAwKQotI2VuZGlmIAorI2VuZGlmCisKKy8qCisgKiBWaXN1YWwgU3R1ZGlvOiBpbmxpbmUgaXMgYXZhaWxhYmxlIGluIEMrKyBvbmx5LCBob3dldmVyCisgKiBfX2lubGluZSBpcyBhdmFpbGFibGUgZm9yIEMsIHNlZQorICogaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L3o4eTF5eTg4LmFzcHgKKyAqLworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmICFkZWZpbmVkKF9fY3BsdXNwbHVzKSAmJiAhZGVmaW5lZChpbmxpbmUpCisjICBkZWZpbmUgaW5saW5lIF9faW5saW5lCisjZW5kaWYKIAogI2Vsc2UgLyogVGhlIG5vbi1taWNyb3NvZnQgd29ybGQgKi8KIApAQCAtNzM4LDQgKzc0NywzIEBACiAjZW5kaWYKIAogI2VuZGlmCi0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvb3BlbnNzbC9lYmNkaWMuaCBiL2luY2x1ZGUvb3BlbnNzbC9lYmNkaWMuaAppbmRleCA2ZDY1YWZjLi44NWYzY2Y3IDEwMDY0NAotLS0gYS9pbmNsdWRlL29wZW5zc2wvZWJjZGljLmgKKysrIGIvaW5jbHVkZS9vcGVuc3NsL2ViY2RpYy5oCkBAIC01LDYgKzUsMTAgQEAKIAogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogCisjaWZkZWYgIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCiAvKiBBdm9pZCBuYW1lIGNsYXNoZXMgd2l0aCBvdGhlciBhcHBsaWNhdGlvbnMgKi8KICNkZWZpbmUgb3NfdG9hc2NpaSAgIF9vcGVuc3NsX29zX3RvYXNjaWkKICNkZWZpbmUgb3NfdG9lYmNkaWMgIF9vcGVuc3NsX29zX3RvZWJjZGljCkBAIC0xNiw0ICsyMCw3IEBACiB2b2lkICplYmNkaWMyYXNjaWkodm9pZCAqZGVzdCwgY29uc3Qgdm9pZCAqc3JjZSwgc2l6ZV90IGNvdW50KTsKIHZvaWQgKmFzY2lpMmViY2RpYyh2b2lkICpkZXN0LCBjb25zdCB2b2lkICpzcmNlLCBzaXplX3QgY291bnQpOwogCisjaWZkZWYgIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9vcGVuc3NsL2VjLmggYi9pbmNsdWRlL29wZW5zc2wvZWMuaAppbmRleCBkMDA4YTBkLi5iNmU3NDViIDEwMDY0NAotLS0gYS9pbmNsdWRlL29wZW5zc2wvZWMuaAorKysgYi9pbmNsdWRlL29wZW5zc2wvZWMuaApAQCAtNjI5LDcgKzYyOSw3IEBACiBpbnQgRUNfUE9JTlRfbWFrZV9hZmZpbmUoY29uc3QgRUNfR1JPVVAgKmdyb3VwLCBFQ19QT0lOVCAqcG9pbnQsIEJOX0NUWCAqY3R4KTsKIGludCBFQ19QT0lOVHNfbWFrZV9hZmZpbmUoY29uc3QgRUNfR1JPVVAgKmdyb3VwLCBzaXplX3QgbnVtLCBFQ19QT0lOVCAqcG9pbnRzW10sIEJOX0NUWCAqY3R4KTsKIAotLyoqIENvbXB1dGVzIHIgPSBnZW5lcmF0b3IgKiBuIHN1bV97aT0wfV5udW0gcFtpXSAqIG1baV0KKy8qKiBDb21wdXRlcyByID0gZ2VuZXJhdG9yICogbiBzdW1fe2k9MH1ee251bS0xfSBwW2ldICogbVtpXQogICogIFxwYXJhbSAgZ3JvdXAgIHVuZGVybHlpbmcgRUNfR1JPVVAgb2JqZWN0CiAgKiAgXHBhcmFtICByICAgICAgRUNfUE9JTlQgb2JqZWN0IGZvciB0aGUgcmVzdWx0CiAgKiAgXHBhcmFtICBuICAgICAgQklHTlVNIHdpdGggdGhlIG11bHRpcGxpZXIgZm9yIHRoZSBncm91cCBnZW5lcmF0b3IgKG9wdGlvbmFsKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9vcGVuc3NsL21vZGVzLmggYi9pbmNsdWRlL29wZW5zc2wvbW9kZXMuaAppbmRleCBmMTgyMTViLi43NzczYzI1IDEwMDY0NAotLS0gYS9pbmNsdWRlL29wZW5zc2wvbW9kZXMuaAorKysgYi9pbmNsdWRlL29wZW5zc2wvbW9kZXMuaApAQCAtNyw2ICs3LDkgQEAKIAogI2luY2x1ZGUgPHN0ZGRlZi5oPgogCisjaWZkZWYgIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgogdHlwZWRlZiB2b2lkICgqYmxvY2sxMjhfZikoY29uc3QgdW5zaWduZWQgY2hhciBpblsxNl0sCiAJCQl1bnNpZ25lZCBjaGFyIG91dFsxNl0sCiAJCQljb25zdCB2b2lkICprZXkpOwpAQCAtMTMzLDMgKzEzNiw2IEBACiAKIGludCBDUllQVE9feHRzMTI4X2VuY3J5cHQoY29uc3QgWFRTMTI4X0NPTlRFWFQgKmN0eCwgY29uc3QgdW5zaWduZWQgY2hhciBpdlsxNl0sCiAJY29uc3QgdW5zaWduZWQgY2hhciAqaW5wLCB1bnNpZ25lZCBjaGFyICpvdXQsIHNpemVfdCBsZW4sIGludCBlbmMpOworI2lmZGVmICBfX2NwbHVzcGx1cworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL29wZW5zc2wvb3BlbnNzbGNvbmYtMzIuaCBiL2luY2x1ZGUvb3BlbnNzbC9vcGVuc3NsY29uZi0zMi5oCmluZGV4IGNhZjZmMWIuLmI1YjNkZDJiIDEwMDY0NAotLS0gYS9pbmNsdWRlL29wZW5zc2wvb3BlbnNzbGNvbmYtMzIuaAorKysgYi9pbmNsdWRlL29wZW5zc2wvb3BlbnNzbGNvbmYtMzIuaApAQCAtMSw2ICsxLDkgQEAKIC8qIG9wZW5zc2xjb25mLmggKi8KIC8qIFdBUk5JTkc6IEdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGZyb20gb3BlbnNzbGNvbmYuaC5pbiBieSBDb25maWd1cmUuICovCiAKKyNpZmRlZiAgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCiAvKiBPcGVuU1NMIHdhcyBjb25maWd1cmVkIHdpdGggdGhlIGZvbGxvd2luZyBvcHRpb25zOiAqLwogI2lmbmRlZiBPUEVOU1NMX0RPSU5HX01BS0VERVBFTkQKIApAQCAtNzQsNiArNzcsOSBAQAogI2lmbmRlZiBPUEVOU1NMX05PX1NUT1JFCiAjIGRlZmluZSBPUEVOU1NMX05PX1NUT1JFCiAjZW5kaWYKKyNpZm5kZWYgT1BFTlNTTF9OT19VTklUX1RFU1QKKyMgZGVmaW5lIE9QRU5TU0xfTk9fVU5JVF9URVNUCisjZW5kaWYKICNpZm5kZWYgT1BFTlNTTF9OT19XSElSTFBPT0wKICMgZGVmaW5lIE9QRU5TU0xfTk9fV0hJUkxQT09MCiAjZW5kaWYKQEAgLTE2MSw2ICsxNjcsOSBAQAogIyBpZiBkZWZpbmVkKE9QRU5TU0xfTk9fU1RPUkUpICYmICFkZWZpbmVkKE5PX1NUT1JFKQogIyAgZGVmaW5lIE5PX1NUT1JFCiAjIGVuZGlmCisjIGlmIGRlZmluZWQoT1BFTlNTTF9OT19VTklUX1RFU1QpICYmICFkZWZpbmVkKE5PX1VOSVRfVEVTVCkKKyMgIGRlZmluZSBOT19VTklUX1RFU1QKKyMgZW5kaWYKICMgaWYgZGVmaW5lZChPUEVOU1NMX05PX1dISVJMUE9PTCkgJiYgIWRlZmluZWQoTk9fV0hJUkxQT09MKQogIyAgZGVmaW5lIE5PX1dISVJMUE9PTAogIyBlbmRpZgpAQCAtMzIwLDMgKzMyOSw2IEBACiAKICNlbmRpZiAvKiBERVNfREVGQVVMVF9PUFRJT05TICovCiAjZW5kaWYgLyogSEVBREVSX0RFU19MT0NMX0ggKi8KKyNpZmRlZiAgX19jcGx1c3BsdXMKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9vcGVuc3NsL29wZW5zc2xjb25mLTY0LmggYi9pbmNsdWRlL29wZW5zc2wvb3BlbnNzbGNvbmYtNjQuaAppbmRleCA4OGZiMDQxLi4zMGU3YWQ4IDEwMDY0NAotLS0gYS9pbmNsdWRlL29wZW5zc2wvb3BlbnNzbGNvbmYtNjQuaAorKysgYi9pbmNsdWRlL29wZW5zc2wvb3BlbnNzbGNvbmYtNjQuaApAQCAtMSw2ICsxLDkgQEAKIC8qIG9wZW5zc2xjb25mLmggKi8KIC8qIFdBUk5JTkc6IEdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGZyb20gb3BlbnNzbGNvbmYuaC5pbiBieSBDb25maWd1cmUuICovCiAKKyNpZmRlZiAgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCiAvKiBPcGVuU1NMIHdhcyBjb25maWd1cmVkIHdpdGggdGhlIGZvbGxvd2luZyBvcHRpb25zOiAqLwogI2lmbmRlZiBPUEVOU1NMX0RPSU5HX01BS0VERVBFTkQKIApAQCAtNzQsNiArNzcsOSBAQAogI2lmbmRlZiBPUEVOU1NMX05PX1NUT1JFCiAjIGRlZmluZSBPUEVOU1NMX05PX1NUT1JFCiAjZW5kaWYKKyNpZm5kZWYgT1BFTlNTTF9OT19VTklUX1RFU1QKKyMgZGVmaW5lIE9QRU5TU0xfTk9fVU5JVF9URVNUCisjZW5kaWYKICNpZm5kZWYgT1BFTlNTTF9OT19XSElSTFBPT0wKICMgZGVmaW5lIE9QRU5TU0xfTk9fV0hJUkxQT09MCiAjZW5kaWYKQEAgLTE2MSw2ICsxNjcsOSBAQAogIyBpZiBkZWZpbmVkKE9QRU5TU0xfTk9fU1RPUkUpICYmICFkZWZpbmVkKE5PX1NUT1JFKQogIyAgZGVmaW5lIE5PX1NUT1JFCiAjIGVuZGlmCisjIGlmIGRlZmluZWQoT1BFTlNTTF9OT19VTklUX1RFU1QpICYmICFkZWZpbmVkKE5PX1VOSVRfVEVTVCkKKyMgIGRlZmluZSBOT19VTklUX1RFU1QKKyMgZW5kaWYKICMgaWYgZGVmaW5lZChPUEVOU1NMX05PX1dISVJMUE9PTCkgJiYgIWRlZmluZWQoTk9fV0hJUkxQT09MKQogIyAgZGVmaW5lIE5PX1dISVJMUE9PTAogIyBlbmRpZgpAQCAtMzIwLDMgKzMyOSw2IEBACiAKICNlbmRpZiAvKiBERVNfREVGQVVMVF9PUFRJT05TICovCiAjZW5kaWYgLyogSEVBREVSX0RFU19MT0NMX0ggKi8KKyNpZmRlZiAgX19jcGx1c3BsdXMKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9vcGVuc3NsL29wZW5zc2xjb25mLXN0YXRpYy0zMi5oIGIvaW5jbHVkZS9vcGVuc3NsL29wZW5zc2xjb25mLXN0YXRpYy0zMi5oCmluZGV4IGNhZjZmMWIuLmI1YjNkZDJiIDEwMDY0NAotLS0gYS9pbmNsdWRlL29wZW5zc2wvb3BlbnNzbGNvbmYtc3RhdGljLTMyLmgKKysrIGIvaW5jbHVkZS9vcGVuc3NsL29wZW5zc2xjb25mLXN0YXRpYy0zMi5oCkBAIC0xLDYgKzEsOSBAQAogLyogb3BlbnNzbGNvbmYuaCAqLwogLyogV0FSTklORzogR2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgZnJvbSBvcGVuc3NsY29uZi5oLmluIGJ5IENvbmZpZ3VyZS4gKi8KIAorI2lmZGVmICBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKIC8qIE9wZW5TU0wgd2FzIGNvbmZpZ3VyZWQgd2l0aCB0aGUgZm9sbG93aW5nIG9wdGlvbnM6ICovCiAjaWZuZGVmIE9QRU5TU0xfRE9JTkdfTUFLRURFUEVORAogCkBAIC03NCw2ICs3Nyw5IEBACiAjaWZuZGVmIE9QRU5TU0xfTk9fU1RPUkUKICMgZGVmaW5lIE9QRU5TU0xfTk9fU1RPUkUKICNlbmRpZgorI2lmbmRlZiBPUEVOU1NMX05PX1VOSVRfVEVTVAorIyBkZWZpbmUgT1BFTlNTTF9OT19VTklUX1RFU1QKKyNlbmRpZgogI2lmbmRlZiBPUEVOU1NMX05PX1dISVJMUE9PTAogIyBkZWZpbmUgT1BFTlNTTF9OT19XSElSTFBPT0wKICNlbmRpZgpAQCAtMTYxLDYgKzE2Nyw5IEBACiAjIGlmIGRlZmluZWQoT1BFTlNTTF9OT19TVE9SRSkgJiYgIWRlZmluZWQoTk9fU1RPUkUpCiAjICBkZWZpbmUgTk9fU1RPUkUKICMgZW5kaWYKKyMgaWYgZGVmaW5lZChPUEVOU1NMX05PX1VOSVRfVEVTVCkgJiYgIWRlZmluZWQoTk9fVU5JVF9URVNUKQorIyAgZGVmaW5lIE5PX1VOSVRfVEVTVAorIyBlbmRpZgogIyBpZiBkZWZpbmVkKE9QRU5TU0xfTk9fV0hJUkxQT09MKSAmJiAhZGVmaW5lZChOT19XSElSTFBPT0wpCiAjICBkZWZpbmUgTk9fV0hJUkxQT09MCiAjIGVuZGlmCkBAIC0zMjAsMyArMzI5LDYgQEAKIAogI2VuZGlmIC8qIERFU19ERUZBVUxUX09QVElPTlMgKi8KICNlbmRpZiAvKiBIRUFERVJfREVTX0xPQ0xfSCAqLworI2lmZGVmICBfX2NwbHVzcGx1cworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL29wZW5zc2wvb3BlbnNzbGNvbmYtc3RhdGljLTY0LmggYi9pbmNsdWRlL29wZW5zc2wvb3BlbnNzbGNvbmYtc3RhdGljLTY0LmgKaW5kZXggODhmYjA0MS4uMzBlN2FkOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9vcGVuc3NsL29wZW5zc2xjb25mLXN0YXRpYy02NC5oCisrKyBiL2luY2x1ZGUvb3BlbnNzbC9vcGVuc3NsY29uZi1zdGF0aWMtNjQuaApAQCAtMSw2ICsxLDkgQEAKIC8qIG9wZW5zc2xjb25mLmggKi8KIC8qIFdBUk5JTkc6IEdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGZyb20gb3BlbnNzbGNvbmYuaC5pbiBieSBDb25maWd1cmUuICovCiAKKyNpZmRlZiAgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCiAvKiBPcGVuU1NMIHdhcyBjb25maWd1cmVkIHdpdGggdGhlIGZvbGxvd2luZyBvcHRpb25zOiAqLwogI2lmbmRlZiBPUEVOU1NMX0RPSU5HX01BS0VERVBFTkQKIApAQCAtNzQsNiArNzcsOSBAQAogI2lmbmRlZiBPUEVOU1NMX05PX1NUT1JFCiAjIGRlZmluZSBPUEVOU1NMX05PX1NUT1JFCiAjZW5kaWYKKyNpZm5kZWYgT1BFTlNTTF9OT19VTklUX1RFU1QKKyMgZGVmaW5lIE9QRU5TU0xfTk9fVU5JVF9URVNUCisjZW5kaWYKICNpZm5kZWYgT1BFTlNTTF9OT19XSElSTFBPT0wKICMgZGVmaW5lIE9QRU5TU0xfTk9fV0hJUkxQT09MCiAjZW5kaWYKQEAgLTE2MSw2ICsxNjcsOSBAQAogIyBpZiBkZWZpbmVkKE9QRU5TU0xfTk9fU1RPUkUpICYmICFkZWZpbmVkKE5PX1NUT1JFKQogIyAgZGVmaW5lIE5PX1NUT1JFCiAjIGVuZGlmCisjIGlmIGRlZmluZWQoT1BFTlNTTF9OT19VTklUX1RFU1QpICYmICFkZWZpbmVkKE5PX1VOSVRfVEVTVCkKKyMgIGRlZmluZSBOT19VTklUX1RFU1QKKyMgZW5kaWYKICMgaWYgZGVmaW5lZChPUEVOU1NMX05PX1dISVJMUE9PTCkgJiYgIWRlZmluZWQoTk9fV0hJUkxQT09MKQogIyAgZGVmaW5lIE5PX1dISVJMUE9PTAogIyBlbmRpZgpAQCAtMzIwLDMgKzMyOSw2IEBACiAKICNlbmRpZiAvKiBERVNfREVGQVVMVF9PUFRJT05TICovCiAjZW5kaWYgLyogSEVBREVSX0RFU19MT0NMX0ggKi8KKyNpZmRlZiAgX19jcGx1c3BsdXMKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9vcGVuc3NsL29wZW5zc2xjb25mLXN0YXRpYy10cnVzdHkuaCBiL2luY2x1ZGUvb3BlbnNzbC9vcGVuc3NsY29uZi1zdGF0aWMtdHJ1c3R5LmgKaW5kZXggMDZmOWY5OC4uYmZmNTkxMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9vcGVuc3NsL29wZW5zc2xjb25mLXN0YXRpYy10cnVzdHkuaAorKysgYi9pbmNsdWRlL29wZW5zc2wvb3BlbnNzbGNvbmYtc3RhdGljLXRydXN0eS5oCkBAIC0xLDYgKzEsOSBAQAogLyogb3BlbnNzbGNvbmYuaCAqLwogLyogV0FSTklORzogR2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgZnJvbSBvcGVuc3NsY29uZi5oLmluIGJ5IENvbmZpZ3VyZS4gKi8KIAorI2lmZGVmICBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKIC8qIE9wZW5TU0wgd2FzIGNvbmZpZ3VyZWQgd2l0aCB0aGUgZm9sbG93aW5nIG9wdGlvbnM6ICovCiAjaWZuZGVmIE9QRU5TU0xfRE9JTkdfTUFLRURFUEVORAogCkBAIC0xMzcsNiArMTQwLDkgQEAKICNpZm5kZWYgT1BFTlNTTF9OT19VSQogIyBkZWZpbmUgT1BFTlNTTF9OT19VSQogI2VuZGlmCisjaWZuZGVmIE9QRU5TU0xfTk9fVU5JVF9URVNUCisjIGRlZmluZSBPUEVOU1NMX05PX1VOSVRfVEVTVAorI2VuZGlmCiAjaWZuZGVmIE9QRU5TU0xfTk9fV0hJUkxQT09MCiAjIGRlZmluZSBPUEVOU1NMX05PX1dISVJMUE9PTAogI2VuZGlmCkBAIC0yODcsNiArMjkzLDkgQEAKICMgaWYgZGVmaW5lZChPUEVOU1NMX05PX1VJKSAmJiAhZGVmaW5lZChOT19VSSkKICMgIGRlZmluZSBOT19VSQogIyBlbmRpZgorIyBpZiBkZWZpbmVkKE9QRU5TU0xfTk9fVU5JVF9URVNUKSAmJiAhZGVmaW5lZChOT19VTklUX1RFU1QpCisjICBkZWZpbmUgTk9fVU5JVF9URVNUCisjIGVuZGlmCiAjIGlmIGRlZmluZWQoT1BFTlNTTF9OT19XSElSTFBPT0wpICYmICFkZWZpbmVkKE5PX1dISVJMUE9PTCkKICMgIGRlZmluZSBOT19XSElSTFBPT0wKICMgZW5kaWYKQEAgLTQ0NiwzICs0NTUsNiBAQAogCiAjZW5kaWYgLyogREVTX0RFRkFVTFRfT1BUSU9OUyAqLwogI2VuZGlmIC8qIEhFQURFUl9ERVNfTE9DTF9IICovCisjaWZkZWYgIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvb3BlbnNzbC9vcGVuc3NsY29uZi10cnVzdHkuaCBiL2luY2x1ZGUvb3BlbnNzbC9vcGVuc3NsY29uZi10cnVzdHkuaAppbmRleCAwNmY5Zjk4Li5iZmY1OTEwIDEwMDY0NAotLS0gYS9pbmNsdWRlL29wZW5zc2wvb3BlbnNzbGNvbmYtdHJ1c3R5LmgKKysrIGIvaW5jbHVkZS9vcGVuc3NsL29wZW5zc2xjb25mLXRydXN0eS5oCkBAIC0xLDYgKzEsOSBAQAogLyogb3BlbnNzbGNvbmYuaCAqLwogLyogV0FSTklORzogR2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgZnJvbSBvcGVuc3NsY29uZi5oLmluIGJ5IENvbmZpZ3VyZS4gKi8KIAorI2lmZGVmICBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKIC8qIE9wZW5TU0wgd2FzIGNvbmZpZ3VyZWQgd2l0aCB0aGUgZm9sbG93aW5nIG9wdGlvbnM6ICovCiAjaWZuZGVmIE9QRU5TU0xfRE9JTkdfTUFLRURFUEVORAogCkBAIC0xMzcsNiArMTQwLDkgQEAKICNpZm5kZWYgT1BFTlNTTF9OT19VSQogIyBkZWZpbmUgT1BFTlNTTF9OT19VSQogI2VuZGlmCisjaWZuZGVmIE9QRU5TU0xfTk9fVU5JVF9URVNUCisjIGRlZmluZSBPUEVOU1NMX05PX1VOSVRfVEVTVAorI2VuZGlmCiAjaWZuZGVmIE9QRU5TU0xfTk9fV0hJUkxQT09MCiAjIGRlZmluZSBPUEVOU1NMX05PX1dISVJMUE9PTAogI2VuZGlmCkBAIC0yODcsNiArMjkzLDkgQEAKICMgaWYgZGVmaW5lZChPUEVOU1NMX05PX1VJKSAmJiAhZGVmaW5lZChOT19VSSkKICMgIGRlZmluZSBOT19VSQogIyBlbmRpZgorIyBpZiBkZWZpbmVkKE9QRU5TU0xfTk9fVU5JVF9URVNUKSAmJiAhZGVmaW5lZChOT19VTklUX1RFU1QpCisjICBkZWZpbmUgTk9fVU5JVF9URVNUCisjIGVuZGlmCiAjIGlmIGRlZmluZWQoT1BFTlNTTF9OT19XSElSTFBPT0wpICYmICFkZWZpbmVkKE5PX1dISVJMUE9PTCkKICMgIGRlZmluZSBOT19XSElSTFBPT0wKICMgZW5kaWYKQEAgLTQ0NiwzICs0NTUsNiBAQAogCiAjZW5kaWYgLyogREVTX0RFRkFVTFRfT1BUSU9OUyAqLwogI2VuZGlmIC8qIEhFQURFUl9ERVNfTE9DTF9IICovCisjaWZkZWYgIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvb3BlbnNzbC9vcGVuc3Nsdi5oIGIvaW5jbHVkZS9vcGVuc3NsL29wZW5zc2x2LmgKaW5kZXggYzNiNmFjZS4uZjM3NTk2NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9vcGVuc3NsL29wZW5zc2x2LmgKKysrIGIvaW5jbHVkZS9vcGVuc3NsL29wZW5zc2x2LmgKQEAgLTEsNiArMSwxMCBAQAogI2lmbmRlZiBIRUFERVJfT1BFTlNTTFZfSAogI2RlZmluZSBIRUFERVJfT1BFTlNTTFZfSAogCisjaWZkZWYgIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCiAvKiBOdW1lcmljIHJlbGVhc2UgdmVyc2lvbiBpZGVudGlmaWVyOgogICogTU5ORkZQUFM6IG1ham9yIG1pbm9yIGZpeCBwYXRjaCBzdGF0dXMKICAqIFRoZSBzdGF0dXMgbmliYmxlIGhhcyBvbmUgb2YgdGhlIHZhbHVlcyAwIGZvciBkZXZlbG9wbWVudCwgMSB0byBlIGZvciBiZXRhcwpAQCAtMjUsMTEgKzI5LDExIEBACiAgKiAoUHJpb3IgdG8gMC45LjVhIGJldGExLCBhIGRpZmZlcmVudCBzY2hlbWUgd2FzIHVzZWQ6IE1NTk5GRlJCQiBmb3IKICAqICBtYWpvciBtaW5vciBmaXggZmluYWwgcGF0Y2gvYmV0YSkKICAqLwotI2RlZmluZSBPUEVOU1NMX1ZFUlNJT05fTlVNQkVSCTB4MTAwMDEwOGZMCisjZGVmaW5lIE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIJMHgxMDAwMTBhZkwKICNpZmRlZiBPUEVOU1NMX0ZJUFMKLSNkZWZpbmUgT1BFTlNTTF9WRVJTSU9OX1RFWFQJIk9wZW5TU0wgMS4wLjFoLWZpcHMgNSBKdW4gMjAxNCIKKyNkZWZpbmUgT1BFTlNTTF9WRVJTSU9OX1RFWFQJIk9wZW5TU0wgMS4wLjFqLWZpcHMgMTUgT2N0IDIwMTQiCiAjZWxzZQotI2RlZmluZSBPUEVOU1NMX1ZFUlNJT05fVEVYVAkiT3BlblNTTCAxLjAuMWggNSBKdW4gMjAxNCIKKyNkZWZpbmUgT1BFTlNTTF9WRVJTSU9OX1RFWFQJIk9wZW5TU0wgMS4wLjFqIDE1IE9jdCAyMDE0IgogI2VuZGlmCiAjZGVmaW5lIE9QRU5TU0xfVkVSU0lPTl9QVEVYVAkiIHBhcnQgb2YgIiBPUEVOU1NMX1ZFUlNJT05fVEVYVAogCkBAIC04Niw0ICs5MCw3IEBACiAjZGVmaW5lIFNITElCX1ZFUlNJT05fTlVNQkVSICIxLjAuMCIKIAogCisjaWZkZWYgIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKICNlbmRpZiAvKiBIRUFERVJfT1BFTlNTTFZfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9vcGVuc3NsL29zc2xfdHlwLmggYi9pbmNsdWRlL29wZW5zc2wvb3NzbF90eXAuaAppbmRleCBlYTkyMjdmLi4xMmNkZDQzIDEwMDY0NAotLS0gYS9pbmNsdWRlL29wZW5zc2wvb3NzbF90eXAuaAorKysgYi9pbmNsdWRlL29wZW5zc2wvb3NzbF90eXAuaApAQCAtNTUsNiArNTUsMTAgQEAKICNpZm5kZWYgSEVBREVSX09QRU5TU0xfVFlQRVNfSAogI2RlZmluZSBIRUFERVJfT1BFTlNTTF9UWVBFU19ICiAKKyNpZmRlZiAgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKICNpbmNsdWRlIDxvcGVuc3NsL2Vfb3MyLmg+CiAKICNpZmRlZiBOT19BU04xX1RZUEVERUZTCkBAIC0xOTksNCArMjAzLDcgQEAKIHR5cGVkZWYgc3RydWN0IG9jc3BfcmVzcG9uc2Vfc3QgT0NTUF9SRVNQT05TRTsKIHR5cGVkZWYgc3RydWN0IG9jc3BfcmVzcG9uZGVyX2lkX3N0IE9DU1BfUkVTUElEOwogCisjaWZkZWYgIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKICNlbmRpZiAvKiBkZWYgSEVBREVSX09QRU5TU0xfVFlQRVNfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9vcGVuc3NsL3BrY3M3LmggYi9pbmNsdWRlL29wZW5zc2wvcGtjczcuaAppbmRleCAwNGY2MDM3Li41ZDU0YzRhIDEwMDY0NAotLS0gYS9pbmNsdWRlL29wZW5zc2wvcGtjczcuaAorKysgYi9pbmNsdWRlL29wZW5zc2wvcGtjczcuaApAQCAtMjMzLDEwICsyMzMsNiBAQAogCQkoT0JKX29iajJuaWQoKGEpLT50eXBlKSA9PSBOSURfcGtjczdfc2lnbmVkQW5kRW52ZWxvcGVkKQogI2RlZmluZSBQS0NTN190eXBlX2lzX2RhdGEoYSkgICAoT0JKX29iajJuaWQoKGEpLT50eXBlKSA9PSBOSURfcGtjczdfZGF0YSkKICNkZWZpbmUgUEtDUzdfdHlwZV9pc19kaWdlc3QoYSkgICAoT0JKX29iajJuaWQoKGEpLT50eXBlKSA9PSBOSURfcGtjczdfZGlnZXN0KQotI2RlZmluZSBQS0NTN190eXBlX2lzX2VuY3J5cHRlZChhKSBcCi0JCShPQkpfb2JqMm5pZCgoYSktPnR5cGUpID09IE5JRF9wa2NzN19lbmNyeXB0ZWQpCi0KLSNkZWZpbmUgUEtDUzdfdHlwZV9pc19kaWdlc3QoYSkgICAoT0JKX29iajJuaWQoKGEpLT50eXBlKSA9PSBOSURfcGtjczdfZGlnZXN0KQogCiAjZGVmaW5lIFBLQ1M3X3NldF9kZXRhY2hlZChwLHYpIFwKIAkJUEtDUzdfY3RybChwLFBLQ1M3X09QX1NFVF9ERVRBQ0hFRF9TSUdOQVRVUkUsdixOVUxMKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9vcGVuc3NsL3BxdWV1ZS5oIGIvaW5jbHVkZS9vcGVuc3NsL3BxdWV1ZS5oCmluZGV4IDg3ZmM5MDMuLjI2YjUzNDggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvb3BlbnNzbC9wcXVldWUuaAorKysgYi9pbmNsdWRlL29wZW5zc2wvcHF1ZXVlLmgKQEAgLTY0LDYgKzY0LDkgQEAKICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KIAorI2lmZGVmICBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKIHR5cGVkZWYgc3RydWN0IF9wcXVldWUgKnBxdWV1ZTsKIAogdHlwZWRlZiBzdHJ1Y3QgX3BpdGVtCkBAIC05MSw0ICs5NCw3IEBACiB2b2lkICAgcHF1ZXVlX3ByaW50KHBxdWV1ZSBwcSk7CiBpbnQgICAgcHF1ZXVlX3NpemUocHF1ZXVlIHBxKTsKIAorI2lmZGVmICBfX2NwbHVzcGx1cworfQorI2VuZGlmCiAjZW5kaWYgLyogISBIRUFERVJfUFFVRVVFX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvb3BlbnNzbC9yc2EuaCBiL2luY2x1ZGUvb3BlbnNzbC9yc2EuaAppbmRleCA1ZjI2OWU1Li4xMTg1M2ZlIDEwMDY0NAotLS0gYS9pbmNsdWRlL29wZW5zc2wvcnNhLmgKKysrIGIvaW5jbHVkZS9vcGVuc3NsL3JzYS5oCkBAIC01NTksNiArNTU5LDcgQEAKICNkZWZpbmUgUlNBX1JfT1BFUkFUSU9OX05PVF9BTExPV0VEX0lOX0ZJUFNfTU9ERQkgMTU4CiAjZGVmaW5lIFJTQV9SX09QRVJBVElPTl9OT1RfU1VQUE9SVEVEX0ZPUl9USElTX0tFWVRZUEUJIDE0OAogI2RlZmluZSBSU0FfUl9QQURESU5HX0NIRUNLX0ZBSUxFRAkJCSAxMTQKKyNkZWZpbmUgUlNBX1JfUEtDU19ERUNPRElOR19FUlJPUgkJCSAxNTkKICNkZWZpbmUgUlNBX1JfUF9OT1RfUFJJTUUJCQkJIDEyOAogI2RlZmluZSBSU0FfUl9RX05PVF9QUklNRQkJCQkgMTI5CiAjZGVmaW5lIFJTQV9SX1JTQV9PUEVSQVRJT05TX05PVF9TVVBQT1JURUQJCSAxMzAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvb3BlbnNzbC9zYWZlc3RhY2suaCBiL2luY2x1ZGUvb3BlbnNzbC9zYWZlc3RhY2suaAppbmRleCBlYTNhYTBkLi5iYzE5NGNiIDEwMDY0NAotLS0gYS9pbmNsdWRlL29wZW5zc2wvc2FmZXN0YWNrLmgKKysrIGIvaW5jbHVkZS9vcGVuc3NsL3NhZmVzdGFjay5oCkBAIC01Nyw2ICs1NywxMCBAQAogCiAjaW5jbHVkZSA8b3BlbnNzbC9zdGFjay5oPgogCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKICNpZm5kZWYgQ0hFQ0tFRF9QVFJfT0YKICNkZWZpbmUgQ0hFQ0tFRF9QVFJfT0YodHlwZSwgcCkgXAogICAgICgodm9pZCopICgxID8gcCA6ICh0eXBlKikwKSkKQEAgLTI2NjAsNCArMjY2NCw4IEBACiAjZGVmaW5lIGxoX1NTTF9TRVNTSU9OX2ZyZWUobGgpIExITV9saF9mcmVlKFNTTF9TRVNTSU9OLGxoKQogLyogRW5kIG9mIHV0aWwvbWtzdGFjay5wbCBibG9jaywgeW91IG1heSBub3cgZWRpdCA6LSkgKi8KIAorCisjaWZkZWYgIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKICNlbmRpZiAvKiAhZGVmaW5lZCBIRUFERVJfU0FGRVNUQUNLX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvb3BlbnNzbC9zcnRwLmggYi9pbmNsdWRlL29wZW5zc2wvc3J0cC5oCmluZGV4IGMwY2YzM2UuLjI0ZjIzMzAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvb3BlbnNzbC9zcnRwLmgKKysrIGIvaW5jbHVkZS9vcGVuc3NsL3NydHAuaApAQCAtMTMwLDYgKzEzMCw4IEBACiAjZGVmaW5lIFNSVFBfTlVMTF9TSEExXzgwICAgICAgMHgwMDA1CiAjZGVmaW5lIFNSVFBfTlVMTF9TSEExXzMyICAgICAgMHgwMDA2CiAKKyNpZm5kZWYgT1BFTlNTTF9OT19TUlRQCisKIGludCBTU0xfQ1RYX3NldF90bHNleHRfdXNlX3NydHAoU1NMX0NUWCAqY3R4LCBjb25zdCBjaGFyICpwcm9maWxlcyk7CiBpbnQgU1NMX3NldF90bHNleHRfdXNlX3NydHAoU1NMICpjdHgsIGNvbnN0IGNoYXIgKnByb2ZpbGVzKTsKIFNSVFBfUFJPVEVDVElPTl9QUk9GSUxFICpTU0xfZ2V0X3NlbGVjdGVkX3NydHBfcHJvZmlsZShTU0wgKnMpOwpAQCAtMTM3LDYgKzEzOSw4IEBACiBTVEFDS19PRihTUlRQX1BST1RFQ1RJT05fUFJPRklMRSkgKlNTTF9nZXRfc3J0cF9wcm9maWxlcyhTU0wgKnNzbCk7CiBTUlRQX1BST1RFQ1RJT05fUFJPRklMRSAqU1NMX2dldF9zZWxlY3RlZF9zcnRwX3Byb2ZpbGUoU1NMICpzKTsKIAorI2VuZGlmCisKICNpZmRlZiAgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9vcGVuc3NsL3NzbC5oIGIvaW5jbHVkZS9vcGVuc3NsL3NzbC5oCmluZGV4IGE4OWFiMjMuLjdhMWZjZTggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvb3BlbnNzbC9zc2wuaAorKysgYi9pbmNsdWRlL29wZW5zc2wvc3NsLmgKQEAgLTI2NCw2ICsyNjQsNyBAQAogI2RlZmluZSBTU0xfVFhUX2FHT1NUOTQJImFHT1NUOTQiCiAjZGVmaW5lIFNTTF9UWFRfYUdPU1QwMSAiYUdPU1QwMSIKICNkZWZpbmUgU1NMX1RYVF9hR09TVCAgImFHT1NUIgorI2RlZmluZSBTU0xfVFhUX2FTUlAgICAgICAgICAgICAiYVNSUCIKIAogI2RlZmluZQlTU0xfVFhUX0RTUwkJIkRTUyIKICNkZWZpbmUgU1NMX1RYVF9ESAkJIkRIIgpAQCAtNjY0LDExICs2NjUsMTUgQEAKICAqLwogI2RlZmluZSBTU0xfTU9ERV9TRU5EX0NMSUVOVEhFTExPX1RJTUUgMHgwMDAwMDAyMEwKICNkZWZpbmUgU1NMX01PREVfU0VORF9TRVJWRVJIRUxMT19USU1FIDB4MDAwMDAwNDBMCisvKiBTZW5kIFRMU19GQUxMQkFDS19TQ1NWIGluIHRoZSBDbGllbnRIZWxsby4KKyAqIFRvIGJlIHNldCBieSBhcHBsaWNhdGlvbnMgdGhhdCByZWNvbm5lY3Qgd2l0aCBhIGRvd25ncmFkZWQgcHJvdG9jb2wKKyAqIHZlcnNpb247IHNlZSBkcmFmdC1pZXRmLXRscy1kb3duZ3JhZGUtc2Nzdi0wMCBmb3IgZGV0YWlscy4gKi8KKyNkZWZpbmUgU1NMX01PREVfU0VORF9GQUxMQkFDS19TQ1NWIDB4MDAwMDAwODBMCiAKIC8qIFdoZW4gc2V0LCBjbGllbnRzIG1heSBzZW5kIGFwcGxpY2F0aW9uIGRhdGEgYmVmb3JlIHJlY2VpcHQgb2YgQ0NTCiAgKiBhbmQgRmluaXNoZWQuICBUaGlzIG1vZGUgZW5hYmxlcyBmdWxsLWhhbmRzaGFrZXMgdG8gJ2NvbXBsZXRlJyBpbgogICogb25lIFJUVC4gKi8KLSNkZWZpbmUgU1NMX01PREVfSEFORFNIQUtFX0NVVFRIUk9VR0ggMHgwMDAwMDA4MEwKKyNkZWZpbmUgU1NMX01PREVfSEFORFNIQUtFX0NVVFRIUk9VR0ggMHgwMDAwMDIwMEwKIAogLyogV2hlbiBzZXQsIFRMUyAxLjAgYW5kIFNTTHYzLCBtdWx0aS1ieXRlLCBDQkMgcmVjb3JkcyB3aWxsIGJlIHNwbGl0IGluIHR3bzoKICAqIHRoZSBmaXJzdCByZWNvcmQgd2lsbCBjb250YWluIGEgc2luZ2xlIGJ5dGUgYW5kIHRoZSBzZWNvbmQgd2lsbCBjb250YWluIHRoZQpAQCAtNjc2LDExICs2ODEsNiBAQAogICogYXR0YWNrcy4gKi8KICNkZWZpbmUgU1NMX01PREVfQ0JDX1JFQ09SRF9TUExJVFRJTkcgMHgwMDAwMDEwMEwKIAotLyogU2VuZCBUTFNfRkFMTEJBQ0tfU0NTViBpbiB0aGUgQ2xpZW50SGVsbG8uCi0gKiBUbyBiZSBzZXQgYnkgYXBwbGljYXRpb25zIHRoYXQgcmVjb25uZWN0IHdpdGggYSBkb3duZ3JhZGVkIHByb3RvY29sCi0gKiB2ZXJzaW9uOyBzZWUgZHJhZnQtaWV0Zi10bHMtZG93bmdyYWRlLXNjc3YtMDAgZm9yIGRldGFpbHMuICovCi0jZGVmaW5lIFNTTF9NT0RFX1NFTkRfRkFMTEJBQ0tfU0NTViAweDAwMDAwMjAwTAotCiAvKiBOb3RlOiBTU0xbX0NUWF1fc2V0X3tvcHRpb25zLG1vZGV9IHVzZSB8PSBvcCBvbiB0aGUgcHJldmlvdXMgdmFsdWUsCiAgKiB0aGV5IGNhbm5vdCBiZSB1c2VkIHRvIGNsZWFyIGJpdHMuICovCiAKQEAgLTIxOTksNiArMjE5OSwxMCBAQAogdm9pZCBTU0xfc2V0X2RlYnVnKFNTTCAqcywgaW50IGRlYnVnKTsKIGludCBTU0xfY2FjaGVfaGl0KFNTTCAqcyk7CiAKKyNpZm5kZWYgT1BFTlNTTF9OT19VTklUX1RFU1QKK2NvbnN0IHN0cnVjdCBvcGVuc3NsX3NzbF90ZXN0X2Z1bmN0aW9ucyAqU1NMX3Rlc3RfZnVuY3Rpb25zKHZvaWQpOworI2VuZGlmCisKIC8qIEJFR0lOIEVSUk9SIENPREVTICovCiAvKiBUaGUgZm9sbG93aW5nIGxpbmVzIGFyZSBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc2NyaXB0IG1rZXJyLnBsLiBBbnkgY2hhbmdlcwogICogbWFkZSBhZnRlciB0aGlzIHBvaW50IG1heSBiZSBvdmVyd3JpdHRlbiB3aGVuIHRoZSBzY3JpcHQgaXMgbmV4dCBydW4uCkBAIC0yNDY3LDYgKzI0NzEsNyBAQAogI2RlZmluZSBTU0xfUl9CQURfU1JQX0JfTEVOR1RICQkJCSAzNDgKICNkZWZpbmUgU1NMX1JfQkFEX1NSUF9HX0xFTkdUSAkJCQkgMzQ5CiAjZGVmaW5lIFNTTF9SX0JBRF9TUlBfTl9MRU5HVEgJCQkJIDM1MAorI2RlZmluZSBTU0xfUl9CQURfU1JQX1BBUkFNRVRFUlMJCQkgMzcxCiAjZGVmaW5lIFNTTF9SX0JBRF9TUlBfU19MRU5HVEgJCQkJIDM1MQogI2RlZmluZSBTU0xfUl9CQURfU1JUUF9NS0lfVkFMVUUJCQkgMzUyCiAjZGVmaW5lIFNTTF9SX0JBRF9TUlRQX1BST1RFQ1RJT05fUFJPRklMRV9MSVNUCQkgMzUzCkBAIC0yNTI3LDcgKzI1MzIsNyBAQAogI2RlZmluZSBTU0xfUl9IVFRQU19QUk9YWV9SRVFVRVNUCQkJIDE1NQogI2RlZmluZSBTU0xfUl9IVFRQX1JFUVVFU1QJCQkJIDE1NgogI2RlZmluZSBTU0xfUl9JTExFR0FMX1BBRERJTkcJCQkJIDI4MwotI2RlZmluZSBTU0xfUl9JTkFQUFJPUFJJQVRFX0ZBTExCQUNLCQkJIDM4MAorI2RlZmluZSBTU0xfUl9JTkFQUFJPUFJJQVRFX0ZBTExCQUNLCQkJIDM3MwogI2RlZmluZSBTU0xfUl9JTkNPTlNJU1RFTlRfQ09NUFJFU1NJT04JCQkgMzQwCiAjZGVmaW5lIFNTTF9SX0lOVkFMSURfQ0hBTExFTkdFX0xFTkdUSAkJCSAxNTgKICNkZWZpbmUgU1NMX1JfSU5WQUxJRF9DT01NQU5ECQkJCSAyODAKZGlmZiAtLWdpdCBhL29wZW5zc2wuY29uZmlnIGIvb3BlbnNzbC5jb25maWcKaW5kZXggNDY3MzE1OC4uOWVkZDUxZSAxMDA2NDQKLS0tIGEvb3BlbnNzbC5jb25maWcKKysrIGIvb3BlbnNzbC5jb25maWcKQEAgLTEyOCw2ICsxMjgsNyBAQAogY3J5cHRvL2Ntcy9NYWtlZmlsZSBcCiBjcnlwdG8vY29tcC9NYWtlZmlsZSBcCiBjcnlwdG8vY29uZi9NYWtlZmlsZSBcCitjcnlwdG8vY29uc3RhbnRfdGltZV90ZXN0LmMgXAogY3J5cHRvL2NyeXB0by1saWIuY29tIFwKIGNyeXB0by9kZXMvTWFrZWZpbGUgXAogY3J5cHRvL2Rlcy9kZXMtbGliLmNvbSBcCkBAIC0yMjAsNiArMjIxLDcgQEAKIHNzbC9pbnN0YWxsLXNzbC5jb20gXAogc3NsL3NzbC1saWIuY29tIFwKIHNzbC9zc2xfdGFzay5jIFwKK3NzbC9zc2xfdXRzdC5jIFwKICIKIAogTkVFREVEX1NPVVJDRVM9IlwKQEAgLTQ5OSw2ICs1MDEsNyBAQAogY3J5cHRvL2NvbmYvY29uZl9tYWxsLmMgXAogY3J5cHRvL2NvbmYvY29uZl9tb2QuYyBcCiBjcnlwdG8vY29uZi9jb25mX3NhcC5jIFwKK2NyeXB0by9jb25zdGFudF90aW1lX2xvY2wuaCBcCiBjcnlwdG8vZGVzL2NiY19ja3NtLmMgXAogY3J5cHRvL2Rlcy9jYmNfZW5jLmMgXAogY3J5cHRvL2Rlcy9jZmI2NGVkZS5jIFwKZGlmZiAtLWdpdCBhL29wZW5zc2wudmVyc2lvbiBiL29wZW5zc2wudmVyc2lvbgppbmRleCBhYjJlNjJiLi4yOTMzOTZmIDEwMDY0NAotLS0gYS9vcGVuc3NsLnZlcnNpb24KKysrIGIvb3BlbnNzbC52ZXJzaW9uCkBAIC0xICsxIEBACi1PUEVOU1NMX1ZFUlNJT049MS4wLjFoCitPUEVOU1NMX1ZFUlNJT049MS4wLjFqCmRpZmYgLS1naXQgYS9wYXRjaGVzLzAwMDItaGFuZHNoYWtlX2N1dHRocm91Z2gucGF0Y2ggYi9wYXRjaGVzLzAwMDItaGFuZHNoYWtlX2N1dHRocm91Z2gucGF0Y2gKaW5kZXggZjY4ZmQ2Zi4uNTQ1YmI1ZSAxMDA2NDQKLS0tIGEvcGF0Y2hlcy8wMDAyLWhhbmRzaGFrZV9jdXR0aHJvdWdoLnBhdGNoCisrKyBiL3BhdGNoZXMvMDAwMi1oYW5kc2hha2VfY3V0dGhyb3VnaC5wYXRjaApAQCAtMTkyLDcgKzE5Miw3IEBACiArLyogV2hlbiBzZXQsIGNsaWVudHMgbWF5IHNlbmQgYXBwbGljYXRpb24gZGF0YSBiZWZvcmUgcmVjZWlwdCBvZiBDQ1MKICsgKiBhbmQgRmluaXNoZWQuICBUaGlzIG1vZGUgZW5hYmxlcyBmdWxsLWhhbmRzaGFrZXMgdG8gJ2NvbXBsZXRlJyBpbgogKyAqIG9uZSBSVFQuICovCi0rI2RlZmluZSBTU0xfTU9ERV9IQU5EU0hBS0VfQ1VUVEhST1VHSCAweDAwMDAwMDgwTAorKyNkZWZpbmUgU1NMX01PREVfSEFORFNIQUtFX0NVVFRIUk9VR0ggMHgwMDAwMDIwMEwKICsKICAvKiBOb3RlOiBTU0xbX0NUWF1fc2V0X3tvcHRpb25zLG1vZGV9IHVzZSB8PSBvcCBvbiB0aGUgcHJldmlvdXMgdmFsdWUsCiAgICogdGhleSBjYW5ub3QgYmUgdXNlZCB0byBjbGVhciBiaXRzLiAqLwpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy8wMDA0LWNoYW5uZWxpZC5wYXRjaCBiL3BhdGNoZXMvMDAwNC1jaGFubmVsaWQucGF0Y2gKaW5kZXggM2I5ZWM4YS4uNDhmODc1YSAxMDA2NDQKLS0tIGEvcGF0Y2hlcy8wMDA0LWNoYW5uZWxpZC5wYXRjaAorKysgYi9wYXRjaGVzLzAwMDQtY2hhbm5lbGlkLnBhdGNoCkBAIC0xMzMxLDcgKzEzMzEsNyBAQAogKwkJczJuKDAscmV0KTsKICsJCX0KICsKLSAJaWYgKChleHRkYXRhbGVuID0gcmV0LXAtMik9PSAwKSAKKyAJaWYgKChleHRkYXRhbGVuID0gcmV0LW9yaWctMik9PSAwKSAKICAJCXJldHVybiBwOwogIAogQEAgLTE0NDIsNiArMTQ2OCwxNiBAQCBpbnQgc3NsX3BhcnNlX2NsaWVudGhlbGxvX3Rsc2V4dChTU0wgKnMsIHVuc2lnbmVkIGNoYXIgKipwLCB1bnNpZ25lZCBjaGFyICpkLCBpbgpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy8wMDA3LXRsczEyX2RpZ2VzdHMucGF0Y2ggYi9wYXRjaGVzLzAwMDctdGxzMTJfZGlnZXN0cy5wYXRjaAppbmRleCAxMWY3YzI3Li5iNTBjMjUwIDEwMDY0NAotLS0gYS9wYXRjaGVzLzAwMDctdGxzMTJfZGlnZXN0cy5wYXRjaAorKysgYi9wYXRjaGVzLzAwMDctdGxzMTJfZGlnZXN0cy5wYXRjaApAQCAtMTkzLDYgKzE5MywzNSBAQAogIAl9CiAgCiAgdm9pZCBzc2xfdXBkYXRlX2NhY2hlKFNTTCAqcyxpbnQgbW9kZSkKK0BAIC0zMTM4LDI2ICszMTYwLDE1IEBAIFNTTF9DVFggKlNTTF9zZXRfU1NMX0NUWChTU0wgKnNzbCwgU1NMX0NUWCogY3R4KQorCisgU1NMX0NUWCAqU1NMX3NldF9TU0xfQ1RYKFNTTCAqc3NsLCBTU0xfQ1RYKiBjdHgpCisJeworLQlDRVJUICpvY2VydCA9IHNzbC0+Y2VydDsKKwlpZiAoc3NsLT5jdHggPT0gY3R4KQorCQlyZXR1cm4gc3NsLT5jdHg7CisgI2lmbmRlZiBPUEVOU1NMX05PX1RMU0VYVAorCWlmIChjdHggPT0gTlVMTCkKKwkJY3R4ID0gc3NsLT5pbml0aWFsX2N0eDsKKyAjZW5kaWYKKysJaWYgKHNzbC0+Y2VydCAhPSBOVUxMKQorKwkJc3NsX2NlcnRfZnJlZShzc2wtPmNlcnQpOworCXNzbC0+Y2VydCA9IHNzbF9jZXJ0X2R1cChjdHgtPmNlcnQpOworLQlpZiAob2NlcnQgIT0gTlVMTCkKKy0JCXsKKy0JCWludCBpOworLQkJLyogQ29weSBuZWdvdGlhdGVkIGRpZ2VzdHMgZnJvbSBvcmlnaW5hbCAqLworLQkJZm9yIChpID0gMDsgaSA8IFNTTF9QS0VZX05VTTsgaSsrKQorLQkJCXsKKy0JCQlDRVJUX1BLRVkgKmNwayA9IG9jZXJ0LT5wa2V5cyArIGk7CistCQkJQ0VSVF9QS0VZICpycGsgPSBzc2wtPmNlcnQtPnBrZXlzICsgaTsKKy0JCQlycGstPmRpZ2VzdCA9IGNway0+ZGlnZXN0OworLQkJCX0KKy0JCXNzbF9jZXJ0X2ZyZWUob2NlcnQpOworLQkJfQorCUNSWVBUT19hZGQoJmN0eC0+cmVmZXJlbmNlcywxLENSWVBUT19MT0NLX1NTTF9DVFgpOworCWlmIChzc2wtPmN0eCAhPSBOVUxMKQorCQlTU0xfQ1RYX2ZyZWUoc3NsLT5jdHgpOyAvKiBkZWNyZW1lbnQgcmVmZXJlbmNlIGNvdW50ICovCiBkaWZmIC0tZ2l0IGEvc3NsL3NzbF9sb2NsLmggYi9zc2wvc3NsX2xvY2wuaAogaW5kZXggNmQzOGYwZi4uM2U4OWZjYiAxMDA2NDQKIC0tLSBhL3NzbC9zc2xfbG9jbC5oCmRpZmYgLS1naXQgYS9wYXRjaGVzLzAwMDgtYWxwbi5wYXRjaCBiL3BhdGNoZXMvMDAwOC1hbHBuLnBhdGNoCmluZGV4IDA4NGFjMzIuLjZmY2NiZDMgMTAwNjQ0Ci0tLSBhL3BhdGNoZXMvMDAwOC1hbHBuLnBhdGNoCisrKyBiL3BhdGNoZXMvMDAwOC1hbHBuLnBhdGNoCkBAIC0zODgsNyArMzg4LDcgQEAKICsJCXJldCArPSBsZW47CiArCQl9CiArCi0gCWlmICgoZXh0ZGF0YWxlbiA9IHJldC1wLTIpPT0gMCkgCisgCWlmICgoZXh0ZGF0YWxlbiA9IHJldC1vcmlnLTIpPT0gMCkgCiAgCQlyZXR1cm4gcDsKICAKIEBAIC05NjYsNiArOTkzLDc2IEBAIHN0YXRpYyB2b2lkIHNzbF9jaGVja19mb3Jfc2FmYXJpKFNTTCAqcywgY29uc3QgdW5zaWduZWQgY2hhciAqZGF0YSwgY29uc3QgdW5zaWduCmRpZmYgLS1naXQgYS9wYXRjaGVzLzAwMTEtZWNkaGVfcHNrLnBhdGNoIGIvcGF0Y2hlcy8wMDExLWVjZGhlX3Bzay5wYXRjaAppbmRleCA2MTRiM2FkLi43ZGYyMGMwIDEwMDY0NAotLS0gYS9wYXRjaGVzLzAwMTEtZWNkaGVfcHNrLnBhdGNoCisrKyBiL3BhdGNoZXMvMDAxMS1lY2RoZV9wc2sucGF0Y2gKQEAgLTIyLDEwICsyMiwxMCBAQAogQEAgLTMzMyw5ICszMzMsMTAgQEAgaW50IHNzbDNfY29ubmVjdChTU0wgKnMpCiAgCQkJCX0KICAjZW5kaWYKLSAJCQkvKiBDaGVjayBpZiBpdCBpcyBhbm9uIERIL0VDREggKi8KKyAJCQkvKiBDaGVjayBpZiBpdCBpcyBhbm9uIERIL0VDREgsIFNSUCBhdXRoICovCiAtCQkJLyogb3IgUFNLICovCiArCQkJLyogb3Igbm9uLVJTQSBQU0sgKi8KLSAJCQlpZiAoIShzLT5zMy0+dG1wLm5ld19jaXBoZXItPmFsZ29yaXRobV9hdXRoICYgU1NMX2FOVUxMKSAmJgorIAkJCWlmICghKHMtPnMzLT50bXAubmV3X2NpcGhlci0+YWxnb3JpdGhtX2F1dGggJiAoU1NMX2FOVUxMfFNTTF9hU1JQKSkgJiYKIC0JCQkgICAgIShzLT5zMy0+dG1wLm5ld19jaXBoZXItPmFsZ29yaXRobV9ta2V5ICYgU1NMX2tQU0spKQogKwkJCSAgICAhKChzLT5zMy0+dG1wLm5ld19jaXBoZXItPmFsZ29yaXRobV9hdXRoICYgU1NMX2FQU0spICYmCiArCQkJICAgICAgIShzLT5zMy0+dG1wLm5ld19jaXBoZXItPmFsZ29yaXRobV9ta2V5ICYgU1NMX2tSU0EpKSkKQEAgLTQxLDcgKzQxLDcgQEAKICAJCQl7CiAgCQkJcy0+c2Vzc2lvbi0+c2Vzc19jZXJ0PXNzbF9zZXNzX2NlcnRfbmV3KCk7CiAgCQkJaWYgKHMtPmN0eC0+cHNrX2lkZW50aXR5X2hpbnQpCi1AQCAtMTQxNiw1MiArMTQxNyw1NiBAQCBpbnQgc3NsM19nZXRfa2V5X2V4Y2hhbmdlKFNTTCAqcykKK0BAIC0xNDE2LDYxICsxNDE3LDY1IEBAIGludCBzc2wzX2dldF9rZXlfZXhjaGFuZ2UoU1NMICpzKQogIAlFVlBfTURfQ1RYX2luaXQoJm1kX2N0eCk7CiAgCiAgI2lmbmRlZiBPUEVOU1NMX05PX1BTSwpAQCAtNTAsMjQgKzUwLDMwIEBACiAgCQl7CiAgCQljaGFyIHRtcF9pZF9oaW50W1BTS19NQVhfSURFTlRJVFlfTEVOKzFdOwogIAotIAkJYWw9U1NMX0FEX0hBTkRTSEFLRV9GQUlMVVJFOworCQlwYXJhbV9sZW4gPSAyOworCQlpZiAocGFyYW1fbGVuID4gbikKKwkJCXsKKwkJCVNTTGVycihTU0xfRl9TU0wzX0dFVF9LRVlfRVhDSEFOR0UsCisJCQkJU1NMX1JfTEVOR1RIX1RPT19TSE9SVCk7CisJCQlnb3RvIGZfZXJyOworCQkJfQogIAkJbjJzKHAsaSk7Ci0gCQlwYXJhbV9sZW49aSsyOworCiAtCQkvKiBTdG9yZSBQU0sgaWRlbnRpdHkgaGludCBmb3IgbGF0ZXIgdXNlLCBoaW50IGlzIHVzZWQKIC0JCSAqIGluIHNzbDNfc2VuZF9jbGllbnRfa2V5X2V4Y2hhbmdlLiAgQXNzdW1lIHRoYXQgdGhlCiAtCQkgKiBtYXhpbXVtIGxlbmd0aCBvZiBhIFBTSyBpZGVudGl0eSBoaW50IGNhbiBiZSBhcwogLQkJICogbG9uZyBhcyB0aGUgbWF4aW11bSBsZW5ndGggb2YgYSBQU0sgaWRlbnRpdHkuICovCiAtCQlpZiAoaSA+IFBTS19NQVhfSURFTlRJVFlfTEVOKQogLQkJCXsKKy0JCQlhbD1TU0xfQURfSEFORFNIQUtFX0ZBSUxVUkU7CiAtCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0tFWV9FWENIQU5HRSwKIC0JCQkJU1NMX1JfREFUQV9MRU5HVEhfVE9PX0xPTkcpOwogLQkJCWdvdG8gZl9lcnI7CiAtCQkJfQotLQkJaWYgKHBhcmFtX2xlbiA+IG4pCistCQlpZiAoaSA+IG4gLSBwYXJhbV9sZW4pCiArCQlzLT5jdHgtPnBza19pZGVudGl0eV9oaW50ID0gTlVMTDsKICsJCWlmIChpICE9IDApCiAgCQkJewotLQkJCWFsPVNTTF9BRF9ERUNPREVfRVJST1I7CiAtCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0tFWV9FWENIQU5HRSwKIC0JCQkJU1NMX1JfQkFEX1BTS19JREVOVElUWV9ISU5UX0xFTkdUSCk7CiAtCQkJZ290byBmX2VycjsKQEAgLTc3LDE3ICs4MywxOSBAQAogKwkJCSAqIGxvbmcgYXMgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGEgUFNLIGlkZW50aXR5LiAqLwogKwkJCWlmIChpID4gUFNLX01BWF9JREVOVElUWV9MRU4pCiArCQkJCXsKKysJCQkJYWw9U1NMX0FEX0hBTkRTSEFLRV9GQUlMVVJFOwogKwkJCQlTU0xlcnIoU1NMX0ZfU1NMM19HRVRfS0VZX0VYQ0hBTkdFLAogKwkJCQkJU1NMX1JfREFUQV9MRU5HVEhfVE9PX0xPTkcpOwogKwkJCQlnb3RvIGZfZXJyOwogKwkJCQl9Ci0rCQkJaWYgKHBhcmFtX2xlbiA+IG4pCisrCQkJaWYgKGkgPiBuIC0gcGFyYW1fbGVuKQogKwkJCQl7Ci0rCQkJCWFsPVNTTF9BRF9ERUNPREVfRVJST1I7CiArCQkJCVNTTGVycihTU0xfRl9TU0wzX0dFVF9LRVlfRVhDSEFOR0UsCiArCQkJCQlTU0xfUl9CQURfUFNLX0lERU5USVRZX0hJTlRfTEVOR1RIKTsKICsJCQkJZ290byBmX2VycjsKICsJCQkJfQorKwkJCXBhcmFtX2xlbiArPSBpOworKwogKwkJCS8qIElmIHJlY2VpdmVkIFBTSyBpZGVudGl0eSBoaW50IGNvbnRhaW5zIE5VTEwKICsJCQkgKiBjaGFyYWN0ZXJzLCB0aGUgaGludCBpcyB0cnVuY2F0ZWQgZnJvbSB0aGUgZmlyc3QKICsJCQkgKiBOVUxMLiBwIG1heSBub3QgYmUgZW5kaW5nIHdpdGggTlVMTCwgc28gY3JlYXRlIGEKQEAgLTk5LDEwICsxMDcsMTMgQEAKICsJCQlzLT5jdHgtPnBza19pZGVudGl0eV9oaW50ID0gQlVGX3N0cmR1cCh0bXBfaWRfaGludCk7CiArCQkJaWYgKHMtPmN0eC0+cHNrX2lkZW50aXR5X2hpbnQgPT0gTlVMTCkKICsJCQkJeworKwkJCQlhbD1TU0xfQURfSEFORFNIQUtFX0ZBSUxVUkU7CiArCQkJCVNTTGVycihTU0xfRl9TU0wzX0dFVF9LRVlfRVhDSEFOR0UsIEVSUl9SX01BTExPQ19GQUlMVVJFKTsKICsJCQkJZ290byBmX2VycjsKICsJCQkJfQogIAkJCX0KKy0JCXBhcmFtX2xlbiArPSBpOworLQogLQkJLyogSWYgcmVjZWl2ZWQgUFNLIGlkZW50aXR5IGhpbnQgY29udGFpbnMgTlVMTAogLQkJICogY2hhcmFjdGVycywgdGhlIGhpbnQgaXMgdHJ1bmNhdGVkIGZyb20gdGhlIGZpcnN0CiAtCQkgKiBOVUxMLiBwIG1heSBub3QgYmUgZW5kaW5nIHdpdGggTlVMTCwgc28gY3JlYXRlIGEKQEAgLTExNCw2ICsxMjUsNyBAQAogLQkJcy0+Y3R4LT5wc2tfaWRlbnRpdHlfaGludCA9IEJVRl9zdHJkdXAodG1wX2lkX2hpbnQpOwogLQkJaWYgKHMtPmN0eC0+cHNrX2lkZW50aXR5X2hpbnQgPT0gTlVMTCkKIC0JCQl7CistCQkJYWw9U1NMX0FEX0hBTkRTSEFLRV9GQUlMVVJFOwogLQkJCVNTTGVycihTU0xfRl9TU0wzX0dFVF9LRVlfRVhDSEFOR0UsIEVSUl9SX01BTExPQ19GQUlMVVJFKTsKIC0JCQlnb3RvIGZfZXJyOwogLQkJCX0JICAgCkBAIC0xNzUsOSArMTg3LDkgQEAKICAJCX0KICAJZWxzZQogIAkJewotLQkJaWYgKCEoYWxnX2EgJiBTU0xfYU5VTEwpICYmICEoYWxnX2sgJiBTU0xfa1BTSykpCi0tCQkJLyogYU5VTEwgb3Iga1BTSyBkbyBub3QgbmVlZCBwdWJsaWMga2V5cyAqLwotKwkJaWYgKCEoYWxnX2EgJiBTU0xfYU5VTEwpICYmCistCQkvKiBhTlVMTCwgYVNSUCBvciBrUFNLIGRvIG5vdCBuZWVkIHB1YmxpYyBrZXlzICovCistCQlpZiAoIShhbGdfYSAmIChTU0xfYU5VTEx8U1NMX2FTUlApKSAmJiAhKGFsZ19rICYgU1NMX2tQU0spKQorKwkJaWYgKCEoYWxnX2EgJiAoU1NMX2FOVUxMfFNTTF9hU1JQKSkgJiYKICsJCQkvKiBBbW9uZyBQU0sgY2lwaGVycyBvbmx5IFJTQV9QU0sgbmVlZHMgYSBwdWJsaWMga2V5ICovCiArCQkJISgoYWxnX2EgJiBTU0xfYVBTSykgJiYgIShhbGdfayAmIFNTTF9rUlNBKSkpCiAgCQkJewpAQCAtMjA3LDcgKzIxOSw3IEBACiAgCiAgCWlmIChzLT5zdGF0ZSA9PSBTU0wzX1NUX0NXX0tFWV9FWENIX0EpCiAgCQl7Ci1AQCAtMjMxMCw3ICsyMzE3LDk2IEBAIGludCBzc2wzX3NlbmRfY2xpZW50X2tleV9leGNoYW5nZShTU0wgKnMpCitAQCAtMjMxMCw3ICsyMzE3LDEwNiBAQCBpbnQgc3NsM19zZW5kX2NsaWVudF9rZXlfZXhjaGFuZ2UoU1NMICpzKQogIAkJcD0gJihkWzRdKTsKICAKICAJCWFsZ19rPXMtPnMzLT50bXAubmV3X2NpcGhlci0+YWxnb3JpdGhtX21rZXk7CkBAIC0yMTYsNyArMjI4LDExIEBACiArI2lmbmRlZiBPUEVOU1NMX05PX1BTSwogKwkJaWYgKGFsZ19hICYgU1NMX2FQU0spCiArCQkJewotKwkJCWNoYXIgaWRlbnRpdHlbUFNLX01BWF9JREVOVElUWV9MRU5dOworKwkJCS8qIFRoZSBjYWxsYmFjayBuZWVkcyBQU0tfTUFYX0lERU5USVRZX0xFTiArIDEgYnl0ZXMKKysJCQkgKiB0byByZXR1cm4gYSBcMC10ZXJtaW5hdGVkIGlkZW50aXR5LiBUaGUgbGFzdCBieXRlCisrCQkJICogaXMgZm9yIHVzIGZvciBzaW11bGF0aW5nIHN0cm5sZW4uICovCisrCQkJY2hhciBpZGVudGl0eVtQU0tfTUFYX0lERU5USVRZX0xFTiArIDJdOworKwkJCXNpemVfdCBpZGVudGl0eV9sZW47CiArCQkJdW5zaWduZWQgY2hhciAqdCA9IE5VTEw7CiArCQkJdW5zaWduZWQgY2hhciBwcmVfbXNbUFNLX01BWF9QU0tfTEVOKjIrNF07CiArCQkJdW5zaWduZWQgaW50IHByZV9tc19sZW4gPSAwOwpAQCAtMjMxLDcgKzI0Nyw3IEBACiArCQkJCX0KICAKICsJCQlwc2tfbGVuID0gcy0+cHNrX2NsaWVudF9jYWxsYmFjayhzLCBzLT5jdHgtPnBza19pZGVudGl0eV9oaW50LAotKwkJCQlpZGVudGl0eSwgUFNLX01BWF9JREVOVElUWV9MRU4sIHBzaywgc2l6ZW9mKHBzaykpOworKwkJCQlpZGVudGl0eSwgc2l6ZW9mKGlkZW50aXR5KSAtIDEsIHBzaywgc2l6ZW9mKHBzaykpOwogKwkJCWlmIChwc2tfbGVuID4gUFNLX01BWF9QU0tfTEVOKQogKwkJCQl7CiArCQkJCVNTTGVycihTU0xfRl9TU0wzX1NFTkRfQ0xJRU5UX0tFWV9FWENIQU5HRSwKQEAgLTI0NCw3ICsyNjAsMTQgQEAKICsJCQkJCVNTTF9SX1BTS19JREVOVElUWV9OT1RfRk9VTkQpOwogKwkJCQlnb3RvIHBza19lcnI7CiArCQkJCX0KLSsKKysJCQlpZGVudGl0eVtQU0tfTUFYX0lERU5USVRZX0xFTiArIDFdID0gJ1wwJzsKKysJCQlpZGVudGl0eV9sZW4gPSBzdHJsZW4oaWRlbnRpdHkpOworKwkJCWlmIChpZGVudGl0eV9sZW4gPiBQU0tfTUFYX0lERU5USVRZX0xFTikKKysJCQkJeworKwkJCQlTU0xlcnIoU1NMX0ZfU1NMM19TRU5EX0NMSUVOVF9LRVlfRVhDSEFOR0UsCisrCQkJCQlFUlJfUl9JTlRFUk5BTF9FUlJPUik7CisrCQkJCWdvdG8gcHNrX2VycjsKKysJCQkJfQogKwkJCWlmICghKGFsZ19rICYgU1NMX2tFRUNESCkpCiArCQkJCXsKICsJCQkJLyogQ3JlYXRlIHRoZSBzaGFyZWQgc2VjcmV0IG5vdyBpZiB3ZSdyZSBub3QgdXNpbmcgRUNESEUtUFNLLiovCkBAIC0yNjAsMTAgKzI4Myw5IEBACiArCQkJCQlzLT5tZXRob2QtPnNzbDNfZW5jLT5nZW5lcmF0ZV9tYXN0ZXJfc2VjcmV0KHMsCiArCQkJCQkJcy0+c2Vzc2lvbi0+bWFzdGVyX2tleSwKICsJCQkJCQlwcmVfbXMsIHByZV9tc19sZW4pOwotKwkJCQluID0gc3RybGVuKGlkZW50aXR5KTsKLSsJCQkJczJuKG4sIHApOwotKwkJCQltZW1jcHkocCwgaWRlbnRpdHksIG4pOwotKwkJCQluICs9IDI7CisrCQkJCXMybihpZGVudGl0eV9sZW4sIHApOworKwkJCQltZW1jcHkocCwgaWRlbnRpdHksIGlkZW50aXR5X2xlbik7CisrCQkJCW4gPSAyICsgaWRlbnRpdHlfbGVuOwogKwkJCQl9CiArCiArCQkJaWYgKHMtPnNlc3Npb24tPnBza19pZGVudGl0eV9oaW50ICE9IE5VTEwpCkBAIC0yOTIsNyArMzE0LDcgQEAKICsJCQkJfQogKwkJCXBza19lcnIgPSAwOwogKwkJcHNrX2VycjoKLSsJCQlPUEVOU1NMX2NsZWFuc2UoaWRlbnRpdHksIFBTS19NQVhfSURFTlRJVFlfTEVOKTsKKysJCQlPUEVOU1NMX2NsZWFuc2UoaWRlbnRpdHksIHNpemVvZihpZGVudGl0eSkpOwogKwkJCU9QRU5TU0xfY2xlYW5zZShwcmVfbXMsIHNpemVvZihwcmVfbXMpKTsKICsJCQlpZiAocHNrX2VyciAhPSAwKQogKwkJCQl7CkBAIC00MjgsMTQgKzQ1MCwxOCBAQAogIAkJCXsKICAJCQkvKiBHT1NUIGtleSBleGNoYW5nZSBtZXNzYWdlIGNyZWF0aW9uICovCiAgCQkJRVZQX1BLRVlfQ1RYICpwa2V5X2N0eDsKLUBAIC0yODg3LDg5ICszMDI3LDcgQEAgaW50IHNzbDNfc2VuZF9jbGllbnRfa2V5X2V4Y2hhbmdlKFNTTCAqcykKK0BAIC0yODg3LDEwMCArMzAyNyw3IEBAIGludCBzc2wzX3NlbmRfY2xpZW50X2tleV9leGNoYW5nZShTU0wgKnMpCiAgCQkJCX0KICAJCQl9CiAgI2VuZGlmCiAtI2lmbmRlZiBPUEVOU1NMX05PX1BTSwogLQkJZWxzZSBpZiAoYWxnX2sgJiBTU0xfa1BTSykKIC0JCQl7Ci0tCQkJY2hhciBpZGVudGl0eVtQU0tfTUFYX0lERU5USVRZX0xFTl07CistCQkJLyogVGhlIGNhbGxiYWNrIG5lZWRzIFBTS19NQVhfSURFTlRJVFlfTEVOICsgMSBieXRlcworLQkJCSAqIHRvIHJldHVybiBhIFwwLXRlcm1pbmF0ZWQgaWRlbnRpdHkuIFRoZSBsYXN0IGJ5dGUKKy0JCQkgKiBpcyBmb3IgdXMgZm9yIHNpbXVsYXRpbmcgc3Rybmxlbi4gKi8KKy0JCQljaGFyIGlkZW50aXR5W1BTS19NQVhfSURFTlRJVFlfTEVOICsgMl07CistCQkJc2l6ZV90IGlkZW50aXR5X2xlbjsKIC0JCQl1bnNpZ25lZCBjaGFyICp0ID0gTlVMTDsKIC0JCQl1bnNpZ25lZCBjaGFyIHBza19vcl9wcmVfbXNbUFNLX01BWF9QU0tfTEVOKjIrNF07CiAtCQkJdW5zaWduZWQgaW50IHByZV9tc19sZW4gPSAwLCBwc2tfbGVuID0gMDsKQEAgLTQ0OSw4ICs0NzUsOSBAQAogLQkJCQlnb3RvIGVycjsKIC0JCQkJfQogLQorLQkJCW1lbXNldChpZGVudGl0eSwgMCwgc2l6ZW9mKGlkZW50aXR5KSk7CiAtCQkJcHNrX2xlbiA9IHMtPnBza19jbGllbnRfY2FsbGJhY2socywgcy0+Y3R4LT5wc2tfaWRlbnRpdHlfaGludCwKLS0JCQkJaWRlbnRpdHksIFBTS19NQVhfSURFTlRJVFlfTEVOLAorLQkJCQlpZGVudGl0eSwgc2l6ZW9mKGlkZW50aXR5KSAtIDEsCiAtCQkJCXBza19vcl9wcmVfbXMsIHNpemVvZihwc2tfb3JfcHJlX21zKSk7CiAtCQkJaWYgKHBza19sZW4gPiBQU0tfTUFYX1BTS19MRU4pCiAtCQkJCXsKQEAgLTQ2NCw3ICs0OTEsMTQgQEAKIC0JCQkJCVNTTF9SX1BTS19JREVOVElUWV9OT1RfRk9VTkQpOwogLQkJCQlnb3RvIHBza19lcnI7CiAtCQkJCX0KLS0KKy0JCQlpZGVudGl0eVtQU0tfTUFYX0lERU5USVRZX0xFTiArIDFdID0gJ1wwJzsKKy0JCQlpZGVudGl0eV9sZW4gPSBzdHJsZW4oaWRlbnRpdHkpOworLQkJCWlmIChpZGVudGl0eV9sZW4gPiBQU0tfTUFYX0lERU5USVRZX0xFTikKKy0JCQkJeworLQkJCQlTU0xlcnIoU1NMX0ZfU1NMM19TRU5EX0NMSUVOVF9LRVlfRVhDSEFOR0UsCistCQkJCQlFUlJfUl9JTlRFUk5BTF9FUlJPUik7CistCQkJCWdvdG8gcHNrX2VycjsKKy0JCQkJfQogLQkJCS8qIGNyZWF0ZSBQU0sgcHJlX21hc3Rlcl9zZWNyZXQgKi8KIC0JCQlwcmVfbXNfbGVuID0gMitwc2tfbGVuKzIrcHNrX2xlbjsKIC0JCQl0ID0gcHNrX29yX3ByZV9tczsKQEAgLTQ5OCwxNCArNTMyLDEzIEBACiAtCQkJcy0+c2Vzc2lvbi0+bWFzdGVyX2tleV9sZW5ndGggPQogLQkJCQlzLT5tZXRob2QtPnNzbDNfZW5jLT5nZW5lcmF0ZV9tYXN0ZXJfc2VjcmV0KHMsCiAtCQkJCQlzLT5zZXNzaW9uLT5tYXN0ZXJfa2V5LAotLQkJCQkJcHNrX29yX3ByZV9tcywgcHJlX21zX2xlbik7IAotLQkJCW4gPSBzdHJsZW4oaWRlbnRpdHkpOwotLQkJCXMybihuLCBwKTsKLS0JCQltZW1jcHkocCwgaWRlbnRpdHksIG4pOwotLQkJCW4rPTI7CistCQkJCQlwc2tfb3JfcHJlX21zLCBwcmVfbXNfbGVuKTsKKy0JCQlzMm4oaWRlbnRpdHlfbGVuLCBwKTsKKy0JCQltZW1jcHkocCwgaWRlbnRpdHksIGlkZW50aXR5X2xlbik7CistCQkJbiA9IDIgKyBpZGVudGl0eV9sZW47CiAtCQkJcHNrX2VyciA9IDA7CiAtCQlwc2tfZXJyOgotLQkJCU9QRU5TU0xfY2xlYW5zZShpZGVudGl0eSwgUFNLX01BWF9JREVOVElUWV9MRU4pOworLQkJCU9QRU5TU0xfY2xlYW5zZShpZGVudGl0eSwgc2l6ZW9mKGlkZW50aXR5KSk7CiAtCQkJT1BFTlNTTF9jbGVhbnNlKHBza19vcl9wcmVfbXMsIHNpemVvZihwc2tfb3JfcHJlX21zKSk7CiAtCQkJaWYgKHBza19lcnIgIT0gMCkKIC0JCQkJewpAQCAtNTE5LDE1ICs1NTIsNiBAQAogIAkJCXsKICAJCQlzc2wzX3NlbmRfYWxlcnQocywgU1NMM19BTF9GQVRBTCwKICAJCQkgICAgU1NMX0FEX0hBTkRTSEFLRV9GQUlMVVJFKTsKLUBAIC0zMjc0LDcgKzMzMzIsNyBAQCBpbnQgc3NsM19jaGVja19jZXJ0X2FuZF9hbGdvcml0aG0oU1NMICpzKQotIAlhbGdfYT1zLT5zMy0+dG1wLm5ld19jaXBoZXItPmFsZ29yaXRobV9hdXRoOwotIAotIAkvKiB3ZSBkb24ndCBoYXZlIGEgY2VydGlmaWNhdGUgKi8KLS0JaWYgKChhbGdfYSAmIChTU0xfYURIfFNTTF9hTlVMTHxTU0xfYUtSQjUpKSB8fCAoYWxnX2sgJiBTU0xfa1BTSykpCi0rCWlmICgoYWxnX2EgJiAoU1NMX2FESHxTU0xfYU5VTEx8U1NMX2FLUkI1KSkgfHwgKChhbGdfYSAmIFNTTF9hUFNLKSAmJiAhKGFsZ19rICYgU1NMX2tSU0EpKSkKLSAJCXJldHVybigxKTsKLSAKLSAJc2M9cy0+c2Vzc2lvbi0+c2Vzc19jZXJ0OwogZGlmZiAtLWdpdCBhL3NzbC9zM19lbmMuYyBiL3NzbC9zM19lbmMuYwogaW5kZXggNjM1OGUxYi4uMGRhYzdlNyAxMDA2NDQKIC0tLSBhL3NzbC9zM19lbmMuYwpAQCAtNjA5LDE4ICs2MzMsMTcgQEAKICAJdm9pZCAoKmNiKShjb25zdCBTU0wgKnNzbCxpbnQgdHlwZSxpbnQgdmFsKT1OVUxMOwogIAlpbnQgcmV0PSAtMTsKICAJaW50IG5ld19zdGF0ZSxzdGF0ZSxza2lwPTA7Ci1AQCAtNDE4LDkgKzQxOSwxMSBAQCBpbnQgc3NsM19hY2NlcHQoU1NMICpzKQorQEAgLTQxOCw4ICs0MTksMTAgQEAgaW50IHNzbDNfYWNjZXB0KFNTTCAqcykKICAJCWNhc2UgU1NMM19TVF9TV19DRVJUX0E6CiAgCQljYXNlIFNTTDNfU1RfU1dfQ0VSVF9COgogIAkJCS8qIENoZWNrIGlmIGl0IGlzIGFub24gREggb3IgYW5vbiBFQ0RILCAqLwogLQkJCS8qIG5vcm1hbCBQU0sgb3IgS1JCNSBvciBTUlAgKi8KICsJCQkvKiBub24tUlNBIFBTSyBvciBLUkI1IG9yIFNSUCAqLwotIAkJCWlmICghKHMtPnMzLT50bXAubmV3X2NpcGhlci0+YWxnb3JpdGhtX2F1dGggJiBTU0xfYU5VTEwpCi0tCQkJCSYmICEocy0+czMtPnRtcC5uZXdfY2lwaGVyLT5hbGdvcml0aG1fbWtleSAmIFNTTF9rUFNLKQorIAkJCWlmICghKHMtPnMzLT50bXAubmV3X2NpcGhlci0+YWxnb3JpdGhtX2F1dGggJiAoU1NMX2FOVUxMfFNTTF9hS1JCNXxTU0xfYVNSUCkpCistCQkJCSYmICEocy0+czMtPnRtcC5uZXdfY2lwaGVyLT5hbGdvcml0aG1fbWtleSAmIFNTTF9rUFNLKSkKICsJCQkJLyogQW1vbmcgUFNLIGNpcGhlcnN1aXRlcyBvbmx5IFJTQV9QU0sgdXNlcyBzZXJ2ZXIgY2VydGlmaWNhdGUgKi8KICsJCQkJJiYgIShzLT5zMy0+dG1wLm5ld19jaXBoZXItPmFsZ29yaXRobV9hdXRoICYgU1NMX2FQU0sgJiYKLSsJCQkJCSAhKHMtPnMzLT50bXAubmV3X2NpcGhlci0+YWxnb3JpdGhtX21rZXkgJiBTU0xfa1JTQSkpCi0gCQkJCSYmICEocy0+czMtPnRtcC5uZXdfY2lwaGVyLT5hbGdvcml0aG1fYXV0aCAmIFNTTF9hS1JCNSkpCisrCQkJCQkgIShzLT5zMy0+dG1wLm5ld19jaXBoZXItPmFsZ29yaXRobV9ta2V5ICYgU1NMX2tSU0EpKSkKICAJCQkJewogIAkJCQlyZXQ9c3NsM19zZW5kX3NlcnZlcl9jZXJ0aWZpY2F0ZShzKTsKIEBAIC00NDksNiArNDUyLDcgQEAgaW50IHNzbDNfYWNjZXB0KFNTTCAqcykKQEAgLTc2MCw5ICs3ODMsOSBAQAogIAkJCW4rPTIrbnJbaV07CiAgCQkJfQogIAotLQkJaWYgKCEocy0+czMtPnRtcC5uZXdfY2lwaGVyLT5hbGdvcml0aG1fYXV0aCAmIFNTTF9hTlVMTCkKKy0JCWlmICghKHMtPnMzLT50bXAubmV3X2NpcGhlci0+YWxnb3JpdGhtX2F1dGggJiAoU1NMX2FOVUxMfFNTTF9hU1JQKSkKIC0JCQkmJiAhKHMtPnMzLT50bXAubmV3X2NpcGhlci0+YWxnb3JpdGhtX21rZXkgJiBTU0xfa1BTSykpCi0rCQlpZiAoIShhbGdfYSAmIFNTTF9hTlVMTCkKKysJCWlmICghKGFsZ19hICYgKFNTTF9hTlVMTHxTU0xfYVNSUCkpCiArCQkJLyogQW1vbmcgUFNLIGNpcGhlcnN1aXRlcyBvbmx5IFJTQSB1c2VzIGEgY2VydGlmaWNhdGUgKi8KICsJCQkmJiAhKChhbGdfYSAmIFNTTF9hUFNLKSAmJiAhKGFsZ19rICYgU1NMX2tSU0EpKSkKICAJCQl7CkBAIC0xMDI0LDcgKzEwNDcsNyBAQAogIAkJCXAgKz0gMTsKICAJCQlpZiAobiAhPSAxICsgaSkKICAJCQkJewotQEAgLTI4MTQsMjE0ICsyOTQwLDE0NSBAQCBpbnQgc3NsM19nZXRfY2xpZW50X2tleV9leGNoYW5nZShTU0wgKnMpCitAQCAtMjgxNCwyMjEgKzI5NDAsMTQ1IEBAIGludCBzc2wzX2dldF9jbGllbnRfa2V5X2V4Y2hhbmdlKFNTTCAqcykKICAJCUVDX0tFWV9mcmVlKHNydnJfZWNkaCk7CiAgCQlCTl9DVFhfZnJlZShibl9jdHgpOwogIAkJRUNfS0VZX2ZyZWUocy0+czMtPnRtcC5lY2RoKTsKQEAgLTExNzMsNiArMTE5NiwxMyBAQAogLQkJCQlTU0xlcnIoU1NMX0ZfU1NMM19HRVRfQ0xJRU5UX0tFWV9FWENIQU5HRSxFUlJfUl9CTl9MSUIpOwogLQkJCQlnb3RvIGVycjsKIC0JCQkJfQorLQkJCWlmIChCTl91Y21wKHMtPnNycF9jdHguQSwgcy0+c3JwX2N0eC5OKSA+PSAwCistCQkJCXx8IEJOX2lzX3plcm8ocy0+c3JwX2N0eC5BKSkKKy0JCQkJeworLQkJCQlhbD1TU0xfQURfSUxMRUdBTF9QQVJBTUVURVI7CistCQkJCVNTTGVycihTU0xfRl9TU0wzX0dFVF9DTElFTlRfS0VZX0VYQ0hBTkdFLFNTTF9SX0JBRF9TUlBfUEFSQU1FVEVSUyk7CistCQkJCWdvdG8gZl9lcnI7CistCQkJCX0KIC0JCQlpZiAocy0+c2Vzc2lvbi0+c3JwX3VzZXJuYW1lICE9IE5VTEwpCiAtCQkJCU9QRU5TU0xfZnJlZShzLT5zZXNzaW9uLT5zcnBfdXNlcm5hbWUpOwogLQkJCXMtPnNlc3Npb24tPnNycF91c2VybmFtZSA9IEJVRl9zdHJkdXAocy0+c3JwX2N0eC5sb2dpbik7CmRpZmYgLS1naXQgYS9wYXRjaGVzLzAwMTMtdGxzX3Bza19oaW50LnBhdGNoIGIvcGF0Y2hlcy8wMDEzLXRsc19wc2tfaGludC5wYXRjaAppbmRleCA0NzQ2Yjc4Li5lOTIzN2ViIDEwMDY0NAotLS0gYS9wYXRjaGVzLzAwMTMtdGxzX3Bza19oaW50LnBhdGNoCisrKyBiL3BhdGNoZXMvMDAxMy10bHNfcHNrX2hpbnQucGF0Y2gKQEAgLTEzOCw5ICsxMzgsOSBAQAogICNlbmRpZgogIAkJcy0+czMtPnRtcC5yZXVzZV9tZXNzYWdlPTE7CiBAQCAtMTQyNiw3ICsxNDI4LDExIEBAIGludCBzc2wzX2dldF9rZXlfZXhjaGFuZ2UoU1NMICpzKQotIAkJYWw9U1NMX0FEX0hBTkRTSEFLRV9GQUlMVVJFOwotIAkJbjJzKHAsaSk7Ci0gCQlwYXJhbV9sZW49aSsyOworCQkJfQorCQluMnMocCxpKTsKKwogLQkJcy0+Y3R4LT5wc2tfaWRlbnRpdHlfaGludCA9IE5VTEw7CiArCQlpZiAocy0+c2Vzc2lvbi0+cHNrX2lkZW50aXR5X2hpbnQpCiArCQkJewpAQCAtMTYzLDEzICsxNjMsMTQgQEAKICAJCQkJewogIAkJCQlTU0xlcnIoU1NMX0ZfU1NMM19HRVRfS0VZX0VYQ0hBTkdFLCBFUlJfUl9NQUxMT0NfRkFJTFVSRSk7CiAgCQkJCWdvdG8gZl9lcnI7Ci1AQCAtMjMzOCw3ICsyMzQyLDcgQEAgaW50IHNzbDNfc2VuZF9jbGllbnRfa2V5X2V4Y2hhbmdlKFNTTCAqcykKK0BAIC0yMzM4LDcgKzIzNDIsOCBAQCBpbnQgc3NsM19zZW5kX2NsaWVudF9rZXlfZXhjaGFuZ2UoU1NMICpzKQogIAkJCQlnb3RvIGVycjsKICAJCQkJfQogIAorKwkJCW1lbXNldChpZGVudGl0eSwgMCwgc2l6ZW9mKGlkZW50aXR5KSk7CiAtCQkJcHNrX2xlbiA9IHMtPnBza19jbGllbnRfY2FsbGJhY2socywgcy0+Y3R4LT5wc2tfaWRlbnRpdHlfaGludCwKICsJCQlwc2tfbGVuID0gcy0+cHNrX2NsaWVudF9jYWxsYmFjayhzLCBzLT5zZXNzaW9uLT5wc2tfaWRlbnRpdHlfaGludCwKLSAJCQkJaWRlbnRpdHksIFBTS19NQVhfSURFTlRJVFlfTEVOLCBwc2ssIHNpemVvZihwc2spKTsKKwkJCQlpZGVudGl0eSwgc2l6ZW9mKGlkZW50aXR5IC0gMSksIHBzaywgc2l6ZW9mKHBzaykpOwogIAkJCWlmIChwc2tfbGVuID4gUFNLX01BWF9QU0tfTEVOKQogIAkJCQl7CiBAQCAtMjM3NCwyMSArMjM3OCw2IEBAIGludCBzc2wzX3NlbmRfY2xpZW50X2tleV9leGNoYW5nZShTU0wgKnMpCmRpZmYgLS1naXQgYS9wYXRjaGVzLzAwMTUtcHNrX2NsaWVudF9jYWxsYmFja18xMjhfYnl0ZV9pZF9idWcucGF0Y2ggYi9wYXRjaGVzLzAwMTUtcHNrX2NsaWVudF9jYWxsYmFja18xMjhfYnl0ZV9pZF9idWcucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNiMDZlNzEuLjAwMDAwMDAKLS0tIGEvcGF0Y2hlcy8wMDE1LXBza19jbGllbnRfY2FsbGJhY2tfMTI4X2J5dGVfaWRfYnVnLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsODEgKzAsMCBAQAotRnJvbSBjOGIxZjdlYzU2NzA0YzExMTY3OTVhZWM5Y2E2MWRiNjU0YjQzM2JmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQWxleCBLbHl1YmluIDxrbHl1YmluQGdvb2dsZS5jb20+Ci1EYXRlOiBNb24sIDE5IE1heSAyMDE0IDExOjI3OjMzIC0wNzAwCi1TdWJqZWN0OiBwc2tfY2xpZW50X2NhbGxiYWNrLCAxMjgtYnl0ZSBpZCBidWcuCi0KLUZpeCBhIGJ1ZyBpbiBoYW5kbGluZyBvZiAxMjggYnl0ZSBsb25nIFBTSyBpZGVudGl0eSBpbgotcHNrX2NsaWVudF9jYWxsYmFjay4KLQotT3BlblNTTCBzdXBwb3J0cyBQU0sgaWRlbnRpdGllcyBvZiB1cCB0byAoYW5kIGluY2x1ZGluZykgMTI4IGJ5dGVzIGluCi1sZW5ndGguIFBTSyBpZGVudGl0eSBpcyBvYnRhaW5lZCB2aWEgdGhlIHBza19jbGllbnRfY2FsbGJhY2ssCi1pbXBsZW1lbnRvcnMgb2Ygd2hpY2ggYXJlIGV4cGVjdGVkIHRvIHByb3ZpZGUgYSBOVUxMLXRlcm1pbmF0ZWQKLWlkZW50aXR5LiBIb3dldmVyLCB0aGUgY2FsbGJhY2sgaXMgaW52b2tlZCB3aXRoIG9ubHkgMTI4IGJ5dGVzIG9mCi1zdG9yYWdlIHRodXMgbWFraW5nIGl0IGltcG9zc2libGUgdG8gcmV0dXJuIGEgMTI4IGJ5dGUgbG9uZyBpZGVudGl0eSBhbmQKLXRoZSByZXF1aXJlZCBhZGRpdGlvbmFsIE5VTEwgYnl0ZS4KLQotVGhpcyBDTCBmaXhlcyB0aGUgaXNzdWUgYnkgcGFzc2luZyBpbiBhIDEyOSBieXRlIGxvbmcgYnVmZmVyIGludG8gdGhlCi1wc2tfY2xpZW50X2NhbGxiYWNrLiBBcyBhIHNhZmV0eSBwcmVjYXV0aW9uLCB0aGlzIENMIGFsc28gemVyb2VzIG91dCB0aGUKLWJ1ZmZlciBiZWZvcmUgcGFzc2luZyBpdCBpbnRvIHRoZSBjYWxsYmFjaywgdXNlcyBzdHJubGVuIGZvciBvYnRhaW5pbmcKLXRoZSBsZW5ndGggb2YgdGhlIGlkZW50aXR5IHJldHVybmVkIGJ5IHRoZSBjYWxsYmFjaywgYW5kIGFib3J0cyB0aGUKLWhhbmRzaGFrZSBpZiB0aGUgaWRlbnRpdHkgKHdpdGhvdXQgdGhlIE5VTEwgdGVybWluYXRvcikgaXMgbG9uZ2VyIHRoYW4KLTEyOCBieXRlcy4KLS0tLQotIHNzbC9zM19jbG50LmMgfCAyMCArKysrKysrKysrKysrKy0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3NsL3MzX2NsbnQuYyBiL3NzbC9zM19jbG50LmMKLWluZGV4IDAzYjk2ZTguLjBlMjJhZmMgMTAwNjQ0Ci0tLS0gYS9zc2wvczNfY2xudC5jCi0rKysgYi9zc2wvczNfY2xudC5jCi1AQCAtMjMyOCw3ICsyMzI4LDggQEAgaW50IHNzbDNfc2VuZF9jbGllbnRfa2V5X2V4Y2hhbmdlKFNTTCAqcykKLSAjaWZuZGVmIE9QRU5TU0xfTk9fUFNLCi0gCQlpZiAoYWxnX2EgJiBTU0xfYVBTSykKLSAJCQl7Ci0tCQkJY2hhciBpZGVudGl0eVtQU0tfTUFYX0lERU5USVRZX0xFTl07Ci0rCQkJY2hhciBpZGVudGl0eVtQU0tfTUFYX0lERU5USVRZX0xFTiArIDFdOwotKwkJCXNpemVfdCBpZGVudGl0eV9sZW47Ci0gCQkJdW5zaWduZWQgY2hhciAqdCA9IE5VTEw7Ci0gCQkJdW5zaWduZWQgY2hhciBwcmVfbXNbUFNLX01BWF9QU0tfTEVOKjIrNF07Ci0gCQkJdW5zaWduZWQgaW50IHByZV9tc19sZW4gPSAwOwotQEAgLTIzNDIsOCArMjM0Myw5IEBAIGludCBzc2wzX3NlbmRfY2xpZW50X2tleV9leGNoYW5nZShTU0wgKnMpCi0gCQkJCWdvdG8gZXJyOwotIAkJCQl9Ci0gCi0rCQkJbWVtc2V0KGlkZW50aXR5LCAwLCBzaXplb2YoaWRlbnRpdHkpKTsKLSAJCQlwc2tfbGVuID0gcy0+cHNrX2NsaWVudF9jYWxsYmFjayhzLCBzLT5zZXNzaW9uLT5wc2tfaWRlbnRpdHlfaGludCwKLS0JCQkJaWRlbnRpdHksIFBTS19NQVhfSURFTlRJVFlfTEVOLCBwc2ssIHNpemVvZihwc2spKTsKLSsJCQkJaWRlbnRpdHksIHNpemVvZihpZGVudGl0eSksIHBzaywgc2l6ZW9mKHBzaykpOwotIAkJCWlmIChwc2tfbGVuID4gUFNLX01BWF9QU0tfTEVOKQotIAkJCQl7Ci0gCQkJCVNTTGVycihTU0xfRl9TU0wzX1NFTkRfQ0xJRU5UX0tFWV9FWENIQU5HRSwKLUBAIC0yMzU2LDYgKzIzNTgsMTMgQEAgaW50IHNzbDNfc2VuZF9jbGllbnRfa2V5X2V4Y2hhbmdlKFNTTCAqcykKLSAJCQkJCVNTTF9SX1BTS19JREVOVElUWV9OT1RfRk9VTkQpOwotIAkJCQlnb3RvIHBza19lcnI7Ci0gCQkJCX0KLSsJCQlpZGVudGl0eV9sZW4gPSBzdHJubGVuKGlkZW50aXR5LCBzaXplb2YoaWRlbnRpdHkpKTsKLSsJCQlpZiAoaWRlbnRpdHlfbGVuID4gUFNLX01BWF9JREVOVElUWV9MRU4pCi0rCQkJCXsKLSsJCQkJU1NMZXJyKFNTTF9GX1NTTDNfU0VORF9DTElFTlRfS0VZX0VYQ0hBTkdFLAotKwkJCQkJRVJSX1JfSU5URVJOQUxfRVJST1IpOwotKwkJCQlnb3RvIHBza19lcnI7Ci0rCQkJCX0KLSAKLSAJCQlpZiAoIShhbGdfayAmIFNTTF9rRUVDREgpKQotIAkJCQl7Ci1AQCAtMjM3MiwxMCArMjM4MSw5IEBAIGludCBzc2wzX3NlbmRfY2xpZW50X2tleV9leGNoYW5nZShTU0wgKnMpCi0gCQkJCQlzLT5tZXRob2QtPnNzbDNfZW5jLT5nZW5lcmF0ZV9tYXN0ZXJfc2VjcmV0KHMsCi0gCQkJCQkJcy0+c2Vzc2lvbi0+bWFzdGVyX2tleSwKLSAJCQkJCQlwcmVfbXMsIHByZV9tc19sZW4pOwotLQkJCQluID0gc3RybGVuKGlkZW50aXR5KTsKLS0JCQkJczJuKG4sIHApOwotLQkJCQltZW1jcHkocCwgaWRlbnRpdHksIG4pOwotLQkJCQluICs9IDI7Ci0rCQkJCXMybihpZGVudGl0eV9sZW4sIHApOwotKwkJCQltZW1jcHkocCwgaWRlbnRpdHksIGlkZW50aXR5X2xlbik7Ci0rCQkJCW4gPSAyICsgaWRlbnRpdHlfbGVuOwotIAkJCQl9Ci0gCi0gCQkJaWYgKHMtPnNlc3Npb24tPnBza19pZGVudGl0eSAhPSBOVUxMKQotLS0gCi0yLjAuMC41MjYuZzUzMTgzMzYKLQpkaWZmIC0tZ2l0IGEvcGF0Y2hlcy8wMDE4LXRsc19mYWxsYmFja19zY3N2LnBhdGNoIGIvcGF0Y2hlcy8wMDE4LXRsc19mYWxsYmFja19zY3N2LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNjFjODk0Li4wMDAwMDAwCi0tLSBhL3BhdGNoZXMvMDAxOC10bHNfZmFsbGJhY2tfc2Nzdi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQ3NiArMCwwIEBACi1Gcm9tIGY3YTA2N2Q3NDNiN2NjNjU5Nzk2NzhhYzE1MTkwYjMzNDM1MjcxNmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBCb2RvIE1vZWxsZXIgPGJtb2VsbGVyQGdvb2dsZS5jb20+Ci1EYXRlOiBUaHUsIDIgT2N0IDIwMTQgMTU6NDc6NDQgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gQWRkIHN1cHBvcnQgZm9yIFRMU19GQUxMQkFDS19TQ1NWLgotCi1DaGFuZ2UtSWQ6IEk1NjYyNmIxMjQwN2YxOWU3ZWQ0OGE2ODBiNTk2ZTJiMmM3YjQ2ZGUxCi0tLS0KLSBhcHBzL3NfY2xpZW50LmMgICAgICAgICB8IDEwICsrKysrKysrKwotIGNyeXB0by9lcnIvb3BlbnNzbC5lYyAgIHwgIDEgKwotIGluY2x1ZGUvb3BlbnNzbC9kdGxzMS5oIHwgIDMgKystCi0gaW5jbHVkZS9vcGVuc3NsL3NzbC5oICAgfCAxMCArKysrKysrKysKLSBpbmNsdWRlL29wZW5zc2wvc3NsMy5oICB8ICA3ICsrKysrLQotIGluY2x1ZGUvb3BlbnNzbC90bHMxLmggIHwgMTUgKysrKysrKystLS0tLQotIHNzbC9kMV9saWIuYyAgICAgICAgICAgIHwgMTAgKysrKysrKysrCi0gc3NsL2R0bHMxLmggICAgICAgICAgICAgfCAgMyArKy0KLSBzc2wvczIzX2NsbnQuYyAgICAgICAgICB8ICAzICsrKwotIHNzbC9zMjNfc3J2ci5jICAgICAgICAgIHwgIDMgKysrCi0gc3NsL3MyX2xpYi5jICAgICAgICAgICAgfCAgMiArKwotIHNzbC9zM19lbmMuYyAgICAgICAgICAgIHwgIDIgKy0KLSBzc2wvczNfbGliLmMgICAgICAgICAgICB8IDI5ICsrKysrKysrKysrKysrKysrKysrKysrKy0KLSBzc2wvc3NsLmggICAgICAgICAgICAgICB8IDEwICsrKysrKysrKwotIHNzbC9zc2wzLmggICAgICAgICAgICAgIHwgIDcgKysrKystCi0gc3NsL3NzbF9lcnIuYyAgICAgICAgICAgfCAgMiArKwotIHNzbC9zc2xfbGliLmMgICAgICAgICAgIHwgNTggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQotIHNzbC90MV9lbmMuYyAgICAgICAgICAgIHwgIDEgKwotIHNzbC90bHMxLmggICAgICAgICAgICAgIHwgMTUgKysrKysrKystLS0tLQotIDE5IGZpbGVzIGNoYW5nZWQsIDE1OSBpbnNlcnRpb25zKCspLCAzMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2FwcHMvc19jbGllbnQuYyBiL2FwcHMvc19jbGllbnQuYwotaW5kZXggMGM3MDU4MC4uMjk5ZmFjZCAxMDA2NDQKLS0tLSBhL2FwcHMvc19jbGllbnQuYwotKysrIGIvYXBwcy9zX2NsaWVudC5jCi1AQCAtMzM1LDYgKzMzNSw3IEBAIHN0YXRpYyB2b2lkIHNjX3VzYWdlKHZvaWQpCi0gCUJJT19wcmludGYoYmlvX2VyciwiIC10bHMxXzEgICAgICAgLSBqdXN0IHVzZSBUTFN2MS4xXG4iKTsKLSAJQklPX3ByaW50ZihiaW9fZXJyLCIgLXRsczEgICAgICAgICAtIGp1c3QgdXNlIFRMU3YxXG4iKTsKLSAJQklPX3ByaW50ZihiaW9fZXJyLCIgLWR0bHMxICAgICAgICAtIGp1c3QgdXNlIERUTFN2MVxuIik7ICAgIAotKwlCSU9fcHJpbnRmKGJpb19lcnIsIiAtZmFsbGJhY2tfc2NzdiAtIHNlbmQgVExTX0ZBTExCQUNLX1NDU1ZcbiIpOwotIAlCSU9fcHJpbnRmKGJpb19lcnIsIiAtbXR1ICAgICAgICAgIC0gc2V0IHRoZSBsaW5rIGxheWVyIE1UVVxuIik7Ci0gCUJJT19wcmludGYoYmlvX2VyciwiIC1ub190bHMxXzIvLW5vX3RsczFfMS8tbm9fdGxzMS8tbm9fc3NsMy8tbm9fc3NsMiAtIHR1cm4gb2ZmIHRoYXQgcHJvdG9jb2xcbiIpOwotIAlCSU9fcHJpbnRmKGJpb19lcnIsIiAtYnVncyAgICAgICAgIC0gU3dpdGNoIG9uIGFsbCBTU0wgaW1wbGVtZW50YXRpb24gYnVnIHdvcmthcm91bmRzXG4iKTsKLUBAIC02MjEsNiArNjIyLDcgQEAgaW50IE1BSU4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQotIAljaGFyICpzZXNzX291dCA9IE5VTEw7Ci0gCXN0cnVjdCBzb2NrYWRkciBwZWVyOwotIAlpbnQgcGVlcmxlbiA9IHNpemVvZihwZWVyKTsKLSsJaW50IGZhbGxiYWNrX3Njc3YgPSAwOwotIAlpbnQgZW5hYmxlX3RpbWVvdXRzID0gMCA7Ci0gCWxvbmcgc29ja2V0X210dSA9IDA7Ci0gI2lmbmRlZiBPUEVOU1NMX05PX0pQQUtFCi1AQCAtODI3LDYgKzgyOSwxMCBAQCBpbnQgTUFJTihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCi0gCQkJbWV0aD1EVExTdjFfY2xpZW50X21ldGhvZCgpOwotIAkJCXNvY2tldF90eXBlPVNPQ0tfREdSQU07Ci0gCQkJfQotKwkJZWxzZSBpZiAoc3RyY21wKCphcmd2LCItZmFsbGJhY2tfc2NzdiIpID09IDApCi0rCQkJewotKwkJCWZhbGxiYWNrX3Njc3YgPSAxOwotKwkJCX0KLSAJCWVsc2UgaWYgKHN0cmNtcCgqYXJndiwiLXRpbWVvdXQiKSA9PSAwKQotIAkJCWVuYWJsZV90aW1lb3V0cz0xOwotIAkJZWxzZSBpZiAoc3RyY21wKCphcmd2LCItbXR1IikgPT0gMCkKLUBAIC0xMjczLDYgKzEyNzksMTAgQEAgYmFkOgotIAkJU1NMX3NldF9zZXNzaW9uKGNvbiwgc2Vzcyk7Ci0gCQlTU0xfU0VTU0lPTl9mcmVlKHNlc3MpOwotIAkJfQotKwotKwlpZiAoZmFsbGJhY2tfc2NzdikKLSsJCVNTTF9zZXRfbW9kZShjb24sIFNTTF9NT0RFX1NFTkRfRkFMTEJBQ0tfU0NTVik7Ci0rCi0gI2lmbmRlZiBPUEVOU1NMX05PX1RMU0VYVAotIAlpZiAoc2VydmVybmFtZSAhPSBOVUxMKQotIAkJewotZGlmZiAtLWdpdCBhL2NyeXB0by9lcnIvb3BlbnNzbC5lYyBiL2NyeXB0by9lcnIvb3BlbnNzbC5lYwotaW5kZXggZTA1NTRiNC4uMzQ3NTRlNSAxMDA2NDQKLS0tLSBhL2NyeXB0by9lcnIvb3BlbnNzbC5lYwotKysrIGIvY3J5cHRvL2Vyci9vcGVuc3NsLmVjCi1AQCAtNzEsNiArNzEsNyBAQCBSIFNTTF9SX1RMU1YxX0FMRVJUX0VYUE9SVF9SRVNUUklDVElPTgkJMTA2MAotIFIgU1NMX1JfVExTVjFfQUxFUlRfUFJPVE9DT0xfVkVSU0lPTgkJMTA3MAotIFIgU1NMX1JfVExTVjFfQUxFUlRfSU5TVUZGSUNJRU5UX1NFQ1VSSVRZCTEwNzEKLSBSIFNTTF9SX1RMU1YxX0FMRVJUX0lOVEVSTkFMX0VSUk9SCQkxMDgwCi0rUiBTU0xfUl9TU0xWM19BTEVSVF9JTkFQUFJPUFJJQVRFX0ZBTExCQUNLCTEwODYKLSBSIFNTTF9SX1RMU1YxX0FMRVJUX1VTRVJfQ0FOQ0VMTEVECQkxMDkwCi0gUiBTU0xfUl9UTFNWMV9BTEVSVF9OT19SRU5FR09USUFUSU9OCQkxMTAwCi0gUiBTU0xfUl9UTFNWMV9VTlNVUFBPUlRFRF9FWFRFTlNJT04JCTExMTAKLWRpZmYgLS1naXQgYS9zc2wvZDFfbGliLmMgYi9zc2wvZDFfbGliLmMKLWluZGV4IDZiZGUxNmYuLjgyY2E2NTMgMTAwNjQ0Ci0tLS0gYS9zc2wvZDFfbGliLmMKLSsrKyBiL3NzbC9kMV9saWIuYwotQEAgLTI2Niw2ICsyNjYsMTYgQEAgbG9uZyBkdGxzMV9jdHJsKFNTTCAqcywgaW50IGNtZCwgbG9uZyBsYXJnLCB2b2lkICpwYXJnKQotIAljYXNlIERUTFNfQ1RSTF9MSVNURU46Ci0gCQlyZXQgPSBkdGxzMV9saXN0ZW4ocywgcGFyZyk7Ci0gCQlicmVhazsKLSsJY2FzZSBTU0xfQ1RSTF9DSEVDS19QUk9UT19WRVJTSU9OOgotKwkJLyogRm9yIGxpYnJhcnktaW50ZXJuYWwgdXNlOyBjaGVja3MgdGhhdCB0aGUgY3VycmVudCBwcm90b2NvbAotKwkJICogaXMgdGhlIGhpZ2hlc3QgZW5hYmxlZCB2ZXJzaW9uIChhY2NvcmRpbmcgdG8gcy0+Y3R4LT5tZXRob2QsCi0rCQkgKiBhcyB2ZXJzaW9uIG5lZ290aWF0aW9uIG1heSBoYXZlIGNoYW5nZWQgcy0+bWV0aG9kKS4gKi8KLSsjaWYgRFRMU19NQVhfVkVSU0lPTiAhPSBEVExTMV9WRVJTSU9OCi0rIyAgZXJyb3IgQ29kZSBuZWVkcyB1cGRhdGUgZm9yIERUTFNfbWV0aG9kKCkgc3VwcG9ydCBiZXlvbmQgRFRMUzFfVkVSU0lPTi4KLSsjZW5kaWYKLSsJCS8qIEp1c3Qgb25lIHByb3RvY29sIHZlcnNpb24gaXMgc3VwcG9ydGVkIHNvIGZhcjsKLSsJCSAqIGZhaWwgY2xvc2VkIGlmIHRoZSB2ZXJzaW9uIGlzIG5vdCBhcyBleHBlY3RlZC4gKi8KLSsJCXJldHVybiBzLT52ZXJzaW9uID09IERUTFNfTUFYX1ZFUlNJT047Ci0gCi0gCWRlZmF1bHQ6Ci0gCQlyZXQgPSBzc2wzX2N0cmwocywgY21kLCBsYXJnLCBwYXJnKTsKLWRpZmYgLS1naXQgYS9zc2wvZHRsczEuaCBiL3NzbC9kdGxzMS5oCi1pbmRleCBlNjVkNTAxLi4xOTJjNWRlIDEwMDY0NAotLS0tIGEvc3NsL2R0bHMxLmgKLSsrKyBiL3NzbC9kdGxzMS5oCi1AQCAtODQsNiArODQsOCBAQCBleHRlcm4gIkMiIHsKLSAjZW5kaWYKLSAKLSAjZGVmaW5lIERUTFMxX1ZFUlNJT04JCQkweEZFRkYKLSsjZGVmaW5lIERUTFNfTUFYX1ZFUlNJT04JCURUTFMxX1ZFUlNJT04KLSsKLSAjZGVmaW5lIERUTFMxX0JBRF9WRVIJCQkweDAxMDAKLSAKLSAjaWYgMAotQEAgLTI4NCw0ICsyODYsMyBAQCB0eXBlZGVmIHN0cnVjdCBkdGxzMV9yZWNvcmRfZGF0YV9zdAotIH0KLSAjZW5kaWYKLSAjZW5kaWYKLS0KLWRpZmYgLS1naXQgYS9zc2wvczIzX2NsbnQuYyBiL3NzbC9zMjNfY2xudC5jCi1pbmRleCAyYmM5MjE0Li40NjdhZGZlIDEwMDY0NAotLS0tIGEvc3NsL3MyM19jbG50LmMKLSsrKyBiL3NzbC9zMjNfY2xudC5jCi1AQCAtNzM2LDYgKzczNiw5IEBAIHN0YXRpYyBpbnQgc3NsMjNfZ2V0X3NlcnZlcl9oZWxsbyhTU0wgKnMpCi0gCQkJZ290byBlcnI7Ci0gCQkJfQotIAotKwkJLyogZW5zdXJlIHRoYXQgVExTX01BWF9WRVJTSU9OIGlzIHVwLXRvLWRhdGUgKi8KLSsJCU9QRU5TU0xfYXNzZXJ0KHMtPnZlcnNpb24gPD0gVExTX01BWF9WRVJTSU9OKTsKLSsKLSAJCWlmIChwWzBdID09IFNTTDNfUlRfQUxFUlQgJiYgcFs1XSAhPSBTU0wzX0FMX1dBUk5JTkcpCi0gCQkJewotIAkJCS8qIGZhdGFsIGFsZXJ0ICovCi1kaWZmIC0tZ2l0IGEvc3NsL3MyM19zcnZyLmMgYi9zc2wvczIzX3NydnIuYwotaW5kZXggNDg3Nzg0OS4uODJkNjg2NyAxMDA2NDQKLS0tLSBhL3NzbC9zMjNfc3J2ci5jCi0rKysgYi9zc2wvczIzX3NydnIuYwotQEAgLTQyNSw2ICs0MjUsOSBAQCBpbnQgc3NsMjNfZ2V0X2NsaWVudF9oZWxsbyhTU0wgKnMpCi0gCQkJfQotIAkJfQotIAotKwkvKiBlbnN1cmUgdGhhdCBUTFNfTUFYX1ZFUlNJT04gaXMgdXAtdG8tZGF0ZSAqLwotKwlPUEVOU1NMX2Fzc2VydChzLT52ZXJzaW9uIDw9IFRMU19NQVhfVkVSU0lPTik7Ci0rCi0gI2lmZGVmIE9QRU5TU0xfRklQUwotIAlpZiAoRklQU19tb2RlKCkgJiYgKHMtPnZlcnNpb24gPCBUTFMxX1ZFUlNJT04pKQotIAkJewotZGlmZiAtLWdpdCBhL3NzbC9zMl9saWIuYyBiL3NzbC9zMl9saWIuYwotaW5kZXggOTkxNDYwNC4uYjk2MjRiOSAxMDA2NDQKLS0tLSBhL3NzbC9zMl9saWIuYwotKysrIGIvc3NsL3MyX2xpYi5jCi1AQCAtMzkxLDYgKzM5MSw4IEBAIGxvbmcgc3NsMl9jdHJsKFNTTCAqcywgaW50IGNtZCwgbG9uZyBsYXJnLCB2b2lkICpwYXJnKQotIAljYXNlIFNTTF9DVFJMX0dFVF9TRVNTSU9OX1JFVVNFRDoKLSAJCXJldD1zLT5oaXQ7Ci0gCQlicmVhazsKLSsJY2FzZSBTU0xfQ1RSTF9DSEVDS19QUk9UT19WRVJTSU9OOgotKwkJcmV0dXJuIHNzbDNfY3RybChzLCBTU0xfQ1RSTF9DSEVDS19QUk9UT19WRVJTSU9OLCBsYXJnLCBwYXJnKTsKLSAJZGVmYXVsdDoKLSAJCWJyZWFrOwotIAkJfQotZGlmZiAtLWdpdCBhL3NzbC9zM19lbmMuYyBiL3NzbC9zM19lbmMuYwotaW5kZXggNTNiOTRiNy4uMzU5NWNmZiAxMDA2NDQKLS0tLSBhL3NzbC9zM19lbmMuYwotKysrIGIvc3NsL3MzX2VuYy5jCi1AQCAtODkxLDcgKzg5MSw3IEBAIGludCBzc2wzX2FsZXJ0X2NvZGUoaW50IGNvZGUpCi0gCWNhc2UgU1NMX0FEX0JBRF9DRVJUSUZJQ0FURV9TVEFUVVNfUkVTUE9OU0U6IHJldHVybihTU0wzX0FEX0hBTkRTSEFLRV9GQUlMVVJFKTsKLSAJY2FzZSBTU0xfQURfQkFEX0NFUlRJRklDQVRFX0hBU0hfVkFMVUU6IHJldHVybihTU0wzX0FEX0hBTkRTSEFLRV9GQUlMVVJFKTsKLSAJY2FzZSBTU0xfQURfVU5LTk9XTl9QU0tfSURFTlRJVFk6cmV0dXJuKFRMUzFfQURfVU5LTk9XTl9QU0tfSURFTlRJVFkpOwotKwljYXNlIFNTTF9BRF9JTkFQUFJPUFJJQVRFX0ZBTExCQUNLOnJldHVybihUTFMxX0FEX0lOQVBQUk9QUklBVEVfRkFMTEJBQ0spOwotIAlkZWZhdWx0OgkJCXJldHVybigtMSk7Ci0gCQl9Ci0gCX0KLS0KLWRpZmYgLS1naXQgYS9zc2wvczNfbGliLmMgYi9zc2wvczNfbGliLmMKLWluZGV4IDg5NmQxZTEuLjkxNGUxMDggMTAwNjQ0Ci0tLS0gYS9zc2wvczNfbGliLmMKLSsrKyBiL3NzbC9zM19saWIuYwotQEAgLTM0MzksNiArMzQzOSwzMyBAQCBsb25nIHNsM19jdHJsKFNTTCAqcywgaW50IGNtZCwgbG9uZyBsYXJnLCB2b2lkICpwYXJnKQotIAkJcmV0dXJuIDY0OwotIAotICNlbmRpZiAvKiAhT1BFTlNTTF9OT19UTFNFWFQgKi8KLSsKLSsJY2FzZSBTU0xfQ1RSTF9DSEVDS19QUk9UT19WRVJTSU9OOgotKwkJLyogRm9yIGxpYnJhcnktaW50ZXJuYWwgdXNlOyBjaGVja3MgdGhhdCB0aGUgY3VycmVudCBwcm90b2NvbAotKwkJICogaXMgdGhlIGhpZ2hlc3QgZW5hYmxlZCB2ZXJzaW9uIChhY2NvcmRpbmcgdG8gcy0+Y3R4LT5tZXRob2QsCi0rCQkgKiBhcyB2ZXJzaW9uIG5lZ290aWF0aW9uIG1heSBoYXZlIGNoYW5nZWQgcy0+bWV0aG9kKS4gKi8KLSsJCWlmIChzLT52ZXJzaW9uID09IHMtPmN0eC0+bWV0aG9kLT52ZXJzaW9uKQotKwkJCXJldHVybiAxOwotKwkJLyogQXBwYXJlbnRseSB3ZSdyZSB1c2luZyBhIHZlcnNpb24tZmxleGlibGUgU1NMX01FVEhPRAotKwkJICogKG5vdCBhdCBpdHMgaGlnaGVzdCBwcm90b2NvbCB2ZXJzaW9uKS4gKi8KLSsJCWlmIChzLT5jdHgtPm1ldGhvZC0+dmVyc2lvbiA9PSBTU0x2MjNfbWV0aG9kKCktPnZlcnNpb24pCi0rCQkJewotKyNpZiBUTFNfTUFYX1ZFUlNJT04gIT0gVExTMV8yX1ZFUlNJT04KLSsjICBlcnJvciBDb2RlIG5lZWRzIHVwZGF0ZSBmb3IgU1NMdjIzX21ldGhvZCgpIHN1cHBvcnQgYmV5b25kIFRMUzFfMl9WRVJTSU9OLgotKyNlbmRpZgotKwkJCWlmICghKHMtPm9wdGlvbnMgJiBTU0xfT1BfTk9fVExTdjFfMikpCi0rCQkJCXJldHVybiBzLT52ZXJzaW9uID09IFRMUzFfMl9WRVJTSU9OOwotKwkJCWlmICghKHMtPm9wdGlvbnMgJiBTU0xfT1BfTk9fVExTdjFfMSkpCi0rCQkJCXJldHVybiBzLT52ZXJzaW9uID09IFRMUzFfMV9WRVJTSU9OOwotKwkJCWlmICghKHMtPm9wdGlvbnMgJiBTU0xfT1BfTk9fVExTdjEpKQotKwkJCQlyZXR1cm4gcy0+dmVyc2lvbiA9PSBUTFMxX1ZFUlNJT047Ci0rCQkJaWYgKCEocy0+b3B0aW9ucyAmIFNTTF9PUF9OT19TU0x2MykpCi0rCQkJCXJldHVybiBzLT52ZXJzaW9uID09IFNTTDNfVkVSU0lPTjsKLSsJCQlpZiAoIShzLT5vcHRpb25zICYgU1NMX09QX05PX1NTTHYyKSkKLSsJCQkJcmV0dXJuIHMtPnZlcnNpb24gPT0gU1NMMl9WRVJTSU9OOwotKwkJCX0KLSsJCXJldHVybiAwOyAvKiBVbmV4cGVjdGVkIHN0YXRlOyBmYWlsIGNsb3NlZC4gKi8KLSsKLSAJZGVmYXVsdDoKLSAJCWJyZWFrOwotIAkJfQotQEAgLTM4MTYsNiArMzg0Myw3IEBAIGxvbmcgc3NsM19jdHhfY2FsbGJhY2tfY3RybChTU0xfQ1RYICpjdHgsIGludCBjbWQsIHZvaWQgKCpmcCkodm9pZCkpCi0gCQlicmVhazsKLSAjZW5kaWYKLSAjZW5kaWYKLSsKLSAJZGVmYXVsdDoKLSAJCXJldHVybigwKTsKLSAJCX0KLUBAIC00NDA2LDQgKzQ0MzQsMyBAQCBsb25nIHNzbF9nZXRfYWxnb3JpdGhtMihTU0wgKnMpCi0gCQlyZXR1cm4gU1NMX0hBTkRTSEFLRV9NQUNfU0hBMjU2IHwgVExTMV9QUkZfU0hBMjU2OwotIAlyZXR1cm4gYWxnMjsKLSAJfQotLQkJCi1kaWZmIC0tZ2l0IGEvc3NsL3NzbC5oIGIvc3NsL3NzbC5oCi1pbmRleCA3NTY2ZjJkLi40NjA3NDAxIDEwMDY0NAotLS0tIGEvc3NsL3NzbC5oCi0rKysgYi9zc2wvc3NsLmgKLUBAIC02NzYsNiArNjc2LDExIEBAIHN0cnVjdCBzc2xfc2Vzc2lvbl9zdAotICAqIGF0dGFja3MuICovCi0gI2RlZmluZSBTU0xfTU9ERV9DQkNfUkVDT1JEX1NQTElUVElORyAweDAwMDAwMTAwTAotIAotKy8qIFNlbmQgVExTX0ZBTExCQUNLX1NDU1YgaW4gdGhlIENsaWVudEhlbGxvLgotKyAqIFRvIGJlIHNldCBieSBhcHBsaWNhdGlvbnMgdGhhdCByZWNvbm5lY3Qgd2l0aCBhIGRvd25ncmFkZWQgcHJvdG9jb2wKLSsgKiB2ZXJzaW9uOyBzZWUgZHJhZnQtaWV0Zi10bHMtZG93bmdyYWRlLXNjc3YtMDAgZm9yIGRldGFpbHMuICovCi0rI2RlZmluZSBTU0xfTU9ERV9TRU5EX0ZBTExCQUNLX1NDU1YgMHgwMDAwMDIwMEwKLSsKLSAvKiBOb3RlOiBTU0xbX0NUWF1fc2V0X3tvcHRpb25zLG1vZGV9IHVzZSB8PSBvcCBvbiB0aGUgcHJldmlvdXMgdmFsdWUsCi0gICogdGhleSBjYW5ub3QgYmUgdXNlZCB0byBjbGVhciBiaXRzLiAqLwotIAotQEAgLTE2MTUsNiArMTYyMCw3IEBAIERFQ0xBUkVfUEVNX3J3KFNTTF9TRVNTSU9OLCBTU0xfU0VTU0lPTikKLSAjZGVmaW5lIFNTTF9BRF9CQURfQ0VSVElGSUNBVEVfU1RBVFVTX1JFU1BPTlNFIFRMUzFfQURfQkFEX0NFUlRJRklDQVRFX1NUQVRVU19SRVNQT05TRQotICNkZWZpbmUgU1NMX0FEX0JBRF9DRVJUSUZJQ0FURV9IQVNIX1ZBTFVFIFRMUzFfQURfQkFEX0NFUlRJRklDQVRFX0hBU0hfVkFMVUUKLSAjZGVmaW5lIFNTTF9BRF9VTktOT1dOX1BTS19JREVOVElUWSAgICAgVExTMV9BRF9VTktOT1dOX1BTS19JREVOVElUWSAvKiBmYXRhbCAqLwotKyNkZWZpbmUgU1NMX0FEX0lOQVBQUk9QUklBVEVfRkFMTEJBQ0sJVExTMV9BRF9JTkFQUFJPUFJJQVRFX0ZBTExCQUNLIC8qIGZhdGFsICovCi0gCi0gI2RlZmluZSBTU0xfRVJST1JfTk9ORQkJCTAKLSAjZGVmaW5lIFNTTF9FUlJPUl9TU0wJCQkxCi1AQCAtMTcyOSw2ICsxNzM1LDggQEAgREVDTEFSRV9QRU1fcncoU1NMX1NFU1NJT04sIFNTTF9TRVNTSU9OKQotICNkZWZpbmUgU1NMX0NUUkxfR0VUX0VYVFJBX0NIQUlOX0NFUlRTCQk4MgotICNkZWZpbmUgU1NMX0NUUkxfQ0xFQVJfRVhUUkFfQ0hBSU5fQ0VSVFMJODMKLSAKLSsjZGVmaW5lIFNTTF9DVFJMX0NIRUNLX1BST1RPX1ZFUlNJT04JCTExOQotKwotICNkZWZpbmUgRFRMU3YxX2dldF90aW1lb3V0KHNzbCwgYXJnKSBcCi0gCVNTTF9jdHJsKHNzbCxEVExTX0NUUkxfR0VUX1RJTUVPVVQsMCwgKHZvaWQgKilhcmcpCi0gI2RlZmluZSBEVExTdjFfaGFuZGxlX3RpbWVvdXQoc3NsKSBcCi1AQCAtMjUxOSw2ICsyNTI3LDcgQEAgdm9pZCBFUlJfbG9hZF9TU0xfc3RyaW5ncyh2b2lkKTsKLSAjZGVmaW5lIFNTTF9SX0hUVFBTX1BST1hZX1JFUVVFU1QJCQkgMTU1Ci0gI2RlZmluZSBTU0xfUl9IVFRQX1JFUVVFU1QJCQkJIDE1NgotICNkZWZpbmUgU1NMX1JfSUxMRUdBTF9QQURESU5HCQkJCSAyODMKLSsjZGVmaW5lIFNTTF9SX0lOQVBQUk9QUklBVEVfRkFMTEJBQ0sJCQkgMzgwCi0gI2RlZmluZSBTU0xfUl9JTkNPTlNJU1RFTlRfQ09NUFJFU1NJT04JCQkgMzQwCi0gI2RlZmluZSBTU0xfUl9JTlZBTElEX0NIQUxMRU5HRV9MRU5HVEgJCQkgMTU4Ci0gI2RlZmluZSBTU0xfUl9JTlZBTElEX0NPTU1BTkQJCQkJIDI4MAotQEAgLTI2NjgsNiArMjY3Nyw3IEBAIHZvaWQgRVJSX2xvYWRfU1NMX3N0cmluZ3Modm9pZCk7Ci0gI2RlZmluZSBTU0xfUl9UTFNWMV9BTEVSVF9ERUNSWVBUSU9OX0ZBSUxFRAkJIDEwMjEKLSAjZGVmaW5lIFNTTF9SX1RMU1YxX0FMRVJUX0RFQ1JZUFRfRVJST1IJCQkgMTA1MQotICNkZWZpbmUgU1NMX1JfVExTVjFfQUxFUlRfRVhQT1JUX1JFU1RSSUNUSU9OCQkgMTA2MAotKyNkZWZpbmUgU1NMX1JfVExTVjFfQUxFUlRfSU5BUFBST1BSSUFURV9GQUxMQkFDSwkgMTA4NgotICNkZWZpbmUgU1NMX1JfVExTVjFfQUxFUlRfSU5TVUZGSUNJRU5UX1NFQ1VSSVRZCQkgMTA3MQotICNkZWZpbmUgU1NMX1JfVExTVjFfQUxFUlRfSU5URVJOQUxfRVJST1IJCSAxMDgwCi0gI2RlZmluZSBTU0xfUl9UTFNWMV9BTEVSVF9OT19SRU5FR09USUFUSU9OCQkgMTEwMAotZGlmZiAtLWdpdCBhL3NzbC9zc2wzLmggYi9zc2wvc3NsMy5oCi1pbmRleCA4M2Q1OWJmLi5jYmE5NDM0IDEwMDY0NAotLS0tIGEvc3NsL3NzbDMuaAotKysrIGIvc3NsL3NzbDMuaAotQEAgLTEyOCw5ICsxMjgsMTQgQEAKLSBleHRlcm4gIkMiIHsKLSAjZW5kaWYKLSAKLS0vKiBTaWduYWxsaW5nIGNpcGhlciBzdWl0ZSB2YWx1ZTogZnJvbSBkcmFmdC1pZXRmLXRscy1yZW5lZ290aWF0aW9uLTAzLnR4dCAqLwotKy8qIFNpZ25hbGxpbmcgY2lwaGVyIHN1aXRlIHZhbHVlIGZyb20gUkZDIDU3NDYKLSsgKiAoVExTX0VNUFRZX1JFTkVHT1RJQVRJT05fSU5GT19TQ1NWKSAqLwotICNkZWZpbmUgU1NMM19DS19TQ1NWCQkJCTB4MDMwMDAwRkYKLSAKLSsvKiBTaWduYWxsaW5nIGNpcGhlciBzdWl0ZSB2YWx1ZSBmcm9tIGRyYWZ0LWlldGYtdGxzLWRvd25ncmFkZS1zY3N2LTAwCi0rICogKFRMU19GQUxMQkFDS19TQ1NWKSAqLwotKyNkZWZpbmUgU1NMM19DS19GQUxMQkFDS19TQ1NWCQkJMHgwMzAwNTYwMAotKwotICNkZWZpbmUgU1NMM19DS19SU0FfTlVMTF9NRDUJCQkweDAzMDAwMDAxCi0gI2RlZmluZSBTU0wzX0NLX1JTQV9OVUxMX1NIQQkJCTB4MDMwMDAwMDIKLSAjZGVmaW5lIFNTTDNfQ0tfUlNBX1JDNF80MF9NRDUgCQkJMHgwMzAwMDAwMwotZGlmZiAtLWdpdCBhL3NzbC9zc2xfZXJyLmMgYi9zc2wvc3NsX2Vyci5jCi1pbmRleCBhYzBhYWQ5Li44MTZmNmVlIDEwMDY0NAotLS0tIGEvc3NsL3NzbF9lcnIuYwotKysrIGIvc3NsL3NzbF9lcnIuYwotQEAgLTM5MSw2ICszOTEsNyBAQCBzdGF0aWMgRVJSX1NUUklOR19EQVRBIFNTTF9zdHJfcmVhc29uc1tdPQotIHtFUlJfUkVBU09OKFNTTF9SX0hUVFBTX1BST1hZX1JFUVVFU1QpICAgLCJodHRwcyBwcm94eSByZXF1ZXN0In0sCi0ge0VSUl9SRUFTT04oU1NMX1JfSFRUUF9SRVFVRVNUKSAgICAgICAgICAsImh0dHAgcmVxdWVzdCJ9LAotIHtFUlJfUkVBU09OKFNTTF9SX0lMTEVHQUxfUEFERElORykgICAgICAgLCJpbGxlZ2FsIHBhZGRpbmcifSwKLSt7RVJSX1JFQVNPTihTU0xfUl9JTkFQUFJPUFJJQVRFX0ZBTExCQUNLKSwiaW5hcHByb3ByaWF0ZSBmYWxsYmFjayJ9LAotIHtFUlJfUkVBU09OKFNTTF9SX0lOQ09OU0lTVEVOVF9DT01QUkVTU0lPTiksImluY29uc2lzdGVudCBjb21wcmVzc2lvbiJ9LAotIHtFUlJfUkVBU09OKFNTTF9SX0lOVkFMSURfQ0hBTExFTkdFX0xFTkdUSCksImludmFsaWQgY2hhbGxlbmdlIGxlbmd0aCJ9LAotIHtFUlJfUkVBU09OKFNTTF9SX0lOVkFMSURfQ09NTUFORCkgICAgICAgLCJpbnZhbGlkIGNvbW1hbmQifSwKLUBAIC01NDAsNiArNTQxLDcgQEAgc3RhdGljIEVSUl9TVFJJTkdfREFUQSBTU0xfc3RyX3JlYXNvbnNbXT0KLSB7RVJSX1JFQVNPTihTU0xfUl9UTFNWMV9BTEVSVF9ERUNSWVBUSU9OX0ZBSUxFRCksInRsc3YxIGFsZXJ0IGRlY3J5cHRpb24gZmFpbGVkIn0sCi0ge0VSUl9SRUFTT04oU1NMX1JfVExTVjFfQUxFUlRfREVDUllQVF9FUlJPUiksInRsc3YxIGFsZXJ0IGRlY3J5cHQgZXJyb3IifSwKLSB7RVJSX1JFQVNPTihTU0xfUl9UTFNWMV9BTEVSVF9FWFBPUlRfUkVTVFJJQ1RJT04pLCJ0bHN2MSBhbGVydCBleHBvcnQgcmVzdHJpY3Rpb24ifSwKLSt7RVJSX1JFQVNPTihTU0xfUl9UTFNWMV9BTEVSVF9JTkFQUFJPUFJJQVRFX0ZBTExCQUNLKSwidGxzdjEgYWxlcnQgaW5hcHByb3ByaWF0ZSBmYWxsYmFjayJ9LAotIHtFUlJfUkVBU09OKFNTTF9SX1RMU1YxX0FMRVJUX0lOU1VGRklDSUVOVF9TRUNVUklUWSksInRsc3YxIGFsZXJ0IGluc3VmZmljaWVudCBzZWN1cml0eSJ9LAotIHtFUlJfUkVBU09OKFNTTF9SX1RMU1YxX0FMRVJUX0lOVEVSTkFMX0VSUk9SKSwidGxzdjEgYWxlcnQgaW50ZXJuYWwgZXJyb3IifSwKLSB7RVJSX1JFQVNPTihTU0xfUl9UTFNWMV9BTEVSVF9OT19SRU5FR09USUFUSU9OKSwidGxzdjEgYWxlcnQgbm8gcmVuZWdvdGlhdGlvbiJ9LAotZGlmZiAtLWdpdCBhL3NzbC9zc2xfbGliLmMgYi9zc2wvc3NsX2xpYi5jCi1pbmRleCAzZGU2OGE3Li5lYzBlYzJlIDEwMDY0NAotLS0tIGEvc3NsL3NzbF9saWIuYwotKysrIGIvc3NsL3NzbF9saWIuYwotQEAgLTE0NDEsNiArMTQ0MSw4IEBAIGludCBzc2xfY2lwaGVyX2xpc3RfdG9fYnl0ZXMoU1NMICpzLFNUQUNLX09GKFNTTF9DSVBIRVIpICpzayx1bnNpZ25lZCBjaGFyICpwLAotIAotIAlpZiAoc2sgPT0gTlVMTCkgcmV0dXJuKDApOwotIAlxPXA7Ci0rCWlmIChwdXRfY2IgPT0gTlVMTCkKLSsJCXB1dF9jYiA9IHMtPm1ldGhvZC0+cHV0X2NpcGhlcl9ieV9jaGFyOwotIAotIAlmb3IgKGk9MDsgaTxza19TU0xfQ0lQSEVSX251bShzayk7IGkrKykKLSAJCXsKLUBAIC0xNDYwLDI1ICsxNDYyLDM2IEBAIGludCBzc2xfY2lwaGVyX2xpc3RfdG9fYnl0ZXMoU1NMICpzLFNUQUNLX09GKFNTTF9DSVBIRVIpICpzayx1bnNpZ25lZCBjaGFyICpwLAotIAkJICAgIHMtPnBza19jbGllbnRfY2FsbGJhY2sgPT0gTlVMTCkKLSAJCQljb250aW51ZTsKLSAjZW5kaWYgLyogT1BFTlNTTF9OT19QU0sgKi8KLS0JCWogPSBwdXRfY2IgPyBwdXRfY2IoYyxwKSA6IHNzbF9wdXRfY2lwaGVyX2J5X2NoYXIocyxjLHApOwotKwkJaiA9IHB1dF9jYihjLHApOwotIAkJcCs9ajsKLSAJCX0KLS0JLyogSWYgcCA9PSBxLCBubyBjaXBoZXJzIGFuZCBjYWxsZXIgaW5kaWNhdGVzIGFuIGVycm9yLiBPdGhlcndpc2UKLS0JICogYWRkIFNDU1YgaWYgbm90IHJlbmVnb3RpYXRpbmcuCi0tCSAqLwotLQlpZiAocCAhPSBxICYmICFzLT5yZW5lZ290aWF0ZSkKLSsJLyogSWYgcCA9PSBxLCBubyBjaXBoZXJzOyBjYWxsZXIgaW5kaWNhdGVzIGFuIGVycm9yLgotKwkgKiBPdGhlcndpc2UsIGFkZCBhcHBsaWNhYmxlIFNDU1ZzLiAqLwotKwlpZiAocCAhPSBxKQotIAkJewotLQkJc3RhdGljIFNTTF9DSVBIRVIgc2NzdiA9Ci0rCQlpZiAoIXMtPnJlbmVnb3RpYXRlKQotIAkJCXsKLS0JCQkwLCBOVUxMLCBTU0wzX0NLX1NDU1YsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAKLS0JCQl9OwotLQkJaiA9IHB1dF9jYiA/IHB1dF9jYigmc2NzdixwKSA6IHNzbF9wdXRfY2lwaGVyX2J5X2NoYXIocywmc2NzdixwKTsKLS0JCXArPWo7Ci0rCQkJc3RhdGljIFNTTF9DSVBIRVIgc2NzdiA9Ci0rCQkJCXsKLSsJCQkJMCwgTlVMTCwgU1NMM19DS19TQ1NWLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwCi0rCQkJCX07Ci0rCQkJaiA9IHB1dF9jYigmc2NzdixwKTsKLSsJCQlwKz1qOwotICNpZmRlZiBPUEVOU1NMX1JJX0RFQlVHCi0tCQlmcHJpbnRmKHN0ZGVyciwgIlNDU1Ygc2VudCBieSBjbGllbnRcbiIpOwotKwkJCWZwcmludGYoc3RkZXJyLCAiVExTX0VNUFRZX1JFTkVHT1RJQVRJT05fSU5GT19TQ1NWIHNlbnQgYnkgY2xpZW50XG4iKTsKLSAjZW5kaWYKLS0JCX0KLSsJCQl9Ci0gCi0rCQlpZiAocy0+bW9kZSAmIFNTTF9NT0RFX1NFTkRfRkFMTEJBQ0tfU0NTVikKLSsJCQl7Ci0rCQkJc3RhdGljIFNTTF9DSVBIRVIgc2NzdiA9Ci0rCQkJCXsKLSsJCQkJMCwgTlVMTCwgU1NMM19DS19GQUxMQkFDS19TQ1NWLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwCi0rCQkJCX07Ci0rCQkJaiA9IHB1dF9jYigmc2NzdixwKTsKLSsJCQlwKz1qOwotKwkJCX0KLSsgCQl9Ci0gCXJldHVybihwLXEpOwotIAl9Ci0gCi1AQCAtMTQ4OCwxMSArMTUwMSwxMiBAQCBTVEFDS19PRihTU0xfQ0lQSEVSKSAqc3NsX2J5dGVzX3RvX2NpcGhlcl9saXN0KFNTTCAqcyx1bnNpZ25lZCBjaGFyICpwLGludCBudW0sCi0gCWNvbnN0IFNTTF9DSVBIRVIgKmM7Ci0gCVNUQUNLX09GKFNTTF9DSVBIRVIpICpzazsKLSAJaW50IGksbjsKLSsKLSAJaWYgKHMtPnMzKQotIAkJcy0+czMtPnNlbmRfY29ubmVjdGlvbl9iaW5kaW5nID0gMDsKLSAKLSAJbj1zc2xfcHV0X2NpcGhlcl9ieV9jaGFyKHMsTlVMTCxOVUxMKTsKLS0JaWYgKChudW0lbikgIT0gMCkKLSsJaWYgKG4gPT0gMCB8fCAobnVtJW4pICE9IDApCi0gCQl7Ci0gCQlTU0xlcnIoU1NMX0ZfU1NMX0JZVEVTX1RPX0NJUEhFUl9MSVNULFNTTF9SX0VSUk9SX0lOX1JFQ0VJVkVEX0NJUEhFUl9MSVNUKTsKLSAJCXJldHVybihOVUxMKTsKLUBAIC0xNTA3LDcgKzE1MjEsNyBAQCBTVEFDS19PRihTU0xfQ0lQSEVSKSAqc3NsX2J5dGVzX3RvX2NpcGhlcl9saXN0KFNTTCAqcyx1bnNpZ25lZCBjaGFyICpwLGludCBudW0sCi0gCi0gCWZvciAoaT0wOyBpPG51bTsgaSs9bikKLSAJCXsKLS0JCS8qIENoZWNrIGZvciBTQ1NWICovCi0rCQkvKiBDaGVjayBmb3IgVExTX0VNUFRZX1JFTkVHT1RJQVRJT05fSU5GT19TQ1NWICovCi0gCQlpZiAocy0+czMgJiYgKG4gIT0gMyB8fCAhcFswXSkgJiYKLSAJCQkocFtuLTJdID09ICgoU1NMM19DS19TQ1NWID4+IDgpICYgMHhmZikpICYmCi0gCQkJKHBbbi0xXSA9PSAoU1NMM19DS19TQ1NWICYgMHhmZikpKQotQEAgLTE1MjcsNiArMTU0MSwyMiBAQCBTVEFDS19PRihTU0xfQ0lQSEVSKSAqc3NsX2J5dGVzX3RvX2NpcGhlcl9saXN0KFNTTCAqcyx1bnNpZ25lZCBjaGFyICpwLGludCBudW0sCi0gCQkJY29udGludWU7Ci0gCQkJfQotIAotKwkJLyogQ2hlY2sgZm9yIFRMU19GQUxMQkFDS19TQ1NWICovCi0rCQlpZiAocy0+czMgJiYgKG4gIT0gMyB8fCAhcFswXSkgJiYKLSsJCQkocFtuLTJdID09ICgoU1NMM19DS19GQUxMQkFDS19TQ1NWID4+IDgpICYgMHhmZikpICYmCi0rCQkJKHBbbi0xXSA9PSAoU1NMM19DS19GQUxMQkFDS19TQ1NWICYgMHhmZikpKQotKwkJCXsKLSsJCQkvKiBUaGUgU0NTViBpbmRpY2F0ZXMgdGhhdCB0aGUgY2xpZW50IHByZXZpb3VzbHkgdHJpZWQgYSBoaWdoZXIgdmVyc2lvbi4KLSsJCQkgKiBGYWlsIGlmIHRoZSBjdXJyZW50IHZlcnNpb24gaXMgYW4gdW5leHBlY3RlZCBkb3duZ3JhZGUuICovCi0rCQkJaWYgKCFTU0xfY3RybChzLCBTU0xfQ1RSTF9DSEVDS19QUk9UT19WRVJTSU9OLCAwLCBOVUxMKSkKLSsJCQkJewotKwkJCQlTU0xlcnIoU1NMX0ZfU1NMX0JZVEVTX1RPX0NJUEhFUl9MSVNULFNTTF9SX0lOQVBQUk9QUklBVEVfRkFMTEJBQ0spOwotKwkJCQlzc2wzX3NlbmRfYWxlcnQocyxTU0wzX0FMX0ZBVEFMLFNTTF9BRF9JTkFQUFJPUFJJQVRFX0ZBTExCQUNLKTsKLSsJCQkJZ290byBlcnI7Ci0rCQkJCX0KLSsJCQljb250aW51ZTsKLSsJCQl9Ci0rCi0gCQljPXNzbF9nZXRfY2lwaGVyX2J5X2NoYXIocyxwKTsKLSAJCXArPW47Ci0gCQlpZiAoYyAhPSBOVUxMKQotZGlmZiAtLWdpdCBhL3NzbC90MV9lbmMuYyBiL3NzbC90MV9lbmMuYwotaW5kZXggMjJkZDNjYS4uYjhkNDk3ZSAxMDA2NDQKLS0tLSBhL3NzbC90MV9lbmMuYwotKysrIGIvc3NsL3QxX2VuYy5jCi1AQCAtMTI2Niw2ICsxMjY2LDcgQEAgaW50IHRsczFfYWxlcnRfY29kZShpbnQgY29kZSkKLSAJY2FzZSBTU0xfQURfQkFEX0NFUlRJRklDQVRFX1NUQVRVU19SRVNQT05TRTogcmV0dXJuKFRMUzFfQURfQkFEX0NFUlRJRklDQVRFX1NUQVRVU19SRVNQT05TRSk7Ci0gCWNhc2UgU1NMX0FEX0JBRF9DRVJUSUZJQ0FURV9IQVNIX1ZBTFVFOiByZXR1cm4oVExTMV9BRF9CQURfQ0VSVElGSUNBVEVfSEFTSF9WQUxVRSk7Ci0gCWNhc2UgU1NMX0FEX1VOS05PV05fUFNLX0lERU5USVRZOnJldHVybihUTFMxX0FEX1VOS05PV05fUFNLX0lERU5USVRZKTsKLSsJY2FzZSBTU0xfQURfSU5BUFBST1BSSUFURV9GQUxMQkFDSzpyZXR1cm4oVExTMV9BRF9JTkFQUFJPUFJJQVRFX0ZBTExCQUNLKTsKLSAjaWYgMCAvKiBub3QgYXBwcm9wcmlhdGUgZm9yIFRMUywgbm90IHVzZWQgZm9yIERUTFMgKi8KLSAJY2FzZSBEVExTMV9BRF9NSVNTSU5HX0hBTkRTSEFLRV9NRVNTQUdFOiByZXR1cm4gCi0gCQkJCQkgIChEVExTMV9BRF9NSVNTSU5HX0hBTkRTSEFLRV9NRVNTQUdFKTsKLWRpZmYgLS1naXQgYS9zc2wvdGxzMS5oIGIvc3NsL3RsczEuaAotaW5kZXggYjlhMDg5OS4uZGMzNmY3OSAxMDA2NDQKLS0tLSBhL3NzbC90bHMxLmgKLSsrKyBiL3NzbC90bHMxLmgKLUBAIC0xNTksMTcgKzE1OSwxOSBAQCBleHRlcm4gIkMiIHsKLSAKLSAjZGVmaW5lIFRMUzFfQUxMT1dfRVhQRVJJTUVOVEFMX0NJUEhFUlNVSVRFUwkwCi0gCi0rI2RlZmluZSBUTFMxX1ZFUlNJT04JCQkweDAzMDEKLSsjZGVmaW5lIFRMUzFfMV9WRVJTSU9OCQkJMHgwMzAyCi0gI2RlZmluZSBUTFMxXzJfVkVSU0lPTgkJCTB4MDMwMwotLSNkZWZpbmUgVExTMV8yX1ZFUlNJT05fTUFKT1IJCTB4MDMKLS0jZGVmaW5lIFRMUzFfMl9WRVJTSU9OX01JTk9SCQkweDAzCi0rI2RlZmluZSBUTFNfTUFYX1ZFUlNJT04JCQlUTFMxXzJfVkVSU0lPTgotKwotKyNkZWZpbmUgVExTMV9WRVJTSU9OX01BSk9SCQkweDAzCi0rI2RlZmluZSBUTFMxX1ZFUlNJT05fTUlOT1IJCTB4MDEKLSAKLS0jZGVmaW5lIFRMUzFfMV9WRVJTSU9OCQkJMHgwMzAyCi0gI2RlZmluZSBUTFMxXzFfVkVSU0lPTl9NQUpPUgkJMHgwMwotICNkZWZpbmUgVExTMV8xX1ZFUlNJT05fTUlOT1IJCTB4MDIKLSAKLS0jZGVmaW5lIFRMUzFfVkVSU0lPTgkJCTB4MDMwMQotLSNkZWZpbmUgVExTMV9WRVJTSU9OX01BSk9SCQkweDAzCi0tI2RlZmluZSBUTFMxX1ZFUlNJT05fTUlOT1IJCTB4MDEKLSsjZGVmaW5lIFRMUzFfMl9WRVJTSU9OX01BSk9SCQkweDAzCi0rI2RlZmluZSBUTFMxXzJfVkVSU0lPTl9NSU5PUgkJMHgwMwotIAotICNkZWZpbmUgVExTMV9nZXRfdmVyc2lvbihzKSBcCi0gCQkoKHMtPnZlcnNpb24gPj4gOCkgPT0gVExTMV9WRVJTSU9OX01BSk9SID8gcy0+dmVyc2lvbiA6IDApCi1AQCAtMTg3LDYgKzE4OSw3IEBAIGV4dGVybiAiQyIgewotICNkZWZpbmUgVExTMV9BRF9QUk9UT0NPTF9WRVJTSU9OCTcwCS8qIGZhdGFsICovCi0gI2RlZmluZSBUTFMxX0FEX0lOU1VGRklDSUVOVF9TRUNVUklUWQk3MQkvKiBmYXRhbCAqLwotICNkZWZpbmUgVExTMV9BRF9JTlRFUk5BTF9FUlJPUgkJODAJLyogZmF0YWwgKi8KLSsjZGVmaW5lIFRMUzFfQURfSU5BUFBST1BSSUFURV9GQUxMQkFDSwk4NgkvKiBmYXRhbCAqLwotICNkZWZpbmUgVExTMV9BRF9VU0VSX0NBTkNFTExFRAkJOTAKLSAjZGVmaW5lIFRMUzFfQURfTk9fUkVORUdPVElBVElPTgkxMDAKLSAvKiBjb2RlcyAxMTAtMTE0IGFyZSBmcm9tIFJGQzM1NDYgKi8KLS0tIAotMi4xLjAucmMyLjIwNi5nZWRiMDNlNQotCmRpZmYgLS1naXQgYS9zc2wvZDFfYm90aC5jIGIvc3NsL2QxX2JvdGguYwppbmRleCAwNGFhMjMxLi4yZTQyNTBmIDEwMDY0NAotLS0gYS9zc2wvZDFfYm90aC5jCisrKyBiL3NzbC9kMV9ib3RoLmMKQEAgLTU4NywyOSArNTg3LDMyIEBACiAJCXJldHVybiAwOwogCX0KIAorLyogZHRsczFfbWF4X2hhbmRzaGFrZV9tZXNzYWdlX2xlbiByZXR1cm5zIHRoZSBtYXhpbXVtIG51bWJlciBvZiBieXRlcworICogcGVybWl0dGVkIGluIGEgRFRMUyBoYW5kc2hha2UgbWVzc2FnZSBmb3IgfHN8LiBUaGUgbWluaW11bSBpcyAxNktCLCBidXQgbWF5CisgKiBiZSBncmVhdGVyIGlmIHRoZSBtYXhpbXVtIGNlcnRpZmljYXRlIGxpc3Qgc2l6ZSByZXF1aXJlcyBpdC4gKi8KK3N0YXRpYyB1bnNpZ25lZCBsb25nIGR0bHMxX21heF9oYW5kc2hha2VfbWVzc2FnZV9sZW4oY29uc3QgU1NMICpzKQorCXsKKwl1bnNpZ25lZCBsb25nIG1heF9sZW4gPSBEVExTMV9ITV9IRUFERVJfTEVOR1RIICsgU1NMM19SVF9NQVhfRU5DUllQVEVEX0xFTkdUSDsKKwlpZiAobWF4X2xlbiA8ICh1bnNpZ25lZCBsb25nKXMtPm1heF9jZXJ0X2xpc3QpCisJCXJldHVybiBzLT5tYXhfY2VydF9saXN0OworCXJldHVybiBtYXhfbGVuOworCX0KIAogc3RhdGljIGludAotZHRsczFfcmVhc3NlbWJsZV9mcmFnbWVudChTU0wgKnMsIHN0cnVjdCBobV9oZWFkZXJfc3QqIG1zZ19oZHIsIGludCAqb2spCitkdGxzMV9yZWFzc2VtYmxlX2ZyYWdtZW50KFNTTCAqcywgY29uc3Qgc3RydWN0IGhtX2hlYWRlcl9zdCogbXNnX2hkciwgaW50ICpvaykKIAl7CiAJaG1fZnJhZ21lbnQgKmZyYWcgPSBOVUxMOwogCXBpdGVtICppdGVtID0gTlVMTDsKIAlpbnQgaSA9IC0xLCBpc19jb21wbGV0ZTsKIAl1bnNpZ25lZCBjaGFyIHNlcTY0YmVbOF07Ci0JdW5zaWduZWQgbG9uZyBmcmFnX2xlbiA9IG1zZ19oZHItPmZyYWdfbGVuLCBtYXhfbGVuOworCXVuc2lnbmVkIGxvbmcgZnJhZ19sZW4gPSBtc2dfaGRyLT5mcmFnX2xlbjsKIAotCWlmICgobXNnX2hkci0+ZnJhZ19vZmYrZnJhZ19sZW4pID4gbXNnX2hkci0+bXNnX2xlbikKKwlpZiAoKG1zZ19oZHItPmZyYWdfb2ZmK2ZyYWdfbGVuKSA+IG1zZ19oZHItPm1zZ19sZW4gfHwKKwkgICAgbXNnX2hkci0+bXNnX2xlbiA+IGR0bHMxX21heF9oYW5kc2hha2VfbWVzc2FnZV9sZW4ocykpCiAJCWdvdG8gZXJyOwogCi0JLyogRGV0ZXJtaW5lIG1heGltdW0gYWxsb3dlZCBtZXNzYWdlIHNpemUuIERlcGVuZHMgb24gKHVzZXIgc2V0KQotCSAqIG1heGltdW0gY2VydGlmaWNhdGUgbGVuZ3RoLCBidXQgMTZrIGlzIG1pbmltdW0uCi0JICovCi0JaWYgKERUTFMxX0hNX0hFQURFUl9MRU5HVEggKyBTU0wzX1JUX01BWF9FTkNSWVBURURfTEVOR1RIIDwgcy0+bWF4X2NlcnRfbGlzdCkKLQkJbWF4X2xlbiA9IHMtPm1heF9jZXJ0X2xpc3Q7Ci0JZWxzZQotCQltYXhfbGVuID0gRFRMUzFfSE1fSEVBREVSX0xFTkdUSCArIFNTTDNfUlRfTUFYX0VOQ1JZUFRFRF9MRU5HVEg7Ci0KLQlpZiAoKG1zZ19oZHItPmZyYWdfb2ZmK2ZyYWdfbGVuKSA+IG1heF9sZW4pCi0JCWdvdG8gZXJyOworCWlmIChmcmFnX2xlbiA9PSAwKQorCQlyZXR1cm4gRFRMUzFfSE1fRlJBR01FTlRfUkVUUlk7CiAKIAkvKiBUcnkgdG8gZmluZCBpdGVtIGluIHF1ZXVlICovCiAJbWVtc2V0KHNlcTY0YmUsMCxzaXplb2Yoc2VxNjRiZSkpOwpAQCAtNjM5LDcgKzY0Miw4IEBACiAKIAogCS8qIElmIG1lc3NhZ2UgaXMgYWxyZWFkeSByZWFzc2VtYmxlZCwgdGhpcyBtdXN0IGJlIGEKLQkgKiByZXRyYW5zbWl0IGFuZCBjYW4gYmUgZHJvcHBlZC4KKwkgKiByZXRyYW5zbWl0IGFuZCBjYW4gYmUgZHJvcHBlZC4gSW4gdGhpcyBjYXNlIGl0ZW0gIT0gTlVMTCBhbmQgc28gZnJhZworCSAqIGRvZXMgbm90IG5lZWQgdG8gYmUgZnJlZWQuCiAJICovCiAJaWYgKGZyYWctPnJlYXNzZW1ibHkgPT0gTlVMTCkKIAkJewpAQCAtNjU5LDcgKzY2Myw5IEBACiAJLyogcmVhZCB0aGUgYm9keSBvZiB0aGUgZnJhZ21lbnQgKGhlYWRlciBoYXMgYWxyZWFkeSBiZWVuIHJlYWQgKi8KIAlpID0gcy0+bWV0aG9kLT5zc2xfcmVhZF9ieXRlcyhzLFNTTDNfUlRfSEFORFNIQUtFLAogCQlmcmFnLT5mcmFnbWVudCArIG1zZ19oZHItPmZyYWdfb2ZmLGZyYWdfbGVuLDApOwotCWlmIChpPD0wIHx8ICh1bnNpZ25lZCBsb25nKWkhPWZyYWdfbGVuKQorCWlmICgodW5zaWduZWQgbG9uZylpIT1mcmFnX2xlbikKKwkJaT0tMTsKKwlpZiAoaTw9MCkKIAkJZ290byBlcnI7CiAKIAlSU01CTFlfQklUTUFTS19NQVJLKGZyYWctPnJlYXNzZW1ibHksIChsb25nKW1zZ19oZHItPmZyYWdfb2ZmLApAQCAtNjc2LDEwICs2ODIsNiBAQAogCiAJaWYgKGl0ZW0gPT0gTlVMTCkKIAkJewotCQltZW1zZXQoc2VxNjRiZSwwLHNpemVvZihzZXE2NGJlKSk7Ci0JCXNlcTY0YmVbNl0gPSAodW5zaWduZWQgY2hhcikobXNnX2hkci0+c2VxPj44KTsKLQkJc2VxNjRiZVs3XSA9ICh1bnNpZ25lZCBjaGFyKShtc2dfaGRyLT5zZXEpOwotCiAJCWl0ZW0gPSBwaXRlbV9uZXcoc2VxNjRiZSwgZnJhZyk7CiAJCWlmIChpdGVtID09IE5VTEwpCiAJCQl7CkBAIC02ODcsMjEgKzY4OSwyNSBAQAogCQkJZ290byBlcnI7CiAJCQl9CiAKLQkJcHF1ZXVlX2luc2VydChzLT5kMS0+YnVmZmVyZWRfbWVzc2FnZXMsIGl0ZW0pOworCQlpdGVtID0gcHF1ZXVlX2luc2VydChzLT5kMS0+YnVmZmVyZWRfbWVzc2FnZXMsIGl0ZW0pOworCQkvKiBwcXVldWVfaW5zZXJ0IGZhaWxzIGlmZiBhIGR1cGxpY2F0ZSBpdGVtIGlzIGluc2VydGVkLgorCQkgKiBIb3dldmVyLCB8aXRlbXwgY2Fubm90IGJlIGEgZHVwbGljYXRlLiBJZiBpdCB3ZXJlLAorCQkgKiB8cHF1ZXVlX2ZpbmR8LCBhYm92ZSwgd291bGQgaGF2ZSByZXR1cm5lZCBpdCBhbmQgY29udHJvbAorCQkgKiB3b3VsZCBuZXZlciBoYXZlIHJlYWNoZWQgdGhpcyBicmFuY2guICovCisJCU9QRU5TU0xfYXNzZXJ0KGl0ZW0gIT0gTlVMTCk7CiAJCX0KIAogCXJldHVybiBEVExTMV9ITV9GUkFHTUVOVF9SRVRSWTsKIAogZXJyOgotCWlmIChmcmFnICE9IE5VTEwpIGR0bHMxX2htX2ZyYWdtZW50X2ZyZWUoZnJhZyk7Ci0JaWYgKGl0ZW0gIT0gTlVMTCkgT1BFTlNTTF9mcmVlKGl0ZW0pOworCWlmIChmcmFnICE9IE5VTEwgJiYgaXRlbSA9PSBOVUxMKSBkdGxzMV9obV9mcmFnbWVudF9mcmVlKGZyYWcpOwogCSpvayA9IDA7CiAJcmV0dXJuIGk7CiAJfQogCiAKIHN0YXRpYyBpbnQKLWR0bHMxX3Byb2Nlc3Nfb3V0X29mX3NlcV9tZXNzYWdlKFNTTCAqcywgc3RydWN0IGhtX2hlYWRlcl9zdCogbXNnX2hkciwgaW50ICpvaykKK2R0bHMxX3Byb2Nlc3Nfb3V0X29mX3NlcV9tZXNzYWdlKFNTTCAqcywgY29uc3Qgc3RydWN0IGhtX2hlYWRlcl9zdCogbXNnX2hkciwgaW50ICpvaykKIHsKIAlpbnQgaT0tMTsKIAlobV9mcmFnbWVudCAqZnJhZyA9IE5VTEw7CkBAIC03MjEsNyArNzI3LDcgQEAKIAkvKiBJZiB3ZSBhbHJlYWR5IGhhdmUgYW4gZW50cnkgYW5kIHRoaXMgb25lIGlzIGEgZnJhZ21lbnQsCiAJICogZG9uJ3QgZGlzY2FyZCBpdCBhbmQgcmF0aGVyIHRyeSB0byByZWFzc2VtYmxlIGl0LgogCSAqLwotCWlmIChpdGVtICE9IE5VTEwgJiYgZnJhZ19sZW4gPCBtc2dfaGRyLT5tc2dfbGVuKQorCWlmIChpdGVtICE9IE5VTEwgJiYgZnJhZ19sZW4gIT0gbXNnX2hkci0+bXNnX2xlbikKIAkJaXRlbSA9IE5VTEw7CiAKIAkvKiBEaXNjYXJkIHRoZSBtZXNzYWdlIGlmIHNlcXVlbmNlIG51bWJlciB3YXMgYWxyZWFkeSB0aGVyZSwgaXMKQEAgLTc0Niw5ICs3NTIsMTIgQEAKIAkJfQogCWVsc2UKIAkJewotCQlpZiAoZnJhZ19sZW4gJiYgZnJhZ19sZW4gPCBtc2dfaGRyLT5tc2dfbGVuKQorCQlpZiAoZnJhZ19sZW4gIT0gbXNnX2hkci0+bXNnX2xlbikKIAkJCXJldHVybiBkdGxzMV9yZWFzc2VtYmxlX2ZyYWdtZW50KHMsIG1zZ19oZHIsIG9rKTsKIAorCQlpZiAoZnJhZ19sZW4gPiBkdGxzMV9tYXhfaGFuZHNoYWtlX21lc3NhZ2VfbGVuKHMpKQorCQkJZ290byBlcnI7CisKIAkJZnJhZyA9IGR0bHMxX2htX2ZyYWdtZW50X25ldyhmcmFnX2xlbiwgMCk7CiAJCWlmICggZnJhZyA9PSBOVUxMKQogCQkJZ290byBlcnI7CkBAIC03NjAsMjYgKzc2OSwzMSBAQAogCQkJLyogcmVhZCB0aGUgYm9keSBvZiB0aGUgZnJhZ21lbnQgKGhlYWRlciBoYXMgYWxyZWFkeSBiZWVuIHJlYWQgKi8KIAkJCWkgPSBzLT5tZXRob2QtPnNzbF9yZWFkX2J5dGVzKHMsU1NMM19SVF9IQU5EU0hBS0UsCiAJCQkJZnJhZy0+ZnJhZ21lbnQsZnJhZ19sZW4sMCk7Ci0JCQlpZiAoaTw9MCB8fCAodW5zaWduZWQgbG9uZylpIT1mcmFnX2xlbikKKwkJCWlmICgodW5zaWduZWQgbG9uZylpIT1mcmFnX2xlbikKKwkJCQlpID0gLTE7CisJCQlpZiAoaTw9MCkKIAkJCQlnb3RvIGVycjsKIAkJCX0KIAotCQltZW1zZXQoc2VxNjRiZSwwLHNpemVvZihzZXE2NGJlKSk7Ci0JCXNlcTY0YmVbNl0gPSAodW5zaWduZWQgY2hhcikobXNnX2hkci0+c2VxPj44KTsKLQkJc2VxNjRiZVs3XSA9ICh1bnNpZ25lZCBjaGFyKShtc2dfaGRyLT5zZXEpOwotCiAJCWl0ZW0gPSBwaXRlbV9uZXcoc2VxNjRiZSwgZnJhZyk7CiAJCWlmICggaXRlbSA9PSBOVUxMKQogCQkJZ290byBlcnI7CiAKLQkJcHF1ZXVlX2luc2VydChzLT5kMS0+YnVmZmVyZWRfbWVzc2FnZXMsIGl0ZW0pOworCQlpdGVtID0gcHF1ZXVlX2luc2VydChzLT5kMS0+YnVmZmVyZWRfbWVzc2FnZXMsIGl0ZW0pOworCQkvKiBwcXVldWVfaW5zZXJ0IGZhaWxzIGlmZiBhIGR1cGxpY2F0ZSBpdGVtIGlzIGluc2VydGVkLgorCQkgKiBIb3dldmVyLCB8aXRlbXwgY2Fubm90IGJlIGEgZHVwbGljYXRlLiBJZiBpdCB3ZXJlLAorCQkgKiB8cHF1ZXVlX2ZpbmR8LCBhYm92ZSwgd291bGQgaGF2ZSByZXR1cm5lZCBpdC4gVGhlbiwgZWl0aGVyCisJCSAqIHxmcmFnX2xlbnwgIT0gfG1zZ19oZHItPm1zZ19sZW58IGluIHdoaWNoIGNhc2UgfGl0ZW18IGlzIHNldAorCQkgKiB0byBOVUxMIGFuZCBpdCB3aWxsIGhhdmUgYmVlbiBwcm9jZXNzZWQgd2l0aAorCQkgKiB8ZHRsczFfcmVhc3NlbWJsZV9mcmFnbWVudHwsIGFib3ZlLCBvciB0aGUgcmVjb3JkIHdpbGwgaGF2ZQorCQkgKiBiZWVuIGRpc2NhcmRlZC4gKi8KKwkJT1BFTlNTTF9hc3NlcnQoaXRlbSAhPSBOVUxMKTsKIAkJfQogCiAJcmV0dXJuIERUTFMxX0hNX0ZSQUdNRU5UX1JFVFJZOwogCiBlcnI6Ci0JaWYgKCBmcmFnICE9IE5VTEwpIGR0bHMxX2htX2ZyYWdtZW50X2ZyZWUoZnJhZyk7Ci0JaWYgKCBpdGVtICE9IE5VTEwpIE9QRU5TU0xfZnJlZShpdGVtKTsKKwlpZiAoZnJhZyAhPSBOVUxMICYmIGl0ZW0gPT0gTlVMTCkgZHRsczFfaG1fZnJhZ21lbnRfZnJlZShmcmFnKTsKIAkqb2sgPSAwOwogCXJldHVybiBpOwogCX0KQEAgLTExODAsNiArMTE5NCw4IEBACiAJT1BFTlNTTF9hc3NlcnQocy0+aW5pdF9vZmYgPT0gMCk7CiAKIAlmcmFnID0gZHRsczFfaG1fZnJhZ21lbnRfbmV3KHMtPmluaXRfbnVtLCAwKTsKKwlpZiAoIWZyYWcpCisJCXJldHVybiAwOwogCiAJbWVtY3B5KGZyYWctPmZyYWdtZW50LCBzLT5pbml0X2J1Zi0+ZGF0YSwgcy0+aW5pdF9udW0pOwogCkBAIC0xNDc2LDYgKzE0OTIsOSBAQAogCS8qIFJlYWQgdHlwZSBhbmQgcGF5bG9hZCBsZW5ndGggZmlyc3QgKi8KIAlpZiAoMSArIDIgKyAxNiA+IHMtPnMzLT5ycmVjLmxlbmd0aCkKIAkJcmV0dXJuIDA7IC8qIHNpbGVudGx5IGRpc2NhcmQgKi8KKwlpZiAocy0+czMtPnJyZWMubGVuZ3RoID4gU1NMM19SVF9NQVhfUExBSU5fTEVOR1RIKQorCQlyZXR1cm4gMDsgLyogc2lsZW50bHkgZGlzY2FyZCBwZXIgUkZDIDY1MjAgc2VjLiA0ICovCisKIAloYnR5cGUgPSAqcCsrOwogCW4ycyhwLCBwYXlsb2FkKTsKIAlpZiAoMSArIDIgKyBwYXlsb2FkICsgMTYgPiBzLT5zMy0+cnJlYy5sZW5ndGgpCmRpZmYgLS1naXQgYS9zc2wvZDFfY2xudC5jIGIvc3NsL2QxX2NsbnQuYwppbmRleCA1ZWU4ZjU4Li4zN2RkNTQ4IDEwMDY0NAotLS0gYS9zc2wvZDFfY2xudC5jCisrKyBiL3NzbC9kMV9jbG50LmMKQEAgLTg4MiwxMiArODgyLDE4IEBACiAJCSoocCsrKT0wOyAvKiBBZGQgdGhlIE5VTEwgbWV0aG9kICovCiAKICNpZm5kZWYgT1BFTlNTTF9OT19UTFNFWFQKKwkJLyogVExTIGV4dGVuc2lvbnMqLworCQlpZiAoc3NsX3ByZXBhcmVfY2xpZW50aGVsbG9fdGxzZXh0KHMpIDw9IDApCisJCQl7CisJCQlTU0xlcnIoU1NMX0ZfRFRMUzFfQ0xJRU5UX0hFTExPLFNTTF9SX0NMSUVOVEhFTExPX1RMU0VYVCk7CisJCQlnb3RvIGVycjsKKwkJCX0KIAkJaWYgKChwID0gc3NsX2FkZF9jbGllbnRoZWxsb190bHNleHQocywgcCwgYnVmK1NTTDNfUlRfTUFYX1BMQUlOX0xFTkdUSCkpID09IE5VTEwpCiAJCQl7CiAJCQlTU0xlcnIoU1NMX0ZfRFRMUzFfQ0xJRU5UX0hFTExPLEVSUl9SX0lOVEVSTkFMX0VSUk9SKTsKIAkJCWdvdG8gZXJyOwogCQkJfQotI2VuZGlmCQkKKyNlbmRpZgogCiAJCWw9KHAtZCk7CiAJCWQ9YnVmOwpAQCAtOTk2LDYgKzEwMDIsMTMgQEAKIAkJCVJTQSAqcnNhOwogCQkJdW5zaWduZWQgY2hhciB0bXBfYnVmW1NTTF9NQVhfTUFTVEVSX0tFWV9MRU5HVEhdOwogCisJCQlpZiAocy0+c2Vzc2lvbi0+c2Vzc19jZXJ0ID09IE5VTEwpCisJCQkJeworCQkJCS8qIFdlIHNob3VsZCBhbHdheXMgaGF2ZSBhIHNlcnZlciBjZXJ0aWZpY2F0ZSB3aXRoIFNTTF9rUlNBLiAqLworCQkJCVNTTGVycihTU0xfRl9EVExTMV9TRU5EX0NMSUVOVF9LRVlfRVhDSEFOR0UsRVJSX1JfSU5URVJOQUxfRVJST1IpOworCQkJCWdvdG8gZXJyOworCQkJCX0KKwogCQkJaWYgKHMtPnNlc3Npb24tPnNlc3NfY2VydC0+cGVlcl9yc2FfdG1wICE9IE5VTEwpCiAJCQkJcnNhPXMtPnNlc3Npb24tPnNlc3NfY2VydC0+cGVlcl9yc2FfdG1wOwogCQkJZWxzZQpAQCAtMTE4Niw2ICsxMTk5LDEzIEBACiAJCQl7CiAJCQlESCAqZGhfc3J2ciwqZGhfY2xudDsKIAorCQkJaWYgKHMtPnNlc3Npb24tPnNlc3NfY2VydCA9PSBOVUxMKQorCQkJCXsKKwkJCQlzc2wzX3NlbmRfYWxlcnQocyxTU0wzX0FMX0ZBVEFMLFNTTF9BRF9VTkVYUEVDVEVEX01FU1NBR0UpOworCQkJCVNTTGVycihTU0xfRl9EVExTMV9TRU5EX0NMSUVOVF9LRVlfRVhDSEFOR0UsU1NMX1JfVU5FWFBFQ1RFRF9NRVNTQUdFKTsKKwkJCQlnb3RvIGVycjsKKwkJCQl9CisKIAkJCWlmIChzLT5zZXNzaW9uLT5zZXNzX2NlcnQtPnBlZXJfZGhfdG1wICE9IE5VTEwpCiAJCQkJZGhfc3J2cj1zLT5zZXNzaW9uLT5zZXNzX2NlcnQtPnBlZXJfZGhfdG1wOwogCQkJZWxzZQpAQCAtMTI0NSw2ICsxMjY1LDEzIEBACiAJCQlpbnQgZWNkaF9jbG50X2NlcnQgPSAwOwogCQkJaW50IGZpZWxkX3NpemUgPSAwOwogCisJCQlpZiAocy0+c2Vzc2lvbi0+c2Vzc19jZXJ0ID09IE5VTEwpCisJCQkJeworCQkJCXNzbDNfc2VuZF9hbGVydChzLFNTTDNfQUxfRkFUQUwsU1NMX0FEX1VORVhQRUNURURfTUVTU0FHRSk7CisJCQkJU1NMZXJyKFNTTF9GX0RUTFMxX1NFTkRfQ0xJRU5UX0tFWV9FWENIQU5HRSxTU0xfUl9VTkVYUEVDVEVEX01FU1NBR0UpOworCQkJCWdvdG8gZXJyOworCQkJCX0KKwogCQkJLyogRGlkIHdlIHNlbmQgb3V0IHRoZSBjbGllbnQncwogCQkJICogRUNESCBzaGFyZSBmb3IgdXNlIGluIHByZW1hc3RlcgogCQkJICogY29tcHV0YXRpb24gYXMgcGFydCBvZiBjbGllbnQgY2VydGlmaWNhdGU/CkBAIC0xNzA5LDUgKzE3MzYsMyBAQAogCS8qIFNTTDNfU1RfQ1dfQ0VSVF9EICovCiAJcmV0dXJuKGR0bHMxX2RvX3dyaXRlKHMsU1NMM19SVF9IQU5EU0hBS0UpKTsKIAl9Ci0KLQpkaWZmIC0tZ2l0IGEvc3NsL2QxX3NydHAuYyBiL3NzbC9kMV9zcnRwLmMKaW5kZXggYWI5YzQxOS4uNTM1NTM5YiAxMDA2NDQKLS0tIGEvc3NsL2QxX3NydHAuYworKysgYi9zc2wvZDFfc3J0cC5jCkBAIC0xNjgsMjUgKzE2OCw2IEBACiAJcmV0dXJuIDE7CiAJfQogCi1zdGF0aWMgaW50IGZpbmRfcHJvZmlsZV9ieV9udW0odW5zaWduZWQgcHJvZmlsZV9udW0sCi0JCQkgICAgICAgU1JUUF9QUk9URUNUSU9OX1BST0ZJTEUgKipwcHRyKQotCXsKLQlTUlRQX1BST1RFQ1RJT05fUFJPRklMRSAqcDsKLQotCXA9c3J0cF9rbm93bl9wcm9maWxlczsKLQl3aGlsZShwLT5uYW1lKQotCQl7Ci0JCWlmKHAtPmlkID09IHByb2ZpbGVfbnVtKQotCQkJewotCQkJKnBwdHI9cDsKLQkJCXJldHVybiAwOwotCQkJfQotCQlwKys7Ci0JCX0KLQotCXJldHVybiAxOwotCX0KLQogc3RhdGljIGludCBzc2xfY3R4X21ha2VfcHJvZmlsZXMoY29uc3QgY2hhciAqcHJvZmlsZXNfc3RyaW5nLFNUQUNLX09GKFNSVFBfUFJPVEVDVElPTl9QUk9GSUxFKSAqKm91dCkKIAl7CiAJU1RBQ0tfT0YoU1JUUF9QUk9URUNUSU9OX1BST0ZJTEUpICpwcm9maWxlczsKQEAgLTIwOSwxMSArMTkwLDE5IEBACiAJCWlmKCFmaW5kX3Byb2ZpbGVfYnlfbmFtZShwdHIsJnAsCiAJCQkJCSBjb2wgPyBjb2wtcHRyIDogKGludClzdHJsZW4ocHRyKSkpCiAJCQl7CisJCQlpZiAoc2tfU1JUUF9QUk9URUNUSU9OX1BST0ZJTEVfZmluZChwcm9maWxlcyxwKSA+PSAwKQorCQkJCXsKKwkJCQlTU0xlcnIoU1NMX0ZfU1NMX0NUWF9NQUtFX1BST0ZJTEVTLFNTTF9SX0JBRF9TUlRQX1BST1RFQ1RJT05fUFJPRklMRV9MSVNUKTsKKwkJCQlza19TUlRQX1BST1RFQ1RJT05fUFJPRklMRV9mcmVlKHByb2ZpbGVzKTsKKwkJCQlyZXR1cm4gMTsKKwkJCQl9CisKIAkJCXNrX1NSVFBfUFJPVEVDVElPTl9QUk9GSUxFX3B1c2gocHJvZmlsZXMscCk7CiAJCQl9CiAJCWVsc2UKIAkJCXsKIAkJCVNTTGVycihTU0xfRl9TU0xfQ1RYX01BS0VfUFJPRklMRVMsU1NMX1JfU1JUUF9VTktOT1dOX1BST1RFQ1RJT05fUFJPRklMRSk7CisJCQlza19TUlRQX1BST1RFQ1RJT05fUFJPRklMRV9mcmVlKHByb2ZpbGVzKTsKIAkJCXJldHVybiAxOwogCQkJfQogCkBAIC0zMDUsMTMgKzI5NCwxMiBAQAogCiBpbnQgc3NsX3BhcnNlX2NsaWVudGhlbGxvX3VzZV9zcnRwX2V4dChTU0wgKnMsIHVuc2lnbmVkIGNoYXIgKmQsIGludCBsZW4saW50ICphbCkKIAl7Ci0JU1JUUF9QUk9URUNUSU9OX1BST0ZJTEUgKmNwcm9mLCpzcHJvZjsKLQlTVEFDS19PRihTUlRQX1BST1RFQ1RJT05fUFJPRklMRSkgKmNsbnQ9MCwqc3J2cjsKKwlTUlRQX1BST1RFQ1RJT05fUFJPRklMRSAqc3Byb2Y7CisJU1RBQ0tfT0YoU1JUUF9QUk9URUNUSU9OX1BST0ZJTEUpICpzcnZyOwogICAgICAgICBpbnQgY3Q7CiAgICAgICAgIGludCBta2lfbGVuOwotCWludCBpLGo7Ci0JaW50IGlkOwotCWludCByZXQ7CisJaW50IGksIHNydHBfcHJlZjsKKwl1bnNpZ25lZCBpbnQgaWQ7CiAKICAgICAgICAgIC8qIExlbmd0aCB2YWx1ZSArIHRoZSBNS0kgbGVuZ3RoICovCiAgICAgICAgIGlmKGxlbiA8IDMpCkBAIC0zNDEsMjIgKzMyOSwzMiBAQAogCQlyZXR1cm4gMTsKIAkJfQogCisJc3J2cj1TU0xfZ2V0X3NydHBfcHJvZmlsZXMocyk7CisJcy0+c3J0cF9wcm9maWxlID0gTlVMTDsKKwkvKiBTZWFyY2ggYWxsIHByb2ZpbGVzIGZvciBhIG1hdGNoIGluaXRpYWxseSAqLworCXNydHBfcHJlZiA9IHNrX1NSVFBfUFJPVEVDVElPTl9QUk9GSUxFX251bShzcnZyKTsKICAgICAgICAgCi0JY2xudD1za19TUlRQX1BST1RFQ1RJT05fUFJPRklMRV9uZXdfbnVsbCgpOwotCiAJd2hpbGUoY3QpCiAJCXsKIAkJbjJzKGQsaWQpOwogCQljdC09MjsKICAgICAgICAgICAgICAgICBsZW4tPTI7CiAKLQkJaWYoIWZpbmRfcHJvZmlsZV9ieV9udW0oaWQsJmNwcm9mKSkKKwkJLyoKKwkJICogT25seSBsb29rIGZvciBtYXRjaCBpbiBwcm9maWxlcyBvZiBoaWdoZXIgcHJlZmVyZW5jZSB0aGFuCisJCSAqIGN1cnJlbnQgbWF0Y2guCisJCSAqIElmIG5vIHByb2ZpbGVzIGhhdmUgYmVlbiBoYXZlIGJlZW4gY29uZmlndXJlZCB0aGVuIHRoaXMKKwkJICogZG9lcyBub3RoaW5nLgorCQkgKi8KKwkJZm9yIChpID0gMDsgaSA8IHNydHBfcHJlZjsgaSsrKQogCQkJewotCQkJc2tfU1JUUF9QUk9URUNUSU9OX1BST0ZJTEVfcHVzaChjbG50LGNwcm9mKTsKLQkJCX0KLQkJZWxzZQotCQkJewotCQkJOyAvKiBJZ25vcmUgKi8KKwkJCXNwcm9mID0gc2tfU1JUUF9QUk9URUNUSU9OX1BST0ZJTEVfdmFsdWUoc3J2ciwgaSk7CisJCQlpZiAoc3Byb2YtPmlkID09IGlkKQorCQkJCXsKKwkJCQlzLT5zcnRwX3Byb2ZpbGUgPSBzcHJvZjsKKwkJCQlzcnRwX3ByZWYgPSBpOworCQkJCWJyZWFrOworCQkJCX0KIAkJCX0KIAkJfQogCkBAIC0zNzEsMzYgKzM2OSw3IEBACiAJCXJldHVybiAxOwogCQl9CiAKLQlzcnZyPVNTTF9nZXRfc3J0cF9wcm9maWxlcyhzKTsKLQotCS8qIFBpY2sgb3VyIG1vc3QgcHJlZmVycmVkIHByb2ZpbGUuIElmIG5vIHByb2ZpbGVzIGhhdmUgYmVlbgotCSBjb25maWd1cmVkIHRoZW4gdGhlIG91dGVyIGxvb3AgZG9lc24ndCBydW4gCi0JIChza19TUlRQX1BST1RFQ1RJT05fUFJPRklMRV9udW0oKSA9IC0xKQotCSBhbmQgc28gd2UganVzdCByZXR1cm4gd2l0aG91dCBkb2luZyBhbnl0aGluZyAqLwotCWZvcihpPTA7aTxza19TUlRQX1BST1RFQ1RJT05fUFJPRklMRV9udW0oc3J2cik7aSsrKQotCQl7Ci0JCXNwcm9mPXNrX1NSVFBfUFJPVEVDVElPTl9QUk9GSUxFX3ZhbHVlKHNydnIsaSk7Ci0KLQkJZm9yKGo9MDtqPHNrX1NSVFBfUFJPVEVDVElPTl9QUk9GSUxFX251bShjbG50KTtqKyspCi0JCQl7Ci0JCQljcHJvZj1za19TUlRQX1BST1RFQ1RJT05fUFJPRklMRV92YWx1ZShjbG50LGopOwotICAgICAgICAgICAgCi0JCQlpZihjcHJvZi0+aWQ9PXNwcm9mLT5pZCkKLQkJCQl7Ci0JCQkJcy0+c3J0cF9wcm9maWxlPXNwcm9mOwotCQkJCSphbD0wOwotCQkJCXJldD0wOwotCQkJCWdvdG8gZG9uZTsKLQkJCQl9Ci0JCQl9Ci0JCX0KLQotCXJldD0wOwotICAgIAotZG9uZToKLQlpZihjbG50KSBza19TUlRQX1BST1RFQ1RJT05fUFJPRklMRV9mcmVlKGNsbnQpOwotCi0JcmV0dXJuIHJldDsKKwlyZXR1cm4gMDsKIAl9CiAKIGludCBzc2xfYWRkX3NlcnZlcmhlbGxvX3VzZV9zcnRwX2V4dChTU0wgKnMsIHVuc2lnbmVkIGNoYXIgKnAsIGludCAqbGVuLCBpbnQgbWF4bGVuKQpkaWZmIC0tZ2l0IGEvc3NsL2QxX3NydnIuYyBiL3NzbC9kMV9zcnZyLmMKaW5kZXggYzE4MWRiNi4uMDNiMjBhMiAxMDA2NDQKLS0tIGEvc3NsL2QxX3NydnIuYworKysgYi9zc2wvZDFfc3J2ci5jCkBAIC01OTgsMTAgKzU5OCwxMSBAQAogCQkJCXMtPnN0YXRlID0gU1NMM19TVF9TUl9DTE5UX0hFTExPX0M7CiAJCQkJfQogCQkJZWxzZSB7Ci0JCQkJLyogY291bGQgYmUgc2VudCBmb3IgYSBESCBjZXJ0LCBldmVuIGlmIHdlCi0JCQkJICogaGF2ZSBub3QgYXNrZWQgZm9yIGl0IDotKSAqLwotCQkJCXJldD1zc2wzX2dldF9jbGllbnRfY2VydGlmaWNhdGUocyk7Ci0JCQkJaWYgKHJldCA8PSAwKSBnb3RvIGVuZDsKKwkJCQlpZiAocy0+czMtPnRtcC5jZXJ0X3JlcXVlc3QpCisJCQkJCXsKKwkJCQkJcmV0PXNzbDNfZ2V0X2NsaWVudF9jZXJ0aWZpY2F0ZShzKTsKKwkJCQkJaWYgKHJldCA8PSAwKSBnb3RvIGVuZDsKKwkJCQkJfQogCQkJCXMtPmluaXRfbnVtPTA7CiAJCQkJcy0+c3RhdGU9U1NMM19TVF9TUl9LRVlfRVhDSF9BOwogCQkJfQpAQCAtOTgwLDYgKzk4MSwxMSBAQAogI2VuZGlmCiAKICNpZm5kZWYgT1BFTlNTTF9OT19UTFNFWFQKKwkJaWYgKHNzbF9wcmVwYXJlX3NlcnZlcmhlbGxvX3Rsc2V4dChzKSA8PSAwKQorCQkJeworCQkJU1NMZXJyKFNTTF9GX0RUTFMxX1NFTkRfU0VSVkVSX0hFTExPLFNTTF9SX1NFUlZFUkhFTExPX1RMU0VYVCk7CisJCQlyZXR1cm4gLTE7CisJCQl9CiAJCWlmICgocCA9IHNzbF9hZGRfc2VydmVyaGVsbG9fdGxzZXh0KHMsIHAsIGJ1ZitTU0wzX1JUX01BWF9QTEFJTl9MRU5HVEgpKSA9PSBOVUxMKQogCQkJewogCQkJU1NMZXJyKFNTTF9GX0RUTFMxX1NFTkRfU0VSVkVSX0hFTExPLEVSUl9SX0lOVEVSTkFMX0VSUk9SKTsKZGlmZiAtLWdpdCBhL3NzbC9zMjNfY2xudC5jIGIvc3NsL3MyM19jbG50LmMKaW5kZXggNDY3YWRmZS4uZjAyYzI3NSAxMDA2NDQKLS0tIGEvc3NsL3MyM19jbG50LmMKKysrIGIvc3NsL3MyM19jbG50LmMKQEAgLTEyNSw5ICsxMjUsMTEgQEAKIAlpZiAodmVyID09IFNTTDJfVkVSU0lPTikKIAkJcmV0dXJuKFNTTHYyX2NsaWVudF9tZXRob2QoKSk7CiAjZW5kaWYKKyNpZm5kZWYgT1BFTlNTTF9OT19TU0wzCiAJaWYgKHZlciA9PSBTU0wzX1ZFUlNJT04pCiAJCXJldHVybihTU0x2M19jbGllbnRfbWV0aG9kKCkpOwotCWVsc2UgaWYgKHZlciA9PSBUTFMxX1ZFUlNJT04pCisjZW5kaWYKKwlpZiAodmVyID09IFRMUzFfVkVSU0lPTikKIAkJcmV0dXJuKFRMU3YxX2NsaWVudF9tZXRob2QoKSk7CiAJZWxzZSBpZiAodmVyID09IFRMUzFfMV9WRVJTSU9OKQogCQlyZXR1cm4oVExTdjFfMV9jbGllbnRfbWV0aG9kKCkpOwpAQCAtNjk4LDYgKzcwMCw3IEBACiAJCXsKIAkJLyogd2UgaGF2ZSBzc2x2MyBvciB0bHMxIChzZXJ2ZXIgaGVsbG8gb3IgYWxlcnQpICovCiAKKyNpZm5kZWYgT1BFTlNTTF9OT19TU0wzCiAJCWlmICgocFsyXSA9PSBTU0wzX1ZFUlNJT05fTUlOT1IpICYmCiAJCQkhKHMtPm9wdGlvbnMgJiBTU0xfT1BfTk9fU1NMdjMpKQogCQkJewpAQCAtNzEyLDcgKzcxNSw5IEBACiAJCQlzLT52ZXJzaW9uPVNTTDNfVkVSU0lPTjsKIAkJCXMtPm1ldGhvZD1TU0x2M19jbGllbnRfbWV0aG9kKCk7CiAJCQl9Ci0JCWVsc2UgaWYgKChwWzJdID09IFRMUzFfVkVSU0lPTl9NSU5PUikgJiYKKwkJZWxzZQorI2VuZGlmCisJCWlmICgocFsyXSA9PSBUTFMxX1ZFUlNJT05fTUlOT1IpICYmCiAJCQkhKHMtPm9wdGlvbnMgJiBTU0xfT1BfTk9fVExTdjEpKQogCQkJewogCQkJcy0+dmVyc2lvbj1UTFMxX1ZFUlNJT047CmRpZmYgLS1naXQgYS9zc2wvczIzX2xpYi5jIGIvc3NsL3MyM19saWIuYwppbmRleCAzYmY3MjgzLi5mM2MyOWQxIDEwMDY0NAotLS0gYS9zc2wvczIzX2xpYi5jCisrKyBiL3NzbC9zMjNfbGliLmMKQEAgLTEwNyw2ICsxMDcsMTMgQEAKIAlsb25nIGw7CiAKIAkvKiBXZSBjYW4gd3JpdGUgU1NMdjIgYW5kIFNTTHYzIGNpcGhlcnMgKi8KKwkvKiBidXQgbm8gRUNDIGNpcGhlcnMgKi8KKwlpZiAoYy0+YWxnb3JpdGhtX21rZXkgPT0gU1NMX2tFQ0RIciB8fAorCQljLT5hbGdvcml0aG1fbWtleSA9PSBTU0xfa0VDREhlIHx8CisJCWMtPmFsZ29yaXRobV9ta2V5ID09IFNTTF9rRUVDREggfHwKKwkJYy0+YWxnb3JpdGhtX2F1dGggPT0gU1NMX2FFQ0RIIHx8CisJCWMtPmFsZ29yaXRobV9hdXRoID09IFNTTF9hRUNEU0EpCisJCXJldHVybiAwOwogCWlmIChwICE9IE5VTEwpCiAJCXsKIAkJbD1jLT5pZDsKZGlmZiAtLWdpdCBhL3NzbC9zMjNfc3J2ci5jIGIvc3NsL3MyM19zcnZyLmMKaW5kZXggODJkNjg2Ny4uOTNjYTdkNSAxMDA2NDQKLS0tIGEvc3NsL3MyM19zcnZyLmMKKysrIGIvc3NsL3MyM19zcnZyLmMKQEAgLTEyNyw5ICsxMjcsMTEgQEAKIAlpZiAodmVyID09IFNTTDJfVkVSU0lPTikKIAkJcmV0dXJuKFNTTHYyX3NlcnZlcl9tZXRob2QoKSk7CiAjZW5kaWYKKyNpZm5kZWYgT1BFTlNTTF9OT19TU0wzCiAJaWYgKHZlciA9PSBTU0wzX1ZFUlNJT04pCiAJCXJldHVybihTU0x2M19zZXJ2ZXJfbWV0aG9kKCkpOwotCWVsc2UgaWYgKHZlciA9PSBUTFMxX1ZFUlNJT04pCisjZW5kaWYKKwlpZiAodmVyID09IFRMUzFfVkVSU0lPTikKIAkJcmV0dXJuKFRMU3YxX3NlcnZlcl9tZXRob2QoKSk7CiAJZWxzZSBpZiAodmVyID09IFRMUzFfMV9WRVJTSU9OKQogCQlyZXR1cm4oVExTdjFfMV9zZXJ2ZXJfbWV0aG9kKCkpOwpAQCAtMzQ4LDIzICszNTAsMTkgQEAKIAkJCSAqIENsaWVudCBIZWxsbyBtZXNzYWdlLCB0aGlzIHdvdWxkIGJlIGRpZmZpY3VsdCwgYW5kIHdlJ2QgaGF2ZQogCQkJICogdG8gcmVhZCBtb3JlIHJlY29yZHMgdG8gZmluZCBvdXQuCiAJCQkgKiBObyBrbm93biBTU0wgMy4wIGNsaWVudCBmcmFnbWVudHMgQ2xpZW50SGVsbG8gbGlrZSB0aGlzLAotCQkJICogc28gd2Ugc2ltcGx5IGFzc3VtZSBUTFMgMS4wIHRvIGF2b2lkIHByb3RvY29sIHZlcnNpb24gZG93bmdyYWRlCi0JCQkgKiBhdHRhY2tzLiAqLworCQkJICogc28gd2Ugc2ltcGx5IHJlamVjdCBzdWNoIGNvbm5lY3Rpb25zIHRvIGF2b2lkCisJCQkgKiBwcm90b2NvbCB2ZXJzaW9uIGRvd25ncmFkZSBhdHRhY2tzLiAqLwogCQkJaWYgKHBbM10gPT0gMCAmJiBwWzRdIDwgNikKIAkJCQl7Ci0jaWYgMAogCQkJCVNTTGVycihTU0xfRl9TU0wyM19HRVRfQ0xJRU5UX0hFTExPLFNTTF9SX1JFQ09SRF9UT09fU01BTEwpOwogCQkJCWdvdG8gZXJyOwotI2Vsc2UKLQkJCQl2WzFdID0gVExTMV9WRVJTSU9OX01JTk9SOwotI2VuZGlmCiAJCQkJfQogCQkJLyogaWYgbWFqb3IgdmVyc2lvbiBudW1iZXIgPiAzIHNldCBtaW5vciB0byBhIHZhbHVlCiAJCQkgKiB3aGljaCB3aWxsIHVzZSB0aGUgaGlnaGVzdCB2ZXJzaW9uIDMgd2Ugc3VwcG9ydC4KIAkJCSAqIElmIFRMUyAyLjAgZXZlciBhcHBlYXJzIHdlIHdpbGwgbmVlZCB0byByZXZpc2UKIAkJCSAqIHRoaXMuLi4uCiAJCQkgKi8KLQkJCWVsc2UgaWYgKHBbOV0gPiBTU0wzX1ZFUlNJT05fTUFKT1IpCisJCQlpZiAocFs5XSA+IFNTTDNfVkVSU0lPTl9NQUpPUikKIAkJCQl2WzFdPTB4ZmY7CiAJCQllbHNlCiAJCQkJdlsxXT1wWzEwXTsgLyogbWlub3IgdmVyc2lvbiBhY2NvcmRpbmcgdG8gY2xpZW50X3ZlcnNpb24gKi8KQEAgLTQ0NywxNCArNDQ1LDM0IEBACiAJCXZbMF0gPSBwWzNdOyAvKiA9PSBTU0wzX1ZFUlNJT05fTUFKT1IgKi8KIAkJdlsxXSA9IHBbNF07CiAKKwkJLyogQW4gU1NMdjMvVExTdjEgYmFja3dhcmRzLWNvbXBhdGlibGUgQ0xJRU5ULUhFTExPIGluIGFuIFNTTHYyCisJCSAqIGhlYWRlciBpcyBzZW50IGRpcmVjdGx5IG9uIHRoZSB3aXJlLCBub3Qgd3JhcHBlZCBhcyBhIFRMUworCQkgKiByZWNvcmQuIEl0J3MgZm9ybWF0IGlzOgorCQkgKiBCeXRlICBDb250ZW50CisJCSAqIDAtMSAgIG1zZ19sZW5ndGgKKwkJICogMiAgICAgbXNnX3R5cGUKKwkJICogMy00ICAgdmVyc2lvbgorCQkgKiA1LTYgICBjaXBoZXJfc3BlY19sZW5ndGgKKwkJICogNy04ICAgc2Vzc2lvbl9pZF9sZW5ndGgKKwkJICogOS0xMCAgY2hhbGxlbmdlX2xlbmd0aAorCQkgKiAuLi4gICAuLi4KKwkJICovCiAJCW49KChwWzBdJjB4N2YpPDw4KXxwWzFdOwogCQlpZiAobiA+ICgxMDI0KjQpKQogCQkJewogCQkJU1NMZXJyKFNTTF9GX1NTTDIzX0dFVF9DTElFTlRfSEVMTE8sU1NMX1JfUkVDT1JEX1RPT19MQVJHRSk7CiAJCQlnb3RvIGVycjsKIAkJCX0KKwkJaWYgKG4gPCA5KQorCQkJeworCQkJU1NMZXJyKFNTTF9GX1NTTDIzX0dFVF9DTElFTlRfSEVMTE8sU1NMX1JfUkVDT1JEX0xFTkdUSF9NSVNNQVRDSCk7CisJCQlnb3RvIGVycjsKKwkJCX0KIAogCQlqPXNzbDIzX3JlYWRfYnl0ZXMocyxuKzIpOworCQkvKiBXZSBwcmV2aW91c2x5IHJlYWQgMTEgYnl0ZXMsIHNvIGlmIGogPiAwLCB3ZSBtdXN0IGhhdmUKKwkJICogaiA9PSBuKzIgPT0gcy0+cGFja2V0X2xlbmd0aC4gV2UgaGF2ZSBhdCBsZWFzdCAxMSB2YWxpZAorCQkgKiBwYWNrZXQgYnl0ZXMuICovCiAJCWlmIChqIDw9IDApIHJldHVybihqKTsKIAogCQlzc2wzX2ZpbmlzaF9tYWMocywgcy0+cGFja2V0KzIsIHMtPnBhY2tldF9sZW5ndGgtMik7CkBAIC01ODQsNiArNjAyLDEyIEBACiAJaWYgKCh0eXBlID09IDIpIHx8ICh0eXBlID09IDMpKQogCQl7CiAJCS8qIHdlIGhhdmUgU1NMdjMvVExTdjEgKHR5cGUgMjogU1NMMiBzdHlsZSwgdHlwZSAzOiBTU0wzL1RMUyBzdHlsZSkgKi8KKyAgICAgICAgICAgICAgICBzLT5tZXRob2QgPSBzc2wyM19nZXRfc2VydmVyX21ldGhvZChzLT52ZXJzaW9uKTsKKwkJaWYgKHMtPm1ldGhvZCA9PSBOVUxMKQorCQkJeworCQkJU1NMZXJyKFNTTF9GX1NTTDIzX0dFVF9DTElFTlRfSEVMTE8sU1NMX1JfVU5TVVBQT1JURURfUFJPVE9DT0wpOworCQkJZ290byBlcnI7CisJCQl9CiAKIAkJaWYgKCFzc2xfaW5pdF93YmlvX2J1ZmZlcihzLDEpKSBnb3RvIGVycjsKIApAQCAtNjExLDE0ICs2MzUsNiBAQAogCQkJcy0+czMtPnJidWYubGVmdD0wOwogCQkJcy0+czMtPnJidWYub2Zmc2V0PTA7CiAJCQl9Ci0JCWlmIChzLT52ZXJzaW9uID09IFRMUzFfMl9WRVJTSU9OKQotCQkJcy0+bWV0aG9kID0gVExTdjFfMl9zZXJ2ZXJfbWV0aG9kKCk7Ci0JCWVsc2UgaWYgKHMtPnZlcnNpb24gPT0gVExTMV8xX1ZFUlNJT04pCi0JCQlzLT5tZXRob2QgPSBUTFN2MV8xX3NlcnZlcl9tZXRob2QoKTsKLQkJZWxzZSBpZiAocy0+dmVyc2lvbiA9PSBUTFMxX1ZFUlNJT04pCi0JCQlzLT5tZXRob2QgPSBUTFN2MV9zZXJ2ZXJfbWV0aG9kKCk7Ci0JCWVsc2UKLQkJCXMtPm1ldGhvZCA9IFNTTHYzX3NlcnZlcl9tZXRob2QoKTsKICNpZiAwIC8qIHNzbDNfZ2V0X2NsaWVudF9oZWxsbyBkb2VzIHRoaXMgKi8KIAkJcy0+Y2xpZW50X3ZlcnNpb249KHZbMF08PDgpfHZbMV07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL3NzbC9zMl9saWIuYyBiL3NzbC9zMl9saWIuYwppbmRleCBiOTYyNGI5Li5jNjNiZTMwIDEwMDY0NAotLS0gYS9zc2wvczJfbGliLmMKKysrIGIvc3NsL3MyX2xpYi5jCkBAIC0yNTAsNyArMjUwLDcgQEAKIAlTU0xfU1NMVjIsCiAJU1NMX05PVF9FWFB8U1NMX0hJR0gsCiAJMCwKLQkxNjgsCisJMTEyLAogCTE2OCwKIAl9LAogCkBAIC00MzksNyArNDM5LDcgQEAKIAlpZiAocCAhPSBOVUxMKQogCQl7CiAJCWw9Yy0+aWQ7Ci0JCWlmICgobCAmIDB4ZmYwMDAwMDApICE9IDB4MDIwMDAwMDApIHJldHVybigwKTsKKwkJaWYgKChsICYgMHhmZjAwMDAwMCkgIT0gMHgwMjAwMDAwMCAmJiBsICE9IFNTTDNfQ0tfRkFMTEJBQ0tfU0NTVikgcmV0dXJuKDApOwogCQlwWzBdPSgodW5zaWduZWQgY2hhcikobD4+MTZMKSkmMHhGRjsKIAkJcFsxXT0oKHVuc2lnbmVkIGNoYXIpKGw+PiA4TCkpJjB4RkY7CiAJCXBbMl09KCh1bnNpZ25lZCBjaGFyKShsICAgICApKSYweEZGOwpkaWZmIC0tZ2l0IGEvc3NsL3MzX2NiYy5jIGIvc3NsL3MzX2NiYy5jCmluZGV4IDQ0M2EzMWUuLjExZjEzYWQgMTAwNjQ0Ci0tLSBhL3NzbC9zM19jYmMuYworKysgYi9zc2wvczNfY2JjLmMKQEAgLTUzLDYgKzUzLDcgQEAKICAqCiAgKi8KIAorI2luY2x1ZGUgIi4uL2NyeXB0by9jb25zdGFudF90aW1lX2xvY2wuaCIKICNpbmNsdWRlICJzc2xfbG9jbC5oIgogCiAjaW5jbHVkZSA8b3BlbnNzbC9tZDUuaD4KQEAgLTY3LDM3ICs2OCw2IEBACiAgKiBzdXBwb3J0ZWQgYnkgVExTLikgKi8KICNkZWZpbmUgTUFYX0hBU0hfQkxPQ0tfU0laRSAxMjgKIAotLyogU29tZSB1dGlsaXR5IGZ1bmN0aW9ucyBhcmUgbmVlZGVkOgotICoKLSAqIFRoZXNlIG1hY3JvcyByZXR1cm4gdGhlIGdpdmVuIHZhbHVlIHdpdGggdGhlIE1TQiBjb3BpZWQgdG8gYWxsIHRoZSBvdGhlcgotICogYml0cy4gVGhleSB1c2UgdGhlIGZhY3QgdGhhdCBhcml0aG1ldGljIHNoaWZ0IHNoaWZ0cy1pbiB0aGUgc2lnbiBiaXQuCi0gKiBIb3dldmVyLCB0aGlzIGlzIG5vdCBlbnN1cmVkIGJ5IHRoZSBDIHN0YW5kYXJkIHNvIHlvdSBtYXkgbmVlZCB0byByZXBsYWNlCi0gKiB0aGVtIHdpdGggc29tZXRoaW5nIGVsc2Ugb24gb2RkIENQVXMuICovCi0jZGVmaW5lIERVUExJQ0FURV9NU0JfVE9fQUxMKHgpICggKHVuc2lnbmVkKSggKGludCkoeCkgPj4gKHNpemVvZihpbnQpKjgtMSkgKSApCi0jZGVmaW5lIERVUExJQ0FURV9NU0JfVE9fQUxMXzgoeCkgKCh1bnNpZ25lZCBjaGFyKShEVVBMSUNBVEVfTVNCX1RPX0FMTCh4KSkpCi0KLS8qIGNvbnN0YW50X3RpbWVfbHQgcmV0dXJucyAweGZmIGlmIGE8YiBhbmQgMHgwMCBvdGhlcndpc2UuICovCi1zdGF0aWMgdW5zaWduZWQgY29uc3RhbnRfdGltZV9sdCh1bnNpZ25lZCBhLCB1bnNpZ25lZCBiKQotCXsKLQlhIC09IGI7Ci0JcmV0dXJuIERVUExJQ0FURV9NU0JfVE9fQUxMKGEpOwotCX0KLQotLyogY29uc3RhbnRfdGltZV9nZSByZXR1cm5zIDB4ZmYgaWYgYT49YiBhbmQgMHgwMCBvdGhlcndpc2UuICovCi1zdGF0aWMgdW5zaWduZWQgY29uc3RhbnRfdGltZV9nZSh1bnNpZ25lZCBhLCB1bnNpZ25lZCBiKQotCXsKLQlhIC09IGI7Ci0JcmV0dXJuIERVUExJQ0FURV9NU0JfVE9fQUxMKH5hKTsKLQl9Ci0KLS8qIGNvbnN0YW50X3RpbWVfZXFfOCByZXR1cm5zIDB4ZmYgaWYgYT09YiBhbmQgMHgwMCBvdGhlcndpc2UuICovCi1zdGF0aWMgdW5zaWduZWQgY2hhciBjb25zdGFudF90aW1lX2VxXzgodW5zaWduZWQgYSwgdW5zaWduZWQgYikKLQl7Ci0JdW5zaWduZWQgYyA9IGEgXiBiOwotCWMtLTsKLQlyZXR1cm4gRFVQTElDQVRFX01TQl9UT19BTExfOChjKTsKLQl9Ci0KIC8qIHNzbDNfY2JjX3JlbW92ZV9wYWRkaW5nIHJlbW92ZXMgcGFkZGluZyBmcm9tIHRoZSBkZWNyeXB0ZWQsIFNTTHYzLCBDQkMKICAqIHJlY29yZCBpbiB8cmVjfCBieSB1cGRhdGluZyB8cmVjLT5sZW5ndGh8IGluIGNvbnN0YW50IHRpbWUuCiAgKgpAQCAtMTI2LDggKzk2LDggQEAKIAlwYWRkaW5nX2xlbmd0aCA9IGdvb2QgJiAocGFkZGluZ19sZW5ndGgrMSk7CiAJcmVjLT5sZW5ndGggLT0gcGFkZGluZ19sZW5ndGg7CiAJcmVjLT50eXBlIHw9IHBhZGRpbmdfbGVuZ3RoPDw4OwkvKiBrbHVkZ2U6IHBhc3MgcGFkZGluZyBsZW5ndGggKi8KLQlyZXR1cm4gKGludCkoKGdvb2QgJiAxKSB8ICh+Z29vZCAmIC0xKSk7Ci19CisJcmV0dXJuIGNvbnN0YW50X3RpbWVfc2VsZWN0X2ludChnb29kLCAxLCAtMSk7CisJfQogCiAvKiB0bHMxX2NiY19yZW1vdmVfcGFkZGluZyByZW1vdmVzIHRoZSBDQkMgcGFkZGluZyBmcm9tIHRoZSBkZWNyeXB0ZWQsIFRMUywgQ0JDCiAgKiByZWNvcmQgaW4gfHJlY3wgaW4gY29uc3RhbnQgdGltZSBhbmQgcmV0dXJucyAxIGlmIHRoZSBwYWRkaW5nIGlzIHZhbGlkIGFuZApAQCAtMjA4LDcgKzE3OCw3IEBACiAKIAlmb3IgKGkgPSAwOyBpIDwgdG9fY2hlY2s7IGkrKykKIAkJewotCQl1bnNpZ25lZCBjaGFyIG1hc2sgPSBjb25zdGFudF90aW1lX2dlKHBhZGRpbmdfbGVuZ3RoLCBpKTsKKwkJdW5zaWduZWQgY2hhciBtYXNrID0gY29uc3RhbnRfdGltZV9nZV84KHBhZGRpbmdfbGVuZ3RoLCBpKTsKIAkJdW5zaWduZWQgY2hhciBiID0gcmVjLT5kYXRhW3JlYy0+bGVuZ3RoLTEtaV07CiAJCS8qIFRoZSBmaW5hbCB8cGFkZGluZ19sZW5ndGgrMXwgYnl0ZXMgc2hvdWxkIGFsbCBoYXZlIHRoZSB2YWx1ZQogCQkgKiB8cGFkZGluZ19sZW5ndGh8LiBUaGVyZWZvcmUgdGhlIFhPUiBzaG91bGQgYmUgemVyby4gKi8KQEAgLTIxNiwyMCArMTg2LDE0IEBACiAJCX0KIAogCS8qIElmIGFueSBvZiB0aGUgZmluYWwgfHBhZGRpbmdfbGVuZ3RoKzF8IGJ5dGVzIGhhZCB0aGUgd3JvbmcgdmFsdWUsCi0JICogb25lIG9yIG1vcmUgb2YgdGhlIGxvd2VyIGVpZ2h0IGJpdHMgb2YgfGdvb2R8IHdpbGwgYmUgY2xlYXJlZC4gV2UKLQkgKiBBTkQgdGhlIGJvdHRvbSA4IGJpdHMgdG9nZXRoZXIgYW5kIGR1cGxpY2F0ZSB0aGUgcmVzdWx0IHRvIGFsbCB0aGUKLQkgKiBiaXRzLiAqLwotCWdvb2QgJj0gZ29vZCA+PiA0OwotCWdvb2QgJj0gZ29vZCA+PiAyOwotCWdvb2QgJj0gZ29vZCA+PiAxOwotCWdvb2QgPDw9IHNpemVvZihnb29kKSo4LTE7Ci0JZ29vZCA9IERVUExJQ0FURV9NU0JfVE9fQUxMKGdvb2QpOwotCisJICogb25lIG9yIG1vcmUgb2YgdGhlIGxvd2VyIGVpZ2h0IGJpdHMgb2YgfGdvb2R8IHdpbGwgYmUgY2xlYXJlZC4KKwkgKi8KKwlnb29kID0gY29uc3RhbnRfdGltZV9lcSgweGZmLCBnb29kICYgMHhmZik7CiAJcGFkZGluZ19sZW5ndGggPSBnb29kICYgKHBhZGRpbmdfbGVuZ3RoKzEpOwogCXJlYy0+bGVuZ3RoIC09IHBhZGRpbmdfbGVuZ3RoOwogCXJlYy0+dHlwZSB8PSBwYWRkaW5nX2xlbmd0aDw8ODsJLyoga2x1ZGdlOiBwYXNzIHBhZGRpbmcgbGVuZ3RoICovCiAKLQlyZXR1cm4gKGludCkoKGdvb2QgJiAxKSB8ICh+Z29vZCAmIC0xKSk7CisJcmV0dXJuIGNvbnN0YW50X3RpbWVfc2VsZWN0X2ludChnb29kLCAxLCAtMSk7CiAJfQogCiAvKiBzc2wzX2NiY19jb3B5X21hYyBjb3BpZXMgfG1kX3NpemV8IGJ5dGVzIGZyb20gdGhlIGVuZCBvZiB8cmVjfCB0byB8b3V0fCBpbgpAQCAtMjk2LDggKzI2MCw4IEBACiAJbWVtc2V0KHJvdGF0ZWRfbWFjLCAwLCBtZF9zaXplKTsKIAlmb3IgKGkgPSBzY2FuX3N0YXJ0LCBqID0gMDsgaSA8IG9yaWdfbGVuOyBpKyspCiAJCXsKLQkJdW5zaWduZWQgY2hhciBtYWNfc3RhcnRlZCA9IGNvbnN0YW50X3RpbWVfZ2UoaSwgbWFjX3N0YXJ0KTsKLQkJdW5zaWduZWQgY2hhciBtYWNfZW5kZWQgPSBjb25zdGFudF90aW1lX2dlKGksIG1hY19lbmQpOworCQl1bnNpZ25lZCBjaGFyIG1hY19zdGFydGVkID0gY29uc3RhbnRfdGltZV9nZV84KGksIG1hY19zdGFydCk7CisJCXVuc2lnbmVkIGNoYXIgbWFjX2VuZGVkID0gY29uc3RhbnRfdGltZV9nZV84KGksIG1hY19lbmQpOwogCQl1bnNpZ25lZCBjaGFyIGIgPSByZWMtPmRhdGFbaV07CiAJCXJvdGF0ZWRfbWFjW2orK10gfD0gYiAmIG1hY19zdGFydGVkICYgfm1hY19lbmRlZDsKIAkJaiAmPSBjb25zdGFudF90aW1lX2x0KGosbWRfc2l6ZSk7CkBAIC02ODMsMTIgKzY0NywxMiBAQAogCQkJCWIgPSBkYXRhW2staGVhZGVyX2xlbmd0aF07CiAJCQlrKys7CiAKLQkJCWlzX3Bhc3RfYyA9IGlzX2Jsb2NrX2EgJiBjb25zdGFudF90aW1lX2dlKGosIGMpOwotCQkJaXNfcGFzdF9jcDEgPSBpc19ibG9ja19hICYgY29uc3RhbnRfdGltZV9nZShqLCBjKzEpOworCQkJaXNfcGFzdF9jID0gaXNfYmxvY2tfYSAmIGNvbnN0YW50X3RpbWVfZ2VfOChqLCBjKTsKKwkJCWlzX3Bhc3RfY3AxID0gaXNfYmxvY2tfYSAmIGNvbnN0YW50X3RpbWVfZ2VfOChqLCBjKzEpOwogCQkJLyogSWYgdGhpcyBpcyB0aGUgYmxvY2sgY29udGFpbmluZyB0aGUgZW5kIG9mIHRoZQogCQkJICogYXBwbGljYXRpb24gZGF0YSwgYW5kIHdlIGFyZSBhdCB0aGUgb2Zmc2V0IGZvciB0aGUKIAkJCSAqIDB4ODAgdmFsdWUsIHRoZW4gb3ZlcndyaXRlIGIgd2l0aCAweDgwLiAqLwotCQkJYiA9IChiJn5pc19wYXN0X2MpIHwgKDB4ODAmaXNfcGFzdF9jKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGIgPSAgY29uc3RhbnRfdGltZV9zZWxlY3RfOChpc19wYXN0X2MsIDB4ODAsIGIpOwogCQkJLyogSWYgdGhpcyB0aGUgdGhlIGJsb2NrIGNvbnRhaW5pbmcgdGhlIGVuZCBvZiB0aGUKIAkJCSAqIGFwcGxpY2F0aW9uIGRhdGEgYW5kIHdlJ3JlIHBhc3QgdGhlIDB4ODAgdmFsdWUgdGhlbgogCQkJICoganVzdCB3cml0ZSB6ZXJvLiAqLwpAQCAtNzA0LDcgKzY2OCw4IEBACiAJCQlpZiAoaiA+PSBtZF9ibG9ja19zaXplIC0gbWRfbGVuZ3RoX3NpemUpCiAJCQkJewogCQkJCS8qIElmIHRoaXMgaXMgaW5kZXhfYiwgd3JpdGUgYSBsZW5ndGggYnl0ZS4gKi8KLQkJCQliID0gKGImfmlzX2Jsb2NrX2IpIHwgKGlzX2Jsb2NrX2ImbGVuZ3RoX2J5dGVzW2otKG1kX2Jsb2NrX3NpemUtbWRfbGVuZ3RoX3NpemUpXSk7CisJCQkJYiA9IGNvbnN0YW50X3RpbWVfc2VsZWN0XzgoCisJCQkJCWlzX2Jsb2NrX2IsIGxlbmd0aF9ieXRlc1tqLShtZF9ibG9ja19zaXplLW1kX2xlbmd0aF9zaXplKV0sIGIpOwogCQkJCX0KIAkJCWJsb2NrW2pdID0gYjsKIAkJCX0KZGlmZiAtLWdpdCBhL3NzbC9zM19jbG50LmMgYi9zc2wvczNfY2xudC5jCmluZGV4IDFjMWJhNDkuLjhhODE3OTMgMTAwNjQ0Ci0tLSBhL3NzbC9zM19jbG50LmMKKysrIGIvc3NsL3MzX2NsbnQuYwpAQCAtMzMyLDkgKzMzMiw5IEBACiAJCQkJYnJlYWs7CiAJCQkJfQogI2VuZGlmCi0JCQkvKiBDaGVjayBpZiBpdCBpcyBhbm9uIERIL0VDREggKi8KKwkJCS8qIENoZWNrIGlmIGl0IGlzIGFub24gREgvRUNESCwgU1JQIGF1dGggKi8KIAkJCS8qIG9yIG5vbi1SU0EgUFNLICovCi0JCQlpZiAoIShzLT5zMy0+dG1wLm5ld19jaXBoZXItPmFsZ29yaXRobV9hdXRoICYgU1NMX2FOVUxMKSAmJgorCQkJaWYgKCEocy0+czMtPnRtcC5uZXdfY2lwaGVyLT5hbGdvcml0aG1fYXV0aCAmIChTU0xfYU5VTEx8U1NMX2FTUlApKSAmJgogCQkJICAgICEoKHMtPnMzLT50bXAubmV3X2NpcGhlci0+YWxnb3JpdGhtX2F1dGggJiBTU0xfYVBTSykgJiYKIAkJCSAgICAgICEocy0+czMtPnRtcC5uZXdfY2lwaGVyLT5hbGdvcml0aG1fbWtleSAmIFNTTF9rUlNBKSkpCiAJCQkJewpAQCAtNTMwLDYgKzUzMCw3IEBACiAJCQkJcy0+bWV0aG9kLT5zc2wzX2VuYy0+Y2xpZW50X2ZpbmlzaGVkX2xhYmVsLAogCQkJCXMtPm1ldGhvZC0+c3NsM19lbmMtPmNsaWVudF9maW5pc2hlZF9sYWJlbF9sZW4pOwogCQkJaWYgKHJldCA8PSAwKSBnb3RvIGVuZDsKKwkJCXMtPnMzLT5mbGFncyB8PSBTU0wzX0ZMQUdTX0NDU19PSzsKIAkJCXMtPnN0YXRlPVNTTDNfU1RfQ1dfRkxVU0g7CiAKIAkJCS8qIGNsZWFyIGZsYWdzICovCkBAIC05NzUsNiArOTc2LDcgQEAKIAkJCXsKIAkJCXMtPnNlc3Npb24tPmNpcGhlciA9IHByZWZfY2lwaGVyID8KIAkJCQlwcmVmX2NpcGhlciA6IHNzbF9nZXRfY2lwaGVyX2J5X2NoYXIocywgcCtqKTsKKwkgICAgCQlzLT5zMy0+ZmxhZ3MgfD0gU1NMM19GTEFHU19DQ1NfT0s7CiAJCQl9CiAJCX0KICNlbmRpZiAvKiBPUEVOU1NMX05PX1RMU0VYVCAqLwpAQCAtMTAzMiw2ICsxMDM0LDE1IEBACiAJCVNTTGVycihTU0xfRl9TU0wzX0dFVF9TRVJWRVJfSEVMTE8sU1NMX1JfV1JPTkdfQ0lQSEVSX1JFVFVSTkVEKTsKIAkJZ290byBmX2VycjsKIAkJfQorI2lmbmRlZiBPUEVOU1NMX05PX1NSUAorCWlmICgoKGMtPmFsZ29yaXRobV9ta2V5ICYgU1NMX2tTUlApIHx8IChjLT5hbGdvcml0aG1fYXV0aCAmIFNTTF9hU1JQKSkgJiYKKwkJICAgICEocy0+c3JwX2N0eC5zcnBfTWFzayAmIFNTTF9rU1JQKSkKKwkJeworCQlhbD1TU0xfQURfSUxMRUdBTF9QQVJBTUVURVI7CisJCVNTTGVycihTU0xfRl9TU0wzX0dFVF9TRVJWRVJfSEVMTE8sU1NMX1JfV1JPTkdfQ0lQSEVSX1JFVFVSTkVEKTsKKwkJZ290byBmX2VycjsKKwkJfQorI2VuZGlmIC8qIE9QRU5TU0xfTk9fU1JQICovCiAJcCs9c3NsX3B1dF9jaXBoZXJfYnlfY2hhcihzLE5VTEwsTlVMTCk7CiAKIAlzaz1zc2xfZ2V0X2NpcGhlcnNfYnlfaWQocyk7CkBAIC0xMzQ2LDggKzEzNTcsOCBAQAogI2VuZGlmCiAJRVZQX01EX0NUWCBtZF9jdHg7CiAJdW5zaWduZWQgY2hhciAqcGFyYW0sKnA7Ci0JaW50IGFsLGksaixwYXJhbV9sZW4sb2s7Ci0JbG9uZyBuLGFsZ19rLGFsZ19hOworCWludCBhbCxqLG9rOworCWxvbmcgaSxwYXJhbV9sZW4sbixhbGdfayxhbGdfYTsKIAlFVlBfUEtFWSAqcGtleT1OVUxMOwogCWNvbnN0IEVWUF9NRCAqbWQgPSBOVUxMOwogI2lmbmRlZiBPUEVOU1NMX05PX1JTQQpAQCAtMTQyNSwxOSArMTQzNiwyOSBAQAogCQlzLT5zZXNzaW9uLT5zZXNzX2NlcnQ9c3NsX3Nlc3NfY2VydF9uZXcoKTsKIAkJfQogCisJLyogVG90YWwgbGVuZ3RoIG9mIHRoZSBwYXJhbWV0ZXJzIGluY2x1ZGluZyB0aGUgbGVuZ3RoIHByZWZpeCAqLwogCXBhcmFtX2xlbj0wOworCiAJYWxnX2s9cy0+czMtPnRtcC5uZXdfY2lwaGVyLT5hbGdvcml0aG1fbWtleTsKIAlhbGdfYT1zLT5zMy0+dG1wLm5ld19jaXBoZXItPmFsZ29yaXRobV9hdXRoOwogCUVWUF9NRF9DVFhfaW5pdCgmbWRfY3R4KTsKIAorCWFsPVNTTF9BRF9ERUNPREVfRVJST1I7CisKICNpZm5kZWYgT1BFTlNTTF9OT19QU0sKIAlpZiAoYWxnX2EgJiBTU0xfYVBTSykKIAkJewogCQljaGFyIHRtcF9pZF9oaW50W1BTS19NQVhfSURFTlRJVFlfTEVOKzFdOwogCi0JCWFsPVNTTF9BRF9IQU5EU0hBS0VfRkFJTFVSRTsKKwkJcGFyYW1fbGVuID0gMjsKKwkJaWYgKHBhcmFtX2xlbiA+IG4pCisJCQl7CisJCQlTU0xlcnIoU1NMX0ZfU1NMM19HRVRfS0VZX0VYQ0hBTkdFLAorCQkJCVNTTF9SX0xFTkdUSF9UT09fU0hPUlQpOworCQkJZ290byBmX2VycjsKKwkJCX0KIAkJbjJzKHAsaSk7Ci0JCXBhcmFtX2xlbj1pKzI7CisKIAkJaWYgKHMtPnNlc3Npb24tPnBza19pZGVudGl0eV9oaW50KQogCQkJewogCQkJT1BFTlNTTF9mcmVlKHMtPnNlc3Npb24tPnBza19pZGVudGl0eV9oaW50KTsKQEAgLTE0NTEsMTcgKzE0NzIsMTkgQEAKIAkJCSAqIGxvbmcgYXMgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGEgUFNLIGlkZW50aXR5LiAqLwogCQkJaWYgKGkgPiBQU0tfTUFYX0lERU5USVRZX0xFTikKIAkJCQl7CisJCQkJYWw9U1NMX0FEX0hBTkRTSEFLRV9GQUlMVVJFOwogCQkJCVNTTGVycihTU0xfRl9TU0wzX0dFVF9LRVlfRVhDSEFOR0UsCiAJCQkJCVNTTF9SX0RBVEFfTEVOR1RIX1RPT19MT05HKTsKIAkJCQlnb3RvIGZfZXJyOwogCQkJCX0KLQkJCWlmIChwYXJhbV9sZW4gPiBuKQorCQkJaWYgKGkgPiBuIC0gcGFyYW1fbGVuKQogCQkJCXsKLQkJCQlhbD1TU0xfQURfREVDT0RFX0VSUk9SOwogCQkJCVNTTGVycihTU0xfRl9TU0wzX0dFVF9LRVlfRVhDSEFOR0UsCiAJCQkJCVNTTF9SX0JBRF9QU0tfSURFTlRJVFlfSElOVF9MRU5HVEgpOwogCQkJCWdvdG8gZl9lcnI7CiAJCQkJfQorCQkJcGFyYW1fbGVuICs9IGk7CisKIAkJCS8qIElmIHJlY2VpdmVkIFBTSyBpZGVudGl0eSBoaW50IGNvbnRhaW5zIE5VTEwKIAkJCSAqIGNoYXJhY3RlcnMsIHRoZSBoaW50IGlzIHRydW5jYXRlZCBmcm9tIHRoZSBmaXJzdAogCQkJICogTlVMTC4gcCBtYXkgbm90IGJlIGVuZGluZyB3aXRoIE5VTEwsIHNvIGNyZWF0ZSBhCkBAIC0xNDcxLDYgKzE0OTQsNyBAQAogCQkJcy0+c2Vzc2lvbi0+cHNrX2lkZW50aXR5X2hpbnQgPSBCVUZfc3RyZHVwKHRtcF9pZF9oaW50KTsKIAkJCWlmIChzLT5zZXNzaW9uLT5wc2tfaWRlbnRpdHlfaGludCA9PSBOVUxMKQogCQkJCXsKKwkJCQlhbD1TU0xfQURfSEFORFNIQUtFX0ZBSUxVUkU7CiAJCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0tFWV9FWENIQU5HRSwgRVJSX1JfTUFMTE9DX0ZBSUxVUkUpOwogCQkJCWdvdG8gZl9lcnI7CiAJCQkJfQpAQCAtMTQ4NCwxNCArMTUwOCwyMiBAQAogI2lmbmRlZiBPUEVOU1NMX05PX1NSUAogCWVsc2UgaWYgKGFsZ19rICYgU1NMX2tTUlApCiAJCXsKLQkJbjJzKHAsaSk7Ci0JCXBhcmFtX2xlbj1pKzI7CisJCXBhcmFtX2xlbiA9IDI7CiAJCWlmIChwYXJhbV9sZW4gPiBuKQogCQkJewotCQkJYWw9U1NMX0FEX0RFQ09ERV9FUlJPUjsKKwkJCVNTTGVycihTU0xfRl9TU0wzX0dFVF9LRVlfRVhDSEFOR0UsCisJCQkJU1NMX1JfTEVOR1RIX1RPT19TSE9SVCk7CisJCQlnb3RvIGZfZXJyOworCQkJfQorCQluMnMocCxpKTsKKworCQlpZiAoaSA+IG4gLSBwYXJhbV9sZW4pCisJCQl7CiAJCQlTU0xlcnIoU1NMX0ZfU1NMM19HRVRfS0VZX0VYQ0hBTkdFLFNTTF9SX0JBRF9TUlBfTl9MRU5HVEgpOwogCQkJZ290byBmX2VycjsKIAkJCX0KKwkJcGFyYW1fbGVuICs9IGk7CisKIAkJaWYgKCEocy0+c3JwX2N0eC5OPUJOX2JpbjJibihwLGksTlVMTCkpKQogCQkJewogCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0tFWV9FWENIQU5HRSxFUlJfUl9CTl9MSUIpOwpAQCAtMTQ5OSwxNCArMTUzMSwyNCBAQAogCQkJfQogCQlwKz1pOwogCi0JCW4ycyhwLGkpOwotCQlwYXJhbV9sZW4rPWkrMjsKLQkJaWYgKHBhcmFtX2xlbiA+IG4pCisKKwkJaWYgKDIgPiBuIC0gcGFyYW1fbGVuKQogCQkJewotCQkJYWw9U1NMX0FEX0RFQ09ERV9FUlJPUjsKKwkJCVNTTGVycihTU0xfRl9TU0wzX0dFVF9LRVlfRVhDSEFOR0UsCisJCQkJU1NMX1JfTEVOR1RIX1RPT19TSE9SVCk7CisJCQlnb3RvIGZfZXJyOworCQkJfQorCQlwYXJhbV9sZW4gKz0gMjsKKworCQluMnMocCxpKTsKKworCQlpZiAoaSA+IG4gLSBwYXJhbV9sZW4pCisJCQl7CiAJCQlTU0xlcnIoU1NMX0ZfU1NMM19HRVRfS0VZX0VYQ0hBTkdFLFNTTF9SX0JBRF9TUlBfR19MRU5HVEgpOwogCQkJZ290byBmX2VycjsKIAkJCX0KKwkJcGFyYW1fbGVuICs9IGk7CisKIAkJaWYgKCEocy0+c3JwX2N0eC5nPUJOX2JpbjJibihwLGksTlVMTCkpKQogCQkJewogCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0tFWV9FWENIQU5HRSxFUlJfUl9CTl9MSUIpOwpAQCAtMTUxNCwxNSArMTU1NiwyNSBAQAogCQkJfQogCQlwKz1pOwogCisKKwkJaWYgKDEgPiBuIC0gcGFyYW1fbGVuKQorCQkJeworCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0tFWV9FWENIQU5HRSwKKwkJCQlTU0xfUl9MRU5HVEhfVE9PX1NIT1JUKTsKKwkJCWdvdG8gZl9lcnI7CisJCQl9CisJCXBhcmFtX2xlbiArPSAxOworCiAJCWkgPSAodW5zaWduZWQgaW50KShwWzBdKTsKIAkJcCsrOwotCQlwYXJhbV9sZW4rPWkrMTsKLQkJaWYgKHBhcmFtX2xlbiA+IG4pCisKKwkJaWYgKGkgPiBuIC0gcGFyYW1fbGVuKQogCQkJewotCQkJYWw9U1NMX0FEX0RFQ09ERV9FUlJPUjsKIAkJCVNTTGVycihTU0xfRl9TU0wzX0dFVF9LRVlfRVhDSEFOR0UsU1NMX1JfQkFEX1NSUF9TX0xFTkdUSCk7CiAJCQlnb3RvIGZfZXJyOwogCQkJfQorCQlwYXJhbV9sZW4gKz0gaTsKKwogCQlpZiAoIShzLT5zcnBfY3R4LnM9Qk5fYmluMmJuKHAsaSxOVUxMKSkpCiAJCQl7CiAJCQlTU0xlcnIoU1NMX0ZfU1NMM19HRVRfS0VZX0VYQ0hBTkdFLEVSUl9SX0JOX0xJQik7CkBAIC0xNTMwLDE0ICsxNTgyLDIzIEBACiAJCQl9CiAJCXArPWk7CiAKLQkJbjJzKHAsaSk7Ci0JCXBhcmFtX2xlbis9aSsyOwotCQlpZiAocGFyYW1fbGVuID4gbikKKwkJaWYgKDIgPiBuIC0gcGFyYW1fbGVuKQogCQkJewotCQkJYWw9U1NMX0FEX0RFQ09ERV9FUlJPUjsKKwkJCVNTTGVycihTU0xfRl9TU0wzX0dFVF9LRVlfRVhDSEFOR0UsCisJCQkJU1NMX1JfTEVOR1RIX1RPT19TSE9SVCk7CisJCQlnb3RvIGZfZXJyOworCQkJfQorCQlwYXJhbV9sZW4gKz0gMjsKKworCQluMnMocCxpKTsKKworCQlpZiAoaSA+IG4gLSBwYXJhbV9sZW4pCisJCQl7CiAJCQlTU0xlcnIoU1NMX0ZfU1NMM19HRVRfS0VZX0VYQ0hBTkdFLFNTTF9SX0JBRF9TUlBfQl9MRU5HVEgpOwogCQkJZ290byBmX2VycjsKIAkJCX0KKwkJcGFyYW1fbGVuICs9IGk7CisKIAkJaWYgKCEocy0+c3JwX2N0eC5CPUJOX2JpbjJibihwLGksTlVMTCkpKQogCQkJewogCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0tFWV9FWENIQU5HRSxFUlJfUl9CTl9MSUIpOwpAQCAtMTU0Niw2ICsxNjA3LDEyIEBACiAJCXArPWk7CiAJCW4tPXBhcmFtX2xlbjsKIAorCQlpZiAoIXNycF92ZXJpZnlfc2VydmVyX3BhcmFtKHMsICZhbCkpCisJCQl7CisJCQlTU0xlcnIoU1NMX0ZfU1NMM19HRVRfS0VZX0VYQ0hBTkdFLFNTTF9SX0JBRF9TUlBfUEFSQU1FVEVSUyk7CisJCQlnb3RvIGZfZXJyOworCQkJfQorCiAvKiBXZSBtdXN0IGNoZWNrIGlmIHRoZXJlIGlzIGEgY2VydGlmaWNhdGUgKi8KICNpZm5kZWYgT1BFTlNTTF9OT19SU0EKIAkJaWYgKGFsZ19hICYgU1NMX2FSU0EpCkBAIC0xNTY4LDE0ICsxNjM1LDIzIEBACiAJCQlTU0xlcnIoU1NMX0ZfU1NMM19HRVRfS0VZX0VYQ0hBTkdFLEVSUl9SX01BTExPQ19GQUlMVVJFKTsKIAkJCWdvdG8gZXJyOwogCQkJfQotCQluMnMocCxpKTsKLQkJcGFyYW1fbGVuPWkrMjsKKworCQlwYXJhbV9sZW4gPSAyOwogCQlpZiAocGFyYW1fbGVuID4gbikKIAkJCXsKLQkJCWFsPVNTTF9BRF9ERUNPREVfRVJST1I7CisJCQlTU0xlcnIoU1NMX0ZfU1NMM19HRVRfS0VZX0VYQ0hBTkdFLAorCQkJCVNTTF9SX0xFTkdUSF9UT09fU0hPUlQpOworCQkJZ290byBmX2VycjsKKwkJCX0KKwkJbjJzKHAsaSk7CisKKwkJaWYgKGkgPiBuIC0gcGFyYW1fbGVuKQorCQkJewogCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0tFWV9FWENIQU5HRSxTU0xfUl9CQURfUlNBX01PRFVMVVNfTEVOR1RIKTsKIAkJCWdvdG8gZl9lcnI7CiAJCQl9CisJCXBhcmFtX2xlbiArPSBpOworCiAJCWlmICghKHJzYS0+bj1CTl9iaW4yYm4ocCxpLHJzYS0+bikpKQogCQkJewogCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0tFWV9FWENIQU5HRSxFUlJfUl9CTl9MSUIpOwpAQCAtMTU4MywxNCArMTY1OSwyMyBAQAogCQkJfQogCQlwKz1pOwogCi0JCW4ycyhwLGkpOwotCQlwYXJhbV9sZW4rPWkrMjsKLQkJaWYgKHBhcmFtX2xlbiA+IG4pCisJCWlmICgyID4gbiAtIHBhcmFtX2xlbikKIAkJCXsKLQkJCWFsPVNTTF9BRF9ERUNPREVfRVJST1I7CisJCQlTU0xlcnIoU1NMX0ZfU1NMM19HRVRfS0VZX0VYQ0hBTkdFLAorCQkJCVNTTF9SX0xFTkdUSF9UT09fU0hPUlQpOworCQkJZ290byBmX2VycjsKKwkJCX0KKwkJcGFyYW1fbGVuICs9IDI7CisKKwkJbjJzKHAsaSk7CisKKwkJaWYgKGkgPiBuIC0gcGFyYW1fbGVuKQorCQkJewogCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0tFWV9FWENIQU5HRSxTU0xfUl9CQURfUlNBX0VfTEVOR1RIKTsKIAkJCWdvdG8gZl9lcnI7CiAJCQl9CisJCXBhcmFtX2xlbiArPSBpOworCiAJCWlmICghKHJzYS0+ZT1CTl9iaW4yYm4ocCxpLHJzYS0+ZSkpKQogCQkJewogCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0tFWV9FWENIQU5HRSxFUlJfUl9CTl9MSUIpOwpAQCAtMTYxOSwxNCArMTcwNCwyMyBAQAogCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0tFWV9FWENIQU5HRSxFUlJfUl9ESF9MSUIpOwogCQkJZ290byBlcnI7CiAJCQl9Ci0JCW4ycyhwLGkpOwotCQlwYXJhbV9sZW49aSsyOworCisJCXBhcmFtX2xlbiA9IDI7CiAJCWlmIChwYXJhbV9sZW4gPiBuKQogCQkJewotCQkJYWw9U1NMX0FEX0RFQ09ERV9FUlJPUjsKKwkJCVNTTGVycihTU0xfRl9TU0wzX0dFVF9LRVlfRVhDSEFOR0UsCisJCQkJU1NMX1JfTEVOR1RIX1RPT19TSE9SVCk7CisJCQlnb3RvIGZfZXJyOworCQkJfQorCQluMnMocCxpKTsKKworCQlpZiAoaSA+IG4gLSBwYXJhbV9sZW4pCisJCQl7CiAJCQlTU0xlcnIoU1NMX0ZfU1NMM19HRVRfS0VZX0VYQ0hBTkdFLFNTTF9SX0JBRF9ESF9QX0xFTkdUSCk7CiAJCQlnb3RvIGZfZXJyOwogCQkJfQorCQlwYXJhbV9sZW4gKz0gaTsKKwogCQlpZiAoIShkaC0+cD1CTl9iaW4yYm4ocCxpLE5VTEwpKSkKIAkJCXsKIAkJCVNTTGVycihTU0xfRl9TU0wzX0dFVF9LRVlfRVhDSEFOR0UsRVJSX1JfQk5fTElCKTsKQEAgLTE2MzQsMTQgKzE3MjgsMjMgQEAKIAkJCX0KIAkJcCs9aTsKIAotCQluMnMocCxpKTsKLQkJcGFyYW1fbGVuKz1pKzI7Ci0JCWlmIChwYXJhbV9sZW4gPiBuKQorCQlpZiAoMiA+IG4gLSBwYXJhbV9sZW4pCiAJCQl7Ci0JCQlhbD1TU0xfQURfREVDT0RFX0VSUk9SOworCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0tFWV9FWENIQU5HRSwKKwkJCQlTU0xfUl9MRU5HVEhfVE9PX1NIT1JUKTsKKwkJCWdvdG8gZl9lcnI7CisJCQl9CisJCXBhcmFtX2xlbiArPSAyOworCisJCW4ycyhwLGkpOworCisJCWlmIChpID4gbiAtIHBhcmFtX2xlbikKKwkJCXsKIAkJCVNTTGVycihTU0xfRl9TU0wzX0dFVF9LRVlfRVhDSEFOR0UsU1NMX1JfQkFEX0RIX0dfTEVOR1RIKTsKIAkJCWdvdG8gZl9lcnI7CiAJCQl9CisJCXBhcmFtX2xlbiArPSBpOworCiAJCWlmICghKGRoLT5nPUJOX2JpbjJibihwLGksTlVMTCkpKQogCQkJewogCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0tFWV9FWENIQU5HRSxFUlJfUl9CTl9MSUIpOwpAQCAtMTY0OSwxNCArMTc1MiwyMyBAQAogCQkJfQogCQlwKz1pOwogCi0JCW4ycyhwLGkpOwotCQlwYXJhbV9sZW4rPWkrMjsKLQkJaWYgKHBhcmFtX2xlbiA+IG4pCisJCWlmICgyID4gbiAtIHBhcmFtX2xlbikKIAkJCXsKLQkJCWFsPVNTTF9BRF9ERUNPREVfRVJST1I7CisJCQlTU0xlcnIoU1NMX0ZfU1NMM19HRVRfS0VZX0VYQ0hBTkdFLAorCQkJCVNTTF9SX0xFTkdUSF9UT09fU0hPUlQpOworCQkJZ290byBmX2VycjsKKwkJCX0KKwkJcGFyYW1fbGVuICs9IDI7CisKKwkJbjJzKHAsaSk7CisKKwkJaWYgKGkgPiBuIC0gcGFyYW1fbGVuKQorCQkJewogCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0tFWV9FWENIQU5HRSxTU0xfUl9CQURfREhfUFVCX0tFWV9MRU5HVEgpOwogCQkJZ290byBmX2VycjsKIAkJCX0KKwkJcGFyYW1fbGVuICs9IGk7CisKIAkJaWYgKCEoZGgtPnB1Yl9rZXk9Qk5fYmluMmJuKHAsaSxOVUxMKSkpCiAJCQl7CiAJCQlTU0xlcnIoU1NMX0ZfU1NMM19HRVRfS0VZX0VYQ0hBTkdFLEVSUl9SX0JOX0xJQik7CkBAIC0xNzA4LDEyICsxODIwLDE5IEBACiAJCSAqLwogCiAJCS8qIFhYWDogRm9yIG5vdyB3ZSBvbmx5IHN1cHBvcnQgbmFtZWQgKG5vdCBnZW5lcmljKSBjdXJ2ZXMKLQkJICogYW5kIHRoZSBFQ1BhcmFtZXRlcnMgaW4gdGhpcyBjYXNlIGlzIGp1c3QgdGhyZWUgYnl0ZXMuCisJCSAqIGFuZCB0aGUgRUNQYXJhbWV0ZXJzIGluIHRoaXMgY2FzZSBpcyBqdXN0IHRocmVlIGJ5dGVzLiBXZQorCQkgKiBhbHNvIG5lZWQgb25lIGJ5dGUgZm9yIHRoZSBsZW5ndGggb2YgdGhlIGVuY29kZWQgcG9pbnQKIAkJICovCi0JCXBhcmFtX2xlbj0zOwotCQlpZiAoKHBhcmFtX2xlbiA+IG4pIHx8Ci0JCSAgICAoKnAgIT0gTkFNRURfQ1VSVkVfVFlQRSkgfHwgCi0JCSAgICAoKGN1cnZlX25pZCA9IHRsczFfZWNfY3VydmVfaWQybmlkKCoocCArIDIpKSkgPT0gMCkpIAorCQlwYXJhbV9sZW49NDsKKwkJaWYgKHBhcmFtX2xlbiA+IG4pCisJCQl7CisJCQlTU0xlcnIoU1NMX0ZfU1NMM19HRVRfS0VZX0VYQ0hBTkdFLAorCQkJCVNTTF9SX0xFTkdUSF9UT09fU0hPUlQpOworCQkJZ290byBmX2VycjsKKwkJCX0KKworCQlpZiAoKCpwICE9IE5BTUVEX0NVUlZFX1RZUEUpIHx8IAorCQkgICAgKChjdXJ2ZV9uaWQgPSB0bHMxX2VjX2N1cnZlX2lkMm5pZCgqKHAgKyAyKSkpID09IDApKQogCQkJewogCQkJYWw9U1NMX0FEX0lOVEVSTkFMX0VSUk9SOwogCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0tFWV9FWENIQU5HRSxTU0xfUl9VTkFCTEVfVE9fRklORF9FQ0RIX1BBUkFNRVRFUlMpOwpAQCAtMTc1NSwxNSArMTg3NCwxNSBAQAogCiAJCWVuY29kZWRfcHRfbGVuID0gKnA7ICAvKiBsZW5ndGggb2YgZW5jb2RlZCBwb2ludCAqLwogCQlwKz0xOwotCQlwYXJhbV9sZW4gKz0gKDEgKyBlbmNvZGVkX3B0X2xlbik7Ci0JCWlmICgocGFyYW1fbGVuID4gbikgfHwKKworCQlpZiAoKGVuY29kZWRfcHRfbGVuID4gbiAtIHBhcmFtX2xlbikgfHwKIAkJICAgIChFQ19QT0lOVF9vY3QycG9pbnQoZ3JvdXAsIHNydnJfZWNwb2ludCwgCiAJCQlwLCBlbmNvZGVkX3B0X2xlbiwgYm5fY3R4KSA9PSAwKSkKIAkJCXsKLQkJCWFsPVNTTF9BRF9ERUNPREVfRVJST1I7CiAJCQlTU0xlcnIoU1NMX0ZfU1NMM19HRVRfS0VZX0VYQ0hBTkdFLFNTTF9SX0JBRF9FQ1BPSU5UKTsKIAkJCWdvdG8gZl9lcnI7CiAJCQl9CisJCXBhcmFtX2xlbiArPSBlbmNvZGVkX3B0X2xlbjsKIAogCQluLT1wYXJhbV9sZW47CiAJCXArPWVuY29kZWRfcHRfbGVuOwpAQCAtMTgwNiw3ICsxOTI1LDE1IEBACiAJCXsKIAkJaWYgKFRMUzFfZ2V0X3ZlcnNpb24ocykgPj0gVExTMV8yX1ZFUlNJT04pCiAJCQl7Ci0JCQlpbnQgc2lnYWxnID0gdGxzMTJfZ2V0X3NpZ2lkKHBrZXkpOworCQkJaW50IHNpZ2FsZzsKKwkJCWlmICgyID4gbikKKwkJCQl7CisJCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0tFWV9FWENIQU5HRSwKKwkJCQkJU1NMX1JfTEVOR1RIX1RPT19TSE9SVCk7CisJCQkJZ290byBmX2VycjsKKwkJCQl9CisKKwkJCXNpZ2FsZyA9IHRsczEyX2dldF9zaWdpZChwa2V5KTsKIAkJCS8qIFNob3VsZCBuZXZlciBoYXBwZW4gKi8KIAkJCWlmIChzaWdhbGcgPT0gLTEpCiAJCQkJewpAQCAtMTgyNCw3ICsxOTUxLDYgQEAKIAkJCWlmIChtZCA9PSBOVUxMKQogCQkJCXsKIAkJCQlTU0xlcnIoU1NMX0ZfU1NMM19HRVRfS0VZX0VYQ0hBTkdFLFNTTF9SX1VOS05PV05fRElHRVNUKTsKLQkJCQlhbD1TU0xfQURfREVDT0RFX0VSUk9SOwogCQkJCWdvdG8gZl9lcnI7CiAJCQkJfQogI2lmZGVmIFNTTF9ERUJVRwpAQCAtMTgzNSwxNSArMTk2MSwyMSBAQAogCQkJfQogCQllbHNlCiAJCQltZCA9IEVWUF9zaGExKCk7Ci0JCQkKKworCQlpZiAoMiA+IG4pCisJCQl7CisJCQlTU0xlcnIoU1NMX0ZfU1NMM19HRVRfS0VZX0VYQ0hBTkdFLAorCQkJCVNTTF9SX0xFTkdUSF9UT09fU0hPUlQpOworCQkJZ290byBmX2VycjsKKwkJCX0KIAkJbjJzKHAsaSk7CiAJCW4tPTI7CiAJCWo9RVZQX1BLRVlfc2l6ZShwa2V5KTsKIAorCQkvKiBDaGVjayBzaWduYXR1cmUgbGVuZ3RoLiBJZiBuIGlzIDAgdGhlbiBzaWduYXR1cmUgaXMgZW1wdHkgKi8KIAkJaWYgKChpICE9IG4pIHx8IChuID4gaikgfHwgKG4gPD0gMCkpCiAJCQl7CiAJCQkvKiB3cm9uZyBwYWNrZXQgbGVuZ3RoICovCi0JCQlhbD1TU0xfQURfREVDT0RFX0VSUk9SOwogCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0tFWV9FWENIQU5HRSxTU0xfUl9XUk9OR19TSUdOQVRVUkVfTEVOR1RIKTsKIAkJCWdvdG8gZl9lcnI7CiAJCQl9CkBAIC0xODUyLDYgKzE5ODQsNyBAQAogCQlpZiAocGtleS0+dHlwZSA9PSBFVlBfUEtFWV9SU0EgJiYgVExTMV9nZXRfdmVyc2lvbihzKSA8IFRMUzFfMl9WRVJTSU9OKQogCQkJewogCQkJaW50IG51bTsKKwkJCXVuc2lnbmVkIGludCBzaXplOwogCiAJCQlqPTA7CiAJCQlxPW1kX2J1ZjsKQEAgLTE4NjQsOSArMTk5Nyw5IEBACiAJCQkJRVZQX0RpZ2VzdFVwZGF0ZSgmbWRfY3R4LCYocy0+czMtPmNsaWVudF9yYW5kb21bMF0pLFNTTDNfUkFORE9NX1NJWkUpOwogCQkJCUVWUF9EaWdlc3RVcGRhdGUoJm1kX2N0eCwmKHMtPnMzLT5zZXJ2ZXJfcmFuZG9tWzBdKSxTU0wzX1JBTkRPTV9TSVpFKTsKIAkJCQlFVlBfRGlnZXN0VXBkYXRlKCZtZF9jdHgscGFyYW0scGFyYW1fbGVuKTsKLQkJCQlFVlBfRGlnZXN0RmluYWxfZXgoJm1kX2N0eCxxLCh1bnNpZ25lZCBpbnQgKikmaSk7Ci0JCQkJcSs9aTsKLQkJCQlqKz1pOworCQkJCUVWUF9EaWdlc3RGaW5hbF9leCgmbWRfY3R4LHEsJnNpemUpOworCQkJCXErPXNpemU7CisJCQkJais9c2l6ZTsKIAkJCQl9CiAJCQlpPVJTQV92ZXJpZnkoTklEX21kNV9zaGExLCBtZF9idWYsIGosIHAsIG4sCiAJCQkJCQkJCXBrZXktPnBrZXkucnNhKTsKQEAgLTE5MDIsNyArMjAzNSw3IEBACiAJCX0KIAllbHNlCiAJCXsKLQkJaWYgKCEoYWxnX2EgJiBTU0xfYU5VTEwpICYmCisJCWlmICghKGFsZ19hICYgKFNTTF9hTlVMTHxTU0xfYVNSUCkpICYmCiAJCQkvKiBBbW9uZyBQU0sgY2lwaGVycyBvbmx5IFJTQV9QU0sgbmVlZHMgYSBwdWJsaWMga2V5ICovCiAJCQkhKChhbGdfYSAmIFNTTF9hUFNLKSAmJiAhKGFsZ19rICYgU1NMX2tSU0EpKSkKIAkJCXsKQEAgLTE5MTIsNyArMjA0NSw2IEBACiAJCS8qIHN0aWxsIGRhdGEgbGVmdCBvdmVyICovCiAJCWlmIChuICE9IDApCiAJCQl7Ci0JCQlhbD1TU0xfQURfREVDT0RFX0VSUk9SOwogCQkJU1NMZXJyKFNTTF9GX1NTTDNfR0VUX0tFWV9FWENIQU5HRSxTU0xfUl9FWFRSQV9EQVRBX0lOX01FU1NBR0UpOwogCQkJZ290byBmX2VycjsKIAkJCX0KQEAgLTIzMzgsNyArMjQ3MCwxMCBAQAogI2lmbmRlZiBPUEVOU1NMX05PX1BTSwogCQlpZiAoYWxnX2EgJiBTU0xfYVBTSykKIAkJCXsKLQkJCWNoYXIgaWRlbnRpdHlbUFNLX01BWF9JREVOVElUWV9MRU4gKyAxXTsKKwkJCS8qIFRoZSBjYWxsYmFjayBuZWVkcyBQU0tfTUFYX0lERU5USVRZX0xFTiArIDEgYnl0ZXMKKwkJCSAqIHRvIHJldHVybiBhIFwwLXRlcm1pbmF0ZWQgaWRlbnRpdHkuIFRoZSBsYXN0IGJ5dGUKKwkJCSAqIGlzIGZvciB1cyBmb3Igc2ltdWxhdGluZyBzdHJubGVuLiAqLworCQkJY2hhciBpZGVudGl0eVtQU0tfTUFYX0lERU5USVRZX0xFTiArIDJdOwogCQkJc2l6ZV90IGlkZW50aXR5X2xlbjsKIAkJCXVuc2lnbmVkIGNoYXIgKnQgPSBOVUxMOwogCQkJdW5zaWduZWQgY2hhciBwcmVfbXNbUFNLX01BWF9QU0tfTEVOKjIrNF07CkBAIC0yMzU1LDcgKzI0OTAsNyBAQAogCiAJCQltZW1zZXQoaWRlbnRpdHksIDAsIHNpemVvZihpZGVudGl0eSkpOwogCQkJcHNrX2xlbiA9IHMtPnBza19jbGllbnRfY2FsbGJhY2socywgcy0+c2Vzc2lvbi0+cHNrX2lkZW50aXR5X2hpbnQsCi0JCQkJaWRlbnRpdHksIHNpemVvZihpZGVudGl0eSksIHBzaywgc2l6ZW9mKHBzaykpOworCQkJCWlkZW50aXR5LCBzaXplb2YoaWRlbnRpdHkgLSAxKSwgcHNrLCBzaXplb2YocHNrKSk7CiAJCQlpZiAocHNrX2xlbiA+IFBTS19NQVhfUFNLX0xFTikKIAkJCQl7CiAJCQkJU1NMZXJyKFNTTF9GX1NTTDNfU0VORF9DTElFTlRfS0VZX0VYQ0hBTkdFLApAQCAtMjM2OCwxNCArMjUwMywxNCBAQAogCQkJCQlTU0xfUl9QU0tfSURFTlRJVFlfTk9UX0ZPVU5EKTsKIAkJCQlnb3RvIHBza19lcnI7CiAJCQkJfQotCQkJaWRlbnRpdHlfbGVuID0gc3RybmxlbihpZGVudGl0eSwgc2l6ZW9mKGlkZW50aXR5KSk7CisJCQlpZGVudGl0eVtQU0tfTUFYX0lERU5USVRZX0xFTiArIDFdID0gJ1wwJzsKKwkJCWlkZW50aXR5X2xlbiA9IHN0cmxlbihpZGVudGl0eSk7CiAJCQlpZiAoaWRlbnRpdHlfbGVuID4gUFNLX01BWF9JREVOVElUWV9MRU4pCiAJCQkJewogCQkJCVNTTGVycihTU0xfRl9TU0wzX1NFTkRfQ0xJRU5UX0tFWV9FWENIQU5HRSwKIAkJCQkJRVJSX1JfSU5URVJOQUxfRVJST1IpOwogCQkJCWdvdG8gcHNrX2VycjsKIAkJCQl9Ci0KIAkJCWlmICghKGFsZ19rICYgU1NMX2tFRUNESCkpCiAJCQkJewogCQkJCS8qIENyZWF0ZSB0aGUgc2hhcmVkIHNlY3JldCBub3cgaWYgd2UncmUgbm90IHVzaW5nIEVDREhFLVBTSy4qLwpAQCAtMjQwNyw3ICsyNTQyLDcgQEAKIAkJCQl9CiAJCQlwc2tfZXJyID0gMDsKIAkJcHNrX2VycjoKLQkJCU9QRU5TU0xfY2xlYW5zZShpZGVudGl0eSwgUFNLX01BWF9JREVOVElUWV9MRU4pOworCQkJT1BFTlNTTF9jbGVhbnNlKGlkZW50aXR5LCBzaXplb2YoaWRlbnRpdHkpKTsKIAkJCU9QRU5TU0xfY2xlYW5zZShwcmVfbXMsIHNpemVvZihwcmVfbXMpKTsKIAkJCWlmIChwc2tfZXJyICE9IDApCiAJCQkJewpAQCAtMjQyNCw2ICsyNTU5LDEzIEBACiAJCQlSU0EgKnJzYTsKIAkJCXVuc2lnbmVkIGNoYXIgdG1wX2J1ZltTU0xfTUFYX01BU1RFUl9LRVlfTEVOR1RIXTsKIAorCQkJaWYgKHMtPnNlc3Npb24tPnNlc3NfY2VydCA9PSBOVUxMKQorCQkJCXsKKwkJCQkvKiBXZSBzaG91bGQgYWx3YXlzIGhhdmUgYSBzZXJ2ZXIgY2VydGlmaWNhdGUgd2l0aCBTU0xfa1JTQS4gKi8KKwkJCQlTU0xlcnIoU1NMX0ZfU1NMM19TRU5EX0NMSUVOVF9LRVlfRVhDSEFOR0UsRVJSX1JfSU5URVJOQUxfRVJST1IpOworCQkJCWdvdG8gZXJyOworCQkJCX0KKwogCQkJaWYgKHMtPnNlc3Npb24tPnNlc3NfY2VydC0+cGVlcl9yc2FfdG1wICE9IE5VTEwpCiAJCQkJcnNhPXMtPnNlc3Npb24tPnNlc3NfY2VydC0+cGVlcl9yc2FfdG1wOwogCQkJZWxzZQpAQCAtMzM0MSw3ICszNDgzLDcgQEAKIAlhbGdfYT1zLT5zMy0+dG1wLm5ld19jaXBoZXItPmFsZ29yaXRobV9hdXRoOwogCiAJLyogd2UgZG9uJ3QgaGF2ZSBhIGNlcnRpZmljYXRlICovCi0JaWYgKChhbGdfYSAmIChTU0xfYURIfFNTTF9hTlVMTHxTU0xfYUtSQjUpKSB8fCAoKGFsZ19hICYgU1NMX2FQU0spICYmICEoYWxnX2sgJiBTU0xfa1JTQSkpKQorCWlmICgoYWxnX2EgJiAoU1NMX2FESHxTU0xfYU5VTEx8U1NMX2FLUkI1KSkgfHwgKGFsZ19rICYgU1NMX2tQU0spKQogCQlyZXR1cm4oMSk7CiAKIAlzYz1zLT5zZXNzaW9uLT5zZXNzX2NlcnQ7CmRpZmYgLS1naXQgYS9zc2wvczNfZW5jLmMgYi9zc2wvczNfZW5jLmMKaW5kZXggMzU5NWNmZi4uYmNiNjVkNCAxMDA2NDQKLS0tIGEvc3NsL3MzX2VuYy5jCisrKyBiL3NzbC9zM19lbmMuYwpAQCAtNjQxLDEwICs2NDEsMTggQEAKIGludCBzc2wzX2ZpbmFsX2ZpbmlzaF9tYWMoU1NMICpzLCAKIAkgICAgIGNvbnN0IGNoYXIgKnNlbmRlciwgaW50IGxlbiwgdW5zaWduZWQgY2hhciAqcCkKIAl7Ci0JaW50IHJldDsKKwlpbnQgcmV0LCBzaGExbGVuOwogCXJldD1zc2wzX2hhbmRzaGFrZV9tYWMocyxOSURfbWQ1LHNlbmRlcixsZW4scCk7CisJaWYocmV0ID09IDApCisJCXJldHVybiAwOworCiAJcCs9cmV0OwotCXJldCs9c3NsM19oYW5kc2hha2VfbWFjKHMsTklEX3NoYTEsc2VuZGVyLGxlbixwKTsKKworCXNoYTFsZW49c3NsM19oYW5kc2hha2VfbWFjKHMsTklEX3NoYTEsc2VuZGVyLGxlbixwKTsKKwlpZihzaGExbGVuID09IDApCisJCXJldHVybiAwOworCisJcmV0Kz1zaGExbGVuOwogCXJldHVybihyZXQpOwogCX0KIHN0YXRpYyBpbnQgc3NsM19oYW5kc2hha2VfbWFjKFNTTCAqcywgaW50IG1kX25pZCwKZGlmZiAtLWdpdCBhL3NzbC9zM19saWIuYyBiL3NzbC9zM19saWIuYwppbmRleCBkY2E5ODU4Li5jMzc4ZGQ2IDEwMDY0NAotLS0gYS9zc2wvczNfbGliLmMKKysrIGIvc3NsL3MzX2xpYi5jCkBAIC0zMjgsNyArMzI4LDcgQEAKIAlTU0xfU1NMVjMsCiAJU1NMX05PVF9FWFB8U1NMX0hJR0h8U1NMX0ZJUFMsCiAJU1NMX0hBTkRTSEFLRV9NQUNfREVGQVVMVHxUTFMxX1BSRiwKLQkxNjgsCisJMTEyLAogCTE2OCwKIAl9LAogCkBAIC0zNzcsNyArMzc3LDcgQEAKIAlTU0xfU1NMVjMsCiAJU1NMX05PVF9FWFB8U1NMX0hJR0h8U1NMX0ZJUFMsCiAJU1NMX0hBTkRTSEFLRV9NQUNfREVGQVVMVHxUTFMxX1BSRiwKLQkxNjgsCisJMTEyLAogCTE2OCwKIAl9LAogCkBAIC00MjUsNyArNDI1LDcgQEAKIAlTU0xfU1NMVjMsCiAJU1NMX05PVF9FWFB8U1NMX0hJR0h8U1NMX0ZJUFMsCiAJU1NMX0hBTkRTSEFLRV9NQUNfREVGQVVMVHxUTFMxX1BSRiwKLQkxNjgsCisJMTEyLAogCTE2OCwKIAl9LAogCkBAIC00NzQsNyArNDc0LDcgQEAKIAlTU0xfU1NMVjMsCiAJU1NMX05PVF9FWFB8U1NMX0hJR0h8U1NMX0ZJUFMsCiAJU1NMX0hBTkRTSEFLRV9NQUNfREVGQVVMVHxUTFMxX1BSRiwKLQkxNjgsCisJMTEyLAogCTE2OCwKIAl9LAogCkBAIC01MjIsNyArNTIyLDcgQEAKIAlTU0xfU1NMVjMsCiAJU1NMX05PVF9FWFB8U1NMX0hJR0h8U1NMX0ZJUFMsCiAJU1NMX0hBTkRTSEFLRV9NQUNfREVGQVVMVHxUTFMxX1BSRiwKLQkxNjgsCisJMTEyLAogCTE2OCwKIAl9LAogCkBAIC02MDIsNyArNjAyLDcgQEAKIAlTU0xfU1NMVjMsCiAJU1NMX05PVF9FWFB8U1NMX0hJR0h8U1NMX0ZJUFMsCiAJU1NMX0hBTkRTSEFLRV9NQUNfREVGQVVMVHxUTFMxX1BSRiwKLQkxNjgsCisJMTEyLAogCTE2OCwKIAl9LAogCkBAIC02ODcsNyArNjg3LDcgQEAKIAlTU0xfU1NMVjMsCiAJU1NMX05PVF9FWFB8U1NMX0hJR0h8U1NMX0ZJUFMsCiAJU1NMX0hBTkRTSEFLRV9NQUNfREVGQVVMVHxUTFMxX1BSRiwKLQkxNjgsCisJMTEyLAogCTE2OCwKIAl9LAogCkBAIC03NTEsNyArNzUxLDcgQEAKIAlTU0xfU1NMVjMsCiAJU1NMX05PVF9FWFB8U1NMX0hJR0gsCiAJU1NMX0hBTkRTSEFLRV9NQUNfREVGQVVMVHxUTFMxX1BSRiwKLQkxNjgsCisJMTEyLAogCTE2OCwKIAl9LAogCkBAIC0xNjg1LDcgKzE2ODUsNyBAQAogCVNTTF9UTFNWMSwKIAlTU0xfTk9UX0VYUHxTU0xfSElHSHxTU0xfRklQUywKIAlTU0xfSEFORFNIQUtFX01BQ19ERUZBVUxUfFRMUzFfUFJGLAotCTE2OCwKKwkxMTIsCiAJMTY4LAogCX0sCiAKQEAgLTIwNjIsNyArMjA2Miw3IEBACiAJU1NMX1RMU1YxLAogCVNTTF9OT1RfRVhQfFNTTF9ISUdIfFNTTF9GSVBTLAogCVNTTF9IQU5EU0hBS0VfTUFDX0RFRkFVTFR8VExTMV9QUkYsCi0JMTY4LAorCTExMiwKIAkxNjgsCiAJfSwKIApAQCAtMjE0Miw3ICsyMTQyLDcgQEAKIAlTU0xfVExTVjEsCiAJU1NMX05PVF9FWFB8U1NMX0hJR0h8U1NMX0ZJUFMsCiAJU1NMX0hBTkRTSEFLRV9NQUNfREVGQVVMVHxUTFMxX1BSRiwKLQkxNjgsCisJMTEyLAogCTE2OCwKIAl9LAogCkBAIC0yMjIyLDcgKzIyMjIsNyBAQAogCVNTTF9UTFNWMSwKIAlTU0xfTk9UX0VYUHxTU0xfSElHSHxTU0xfRklQUywKIAlTU0xfSEFORFNIQUtFX01BQ19ERUZBVUxUfFRMUzFfUFJGLAotCTE2OCwKKwkxMTIsCiAJMTY4LAogCX0sCiAKQEAgLTIzMDIsNyArMjMwMiw3IEBACiAJU1NMX1RMU1YxLAogCVNTTF9OT1RfRVhQfFNTTF9ISUdIfFNTTF9GSVBTLAogCVNTTF9IQU5EU0hBS0VfTUFDX0RFRkFVTFR8VExTMV9QUkYsCi0JMTY4LAorCTExMiwKIAkxNjgsCiAJfSwKIApAQCAtMjM4Miw3ICsyMzgyLDcgQEAKIAlTU0xfVExTVjEsCiAJU1NMX05PVF9FWFB8U1NMX0hJR0h8U1NMX0ZJUFMsCiAJU1NMX0hBTkRTSEFLRV9NQUNfREVGQVVMVHxUTFMxX1BSRiwKLQkxNjgsCisJMTEyLAogCTE2OCwKIAl9LAogCkBAIC0yNDI2LDEzICsyNDI2LDEzIEBACiAJVExTMV9UWFRfU1JQX1NIQV9XSVRIXzNERVNfRURFX0NCQ19TSEEsCiAJVExTMV9DS19TUlBfU0hBX1dJVEhfM0RFU19FREVfQ0JDX1NIQSwKIAlTU0xfa1NSUCwKLQlTU0xfYU5VTEwsCisJU1NMX2FTUlAsCiAJU1NMXzNERVMsCiAJU1NMX1NIQTEsCiAJU1NMX1RMU1YxLAogCVNTTF9OT1RfRVhQfFNTTF9ISUdILAogCVNTTF9IQU5EU0hBS0VfTUFDX0RFRkFVTFR8VExTMV9QUkYsCi0JMTY4LAorCTExMiwKIAkxNjgsCiAJfSwKIApAQCAtMjQ0OCw3ICsyNDQ4LDcgQEAKIAlTU0xfVExTVjEsCiAJU1NMX05PVF9FWFB8U1NMX0hJR0gsCiAJU1NMX0hBTkRTSEFLRV9NQUNfREVGQVVMVHxUTFMxX1BSRiwKLQkxNjgsCisJMTEyLAogCTE2OCwKIAl9LAogCkBAIC0yNDY0LDcgKzI0NjQsNyBAQAogCVNTTF9UTFNWMSwKIAlTU0xfTk9UX0VYUHxTU0xfSElHSCwKIAlTU0xfSEFORFNIQUtFX01BQ19ERUZBVUxUfFRMUzFfUFJGLAotCTE2OCwKKwkxMTIsCiAJMTY4LAogCX0sCiAKQEAgLTI0NzQsNyArMjQ3NCw3IEBACiAJVExTMV9UWFRfU1JQX1NIQV9XSVRIX0FFU18xMjhfQ0JDX1NIQSwKIAlUTFMxX0NLX1NSUF9TSEFfV0lUSF9BRVNfMTI4X0NCQ19TSEEsCiAJU1NMX2tTUlAsCi0JU1NMX2FOVUxMLAorCVNTTF9hU1JQLAogCVNTTF9BRVMxMjgsCiAJU1NMX1NIQTEsCiAJU1NMX1RMU1YxLApAQCAtMjUyMiw3ICsyNTIyLDcgQEAKIAlUTFMxX1RYVF9TUlBfU0hBX1dJVEhfQUVTXzI1Nl9DQkNfU0hBLAogCVRMUzFfQ0tfU1JQX1NIQV9XSVRIX0FFU18yNTZfQ0JDX1NIQSwKIAlTU0xfa1NSUCwKLQlTU0xfYU5VTEwsCisJU1NMX2FTUlAsCiAJU1NMX0FFUzI1NiwKIAlTU0xfU0hBMSwKIAlTU0xfVExTVjEsCkBAIC0zOTUyLDEwICszOTUyLDE1IEBACiAJCWVtYXNrX2sgPSBjZXJ0LT5leHBvcnRfbWFza19rOwogCQllbWFza19hID0gY2VydC0+ZXhwb3J0X21hc2tfYTsKICNpZm5kZWYgT1BFTlNTTF9OT19TUlAKLQkJbWFza19rPWNlcnQtPm1hc2tfayB8IHMtPnNycF9jdHguc3JwX01hc2s7Ci0JCWVtYXNrX2s9Y2VydC0+ZXhwb3J0X21hc2tfayB8IHMtPnNycF9jdHguc3JwX01hc2s7CisJCWlmIChzLT5zcnBfY3R4LnNycF9NYXNrICYgU1NMX2tTUlApCisJCQl7CisJCQltYXNrX2sgfD0gU1NMX2tTUlA7CisJCQllbWFza19rIHw9IFNTTF9rU1JQOworCQkJbWFza19hIHw9IFNTTF9hU1JQOworCQkJZW1hc2tfYSB8PSBTU0xfYVNSUDsKKwkJCX0KICNlbmRpZgotCQkJCisKICNpZmRlZiBLU1NMX0RFQlVHCiAvKgkJcHJpbnRmKCJzc2wzX2Nob29zZV9jaXBoZXIgJWQgYWxnPSAlbHhcbiIsIGksYy0+YWxnb3JpdGhtcyk7Ki8KICNlbmRpZiAgICAvKiBLU1NMX0RFQlVHICovCmRpZmYgLS1naXQgYS9zc2wvczNfcGt0LmMgYi9zc2wvczNfcGt0LmMKaW5kZXggZGY0MzZjZi4uNGEyZjVkNiAxMDA2NDQKLS0tIGEvc3NsL3MzX3BrdC5jCisrKyBiL3NzbC9zM19wa3QuYwpAQCAtMjczLDYgKzI3MywxMiBAQAogCXJldHVybihuKTsKIAl9CiAKKy8qIE1BWF9FTVBUWV9SRUNPUkRTIGRlZmluZXMgdGhlIG51bWJlciBvZiBjb25zZWN1dGl2ZSwgZW1wdHkgcmVjb3JkcyB0aGF0IHdpbGwKKyAqIGJlIHByb2Nlc3NlZCBwZXIgY2FsbCB0byBzc2wzX2dldF9yZWNvcmQuIFdpdGhvdXQgdGhpcyBsaW1pdCBhbiBhdHRhY2tlcgorICogY291bGQgc2VuZCBlbXB0eSByZWNvcmRzIGF0IGEgZmFzdGVyIHJhdGUgdGhhbiB3ZSBjYW4gcHJvY2VzcyBhbmQgY2F1c2UKKyAqIHNzbDNfZ2V0X3JlY29yZCB0byBsb29wIGZvcmV2ZXIuICovCisjZGVmaW5lIE1BWF9FTVBUWV9SRUNPUkRTIDMyCisKIC8qIENhbGwgdGhpcyB0byBnZXQgYSBuZXcgaW5wdXQgcmVjb3JkLgogICogSXQgd2lsbCByZXR1cm4gPD0gMCBpZiBtb3JlIGRhdGEgaXMgbmVlZGVkLCBub3JtYWxseSBkdWUgdG8gYW4gZXJyb3IKICAqIG9yIG5vbi1ibG9ja2luZyBJTy4KQEAgLTI5Myw2ICsyOTksNyBAQAogCXNob3J0IHZlcnNpb247CiAJdW5zaWduZWQgbWFjX3NpemUsIG9yaWdfbGVuOwogCXNpemVfdCBleHRyYTsKKwl1bnNpZ25lZCBlbXB0eV9yZWNvcmRfY291bnQgPSAwOwogCiAJcnI9ICYocy0+czMtPnJyZWMpOwogCXNlc3M9cy0+c2Vzc2lvbjsKQEAgLTUyMyw3ICs1MzAsMTcgQEAKIAlzLT5wYWNrZXRfbGVuZ3RoPTA7CiAKIAkvKiBqdXN0IHJlYWQgYSAwIGxlbmd0aCBwYWNrZXQgKi8KLQlpZiAocnItPmxlbmd0aCA9PSAwKSBnb3RvIGFnYWluOworCWlmIChyci0+bGVuZ3RoID09IDApCisJCXsKKwkJZW1wdHlfcmVjb3JkX2NvdW50Kys7CisJCWlmIChlbXB0eV9yZWNvcmRfY291bnQgPiBNQVhfRU1QVFlfUkVDT1JEUykKKwkJCXsKKwkJCWFsPVNTTF9BRF9VTkVYUEVDVEVEX01FU1NBR0U7CisJCQlTU0xlcnIoU1NMX0ZfU1NMM19HRVRfUkVDT1JELFNTTF9SX1JFQ09SRF9UT09fU01BTEwpOworCQkJZ290byBmX2VycjsKKwkJCX0KKwkJZ290byBhZ2FpbjsKKwkJfQogCiAjaWYgMAogZnByaW50ZihzdGRlcnIsICJVbHRpbWF0ZSBSZWNvcmQgdHlwZT0lZCwgTGVuZ3RoPSVkXG4iLCByci0+dHlwZSwgcnItPmxlbmd0aCk7CkBAIC05NzksNyArOTk2LDcgQEAKIAkJaWYgKCFzc2wzX3NldHVwX3JlYWRfYnVmZmVyKHMpKQogCQkJcmV0dXJuKC0xKTsKIAotCWlmICgodHlwZSAmJiAodHlwZSAhPSBTU0wzX1JUX0FQUExJQ0FUSU9OX0RBVEEpICYmICh0eXBlICE9IFNTTDNfUlRfSEFORFNIQUtFKSAmJiB0eXBlKSB8fAorCWlmICgodHlwZSAmJiAodHlwZSAhPSBTU0wzX1JUX0FQUExJQ0FUSU9OX0RBVEEpICYmICh0eXBlICE9IFNTTDNfUlRfSEFORFNIQUtFKSkgfHwKIAkgICAgKHBlZWsgJiYgKHR5cGUgIT0gU1NMM19SVF9BUFBMSUNBVElPTl9EQVRBKSkpCiAJCXsKIAkJU1NMZXJyKFNTTF9GX1NTTDNfUkVBRF9CWVRFUywgRVJSX1JfSU5URVJOQUxfRVJST1IpOwpkaWZmIC0tZ2l0IGEvc3NsL3MzX3NydnIuYyBiL3NzbC9zM19zcnZyLmMKaW5kZXggYTM4ZTAwZS4uYTQyZmM5ZSAxMDA2NDQKLS0tIGEvc3NsL3MzX3NydnIuYworKysgYi9zc2wvczNfc3J2ci5jCkBAIC0xNTQsNiArMTU0LDcgQEAKICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgInNzbF9sb2NsLmgiCiAjaW5jbHVkZSAia3NzbF9sY2wuaCIKKyNpbmNsdWRlICIuLi9jcnlwdG8vY29uc3RhbnRfdGltZV9sb2NsLmgiCiAjaW5jbHVkZSA8b3BlbnNzbC9idWZmZXIuaD4KICNpbmNsdWRlIDxvcGVuc3NsL3JhbmQuaD4KICNpbmNsdWRlIDxvcGVuc3NsL29iamVjdHMuaD4KQEAgLTQxNCwxMSArNDE1LDEwIEBACiAJCWNhc2UgU1NMM19TVF9TV19DRVJUX0I6CiAJCQkvKiBDaGVjayBpZiBpdCBpcyBhbm9uIERIIG9yIGFub24gRUNESCwgKi8KIAkJCS8qIG5vbi1SU0EgUFNLIG9yIEtSQjUgb3IgU1JQICovCi0JCQlpZiAoIShzLT5zMy0+dG1wLm5ld19jaXBoZXItPmFsZ29yaXRobV9hdXRoICYgU1NMX2FOVUxMKQorCQkJaWYgKCEocy0+czMtPnRtcC5uZXdfY2lwaGVyLT5hbGdvcml0aG1fYXV0aCAmIChTU0xfYU5VTEx8U1NMX2FLUkI1fFNTTF9hU1JQKSkKIAkJCQkvKiBBbW9uZyBQU0sgY2lwaGVyc3VpdGVzIG9ubHkgUlNBX1BTSyB1c2VzIHNlcnZlciBjZXJ0aWZpY2F0ZSAqLwogCQkJCSYmICEocy0+czMtPnRtcC5uZXdfY2lwaGVyLT5hbGdvcml0aG1fYXV0aCAmIFNTTF9hUFNLICYmCi0JCQkJCSAhKHMtPnMzLT50bXAubmV3X2NpcGhlci0+YWxnb3JpdGhtX21rZXkgJiBTU0xfa1JTQSkpCi0JCQkJJiYgIShzLT5zMy0+dG1wLm5ld19jaXBoZXItPmFsZ29yaXRobV9hdXRoICYgU1NMX2FLUkI1KSkKKwkJCQkJICEocy0+czMtPnRtcC5uZXdfY2lwaGVyLT5hbGdvcml0aG1fbWtleSAmIFNTTF9rUlNBKSkpCiAJCQkJewogCQkJCXJldD1zc2wzX3NlbmRfc2VydmVyX2NlcnRpZmljYXRlKHMpOwogCQkJCWlmIChyZXQgPD0gMCkgZ290byBlbmQ7CkBAIC01MjQsNyArNTI0LDkgQEAKIAkJCQkgICogKGFnYWluc3QgdGhlIHNwZWNzLCBidXQgczNfY2xudC5jIGFjY2VwdHMgdGhpcyBmb3IgU1NMIDMpICovCiAJCQkJICEocy0+dmVyaWZ5X21vZGUgJiBTU0xfVkVSSUZZX0ZBSUxfSUZfTk9fUEVFUl9DRVJUKSkgfHwKIAkJCQkgLyogbmV2ZXIgcmVxdWVzdCBjZXJ0IGluIEtlcmJlcm9zIGNpcGhlcnN1aXRlcyAqLwotCQkJCShzLT5zMy0+dG1wLm5ld19jaXBoZXItPmFsZ29yaXRobV9hdXRoICYgU1NMX2FLUkI1KQorCQkJCShzLT5zMy0+dG1wLm5ld19jaXBoZXItPmFsZ29yaXRobV9hdXRoICYgU1NMX2FLUkI1KSB8fAorCQkJCS8qIGRvbid0IHJlcXVlc3QgY2VydGlmaWNhdGUgZm9yIFNSUCBhdXRoICovCisJCQkJKHMtPnMzLT50bXAubmV3X2NpcGhlci0+YWxnb3JpdGhtX2F1dGggJiBTU0xfYVNSUCkKIAkJCQkvKiBXaXRoIG5vcm1hbCBQU0sgQ2VydGlmaWNhdGVzIGFuZAogCQkJCSAqIENlcnRpZmljYXRlIFJlcXVlc3RzIGFyZSBvbWl0dGVkICovCiAJCQkJfHwgKHMtPnMzLT50bXAubmV3X2NpcGhlci0+YWxnb3JpdGhtX21rZXkgJiBTU0xfa1BTSykpCkBAIC0xOTA1LDcgKzE5MDcsNyBAQAogCQkJbis9MitucltpXTsKIAkJCX0KIAotCQlpZiAoIShhbGdfYSAmIFNTTF9hTlVMTCkKKwkJaWYgKCEoYWxnX2EgJiAoU1NMX2FOVUxMfFNTTF9hU1JQKSkKIAkJCS8qIEFtb25nIFBTSyBjaXBoZXJzdWl0ZXMgb25seSBSU0EgdXNlcyBhIGNlcnRpZmljYXRlICovCiAJCQkmJiAhKChhbGdfYSAmIFNTTF9hUFNLKSAmJiAhKGFsZ19rICYgU1NMX2tSU0EpKSkKIAkJCXsKQEAgLTIzMjUsNiArMjMyNywxMCBAQAogI2lmbmRlZiBPUEVOU1NMX05PX1JTQQogCWlmIChhbGdfayAmIFNTTF9rUlNBKQogCQl7CisJCXVuc2lnbmVkIGNoYXIgcmFuZF9wcmVtYXN0ZXJfc2VjcmV0W1NTTF9NQVhfTUFTVEVSX0tFWV9MRU5HVEhdOworCQlpbnQgZGVjcnlwdF9sZW47CisJCXVuc2lnbmVkIGNoYXIgZGVjcnlwdF9nb29kLCB2ZXJzaW9uX2dvb2Q7CisKIAkJLyogRklYIFRISVMgVVAgRUFZIEVBWSBFQVkgRUFZICovCiAJCWlmIChzLT5zMy0+dG1wLnVzZV9yc2FfdG1wKQogCQkJewpAQCAtMjM3Miw1NCArMjM3OCw2MSBAQAogCQkJCW49aTsKIAkJCX0KIAotCQlpPVJTQV9wcml2YXRlX2RlY3J5cHQoKGludCluLHAscCxyc2EsUlNBX1BLQ1MxX1BBRERJTkcpOworCQkvKiBXZSBtdXN0IG5vdCBsZWFrIHdoZXRoZXIgYSBkZWNyeXB0aW9uIGZhaWx1cmUgb2NjdXJzIGJlY2F1c2UKKwkJICogb2YgQmxlaWNoZW5iYWNoZXIncyBhdHRhY2sgb24gUEtDUyAjMSB2MS41IFJTQSBwYWRkaW5nIChzZWUKKwkJICogUkZDIDIyNDYsIHNlY3Rpb24gNy40LjcuMSkuIFRoZSBjb2RlIGZvbGxvd3MgdGhhdCBhZHZpY2Ugb2YKKwkJICogdGhlIFRMUyBSRkMgYW5kIGdlbmVyYXRlcyBhIHJhbmRvbSBwcmVtYXN0ZXIgc2VjcmV0IGZvciB0aGUKKwkJICogY2FzZSB0aGF0IHRoZSBkZWNyeXB0IGZhaWxzLiBTZWUKKwkJICogaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzUyNDYjc2VjdGlvbi03LjQuNy4xICovCiAKLQkJYWwgPSAtMTsKLQkJCi0JCWlmIChpICE9IFNTTF9NQVhfTUFTVEVSX0tFWV9MRU5HVEgpCisJCS8qIHNob3VsZCBiZSBSQU5EX2J5dGVzLCBidXQgd2UgY2Fubm90IHdvcmsgYXJvdW5kIGEgZmFpbHVyZS4gKi8KKwkJaWYgKFJBTkRfcHNldWRvX2J5dGVzKHJhbmRfcHJlbWFzdGVyX3NlY3JldCwKKwkJCQkgICAgICBzaXplb2YocmFuZF9wcmVtYXN0ZXJfc2VjcmV0KSkgPD0gMCkKKwkJCWdvdG8gZXJyOworCQlkZWNyeXB0X2xlbiA9IFJTQV9wcml2YXRlX2RlY3J5cHQoKGludCluLHAscCxyc2EsUlNBX1BLQ1MxX1BBRERJTkcpOworCQlFUlJfY2xlYXJfZXJyb3IoKTsKKworCQkvKiBkZWNyeXB0X2xlbiBzaG91bGQgYmUgU1NMX01BWF9NQVNURVJfS0VZX0xFTkdUSC4KKwkJICogZGVjcnlwdF9nb29kIHdpbGwgYmUgMHhmZiBpZiBzbyBhbmQgemVybyBvdGhlcndpc2UuICovCisJCWRlY3J5cHRfZ29vZCA9IGNvbnN0YW50X3RpbWVfZXFfaW50XzgoZGVjcnlwdF9sZW4sIFNTTF9NQVhfTUFTVEVSX0tFWV9MRU5HVEgpOworCisJCS8qIElmIHRoZSB2ZXJzaW9uIGluIHRoZSBkZWNyeXB0ZWQgcHJlLW1hc3RlciBzZWNyZXQgaXMgY29ycmVjdAorCQkgKiB0aGVuIHZlcnNpb25fZ29vZCB3aWxsIGJlIDB4ZmYsIG90aGVyd2lzZSBpdCdsbCBiZSB6ZXJvLgorCQkgKiBUaGUgS2xpbWEtUG9rb3JueS1Sb3NhIGV4dGVuc2lvbiBvZiBCbGVpY2hlbmJhY2hlcidzIGF0dGFjaworCQkgKiAoaHR0cDovL2VwcmludC5pYWNyLm9yZy8yMDAzLzA1Mi8pIGV4cGxvaXRzIHRoZSB2ZXJzaW9uCisJCSAqIG51bWJlciBjaGVjayBhcyBhICJiYWQgdmVyc2lvbiBvcmFjbGUiLiBUaHVzIHZlcnNpb24gY2hlY2tzCisJCSAqIGFyZSBkb25lIGluIGNvbnN0YW50IHRpbWUgYW5kIGFyZSB0cmVhdGVkIGxpa2UgYW55IG90aGVyCisJCSAqIGRlY3J5cHRpb24gZXJyb3IuICovCisJCXZlcnNpb25fZ29vZCA9IGNvbnN0YW50X3RpbWVfZXFfOChwWzBdLCAodW5zaWduZWQpKHMtPmNsaWVudF92ZXJzaW9uPj44KSk7CisJCXZlcnNpb25fZ29vZCAmPSBjb25zdGFudF90aW1lX2VxXzgocFsxXSwgKHVuc2lnbmVkKShzLT5jbGllbnRfdmVyc2lvbiYweGZmKSk7CisKKwkJLyogVGhlIHByZW1hc3RlciBzZWNyZXQgbXVzdCBjb250YWluIHRoZSBzYW1lIHZlcnNpb24gbnVtYmVyIGFzCisJCSAqIHRoZSBDbGllbnRIZWxsbyB0byBkZXRlY3QgdmVyc2lvbiByb2xsYmFjayBhdHRhY2tzCisJCSAqIChzdHJhbmdlbHksIHRoZSBwcm90b2NvbCBkb2VzIG5vdCBvZmZlciBzdWNoIHByb3RlY3Rpb24gZm9yCisJCSAqIERIIGNpcGhlcnN1aXRlcykuIEhvd2V2ZXIsIGJ1Z2d5IGNsaWVudHMgZXhpc3QgdGhhdCBzZW5kIHRoZQorCQkgKiBuZWdvdGlhdGVkIHByb3RvY29sIHZlcnNpb24gaW5zdGVhZCBpZiB0aGUgc2VydmVyIGRvZXMgbm90CisJCSAqIHN1cHBvcnQgdGhlIHJlcXVlc3RlZCBwcm90b2NvbCB2ZXJzaW9uLiBJZgorCQkgKiBTU0xfT1BfVExTX1JPTExCQUNLX0JVRyBpcyBzZXQsIHRvbGVyYXRlIHN1Y2ggY2xpZW50cy4gKi8KKwkJaWYgKHMtPm9wdGlvbnMgJiBTU0xfT1BfVExTX1JPTExCQUNLX0JVRykKIAkJCXsKLQkJCWFsPVNTTF9BRF9ERUNPREVfRVJST1I7Ci0JCQkvKiBTU0xlcnIoU1NMX0ZfU1NMM19HRVRfQ0xJRU5UX0tFWV9FWENIQU5HRSxTU0xfUl9CQURfUlNBX0RFQ1JZUFQpOyAqLworCQkJdW5zaWduZWQgY2hhciB3b3JrYXJvdW5kX2dvb2Q7CisJCQl3b3JrYXJvdW5kX2dvb2QgPSBjb25zdGFudF90aW1lX2VxXzgocFswXSwgKHVuc2lnbmVkKShzLT52ZXJzaW9uPj44KSk7CisJCQl3b3JrYXJvdW5kX2dvb2QgJj0gY29uc3RhbnRfdGltZV9lcV84KHBbMV0sICh1bnNpZ25lZCkocy0+dmVyc2lvbiYweGZmKSk7CisJCQl2ZXJzaW9uX2dvb2QgfD0gd29ya2Fyb3VuZF9nb29kOwogCQkJfQogCi0JCWlmICgoYWwgPT0gLTEpICYmICEoKHBbMF0gPT0gKHMtPmNsaWVudF92ZXJzaW9uPj44KSkgJiYgKHBbMV0gPT0gKHMtPmNsaWVudF92ZXJzaW9uICYgMHhmZikpKSkKLQkJCXsKLQkJCS8qIFRoZSBwcmVtYXN0ZXIgc2VjcmV0IG11c3QgY29udGFpbiB0aGUgc2FtZSB2ZXJzaW9uIG51bWJlciBhcyB0aGUKLQkJCSAqIENsaWVudEhlbGxvIHRvIGRldGVjdCB2ZXJzaW9uIHJvbGxiYWNrIGF0dGFja3MgKHN0cmFuZ2VseSwgdGhlCi0JCQkgKiBwcm90b2NvbCBkb2VzIG5vdCBvZmZlciBzdWNoIHByb3RlY3Rpb24gZm9yIERIIGNpcGhlcnN1aXRlcykuCi0JCQkgKiBIb3dldmVyLCBidWdneSBjbGllbnRzIGV4aXN0IHRoYXQgc2VuZCB0aGUgbmVnb3RpYXRlZCBwcm90b2NvbAotCQkJICogdmVyc2lvbiBpbnN0ZWFkIGlmIHRoZSBzZXJ2ZXIgZG9lcyBub3Qgc3VwcG9ydCB0aGUgcmVxdWVzdGVkCi0JCQkgKiBwcm90b2NvbCB2ZXJzaW9uLgotCQkJICogSWYgU1NMX09QX1RMU19ST0xMQkFDS19CVUcgaXMgc2V0LCB0b2xlcmF0ZSBzdWNoIGNsaWVudHMuICovCi0JCQlpZiAoISgocy0+b3B0aW9ucyAmIFNTTF9PUF9UTFNfUk9MTEJBQ0tfQlVHKSAmJgotCQkJCShwWzBdID09IChzLT52ZXJzaW9uPj44KSkgJiYgKHBbMV0gPT0gKHMtPnZlcnNpb24gJiAweGZmKSkpKQotCQkJCXsKLQkJCQlhbD1TU0xfQURfREVDT0RFX0VSUk9SOwotCQkJCS8qIFNTTGVycihTU0xfRl9TU0wzX0dFVF9DTElFTlRfS0VZX0VYQ0hBTkdFLFNTTF9SX0JBRF9QUk9UT0NPTF9WRVJTSU9OX05VTUJFUik7ICovCisJCS8qIEJvdGggZGVjcnlwdGlvbiBhbmQgdmVyc2lvbiBtdXN0IGJlIGdvb2QgZm9yIGRlY3J5cHRfZ29vZAorCQkgKiB0byByZW1haW4gbm9uLXplcm8gKDB4ZmYpLiAqLworCQlkZWNyeXB0X2dvb2QgJj0gdmVyc2lvbl9nb29kOwogCi0JCQkJLyogVGhlIEtsaW1hLVBva29ybnktUm9zYSBleHRlbnNpb24gb2YgQmxlaWNoZW5iYWNoZXIncyBhdHRhY2sKLQkJCQkgKiAoaHR0cDovL2VwcmludC5pYWNyLm9yZy8yMDAzLzA1Mi8pIGV4cGxvaXRzIHRoZSB2ZXJzaW9uCi0JCQkJICogbnVtYmVyIGNoZWNrIGFzIGEgImJhZCB2ZXJzaW9uIG9yYWNsZSIgLS0gYW4gYWxlcnQgd291bGQKLQkJCQkgKiByZXZlYWwgdGhhdCB0aGUgcGxhaW50ZXh0IGNvcnJlc3BvbmRpbmcgdG8gc29tZSBjaXBoZXJ0ZXh0Ci0JCQkJICogbWFkZSB1cCBieSB0aGUgYWR2ZXJzYXJ5IGlzIHByb3Blcmx5IGZvcm1hdHRlZCBleGNlcHQKLQkJCQkgKiB0aGF0IHRoZSB2ZXJzaW9uIG51bWJlciBpcyB3cm9uZy4gIFRvIGF2b2lkIHN1Y2ggYXR0YWNrcywKLQkJCQkgKiB3ZSBzaG91bGQgdHJlYXQgdGhpcyBqdXN0IGxpa2UgYW55IG90aGVyIGRlY3J5cHRpb24gZXJyb3IuICovCi0JCQkJfQorCQkvKiBOb3cgY29weSByYW5kX3ByZW1hc3Rlcl9zZWNyZXQgb3ZlciBwIHVzaW5nCisJCSAqIGRlY3J5cHRfZ29vZF9tYXNrLiAqLworCQlmb3IgKGkgPSAwOyBpIDwgKGludCkgc2l6ZW9mKHJhbmRfcHJlbWFzdGVyX3NlY3JldCk7IGkrKykKKwkJCXsKKwkJCXBbaV0gPSBjb25zdGFudF90aW1lX3NlbGVjdF84KGRlY3J5cHRfZ29vZCwgcFtpXSwKKwkJCQkJCSAgICAgIHJhbmRfcHJlbWFzdGVyX3NlY3JldFtpXSk7CiAJCQl9CiAKLQkJaWYgKGFsICE9IC0xKQotCQkJewotCQkJLyogU29tZSBkZWNyeXB0aW9uIGZhaWx1cmUgLS0gdXNlIHJhbmRvbSB2YWx1ZSBpbnN0ZWFkIGFzIGNvdW50ZXJtZWFzdXJlCi0JCQkgKiBhZ2FpbnN0IEJsZWljaGVuYmFjaGVyJ3MgYXR0YWNrIG9uIFBLQ1MgIzEgdjEuNSBSU0EgcGFkZGluZwotCQkJICogKHNlZSBSRkMgMjI0Niwgc2VjdGlvbiA3LjQuNy4xKS4gKi8KLQkJCUVSUl9jbGVhcl9lcnJvcigpOwotCQkJaSA9IFNTTF9NQVhfTUFTVEVSX0tFWV9MRU5HVEg7Ci0JCQlwWzBdID0gcy0+Y2xpZW50X3ZlcnNpb24gPj4gODsKLQkJCXBbMV0gPSBzLT5jbGllbnRfdmVyc2lvbiAmIDB4ZmY7Ci0JCQlpZiAoUkFORF9wc2V1ZG9fYnl0ZXMocCsyLCBpLTIpIDw9IDApIC8qIHNob3VsZCBiZSBSQU5EX2J5dGVzLCBidXQgd2UgY2Fubm90IHdvcmsgYXJvdW5kIGEgZmFpbHVyZSAqLwotCQkJCWdvdG8gZXJyOwotCQkJfQotCQogCQlzLT5zZXNzaW9uLT5tYXN0ZXJfa2V5X2xlbmd0aD0KIAkJCXMtPm1ldGhvZC0+c3NsM19lbmMtPmdlbmVyYXRlX21hc3Rlcl9zZWNyZXQocywKIAkJCQlzLT5zZXNzaW9uLT5tYXN0ZXJfa2V5LApAQCAtMzAwOSw3ICszMDIyLDcgQEAKIAkJU1NMM19TVF9TUl9DRVJUX1ZSRllfQSwKIAkJU1NMM19TVF9TUl9DRVJUX1ZSRllfQiwKIAkJLTEsCi0JCTUxNiwgLyogRW5vdWdoIGZvciA0MDk2IGJpdCBSU0Ega2V5IHdpdGggVExTIHYxLjIgKi8KKwkJU1NMM19SVF9NQVhfUExBSU5fTEVOR1RILAogCQkmb2spOwogCiAJaWYgKCFvaykgcmV0dXJuKChpbnQpbik7CmRpZmYgLS1naXQgYS9zc2wvc3J0cC5oIGIvc3NsL3NydHAuaAppbmRleCBjMGNmMzNlLi4yNGYyMzMwIDEwMDY0NAotLS0gYS9zc2wvc3J0cC5oCisrKyBiL3NzbC9zcnRwLmgKQEAgLTEzMCw2ICsxMzAsOCBAQAogI2RlZmluZSBTUlRQX05VTExfU0hBMV84MCAgICAgIDB4MDAwNQogI2RlZmluZSBTUlRQX05VTExfU0hBMV8zMiAgICAgIDB4MDAwNgogCisjaWZuZGVmIE9QRU5TU0xfTk9fU1JUUAorCiBpbnQgU1NMX0NUWF9zZXRfdGxzZXh0X3VzZV9zcnRwKFNTTF9DVFggKmN0eCwgY29uc3QgY2hhciAqcHJvZmlsZXMpOwogaW50IFNTTF9zZXRfdGxzZXh0X3VzZV9zcnRwKFNTTCAqY3R4LCBjb25zdCBjaGFyICpwcm9maWxlcyk7CiBTUlRQX1BST1RFQ1RJT05fUFJPRklMRSAqU1NMX2dldF9zZWxlY3RlZF9zcnRwX3Byb2ZpbGUoU1NMICpzKTsKQEAgLTEzNyw2ICsxMzksOCBAQAogU1RBQ0tfT0YoU1JUUF9QUk9URUNUSU9OX1BST0ZJTEUpICpTU0xfZ2V0X3NydHBfcHJvZmlsZXMoU1NMICpzc2wpOwogU1JUUF9QUk9URUNUSU9OX1BST0ZJTEUgKlNTTF9nZXRfc2VsZWN0ZWRfc3J0cF9wcm9maWxlKFNTTCAqcyk7CiAKKyNlbmRpZgorCiAjaWZkZWYgIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL3NzbC9zc2wuaCBiL3NzbC9zc2wuaAppbmRleCBhODlhYjIzLi43YTFmY2U4IDEwMDY0NAotLS0gYS9zc2wvc3NsLmgKKysrIGIvc3NsL3NzbC5oCkBAIC0yNjQsNiArMjY0LDcgQEAKICNkZWZpbmUgU1NMX1RYVF9hR09TVDk0CSJhR09TVDk0IgogI2RlZmluZSBTU0xfVFhUX2FHT1NUMDEgImFHT1NUMDEiCiAjZGVmaW5lIFNTTF9UWFRfYUdPU1QgICJhR09TVCIKKyNkZWZpbmUgU1NMX1RYVF9hU1JQICAgICAgICAgICAgImFTUlAiCiAKICNkZWZpbmUJU1NMX1RYVF9EU1MJCSJEU1MiCiAjZGVmaW5lIFNTTF9UWFRfREgJCSJESCIKQEAgLTY2NCwxMSArNjY1LDE1IEBACiAgKi8KICNkZWZpbmUgU1NMX01PREVfU0VORF9DTElFTlRIRUxMT19USU1FIDB4MDAwMDAwMjBMCiAjZGVmaW5lIFNTTF9NT0RFX1NFTkRfU0VSVkVSSEVMTE9fVElNRSAweDAwMDAwMDQwTAorLyogU2VuZCBUTFNfRkFMTEJBQ0tfU0NTViBpbiB0aGUgQ2xpZW50SGVsbG8uCisgKiBUbyBiZSBzZXQgYnkgYXBwbGljYXRpb25zIHRoYXQgcmVjb25uZWN0IHdpdGggYSBkb3duZ3JhZGVkIHByb3RvY29sCisgKiB2ZXJzaW9uOyBzZWUgZHJhZnQtaWV0Zi10bHMtZG93bmdyYWRlLXNjc3YtMDAgZm9yIGRldGFpbHMuICovCisjZGVmaW5lIFNTTF9NT0RFX1NFTkRfRkFMTEJBQ0tfU0NTViAweDAwMDAwMDgwTAogCiAvKiBXaGVuIHNldCwgY2xpZW50cyBtYXkgc2VuZCBhcHBsaWNhdGlvbiBkYXRhIGJlZm9yZSByZWNlaXB0IG9mIENDUwogICogYW5kIEZpbmlzaGVkLiAgVGhpcyBtb2RlIGVuYWJsZXMgZnVsbC1oYW5kc2hha2VzIHRvICdjb21wbGV0ZScgaW4KICAqIG9uZSBSVFQuICovCi0jZGVmaW5lIFNTTF9NT0RFX0hBTkRTSEFLRV9DVVRUSFJPVUdIIDB4MDAwMDAwODBMCisjZGVmaW5lIFNTTF9NT0RFX0hBTkRTSEFLRV9DVVRUSFJPVUdIIDB4MDAwMDAyMDBMCiAKIC8qIFdoZW4gc2V0LCBUTFMgMS4wIGFuZCBTU0x2MywgbXVsdGktYnl0ZSwgQ0JDIHJlY29yZHMgd2lsbCBiZSBzcGxpdCBpbiB0d286CiAgKiB0aGUgZmlyc3QgcmVjb3JkIHdpbGwgY29udGFpbiBhIHNpbmdsZSBieXRlIGFuZCB0aGUgc2Vjb25kIHdpbGwgY29udGFpbiB0aGUKQEAgLTY3NiwxMSArNjgxLDYgQEAKICAqIGF0dGFja3MuICovCiAjZGVmaW5lIFNTTF9NT0RFX0NCQ19SRUNPUkRfU1BMSVRUSU5HIDB4MDAwMDAxMDBMCiAKLS8qIFNlbmQgVExTX0ZBTExCQUNLX1NDU1YgaW4gdGhlIENsaWVudEhlbGxvLgotICogVG8gYmUgc2V0IGJ5IGFwcGxpY2F0aW9ucyB0aGF0IHJlY29ubmVjdCB3aXRoIGEgZG93bmdyYWRlZCBwcm90b2NvbAotICogdmVyc2lvbjsgc2VlIGRyYWZ0LWlldGYtdGxzLWRvd25ncmFkZS1zY3N2LTAwIGZvciBkZXRhaWxzLiAqLwotI2RlZmluZSBTU0xfTU9ERV9TRU5EX0ZBTExCQUNLX1NDU1YgMHgwMDAwMDIwMEwKLQogLyogTm90ZTogU1NMW19DVFhdX3NldF97b3B0aW9ucyxtb2RlfSB1c2UgfD0gb3Agb24gdGhlIHByZXZpb3VzIHZhbHVlLAogICogdGhleSBjYW5ub3QgYmUgdXNlZCB0byBjbGVhciBiaXRzLiAqLwogCkBAIC0yMTk5LDYgKzIxOTksMTAgQEAKIHZvaWQgU1NMX3NldF9kZWJ1ZyhTU0wgKnMsIGludCBkZWJ1Zyk7CiBpbnQgU1NMX2NhY2hlX2hpdChTU0wgKnMpOwogCisjaWZuZGVmIE9QRU5TU0xfTk9fVU5JVF9URVNUCitjb25zdCBzdHJ1Y3Qgb3BlbnNzbF9zc2xfdGVzdF9mdW5jdGlvbnMgKlNTTF90ZXN0X2Z1bmN0aW9ucyh2b2lkKTsKKyNlbmRpZgorCiAvKiBCRUdJTiBFUlJPUiBDT0RFUyAqLwogLyogVGhlIGZvbGxvd2luZyBsaW5lcyBhcmUgYXV0byBnZW5lcmF0ZWQgYnkgdGhlIHNjcmlwdCBta2Vyci5wbC4gQW55IGNoYW5nZXMKICAqIG1hZGUgYWZ0ZXIgdGhpcyBwb2ludCBtYXkgYmUgb3ZlcndyaXR0ZW4gd2hlbiB0aGUgc2NyaXB0IGlzIG5leHQgcnVuLgpAQCAtMjQ2Nyw2ICsyNDcxLDcgQEAKICNkZWZpbmUgU1NMX1JfQkFEX1NSUF9CX0xFTkdUSAkJCQkgMzQ4CiAjZGVmaW5lIFNTTF9SX0JBRF9TUlBfR19MRU5HVEgJCQkJIDM0OQogI2RlZmluZSBTU0xfUl9CQURfU1JQX05fTEVOR1RICQkJCSAzNTAKKyNkZWZpbmUgU1NMX1JfQkFEX1NSUF9QQVJBTUVURVJTCQkJIDM3MQogI2RlZmluZSBTU0xfUl9CQURfU1JQX1NfTEVOR1RICQkJCSAzNTEKICNkZWZpbmUgU1NMX1JfQkFEX1NSVFBfTUtJX1ZBTFVFCQkJIDM1MgogI2RlZmluZSBTU0xfUl9CQURfU1JUUF9QUk9URUNUSU9OX1BST0ZJTEVfTElTVAkJIDM1MwpAQCAtMjUyNyw3ICsyNTMyLDcgQEAKICNkZWZpbmUgU1NMX1JfSFRUUFNfUFJPWFlfUkVRVUVTVAkJCSAxNTUKICNkZWZpbmUgU1NMX1JfSFRUUF9SRVFVRVNUCQkJCSAxNTYKICNkZWZpbmUgU1NMX1JfSUxMRUdBTF9QQURESU5HCQkJCSAyODMKLSNkZWZpbmUgU1NMX1JfSU5BUFBST1BSSUFURV9GQUxMQkFDSwkJCSAzODAKKyNkZWZpbmUgU1NMX1JfSU5BUFBST1BSSUFURV9GQUxMQkFDSwkJCSAzNzMKICNkZWZpbmUgU1NMX1JfSU5DT05TSVNURU5UX0NPTVBSRVNTSU9OCQkJIDM0MAogI2RlZmluZSBTU0xfUl9JTlZBTElEX0NIQUxMRU5HRV9MRU5HVEgJCQkgMTU4CiAjZGVmaW5lIFNTTF9SX0lOVkFMSURfQ09NTUFORAkJCQkgMjgwCmRpZmYgLS1naXQgYS9zc2wvc3NsX2NpcGguYyBiL3NzbC9zc2xfY2lwaC5jCmluZGV4IGU4Nzk0ZDQuLmNkOWYxMDggMTAwNjQ0Ci0tLSBhL3NzbC9zc2xfY2lwaC5jCisrKyBiL3NzbC9zc2xfY2lwaC5jCkBAIC0yNzAsNiArMjcwLDcgQEAKIAl7MCxTU0xfVFhUX2FHT1NUOTQsMCwwLFNTTF9hR09TVDk0LDAsMCwwLDAsMCwwLDB9LAogCXswLFNTTF9UWFRfYUdPU1QwMSwwLDAsU1NMX2FHT1NUMDEsMCwwLDAsMCwwLDAsMH0sCiAJezAsU1NMX1RYVF9hR09TVCwwLDAsU1NMX2FHT1NUOTR8U1NMX2FHT1NUMDEsMCwwLDAsMCwwLDAsMH0sCisJezAsU1NMX1RYVF9hU1JQLDAsICAgIDAsU1NMX2FTUlAsICAwLDAsMCwwLDAsMCwwfSwKIAogCS8qIGFsaWFzZXMgY29tYmluaW5nIGtleSBleGNoYW5nZSBhbmQgc2VydmVyIGF1dGhlbnRpY2F0aW9uICovCiAJezAsU1NMX1RYVF9FREgsMCwgICAgIFNTTF9rRURILH5TU0xfYU5VTEwsMCwwLDAsMCwwLDAsMH0sCkBAIC01NjIsNyArNTYzLDcgQEAKIAkJYnJlYWs7CiAJCX0KIAotCWlmICgoaSA8IDApIHx8IChpID4gU1NMX0VOQ19OVU1fSURYKSkKKwlpZiAoKGkgPCAwKSB8fCAoaSA+PSBTU0xfRU5DX05VTV9JRFgpKQogCQkqZW5jPU5VTEw7CiAJZWxzZQogCQl7CkBAIC01OTYsNyArNTk3LDcgQEAKIAkJaT0gLTE7CiAJCWJyZWFrOwogCQl9Ci0JaWYgKChpIDwgMCkgfHwgKGkgPiBTU0xfTURfTlVNX0lEWCkpCisJaWYgKChpIDwgMCkgfHwgKGkgPj0gU1NMX01EX05VTV9JRFgpKQogCXsKIAkJKm1kPU5VTEw7IAogCQlpZiAobWFjX3BrZXlfdHlwZSE9TlVMTCkgKm1hY19wa2V5X3R5cGUgPSBOSURfdW5kZWY7CkBAIC05MjUsNyArOTI2LDcgQEAKIAkJaW50IHJ1bGUsIGludCBzdHJlbmd0aF9iaXRzLAogCQlDSVBIRVJfT1JERVIgKipoZWFkX3AsIENJUEhFUl9PUkRFUiAqKnRhaWxfcCkKIAl7Ci0JQ0lQSEVSX09SREVSICpoZWFkLCAqdGFpbCwgKmN1cnIsICpjdXJyMiwgKmxhc3Q7CisJQ0lQSEVSX09SREVSICpoZWFkLCAqdGFpbCwgKmN1cnIsICpuZXh0LCAqbGFzdDsKIAljb25zdCBTU0xfQ0lQSEVSICpjcDsKIAlpbnQgcmV2ZXJzZSA9IDA7CiAKQEAgLTk0MiwyMSArOTQzLDI1IEBACiAKIAlpZiAocmV2ZXJzZSkKIAkJewotCQljdXJyID0gdGFpbDsKKwkJbmV4dCA9IHRhaWw7CiAJCWxhc3QgPSBoZWFkOwogCQl9CiAJZWxzZQogCQl7Ci0JCWN1cnIgPSBoZWFkOworCQluZXh0ID0gaGVhZDsKIAkJbGFzdCA9IHRhaWw7CiAJCX0KIAotCWN1cnIyID0gY3VycjsKKwljdXJyID0gTlVMTDsKIAlmb3IgKDs7KQogCQl7Ci0JCWlmICgoY3VyciA9PSBOVUxMKSB8fCAoY3VyciA9PSBsYXN0KSkgYnJlYWs7Ci0JCWN1cnIgPSBjdXJyMjsKLQkJY3VycjIgPSByZXZlcnNlID8gY3Vyci0+cHJldiA6IGN1cnItPm5leHQ7CisJCWlmIChjdXJyID09IGxhc3QpIGJyZWFrOworCisJCWN1cnIgPSBuZXh0OworCisJCWlmIChjdXJyID09IE5VTEwpIGJyZWFrOworCisJCW5leHQgPSByZXZlcnNlID8gY3Vyci0+cHJldiA6IGN1cnItPm5leHQ7CiAKIAkJY3AgPSBjdXJyLT5jaXBoZXI7CiAKQEAgLTE1OTgsNiArMTYwMyw5IEBACiAJY2FzZSBTU0xfa1NSUDoKIAkJa3g9IlNSUCI7CiAJCWJyZWFrOworCWNhc2UgU1NMX2tHT1NUOgorCQlreD0iR09TVCI7CisJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCWt4PSJ1bmtub3duIjsKIAkJfQpAQCAtMTYyOCw2ICsxNjM2LDE1IEBACiAJY2FzZSBTU0xfYVBTSzoKIAkJYXU9IlBTSyI7CiAJCWJyZWFrOworCWNhc2UgU1NMX2FTUlA6CisJCWF1PSJTUlAiOworCQlicmVhazsKKwljYXNlIFNTTF9hR09TVDk0OgorCQlhdT0iR09TVDk0IjsKKwkJYnJlYWs7CisJY2FzZSBTU0xfYUdPU1QwMToKKwkJYXU9IkdPU1QwMSI7CisJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCWF1PSJ1bmtub3duIjsKIAkJYnJlYWs7CkBAIC0xNjc1LDYgKzE2OTIsOSBAQAogCWNhc2UgU1NMX1NFRUQ6CiAJCWVuYz0iU0VFRCgxMjgpIjsKIAkJYnJlYWs7CisJY2FzZSBTU0xfZUdPU1QyODE0Nzg5Q05UOgorCQllbmM9IkdPU1Q4OSgyNTYpIjsKKwkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJZW5jPSJ1bmtub3duIjsKIAkJYnJlYWs7CkBAIC0xNjk3LDYgKzE3MTcsMTIgQEAKIAljYXNlIFNTTF9BRUFEOgogCQltYWM9IkFFQUQiOwogCQlicmVhazsKKwljYXNlIFNTTF9HT1NUODlNQUM6CisJCW1hYz0iR09TVDg5IjsKKwkJYnJlYWs7CisJY2FzZSBTU0xfR09TVDk0OgorCQltYWM9IkdPU1Q5NCI7CisJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCW1hYz0idW5rbm93biI7CiAJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3NsL3NzbF9lcnIuYyBiL3NzbC9zc2xfZXJyLmMKaW5kZXggODE2ZjZlZS4uMGU5MmNjYiAxMDA2NDQKLS0tIGEvc3NsL3NzbF9lcnIuYworKysgYi9zc2wvc3NsX2Vyci5jCkBAIC0zMzEsNiArMzMxLDcgQEAKIHtFUlJfUkVBU09OKFNTTF9SX0JBRF9TUlBfQl9MRU5HVEgpICAgICAgLCJiYWQgc3JwIGIgbGVuZ3RoIn0sCiB7RVJSX1JFQVNPTihTU0xfUl9CQURfU1JQX0dfTEVOR1RIKSAgICAgICwiYmFkIHNycCBnIGxlbmd0aCJ9LAoge0VSUl9SRUFTT04oU1NMX1JfQkFEX1NSUF9OX0xFTkdUSCkgICAgICAsImJhZCBzcnAgbiBsZW5ndGgifSwKK3tFUlJfUkVBU09OKFNTTF9SX0JBRF9TUlBfUEFSQU1FVEVSUykgICAgLCJiYWQgc3JwIHBhcmFtZXRlcnMifSwKIHtFUlJfUkVBU09OKFNTTF9SX0JBRF9TUlBfU19MRU5HVEgpICAgICAgLCJiYWQgc3JwIHMgbGVuZ3RoIn0sCiB7RVJSX1JFQVNPTihTU0xfUl9CQURfU1JUUF9NS0lfVkFMVUUpICAgICwiYmFkIHNydHAgbWtpIHZhbHVlIn0sCiB7RVJSX1JFQVNPTihTU0xfUl9CQURfU1JUUF9QUk9URUNUSU9OX1BST0ZJTEVfTElTVCksImJhZCBzcnRwIHByb3RlY3Rpb24gcHJvZmlsZSBsaXN0In0sCmRpZmYgLS1naXQgYS9zc2wvc3NsX2xpYi5jIGIvc3NsL3NzbF9saWIuYwppbmRleCBlYzBlYzJlLi5lYjFhZTc4IDEwMDY0NAotLS0gYS9zc2wvc3NsX2xpYi5jCisrKyBiL3NzbC9zc2xfbGliLmMKQEAgLTE0NjIsNiArMTQ2MiwxMSBAQAogCQkgICAgcy0+cHNrX2NsaWVudF9jYWxsYmFjayA9PSBOVUxMKQogCQkJY29udGludWU7CiAjZW5kaWYgLyogT1BFTlNTTF9OT19QU0sgKi8KKyNpZm5kZWYgT1BFTlNTTF9OT19TUlAKKwkJaWYgKCgoYy0+YWxnb3JpdGhtX21rZXkgJiBTU0xfa1NSUCkgfHwgKGMtPmFsZ29yaXRobV9hdXRoICYgU1NMX2FTUlApKSAmJgorCQkgICAgIShzLT5zcnBfY3R4LnNycF9NYXNrICYgU1NMX2tTUlApKQorCQkgICAgY29udGludWU7CisjZW5kaWYgLyogT1BFTlNTTF9OT19TUlAgKi8KIAkJaiA9IHB1dF9jYihjLHApOwogCQlwKz1qOwogCQl9CkBAIC0xNDkyLDYgKzE0OTcsNyBAQAogCQkJcCs9ajsKIAkJCX0KICAJCX0KKwogCXJldHVybihwLXEpOwogCX0KIApAQCAtMTU0Miw3ICsxNTQ4LDcgQEAKIAkJCX0KIAogCQkvKiBDaGVjayBmb3IgVExTX0ZBTExCQUNLX1NDU1YgKi8KLQkJaWYgKHMtPnMzICYmIChuICE9IDMgfHwgIXBbMF0pICYmCisJCWlmICgobiAhPSAzIHx8ICFwWzBdKSAmJgogCQkJKHBbbi0yXSA9PSAoKFNTTDNfQ0tfRkFMTEJBQ0tfU0NTViA+PiA4KSAmIDB4ZmYpKSAmJgogCQkJKHBbbi0xXSA9PSAoU1NMM19DS19GQUxMQkFDS19TQ1NWICYgMHhmZikpKQogCQkJewpAQCAtMTU1MSw3ICsxNTU3LDggQEAKIAkJCWlmICghU1NMX2N0cmwocywgU1NMX0NUUkxfQ0hFQ0tfUFJPVE9fVkVSU0lPTiwgMCwgTlVMTCkpCiAJCQkJewogCQkJCVNTTGVycihTU0xfRl9TU0xfQllURVNfVE9fQ0lQSEVSX0xJU1QsU1NMX1JfSU5BUFBST1BSSUFURV9GQUxMQkFDSyk7Ci0JCQkJc3NsM19zZW5kX2FsZXJ0KHMsU1NMM19BTF9GQVRBTCxTU0xfQURfSU5BUFBST1BSSUFURV9GQUxMQkFDSyk7CisJCQkJaWYgKHMtPnMzKQorCQkJCQlzc2wzX3NlbmRfYWxlcnQocyxTU0wzX0FMX0ZBVEFMLFNTTF9BRF9JTkFQUFJPUFJJQVRFX0ZBTExCQUNLKTsKIAkJCQlnb3RvIGVycjsKIAkJCQl9CiAJCQljb250aW51ZTsKZGlmZiAtLWdpdCBhL3NzbC9zc2xfbG9jbC5oIGIvc3NsL3NzbF9sb2NsLmgKaW5kZXggNmI3NzMxYS4uY2EzOTkwNyAxMDA2NDQKLS0tIGEvc3NsL3NzbF9sb2NsLmgKKysrIGIvc3NsL3NzbF9sb2NsLmgKQEAgLTMxMSw2ICszMTEsNyBAQAogI2RlZmluZSBTU0xfYVBTSyAgICAgICAgICAgICAgICAweDAwMDAwMDgwTCAvKiBQU0sgYXV0aCAqLwogI2RlZmluZSBTU0xfYUdPU1Q5NAkJCQkweDAwMDAwMTAwTCAvKiBHT1NUIFIgMzQuMTAtOTQgc2lnbmF0dXJlIGF1dGggKi8KICNkZWZpbmUgU1NMX2FHT1NUMDEgCQkJMHgwMDAwMDIwMEwgLyogR09TVCBSIDM0LjEwLTIwMDEgc2lnbmF0dXJlIGF1dGggKi8KKyNkZWZpbmUgU1NMX2FTUlAgCQkweDAwMDAwNDAwTCAvKiBTUlAgYXV0aCAqLwogCiAKIC8qIEJpdHMgZm9yIGFsZ29yaXRobV9lbmMgKHN5bW1ldHJpYyBlbmNyeXB0aW9uKSAqLwpAQCAtODA5LDYgKzgxMCwxNiBAQAogCXJldHVybiAmZnVuY19uYW1lIyNfZGF0YTsgXAogCX0KIAorc3RydWN0IG9wZW5zc2xfc3NsX3Rlc3RfZnVuY3Rpb25zCisJeworCWludCAoKnBfc3NsX2luaXRfd2Jpb19idWZmZXIpKFNTTCAqcywgaW50IHB1c2gpOworCWludCAoKnBfc3NsM19zZXR1cF9idWZmZXJzKShTU0wgKnMpOworCWludCAoKnBfdGxzMV9wcm9jZXNzX2hlYXJ0YmVhdCkoU1NMICpzKTsKKwlpbnQgKCpwX2R0bHMxX3Byb2Nlc3NfaGVhcnRiZWF0KShTU0wgKnMpOworCX07CisKKyNpZm5kZWYgT1BFTlNTTF9VTklUX1RFU1QKKwogdm9pZCBzc2xfY2xlYXJfY2lwaGVyX2N0eChTU0wgKnMpOwogaW50IHNzbF9jbGVhcl9iYWRfc2Vzc2lvbihTU0wgKnMpOwogQ0VSVCAqc3NsX2NlcnRfbmV3KHZvaWQpOwpAQCAtMTA5Niw4ICsxMTA3LDggQEAKICNlbmRpZiAvKiBPUEVOU1NMX05PX0VDICovCiAKICNpZm5kZWYgT1BFTlNTTF9OT19UTFNFWFQKLXVuc2lnbmVkIGNoYXIgKnNzbF9hZGRfY2xpZW50aGVsbG9fdGxzZXh0KFNTTCAqcywgdW5zaWduZWQgY2hhciAqcCwgdW5zaWduZWQgY2hhciAqbGltaXQpOyAKLXVuc2lnbmVkIGNoYXIgKnNzbF9hZGRfc2VydmVyaGVsbG9fdGxzZXh0KFNTTCAqcywgdW5zaWduZWQgY2hhciAqcCwgdW5zaWduZWQgY2hhciAqbGltaXQpOyAKK3Vuc2lnbmVkIGNoYXIgKnNzbF9hZGRfY2xpZW50aGVsbG9fdGxzZXh0KFNTTCAqcywgdW5zaWduZWQgY2hhciAqYnVmLCB1bnNpZ25lZCBjaGFyICpsaW1pdCk7IAordW5zaWduZWQgY2hhciAqc3NsX2FkZF9zZXJ2ZXJoZWxsb190bHNleHQoU1NMICpzLCB1bnNpZ25lZCBjaGFyICpidWYsIHVuc2lnbmVkIGNoYXIgKmxpbWl0KTsgCiBpbnQgc3NsX3BhcnNlX2NsaWVudGhlbGxvX3Rsc2V4dChTU0wgKnMsIHVuc2lnbmVkIGNoYXIgKipkYXRhLCB1bnNpZ25lZCBjaGFyICpkLCBpbnQgbiwgaW50ICphbCk7CiBpbnQgc3NsX3BhcnNlX3NlcnZlcmhlbGxvX3Rsc2V4dChTU0wgKnMsIHVuc2lnbmVkIGNoYXIgKipkYXRhLCB1bnNpZ25lZCBjaGFyICpkLCBpbnQgbiwgaW50ICphbCk7CiBpbnQgc3NsX3ByZXBhcmVfY2xpZW50aGVsbG9fdGxzZXh0KFNTTCAqcyk7CkBAIC0xMTc5LDQgKzExOTAsMTQgQEAKIAljb25zdCBFVlBfQ0lQSEVSX0NUWCAqY2lwaGVyX2N0eCwgRVZQX01EX0NUWCAqbWFjX2N0eCwKIAljb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhLCBzaXplX3QgZGF0YV9sZW4sIHNpemVfdCBvcmlnX2xlbik7CiAKK2ludCBzcnBfdmVyaWZ5X3NlcnZlcl9wYXJhbShTU0wgKnMsIGludCAqYWwpOworCisjZWxzZQorCisjZGVmaW5lIHNzbF9pbml0X3diaW9fYnVmZmVyIFNTTF90ZXN0X2Z1bmN0aW9ucygpLT5wX3NzbF9pbml0X3diaW9fYnVmZmVyCisjZGVmaW5lIHNzbDNfc2V0dXBfYnVmZmVycyBTU0xfdGVzdF9mdW5jdGlvbnMoKS0+cF9zc2wzX3NldHVwX2J1ZmZlcnMKKyNkZWZpbmUgdGxzMV9wcm9jZXNzX2hlYXJ0YmVhdCBTU0xfdGVzdF9mdW5jdGlvbnMoKS0+cF90bHMxX3Byb2Nlc3NfaGVhcnRiZWF0CisjZGVmaW5lIGR0bHMxX3Byb2Nlc3NfaGVhcnRiZWF0IFNTTF90ZXN0X2Z1bmN0aW9ucygpLT5wX2R0bHMxX3Byb2Nlc3NfaGVhcnRiZWF0CisKKyNlbmRpZgogI2VuZGlmCmRpZmYgLS1naXQgYS9zc2wvc3NsX3N0YXQuYyBiL3NzbC9zc2xfc3RhdC5jCmluZGV4IDE0NGI4MWUuLmM1YTE1Y2UgMTAwNjQ0Ci0tLSBhL3NzbC9zc2xfc3RhdC5jCisrKyBiL3NzbC9zc2xfc3RhdC5jCkBAIC0yMTIsNyArMjEyLDYgQEAKIGNhc2UgU1NMM19TVF9TUl9DRVJUX1ZSRllfQjoJc3RyPSJTU0x2MyByZWFkIGNlcnRpZmljYXRlIHZlcmlmeSBCIjsgYnJlYWs7CiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKE9QRU5TU0xfTk9fU1NMMikgJiYgIWRlZmluZWQoT1BFTlNTTF9OT19TU0wzKQogLyogU1NMdjIvdjMgY29tcGF0aWJpbGl0eSBzdGF0ZXMgKi8KIC8qIGNsaWVudCAqLwogY2FzZSBTU0wyM19TVF9DV19DTE5UX0hFTExPX0E6CXN0cj0iU1NMdjIvdjMgd3JpdGUgY2xpZW50IGhlbGxvIEEiOyBicmVhazsKQEAgLTIyMiw3ICsyMjEsNiBAQAogLyogc2VydmVyICovCiBjYXNlIFNTTDIzX1NUX1NSX0NMTlRfSEVMTE9fQToJc3RyPSJTU0x2Mi92MyByZWFkIGNsaWVudCBoZWxsbyBBIjsgYnJlYWs7CiBjYXNlIFNTTDIzX1NUX1NSX0NMTlRfSEVMTE9fQjoJc3RyPSJTU0x2Mi92MyByZWFkIGNsaWVudCBoZWxsbyBCIjsgYnJlYWs7Ci0jZW5kaWYKIAogLyogRFRMUyAqLwogY2FzZSBEVExTMV9TVF9DUl9IRUxMT19WRVJJRllfUkVRVUVTVF9BOiBzdHI9IkRUTFMxIHJlYWQgaGVsbG8gdmVyaWZ5IHJlcXVlc3QgQSI7IGJyZWFrOwpAQCAtMzY2LDcgKzM2NCw2IEBACiBjYXNlIFNTTDNfU1RfU1JfQ0VSVF9WUkZZX0I6CQkJc3RyPSIzUkNWX0IiOyBicmVhazsKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoT1BFTlNTTF9OT19TU0wyKSAmJiAhZGVmaW5lZChPUEVOU1NMX05PX1NTTDMpCiAvKiBTU0x2Mi92MyBjb21wYXRpYmlsaXR5IHN0YXRlcyAqLwogLyogY2xpZW50ICovCiBjYXNlIFNTTDIzX1NUX0NXX0NMTlRfSEVMTE9fQToJCQlzdHI9IjIzV0NIQSI7IGJyZWFrOwpAQCAtMzc2LDcgKzM3Myw3IEBACiAvKiBzZXJ2ZXIgKi8KIGNhc2UgU1NMMjNfU1RfU1JfQ0xOVF9IRUxMT19BOgkJCXN0cj0iMjNSQ0hBIjsgYnJlYWs7CiBjYXNlIFNTTDIzX1NUX1NSX0NMTlRfSEVMTE9fQjoJCQlzdHI9IjIzUkNIQiI7IGJyZWFrOwotI2VuZGlmCisKIC8qIERUTFMgKi8KIGNhc2UgRFRMUzFfU1RfQ1JfSEVMTE9fVkVSSUZZX1JFUVVFU1RfQTogc3RyPSJEUkNIVkEiOyBicmVhazsKIGNhc2UgRFRMUzFfU1RfQ1JfSEVMTE9fVkVSSUZZX1JFUVVFU1RfQjogc3RyPSJEUkNIVkIiOyBicmVhazsKZGlmZiAtLWdpdCBhL3NzbC90MV9lbmMuYyBiL3NzbC90MV9lbmMuYwppbmRleCBiOGQ0OTdlLi40NTU5OTJhIDEwMDY0NAotLS0gYS9zc2wvdDFfZW5jLmMKKysrIGIvc3NsL3QxX2VuYy5jCkBAIC0xMTUzLDcgKzExNTMsNyBAQAogCWludCBydjsKIAogI2lmZGVmIEtTU0xfREVCVUcKLQlwcmludGYgKCJ0bHMxX2V4cG9ydF9rZXlpbmdfbWF0ZXJpYWwoJXAsJXAsJWQsJXMsJWQsJXAsJWQpXG4iLCBzLCBvdXQsIG9sZW4sIGxhYmVsLCBsbGVuLCBwLCBwbGVuKTsKKwlwcmludGYgKCJ0bHMxX2V4cG9ydF9rZXlpbmdfbWF0ZXJpYWwoJXAsJXAsJWQsJXMsJWQsJXAsJWQpXG4iLCBzLCBvdXQsIG9sZW4sIGxhYmVsLCBsbGVuLCBjb250ZXh0LCBjb250ZXh0bGVuKTsKICNlbmRpZgkvKiBLU1NMX0RFQlVHICovCiAKIAlidWZmID0gT1BFTlNTTF9tYWxsb2Mob2xlbik7CmRpZmYgLS1naXQgYS9zc2wvdDFfbGliLmMgYi9zc2wvdDFfbGliLmMKaW5kZXggMTIyYTI1Zi4uZDBiODkzYiAxMDA2NDQKLS0tIGEvc3NsL3QxX2xpYi5jCisrKyBiL3NzbC90MV9saWIuYwpAQCAtMzUyLDE1ICszNTIsMTYgQEAKIAlyZXR1cm4gKGludClzbGVuOwogCX0KIAotdW5zaWduZWQgY2hhciAqc3NsX2FkZF9jbGllbnRoZWxsb190bHNleHQoU1NMICpzLCB1bnNpZ25lZCBjaGFyICpwLCB1bnNpZ25lZCBjaGFyICpsaW1pdCkKK3Vuc2lnbmVkIGNoYXIgKnNzbF9hZGRfY2xpZW50aGVsbG9fdGxzZXh0KFNTTCAqcywgdW5zaWduZWQgY2hhciAqYnVmLCB1bnNpZ25lZCBjaGFyICpsaW1pdCkKIAl7CiAJaW50IGV4dGRhdGFsZW49MDsKLQl1bnNpZ25lZCBjaGFyICpyZXQgPSBwOworCXVuc2lnbmVkIGNoYXIgKm9yaWcgPSBidWY7CisJdW5zaWduZWQgY2hhciAqcmV0ID0gYnVmOwogCiAJLyogZG9uJ3QgYWRkIGV4dGVuc2lvbnMgZm9yIFNTTHYzIHVubGVzcyBkb2luZyBzZWN1cmUgcmVuZWdvdGlhdGlvbiAqLwogCWlmIChzLT5jbGllbnRfdmVyc2lvbiA9PSBTU0wzX1ZFUlNJT04KIAkJCQkJJiYgIXMtPnMzLT5zZW5kX2Nvbm5lY3Rpb25fYmluZGluZykKLQkJcmV0dXJuIHA7CisJCXJldHVybiBvcmlnOwogCiAJcmV0Kz0yOwogCkBAIC00MDksNyArNDEwLDcgQEAKICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgIGlmKChsaW1pdCAtIHAgLSA0IC0gZWwpIDwgMCkgcmV0dXJuIE5VTEw7CisgICAgICAgICAgaWYoKGxpbWl0IC0gcmV0IC0gNCAtIGVsKSA8IDApIHJldHVybiBOVUxMOwogICAgICAgICAgIAogICAgICAgICAgIHMybihUTFNFWFRfVFlQRV9yZW5lZ290aWF0ZSxyZXQpOwogICAgICAgICAgIHMybihlbCxyZXQpOwpAQCAtNDUyLDggKzQ1Myw3IEBACiAjZW5kaWYKIAogI2lmbmRlZiBPUEVOU1NMX05PX0VDCi0JaWYgKHMtPnRsc2V4dF9lY3BvaW50Zm9ybWF0bGlzdCAhPSBOVUxMICYmCi0JICAgIHMtPnZlcnNpb24gIT0gRFRMUzFfVkVSU0lPTikKKwlpZiAocy0+dGxzZXh0X2VjcG9pbnRmb3JtYXRsaXN0ICE9IE5VTEwpCiAJCXsKIAkJLyogQWRkIFRMUyBleHRlbnNpb24gRUNQb2ludEZvcm1hdHMgdG8gdGhlIENsaWVudEhlbGxvIG1lc3NhZ2UgKi8KIAkJbG9uZyBsZW5tYXg7IApAQCAtNDcyLDggKzQ3Miw3IEBACiAJCW1lbWNweShyZXQsIHMtPnRsc2V4dF9lY3BvaW50Zm9ybWF0bGlzdCwgcy0+dGxzZXh0X2VjcG9pbnRmb3JtYXRsaXN0X2xlbmd0aCk7CiAJCXJldCs9cy0+dGxzZXh0X2VjcG9pbnRmb3JtYXRsaXN0X2xlbmd0aDsKIAkJfQotCWlmIChzLT50bHNleHRfZWxsaXB0aWNjdXJ2ZWxpc3QgIT0gTlVMTCAmJgotCSAgICBzLT52ZXJzaW9uICE9IERUTFMxX1ZFUlNJT04pCisJaWYgKHMtPnRsc2V4dF9lbGxpcHRpY2N1cnZlbGlzdCAhPSBOVUxMKQogCQl7CiAJCS8qIEFkZCBUTFMgZXh0ZW5zaW9uIEVsbGlwdGljQ3VydmVzIHRvIHRoZSBDbGllbnRIZWxsbyBtZXNzYWdlICovCiAJCWxvbmcgbGVubWF4OyAKQEAgLTY2OSwxMyArNjY4LDEzIEBACiAJCX0KIAogI2lmbmRlZiBPUEVOU1NMX05PX1NSVFAKLSAgICAgICAgaWYoU1NMX2dldF9zcnRwX3Byb2ZpbGVzKHMpKQorCWlmKFNTTF9JU19EVExTKHMpICYmIFNTTF9nZXRfc3J0cF9wcm9maWxlcyhzKSkKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgaW50IGVsOwogCiAgICAgICAgICAgICAgICAgc3NsX2FkZF9jbGllbnRoZWxsb191c2Vfc3J0cF9leHQocywgMCwgJmVsLCAwKTsKICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZigobGltaXQgLSBwIC0gNCAtIGVsKSA8IDApIHJldHVybiBOVUxMOworICAgICAgICAgICAgICAgIGlmKChsaW1pdCAtIHJldCAtIDQgLSBlbCkgPCAwKSByZXR1cm4gTlVMTDsKIAogICAgICAgICAgICAgICAgIHMybihUTFNFWFRfVFlQRV91c2Vfc3J0cCxyZXQpOwogICAgICAgICAgICAgICAgIHMybihlbCxyZXQpOwpAQCAtNzE4LDI0ICs3MTcsMjUgQEAKIAkJCX0KIAkJfQogCi0JaWYgKChleHRkYXRhbGVuID0gcmV0LXAtMik9PSAwKSAKLQkJcmV0dXJuIHA7CisJaWYgKChleHRkYXRhbGVuID0gcmV0LW9yaWctMik9PSAwKSAKKwkJcmV0dXJuIG9yaWc7CiAKLQlzMm4oZXh0ZGF0YWxlbixwKTsKKwlzMm4oZXh0ZGF0YWxlbiwgb3JpZyk7CiAJcmV0dXJuIHJldDsKIAl9CiAKLXVuc2lnbmVkIGNoYXIgKnNzbF9hZGRfc2VydmVyaGVsbG9fdGxzZXh0KFNTTCAqcywgdW5zaWduZWQgY2hhciAqcCwgdW5zaWduZWQgY2hhciAqbGltaXQpCit1bnNpZ25lZCBjaGFyICpzc2xfYWRkX3NlcnZlcmhlbGxvX3Rsc2V4dChTU0wgKnMsIHVuc2lnbmVkIGNoYXIgKmJ1ZiwgdW5zaWduZWQgY2hhciAqbGltaXQpCiAJewogCWludCBleHRkYXRhbGVuPTA7Ci0JdW5zaWduZWQgY2hhciAqcmV0ID0gcDsKKwl1bnNpZ25lZCBjaGFyICpvcmlnID0gYnVmOworCXVuc2lnbmVkIGNoYXIgKnJldCA9IGJ1ZjsKICNpZm5kZWYgT1BFTlNTTF9OT19ORVhUUFJPVE9ORUcKIAlpbnQgbmV4dF9wcm90b19uZWdfc2VlbjsKICNlbmRpZgogCiAJLyogZG9uJ3QgYWRkIGV4dGVuc2lvbnMgZm9yIFNTTHYzLCB1bmxlc3MgZG9pbmcgc2VjdXJlIHJlbmVnb3RpYXRpb24gKi8KIAlpZiAocy0+dmVyc2lvbiA9PSBTU0wzX1ZFUlNJT04gJiYgIXMtPnMzLT5zZW5kX2Nvbm5lY3Rpb25fYmluZGluZykKLQkJcmV0dXJuIHA7CisJCXJldHVybiBvcmlnOwogCQogCXJldCs9MjsKIAlpZiAocmV0Pj1saW1pdCkgcmV0dXJuIE5VTEw7IC8qIHRoaXMgcmVhbGx5IG5ldmVyIG9jY3VycywgYnV0IC4uLiAqLwpAQCAtNzU4LDcgKzc1OCw3IEBACiAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICBpZigobGltaXQgLSBwIC0gNCAtIGVsKSA8IDApIHJldHVybiBOVUxMOworICAgICAgICAgIGlmKChsaW1pdCAtIHJldCAtIDQgLSBlbCkgPCAwKSByZXR1cm4gTlVMTDsKICAgICAgICAgICAKICAgICAgICAgICBzMm4oVExTRVhUX1RZUEVfcmVuZWdvdGlhdGUscmV0KTsKICAgICAgICAgICBzMm4oZWwscmV0KTsKQEAgLTc3Myw4ICs3NzMsNyBAQAogICAgICAgICB9CiAKICNpZm5kZWYgT1BFTlNTTF9OT19FQwotCWlmIChzLT50bHNleHRfZWNwb2ludGZvcm1hdGxpc3QgIT0gTlVMTCAmJgotCSAgICBzLT52ZXJzaW9uICE9IERUTFMxX1ZFUlNJT04pCisJaWYgKHMtPnRsc2V4dF9lY3BvaW50Zm9ybWF0bGlzdCAhPSBOVUxMKQogCQl7CiAJCS8qIEFkZCBUTFMgZXh0ZW5zaW9uIEVDUG9pbnRGb3JtYXRzIHRvIHRoZSBTZXJ2ZXJIZWxsbyBtZXNzYWdlICovCiAJCWxvbmcgbGVubWF4OyAKQEAgLTgzMiwxMyArODMxLDEzIEBACiAjZW5kaWYKIAogI2lmbmRlZiBPUEVOU1NMX05PX1NSVFAKLSAgICAgICAgaWYocy0+c3J0cF9wcm9maWxlKQorCWlmKFNTTF9JU19EVExTKHMpICYmIHMtPnNydHBfcHJvZmlsZSkKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgaW50IGVsOwogCiAgICAgICAgICAgICAgICAgc3NsX2FkZF9zZXJ2ZXJoZWxsb191c2Vfc3J0cF9leHQocywgMCwgJmVsLCAwKTsKICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZigobGltaXQgLSBwIC0gNCAtIGVsKSA8IDApIHJldHVybiBOVUxMOworICAgICAgICAgICAgICAgIGlmKChsaW1pdCAtIHJldCAtIDQgLSBlbCkgPCAwKSByZXR1cm4gTlVMTDsKIAogICAgICAgICAgICAgICAgIHMybihUTFNFWFRfVFlQRV91c2Vfc3J0cCxyZXQpOwogICAgICAgICAgICAgICAgIHMybihlbCxyZXQpOwpAQCAtOTM3LDEwICs5MzYsMTAgQEAKIAkJcmV0ICs9IGxlbjsKIAkJfQogCi0JaWYgKChleHRkYXRhbGVuID0gcmV0LXAtMik9PSAwKSAKLQkJcmV0dXJuIHA7CisJaWYgKChleHRkYXRhbGVuID0gcmV0LW9yaWctMik9PSAwKSAKKwkJcmV0dXJuIG9yaWc7CiAKLQlzMm4oZXh0ZGF0YWxlbixwKTsKKwlzMm4oZXh0ZGF0YWxlbiwgb3JpZyk7CiAJcmV0dXJuIHJldDsKIAl9CiAKQEAgLTEyODgsOCArMTI4Nyw3IEBACiAjZW5kaWYKIAogI2lmbmRlZiBPUEVOU1NMX05PX0VDCi0JCWVsc2UgaWYgKHR5cGUgPT0gVExTRVhUX1RZUEVfZWNfcG9pbnRfZm9ybWF0cyAmJgotCSAgICAgICAgICAgICBzLT52ZXJzaW9uICE9IERUTFMxX1ZFUlNJT04pCisJCWVsc2UgaWYgKHR5cGUgPT0gVExTRVhUX1RZUEVfZWNfcG9pbnRfZm9ybWF0cykKIAkJCXsKIAkJCXVuc2lnbmVkIGNoYXIgKnNkYXRhID0gZGF0YTsKIAkJCWludCBlY3BvaW50Zm9ybWF0bGlzdF9sZW5ndGggPSAqKHNkYXRhKyspOwpAQCAtMTMyMyw4ICsxMzIxLDcgQEAKIAkJCWZwcmludGYoc3RkZXJyLCJcbiIpOwogI2VuZGlmCiAJCQl9Ci0JCWVsc2UgaWYgKHR5cGUgPT0gVExTRVhUX1RZUEVfZWxsaXB0aWNfY3VydmVzICYmCi0JICAgICAgICAgICAgIHMtPnZlcnNpb24gIT0gRFRMUzFfVkVSU0lPTikKKwkJZWxzZSBpZiAodHlwZSA9PSBUTFNFWFRfVFlQRV9lbGxpcHRpY19jdXJ2ZXMpCiAJCQl7CiAJCQl1bnNpZ25lZCBjaGFyICpzZGF0YSA9IGRhdGE7CiAJCQlpbnQgZWxsaXB0aWNjdXJ2ZWxpc3RfbGVuZ3RoID0gKCooc2RhdGErKykgPDwgOCk7CkBAIC0xNjAwLDcgKzE1OTcsOCBAQAogCiAJCS8qIHNlc3Npb24gdGlja2V0IHByb2Nlc3NlZCBlYXJsaWVyICovCiAjaWZuZGVmIE9QRU5TU0xfTk9fU1JUUAotCQllbHNlIGlmICh0eXBlID09IFRMU0VYVF9UWVBFX3VzZV9zcnRwKQorCQllbHNlIGlmIChTU0xfSVNfRFRMUyhzKSAmJiBTU0xfZ2V0X3NydHBfcHJvZmlsZXMocykKKwkJCSAmJiB0eXBlID09IFRMU0VYVF9UWVBFX3VzZV9zcnRwKQogCQkJewogCQkJaWYoc3NsX3BhcnNlX2NsaWVudGhlbGxvX3VzZV9zcnRwX2V4dChzLCBkYXRhLCBzaXplLAogCQkJCQkJCSAgICAgIGFsKSkKQEAgLTE3MDYsOCArMTcwNCw3IEBACiAJCQl9CiAKICNpZm5kZWYgT1BFTlNTTF9OT19FQwotCQllbHNlIGlmICh0eXBlID09IFRMU0VYVF9UWVBFX2VjX3BvaW50X2Zvcm1hdHMgJiYKLQkgICAgICAgICAgICAgcy0+dmVyc2lvbiAhPSBEVExTMV9WRVJTSU9OKQorCQllbHNlIGlmICh0eXBlID09IFRMU0VYVF9UWVBFX2VjX3BvaW50X2Zvcm1hdHMpCiAJCQl7CiAJCQl1bnNpZ25lZCBjaGFyICpzZGF0YSA9IGRhdGE7CiAJCQlpbnQgZWNwb2ludGZvcm1hdGxpc3RfbGVuZ3RoID0gKihzZGF0YSsrKTsKQEAgLTE3MTgsMTUgKzE3MTUsMTggQEAKIAkJCQkqYWwgPSBUTFMxX0FEX0RFQ09ERV9FUlJPUjsKIAkJCQlyZXR1cm4gMDsKIAkJCQl9Ci0JCQlzLT5zZXNzaW9uLT50bHNleHRfZWNwb2ludGZvcm1hdGxpc3RfbGVuZ3RoID0gMDsKLQkJCWlmIChzLT5zZXNzaW9uLT50bHNleHRfZWNwb2ludGZvcm1hdGxpc3QgIT0gTlVMTCkgT1BFTlNTTF9mcmVlKHMtPnNlc3Npb24tPnRsc2V4dF9lY3BvaW50Zm9ybWF0bGlzdCk7Ci0JCQlpZiAoKHMtPnNlc3Npb24tPnRsc2V4dF9lY3BvaW50Zm9ybWF0bGlzdCA9IE9QRU5TU0xfbWFsbG9jKGVjcG9pbnRmb3JtYXRsaXN0X2xlbmd0aCkpID09IE5VTEwpCisJCQlpZiAoIXMtPmhpdCkKIAkJCQl7Ci0JCQkJKmFsID0gVExTMV9BRF9JTlRFUk5BTF9FUlJPUjsKLQkJCQlyZXR1cm4gMDsKKwkJCQlzLT5zZXNzaW9uLT50bHNleHRfZWNwb2ludGZvcm1hdGxpc3RfbGVuZ3RoID0gMDsKKwkJCQlpZiAocy0+c2Vzc2lvbi0+dGxzZXh0X2VjcG9pbnRmb3JtYXRsaXN0ICE9IE5VTEwpIE9QRU5TU0xfZnJlZShzLT5zZXNzaW9uLT50bHNleHRfZWNwb2ludGZvcm1hdGxpc3QpOworCQkJCWlmICgocy0+c2Vzc2lvbi0+dGxzZXh0X2VjcG9pbnRmb3JtYXRsaXN0ID0gT1BFTlNTTF9tYWxsb2MoZWNwb2ludGZvcm1hdGxpc3RfbGVuZ3RoKSkgPT0gTlVMTCkKKwkJCQkJeworCQkJCQkqYWwgPSBUTFMxX0FEX0lOVEVSTkFMX0VSUk9SOworCQkJCQlyZXR1cm4gMDsKKwkJCQkJfQorCQkJCXMtPnNlc3Npb24tPnRsc2V4dF9lY3BvaW50Zm9ybWF0bGlzdF9sZW5ndGggPSBlY3BvaW50Zm9ybWF0bGlzdF9sZW5ndGg7CisJCQkJbWVtY3B5KHMtPnNlc3Npb24tPnRsc2V4dF9lY3BvaW50Zm9ybWF0bGlzdCwgc2RhdGEsIGVjcG9pbnRmb3JtYXRsaXN0X2xlbmd0aCk7CiAJCQkJfQotCQkJcy0+c2Vzc2lvbi0+dGxzZXh0X2VjcG9pbnRmb3JtYXRsaXN0X2xlbmd0aCA9IGVjcG9pbnRmb3JtYXRsaXN0X2xlbmd0aDsKLQkJCW1lbWNweShzLT5zZXNzaW9uLT50bHNleHRfZWNwb2ludGZvcm1hdGxpc3QsIHNkYXRhLCBlY3BvaW50Zm9ybWF0bGlzdF9sZW5ndGgpOwogI2lmIDAKIAkJCWZwcmludGYoc3RkZXJyLCJzc2xfcGFyc2Vfc2VydmVyaGVsbG9fdGxzZXh0IHMtPnNlc3Npb24tPnRsc2V4dF9lY3BvaW50Zm9ybWF0bGlzdCAiKTsKIAkJCXNkYXRhID0gcy0+c2Vzc2lvbi0+dGxzZXh0X2VjcG9pbnRmb3JtYXRsaXN0OwpAQCAtMTkxMiw3ICsxOTEyLDcgQEAKIAkJCX0KICNlbmRpZgogI2lmbmRlZiBPUEVOU1NMX05PX1NSVFAKLQkJZWxzZSBpZiAodHlwZSA9PSBUTFNFWFRfVFlQRV91c2Vfc3J0cCkKKwkJZWxzZSBpZiAoU1NMX0lTX0RUTFMocykgJiYgdHlwZSA9PSBUTFNFWFRfVFlQRV91c2Vfc3J0cCkKIAkJCXsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHNzbF9wYXJzZV9zZXJ2ZXJoZWxsb191c2Vfc3J0cF9leHQocywgZGF0YSwgc2l6ZSwKIAkJCQkJCQkgICAgICBhbCkpCkBAIC0yNTYxLDcgKzI1NjEsMTAgQEAKIAlITUFDX0ZpbmFsKCZoY3R4LCB0aWNrX2htYWMsIE5VTEwpOwogCUhNQUNfQ1RYX2NsZWFudXAoJmhjdHgpOwogCWlmIChDUllQVE9fbWVtY21wKHRpY2tfaG1hYywgZXRpY2sgKyBldGlja2xlbiwgbWxlbikpCisJCXsKKwkJRVZQX0NJUEhFUl9DVFhfY2xlYW51cCgmY3R4KTsKIAkJcmV0dXJuIDI7CisJCX0KIAkvKiBBdHRlbXB0IHRvIGRlY3J5cHQgc2Vzc2lvbiBkYXRhICovCiAJLyogTW92ZSBwIGFmdGVyIElWIHRvIHN0YXJ0IG9mIGVuY3J5cHRlZCB0aWNrZXQsIHVwZGF0ZSBsZW5ndGggKi8KIAlwID0gZXRpY2sgKyAxNiArIEVWUF9DSVBIRVJfQ1RYX2l2X2xlbmd0aCgmY3R4KTsKQEAgLTI1NzQsNyArMjU3NywxMSBAQAogCQl9CiAJRVZQX0RlY3J5cHRVcGRhdGUoJmN0eCwgc2RlYywgJnNsZW4sIHAsIGV0aWNrbGVuKTsKIAlpZiAoRVZQX0RlY3J5cHRGaW5hbCgmY3R4LCBzZGVjICsgc2xlbiwgJm1sZW4pIDw9IDApCisJCXsKKwkJRVZQX0NJUEhFUl9DVFhfY2xlYW51cCgmY3R4KTsKKwkJT1BFTlNTTF9mcmVlKHNkZWMpOwogCQlyZXR1cm4gMjsKKwkJfQogCXNsZW4gKz0gbWxlbjsKIAlFVlBfQ0lQSEVSX0NUWF9jbGVhbnVwKCZjdHgpOwogCXAgPSBzZGVjOwpkaWZmIC0tZ2l0IGEvc3NsL3Rsc19zcnAuYyBiL3NzbC90bHNfc3JwLmMKaW5kZXggMjMxNWE3Yy4uZTczNjhhOCAxMDA2NDQKLS0tIGEvc3NsL3Rsc19zcnAuYworKysgYi9zc2wvdGxzX3NycC5jCkBAIC00MDgsMTcgKzQwOCw0NyBAQAogCXJldHVybiByZXQ7CiAJfQogCitpbnQgc3JwX3ZlcmlmeV9zZXJ2ZXJfcGFyYW0oU1NMICpzLCBpbnQgKmFsKQorCXsKKwlTUlBfQ1RYICpzcnAgPSAmcy0+c3JwX2N0eDsKKwkvKiBTYW5pdHkgY2hlY2sgcGFyYW1ldGVyczogd2UgY2FuIHF1aWNrbHkgY2hlY2sgQiAlIE4gPT0gMAorCSAqIGJ5IGNoZWNraW5nIEIgIT0gMCBzaW5jZSBCIDwgTgorCSAqLworCWlmIChCTl91Y21wKHNycC0+Zywgc3JwLT5OKSA+PTAgfHwgQk5fdWNtcChzcnAtPkIsIHNycC0+TikgPj0gMAorCQl8fCBCTl9pc196ZXJvKHNycC0+QikpCisJCXsKKwkJKmFsID0gU1NMM19BRF9JTExFR0FMX1BBUkFNRVRFUjsKKwkJcmV0dXJuIDA7CisJCX0KKworCWlmIChCTl9udW1fYml0cyhzcnAtPk4pIDwgc3JwLT5zdHJlbmd0aCkKKwkJeworCQkqYWwgPSBUTFMxX0FEX0lOU1VGRklDSUVOVF9TRUNVUklUWTsKKwkJcmV0dXJuIDA7CisJCX0KKworCWlmIChzcnAtPlNSUF92ZXJpZnlfcGFyYW1fY2FsbGJhY2spCisJCXsKKwkJaWYgKHNycC0+U1JQX3ZlcmlmeV9wYXJhbV9jYWxsYmFjayhzLCBzcnAtPlNSUF9jYl9hcmcpIDw9IDApCisJCQl7CisJCQkqYWwgPSBUTFMxX0FEX0lOU1VGRklDSUVOVF9TRUNVUklUWTsKKwkJCXJldHVybiAwOworCQkJfQorCQl9CisJZWxzZSBpZighU1JQX2NoZWNrX2tub3duX2dOX3BhcmFtKHNycC0+Zywgc3JwLT5OKSkKKwkJeworCQkqYWwgPSBUTFMxX0FEX0lOU1VGRklDSUVOVF9TRUNVUklUWTsKKwkJcmV0dXJuIDA7CisJCX0KKworCXJldHVybiAxOworCX0KKwkKKwogaW50IFNSUF9DYWxjX0FfcGFyYW0oU1NMICpzKQogCXsKIAl1bnNpZ25lZCBjaGFyIHJuZFtTU0xfTUFYX01BU1RFUl9LRVlfTEVOR1RIXTsKIAotCWlmIChCTl9udW1fYml0cyhzLT5zcnBfY3R4Lk4pIDwgcy0+c3JwX2N0eC5zdHJlbmd0aCkKLQkJcmV0dXJuIC0xOwotCi0JaWYgKHMtPnNycF9jdHguU1JQX3ZlcmlmeV9wYXJhbV9jYWxsYmFjayA9PU5VTEwgJiYgCi0JCSFTUlBfY2hlY2tfa25vd25fZ05fcGFyYW0ocy0+c3JwX2N0eC5nLHMtPnNycF9jdHguTikpCi0JCXJldHVybiAtMSA7Ci0KIAlSQU5EX2J5dGVzKHJuZCwgc2l6ZW9mKHJuZCkpOwogCXMtPnNycF9jdHguYSA9IEJOX2JpbjJibihybmQsIHNpemVvZihybmQpLCBzLT5zcnBfY3R4LmEpOwogCU9QRU5TU0xfY2xlYW5zZShybmQsIHNpemVvZihybmQpKTsKQEAgLTQyNiwxMCArNDU2LDYgQEAKIAlpZiAoIShzLT5zcnBfY3R4LkEgPSBTUlBfQ2FsY19BKHMtPnNycF9jdHguYSxzLT5zcnBfY3R4Lk4scy0+c3JwX2N0eC5nKSkpCiAJCXJldHVybiAtMTsKIAotCS8qIFdlIGNhbiBoYXZlIGEgY2FsbGJhY2sgdG8gdmVyaWZ5IFNSUCBwYXJhbSEhICovCi0JaWYgKHMtPnNycF9jdHguU1JQX3ZlcmlmeV9wYXJhbV9jYWxsYmFjayAhPU5VTEwpIAotCQlyZXR1cm4gcy0+c3JwX2N0eC5TUlBfdmVyaWZ5X3BhcmFtX2NhbGxiYWNrKHMscy0+c3JwX2N0eC5TUlBfY2JfYXJnKTsKLQogCXJldHVybiAxOwogCX0KIAo=