ZGlmZiAtLWdpdCBhL0JVSUxELmduIGIvQlVJTEQuZ24KaW5kZXggNGJhOTAxZS4uMDE1MjQxZiAxMDA2NDQKLS0tIGEvQlVJTEQuZ24KKysrIGIvQlVJTEQuZ24KQEAgLTc1Niw2ICs3NTYsNyBAQAogCiB0ZXN0KCJwZGZpdW1fZW1iZWRkZXJ0ZXN0cyIpIHsKICAgc291cmNlcyA9IFsKKyAgICAiY29yZS9zcmMvZnBkZmFwaS9mcGRmX3BhZ2UvZnBkZl9wYWdlX2Z1bmNfZW1iZWRkZXJ0ZXN0LmNwcCIsCiAgICAgImNvcmUvc3JjL2ZwZGZhcGkvZnBkZl9wYXJzZXIvZnBkZl9wYXJzZXJfZGVjb2RlX2VtYmVkZGVydGVzdC5jcHAiLAogICAgICJjb3JlL3NyYy9mcGRmYXBpL2ZwZGZfcGFyc2VyL2ZwZGZfcGFyc2VyX3BhcnNlcl9lbWJlZGRlcnRlc3QuY3BwIiwKICAgICAiZnBkZnNkay9zcmMvZnBkZl9kYXRhYXZhaWxfZW1iZWRkZXJ0ZXN0LmNwcCIsCmRpZmYgLS1naXQgYS9jb3JlL3NyYy9mcGRmYXBpL2ZwZGZfcGFnZS9mcGRmX3BhZ2VfZnVuYy5jcHAgYi9jb3JlL3NyYy9mcGRmYXBpL2ZwZGZfcGFnZS9mcGRmX3BhZ2VfZnVuYy5jcHAKaW5kZXggOGM5MDlhOS4uNGRlYjRkMyAxMDA2NDQKLS0tIGEvY29yZS9zcmMvZnBkZmFwaS9mcGRmX3BhZ2UvZnBkZl9wYWdlX2Z1bmMuY3BwCisrKyBiL2NvcmUvc3JjL2ZwZGZhcGkvZnBkZl9wYWdlL2ZwZGZfcGFnZV9mdW5jLmNwcApAQCAtNSwxMSArNSwxMyBAQAogLy8gT3JpZ2luYWwgY29kZSBjb3B5cmlnaHQgMjAxNCBGb3hpdCBTb2Z0d2FyZSBJbmMuIGh0dHA6Ly93d3cuZm94aXRzb2Z0d2FyZS5jb20KIAogI2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPHZlY3Rvcj4KIAorI2luY2x1ZGUgIi4uLy4uLy4uLy4uL3RoaXJkX3BhcnR5L2Jhc2Uvbm9uc3RkX3VuaXF1ZV9wdHIuaCIKKyNpbmNsdWRlICIuLi8uLi8uLi8uLi90aGlyZF9wYXJ0eS9iYXNlL251bWVyaWNzL3NhZmVfY29udmVyc2lvbnNfaW1wbC5oIgogI2luY2x1ZGUgIi4uLy4uLy4uL2luY2x1ZGUvZnBkZmFwaS9mcGRmX21vZHVsZS5oIgogI2luY2x1ZGUgIi4uLy4uLy4uL2luY2x1ZGUvZnBkZmFwaS9mcGRmX3BhZ2UuaCIKICNpbmNsdWRlICIuLi8uLi8uLi9pbmNsdWRlL2Z4Y3J0L2Z4X3NhZmVfdHlwZXMuaCIKLSNpbmNsdWRlICIuLi8uLi8uLi90aGlyZF9wYXJ0eS9iYXNlL251bWVyaWNzL3NhZmVfY29udmVyc2lvbnNfaW1wbC5oIgogI2luY2x1ZGUgInBhZ2VpbnQuaCIKIAogY2xhc3MgQ1BERl9QU0VuZ2luZTsKQEAgLTcyNCw3OCArNzI2LDg4IEBACiAgIEZYX0JPT0wgdl9Jbml0KENQREZfT2JqZWN0KiBwT2JqKSBvdmVycmlkZTsKICAgRlhfQk9PTCB2X0NhbGwoRlhfRkxPQVQqIGlucHV0cywgRlhfRkxPQVQqIHJlc3VsdHMpIGNvbnN0IG92ZXJyaWRlOwogCi0gIGludCBtX25TdWJzOwotICBDUERGX0Z1bmN0aW9uKiogbV9wU3ViRnVuY3Rpb25zOworICBzdGQ6OnZlY3RvcjxDUERGX0Z1bmN0aW9uKj4gbV9wU3ViRnVuY3Rpb25zOwogICBGWF9GTE9BVCogbV9wQm91bmRzOwogICBGWF9GTE9BVCogbV9wRW5jb2RlOworCisgIHN0YXRpYyBjb25zdCBpbnQga1JlcXVpcmVkTnVtSW5wdXRzID0gMTsKIH07CiAKIENQREZfU3RpdGNoRnVuYzo6Q1BERl9TdGl0Y2hGdW5jKCkgewotICBtX25TdWJzID0gMDsKLSAgbV9wU3ViRnVuY3Rpb25zID0gTlVMTDsKICAgbV9wQm91bmRzID0gTlVMTDsKICAgbV9wRW5jb2RlID0gTlVMTDsKIH0KIENQREZfU3RpdGNoRnVuYzo6fkNQREZfU3RpdGNoRnVuYygpIHsKLSAgZm9yIChpbnQgaSA9IDA7IGkgPCBtX25TdWJzOyBpKyspCi0gICAgZGVsZXRlIG1fcFN1YkZ1bmN0aW9uc1tpXTsKLSAgRlhfRnJlZShtX3BTdWJGdW5jdGlvbnMpOworICBmb3IgKGF1dG8mIHN1YiA6IG1fcFN1YkZ1bmN0aW9ucykgeworICAgIGRlbGV0ZSBzdWI7CisgIH0KICAgRlhfRnJlZShtX3BCb3VuZHMpOwogICBGWF9GcmVlKG1fcEVuY29kZSk7CiB9CiBGWF9CT09MIENQREZfU3RpdGNoRnVuYzo6dl9Jbml0KENQREZfT2JqZWN0KiBwT2JqKSB7CiAgIENQREZfRGljdGlvbmFyeSogcERpY3QgPSBwT2JqLT5HZXREaWN0KCk7Ci0gIGlmIChwRGljdCA9PSBOVUxMKSB7CisgIGlmICghcERpY3QpIHsKKyAgICByZXR1cm4gRkFMU0U7CisgIH0KKyAgaWYgKG1fbklucHV0cyAhPSBrUmVxdWlyZWROdW1JbnB1dHMpIHsKICAgICByZXR1cm4gRkFMU0U7CiAgIH0KICAgQ1BERl9BcnJheSogcEFycmF5ID0gcERpY3QtPkdldEFycmF5KEZYX0JTVFJDKCJGdW5jdGlvbnMiKSk7Ci0gIGlmIChwQXJyYXkgPT0gTlVMTCkgeworICBpZiAoIXBBcnJheSkgewogICAgIHJldHVybiBGQUxTRTsKICAgfQotICBtX25TdWJzID0gcEFycmF5LT5HZXRDb3VudCgpOwotICBpZiAobV9uU3VicyA9PSAwKSB7CisgIEZYX0RXT1JEIG5TdWJzID0gcEFycmF5LT5HZXRDb3VudCgpOworICBpZiAoblN1YnMgPT0gMCkgewogICAgIHJldHVybiBGQUxTRTsKICAgfQotICBtX3BTdWJGdW5jdGlvbnMgPSBGWF9BbGxvYyhDUERGX0Z1bmN0aW9uKiwgbV9uU3Vicyk7CiAgIG1fbk91dHB1dHMgPSAwOwotICBpbnQgaTsKLSAgZm9yIChpID0gMDsgaSA8IG1fblN1YnM7IGkrKykgeworICBmb3IgKEZYX0RXT1JEIGkgPSAwOyBpIDwgblN1YnM7IGkrKykgewogICAgIENQREZfT2JqZWN0KiBwU3ViID0gcEFycmF5LT5HZXRFbGVtZW50VmFsdWUoaSk7CiAgICAgaWYgKHBTdWIgPT0gcE9iaikgewogICAgICAgcmV0dXJuIEZBTFNFOwogICAgIH0KLSAgICBtX3BTdWJGdW5jdGlvbnNbaV0gPSBDUERGX0Z1bmN0aW9uOjpMb2FkKHBTdWIpOwotICAgIGlmIChtX3BTdWJGdW5jdGlvbnNbaV0gPT0gTlVMTCkgeworICAgIG5vbnN0ZDo6dW5pcXVlX3B0cjxDUERGX0Z1bmN0aW9uPiBwRnVuYyhDUERGX0Z1bmN0aW9uOjpMb2FkKHBTdWIpKTsKKyAgICBpZiAoIXBGdW5jKSB7CiAgICAgICByZXR1cm4gRkFMU0U7CiAgICAgfQotICAgIGlmIChtX3BTdWJGdW5jdGlvbnNbaV0tPkNvdW50T3V0cHV0cygpID4gbV9uT3V0cHV0cykgewotICAgICAgbV9uT3V0cHV0cyA9IG1fcFN1YkZ1bmN0aW9uc1tpXS0+Q291bnRPdXRwdXRzKCk7CisgICAgLy8gQ2hlY2sgdGhhdCB0aGUgaW5wdXQgZGltZW5zaW9uYWxpdHkgaXMgMSwgYW5kIHRoYXQgYWxsIG91dHB1dAorICAgIC8vIGRpbWVuc2lvbmFsaXRpZXMgYXJlIHRoZSBzYW1lLgorICAgIGlmIChwRnVuYy0+Q291bnRJbnB1dHMoKSAhPSBrUmVxdWlyZWROdW1JbnB1dHMpIHsKKyAgICAgIHJldHVybiBGQUxTRTsKICAgICB9CisgICAgaWYgKHBGdW5jLT5Db3VudE91dHB1dHMoKSAhPSBtX25PdXRwdXRzKSB7CisgICAgICBpZiAobV9uT3V0cHV0cykKKyAgICAgICAgcmV0dXJuIEZBTFNFOworCisgICAgICBtX25PdXRwdXRzID0gcEZ1bmMtPkNvdW50T3V0cHV0cygpOworICAgIH0KKworICAgIG1fcFN1YkZ1bmN0aW9ucy5wdXNoX2JhY2socEZ1bmMucmVsZWFzZSgpKTsKICAgfQotICBtX3BCb3VuZHMgPSBGWF9BbGxvYyhGWF9GTE9BVCwgbV9uU3VicyArIDEpOworICBtX3BCb3VuZHMgPSBGWF9BbGxvYyhGWF9GTE9BVCwgblN1YnMgKyAxKTsKICAgbV9wQm91bmRzWzBdID0gbV9wRG9tYWluc1swXTsKICAgcEFycmF5ID0gcERpY3QtPkdldEFycmF5KEZYX0JTVFJDKCJCb3VuZHMiKSk7Ci0gIGlmIChwQXJyYXkgPT0gTlVMTCkgeworICBpZiAoIXBBcnJheSkgewogICAgIHJldHVybiBGQUxTRTsKICAgfQotICBmb3IgKGkgPSAwOyBpIDwgbV9uU3VicyAtIDE7IGkrKykgeworICBmb3IgKEZYX0RXT1JEIGkgPSAwOyBpIDwgblN1YnMgLSAxOyBpKyspIHsKICAgICBtX3BCb3VuZHNbaSArIDFdID0gcEFycmF5LT5HZXRGbG9hdChpKTsKICAgfQotICBtX3BCb3VuZHNbbV9uU3Vic10gPSBtX3BEb21haW5zWzFdOwotICBtX3BFbmNvZGUgPSBGWF9BbGxvYzJEKEZYX0ZMT0FULCBtX25TdWJzLCAyKTsKKyAgbV9wQm91bmRzW25TdWJzXSA9IG1fcERvbWFpbnNbMV07CisgIG1fcEVuY29kZSA9IEZYX0FsbG9jMkQoRlhfRkxPQVQsIG5TdWJzLCAyKTsKICAgcEFycmF5ID0gcERpY3QtPkdldEFycmF5KEZYX0JTVFJDKCJFbmNvZGUiKSk7Ci0gIGlmIChwQXJyYXkgPT0gTlVMTCkgeworICBpZiAoIXBBcnJheSkgewogICAgIHJldHVybiBGQUxTRTsKICAgfQotICBmb3IgKGkgPSAwOyBpIDwgbV9uU3VicyAqIDI7IGkrKykgeworICBmb3IgKEZYX0RXT1JEIGkgPSAwOyBpIDwgblN1YnMgKiAyOyBpKyspIHsKICAgICBtX3BFbmNvZGVbaV0gPSBwQXJyYXktPkdldEZsb2F0KGkpOwogICB9CiAgIHJldHVybiBUUlVFOwogfQogRlhfQk9PTCBDUERGX1N0aXRjaEZ1bmM6OnZfQ2FsbChGWF9GTE9BVCogaW5wdXRzLCBGWF9GTE9BVCogb3V0cHV0cykgY29uc3QgewogICBGWF9GTE9BVCBpbnB1dCA9IGlucHV0c1swXTsKLSAgaW50IGk7Ci0gIGZvciAoaSA9IDA7IGkgPCBtX25TdWJzIC0gMTsgaSsrKQorICBzaXplX3QgaTsKKyAgZm9yIChpID0gMDsgaSA8IG1fcFN1YkZ1bmN0aW9ucy5zaXplKCkgLSAxOyBpKyspCiAgICAgaWYgKGlucHV0IDwgbV9wQm91bmRzW2kgKyAxXSkgewogICAgICAgYnJlYWs7CiAgICAgfQpAQCAtODA1LDcgKzgxNyw3IEBACiAgIGlucHV0ID0gUERGX0ludGVycG9sYXRlKGlucHV0LCBtX3BCb3VuZHNbaV0sIG1fcEJvdW5kc1tpICsgMV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcEVuY29kZVtpICogMl0sIG1fcEVuY29kZVtpICogMiArIDFdKTsKICAgaW50IG5yZXN1bHRzOwotICBtX3BTdWJGdW5jdGlvbnNbaV0tPkNhbGwoJmlucHV0LCBtX25JbnB1dHMsIG91dHB1dHMsIG5yZXN1bHRzKTsKKyAgbV9wU3ViRnVuY3Rpb25zW2ldLT5DYWxsKCZpbnB1dCwga1JlcXVpcmVkTnVtSW5wdXRzLCBvdXRwdXRzLCBucmVzdWx0cyk7CiAgIHJldHVybiBUUlVFOwogfQogQ1BERl9GdW5jdGlvbiogQ1BERl9GdW5jdGlvbjo6TG9hZChDUERGX09iamVjdCogcEZ1bmNPYmopIHsKZGlmZiAtLWdpdCBhL2NvcmUvc3JjL2ZwZGZhcGkvZnBkZl9wYWdlL2ZwZGZfcGFnZV9mdW5jX2VtYmVkZGVydGVzdC5jcHAgYi9jb3JlL3NyYy9mcGRmYXBpL2ZwZGZfcGFnZS9mcGRmX3BhZ2VfZnVuY19lbWJlZGRlcnRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmMDRiNGEKLS0tIC9kZXYvbnVsbAorKysgYi9jb3JlL3NyYy9mcGRmYXBpL2ZwZGZfcGFnZS9mcGRmX3BhZ2VfZnVuY19lbWJlZGRlcnRlc3QuY3BwCkBAIC0wLDAgKzEsMjAgQEAKKy8vIENvcHlyaWdodCAyMDE1IFBERml1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworI2luY2x1ZGUgIi4uLy4uLy4uL3Rlc3RpbmcvZW1iZWRkZXJfdGVzdC5oIgorI2luY2x1ZGUgInRlc3RpbmcvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC5oIgorCitjbGFzcyBGUERGUGFnZUZ1bmNFbWJlZGRlcnRlc3QgOiBwdWJsaWMgRW1iZWRkZXJUZXN0IHt9OworCitURVNUX0YoRlBERlBhZ2VGdW5jRW1iZWRkZXJ0ZXN0LCBCdWdfNTUxNDYwKSB7CisgIC8vIFNob3VsZCBub3QgY3Jhc2ggdW5kZXIgQVNhbi4KKyAgLy8gVGVzdHMgdGhhdCB0aGUgbnVtYmVyIG9mIGlucHV0cyBpcyBub3Qgc2ltcGx5IGNhbGN1bGF0ZWQgZnJvbSB0aGUgZG9tYWluCisgIC8vIGFuZCB0cnVzdGVkLiBUaGUgbnVtYmVyIG9mIGlucHV0cyBoYXMgdG8gYmUgMS4KKyAgRVhQRUNUX1RSVUUoT3BlbkRvY3VtZW50KCJ0ZXN0aW5nL3Jlc291cmNlcy9idWdfNTUxNDYwLnBkZiIpKTsKKyAgRlBERl9QQUdFIHBhZ2UgPSBMb2FkUGFnZSgwKTsKKyAgRVhQRUNUX05FKG51bGxwdHIsIHBhZ2UpOworICBGUERGX0JJVE1BUCBiaXRtYXAgPSBSZW5kZXJQYWdlKHBhZ2UpOworICBGUERGQml0bWFwX0Rlc3Ryb3koYml0bWFwKTsKKyAgVW5sb2FkUGFnZShwYWdlKTsKK30KZGlmZiAtLWdpdCBhL3BkZml1bS5neXAgYi9wZGZpdW0uZ3lwCmluZGV4IDZmMWU2ZDcuLjA4Y2IwNzUgMTAwNjQ0Ci0tLSBhL3BkZml1bS5neXAKKysrIGIvcGRmaXVtLmd5cApAQCAtNzQwLDYgKzc0MCw3IEBACiAgICAgICAgICc8KERFUFRIKS92OCcsCiAgICAgICBdLAogICAgICAgJ3NvdXJjZXMnOiBbCisgICAgICAgICdjb3JlL3NyYy9mcGRmYXBpL2ZwZGZfcGFnZS9mcGRmX3BhZ2VfZnVuY19lbWJlZGRlcnRlc3QuY3BwJywKICAgICAgICAgJ2NvcmUvc3JjL2ZwZGZhcGkvZnBkZl9wYXJzZXIvZnBkZl9wYXJzZXJfZGVjb2RlX2VtYmVkZGVydGVzdC5jcHAnLAogICAgICAgICAnY29yZS9zcmMvZnBkZmFwaS9mcGRmX3BhcnNlci9mcGRmX3BhcnNlcl9wYXJzZXJfZW1iZWRkZXJ0ZXN0LmNwcCcsCiAgICAgICAgICdmcGRmc2RrL3NyYy9mcGRmX2RhdGFhdmFpbF9lbWJlZGRlcnRlc3QuY3BwJywKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z181NTE0NjAuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfNTUxNDYwLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlZDJmM2YKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfNTUxNDYwLmluCkBAIC0wLDAgKzEsNzUgQEAKK3t7aGVhZGVyfX0KKwore3tvYmplY3QgMSAwfX0KKzw8CisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagorCit7e29iamVjdCAyIDB9fQorPDwKKyAgL0tpZHMgWyAzIDAgUiBdCis+PgorZW5kb2JqCisKK3t7b2JqZWN0IDMgMH19Cis8PAorICAvQ29udGVudHMgNiAwIFIKKyAgL1Jlc291cmNlcyA1IDAgUgorPj4KK2VuZG9iagorCit7e29iamVjdCA2IDB9fQorPDw+Pgorc3RyZWFtCiswLjAgRworMC4wIDEuMCAwLjAgcmcKKzI1IDE3NSAxNzUgLTE1MCByZQorL1NoIHNoCitlbmRzdHJlYW0KK2VuZG9iagorCit7e29iamVjdCA1IDB9fQorPDwKKyAgL1NoYWRpbmcgPDwKKyAgICAvU2ggNyAwIFIKKyAgPj4KKz4+CitlbmRvYmoKKwore3tvYmplY3QgNyAwfX0KKzw8CisgIC9TaGFkaW5nVHlwZSAxCisgIC9Db2xvclNwYWNlIC9EZXZpY2VDTVlLCisgIC9Db29yZHMgWzAuMCAwLjAgMS4wIDEuMF0KKyAgL0Z1bmN0aW9uIDkgMCBSCisgIC9FeHRlbmQgW3RydWUgdHJ1ZV0KKz4+CisKK3t7b2JqZWN0IDkgMH19Cis8PAorICAvRnVuY3Rpb25UeXBlIDMKKyAgL0RvbWFpbiBbMC4wIDEuMCAwLjAgMS4wXQorICAvRnVuY3Rpb25zIFsxMCAwIFJdCisgIC9Cb3VuZHMgWzIuMF0KKyAgL0VuY29kZSBbMC4wIDEuMF0KKz4+CitlbmRvYmoKKwore3tvYmplY3QgMTAgMH19Cis8PAorICAvRnVuY3Rpb25UeXBlIDIKKyAgL0RvbWFpbiBbMC4wIDEuMCAwLjAgMS4wXQorICAvQzAgWzAuMCAwLjBdCisgIC9DMSBbMS4wIDEuMF0KKyAgL04gMQorPj4KK2VuZG9iagorCit7e3hyZWZ9fQordHJhaWxlciA8PAorICAvUm9vdCAxIDAgUgorICAvU2l6ZSAxMQorPj4KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9idWdfNTUxNDYwLnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z181NTE0NjAucGRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyNmUzZmEKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfNTUxNDYwLnBkZgpAQCAtMCwwICsxLDg5IEBACislUERGLTEuNworJaDypPQKKworMSAwIG9iagorPDwKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCisKKzIgMCBvYmoKKzw8CisgIC9LaWRzIFsgMyAwIFIgXQorPj4KK2VuZG9iagorCiszIDAgb2JqCis8PAorICAvQ29udGVudHMgNiAwIFIKKyAgL1Jlc291cmNlcyA1IDAgUgorPj4KK2VuZG9iagorCis2IDAgb2JqCis8PD4+CitzdHJlYW0KKzAuMCBHCiswLjAgMS4wIDAuMCByZworMjUgMTc1IDE3NSAtMTUwIHJlCisvU2ggc2gKK2VuZHN0cmVhbQorZW5kb2JqCisKKzUgMCBvYmoKKzw8CisgIC9TaGFkaW5nIDw8CisgICAgL1NoIDcgMCBSCisgID4+Cis+PgorZW5kb2JqCisKKzcgMCBvYmoKKzw8CisgIC9TaGFkaW5nVHlwZSAxCisgIC9Db2xvclNwYWNlIC9EZXZpY2VDTVlLCisgIC9Db29yZHMgWzAuMCAwLjAgMS4wIDEuMF0KKyAgL0Z1bmN0aW9uIDkgMCBSCisgIC9FeHRlbmQgW3RydWUgdHJ1ZV0KKz4+CisKKzkgMCBvYmoKKzw8CisgIC9GdW5jdGlvblR5cGUgMworICAvRG9tYWluIFswLjAgMS4wIDAuMCAxLjBdCisgIC9GdW5jdGlvbnMgWzEwIDAgUl0KKyAgL0JvdW5kcyBbMi4wXQorICAvRW5jb2RlIFswLjAgMS4wXQorPj4KK2VuZG9iagorCisxMCAwIG9iagorPDwKKyAgL0Z1bmN0aW9uVHlwZSAyCisgIC9Eb21haW4gWzAuMCAxLjAgMC4wIDEuMF0KKyAgL0MwIFswLjAgMC4wXQorICAvQzEgWzEuMCAxLjBdCisgIC9OIDEKKz4+CitlbmRvYmoKKworeHJlZgorMCAxMQorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAxNiAwMDAwMCBuIAorMDAwMDAwMDA1MyAwMDAwMCBuIAorMDAwMDAwMDA5MyAwMDAwMCBuIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDIzNyAwMDAwMCBuIAorMDAwMDAwMDE1MiAwMDAwMCBuIAorMDAwMDAwMDI5MiAwMDAwMCBuIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDQxOCAwMDAwMCBuIAorMDAwMDAwMDU0NCAwMDAwMCBuIAordHJhaWxlciA8PAorICAvUm9vdCAxIDAgUgorICAvU2l6ZSAxMQorPj4KK3N0YXJ0eHJlZgorNjUyCislJUVPRgo=