ZGlmZiAtLWdpdCBhL25zaXMvZ3ZpbS5uc2kgYi9uc2lzL2d2aW0ubnNpCmluZGV4IGNjNjI5Y2QuLjhlMjQ3YTMgMTAwNjQ0Ci0tLSBhL25zaXMvZ3ZpbS5uc2kKKysrIGIvbnNpcy9ndmltLm5zaQpAQCAtMjIsNyArMjIsNyBAQAogIWRlZmluZSBIQVZFX05MUwogCiAhZGVmaW5lIFZFUl9NQUpPUiA3Ci0hZGVmaW5lIFZFUl9NSU5PUiAxCishZGVmaW5lIFZFUl9NSU5PUiAyYQogCiAjIC0tLS0tLS0tLS0tIE5vIGNvbmZpZ3VyYWJsZSBzZXR0aW5ncyBiZWxvdyB0aGlzIGxpbmUgLS0tLS0tLS0tLS0KIApAQCAtMTM5LDcgKzEzOSw3IEBACiBGdW5jdGlvbiAub25JbnN0U3VjY2VzcwogICBXcml0ZVVuaW5zdGFsbGVyIHZpbSR7VkVSX01BSk9SfSR7VkVSX01JTk9SfVx1bmluc3RhbGwtZ3VpLmV4ZQogICBNZXNzYWdlQm94IE1CX1lFU05PfE1CX0lDT05RVUVTVElPTiBcCi0JIlRoZSBpbnN0YWxsYXRpb24gcHJvY2VzcyBoYXMgYmVlbiBzdWNjZXNzZnVsbC4gSGFwcHkgVmltbWluZyEgXAorCSJUaGUgaW5zdGFsbGF0aW9uIHByb2Nlc3MgaGFzIGJlZW4gc3VjY2Vzc2Z1bC4gSGFwcHkgVmltbWluZyEgXAogCSRcbiRcbiBEbyB5b3Ugd2FudCB0byBzZWUgdGhlIFJFQURNRSBmaWxlIG5vdz8iIElETk8gTm9SZWFkbWUKICAgICAgIEV4ZWMgJyQwXGd2aW0uZXhlIC1SICIkMFxSRUFETUUudHh0IicKICAgTm9SZWFkbWU6CmRpZmYgLS1naXQgYS9ydW50aW1lL2F1dG9sb2FkL3ZpbWJhbGwudmltIGIvcnVudGltZS9hdXRvbG9hZC92aW1iYWxsLnZpbQppbmRleCA1ZWQzNGYyLi5kNjljNjQ1IDEwMDY0NAotLS0gYS9ydW50aW1lL2F1dG9sb2FkL3ZpbWJhbGwudmltCisrKyBiL3J1bnRpbWUvYXV0b2xvYWQvdmltYmFsbC52aW0KQEAgLTEsOSArMSw5IEBACiAiIHZpbWJhbGwudmltIDogY29uc3RydWN0IGEgZmlsZSBjb250YWluaW5nIGJvdGggcGF0aHMgYW5kIGZpbGVzCiAiIEF1dGhvcjoJQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuCi0iIERhdGU6CQlNYXkgMDcsIDIwMDcKLSIgVmVyc2lvbjoJMjIKKyIgRGF0ZToJCUp1biAwNSwgMjAwOAorIiBWZXJzaW9uOgkyNwogIiBHZXRMYXRlc3RWaW1TY3JpcHRzOiAxNTAyIDEgOkF1dG9JbnN0YWxsOiB2aW1iYWxsLnZpbQotIiBDb3B5cmlnaHQ6IChjKSAyMDA0LTIwMDYgYnkgQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuCisiIENvcHlyaWdodDogKGMpIDIwMDQtMjAwOCBieSBDaGFybGVzIEUuIENhbXBiZWxsLCBKci4KICIgICAgICAgICAgICBUaGUgVklNIExJQ0VOU0UgYXBwbGllcyB0byBWaW1iYWxsLnZpbSwgYW5kIFZpbWJhbGwudHh0CiAiICAgICAgICAgICAgKHNlZSB8Y29weXJpZ2h0fCkgZXhjZXB0IHVzZSAiVmltYmFsbCIgaW5zdGVhZCBvZiAiVmltIi4KICIgICAgICAgICAgICBObyB3YXJyYW50eSwgZXhwcmVzcyBvciBpbXBsaWVkLgpAQCAtMTUsOCArMTUsOSBAQAogIGZpbmlzaAogZW5kaWYKIGxldCBzOmtlZXBjcG8gICAgICAgID0gJmNwbwotbGV0IGc6bG9hZGVkX3ZpbWJhbGwgPSAidjIyIgorbGV0IGc6bG9hZGVkX3ZpbWJhbGwgPSAidjI3Igogc2V0IGNwbyZ2aW0KKyJEZWNob1RhYk9uCiAKICIgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAiIENvbnN0YW50czoge3t7MQpAQCAtMjQsNiArMjUsNTcgQEAKICBsZXQgczpVU0FHRSAgID0gMAogIGxldCBzOldBUk5JTkcgPSAxCiAgbGV0IHM6RVJST1IgICA9IDIKKworICIgZGV0ZXJtaW5lIGlmIGN5Z3dpbiBpcyBpbiB1c2Ugb3Igbm90CisgaWYgIWV4aXN0cygiZzpuZXRyd19jeWd3aW4iKQorICBpZiBoYXMoIndpbjMyIikgfHwgaGFzKCJ3aW45NSIpIHx8IGhhcygid2luNjQiKSB8fCBoYXMoIndpbjE2IikKKyAgIGlmICZzaGVsbCA9fiAnXCUoXDxiYXNoXD5cfFw8enNoXD5cKVwlKFwuZXhlXClcPSQnCisgICAgbGV0IGc6bmV0cndfY3lnd2luPSAxCisgICBlbHNlCisgICAgbGV0IGc6bmV0cndfY3lnd2luPSAwCisgICBlbmRpZgorICBlbHNlCisgICBsZXQgZzpuZXRyd19jeWd3aW49IDAKKyAgZW5kaWYKKyBlbmRpZgorCisgIiBzZXQgdXAgZzp2aW1iYWxsX21rZGlyIGlmIHRoZSBta2RpcigpIGNhbGwgaXNuJ3QgZGVmaW5lZAorIGlmICFleGlzdHMoIipta2RpciIpCisgIGlmIGV4aXN0cygiZzpuZXRyd19sb2NhbF9ta2RpciIpCisgICBsZXQgZzp2aW1iYWxsX21rZGlyPSBnOm5ldHJ3X2xvY2FsX21rZGlyCisgIGVsc2VpZiBleGVjdXRhYmxlKCJta2RpciIpCisgICBsZXQgZzp2aW1iYWxsX21rZGlyPSAibWtkaXIiCisgIGVsc2VpZiBleGVjdXRhYmxlKCJtYWtlZGlyIikKKyAgIGxldCBnOnZpbWJhbGxfbWtkaXI9ICJtYWtlZGlyIgorICBlbmRpZgorICBpZiAhZXhpc3RzKGc6dmltYmFsbF9ta2RpcikKKyAgIGNhbGwgdmltYmFsbCNTaG93TWVzZyhzOldBUk5JTkcsIih2aW1iYWxsKSBnOnZpbWJhbGxfbWtkaXIgdW5kZWZpbmVkIikKKyAgZW5kaWYKKyBlbmRpZgorCisgIiBzZXQgdXAgc2hlbGwgcXVvdGluZyBjaGFyYWN0ZXIKKyBpZiBleGlzdHMoImc6dmltYmFsbF9zaHEiKSAmJiAhZXhpc3RzKCJnOm5ldHJ3X3NocSIpCisgIGxldCBnOm5ldHJ3X3NocT0gZzp2aW1iYWxsX3NocQorIGVuZGlmCisgaWYgIWV4aXN0cygiZzpuZXRyd19zaHEiKQorICBpZiBleGlzdHMoIiZzaHEiKSAmJiAmc2hxICE9ICIiCisgICBsZXQgZzpuZXRyd19zaHE9ICZzaHEKKyAgZWxzZWlmIGhhcygid2luMzIiKSB8fCBoYXMoIndpbjk1IikgfHwgaGFzKCJ3aW42NCIpIHx8IGhhcygid2luMTYiKQorICAgaWYgZzpuZXRyd19jeWd3aW4KKyAgICBsZXQgZzpuZXRyd19zaHE9ICInIgorICAgZWxzZQorICAgIGxldCBnOm5ldHJ3X3NocT0gJyInCisgICBlbmRpZgorICBlbHNlCisgICBsZXQgZzpuZXRyd19zaHE9ICInIgorICBlbmRpZgorIiBjYWxsIERlY2hvKCJnOm5ldHJ3X3NocTwiLmc6bmV0cndfc2hxLiI+IikKKyBlbmRpZgorCisgIiBzZXQgdXAgZXNjYXBlIHN0cmluZyAodXNlZCB0byBwcm90ZWN0IHBhdGhzKQorIGlmICFleGlzdHMoImc6dmltYmFsbF9wYXRoX2VzY2FwZSIpCisgIGxldCBnOnZpbWJhbGxfcGF0aF9lc2NhcGU9ICcgOyMlJworIGVuZGlmCiBlbmRpZgogCiAiID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpAQCAtMzEsNyArODMsMTIgQEAKIAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgdmltYmFsbCNNa1ZpbWJhbGw6IGNyZWF0ZXMgYSB2aW1iYWxsIGdpdmVuIGEgbGlzdCBvZiBwYXRocyB0byBmaWxlcyB7e3syCi0iIFZpbWJhbGwgRm9ybWF0OgorIiBJbnB1dDoKKyIgICAgIGxpbmUxLGxpbmUyOiBhIHJhbmdlIG9mIGxpbmVzIGNvbnRhaW5pbmcgcGF0aHMgdG8gZmlsZXMgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIHZpbWJhbGwKKyIgICAgIHdyaXRlbGV2ZWwgOiBpZiB0cnVlLCBmb3JjZSBhIHdyaXRlIHRvIGZpbGVuYW1lLnZiYSwgZXZlbiBpZiBpdCBleGlzdHMKKyIgICAgICAgICAgICAgICAgICAodXN1YWxseSBhY2NvbXBsaXNoZWQgd2l0aCA6TWtWaW1iYWxsISAuLi4KKyIgICAgIGZpbGVuYW1lICAgOiBiYXNlIG5hbWUgb2YgZmlsZSB0byBiZSBjcmVhdGVkIChpZS4gZmlsZW5hbWUudmJhKQorIiBPdXRwdXQ6IGEgZmlsZW5hbWUudmJhIHVzaW5nIHZpbWJhbGwgZm9ybWF0OgogIiAgICAgcGF0aAogIiAgICAgZmlsZXNpemUKICIgICAgIFtmaWxlXQpAQCAtNDAsNyArOTcsNyBAQAogIiAgICAgW2ZpbGVdCiBmdW4hIHZpbWJhbGwjTWtWaW1iYWxsKGxpbmUxLGxpbmUyLHdyaXRlbGV2ZWwsLi4uKSByYW5nZQogIiAgY2FsbCBEZnVuYygiTWtWaW1iYWxsKGxpbmUxPSIuYTpsaW5lMS4iIGxpbmUyPSIuYTpsaW5lMi4iIHdyaXRlbGV2ZWw9Ii5hOndyaXRlbGV2ZWwuIiB2aW1iYWxsbmFtZTwiLmE6MS4iPikgYTowPSIuYTowKQotICBpZiBhOjEgPX4gJy52aW0nIHx8IGE6MSA9fiAnLnR4dCcKKyAgaWYgYToxID1+ICdcLnZpbSQnIHx8IGE6MSA9fiAnXC50eHQkJwogICAgbGV0IHZibmFtZT0gc3Vic3RpdHV0ZShhOjEsJ1wuXGFcezN9JCcsJy52YmEnLCcnKQogICBlbHNlCiAgICBsZXQgdmJuYW1lPSBhOjEKQEAgLTYxLDcgKzExOCw3IEBACiAgIGVuZGlmCiAKICAgIiB1c2VyIG9wdGlvbiBieXBhc3MKLSAgY2FsbCBzOlNhdmVTZXR0aW5ncygpCisgIGNhbGwgdmltYmFsbCNTYXZlU2V0dGluZ3MoKQogCiAgIGlmIGE6MCA+PSAyCiAgICAiIGFsbG93IHVzZXIgdG8gc3BlY2lmeSB3aGVyZSB0byBnZXQgdGhlIGZpbGVzCkBAIC04Nyw3ICsxNDQsNyBAQAogICAgaWYgIWZpbGVyZWFkYWJsZShzdmZpbGUpCiAgICAgY2FsbCB2aW1iYWxsI1Nob3dNZXNnKHM6RVJST1IsInVuYWJsZSB0byByZWFkIGZpbGU8Ii5zdmZpbGUuIj4iKQogCWNhbGwgczpDaGdEaXIoY3VyZGlyKQotCWNhbGwgczpSZXN0b3JlU2V0dGluZ3MoKQorCWNhbGwgdmltYmFsbCNSZXN0b3JlU2V0dGluZ3MoKQogIiAgICBjYWxsIERyZXQoIk1rVmltYmFsbCIpCiAgICAgcmV0dXJuCiAgICBlbmRpZgpAQCAtMTEzLDggKzE3MCw4IEBACiAKICAgICIgd3JpdGUgdGhlIGZpbGUgZnJvbSB0aGUgdGFiCiAgICBsZXQgc3ZmaWxlcGF0aD0gczpQYXRoKHN2ZmlsZSwnJykKLSIgICBjYWxsIERlY2hvKCJleGUgJHIgIi5zdmZpbGVwYXRoKQotICAgZXhlICIkciAiLnN2ZmlsZXBhdGgKKyIgICBjYWxsIERlY2hvKCJleGUgJHIgIi5mbmFtZWVzY2FwZShzdmZpbGVwYXRoKSkKKyAgIGV4ZSAiJHIgIi5mbmFtZWVzY2FwZShzdmZpbGVwYXRoKQogCiAgICBjYWxsIHNldGxpbmUobGFzdGxpbmUrMSxsaW5lKCIkIikgLSBsYXN0bGluZSAtIDEpCiAiICAgY2FsbCBEZWNobygibGFzdGxpbmU9Ii5sYXN0bGluZS4iIGxpbmUkPSIubGluZSgiJCIpKQpAQCAtMTI3LDE0ICsxODQsMTUgQEAKICAgIiB3cml0ZSB0aGUgdmltYmFsbAogICBleGUgInRhYm4gIi52YnRhYm5yCiAgIGNhbGwgczpDaGdEaXIoY3VyZGlyKQorICBzZXRsb2NhbCBmZj11bml4CiAgIGlmIGE6d3JpdGVsZXZlbAogICAgbGV0IHZibmFtZXBhdGg9IHM6UGF0aCh2Ym5hbWUsJycpCi0iICAgY2FsbCBEZWNobygiZXhlIHchICIudmJuYW1lcGF0aCkKLSAgIGV4ZSAidyEgIi52Ym5hbWVwYXRoCisiICAgY2FsbCBEZWNobygiZXhlIHchICIuZm5hbWVlc2NhcGUodmJuYW1lcGF0aCkpCisgICBleGUgInchICIuZm5hbWVlc2NhcGUodmJuYW1lcGF0aCkKICAgZWxzZQogICAgbGV0IHZibmFtZXBhdGg9IHM6UGF0aCh2Ym5hbWUsJycpCi0iICAgY2FsbCBEZWNobygiZXhlIHcgIi52Ym5hbWVwYXRoKQotICAgZXhlICJ3ICIudmJuYW1lcGF0aAorIiAgIGNhbGwgRGVjaG8oImV4ZSB3ICIuZm5hbWVlc2NhcGUodmJuYW1lcGF0aCkpCisgICBleGUgIncgIi5mbmFtZWVzY2FwZSh2Ym5hbWVwYXRoKQogICBlbmRpZgogIiAgY2FsbCBEZWNobygiVmltYmFsbDwiLnZibmFtZS4iPiBjcmVhdGVkIikKICAgZWNobyAiVmltYmFsbDwiLnZibmFtZS4iPiBjcmVhdGVkIgpAQCAtMTQ1LDE2ICsyMDMsMjQgQEAKICAgZXhlICJ0YWJjICIudmJ0YWJucgogCiAgICIgcmVzdG9yZSBvcHRpb25zCi0gIGNhbGwgczpSZXN0b3JlU2V0dGluZ3MoKQorICBjYWxsIHZpbWJhbGwjUmVzdG9yZVNldHRpbmdzKCkKIAogIiAgY2FsbCBEcmV0KCJNa1ZpbWJhbGwiKQogZW5kZnVuCiAKICIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAiIHZpbWJhbGwjVmltYmFsbDogZXh0cmFjdCBhbmQgZGlzdHJpYnV0ZSBjb250ZW50cyBmcm9tIGEgdmltYmFsbCB7e3syCisiICAgICAgICAgICAgICAgICAgKGludm9rZWQgdGhlIHRoZSBVc2VWaW1iYWxsIGNvbW1hbmQgZW1iZWRkZWQgaW4gCisiICAgICAgICAgICAgICAgICAgdmltYmFsbHMnIHByb2xvZ3VlKQogZnVuISB2aW1iYWxsI1ZpbWJhbGwocmVhbGx5LC4uLikKICIgIGNhbGwgRGZ1bmMoInZpbWJhbGwjVmltYmFsbChyZWFsbHk9Ii5hOnJlYWxseS4iKSBhOjA9Ii5hOjApCiAKKyAgaWYgdjp2ZXJzaW9uIDwgNzAxIHx8ICh2OnZlcnNpb24gPT0gNzAxICYmICFoYXMoInBhdGNoMjk5IikpCisgICBlY2hvZXJyICJUaGlzIHZlcnNpb24gb2YgdmltYmFsbCByZXF1aXJlcyB2aW0gNy4xIHdpdGggcGF0Y2ggMjk5IgorIiAgIGNhbGwgRHJldCgidmltYmFsbCNWaW1iYWxsIDogbmVlZHMgNy4xIHdpdGggcGF0Y2ggMjk5IikKKyAgIHJldHVybgorICBlbmRpZgorCiAgIGlmIGdldGxpbmUoMSkgIX4gJ14iIFZpbWJhbGwgQXJjaGl2ZXIgYnkgQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuLCBQaC5ELiQnCiAgICBlY2hvZXJyICIoVmltYmFsbCkgVGhlIGN1cnJlbnQgZmlsZSBkb2VzIG5vdCBhcHBlYXIgdG8gYmUgYSBWaW1iYWxsISIKICIgICBjYWxsIERyZXQoInZpbWJhbGwjVmltYmFsbCIpCkBAIC0xNjIsOCArMjI4LDkgQEAKICAgZW5kaWYKIAogICAiIHNldCB1cCBzdGFuZGFyZCBzZXR0aW5ncwotICBjYWxsIHM6U2F2ZVNldHRpbmdzKCkKLSAgbGV0IGN1cnRhYm5yID0gdGFicGFnZW5yKCkKKyAgY2FsbCB2aW1iYWxsI1NhdmVTZXR0aW5ncygpCisgIGxldCBjdXJ0YWJuciAgICA9IHRhYnBhZ2VucigpCisgIGxldCB2aW1iYWxsZmlsZSA9IGV4cGFuZCgiJTp0ciIpCiAKICAgIiBzZXQgdXAgdmltYmFsbCB0YWIKICIgIGNhbGwgRGVjaG8oInNldHRpbmcgdXAgdmltYmFsbCB0YWIiKQpAQCAtMTg2LDE2ICsyNTMsMTggQEAKICIgIGNhbGwgRGVjaG8oImN1cmRpcjwiLmN1cmRpci4iPiIpCiAKICAgY2FsbCBzOkNoZ0Rpcihob21lKQotICBjYWxsIHZpbWJhbGwjUm1WaW1iYWxsKCkKKyAgbGV0IHM6b2tfdW5hYmxlZmluZD0gMQorICBjYWxsIHZpbWJhbGwjUm1WaW1iYWxsKHZpbWJhbGxmaWxlKQorICB1bmxldCBzOm9rX3VuYWJsZWZpbmQKIAogICBsZXQgbGluZW5yICA9IDQKICAgbGV0IGZpbGVjbnQgPSAwCiAKICAgIiBnaXZlIHRpdGxlIHRvIGxpc3Rpbmcgb2YgKGV4dHJhY3RlZCkgZmlsZXMgZnJvbSBWaW1iYWxsIEFyY2hpdmUKICAgaWYgYTpyZWFsbHkKLSAgIGVjaG9obCBUaXRsZSB8IGVjaG9tc2cgIlZpbWJhbGwgQXJjaGl2ZSIgfCBlY2hvaGwgTm9uZQotICBlbHNlCi0gICBlY2hvaGwgVGl0bGUgfCBlY2hvbXNnICJWaW1iYWxsIEFyY2hpdmUgTGlzdGluZyIgfCBlY2hvaGwgTm9uZQorICAgZWNob2hsIFRpdGxlICAgICB8IGVjaG9tc2cgIlZpbWJhbGwgQXJjaGl2ZSIgICAgICAgICB8IGVjaG9obCBOb25lCisgIGVsc2UgICAgICAgICAgICAgCisgICBlY2hvaGwgVGl0bGUgICAgIHwgZWNob21zZyAiVmltYmFsbCBBcmNoaXZlIExpc3RpbmciIHwgZWNob2hsIE5vbmUKICAgIGVjaG9obCBTdGF0ZW1lbnQgfCBlY2hvbXNnICJmaWxlcyB3b3VsZCBiZSBwbGFjZWQgdW5kZXI6ICIuaG9tZSB8IGVjaG9obCBOb25lCiAgIGVuZGlmCiAKQEAgLTIwNiw3ICsyNzUsNyBAQAogICB3aGlsZSAxIDwgbGluZW5yICYmIGxpbmVuciA8IGxpbmUoIiQiKQogICAgbGV0IGZuYW1lICAgPSBzdWJzdGl0dXRlKGdldGxpbmUobGluZW5yKSwnXHRcW1xbXFsxJCcsJycsJycpCiAgICBsZXQgZm5hbWUgICA9IHN1YnN0aXR1dGUoZm5hbWUsJ1xcJywnLycsJ2cnKQotICAgbGV0IGZzaXplICAgPSBnZXRsaW5lKGxpbmVucisxKQorICAgbGV0IGZzaXplICAgPSBnZXRsaW5lKGxpbmVucisxKSswCiAgICBsZXQgZmlsZWNudCA9IGZpbGVjbnQgKyAxCiAiICAgY2FsbCBEZWNobygiZm5hbWU8Ii5mbmFtZS4iPiBmc2l6ZT0iLmZzaXplLiIgZmlsZWNudD0iLmZpbGVjbnQpCiAKQEAgLTIxOSwxMCArMjg4LDEwIEBACiAiICAgY2FsbCBEZWNobygidXNpbmcgTCMiLihsaW5lbnIrMSkuIjogZnNpemU9Ii5mc2l6ZSkKIAogICAgIiBBbGxvdyBBc05lZWRlZC8gZGlyZWN0b3J5IHRvIHRha2UgcGxhY2Ugb2YgcGx1Z2luLyBkaXJlY3RvcnkKLSAgICIgd2hlbiBBc05lZWRlZC9maWxlbmFtZSBpcyBmaWxlcmVhZGFibGUKKyAgICIgd2hlbiBBc05lZWRlZC9maWxlbmFtZSBpcyBmaWxlcmVhZGFibGUgb3Igd2FzIHByZXNlbnQgaW4gVmltYmFsbFJlY29yZAogICAgaWYgZm5hbWUgPX4gJ1w8cGx1Z2luLycKICAgIAlsZXQgYW5mbmFtZT0gc3Vic3RpdHV0ZShmbmFtZSwnXDxwbHVnaW4vJywnQXNOZWVkZWQvJywnJykKLQlpZiBmaWxlcmVhZGFibGUoYW5mbmFtZSkKKwlpZiBmaWxlcmVhZGFibGUoYW5mbmFtZSkgfHwgKGV4aXN0cygiczpWQlJzdHJpbmciKSAmJiBzOlZCUnN0cmluZyA9fiBhbmZuYW1lKQogIgkgY2FsbCBEZWNobygidXNpbmcgYW5mbmFtZTwiLmFuZm5hbWUuIj4gaW5zdGVhZCBvZiA8Ii5mbmFtZS4iPiIpCiAJIGxldCBmbmFtZT0gYW5mbmFtZQogCWVuZGlmCkBAIC0yNDAsNyArMzA5LDExIEBACiAiCSBjYWxsIERlY2hvKCJkaXJuYW1lPCIuZGlybmFtZS4iPiIpCiAgICAgIGlmICFpc2RpcmVjdG9yeShkaXJuYW1lKQogIiAgICAgIGNhbGwgRGVjaG8oIm1ha2luZyA8Ii5kaXJuYW1lLiI+IikKLSAgICAgIGNhbGwgbWtkaXIoZGlybmFtZSkKKyAgICAgIGlmIGV4aXN0cygiZzp2aW1iYWxsX21rZGlyIikKKwkgICBjYWxsIHN5c3RlbShnOnZpbWJhbGxfbWtkaXIuIiAiLnM6RXNjYXBlKGRpcm5hbWUpKQorICAgICAgZWxzZQorICAgICAgIGNhbGwgbWtkaXIoZGlybmFtZSkKKyAgICAgIGVuZGlmCiAJICBjYWxsIHM6UmVjb3JkSW5WYXIoaG9tZSwicm1kaXIoJyIuZGlybmFtZS4iJykiKQogICAgICBlbmRpZgogICAgIGVuZHdoaWxlCkBAIC0yNTcsNiArMzMwLDcgQEAKICAgICIgY29weSAiYSIgYnVmZmVyIGludG8gdGFiCiAiICAgY2FsbCBEZWNobygnY29weSAiYSBidWZmZXIgaW50byB0YWIjJy52YnRhYm5yKQogICAgZXhlICJ0YWJuICIudmJ0YWJucgorICAgc2V0bG9jYWwgbWEKICAgIHNpbGVudCEgJWQKICAgIHNpbGVudCBwdXQgYQogICAgMQpAQCAtMjY1LDEwICszMzksMTAgQEAKICAgICIgd3JpdGUgdGFiIHRvIGZpbGUKICAgIGlmIGE6cmVhbGx5CiAgICAgbGV0IGZuYW1lcGF0aD0gczpQYXRoKGhvbWUuIi8iLmZuYW1lLCcnKQotIiAgICBjYWxsIERlY2hvKCJleGUgdyEgIi5mbmFtZXBhdGgpCi0gICAgZXhlICJzaWxlbnQgdyEgIi5mbmFtZXBhdGgKKyIgICAgY2FsbCBEZWNobygiZXhlIHchICIuZm5hbWVlc2NhcGUoZm5hbWVwYXRoKSkKKwlleGUgInNpbGVudCB3ISAiLmZuYW1lZXNjYXBlKGZuYW1lcGF0aCkKICAgICBlY2hvICJ3cm90ZSAiLmZuYW1lcGF0aAotCWNhbGwgczpSZWNvcmRJblZhcihob21lLCJjYWxsIGRlbGV0ZSgnIi5mbmFtZXBhdGguIicpIikKKwljYWxsIHM6UmVjb3JkSW5WYXIoaG9tZSwiY2FsbCBkZWxldGUoJyIuZm5hbWVlc2NhcGUoZm5hbWVwYXRoKS4iJykiKQogICAgZW5kaWYKIAogICAgIiByZXR1cm4gdG8gdGFiIHdpdGggdmltYmFsbApAQCAtMjc3LDIxICszNTEsMjAgQEAKIAogICAgIiBzZXQgdXAgaGVscCBpZiBpdHMgYSBkb2MvKi50eHQgZmlsZQogIiAgIGNhbGwgRGVjaG8oImRpZGhlbHA8Ii5kaWRoZWxwLiI+IGZuYW1lPCIuZm5hbWUuIj4iKQotICAgaWYgYTpyZWFsbHkgJiYgZGlkaGVscCA9PSAiIiAmJiBmbmFtZSA9fiAnZG9jL1teL11cK1wudHh0JCcKLSAgIAlsZXQgZGlkaGVscD0gc3Vic3RpdHV0ZShmbmFtZSwnXlwoLipcPGRvY1wpWy9cXF1bXi5dKlwudHh0JCcsJ1wxJywnJykKKyAgIGlmIGE6cmVhbGx5ICYmIGRpZGhlbHAgPT0gIiIgJiYgZm5hbWUgPX4gJ2RvYy9bXi9dXCtcLlwodHh0XHwuLnhcKSQnCisgICAJbGV0IGRpZGhlbHA9IHN1YnN0aXR1dGUoZm5hbWUsJ15cKC4qXDxkb2NcKVsvXFxdW14uXSpcLlwodHh0XHwuLnhcKSQnLCdcMScsJycpCiAiCWNhbGwgRGVjaG8oImRpZGhlbHA8Ii5kaWRoZWxwLiI+IikKICAgIGVuZGlmCiAKICAgICIgdXBkYXRlIGZvciBuZXh0IGZpbGUKLSIgICBsZXQgb2xkbGluZW5yID0gbGluZW5yICIgRGVjaG8KLSAgIGxldCBsaW5lbnIgICAgPSBsaW5lbnIgKyBmc2l6ZQotIiAgIGNhbGwgRGVjaG8oInVwZGF0ZSBsaW5lbnI9IFtsaW5lbnI9Ii5vbGRsaW5lbnIuIl0gKyBbZnNpemU9Ii5mc2l6ZS4iXSA9ICIubGluZW5yKQorIiAgIGNhbGwgRGVjaG8oInVwZGF0ZSBsaW5lbnI9IFtsaW5lbnI9Ii5saW5lbnIuIl0gKyBbZnNpemU9Ii5mc2l6ZS4iXSA9ICIuKGxpbmVucitmc2l6ZSkpCisgICBsZXQgbGluZW5yPSBsaW5lbnIgKyBmc2l6ZQogICBlbmR3aGlsZQogCiAgICIgc2V0IHVwIGhlbHAKICIgIGNhbGwgRGVjaG8oImFib3V0IHRvIHNldCB1cCBoZWxwOiBkaWRoZWxwPCIuZGlkaGVscC4iPiIpCiAgIGlmIGRpZGhlbHAgIT0gIiIKLSAgIGxldCBodHBhdGg9IGVzY2FwZShzdWJzdGl0dXRlKHM6UGF0aChob21lLiIvIi5kaWRoZWxwLCciJyksJyInLCcnLCdnJyksJyAnKQorICAgbGV0IGh0cGF0aD0gczpQYXRoKGhvbWUuIi8iLmRpZGhlbHAsIiIpCiAiICAgY2FsbCBEZWNobygiZXhlIGhlbHB0YWdzICIuaHRwYXRoKQogICAgZXhlICJoZWxwdGFncyAiLmh0cGF0aAogICAgZWNobyAiZGlkIGhlbHB0YWdzIgpAQCAtMzExLDcgKzM4NCw3IEBACiAgIHNldGxvY2FsIG5vbW9kIGJoPXdpcGUKICAgZXhlICJ0YWJuICIuY3VydGFibnIKICAgZXhlICJ0YWJjICIudmJ0YWJucgotICBjYWxsIHM6UmVzdG9yZVNldHRpbmdzKCkKKyAgY2FsbCB2aW1iYWxsI1Jlc3RvcmVTZXR0aW5ncygpCiAgIGNhbGwgczpDaGdEaXIoY3VyZGlyKQogCiAiICBjYWxsIERyZXQoInZpbWJhbGwjVmltYmFsbCIpCkBAIC0zMjksMTIgKzQwMiwxMCBAQAogIiAgIGNhbGwgRHJldCgidmltYmFsbCNSbVZpbWJhbGwgOiAoZzp2aW1iYWxsX25vcmVjb3JkKSIpCiAgICByZXR1cm4KICAgZW5kaWYKLSAgbGV0IGVpa2VlcD0gJmVpCi0gIHNldCBlaT1hbGwKLSIgIGNhbGwgRGVjaG8oInR1cm5lZCBvZmYgYWxsIGV2ZW50cyIpCiAKICAgaWYgYTowID09IDAKLSAgIGxldCBjdXJmaWxlPSAnXicuZXhwYW5kKCIlOnRyIikKKyAgIGxldCBjdXJmaWxlPSBleHBhbmQoIiU6dHIiKQorIiAgIGNhbGwgRGVjaG8oImNhc2UgYTowPTA6IGN1cmZpbGU8Ii5jdXJmaWxlLiI+ICh1c2VkIGV4cGFuZCglOnRyKSkiKQogICBlbHNlCiAgICBpZiBhOjEgPX4gJ1tcL10nCiAgICAgY2FsbCB2aW1iYWxsI1Nob3dNZXNnKHM6VVNBR0UsIlJtVmltYmFsbCB2aW1iYWxsbmFtZSBbcGF0aF0iKQpAQCAtMzQyLDExICs0MTMsMTAgQEAKICAgICByZXR1cm4KICAgIGVuZGlmCiAgICBsZXQgY3VyZmlsZT0gYToxCisiICAgY2FsbCBEZWNobygiY2FzZSBhOjA9Ii5hOjAuIjogY3VyZmlsZTwiLmN1cmZpbGUuIj4iKQogICBlbmRpZgotICBpZiBjdXJmaWxlICF+ICcudmJhJCcKLSAgIGxldCBjdXJmaWxlPSBjdXJmaWxlLiIudmJhOiAiCi0gIGVsc2UKLSAgIGxldCBjdXJmaWxlPSBjdXJmaWxlLiI6ICIKKyAgaWYgY3VyZmlsZSA9fiAnXC52YmEkJworICAgbGV0IGN1cmZpbGU9IHN1YnN0aXR1dGUoY3VyZmlsZSwnXC52YmEnLCcnLCcnKQogICBlbmRpZgogICBpZiBhOjAgPj0gMgogICAgbGV0IGhvbWU9IGV4cGFuZChhOjIpCkBAIC0zNjUsMTMgKzQzNSwzNCBAQAogICAga2VlcGFsdCBrZWVwanVtcHMgMXNwbGl0IAogICAgc2lsZW50ISBrZWVwYWx0IGtlZXBqdW1wcyBlIC5WaW1iYWxsUmVjb3JkCiAgICBsZXQga2VlcHNyY2g9IEAvCi0gICBpZiBzZWFyY2goY3VyZmlsZSwnY3cnKQotICAgCWxldCBleGVzdHJpbmc9IHN1YnN0aXR1dGUoZ2V0bGluZSgiLiIpLGN1cmZpbGUsJycsJycpCisiICAgY2FsbCBEZWNobygic2VhcmNoIGZvciBeIi5jdXJmaWxlLiIudmJhOiIpCisiICAgY2FsbCBEZWNobygic2VhcmNoIGZvciBeIi5jdXJmaWxlLiJbLTAtOS5dKi52YmE6IikKKyAgIGlmIHNlYXJjaCgnXicuY3VyZmlsZS4iOiAiLidjdycpCisJbGV0IGZvdW5kaXQ9IDEKKyAgIGVsc2VpZiBzZWFyY2goJ14nLmN1cmZpbGUuIi52YmE6ICIsJ2N3JykKKwlsZXQgZm91bmRpdD0gMQorICAgZWxzZWlmIHNlYXJjaCgnXicuY3VyZmlsZS4nWy0wLTkuXSoudmJhOiAnLCdjdycpCisJbGV0IGZvdW5kaXQ9IDEKKyAgIGVsc2UKKyAgICBsZXQgZm91bmRpdCA9IDAKKyAgIGVuZGlmCisgICBpZiBmb3VuZGl0CisJbGV0IGV4ZXN0cmluZyAgPSBzdWJzdGl0dXRlKGdldGxpbmUoIi4iKSwnXicuY3VyZmlsZS4nXFNcey19XC52YmE6ICcsJycsJycpCisgICAgbGV0IHM6VkJSc3RyaW5nPSBzdWJzdGl0dXRlKGV4ZXN0cmluZywnY2FsbCBkZWxldGUoJywnJywnZycpCisgICAgbGV0IHM6VkJSc3RyaW5nPSBzdWJzdGl0dXRlKHM6VkJSc3RyaW5nLCJbJyldIiwnJywnZycpCiAiCWNhbGwgRGVjaG8oImV4ZSAiLmV4ZXN0cmluZykKIAlzaWxlbnQhIGtlZXBhbHQga2VlcGp1bXBzIGV4ZSBleGVzdHJpbmcKIAlzaWxlbnQhIGtlZXBhbHQga2VlcGp1bXBzIGQKKwlsZXQgZXhlc3RyaW5nPSBzdHJsZW4oc3Vic3RpdHV0ZShleGVzdHJpbmcsJ2NhbGwgZGVsZXRlKC5cey19KXxcPScsIkQiLCJnIikpCisiCWNhbGwgRGVjaG8oImV4ZXN0cmluZzwiLmV4ZXN0cmluZy4iPiIpCisJZWNob21zZyAicmVtb3ZlZCAiLmV4ZXN0cmluZy4iIGZpbGVzIgogICAgZWxzZQotIiAgIAljYWxsIERlY2hvKCJ1bmFibGUgdG8gZmluZCA8Ii5jdXJmaWxlLiI+IGluIC5WaW1iYWxsUmVjb3JkIikKKyAgICBsZXQgczpWQlJzdHJpbmc9ICcnCisJbGV0IGN1cmZpbGUgICAgPSBzdWJzdGl0dXRlKGN1cmZpbGUsJ1wudmJhJywnJywnJykKKyIgICAgY2FsbCBEZWNobygidW5hYmxlIHRvIGZpbmQgPCIuY3VyZmlsZS4iPiBpbiAuVmltYmFsbFJlY29yZCIpCisJaWYgIWV4aXN0cygiczpva191bmFibGVmaW5kIikKKyAgICAgY2FsbCB2aW1iYWxsI1Nob3dNZXNnKHM6V0FSTklORywiKFJtVmltYmFsbCkgdW5hYmxlIHRvIGZpbmQgPCIuY3VyZmlsZS4iPiBpbiAuVmltYmFsbFJlY29yZCIpCisJZW5kaWYKICAgIGVuZGlmCiAgICBzaWxlbnQhIGtlZXBhbHQga2VlcGp1bXBzIGcvXlxzKiQvZAogICAgc2lsZW50ISBrZWVwYWx0IGtlZXBqdW1wcyB3cSEKQEAgLTM3OSwxMCArNDcwLDYgQEAKICAgZW5kaWYKICAgY2FsbCBzOkNoZ0RpcihjdXJkaXIpCiAKLSAgIiByZXN0b3JpbmcgZXZlbnRzCi0iICBjYWxsIERlY2hvKCJyZXN0b3JpbmcgZXZlbnRzIikKLSAgbGV0ICZlaT0gZWlrZWVwCi0KICIgIGNhbGwgRHJldCgidmltYmFsbCNSbVZpbWJhbGwiKQogZW5kZnVuCiAKQEAgLTM5MywyMSArNDgwLDU2IEBACiAKICAgIiBkZWNvbXByZXNzaW9uOgogICBpZiAgICAgZXhwYW5kKCIlIikgPX4gJy4qXC5neicgICYmIGV4ZWN1dGFibGUoImd1bnppcCIpCi0gICBleGUgIiFndW56aXAgIi5hOmZuYW1lCisgICAiIGhhbmRsZSAqLmd6IHdpdGggZ3VuemlwCisgICBzaWxlbnQgZXhlICIhZ3VuemlwICIuczpFc2NhcGUoYTpmbmFtZSkKKyAgIGlmIHY6c2hlbGxfZXJyb3IgIT0gMAorCWNhbGwgdmltYmFsbCNTaG93TWVzZyhzOldBUk5JTkcsIih2aW1iYWxsI0RlY29tcHJlc3MpIGd1bnppcCBtYXkgaGF2ZSBmYWlsZWQgd2l0aCA8Ii5hOmZuYW1lLiI+IikKKyAgIGVuZGlmCiAgICBsZXQgZm5hbWU9IHN1YnN0aXR1dGUoYTpmbmFtZSwnXC5neiQnLCcnLCcnKQogICAgZXhlICJlICIuZXNjYXBlKGZuYW1lLCcgXCcpCiAgICBjYWxsIHZpbWJhbGwjU2hvd01lc2coczpVU0FHRSwiU291cmNlIHRoaXMgZmlsZSB0byBleHRyYWN0IGl0ISAoOnNvICUpIikKKworICBlbHNlaWYgZXhwYW5kKCIlIikgPX4gJy4qXC5neicgJiYgZXhlY3V0YWJsZSgiZ3ppcCIpCisgICAiIGhhbmRsZSAqLmd6IHdpdGggZ3ppcCAtZAorICAgc2lsZW50IGV4ZSAiIWd6aXAgLWQgIi5zOkVzY2FwZShhOmZuYW1lKQorICAgaWYgdjpzaGVsbF9lcnJvciAhPSAwCisJY2FsbCB2aW1iYWxsI1Nob3dNZXNnKHM6V0FSTklORywnKHZpbWJhbGwjRGVjb21wcmVzcykgImd6aXAgLWQiIG1heSBoYXZlIGZhaWxlZCB3aXRoIDwnLmE6Zm5hbWUuIj4iKQorICAgZW5kaWYKKyAgIGxldCBmbmFtZT0gc3Vic3RpdHV0ZShhOmZuYW1lLCdcLmd6JCcsJycsJycpCisgICBleGUgImUgIi5lc2NhcGUoZm5hbWUsJyBcJykKKyAgIGNhbGwgdmltYmFsbCNTaG93TWVzZyhzOlVTQUdFLCJTb3VyY2UgdGhpcyBmaWxlIHRvIGV4dHJhY3QgaXQhICg6c28gJSkiKQorCiAgIGVsc2VpZiBleHBhbmQoIiUiKSA9fiAnLipcLmJ6MicgJiYgZXhlY3V0YWJsZSgiYnVuemlwMiIpCi0gICBleGUgIiFidW56aXAyICIuYTpmbmFtZQorICAgIiBoYW5kbGUgKi5iejIgd2l0aCBidW56aXAyCisgICBzaWxlbnQgZXhlICIhYnVuemlwMiAiLnM6RXNjYXBlKGE6Zm5hbWUpCisgICBpZiB2OnNoZWxsX2Vycm9yICE9IDAKKwljYWxsIHZpbWJhbGwjU2hvd01lc2coczpXQVJOSU5HLCIodmltYmFsbCNEZWNvbXByZXNzKSBidW56aXAyIG1heSBoYXZlIGZhaWxlZCB3aXRoIDwiLmE6Zm5hbWUuIj4iKQorICAgZW5kaWYKICAgIGxldCBmbmFtZT0gc3Vic3RpdHV0ZShhOmZuYW1lLCdcLmJ6MiQnLCcnLCcnKQogICAgZXhlICJlICIuZXNjYXBlKGZuYW1lLCcgXCcpCiAgICBjYWxsIHZpbWJhbGwjU2hvd01lc2coczpVU0FHRSwiU291cmNlIHRoaXMgZmlsZSB0byBleHRyYWN0IGl0ISAoOnNvICUpIikKKworICBlbHNlaWYgZXhwYW5kKCIlIikgPX4gJy4qXC5iejInICYmIGV4ZWN1dGFibGUoImJ6aXAyIikKKyAgICIgaGFuZGxlICouYnoyIHdpdGggYnppcDIgLWQKKyAgIHNpbGVudCBleGUgIiFiemlwMiAtZCAiLnM6RXNjYXBlKGE6Zm5hbWUpCisgICBpZiB2OnNoZWxsX2Vycm9yICE9IDAKKwljYWxsIHZpbWJhbGwjU2hvd01lc2coczpXQVJOSU5HLCcodmltYmFsbCNEZWNvbXByZXNzKSAiYnppcDIgLWQiIG1heSBoYXZlIGZhaWxlZCB3aXRoIDwnLmE6Zm5hbWUuIj4iKQorICAgZW5kaWYKKyAgIGxldCBmbmFtZT0gc3Vic3RpdHV0ZShhOmZuYW1lLCdcLmJ6MiQnLCcnLCcnKQorICAgZXhlICJlICIuZXNjYXBlKGZuYW1lLCcgXCcpCisgICBjYWxsIHZpbWJhbGwjU2hvd01lc2coczpVU0FHRSwiU291cmNlIHRoaXMgZmlsZSB0byBleHRyYWN0IGl0ISAoOnNvICUpIikKKwogICBlbHNlaWYgZXhwYW5kKCIlIikgPX4gJy4qXC56aXAnICYmIGV4ZWN1dGFibGUoInVuemlwIikKLSAgIGV4ZSAiIXVuemlwICIuYTpmbmFtZQorICAgIiBoYW5kbGUgKi56aXAgd2l0aCB1bnppcAorICAgc2lsZW50IGV4ZSAiIXVuemlwICIuczpFc2NhcGUoYTpmbmFtZSkKKyAgIGlmIHY6c2hlbGxfZXJyb3IgIT0gMAorCWNhbGwgdmltYmFsbCNTaG93TWVzZyhzOldBUk5JTkcsIih2aW1iYWxsI0RlY29tcHJlc3MpIHVuemlwIG1heSBoYXZlIGZhaWxlZCB3aXRoIDwiLmE6Zm5hbWUuIj4iKQorICAgZW5kaWYKICAgIGxldCBmbmFtZT0gc3Vic3RpdHV0ZShhOmZuYW1lLCdcLnppcCQnLCcnLCcnKQogICAgZXhlICJlICIuZXNjYXBlKGZuYW1lLCcgXCcpCiAgICBjYWxsIHZpbWJhbGwjU2hvd01lc2coczpVU0FHRSwiU291cmNlIHRoaXMgZmlsZSB0byBleHRyYWN0IGl0ISAoOnNvICUpIikKICAgZW5kaWYKKwogICBzZXQgbm9tYSBidD1ub2ZpbGUgZm1yPVtbWyxdXV0gZmRtPW1hcmtlcgogCiAiICBjYWxsIERyZXQoIkRlY29tcHJlc3MiKQpAQCAtNDQzLDM0ICs1NjUsMzUgQEAKIAogIiAgY2FsbCBEcmV0KCJ2aW1iYWxsI1Nob3dNZXNnIikKIGVuZGZ1bgotCi0iIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotbGV0ICZjcG89IHM6a2VlcGNwbwotdW5sZXQgczprZWVwY3BvCiAiID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogIiBzOkNoZ0RpcjogY2hhbmdlIGRpcmVjdG9yeSAoaW4gc3BpdGUgb2YgV2luZG96ZSkge3t7MgogZnVuISBzOkNoZ0RpcihuZXdkaXIpCiAiICBjYWxsIERmdW5jKCJDaGdEaXIobmV3ZGlyPCIuYTpuZXdkaXIuIj4pIikKICAgaWYgKGhhcygid2luMzIiKSB8fCBoYXMoIndpbjk1IikgfHwgaGFzKCJ3aW42NCIpIHx8IGhhcygid2luMTYiKSkKLSAgICBleGUgJ3NpbGVudCBjZCAnLmVzY2FwZShzdWJzdGl0dXRlKGE6bmV3ZGlyLCcvJywnXFwnLCdnJyksJyAnKQorICAgZXhlICdzaWxlbnQgY2QgJy5mbmFtZWVzY2FwZShzdWJzdGl0dXRlKGE6bmV3ZGlyLCcvJywnXFwnLCdnJykpCiAgIGVsc2UKLSAgIGV4ZSAnc2lsZW50IGNkICcuZXNjYXBlKGE6bmV3ZGlyLCcgJykKKyAgIGV4ZSAnc2lsZW50IGNkICcuZm5hbWVlc2NhcGUoYTpuZXdkaXIpCiAgIGVuZGlmCi0iICBjYWxsIERyZXQoIkNoZ0RpciIpCisiICBjYWxsIERyZXQoIkNoZ0RpciA6IGN1cmRpcjwiLmdldGN3ZCgpLiI+IikKIGVuZGZ1bgogCiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIiBzOlBhdGg6IHByZXBlbmQgYW5kIGFwcGVuZCBxdW90ZXMsIGRvIGVzY2FwaW5nLCBhcyBuZWNlc3Nhcnkge3t7MgorIiBzOlBhdGg6IHByZXBlbmQgYW5kIGFwcGVuZCBxdW90ZXMgYW5kIGRvIGVzY2FwaW5nIHt7ezIKIGZ1biEgczpQYXRoKGNtZCxxdW90ZSkKLSIgIGNhbGwgRGZ1bmMoIlBhdGgoY21kPCIuYTpjbWQuIj4gcXVvdGU8Ii5hOnF1b3RlLiI+KSIpCisiICBjYWxsIERmdW5jKCJQYXRoKGNtZDwiLmE6Y21kLiI+IHF1b3RlPCIuYTpxdW90ZS4iPikgdmltYmFsbF9wYXRoX2VzY2FwZTwiLmc6dmltYmFsbF9wYXRoX2VzY2FwZS4iPiIpCiAgIGlmIChoYXMoIndpbjMyIikgfHwgaGFzKCJ3aW45NSIpIHx8IGhhcygid2luNjQiKSB8fCBoYXMoIndpbjE2IikpCi0gICBsZXQgY21kcGF0aD0gYTpxdW90ZS5zdWJzdGl0dXRlKGE6Y21kLCcvJywnXFwnLCdnJykuYTpxdW90ZQorIiAgIGxldCBjbWRwYXRoPSBhOnF1b3RlLnN1YnN0aXR1dGUoYTpjbWQsJy8nLCdcXCcsJ2cnKS5hOnF1b3RlCisgICBsZXQgY21kcGF0aD0gYTpxdW90ZS5zdWJzdGl0dXRlKGE6Y21kLCdcXCcsJy8nLCdnJykuYTpxdW90ZQorIiAgIGNhbGwgRGVjaG8oImNtZHBhdGg8Ii5jbWRwYXRoLiI+ICh3aW4zMiBtb2QpIikKICAgZWxzZQogICAgbGV0IGNtZHBhdGg9IGE6cXVvdGUuYTpjbWQuYTpxdW90ZQorIiAgIGNhbGwgRGVjaG8oImNtZHBhdGg8Ii5jbWRwYXRoLiI+IChub3Qtd2luMzIgbW9kKSIpCiAgIGVuZGlmCi0gIGlmIGE6cXVvdGUgPT0gIiIKKyAgaWYgYTpxdW90ZSA9PSAiIiAmJiBnOnZpbWJhbGxfcGF0aF9lc2NhcGUgIX4gJyAnCiAgICBsZXQgY21kcGF0aD0gZXNjYXBlKGNtZHBhdGgsJyAnKQorIiAgIGNhbGwgRGVjaG8oImNtZHBhdGg8Ii5jbWRwYXRoLiI+IChlbXB0eSBxdW90ZSBjYXNlKSIpCiAgIGVuZGlmCisgIGxldCBjbWRwYXRoPSBlc2NhcGUoY21kcGF0aCxnOnZpbWJhbGxfcGF0aF9lc2NhcGUpCiAiICBjYWxsIERyZXQoIlBhdGggPCIuY21kcGF0aC4iPiIpCiAgIHJldHVybiBjbWRwYXRoCiBlbmRmdW4KQEAgLTQ4NSwyMyArNjA4LDIwIEBACiAiICAgZWxzZQogIiAgICBsZXQgczpyZWNvcmRkaXI9IHM6cmVjb3JkZGlyLiJ8Ii5zdWJzdGl0dXRlKGE6Y21kLCdecm1kaXInLCJjYWxsIHM6Um1kaXIiLCcnKQogIiAgIGVuZGlmCi0iICAgY2FsbCBEZWNobygicmVjb3JkZGlyPSIuczpyZWNvcmRkaXIpCiAgIGVsc2VpZiAhZXhpc3RzKCJzOnJlY29yZGZpbGUiKQogICAgbGV0IHM6cmVjb3JkZmlsZT0gYTpjbWQKLSIgICBjYWxsIERlY2hvKCJyZWNvcmRmaWxlPSIuczpyZWNvcmRmaWxlKQogICBlbHNlCiAgICBsZXQgczpyZWNvcmRmaWxlPSBzOnJlY29yZGZpbGUuInwiLmE6Y21kCi0iICAgY2FsbCBEZWNobygicmVjb3JkZmlsZT0iLnM6cmVjb3JkZmlsZSkKICAgZW5kaWYKLSIgIGNhbGwgRHJldCgiUmVjb3JkSW5WYXIiKQorIiAgY2FsbCBEcmV0KCJSZWNvcmRJblZhciA6IHM6cmVjb3JkZmlsZTwiLihleGlzdHMoInM6cmVjb3JkZmlsZSIpPyBzOnJlY29yZGZpbGUgOiAiIikuIj4gczpyZWNvcmRkaXI8Ii4oZXhpc3RzKCJzOnJlY29yZGRpciIpPyBzOnJlY29yZGRpciA6ICIiKS4iPiIpCiBlbmRmdW4KIAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgczpSZWNvcmRJbkZpbGU6IHt7ezIKIGZ1biEgczpSZWNvcmRJbkZpbGUoaG9tZSkKLSIgIGNhbGwgRGZ1bmMoIlJlY29yZEluRmlsZSgpIikKKyIgIGNhbGwgRGZ1bmMoInM6UmVjb3JkSW5GaWxlKCkiKQogICBpZiBleGlzdHMoImc6dmltYmFsbF9ub3JlY29yZCIpCi0iICAgY2FsbCBEcmV0KCJSZWNvcmRJbkZpbGUgOiAoZzp2aW1iYWxsX25vcmVjb3JkKSIpCisiICAgY2FsbCBEcmV0KCJzOlJlY29yZEluRmlsZSA6IGc6dmltYmFsbF9ub3JlY29yZCIpCiAgICByZXR1cm4KICAgZW5kaWYKIApAQCAtNTA5LDggKzYyOSwxMiBAQAogICAgbGV0IGN1cmRpcj0gZ2V0Y3dkKCkKICAgIGNhbGwgczpDaGdEaXIoYTpob21lKQogICAga2VlcGFsdCBrZWVwanVtcHMgMXNwbGl0IAorCiAgICBsZXQgY21kPSBleHBhbmQoIiU6dHIiKS4iOiAiCisiICAgY2FsbCBEZWNobygiY21kPCIuY21kLiI+IikKKwogICAgc2lsZW50ISBrZWVwYWx0IGtlZXBqdW1wcyBlIC5WaW1iYWxsUmVjb3JkCisgICBzZXRsb2NhbCBtYQogICAgJAogICAgaWYgZXhpc3RzKCJzOnJlY29yZGZpbGUiKSAmJiBleGlzdHMoInM6cmVjb3JkZGlyIikKICAgIAlsZXQgY21kPSBjbWQuczpyZWNvcmRmaWxlLiJ8Ii5zOnJlY29yZGRpcgpAQCAtNTE5LDM1ICs2NDMsMzMgQEAKICAgIGVsc2VpZiBleGlzdHMoInM6cmVjb3JkZmlsZSIpCiAgICAJbGV0IGNtZD0gY21kLnM6cmVjb3JkZmlsZQogICAgZWxzZQotIiAgICBjYWxsIERyZXQoIlJlY29yZEluRmlsZSIpCisiICAgIGNhbGwgRHJldCgiczpSZWNvcmRJbkZpbGUgOiBuZWl0aGVyIHJlY29yZGZpbGUgbm9yIHJlY29yZGRpciBleGlzdCIpCiAJcmV0dXJuCiAgICBlbmRpZgorIiAgIGNhbGwgRGVjaG8oImNtZDwiLmNtZC4iPiIpCisKKyAgICIgcHV0IGNvbW1hbmQgaW50byBidWZmZXIsIHdyaXRlIC5WaW1iYWxsUmVjb3JkIGBmaWxlCiAgICBrZWVwYWx0IGtlZXBqdW1wcyBwdXQ9Y21kCiAgICBzaWxlbnQhIGtlZXBhbHQga2VlcGp1bXBzIGcvXlxzKiQvZAogICAgc2lsZW50ISBrZWVwYWx0IGtlZXBqdW1wcyB3cSEKICAgIGNhbGwgczpDaGdEaXIoY3VyZGlyKQotICAgaWYgZXhpc3RzKCJzOnJlY29yZGRpciIpIHx1bmxldCBzOnJlY29yZGRpciB8ZW5kaWYKLSAgIGlmIGV4aXN0cygiczpyZWNvcmRmaWxlIil8dW5sZXQgczpyZWNvcmRmaWxlfGVuZGlmCisKKyAgIGlmIGV4aXN0cygiczpyZWNvcmRkaXIiKQorIgljYWxsIERlY2hvKCJ1bmxldCBzOnJlY29yZGRpcjwiLnM6cmVjb3JkZGlyLiI+IikKKyAgIAl1bmxldCBzOnJlY29yZGRpcgorICAgZW5kaWYKKyAgIGlmIGV4aXN0cygiczpyZWNvcmRmaWxlIikKKyIJY2FsbCBEZWNobygidW5sZXQgczpyZWNvcmRmaWxlPCIuczpyZWNvcmRmaWxlLiI+IikKKyAgIAl1bmxldCBzOnJlY29yZGZpbGUKKyAgIGVuZGlmCiAgIGVsc2UKICIgICBjYWxsIERlY2hvKCJzOnJlY29yZFtmaWxlfGRpcl0gZG9lc24ndCBleGlzdCIpCiAgIGVuZGlmCiAKLSIgIGNhbGwgRHJldCgiUmVjb3JkSW5GaWxlIikKKyIgIGNhbGwgRHJldCgiczpSZWNvcmRJbkZpbGUiKQogZW5kZnVuCiAKICIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0iIHM6Um1kaXI6IHt7ezIKLSJmdW4hIHM6Um1kaXIoZGlybmFtZSkKLSIiICBjYWxsIERmdW5jKCJzOlJtZGlyKGRpcm5hbWU8Ii5hOmRpcm5hbWUuIj4pIikKLSIgIGlmIChoYXMoIndpbjMyIikgfHwgaGFzKCJ3aW45NSIpIHx8IGhhcygid2luNjQiKSB8fCBoYXMoIndpbjE2IikpICYmICZzaGVsbCAhfj8gJ3NoJCcKLSIgICAgY2FsbCBzeXN0ZW0oImRlbCAiLmE6ZGlybmFtZSkKLSIgIGVsc2UKLSIgICBjYWxsIHN5c3RlbSgicm1kaXIgIi5hOmRpcm5hbWUpCi0iICBlbmRpZgotIiIgIGNhbGwgRHJldCgiczpSbWRpciIpCi0iZW5kZnVuCi0KLSIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAiIHM6VmltYmFsbEhvbWU6IGRldGVybWluZS9nZXQgaG9tZSBkaXJlY3RvcnkgcGF0aCAodXN1YWxseSBmcm9tIHJ0cCkge3t7MgogZnVuISBzOlZpbWJhbGxIb21lKCkKICIgIGNhbGwgRGZ1bmMoIlZpbWJhbGxIb21lKCkiKQpAQCAtNTU3LDYgKzY3OSwxMSBAQAogICAgIiBnbyB0byB2aW0gcGx1Z2luIGhvbWUKICAgIGZvciBob21lIGluIHNwbGl0KCZydHAsJywnKSArIFsnJ10KICAgICBpZiBpc2RpcmVjdG9yeShob21lKSAmJiBmaWxld3JpdGFibGUoaG9tZSkgfCBicmVhayB8IGVuZGlmCisJbGV0IGJhc2Vob21lPSBzdWJzdGl0dXRlKGhvbWUsJ1svXFxdXC52aW0kJywnJywnJykKKyAgICBpZiBpc2RpcmVjdG9yeShiYXNlaG9tZSkgJiYgZmlsZXdyaXRhYmxlKGJhc2Vob21lKQorCSBsZXQgaG9tZT0gYmFzZWhvbWUuIi8udmltIgorCSBicmVhaworCWVuZGlmCiAgICBlbmRmb3IKICAgIGlmIGhvbWUgPT0gIiIKICAgICAiIGp1c3QgcGljayB0aGUgZmlyc3QgZGlyZWN0b3J5CkBAIC01NjYsMTMgKzY5MywyNSBAQAogICAgIGxldCBob21lPSBzdWJzdGl0dXRlKGhvbWUsJy8nLCdcXCcsJ2cnKQogICAgZW5kaWYKICAgZW5kaWYKKyAgIiBpbnN1cmUgdGhhdCB0aGUgaG9tZSBkaXJlY3RvcnkgZXhpc3RzCisiICBjYWxsIERlY2hvKCJwaWNrZWQgaG9tZTwiLmhvbWUuIj4iKQorICBpZiAhaXNkaXJlY3RvcnkoaG9tZSkKKyAgIGlmIGV4aXN0cygiZzp2aW1iYWxsX21rZGlyIikKKyIJY2FsbCBEZWNobygiaG9tZTwiLmhvbWUuIj4gaXNuJ3QgYSBkaXJlY3RvcnkgLS0gbWFraW5nIGl0IG5vdyB3aXRoIGc6dmltYmFsbF9ta2RpcjwiLmc6dmltYmFsbF9ta2Rpci4iPiIpCisiICAgIGNhbGwgRGVjaG8oInN5c3RlbSgiLmc6dmltYmFsbF9ta2Rpci4iICIuczpFc2NhcGUoaG9tZSkuIikiKQorICAgIGNhbGwgc3lzdGVtKGc6dmltYmFsbF9ta2Rpci4iICIuczpFc2NhcGUoaG9tZSkpCisgICBlbHNlCisiCWNhbGwgRGVjaG8oImhvbWU8Ii5ob21lLiI+IGlzbid0IGEgZGlyZWN0b3J5IC0tIG1ha2luZyBpdCBub3cgd2l0aCBta2RpcigpIikKKyAgICBjYWxsIG1rZGlyKGhvbWUpCisgICBlbmRpZgorICBlbmRpZgogIiAgY2FsbCBEcmV0KCJWaW1iYWxsSG9tZSA8Ii5ob21lLiI+IikKICAgcmV0dXJuIGhvbWUKIGVuZGZ1bgogCiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIiBzOlNhdmVTZXR0aW5nczoge3t7MgotZnVuISBzOlNhdmVTZXR0aW5ncygpCisiIHZpbWJhbGwjU2F2ZVNldHRpbmdzOiB7e3syCitmdW4hIHZpbWJhbGwjU2F2ZVNldHRpbmdzKCkKICIgIGNhbGwgRGZ1bmMoIlNhdmVTZXR0aW5ncygpIikKICAgbGV0IHM6bWFrZWVwICA9IGdldHBvcygiJ2EiKQogICBsZXQgczpyZWdha2VlcD0gQGEKQEAgLTU4NywxNyArNzI2LDIwIEBACiAgIGxldCBzOnBta2VlcCAgPSAmcG0KICAgbGV0IHM6cmVwa2VlcCA9ICZyZXBvcnQKICAgbGV0IHM6dmVrZWVwICA9ICZ2ZQorICBsZXQgczpmZmtlZXAgID0gJmZmCiAgIGlmIGV4aXN0cygiJmFjZCIpCi0gICBzZXQgZWk9YWxsIHZlPWFsbCBub2FjZCBub2ZlbiBub2ljIHJlcG9ydD05OTkgbm9oaWQgYnQ9IG1hIGx6IHBtPQorICAgc2V0bG9jYWwgZWk9YWxsIHZlPWFsbCBub2FjZCBub2ZlbiBub2ljIHJlcG9ydD05OTkgbm9oaWQgYnQ9IG1hIGx6IHBtPSBmZj11bml4CiAgIGVsc2UKLSAgIHNldCBlaT1hbGwgdmU9YWxsIG5vZmVuIG5vaWMgcmVwb3J0PTk5OSBub2hpZCBidD0gbWEgbHogcG09CisgICBzZXRsb2NhbCBlaT1hbGwgdmU9YWxsICAgICAgIG5vZmVuIG5vaWMgcmVwb3J0PTk5OSBub2hpZCBidD0gbWEgbHogcG09IGZmPXVuaXgKICAgZW5kaWYKKyAgIiB2aW1iYWxscyBzaG91bGQgYmUgaW4gdW5peCBmb3JtYXQKKyAgc2V0bG9jYWwgZmY9dW5peAogIiAgY2FsbCBEcmV0KCJTYXZlU2V0dGluZ3MiKQogZW5kZnVuCiAKICIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0iIHM6UmVzdG9yZVNldHRpbmdzOiB7e3syCi1mdW4hIHM6UmVzdG9yZVNldHRpbmdzKCkKKyIgdmltYmFsbCNSZXN0b3JlU2V0dGluZ3M6IHt7ezIKK2Z1biEgdmltYmFsbCNSZXN0b3JlU2V0dGluZ3MoKQogIiAgY2FsbCBEZnVuYygiUmVzdG9yZVNldHRpbmdzKCkiKQogICBsZXQgQGEgICAgICA9IHM6cmVnYWtlZXAKICAgaWYgZXhpc3RzKCImYWNkIikKQEAgLTYxMSwyMCArNzUzLDM0IEBACiAgIGxldCAmcmVwb3J0ID0gczpyZXBrZWVwCiAgIGxldCAmdmUgICAgID0gczp2ZWtlZXAKICAgbGV0ICZlaSAgICAgPSBzOmVpa2VlcAorICBsZXQgJmZmICAgICA9IHM6ZmZrZWVwCiAgIGlmIHM6bWFrZWVwWzBdICE9IDAKICAgICIgcmVzdG9yZSBtYXJrIGEKICIgICBjYWxsIERlY2hvKCJyZXN0b3JlIG1hcmstYTogbWFrZWVwPSIuc3RyaW5nKG1ha2VlcCkpCiAgICBjYWxsIHNldHBvcygiJ2EiLHM6bWFrZWVwKQogICBlbmRpZgogICBpZiBleGlzdHMoIiZhY2QiKQotICAgdW5sZXQgczpyZWdha2VlcCBzOmFjZGtlZXAgczplaWtlZXAgczpmZW5rZWVwIHM6aGlka2VlcCBzOmlja2VlcCBzOnJlcGtlZXAgczp2ZWtlZXAgczptYWtlZXAgczpsemtlZXAgczpwbWtlZXAKLSAgZWxzZQotICAgdW5sZXQgczpyZWdha2VlcCBzOmVpa2VlcCBzOmZlbmtlZXAgczpoaWRrZWVwIHM6aWNrZWVwIHM6cmVwa2VlcCBzOnZla2VlcCBzOm1ha2VlcCBzOmx6a2VlcCBzOnBta2VlcAorICAgdW5sZXQgczphY2RrZWVwCiAgIGVuZGlmCi0gIHNldCBidD1ub2ZpbGUgbm9tYQorICB1bmxldCBzOnJlZ2FrZWVwIHM6ZWlrZWVwIHM6ZmVua2VlcCBzOmhpZGtlZXAgczppY2tlZXAgczpyZXBrZWVwIHM6dmVrZWVwIHM6bWFrZWVwIHM6bHprZWVwIHM6cG1rZWVwIHM6ZmZrZWVwCiAiICBjYWxsIERyZXQoIlJlc3RvcmVTZXR0aW5ncyIpCiBlbmRmdW4KIAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyIgczpFc2NhcGU6IHt7ezIKK2Z1biBzOkVzY2FwZShuYW1lKQorICAiIHNoZWxsZXNjYXBlKCkgd2FzIGFkZGVkIGJ5IHBhdGNoIDcuMC4xMTEKKyAgaWYgZXhpc3RzKCIqc2hlbGxlc2NhcGUiKQorICAgIHJldHVybiBzaGVsbGVzY2FwZShhOm5hbWUpCisgIGVuZGlmCisgIHJldHVybiBnOm5ldHJ3X3NocSAuIGE6bmFtZSAuIGc6bmV0cndfc2hxCitlbmRmdW4KKworIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyIgIFJlc3RvcmU6CitsZXQgJmNwbz0gczprZWVwY3BvCit1bmxldCBzOmtlZXBjcG8KKworIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgTW9kZWxpbmVzOiB7e3sxCiAiIHZpbTogZmRtPW1hcmtlcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvaW5kZXgudHh0IGIvcnVudGltZS9kb2MvaW5kZXgudHh0CmluZGV4IGY1ODdjYzkuLmY0OTQzMjggMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2luZGV4LnR4dAorKysgYi9ydW50aW1lL2RvYy9pbmRleC50eHQKQEAgLTEsNCArMSw0IEBACi0qaW5kZXgudHh0KiAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMS4gIExhc3QgY2hhbmdlOiAyMDA3IE1heSAwNQorKmluZGV4LnR4dCogICAgIEZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDggTWF5IDA0CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC00NjcsNiArNDY3LDcgQEAKIHx2X2FifAkJYWIJCSAgICJhIGJsb2NrIiBmcm9tICJbKCIgdG8gIl0pIiAod2l0aCBicmFjZXMpCiB8dl9hcHwJCWFwCQkgICAiYSBwYXJhZ3JhcGgiICh3aXRoIHdoaXRlIHNwYWNlKQogfHZfYXN8CQlhcwkJICAgImEgc2VudGVuY2UiICh3aXRoIHdoaXRlIHNwYWNlKQorfHZfYXR8CQlhdAkJICAgImEgdGFnIGJsb2NrIiAod2l0aCB3aGl0ZSBzcGFjZSkKIHx2X2F3fAkJYXcJCSAgICJhIHdvcmQiICh3aXRoIHdoaXRlIHNwYWNlKQogfHZfYXt8CQlhewkJICAgc2FtZSBhcyBhQgogfHZfYX18CQlhfQkJICAgc2FtZSBhcyBhQgpAQCAtNDg0LDYgKzQ4NSw3IEBACiB8dl9pYnwJCWliCQkgICAiaW5uZXIgYmxvY2siIGZyb20gIlsoIiB0byAiXSkiCiB8dl9pcHwJCWlwCQkgICAiaW5uZXIgcGFyYWdyYXBoIgogfHZfaXN8CQlpcwkJICAgImlubmVyIHNlbnRlbmNlIgorfHZfaXR8CQlpdAkJICAgImlubmVyIHRhZyBibG9jayIKIHx2X2l3fAkJaXcJCSAgICJpbm5lciB3b3JkIgogfHZfaXt8CQlpewkJICAgc2FtZSBhcyBpQgogfHZfaX18CQlpfQkJICAgc2FtZSBhcyBpQgpAQCAtODc0LDYgKzg3NiwxMCBAQAogCQkJCSAgIG1vZGUKIHx2X1h8CQlYCQkyICBkZWxldGUgdGhlIGhpZ2hsaWdodGVkIGxpbmVzCiB8dl9ZfAkJWQkJICAgeWFuayB0aGUgaGlnaGxpZ2h0ZWQgbGluZXMKK3x2X2FxdW90ZXwJYSIJCSAgIGV4dGVuZCBoaWdobGlnaHRlZCBhcmVhIHdpdGggYSBkb3VibGUKKwkJCQkgICBxdW90ZWQgc3RyaW5nCit8dl9hJ3wJCWEnCQkgICBleHRlbmQgaGlnaGxpZ2h0ZWQgYXJlYSB3aXRoIGEgc2luZ2xlCisJCQkJICAgcXVvdGVkIHN0cmluZwogfHZfYSh8CQlhKAkJICAgc2FtZSBhcyBhYgogfHZfYSl8CQlhKQkJICAgc2FtZSBhcyBhYgogfHZfYTx8CQlhPAkJICAgZXh0ZW5kIGhpZ2hsaWdodGVkIGFyZWEgd2l0aCBhIDw+IGJsb2NrCkBAIC04ODIsOSArODg4LDEyIEBACiB8dl9hV3wJCWFXCQkgICBleHRlbmQgaGlnaGxpZ2h0ZWQgYXJlYSB3aXRoICJhIFdPUkQiCiB8dl9hW3wJCWFbCQkgICBleHRlbmQgaGlnaGxpZ2h0ZWQgYXJlYSB3aXRoIGEgW10gYmxvY2sKIHx2X2FdfAkJYV0JCSAgIHNhbWUgYXMgYVsKK3x2X2FgfAkJYWAJCSAgIGV4dGVuZCBoaWdobGlnaHRlZCBhcmVhIHdpdGggYSBiYWNrdGljaworCQkJCSAgIHF1b3RlZCBzdHJpbmcKIHx2X2FifAkJYWIJCSAgIGV4dGVuZCBoaWdobGlnaHRlZCBhcmVhIHdpdGggYSAoKSBibG9jawogfHZfYXB8CQlhcAkJICAgZXh0ZW5kIGhpZ2hsaWdodGVkIGFyZWEgd2l0aCBhIHBhcmFncmFwaAogfHZfYXN8CQlhcwkJICAgZXh0ZW5kIGhpZ2hsaWdodGVkIGFyZWEgd2l0aCBhIHNlbnRlbmNlCit8dl9hdHwJCWF0CQkgICBleHRlbmQgaGlnaGxpZ2h0ZWQgYXJlYSB3aXRoIGEgdGFnIGJsb2NrCiB8dl9hd3wJCWF3CQkgICBleHRlbmQgaGlnaGxpZ2h0ZWQgYXJlYSB3aXRoICJhIHdvcmQiCiB8dl9he3wJCWF7CQkgICBzYW1lIGFzIGFCCiB8dl9hfXwJCWF9CQkgICBzYW1lIGFzIGFCCkBAIC04OTUsNiArOTA0LDEwIEBACiB8dl9ncXwJCWdxCQkyICBmb3JtYXQgdGhlIGhpZ2hsaWdodGVkIGxpbmVzCiB8dl9ndnwJCWd2CQkgICBleGNoYW5nZSBjdXJyZW50IGFuZCBwcmV2aW91cyBoaWdobGlnaHRlZAogCQkJCSAgIGFyZWEKK3x2X2lxdW90ZXwJaSIJCSAgIGV4dGVuZCBoaWdobGlnaHRlZCBhcmVhIHdpdGggYSBkb3VibGUKKwkJCQkgICBxdW90ZWQgc3RyaW5nICh3aXRob3V0IHF1b3RlcykKK3x2X2knfAkJaScJCSAgIGV4dGVuZCBoaWdobGlnaHRlZCBhcmVhIHdpdGggYSBzaW5nbGUKKwkJCQkgICBxdW90ZWQgc3RyaW5nICh3aXRob3V0IHF1b3RlcykKIHx2X2kofAkJaSgJCSAgIHNhbWUgYXMgaWIKIHx2X2kpfAkJaSkJCSAgIHNhbWUgYXMgaWIKIHx2X2k8fAkJaTwJCSAgIGV4dGVuZCBoaWdobGlnaHRlZCBhcmVhIHdpdGggaW5uZXIgPD4gYmxvY2sKQEAgLTkwMyw5ICs5MTYsMTIgQEAKIHx2X2lXfAkJaVcJCSAgIGV4dGVuZCBoaWdobGlnaHRlZCBhcmVhIHdpdGggImlubmVyIFdPUkQiCiB8dl9pW3wJCWlbCQkgICBleHRlbmQgaGlnaGxpZ2h0ZWQgYXJlYSB3aXRoIGlubmVyIFtdIGJsb2NrCiB8dl9pXXwJCWldCQkgICBzYW1lIGFzIGlbCit8dl9pYHwJCWlgCQkgICBleHRlbmQgaGlnaGxpZ2h0ZWQgYXJlYSB3aXRoIGEgYmFja3RpY2sKKwkJCQkgICBxdW90ZWQgc3RyaW5nICh3aXRob3V0IHRoZSBiYWNrdGlja3MpCiB8dl9pYnwJCWliCQkgICBleHRlbmQgaGlnaGxpZ2h0ZWQgYXJlYSB3aXRoIGlubmVyICgpIGJsb2NrCiB8dl9pcHwJCWlwCQkgICBleHRlbmQgaGlnaGxpZ2h0ZWQgYXJlYSB3aXRoIGlubmVyIHBhcmFncmFwaAogfHZfaXN8CQlpcwkJICAgZXh0ZW5kIGhpZ2hsaWdodGVkIGFyZWEgd2l0aCBpbm5lciBzZW50ZW5jZQorfHZfaXR8CQlpdAkJICAgZXh0ZW5kIGhpZ2hsaWdodGVkIGFyZWEgd2l0aCBpbm5lciB0YWcgYmxvY2sKIHx2X2l3fAkJaXcJCSAgIGV4dGVuZCBoaWdobGlnaHRlZCBhcmVhIHdpdGggImlubmVyIHdvcmQiCiB8dl9pe3wJCWl7CQkgICBzYW1lIGFzIGlCCiB8dl9pfXwJCWl9CQkgICBzYW1lIGFzIGlCCkBAIC0xMzM5LDE2ICsxMzU1LDE0IEBACiB8OnByaW50fAk6cFtyaW50XQlwcmludCBsaW5lcwogfDpwcm9mZGVsfAk6cHJvZmRbZWxdCXN0b3AgcHJvZmlsaW5nIGEgZnVuY3Rpb24gb3Igc2NyaXB0CiB8OnByb2ZpbGV8CTpwcm9mW2lsZV0JcHJvZmlsaW5nIGZ1bmN0aW9ucyBhbmQgc2NyaXB0cwotfDpwcm9tcHRmaW5kfAk6cHJvW210ZmluZF0Jb3BlbiBHVUkgZGlhbG9nIGZvciBzZWFyY2hpbmcKLXw6cHJvbXB0cmVwbHwJOnByb210cltlcGxdCW9wZW4gR1VJIGRpYWxvZyBmb3Igc2VhcmNoL3JlcGxhY2UKK3w6cHJvbXB0ZmluZHwJOnByb1ttcHRmaW5kXQlvcGVuIEdVSSBkaWFsb2cgZm9yIHNlYXJjaGluZworfDpwcm9tcHRyZXBsfAk6cHJvbXB0cltlcGxdCW9wZW4gR1VJIGRpYWxvZyBmb3Igc2VhcmNoL3JlcGxhY2UKIHw6cGVybGRvfAk6cGVybGRbb10JZXhlY3V0ZSBQZXJsIGNvbW1hbmQgZm9yIGVhY2ggbGluZQogfDpwb3B8CQk6cG9bcF0JCWp1bXAgdG8gb2xkZXIgZW50cnkgaW4gdGFnIHN0YWNrCiB8OnBvcHVwfAk6cG9wW3VwXQlwb3B1cCBhIG1lbnUgYnkgbmFtZQogfDpwcG9wfAkJOnBwW29wXQkJIjpwb3AiIGluIHByZXZpZXcgd2luZG93CiB8OnByZXNlcnZlfAk6cHJlW3NlcnZlXQl3cml0ZSBhbGwgdGV4dCB0byBzd2FwIGZpbGUKIHw6cHJldmlvdXN8CTpwcmV2W2lvdXNdCWdvIHRvIHByZXZpb3VzIGZpbGUgaW4gYXJndW1lbnQgbGlzdAotfDpwcm9tcHRmaW5kfAk6cHJvW21wdGZpbmRdCVNlYXJjaCBkaWFsb2cKLXw6cHJvbXB0cmVwbHwJOnByb21wdHJbZXBsXQlTZWFyY2gvUmVwbGFjZSBkaWFsb2cKIHw6cHNlYXJjaHwJOnBzW2VhcmNoXQlsaWtlICI6aWp1bXAiIGJ1dCBzaG93cyBtYXRjaCBpbiBwcmV2aWV3IHdpbmRvdwogfDpwdGFnfAkJOnB0W2FnXQkJc2hvdyB0YWcgaW4gcHJldmlldyB3aW5kb3cKIHw6cHROZXh0fAk6cHROW2V4dF0JfDp0TmV4dHwgaW4gcHJldmlldyB3aW5kb3cKQEAgLTE0NTQsNyArMTQ2OCw3IEBACiB8OnN0YXJ0aW5zZXJ0fAk6c3Rhclt0aW5zZXJ0XQlzdGFydCBJbnNlcnQgbW9kZQogfDpzdGFydGdyZXBsYWNlfCA6c3RhcnRnW3JlcGxhY2VdIHN0YXJ0IFZpcnR1YWwgUmVwbGFjZSBtb2RlCiB8OnN0YXJ0cmVwbGFjZXwJOnN0YXJ0cltlcGxhY2VdCXN0YXJ0IFJlcGxhY2UgbW9kZQotfDpzdG9waW5zZXJ0fHwJOnN0b3BpW25zZXJ0XQlzdG9wIEluc2VydCBtb2RlCit8OnN0b3BpbnNlcnR8CTpzdG9waVtuc2VydF0Jc3RvcCBJbnNlcnQgbW9kZQogfDpzdGp1bXB8CTpzdGpbdW1wXQlkbyAiOnRqdW1wIiBhbmQgc3BsaXQgd2luZG93CiB8OnN0c2VsZWN0fAk6c3RzW2VsZWN0XQlkbyAiOnRzZWxlY3QiIGFuZCBzcGxpdCB3aW5kb3cKIHw6c3VuaGlkZXwJOnN1bltoaWRlXQlzYW1lIGFzICI6dW5oaWRlIgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvbWVzc2FnZS50eHQgYi9ydW50aW1lL2RvYy9tZXNzYWdlLnR4dAppbmRleCA4ODVkMWVlLi45ZjhiYmZiIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9tZXNzYWdlLnR4dAorKysgYi9ydW50aW1lL2RvYy9tZXNzYWdlLnR4dApAQCAtMSw0ICsxLDQgQEAKLSptZXNzYWdlLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4xLiAgTGFzdCBjaGFuZ2U6IDIwMDcgTWFyIDIwCisqbWVzc2FnZS50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwNyBBdWcgMTkKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTUzLDcgKzUzLDcgQEAKIAk6aGVscCBlNzIKIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0yLiBFcnJvciBtZXNzYWdlcwkJCQkJKmVycm9yLW1lc3NhZ2VzKgorMi4gRXJyb3IgbWVzc2FnZXMJCQkJKmVycm9yLW1lc3NhZ2VzKiAqZXJyb3JzKgogCiBXaGVuIGFuIGVycm9yIG1lc3NhZ2UgaXMgZGlzcGxheWVkLCBidXQgaXQgaXMgcmVtb3ZlZCBiZWZvcmUgeW91IGNvdWxkIHJlYWQKIGl0LCB5b3UgY2FuIHNlZSBpdCBhZ2FpbiB3aXRoOiA+CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9vc19taW50LnR4dCBiL3J1bnRpbWUvZG9jL29zX21pbnQudHh0CmluZGV4IGUyMzk5ZjUuLmJkYTM1ODYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL29zX21pbnQudHh0CisrKyBiL3J1bnRpbWUvZG9jL29zX21pbnQudHh0CkBAIC0xLDQgKzEsNCBAQAotKm9zX21pbnQudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjEuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKKypvc19taW50LnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4yYS4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBKZW5zIE0uIEZlbGRlcmhvZmYKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL29zX29zMi50eHQgYi9ydW50aW1lL2RvYy9vc19vczIudHh0CmluZGV4IGMyOTdiZmMuLjEzNzQzNDYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL29zX29zMi50eHQKKysrIGIvcnVudGltZS9kb2Mvb3Nfb3MyLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpvc19vczIudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4xLiAgTGFzdCBjaGFuZ2U6IDIwMDcgQXByIDIyCisqb3Nfb3MyLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwNyBBcHIgMjIKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgUGF1bCBTbG9vdG1hbgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdGFicGFnZS50eHQgYi9ydW50aW1lL2RvYy90YWJwYWdlLnR4dAppbmRleCA1ODI2Y2Y2Li42NDEwYjExIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy90YWJwYWdlLnR4dAorKysgYi9ydW50aW1lL2RvYy90YWJwYWdlLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp0YWJwYWdlLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4xLiAgTGFzdCBjaGFuZ2U6IDIwMDcgTWFyIDExCisqdGFicGFnZS50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwNyBNYXIgMTEKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8yMi50eHQgYi9ydW50aW1lL2RvYy91c3JfMjIudHh0CmluZGV4IGY4NzIzMzEuLjVhMTNiODcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8yMi50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzIyLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMjIudHh0KglGb3IgVmltIHZlcnNpb24gNy4xLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqdXNyXzIyLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwNyBBdWcgMTQKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKQEAgLTEwLDcgKzEwLDcgQEAKIGlzIG1lbnRpb25lZCBpbiBhbm90aGVyLiAgQW5kIFZpbSByZW1lbWJlcnMgd2hpY2ggZmlsZXMgaGF2ZSBiZWVuIGVkaXRlZAogYmVmb3JlLgogCi18MjIuMXwJVGhlIGZpbGUgZXhwbG9yZXIKK3wyMi4xfAlUaGUgZmlsZSBicm93c2VyCiB8MjIuMnwJVGhlIGN1cnJlbnQgZGlyZWN0b3J5CiB8MjIuM3wJRmluZGluZyBhIGZpbGUKIHwyMi40fAlUaGUgYnVmZmVyIGxpc3QKQEAgLTIwLDcgKzIwLDcgQEAKIFRhYmxlIG9mIGNvbnRlbnRzOiB8dXNyX3RvYy50eHR8CiAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotKjIyLjEqCVRoZSBmaWxlIGV4cGxvcmVyCisqMjIuMSoJVGhlIGZpbGUgYnJvd3NlcgogCiBWaW0gaGFzIGEgcGx1Z2luIHRoYXQgbWFrZXMgaXQgcG9zc2libGUgdG8gZWRpdCBhIGRpcmVjdG9yeS4gIFRyeSB0aGlzOiA+CiAKQEAgLTI5LDg1ICsyOSwxMjEgQEAKIFRocm91Z2ggdGhlIG1hZ2ljIG9mIGF1dG9jb21tYW5kcyBhbmQgVmltIHNjcmlwdHMsIHRoZSB3aW5kb3cgd2lsbCBiZSBmaWxsZWQKIHdpdGggdGhlIGNvbnRlbnRzIG9mIHRoZSBkaXJlY3RvcnkuICBJdCBsb29rcyBsaWtlIHRoaXM6CiAKLQkiIFByZXNzID8gZm9yIGtleWJvYXJkIHNob3J0Y3V0cyB+Ci0JIiBTb3J0ZWQgYnkgbmFtZSAoLmJhayx+LC5vLC5oLC5pbmZvLC5zd3AsLm9iaiwub3JpZywucmVqIGF0IGVuZCBvZiBsaXN0KSB+Ci0JIj0gL2hvbWUvbW9vbC92aW0vdmltNi9ydW50aW1lL2RvYy8gfgotCS4uLyB+Ci0JY2hlY2svIH4KLQlNYWtlZmlsZSB+Ci0JYXV0b2NtZC50eHQgfgotCWNoYW5nZS50eHQgfgotCWV2YWwudHh0fiB+Ci0JZmlsZXR5cGUudHh0fiB+Ci0JaGVscC50eHQuaW5mbyB+CisiID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gfgorIiBOZXRydyBEaXJlY3RvcnkgTGlzdGluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmV0cncgdjEwOSkgfgorIiAgIFNvcnRlZCBieSAgICAgIG5hbWUgfgorIiAgIFNvcnQgc2VxdWVuY2U6IFtcL10kLFwuaCQsXC5jJCxcLmNwcCQsKixcLmluZm8kLFwuc3dwJCxcLm8kXC5vYmokLFwuYmFrJCB+CisiICAgUXVpY2sgSGVscDogPEYxPjpoZWxwICAtOmdvIHVwIGRpciAgRDpkZWxldGUgIFI6cmVuYW1lICBzOnNvcnQtYnkgIHg6ZXhlYyB+CisiID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gfgorLi4vIH4KKy4vIH4KK2NoZWNrLyB+CitNYWtlZmlsZSB+CithdXRvY21kLnR4dCB+CitjaGFuZ2UudHh0IH4KK2V2YWwudHh0fiB+CitmaWxldHlwZS50eHR+IH4KK2hlbHAudHh0LmluZm8gfgogCiBZb3UgY2FuIHNlZSB0aGVzZSBpdGVtczoKLTEuICBBIGNvbW1lbnQgYWJvdXQgdXNpbmcgPyB0byBnZXQgaGVscCBmb3IgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIGZpbGUKLSAgICBleHBsb3Jlci4KLTIuICBUaGUgc2Vjb25kIGxpbmUgbWVudGlvbnMgaG93IHRoZSBpdGVtcyBpbiB0aGUgZGlyZWN0b3J5IGFyZSBsaXN0ZWQuICBUaGV5Ci0gICAgY2FuIGJlIHNvcnRlZCBpbiBzZXZlcmFsIHdheXMuCi0zLiAgVGhlIHRoaXJkIGxpbmUgaXMgdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQgZGlyZWN0b3J5LgotNC4gIFRoZSAiLi4vIiBkaXJlY3RvcnkgaXRlbS4gIFRoaXMgaXMgdGhlIHBhcmVudCBkaXJlY3RvcnkuCi01LiAgVGhlIGRpcmVjdG9yeSBuYW1lcy4KLTYuICBUaGUgb3JkaW5hcnkgZmlsZSBuYW1lcy4gIEFzIG1lbnRpb25lZCBpbiB0aGUgc2Vjb25kIGxpbmUsIHNvbWUgYXJlIG5vdAotICAgIGhlcmUgYnV0ICJhdCB0aGUgZW5kIG9mIHRoZSBsaXN0Ii4KLTcuICBUaGUgbGVzcyBvcmRpbmFyeSBmaWxlIG5hbWVzLiAgWW91IGFyZSBleHBlY3RlZCB0byB1c2UgdGhlc2UgbGVzcyBvZnRlbiwKLSAgICB0aGVyZWZvcmUgdGhleSBoYXZlIGJlZW4gbW92ZWQgdG8gdGhlIGVuZC4KKworMS4gIFRoZSBuYW1lIG9mIHRoZSBicm93c2luZyB0b29sIGFuZCBpdHMgdmVyc2lvbiBudW1iZXIKKzIuICBUaGUgbmFtZSBvZiB0aGUgYnJvd3NpbmcgZGlyZWN0b3J5CiszLiAgVGhlIG1ldGhvZCBvZiBzb3J0aW5nIChtYXkgYmUgYnkgbmFtZSwgdGltZSwgb3Igc2l6ZSkKKzQuICBIb3cgbmFtZXMgYXJlIHRvIGJlIHNvcnRlZCAoZGlyZWN0b3JpZXMgZmlyc3QsIHRoZW4gKi5oIGZpbGVzLAorICAgICouYyBmaWxlcywgZXRjKQorNS4gIEhvdyB0byBnZXQgaGVscCAodXNlIHRoZSA8RjE+IGtleSksIGFuZCBhbiBhYmJyZXZpYXRlZCBsaXN0aW5nCisgICAgb2YgYXZhaWxhYmxlIGNvbW1hbmRzCis2LiAgQSBsaXN0aW5nIG9mIGZpbGVzLCBpbmNsdWRpbmcgIi4uLyIsIHdoaWNoIGFsbG93cyBvbmUgdG8gdG8gbGlzdAorICAgIHRoZSBwYXJlbnQgZGlyZWN0b3J5LgogCiBJZiB5b3UgaGF2ZSBzeW50YXggaGlnaGxpZ2h0aW5nIGVuYWJsZWQsIHRoZSBkaWZmZXJlbnQgcGFydHMgYXJlIGhpZ2hsaWdodGVkCi10byBtYWtlIGl0IGVhc2llciB0byBzcG90IHRoZW0uCitzbyBhcyB0byBtYWtlIGl0IGVhc2llciB0byBzcG90IHRoZW0uCiAKIFlvdSBjYW4gdXNlIE5vcm1hbCBtb2RlIFZpbSBjb21tYW5kcyB0byBtb3ZlIGFyb3VuZCBpbiB0aGUgdGV4dC4gIEZvciBleGFtcGxlLAotbW92ZSB0byBhIGZpbGUgYW5kIHByZXNzIDxFbnRlcj4uICBOb3cgeW91IGFyZSBlZGl0aW5nIHRoYXQgZmlsZS4gIFRvIGdvIGJhY2sKLXRvIHRoZSBleHBsb3JlciB1c2UgIjplZGl0IC4iIGFnYWluLiAgQ1RSTC1PIGFsc28gd29ya3MuCi0gICBUcnkgdXNpbmcgPEVudGVyPiB3aGlsZSB0aGUgY3Vyc29yIGlzIG9uIGEgZGlyZWN0b3J5IG5hbWUuICBUaGUgcmVzdWx0IGlzCi10aGF0IHRoZSBleHBsb3JlciBtb3ZlcyBpbnRvIHRoYXQgZGlyZWN0b3J5IGFuZCBkaXNwbGF5cyB0aGUgaXRlbXMgZm91bmQKK21vdmUgdGhlIGN1cnNvciBhdG9wIGEgZmlsZSBhbmQgcHJlc3MgPEVudGVyPjsgeW91IHdpbGwgdGhlbiBiZSBlZGl0aW5nIHRoYXQKK2ZpbGUuICBUbyBnbyBiYWNrIHRvIHRoZSBicm93c2VyIHVzZSAiOmVkaXQgLiIgYWdhaW4sIG9yIHVzZSAiOkV4cGxvcmUiLgorQ1RSTC1PIGFsc28gd29ya3MuCisKK1RyeSB1c2luZyA8RW50ZXI+IHdoaWxlIHRoZSBjdXJzb3IgaXMgYXRvcCBhIGRpcmVjdG9yeSBuYW1lLiAgVGhlIHJlc3VsdCBpcwordGhhdCB0aGUgZmlsZSBicm93c2VyIG1vdmVzIGludG8gdGhhdCBkaXJlY3RvcnkgYW5kIGRpc3BsYXlzIHRoZSBpdGVtcyBmb3VuZAogdGhlcmUuICBQcmVzc2luZyA8RW50ZXI+IG9uIHRoZSBmaXJzdCBkaXJlY3RvcnkgIi4uLyIgbW92ZXMgeW91IG9uZSBsZXZlbAogaGlnaGVyLiAgUHJlc3NpbmcgIi0iIGRvZXMgdGhlIHNhbWUgdGhpbmcsIHdpdGhvdXQgdGhlIG5lZWQgdG8gbW92ZSB0byB0aGUKICIuLi8iIGl0ZW0gZmlyc3QuCiAKLVlvdSBjYW4gcHJlc3MgPyB0byBnZXQgc2hvcnQgaGVscCBvbiB0aGUgdGhpbmdzIHlvdSBjYW4gZG8gaW4gdGhlIGV4cGxvcmVyLgotVGhpcyBpcyB3aGF0IHlvdSBnZXQ6CitZb3UgY2FuIHByZXNzIDxGMT4gdG8gZ2V0IGhlbHAgb24gdGhlIHRoaW5ncyB5b3UgY2FuIGRvIGluIHRoZSBuZXRydyBmaWxlCiticm93c2VyLiAgVGhpcyBpcyB3aGF0IHlvdSBnZXQ6ID4KIAotCSIgPGVudGVyPiA6IG9wZW4gZmlsZSBvciBkaXJlY3RvcnkgfgotCSIgbyA6IG9wZW4gbmV3IHdpbmRvdyBmb3IgZmlsZS9kaXJlY3RvcnkgfgotCSIgTyA6IG9wZW4gZmlsZSBpbiBwcmV2aW91c2x5IHZpc2l0ZWQgd2luZG93IH4KLQkiIHAgOiBwcmV2aWV3IHRoZSBmaWxlIH4KLQkiIGkgOiB0b2dnbGUgc2l6ZS9kYXRlIGxpc3RpbmcgfgotCSIgcyA6IHNlbGVjdCBzb3J0IGZpZWxkICAgIHIgOiByZXZlcnNlIHNvcnQgfgotCSIgLSA6IGdvIHVwIG9uZSBsZXZlbCAgICAgIGMgOiBjZCB0byB0aGlzIGRpciB+Ci0JIiBSIDogcmVuYW1lIGZpbGUJICAgRCA6IGRlbGV0ZSBmaWxlIH4KLQkiIDpoZWxwIGZpbGUtZXhwbG9yZXIgZm9yIGRldGFpbGVkIGhlbHAgfgorICAgIDkuIERpcmVjdG9yeSBCcm93c2luZwkgbmV0cnctYnJvd3NlICAgbmV0cnctZGlyICAgbmV0cnctbGlzdCAgIG5ldHJ3LWhlbHAgCiAKLVRoZSBmaXJzdCBmZXcgY29tbWFuZHMgYXJlIGZvciBzZWxlY3RpbmcgYSBmaWxlIHRvIGRpc3BsYXkuICBEZXBlbmRpbmcgb24gd2hhdAotY29tbWFuZCB5b3UgdXNlLCB0aGUgZmlsZSBhcHBlYXJzIHNvbWV3aGVyZToKKyAgICBNQVBTCQkJCQkJCQkgbmV0cnctbWFwcyAKKyAgICAgCSA8RjE+Li4uLi4uLi4uLi4uLkhlbHAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi58bmV0cnctaGVscHwKKyAgICAgCSA8Y3I+Li4uLi4uLi4uLi4uLkJyb3dzaW5nLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi58bmV0cnctY3J8CisgICAgIAkgPGRlbD4uLi4uLi4uLi4uLi5EZWxldGluZyBGaWxlcyBvciBEaXJlY3Rvcmllcy4uLi4uLi4uLi4uLi4ufG5ldHJ3LWRlbGV0ZXwKKyAgICAgCSAtLi4uLi4uLi4uLi4uLi4uLkdvaW5nIFVwLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi58bmV0cnctLXwKKyAgICAgCSBhLi4uLi4uLi4uLi4uLi4uLkhpZGluZyBGaWxlcyBvciBEaXJlY3Rvcmllcy4uLi4uLi4uLi4uLi4uLi58bmV0cnctYXwKKyAgICAgCSBtYi4uLi4uLi4uLi4uLi4uLkJvb2ttYXJraW5nIGEgRGlyZWN0b3J5Li4uLi4uLi4uLi4uLi4uLi4uLi58bmV0cnctbWJ8CisgICAgIAkgZ2IuLi4uLi4uLi4uLi4uLi5DaGFuZ2luZyB0byBhIEJvb2ttYXJrZWQgRGlyZWN0b3J5Li4uLi4uLi4ufG5ldHJ3LWdifAorICAgICAJIGMuLi4uLi4uLi4uLi4uLi4uTWFrZSBCcm93c2luZyBEaXJlY3RvcnkgVGhlIEN1cnJlbnQgRGlyLi4uLnxuZXRydy1jfAorICAgICAJIGQuLi4uLi4uLi4uLi4uLi4uTWFrZSBBIE5ldyBEaXJlY3RvcnkuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLnxuZXRydy1kfAorICAgICAJIEQuLi4uLi4uLi4uLi4uLi4uRGVsZXRpbmcgRmlsZXMgb3IgRGlyZWN0b3JpZXMuLi4uLi4uLi4uLi4uLnxuZXRydy1EfAorICAgICAJIDxjLWg+Li4uLi4uLi4uLi4uRWRpdCBGaWxlL0RpcmVjdG9yeSBIaWRpbmcgTGlzdC4uLi4uLi4uLi4uLnxuZXRydy1jdHJsLWh8CisgICAgIAkgaS4uLi4uLi4uLi4uLi4uLi5DaGFuZ2UgTGlzdGluZyBTdHlsZS4uLi4uLi4uLi4uLi4uLi4uLi4uLi4ufG5ldHJ3LWl8CisgICAgIAkgPGMtbD4uLi4uLi4uLi4uLi5SZWZyZXNoaW5nIHRoZSBMaXN0aW5nLi4uLi4uLi4uLi4uLi4uLi4uLi4ufG5ldHJ3LWN0cmwtbHwKKyAgICAgCSBvLi4uLi4uLi4uLi4uLi4uLkJyb3dzaW5nIHdpdGggYSBIb3Jpem9udGFsIFNwbGl0Li4uLi4uLi4uLi58bmV0cnctb3wKKyAgICAgCSBwLi4uLi4uLi4uLi4uLi4uLlVzZSBQcmV2aWV3IFdpbmRvdy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi58bmV0cnctcHwKKyAgICAgCSBQLi4uLi4uLi4uLi4uLi4uLkVkaXQgaW4gUHJldmlvdXMgV2luZG93Li4uLi4uLi4uLi4uLi4uLi4uLi58bmV0cnctcHwKKyAgICAgCSBxLi4uLi4uLi4uLi4uLi4uLkxpc3RpbmcgQm9va21hcmtzIGFuZCBIaXN0b3J5Li4uLi4uLi4uLi4uLi58bmV0cnctcXwKKyAgICAgCSByLi4uLi4uLi4uLi4uLi4uLlJldmVyc2luZyBTb3J0aW5nIE9yZGVyLi4uLi4uLi4uLi4uLi4uLi4uLi58bmV0cnctcnwKKzwgICAgCShldGMpCiAKLQk8RW50ZXI+CQlVc2VzIHRoZSBjdXJyZW50IHdpbmRvdy4KLQlvCQlPcGVucyBhIG5ldyB3aW5kb3cuCi0JTwkJVXNlcyB0aGUgcHJldmlvdXNseSB2aXNpdGVkIHdpbmRvdy4KLQlwCQlVc2VzIHRoZSBwcmV2aWV3IHdpbmRvdywgYW5kIG1vdmVzIHRoZSBjdXJzb3IgYmFjawotCQkJaW50byB0aGUgZXhwbG9yZXIgd2luZG93LiB8cHJldmlldy13aW5kb3d8CitUaGUgPEYxPiBrZXkgdGh1cyBicmluZ3MgeW91IHRvIGEgbmV0cncgZGlyZWN0b3J5IGJyb3dzaW5nIGNvbnRlbnRzIGhlbHAgcGFnZS4KK0l0cyBhIHJlZ3VsYXIgaGVscCBwYWdlOyB1c2UgdGhlIHVzdWFsIHxDVFJMLV18IHRvIGp1bXAgdG8gdGFnZ2VkIGhlbHAgaXRlbXMKK2FuZCB8Q1RSTC1PfCB0byBqdW1wIGJhY2suCiAKLVRoZSBmb2xsb3dpbmcgY29tbWFuZHMgYXJlIHVzZWQgdG8gZGlzcGxheSBvdGhlciBpbmZvcm1hdGlvbjoKK1RvIHNlbGVjdCBmaWxlcyBmb3IgZGlzcGxheSBhbmQgZWRpdGluZzogKHdpdGggdGhlIGN1cnNvciBpcyBhdG9wIGEgZmlsZW5hbWUpCiAKLQlpCQlEaXNwbGF5IHRoZSBzaXplIGFuZCBkYXRlIGZvciB0aGUgZmlsZS4gIFVzaW5nIGkgYWdhaW4KLQkJCXdpbGwgaGlkZSB0aGUgaW5mb3JtYXRpb24uCi0JcwkJVXNlIHRoZSBmaWVsZCB0aGUgY3Vyc29yIGlzIGluIHRvIHNvcnQgb24uICBGaXJzdAotCQkJZGlzcGxheSB0aGUgc2l6ZSBhbmQgZGF0ZSB3aXRoIGkuICBUaGVuIE1vdmUgdGhlCi0JCQljdXJzb3IgdG8gdGhlIHNpemUgb2YgYW55IGZpbGUgYW5kIHByZXNzIHMuICBUaGUgZmlsZXMKLQkJCXdpbGwgbm93IGJlIHNvcnRlZCBvbiBzaXplLiAgUHJlc3MgcyB3aGlsZSB0aGUgY3Vyc29yCi0JCQlpcyBvbiBhIGRhdGUgYW5kIHRoZSBpdGVtcyB3aWxsIGJlIHNvcnRlZCBvbiBkYXRlLgotCXIJCXJldmVyc2UgdGhlIHNvcnRpbmcgb3JkZXIgKGVpdGhlciBzaXplIG9yIGRhdGUpCisJPGVudGVyPgkJT3BlbiB0aGUgZmlsZSBpbiB0aGUgY3VycmVudCB3aW5kb3cuCSAgIHxuZXRydy1jcnwKKwlvCQlIb3Jpem9udGFsbHkgc3BsaXQgd2luZG93IGFuZCBkaXNwbGF5IGZpbGUgfG5ldHJ3LW98CisJdgkJVmVydGljYWxseSBzcGxpdCB3aW5kb3cgYW5kIGRpc3BsYXkgZmlsZSAgIHxuZXRydy12fAorCXAJCVVzZSB0aGUgfHByZXZpZXctd2luZG93fCAJCSAgIHxuZXRydy1wfAorCVAJCUVkaXQgaW4gdGhlIHByZXZpb3VzIHdpbmRvdwkJICAgfG5ldHJ3LVB8CisJdAkJT3BlbiBmaWxlIGluIGEgbmV3IHRhYgkJCSAgIHxuZXRydy10fAogCi1UaGVyZSBhcmUgYSBmZXcgZXh0cmEgY29tbWFuZHM6CitUaGUgZm9sbG93aW5nIG5vcm1hbC1tb2RlIGNvbW1hbmRzIG1heSBiZSB1c2VkIHRvIGNvbnRyb2wgdGhlIGJyb3dzZXIgZGlzcGxheToKIAotCWMJCUNoYW5nZSB0aGUgY3VycmVudCBkaXJlY3RvcnkgdG8gdGhlIGRpc3BsYXllZAotCQkJZGlyZWN0b3J5LiAgWW91IGNhbiB0aGVuIHR5cGUgYW4gIjplZGl0IiBjb21tYW5kIGZvcgotCQkJb25lIG9mIHRoZSBmaWxlcyB3aXRob3V0IHByZXBlbmRpbmcgdGhlIHBhdGguCi0JUgkJUmVuYW1lIHRoZSBmaWxlIHVuZGVyIHRoZSBjdXJzb3IuICBZb3Ugd2lsbCBiZQotCQkJcHJvbXB0ZWQgZm9yIHRoZSBuZXcgbmFtZS4KLQlECQlEZWxldGUgdGhlIGZpbGUgdW5kZXIgdGhlIGN1cnNvci4gIFlvdSB3aWxsIGdldCBhCi0JCQlwcm9tcHQgdG8gY29uZmlybSB0aGlzLgorCWkJCUNvbnRyb2xzIGxpc3Rpbmcgc3R5bGUgKHRoaW4sIGxvbmcsIHdpZGUsIGFuZCB0cmVlKS4KKwkJCVRoZSBsb25nIGxpc3RpbmcgaW5jbHVkZXMgc2l6ZSBhbmQgZGF0ZSBpbmZvcm1hdGlvbi4KKwlzCQlSZXBlYXRlZGx5IHByZXNzaW5nIHMgd2lsbCBjaGFuZ2UgdGhlIHdheSB0aGUgZmlsZXMKKwkJCWFyZSBzb3J0ZWQ7IG9uZSBtYXkgc29ydCBvbiBuYW1lLCBtb2RpZmljYXRpb24gdGltZSwKKwkJCW9yIHNpemUuCisJcgkJUmV2ZXJzZSB0aGUgc29ydGluZyBvcmRlci4KKworQXMgYSBzYW1wbGluZyBvZiBleHRyYSBub3JtYWwtbW9kZSBjb21tYW5kczoKKworCWMJCUNoYW5nZSBWaW0ncyBub3Rpb24gb2YgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IHRvIGJlCisJCQl0aGUgc2FtZSBhcyB0aGUgYnJvd3NlciBkaXJlY3RvcnkuICAoc2VlCisJCQl8ZzpuZXRyd19rZWVwZGlyfCB0byBjb250cm9sIHRoaXMsIHRvbykKKwlSCQlSZW5hbWUgdGhlIGZpbGUgb3IgZGlyZWN0b3J5IHVuZGVyIHRoZSBjdXJzb3I7IGEKKwkJCXByb21wdCB3aWxsIGJlIGlzc3VlZCBmb3IgdGhlIG5ldyBuYW1lLgorCUQJCURlbGV0ZSB0aGUgZmlsZSBvciBkaXJlY3RvcnkgdW5kZXIgdGhlIGN1cnNvcjsgYQorCQkJY29uZmlybWF0aW9uIHJlcXVlc3Qgd2lsbCBiZSBpc3N1ZWQuCisJbWIgZ2IJCU1ha2UgYm9va21hcmsvZ290byBib29rbWFyaworCisKK09uZSBtYXkgYWxzbyB1c2UgY29tbWFuZCBtb2RlOyBhZ2FpbiwganVzdCBhIHNhbXBsaW5nOgorCisJOkV4cGxvcmUgW2RpcmVjdG9yeV0JQnJvd3NlIHNwZWNpZmllZC9jdXJyZW50IGRpcmVjdG9yeQorCTpOZXRyd1NldHRpbmdzCQlBIGNvbXByZWhlbnNpdmUgbGlzdCBvZiB5b3VyIGN1cnJlbnQgbmV0cncKKwkJCQlzZXR0aW5ncyB3aXRoIGhlbHAgbGlua2FnZS4KKworVGhlIG5ldHJ3IGJyb3dzZXIgaXMgbm90IGxpbWl0ZWQgdG8ganVzdCB5b3VyIGxvY2FsIG1hY2hpbmU7IG9uZSBtYXkgdXNlCit1cmxzIHN1Y2ggYXM6ICAgICh0aGF0IHRyYWlsaW5nIC8gaXMgaW1wb3J0YW50KQorCisJOkV4cGxvcmUgZnRwOi8vc29tZWhvc3QvcGF0aC90by9kaXIvCisJOmUgc2NwOi8vc29tZWhvc3QvcGF0aC90by9kaXIvCisKK1NlZSB8bmV0cnctYnJvd3NlfCBmb3IgbW9yZS4KIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqMjIuMioJVGhlIGN1cnJlbnQgZGlyZWN0b3J5CkBAIC0yNTUsOCArMjkxLDggQEAKIFRoZSBidWZmZXIgIm9uZS50eHQiIGRpc2FwcGVhcnMgZnJvbSB0aGUgc2NyZWVuLCBidXQgVmltIHN0aWxsIGtub3dzIHRoYXQgeW91CiBhcmUgZWRpdGluZyB0aGlzIGJ1ZmZlciwgc28gaXQga2VlcHMgdGhlIG1vZGlmaWVkIHRleHQuICBUaGlzIGlzIGNhbGxlZCBhCiBoaWRkZW4gYnVmZmVyOiBUaGUgYnVmZmVyIGNvbnRhaW5zIHRleHQsIGJ1dCB5b3UgY2FuJ3Qgc2VlIGl0LgotICAgVGhlICI6aGlkZSIgY29tbWFuZCBhcmd1bWVudCBpcyBhbm90aGVyIGNvbW1hbmQuICBJdCBtYWtlcyB0aGF0IGNvbW1hbmQKLWJlaGF2ZSBsaWtlIHRoZSAnaGlkZGVuJyBvcHRpb24gd2FzIHNldC4gIFlvdSBjb3VsZCBhbHNvIHNldCB0aGlzIG9wdGlvbgorICAgVGhlIGFyZ3VtZW50IG9mICI6aGlkZSIgaXMgYW5vdGhlciBjb21tYW5kLiAgIjpoaWRlIiBtYWtlcyB0aGF0IGNvbW1hbmQKK2JlaGF2ZSBhcyBpZiB0aGUgJ2hpZGRlbicgb3B0aW9uIHdhcyBzZXQuICBZb3UgY291bGQgYWxzbyBzZXQgdGhpcyBvcHRpb24KIHlvdXJzZWxmLiAgVGhlIGVmZmVjdCBpcyB0aGF0IHdoZW4gYW55IGJ1ZmZlciBpcyBhYmFuZG9uZWQsIGl0IGJlY29tZXMgaGlkZGVuLgogICAgQmUgY2FyZWZ1bCEgIFdoZW4geW91IGhhdmUgaGlkZGVuIGJ1ZmZlcnMgd2l0aCBjaGFuZ2VzLCBkb24ndCBleGl0IFZpbQogd2l0aG91dCBtYWtpbmcgc3VyZSB5b3UgaGF2ZSBzYXZlZCBhbGwgdGhlIGJ1ZmZlcnMuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfNDUudHh0IGIvcnVudGltZS9kb2MvdXNyXzQ1LnR4dAppbmRleCBhYjc2YWU4Li41YzgzZDFjIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfNDUudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl80NS50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzQ1LnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMS4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAyNAorKnVzcl80NS50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDggQXByIDMwCiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCkBAIC0xOTUsNyArMTk1LDcgQEAKIElmIGl0IGRvZXNuJ3Qgd29yayB3ZWxsLCB0cnkgZ2V0dGluZyBhIGZvbnRwYWNrLiAgSWYgTWljcm9zb2Z0IGRpZG4ndCBtb3ZlIGl0LAogeW91IGNhbiBmaW5kIGl0IGhlcmU6CiAKLQlodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vdHlwb2dyYXBoeS9mb250cGFjay9kZWZhdWx0Lmh0bSB+CisJaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3R5cG9ncmFwaHkvZm9udHMvZGVmYXVsdC5hc3B4IH4KIAogTm93IHlvdSBoYXZlIHRvbGQgVmltIHRvIHVzZSBVbmljb2RlIGludGVybmFsbHkgYW5kIGRpc3BsYXkgdGV4dCB3aXRoIGEKIFVuaWNvZGUgZm9udC4gIFR5cGVkIGNoYXJhY3RlcnMgc3RpbGwgYXJyaXZlIGluIHRoZSBlbmNvZGluZyBvZiB5b3VyIG9yaWdpbmFsCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy92ZXJzaW9uNC50eHQgYi9ydW50aW1lL2RvYy92ZXJzaW9uNC50eHQKaW5kZXggYmFkNWZlYy4uODIxMWE4ZCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdmVyc2lvbjQudHh0CisrKyBiL3J1bnRpbWUvZG9jL3ZlcnNpb240LnR4dApAQCAtMSw0ICsxLDQgQEAKLSp2ZXJzaW9uNC50eHQqICBGb3IgVmltIHZlcnNpb24gNy4xLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDI0CisqdmVyc2lvbjQudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMmEuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMjQKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3ZpX2RpZmYudHh0IGIvcnVudGltZS9kb2MvdmlfZGlmZi50eHQKaW5kZXggOTNiYTJmNS4uZGYxNDUyZCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdmlfZGlmZi50eHQKKysrIGIvcnVudGltZS9kb2MvdmlfZGlmZi50eHQKQEAgLTEsNCArMSw0IEBACi0qdmlfZGlmZi50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMS4gIExhc3QgY2hhbmdlOiAyMDA3IEF1ZyAxNAorKnZpX2RpZmYudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjJhLiAgTGFzdCBjaGFuZ2U6IDIwMDggTWF5IDA1CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xOTIsNyArMTkyLDcgQEAKIFNwZWxsIGNoZWNraW5nLgkJCQkJCXxzcGVsbHwKIAlXaGVuIHRoZSAnc3BlbGwnIG9wdGlvbiBpcyBzZXQgVmltIHdpbGwgaGlnaGxpZ2h0IHNwZWxsaW5nIG1pc3Rha2VzLgogCUFib3V0IDQwIGxhbmd1YWdlcyBhcmUgY3VycmVudGx5IHN1cHBvcnRlZCwgc2VsZWN0ZWQgd2l0aCB0aGUKLQknc3BlbGxhbmcnIG9wdGlvbi4gIEluIHNvdXJjZSBjb2RlIG9ubHkgY29tbWVudHMgYW5kIHN0cmluZ3MgYXJlCisJJ3NwZWxsbGFuZycgb3B0aW9uLiAgSW4gc291cmNlIGNvZGUgb25seSBjb21tZW50cyBhbmQgc3RyaW5ncyBhcmUKIAljaGVja2VkIGZvciBzcGVsbGluZy4KIAogRm9sZGluZy4JCQkJCQl8Zm9sZGluZ3wKQEAgLTQyNyw4ICs0MjcsOSBAQAogCiBNb3VzZSBzdXBwb3J0LgkJCQkJCXxtb3VzZS11c2luZ3wKIAlUaGUgbW91c2UgaXMgc3VwcG9ydGVkIGluIHRoZSBHVUkgdmVyc2lvbiwgaW4gYW4geHRlcm0gZm9yIFVuaXgsIGZvcgotCUxpbnV4IHdpdGggZ3BtLCBmb3IgTVMtRE9TLCBhbmQgV2luMzIuICBJdCBjYW4gYmUgdXNlZCB0byBwb3NpdGlvbiB0aGUKLQljdXJzb3IsIHNlbGVjdCB0aGUgdmlzdWFsIGFyZWEsIHBhc3RlIGEgcmVnaXN0ZXIsIGV0Yy4KKwlCU0RzIHdpdGggc3lzbW91c2UsIGZvciBMaW51eCB3aXRoIGdwbSwgZm9yIE1TLURPUywgYW5kIFdpbjMyLiAgSXQKKwljYW4gYmUgdXNlZCB0byBwb3NpdGlvbiB0aGUgY3Vyc29yLCBzZWxlY3QgdGhlIHZpc3VhbCBhcmVhLCBwYXN0ZSBhCisJcmVnaXN0ZXIsIGV0Yy4KIAogVXNhZ2Ugb2Yga2V5IG5hbWVzLgkJCQkJfDw+fCB8a2V5LW5vdGF0aW9ufAogCVNwZWNpYWwga2V5cyBub3cgYWxsIGhhdmUgYSBuYW1lIGxpa2UgPFVwPiwgPEVuZD4sIGV0Yy4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvbWFjcm9zL2xpZmUvbGlmZS52aW0gYi9ydW50aW1lL21hY3Jvcy9saWZlL2xpZmUudmltCmluZGV4IGFkZjRlMjAuLjU1MmE0OTMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvbWFjcm9zL2xpZmUvbGlmZS52aW0KKysrIGIvcnVudGltZS9tYWNyb3MvbGlmZS9saWZlLnZpbQpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9ydW50aW1lL3BsdWdpbi9uZXRyd1BsdWdpbi52aW0gYi9ydW50aW1lL3BsdWdpbi9uZXRyd1BsdWdpbi52aW0KaW5kZXggMTUyZWIzMi4uYjBhMjlhZCAxMDA2NDQKLS0tIGEvcnVudGltZS9wbHVnaW4vbmV0cndQbHVnaW4udmltCisrKyBiL3J1bnRpbWUvcGx1Z2luL25ldHJ3UGx1Z2luLnZpbQpAQCAtMSw2ICsxLDYgQEAKICIgbmV0cndQbHVnaW4udmltOiBIYW5kbGVzIGZpbGUgdHJhbnNmZXIgYW5kIHJlbW90ZSBkaXJlY3RvcnkgbGlzdGluZyBhY3Jvc3MgYSBuZXR3b3JrCiAiICAgICAgICAgICAgUExVR0lOIFNFQ1RJT04KLSIgRGF0ZToJCUphbiAwNSwgMjAwNworIiBEYXRlOgkJQXByIDA3LCAyMDA4CiAiIE1haW50YWluZXI6CUNoYXJsZXMgRSBDYW1wYmVsbCwgSnIgPE5kck9jaGlwQFNjYW1wYmVsbFBmYW1pbHkuQWJpek0tTk9TUEFNPgogIiBHZXRMYXRlc3RWaW1TY3JpcHRzOiAxMDc1IDEgOkF1dG9JbnN0YWxsOiBuZXRydy52aW0KICIgQ29weXJpZ2h0OiAgICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwNSBDaGFybGVzIEUuIENhbXBiZWxsLCBKci4ge3t7MQpAQCAtMjIsNyArMjIsNyBAQAogaWYgJmNwIHx8IGV4aXN0cygiZzpsb2FkZWRfbmV0cndQbHVnaW4iKQogIGZpbmlzaAogZW5kaWYKLWxldCBnOmxvYWRlZF9uZXRyd1BsdWdpbiA9IDEKK2xldCBnOmxvYWRlZF9uZXRyd1BsdWdpbiA9ICJ2MTI1IgogbGV0IHM6a2VlcGNwbyAgICAgICAgICAgID0gJmNwbwogaWYgdjp2ZXJzaW9uIDwgNzAwCiAgZWNob2hsIFdhcm5pbmdNc2cgfCBlY2hvICIqKipuZXRydyoqKiB5b3UgbmVlZCB2aW0gdmVyc2lvbiA3LjAgZm9yIHRoaXMgdmVyc2lvbiBvZiBuZXRydyIgfCBlY2hvaGwgTm9uZQpAQCAtNDcsMjggKzQ3LDI3IEBACiBhdWdyb3VwIE5ldHdvcmsKICBhdSEKICBpZiBoYXMoIndpbjMyIikgfHwgaGFzKCJ3aW45NSIpIHx8IGhhcygid2luNjQiKSB8fCBoYXMoIndpbjE2IikKLSAgYXUgQnVmUmVhZENtZCAgZmlsZTovLyoJCWV4ZSAic2lsZW50IGRvYXUgQnVmUmVhZFByZSAiLm5ldHJ3I1JGQzIzOTYoZXhwYW5kKCI8YW1hdGNoPiIpKXxleGUgJ2UgJy5zdWJzdGl0dXRlKG5ldHJ3I1JGQzIzOTYoZXhwYW5kKCI8YW1hdGNoPiIpKSwnZmlsZTovL1woLipcKScsJ1wxJywiIil8ZXhlICJzaWxlbnQgZG9hdSBCdWZSZWFkUG9zdCAiLm5ldHJ3I1JGQzIzOTYoZXhwYW5kKCI8YW1hdGNoPiIpKQorICBhdSBCdWZSZWFkQ21kICBmaWxlOi8vKgkJZXhlICJzaWxlbnQgZG9hdSBCdWZSZWFkUHJlICIubmV0cncjUkZDMjM5NihleHBhbmQoIjxhbWF0Y2g+IikpfGV4ZSAnZSAnLnN1YnN0aXR1dGUobmV0cncjUkZDMjM5NihleHBhbmQoIjxhbWF0Y2g+IikpLCdmaWxlOi8vXCguKlwpJywnXDEnLCIiKXxleGUgImJ3aXBlICIuZXhwYW5kKCI8YW1hdGNoPiIpfGV4ZSAic2lsZW50IGRvYXUgQnVmUmVhZFBvc3QgIi5uZXRydyNSRkMyMzk2KGV4cGFuZCgiPGFtYXRjaD4iKSkKICBlbHNlCi0gIGF1IEJ1ZlJlYWRDbWQgIGZpbGU6Ly8qCQlleGUgInNpbGVudCBkb2F1IEJ1ZlJlYWRQcmUgIi5uZXRydyNSRkMyMzk2KGV4cGFuZCgiPGFtYXRjaD4iKSl8ZXhlICdlICcuc3Vic3RpdHV0ZShuZXRydyNSRkMyMzk2KGV4cGFuZCgiPGFtYXRjaD4iKSksJ2ZpbGU6Ly9cKC4qXCknLCdcMScsIiIpfGV4ZSAic2lsZW50IGRvYXUgQnVmUmVhZFBvc3QgIi5uZXRydyNSRkMyMzk2KGV4cGFuZCgiPGFtYXRjaD4iKSkKLSAgYXUgQnVmUmVhZENtZCAgZmlsZTovL2xvY2FsaG9zdC8qCWV4ZSAic2lsZW50IGRvYXUgQnVmUmVhZFByZSAiLm5ldHJ3I1JGQzIzOTYoZXhwYW5kKCI8YW1hdGNoPiIpKXxleGUgJ2UgJy5zdWJzdGl0dXRlKG5ldHJ3I1JGQzIzOTYoZXhwYW5kKCI8YW1hdGNoPiIpKSwnZmlsZTovL2xvY2FsaG9zdC9cKC4qXCknLCdcMScsIiIpfGV4ZSAic2lsZW50IGRvYXUgQnVmUmVhZFBvc3QgIi5uZXRydyNSRkMyMzk2KGV4cGFuZCgiPGFtYXRjaD4iKSkKKyAgYXUgQnVmUmVhZENtZCAgZmlsZTovLyoJCWV4ZSAic2lsZW50IGRvYXUgQnVmUmVhZFByZSAiLm5ldHJ3I1JGQzIzOTYoZXhwYW5kKCI8YW1hdGNoPiIpKXxleGUgJ2UgJy5zdWJzdGl0dXRlKG5ldHJ3I1JGQzIzOTYoZXhwYW5kKCI8YW1hdGNoPiIpKSwnZmlsZTovL1woLipcKScsJ1wxJywiIil8ZXhlICJid2lwZSAiLmV4cGFuZCgiPGFtYXRjaD4iKXxleGUgInNpbGVudCBkb2F1IEJ1ZlJlYWRQb3N0ICIubmV0cncjUkZDMjM5NihleHBhbmQoIjxhbWF0Y2g+IikpCisgIGF1IEJ1ZlJlYWRDbWQgIGZpbGU6Ly9sb2NhbGhvc3QvKglleGUgInNpbGVudCBkb2F1IEJ1ZlJlYWRQcmUgIi5uZXRydyNSRkMyMzk2KGV4cGFuZCgiPGFtYXRjaD4iKSl8ZXhlICdlICcuc3Vic3RpdHV0ZShuZXRydyNSRkMyMzk2KGV4cGFuZCgiPGFtYXRjaD4iKSksJ2ZpbGU6Ly9sb2NhbGhvc3QvXCguKlwpJywnXDEnLCIiKXxleGUgImJ3aXBlICIuc3Vic3RpdHV0ZShleHBhbmQoIjxhbWF0Y2g+IiksJ2ZpbGU6Ly9cKFxrXCtAXClcPScsJycsJycpfGV4ZSAic2lsZW50IGRvYXUgQnVmUmVhZFBvc3QgIi5uZXRydyNSRkMyMzk2KGV4cGFuZCgiPGFtYXRjaD4iKSkKICBlbmRpZgotIGF1IEJ1ZlJlYWRDbWQgICBmdHA6Ly8qLHJjcDovLyosc2NwOi8vKixodHRwOi8vKixkYXY6Ly8qLHJzeW5jOi8vKixzZnRwOi8vKglleGUgInNpbGVudCBkb2F1IEJ1ZlJlYWRQcmUgIi5leHBhbmQoIjxhbWF0Y2g+Iil8ZXhlICcyTnJlYWQgIicuZXhwYW5kKCI8YW1hdGNoPiIpLiciJ3xleGUgInNpbGVudCBkb2F1IEJ1ZlJlYWRQb3N0ICIuZXhwYW5kKCI8YW1hdGNoPiIpCi0gYXUgRmlsZVJlYWRDbWQgIGZ0cDovLyoscmNwOi8vKixzY3A6Ly8qLGh0dHA6Ly8qLGRhdjovLyoscnN5bmM6Ly8qLHNmdHA6Ly8qCWV4ZSAic2lsZW50IGRvYXUgRmlsZVJlYWRQcmUgIi5leHBhbmQoIjxhbWF0Y2g+Iil8ZXhlICdOcmVhZCAiJyAgIC5leHBhbmQoIjxhbWF0Y2g+IikuJyInfGV4ZSAic2lsZW50IGRvYXUgRmlsZVJlYWRQb3N0ICIuZXhwYW5kKCI8YW1hdGNoPiIpCi0gYXUgQnVmV3JpdGVDbWQgIGZ0cDovLyoscmNwOi8vKixzY3A6Ly8qLGRhdjovLyoscnN5bmM6Ly8qLHNmdHA6Ly8qCQlleGUgInNpbGVudCBkb2F1IEJ1ZldyaXRlUHJlICIuZXhwYW5kKCI8YW1hdGNoPiIpfGV4ZSAnTndyaXRlICInIC5leHBhbmQoIjxhbWF0Y2g+IikuJyInfGV4ZSAic2lsZW50IGRvYXUgQnVmV3JpdGVQb3N0ICIuZXhwYW5kKCI8YW1hdGNoPiIpCi0gYXUgRmlsZVdyaXRlQ21kIGZ0cDovLyoscmNwOi8vKixzY3A6Ly8qLGRhdjovLyoscnN5bmM6Ly8qLHNmdHA6Ly8qCQlleGUgInNpbGVudCBkb2F1IEZpbGVXcml0ZVByZSAiLmV4cGFuZCgiPGFtYXRjaD4iKXxleGUgIidbLCddIi4nTndyaXRlICInIC5leHBhbmQoIjxhbWF0Y2g+IikuJyInfGV4ZSAic2lsZW50IGRvYXUgRmlsZVdyaXRlUG9zdCAiLmV4cGFuZCgiPGFtYXRjaD4iKQorIGF1IEJ1ZlJlYWRDbWQgICBmdHA6Ly8qLHJjcDovLyosc2NwOi8vKixodHRwOi8vKixkYXY6Ly8qLGRhdnM6Ly8qLHJzeW5jOi8vKixzZnRwOi8vKglleGUgInNpbGVudCBkb2F1IEJ1ZlJlYWRQcmUgIi5leHBhbmQoIjxhbWF0Y2g+Iil8ZXhlICcyTnJlYWQgIicuZXhwYW5kKCI8YW1hdGNoPiIpLiciJ3xleGUgInNpbGVudCBkb2F1IEJ1ZlJlYWRQb3N0ICIuZXhwYW5kKCI8YW1hdGNoPiIpCisgYXUgRmlsZVJlYWRDbWQgIGZ0cDovLyoscmNwOi8vKixzY3A6Ly8qLGh0dHA6Ly8qLGRhdjovLyosZGF2czovLyoscnN5bmM6Ly8qLHNmdHA6Ly8qCWV4ZSAic2lsZW50IGRvYXUgRmlsZVJlYWRQcmUgIi5leHBhbmQoIjxhbWF0Y2g+Iil8ZXhlICdOcmVhZCAiJyAgIC5leHBhbmQoIjxhbWF0Y2g+IikuJyInfGV4ZSAic2lsZW50IGRvYXUgRmlsZVJlYWRQb3N0ICIuZXhwYW5kKCI8YW1hdGNoPiIpCisgYXUgQnVmV3JpdGVDbWQgIGZ0cDovLyoscmNwOi8vKixzY3A6Ly8qLGRhdjovLyosZGF2czovLyoscnN5bmM6Ly8qLHNmdHA6Ly8qCQlleGUgInNpbGVudCBkb2F1IEJ1ZldyaXRlUHJlICIuZXhwYW5kKCI8YW1hdGNoPiIpfGV4ZSAnTndyaXRlICInIC5leHBhbmQoIjxhbWF0Y2g+IikuJyInfGV4ZSAic2lsZW50IGRvYXUgQnVmV3JpdGVQb3N0ICIuZXhwYW5kKCI8YW1hdGNoPiIpCisgYXUgRmlsZVdyaXRlQ21kIGZ0cDovLyoscmNwOi8vKixzY3A6Ly8qLGRhdjovLyosZGF2czovLyoscnN5bmM6Ly8qLHNmdHA6Ly8qCQlleGUgInNpbGVudCBkb2F1IEZpbGVXcml0ZVByZSAiLmV4cGFuZCgiPGFtYXRjaD4iKXxleGUgIidbLCddIi4nTndyaXRlICInIC5leHBhbmQoIjxhbWF0Y2g+IikuJyInfGV4ZSAic2lsZW50IGRvYXUgRmlsZVdyaXRlUG9zdCAiLmV4cGFuZCgiPGFtYXRjaD4iKQogIHRyeQotICBhdSBTb3VyY2VDbWQgICAgZnRwOi8vKixyY3A6Ly8qLHNjcDovLyosaHR0cDovLyosZGF2Oi8vKixyc3luYzovLyosc2Z0cDovLyoJZXhlICdOc291cmNlICInLmV4cGFuZCgiPGFtYXRjaD4iKS4nIicKKyAgYXUgU291cmNlQ21kICAgIGZ0cDovLyoscmNwOi8vKixzY3A6Ly8qLGh0dHA6Ly8qLGRhdjovLyosZGF2czovLyoscnN5bmM6Ly8qLHNmdHA6Ly8qCWV4ZSAnTnNvdXJjZSAiJy5leHBhbmQoIjxhbWF0Y2g+IikuJyInCiAgY2F0Y2ggL15WaW1cJSgoXGFcKylcKVw9OkUyMTYvCi0gIGF1IFNvdXJjZVByZSAgICBmdHA6Ly8qLHJjcDovLyosc2NwOi8vKixodHRwOi8vKixkYXY6Ly8qLHJzeW5jOi8vKixzZnRwOi8vKglleGUgJ05zb3VyY2UgIicuZXhwYW5kKCI8YW1hdGNoPiIpLiciJworICBhdSBTb3VyY2VQcmUgICAgZnRwOi8vKixyY3A6Ly8qLHNjcDovLyosaHR0cDovLyosZGF2Oi8vKixkYXZzOi8vKixyc3luYzovLyosc2Z0cDovLyoJZXhlICdOc291cmNlICInLmV4cGFuZCgiPGFtYXRjaD4iKS4nIicKICBlbmR0cnkKIGF1Z3JvdXAgRU5ECiAKICIgQ29tbWFuZHM6IDpOcmVhZCwgOk53cml0ZSwgOk5ldFVzZXJQYXNzIHt7ezIKLWNvbSEgLWNvdW50PTEgLW5hcmdzPSoJTnJlYWQJCWNhbGwgbmV0cncjTmV0U2F2ZVBvc24oKTxiYXI+Y2FsbCBuZXRydyNOZXRSZWFkKDxjb3VudD4sPGYtYXJncz4pPGJhcj5jYWxsIG5ldHJ3I05ldFJlc3RvcmVQb3NuKCkKLWNvbSEgLXJhbmdlPSUgLW5hcmdzPSoJTndyaXRlCQljYWxsIG5ldHJ3I05ldFNhdmVQb3NuKCk8YmFyPjxsaW5lMT4sPGxpbmUyPmNhbGwgbmV0cncjTmV0V3JpdGUoPGYtYXJncz4pPGJhcj5jYWxsIG5ldHJ3I05ldFJlc3RvcmVQb3NuKCkKK2NvbSEgLWNvdW50PTEgLW5hcmdzPSoJTnJlYWQJCWNhbGwgbmV0cncjTmV0cndTYXZlUG9zbigpPGJhcj5jYWxsIG5ldHJ3I05ldFJlYWQoPGNvdW50Piw8Zi1hcmdzPik8YmFyPmNhbGwgbmV0cncjTmV0cndSZXN0b3JlUG9zbigpCitjb20hIC1yYW5nZT0lIC1uYXJncz0qCU53cml0ZQkJY2FsbCBuZXRydyNOZXRyd1NhdmVQb3NuKCk8YmFyPjxsaW5lMT4sPGxpbmUyPmNhbGwgbmV0cncjTmV0V3JpdGUoPGYtYXJncz4pPGJhcj5jYWxsIG5ldHJ3I05ldHJ3UmVzdG9yZVBvc24oKQogY29tISAtbmFyZ3M9KgkJTmV0VXNlclBhc3MJY2FsbCBOZXRVc2VyUGFzcyg8Zi1hcmdzPikKLWNvbSEgLW5hcmdzPSsgICAgICAgICAgIE5jb3B5ICAgICAgICAgICBjYWxsIG5ldHJ3I05ldE9idGFpbig8Zi1hcmdzPikKLWNvbSEgLW5hcmdzPSoJICAgICAgICBOc291cmNlCQljYWxsIG5ldHJ3I05ldFNhdmVQb3NuKCk8YmFyPmNhbGwgbmV0cncjTmV0U291cmNlKDxmLWFyZ3M+KTxiYXI+Y2FsbCBuZXRydyNOZXRSZXN0b3JlUG9zbigpCitjb20hIC1uYXJncz0qCSAgICAgICAgTnNvdXJjZQkJY2FsbCBuZXRydyNOZXRyd1NhdmVQb3NuKCk8YmFyPmNhbGwgbmV0cncjTmV0U291cmNlKDxmLWFyZ3M+KTxiYXI+Y2FsbCBuZXRydyNOZXRyd1Jlc3RvcmVQb3NuKCkKIAogIiBDb21tYW5kczogOkV4cGxvcmUsIDpTZXhwbG9yZSwgSGV4cGxvcmUsIFZleHBsb3JlIHt7ezIKIGNvbSEgLW5hcmdzPSogLWJhciAtYmFuZyAtY291bnQ9MCAtY29tcGxldGU9ZGlyCUV4cGxvcmUJCWNhbGwgbmV0cncjRXhwbG9yZSg8Y291bnQ+LDAsMCs8YmFuZz4wLDxxLWFyZ3M+KQpAQCAtODAsMTQgKzc5LDE1IEBACiBjb20hIC1uYXJncz0qIC1iYXIgLWJhbmcJCQlQZXhwbG9yZQljYWxsIG5ldHJ3I0V4cGxvcmUoLTIsMCwwLDxxLWFyZ3M+KQogCiAiIENvbW1hbmRzOiBOZXRyd1NldHRpbmdzIHt7ezIKLWNvbSEgLW5hcmdzPTAgTmV0cndTZXR0aW5ncyA6Y2FsbCBuZXRyd1NldHRpbmdzI05ldHJ3U2V0dGluZ3MoKQorY29tISAtbmFyZ3M9MAlOZXRyd1NldHRpbmdzCWNhbGwgbmV0cndTZXR0aW5ncyNOZXRyd1NldHRpbmdzKCkKK2NvbSEgLWJhbmcJTmV0cndDbGVhbgljYWxsIG5ldHJ3I05ldHJ3Q2xlYW4oPGJhbmc+MCkKIAogIiBNYXBzOgogaWYgIWV4aXN0cygiZzpuZXRyd19ub2d4IikgJiYgbWFwYXJnKCdnJywnbicpID09ICIiCiAgaWYgIWhhc21hcHRvKCc8UGx1Zz5OZXRyd0Jyb3dzZVgnKQogICBubWFwIDx1bmlxdWU+IGd4IDxQbHVnPk5ldHJ3QnJvd3NlWAogIGVuZGlmCi0gbm5vIDxzaWxlbnQ+IDxQbHVnPk5ldHJ3QnJvd3NlWCA6Y2FsbCBuZXRydyNOZXRCcm93c2VYKGV4cGFuZCgiPGNXT1JEPiIpLDApPGNyPgorIG5ubyA8c2lsZW50PiA8UGx1Zz5OZXRyd0Jyb3dzZVggOmNhbGwgbmV0cncjTmV0cndCcm93c2VYKGV4cGFuZCgiPGNXT1JEPiIpLDApPGNyPgogZW5kaWYKIAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvZnIvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL2ZyL21haW4uYWFwCmluZGV4IGZhZjNlMDEuLmIyMDdiNmUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3BlbGwvZnIvbWFpbi5hYXAKKysrIGIvcnVudGltZS9zcGVsbC9mci9tYWluLmFhcApAQCAtMTEsMTEgKzExLDI2IEBACiAKIGFsbDogJFNQRUxMRElSL2ZyLmxhdGluMS5zcGwgJFNQRUxMRElSL2ZyLnV0Zi04LnNwbCAuLi9SRUFETUVfZnIudHh0CiAKKyMgVGhlIHNwZWxsIGZpbGUgaXMgaXNvLTg4NTktMTUsIGJ1dCBWaW0gbm9ybWFsbHkgdXNlcyAibGF0aW4xIiBmb3IgdGhpcy4KKyMgVGhpcyBpcyBPSyBmb3IgdGhlIHV0Zi04IGZpbGVzLCBidXQgZm9yIGxhdGluMSB3ZSBuZWVkIHRvIGF2b2lkIHRoZSAib2UiCisjIGNoYXJhY3Rlci4gIFdoZW4gdW5wYWNraW5nIHdlIGNyZWF0ZSBmb3VyIGZpbGVzOgorIyAgICBmcl9GUl9sYXRpbjEuYWZmICAgIG1vZGlmaWVkIGZpbGUKKyMgICAgZnJfRlJfbGF0aW4xLmRpYyAgICBtb2RpZmllZCBmaWxlCisjICAgIGZyX0ZSX2lzbzE1LmFmZiAgICAgb3JpZ2luYWwgZmlsZSAoYWZ0ZXIgYXBwbHlpbmcgZGlmZikKKyMgICAgZnJfRlJfaXNvMTUuZGljICAgICBvcmlnaW5hbCBmaWxlIChhZnRlciBhcHBseWluZyBkaWZmKQorIyBKdXN0IGJlZm9yZSB1c2luZyB0aGUgZGljdGlvbmFyeSBmaWxlcywgdGhlIHJpZ2h0IG9uZXMgYXJlIGNvcGllZCB0bworIyAgICBmcl9GUi5hZmYKKyMgICAgZnJfRlIuZGljCisKICRTUEVMTERJUi9mci5sYXRpbjEuc3BsIDogJEZJTEVTCi0gICAgICAgIDpzeXMgZW52IExBTkc9ZnJfRlIuSVNPODg1OS0xCisgICAgICAgIDpjb3B5IHtmb3JjZX0gZnJfRlJfbGF0aW4xLmFmZiBmcl9GUi5hZmYKKyAgICAgICAgOmNvcHkge2ZvcmNlfSBmcl9GUl9sYXRpbjEuZGljIGZyX0ZSLmRpYworICAgICAgICA6c3lzIGVudiBMQU5HPWZyX0ZSLklTTzg4NTktMTUKIAkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvZnIgZnJfRlIiIC1jIHEKIAogJFNQRUxMRElSL2ZyLnV0Zi04LnNwbCA6ICRGSUxFUworICAgICAgICA6Y29weSB7Zm9yY2V9IGZyX0ZSX2lzbzE1LmFmZiBmcl9GUi5hZmYKKyAgICAgICAgOmNvcHkge2ZvcmNlfSBmcl9GUl9pc28xNS5kaWMgZnJfRlIuZGljCiAgICAgICAgIDpzeXMgZW52IExBTkc9ZnJfRlIuVVRGLTgKIAkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvZnIgZnJfRlIiIC1jIHEKIApAQCAtMjMsMTAgKzM4LDEzIEBACiAgICAgICAgIDpjYXQgJHNvdXJjZSA+ISR0YXJnZXQKIAogIwotIyBGZXRjaGluZyB0aGUgZmlsZXMgZnJvbSBPcGVuT2ZmaWNlLm9yZy4KKyMgVXNlZCB0byBmZXRjaCB0aGUgZmlsZXMgZnJvbSBPcGVuT2ZmaWNlLm9yZy4gIFRob3NlIGFyZSBvbGQuCisjIExhdGVyIHZlcnNpb25zIGFyZSBlbHNld2hlcmUuCiAjCi1PT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCi06YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSBmcl9GUi56aXAKKyNPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCitaSVBGSUxFID0gaHR0cDovL2RpY28uc2F2YW50LmZyZWUuZnIvX2Rvd25sb2FkL2ZyX0ZSXzEtMS02LnppcAorCis6YXR0ciB7ZmV0Y2ggPSAkWklQRklMRX0gZnJfRlIuemlwCiAKICMgVGhlIGZpbGVzIGRvbid0IGRlcGVuZCBvbiB0aGUgLnppcCBmaWxlIHNvIHRoYXQgd2UgY2FuIGRlbGV0ZSBpdC4KICMgT25seSBkb3dubG9hZCB0aGUgemlwIGZpbGUgaWYgdGhlIHRhcmdldHMgZG9uJ3QgZXhpc3QuCkBAIC00MiwxNSArNjAsNDUgQEAKICAgICAgICAgQGlmIG9zLnBhdGguZXhpc3RzKCdmcl9GUi5kaWZmJyk6CiAgICAgICAgICAgICA6c3lzIHBhdGNoIDxmcl9GUi5kaWZmCiAKKyAgICAgICAgIyBLZWVwIHRoZSB1bm1vZGlmaWVkIGZpbGVzIChhZnRlciBkaWZmKSBmb3IgSVNPLTg4NTktMTUuCisgICAgICAgIDpjb3B5IGZyX0ZSLmFmZiBmcl9GUl9pc28xNS5hZmYKKyAgICAgICAgOmNvcHkgZnJfRlIuZGljIGZyX0ZSX2lzbzE1LmRpYworICAgICAgICAjIEZvciB0aGUgbGF0aW4xIC5kaWMgZmlsZSBjaGFuZ2UgYWxsIHRoZSAib2UiIGNoYXJhY3RlcnMgdG8gdGhlIHR3bworICAgICAgICAjIGNoYXJhY3RlcnMgIm9lIi4KKyAgICAgICAgOnN5cyAkVklNIC11IE5PTkUgLWUgLWMgInNldCBlbmM9bGF0aW4xIgorICAgICAgICAgICAgICAgICAgICAtYyAiZSBmcl9GUi5kaWMiCisgICAgICAgICAgICAgICAgICAgIC1jICIlcy+9L29lL2ciCisgICAgICAgICAgICAgICAgICAgIC1jICJ3ISBmcl9GUl9sYXRpbjEuZGljIgorICAgICAgICAgICAgICAgICAgICAtYyBxCisgICAgICAgICMgRm9yIHRoZSBsYXRpbjEgLmFmZiBmaWxlIGRlbGV0ZSBhbGwgdGhlICJvZSIgYW5kICJPRSIgY2hhcmFjdGVycyBhbmQKKyAgICAgICAgIyBkZWxldGUgdGhlIFJFUCBsaW5lcyB3aXRoIHRob3NlIGNoYXJhY3RlcnMuCisgICAgICAgIDpzeXMgJFZJTSAtdSBOT05FIC1lIC1jICJzZXQgZW5jPWxhdGluMSIKKyAgICAgICAgICAgICAgICAgICAgLWMgImUgZnJfRlIuYWZmIgorICAgICAgICAgICAgICAgICAgICAtYyAiJXMvvS8vZyIKKyAgICAgICAgICAgICAgICAgICAgLWMgIiVzL7wvL2ciCisgICAgICAgICAgICAgICAgICAgIC1jICIlZy9SRVAuKm9lL2QiCisgICAgICAgICAgICAgICAgICAgIC1jICJ3ISBmcl9GUl9sYXRpbjEuYWZmIgorICAgICAgICAgICAgICAgICAgICAtYyBxCisKIAogIyBHZW5lcmF0ZSBkaWZmIGZpbGVzLCBzbyB0aGF0IG90aGVycyBjYW4gZ2V0IHRoZSBPcGVuT2ZmaWNlIGZpbGVzIGFuZCBhcHBseQogIyB0aGUgZGlmZnMgdG8gZ2V0IHRoZSBWaW0gdmVyc2lvbnMuCi0KKyMgVGhpcyB1c2VzIHRoZSBpc28tODg1OS0xNSBmaWxlcy4KIGRpZmY6CiAgICAgICAgIDphc3NlcnRwa2cgZGlmZgorICAgICAgICA6Y29weSB7Zm9yY2V9IGZyX0ZSX2lzbzE1LmFmZiBmcl9GUi5hZmYKKyAgICAgICAgOmNvcHkge2ZvcmNlfSBmcl9GUl9pc28xNS5kaWMgZnJfRlIuZGljCiAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgZnJfRlIub3JpZy5hZmYgZnJfRlIuYWZmID5mcl9GUi5kaWZmCiAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgZnJfRlIub3JpZy5kaWMgZnJfRlIuZGljID4+ZnJfRlIuZGlmZgogCisjIERlbGV0ZSBhbGwgdGhlIHVucGFja2VkIGFuZCBnZW5lcmF0ZWQgZmlsZXMsIGluY2x1ZGluZyB0aGUgIm9yaWciIGZpbGVzLgorY2xlYW46CisgICAgICAgIDpkZWxldGUge2ZvcmNlfSBmcl9GUi56aXAgZnJfRlIuYWZmIGZyX0ZSLmRpYworICAgICAgICAgICAgICAgICAgICAgICAgZnJfRlIuYWZmLm9yaWcgZnJfRlIuZGljLm9yaWcKKyAgICAgICAgICAgICAgICAgICAgICAgIGZyX0ZSLm9yaWcuYWZmIGZyX0ZSLm9yaWcuZGljCisgICAgICAgICAgICAgICAgICAgICAgICBmcl9GUl9sYXRpbjEuYWZmIGZyX0ZSX2xhdGluMS5kaWMKKyAgICAgICAgICAgICAgICAgICAgICAgIGZyX0ZSX2lzbzE1LmFmZiBmcl9GUl9pc28xNS5kaWMKKyAgICAgICAgICAgICAgICAgICAgICAgIFJFQURNRV9mcl9GUi50eHQKIAogIyBDaGVjayBmb3IgdXBkYXRlZCBPcGVuT2ZmaWNlIHNwZWxsIGZpbGVzLiAgV2hlbiB0aGVyZSBhcmUgY2hhbmdlcyB0aGUKICMgIi5uZXcuYWZmIiBhbmQgIi5uZXcuZGljIiBmaWxlcyBhcmUgbGVmdCBiZWhpbmQgZm9yIG1hbnVhbCBpbnNwZWN0aW9uLgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvYXV0b2hvdGtleS52aW0gYi9ydW50aW1lL3N5bnRheC9hdXRvaG90a2V5LnZpbQppbmRleCA3OGNiOWU3Li5iYmVmZDZmIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9hdXRvaG90a2V5LnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9hdXRvaG90a2V5LnZpbQpAQCAtMSw3ICsxLDcgQEAKICIgVmltIHN5bnRheCBmaWxlCiAiIExhbmd1YWdlOiAgICAgICAgIEF1dG9Ib3RrZXkgc2NyaXB0IGZpbGUKICIgTWFpbnRhaW5lcjogICAgICAgTmlrb2xhaSBXZWlidWxsIDxub3dAYml0d2kuc2U+Ci0iIExhdGVzdCBSZXZpc2lvbjogIDIwMDctMDUtMDkKKyIgTGF0ZXN0IFJldmlzaW9uOiAgMjAwNy0wNi0wMQogCiBpZiBleGlzdHMoImI6Y3VycmVudF9zeW50YXgiKQogICBmaW5pc2gKQEAgLTI0Miw2ICsyNDIsMTAgQEAKICAgICAgIFwgbG9jYWwKICAgICAgIFwgZ2xvYmFsCiAKK3N5biBrZXl3b3JkIGF1dG9ob3RrZXlCb29sZWFuCisgICAgICBcIHRydWUKKyAgICAgIFwgZmFsc2UKKwogaGkgZGVmIGxpbmsgYXV0b2hvdGtleVRvZG8gICAgICAgICAgICAgICAgVG9kbwogaGkgZGVmIGxpbmsgYXV0b2hvdGtleUNvbW1lbnQgICAgICAgICAgICAgQ29tbWVudAogaGkgZGVmIGxpbmsgYXV0b2hvdGtleUNvbW1lbnRTdGFydCAgICAgICAgYXV0b2hvdGtleUNvbW1lbnQKQEAgLTI3MSw2ICsyNzUsNyBAQAogaGkgZGVmIGxpbmsgYXV0b2hvdGtleUludGVnZXIgICAgICAgICAgICAgYXV0b2hvdGtleU51bWJlcgogaGkgZGVmIGxpbmsgYXV0b2hvdGtleUZsb2F0ICAgICAgICAgICAgICAgYXV0b2hvdGtleU51bWJlcgogaGkgZGVmIGxpbmsgYXV0b2hvdGtleVR5cGUgICAgICAgICAgICAgICAgVHlwZQoraGkgZGVmIGxpbmsgYXV0b2hvdGtleUJvb2xlYW4gICAgICAgICAgICAgQm9vbGVhbgogCiBsZXQgYjpjdXJyZW50X3N5bnRheCA9ICJhdXRvaG90a2V5IgogCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9mc3RhYi52aW0gYi9ydW50aW1lL3N5bnRheC9mc3RhYi52aW0KaW5kZXggOWNiNzZjYi4uODMwYjhkMCAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvZnN0YWIudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L2ZzdGFiLnZpbQpAQCAtMiwxMyArMiwxNCBAQAogIiBMYW5ndWFnZTogZnN0YWIgZmlsZQogIiBNYWludGFuZXI6IFJhZHUgRGluZWl1IDxyYWR1LmRpbmVpdUBnbWFpbC5jb20+CiAiIFVSTDogaHR0cDovL2xkLnlpLm9yZy92aW0vZnN0YWIudmltCi0iIExhc3QgQ2hhbmdlOiAyMDA3IEFwciAyNAotIiBWZXJzaW9uOiAwLjkxCisiIExhc3QgQ2hhbmdlOiAyMDA4IEphbiAxNgorIiBWZXJzaW9uOiAwLjkyCiAiCiAiIENyZWRpdHM6CiAiICAgRGF2aWQgTmVjYXMgKFlldGkpIDx5ZXRpQHBoeXNpY3MubXVuaS5jej4KICIgICBTdGVmYW5vIFphY2NoaXJvbGkgPHphY2tAZGViaWFuLm9yZz4KICIgICBHZW9yZ2kgR2VvcmdpZXYgPGNodXR6QGdnMy5uZXQ+CisiICAgSmFtZXMgVmVnYSA8amFtZXNzYW5AZGViaWFuLm9yZz4KICIKICIgT3B0aW9uczoKICIgICBsZXQgZnN0YWJfdW5rbm93bl9mc19lcnJvcnMgPSAxCkBAIC0yMyw3ICsyNCw3IEBACiAiIEdlbmVyYWwKIHN5biBjbHVzdGVyIGZzR2VuZXJhbENsdXN0ZXIgY29udGFpbnM9ZnNDb21tZW50CiBzeW4gbWF0Y2ggZnNDb21tZW50IC9ccyojLiovCi1zeW4gbWF0Y2ggZnNPcGVyYXRvciAvWyw9Ol0vCitzeW4gbWF0Y2ggZnNPcGVyYXRvciAvWyw9OiNdLwogCiAiIERldmljZQogc3luIGNsdXN0ZXIgZnNEZXZpY2VDbHVzdGVyIGNvbnRhaW5zPWZzT3BlcmF0b3IsZnNEZXZpY2VLZXl3b3JkLGZzRGV2aWNlRXJyb3IKQEAgLTMxLDkgKzMyLDExIEBACiBzeW4ga2V5d29yZCBmc0RldmljZUtleXdvcmQgY29udGFpbmVkIG5vbmUgcHJvYyBsaW5wcm9jIHRtcGZzIGRldnB0cyBzeXNmcyB1c2Jmcwogc3luIGtleXdvcmQgZnNEZXZpY2VLZXl3b3JkIGNvbnRhaW5lZCBMQUJFTCBuZXh0Z3JvdXA9ZnNEZXZpY2VMYWJlbAogc3luIGtleXdvcmQgZnNEZXZpY2VLZXl3b3JkIGNvbnRhaW5lZCBVVUlEIG5leHRncm91cD1mc0RldmljZVVVSUQKK3N5biBrZXl3b3JkIGZzRGV2aWNlS2V5d29yZCBjb250YWluZWQgc3NoZnMgbmV4dGdyb3VwPWZzRGV2aWNlU3NoZnMKIHN5biBtYXRjaCBmc0RldmljZUtleXdvcmQgY29udGFpbmVkIC9eW2EtekEtWjAtOS5cLV1cK1x6ZTovCiBzeW4gbWF0Y2ggZnNEZXZpY2VMYWJlbCBjb250YWluZWQgLz1bXiBcdF1cKy9ocz1zKzEgY29udGFpbnM9ZnNPcGVyYXRvcgogc3luIG1hdGNoIGZzRGV2aWNlVVVJRCBjb250YWluZWQgLz1bXiBcdF1cKy9ocz1zKzEgY29udGFpbnM9ZnNPcGVyYXRvcgorc3luIG1hdGNoIGZzRGV2aWNlU3NoZnMgY29udGFpbmVkIC8jW189WzphbG51bTpdXC5cLystXVwrQFthLXowLTkuXy1dXCtcYVx7Mn06W14gXHRdXCsvaHM9cysxIGNvbnRhaW5zPWZzT3BlcmF0b3IKIAogIiBNb3VudCBQb2ludAogc3luIGNsdXN0ZXIgZnNNb3VudFBvaW50Q2x1c3RlciBjb250YWlucz1mc01vdW50UG9pbnRLZXl3b3JkLGZzTW91bnRQb2ludEVycm9yCkBAIC00Myw3ICs0Niw3IEBACiAiIFR5cGUKIHN5biBjbHVzdGVyIGZzVHlwZUNsdXN0ZXIgY29udGFpbnM9ZnNUeXBlS2V5d29yZCxmc1R5cGVVbmtub3duCiBzeW4gbWF0Y2ggZnNUeXBlVW5rbm93biAvXHNcK1x6c1x3XCsvIGNvbnRhaW5lZAotc3luIGtleXdvcmQgZnNUeXBlS2V5d29yZCBjb250YWluZWQgYWRmcyBhZG9zIGFmZnMgYXRmcyBhdWRpb2ZzIGF1dG8gYXV0b2ZzIGJlZnMgYmZzIGNkOTY2MCBjZnMgY2lmcyBjb2RhIGNyYW1mcyBkZXZmcyBkZXZwdHMgZTJjb21wciBlZnMgZXh0MiBleHQyZnMgZXh0MyBmZGVzYyBmZnMgZmlsZWNvcmUgaGZzIGhwZnMgaXNvOTY2MCBqZmZzIGpmZnMyIGpmcyBrZXJuZnMgbGZzIGxpbnByb2NmcyBtZnMgbWluaXggbXNkb3MgbmNwZnMgbmZzIG5vbmUgbnRmcyBudWxsIG53ZnMgb3ZlcmxheSBvdmxmcyBwb3J0YWwgcHJvYyBwcm9jZnMgcHR5ZnMgcW54NCByZWlzZXJmcyByb21mcyBzaG0gc21iZnMgc3RkIHN1YmZzIHN3YXAgc3lzZnMgc3lzdiB0Y2ZzIHRtcGZzIHVkZiB1ZnMgdW1hcCB1bXNkb3MgdW5pb24gdXNiZnMgdXNlcmZzIHZmYXQgdnMzZnMgdnhmcyB3cmFwZnMgd3ZmcyB4ZnMgemlzb2ZzCitzeW4ga2V5d29yZCBmc1R5cGVLZXl3b3JkIGNvbnRhaW5lZCBhZGZzIGFkb3MgYWZmcyBhdGZzIGF1ZGlvZnMgYXV0byBhdXRvZnMgYmVmcyBiZnMgY2Q5NjYwIGNmcyBjaWZzIGNvZGEgY3JhbWZzIGRldmZzIGRldnB0cyBlMmNvbXByIGVmcyBleHQyIGV4dDJmcyBleHQzIGZkZXNjIGZmcyBmaWxlY29yZSBmdXNlIGhmcyBocGZzIGlzbzk2NjAgamZmcyBqZmZzMiBqZnMga2VybmZzIGxmcyBsaW5wcm9jZnMgbWZzIG1pbml4IG1zZG9zIG5jcGZzIG5mcyBub25lIG50ZnMgbnVsbCBud2ZzIG92ZXJsYXkgb3ZsZnMgcG9ydGFsIHByb2MgcHJvY2ZzIHB0eWZzIHFueDQgcmVpc2VyZnMgcm9tZnMgc2htIHNtYmZzIHNzaGZzIHN0ZCBzdWJmcyBzd2FwIHN5c2ZzIHN5c3YgdGNmcyB0bXBmcyB1ZGYgdWZzIHVtYXAgdW1zZG9zIHVuaW9uIHVzYmZzIHVzZXJmcyB2ZmF0IHZzM2ZzIHZ4ZnMgd3JhcGZzIHd2ZnMgeGZzIHppc29mcwogCiAiIE9wdGlvbnMKICIgLS0tLS0tLQpAQCAtMTQzLDYgKzE0NiwxNCBAQAogc3luIGtleXdvcmQgZnNPcHRpb25zUmVpc2VySGFzaCBjb250YWluZWQgcnVwYXNvdiB0ZWEgcjUgZGV0ZWN0CiBzeW4ga2V5d29yZCBmc09wdGlvbnNLZXl3b3JkcyBjb250YWluZWQgaGFzaGVkX3JlbG9jYXRpb24gbm9ib3JkZXIgbm9sb2cgbm90YWlsIG5vX3VuaGFzaGVkX3JlbG9jYXRpb24gcmVwbGF5b25seQogCisiIE9wdGlvbnM6IHNzaGZzCitzeW4gbWF0Y2ggZnNPcHRpb25zS2V5d29yZHMgY29udGFpbmVkIC9cPFwlKEJhdGNoTW9kZVx8Q2hhbGxlbmdlUmVzcG9uc2VBdXRoZW50aWNhdGlvblx8Q2hlY2tIb3N0SVBcfENsZWFyQWxsRm9yd2FyZGluZ3NcfENvbXByZXNzaW9uXHxFbmFibGVTU0hLZXlzaWduXHxGb3J3YXJkQWdlbnRcfEZvcndhcmRYMTFcfEZvcndhcmRYMTFUcnVzdGVkXHxHYXRld2F5UG9ydHNcfEdTU0FQSUF1dGhlbnRpY2F0aW9uXHxHU1NBUElEZWxlZ2F0ZUNyZWRlbnRpYWxzXHxIYXNoS25vd25Ib3N0c1x8SG9zdGJhc2VkQXV0aGVudGljYXRpb25cfElkZW50aXRpZXNPbmx5XHxOb0hvc3RBdXRoZW50aWNhdGlvbkZvckxvY2FsaG9zdFx8UGFzc3dvcmRBdXRoZW50aWNhdGlvblx8UHVia2V5QXV0aGVudGljYXRpb25cfFJob3N0c1JTQUF1dGhlbnRpY2F0aW9uXHxSU0FBdXRoZW50aWNhdGlvblx8VENQS2VlcEFsaXZlXHxVc2VQcml2aWxlZ2VkUG9ydFx8Y2FjaGVcKT0vIG5leHRncm91cD1mc09wdGlvbnNZZXNObworc3luIG1hdGNoIGZzT3B0aW9uc0tleXdvcmRzIGNvbnRhaW5lZCAvXDxcJShDb250cm9sTWFzdGVyXHxTdHJpY3RIb3N0S2V5Q2hlY2tpbmdcfFZlcmlmeUhvc3RLZXlETlNcKT0vIG5leHRncm91cD1mc09wdGlvbnNTc2hZZXNOb0Fzaworc3luIG1hdGNoIGZzT3B0aW9uc0tleXdvcmRzIGNvbnRhaW5lZCAvXDxcJShBZGRyZXNzRmFtaWx5XHxCaW5kQWRkcmVzc1x8Q2lwaGVyXHxDaXBoZXJzXHxDb250cm9sUGF0aFx8RHluYW1pY0ZvcndhcmRcfEVzY2FwZUNoYXJcfEdsb2JhbEtub3duSG9zdHNGaWxlXHxIb3N0S2V5QWxnb3JpdGhtc1x8SG9zdEtleUFsaWFzXHxIb3N0TmFtZVx8SWRlbnRpdHlGaWxlXHxLYmRJbnRlcmFjdGl2ZURldmljZXNcfExvY2FsRm9yd2FyZFx8TG9nTGV2ZWxcfE1BQ3NcfFByZWZlcnJlZEF1dGhlbnRpY2F0aW9uc1x8UHJvdG9jb2xcfFByb3h5Q29tbWFuZFx8UmVtb3RlRm9yd2FyZFx8Umhvc3RzQXV0aGVudGljYXRpb25cfFNlbmRFbnZcfFNtYXJ0Y2FyZERldmljZVx8VXNlclx8VXNlcktub3duSG9zdHNGaWxlXHxYQXV0aExvY2F0aW9uXHxjb21tZW50XHx3b3JrYXJvdW5kXHxpZG1hcFx8c3NoX2NvbW1hbmRcfHNmdHBfc2VydmVyXHxmc25hbWVcKT0vIG5leHRncm91cD1mc09wdGlvbnNTdHJpbmcKK3N5biBtYXRjaCBmc09wdGlvbnNLZXl3b3JkcyBjb250YWluZWQgL1w8XCUoQ29tcHJlc3Npb25MZXZlbFx8Q29ubmVjdGlvbkF0dGVtcHRzXHxDb25uZWN0VGltZW91dFx8TnVtYmVyT2ZQYXNzd29yZFByb21wdHNcfFBvcnRcfFNlcnZlckFsaXZlQ291bnRNYXhcfFNlcnZlckFsaXZlSW50ZXJ2YWxcfGNhY2hlX3RpbWVvdXRcfGNhY2hlX1hfdGltZW91dFx8c3NoX3Byb3RvY29sXHxkaXJlY3Rwb3J0XHxtYXhfcmVhZFx8dW1hc2tcfHVpZFx8Z2lkXHxlbnRyeV90aW1lb3V0XHxuZWdhdGl2ZV90aW1lb3V0XHxhdHRyX3RpbWVvdXRcKT0vIG5leHRncm91cD1mc09wdGlvbnNOdW1iZXIKK3N5biBrZXl3b3JkIGZzT3B0aW9uc0tleXdvcmRzIGNvbnRhaW5lZCByZWNvbm5lY3Qgc3NoZnNfc3luYyBub19yZWFkYWhlYWQgc3NoZnNfZGVidWcgdHJhbnNmb3JtX3N5bWxpbmtzIGFsbG93X290aGVyIGFsbG93X3Jvb3Qgbm9uZW1wdHkgZGVmYXVsdF9wZXJtaXNzaW9ucyBsYXJnZV9yZWFkIGhhcmRfcmVtb3ZlIHVzZV9pbm8gcmVhZGRpcl9pbm8gZGlyZWN0X2lvIGtlcm5lbF9jYWNoZQorc3luIGtleXdvcmQgZnNPcHRpb25zU3NoWWVzTm9Bc2sgY29udGFpbmVkIHllcyBubyBhc2sKKwogIiBPcHRpb25zOiBzdWJmcwogc3luIG1hdGNoIGZzT3B0aW9uc0tleXdvcmRzIGNvbnRhaW5lZCAvXDxmcz0vIG5leHRncm91cD1mc09wdGlvbnNTdHJpbmcKIHN5biBrZXl3b3JkIGZzT3B0aW9uc0tleXdvcmRzIGNvbnRhaW5lZCBwcm9jdWlkCkBAIC0yMDgsMTEgKzIxOSwxMyBAQAogCUhpTGluayBmc0RldmljZUtleXdvcmQgSWRlbnRpZmllcgogCUhpTGluayBmc0RldmljZUxhYmVsIFN0cmluZwogCUhpTGluayBmc0RldmljZVVVSUQgU3RyaW5nCisJSGlMaW5rIGZzRGV2aWNlU3NoZnMgU3RyaW5nCiAJSGlMaW5rIGZzRnJlcVBhc3NOdW1iZXIgTnVtYmVyCiAKIAlpZiBleGlzdHMoJ2ZzdGFiX3Vua25vd25fZnNfZXJyb3JzJykgJiYgZnN0YWJfdW5rbm93bl9mc19lcnJvcnMgPT0gMQogCQlIaUxpbmsgZnNUeXBlVW5rbm93biBFcnJvcgogCWVuZGlmCisKIAlIaUxpbmsgZnNEZXZpY2VFcnJvciBFcnJvcgogCUhpTGluayBmc01vdW50UG9pbnRFcnJvciBFcnJvcgogCUhpTGluayBmc01vdW50UG9pbnRLZXl3b3JkIEtleXdvcmQKQEAgLTIzNSw2ICsyNDgsNyBAQAogCUhpTGluayBmc09wdGlvbnNIcGZzQ2FzZSBTdHJpbmcKIAlIaUxpbmsgZnNPcHRpb25zSXNvTWFwIFN0cmluZwogCUhpTGluayBmc09wdGlvbnNSZWlzZXJIYXNoIFN0cmluZworCUhpTGluayBmc09wdGlvbnNTc2hZZXNOb0FzayBTdHJpbmcKIAlIaUxpbmsgZnNPcHRpb25zVWZzVHlwZSBTdHJpbmcKIAlIaUxpbmsgZnNPcHRpb25zVWZzRXJyb3IgU3RyaW5nCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L3Npc3UudmltIGIvcnVudGltZS9zeW50YXgvc2lzdS52aW0KaW5kZXggZmU0NzJjOS4uZjI5YmMyNiAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvc2lzdS52aW0KKysrIGIvcnVudGltZS9zeW50YXgvc2lzdS52aW0KQEAgLTEsOCArMSw3IEBACi0iJSUgU2lTVSBWaW0gc3ludGF4IGZpbGUKLSIgU2lTVSBNYWludGFpbmVyOiBSYWxwaCBBbWlzc2FoIDxyYWxwaEBhbWlzc2FoLmNvbT4KLSIgU2lTVSBNYXJrdXA6ICAgICBTaVNVIChzaXN1LTAuMzgpCi0iIChvcmlnaW5hbGx5IGxvb2tlZCBhdCBSdWJ5IFZpbSBieSBNaXJrbyBOYXNhdG8pCi0iIExhc3QgVXBkYXRlOgkgICAyMDA2IEp1bCAyMgorIlNpU1UgVmltIHN5bnRheCBmaWxlCisiU2lTVSBNYWludGFpbmVyOiBSYWxwaCBBbWlzc2FoIDxyYWxwaEBhbWlzc2FoLmNvbT4KKyJTaVNVIE1hcmt1cDogICAgIFNpU1UgKHNpc3UtMC42Ni4wLCAyMDA4LTAyLTI0KQorIihvcmlnaW5hbGx5IGxvb2tlZCBhdCBSdWJ5IFZpbSBieSBNaXJrbyBOYXNhdG8pCiAKIGlmIHZlcnNpb24gPCA2MDAKICAgc3ludGF4IGNsZWFyCkBAIC0xMCw2MyArOSw3OCBAQAogICBmaW5pc2gKIGVsc2UKIGVuZGlmCi0iJSAxMSBFcnJvcnM/CisKKyIgRXJyb3JzOgogc3luIG1hdGNoIHNpc3VfZXJyb3IgY29udGFpbnM9c2lzdV9saW5rLHNpc3VfZXJyb3Jfd3NwYWNlICI8IVteZWldXFNcKyE+IgotIiUgMTAgTWFya2VyczogRW5kbm90ZSBJZGVudGlmaWVycywgUGFnZWJyZWFrcyBldGMuOiAKKworIiBNYXJrZXJzIElkZW50aWZpZXJzOgogaWYgIWV4aXN0cygic2lzdV9ub19pZGVudGlmaWVycyIpCi0gIHN5biBtYXRjaCAgIHNpc3VfbWFya19lbmRub3RlICAgICAgICAgICAgICAgICAgICAgICJcfl4iCi0gIHN5biBtYXRjaCAgIHNpc3VfY29udGFpbiAgICAgICBjb250YWlucz1ATm9TcGVsbCAgICI8L1w/c3ViPiIKLSAgc3luIG1hdGNoICAgc2lzdV9icmVhayAgICAgICAgIGNvbnRhaW5zPUBOb1NwZWxsICAgIjxicj5cfDxiciAvPiIKLSAgc3luIG1hdGNoICAgc2lzdV9jb250cm9sICAgICAgIGNvbnRhaW5zPUBOb1NwZWxsICAgIjxwPlx8PC9wPlx8PHAgLz5cfDw6cFtibl0+IgotICBzeW4gbWF0Y2ggICBzaXN1X2h0bWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPGNlbnRlcj5cfDwvY2VudGVyPiIKLSAgc3luIG1hdGNoICAgc2lzdV9tYXJrdGFpbCAgICAgICAgICAgICAgICAgICAgICAgICAgIlt+LV0jIgotICBzeW4gbWF0Y2ggICBzaXN1X2h0bWwgICAgICAgICAgY29udGFpbnM9QE5vU3BlbGwgICAiPHRkPlx8PHRkIFx8PHRyPlx8PC90ZD5cfDwvdHI+XHw8dGFibGU+XHw8dGFibGUgXHw8L3RhYmxlPiIKLSAgc3luIG1hdGNoICAgc2lzdV9jb250cm9sICAgICAgICAgICAgICAgICAgICAgICAgICAgIlwiIgotICBzeW4gbWF0Y2ggICBzaXN1X3VuZGVybGluZSAgICAgICAgICAgICAgICAgICAgICAgICAiXCheXHwgXClfW2EtekEtWjAtOV1cK19cKFsgLixdXHwkXCkiCi0gIHN5biBtYXRjaCAgIHNpc3VfbnVtYmVyICAgICAgICBjb250YWlucz1ATm9TcGVsbCAgICJbMC05YS1mXVx7MzJcfVx8WzAtOWEtZl1cezY0XH0iCi0gIHN5biBtYXRjaCAgIHNpc3VfbGluayAgICAgICAgICBjb250YWlucz1ATm9TcGVsbCAgICJcKGh0dHBzXD86Ly9cfFwuXC5cL1wpXFNcKyIKKyAgc3luIG1hdGNoICAgc2lzdV9tYXJrX2VuZG5vdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx+XiIKKyAgc3luIG1hdGNoICAgc2lzdV9jb250YWluICAgICAgICAgICAgIGNvbnRhaW5zPUBOb1NwZWxsICAgICAgICAgICAgICAgICAgIjwvXD9zdWI+IgorICBzeW4gbWF0Y2ggICBzaXN1X2JyZWFrICAgICAgICAgICAgICAgY29udGFpbnM9QE5vU3BlbGwgICAgICAgICAgICAgICAgICAiPGJyPlx8PGJyIC8+IgorICBzeW4gbWF0Y2ggICBzaXN1X2NvbnRyb2wgICAgICAgICAgICAgY29udGFpbnM9QE5vU3BlbGwgICAgICAgICAgICAgICAgICAiPHA+XHw8L3A+XHw8cCAvPlx8PDpwW2JuXT4iCisgIHN5biBtYXRjaCAgIHNpc3VfaHRtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8Y2VudGVyPlx8PC9jZW50ZXI+IgorICBzeW4gbWF0Y2ggICBzaXN1X21hcmt0YWlsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiW34tXSMiCisgIHN5biBtYXRjaCAgIHNpc3VfaHRtbCAgICAgICAgICAgICAgICBjb250YWlucz1ATm9TcGVsbCAgICAgICAgICAgICAgICAgICI8dGQ+XHw8dGQgXHw8dHI+XHw8L3RkPlx8PC90cj5cfDx0YWJsZT5cfDx0YWJsZSBcfDwvdGFibGU+IgorICBzeW4gbWF0Y2ggICBzaXN1X2NvbnRyb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXCIiCisgIHN5biBtYXRjaCAgIHNpc3VfdW5kZXJsaW5lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcKF5cfCBcKV9bYS16QS1aMC05XVwrX1woWyAuLF1cfCRcKSIKKyAgc3luIG1hdGNoICAgc2lzdV9udW1iZXIgICAgICAgICAgICAgIGNvbnRhaW5zPUBOb1NwZWxsICAgICAgICAgICAgICAgICAgIlswLTlhLWZdXHszMlx9XHxbMC05YS1mXVx7NjRcfSIKKyAgc3luIG1hdGNoICAgc2lzdV9saW5rICAgICAgICAgICAgICAgIGNvbnRhaW5zPUBOb1NwZWxsICAgICAgICAgICAgICAgICAgIlwoX1w/aHR0cHNcPzovL1x8XC5cLlwvXClcU1wrIgogICAibWV0YXZlcnNlIHNwZWNpZmljCi0gIHN5biBtYXRjaCAgIHNpc3Vfb2NuICAgICAgICAgICBjb250YWlucz1ATm9TcGVsbCAgICI8XH5cZFwrO1x3XGRcKztcd1xkXCs+IgotICBzeW4gbWF0Y2ggICBzaXN1X21hcmt0YWlsICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx+Iz4iCi0gIHN5biBtYXRjaCAgIHNpc3VfbWFya3BhcmEgICAgICBjb250YWlucz1ATm9TcGVsbCAgICI8OmlbMTJdPiIKLSAgc3luIG1hdGNoICAgc2lzdV9saW5rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBcKlx+XFNcKyIKLSAgc3luIG1hdGNoICAgc2lzdV9hY3Rpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgIl48Omluc2VydFxkXCs+IgotICBzeW4gbWF0Y2ggICBzaXN1X2NvbnRhaW4gICAgICAgICAgICAgICAgICAgICAgICAgICAiPDplPiIKKyAgc3luIG1hdGNoICAgc2lzdV9vY24gICAgICAgICAgICAgICAgIGNvbnRhaW5zPUBOb1NwZWxsICAgICAgICAgICAgICAgICAgIjxcflxkXCs7XHdcZFwrO1x3XGRcKz4iCisgIHN5biBtYXRjaCAgIHNpc3VfbWFya3RhaWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XH4jPiIKKyAgc3luIG1hdGNoICAgc2lzdV9tYXJrcGFyYSAgICAgICAgICAgIGNvbnRhaW5zPUBOb1NwZWxsICAgICAgICAgICAgICAgICAgIjw6aVsxLTldPiIKKyAgc3luIG1hdGNoICAgc2lzdV9saW5rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBcKlx+XFNcKyIKKyAgc3luIG1hdGNoICAgc2lzdV9hY3Rpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIl48Omluc2VydFxkXCs+IgorICBzeW4gbWF0Y2ggICBzaXN1X3JlcXVpcmUgICAgICAgICAgICAgY29udGFpbnM9QE5vU3BlbGwgICAgICAgICAgICAgICAgICAiXjw8XHMqW2EtekEtWjAtOV4uXy1dXCtcLnNzW2l0XSQiCisgIHN5biBtYXRjaCAgIHNpc3VfcmVxdWlyZSAgICAgICAgICAgICBjb250YWlucz1ATm9TcGVsbCAgICAgICAgICAgICAgICAgICJePDx7W2EtekEtWjAtOV4uXy1dXCtcLnNzW2l0XX0kIgorICBzeW4gbWF0Y2ggICBzaXN1X2NvbnRhaW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPDplPiIKKyAgc3luIG1hdGNoICAgc2lzdV9zZW1fbWFya2VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjt7XHx9O1thLXouX10qW2Etel0iCisgIHN5biBtYXRjaCAgIHNpc3Vfc2VtX21hcmtlcl9ibG9jayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcKFthLXpdW2Etei5fXSpcfFwpOntcfH06W2Etei5fXSpbYS16XSIKKyAgc3luIG1hdGNoICAgc2lzdV9zZW1fZXhfbWFya2VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjtcW1x8XF07W2Etei5fXSpbYS16XSIKKyAgc3luIG1hdGNoICAgc2lzdV9zZW1fZXhfbWFya2VyX2Jsb2NrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlwoW2Etel1bYS16Ll9dKlx8XCk6XFtcfFxdOlthLXouX10qW2Etel0iCisgIHN5biBtYXRjaCAgIHNpc3Vfc2VtX2Jsb2NrIGNvbnRhaW5zPXNpc3VfZXJyb3Isc2lzdV9lcnJvcl93c3BhY2Usc2lzdV9jb250ZW50X2FsdCxzaXN1X2xpbmssc2lzdV9saW5rZWQsc2lzdV9icmVhayxzaXN1X3NlbV9ibG9jayxzaXN1X3NlbV9jb250ZW50LHNpc3Vfc2VtX21hcmtlcl9ibG9jayxzaXN1X3NlbV9tYXJrZXIsc2lzdV9zZW1fZXhfbWFya2VyX2Jsb2NrLHNpc3Vfc2VtX2V4X21hcmtlcixzaXN1X21hcmtfZW5kbm90ZSxzaXN1X2NvbnRlbnRfZW5kbm90ZSAiXChbYS16XSpcKTp7W159XS5cey19fTpcMSIKKyAgc3luIG1hdGNoICAgc2lzdV9zZW1fY29udGVudCBjb250YWlucz1zaXN1X2Vycm9yLHNpc3VfZXJyb3Jfd3NwYWNlLHNpc3VfY29udGVudF9hbHQsc2lzdV9saW5rLHNpc3VfbGlua2VkLHNpc3VfYnJlYWssc2lzdV9zZW1fbWFya2VyX2Jsb2NrLHNpc3Vfc2VtX21hcmtlcixzaXN1X3NlbV9leF9tYXJrZXJfYmxvY2ssc2lzdV9zZW1fZXhfbWFya2VyICI7e1tefV0uXHstfX07W2Etel1cKyIKKyAgc3luIG1hdGNoICAgc2lzdV9zZW1fZXhfYmxvY2sgY29udGFpbnM9c2lzdV9lcnJvcixzaXN1X2Vycm9yX3dzcGFjZSxzaXN1X2NvbnRlbnRfYWx0LHNpc3VfbGluayxzaXN1X2xpbmtlZCxzaXN1X2JyZWFrLHNpc3Vfc2VtX2Jsb2NrLHNpc3Vfc2VtX2NvbnRlbnQsc2lzdV9zZW1fbWFya2VyX2Jsb2NrLHNpc3Vfc2VtX21hcmtlcixzaXN1X3NlbV9leF9tYXJrZXJfYmxvY2ssc2lzdV9zZW1fZXhfbWFya2VyLHNpc3VfbWFya19lbmRub3RlLHNpc3VfY29udGVudF9lbmRub3RlICJcKFthLXpdKlwpOlxbW159XS5cey19XF06XDEiCisgIHN5biBtYXRjaCAgIHNpc3Vfc2VtX2V4X2NvbnRlbnQgY29udGFpbnM9c2lzdV9lcnJvcixzaXN1X2Vycm9yX3dzcGFjZSxzaXN1X2NvbnRlbnRfYWx0LHNpc3VfbGluayxzaXN1X2xpbmtlZCxzaXN1X2JyZWFrLHNpc3Vfc2VtX21hcmtlcl9ibG9jayxzaXN1X3NlbV9tYXJrZXIsc2lzdV9zZW1fZXhfbWFya2VyX2Jsb2NrLHNpc3Vfc2VtX2V4X21hcmtlciAiO1xbW159XS5cey19XF07W2Etel1cKyIKIGVuZGlmCi0iJSA5IFVSTHMgTnVtYmVyczogYW5kIEFTQ0lJIENvZGVzCisKKyJVUkxzIE51bWJlcnMgQW5kIEFTQ0lJIENvZGVzOgogc3luIG1hdGNoICAgc2lzdV9udW1iZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXDxcKDB4XHhcK1x8MGJbMDFdXCtcfDBcb1wrXHwwXC5cZFwrXHwwXHxbMS05XVtcLjAtOV9dKlwpXD4iCiBzeW4gbWF0Y2ggICBzaXN1X251bWJlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI/XChcXE0tXFxDLVx8XFxjXHxcXEMtXHxcXE0tXClcPVwoXFxcb1x7M31cfFxceFx4XHsyfVx8XFxcPVx3XCkiCi0iJSA4IFR1bmVkIEVycm9yIC0gaXMgZXJyb3IgaWYgbm90IGFscmVhZHkgbWF0Y2hlZAorCisiVHVuZWQgRXJyb3I6IChpcyBlcnJvciBpZiBub3QgYWxyZWFkeSBtYXRjaGVkKQogc3luIG1hdGNoIHNpc3VfZXJyb3IgICAgICAgICAgICAgY29udGFpbnM9c2lzdV9lcnJvciAiW1x+L1wqIV9de1x8fVtcfi9cKiFfXSIKIHN5biBtYXRjaCBzaXN1X2Vycm9yICAgICAgICAgICAgIGNvbnRhaW5zPXNpc3VfZXJyb3IgIjxhIGhyZWZcfDwvYT5dIgotIiUgNyBTaW1wbGUgRW5jbG9zZWQgTWFya3VwOgotIiBTaW1wbGUgTWFya3VwOgotIiUgICB1cmwvbGluaworCisiU2ltcGxlIFBhaXJlZCBFbmNsb3NlZCBNYXJrdXA6CisidXJsL2xpbmsKIHN5biByZWdpb24gc2lzdV9saW5rIGNvbnRhaW5zPXNpc3VfZXJyb3Isc2lzdV9lcnJvcl93c3BhY2UgbWF0Y2hncm91cD1zaXN1X2FjdGlvbiBzdGFydD0iXjw8XHMqfFthLXpBLVowLTleLl8tXVwrfEB8W2EtekEtWjAtOV4uXy1dXCt8InJzPXMrMiBlbmQ9IiQiCi0iJSAgIGhlYWRlcgotc3luIHJlZ2lvbiBzaXN1X2hlYWRlcl9jb250ZW50IGNvbnRhaW5zPXNpc3VfZXJyb3Isc2lzdV9lcnJvcl93c3BhY2Usc2lzdV9jb250ZW50X2FsdCxzaXN1X2xpbmssc2lzdV9saW5rZWQsc2lzdV9icmVhayBtYXRjaGdyb3VwPXNpc3VfaGVhZGVyIHN0YXJ0PSJeMFx+XChcU1wrXHxbXi1dXCkiIGVuZD0iJCIKLXN5biByZWdpb24gc2lzdV9oZWFkZXJfY29udGVudCBjb250YWlucz1zaXN1X2Vycm9yLHNpc3VfZXJyb3Jfd3NwYWNlLHNpc3VfY29udGVudF9hbHQsc2lzdV9saW5rLHNpc3VfbGlua2VkLHNpc3VfYnJlYWsgbWF0Y2hncm91cD1zaXN1X2hlYWRlciBzdGFydD0iXjBcflwodGFnc1w/XHxkYXRlXClcc1wrInJzPWUtMSBlbmQ9IlxuJCIKLXN5biByZWdpb24gc2lzdV9oZWFkZXJfY29udGVudCBjb250YWlucz1zaXN1X2Vycm9yLHNpc3VfZXJyb3Jfd3NwYWNlLHNpc3VfY29udGVudF9hbHQsc2lzdV9saW5rLHNpc3VfbGlua2VkLHNpc3VfYnJlYWsgbWF0Y2hncm91cD1zaXN1X2hlYWRlciBzdGFydD0iXkBcU1wrOlsrLV1cP1xzInJzPWUtMSBlbmQ9IiQiCi1zeW4gcmVnaW9uIHNpc3VfaGVhZGVyX2NvbnRlbnQgY29udGFpbnM9c2lzdV9lcnJvcixzaXN1X2Vycm9yX3dzcGFjZSxzaXN1X2NvbnRlbnRfYWx0LHNpc3VfbGluayxzaXN1X2xpbmtlZCxzaXN1X2JyZWFrIG1hdGNoZ3JvdXA9c2lzdV9oZWFkZXIgc3RhcnQ9Il5AXCh0YWdzXD9cfGRhdGVcKTpcc1wrInJzPWUtMSBlbmQ9IlxuJCIKLSIlICAgaGVhZGluZ3MKKyJoZWFkZXIKK3N5biByZWdpb24gc2lzdV9oZWFkZXJfY29udGVudCBjb250YWlucz1zaXN1X2Vycm9yLHNpc3VfZXJyb3Jfd3NwYWNlLHNpc3VfY29udGVudF9hbHQsc2lzdV9saW5rLHNpc3VfbGlua2VkLHNpc3VfYnJlYWsgbWF0Y2hncm91cD1zaXN1X2hlYWRlciBzdGFydD0iXjBcflwoXFNcK1x8W14tXVwpIiBlbmQ9IlxuJCIKK3N5biByZWdpb24gc2lzdV9oZWFkZXJfY29udGVudCBjb250YWlucz1zaXN1X2Vycm9yLHNpc3VfZXJyb3Jfd3NwYWNlLHNpc3VfY29udGVudF9hbHQsc2lzdV9saW5rLHNpc3VfbGlua2VkLHNpc3VfYnJlYWsgbWF0Y2hncm91cD1zaXN1X2hlYWRlciBzdGFydD0iXltAJV1cU1wrOlsrLV1cP1xzInJzPWUtMSBlbmQ9IlxuJCIKKyJoZWFkaW5ncwogc3luIHJlZ2lvbiBzaXN1X2hlYWRpbmcgY29udGFpbnM9c2lzdV9tYXJrX2VuZG5vdGUsc2lzdV9jb250ZW50X2VuZG5vdGUsc2lzdV9tYXJrdGFpbCxzaXN1X3N0cmlrZW91dCxzaXN1X251bWJlcixzaXN1X2NvbnRyb2wsc2lzdV9pZGVudGlmaWVyLHNpc3Vfb2NuLHNpc3VfZXJyb3Isc2lzdV9lcnJvcl93c3BhY2UgbWF0Y2hncm91cD1zaXN1X3N0cnVjdHVyZSBzdGFydD0iXlwoWzEtOF1cfDpcP1tBLUNdXClcflwoXFNcK1x8W14tXVwpIiBlbmQ9IiQiCi0iJSAgIGdyb3VwZWQgdGV4dAotc3luIHJlZ2lvbiBzaXN1X2NvbnRlbnRfYWx0IGNvbnRhaW5zPXNpc3Vfc3RyaWtlb3V0LHNpc3VfbnVtYmVyLHNpc3VfY29udHJvbCxzaXN1X2lkZW50aWZpZXIsc2lzdV9lcnJvciBtYXRjaGdyb3VwPXNpc3VfY29udGFpbiBzdGFydD0idGFibGV7LlwrIiBlbmQ9In10YWJsZSIKLXN5biByZWdpb24gc2lzdV9jb250ZW50X2FsdCBjb250YWlucz1zaXN1X3N0cmlrZW91dCxzaXN1X251bWJlcixzaXN1X2NvbnRyb2wsc2lzdV9pZGVudGlmaWVyLHNpc3VfZXJyb3IgbWF0Y2hncm91cD1zaXN1X2NvbnRhaW4gc3RhcnQ9Int0XH5ofSIgZW5kPSIkJCIKKyJncm91cGVkIHRleHQKK3N5biByZWdpb24gc2lzdV9jb250ZW50X2FsdCBjb250YWlucz1zaXN1X3N0cmlrZW91dCxzaXN1X251bWJlcixzaXN1X2NvbnRyb2wsc2lzdV9pZGVudGlmaWVyLHNpc3VfZXJyb3IgbWF0Y2hncm91cD1zaXN1X2NvbnRhaW4gc3RhcnQ9Il50YWJsZXsuXCsiIGVuZD0ifXRhYmxlIgorc3luIHJlZ2lvbiBzaXN1X2NvbnRlbnRfYWx0IGNvbnRhaW5zPXNpc3Vfc3RyaWtlb3V0LHNpc3VfbnVtYmVyLHNpc3VfY29udHJvbCxzaXN1X2lkZW50aWZpZXIsc2lzdV9lcnJvciBtYXRjaGdyb3VwPXNpc3VfY29udGFpbiBzdGFydD0iXntcKHRcfHRhYmxlXClcKFx+aFwpXD9cKFxzY1swLTldXCs7XClcP1swLTk7IF0qfSIgZW5kPSJcblxuIgogc3luIHJlZ2lvbiBzaXN1X2NvbnRlbnRfYWx0IGNvbnRhaW5zPXNpc3VfbWFya19lbmRub3RlLHNpc3VfY29udGVudF9lbmRub3RlLHNpc3VfbGluayxzaXN1X21hcmssc2lzdV9zdHJpa2VvdXQsc2lzdV9udW1iZXIsc2lzdV9jb250cm9sLHNpc3VfaWRlbnRpZmllcixzaXN1X2Vycm9yIG1hdGNoZ3JvdXA9c2lzdV9jb250YWluIHN0YXJ0PSJeXChhbHRcfGdyb3VwXHxwb2VtXCl7IiBlbmQ9Il59XChhbHRcfGdyb3VwXHxwb2VtXCkiCiBzeW4gcmVnaW9uIHNpc3VfY29udGVudF9hbHQgY29udGFpbnM9c2lzdV9lcnJvciBtYXRjaGdyb3VwPXNpc3VfY29udGFpbiBzdGFydD0iXmNvZGV7IiBlbmQ9Il59Y29kZSIKLSIlICAgZW5kbm90ZXMKLXN5biByZWdpb24gc2lzdV9jb250ZW50X2VuZG5vdGUgY29udGFpbnM9c2lzdV9saW5rLHNpc3Vfc3RyaWtlb3V0LHNpc3VfdW5kZXJsaW5lLHNpc3VfbnVtYmVyLHNpc3VfY29udHJvbCxzaXN1X2lkZW50aWZpZXIsc2lzdV9lcnJvcixzaXN1X2Vycm9yX3dzcGFjZSxzaXN1X21hcmssc2lzdV9icmVhayBtYXRjaGdyb3VwPXNpc3VfbWFya19lbmRub3RlIHN0YXJ0PSJcfntbKitdKiIgZW5kPSJ9XH4iIHNraXA9IlxuIgotc3luIHJlZ2lvbiBzaXN1X2NvbnRlbnRfZW5kbm90ZSBjb250YWlucz1zaXN1X2xpbmssc2lzdV9zdHJpa2VvdXQsc2lzdV91bmRlcmxpbmUsc2lzdV9udW1iZXIsc2lzdV9jb250cm9sLHNpc3VfaWRlbnRpZmllcixzaXN1X2Vycm9yLHNpc3VfZXJyb3Jfd3NwYWNlLHNpc3VfbWFyayxzaXN1X2JyZWFrIG1hdGNoZ3JvdXA9c2lzdV9tYXJrX2VuZG5vdGUgc3RhcnQ9Ilx+XFtbKitdKiIgZW5kPSJcXVx+IiBza2lwPSJcbiIKKyJlbmRub3Rlcworc3luIHJlZ2lvbiBzaXN1X2NvbnRlbnRfZW5kbm90ZSBjb250YWlucz1zaXN1X2xpbmssc2lzdV9zdHJpa2VvdXQsc2lzdV91bmRlcmxpbmUsc2lzdV9udW1iZXIsc2lzdV9jb250cm9sLHNpc3VfaWRlbnRpZmllcixzaXN1X2Vycm9yLHNpc3VfZXJyb3Jfd3NwYWNlLHNpc3VfbWFyayxzaXN1X2JyZWFrLHNpc3Vfc2VtX2Jsb2NrLHNpc3Vfc2VtX2NvbnRlbnQsc2lzdV9zZW1fbWFya2VyX2Jsb2NrLHNpc3Vfc2VtX21hcmtlcixzaXN1X3NlbV9leF9tYXJrZXJfYmxvY2ssc2lzdV9zZW1fZXhfbWFya2VyIG1hdGNoZ3JvdXA9c2lzdV9tYXJrX2VuZG5vdGUgc3RhcnQ9Ilx+e1sqK10qIiBlbmQ9In1cfiIgc2tpcD0iXG4iCitzeW4gcmVnaW9uIHNpc3VfY29udGVudF9lbmRub3RlIGNvbnRhaW5zPXNpc3VfbGluayxzaXN1X3N0cmlrZW91dCxzaXN1X3VuZGVybGluZSxzaXN1X251bWJlcixzaXN1X2NvbnRyb2wsc2lzdV9pZGVudGlmaWVyLHNpc3VfZXJyb3Isc2lzdV9lcnJvcl93c3BhY2Usc2lzdV9tYXJrLHNpc3VfYnJlYWssc2lzdV9zZW1fYmxvY2ssc2lzdV9zZW1fY29udGVudCxzaXN1X3NlbV9tYXJrZXIgbWF0Y2hncm91cD1zaXN1X21hcmtfZW5kbm90ZSBzdGFydD0iXH5cW1sqK10qIiBlbmQ9IlxdXH4iIHNraXA9IlxuIgogc3luIHJlZ2lvbiBzaXN1X2NvbnRlbnRfZW5kbm90ZSBjb250YWlucz1zaXN1X3N0cmlrZW91dCxzaXN1X251bWJlcixzaXN1X2NvbnRyb2wsc2lzdV9saW5rLHNpc3VfaWRlbnRpZmllcixzaXN1X2Vycm9yLHNpc3VfZXJyb3Jfd3NwYWNlLHNpc3VfbWFyayxzaXN1X2JyZWFrIG1hdGNoZ3JvdXA9c2lzdV9tYXJrX2VuZG5vdGUgc3RhcnQ9IlxeXH4iIGVuZD0iXG5cbiIKLSIlICAgaW1hZ2VzCi1zeW4gcmVnaW9uIHNpc3VfbGlua2VkIGNvbnRhaW5zPXNpc3VfZm9udGZhY2Usc2lzdV9zdHJpa2VvdXQsc2lzdV9udW1iZXIsc2lzdV9jb250cm9sLHNpc3VfaWRlbnRpZmllcixzaXN1X2Vycm9yIG1hdGNoZ3JvdXA9c2lzdV9saW5rIHN0YXJ0PSJ7IiBlbmQ9In1cKFwoaHR0cHNcPzovL1x8XC5cLi9cKVxTXCtcfGltYWdlXCkiIG9uZWxpbmUKLSIlICAgc29tZSBsaW5lIG9wZXJhdGlvbnMKKyJsaW5rcyBhbmQgaW1hZ2VzCitzeW4gcmVnaW9uIHNpc3VfbGlua2VkIGNvbnRhaW5zPXNpc3VfZm9udGZhY2Usc2lzdV9zdHJpa2VvdXQsc2lzdV9udW1iZXIsc2lzdV9jb250cm9sLHNpc3VfaWRlbnRpZmllcixzaXN1X3NlbV9ibG9jayxzaXN1X3NlbV9jb250ZW50LHNpc3Vfc2VtX21hcmtlcl9ibG9jayxzaXN1X3NlbV9tYXJrZXIsc2lzdV9zZW1fZXhfbWFya2VyX2Jsb2NrLHNpc3Vfc2VtX2V4X21hcmtlcixzaXN1X3NlbV9ibG9jayxzaXN1X2Vycm9yIG1hdGNoZ3JvdXA9c2lzdV9saW5rIHN0YXJ0PSJ7XChcfl5cc1wpXD8iIGVuZD0ifVwoaHR0cHNcPzovXC9cfFwuXC4vXClcU1wrIiBvbmVsaW5lCitzeW4gcmVnaW9uIHNpc3VfbGlua2VkIGNvbnRhaW5zPXNpc3VfZm9udGZhY2Usc2lzdV9zdHJpa2VvdXQsc2lzdV9udW1iZXIsc2lzdV9jb250cm9sLHNpc3VfaWRlbnRpZmllcixzaXN1X3NlbV9ibG9jayxzaXN1X3NlbV9jb250ZW50LHNpc3Vfc2VtX21hcmtlcl9ibG9jayxzaXN1X3NlbV9tYXJrZXIsc2lzdV9zZW1fZXhfbWFya2VyX2Jsb2NrLHNpc3Vfc2VtX2V4X21hcmtlcixzaXN1X3NlbV9ibG9jayxzaXN1X2Vycm9yIG1hdGNoZ3JvdXA9c2lzdV9saW5rIHN0YXJ0PSJ7XChcfl5cc1wpXD8iIGVuZD0iXFtbMS01XVtzU10qXF19XFNcK1wuc3NbdG1dIiBvbmVsaW5lCitzeW4gcmVnaW9uIHNpc3VfbGlua2VkIGNvbnRhaW5zPXNpc3VfZm9udGZhY2Usc2lzdV9zdHJpa2VvdXQsc2lzdV9udW1iZXIsc2lzdV9jb250cm9sLHNpc3VfaWRlbnRpZmllcixzaXN1X2Vycm9yIG1hdGNoZ3JvdXA9c2lzdV9saW5rIHN0YXJ0PSJ7IiBlbmQ9In1pbWFnZSIgb25lbGluZQorInNvbWUgbGluZSBvcGVyYXRpb25zCiBzeW4gcmVnaW9uIHNpc3VfY29udHJvbCBjb250YWlucz1zaXN1X3N0cmlrZW91dCxzaXN1X2lkZW50aWZpZXIsc2lzdV9jb250ZW50X2VuZG5vdGUsc2lzdV9tYXJrX2VuZG5vdGUsc2lzdV9lcnJvcixzaXN1X2Vycm9yX3dzcGFjZSBtYXRjaGdyb3VwPXNpc3VfY29udHJvbCBzdGFydD0iXChcKF5cfCBcKSFfIFx8PDpiPlwpIiBlbmQ9IiQiCi1zeW4gcmVnaW9uIHNpc3Vfbm9ybWFsIGNvbnRhaW5zPXNpc3Vfc3RyaWtlb3V0LHNpc3VfaWRlbnRpZmllcixzaXN1X2NvbnRlbnRfZW5kbm90ZSxzaXN1X21hcmtfZW5kbm90ZSxzaXN1X2xpbmssc2lzdV9saW5rZWQsc2lzdV9lcnJvcixzaXN1X2Vycm9yX3dzcGFjZSBtYXRjaGdyb3VwPXNpc3VfbWFya3BhcmEgc3RhcnQ9Il5fXChbMTIqXVx8WzEyXVwqXCkgIiBlbmQ9IiQiCitzeW4gcmVnaW9uIHNpc3Vfbm9ybWFsIGNvbnRhaW5zPXNpc3Vfc3RyaWtlb3V0LHNpc3VfaWRlbnRpZmllcixzaXN1X2NvbnRlbnRfZW5kbm90ZSxzaXN1X21hcmtfZW5kbm90ZSxzaXN1X2xpbmssc2lzdV9zZW1fYmxvY2ssc2lzdV9zZW1fY29udGVudCxzaXN1X3NlbV9tYXJrZXJfYmxvY2ssc2lzdV9zZW1fbWFya2VyLHNpc3Vfc2VtX2V4X21hcmtlcl9ibG9jayxzaXN1X3NlbV9leF9tYXJrZXIsc2lzdV9saW5rZWQsc2lzdV9lcnJvcixzaXN1X2Vycm9yX3dzcGFjZSBtYXRjaGdyb3VwPXNpc3VfbWFya3BhcmEgc3RhcnQ9Il5fXChbMS05Kl1cfFsxLTldXCpcKSAiIGVuZD0iJCIKIHN5biByZWdpb24gc2lzdV9ub3JtYWwgY29udGFpbnM9c2lzdV9zdHJpa2VvdXQsc2lzdV9pZGVudGlmaWVyLHNpc3VfY29udGVudF9lbmRub3RlLHNpc3VfbWFya19lbmRub3RlLHNpc3VfbGluayxzaXN1X2xpbmtlZCxzaXN1X2Vycm9yLHNpc3VfZXJyb3Jfd3NwYWNlIG1hdGNoZ3JvdXA9c2lzdV9tYXJrcGFyYSBzdGFydD0iXlwoI1sgMV1cfF8jIFwpIiBlbmQ9IiQiCiBzeW4gcmVnaW9uIHNpc3VfY29tbWVudCBtYXRjaGdyb3VwPXNpc3VfY29tbWVudCBzdGFydD0iXiVcezEsMlx9ICIgZW5kPSIkIgotIiUgICBmb250IGZhY2UgY3VybHkgYnJhY2tldHMKKyJmb250IGZhY2UgY3VybHkgYnJhY2tldHMKKyJzeW4gcmVnaW9uIHNpc3VfaWRlbnRpZmllciBjb250YWlucz1zaXN1X3N0cmlrZW91dCxzaXN1X251bWJlcixzaXN1X2NvbnRyb2wsc2lzdV9pZGVudGlmaWVyLHNpc3VfZXJyb3IgbWF0Y2hncm91cD1zaXN1X3NlbSBzdGFydD0iXFNcKzp7IiBlbmQ9In06W148PiwuIT86OyBdXCsiIG9uZWxpbmUKIHN5biByZWdpb24gc2lzdV9jb250cm9sIGNvbnRhaW5zPXNpc3Vfc3RyaWtlb3V0LHNpc3VfbnVtYmVyLHNpc3VfY29udHJvbCxzaXN1X2lkZW50aWZpZXIsc2lzdV9lcnJvciBtYXRjaGdyb3VwPXNpc3VfZm9udGZhY2Ugc3RhcnQ9IlwqeyIgZW5kPSJ9XCoiCiBzeW4gcmVnaW9uIHNpc3VfY29udHJvbCBjb250YWlucz1zaXN1X3N0cmlrZW91dCxzaXN1X251bWJlcixzaXN1X2NvbnRyb2wsc2lzdV9pZGVudGlmaWVyLHNpc3VfZXJyb3IgbWF0Y2hncm91cD1zaXN1X2ZvbnRmYWNlIHN0YXJ0PSIheyIgZW5kPSJ9ISIKIHN5biByZWdpb24gc2lzdV91bmRlcmxpbmUgY29udGFpbnM9c2lzdV9zdHJpa2VvdXQsc2lzdV9udW1iZXIsc2lzdV9jb250cm9sLHNpc3VfaWRlbnRpZmllcixzaXN1X2Vycm9yIG1hdGNoZ3JvdXA9c2lzdV9mb250ZmFjZSBzdGFydD0iX3siIGVuZD0ifV8iCkBAIC03NCw0MyArODgsNDUgQEAKIHN5biByZWdpb24gc2lzdV91bmRlcmxpbmUgY29udGFpbnM9c2lzdV9zdHJpa2VvdXQsc2lzdV9udW1iZXIsc2lzdV9jb250cm9sLHNpc3VfaWRlbnRpZmllcixzaXN1X2Vycm9yIG1hdGNoZ3JvdXA9c2lzdV9mb250ZmFjZSBzdGFydD0iK3siIGVuZD0ifSsiCiBzeW4gcmVnaW9uIHNpc3VfaWRlbnRpZmllciBjb250YWlucz1zaXN1X3N0cmlrZW91dCxzaXN1X251bWJlcixzaXN1X2NvbnRyb2wsc2lzdV9pZGVudGlmaWVyLHNpc3VfZXJyb3IgbWF0Y2hncm91cD1zaXN1X2ZvbnRmYWNlIHN0YXJ0PSJcXnsiIGVuZD0ifVxeIgogc3luIHJlZ2lvbiBzaXN1X2lkZW50aWZpZXIgY29udGFpbnM9c2lzdV9zdHJpa2VvdXQsc2lzdV9udW1iZXIsc2lzdV9jb250cm9sLHNpc3VfaWRlbnRpZmllcixzaXN1X2Vycm9yIG1hdGNoZ3JvdXA9c2lzdV9mb250ZmFjZSBzdGFydD0iLHsiIGVuZD0ifSwiCi1zeW4gcmVnaW9uIHNpc3Vfc3RyaWtlb3V0IGNvbnRhaW5zPXNpc3VfZXJyb3IgbWF0Y2hncm91cD1zaXN1X2ZvbnRmYWNlIHN0YXJ0PSIteyIgZW5kPSJ9LSIgCitzeW4gcmVnaW9uIHNpc3Vfc3RyaWtlb3V0IGNvbnRhaW5zPXNpc3VfZXJyb3IgbWF0Y2hncm91cD1zaXN1X2ZvbnRmYWNlIHN0YXJ0PSIteyIgZW5kPSJ9LSIKIHN5biByZWdpb24gc2lzdV9odG1sIGNvbnRhaW5zPXNpc3VfZXJyb3IgY29udGFpbnM9c2lzdV9zdHJpa2VvdXQgbWF0Y2hncm91cD1zaXN1X2NvbnRhaW4gc3RhcnQ9IjxhIGhyZWY9XCIuXHstfVwiPiIgZW5kPSI8L2E+IiBvbmVsaW5lCi0iJSAgIHNpbmdsZSB3b3JkcyBib2xkIGl0YWxpY2lzZSBldGMuICJ3b3Jrb24KKyJzaW5nbGUgd29yZHMgYm9sZCBpdGFsaWNpc2UgZXRjLiAid29ya29uCiBzeW4gcmVnaW9uIHNpc3VfY29udHJvbCBjb250YWlucz1zaXN1X2Vycm9yIG1hdGNoZ3JvdXA9c2lzdV9jb250cm9sIHN0YXJ0PSJcKFsgKF1cfF5cKVwqW15cfHtcblx+XFxdImhzPWUtMSBlbmQ9IlwqImhlPWUtMCBza2lwPSJbYS16QS1aMC05J10iIG9uZWxpbmUKIHN5biByZWdpb24gc2lzdV9pZGVudGlmaWVyIGNvbnRhaW5zPXNpc3VfZXJyb3IgbWF0Y2hncm91cD1zaXN1X2NvbnRlbnRfYWx0IHN0YXJ0PSJcKFsgXVx8XlwpL1teeyBcfFxuXFxdImhzPWUtMSBlbmQ9Ii9cWyBcLlxdIiBza2lwPSJbYS16QS1aMC05J10iIG9uZWxpbmUKLSIlICAgbWlzYworIm1pc2MKIHN5biByZWdpb24gc2lzdV9pZGVudGlmaWVyIGNvbnRhaW5zPXNpc3VfZXJyb3IgbWF0Y2hncm91cD1zaXN1X2ZvbnRmYWNlIHN0YXJ0PSJcXlteIHtcfFxuXFxdInJzPXMrMSBlbmQ9IlxeWyAsLjs6J30pXFxcbl0iIHNraXA9IlthLXpBLVowLTknXSIgb25lbGluZQotIiUgICBtZXRhdmVyc2UgaHRtbCAoZmxhZ2dlZCBhcyBlcnJvcnMgZm9yIGZpbGV0eXBlIHNpc3UpCisibWV0YXZlcnNlIGh0bWwgKGZsYWdnZWQgYXMgZXJyb3JzIGZvciBmaWxldHlwZSBzaXN1KQogc3luIHJlZ2lvbiBzaXN1X2NvbnRyb2wgY29udGFpbnM9c2lzdV9zdHJpa2VvdXQsc2lzdV9udW1iZXIsc2lzdV9jb250cm9sLHNpc3VfaWRlbnRpZmllcixzaXN1X2Vycm9yLHNpc3VfbWFyayBtYXRjaGdyb3VwPXNpc3VfaHRtbCBzdGFydD0iPGI+IiBlbmQ9IjwvYj4iIHNraXA9IlxuIiBvbmVsaW5lCiBzeW4gcmVnaW9uIHNpc3VfY29udHJvbCBjb250YWlucz1zaXN1X3N0cmlrZW91dCxzaXN1X251bWJlcixzaXN1X2NvbnRyb2wsc2lzdV9pZGVudGlmaWVyLHNpc3VfZXJyb3Isc2lzdV9tYXJrIG1hdGNoZ3JvdXA9c2lzdV9odG1sIHN0YXJ0PSI8ZW0+IiBlbmQ9IjwvZW0+IiBza2lwPSJcbiIgb25lbGluZQogc3luIHJlZ2lvbiBzaXN1X2NvbnRlbnRfYWx0IGNvbnRhaW5zPXNpc3Vfc3RyaWtlb3V0LHNpc3VfbnVtYmVyLHNpc3VfY29udHJvbCxzaXN1X2lkZW50aWZpZXIsc2lzdV9lcnJvcixzaXN1X21hcmsgbWF0Y2hncm91cD1zaXN1X2h0bWwgc3RhcnQ9IjxpPiIgZW5kPSI8L2k+IiBza2lwPSJcbiIgb25lbGluZQogc3luIHJlZ2lvbiBzaXN1X2NvbnRlbnRfYWx0IGNvbnRhaW5zPXNpc3Vfc3RyaWtlb3V0LHNpc3VfbnVtYmVyLHNpc3VfY29udHJvbCxzaXN1X2lkZW50aWZpZXIsc2lzdV9lcnJvcixzaXN1X21hcmsgbWF0Y2hncm91cD1zaXN1X2h0bWwgc3RhcnQ9Ijx1PiIgZW5kPSI8L3U+IiBza2lwPSJcbiIgb25lbGluZQogc3luIHJlZ2lvbiBzaXN1X2lkZW50aWZpZXIgY29udGFpbnM9c2lzdV9zdHJpa2VvdXQsc2lzdV9udW1iZXIsc2lzdV9jb250cm9sLHNpc3VfaWRlbnRpZmllcixzaXN1X2Vycm9yLHNpc3VfbWFyayBtYXRjaGdyb3VwPXNpc3VfaHRtbCBzdGFydD0iPGlucz4iIGVuZD0iPC9pbnM+IiBza2lwPSJcXFxcXHxcXCciIG9uZWxpbmUKIHN5biByZWdpb24gc2lzdV9pZGVudGlmaWVyIGNvbnRhaW5zPXNpc3VfZXJyb3IgbWF0Y2hncm91cD1zaXN1X2h0bWwgc3RhcnQ9IjxkZWw+IiBlbmQ9IjwvZGVsPiIgb25lbGluZQotIiUgICBtZXRhdmVyc2UgPDo+CisibWV0YXZlcnNlCiBzeW4gcmVnaW9uIHNpc3VfY29udGVudF9hbHQgY29udGFpbnM9c2lzdV9zdHJpa2VvdXQsc2lzdV9udW1iZXIsc2lzdV9jb250cm9sLHNpc3VfaWRlbnRpZmllcixzaXN1X2Vycm9yIG1hdGNoZ3JvdXA9c2lzdV9jb250YWluIHN0YXJ0PSI8OlRhYmxlLlx7LX0+IiBlbmQ9Ijw6VGFibGVbLV9dZW5kPiIKIHN5biByZWdpb24gc2lzdV9jb250ZW50X2FsdCBjb250YWlucz1zaXN1X2Vycm9yIG1hdGNoZ3JvdXA9c2lzdV9jb250YWluIHN0YXJ0PSI8OmNvZGU+IiBlbmQ9Ijw6Y29kZVstX11lbmQ+Igogc3luIHJlZ2lvbiBzaXN1X2NvbnRlbnRfYWx0IGNvbnRhaW5zPXNpc3VfbWFya19lbmRub3RlLHNpc3VfY29udGVudF9lbmRub3RlLHNpc3VfbGluayxzaXN1X21hcmssc2lzdV9zdHJpa2VvdXQsc2lzdV9udW1iZXIsc2lzdV9jb250cm9sLHNpc3VfaWRlbnRpZmllcixzaXN1X2Vycm9yIG1hdGNoZ3JvdXA9c2lzdV9jb250YWluIHN0YXJ0PSI8OmFsdD4iIGVuZD0iPDphbHRbLV9dZW5kPiIKIHN5biByZWdpb24gc2lzdV9jb250ZW50X2FsdCBjb250YWlucz1zaXN1X21hcmtfZW5kbm90ZSxzaXN1X2NvbnRlbnRfZW5kbm90ZSxzaXN1X2xpbmssc2lzdV9tYXJrLHNpc3Vfc3RyaWtlb3V0LHNpc3VfbnVtYmVyLHNpc3VfY29udHJvbCxzaXN1X2lkZW50aWZpZXIsc2lzdV9lcnJvciBtYXRjaGdyb3VwPXNpc3VfY29udGFpbiBzdGFydD0iPDpwb2VtPiIgZW5kPSI8OnBvZW1bLV9dZW5kPiIKLSIlIDYgRXhwZW5zaXZlIE1vZGUKLSIgRXhwZW5zaXZlIE1vZGU6CisKKyJFeHBlbnNpdmUgTW9kZToKIGlmICFleGlzdHMoInNpc3Vfbm9fZXhwZW5zaXZlIikKIGVsc2UgIiBub3QgRXhwZW5zaXZlCiAgIHN5biByZWdpb24gIHNpc3VfY29udGVudF9hbHQgIG1hdGNoZ3JvdXA9c2lzdV9jb250cm9sIHN0YXJ0PSJeXHMqZGVmXHMiIG1hdGNoZ3JvdXA9Tk9ORSBlbmQ9Ils/IV1cfFw+IiBza2lwPSJcLlx8XCg6OlwpIiBvbmVsaW5lCiBlbmRpZiAiIEV4cGVuc2l2ZT8KLSIlIDUgSGVhZGVyczogYW5kIEhlYWRpbmdzIChEb2N1bWVudCBJbnN0cnVjdGlvbnMpCisKKyJIZWFkZXJzIEFuZCBIZWFkaW5nczogKERvY3VtZW50IEluc3RydWN0aW9ucykKIHN5biBtYXRjaCBzaXN1X2NvbnRyb2wgY29udGFpbnM9c2lzdV9lcnJvcixzaXN1X2Vycm9yX3dzcGFjZSAiNFx+ISBcU1wrIgogc3luIHJlZ2lvbiAgc2lzdV9tYXJrcGFyYSBjb250YWlucz1zaXN1X2Vycm9yLHNpc3VfZXJyb3Jfd3NwYWNlIHN0YXJ0PSJePWJlZ2luIiBlbmQ9Il49ZW5kLiokIgotIiUgNCBFcnJvcnM/CisKKyJFcnJvcnM6CiBzeW4gbWF0Y2ggc2lzdV9lcnJvcl93c3BhY2UgY29udGFpbnM9c2lzdV9lcnJvcl93c3BhY2UgIl5cc1wrIgogc3luIG1hdGNoIHNpc3VfZXJyb3Jfd3NwYWNlIGNvbnRhaW5zPXNpc3VfZXJyb3Jfd3NwYWNlICJcc1xzXCsiCiBzeW4gbWF0Y2ggc2lzdV9lcnJvcl93c3BhY2UgY29udGFpbnM9c2lzdV9lcnJvcl93c3BhY2UgICIgXHMqJCIKLXN5biBtYXRjaCBzaXN1X2Vycm9yIGNvbnRhaW5zPXNpc3VfZXJyb3Isc2lzdV9lcnJvcl93c3BhY2UgIlteICh9XWh0dHBzXD86XFNcKyIKIHN5biBtYXRjaCBzaXN1X2Vycm9yIGNvbnRhaW5zPXNpc3VfZXJyb3Jfd3NwYWNlICJcdFwrIgotc3luIG1hdGNoIHNpc3VfZXJyb3IgY29udGFpbnM9c2lzdV9lcnJvciAiaHR0cHNcPzpcU1wrW30+PF0iCitzeW4gbWF0Y2ggc2lzdV9lcnJvciBjb250YWlucz1zaXN1X2Vycm9yLHNpc3VfZXJyb3Jfd3NwYWNlICJcKFteIChdW19cXF1cfHxbXiAofV1cKWh0dHBzXD86XFNcKyIKK3N5biBtYXRjaCBzaXN1X2Vycm9yIGNvbnRhaW5zPXNpc3VfZXJyb3IgIl9cP2h0dHBzXD86XFNcK1t9PjxdIgogc3luIG1hdGNoIHNpc3VfZXJyb3IgY29udGFpbnM9c2lzdV9lcnJvciAiXChbISovX1wrLF5dXCl7XChbXihcfVwxKV1cKVx7LX1cblxuIgotc3luIG1hdGNoIHNpc3VfZXJyb3IgY29udGFpbnM9c2lzdV9lcnJvciAiXltcLVx+XXtbXntdXHstfVxuXG4iCitzeW4gbWF0Y2ggc2lzdV9lcnJvciBjb250YWlucz1zaXN1X2Vycm9yICJeW1x+XXtbXntdXHstfVxuXG4iCiBzeW4gbWF0Y2ggc2lzdV9lcnJvciBjb250YWlucz1zaXN1X2Vycm9yICJcc1wrLnt7Igogc3luIG1hdGNoIHNpc3VfZXJyb3IgY29udGFpbnM9c2lzdV9lcnJvciAiXlx+XHMqJCIKIHN5biBtYXRjaCBzaXN1X2Vycm9yIGNvbnRhaW5zPXNpc3VfZXJyb3IgIl5bMC05XVx+XHMqJCIKQEAgLTEyNCw0OCArMTQwLDUzIEBACiAiZXJyb3JzIGZvciBmaWxldHlwZSBzaXN1LCB0aG91Z2ggbm90IGVycm9yIGluICdtZXRhdmVyc2UnOgogc3luIG1hdGNoIHNpc3VfZXJyb3IgY29udGFpbnM9c2lzdV9lcnJvcixzaXN1X21hdGNoLHNpc3Vfc3RyaWtlb3V0LHNpc3VfY29udGFpbixzaXN1X2NvbnRlbnRfYWx0LHNpc3VfbWFyayxzaXN1X2JyZWFrLHNpc3VfbnVtYmVyICI8W2EtekEtWlwvXVwrPiIKIHN5biBtYXRjaCBzaXN1X2Vycm9yICAiL1w/PFwoW2JpdV1cKT5bXig8L1wxPildXHstfVxuXG4iCi0iJSAzIEVycm9yIEV4Y2VwdGlvbnM/CisKKyJFcnJvciBFeGNlcHRpb25zOgogc3luIG1hdGNoIHNpc3VfY29udHJvbCAiXG5cbiIgImNvbnRhaW5zPUFMTAogc3luIG1hdGNoIHNpc3VfY29udHJvbCAiIC8vIgogc3luIG1hdGNoIHNpc3VfZXJyb3IgICIleyIKLXN5biBtYXRjaCBzaXN1X2Vycm9yICI8YnI+aHR0cHNcPzpcU1wrXHxodHRwc1w/OlxTXCs8YnI+Igotc3luIG1hdGNoIHNpc3VfZXJyb3IgIls+PF1odHRwc1w/OlxTXCtcfGh0dHBzXD86XFNcK1s+PF0iCi0iJSAyIERlZmluaXRpb25zIC0gRGVmaW5lIHRoZSBkZWZhdWx0IGhpZ2hsaWdodGluZy4KLWlmIHZlcnNpb24gPj0gNTA4IHx8ICFleGlzdHMoImRpZF9zaXN1X3N5bnRheF9pbml0cyIpCi0gIGlmIHZlcnNpb24gPCA1MDgKLSAgICBsZXQgZGlkX3Npc3Vfc3ludGF4X2luaXRzID0gMQotICAgIGNvbW1hbmQgLW5hcmdzPSsgSGlMaW5rIGhpIGxpbmsgPGFyZ3M+Ci0gIGVsc2UKLSAgICBjb21tYW5kIC1uYXJncz0rIEhpTGluayBoaSBkZWYgbGluayA8YXJncz4KLSAgZW5kaWYKLSIlIDEgRGVmaW5lZAotICBIaUxpbmsgc2lzdV9ub3JtYWwgICAgICAgICAgTm9ybWFsCi0gIEhpTGluayBzaXN1X2hlYWRlciAgICAgICAgICBQcmVQcm9jCi0gIEhpTGluayBzaXN1X2hlYWRlcl9jb250ZW50ICBTdGF0ZW1lbnQKLSAgSGlMaW5rIHNpc3VfaGVhZGluZyAgICAgICAgIFRpdGxlCi0gIEhpTGluayBzaXN1X3N0cnVjdHVyZSAgICAgICBPcGVyYXRvcgotICBIaUxpbmsgc2lzdV9jb250YWluICAgICAgICAgSW5jbHVkZQotICBIaUxpbmsgc2lzdV9tYXJrX2VuZG5vdGUgICAgSW5jbHVkZQotICBIaUxpbmsgc2lzdV9saW5rICAgICAgICAgICAgTm9uVGV4dAotICBIaUxpbmsgc2lzdV9saW5rZWQgICAgICAgICAgU3RyaW5nCi0gIEhpTGluayBzaXN1X2ZvbnRmYWNlICAgICAgICBJbmNsdWRlCi0gIEhpTGluayBzaXN1X3N0cmlrZW91dCAgICAgICBEaWZmRGVsZXRlCi0gIEhpTGluayBzaXN1X2NvbnRlbnRfYWx0ICAgICBTcGVjaWFsCi0gIEhpTGluayBzaXN1X2NvbnRlbnRfZW5kbm90ZSBTcGVjaWFsCi0gIEhpTGluayBzaXN1X2NvbnRyb2wgICAgICAgICBEZWZpbmUKLSAgSGlMaW5rIHNpc3Vfb2NuICAgICAgICAgICAgIEluY2x1ZGUKLSAgSGlMaW5rIHNpc3VfbnVtYmVyICAgICAgICAgIE51bWJlcgotICBIaUxpbmsgc2lzdV9pZGVudGlmaWVyICAgICAgRnVuY3Rpb24KLSAgSGlMaW5rIHNpc3VfdW5kZXJsaW5lICAgICAgIFVuZGVybGluZWQKLSAgSGlMaW5rIHNpc3VfbWFya3BhcmEgICAgICAgIEluY2x1ZGUKLSAgSGlMaW5rIHNpc3VfbWFya3RhaWwgICAgICAgIEluY2x1ZGUKLSAgSGlMaW5rIHNpc3VfbWFyayAgICAgICAgICAgIElkZW50aWZpZXIKLSAgSGlMaW5rIHNpc3VfYnJlYWsgICAgICAgICAgIFN0cnVjdHVyZQotICBIaUxpbmsgc2lzdV9odG1sICAgICAgICAgICAgVHlwZQotICBIaUxpbmsgc2lzdV9hY3Rpb24gICAgICAgICAgSWRlbnRpZmllcgotICBIaUxpbmsgc2lzdV9jb21tZW50ICAgICAgICAgQ29tbWVudAotICBIaUxpbmsgc2lzdV9lcnJvcl93c3BhY2UgICAgRXJyb3IKLSAgSGlMaW5rIHNpc3VfZXJyb3IgICAgICAgICAgIEVycm9yCi0gIGRlbGNvbW1hbmQgSGlMaW5rCi1lbmRpZgorc3luIG1hdGNoIHNpc3VfZXJyb3IgIjxicj5fXD9odHRwc1w/OlxTXCtcfF9cP2h0dHBzXD86XFNcKzxicj4iCitzeW4gbWF0Y2ggc2lzdV9lcnJvciAiWz48XV9cP2h0dHBzXD86XFNcK1x8X1w/aHR0cHNcPzpcU1wrWz48XSIKKworIkRlZmluaXRpb25zIERlZmF1bHQgSGlnaGxpZ2h0aW5nOgoraGkgZGVmIGxpbmsgc2lzdV9ub3JtYWwgICAgICAgICAgIE5vcm1hbAoraGkgZGVmIGxpbmsgc2lzdV9oZWFkZXIgICAgICAgICAgIFByZVByb2MKK2hpIGRlZiBsaW5rIHNpc3VfaGVhZGVyX2NvbnRlbnQgICBTdGF0ZW1lbnQKK2hpIGRlZiBsaW5rIHNpc3VfaGVhZGluZyAgICAgICAgICBUaXRsZQoraGkgZGVmIGxpbmsgc2lzdV9zdHJ1Y3R1cmUgICAgICAgIE9wZXJhdG9yCitoaSBkZWYgbGluayBzaXN1X2NvbnRhaW4gICAgICAgICAgSW5jbHVkZQoraGkgZGVmIGxpbmsgc2lzdV9tYXJrX2VuZG5vdGUgICAgIEluY2x1ZGUKK2hpIGRlZiBsaW5rIHNpc3VfcmVxdWlyZSAgICAgICAgICBOb25UZXh0CitoaSBkZWYgbGluayBzaXN1X2xpbmsgICAgICAgICAgICAgTm9uVGV4dAoraGkgZGVmIGxpbmsgc2lzdV9saW5rZWQgICAgICAgICAgIFN0cmluZworaGkgZGVmIGxpbmsgc2lzdV9mb250ZmFjZSAgICAgICAgIEluY2x1ZGUKK2hpIGRlZiBsaW5rIHNpc3Vfc3RyaWtlb3V0ICAgICAgICBEaWZmRGVsZXRlCitoaSBkZWYgbGluayBzaXN1X2NvbnRlbnRfYWx0ICAgICAgU3BlY2lhbAoraGkgZGVmIGxpbmsgc2lzdV9zZW1fY29udGVudCAgICAgIFN0cmluZworaGkgZGVmIGxpbmsgc2lzdV9zZW1fY29udGVudCAgICAgIFNwZWNpYWxLZXkKK2hpIGRlZiBsaW5rIHNpc3Vfc2VtX2Jsb2NrICAgICAgICBTcGVjaWFsCitoaSBkZWYgbGluayBzaXN1X3NlbV9tYXJrZXIgICAgICAgVmlzdWFsCisiaGkgZGVmIGxpbmsgc2lzdV9zZW1fbWFya2VyICAgICAgIFN0cnVjdHVyZQoraGkgZGVmIGxpbmsgc2lzdV9zZW1fbWFya2VyX2Jsb2NrIE1hdGNoUGFyZW4KK2hpIGRlZiBsaW5rIHNpc3Vfc2VtX2V4X21hcmtlciAgICBGb2xkQ29sdW1uCitoaSBkZWYgbGluayBzaXN1X3NlbV9leF9tYXJrZXJfYmxvY2sgRm9sZGVkCitoaSBkZWYgbGluayBzaXN1X3NlbV9leF9jb250ZW50ICAgQ29tbWVudAorImhpIGRlZiBsaW5rIHNpc3Vfc2VtX2V4X2NvbnRlbnQgICBTcGVjaWFsS2V5CitoaSBkZWYgbGluayBzaXN1X3NlbV9leF9ibG9jayAgICAgQ29tbWVudAoraGkgZGVmIGxpbmsgc2lzdV9jb250ZW50X2VuZG5vdGUgIFNwZWNpYWwKK2hpIGRlZiBsaW5rIHNpc3VfY29udHJvbCAgICAgICAgICBEZWZpbmUKK2hpIGRlZiBsaW5rIHNpc3Vfb2NuICAgICAgICAgICAgICBJbmNsdWRlCitoaSBkZWYgbGluayBzaXN1X251bWJlciAgICAgICAgICAgTnVtYmVyCitoaSBkZWYgbGluayBzaXN1X2lkZW50aWZpZXIgICAgICAgRnVuY3Rpb24KK2hpIGRlZiBsaW5rIHNpc3VfdW5kZXJsaW5lICAgICAgICBVbmRlcmxpbmVkCitoaSBkZWYgbGluayBzaXN1X21hcmtwYXJhICAgICAgICAgSW5jbHVkZQoraGkgZGVmIGxpbmsgc2lzdV9tYXJrdGFpbCAgICAgICAgIEluY2x1ZGUKK2hpIGRlZiBsaW5rIHNpc3VfbWFyayAgICAgICAgICAgICBJZGVudGlmaWVyCitoaSBkZWYgbGluayBzaXN1X2JyZWFrICAgICAgICAgICAgU3RydWN0dXJlCitoaSBkZWYgbGluayBzaXN1X2h0bWwgICAgICAgICAgICAgVHlwZQoraGkgZGVmIGxpbmsgc2lzdV9hY3Rpb24gICAgICAgICAgIElkZW50aWZpZXIKK2hpIGRlZiBsaW5rIHNpc3VfY29tbWVudCAgICAgICAgICBDb21tZW50CitoaSBkZWYgbGluayBzaXN1X2Vycm9yX3NlbV9tYXJrZXIgRXJyb3IKK2hpIGRlZiBsaW5rIHNpc3VfZXJyb3Jfd3NwYWNlICAgICBFcnJvcgoraGkgZGVmIGxpbmsgc2lzdV9lcnJvciAgICAgICAgICAgIEVycm9yCiBsZXQgYjpjdXJyZW50X3N5bnRheCA9ICJzaXN1IgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgveWFtbC52aW0gYi9ydW50aW1lL3N5bnRheC95YW1sLnZpbQppbmRleCA5ZWJhYjcwLi5hYmRhM2Y4IDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC95YW1sLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC95YW1sLnZpbQpAQCAtMSw3ICsxLDcgQEAKICIgVmltIHN5bnRheCBmaWxlCiAiIExhbmd1YWdlOiAgICAgICAgIFlBTUwgKFlBTUwgQWluJ3QgTWFya3VwIExhbmd1YWdlKQogIiBNYWludGFpbmVyOiAgICAgICBOaWtvbGFpIFdlaWJ1bGwgPG5vd0BiaXR3aS5zZT4KLSIgTGF0ZXN0IFJldmlzaW9uOiAgMjAwNi0wNC0xOQorIiBMYXRlc3QgUmV2aXNpb246ICAyMDA3LTA2LTI3CiAKIGlmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpCiAgIGZpbmlzaApAQCAtMTAsNTMgKzEwLDE0MCBAQAogbGV0IHM6Y3BvX3NhdmUgPSAmY3BvCiBzZXQgY3BvJnZpbQogCi1zeW4ga2V5d29yZCB5YW1sVG9kbyAgICAgICAgICAgIGNvbnRhaW5lZCBUT0RPIEZJWE1FIFhYWCBOT1RFCitzeW4ga2V5d29yZCB5YW1sVG9kbworICAgICAgXCBjb250YWluZWQKKyAgICAgIFwgVE9ETworICAgICAgXCBGSVhNRQorICAgICAgXCBYWFgKKyAgICAgIFwgTk9URQogCi1zeW4gcmVnaW9uICB5YW1sQ29tbWVudCAgICAgICAgIGRpc3BsYXkgb25lbGluZSBzdGFydD0nXCUoXlx8XHNcKSMnIGVuZD0nJCcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBjb250YWlucz15YW1sVG9kbyxAU3BlbGwKK3N5biByZWdpb24gIHlhbWxDb21tZW50CisgICAgICBcIGRpc3BsYXkKKyAgICAgIFwgb25lbGluZQorICAgICAgXCBzdGFydD0nJShefHMpIycKKyAgICAgIFwgZW5kPSckJworICAgICAgXCBjb250YWlucz15YW1sVG9kbyxAU3BlbGwKIAotc3luIG1hdGNoICAgeWFtbE5vZGVQcm9wZXJ0eSAgICAnIVwlKCFbXlxcXiUgICAgIF1cK1x8W14hXVteOi8gICBdKlwpJworc3luIG1hdGNoICAgeWFtbE5vZGVQcm9wZXJ0eQorICAgICAgXCAnIVwlKCFbXlxcXiUgXHRdXCtcfFteIV1bXjovIFx0XSpcKScKIAotc3luIG1hdGNoICAgeWFtbEFuY2hvciAgICAgICAgICAnJi5cKycKK3N5biBtYXRjaCAgIHlhbWxBbmNob3IKKyAgICAgIFwgJyYuKycKIAotc3luIG1hdGNoICAgeWFtbEFsaWFzICAgICAgICAgICAnXCouXCsnCitzeW4gbWF0Y2ggICB5YW1sQWxpYXMKKyAgICAgIFwgJyouKycKIAotc3luIG1hdGNoICAgeWFtbERlbGltaXRlciAgICAgICAnWy0sOl0nCi1zeW4gbWF0Y2ggICB5YW1sQmxvY2sgICAgICAgICAgICdbXFtcXXt9PnxdJwotc3luIG1hdGNoICAgeWFtbE9wZXJhdG9yICAgICAgICAnWz8rLV0nCi1zeW4gbWF0Y2ggICB5YW1sS2V5ICAgICAgICAgICAgICdcd1wrXChcc1wrXHdcK1wpKlx6ZVxzKjonCitzeW4gbWF0Y2ggICB5YW1sRGVsaW1pdGVyCisgICAgICBcICdbLSw6XScKK3N5biBtYXRjaCAgIHlhbWxCbG9jaworICAgICAgXCAnW1tde30+fF0nCitzeW4gbWF0Y2ggICB5YW1sT3BlcmF0b3IKKyAgICAgIFwgJ1s/Ky1dJworc3luIG1hdGNoICAgeWFtbEtleQorICAgICAgXCAndysocyt3KykqemVzKjonCiAKLXN5biByZWdpb24gIHlhbWxTdHJpbmcgICAgICAgICAgc3RhcnQ9KyIrIHNraXA9K1xcIisgZW5kPSsiKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGNvbnRhaW5zPXlhbWxFc2NhcGUKLXN5biByZWdpb24gIHlhbWxTdHJpbmcgICAgICAgICAgc3RhcnQ9KycrIHNraXA9KycnKyBlbmQ9KycrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgY29udGFpbnM9eWFtbFNpbmdsZUVzY2FwZQotc3luIG1hdGNoICAgeWFtbEVzY2FwZSAgICAgICAgICBjb250YWluZWQgZGlzcGxheSArXFxbXFwiYWJlZm5ydHZeMF8gTkxQXSsKLXN5biBtYXRjaCAgIHlhbWxFc2NhcGUgICAgICAgICAgY29udGFpbmVkIGRpc3BsYXkgJ1xceFx4XHsyfScKLXN5biBtYXRjaCAgIHlhbWxFc2NhcGUgICAgICAgICAgY29udGFpbmVkIGRpc3BsYXkgJ1xcdVx4XHs0fScKLXN5biBtYXRjaCAgIHlhbWxFc2NhcGUgICAgICAgICAgY29udGFpbmVkIGRpc3BsYXkgJ1xcVVx4XHs4fScKK3N5biByZWdpb24gIHlhbWxTdHJpbmcKKyAgICAgIFwgc3RhcnQ9KyIrCisgICAgICBcIHNraXA9K1wiKworICAgICAgXCBlbmQ9KyIrCisgICAgICBcIGNvbnRhaW5zPXlhbWxFc2NhcGUKK3N5biByZWdpb24gIHlhbWxTdHJpbmcKKyAgICAgIFwgc3RhcnQ9KycrCisgICAgICBcIHNraXA9KycnKworICAgICAgXCBlbmQ9KycrCisgICAgICBcIGNvbnRhaW5zPXlhbWxTaW5nbGVFc2NhcGUKK3N5biBtYXRjaCAgIHlhbWxFc2NhcGUKKyAgICAgIFwgY29udGFpbmVkCisgICAgICBcIGRpc3BsYXkKKyAgICAgIFwgK1xbXCJhYmVmbnJ0dl4wXyBOTFBdKworc3luIG1hdGNoICAgeWFtbEVzY2FwZQorICAgICAgXCBjb250YWluZWQKKyAgICAgIFwgZGlzcGxheQorICAgICAgXCAnXHh4ezJ9Jworc3luIG1hdGNoICAgeWFtbEVzY2FwZQorICAgICAgXCBjb250YWluZWQKKyAgICAgIFwgZGlzcGxheQorICAgICAgXCAnXHV4ezR9Jworc3luIG1hdGNoICAgeWFtbEVzY2FwZQorICAgICAgXCBjb250YWluZWQKKyAgICAgIFwgZGlzcGxheQorICAgICAgXCAnXFV4ezh9JworCiAiIFRPRE86IGhvdyBkbyB3ZSBnZXQgMHg4NSwgMHgyMDI4LCBhbmQgMHgyMDI5IGludG8gdGhpcz8KLXN5biBtYXRjaCAgIHlhbWxFc2NhcGUgICAgICAgICAgZGlzcGxheSAnXFxcJShcclxuXHxbXHJcbl1cKScKLXN5biBtYXRjaCAgIHlhbWxTaW5nbGVFc2NhcGUgICAgY29udGFpbmVkIGRpc3BsYXkgKycnKworIiBYWFg6IEVtLCB3aGF0IGlzIGdvaW5nIG9uIGhlcmU/ICBUaGlzIGNhbid0IGJlIHJpZ2h0LiAgTGVhdmUgb3V0IHVudGlsIHdlCisiIGZpZ3VyZSBvdXQgd2hhdCB0aGlzIGlzIG1lYW50IHRvIGRvLgorInN5biBtYXRjaCAgIHlhbWxFc2NhcGUKKyIgICAgICBcIGNvbnRhaW5lZAorIiAgICAgIFwgZGlzcGxheQorIiAgICAgIFwgJ1wlKHJufFtybl0pJworc3luIG1hdGNoICAgeWFtbFNpbmdsZUVzY2FwZQorICAgICAgXCBjb250YWluZWQKKyAgICAgIFwgZGlzcGxheQorICAgICAgXCArJycrCiAKICIgVE9ETzogc2V4YWdlY2ltYWwgYW5kIGZpeGVkICgyMDozMC4xNSBhbmQgMSwyMzAuMTUpCi1zeW4gbWF0Y2ggICB5YW1sTnVtYmVyICAgICAgICAgIGRpc3BsYXkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAnXDxbKy1dXD1cZFwrXCUoXC5cZFwrXCUoW2VFXVsrLV1cPVxkXCtcKVw9XClcPScKLXN5biBtYXRjaCAgIHlhbWxOdW1iZXIgICAgICAgICAgZGlzcGxheSAnMFxvXCsnCi1zeW4gbWF0Y2ggICB5YW1sTnVtYmVyICAgICAgICAgIGRpc3BsYXkgJzB4XHhcKycKLXN5biBtYXRjaCAgIHlhbWxOdW1iZXIgICAgICAgICAgZGlzcGxheSAnKFsrLV1cPVtpSV1uZiknCi1zeW4gbWF0Y2ggICB5YW1sTnVtYmVyICAgICAgICAgIGRpc3BsYXkgJyhOYU4pJworc3luIG1hdGNoICAgeWFtbE51bWJlcgorICAgICAgXCBkaXNwbGF5CisgICAgICBcICdcPFsrLV1cPVxkXCtcJShcLlxkXCtcJShbZUVdWystXVw9XGRcK1wpXD1cKVw9Jworc3luIG1hdGNoICAgeWFtbE51bWJlcgorICAgICAgXCBkaXNwbGF5CisgICAgICBcICcwbysnCitzeW4gbWF0Y2ggICB5YW1sTnVtYmVyCisgICAgICBcIGRpc3BsYXkKKyAgICAgIFwgJzB4eCsnCitzeW4gbWF0Y2ggICB5YW1sTnVtYmVyCisgICAgICBcIGRpc3BsYXkKKyAgICAgIFwgJyhbKy1dPVtpSV1uZiknCitzeW4gbWF0Y2ggICB5YW1sTnVtYmVyCisgICAgICBcIGRpc3BsYXkKKyAgICAgIFwgJyhOYU4pJwogCi1zeW4gbWF0Y2ggICB5YW1sQ29uc3RhbnQgICAgICAgICdcPFt+eW5dXD4nCi1zeW4ga2V5d29yZCB5YW1sQ29uc3RhbnQgICAgICAgIHRydWUgVHJ1ZSBUUlVFIGZhbHNlIEZhbHNlIEZBTFNFCi1zeW4ga2V5d29yZCB5YW1sQ29uc3RhbnQgICAgICAgIHllcyBZZXMgb24gT04gbm8gTm8gb2ZmIE9GRgotc3luIGtleXdvcmQgeWFtbENvbnN0YW50ICAgICAgICBudWxsIE51bGwgTlVMTCBuaWwgTmlsIE5JTAorc3luIG1hdGNoICAgeWFtbENvbnN0YW50CisgICAgICBcICc8W355bl0+Jworc3luIGtleXdvcmQgeWFtbENvbnN0YW50CisgICAgICBcIHRydWUKKyAgICAgIFwgVHJ1ZQorICAgICAgXCBUUlVFCisgICAgICBcIGZhbHNlCisgICAgICBcIEZhbHNlCisgICAgICBcIEZBTFNFCitzeW4ga2V5d29yZCB5YW1sQ29uc3RhbnQKKyAgICAgIFwgeWVzCisgICAgICBcIFllcworICAgICAgXCBvbgorICAgICAgXCBPTgorICAgICAgXCBubworICAgICAgXCBObworICAgICAgXCBvZmYKKyAgICAgIFwgT0ZGCitzeW4ga2V5d29yZCB5YW1sQ29uc3RhbnQKKyAgICAgIFwgbnVsbAorICAgICAgXCBOdWxsCisgICAgICBcIE5VTEwKKyAgICAgIFwgbmlsCisgICAgICBcIE5pbAorICAgICAgXCBOSUwKIAotc3luIG1hdGNoICAgeWFtbFRpbWVzdGFtcCAgICAgICAnXGRcZFxkXGQtXCUoMVswLTJdXHxcZFwpLVwlKDNbMC0yXVx8MlxkXHwxXGRcfFxkXClcJSggXCUoWzAxXVxkXHwyWzAtM11cKTpbMC01XVxkOlswLTVdXGQuXGRcZCBbKy1dXCUoWzAxXVxkXHwyWzAtM11cKTpbMC01XVxkXHx0XCUoWzAxXVxkXHwyWzAtM11cKTpbMC01XVxkOlswLTVdXGQuXGRcZFsrLV1cJShbMDFdXGRcfDJbMC0zXVwpOlswLTVdXGRcfFRcJShbMDFdXGRcfDJbMC0zXVwpOlswLTVdXGQ6WzAtNV1cZC5cZFpcKVw9Jworc3luIG1hdGNoICAgeWFtbFRpbWVzdGFtcAorICAgICAgXCAnXGRcZFxkXGQtXCUoMVswLTJdXHxcZFwpLVwlKDNbMC0yXVx8MlxkXHwxXGRcfFxkXClcJSggXCUoWzAxXVxkXHwyWzAtM11cKTpbMC01XVxkOlswLTVdXGQuXGRcZCBbKy1dXCUoWzAxXVxkXHwyWzAtM11cKTpbMC01XVxkXHx0XCUoWzAxXVxkXHwyWzAtM11cKTpbMC01XVxkOlswLTVdXGQuXGRcZFsrLV1cJShbMDFdXGRcfDJbMC0zXVwpOlswLTVdXGRcfFRcJShbMDFdXGRcfDJbMC0zXVwpOlswLTVdXGQ6WzAtNV1cZC5cZFpcKVw9JwogCi1zeW4gcmVnaW9uICB5YW1sRG9jdW1lbnRIZWFkZXIgIHN0YXJ0PSctLS0nIGVuZD0nJCcgY29udGFpbnM9eWFtbERpcmVjdGl2ZQotc3luIG1hdGNoICAgeWFtbERvY3VtZW50RW5kICAgICAnXC5cLlwuJworc3luIHJlZ2lvbiAgeWFtbERvY3VtZW50SGVhZGVyCisgICAgICBcIHN0YXJ0PSctLS0nCisgICAgICBcIGVuZD0nJCcKKyAgICAgIFwgY29udGFpbnM9eWFtbERpcmVjdGl2ZQorc3luIG1hdGNoICAgeWFtbERvY3VtZW50RW5kCisgICAgICBcICdcLlwuXC4nCiAKLXN5biBtYXRjaCAgIHlhbWxEaXJlY3RpdmUgICAgICAgY29udGFpbmVkICclW146XVwrOi5cKycKK3N5biBtYXRjaCAgIHlhbWxEaXJlY3RpdmUKKyAgICAgIFwgY29udGFpbmVkCisgICAgICBcICclW146XSs6LisnCisKK3N5biBtYXRjaCAgIHlhbWxJbmRlbnRhdGlvbgorICAgICAgXCAnXnMqJworICAgICAgXCBjb250YWlucz15YW1sSW5kZW50YXRpb25FcnJvcgorCitzeW4gbWF0Y2ggICB5YW1sSW5kZW50YXRpb25FcnJvcgorICAgICAgXCAndCcKIAogaGkgZGVmIGxpbmsgeWFtbFRvZG8gICAgICAgICAgICBUb2RvCiBoaSBkZWYgbGluayB5YW1sQ29tbWVudCAgICAgICAgIENvbW1lbnQKQEAgLTc2LDYgKzE2Myw3IEBACiBoaSBkZWYgbGluayB5YW1sTnVtYmVyICAgICAgICAgIE51bWJlcgogaGkgZGVmIGxpbmsgeWFtbENvbnN0YW50ICAgICAgICBDb25zdGFudAogaGkgZGVmIGxpbmsgeWFtbFRpbWVzdGFtcCAgICAgICBOdW1iZXIKK2hpIGRlZiBsaW5rIHlhbWxJbmRlbnRhdGlvbkVycm9yICBFcnJvcgogCiBsZXQgYjpjdXJyZW50X3N5bnRheCA9ICJ5YW1sIgogCmRpZmYgLS1naXQgYS9ydW50aW1lL3R1dG9yL0NvbnRlbnRzLmluZm8gYi9ydW50aW1lL3R1dG9yL0NvbnRlbnRzLmluZm8KbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWU4NTVjNwotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvdHV0b3IvQ29udGVudHMuaW5mbwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9ydW50aW1lL3R1dG9yL01ha2VmaWxlIGIvcnVudGltZS90dXRvci9NYWtlZmlsZQppbmRleCAxODhjOTg5Li40NTU2OGE5IDEwMDY0NAotLS0gYS9ydW50aW1lL3R1dG9yL01ha2VmaWxlCisrKyBiL3J1bnRpbWUvdHV0b3IvTWFrZWZpbGUKQEAgLTEsMzYgKzEsNjAyIEBACi0jIE1ha2VmaWxlIGZvciB0aGUgVmltIHR1dG9yLgorIyBUaGlzIE1ha2VmaWxlIGhhcyB0d28gcHVycG9zZXM6CisjIDEuIFN0YXJ0aW5nIHRoZSBjb21waWxhdGlvbiBvZiBWaW0gZm9yIFVuaXguCisjIDIuIENyZWF0aW5nIHRoZSB2YXJpb3VzIGRpc3RyaWJ1dGlvbiBmaWxlcy4KKworCisjIDEuIFVzaW5nIHRoaXMgTWFrZWZpbGUgd2l0aG91dCBhbiBhcmd1bWVudCB3aWxsIGNvbXBpbGUgVmltIGZvciBVbml4LgogIwotIyBUaGUgSmFwYW5lc2UgdHV0b3IgZXhpc3RzIGluIHRocmVlIGVuY29kaW5ncy4gIFVzZSB0aGUgVVRGLTggdmVyc2lvbiBhcyB0aGUKLSMgb3JpZ2luYWwgYW5kIGNyZWF0ZSB0aGUgb3RoZXJzIHdpdGggY29udmVyc2lvbi4KKyMgIm1ha2UgaW5zdGFsbCIgaXMgYWxzbyBwb3NzaWJsZS4KICMKLSMgU2ltaWxhcmx5IGZvciBSdXNzaWFuIGFuZCBLb3JlYW4KKyMgTk9URTogSWYgdGhpcyBkb2Vzbid0IHdvcmsgcHJvcGVybHksIGZpcnN0IGNoYW5nZSBkaXJlY3RvcnkgdG8gInNyYyIgYW5kIHVzZQorIyB0aGUgTWFrZWZpbGUgdGhlcmU6CisjCWNkIHNyYworIwltYWtlIFthcmd1bWVudHNdCisjIE5vdGljZWQgb24gQUlYIHN5c3RlbXMgd2hlbiB1c2luZyB0aGlzIE1ha2VmaWxlOiBUcnlpbmcgdG8gcnVuICJjcHJvdG8iIG9yCisjIHNvbWV0aGluZyBlbHNlIGFmdGVyIFZpbSBoYXMgYmVlbiBjb21waWxlZC4gIERvbid0IGtub3cgd2h5Li4uCisjIE5vdGljZWQgb24gT1MvMzkwIFVuaXg6IFJlc3RhcnRzIGNvbmZpZ3VyZS4KKyMKKyMgVGhlIGZpcnN0IChkZWZhdWx0KSB0YXJnZXQgaXMgImZpcnN0Ii4gIFRoaXMgd2lsbCByZXN1bHQgaW4gcnVubmluZworIyAibWFrZSBmaXJzdCIsIHNvIHRoYXQgdGhlIHRhcmdldCBmcm9tICJzcmMvYXV0by9jb25maWcubWsiIGlzIHBpY2tlZAorIyB1cCBwcm9wZXJseSB3aGVuIGNvbmZpZyBkaWRuJ3QgcnVuIHlldC4gIERvaW5nICJtYWtlIGFsbCIgYmVmb3JlIGNvbmZpZ3VyZQorIyBoYXMgcnVuIGNhbiByZXN1bHQgaW4gY29tcGlsaW5nIHdpdGggJChDQykgZW1wdHkuCiAKLWFsbDogdHV0b3IuamEuc2ppcyB0dXRvci5qYS5ldWMgXAotCXR1dG9yLmtvLmV1YyBcCi0JdHV0b3IucnUgdHV0b3IucnUuY3AxMjUxIFwKLQl0dXRvci5nciB0dXRvci5nci5jcDczNyBcCi0JdHV0b3IuaHUKK2ZpcnN0OgorCUBlY2hvICJTdGFydGluZyBtYWtlIGluIHRoZSBzcmMgZGlyZWN0b3J5LiIKKwlAZWNobyAiSWYgdGhlcmUgYXJlIHByb2JsZW1zLCBjZCB0byB0aGUgc3JjIGRpcmVjdG9yeSBhbmQgcnVuIG1ha2UgdGhlcmUiCisJY2Qgc3JjICYmICQoTUFLRSkgJEAKIAotdHV0b3IuamEuc2ppczogdHV0b3IuamEudXRmLTgKLQlua2YgLVdYcyB0dXRvci5qYS51dGYtOCA+IHR1dG9yLmphLnNqaXMKKyMgU29tZSBtYWtlIHByb2dyYW1zIHVzZSB0aGUgbGFzdCB0YXJnZXQgZm9yIHRoZSAkQCBkZWZhdWx0OyBwdXQgdGhlIG90aGVyCisjIHRhcmdldHMgc2VwYXJhdGVseSB0byBhbHdheXMgbGV0ICRAIGV4cGFuZCB0byAiZmlyc3QiIGJ5IGRlZmF1bHQuCithbGwgaW5zdGFsbCB1bmluc3RhbGwgdG9vbHMgY29uZmlnIGNvbmZpZ3VyZSByZWNvbmZpZyBwcm90byBkZXBlbmQgbGludCB0YWdzIHR5cGVzIHRlc3QgdGVzdGNsZWFuIGNsZWFuIGRpc3RjbGVhbjoKKwlAZWNobyAiU3RhcnRpbmcgbWFrZSBpbiB0aGUgc3JjIGRpcmVjdG9yeS4iCisJQGVjaG8gIklmIHRoZXJlIGFyZSBwcm9ibGVtcywgY2QgdG8gdGhlIHNyYyBkaXJlY3RvcnkgYW5kIHJ1biBtYWtlIHRoZXJlIgorCWNkIHNyYyAmJiAkKE1BS0UpICRACiAKLXR1dG9yLmphLmV1YzogdHV0b3IuamEudXRmLTgKLQlua2YgLVdYZSB0dXRvci5qYS51dGYtOCA+IHR1dG9yLmphLmV1YwogCi10dXRvci5rby5ldWM6IHR1dG9yLmtvLnV0Zi04Ci0JaWNvbnYgLWYgVVRGLTggLXQgRVVDLUtSIHR1dG9yLmtvLnV0Zi04ID4gdHV0b3Iua28uZXVjCisjIDIuIENyZWF0ZSB0aGUgdmFyaW91cyBkaXN0cmlidXRpb25zOgorIworIyBUQVJHRVQJUFJPRFVDRVMJCUNPTlRBSU5TCisjIHVuaXhhbGwJdmltLSMuIy50YXIuYnoyCQlSdW50aW1lIGZpbGVzIGFuZCBTb3VyY2VzIGZvciBVbml4CisjCisjIGV4dHJhCQl2aW0tIy4jLWV4dHJhLnRhci5neglFeHRyYSBzb3VyY2UgYW5kIHJ1bnRpbWUgZmlsZXMKKyMgbGFuZwkJdmltLSMuIy1sYW5nLnRhci5negltdWx0aS1sYW5ndWFnZSBmaWxlcworIworIyBodG1sCQl2aW0jI2h0bWwuemlwCQlIVE1MIGRvY3MKKyMKKyMgYW1pc3JjCXZpbSMjc3JjLnRnegkJc291cmNlcyBmb3IgQW1pZ2EKKyMgYW1pcnQJCXZpbSMjcnQudGd6CQlydW50aW1lIGZvciBBbWlnYQorIyBhbWliaW4JdmltIyNiaW4udGd6CQliaW5hcnkgZm9yIEFtaWdhCisjCisjIGRvc3NyYwl2aW0jI3NyYy56aXAJCXNvdXJjZXMgZm9yIE1TLURPUworIyBkb3NydAkJdmltIyNydC56aXAJCXJ1bnRpbWUgZm9yIE1TLURPUworIyBkb3NiaW4JdmltIyNkMTYuemlwCQliaW5hcnkgZm9yIE1TLURPUyAxNiBiaXRzCisjCQl2aW0jI2QzMi56aXAJCWJpbmFyeSBmb3IgTVMtRE9TIDMyIGJpdHMKKyMJCXZpbSMjdzMyLnppcAkJYmluYXJ5IGZvciBXaW4zMgorIwkJZ3ZpbSMjLnppcAkJYmluYXJ5IGZvciBHVUkgV2luMzIKKyMJCWd2aW0jI29sZS56aXAJCU9MRSBleGUgZm9yIFdpbjMyIEdVSQorIwkJZ3ZpbSMjX3MuemlwCQlleGUgZm9yIFdpbjMycyBHVUkKKyMgZG9zbGFuZwl2aW0jI2xhbmcuemlwCQlsYW5ndWFnZSBmaWxlcyBmb3IgV2luMzIKKyMKKyMgb3MyYmluCXZpbSMjb3MyLnppcAkJYmluYXJ5IGZvciBPUy8yCisjCQkJCQkodXNlIFJUIGZyb20gZG9zcnQpCisjCisjIGZhcnNpCQlmYXJzaSMjLnppcAkJRmFyc2kgZm9udHMKKyMKKyMgICAgQWxsIG91dHB1dCBmaWxlcyBhcmUgY3JlYXRlZCBpbiB0aGUgImRpc3QiIGRpcmVjdG9yeS4gIEV4aXN0aW5nIGZpbGVzIGFyZQorIyAgICBvdmVyd3JpdHRlbiEKKyMgICAgVG8gZG8gYWxsIHRoaXMgeW91IG5lZWQgdGhlIHVuaXgsIGV4dHJhIGFuZCBsYW5nIGFyY2hpdmVzLCBhbmQKKyMgICAgY29tcGlsZWQgYmluYXJpZXMuCisjICAgIEJlZm9yZSBjcmVhdGluZyBhbiBhcmNoaXZlIGZpcnN0IGRlbGV0ZSBhbGwgYmFja3VwIGZpbGVzLCAqLm9yaWcsIGV0Yy4KIAotdHV0b3IucnU6IHR1dG9yLnJ1LnV0Zi04Ci0JaWNvbnYgLWYgVVRGLTggLXQgS09JOC1SIHR1dG9yLnJ1LnV0Zi04ID4gdHV0b3IucnUKK01BSk9SID0gNworTUlOT1IgPSAyYQogCi10dXRvci5ydS5jcDEyNTE6IHR1dG9yLnJ1LnV0Zi04Ci0JaWNvbnYgLWYgVVRGLTggLXQgY3AxMjUxIHR1dG9yLnJ1LnV0Zi04ID4gdHV0b3IucnUuY3AxMjUxCisjIFVuY29tbWVudCB0aGlzIGxpbmUgaWYgdGhlIFdpbjMycyB2ZXJzaW9uIGlzIHRvIGJlIGluY2x1ZGVkLgorRE9TQklOX1MgPSAgZG9zYmluX3MKIAotdHV0b3IuZ3I6IHR1dG9yLmdyLnV0Zi04Ci0JaWNvbnYgLWYgVVRGLTggLXQgSVNPLTg4NTktNyB0dXRvci5nci51dGYtOCA+IHR1dG9yLmdyCisjIENIRUNLTElTVCBmb3IgY3JlYXRpbmcgYSBuZXcgdmVyc2lvbjoKKyMKKyMgLSBVcGRhdGUgVmltIHZlcnNpb24gbnVtYmVyLiAgRm9yIGEgdGVzdCB2ZXJzaW9uIGluOiBzcmMvdmVyc2lvbi5oLCBDb250ZW50cywKKyMgICBNQUpPUi9NSU5PUiBhYm92ZSwgVklNTUFKT1IgYW5kIFZJTU1JTk9SIGluIHNyYy9NYWtlZmlsZSwgUkVBRE1FKi50eHQsCisjICAgcnVudGltZS9kb2MvKi50eHQgYW5kIG5zaXMvZ3ZpbS5uc2kuIE90aGVyIHRoaW5ncyBpbiBSRUFETUVfb3MyLnR4dC4gIEZvciBhCisjICAgbWlub3IvbWFqb3IgdmVyc2lvbjogc3JjL0d2aW1FeHQvR3ZpbUV4dC5yZWcsIHNyYy92aW0uZGVmLCBzcmMvdmltMTYuZGVmLgorIyAtIENvcnJlY3QgaW5jbHVkZWRfcGF0Y2hlc1tdIGluIHNyYy92ZXJzaW9uLmMuCisjIC0gQ29tcGlsZSBWaW0gd2l0aCBHVEssIFBlcmwsIFB5dGhvbiwgVENMLCBSdWJ5LCBNWnNjaGVtZSAoaWYgeW91IGNhbiBtYWtlIGl0CisjICAgd29yayksIENzY29wZSBhbmQgImh1Z2UiIGZlYXR1cmVzLiAgRXhjbHVkZSB3b3Jrc2hvcCBhbmQgU05pRkYuCisjIC0gV2l0aCB0aGVzZSBmZWF0dXJlczogIm1ha2UgcHJvdG8iIChyZXF1aXJlcyBjcHJvdG8gYW5kIE1vdGlmIGluc3RhbGxlZDsKKyMgICBpZ25vcmUgd2FybmluZ3MgZm9yIG1pc3NpbmcgaW5jbHVkZSBmaWxlcywgZml4IHByb2JsZW1zIGZvciBzeW50YXggZXJyb3JzKS4KKyMgLSBXaXRoIHRoZXNlIGZlYXR1cmVzOiAibWFrZSBkZXBlbmQiICh3b3JrcyBiZXN0IHdpdGggZ2NjKS4KKyMgLSAibWFrZSBsaW50IiBhbmQgY2hlY2sgdGhlIG91dHB1dCAoaWdub3JlIEdUSyB3YXJuaW5ncykuCisjIC0gRW5hYmxlIHRoZSBlZmVuY2UgbGlicmFyeSBpbiAic3JjL01ha2VmaWxlIiBhbmQgcnVuICJtYWtlIHRlc3QiLiAgRGlzYWJsZQorIyAgIFB5dGhvbiBhbmQgUnVieSB0byBhdm9pZCB0cm91YmxlIHdpdGggdGhyZWFkcyAoZWZlbmNlIGlzIG5vdCB0aHJlYWRzYWZlKS4KKyMgLSBDaGVjayBmb3IgbWlzc2luZyBlbnRyaWVzIGluIHJ1bnRpbWUvbWFrZW1lbnUudmltICh3aXRoIGNoZWNrbWVudSBzY3JpcHQpLgorIyAtIENoZWNrIGZvciBtaXNzaW5nIG9wdGlvbnMgaW4gcnVudGltZS9vcHR3aW4udmltIGV0IGFsLiAod2l0aCBjaGVjay52aW0pLgorIyAtIERvICJtYWtlIG1lbnUiIHRvIHVwZGF0ZSB0aGUgcnVudGltZS9zeW5tZW51LnZpbSBmaWxlLgorIyAtIEFkZCByZW1hcmtzIGZvciBjaGFuZ2VzIHRvIHJ1bnRpbWUvZG9jL3ZlcnNpb243LnR4dC4KKyMgLSBDaGVjayB0aGF0IHJ1bnRpbWUvZG9jL2hlbHAudHh0IGRvZXNuJ3QgY29udGFpbiBlbnRyaWVzIGluICJMT0NBTAorIyAgIEFERElUSU9OUyIuCisjIC0gSW4gcnVudGltZS9kb2MgcnVuICJtYWtlIiBhbmQgIm1ha2UgaHRtbCIgdG8gY2hlY2sgZm9yIGVycm9ycy4KKyMgLSBDaGVjayBpZiBzcmMvTWFrZWZpbGUgYW5kIHNyYy9mZWF0dXJlLmggZG9uJ3QgY29udGFpbiBhbnkgcGVyc29uYWwKKyMgICBwcmVmZXJlbmNlcyBvciB0aGUgR1RLLCBQZXJsLCBldGMuIG1lbnRpb25lZCBhYm92ZS4KKyMgLSBDaGVjayBmaWxlIHByb3RlY3Rpb25zIHRvIGJlICI2NDQiIGZvciB0ZXh0IGFuZCAiNzU1IiBmb3IgZXhlY3V0YWJsZXMgKHJ1bgorIyAgIHRoZSAiY2hlY2siIHNjcmlwdCkuCisjIC0gQ2hlY2sgY29tcGlsaW5nIG9uIEFtaWdhLCBNUy1ET1MgYW5kIE1TLVdpbmRvd3MuCisjIC0gRGVsZXRlIGFsbCAqfiwgKi5zdz8sICoub3JpZywgKi5yZWogZmlsZXMKKyMgLSAibWFrZSB1bml4YWxsIiwgIm1ha2UgZXh0cmEiLCAibWFrZSBsYW5nIiwgIm1ha2UgaHRtbCIKKyMgLSBNYWtlIGRpZmYgZmlsZXMgYWdhaW5zdCB0aGUgcHJldmlvdXMgcmVsZWFzZTogIm1ha2VkaWZmNyA3LjEgNy4yIgorIworIyBBbWlnYToKKyMgLSAibWFrZSBhbWlzcmMiLCBtb3ZlIHRoZSBhcmNoaXZlIHRvIHRoZSBBbWlnYSBhbmQgY29tcGlsZToKKyMgICAibWFrZSAtZiBNYWtlX21hbngubWFrIiAod2lsbCB1c2UgImJpZyIgZmVhdHVyZXMgYnkgZGVmYXVsdCkuCisjIC0gUnVuIHRoZSB0ZXN0czogIm1ha2UgLWYgTWFrZV9tYW54Lm1hayB0ZXN0IgorIyAtIFBsYWNlIHRoZSBleGVjdXRhYmxlcyBWaW0gYW5kIFh4ZCBpbiB0aGlzIGRpcmVjdG9yeSAoc2V0IHRoZSBleGVjdXRhYmxlCisjICAgZmxhZykuCisjIC0gIm1ha2UgYW1pcnQiLCAibWFrZSBhbWliaW4iLgorIworIyBQQzoKKyMgLSAibWFrZSBkb3NzcmMiIGFuZCAibWFrZSBkb3NydCIuICBVbnBhY2sgdGhlIGFyY2hpdmVzIG9uIGEgUEMuCisjIDE2IGJpdCBET1MgdmVyc2lvbjoKKyMgLSBTZXQgZW52aXJvbm1lbnQgZm9yIGNvbXBpbGluZyB3aXRoIEJvcmxhbmQgQysrIDMuMS4KKyMgLSAiYm1ha2UgLWYgTWFrZV9iYzMubWFrIEJPUj1FOlxib3JsYW5kYyIgKGNvbXBpbGluZyB4eGQgbWlnaHQgZmFpbCwgaW4gdGhhdAorIyAgIGNhc2Ugc2V0IGVudmlyb25tZW50IGZvciBjb21waWxpbmcgd2l0aCBCb3JsYW5kIEMrKyA0LjAgYW5kIGRvCisjICAgIm1ha2UgLWYgbWFrZV9iYzMubWFrIEJPUj1FOlxCQzQgeHhkL3h4ZC5leGUiKS4KKyMgICBOT1RFOiB0aGlzIGN1cnJlbnRseSBmYWlscyBiZWNhdXNlIFZpbSBpcyB0b28gYmlnLgorIyAtICJtYWtlIHRlc3QiIGFuZCBjaGVjayB0aGUgb3V0cHV0LgorIyAtIFJlbmFtZSB0aGUgZXhlY3V0YWJsZXMgdG8gInZpbWQxNi5leGUiLCAieHhkZDE2LmV4ZSIsICJpbnN0YWxsZDE2LmV4ZSIgYW5kCisjICAgInVuaW5zdGFsZDE2LmV4ZSIuCisjIDMyIGJpdCBET1MgdmVyc2lvbjoKKyMgLSBTZXQgZW52aXJvbm1lbnQgZm9yIGNvbXBpbGluZyB3aXRoIERKR1BQOyAiZ21ha2UgLWYgTWFrZV9kamcubWFrIi4KKyMgLSAicm0gdGVzdGRpci8qLm91dCIsICJnbWFrZSAtZiBNYWtlX2RqZy5tYWsgdGVzdCIgYW5kIGNoZWNrIHRoZSBvdXRwdXQgZm9yCisjICAgIkFMTCBET05FIi4KKyMgLSBSZW5hbWUgdGhlIGV4ZWN1dGFibGVzIHRvICJ2aW1kMzIuZXhlIiwgInh4ZGQzMi5leGUiLCAiaW5zdGFsbGQzMi5leGUiIGFuZAorIyAgICJ1bmluc3RhbGQzMi5leGUiLgorIyBXaW4zMiBjb25zb2xlIHZlcnNpb246CisjIC0gU2V0IGVudmlyb25tZW50IGZvciBWaXN1YWwgQysrIDIwMDggRXhwcmVzcyBFZGl0aW9uOiAibXN2YzIwMDguYmF0Ii4gIE9yLAorIyAgIHdoZW4gdXNpbmcgdGhlIFZpc3VhbCBDKysgVG9vbGtpdCAyMDAzOiAibXN2Y3NldHVwLmJhdCIgKGFkanVzdCB0aGUgcGF0aHMKKyMgICB3aGVuIG5lY2Vzc2FyeSkuCisjIC0gIm5tYWtlIC1mIE1ha2VfbXZjLm1hayIKKyMgLSAicm0gdGVzdGRpci8qLm91dCIsICJubWFrZSAtZiBNYWtlX212Yy5tYWsgdGVzdCIgYW5kIGNoZWNrIHRoZSBvdXRwdXQuCisjIC0gUmVuYW1lIHRoZSBleGVjdXRhYmxlcyB0byAidmltdzMyLmV4ZSIsICJ4eGR3MzIuZXhlIi4KKyMgLSBSZW5hbWUgdmltLnBkYiB0byB2aW13MzIucGRiLgorIyAtIFdoZW4gYnVpbGRpbmcgdGhlIFdpbjMycyB2ZXJzaW9uIGxhdGVyLCBkZWxldGUgdmltcnVuLmV4ZSwgaW5zdGFsbC5leGUgYW5kCisjICAgdW5pbnN0YWwuZXhlLiAgT3RoZXJ3aXNlIHJlbmFtZSBleGVjdXRhYmxlcyB0byBpbnN0YWxsdzMyLmV4ZSBhbmQKKyMgICB1bmluc3RhbHczMi5leGUuCisjIFdpbjMyIEdVSSB2ZXJzaW9uOgorIyAtICJubWFrZSAtZiBNYWtlX212Yy5tYWsgR1VJPXllcy4KKyMgLSBtb3ZlICJndmltLmV4ZSIgdG8gaGVyZSAob3RoZXJ3aXNlIHRoZSBPTEUgdmVyc2lvbiB3aWxsIG92ZXJ3cml0ZSBpdCkuCisjIC0gTW92ZSBndmltLnBkYiB0byBoZXJlLgorIyAtIERlbGV0ZSB2aW1ydW4uZXhlLCBpbnN0YWxsLmV4ZSBhbmQgdW5pbnN0YWwuZXhlLgorIyAtIENvcHkgIkd2aW1FeHQvZ3ZpbWV4dC5kbGwiIHRvIGhlcmUuCisjIFdpbjMyIEdVSSB2ZXJzaW9uIHdpdGggT0xFLCBQRVJMLCBUQ0wsIFBZVEhPTiBhbmQgZHluYW1pYyBJTUU6CisjIC0gUnVuIHNyYy9iaWd2aW0uYmF0ICgibm1ha2UgLWYgTWFrZV9tdmMubWFrIEdVST15ZXMgT0xFPXllcyBJTUU9eWVzIC4uLikKKyMgLSBSZW5hbWUgImd2aW0uZXhlIiB0byAiZ3ZpbV9vbGUuZXhlIi4KKyMgLSBSZW5hbWUgZ3ZpbS5wZGIgdG8gImd2aW1fb2xlLnBkYiIuCisjIC0gRGVsZXRlIGluc3RhbGwuZXhlIGFuZCB1bmluc3RhbC5leGUuCisjIC0gSWYgYnVpbGRpbmcgdGhlIFdpbjMycyB2ZXJzaW9uIGRlbGV0ZSB2aW1ydW4uZXhlLgorIyBXaW4zMnMgR1VJIHZlcnNpb246CisjIC0gU2V0IGVudmlyb25tZW50IGZvciBWaXN1YWwgQysrIDQuMSAocmVxdWlyZXMgYSBuZXcgY29uc29sZSB3aW5kb3cpCisjIC0gInZjdmFyczMyIiAodXNlIHRoZSBwYXRoIGZvciBWQyA0LjEgZTpcbXNkZXZcYmluKQorIyAtICJubWFrZSAtZiBNYWtlX212Yy5tYWsgR1VJPXllcyBJTlRMPW5vIGNsZWFuIiAodXNlIHRoZSBwYXRoIGZvciBWQyA0LjEpCisjIC0gIm5tYWtlIC1mIE1ha2VfbXZjLm1hayBHVUk9eWVzIElOVEw9bm8iICh1c2UgdGhlIHBhdGggZm9yIFZDIDQuMSkKKyMgLSBSZW5hbWUgImd2aW0uZXhlIiB0byAiZ3ZpbV93MzJzLmV4ZSIuCisjIC0gUmVuYW1lICJpbnN0YWxsLmV4ZSIgdG8gImluc3RhbGx3MzIuZXhlIgorIyAtIFJlbmFtZSAidW5pbnN0YWwuZXhlIiB0byAidW5pbnN0YWx3MzIuZXhlIgorIyAtIFRoZSBwcm9kdWNlZCB1bmluc3RhbHczMi5leGUgYW5kIHZpbXJ1bi5leGUgYXJlIHVzZWQuCisjIENyZWF0ZSB0aGUgYXJjaGl2ZXM6CisjIC0gQ29weSBhbGwgdGhlICIqLmV4ZSIgZmlsZXMgdG8gd2hlcmUgdGhpcyBNYWtlZmlsZSBpcy4KKyMgLSBDb3B5IGFsbCB0aGUgIioucGRiIiBmaWxlcyB0byB3aGVyZSB0aGlzIE1ha2VmaWxlIGlzLgorIyAtICJtYWtlIGRvc2JpbiIuCisjIC0gUnVuIG1ha2Ugb24gVW5peCB0byB1cGRhdGUgdGhlICIubW8iIGZpbGVzLgorIyAtICJtYWtlIGRvc2xhbmciLgorIyBOU0lTIHNlbGYgaW5zdGFsbGluZyBleGU6CisjIC0gVW5wYWNrIHRoZSBkb3NsYW5nIGFyY2hpdmUgb24gdGhlIFBDLgorIyAtIE1ha2Ugc3VyZSBndmltX29sZS5leGUsIHZpbWQzMi5leGUsIHZpbXczMi5leGUsIGluc3RhbGx3MzIuZXhlLAorIyAgIHVuaW5zdGFsdzMyLmV4ZSBhbmQgeHhkdzMyLmV4ZSBoYXZlIGJlZW4gYnVpbGQgYXMgbWVudGlvbmVkIGFib3ZlLgorIyAtIHB1dCBndmltZXh0LmRsbCBpbiBzcmMvR3ZpbUV4dCBhbmQgVmlzVmltLmRsbCBpbiBzcmMvVmlzVmltIChnZXQgdGhlbQorIyAgIGZyb20gYSBiaW5hcnkgYXJjaGl2ZSBvciBidWlsZCB0aGVtKQorIyAgIE5vdGU6IFZpc1ZpbSBuZWVkcyB0byBiZSBidWlsZCB3aXRoIE1TVkMgNSwgbmV3ZXIgdmVyc2lvbnMgZG9uJ3Qgd29yay4KKyMgLSBtYWtlIHN1cmUgdGhlcmUgaXMgYSBkaWZmLmV4ZSB0d28gbGV2ZWxzIHVwCisjIC0gZ28gdG8gLi4vbnNpcyBhbmQgZG8gIm1ha2Vuc2lzIGd2aW0ubnNpIi4KKyMgLSBDb3B5IGd2aW0jIy5leGUgdG8gdGhlIGRpc3QgZGlyZWN0b3J5LgorIworIyBPUy8yOgorIyAtIFVucGFjayB0aGUgVW5peCAic3JjIiwgImV4dHJhIiBhbmQgInJ0IiBhcmNoaXZlcy4KKyMgLSAibWFrZSAtZiBNYWtlX29zMi5tYWsiLgorIyAtIFJlbmFtZSB0aGUgZXhlY3V0YWJsZXMgdG8gdmltb3MyLmV4ZSwgeHhkb3MyLmV4ZSBhbmQgdGVlb3MyLmV4ZSBhbmQgY29weQorIyAgIHRoZW0gdG8gaGVyZS4KKyMgLSAibWFrZSBvczJiaW4iLgogCi10dXRvci5nci5jcDczNzogdHV0b3IuZ3IudXRmLTgKLQlpY29udiAtZiBVVEYtOCAtdCBjcDczNyB0dXRvci5nci51dGYtOCA+IHR1dG9yLmdyLmNwNzM3CitWSU1WRVIJPSB2aW0tJChNQUpPUikuJChNSU5PUikKK1ZFUlNJT04gPSAkKE1BSk9SKSQoTUlOT1IpCitWRE9UCT0gJChNQUpPUikuJChNSU5PUikKK1ZJTVJURElSID0gdmltJChWRVJTSU9OKQogCi10dXRvci5odTogdHV0b3IuaHUudXRmLTgKLQlpY29udiAtZiBVVEYtOCAtdCBJU08tODg1OS0yIHR1dG9yLmh1LnV0Zi04ID4gdHV0b3IuaHUKKyMgVmltIHVzZWQgZm9yIGNvbnZlcnNpb24gZnJvbSAidW5peCIgdG8gImRvcyIKK1ZJTQk9IHZpbQorCisjIEhvdyB0byBpbmNsdWRlIEZpbGVsaXN0IGRlcGVuZHMgb24gdGhlIHZlcnNpb24gb2YgIm1ha2UiIHlvdSBoYXZlLgorIyBJZiB0aGUgY3VycmVudCBjaG9pY2UgZG9lc24ndCB3b3JrLCB0cnkgdGhlIG90aGVyIG9uZS4KKworaW5jbHVkZSBGaWxlbGlzdAorIy5pbmNsdWRlICJGaWxlbGlzdCIKKworCisjIEFsbCBvdXRwdXQgaXMgcHV0IGluIHRoZSAiZGlzdCIgZGlyZWN0b3J5LgorZGlzdDoKKwlta2RpciBkaXN0CisKKyMgQ2xlYW4gdXAgc29tZSBmaWxlcyB0byBhdm9pZCB0aGV5IGFyZSBpbmNsdWRlZC4KK3ByZXBhcmU6CisJaWYgdGVzdCAtZiBydW50aW1lL2RvYy91Z2FuZGEubnNpcy50eHQ7IHRoZW4gXAorCQlybSBydW50aW1lL2RvYy91Z2FuZGEubnNpcy50eHQ7IGZpCisKKyMgRm9yIHRoZSB6aXAgZmlsZXMgd2UgbmVlZCB0byBjcmVhdGUgYSBmaWxlIHdpdGggdGhlIGNvbW1lbnQgbGluZQorZGlzdC9jb21tZW50OgorCW1rZGlyIGRpc3QvY29tbWVudAorCitDT01NRU5UX1JUID0gY29tbWVudC8kKFZFUlNJT04pLXJ0CitDT01NRU5UX1JUMSA9IGNvbW1lbnQvJChWRVJTSU9OKS1ydDEKK0NPTU1FTlRfUlQyID0gY29tbWVudC8kKFZFUlNJT04pLXJ0MgorQ09NTUVOVF9EMTYgPSBjb21tZW50LyQoVkVSU0lPTiktYmluLWQxNgorQ09NTUVOVF9EMzIgPSBjb21tZW50LyQoVkVSU0lPTiktYmluLWQzMgorQ09NTUVOVF9XMzIgPSBjb21tZW50LyQoVkVSU0lPTiktYmluLXczMgorQ09NTUVOVF9HVklNID0gY29tbWVudC8kKFZFUlNJT04pLWJpbi1ndmltCitDT01NRU5UX09MRSA9IGNvbW1lbnQvJChWRVJTSU9OKS1iaW4tb2xlCitDT01NRU5UX1czMlMgPSBjb21tZW50LyQoVkVSU0lPTiktYmluLXczMnMKK0NPTU1FTlRfU1JDID0gY29tbWVudC8kKFZFUlNJT04pLXNyYworQ09NTUVOVF9PUzIgPSBjb21tZW50LyQoVkVSU0lPTiktYmluLW9zMgorQ09NTUVOVF9IVE1MID0gY29tbWVudC8kKFZFUlNJT04pLWh0bWwKK0NPTU1FTlRfRkFSU0kgPSBjb21tZW50LyQoVkVSU0lPTiktZmFyc2kKK0NPTU1FTlRfTEFORyA9IGNvbW1lbnQvJChWRVJTSU9OKS1sYW5nCisKK2Rpc3QvJChDT01NRU5UX1JUKTogZGlzdC9jb21tZW50CisJZWNobyAiVmltIC0gVmkgSU1wcm92ZWQgLSB2JChWRE9UKSBydW50aW1lIGZpbGVzIGZvciBNUy1ET1MgYW5kIE1TLVdpbmRvd3MiID4gZGlzdC8kKENPTU1FTlRfUlQpCisKK2Rpc3QvJChDT01NRU5UX1JUMSk6IGRpc3QvY29tbWVudAorCWVjaG8gIlZpbSAtIFZpIElNcHJvdmVkIC0gdiQoVkRPVCkgcnVudGltZSBmaWxlcyAoUEFSVCAxKSBmb3IgTVMtRE9TIGFuZCBNUy1XaW5kb3dzIiA+IGRpc3QvJChDT01NRU5UX1JUMSkKKworZGlzdC8kKENPTU1FTlRfUlQyKTogZGlzdC9jb21tZW50CisJZWNobyAiVmltIC0gVmkgSU1wcm92ZWQgLSB2JChWRE9UKSBydW50aW1lIGZpbGVzIChQQVJUIDIpIGZvciBNUy1ET1MgYW5kIE1TLVdpbmRvd3MiID4gZGlzdC8kKENPTU1FTlRfUlQyKQorCitkaXN0LyQoQ09NTUVOVF9EMTYpOiBkaXN0L2NvbW1lbnQKKwllY2hvICJWaW0gLSBWaSBJTXByb3ZlZCAtIHYkKFZET1QpIGJpbmFyaWVzIGZvciBNUy1ET1MgMTYgYml0IHJlYWwgbW9kZSIgPiBkaXN0LyQoQ09NTUVOVF9EMTYpCisKK2Rpc3QvJChDT01NRU5UX0QzMik6IGRpc3QvY29tbWVudAorCWVjaG8gIlZpbSAtIFZpIElNcHJvdmVkIC0gdiQoVkRPVCkgYmluYXJpZXMgZm9yIE1TLURPUyAzMiBiaXQgcHJvdGVjdGVkIG1vZGUiID4gZGlzdC8kKENPTU1FTlRfRDMyKQorCitkaXN0LyQoQ09NTUVOVF9XMzIpOiBkaXN0L2NvbW1lbnQKKwllY2hvICJWaW0gLSBWaSBJTXByb3ZlZCAtIHYkKFZET1QpIGJpbmFyaWVzIGZvciBNUy1XaW5kb3dzIE5ULzk1IiA+IGRpc3QvJChDT01NRU5UX1czMikKKworZGlzdC8kKENPTU1FTlRfR1ZJTSk6IGRpc3QvY29tbWVudAorCWVjaG8gIlZpbSAtIFZpIElNcHJvdmVkIC0gdiQoVkRPVCkgR1VJIGJpbmFyaWVzIGZvciBNUy1XaW5kb3dzIE5ULzk1IiA+IGRpc3QvJChDT01NRU5UX0dWSU0pCisKK2Rpc3QvJChDT01NRU5UX09MRSk6IGRpc3QvY29tbWVudAorCWVjaG8gIlZpbSAtIFZpIElNcHJvdmVkIC0gdiQoVkRPVCkgTVMtV2luZG93cyBHVUkgYmluYXJpZXMgd2l0aCBPTEUgc3VwcG9ydCIgPiBkaXN0LyQoQ09NTUVOVF9PTEUpCisKK2Rpc3QvJChDT01NRU5UX1czMlMpOiBkaXN0L2NvbW1lbnQKKwllY2hvICJWaW0gLSBWaSBJTXByb3ZlZCAtIHYkKFZET1QpIEdVSSBiaW5hcmllcyBmb3IgTVMtV2luZG93cyAzLjEvMy4xMSIgPiBkaXN0LyQoQ09NTUVOVF9XMzJTKQorCitkaXN0LyQoQ09NTUVOVF9TUkMpOiBkaXN0L2NvbW1lbnQKKwllY2hvICJWaW0gLSBWaSBJTXByb3ZlZCAtIHYkKFZET1QpIHNvdXJjZXMgZm9yIE1TLURPUyBhbmQgTVMtV2luZG93cyIgPiBkaXN0LyQoQ09NTUVOVF9TUkMpCisKK2Rpc3QvJChDT01NRU5UX09TMik6IGRpc3QvY29tbWVudAorCWVjaG8gIlZpbSAtIFZpIElNcHJvdmVkIC0gdiQoVkRPVCkgYmluYXJpZXMgKyBydW50aW1lIGZpbGVzIGZvciBPUy8yIiA+IGRpc3QvJChDT01NRU5UX09TMikKKworZGlzdC8kKENPTU1FTlRfSFRNTCk6IGRpc3QvY29tbWVudAorCWVjaG8gIlZpbSAtIFZpIElNcHJvdmVkIC0gdiQoVkRPVCkgZG9jdW1lbnRhdGlvbiBpbiBIVE1MIiA+IGRpc3QvJChDT01NRU5UX0hUTUwpCisKK2Rpc3QvJChDT01NRU5UX0ZBUlNJKTogZGlzdC9jb21tZW50CisJZWNobyAiVmltIC0gVmkgSU1wcm92ZWQgLSB2JChWRE9UKSBGYXJzaSBsYW5ndWFnZSBmaWxlcyIgPiBkaXN0LyQoQ09NTUVOVF9GQVJTSSkKKworZGlzdC8kKENPTU1FTlRfTEFORyk6IGRpc3QvY29tbWVudAorCWVjaG8gIlZpbSAtIFZpIElNcHJvdmVkIC0gdiQoVkRPVCkgTVMtV2luZG93cyBsYW5ndWFnZSBmaWxlcyIgPiBkaXN0LyQoQ09NTUVOVF9MQU5HKQorCit1bml4YWxsOiBkaXN0IHByZXBhcmUKKwktcm0gLWYgZGlzdC8kKFZJTVZFUikudGFyLmJ6MgorCS1ybSAtcmYgZGlzdC8kKFZJTVJURElSKQorCW1rZGlyIGRpc3QvJChWSU1SVERJUikKKwl0YXIgY2YgLSBcCisJCSQoUlRfQUxMKSBcCisJCSQoUlRfQUxMX0JJTikgXAorCQkkKFJUX1VOSVgpIFwKKwkJJChSVF9VTklYX0RPU19CSU4pIFwKKwkJJChSVF9TQ1JJUFRTKSBcCisJCSQoTEFOR19HRU4pIFwKKwkJJChMQU5HX0dFTl9CSU4pIFwKKwkJJChTUkNfQUxMKSBcCisJCSQoU1JDX1VOSVgpIFwKKwkJJChTUkNfRE9TX1VOSVgpIFwKKwkJfCAoY2QgZGlzdC8kKFZJTVJURElSKTsgdGFyIHhmIC0pCisjIE5lZWQgdG8gdXNlIGEgImRpc3RjbGVhbiIgY29uZmlnLm1rIGZpbGUKKwljcCAtZiBzcmMvY29uZmlnLm1rLmRpc3QgZGlzdC8kKFZJTVJURElSKS9zcmMvYXV0by9jb25maWcubWsKKyMgQ3JlYXRlIGFuIGVtcHR5IGNvbmZpZy5oIGZpbGUsIG1ha2UgZGVwZW5kZW5jaWVzIHJlcXVpcmUgaXQKKwl0b3VjaCBkaXN0LyQoVklNUlRESVIpL3NyYy9hdXRvL2NvbmZpZy5oCisjIE1ha2Ugc3VyZSBjb25maWd1cmUgaXMgbmV3ZXIgdGhhbiBjb25maWcubWsgdG8gZm9yY2UgaXQgdG8gYmUgZ2VuZXJhdGVkCisJdG91Y2ggZGlzdC8kKFZJTVJURElSKS9zcmMvY29uZmlndXJlCisJY2QgZGlzdCAmJiB0YXIgY2YgJChWSU1WRVIpLnRhciAkKFZJTVJURElSKQorCWJ6aXAyIGRpc3QvJChWSU1WRVIpLnRhcgorCitleHRyYTogZGlzdCBwcmVwYXJlCisJLXJtIC1mIGRpc3QvJChWSU1WRVIpLWV4dHJhLnRhci5negorCS1ybSAtcmYgZGlzdC8kKFZJTVJURElSKQorCW1rZGlyIGRpc3QvJChWSU1SVERJUikKKwl0YXIgY2YgLSBcCisJCSQoRVhUUkEpIFwKKwkJfCAoY2QgZGlzdC8kKFZJTVJURElSKTsgdGFyIHhmIC0pCisJY2QgZGlzdCAmJiB0YXIgY2YgJChWSU1WRVIpLWV4dHJhLnRhciAkKFZJTVJURElSKQorCWd6aXAgLTkgZGlzdC8kKFZJTVZFUiktZXh0cmEudGFyCisKK2xhbmc6IGRpc3QgcHJlcGFyZQorCS1ybSAtZiBkaXN0LyQoVklNVkVSKS1sYW5nLnRhci5negorCS1ybSAtcmYgZGlzdC8kKFZJTVJURElSKQorCW1rZGlyIGRpc3QvJChWSU1SVERJUikKKwl0YXIgY2YgLSBcCisJCSQoTEFOR19TUkMpIFwKKwkJfCAoY2QgZGlzdC8kKFZJTVJURElSKTsgdGFyIHhmIC0pCisjIE1ha2Ugc3VyZSBqYS5zamlzLnBvIGlzIG5ld2VyIHRoYW4gamEucG8gdG8gYXZvaWQgaXQgYmVpbmcgcmVnZW5lcmF0ZWQuCisjIFNhbWUgZm9yIGNzLmNwMTI1MC5wbywgcGwuY3AxMjUwLnBvIGFuZCBzay5jcDEyNTAucG8uCisJdG91Y2ggZGlzdC8kKFZJTVJURElSKS9zcmMvcG8vamEuc2ppcy5wbworCXRvdWNoIGRpc3QvJChWSU1SVERJUikvc3JjL3BvL2NzLmNwMTI1MC5wbworCXRvdWNoIGRpc3QvJChWSU1SVERJUikvc3JjL3BvL3BsLmNwMTI1MC5wbworCXRvdWNoIGRpc3QvJChWSU1SVERJUikvc3JjL3BvL3NrLmNwMTI1MC5wbworCXRvdWNoIGRpc3QvJChWSU1SVERJUikvc3JjL3BvL3poX0NOLmNwOTM2LnBvCisJdG91Y2ggZGlzdC8kKFZJTVJURElSKS9zcmMvcG8vcnUuY3AxMjUxLnBvCisJdG91Y2ggZGlzdC8kKFZJTVJURElSKS9zcmMvcG8vdWsuY3AxMjUxLnBvCisJY2QgZGlzdCAmJiB0YXIgY2YgJChWSU1WRVIpLWxhbmcudGFyICQoVklNUlRESVIpCisJZ3ppcCAtOSBkaXN0LyQoVklNVkVSKS1sYW5nLnRhcgorCithbWlydDogZGlzdCBwcmVwYXJlCisJLXJtIC1mIGRpc3QvdmltJChWRVJTSU9OKXJ0LnRhci5negorCS1ybSAtcmYgZGlzdC9WaW0KKwlta2RpciBkaXN0L1ZpbQorCW1rZGlyIGRpc3QvVmltLyQoVklNUlRESVIpCisJdGFyIGNmIC0gXAorCQkkKFJPT1RfQU1JKSBcCisJCSQoUlRfQUxMKSBcCisJCSQoUlRfQUxMX0JJTikgXAorCQkkKFJUX1NDUklQVFMpIFwKKwkJJChSVF9BTUkpIFwKKwkJJChSVF9OT19VTklYKSBcCisJCSQoUlRfQU1JX0RPUykgXAorCQl8IChjZCBkaXN0L1ZpbS8kKFZJTVJURElSKTsgdGFyIHhmIC0pCisJbXYgZGlzdC9WaW0vJChWSU1SVERJUikvdmltZGlyLmluZm8gZGlzdC9WaW0uaW5mbworCW12IGRpc3QvVmltLyQoVklNUlRESVIpL3J1bnRpbWUuaW5mbyBkaXN0L1ZpbS8kKFZJTVJURElSKS5pbmZvCisJbXYgZGlzdC9WaW0vJChWSU1SVERJUikvcnVudGltZS8qIGRpc3QvVmltLyQoVklNUlRESVIpCisJcm1kaXIgZGlzdC9WaW0vJChWSU1SVERJUikvcnVudGltZQorCWNkIGRpc3QgJiYgdGFyIGNmIHZpbSQoVkVSU0lPTilydC50YXIgVmltIFZpbS5pbmZvCisJZ3ppcCAtOSBkaXN0L3ZpbSQoVkVSU0lPTilydC50YXIKKwltdiBkaXN0L3ZpbSQoVkVSU0lPTilydC50YXIuZ3ogZGlzdC92aW0kKFZFUlNJT04pcnQudGd6CisKK2FtaWJpbjogZGlzdCBwcmVwYXJlCisJLXJtIC1mIGRpc3QvdmltJChWRVJTSU9OKWJpbi50YXIuZ3oKKwktcm0gLXJmIGRpc3QvVmltCisJbWtkaXIgZGlzdC9WaW0KKwlta2RpciBkaXN0L1ZpbS8kKFZJTVJURElSKQorCXRhciBjZiAtIFwKKwkJJChST09UX0FNSSkgXAorCQkkKEJJTl9BTUkpIFwKKwkJVmltIFwKKwkJWHhkIFwKKwkJfCAoY2QgZGlzdC9WaW0vJChWSU1SVERJUik7IHRhciB4ZiAtKQorCW12IGRpc3QvVmltLyQoVklNUlRESVIpL3ZpbWRpci5pbmZvIGRpc3QvVmltLmluZm8KKwltdiBkaXN0L1ZpbS8kKFZJTVJURElSKS9ydW50aW1lLmluZm8gZGlzdC9WaW0vJChWSU1SVERJUikuaW5mbworCWNkIGRpc3QgJiYgdGFyIGNmIHZpbSQoVkVSU0lPTiliaW4udGFyIFZpbSBWaW0uaW5mbworCWd6aXAgLTkgZGlzdC92aW0kKFZFUlNJT04pYmluLnRhcgorCW12IGRpc3QvdmltJChWRVJTSU9OKWJpbi50YXIuZ3ogZGlzdC92aW0kKFZFUlNJT04pYmluLnRnegorCithbWlzcmM6IGRpc3QgcHJlcGFyZQorCS1ybSAtZiBkaXN0L3ZpbSQoVkVSU0lPTilzcmMudGFyLmd6CisJLXJtIC1yZiBkaXN0L1ZpbQorCW1rZGlyIGRpc3QvVmltCisJbWtkaXIgZGlzdC9WaW0vJChWSU1SVERJUikKKwl0YXIgY2YgLSBcCisJCSQoUk9PVF9BTUkpIFwKKwkJJChTUkNfQUxMKSBcCisJCSQoU1JDX0FNSSkgXAorCQkkKFNSQ19BTUlfRE9TKSBcCisJCXwgKGNkIGRpc3QvVmltLyQoVklNUlRESVIpOyB0YXIgeGYgLSkKKwltdiBkaXN0L1ZpbS8kKFZJTVJURElSKS92aW1kaXIuaW5mbyBkaXN0L1ZpbS5pbmZvCisJbXYgZGlzdC9WaW0vJChWSU1SVERJUikvcnVudGltZS5pbmZvIGRpc3QvVmltLyQoVklNUlRESVIpLmluZm8KKwljZCBkaXN0ICYmIHRhciBjZiB2aW0kKFZFUlNJT04pc3JjLnRhciBWaW0gVmltLmluZm8KKwlnemlwIC05IGRpc3QvdmltJChWRVJTSU9OKXNyYy50YXIKKwltdiBkaXN0L3ZpbSQoVkVSU0lPTilzcmMudGFyLmd6IGRpc3QvdmltJChWRVJTSU9OKXNyYy50Z3oKKworbm9fdGl0bGUudmltOiBNYWtlZmlsZQorCWVjaG8gInNldCBub3RpdGxlIG5vaWNvbiBub2NwIG5vbW9kZWxpbmUgdmltaW5mbz0iID5ub190aXRsZS52aW0KKworZG9zcnQ6IGRpc3QgZGlzdC8kKENPTU1FTlRfUlQpIGRvc3J0X3VuaXgyZG9zCisJLXJtIC1yZiBkaXN0L3ZpbSQoVkVSU0lPTilydC56aXAKKwljZCBkaXN0ICYmIHppcCAtOSAtckQgLXogdmltJChWRVJTSU9OKXJ0LnppcCB2aW0gPCQoQ09NTUVOVF9SVCkKKworIyBTcGxpdCBpbiB0d28gcGFydHMgdG8gYXZvaWQgYSAiYXJndW1lbnQgbGlzdCB0b28gbG9uZyIgZXJyb3IuCitkb3NydF91bml4MmRvczogZGlzdCBwcmVwYXJlIG5vX3RpdGxlLnZpbQorCS1ybSAtcmYgZGlzdC92aW0KKwlta2RpciBkaXN0L3ZpbQorCW1rZGlyIGRpc3QvdmltLyQoVklNUlRESVIpCisJdGFyIGNmIC0gXAorCQkkKFJUX0FMTCkgXAorCQl8IChjZCBkaXN0L3ZpbS8kKFZJTVJURElSKTsgdGFyIHhmIC0pCisJdGFyIGNmIC0gXAorCQkkKFJUX1NDUklQVFMpIFwKKwkJJChSVF9ET1MpIFwKKwkJJChSVF9OT19VTklYKSBcCisJCSQoUlRfQU1JX0RPUykgXAorCQkkKExBTkdfR0VOKSBcCisJCXwgKGNkIGRpc3QvdmltLyQoVklNUlRESVIpOyB0YXIgeGYgLSkKKwlmaW5kIGRpc3QvdmltLyQoVklNUlRESVIpIC10eXBlIGYgLWV4ZWMgJChWSU0pIC1lIC11IG5vX3RpdGxlLnZpbSAtYyAiOnNldCB0eHx3cSIge30gXDsKKwl0YXIgY2YgLSBcCisJCSQoUlRfVU5JWF9ET1NfQklOKSBcCisJCSQoUlRfQUxMX0JJTikgXAorCQkkKFJUX0RPU19CSU4pIFwKKwkJJChMQU5HX0dFTl9CSU4pIFwKKwkJfCAoY2QgZGlzdC92aW0vJChWSU1SVERJUik7IHRhciB4ZiAtKQorCW12IGRpc3QvdmltLyQoVklNUlRESVIpL3J1bnRpbWUvKiBkaXN0L3ZpbS8kKFZJTVJURElSKQorCXJtZGlyIGRpc3QvdmltLyQoVklNUlRESVIpL3J1bnRpbWUKKworCisjIENvbnZlcnQgcnVudGltZSBmaWxlcyBmcm9tIFVuaXggZmlsZWZvcm1hdCB0byBkb3MgZmlsZWZvcm1hdC4KKyMgVXNlZCBiZWZvcmUgdXBsb2FkaW5nLiAgRG9uJ3QgZGVsZXRlIHRoZSBBQVBESVIvc2lnbiBmaWxlcyEKK3J1bnRpbWVfdW5peDJkb3M6IGRvc3J0X3VuaXgyZG9zCisJLXJtIC1yZiBgZmluZCBydW50aW1lL2RvcyAtdHlwZSBmIC1wcmludCB8IHNlZCAtZSAvQUFQRElSL2RgCisJY2QgZGlzdC92aW0vJChWSU1SVERJUik7IHRhciBjZiAtICogXAorCQl8IChjZCAuLi8uLi8uLi9ydW50aW1lL2RvczsgdGFyIHhmIC0pCisKK2Rvc2JpbjogcHJlcGFyZSBkb3NiaW5fZ3ZpbSBkb3NiaW5fdzMyIGRvc2Jpbl9kMzIgZG9zYmluX2QxNiBkb3NiaW5fb2xlICQoRE9TQklOX1MpCisKKyMgbWFrZSBXaW4zMiBndmltCitkb3NiaW5fZ3ZpbTogZGlzdCBub190aXRsZS52aW0gZGlzdC8kKENPTU1FTlRfR1ZJTSkKKwktcm0gLXJmIGRpc3QvZ3ZpbSQoVkVSU0lPTikuemlwCisJLXJtIC1yZiBkaXN0L3ZpbQorCW1rZGlyIGRpc3QvdmltCisJbWtkaXIgZGlzdC92aW0vJChWSU1SVERJUikKKwl0YXIgY2YgLSBcCisJCSQoQklOX0RPUykgXAorCQl8IChjZCBkaXN0L3ZpbS8kKFZJTVJURElSKTsgdGFyIHhmIC0pCisJZmluZCBkaXN0L3ZpbS8kKFZJTVJURElSKSAtdHlwZSBmIC1leGVjICQoVklNKSAtZSAtdSBub190aXRsZS52aW0gLWMgIjpzZXQgdHh8d3EiIHt9IFw7CisJY3AgZ3ZpbS5leGUgZGlzdC92aW0vJChWSU1SVERJUikvZ3ZpbS5leGUKKwljcCB4eGR3MzIuZXhlIGRpc3QvdmltLyQoVklNUlRESVIpL3h4ZC5leGUKKwljcCB2aW1ydW4uZXhlIGRpc3QvdmltLyQoVklNUlRESVIpL3ZpbXJ1bi5leGUKKwljcCBpbnN0YWxsdzMyLmV4ZSBkaXN0L3ZpbS8kKFZJTVJURElSKS9pbnN0YWxsLmV4ZQorCWNwIHVuaW5zdGFsdzMyLmV4ZSBkaXN0L3ZpbS8kKFZJTVJURElSKS91bmluc3RhbC5leGUKKwljcCBndmltZXh0LmRsbCBkaXN0L3ZpbS8kKFZJTVJURElSKS9ndmltZXh0LmRsbAorCWNkIGRpc3QgJiYgemlwIC05IC1yRCAteiBndmltJChWRVJTSU9OKS56aXAgdmltIDwkKENPTU1FTlRfR1ZJTSkKKwljcCBndmltLnBkYiBkaXN0L2d2aW0kKFZFUlNJT04pLnBkYgorCisjIG1ha2UgV2luMzIgY29uc29sZQorZG9zYmluX3czMjogZGlzdCBub190aXRsZS52aW0gZGlzdC8kKENPTU1FTlRfVzMyKQorCS1ybSAtcmYgZGlzdC92aW0kKFZFUlNJT04pdzMyLnppcAorCS1ybSAtcmYgZGlzdC92aW0KKwlta2RpciBkaXN0L3ZpbQorCW1rZGlyIGRpc3QvdmltLyQoVklNUlRESVIpCisJdGFyIGNmIC0gXAorCQkkKEJJTl9ET1MpIFwKKwkJfCAoY2QgZGlzdC92aW0vJChWSU1SVERJUik7IHRhciB4ZiAtKQorCWZpbmQgZGlzdC92aW0vJChWSU1SVERJUikgLXR5cGUgZiAtZXhlYyAkKFZJTSkgLWUgLXUgbm9fdGl0bGUudmltIC1jICI6c2V0IHR4fHdxIiB7fSBcOworCWNwIHZpbXczMi5leGUgZGlzdC92aW0vJChWSU1SVERJUikvdmltLmV4ZQorCWNwIHh4ZHczMi5leGUgZGlzdC92aW0vJChWSU1SVERJUikveHhkLmV4ZQorCWNwIGluc3RhbGx3MzIuZXhlIGRpc3QvdmltLyQoVklNUlRESVIpL2luc3RhbGwuZXhlCisJY3AgdW5pbnN0YWx3MzIuZXhlIGRpc3QvdmltLyQoVklNUlRESVIpL3VuaW5zdGFsLmV4ZQorCWNkIGRpc3QgJiYgemlwIC05IC1yRCAteiB2aW0kKFZFUlNJT04pdzMyLnppcCB2aW0gPCQoQ09NTUVOVF9XMzIpCisJY3AgdmltdzMyLnBkYiBkaXN0L3ZpbSQoVkVSU0lPTil3MzIucGRiCisKKyMgbWFrZSAzMmJpdCBET1MKK2Rvc2Jpbl9kMzI6IGRpc3Qgbm9fdGl0bGUudmltIGRpc3QvJChDT01NRU5UX0QzMikKKwktcm0gLXJmIGRpc3QvdmltJChWRVJTSU9OKWQzMi56aXAKKwktcm0gLXJmIGRpc3QvdmltCisJbWtkaXIgZGlzdC92aW0KKwlta2RpciBkaXN0L3ZpbS8kKFZJTVJURElSKQorCXRhciBjZiAtIFwKKwkJJChCSU5fRE9TKSBcCisJCXwgKGNkIGRpc3QvdmltLyQoVklNUlRESVIpOyB0YXIgeGYgLSkKKwlmaW5kIGRpc3QvdmltLyQoVklNUlRESVIpIC10eXBlIGYgLWV4ZWMgJChWSU0pIC1lIC11IG5vX3RpdGxlLnZpbSAtYyAiOnNldCB0eHx3cSIge30gXDsKKwljcCB2aW1kMzIuZXhlIGRpc3QvdmltLyQoVklNUlRESVIpL3ZpbS5leGUKKwljcCB4eGRkMzIuZXhlIGRpc3QvdmltLyQoVklNUlRESVIpL3h4ZC5leGUKKwljcCBpbnN0YWxsZDMyLmV4ZSBkaXN0L3ZpbS8kKFZJTVJURElSKS9pbnN0YWxsLmV4ZQorCWNwIHVuaW5zdGFsZDMyLmV4ZSBkaXN0L3ZpbS8kKFZJTVJURElSKS91bmluc3RhbC5leGUKKwljcCBjc2RwbWk0Yi56aXAgZGlzdC92aW0vJChWSU1SVERJUikKKwljZCBkaXN0ICYmIHppcCAtOSAtckQgLXogdmltJChWRVJTSU9OKWQzMi56aXAgdmltIDwkKENPTU1FTlRfRDMyKQorCisjIG1ha2UgMTZiaXQgRE9TCitkb3NiaW5fZDE2OiBkaXN0IG5vX3RpdGxlLnZpbSBkaXN0LyQoQ09NTUVOVF9EMTYpCisJLXJtIC1yZiBkaXN0L3ZpbSQoVkVSU0lPTilkMTYuemlwCisJLXJtIC1yZiBkaXN0L3ZpbQorCW1rZGlyIGRpc3QvdmltCisJbWtkaXIgZGlzdC92aW0vJChWSU1SVERJUikKKwl0YXIgY2YgLSBcCisJCSQoQklOX0RPUykgXAorCQl8IChjZCBkaXN0L3ZpbS8kKFZJTVJURElSKTsgdGFyIHhmIC0pCisJZmluZCBkaXN0L3ZpbS8kKFZJTVJURElSKSAtdHlwZSBmIC1leGVjICQoVklNKSAtZSAtdSBub190aXRsZS52aW0gLWMgIjpzZXQgdHh8d3EiIHt9IFw7CisJY3AgdmltZDE2LmV4ZSBkaXN0L3ZpbS8kKFZJTVJURElSKS92aW0uZXhlCisJY3AgeHhkZDE2LmV4ZSBkaXN0L3ZpbS8kKFZJTVJURElSKS94eGQuZXhlCisJY3AgaW5zdGFsbGQxNi5leGUgZGlzdC92aW0vJChWSU1SVERJUikvaW5zdGFsbC5leGUKKwljcCB1bmluc3RhbGQxNi5leGUgZGlzdC92aW0vJChWSU1SVERJUikvdW5pbnN0YWwuZXhlCisJY2QgZGlzdCAmJiB6aXAgLTkgLXJEIC16IHZpbSQoVkVSU0lPTilkMTYuemlwIHZpbSA8JChDT01NRU5UX0QxNikKKworIyBtYWtlIFdpbjMyIGd2aW0gd2l0aCBPTEUKK2Rvc2Jpbl9vbGU6IGRpc3Qgbm9fdGl0bGUudmltIGRpc3QvJChDT01NRU5UX09MRSkKKwktcm0gLXJmIGRpc3QvZ3ZpbSQoVkVSU0lPTilvbGUuemlwCisJLXJtIC1yZiBkaXN0L3ZpbQorCW1rZGlyIGRpc3QvdmltCisJbWtkaXIgZGlzdC92aW0vJChWSU1SVERJUikKKwl0YXIgY2YgLSBcCisJCSQoQklOX0RPUykgXAorCQl8IChjZCBkaXN0L3ZpbS8kKFZJTVJURElSKTsgdGFyIHhmIC0pCisJZmluZCBkaXN0L3ZpbS8kKFZJTVJURElSKSAtdHlwZSBmIC1leGVjICQoVklNKSAtZSAtdSBub190aXRsZS52aW0gLWMgIjpzZXQgdHh8d3EiIHt9IFw7CisJY3AgZ3ZpbV9vbGUuZXhlIGRpc3QvdmltLyQoVklNUlRESVIpL2d2aW0uZXhlCisJY3AgeHhkdzMyLmV4ZSBkaXN0L3ZpbS8kKFZJTVJURElSKS94eGQuZXhlCisJY3AgdmltcnVuLmV4ZSBkaXN0L3ZpbS8kKFZJTVJURElSKS92aW1ydW4uZXhlCisJY3AgaW5zdGFsbHczMi5leGUgZGlzdC92aW0vJChWSU1SVERJUikvaW5zdGFsbC5leGUKKwljcCB1bmluc3RhbHczMi5leGUgZGlzdC92aW0vJChWSU1SVERJUikvdW5pbnN0YWwuZXhlCisJY3AgZ3ZpbWV4dC5kbGwgZGlzdC92aW0vJChWSU1SVERJUikvZ3ZpbWV4dC5kbGwKKwljcCBSRUFETUVfb2xlLnR4dCBkaXN0L3ZpbS8kKFZJTVJURElSKQorCWNwIHNyYy9WaXNWaW0vVmlzVmltLmRsbCBkaXN0L3ZpbS8kKFZJTVJURElSKS9WaXNWaW0uZGxsCisJY3Agc3JjL1Zpc1ZpbS9SRUFETUVfVmlzVmltLnR4dCBkaXN0L3ZpbS8kKFZJTVJURElSKQorCWNkIGRpc3QgJiYgemlwIC05IC1yRCAteiBndmltJChWRVJTSU9OKW9sZS56aXAgdmltIDwkKENPTU1FTlRfT0xFKQorCWNwIGd2aW1fb2xlLnBkYiBkaXN0L2d2aW0kKFZFUlNJT04pb2xlLnBkYgorCisjIG1ha2UgV2luMzJzIGd2aW0KK2Rvc2Jpbl9zOiBkaXN0IG5vX3RpdGxlLnZpbSBkaXN0LyQoQ09NTUVOVF9XMzJTKQorCS1ybSAtcmYgZGlzdC9ndmltJChWRVJTSU9OKV9zLnppcAorCS1ybSAtcmYgZGlzdC92aW0KKwlta2RpciBkaXN0L3ZpbQorCW1rZGlyIGRpc3QvdmltLyQoVklNUlRESVIpCisJdGFyIGNmIC0gXAorCQkkKEJJTl9ET1MpIFwKKwkJfCAoY2QgZGlzdC92aW0vJChWSU1SVERJUik7IHRhciB4ZiAtKQorCWZpbmQgZGlzdC92aW0vJChWSU1SVERJUikgLXR5cGUgZiAtZXhlYyAkKFZJTSkgLWUgLXUgbm9fdGl0bGUudmltIC1jICI6c2V0IHR4fHdxIiB7fSBcOworCWNwIGd2aW1fdzMycy5leGUgZGlzdC92aW0vJChWSU1SVERJUikvZ3ZpbS5leGUKKwljcCB4eGRkMzIuZXhlIGRpc3QvdmltLyQoVklNUlRESVIpL3h4ZC5leGUKKwljcCBSRUFETUVfdzMycy50eHQgZGlzdC92aW0vJChWSU1SVERJUikKKwljcCBpbnN0YWxsdzMyLmV4ZSBkaXN0L3ZpbS8kKFZJTVJURElSKS9pbnN0YWxsLmV4ZQorCWNwIHVuaW5zdGFsdzMyLmV4ZSBkaXN0L3ZpbS8kKFZJTVJURElSKS91bmluc3RhbC5leGUKKwljZCBkaXN0ICYmIHppcCAtOSAtckQgLXogZ3ZpbSQoVkVSU0lPTilfcy56aXAgdmltIDwkKENPTU1FTlRfVzMyUykKKworIyBtYWtlIFdpbjMyIGxhbmcgYXJjaGl2ZQorZG9zbGFuZzogZGlzdCBwcmVwYXJlIG5vX3RpdGxlLnZpbSBkaXN0LyQoQ09NTUVOVF9MQU5HKQorCS1ybSAtcmYgZGlzdC92aW0kKFZFUlNJT04pbGFuZy56aXAKKwktcm0gLXJmIGRpc3QvdmltCisJbWtkaXIgZGlzdC92aW0KKwlta2RpciBkaXN0L3ZpbS8kKFZJTVJURElSKQorCW1rZGlyIGRpc3QvdmltLyQoVklNUlRESVIpL2xhbmcKKwljZCBzcmMgJiYgTUFLRU1PPXllcyAkKE1BS0UpIGxhbmd1YWdlcworCWZpbmQgZGlzdC92aW0vJChWSU1SVERJUikgLXR5cGUgZiAtZXhlYyAkKFZJTSkgLWUgLXUgbm9fdGl0bGUudmltIC1jICI6c2V0IHR4fHdxIiB7fSBcOworIyBBZGQgdGhlIG1lc3NhZ2UgdHJhbnNsYXRpb25zLiAgVHJpY2s6IHNraXAgamEubW8gYW5kIHVzZSBqYS5zamlzLm1vIGluc3RlYWQuCisjIFNhbWUgZm9yIGNzLm1vIC8gY3MuY3AxMjUwLm1vLCBwbC5tbyAvIHBsLmNwMTI1MC5tbywgc2subW8gLyBzay5jcDEyNTAubW8sCisjIHpoX0NOLm1vIC8gemhfQ04uY3A5MzYubW8sIHVrLm1vIC8gdWsuY3AxMjUxLm1vIGFuZCBydS5tbyAvIHJ1LmNwMTI1MS5tby4KKwlmb3IgaSBpbiAkKExBTkdfRE9TKTsgZG8gXAorCSAgICAgIGlmIHRlc3QgIiQkaSIgIT0gInNyYy9wby9qYS5tbyIgLWEgIiQkaSIgIT0gInNyYy9wby9wbC5tbyIgLWEgIiQkaSIgIT0gInNyYy9wby9jcy5tbyIgLWEgIiQkaSIgIT0gInNyYy9wby9zay5tbyIgLWEgIiQkaSIgIT0gInNyYy9wby96aF9DTi5tbyIgLWEgIiQkaSIgIT0gInNyYy9wby9ydS5tbyIgLWEgIiQkaSIgIT0gInNyYy9wby91ay5tbyI7IHRoZW4gXAorCQluPWBlY2hvICQkaSB8IHNlZCAtZSAicytzcmMvcG8vXChbLWEtekEtWjAtOV9dKlwoLlVURi04XCkqXClcKC5zamlzXCkqXCguY3AxMjUwXCkqXCguY3AxMjUxXCkqXCguY3A5MzZcKSoubW8rXDErImA7IFwKKwkJbWtkaXIgZGlzdC92aW0vJChWSU1SVERJUikvbGFuZy8kJG47IFwKKwkJbWtkaXIgZGlzdC92aW0vJChWSU1SVERJUikvbGFuZy8kJG4vTENfTUVTU0FHRVM7IFwKKwkJY3AgJCRpIGRpc3QvdmltLyQoVklNUlRESVIpL2xhbmcvJCRuL0xDX01FU1NBR0VTL3ZpbS5tbzsgXAorCSAgICAgIGZpIFwKKwkgICAgZG9uZQorCWNwIGxpYmludGwuZGxsIGRpc3QvdmltLyQoVklNUlRESVIpLworCWNkIGRpc3QgJiYgemlwIC05IC1yRCAteiB2aW0kKFZFUlNJT04pbGFuZy56aXAgdmltIDwkKENPTU1FTlRfTEFORykKKworIyBNUy1ET1Mgc291cmNlcworZG9zc3JjOiBkaXN0IG5vX3RpdGxlLnZpbSBkaXN0LyQoQ09NTUVOVF9TUkMpIHJ1bnRpbWUvZG9jL3VnYW5kYS5uc2lzLnR4dAorCS1ybSAtcmYgZGlzdC92aW0kKFZFUlNJT04pc3JjLnppcAorCS1ybSAtcmYgZGlzdC92aW0KKwlta2RpciBkaXN0L3ZpbQorCW1rZGlyIGRpc3QvdmltLyQoVklNUlRESVIpCisJdGFyIGNmIC0gXAorCQkkKFNSQ19BTEwpIFwKKwkJJChTUkNfRE9TKSBcCisJCSQoU1JDX0FNSV9ET1MpIFwKKwkJJChTUkNfRE9TX1VOSVgpIFwKKwkJcnVudGltZS9kb2MvdWdhbmRhLm5zaXMudHh0IFwKKwkJfCAoY2QgZGlzdC92aW0vJChWSU1SVERJUik7IHRhciB4ZiAtKQorCW12IGRpc3QvdmltLyQoVklNUlRESVIpL3J1bnRpbWUvKiBkaXN0L3ZpbS8kKFZJTVJURElSKQorCXJtZGlyIGRpc3QvdmltLyQoVklNUlRESVIpL3J1bnRpbWUKKwlmaW5kIGRpc3QvdmltLyQoVklNUlRESVIpIC10eXBlIGYgLWV4ZWMgJChWSU0pIC1lIC11IG5vX3RpdGxlLnZpbSAtYyAiOnNldCB0eHx3cSIge30gXDsKKwl0YXIgY2YgLSBcCisJCSQoU1JDX0RPU19CSU4pIFwKKwkJfCAoY2QgZGlzdC92aW0vJChWSU1SVERJUik7IHRhciB4ZiAtKQorCWNkIGRpc3QgJiYgemlwIC05IC1yRCAteiB2aW0kKFZFUlNJT04pc3JjLnppcCB2aW0gPCQoQ09NTUVOVF9TUkMpCisKK3J1bnRpbWUvZG9jL3VnYW5kYS5uc2lzLnR4dDogcnVudGltZS9kb2MvdWdhbmRhLnR4dAorCWNkIHJ1bnRpbWUvZG9jICYmICQoTUFLRSkgdWdhbmRhLm5zaXMudHh0CisKK29zMmJpbjogZGlzdCBub190aXRsZS52aW0gZGlzdC8kKENPTU1FTlRfT1MyKQorCS1ybSAtcmYgZGlzdC92aW0kKFZFUlNJT04pb3MyLnppcAorCS1ybSAtcmYgZGlzdC92aW0KKwlta2RpciBkaXN0L3ZpbQorCW1rZGlyIGRpc3QvdmltLyQoVklNUlRESVIpCisJdGFyIGNmIC0gXAorCQkkKEJJTl9PUzIpIFwKKwkJfCAoY2QgZGlzdC92aW0vJChWSU1SVERJUik7IHRhciB4ZiAtKQorCWZpbmQgZGlzdC92aW0vJChWSU1SVERJUikgLXR5cGUgZiAtZXhlYyAkKFZJTSkgLWUgLXUgbm9fdGl0bGUudmltIC1jICI6c2V0IHR4fHdxIiB7fSBcOworCWNwIHZpbW9zMi5leGUgZGlzdC92aW0vJChWSU1SVERJUikvdmltLmV4ZQorCWNwIHh4ZG9zMi5leGUgZGlzdC92aW0vJChWSU1SVERJUikveHhkLmV4ZQorCWNwIHRlZW9zMi5leGUgZGlzdC92aW0vJChWSU1SVERJUikvdGVlLmV4ZQorCWNwIGVteC5kbGwgZW14bGliY3MuZGxsIGRpc3QvdmltLyQoVklNUlRESVIpCisJY2QgZGlzdCAmJiB6aXAgLTkgLXJEIC16IHZpbSQoVkVSU0lPTilvczIuemlwIHZpbSA8JChDT01NRU5UX09TMikKKworaHRtbDogZGlzdCBkaXN0LyQoQ09NTUVOVF9IVE1MKQorCS1ybSAtcmYgZGlzdC92aW0kKFZFUlNJT04paHRtbC56aXAKKwljZCBydW50aW1lL2RvYyAmJiB6aXAgLTkgLXogLi4vLi4vZGlzdC92aW0kKFZFUlNJT04paHRtbC56aXAgKi5odG1sIDwuLi8uLi9kaXN0LyQoQ09NTUVOVF9IVE1MKQorCitmYXJzaTogZGlzdCBkaXN0LyQoQ09NTUVOVF9GQVJTSSkKKwktcm0gLWYgZGlzdC9mYXJzaSQoVkVSU0lPTikuemlwCisJemlwIC05IC1yRCAteiBkaXN0L2ZhcnNpJChWRVJTSU9OKS56aXAgZmFyc2kgPCBkaXN0LyQoQ09NTUVOVF9GQVJTSSkKZGlmZiAtLWdpdCBhL3J1bnRpbWUvdHV0b3IvUkVBRE1FX29zMzkwLnR4dCBiL3J1bnRpbWUvdHV0b3IvUkVBRE1FX29zMzkwLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wY2U5ZGQ4Ci0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS90dXRvci9SRUFETUVfb3MzOTAudHh0CkBAIC0wLDAgKzEsMTMwIEBACitSRUFETUVfb3NfMzkwLnR4dCBmb3IgdmVyc2lvbiA3LjJhIG9mIFZpbTogVmkgSU1wcm92ZWQuCisKK1dlbGNvbWUgdG8gdGhlIE9TLzM5MCBVbml4IHBvcnQgb2YgVklNLgorCitBVFRFTlRJT046IFRISVMgSVMgQU4gX0FMUEhBXyBWRVJTSU9OISEhCitJIGV4cGVjdCB5b3UgdG8ga25vdyBob3cgdG8gaGFuZGxlIGFscGhhIHNvZnR3YXJlIQorCitUaGlzIHBvcnQgd2FzIGRvbmUgYnkgUmFsZiBTY2hhbmRsIDxzY2hhbmRsQGRlLmlibS5jb20+LgorVGhpcyBwb3J0IGlzIG5vdCBtYWludGFpbmVkIG9yIHN1cHBvcnRlZCBieSBJQk0hIQorCisKK0ZvciB0aGUgbGlzdCBvZiBjaGFuZ2VzIHNlZSBydW50aW1lL2RvYy9vc18zOTAudHh0LgorCisKK0NvbXBpbGluZzoKKy0tLS0tLS0tLS0KKworTm90ZTogQWZ0ZXIgdGhlIGZpbGUgY29uZmlndXJlIHdhcyBjcmVhdGVkIHZpYSBhdXRvY29uZiwgaXQgaGFkIGJlZW4KKyAgICAgIGhhbmRlZGl0ZWQsIHRvIG1ha2UgdGhlIHRlc3QgZm9yIElDRUNvbm5lY3Rpb25OdW1iZXIgd29yay4KKyAgICAgIERPIE5PVCBydW4gYXV0b2NvbmYgYWdhaW4hCisKK1dpdGhvdXQgWDExOgorCitJZiB5b3UgYnVpbGQgVklNIHdpdGhvdXQgWDExIHN1cHBvcnQsIGNvbXBpbGluZyBhbmQgYnVpbGRpbmcgaXMgbmVhcmx5CitzdHJhaWdodGZvcndhcmQuIFRoZSBvbmx5IHJlc3RyaWN0aW9uIGlzLCB0aGF0IHlvdSBjYW4ndCBjYWxsIG1ha2UgZnJvbSB0aGUKK1ZJTSB0b3BsZXZlbCBkaXJlY3RvcnkuIENoYW5nZSB0byB0aGUgc3JjIGRpcmVjdG9yeSBmaXJzdCBhbmQgY2FsbCBtYWtlIGZyb20KK3RoZXJlLiBIZXJlIGlzIGEgd2hhdCB0byBkbzoKKworICAgICMgRG9uJ3QgdXNlIGM4OSEKKyAgICAjIE1ha2UgYWRkaXRpb25hbCBzeW1ib2xzIHZpc2libGUuCisgICAgIyBBbGxvdyBpbnRlcm1peGluZyBvZiBjb21waWxlciBvcHRpb25zIGFuZCBmaWxlcy4KKworICAgICQgZXhwb3J0IENDPWNjCisgICAgJCBleHBvcnQgQ0ZMQUdTPS1EX0FMTF9TT1VSQ0UKKyAgICAkIGV4cG9ydCBfQ0NfQ0NNT0RFPTEKKyAgICAkLi9jb25maWd1cmUgLS1lbmFibGUtbWF4LWZlYXR1cmVzIC0td2l0aG91dC14IC0tZW5hYmxlLWd1aT1ubworICAgICQgY2Qgc3JjCisgICAgJCBtYWtlCisgICAgJCBtYWtlIHRlc3QKKworICAgICAgTm90ZTogVGVzdCAyOCB3aWxsIGJlIHJlcG9ydGVkIGFzIGZhaWxlZC4gVGhpcyBpcyBiZWNhdXNlIGRpZmYgY2FuJ3QKKwkgICAgY29tcGFyZSBmaWxlcyBjb250YWluaW5nICdcMCcgY2hhcmFjdGVycy4gVGVzdCAxMSB3aWxsIGZhaWwgaWYgeW91CisJICAgIGRvbid0IGhhdmUgZ3ppcC4KKworICAgICQgbWFrZSBpbnN0YWxsCisKKworV2l0aCBYMTE6CisKK1RoZXJlIGFyZSB0d28gd2F5cyBmb3IgYnVpbGRpbmcgVklNIHdpdGggWDExIHN1cHBvcnQuIFRoZSBmaXJzdCB3YXkgaXMgc2ltcGxlCithbmQgcmVzdWx0cyBpbiBhIGJpZyBleGVjdXRhYmxlICh+MTMgTWIpLCB0aGUgc2Vjb25kIG5lZWRzIGEgZmV3IGFkZGl0aW9uYWwKK3N0ZXBzIGFuZCByZXN1bHRzIGluIGEgbXVjaCBzbWFsbGVyIGV4ZWN1dGFibGUgKH40LjUgTWIpLiBUaGlzIGV4YW1wbGVzIGFzc3VtZQoreW91IHdhbnQgTW90aWYuCisKKyAgVGhlIGVhc3kgd2F5OgorICAgICQgZXhwb3J0IENDPWNjCisgICAgJCBleHBvcnQgQ0ZMQUdTPSItRF9BTExfU09VUkNFIC1XIGMsZGxsIgorICAgICQgZXhwb3J0IExERkxBR1M9Ii1XIGwsZGxsIgorICAgICQgZXhwb3J0IF9DQ19DQ01PREU9MQorICAgICQgLi9jb25maWd1cmUgLS1lbmFibGUtbWF4LWZlYXR1cmVzIC0tZW5hYmxlLWd1aT1tb3RpZgorICAgICQgY2Qgc3JjCisgICAgJCBtYWtlCisKKyAgICBXaXRoIHRoaXMgVklNIGlzIGxpbmtlZCBzdGF0aWNhbGx5IHdpdGggdGhlIFgxMSBsaWJyYXJpZXMuCisKKyAgVGhlIHNtYXJ0ZXIgd2F5OgorICAgIE1ha2UgVklNIGFzIGRlc2NyaWJlZCBhYm92ZS4gVGhlbiBjcmVhdGUgYSBmaWxlIG5hbWVkICdsaW5rLnNlZCcgd2l0aCB0aGUKKyAgICBmb2xsb3dpbmcgY29udGVuc2U6CisKKwlzLy1sWGV4dCAgKi8vZworCXMvLWxYbXUgICovL2cKKwlzLy1sWG0JKi9cL3VzclwvbGliXC9YbS54IC9nCisJcy8tbFgxMSAgKi9cL3VzclwvbGliXC9YMTEueCAvZworCXMvLWxYdAkqLy9nCisJcy8tbFNNCSovXC91c3JcL2xpYlwvU00ueCAvZworCXMvLWxJQ0UgICovXC91c3JcL2xpYlwvSUNFLnggL2cKKworICAgIFRoZW4gZG86CisgICAgJCBybSB2aW0KKyAgICAkIG1ha2UKKworICAgIE5vdyBWaW0gaXMgbGlua2VkIHdpdGggdGhlIFgxMS1ETExzLgorCisgICAgU2VlIHRoZSBNYWtlZmlsZSBhbmQgdGhlIGZpbGUgbGluay5zaCBvbiBob3cgbGluay5zZWQgaXMgdXNlZC4KKworCitIaW50OgorLS0tLS0KK1VzZSB0aGUgb25saW5lIGhlbHAhIChTZWUgd2Vha25lc3NlcyBiZWxvdy4pCisKK0V4YW1wbGU6CitFbnRlciAnOmhlbHAgc3ludGF4JyBhbmQgdGhlbiBwcmVzcyA8VEFCPiBzZXZlcmFsIHRpbWVzLCB5b3Ugd2lsbCBzd2l0Y2gKK3Rocm91Z2ggYWxsIGhlbHAgaXRlbXMgY29udGFpbmluZyAnc3ludGF4Jy4gUHJlc3MgPEVOVEVSPiBvbiB0aGUgb25lIHlvdSBhcmUKK2ludGVyZXN0ZWQgYXQuIE9yIHByZXNzIDxDdHJsLUQ+IGFuZCB5b3Ugd2lsbCBnZXQgYSBsaXN0IG9mIGFsbCBpdGVtcyBwcmludGVkCit0aGF0IGNvbnRhaW4gJ3N5bnRheCcuCisKK1RoZSBoZWxwZmlsZXMgY29udGFpbnMgY3Jvc3MtcmVmZXJlbmNlcy4gTGlua3MgYXJlIGJldHdlZW4gJ3wnLiBQb3NpdGlvbiB0aGUKK2N1cnNvciBvbiB0aGVtIGFuZCBwcmVzcyA8Q3RybC1dPiB0byBmb2xsb3cgdGhpcyBsaW5rLiBVc2UgPEN0cmwtVD4gdG8ganVtcAorYmFjay4KKworS25vd24gd2Vha25lc3NlczoKKy0tLS0tLS0tLS0tLS0tLS0tCisKKy0gWW91IGNhbid0IGNhbGwgbWFrZSBmcm9tIHRoZSB0b3BsZXZlbCBkaXJlY3RvcnksIHlvdSBoYXZlIHRvIGRvIGEgJ2NkIHNyYycKKyAgZmlyc3QuICBJZiB5b3UgZG8gaXQsIG1ha2Ugd2lsbCBjYWxsIGNvbmZpZ3VyZSBhZ2Fpbi4gSSBkb24ndCBrbm93IHdoeSBhbmQKKyAgZGlkbid0IGludmVzdGlnYXRlIGl0LCB0aGVyZSB3ZXJlIG1vcmUgaW1wb3J0YW50IHRoaW5ncyB0byBkby4gSWYgeW91IGNhbgorICBtYWtlIGl0IHdvcmsgZHJvcCBtZSBhIG5vdGUuCisKKy0gVGhlIGRvY3VtZW50YXRpb24gd2FzIG5vdCB1cGRhdGVkIGZvciB0aGlzIGFscGhhIHJlbGVhc2UuIEl0IGNvbnRhaW5zIGxvdCBvZgorICBBU0NJSSBkZXBlbmRlbmNpZXMsIGVzcGVjaWFsbHkgaW4gZXhhbXBsZXMuCisKKy0gRGlncmFwaHMgYXJlIGRlcGVuZGVudCBvbiBjb2RlIHBhZ2UgMTA0Ny4gRGlncmFwaHMgYXJlIHVzZWQgdG8gZW50ZXIKKyAgY2hhcmFjdGVycyB0aGF0IG5vcm1hbGx5IGNhbm5vdCBiZSBlbnRlcmVkIGJ5IGFuIG9yZGluYXJ5IGtleWJvYXJkLgorICBTZWUgIjpoZWxwIGRpZ3JhcGhzIi4KKworLSBVc2luZyAnZ2EnIHRvIHNob3cgdGhlIGNvZGUgb2YgdGhlIGNoYXJhY3RlciB1bmRlciB0aGUgY3Vyc29yIHNob3dzIHRoZQorICBjb3JyZWN0IGRlYy9oZXgvb2N0IHZhbHVlcywgYnV0IHRoZSBvdGhlciBpbmZvcm1hdGlvbnMgbWlnaHQgYmUgbWlzc2luZyBvcgorICB3cm9uZy4KKworLSBUaGUgc2VkIHN5bnRheCBmaWxlIGRvZXNuJ3Qgd29yaywgaXQgaXMgQVNDSUkgZGVwZW5kZW50LgorCitCdWdzOgorLS0tLS0KK0lmIHlvdSBmaW5kIGEgYnVnIHBsZWFzZSBpbmZvcm0gbWUgKHNjaGFuZGxAZGUuaWJtLmNvbSksIGRvbid0IGRpc3R1cmIgQnJhbQorTW9vbGVuYWFyLiBJdCdzIG1vc3QgbGlrZWx5IGEgYnVnIEkgaW50cm9kdWNlZCBkdXJpbmcgcG9ydGluZyBvciBzb21lIEFTQ0lJCitkZXBlbmRlbmN5IEkgZGlkbid0IG5vdGljZS4KKworRmVlZGJhY2s6CistLS0tLS0tLS0KK0ZlZWRiYWNrIHdlbGNvbWUhIEp1c3QgZHJvcCBtZSBhIG5vdGUuCmRpZmYgLS1naXQgYS9ydW50aW1lL3R1dG9yL3J1bnRpbWUvbWFrZW1lbnUudmltIGIvcnVudGltZS90dXRvci9ydW50aW1lL21ha2VtZW51LnZpbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZmEzNGU1Ci0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS90dXRvci9ydW50aW1lL21ha2VtZW51LnZpbQpAQCAtMCwwICsxLDU4MCBAQAorIiBTY3JpcHQgdG8gZGVmaW5lIHRoZSBzeW50YXggbWVudSBpbiBzeW5tZW51LnZpbQorIiBNYWludGFpbmVyOglCcmFtIE1vb2xlbmFhciA8QnJhbUB2aW0ub3JnPgorIiBMYXN0IENoYW5nZToJMjAwOCBKdW4gMjQKKworIiBUaGlzIGlzIHVzZWQgYnkgIm1ha2UgbWVudSIgaW4gdGhlIHNyYyBkaXJlY3RvcnkuCitlZGl0IDxzZmlsZT46cDpoL3N5bm1lbnUudmltCisKKy9UaGUgU3RhcnQgT2YgVGhlIFN5bnRheCBNZW51LysxLC9UaGUgRW5kIE9mIFRoZSBTeW50YXggTWVudS8tMWQKK2xldCBzOmxudW0gPSBsaW5lKCIuIikgLSAxCitjYWxsIGFwcGVuZChzOmxudW0sICIiKQorbGV0IHM6bG51bSA9IHM6bG51bSArIDEKKworIiBVc2UgdGhlIFN5bk1lbnUgY29tbWFuZCBhbmQgZnVuY3Rpb24gdG8gZGVmaW5lIGFsbCBtZW51IGVudHJpZXMKK2NvbW1hbmQhIC1uYXJncz0qIFN5bk1lbnUgY2FsbCA8U0lEPlN5big8cS1hcmdzPikKKworbGV0IHM6Y3VyX21lbnVfbmFtZSA9ICIiCitsZXQgczpjdXJfbWVudV9uciA9IDAKK2xldCBzOmN1cl9tZW51X2l0ZW0gPSAwCitsZXQgczpjdXJfbWVudV9jaGFyID0gIiIKKworZnVuISA8U0lEPlN5bihhcmcpCisgICIgaXNvbGF0ZSBtZW51IG5hbWU6IHVudGlsIHRoZSBmaXJzdCBkb3QKKyAgbGV0IGkgPSBtYXRjaChhOmFyZywgJ1wuJykKKyAgbGV0IG1lbnVfbmFtZSA9IHN0cnBhcnQoYTphcmcsIDAsIGkpCisgIGxldCByID0gc3RycGFydChhOmFyZywgaSArIDEsIDk5OSkKKyAgIiBpc29sYXRlIHN1Ym1lbnUgbmFtZTogdW50aWwgdGhlIGNvbG9uCisgIGxldCBpID0gbWF0Y2gociwgIjoiKQorICBsZXQgc3VibWVudV9uYW1lID0gc3RycGFydChyLCAwLCBpKQorICAiIGFmdGVyIHRoZSBjb2xvbiBpcyB0aGUgc3ludGF4IG5hbWUKKyAgbGV0IHN5bnRheF9uYW1lID0gc3RycGFydChyLCBpICsgMSwgOTk5KQorCisgIGlmIHM6Y3VyX21lbnVfbmFtZSAhPSBtZW51X25hbWUKKyAgICBsZXQgczpjdXJfbWVudV9uYW1lID0gbWVudV9uYW1lCisgICAgbGV0IHM6Y3VyX21lbnVfbnIgPSBzOmN1cl9tZW51X25yICsgMTAKKyAgICBsZXQgczpjdXJfbWVudV9pdGVtID0gMTAwCisgICAgbGV0IHM6Y3VyX21lbnVfY2hhciA9IHN1Ym1lbnVfbmFtZVswXQorICBlbHNlCisgICAgIiBXaGVuIHN0YXJ0aW5nIGEgbmV3IGxldHRlciwgaW5zZXJ0IGEgbWVudSBzZXBhcmF0b3IuCisgICAgbGV0IGMgPSBzdWJtZW51X25hbWVbMF0KKyAgICBpZiBjICE9IHM6Y3VyX21lbnVfY2hhcgorICAgICAgZXhlICdhbiA1MC4nIC4gczpjdXJfbWVudV9uciAuICcuJyAuIHM6Y3VyX21lbnVfaXRlbSAuICcgJlN5bnRheC4nIC4gbWVudV9uYW1lIC4gIi4tIiAuIGMgLiAnLSA8bnVsPicKKyAgICAgIGxldCBzOmN1cl9tZW51X2l0ZW0gPSBzOmN1cl9tZW51X2l0ZW0gKyAxMAorICAgICAgbGV0IHM6Y3VyX21lbnVfY2hhciA9IGMKKyAgICBlbmRpZgorICBlbmRpZgorICBjYWxsIGFwcGVuZChzOmxudW0sICdhbiA1MC4nIC4gczpjdXJfbWVudV9uciAuICcuJyAuIHM6Y3VyX21lbnVfaXRlbSAuICcgJlN5bnRheC4nIC4gbWVudV9uYW1lIC4gIi4iIC4gc3VibWVudV9uYW1lIC4gJyA6Y2FsIFNldFN5bigiJyAuIHN5bnRheF9uYW1lIC4gJyIpPENSPicpCisgIGxldCBzOmN1cl9tZW51X2l0ZW0gPSBzOmN1cl9tZW51X2l0ZW0gKyAxMAorICBsZXQgczpsbnVtID0gczpsbnVtICsgMQorZW5kZnVuCisKK1N5bk1lbnUgQUIuQTJwc1wgY29uZmlnOmEycHMKK1N5bk1lbnUgQUIuQWFwOmFhcAorU3luTWVudSBBQi5BQkFQLzQ6YWJhcAorU3luTWVudSBBQi5BYmFxdXM6YWJhcXVzCitTeW5NZW51IEFCLkFCQ1wgbXVzaWNcIG5vdGF0aW9uOmFiYworU3luTWVudSBBQi5BQkVMOmFiZWwKK1N5bk1lbnUgQUIuQWNlREJcIG1vZGVsOmFjZWRiCitTeW5NZW51IEFCLkFkYTphZGEKK1N5bk1lbnUgQUIuQWZMZXg6YWZsZXgKK1N5bk1lbnUgQUIuQUxTQVwgY29uZmlnOmFsc2Fjb25mCitTeW5NZW51IEFCLkFsdGVyYVwgQUhETDphaGRsCitTeW5NZW51IEFCLkFtaWdhXCBET1M6YW1pZ2EKK1N5bk1lbnUgQUIuQU1QTDphbXBsCitTeW5NZW51IEFCLkFudFwgYnVpbGRcIGZpbGU6YW50CitTeW5NZW51IEFCLkFOVExSOmFudGxyCitTeW5NZW51IEFCLkFwYWNoZVwgY29uZmlnOmFwYWNoZQorU3luTWVudSBBQi5BcGFjaGUtc3R5bGVcIGNvbmZpZzphcGFjaGVzdHlsZQorU3luTWVudSBBQi5BcHBsaXhcIEVMRjplbGYKK1N5bk1lbnUgQUIuQXJjXCBNYWNyb1wgTGFuZ3VhZ2U6YW1sCitTeW5NZW51IEFCLkFyY2hcIGludmVudG9yeTphcmNoCitTeW5NZW51IEFCLkFSVDphcnQKK1N5bk1lbnUgQUIuQVNQXCB3aXRoXCBWQlNjcmlwdDphc3B2YnMKK1N5bk1lbnUgQUIuQVNQXCB3aXRoXCBQZXJsOmFzcHBlcmwKK1N5bk1lbnUgQUIuQXNzZW1ibHkuNjgweDA6YXNtNjhrCitTeW5NZW51IEFCLkFzc2VtYmx5LkZsYXQ6ZmFzbQorU3luTWVudSBBQi5Bc3NlbWJseS5HTlU6YXNtCitTeW5NZW51IEFCLkFzc2VtYmx5LkdOVVwgSC04MzAwOmFzbWg4MzAwCitTeW5NZW51IEFCLkFzc2VtYmx5LkludGVsXCBJQS02NDppYTY0CitTeW5NZW51IEFCLkFzc2VtYmx5Lk1pY3Jvc29mdDptYXNtCitTeW5NZW51IEFCLkFzc2VtYmx5Lk5ldHdpZGU6bmFzbQorU3luTWVudSBBQi5Bc3NlbWJseS5QSUM6cGljCitTeW5NZW51IEFCLkFzc2VtYmx5LlR1cmJvOnRhc20KK1N5bk1lbnUgQUIuQXNzZW1ibHkuVkFYXCBNYWNyb1wgQXNzZW1ibHk6dm1hc20KK1N5bk1lbnUgQUIuQXNzZW1ibHkuWi04MDp6OGEKK1N5bk1lbnUgQUIuQXNzZW1ibHkueGFcIDY1MDJcIGNyb3NzXCBhc3NlbWJlcjphNjUKK1N5bk1lbnUgQUIuQVNOXC4xOmFzbgorU3luTWVudSBBQi5Bc3Rlcmlza1wgY29uZmlnOmFzdGVyaXNrCitTeW5NZW51IEFCLkFzdGVyaXNrXCB2b2ljZW1haWxcIGNvbmZpZzphc3Rlcmlza3ZtCitTeW5NZW51IEFCLkF0bGFzOmF0bGFzCitTeW5NZW51IEFCLkF1dG9Ib3RLZXk6YXV0b2hvdGtleQorU3luTWVudSBBQi5BdXRvSXQ6YXV0b2l0CitTeW5NZW51IEFCLkF1dG9tYWtlOmF1dG9tYWtlCitTeW5NZW51IEFCLkF2ZW51ZTphdmUKK1N5bk1lbnUgQUIuQXdrOmF3aworU3luTWVudSBBQi5BWWFjYzpheWFjYworCitTeW5NZW51IEFCLkI6YgorU3luTWVudSBBQi5CYWFuOmJhYW4KK1N5bk1lbnUgQUIuQmFzaWMuRnJlZUJhc2ljOmZyZWViYXNpYworU3luTWVudSBBQi5CYXNpYy5JQmFzaWM6aWJhc2ljCitTeW5NZW51IEFCLkJhc2ljLlFCYXNpYzpiYXNpYworU3luTWVudSBBQi5CYXNpYy5WaXN1YWxcIEJhc2ljOnZiCitTeW5NZW51IEFCLkJhemFhclwgY29tbWl0XCBmaWxlOmJ6cgorU3luTWVudSBBQi5CQ1wgY2FsY3VsYXRvcjpiYworU3luTWVudSBBQi5CREZcIGZvbnQ6YmRmCitTeW5NZW51IEFCLkJpYlRlWC5CaWJsaW9ncmFwaHlcIGRhdGFiYXNlOmJpYgorU3luTWVudSBBQi5CaWJUZVguQmlibGlvZ3JhcGh5XCBTdHlsZTpic3QKK1N5bk1lbnUgQUIuQklORC5CSU5EXCBjb25maWc6bmFtZWQKK1N5bk1lbnUgQUIuQklORC5CSU5EXCB6b25lOmJpbmR6b25lCitTeW5NZW51IEFCLkJsYW5rOmJsYW5rCisKK1N5bk1lbnUgQy5DOmMKK1N5bk1lbnUgQy5DKys6Y3BwCitTeW5NZW51IEMuQyM6Y3MKK1N5bk1lbnUgQy5DYWxlbmRhcjpjYWxlbmRhcgorU3luTWVudSBDLkNhc2NhZGluZ1wgU3R5bGVcIFNoZWV0czpjc3MKK1N5bk1lbnUgQy5DREw6Y2RsCitTeW5NZW51IEMuQ2RyZGFvXCBUT0M6Y2RydG9jCitTeW5NZW51IEMuQ2RyZGFvXCBjb25maWc6Y2RyZGFvY29uZgorU3luTWVudSBDLkNlbnR1cnlcIFRlcm06Y3Rlcm0KK1N5bk1lbnUgQy5DSFwgc2NyaXB0OmNoCitTeW5NZW51IEMuQ2hhbmdlTG9nOmNoYW5nZWxvZworU3luTWVudSBDLkNoZWV0YWhcIHRlbXBsYXRlOmNoZWV0YWgKK1N5bk1lbnUgQy5DSElMTDpjaGlsbAorU3luTWVudSBDLkNob3JkUHJvOmNob3JkcHJvCitTeW5NZW51IEMuQ2xlYW46Y2xlYW4KK1N5bk1lbnUgQy5DbGV2ZXI6Y2wKK1N5bk1lbnUgQy5DbGlwcGVyOmNsaXBwZXIKK1N5bk1lbnUgQy5DbWFrZTpjbWFrZQorU3luTWVudSBDLkNtdXNyYzpjbXVzcmMKK1N5bk1lbnUgQy5Db2JvbDpjb2JvbAorU3luTWVudSBDLkNvY28vUjpjb2NvCitTeW5NZW51IEMuQ29sZFwgRnVzaW9uOmNmCitTeW5NZW51IEMuQ29uYXJ5XCBSZWNpcGU6Y29uYXJ5cmVjaXBlCitTeW5NZW51IEMuQ29uZmlnLkNmZ1wgQ29uZmlnXCBmaWxlOmNmZworU3luTWVudSBDLkNvbmZpZy5Db25maWd1cmVcLmluOmNvbmZpZworU3luTWVudSBDLkNvbmZpZy5HZW5lcmljXCBDb25maWdcIGZpbGU6Y29uZgorU3luTWVudSBDLkNSTTExNDpjcm0KK1N5bk1lbnUgQy5Dcm9udGFiOmNyb250YWIKK1N5bk1lbnUgQy5DU1A6Y3NwCitTeW5NZW51IEMuQ3RybC1IOmN0cmxoCitTeW5NZW51IEMuQ1VEQTpjdWRhCitTeW5NZW51IEMuQ1VQTC5DVVBMOmN1cGwKK1N5bk1lbnUgQy5DVVBMLlNpbXVsYXRpb246Y3VwbHNpbQorU3luTWVudSBDLkNWUy5jb21taXRcIGZpbGU6Y3ZzCitTeW5NZW51IEMuQ1ZTLmN2c3JjOmN2c3JjCitTeW5NZW51IEMuQ3luKys6Y3lucHAKK1N5bk1lbnUgQy5DeW5saWI6Y3lubGliCisKK1N5bk1lbnUgREUuRDpkCitTeW5NZW51IERFLkRlYmlhbi5EZWJpYW5cIENoYW5nZUxvZzpkZWJjaGFuZ2Vsb2cKK1N5bk1lbnUgREUuRGViaWFuLkRlYmlhblwgQ29udHJvbDpkZWJjb250cm9sCitTeW5NZW51IERFLkRlYmlhbi5EZWJpYW5cIFNvdXJjZXNcLmxpc3Q6ZGVic291cmNlcworU3luTWVudSBERS5EZW55aG9zdHM6ZGVueWhvc3RzCitTeW5NZW51IERFLkRlc2t0b3A6ZGVza3RvcAorU3luTWVudSBERS5EaWN0XCBjb25maWc6ZGljdGNvbmYKK1N5bk1lbnUgREUuRGljdGRcIGNvbmZpZzpkaWN0ZGNvbmYKK1N5bk1lbnUgREUuRGlmZjpkaWZmCitTeW5NZW51IERFLkRpZ2l0YWxcIENvbW1hbmRcIExhbmc6ZGNsCitTeW5NZW51IERFLkRpcmNvbG9yczpkaXJjb2xvcnMKK1N5bk1lbnUgREUuRGphbmdvXCB0ZW1wbGF0ZTpkamFuZ28KK1N5bk1lbnUgREUuRE5TL0JJTkRcIHpvbmU6YmluZHpvbmUKK1N5bk1lbnUgREUuRG9jQm9vay5hdXRvLWRldGVjdDpkb2NiaworU3luTWVudSBERS5Eb2NCb29rLlNHTUw6ZG9jYmtzZ21sCitTeW5NZW51IERFLkRvY0Jvb2suWE1MOmRvY2JreG1sCitTeW5NZW51IERFLkRvdDpkb3QKK1N5bk1lbnUgREUuRG94eWdlbi5DXCB3aXRoXCBkb3h5Z2VuOmMuZG94eWdlbgorU3luTWVudSBERS5Eb3h5Z2VuLkMrK1wgd2l0aFwgZG94eWdlbjpjcHAuZG94eWdlbgorU3luTWVudSBERS5Eb3h5Z2VuLklETFwgd2l0aFwgZG94eWdlbjppZGwuZG94eWdlbgorU3luTWVudSBERS5Eb3h5Z2VuLkphdmFcIHdpdGhcIGRveHlnZW46amF2YS5kb3h5Z2VuCitTeW5NZW51IERFLkRyYWN1bGE6ZHJhY3VsYQorU3luTWVudSBERS5EU1NTTDpkc2wKK1N5bk1lbnUgREUuRFREOmR0ZAorU3luTWVudSBERS5EVE1MXCAoWm9wZSk6ZHRtbAorU3luTWVudSBERS5EVHJhY2U6ZHRyYWNlCitTeW5NZW51IERFLkR5bGFuLkR5bGFuOmR5bGFuCitTeW5NZW51IERFLkR5bGFuLkR5bGFuXCBpbnRlcmZhY2U6ZHlsYW5pbnRyCitTeW5NZW51IERFLkR5bGFuLkR5bGFuXCBsaWQ6ZHlsYW5saWQKKworU3luTWVudSBERS5FRElGOmVkaWYKK1N5bk1lbnUgREUuRWlmZmVsOmVpZmZlbAorU3luTWVudSBERS5FbGlua3NcIGNvbmZpZzplbGlua3MKK1N5bk1lbnUgREUuRWxtXCBmaWx0ZXJcIHJ1bGVzOmVsbWZpbHQKK1N5bk1lbnUgREUuRW1iZWRpeFwgQ29tcG9uZW50XCBEZXNjcmlwdGlvbjplY2QKK1N5bk1lbnUgREUuRVJpY3Nzb25cIExBTkd1YWdlOmVybGFuZworU3luTWVudSBERS5FU01UUFwgcmM6ZXNtdHByYworU3luTWVudSBERS5FU1FMLUM6ZXNxbGMKK1N5bk1lbnUgREUuRXNzYmFzZVwgc2NyaXB0OmNzYworU3luTWVudSBERS5Fc3RlcmVsOmVzdGVyZWwKK1N5bk1lbnUgREUuRXRlcm1cIGNvbmZpZzpldGVybQorU3luTWVudSBERS5Fdmlld3M6ZXZpZXdzCitTeW5NZW51IERFLkV4aW1cIGNvbmY6ZXhpbQorU3luTWVudSBERS5FeHBlY3Q6ZXhwZWN0CitTeW5NZW51IERFLkV4cG9ydHM6ZXhwb3J0cworCitTeW5NZW51IEZHLkZldGNobWFpbDpmZXRjaG1haWwKK1N5bk1lbnUgRkcuRmxleFdpa2k6ZmxleHdpa2kKK1N5bk1lbnUgRkcuRm9jdXNcIEV4ZWN1dGFibGU6Zm9jZXhlYworU3luTWVudSBGRy5Gb2N1c1wgTWFzdGVyOm1hc3RlcgorU3luTWVudSBGRy5GT1JNOmZvcm0KK1N5bk1lbnUgRkcuRm9ydGg6Zm9ydGgKK1N5bk1lbnUgRkcuRm9ydHJhbjpmb3J0cmFuCitTeW5NZW51IEZHLkZveFBybzpmb3hwcm8KK1N5bk1lbnUgRkcuRnJhbWVTY3JpcHQ6ZnJhbWVzY3JpcHQKK1N5bk1lbnUgRkcuRnN0YWI6ZnN0YWIKK1N5bk1lbnUgRkcuRnZ3bS5GdndtXCBjb25maWd1cmF0aW9uOmZ2d20xCitTeW5NZW51IEZHLkZ2d20uRnZ3bTJcIGNvbmZpZ3VyYXRpb246ZnZ3bTIKK1N5bk1lbnUgRkcuRnZ3bS5GdndtMlwgY29uZmlndXJhdGlvblwgd2l0aFwgTTQ6ZnZ3bTJtNAorCitTeW5NZW51IEZHLkdEQlwgY29tbWFuZFwgZmlsZTpnZGIKK1N5bk1lbnUgRkcuR0RNTzpnZG1vCitTeW5NZW51IEZHLkdlZGNvbTpnZWRjb20KK1N5bk1lbnUgRkcuR2l0Lk91dHB1dDpnaXQKK1N5bk1lbnUgRkcuR2l0LkNvbW1pdDpnaXRjb21taXQKK1N5bk1lbnUgRkcuR2l0LkNvbmZpZzpnaXRjb25maWcKK1N5bk1lbnUgRkcuR2l0LlJlYmFzZTpnaXRyZWJhc2UKK1N5bk1lbnUgRkcuR2l0LlNlbmRcIEVtYWlsOmdpdHNlbmRlbWFpbAorU3luTWVudSBGRy5Ha3JlbGxtcmM6Z2tyZWxsbXJjCitTeW5NZW51IEZHLkdQOmdwCitTeW5NZW51IEZHLkdQRzpncGcKK1N5bk1lbnUgRkcuR3JvdXBcIGZpbGU6Z3JvdXAKK1N5bk1lbnUgRkcuR3J1YjpncnViCitTeW5NZW51IEZHLkdOVVwgU2VydmVyXCBQYWdlczpnc3AKK1N5bk1lbnUgRkcuR05VcGxvdDpnbnVwbG90CitTeW5NZW51IEZHLkdyQURTXCBzY3JpcHRzOmdyYWRzCitTeW5NZW51IEZHLkdyZXRsOmdyZXRsCitTeW5NZW51IEZHLkdyb2ZmOmdyb2ZmCitTeW5NZW51IEZHLkdyb292eTpncm9vdnkKK1N5bk1lbnUgRkcuR1RLcmM6Z3RrcmMKKworU3luTWVudSBISUpLLkhhbXN0ZXI6aGFtc3RlcgorU3luTWVudSBISUpLLkhhc2tlbGwuSGFza2VsbDpoYXNrZWxsCitTeW5NZW51IEhJSksuSGFza2VsbC5IYXNrZWxsLWMyaHM6Y2hhc2tlbGwKK1N5bk1lbnUgSElKSy5IYXNrZWxsLkhhc2tlbGwtbGl0ZXJhdGU6bGhhc2tlbGwKK1N5bk1lbnUgSElKSy5IQVNURTpoYXN0ZQorU3luTWVudSBISUpLLkhlcmN1bGVzOmhlcmN1bGVzCitTeW5NZW51IEhJSksuSGV4XCBkdW1wLlhYRDp4eGQKK1N5bk1lbnUgSElKSy5IZXhcIGR1bXAuSW50ZWxcIE1DUzUxOmhleAorU3luTWVudSBISUpLLkhUTUwuSFRNTDpodG1sCitTeW5NZW51IEhJSksuSFRNTC5IVE1MXCB3aXRoXCBNNDpodG1sbTQKK1N5bk1lbnUgSElKSy5IVE1MLkhUTUxcIHdpdGhcIFJ1YnlcIChlUnVieSk6ZXJ1YnkKK1N5bk1lbnUgSElKSy5IVE1MLkNoZWV0YWhcIEhUTUxcIHRlbXBsYXRlOmh0bWxjaGVldGFoCitTeW5NZW51IEhJSksuSFRNTC5EamFuZ29cIEhUTUxcIHRlbXBsYXRlOmh0bWxkamFuZ28KK1N5bk1lbnUgSElKSy5IVE1MLkhUTUwvT1M6aHRtbG9zCitTeW5NZW51IEhJSksuSFRNTC5YSFRNTDp4aHRtbAorU3luTWVudSBISUpLLkhvc3RcLmNvbmY6aG9zdGNvbmYKK1N5bk1lbnUgSElKSy5IeXBlclwgQnVpbGRlcjpoYgorU3luTWVudSBISUpLLkljZXdtXCBtZW51OmljZW1lbnUKK1N5bk1lbnUgSElKSy5JY29uOmljb24KK1N5bk1lbnUgSElKSy5JRExcR2VuZXJpY1wgSURMOmlkbAorU3luTWVudSBISUpLLklETFxNaWNyb3NvZnRcIElETDptc2lkbAorU3luTWVudSBISUpLLkluZGVudFwgcHJvZmlsZTppbmRlbnQKK1N5bk1lbnUgSElKSy5JbmZvcm06aW5mb3JtCitTeW5NZW51IEhJSksuSW5mb3JtaXhcIDRHTDpmZ2wKK1N5bk1lbnUgSElKSy5Jbml0bmc6aW5pdG5nCitTeW5NZW51IEhJSksuSW5pdHRhYjppbml0dGFiCitTeW5NZW51IEhJSksuSW5ub1wgc2V0dXA6aXNzCitTeW5NZW51IEhJSksuSW5zdGFsbFNoaWVsZFwgc2NyaXB0OmlzaGQKK1N5bk1lbnUgSElKSy5JbnRlcmFjdGl2ZVwgRGF0YVwgTGFuZzppZGxhbmcKK1N5bk1lbnUgSElKSy5JUGZpbHRlcjppcGZpbHRlcgorU3luTWVudSBISUpLLkpBTDpqYWwKK1N5bk1lbnUgSElKSy5KQU06amFtCitTeW5NZW51IEhJSksuSmFyZ29uOmphcmdvbgorU3luTWVudSBISUpLLkphdmEuSmF2YTpqYXZhCitTeW5NZW51IEhJSksuSmF2YS5KYXZhQ0M6amF2YWNjCitTeW5NZW51IEhJSksuSmF2YS5KYXZhXCBTZXJ2ZXJcIFBhZ2VzOmpzcAorU3luTWVudSBISUpLLkphdmEuSmF2YVwgUHJvcGVydGllczpqcHJvcGVydGllcworU3luTWVudSBISUpLLkphdmFTY3JpcHQ6amF2YXNjcmlwdAorU3luTWVudSBISUpLLkplc3M6amVzcworU3luTWVudSBISUpLLkpncmFwaDpqZ3JhcGgKK1N5bk1lbnUgSElKSy5LY29uZmlnOmtjb25maWcKK1N5bk1lbnUgSElKSy5LREVcIHNjcmlwdDprc2NyaXB0CitTeW5NZW51IEhJSksuS2ltd2l0dSsrOmt3dAorU3luTWVudSBISUpLLktpeFRhcnQ6a2l4CisKK1N5bk1lbnUgTC1NYS5MYWNlOmxhY2UKK1N5bk1lbnUgTC1NYS5MYW1kYVByb2xvZzpscHJvbG9nCitTeW5NZW51IEwtTWEuTGF0dGU6bGF0dGUKK1N5bk1lbnUgTC1NYS5MZFwgc2NyaXB0OmxkCitTeW5NZW51IEwtTWEuTERBUC5MRElGOmxkaWYKK1N5bk1lbnUgTC1NYS5MREFQLkNvbmZpZ3VyYXRpb246bGRhcGNvbmYKK1N5bk1lbnUgTC1NYS5MZXg6bGV4CitTeW5NZW51IEwtTWEuTEZUUFwgY29uZmlnOmxmdHAKK1N5bk1lbnUgTC1NYS5MaWJhbzpsaWJhbworU3luTWVudSBMLU1hLkxpZmVMaW5lc1wgc2NyaXB0OmxpZmVsaW5lcworU3luTWVudSBMLU1hLkxpbG86bGlsbworU3luTWVudSBMLU1hLkxpbWl0c1wgY29uZmlnOmxpbWl0cworU3luTWVudSBMLU1hLkxpbmRlblwgc2NyaXB0aW5nOmxzbAorU3luTWVudSBMLU1hLkxpc3A6bGlzcAorU3luTWVudSBMLU1hLkxpdGU6bGl0ZQorU3luTWVudSBMLU1hLkxpdGVTdGVwXCBSQzpsaXRlc3RlcAorU3luTWVudSBMLU1hLkxvY2FsZVwgSW5wdXQ6ZmRjYworU3luTWVudSBMLU1hLkxvZ2luXC5hY2Nlc3M6bG9naW5hY2Nlc3MKK1N5bk1lbnUgTC1NYS5Mb2dpblwuZGVmczpsb2dpbmRlZnMKK1N5bk1lbnUgTC1NYS5Mb2d0YWxrOmxvZ3RhbGsKK1N5bk1lbnUgTC1NYS5MT1RPUzpsb3RvcworU3luTWVudSBMLU1hLkxvdHVzU2NyaXB0OmxzY3JpcHQKK1N5bk1lbnUgTC1NYS5Mb3V0OmxvdXQKK1N5bk1lbnUgTC1NYS5MUEM6bHBjCitTeW5NZW51IEwtTWEuTHVhOmx1YQorU3luTWVudSBMLU1hLkx5bnhcIFN0eWxlOmxzcworU3luTWVudSBMLU1hLkx5bnhcIGNvbmZpZzpseW54CitTeW5NZW51IEwtTWEuTTQ6bTQKK1N5bk1lbnUgTC1NYS5NYUdpY1wgUG9pbnQ6bWdwCitTeW5NZW51IEwtTWEuTWFpbDptYWlsCitTeW5NZW51IEwtTWEuTWFpbFwgYWxpYXNlczptYWlsYWxpYXNlcworU3luTWVudSBMLU1hLk1haWxjYXA6bWFpbGNhcAorU3luTWVudSBMLU1hLk1ha2VmaWxlOm1ha2UKK1N5bk1lbnUgTC1NYS5NYWtlSW5kZXg6aXN0CitTeW5NZW51IEwtTWEuTWFuXCBwYWdlOm1hbgorU3luTWVudSBMLU1hLk1hblwuY29uZjptYW5jb25mCitTeW5NZW51IEwtTWEuTWFwbGVcIFY6bWFwbGUKK1N5bk1lbnUgTC1NYS5NYXNvbjptYXNvbgorU3luTWVudSBMLU1hLk1hdGhlbWF0aWNhOm1tYQorU3luTWVudSBMLU1hLk1hdGxhYjptYXRsYWIKK1N5bk1lbnUgTC1NYS5NYXhpbWE6bWF4aW1hCisKK1N5bk1lbnUgTWUtTk8uTUVMXCAoZm9yXCBNYXlhKTptZWwKK1N5bk1lbnUgTWUtTk8uTWVzc2FnZXNcICgvdmFyL2xvZyk6bWVzc2FnZXMKK1N5bk1lbnUgTWUtTk8uTWV0YWZvbnQ6bWYKK1N5bk1lbnUgTWUtTk8uTWV0YVBvc3Q6bXAKK1N5bk1lbnUgTWUtTk8uTUdMOm1nbAorU3luTWVudSBNZS1OTy5NTUlYOm1taXgKK1N5bk1lbnUgTWUtTk8uTW9kY29uZjptb2Rjb25mCitTeW5NZW51IE1lLU5PLk1vZGVsOm1vZGVsCitTeW5NZW51IE1lLU5PLk1vZHNpbVwgSUlJOm1vZHNpbTMKK1N5bk1lbnUgTWUtTk8uTW9kdWxhXCAyOm1vZHVsYTIKK1N5bk1lbnUgTWUtTk8uTW9kdWxhXCAzOm1vZHVsYTMKK1N5bk1lbnUgTWUtTk8uTW9uazptb25rCitTeW5NZW51IE1lLU5PLk1wbGF5ZXJcIGNvbmZpZzptcGxheWVyY29uZgorU3luTWVudSBNZS1OTy5NT086bW9vCitTeW5NZW51IE1lLU5PLk1yeHZ0cmM6bXJ4dnRyYworU3luTWVudSBNZS1OTy5NUy1ET1MvV2luZG93cy40RE9TXCBcLmJhdFwgZmlsZTpidG0KK1N5bk1lbnUgTWUtTk8uTVMtRE9TL1dpbmRvd3MuXC5iYXRcL1wuY21kXCBmaWxlOmRvc2JhdGNoCitTeW5NZW51IE1lLU5PLk1TLURPUy9XaW5kb3dzLlwuaW5pXCBmaWxlOmRvc2luaQorU3luTWVudSBNZS1OTy5NUy1ET1MvV2luZG93cy5NZXNzYWdlXCB0ZXh0Om1zbWVzc2FnZXMKK1N5bk1lbnUgTWUtTk8uTVMtRE9TL1dpbmRvd3MuTW9kdWxlXCBEZWZpbml0aW9uOmRlZgorU3luTWVudSBNZS1OTy5NUy1ET1MvV2luZG93cy5SZWdpc3RyeTpyZWdpc3RyeQorU3luTWVudSBNZS1OTy5NUy1ET1MvV2luZG93cy5SZXNvdXJjZVwgZmlsZTpyYworU3luTWVudSBNZS1OTy5Nc3FsOm1zcWwKK1N5bk1lbnUgTWUtTk8uTXVQQUQ6bXVwYWQKK1N5bk1lbnUgTWUtTk8uTVVTSGNvZGU6bXVzaAorU3luTWVudSBNZS1OTy5NdXR0cmM6bXV0dHJjCitTeW5NZW51IE1lLU5PLk5hbm9yYzpuYW5vcmMKK1N5bk1lbnUgTWUtTk8uTmFzdHJhblwgaW5wdXQvRE1BUDpuYXN0cmFuCitTeW5NZW51IE1lLU5PLk5hdHVyYWw6bmF0dXJhbAorU3luTWVudSBNZS1OTy5OZXRyYzpuZXRyYworU3luTWVudSBNZS1OTy5Ob3ZlbGxcIE5DRlwgYmF0Y2g6bmNmCitTeW5NZW51IE1lLU5PLk5vdFwgUXVpdGVcIENcIChMRUdPKTpucWMKK1N5bk1lbnUgTWUtTk8uTnJvZmY6bnJvZmYKK1N5bk1lbnUgTWUtTk8uTlNJU1wgc2NyaXB0Om5zaXMKK1N5bk1lbnUgTWUtTk8uT2JqZWN0aXZlXCBDOm9iamMKK1N5bk1lbnUgTWUtTk8uT2JqZWN0aXZlXCBDKys6b2JqY3BwCitTeW5NZW51IE1lLU5PLk9DQU1MOm9jYW1sCitTeW5NZW51IE1lLU5PLk9jY2FtOm9jY2FtCitTeW5NZW51IE1lLU5PLk9tbmltYXJrOm9tbmltYXJrCitTeW5NZW51IE1lLU5PLk9wZW5ST0FEOm9wZW5yb2FkCitTeW5NZW51IE1lLU5PLk9wZW5cIFBzaW9uXCBMYW5nOm9wbAorU3luTWVudSBNZS1OTy5PcmFjbGVcIGNvbmZpZzpvcmEKKworU3luTWVudSBQUS5QYWNrZXRcIGZpbHRlclwgY29uZjpwZgorU3luTWVudSBQUS5QYWxtXCByZXNvdXJjZVwgY29tcGlsZXI6cGlscmMKK1N5bk1lbnUgUFEuUGFtXCBjb25maWc6cGFtY29uZgorU3luTWVudSBQUS5QQXBwOnBhcHAKK1N5bk1lbnUgUFEuUGFzY2FsOnBhc2NhbAorU3luTWVudSBQUS5QYXNzd29yZFwgZmlsZTpwYXNzd2QKK1N5bk1lbnUgUFEuUENDVFM6cGNjdHMKK1N5bk1lbnUgUFEuUERGOnBkZgorU3luTWVudSBQUS5QZXJsLlBlcmw6cGVybAorU3luTWVudSBQUS5QZXJsLlBlcmxcIFBPRDpwb2QKK1N5bk1lbnUgUFEuUGVybC5QZXJsXCBYUzp4cworU3luTWVudSBQUS5QSFAuUEhQXCAzLTQ6cGhwCitTeW5NZW51IFBRLlBIUC5QaHRtbFwgKFBIUFwgMik6cGh0bWwKK1N5bk1lbnUgUFEuUGlrZTpwaWtlCitTeW5NZW51IFBRLlBpbmVcIFJDOnBpbmUKK1N5bk1lbnUgUFEuUGluZm9cIFJDOnBpbmZvCitTeW5NZW51IFBRLlBML006cGxtCitTeW5NZW51IFBRLlBML1NRTDpwbHNxbAorU3luTWVudSBQUS5QTFA6cGxwCitTeW5NZW51IFBRLlBPXCAoR05VXCBnZXR0ZXh0KTpwbworU3luTWVudSBQUS5Qb3N0Zml4XCBtYWluXCBjb25maWc6cGZtYWluCitTeW5NZW51IFBRLlBvc3RTY3JpcHQuUG9zdFNjcmlwdDpwb3N0c2NyCitTeW5NZW51IFBRLlBvc3RTY3JpcHQuUG9zdFNjcmlwdFwgUHJpbnRlclwgRGVzY3JpcHRpb246cHBkCitTeW5NZW51IFBRLlBvdnJheS5Qb3ZyYXlcIHNjZW5lXCBkZXNjcjpwb3YKK1N5bk1lbnUgUFEuUG92cmF5LlBvdnJheVwgY29uZmlndXJhdGlvbjpwb3ZpbmkKK1N5bk1lbnUgUFEuUFBXaXphcmQ6cHB3aXoKK1N5bk1lbnUgUFEuUHJlc2NyaWJlXCAoS3lvY2VyYSk6cHJlc2NyaWJlCitTeW5NZW51IFBRLlByaW50Y2FwOnBjYXAKK1N5bk1lbnUgUFEuUHJpdm94eTpwcml2b3h5CitTeW5NZW51IFBRLlByb2NtYWlsOnByb2NtYWlsCitTeW5NZW51IFBRLlByb2R1Y3RcIFNwZWNcIEZpbGU6cHNmCitTeW5NZW51IFBRLlByb2dyZXNzOnByb2dyZXNzCitTeW5NZW51IFBRLlByb2xvZzpwcm9sb2cKK1N5bk1lbnUgUFEuUHJvTWVMYTpwcm9tZWxhCitTeW5NZW51IFBRLlByb3RvY29sczpwcm90b2NvbHMKK1N5bk1lbnUgUFEuUHVyaWZ5XCBsb2c6cHVyaWZ5bG9nCitTeW5NZW51IFBRLlB5cmV4OnB5cmV4CitTeW5NZW51IFBRLlB5dGhvbjpweXRob24KK1N5bk1lbnUgUFEuUXVha2U6cXVha2UKK1N5bk1lbnUgUFEuUXVpY2tmaXhcIHdpbmRvdzpxZgorCitTeW5NZW51IFItU2cuUi5SOnIKK1N5bk1lbnUgUi1TZy5SLlJcIGhlbHA6cmhlbHAKK1N5bk1lbnUgUi1TZy5SLlJcIG5vd2ViOnJub3dlYgorU3luTWVudSBSLVNnLlJhY2NcIGlucHV0OnJhY2MKK1N5bk1lbnUgUi1TZy5SYWRpYW5jZTpyYWRpYW5jZQorU3luTWVudSBSLVNnLlJhdHBvaXNvbjpyYXRwb2lzb24KK1N5bk1lbnUgUi1TZy5SQ1MuUkNTXCBsb2dcIG91dHB1dDpyY3Nsb2cKK1N5bk1lbnUgUi1TZy5SQ1MuUkNTXCBmaWxlOnJjcworU3luTWVudSBSLVNnLlJlYWRsaW5lXCBjb25maWc6cmVhZGxpbmUKK1N5bk1lbnUgUi1TZy5SZWJvbDpyZWJvbAorU3luTWVudSBSLVNnLlJlbWluZDpyZW1pbmQKK1N5bk1lbnUgUi1TZy5SZWxheFwgTkdcIGNvbXBhY3Q6cm5jCitTeW5NZW51IFItU2cuUmVuZGVybWFuLlJlbmRlcm1hblwgU2hhZGVyXCBMYW5nOnNsCitTeW5NZW51IFItU2cuUmVuZGVybWFuLlJlbmRlcm1hblwgSW50ZXJmYWNlXCBCeXRlc3RyZWFtOnJpYgorU3luTWVudSBSLVNnLlJlc29sdlwuY29uZjpyZXNvbHYKK1N5bk1lbnUgUi1TZy5SZXZhXCBGb3J0aDpyZXZhCitTeW5NZW51IFItU2cuUmV4eDpyZXh4CitTeW5NZW51IFItU2cuUm9ib3RzXC50eHQ6cm9ib3RzCitTeW5NZW51IFItU2cuUm9ja0xpbnV4XCBwYWNrYWdlXCBkZXNjXC46ZGVzYworU3luTWVudSBSLVNnLlJwY2dlbjpycGNnZW4KK1N5bk1lbnUgUi1TZy5SUEwvMjpycGwKK1N5bk1lbnUgUi1TZy5SZVN0cnVjdHVyZWRUZXh0OnJzdAorU3luTWVudSBSLVNnLlJURjpydGYKK1N5bk1lbnUgUi1TZy5SdWJ5OnJ1YnkKK1N5bk1lbnUgUi1TZy5TLUxhbmc6c2xhbmcKK1N5bk1lbnUgUi1TZy5TYW1iYVwgY29uZmlnOnNhbWJhCitTeW5NZW51IFItU2cuU0FTOnNhcworU3luTWVudSBSLVNnLlNhdGhlcjpzYXRoZXIKK1N5bk1lbnUgUi1TZy5TY2hlbWU6c2NoZW1lCitTeW5NZW51IFItU2cuU2NpbGFiOnNjaWxhYgorU3luTWVudSBSLVNnLlNjcmVlblwgUkM6c2NyZWVuCitTeW5NZW51IFItU2cuU0RMOnNkbAorU3luTWVudSBSLVNnLlNlZDpzZWQKK1N5bk1lbnUgUi1TZy5TZW5kbWFpbFwuY2Y6c20KK1N5bk1lbnUgUi1TZy5TZW5kLXByOnNlbmRwcgorU3luTWVudSBSLVNnLlNlbnNvcnNcLmNvbmY6c2Vuc29ycworU3luTWVudSBSLVNnLlNlcnZpY2VcIExvY2F0aW9uXCBjb25maWc6c2xwY29uZgorU3luTWVudSBSLVNnLlNlcnZpY2VcIExvY2F0aW9uXCByZWdpc3RyYXRpb246c2xwcmVnCitTeW5NZW51IFItU2cuU2VydmljZVwgTG9jYXRpb25cIFNQSTpzbHBzcGkKK1N5bk1lbnUgUi1TZy5TZXJ2aWNlczpzZXJ2aWNlcworU3luTWVudSBSLVNnLlNldHNlcmlhbFwgY29uZmlnOnNldHNlcmlhbAorU3luTWVudSBSLVNnLlNHTUwuU0dNTFwgY2F0YWxvZzpjYXRhbG9nCitTeW5NZW51IFItU2cuU0dNTC5TR01MXCBEVEQ6c2dtbAorU3luTWVudSBSLVNnLlNHTUwuU0dNTFwgRGVjbGFyYXRpb246c2dtbGRlY2wKK1N5bk1lbnUgUi1TZy5TR01MLlNHTUwtbGludXhkb2M6c2dtbGxueAorCitTeW5NZW51IFNoLVMuU2hlbGxcIHNjcmlwdC5zaFwgYW5kXCBrc2g6c2gKK1N5bk1lbnUgU2gtUy5TaGVsbFwgc2NyaXB0LmNzaDpjc2gKK1N5bk1lbnUgU2gtUy5TaGVsbFwgc2NyaXB0LnRjc2g6dGNzaAorU3luTWVudSBTaC1TLlNoZWxsXCBzY3JpcHQuenNoOnpzaAorU3luTWVudSBTaC1TLlNpQ0FEOnNpY2FkCitTeW5NZW51IFNoLVMuU2lldmU6c2lldmUKK1N5bk1lbnUgU2gtUy5TaW11bGE6c2ltdWxhCitTeW5NZW51IFNoLVMuU2luZGEuU2luZGFcIGNvbXBhcmU6c2luZGFjbXAKK1N5bk1lbnUgU2gtUy5TaW5kYS5TaW5kYVwgaW5wdXQ6c2luZGEKK1N5bk1lbnUgU2gtUy5TaW5kYS5TaW5kYVwgb3V0cHV0OnNpbmRhb3V0CitTeW5NZW51IFNoLVMuU2lTVTpzaXN1CitTeW5NZW51IFNoLVMuU0tJTEwuU0tJTEw6c2tpbGwKK1N5bk1lbnUgU2gtUy5TS0lMTC5TS0lMTFwgZm9yXCBEaXZhOmRpdmEKK1N5bk1lbnUgU2gtUy5TbGljZTpzbGljZQorU3luTWVudSBTaC1TLlNMUk4uU2xyblwgcmM6c2xybnJjCitTeW5NZW51IFNoLVMuU0xSTi5TbHJuXCBzY29yZTpzbHJuc2MKK1N5bk1lbnUgU2gtUy5TbWFsbFRhbGs6c3QKK1N5bk1lbnUgU2gtUy5TbWFydHlcIFRlbXBsYXRlczpzbWFydHkKK1N5bk1lbnUgU2gtUy5TTUlMOnNtaWwKK1N5bk1lbnUgU2gtUy5TTUlUSDpzbWl0aAorU3luTWVudSBTaC1TLlNOTVBcIE1JQjptaWIKK1N5bk1lbnUgU2gtUy5TTk5TLlNOTlNcIG5ldHdvcms6c25uc25ldAorU3luTWVudSBTaC1TLlNOTlMuU05OU1wgcGF0dGVybjpzbm5zcGF0CitTeW5NZW51IFNoLVMuU05OUy5TTk5TXCByZXN1bHQ6c25uc3JlcworU3luTWVudSBTaC1TLlNub2JvbDQ6c25vYm9sNAorU3luTWVudSBTaC1TLlNub3J0XCBDb25maWd1cmF0aW9uOmhvZworU3luTWVudSBTaC1TLlNQRUNcIChMaW51eFwgUlBNKTpzcGVjCitTeW5NZW51IFNoLVMuU3BlY21hbjpzcGVjbWFuCitTeW5NZW51IFNoLVMuU3BpY2U6c3BpY2UKK1N5bk1lbnUgU2gtUy5TcHljZTpzcHljZQorU3luTWVudSBTaC1TLlNwZWVkdXA6c3B1cAorU3luTWVudSBTaC1TLlNwbGludDpzcGxpbnQKK1N5bk1lbnUgU2gtUy5TcXVpZFwgY29uZmlnOnNxdWlkCitTeW5NZW51IFNoLVMuU1FMLkVTUUwtQzplc3FsYworU3luTWVudSBTaC1TLlNRTC5NeVNRTDpteXNxbAorU3luTWVudSBTaC1TLlNRTC5QTC9TUUw6cGxzcWwKK1N5bk1lbnUgU2gtUy5TUUwuU1FMXCBBbnl3aGVyZTpzcWxhbnl3aGVyZQorU3luTWVudSBTaC1TLlNRTC5TUUxcIChhdXRvbWF0aWMpOnNxbAorU3luTWVudSBTaC1TLlNRTC5TUUxcIChPcmFjbGUpOnNxbG9yYWNsZQorU3luTWVudSBTaC1TLlNRTC5TUUxcIEZvcm1zOnNxbGZvcm1zCitTeW5NZW51IFNoLVMuU1FMLlNRTEo6c3FsagorU3luTWVudSBTaC1TLlNRTC5TUUwtSW5mb3JtaXg6c3FsaW5mb3JtaXgKK1N5bk1lbnUgU2gtUy5TUVI6c3FyCitTeW5NZW51IFNoLVMuU3NoLnNzaF9jb25maWc6c3NoY29uZmlnCitTeW5NZW51IFNoLVMuU3NoLnNzaGRfY29uZmlnOnNzaGRjb25maWcKK1N5bk1lbnUgU2gtUy5TdGFuZGFyZFwgTUw6c21sCitTeW5NZW51IFNoLVMuU3RhdGEuU01DTDpzbWNsCitTeW5NZW51IFNoLVMuU3RhdGEuU3RhdGE6c3RhdGEKK1N5bk1lbnUgU2gtUy5TdG9yZWRcIFByb2NlZHVyZXM6c3RwCitTeW5NZW51IFNoLVMuU3RyYWNlOnN0cmFjZQorU3luTWVudSBTaC1TLlN0cmVhbWluZ1wgZGVzY3JpcHRvclwgZmlsZTpzZAorU3luTWVudSBTaC1TLlN1YnZlcnNpb25cIGNvbW1pdDpzdm4KK1N5bk1lbnUgU2gtUy5TdWRvZXJzOnN1ZG9lcnMKK1N5bk1lbnUgU2gtUy5TeW1iaWFuXCBtZXRhLW1ha2VmaWxlOm1tcAorU3luTWVudSBTaC1TLlN5c2N0bFwuY29uZjpzeXNjdGwKKworU3luTWVudSBUVVYuVEFEUzp0YWRzCitTeW5NZW51IFRVVi5UYWdzOnRhZ3MKK1N5bk1lbnUgVFVWLlRBSy5UQUtcIGNvbXBhcmU6dGFrY21wCitTeW5NZW51IFRVVi5UQUsuVEFLXCBpbnB1dDp0YWsKK1N5bk1lbnUgVFVWLlRBSy5UQUtcIG91dHB1dDp0YWtvdXQKK1N5bk1lbnUgVFVWLlRjbC9Uazp0Y2wKK1N5bk1lbnUgVFVWLlRlYWxJbmZvOnRsaQorU3luTWVudSBUVVYuVGVsaXhcIFNhbHQ6dHNhbHQKK1N5bk1lbnUgVFVWLlRlcm1jYXAvUHJpbnRjYXA6cHRjYXAKK1N5bk1lbnUgVFVWLlRlcm1pbmZvOnRlcm1pbmZvCitTeW5NZW51IFRVVi5UZVguVGVYL0xhVGVYOnRleAorU3luTWVudSBUVVYuVGVYLnBsYWluXCBUZVg6cGxhaW50ZXgKK1N5bk1lbnUgVFVWLlRlWC5Db25UZVh0OmNvbnRleHQKK1N5bk1lbnUgVFVWLlRlWC5UZVhcIGNvbmZpZ3VyYXRpb246dGV4bWYKK1N5bk1lbnUgVFVWLlRlWC5UZXhpbmZvOnRleGluZm8KK1N5bk1lbnUgVFVWLlRGXCBtdWRcIGNsaWVudDp0ZgorU3luTWVudSBUVVYuVGlkeVwgY29uZmlndXJhdGlvbjp0aWR5CitTeW5NZW51IFRVVi5UaWxkZTp0aWxkZQorU3luTWVudSBUVVYuVFBQOnRwcAorU3luTWVudSBUVVYuVHJhc3lzXCBpbnB1dDp0cmFzeXMKK1N5bk1lbnUgVFVWLlRydXN0ZWVzOnRydXN0ZWVzCitTeW5NZW51IFRVVi5UU1MuQ29tbWFuZFwgTGluZTp0c3NjbAorU3luTWVudSBUVVYuVFNTLkdlb21ldHJ5OnRzc2dtCitTeW5NZW51IFRVVi5UU1MuT3B0aWNzOnRzc29wCitTeW5NZW51IFRVVi5VZGV2XCBjb25maWc6dWRldmNvbmYKK1N5bk1lbnUgVFVWLlVkZXZcIHBlcm1pc3Npb25zOnVkZXZwZXJtCitTeW5NZW51IFRVVi5VZGV2XCBydWxlczp1ZGV2cnVsZXMKK1N5bk1lbnUgVFVWLlVJVC9VSUw6dWlsCitTeW5NZW51IFRVVi5VbnJlYWxTY3JpcHQ6dWMKK1N5bk1lbnUgVFVWLlVwZGF0ZWRiXC5jb25mOnVwZGF0ZWRiCitTeW5NZW51IFRVVi5WYWxncmluZDp2YWxncmluZAorU3luTWVudSBUVVYuVmVyYTp2ZXJhCitTeW5NZW51IFRVVi5WZXJpbG9nLUFNU1wgSERMOnZlcmlsb2dhbXMKK1N5bk1lbnUgVFVWLlZlcmlsb2dcIEhETDp2ZXJpbG9nCitTeW5NZW51IFRVVi5WZ3JpbmRlZnM6dmdyaW5kZWZzCitTeW5NZW51IFRVVi5WSERMOnZoZGwKK1N5bk1lbnUgVFVWLlZpbS5WaW1cIGhlbHBcIGZpbGU6aGVscAorU3luTWVudSBUVVYuVmltLlZpbVwgc2NyaXB0OnZpbQorU3luTWVudSBUVVYuVmltLlZpbWluZm9cIGZpbGU6dmltaW5mbworU3luTWVudSBUVVYuVmlyYXRhXCBjb25maWc6dmlyYXRhCitTeW5NZW51IFRVVi5WaXN1YWxcIEJhc2ljOnZiCitTeW5NZW51IFRVVi5WT1NcIENNXCBtYWNybzp2b3NjbQorU3luTWVudSBUVVYuVlJNTDp2cm1sCitTeW5NZW51IFRVVi5WU0VcIEpDTDp2c2VqY2wKKworU3luTWVudSBXWFlaLldFQi5DV0VCOmN3ZWIKK1N5bk1lbnUgV1hZWi5XRUIuV0VCOndlYgorU3luTWVudSBXWFlaLldFQi5XRUJcIENoYW5nZXM6Y2hhbmdlCitTeW5NZW51IFdYWVouV2VibWFjcm86d2VibWFjcm8KK1N5bk1lbnUgV1hZWi5XZWJzaXRlXCBNZXRhTGFuZ3VhZ2U6d21sCitTeW5NZW51IFdYWVoud0RpZmY6d2RpZmYKK1N5bk1lbnUgV1hZWi5XZ2V0XCBjb25maWc6d2dldAorU3luTWVudSBXWFlaLldoaXRlc3BhY2VcIChhZGQpOndoaXRlc3BhY2UKK1N5bk1lbnUgV1hZWi5XaWxkUGFja2V0c1wgRXRoZXJQZWVrXCBEZWNvZGVyOmRjZAorU3luTWVudSBXWFlaLldpbkJhdGNoL1dlYmJhdGNoOndpbmJhdGNoCitTeW5NZW51IFdYWVouV2luZG93c1wgU2NyaXB0aW5nXCBIb3N0OndzaAorU3luTWVudSBXWFlaLldTTUw6d3NtbAorU3luTWVudSBXWFlaLld2RGlhbDp3dmRpYWwKK1N5bk1lbnUgV1hZWi5YXCBLZXlib2FyZFwgRXh0ZW5zaW9uOnhrYgorU3luTWVudSBXWFlaLlhcIFBpeG1hcDp4cG0KK1N5bk1lbnUgV1hZWi5YXCBQaXhtYXBcICgyKTp4cG0yCitTeW5NZW51IFdYWVouWFwgcmVzb3VyY2VzOnhkZWZhdWx0cworU3luTWVudSBXWFlaLlhCTDp4YmwKK1N5bk1lbnUgV1hZWi5YaW5ldGRcLmNvbmY6eGluZXRkCitTeW5NZW51IFdYWVouWG1vZG1hcDp4bW9kbWFwCitTeW5NZW51IFdYWVouWG1hdGg6eG1hdGgKK1N5bk1lbnUgV1hZWi5YTUw6eG1sCitTeW5NZW51IFdYWVouWE1MXCBTY2hlbWFcIChYU0QpOnhzZAorU3luTWVudSBXWFlaLlhRdWVyeTp4cXVlcnkKK1N5bk1lbnUgV1hZWi5Yc2x0OnhzbHQKK1N5bk1lbnUgV1hZWi5YRnJlZTg2XCBDb25maWc6eGY4NmNvbmYKK1N5bk1lbnUgV1hZWi5ZQU1MOnlhbWwKK1N5bk1lbnUgV1hZWi5ZYWNjOnlhY2MKKworY2FsbCBhcHBlbmQoczpsbnVtLCAiIikKKword3EKZGlmZiAtLWdpdCBhL3J1bnRpbWUvdHV0b3IvcnVudGltZS92aW00OHg0OC5naWYgYi9ydW50aW1lL3R1dG9yL3J1bnRpbWUvdmltNDh4NDguZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiZTE4MmUKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3R1dG9yL3J1bnRpbWUvdmltNDh4NDguZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvdHV0b3Ivc3JjLmluZm8gYi9ydW50aW1lL3R1dG9yL3NyYy5pbmZvCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFhYjdjNmMKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3R1dG9yL3NyYy5pbmZvCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvdHV0b3IvdHV0b3IuZWwudXRmLTggYi9ydW50aW1lL3R1dG9yL3R1dG9yLmVsLnV0Zi04Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI2YzA4ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3R1dG9yL3R1dG9yLmVsLnV0Zi04CkBAIC0wLDAgKzEsODE1IEBACis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cis9ICAgIM6aIM6xzrsgz4kgz4Mgzq4gz4EgzrggzrEgz4QgzrUgICAgz4Mgz4Qgzr8gICBWIEkgTSAgIFQgdSB0IG8gciAgICAtICAgIM6IzrrOtM6/z4POtyAxLjUgICAgID0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgICDOnyBWaW0gzrXOr869zrHOuSDOrc69zrHPgiDPgM6xzr3Or8+Dz4fPhc+Bzr/PgiDPg8+Fzr3PhM6szrrPhM63z4Igz4DOv8+FIM6tz4fOtc65IM+Azr/Ou867zq3PgiDOtc69z4TOv867zq3Pgiwgz4DOrM+BzrEKKyAgICAgz4DOv867zrvOrc+CIM6zzrnOsSDOvc6xIM61zr7Ot86zzq7Pg86/z4XOvM61IM+DzrUgzrzOr86xIM+AzrXPgc65zq7Os863z4POtyDPjM+Az4nPgiDOsc+Fz4TOri4gzpHPhc+Ezq4gzrcgz4DOtc+BzrnOrs6zzrfPg863CisgICAgIM+Dz4fOtc60zrnOrM+Dz4TOt866zrUgzrPOuc6xIM69zrEgz4DOtc+BzrnOs8+BzqzPiM61zrkgzrnOus6xzr3Ov8+Azr/Ouc63z4TOuc66zqwgz4TOuc+CIM61zr3PhM6/zrvOrc+CIM+Azr/PhSDOuM6xIM+DzrHPggorICAgICDOus6szr3Ov8+Fzr0gzr3OsSDPh8+BzrfPg865zrzOv8+Azr/Ouc61zq/PhM61IM61z43Ous6/zrvOsSDPhM6/zr0gVmltIM+DzrHOvSDOrc69zrHOvSDOs861zr3Ouc66zq7PgiDPh8+Bzq7Pg863z4Igz4PPhc69z4TOrM66z4TOty4KKworICAgICDOnyDOus6xz4TOrCDPgM+Bzr/Pg86tzrPOs865z4POtyDPh8+Bz4zOvc6/z4Igz4DOv8+FIM6xz4DOsc65z4TOtc6vz4TOsc65IM6zzrnOsSDOvc6xIM6/zrvOv866zrvOt8+Bz47Pg861z4TOtSDPhM63zr0gz4DOtc+BzrnOrs6zzrfPg863CisgICAgIM61zq/Ovc6xzrkgMjUtMzAgzrvOtc+Az4TOrCwgzrXOvs6xz4HPhM+Ozr3PhM6xz4IgzrHPgM+MIM+Ezr8gz4DPjM+Dzr8gz4fPgc+Mzr3OvyDOuM6xIM6+zr/OtM6tz4jOtc+EzrUgzrPOuc6xCisgICAgIM+AzrXOuc+BzrHOvM6xz4TOuc+DzrzOv8+Nz4IuCisKKyAgICAgzp/OuSDOtc69z4TOv867zq3PgiDPg8+EzrEgzrzOsc64zq7OvM6xz4TOsSDOuM6xIM+Ez4HOv8+Azr/PgM6/zrnOrs+Dzr/Phc69IM+Ezr8gzrrOtc6vzrzOtc69zr8uIM6UzrfOvM65zr/Phc+BzrPOrs+Dz4TOtSDOrc69zrEKKyAgICAgzrHOvc+Ezq/Os8+BzrHPhs6/IM6xz4XPhM6/z40gz4TOv8+FIM6xz4HPh861zq/Ov8+FIM6zzrnOsSDOvc6xIM61zr7Osc+DzrrOt864zrXOr8+EzrUgKM6xzr0gzr7Otc66zrnOvc6uz4POsc+EzrUgz4TOvworICAgICAiVmltdHV0b3IiIM6xz4XPhM+MIM61zq/Ovc6xzrkgzq7OtM63IM6tzr3OsSDOsc69z4TOr86zz4HOsc+Gzr8pLgorCisgICAgIM6Vzq/Ovc6xzrkgz4POt868zrHOvc+EzrnOus+MIM69zrEgzrjPhc68zqzPg8+EzrUgz4zPhM65IM6xz4XPhM6uIM63IM+AzrXPgc65zq7Os863z4POtyDOtc6vzr3Osc65IM6/z4HOs86xzr3Pic68zq3Ovc63IM6tz4TPg865CisgICAgIM+Oz4PPhM61IM69zrEgzrTOuc60zqzPg866zrXOuSDOvM6tz4PPiSDPhM63z4Igz4fPgc6uz4POt8+CLiDOkc+Fz4TPjCDPg863zrzOsc6vzr3Otc65IM+Mz4TOuSDPh8+BzrXOuc6szrbOtc+EzrHOuSDOvc6xCisgICAgIM61zrrPhM61zrvOtc6vz4TOtSDPhM65z4IgzrXOvc+Ezr/Ou86tz4IgzrPOuc6xIM69zrEgz4TOuc+CIM68zqzOuM61z4TOtSDPg8+Jz4PPhM6sLiDOkc69IM60zrnOsc6yzqzOts61z4TOtSDOvM+Mzr3OvyDPhM6/CisgICAgIM66zrXOr868zrXOvc6/LCDOuM6xIM+EzrnPgiDOvs61z4fOrM+DzrXPhM61IQorCisgICAgIM6kz47Pgc6xLCDOss61zrLOsc65z4nOuM61zq/PhM61IM+Mz4TOuSDPhM6/IM+AzrvOrs66z4TPgc6/IFNoaWZ0LUxvY2sgzpTOlc6dIM61zq/Ovc6xzrkgz4DOsc+EzrfOvM6tzr3OvyDOus6xzrkKKyAgICAgz4DOsc+Ezq7Pg8+EzrUgz4TOvyDPgM67zq7Ous+Ez4HOvyBqIM6xz4HOus61z4TOrc+CIM+Gzr/Pgc6tz4IgzrPOuc6xIM69zrEgzrzOtc+EzrHOus65zr3Ors+DzrXPhM61IM+Ezr/OvSDOtM+Bzr/OvM6tzrEgzq3PhM+DzrkKKyAgICAgz47Pg8+EzrUgz4TOvyDOnM6szrjOt868zrEgMS4xIM69zrEgzrPOtc68zq/Pg861zrkgz4DOu86uz4HPic+CIM+EzrfOvSDOv864z4zOvc63LgorCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgICAgIM6czqzOuM63zrzOsSAxLjE6ICDOnM6VzqTOkc6azpnOnc6fzp3OpM6RzqMgzqTOn86dIM6UzqHOn86czpXOkQorCisgICoqIM6TzrnOsSDOvc6xIM66zrnOvc6uz4POtc+EzrUgz4TOv869IM60z4HOv868zq3OsSwgz4DOsc+Ezq7Pg8+EzrUgz4TOsSDPgM67zq7Ous+Ez4HOsSBoLGosayxsIM+Mz4DPic+CIM60zrXOr8+Hzr3Otc+EzrHOuS4gKioKKwkgICAgIF4KKwkgICAgIGsJICAgICAgSGludDogzqTOvyDPgM67zq7Ous+Ez4HOvyBoIM61zq/Ovc6xzrkgzrHPgc65z4PPhM61z4HOrCDOus6xzrkgzrrOuc69zrXOryDPg8+EJyDOsc+BzrnPg8+EzrXPgc6sLgorICAgICAgIDwgaAkgbCA+CSAgICDOpM6/IM+AzrvOrs66z4TPgc6/IGwgzrXOr869zrHOuSDOtM61zr7Ouc6sIM66zrHOuSDOus65zr3Otc6vIM+Dz4TOsSDOtM61zr7Ouc6sLgorCSAgICAgagkJICAgIM6kzr8gz4DOu86uzrrPhM+Bzr8gaiDOvM6/zrnOrM62zrXOuSDOvM61IM6yzrXOu86szrrOuSDPgM+Bzr/PgiDPhM6xIM66zqzPhM+JLgorCSAgICAgdgorCisgIDEuIM6czrXPhM6xzrrOuc69zrXOr8+Dz4TOtSDPhM6/zr0gzrTPgc6/zrzOrc6xIM+Ez4HOuc6zz43Pgc+JIM+Dz4TOt869IM6/zrjPjM69zrcgzrzOrc+Hz4HOuSDOvc6xIM69zr/Ouc+OzrjOtc+EzrUgzqzOvc61z4TOsS4KKworICAyLiDOms+BzrHPhM6uz4PPhM61IM+AzrHPhM63zrzOrc69zr8gz4TOvyDOus6sz4TPiSDPgM67zq7Ous+Ez4HOvyAoaikgzrzOrc+Hz4HOuSDOvc6xIM61z4DOsc69zrHOu863z4bOuM61zq8uCistLS0+IM6kz47Pgc6xIM6+zq3Pgc61z4TOtSDPgM+Oz4Igzr3OsSDOvM61z4TOsc66zrnOvc63zrjOtc6vz4TOtSDPg8+Ezr8gzrXPgM+MzrzOtc69zr8gzrzOrM64zrfOvM6xLgorCisgIDMuIM6nz4HOt8+DzrnOvM6/z4DOv865z47Ovc+EzrHPgiDPhM6/IM66zqzPhM+JIM+AzrvOrs66z4TPgc6/LCDOvM61z4TOsc66zrnOvc63zrjOtc6vz4TOtSDPg8+Ezr8gzpzOrM64zrfOvM6xIDEuMi4KKworzqPOt868zrXOr8+Jz4POtzogzpHOvSDOsc68z4bOuc6yzqzOu867zrXPhM61IM6zzrnOsSDOus6sz4TOuSDPgM6/z4Ugz4DOsc+Ezq7Pg86xz4TOtSwgz4DOsc+Ezq7Pg8+EzrUgPEVTQz4gzrPOuc6xIM69zrEgzrLPgc61zrjOtc6vz4TOtQorCSAgz4PPhM63zr0gzprOsc69zr/Ovc65zrrOriDOms6xz4TOrM+Dz4TOsc+DzrcuIM6czrXPhM6sIM+AzrHPhM6uz4PPhM61IM6+zrHOvc6sIM+EzrfOvSDOtc69z4TOv867zq4gz4DOv8+FIM64zq3Ou86xz4TOtS4KKworzqPOt868zrXOr8+Jz4POtzogzqTOsSDPgM67zq7Ous+Ez4HOsSDPhM6/z4UgzrTPgc6/zrzOrc6xIM64zrEgz4DPgc6tz4DOtc65IM61z4DOr8+DzrfPgiDOvc6xIM60zr/Phc67zrXPjc6/z4XOvS4gzpHOu867zqwgzrzOtSDPhM6xIGhqa2wKKwkgIM64zrEgzrzPgM6/z4HOtc6vz4TOtSDOvc6xIM66zrnOvc63zrjOtc6vz4TOtSDPgM6/zrvPjSDOs8+BzrfOs86/z4HPjM+EzrXPgc6xLCDOvM+MzrvOuc+CIM+EzrEgz4PPhc69zrfOuM6vz4POtc+EzrUuCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJzpzOrM64zrfOvM6xIDEuMjogIM6czqDOkc6Zzp3On86dzqTOkc6jIM6azpHOmSDOks6TzpHOmc6dzp/Onc6kzpHOoyDOo86kzp/OnSBWSU0KKworICAhISDOo86XzpzOlc6ZzqnOo86XOiDOoM+BzrnOvSDOtc66z4TOtc67zq3Pg861z4TOtSDOus6sz4DOv865zr8gzrHPgM+MIM+EzrEgzrLOrs68zrHPhM6xLCDOtM65zrHOss6sz4PPhM61IM+MzrvOvyDPhM6/IM68zqzOuM63zrzOsSEhCisKKyAgMS4gzqDOsc+Ezq7Pg8+EzrUgz4TOvyDPgM67zq7Ous+Ez4HOvyA8RVNDPiAozrPOuc6xIM69zrEgzrXOr8+Dz4TOtSDPg86vzrPOv8+Fz4HOsSDPg8+EzrfOvSDOms6xzr3Ov869zrnOus6uIM6azrHPhM6sz4PPhM6xz4POtykuCisKKyAgMi4gzqDOu863zrrPhM+Bzr/Ou86/zrPOrs+Dz4TOtToJCTpxISA8RU5URVI+LgorCistLS0+IM6Rz4XPhM+MIM61zr7Orc+Bz4fOtc+EzrHOuSDOsc+Az4wgz4TOv869IM+Dz4XOvc+EzqzOus+EzrcgzqfOqc6hzpnOoyDOvc6xIM+Dz47Pg861zrkgz4zPgM6/zrnOtc+CIM6xzrvOu86xzrPOrc+CIM6tz4fOtc+EzrUgzrrOrM69zrXOuS4KKyAgICAgzpHOvSDOuM6tzrvOtc+EzrUgzr3OsSDPg8+Oz4POtc+EzrUgz4TOuc+CIM6xzrvOu86xzrPOrc+CIM66zrHOuSDOvc6xIM61zr7Orc+BzrjOtc+EzrUgz4DOu863zrrPhM+Bzr/Ou86/zrPOrs+Dz4TOtToKKwkgICAgICA6d3EgPEVOVEVSPgorCisgIDMuIM6Mz4TOsc69IM60zrXOr8+EzrUgz4TOt869IM+Az4HOv8+Ez4HOv8+Azq4gz4TOv8+FIM+GzrvOv865zr/PjSwgz4DOu863zrrPhM+Bzr/Ou86/zrPOrs+Dz4TOtSDPhM63zr0gzrXOvc+Ezr/Ou86uIM68zrUgz4TOt869IM6/z4DOv86vzrEKKyAgICAgzrzPgM6uzrrOsc+EzrUgz4POtSDOsc+Fz4TOrs69IM+EzrfOvSDPgM61z4HOuc6uzrPOt8+DzrcuIM6cz4DOv8+BzrXOryDOvc6xIM61zq/Ovc6xzrk6CXZpbXR1dG9yIDxFTlRFUj4KKyAgICAgzprOsc69zr/Ovc65zrrOrCDOuM6xIM+Hz4HOt8+DzrnOvM6/z4DOv865zr/Pjc+DzrHPhM61OgkJCXZpbSB0dXRvciA8RU5URVI+CisKKy0tLT4gJ3ZpbScgz4POt868zrHOr869zrXOuSDOtc65z4POsc6zz4nOs86uIM+Dz4TOv869IM+Dz4XOvc+EzqzOus+EzrcgdmltLCAndHV0b3InIM61zq/Ovc6xzrkgz4TOvyDOsc+Bz4fOtc6vzr8gz4DOv8+FCisgICAgIM64zq3Ou86/z4XOvM61IM69zrEgzrTOuc6/z4HOuM+Oz4POv8+FzrzOtS4KKworICA0LiDOkc69IM6tz4fOtc+EzrUgzrHPgM6/zrzOvc63zrzOv869zrXPjc+DzrXOuSDOsc+Fz4TOrCDPhM6xIM6yzq7OvM6xz4TOsSDOus6xzrkgzq3Ph861z4TOtSDOsc+Fz4TOv8+AzrXPgM6/zq/OuM63z4POtywgzrXOus+EzrXOu86tz4PPhM61CisgICAgIM+EzrEgzrLOrs68zrHPhM6xIDEgzq3Pic+CIDMgzrPOuc6xIM69zrEgzrLOs861zq/PhM61IM66zrHOuSDOvc6xIM68z4DOtc6vz4TOtSDOvs6xzr3OrCDPg8+Ezr/OvSDPg8+Fzr3PhM6szrrPhM63LiDOnM61z4TOrAorICAgICDOvM61z4TOsc66zrnOvc6uz4PPhM61IM+Ezr/OvSDOtM+Bzr/OvM6tzrEgzrrOrM+Ez4kgz4PPhM6/IM6czqzOuM63zrzOsSAxLjMuCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgIM6czqzOuM63zrzOsSAxLjM6ICDOlM6Zzp/Ooc6YzqnOo86XIM6azpXOmc6czpXOnc6fzqUgLSDOlM6ZzpHOk86hzpHOps6XCisKKyAgICoqIM6Mz4POvyDOtc6vz4PPhM61IM+Dz4TOt869IM6azrHOvc6/zr3Ouc66zq4gzprOsc+EzqzPg8+EzrHPg863IM+AzrHPhM6uz4PPhM61ICB4ICDOs865zrEgzr3OsSDOtM65zrHOs8+BzqzPiM61z4TOtSDPhM6/zr0KKyAgICAgIM+HzrHPgc6xzrrPhM6uz4HOsSDOus6sz4TPiSDOsc+Az4wgz4TOv869IM60z4HOv868zq3OsS4gKioKKworICAxLiDOnM61z4TOsc66zrnOvc61zq/Pg8+EzrUgz4TOv869IM60z4HOv868zq3OsSDPg8+EzrfOvSDPgM6xz4HOsc66zqzPhM+JIM6zz4HOsc68zrzOriDPg863zrzOtc65z4nOvM6tzr3OtyDOvM61IC0tLT4uCisKKyAgMi4gzpPOuc6xIM69zrEgzrTOuc6/z4HOuM+Oz4POtc+EzrUgz4TOsSDOu86szrjOtywgzrrOuc69zrXOr8+Dz4TOtSDPhM6/zr0gzrTPgc6/zrzOrc6xIM68zq3Ph8+Bzrkgzr3OsSDOtc6vzr3Osc65IM+AzqzOvc+JIM6xz4DPjAorICAgICDPhM6/zr0gz4fOsc+BzrHOus+Ezq7Pgc6xIM+Azr/PhSDOuM6xIM60zrnOsc6zz4HOsc+GzrXOry4KKworICAzLiDOoM6xz4TOrs+Dz4TOtSDPhM6/IM+AzrvOrs66z4TPgc6/IHggzrPOuc6xIM69zrEgzrTOuc6xzrPPgc6sz4jOtc+EzrUgz4TOv869IM6xzr3Otc+AzrnOuM+NzrzOt8+Ezr8gz4fOsc+BzrHOus+Ezq7Pgc6xLgorCisgIDQuIM6Vz4DOsc69zrHOu86szrLOtc+EzrUgz4TOsSDOss6uzrzOsc+EzrEgMiDOvM6tz4fPgc65IDQgzrzOrc+Hz4HOuSDOtyDPgM+Bz4zPhM6xz4POtyDOvc6xIM61zq/Ovc6xzrkgz4PPic+Dz4TOri4KKworLS0tPiBUaGUgY2NvdyBqdW1wZWRkIG92dmVyciB0aGhlIG1vb29uLgorCisgIDUuIM6kz47Pgc6xIM+Azr/PhSDOtyDOs8+BzrHOvM68zq4gzrXOr869zrHOuSDPg8+Jz4PPhM6uLCDPgM63zrPOsc6vzr3PhM61IM+Dz4TOvyDOnM6szrjOt868zrEgMS40LgorCivOo86XzpzOlc6ZzqnOo86XOiDOms6xzrjPjs+CIM60zrnOsc+Ez4HOrc+HzrXPhM61IM6xz4XPhM6uzr0gz4TOt869IM+AzrXPgc65zq7Os863z4POtywgz4DPgc6/z4PPgM6xzrjOrs+Dz4TOtSDOvc6xIM68zrfOvQorCSAgzrHPgM6/zrzOvc63zrzOv869zrXPjc61z4TOtSwgzrzOsc64zrHOr869zrXPhM61IM68zrUgz4TOtyDPh8+Bzq7Pg863LgorCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgIM6czqzOuM63zrzOsSAxLjQ6IM6UzpnOn86hzpjOqc6jzpcgzprOlc6ZzpzOlc6dzp/OpSAtIM6gzpHOoc6VzpzOks6fzpvOlworCisgKiogzozPg86/IM61zq/Pg8+EzrUgz4POtSDOms6xzr3Ov869zrnOus6uIM6azrHPhM6sz4PPhM6xz4POtyDPgM6xz4TOrs+Dz4TOtSAgaSAgzrPOuc6xIM69zrEgz4DOsc+BzrXOvM6yzqzOu867zrXPhM61IM66zrXOr868zrXOvc6/LiAqKgorCisgIDEuIM6czrXPhM6xzrrOuc69zrXOr8+Dz4TOtSDPhM6/zr0gzrTPgc6/zrzOrc6xIM68zq3Ph8+Bzrkgz4TOt869IM+Az4HPjs+EzrcgzrPPgc6xzrzOvM6uIM+AzrHPgc6xzrrOrM+Ez4kgz4POt868zrXOuc+JzrzOrc69zrcgzrzOtSAtLS0+LgorCisgIDIuIM6TzrnOsSDOvc6xIM66zqzOvc61z4TOtSDPhM63zr0gz4DPgc+Oz4TOtyDOs8+BzrHOvM68zq4gzq/OtM65zrEgzrzOtSDPhM63zr0gzrTOtc+Nz4TOtc+BzrcsIM68zrXPhM6xzrrOuc69zrXOr8+Dz4TOtSDPhM6/zr0KKyAgICAgzrTPgc6/zrzOrc6xIM+AzqzOvc+JIM+Dz4TOv869IM+Az4HPjs+Ezr8gz4fOsc+BzrHOus+Ezq7Pgc6xIM6czpXOpM6RIM6xz4DPjCDPjM+Azr/PhSDOuM6xIM+AzrHPgc61zrzOss67zrfOuM61zq8gz4TOvyDOus61zq/OvM61zr3Ovy4KKworICAzLiDOoM6xz4TOrs+Dz4TOtSDPhM6/ICBpICDOus6xzrkgz4DOu863zrrPhM+Bzr/Ou86/zrPOrs+Dz4TOtSDPhM65z4IgzrHPgM6xz4HOsc6vz4TOt8+EzrXPgiDPgM+Bzr/Pg864zq7Ous61z4IuCisKKyAgNC4gzprOsc64z47PgiDOtM65zr/Pgc64z47Ovc61z4TOtSDOus6szrjOtSDOu86szrjOv8+CIM+AzrHPhM6uz4PPhM61IDxFU0M+IM6zzrnOsSDOvc6xIM61z4DOuc+Dz4TPgc6tz4jOtc+EzrUgz4PPhM63zr0KKyAgICAgzprOsc69zr/Ovc65zrrOriDOms6xz4TOrM+Dz4TOsc+DzrcuIM6Vz4DOsc69zrHOu86szrLOtc+EzrUgz4TOsSDOss6uzrzOsc+EzrEgMiDOvM6tz4fPgc65IDQgzrPOuc6xIM69zrEgzrTOuc6/z4HOuM+Oz4POtc+EzrUKKyAgICAgz4TOt869IM+Az4HPjM+EzrHPg863LgorCistLS0+IFRoZXJlIGlzIHRleHQgbWlzbmcgdGhpcyAuCistLS0+IFRoZXJlIGlzIHNvbWUgdGV4dCBtaXNzaW5nIGZyb20gdGhpcyBsaW5lLgorCisgIDUuIM6Mz4TOsc69IM61zq/Pg8+EzrUgzqzOvc61z4TOv865IM68zrUgz4TOt869IM+AzrHPgc61zrzOss6/zrvOriDOus61zrnOvM6tzr3Ov8+FIM68zrXPhM6xzrrOuc69zrfOuM61zq/PhM61IM+Dz4TOt869CisgICAgIM+AzrHPgc6xzrrOrM+Ez4kgz4DOtc+Bzq/Ou863z4jOty4KKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkJICAgICAgIM6czpHOmM6XzpzOkSAxIM6gzpXOoc6ZzpvOl86ozpcKKworCisgIDEuIM6fIM60z4HOv868zq3Osc+CIM66zrnOvc61zq/PhM6xzrkgz4fPgc63z4POuc68zr/PgM6/zrnPjs69z4TOsc+CIM61zq/PhM61IM+EzrEgz4DOu86uzrrPhM+BzrEgzrTPgc6/zrzOrc6xIM6uIM+EzrEgaGprbC4KKwkgaCAozrHPgc65z4PPhM6tz4HOsSkJaiAozrrOrM+Ez4kpCWsgKM+AzqzOvc+JKQlsICjOtM61zr7Ouc6sKQorCisgIDIuIM6TzrnOsSDOvc6xIM68z4DOtc6vz4TOtSDPg8+Ezr/OvSBWaW0gKM6xz4DPjCDPhM63zr0gz4DPgc6/z4TPgc6/z4DOriAlKSDOs8+BzqzPiM+EzrU6ICB2aW0gzpHOoc6nzpXOmc6fIDxFTlRFUj4KKworICAzLiDOk865zrEgzr3OsSDOss6zzrXOr8+EzrUgzrPPgc6sz4jPhM61OiAgPEVTQz4gICA6cSEgICA8RU5URVI+ICAgzrPOuc6xIM6xz4DPjM+Bz4HOuc+Izrcgz4TPic69IM6xzrvOu86xzrPPjs69LgorCQkgzokgzrPPgc6sz4jPhM61OiAgPEVTQz4gICA6d3EgICA8RU5URVI+ICAgzrPOuc6xIM6xz4DOv864zq7Ous61z4XPg863IM+Ez4nOvSDOsc67zrvOsc6zz47OvS4KKworICA0LiDOk865zrEgzr3OsSDOtM65zrHOs8+BzqzPiM61z4TOtSDOrc69zrHOvSDPh86xz4HOsc66z4TOrs+BzrEgzrrOrM+Ez4kgzrHPgM+MIM+Ezr/OvSDOtM+Bzr/OvM6tzrEgz4POtQorICAgICDOms6xzr3Ov869zrnOus6uIM6azrHPhM6sz4PPhM6xz4POtyDPgM6xz4TOrs+Dz4TOtTogIHgKKworICA1LiDOk865zrEgzr3OsSDOtc65z4POrM6zzrXPhM61IM66zrXOr868zrXOvc6/IM+Dz4TOv869IM60z4HOv868zq3OsSDPjM+Dzr8gzrXOr8+Dz4TOtSDPg861IM6azrHOvc6/zr3Ouc66zq4gzprOsc+EzqzPg8+EzrHPg863IM6zz4HOrM+Iz4TOtToKKwkgaSAgICAgz4DOu863zrrPhM+Bzr/Ou86/zrPOrs+Dz4TOtSDPhM6/IM66zrXOr868zrXOvc6/CTxFU0M+CisKK86jzpfOnM6VzpnOqc6jzpc6IM6gzrHPhM+Ozr3PhM6xz4IgPEVTQz4gzrjOsSDPhM6/z4DOv864zrXPhM63zrjOtc6vz4TOtSDPg8+EzrfOvSDOms6xzr3Ov869zrnOus6uIM6azrHPhM6sz4PPhM6xz4POtyDOriDOuM6xCisJICDOsc66z4XPgc+Oz4POtc+EzrUgzrzOr86xIM6xzr3Otc+AzrnOuM+NzrzOt8+EzrcgzrrOsc65IM68zrXPgc65zrrPjs+CIM6/zrvOv866zrvOt8+Bz4nOvM6tzr3OtyDOtc69z4TOv867zq4uCisKK86kz47Pgc6xIM+Dz4XOvc61z4fOr8+Dz4TOtSDOvM61IM+Ezr8gzpzOrM64zrfOvM6xIDIuCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJCSDOnM6szrjOt868zrEgMi4xOiDOlc6dzqTOn86bzpXOoyDOlM6ZzpHOk86hzpHOps6XzqMKKworCSAqKiDOk8+BzqzPiM+EzrUgIGR3ICDOs865zrEgzr3OsSDOtM65zrHOs8+BzqzPiM61z4TOtSDOvM6tz4fPgc65IM+Ezr8gz4TOrc67zr/PgiDOvM6vzrHPgiDOu86tzr7Ot8+CLiAqKgorCisgIDEuIM6gzrHPhM6uz4PPhM61ICA8RVNDPiAgzrPOuc6xIM69zrEgzrLOtc6yzrHOuc+JzrjOtc6vz4TOtSDPjM+EzrkgzrXOr8+Dz4TOtSDPg8+EzrfOvSDOms6xzr3Ov869zrnOus6uIM6azrHPhM6sz4PPhM6xz4POty4KKworICAyLiDOnM61z4TOsc66zrnOvc61zq/Pg8+EzrUgz4TOv869IM60z4HOv868zq3OsSDPg8+EzrfOvSDPgM6xz4HOsc66zqzPhM+JIM6zz4HOsc68zrzOriDPg863zrzOtc65z4nOvM6tzr3OtyDOvM61IC0tLT4uCisKKyAgMy4gzqDOt86zzrHOr869zrXPhM61IM+Ezr/OvSDOtM+Bzr/OvM6tzrEgz4PPhM63zr0gzrHPgc+Hzq4gz4TOt8+CIM67zq3Ovs63z4Igz4DOv8+FIM+Az4HOrc+AzrXOuSDOvc6xIM60zrnOsc6zz4HOsc+GzrXOry4KKworICA0LiDOk8+BzqzPiM+EzrUgIGR3ICDOs865zrEgzr3OsSDOus6szr3Otc+EzrUgz4TOt869IM67zq3Ovs63IM69zrEgzrXOvs6xz4bOsc69zrnPg8+EzrXOry4KKworzqPOl86czpXOmc6pzqPOlzogzqTOsSDOs8+BzqzOvM68zrHPhM6xIGR3IM64zrEgzrXOvM+GzrHOvc65z4PPhM6/z43OvSDPg8+EzrfOvSDPhM61zrvOtc+Fz4TOsc6vzrEgzrPPgc6xzrzOvM6uIM+EzrfPgiDOv864z4zOvc63z4Igz4zPg86/CisJICDPhM6xIM+AzrvOt866z4TPgc6/zrvOv86zzrXOr8+EzrUuIM6Rzr0gzrPPgc6sz4jOsc+EzrUgzrrOrM+EzrkgzrvOrM64zr/Pgiwgz4DOsc+Ezq7Pg8+EzrUgIDxFU0M+ICDOus6xzrkKKwkgIM6+zrXOus65zr3Ors+Dz4TOtSDOsc+Az4wgz4TOt869IM6xz4HPh86uLgorCistLS0+IFRoZXJlIGFyZSBhIHNvbWUgd29yZHMgZnVuIHRoYXQgZG9uJ3QgYmVsb25nIHBhcGVyIGluIHRoaXMgc2VudGVuY2UuCisKKyAgNS4gzpXPgM6xzr3Osc67zqzOss61z4TOtSDPhM6xIM6yzq7OvM6xz4TOsSAzIM66zrHOuSA0IM68zq3Ph8+Bzrkgzrcgz4DPgc+Mz4TOsc+Dzrcgzr3OsSDOtc6vzr3Osc65IM+Dz4nPg8+Ezq4gzrrOsc65CisgICAgIM+AzrfOs86xzq/Ovc61z4TOtSDPg8+Ezr8gzpzOrM64zrfOvM6xIDIuMi4KKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkgICDOnM6szrjOt868zrEgMi4yOiDOoM6VzqHOmc6jzqPOn86kzpXOoc6VzqMgzpXOnc6kzp/Om86VzqMgzpTOmc6RzpPOoc6RzqbOl86jCisKKyAgICAqKiDOoM67zrfOus+Ez4HOv867zr/Os86uz4PPhM61ICBkJCAgzrPOuc6xIM69zrEgzrTOuc6xzrPPgc6sz4jOtc+EzrUgzrzOrc+Hz4HOuSDPhM6/IM+Ezq3Ou86/z4Igz4TOt8+CIM6zz4HOsc68zrzOrs+CLiAqKgorCisgIDEuIM6gzrHPhM6uz4PPhM61ICA8RVNDPiAgzrPOuc6xIM69zrEgzrLOtc6yzrHOuc+JzrjOtc6vz4TOtSDPjM+EzrkgzrXOr8+Dz4TOtSDPg8+EzrfOvSDOms6xzr3Ov869zrnOus6uIM6azrHPhM6sz4PPhM6xz4POty4KKworICAyLiDOnM61z4TOsc66zrnOvc61zq/Pg8+EzrUgz4TOv869IM60z4HOv868zq3OsSDPg8+EzrfOvSDPgM6xz4HOsc66zqzPhM+JIM6zz4HOsc68zrzOriDPg863zrzOtc65z4nOvM6tzr3OtyDOvM61IC0tLT4uCisKKyAgMy4gzpzOtc+EzrHOus65zr3Otc6vz4PPhM61IM+Ezr/OvSDOtM+Bzr/OvM6tzrEgz4PPhM6/IM+Ezq3Ou86/z4Igz4TOt8+CIM+Dz4nPg8+Ezq7PgiDOs8+BzrHOvM68zq7PgiAozpzOlc6kzpEgz4TOt869IM+Az4HPjs+EzrcgLiApLgorCisgIDQuIM6gzrHPhM6uz4PPhM61ICAgZCQgICDOs865zrEgzr3OsSDOtM65zrHOs8+BzqzPiM61z4TOtSDOvM6tz4fPgc65IM+Ezr8gz4TOrc67zr/PgiDPhM63z4IgzrPPgc6xzrzOvM6uz4IuCisKKy0tLT4gU29tZWJvZHkgdHlwZWQgdGhlIGVuZCBvZiB0aGlzIGxpbmUgdHdpY2UuIGVuZCBvZiB0aGlzIGxpbmUgdHdpY2UuCisKKyAgNS4gzqDOt86zzrHOr869zrXPhM61IM+Dz4TOvyDOnM6szrjOt868zrEgMi4zIM6zzrnOsSDOvc6xIM66zrHPhM6xzrvOrM6yzrXPhM61IM+Ezrkgz4PPhc68zrLOsc6vzr3Otc65LgorCisKKworCisKKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgIM6czqzOuM63zrzOsSAyLjM6IM6gzpXOoc6ZIM6Vzp3OpM6fzpvOqc6dIM6azpHOmSDOkc6dzqTOmc6azpXOmc6czpXOnc6pzp0KKworCivOlyDOvM6/z4HPhs6uIM+EzrfPgiDOtc69z4TOv867zq7PgiDOtM65zrHOs8+BzrHPhs6uz4IgIGQgIM61zq/Ovc6xzrkgz4nPgiDOtc6+zq7PgjoKKworCSBbzrHPgc65zrjOvM+Mz4JdICAgZCAgIM6xzr3PhM65zrrOtc6vzrzOtc69zr8JzokJZCAgIFvOsc+BzrnOuM68z4zPgl0gICDOsc69z4TOuc66zrXOr868zrXOvc6/CisgIM6Mz4DOv8+FOgorICAgIM6xz4HOuc64zrzPjM+CIC0gz4DPjM+DzrXPgiDPhs6/z4HOrc+CIM64zrEgzrXOus+EzrXOu861z4PPhM61zq8gzrcgzrXOvc+Ezr/Ou86uICjPgM+Bzr/Osc65z4HOtc+EzrnOus+MLCDOtc6+JyDOv8+BzrnPg868zr/PjT0xKS4KKyAgICBkIC0gzrcgzrXOvc+Ezr/Ou86uIM+EzrfPgiDOtM65zrHOs8+BzrHPhs6uz4IuCisgICAgzrHOvc+EzrnOus61zq/OvM61zr3OvyAtIM+AzqzOvc+JIM+DzrUgz4TOuSDOuM6xIM67zrXOuc+Ezr/Phc+BzrPOrs+DzrXOuSDOtyDOtc69z4TOv867zq4gKM+AzrHPgc6xzrrOrM+Ez4kgzrvOr8+Dz4TOsSkuCisKKyAgzpzOr86xIM68zrnOus+Bzq4gzrvOr8+Dz4TOsSDOsc+Az4wgzrHOvc+EzrnOus61zq/OvM61zr3OsToKKyAgICB3IC0gzrHPgM+MIM+Ezr/OvSDOtM+Bzr/OvM6tzrEgzrzOrc+Hz4HOuSDPhM6/IM+Ezq3Ou86/z4Igz4TOt8+CIM67zq3Ovs63z4IsIM+AzrXPgc65zrvOsc68zrLOrM69zr/Ovc+EzrHPgiDPhM6/IM60zrnOrM+Dz4TOt868zrEuCisgICAgZSAtIM6xz4DPjCDPhM6/zr0gzrTPgc6/zrzOrc6xIM68zq3Ph8+Bzrkgz4TOvyDPhM6tzrvOv8+CIM+EzrfPgiDOu86tzr7Ot8+CLCDOp86pzqHOmc6jIM+Ezr8gzrTOuc6sz4PPhM63zrzOsS4KKyAgICAkIC0gzrHPgM+MIM+Ezr/OvSDOtM+Bzr/OvM6tzrEgzrzOrc+Hz4HOuSDPhM6/IM+Ezq3Ou86/z4Igz4TOt8+CIM6zz4HOsc68zrzOrs+CLgorCivOo86XzpzOlc6ZzqnOo86XOiAgzpPOuc6xIM+Ezr/Phc+CIM+Ez43PgM6/z4XPgiDPhM63z4Igz4DOtc+BzrnPgM6tz4TOtc65zrHPgiwgz4DOsc+Ez47Ovc+EzrHPgiDOsc+AzrvPjs+CIM+Ezr8gzrHOvc+EzrnOus61zq/OvM61zr3OvyDPjM+Dzr8KKwkgICDOtc6vz4PPhM61IM+Dz4TOt869IM6azrHOvc6/zr3Ouc66zq4gzprOsc+EzqzPg8+EzrHPg863IM+Hz4nPgc6vz4IgzrrOrM+Azr/Ouc6xIM61zr3PhM6/zrvOriDOuM6xIM68zrXPhM6xzrrOuc69zq7Pg861z4TOtQorCSAgIM+Ezr/OvSDOtM+Bzr/OvM6tzrEgz4zPgM+Jz4IgzrrOsc64zr/Pgc6vzrbOtc+EzrHOuSDPg8+EzrfOvSDOu86vz4PPhM6xIM6xzr3PhM65zrrOtc65zrzOrc69z4nOvS4KKworCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkgICAgICAgzpzOrM64zrfOvM6xIDIuNDogzpzOmc6RIM6Vzp7Okc6ZzqHOlc6jzpcgzqPOpM6Xzp0gJ86Vzp3OpM6fzpvOly3Okc6dzqTOmc6azpXOmc6czpXOnc6fJworCisJICAgKiogzqDOu863zrrPhM+Bzr/Ou86/zrPOrs+Dz4TOtSAgZGQgIM6zzrnOsSDOvc6xIM60zrnOsc6zz4HOrM+IzrXPhM61IM+MzrvOtyDPhM63IM6zz4HOsc68zrzOri4gKioKKworICDOlc6+zrHOuc+Ezq/Osc+CIM+EzrfPgiDPg8+Fz4fOvc+Mz4TOt8+EzrHPgiDPhM63z4IgzrTOuc6xzrPPgc6xz4bOrs+CIM6/zrvPjM66zrvOt8+BzrfPgiDOs8+BzrHOvM68zq7Pgiwgzr/OuSDPg8+HzrXOtM65zrHPg8+Ezq3PggorICDPhM6/z4UgVmltIM6xz4DOv8+GzqzPg865z4POsc69IM+Mz4TOuSDOuM6xIM6uz4TOsc69IM61z4XOus6/zrvPjM+EzrXPgc6/IM69zrEgzrPPgc6sz4bOtc+EzrUgzrHPgM67z47PgiDOtM+Nzr8gZCDPg8+EzrcKKyAgz4POtc65z4HOrCDOs865zrEgzr3OsSDOtM65zrHOs8+BzqzPiM61z4TOtSDOvM6vzrEgzrPPgc6xzrzOvM6uLgorCisgIDEuIM6czrXPhM6xzrrOuc69zrXOr8+Dz4TOtSDPhM6/zr0gzrTPgc6/zrzOrc6xIM+Dz4TOtyDOtM61z43PhM61z4HOtyDOs8+BzrHOvM68zq4gz4TOt8+CIM+AzrHPgc6xzrrOrM+Ez4kgz4bPgc6sz4POt8+CLgorICAyLiDOk8+BzqzPiM+EzrUgIGRkICDOs865zrEgzr3OsSDOtM65zrHOs8+BzqzPiM61z4TOtSDPhM63IM6zz4HOsc68zrzOri4KKyAgMy4gzqTPjs+BzrEgzrzOtc+EzrHOus65zr3Ot864zrXOr8+EzrUgz4PPhM63zr0gz4TOrc+EzrHPgc+EzrcgzrPPgc6xzrzOvM6uLgorICA0LiDOk8+BzqzPiM+EzrUgIDJkZCAgKM64z4XOvM63zrjOtc6vz4TOtSAgzrHPgc65zrjOvM+Mz4ItzrXOvc+Ezr/Ou86uLc6xzr3PhM65zrrOtc6vzrzOtc69zr8pIM6zzrnOsSDOvc6xCisgICAgIM60zrnOsc6zz4HOrM+IzrXPhM61IM60z43OvyDOs8+BzrHOvM68zq3Pgi4KKworICAgICAgMSkgIFJvc2VzIGFyZSByZWQsCisgICAgICAyKSAgTXVkIGlzIGZ1biwKKyAgICAgIDMpICBWaW9sZXRzIGFyZSBibHVlLAorICAgICAgNCkgIEkgaGF2ZSBhIGNhciwKKyAgICAgIDUpICBDbG9ja3MgdGVsbCB0aW1lLAorICAgICAgNikgIFN1Z2FyIGlzIHN3ZWV0CisgICAgICA3KSAgQW5kIHNvIGFyZSB5b3UuCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJCSDOnM6szrjOt868zrEgMi41OiDOlyDOlc6dzqTOn86bzpcgzpHOnc6RzpnOoc6VzqPOl86jCisKKwkgICAgKiogzqDOsc+Ezq7Pg8+EzrUgIHUgIM6zzrnOsSDOvc6xIM6xzr3Osc65z4HOrc+DzrXPhM61IM+EzrnPgiDPhM61zrvOtc+Fz4TOsc6vzrXPgiDOtc69z4TOv867zq3PgiwKKwkgICAgICAgVSDOs865zrEgzr3OsSDOtM65zr/Pgc64z47Pg861z4TOtSDPjM67zrcgz4TOtyDOs8+BzrHOvM68zq4uICoqCisKKyAgMS4gzpzOtc+EzrHOus65zr3Otc6vz4PPhM61IM+Ezr/OvSDOtM+Bzr/OvM6tzrEgz4PPhM63zr0gz4DOsc+BzrHOus6sz4TPiSDOs8+BzrHOvM68zq4gz4POt868zrXOuc+JzrzOrc69zrcgzrzOtSAtLS0+IM66zrHOuQorICAgICDPhM6/z4DOv864zrXPhM6uz4PPhM61IM+Ezr/OvSDPgM6szr3PiSDPg8+Ezr8gz4DPgc+Oz4TOvyDOu86szrjOv8+CLgorICAyLiDOoM6xz4TOrs+Dz4TOtSAgeCAgzrPOuc6xIM69zrEgzrTOuc6xzrPPgc6sz4jOtc+EzrUgz4TOv869IM+Az4HPjs+Ezr8gzrHOvc61z4DOuc64z43OvM63z4TOvyDPh86xz4HOsc66z4TOrs+BzrEuCisgIDMuIM6kz47Pgc6xIM+AzrHPhM6uz4PPhM61ICB1ICDOs865zrEgzr3OsSDOsc69zrHOuc+Bzq3Pg861z4TOtSDPhM63zr0gz4TOtc67zrXPhc+EzrHOr86xIM61zrrPhM61zrvOtc+DzrzOrc69zrcgzrXOvc+Ezr/Ou86uLgorICA0LiDOkc+Fz4TOriDPhM63IM+Gzr/Pgc6sIM60zrnOv8+BzrjPjs+Dz4TOtSDPjM67zrEgz4TOsSDOu86szrjOtyDPg8+EzrcgzrPPgc6xzrzOvM6uIM+Hz4HOt8+DzrnOvM6/z4DOv865z47Ovc+EzrHPgiDPhM63zr0gzrXOvc+Ezr/Ou86uIHguCisgIDUuIM6kz47Pgc6xIM+AzrHPhM6uz4PPhM61IM6tzr3OsSDOus61z4bOsc67zrHOr86/ICBVICDOs865zrEgzr3OsSDOtc+AzrnPg8+Ez4HOrc+IzrXPhM61IM+EzrcgzrPPgc6xzrzOvM6uIM+Dz4TOt869IM6xz4HPh865zrrOrgorICAgICDPhM63z4IgzrrOsc+EzqzPg8+EzrHPg863LgorICA2LiDOpM+Oz4HOsSDPgM6xz4TOrs+Dz4TOtSAgdSAgzrzOtc+BzrnOus6tz4Igz4bOv8+Bzq3PgiDOs865zrEgzr3OsSDOsc69zrHOuc+Bzq3Pg861z4TOtSDPhM63zr0gIFUgIM66zrHOuQorICAgICDPgM+Bzr/Ot86zzr/Pjc68zrXOvc61z4IgzrXOvc+Ezr/Ou86tz4IuCisgIDcuIM6kz47Pgc6xIM+AzrHPhM6uz4PPhM61IENUUkwtUiAozrrPgc6xz4TPjs69z4TOsc+CIM+AzrHPhM63zrzOrc69zr8gz4TOvyDPgM67zq7Ous+Ez4HOvyBDVFJMIM66zrHOuM+Oz4Igz4DOsc+EzqzPhM61IM+Ezr8gUikKKyAgICAgzrzOtc+BzrnOus6tz4Igz4bOv8+Bzq3PgiDOs865zrEgzr3OsSDOtc+AzrHOvc6xz4bOrc+BzrXPhM61IM+EzrnPgiDOtc69z4TOv867zq3PgiAozrHOvc6xzq/Pgc61z4POtyDPhM+Jzr0gzrHOvc6xzrnPgc6tz4POtc+Jzr0pLgorCistLS0+IEZpaXggdGhlIGVycm9ycyBvb24gdGhoaXMgbGluZSBhbmQgcmVlcGxhY2UgdGhlbSB3aXR0aCB1bmRvLgorCisgIDguIM6Rz4XPhM6tz4IgzrXOr869zrHOuSDPgM6/zrvPjSDPh8+Bzq7Pg865zrzOtc+CIM61zr3PhM6/zrvOrc+CLiAgzqTPjs+BzrEgz4DOt86zzrHOr869zrXPhM61IM+Dz4TOt869CisgICAgIM6gzrXPgc6vzrvOt8+Izrcgz4TOv8+FIM6czrHOuM6uzrzOsc+Ezr/PgiAyLgorCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQkgICAgICAgzpzOkc6YzpfOnM6RIDIgzqDOlc6hzpnOm86XzqjOlworCisKKyAgMS4gzpPOuc6xIM69zrEgzrTOuc6xzrPPgc6sz4jOtc+EzrUgzrHPgM+MIM+Ezr/OvSDOtM+Bzr/OvM6tzrEgzrzOrc+Hz4HOuSDPhM6/IM+Ezq3Ou86/z4IgzrvOrc6+zrfPgiDOs8+BzqzPiM+EzrU6ICAgICAgZHcKKworICAyLiDOk865zrEgzr3OsSDOtM65zrHOs8+BzqzPiM61z4TOtSDOsc+Az4wgz4TOv869IM60z4HOv868zq3OsSDOvM6tz4fPgc65IM+Ezr8gz4TOrc67zr/PgiDOs8+BzrHOvM68zq7PgiDOs8+BzqzPiM+EzrU6ICAgIGQkCisKKyAgMy4gzpPOuc6xIM69zrEgzrTOuc6xzrPPgc6sz4jOtc+EzrUgzr/Ou8+MzrrOu863z4HOtyDPhM63IM6zz4HOsc68zrzOriDOs8+BzqzPiM+EzrU6ICAgIGRkCisKKyAgNC4gzpcgzrzOv8+Bz4bOriDOs865zrEgzrzOr86xIM61zr3PhM6/zrvOriDPg8+EzrfOvSDOms6xzr3Ov869zrnOus6uIM6azrHPhM6sz4PPhM6xz4POtyDOtc6vzr3Osc65OgorCisgICAgICBbzrHPgc65zrjOvM+Mz4JdICAgzrXOvc+Ezr/Ou86uICAgzrHOvc+EzrnOus61zq/OvM61zr3OvyAgICDOiSAgICDOtc69z4TOv867zq4gICBbzrHPgc65zrjOvM+Mz4JdICAgzrHOvc+EzrnOus61zq/OvM61zr3OvworICAgICDPjM+Azr/PhToKKyAgICAgICDOsc+BzrnOuM68z4zPgiAtIM+Az4zPg861z4Igz4bOv8+Bzq3PgiDOvc6xIM61z4DOsc69zrHOu863z4bOuM61zq8gzrcgzrXOvc+Ezr/Ou86uCisgICAgICAgzrXOvc+Ezr/Ou86uIC0gz4TOuSDOvc6xIM6zzq/Ovc61zrksIM+Mz4DPic+CIM63ICBkICDOs865zrEgzrTOuc6xzrPPgc6xz4bOrgorICAgICAgIM6xzr3PhM65zrrOtc6vzrzOtc69zr8gLSDPgM6szr3PiSDPg861IM+Ezrkgzr3OsSDOtc69zrXPgc6zzq7Pg861zrkgzrcgzrXOvc+Ezr/Ou86uLCDPjM+Az4nPgiAgdyAgKM67zq3Ovs63KSwKKwkJICAgICAkICjPhM6tzrvOv8+CIM+EzrfPgiDOs8+BzrHOvM68zq7PgiksIM66z4TOuy4KKworICA1LiDOk865zrEgzr3OsSDOsc69zrHOuc+Bzq3Pg861z4TOtSDPgM+Bzr/Ot86zzr/Pjc68zrXOvc61z4IgzrXOvc6tz4HOs861zrnOtc+CLCDPgM6xz4TOrs+Dz4TOtTogICAgICAgIHUgICAoz4DOtc62z4wgdSkKKyAgICAgzpPOuc6xIM69zrEgzrHOvc6xzrnPgc6tz4POtc+EzrUgz4zOu861z4Igz4TOuc+CIM6xzrvOu86xzrPOrc+CIM+Dz4TOtyDOs8+BzrHOvM68zq4sIM+AzrHPhM6uz4PPhM61OiAgVSAgKM66zrXPhs6xzrvOsc6vzr8gVSkKKyAgICAgzpPOuc6xIM69zrEgzrHOvc6xzrnPgc6tz4POtc+EzrUgz4TOuc+CIM6xzr3Osc65z4HOrc+DzrXOuc+CLCDPgM6xz4TOrs+Dz4TOtTogICAgICAgICAgICAgICBDVFJMLVIKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkJzpzOrM64zrfOvM6xIDMuMTogzpcgzpXOnc6kzp/Om86XIM6kzp/OoM6fzpjOlc6kzpfOo86XzqMKKworCisgICoqIM6gzrHPhM6uz4PPhM61ICBwICDOs865zrEgzr3OsSDPhM6/z4DOv864zrXPhM6uz4POtc+EzrUgz4TOt869IM+EzrXOu861z4XPhM6xzq/OsSDOtM65zrHOs8+BzrHPhs6uIM68zrXPhM6sIM+Ezr/OvSDOtM+Bzr/OvM6tzrEuICAqKgorCisgIDEuIM6czrXPhM6xzrrOuc69zrXOr8+Dz4TOtSDPhM6/zr0gzrTPgc6/zrzOrc6xIM+Dz4TOt869IM+Az4HPjs+EzrcgzrPPgc6xzrzOvM6uIM+EzrfPgiDPgM6xz4HOsc66zqzPhM+JIM6/zrzOrM60zrHPgi4KKworICAyLiDOoM6xz4TOrs+Dz4TOtSAgZGQgIM6zzrnOsSDOvc6xIM60zrnOsc6zz4HOrM+IzrXPhM61IM+EzrcgzrPPgc6xzrzOvM6uIM66zrHOuSDOvc6xIM+EzrfOvSDOsc+Azr/OuM63zrrOtc+Nz4POtc+EzrUgz4POtQorICAgICDPgM+Bzr/Pg8+Jz4HOuc69zq4gzrzOvc6uzrzOtyDPhM6/z4UgVmltLgorCisgIDMuIM6czrXPhM6xzrrOuc69zrXOr8+Dz4TOtSDPhM6/zr0gzrTPgc6/zrzOrc6xIM+Dz4TOtyDOs8+BzrHOvM68zq4gzqDOkc6dzqkgzrHPgM+MIM61zrrOtc6vIM+Azr/PhSDOuM6xIM+Az4HOrc+AzrXOuSDOvc6xIM+AzqzOtc65CisgICAgIM63IM60zrnOsc6zz4HOsc68zrzOrc69zrcgzrPPgc6xzrzOvM6uLgorCisgIDQuIM6Mz4POvyDOtc6vz4PPhM61IM+DzrUgzprOsc69zr/Ovc65zrrOriDOms6xz4TOrM+Dz4TOsc+DzrcsIM+AzrHPhM6uz4PPhM61ICBwICDOs865zrEgzr3OsSDOss6szrvOtc+EzrUgz4TOtyDOs8+BzrHOvM68zq4uCisKKyAgNS4gzpXPgM6xzr3Osc67zqzOss61z4TOtSDPhM6xIM6yzq7OvM6xz4TOsSAyIM6tz4nPgiA0IM6zzrnOsSDOvc6xIM6yzqzOu861z4TOtSDPjM67zrXPgiDPhM65z4IgzrPPgc6xzrzOvM6tz4Igz4PPhM63CisgICAgIM+Dz4nPg8+Ezq4gz4POtc65z4HOrC4KKworICAgICBkKSBDYW4geW91IGxlYXJuIHRvbz8KKyAgICAgYikgVmlvbGV0cyBhcmUgYmx1ZSwKKyAgICAgYykgSW50ZWxsaWdlbmNlIGlzIGxlYXJuZWQsCisgICAgIGEpIFJvc2VzIGFyZSByZWQsCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJICAgICAgzpzOrM64zrfOvM6xIDMuMjogzpcgzpXOnc6kzp/Om86XIM6Rzp3OpM6ZzprOkc6kzpHOo86kzpHOo86XzqMKKworCisgICAgKiogzqDOsc+Ezq7Pg8+EzrUgIHIgIM66zrHOuSDPh86xz4HOsc66z4TOrs+BzrEgzrPOuc6xIM69zrEgzrHOu867zqzOvs61z4TOtSDOsc+Fz4TPjM69IM+Azr/PhSDOtc6vzr3Osc65CisgICAgICAgzrrOrM+Ez4kgzrHPgM+MIM+Ezr/OvSDOtM+Bzr/OvM6tzrEuICoqCisKKyAgMS4gzpzOtc+EzrHOus65zr3Otc6vz4PPhM61IM+Ezr/OvSDOtM+Bzr/OvM6tzrEgz4PPhM63zr0gz4DPgc+Oz4TOtyDOs8+BzrHOvM68zq4gz4DOsc+BzrHOus6sz4TPiSDPg863zrzOtc65z4nOvM6tzr3OtyDOvM61IC0tLT4uCisKKyAgMi4gzpzOtc+EzrHOus65zr3Otc6vz4PPhM61IM+Ezr/OvSDOtM+Bzr/OvM6tzrEgzq3PhM+Dzrkgz47Pg8+EzrUgzr3OsSDOtc6vzr3Osc65IM+AzqzOvc+JIM+Dz4TOvyDPgM+Bz47PhM6/IM67zqzOuM6/z4IuCisKKyAgMy4gzqDOsc+Ezq7Pg8+EzrUgIHIgIM66zrHOuSDOvM61z4TOrCDPhM6/zr0gz4fOsc+BzrHOus+Ezq7Pgc6xIM6/IM6/z4DOv86vzr/PgiDOtM65zr/Pgc64z47Ovc61zrkgz4TOvyDOu86szrjOv8+CLgorCisgIDQuIM6Vz4DOsc69zrHOu86szrLOtc+EzrUgz4TOsSDOss6uzrzOsc+EzrEgMiDOus6xzrkgMyDOvM6tz4fPgc65IM69zrEgzrXOr869zrHOuSDPg8+Jz4PPhM6uIM63IM+Az4HPjs+EzrcgzrPPgc6xzrzOvM6uLgorCistLS0+ICBXaGFuIHRoaXMgbGltZSB3YXMgdHVvZWQgaW4sIHNvbWVvbmUgcHJlc3N3ZCBzb21lIHdyb2pnIGtleXMhCistLS0+ICBXaGVuIHRoaXMgbGluZSB3YXMgdHlwZWQgaW4sIHNvbWVvbmUgcHJlc3NlZCBzb21lIHdyb25nIGtleXMhCisKKyAgNS4gzqTPjs+BzrEgz4DOt86zzrHOr869zrXPhM61IM+Dz4TOvyDOnM6szrjOt868zrEgMy4yLgorCivOo86XzpzOlc6ZzqnOo86XOiDOnc6xIM64z4XOvM6sz4PPhM61IM+Mz4TOuSDPgM+Bzq3PgM61zrkgzr3OsSDOvM6xzrjOsc6vzr3Otc+EzrUgzrzOtSDPhM63IM+Hz4HOrs+DzrcsIM66zrHOuSDPjM+HzrkgzrzOtQorCSAgz4TOt869IM6xz4DOv868zr3Ot868z4zOvc61z4XPg863LgorCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQkgIM6czqzOuM63zrzOsSAzLjM6IM6XIM6Vzp3OpM6fzpvOlyDOkc6bzpvOkc6TzpfOoworCisJICAgKiogzpPOuc6xIM69zrEgzrHOu867zqzOvs61z4TOtSDPhM68zq7OvM6xIM6uIM+MzrvOtyDPhM63IM67zq3Ovs63LCDPgM6xz4TOrs+Dz4TOtSAgY3cgIC4gKioKKworICAxLiDOnM61z4TOsc66zrnOvc61zq/Pg8+EzrUgz4TOv869IM60z4HOv868zq3OsSDPg8+EzrfOvSDPgM+Bz47PhM63IM6zz4HOsc68zrzOriDPgM6xz4HOsc66zqzPhM+JIM+DzrfOvM61zrnPic68zq3Ovc63IM68zrUgLS0tPi4KKworICAyLiDOpM6/z4DOv864zrXPhM6uz4PPhM61IM+Ezr/OvSDOtM+Bzr/OvM6tzrEgz4DOrM69z4kgz4PPhM6/IHUgz4TOt8+CIM67zq3Ovs63z4IgbHVidy4KKworICAzLiDOoM6xz4TOrs+Dz4TOtSAgY3cgIM66zrHOuSDPhM63IM+Dz4nPg8+Ezq4gzrvOrc6+zrcgKM+Dz4TOt869IM+AzrXPgc6vz4DPhM+Jz4POtyDOsc+Fz4TOriwgzrPPgc6sz4jPhM61ICAnaW5lJy4pCisKKyAgNC4gzqDOsc+Ezq7Pg8+EzrUgPEVTQz4gzrrOsc65IM+AzrfOs86xzq/Ovc61z4TOtSDPg8+Ezr8gzrXPgM+MzrzOtc69zr8gzrvOrM64zr/PgiAoz4PPhM6/zr0gz4DPgc+Oz4TOvworICAgICDPh86xz4HOsc66z4TOrs+BzrEgz4DPgc6/z4IgzrHOu867zrHOs86uKS4KKworICA1LiDOlc+AzrHOvc6xzrvOrM6yzrXPhM61IM+EzrEgzrLOrs68zrHPhM6xIDMgzrrOsc65IDQgzrzOrc+Hz4HOuc+CIM+Mz4TOv8+FIM63IM+Az4HPjs+Ezrcgz4DPgc+Mz4TOsc+Dzrcgzr3OsSDOtc6vzr3Osc65CisgICAgIM6vzrTOuc6xIM68zrUgz4TOtyDOtM61z43PhM61z4HOty4KKworLS0tPiBUaGlzIGx1YncgaGFzIGEgZmV3IHdwdGZkIHRoYXQgbXJyZiBjaGFuZ2luZyB1c2YgdGhlIGNoYW5nZSBjb21tYW5kLgorLS0tPiBUaGlzIGxpbmUgaGFzIGEgZmV3IHdvcmRzIHRoYXQgbmVlZCBjaGFuZ2luZyB1c2luZyB0aGUgY2hhbmdlIGNvbW1hbmQuCisKK86gzrHPgc6xz4TOt8+BzrXOr8+Dz4TOtSDPjM+EzrkgzrcgIGN3ICDPjM+HzrkgzrzPjM69zr8gzrHOvc+EzrnOus6xzrjOuc+Dz4TOrM61zrkgz4TOtyDOu86tzr7OtywgzrHOu867zqwgz4POsc+CIM61zrnPg86szrPOtc65CivOtc+Azq/Pg863z4Igz4POtSDPgM6xz4HOtc68zrLOv867zq4uCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJICAgICDOnM6szrjOt868zrEgMy40OiDOoM6VzqHOmc6jzqPOn86kzpXOoc6VzqMgzpHOm86bzpHOk86VzqMgzpzOlSBjCisKKworICAqKiDOlyDOtc69z4TOv867zq4gzrHOu867zrHOs86uz4Igz4fPgc63z4POuc68zr/PgM6/zrnOtc6vz4TOsc65IM68zrUgz4TOsSDOr860zrnOsSDOsc69z4TOuc66zrXOr868zrXOvc6xIM+EzrfPgiDOtM65zrHOs8+BzrHPhs6uz4IuICoqCisKKworICAxLiDOlyDOtc69z4TOv867zq4gzrHOu867zrHOs86uz4IgzrTOv8+FzrvOtc+NzrXOuSDOvM61IM+Ezr/OvSDOr860zrnOvyDPhM+Bz4zPgM6/IM+Mz4DPic+CIM63IM60zrnOsc6zz4HOsc+Gzq4uIM6XIM68zr/Pgc+Gzq4gzrXOr869zrHOuToKKworICAgICAgIFvOsc+BzrnOuM68z4zPgl0gICBjICAgzrHOvc+EzrnOus61zq/OvM61zr3OvyAgICAgzokgICAgIGMgICBbzrHPgc65zrjOvM+Mz4JdICAgzrHOvc+EzrnOus61zq/OvM61zr3OvworCisgIDIuIM6kzrEgzrHOvc+EzrnOus61zq/OvM61zr3OsSDOtc6vzr3Osc65IM+AzqzOu865IM+EzrEgzq/OtM65zrEsIM+Mz4DPic+CIHcgKM67zq3Ovs63KSwgJCAoz4TOrc67zr/PgiDOs8+BzrHOvM68zq7PgiksIM66z4TOuy4KKworICAzLiDOnM61z4TOsc66zrnOvc63zrjOtc6vz4TOtSDPg8+EzrfOvSDPgM+Bz47PhM63IM6zz4HOsc68zrzOriDPgM6xz4HOsc66zqzPhM+JIM+DzrfOvM61zrnPic68zq3Ovc63IM68zrUgLS0tPi4KKworICA0LiDOnM61z4TOsc66zrnOvc61zq/Pg8+EzrUgz4TOv869IM60z4HOv868zq3OsSDPg8+Ezr8gz4DPgc+Oz4TOvyDOu86szrjOv8+CLgorCisgIDUuIM6Tz4HOrM+Iz4TOtSAgYyQgIM6zzrnOsSDOvc6xIM66zqzOvc61z4TOtSDPhM6/IM+Fz4DPjM67zr/Ouc+Azr8gz4TOt8+CIM6zz4HOsc68zrzOrs+CIM6vzrTOuc6/IM68zrUgz4TOtyDOtM61z43PhM61z4HOtworICAgICDOus6xzrkgz4DOsc+Ezq7Pg8+EzrUgPEVTQz4uCisKKy0tLT4gVGhlIGVuZCBvZiB0aGlzIGxpbmUgbmVlZHMgc29tZSBoZWxwIHRvIG1ha2UgaXQgbGlrZSB0aGUgc2Vjb25kLgorLS0tPiBUaGUgZW5kIG9mIHRoaXMgbGluZSBuZWVkcyB0byBiZSBjb3JyZWN0ZWQgdXNpbmcgdGhlICBjJCAgY29tbWFuZC4KKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQkgICAgICAgzpzOkc6YzpfOnM6RIDMgzqDOlc6hzpnOm86XzqjOlworCisKKyAgMS4gzpPOuc6xIM69zrEgz4TOv8+Azr/OuM61z4TOrs+DzrXPhM61IM66zrXOr868zrXOvc6/IM+Azr/PhSDOvM+MzrvOuc+CIM6tz4fOtc65IM60zrnOsc6zz4HOsc+GzrXOrywgz4DOsc+Ezq7Pg8+EzrUgIHAgLgorICAgICDOkc+Fz4TPjCDPhM6/z4DOv864zrXPhM61zq8gz4TOvyDOtM65zrHOs8+BzrHOvM68zq3Ovc6/IM66zrXOr868zrXOvc6/IM6czpXOpM6RIM+Ezr/OvSDOtM+Bzr/OvM6tzrEgKM6xzr0gzrTOuc6xzrPPgc6sz4bPhM63zrrOtQorICAgICDOs8+BzrHOvM68zq4gzrjOsSDPgM6szrXOuSDOvM61z4TOrCDPg8+EzrcgzrPPgc6xzrzOvM6uIM66zqzPhM+JIM6xz4DPjCDPhM6/zr0gzrTPgc6/zrzOrc6xLgorCisgIDIuIM6TzrnOsSDOvc6xIM6xzr3PhM65zrrOsc+EzrHPg8+Ezq7Pg861z4TOtSDPhM6/zr0gz4fOsc+BzrHOus+Ezq7Pgc6xIM66zqzPhM+JIM6xz4DPjCDPhM6/zr0gzrTPgc6/zrzOrc6xLCDPgM6xz4TOrs+Dz4TOtSAgcgorICAgICDOus6xzrkgzrzOtc+Ezqwgz4TOv869IM+HzrHPgc6xzrrPhM6uz4HOsSDPgM6/z4UgzrjOsSDOsc69z4TOuc66zrHPhM6xz4PPhM6uz4POtc65IM+Ezr/OvSDOsc+Bz4fOuc66z4wuCisKKyAgMy4gzpcgzrXOvc+Ezr/Ou86uIM6xzrvOu86xzrPOrs+CIM+DzrHPgiDOtc+AzrnPhM+Bzq3PgM61zrkgzr3OsSDOsc67zrvOrM6+zrXPhM61IM+Ezr8gzrrOsc64zr/Pgc65z4POvM6tzr3OvyDOsc69z4TOuc66zrXOr868zrXOvc6/CisgICAgIM6xz4DPjCDPhM6/zr0gzrTPgc6/zrzOrc6xIM68zq3Ph8+Bzrkgz4TOvyDPhM6tzrvOv8+CIM+Ezr/PhSDOsc69z4TOuc66zrXOr868zrXOvc6/LiDOoC7Phy4gzrPPgc6sz4jPhM61ICBjdyAgzrPOuc6xIM69zrEKKyAgICAgzrHOu867zqzOvs61z4TOtSDOsc+Az4wgz4TOv869IM60z4HOv868zq3OsSDOvM6tz4fPgc65IM+Ezr8gz4TOrc67zr/PgiDPhM63z4IgzrvOrc6+zrfPgiwgYyQgzrPOuc6xIM69zrEgzrHOu867zqzOvs61z4TOtQorICAgICDOvM6tz4fPgc65IM+Ezr8gz4TOrc67zr/PgiDOs8+BzrHOvM68zq7Pgi4KKworICA0LiDOlyDOvM6/z4HPhs6uIM6zzrnOsSDPhM63zr0gzrHOu867zrHOs86uIM61zq/Ovc6xzrk6CisKKwkgW86xz4HOuc64zrzPjM+CXSAgIGMgICDOsc69z4TOuc66zrXOr868zrXOvc6/ICAgICDOiSAgICAgYyAgIFvOsc+BzrnOuM68z4zPgl0gICDOsc69z4TOuc66zrXOr868zrXOvc6/CisKK86kz47Pgc6xIM+Dz4XOvc61z4fOr8+Dz4TOtSDOvM61IM+Ezr8gzrXPgM+MzrzOtc69zr8gzrzOrM64zrfOvM6xLgorCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJICAgICDOnM6szrjOt868zrEgNC4xOiDOmM6VzqPOlyDOms6RzpkgzprOkc6kzpHOo86kzpHOo86XIM6RzqHOp86VzpnOn86lCisKKworICoqIM6gzrHPhM6uz4PPhM61IENUUkwtZyDOs865zrEgzr3OsSDOtc68z4bOsc69zrnPg8+EzrXOryDOtyDOuM6tz4POtyDPg86xz4Igz4PPhM6/IM6xz4HPh861zq/OvyDOus6xzrkgzrcgzrrOsc+EzqzPg8+EzrHPg86uIM+Ezr/PhS4KKyAgICDOoM6xz4TOrs+Dz4TOtSBTSElGVC1HIM6zzrnOsSDOvc6xIM+AzqzPhM61IM+DzrUgzrzOr86xIM6zz4HOsc68zrzOriDPg8+Ezr8gzrHPgc+HzrXOr86/LiAqKgorCisgIM6jzrfOvM61zq/Pic+Dzrc6IM6UzrnOsc6yzqzPg8+EzrUgzr/Ou8+MzrrOu863z4HOvyDPhM6/IM68zqzOuM63zrzOsSDPgM+BzrnOvSDOtc66z4TOtc67zq3Pg861z4TOtSDOus6sz4DOv865zr8gzrHPgM+MIM+EzrEgzrLOrs68zrHPhM6xISEKKworICAxLiDOms+BzrHPhM6uz4PPhM61IM+AzrHPhM63zrzOrc69zr8gz4TOvyDPgM67zq7Ous+Ez4HOvyBDdHJsIM66zrHOuSDPgM6xz4TOrs+Dz4TOtSAgZyAuIM6czq/OsSDOs8+BzrHOvM68zq4gzrrOsc+EzqzPg8+EzrHPg863z4IKKyAgICAgzrjOsSDOtc68z4bOsc69zrnPg8+EzrXOryDPg8+Ezr8gzrrOrM+Ez4kgzrzOrc+Bzr/PgiDPhM63z4Igz4POtc67zq/OtM6xz4IgzrzOtSDPhM6/IM+Mzr3Ov868zrEgzrHPgc+HzrXOr86/z4UgzrrOsc65IM+EzrcKKyAgICAgzrPPgc6xzrzOvM6uIM+Azr/PhSDOtc6vz4PPhM61LiDOmM+FzrzOt864zrXOr8+EzrUgz4TOv869IM6xz4HOuc64zrzPjCDOs8+BzrHOvM68zq7PgiDOs865zrEgz4TOvyDOks6uzrzOsSAzLgorCisgIDIuIM6gzrHPhM6uz4PPhM61IHNoaWZ0LUcgzrPOuc6xIM69zrEgzrzOtc+EzrHOus65zr3Ot864zrXOr8+EzrUgz4PPhM6/IM+Ezq3Ou86/z4Igz4TOv8+FIM6xz4HPh861zq/Ov8+FLgorCisgIDMuIM6gzrHPhM6uz4PPhM61IM+Ezr/OvSDOsc+BzrnOuM68z4wgz4TOt8+CIM6zz4HOsc68zrzOrs+CIM+Azr/PhSDOrs+DzrHPg8+EzrHOvSDOus6xzrkgzrzOtc+Ezqwgc2hpZnQtRy4gzpHPhc+Ez4wgzrjOsQorICAgICDPg86xz4IgzrXPgM65z4PPhM+Bzq3PiM61zrkgz4PPhM63IM6zz4HOsc68zrzOriDPgM6/z4Ugzq7Pg86xz4PPhM6xzr0gz4DPgc65zr0gz4DOsc+Ezq7Pg861z4TOtSDOs865zrEgz4DPgc+Oz4TOtyDPhs6/z4HOrCBDdHJsLWcuCisgICAgICjOjM+EzrHOvSDPgM67zrfOus+Ez4HOv867zr/Os861zq/PhM61IM+Ezr/Phc+CIM6xz4HOuc64zrzOv8+Nz4IsIM6UzpXOnSDOuM6xIM61zrzPhs6xzr3Or862zr/Ovc+EzrHOuSDPg8+EzrfOvSDOv864z4zOvc63KS4KKworICA0LiDOkc69IM69zr/Ouc+OzrjOtc+EzrUgz4POr86zzr/Phc+Bzr/PgiDOs865zrEgzrHPhc+Ez4wsIM61zrrPhM61zrvOrc+Dz4TOtSDPhM6xIM6yzq7OvM6xz4TOsSAxIM6tz4nPgiAzLgorCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkJzpzOrM64zrfOvM6xIDQuMjogzpcgzpXOnc6kzp/Om86XIM6Rzp3Okc6WzpfOpM6XzqPOl86jCisKKworCSAgKiogzqDOsc+Ezq7Pg8+EzrUgICAvICAgzrHOus6/zrvOv8+FzrjOv8+NzrzOtc69zr8gzrHPgM+MIM+Ezrcgz4bPgc6sz4POtyDPgM6/z4Ugz4jOrM+Hzr3Otc+EzrUuICoqCisKKyAgMS4gzqPOtSDOms6xzr3Ov869zrnOus6uIM6azrHPhM6sz4PPhM6xz4POtyDPgM6xz4TOrs+Dz4TOtSDPhM6/zr0gz4fOsc+BzrHOus+Ezq7Pgc6xICAvIC4gzqDOsc+BzrHPhM63z4HOrs+Dz4TOtSDPjM+EzrkgzrHPhc+Ez4zPgiDOus6xzrkKKyAgICAgzr8gzrTPgc6/zrzOrc6xz4IgzrXOvM+GzrHOvc6vzrbOv869z4TOsc65IM+Dz4TOvyDOus6sz4TPiSDOvM6tz4HOv8+CIM+EzrfPgiDOv864z4zOvc63z4Igz4zPgM+Jz4IgzrzOtSDPhM63zr0gzrXOvc+Ezr/Ou86uICA6IC4KKworICAyLiDOpM+Oz4HOsSDOs8+BzqzPiM+EzrUgJ2VycnJvb3InIDxFTlRFUj4uIM6Rz4XPhM6uIM61zq/Ovc6xzrkgzrcgzrvOrc6+zrcgz4DOv8+FIM64zq3Ou861z4TOtSDOvc6xIM+IzqzOvs61z4TOtS4KKworICAzLiDOk865zrEgzr3OsSDPiM6szr7Otc+EzrUgzr7Osc69zqwgzrPOuc6xIM+EzrfOvSDOr860zrnOsSDPhs+BzqzPg863LCDPgM6xz4TOrs+Dz4TOtSDOsc+AzrvPjs+CICBuIC4KKyAgICAgzpPOuc6xIM69zrEgz4jOrM6+zrXPhM61IM+EzrfOvSDOr860zrnOsSDPhs+BzqzPg863IM+Dz4TOt869IM6xzr3PhM6vzrjOtc+EzrcgzrrOsc+EzrXPjc64z4XOvc+DzrcsIM+AzrHPhM6uz4PPhM61ICBTaGlmdC1OIC4KKworICA0LiDOkc69IM64zq3Ou861z4TOtSDOvc6xIM+IzqzOvs61z4TOtSDOs865zrEgzrzOr86xIM+Gz4HOrM+Dzrcgz4DPgc6/z4Igz4TOsSDPgM6vz4PPiSwgz4fPgc63z4POuc68zr/PgM6/zrnOrs+Dz4TOtSDPhM63zr0gzrXOvc+Ezr/Ou86uICA/ICDOsc69z4TOryDPhM63z4IgIC8gLgorCistLS0+IM6Mz4TOsc69IM63IM6xzr3Osc62zq7PhM63z4POtyDPhs+EzqzPg861zrkgz4PPhM6/IM+Ezq3Ou86/z4Igz4TOv8+FIM6xz4HPh861zq/Ov8+FIM64zrEgz4PPhc69zrXPh86vz4POtc65IM6xz4DPjCDPhM63zr0gzrHPgc+Hzq4uCisKKyAgImVycnJvb3IiIGlzIG5vdCB0aGUgd2F5IHRvIHNwZWxsIGVycm9yOyAgZXJycm9vciBpcyBhbiBlcnJvci4KKworCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJICAgzpzOrM64zrfOvM6xIDQuMzogzpXOpc6hzpXOo86XIM6kzpHOmc6hzpnOkc6jzqTOqc6dIM6gzpHOoc6Vzp3OmM6VzqPOlc6pzp0KKworCisJICAqKiDOoM6xz4TOrs+Dz4TOtSAgICUgICDOs865zrEgzr3OsSDOss+BzrXOr8+EzrUgz4TOt869IM6xzr3PhM6vz4PPhM6/zrnPh863ICksIF0sIM6uIH0gLiAqKgorCisgIDEuIM6kzr/PgM6/zrjOtc+Ezq7Pg8+EzrUgz4TOv869IM60z4HOv868zq3OsSDPg861IM66zqzPgM6/zrnOsSAoLCBbLCDOriB7IM+Dz4TOt869IM+AzrHPgc6xzrrOrM+Ez4kgzrPPgc6xzrzOvM6uCisgICAgIM+DzrfOvM61zrnPic68zq3Ovc63IM68zrUgLS0tPi4KKworICAyLiDOpM+Oz4HOsSDPgM6xz4TOrs+Dz4TOtSDPhM6/zr0gz4fOsc+BzrHOus+Ezq7Pgc6xICAlIC4KKworICAzLiDOnyDOtM+Bzr/OvM6tzrHPgiDOuM6xIM+Az4HOrc+AzrXOuSDOvc6xIM61zq/Ovc6xzrkgz4PPhM63zr0gzrHOvc+Ezq/Pg8+Ezr/Ouc+Hzrcgz4DOsc+Bzq3Ovc64zrXPg863IM6uIM6xzrPOus+NzrvOty4KKworICA0LiDOoM6xz4TOrs+Dz4TOtSAgJSAgzrPOuc6xIM69zrEgzrzOtc+EzrHOus65zr3Ors+DzrXPhM61IM+Ezr/OvSDOtM+Bzr/OvM6tzrEgz4DOr8+Dz4kgz4PPhM63zr0gz4DPgc+Oz4TOtyDOsc6zzrrPjc67zrcKKyAgICAoz4TOv8+FIM62zrXPhc6zzrHPgc65zr/PjSkuCisKKy0tLT4gVGhpcyAoIGlzIGEgdGVzdCBsaW5lIHdpdGggKCdzLCBbJ3MgXSBhbmQgeydzIH0gaW4gaXQuICkpCisKK86jzpfOnM6VzpnOqc6jzpc6IM6Rz4XPhM+MIM61zq/Ovc6xzrkgz4DOv867z40gz4fPgc6uz4POuc68zr8gz4PPhM63zr0gzrHPgM6/z4PPhs6xzrvOvM6sz4TPic+DzrcgzrXOvc+Mz4Igz4DPgc6/zrPPgc6szrzOvM6xz4TOv8+CCisJICDOvM61IM68zrcgz4TOsc65z4HOuc6xz4PPhM6tz4Igz4DOsc+BzrXOvc64zq3Pg861zrnPgiEKKworCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJICAgIM6czqzOuM63zrzOsSA0LjQ6IM6Vzp3Okc6jIM6kzqHOn86gzp/OoyDOk86ZzpEgzpHOm86bzpHOk86XIM6bzpHOmM6pzp0KKworCisgICAgICAgKiogzpPPgc6sz4jPhM61ICA6cy9vbGQvbmV3L2cgIM6zzrnOsSDOvc6xIM6xzrvOu86szr7Otc+EzrUgz4TOvyAnbmV3JyDOvM61IM+Ezr8gJ29sZCcuICoqCisKKyAgMS4gzpzOtc+EzrHOus65zr3Otc6vz4PPhM61IM+Ezr/OvSDOtM+Bzr/OvM6tzrEgz4PPhM63zr0gz4DOsc+BzrHOus6sz4TPiSDOs8+BzrHOvM68zq4gz4POt868zrXOuc+JzrzOrc69zrcgzrzOtSAtLS0+LgorCisgIDIuIM6Tz4HOrM+Iz4TOtSAgOnMvdGhlZS90aGUgPEVOVEVSPiAuIM6jzrfOvM61zrnPjs+Dz4TOtSDPjM+EzrkgzrHPhc+Ezq4gzrcgzrXOvc+Ezr/Ou86uIM6xzrvOu86szrbOtc65IM68z4zOvc6/CisgICAgIM+EzrfOvSDPgM+Bz47PhM63IM61zrzPhs6szr3Ouc+Dzrcgz4PPhM63IM6zz4HOsc68zrzOri4KKworICAzLiDOpM+Oz4HOsSDOs8+BzqzPiM+EzrUgICA6cy90aGVlL3RoZS9nICAgIM61zr3Ovc6/z47Ovc+EzrHPgiDOs861zr3Ouc66zq4gzrHOvc+EzrnOus6xz4TOrM+Dz4TOsc+Dzrcgz4PPhM63CisgICAgIM6zz4HOsc68zrzOri4gzpHPhc+Ez4wgzrHOu867zqzOts61zrkgz4zOu861z4Igz4TOuc+CIM61zrzPhs6xzr3Or8+DzrXOuc+CIM61z4DOryDPhM63z4IgzrPPgc6xzrzOvM6uz4IuCisKKy0tLT4gdGhlZSBiZXN0IHRpbWUgdG8gc2VlIHRoZWUgZmxvd2VycyBpcyBpbiB0aGVlIHNwcmluZy4KKworICA0LiDOk865zrEgzr3OsSDOsc67zrvOrM6+zrXPhM61IM66zqzOuM61IM61zrzPhs6szr3Ouc+DzrcgzrzOr86xz4Igz4PPhc68zrLOv867zr/Pg861zrnPgc6sz4IgzrzOtc+EzrHOvs+NIM60z43OvyDOs8+BzrHOvM68z47OvSwKKyAgICAgzrPPgc6sz4jPhM61ICAgOiMsI3Mvb2xkL25ldy9nICAgz4zPgM6/z4UgIywjIM6/zrkgzrHPgc65zrjOvM6/zq8gz4TPic69IM60z43OvyDOs8+BzrHOvM68z47OvS4KKyAgICAgzpPPgc6sz4jPhM61ICAgOiVzL29sZC9uZXcvZyAgICAgzrPOuc6xIM69zrEgzrHOu867zqzOvs61z4TOtSDOus6szrjOtSDOtc68z4bOrM69zrnPg863IM+DzrUgz4zOu86/IM+Ezr8gzrHPgc+HzrXOr86/LgorCisKKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQkgICAgICAgzpzOkc6YzpfOnM6RIDQgzqDOlc6hzpnOm86XzqjOlworCisKKyAgMS4gzqTOvyAgQ3RybC1nICDOtc68z4bOsc69zq/Ots61zrkgz4TOtyDOuM6tz4POtyDPg86xz4Igz4PPhM6/IM6xz4HPh861zq/OvyDOus6xzrkgz4TOt869IM66zrHPhM6sz4PPhM6xz4POriDPhM6/z4UuCisgICAgIM6kzr8gIFNoaWZ0LUcgIM+AzrfOs86xzq/Ovc61zrkgz4PPhM6/IM+Ezq3Ou86/z4Igz4TOv8+FIM6xz4HPh861zq/Ov8+FLiDOiM69zrHPgiDOsc+BzrnOuM68z4zPgiDOs8+BzrHOvM68zq7PggorICAgICDOsc66zr/Ou86/z4XOuM6/z43OvM61zr3Ov8+CIM6xz4DPjCAgU2hpZnQtRyAgz4DOt86zzrHOr869zrXOuSDPg861IM61zrrOtc6vzr3OtyDPhM63IM6zz4HOsc68zrzOri4KKworICAyLiDOk8+BzqzPhs6/zr3PhM6xz4IgIC8gIM6xzrrOv867zr/Phc64zr/Pjc68zrXOvc6/IM6xz4DPjCDOvM6vzrEgz4bPgc6sz4POtyDPiM6sz4fOvc61zrkgz4DPgc6/z4Igz4TOsSDOnM6gzqHOn86jzqTOkSDOs865zrEKKyAgICAgz4TOtyDPhs+BzqzPg863LiDOk8+BzqzPhs6/zr3PhM6xz4IgID8gIM6xzrrOv867zr/Phc64zr/Pjc68zrXOvc6/IM6xz4DPjCDOvM6vzrEgz4bPgc6sz4POtyDPiM6sz4fOvc61zrkgz4DPgc6/z4Igz4TOsSDOoM6ZzqPOqQorICAgICDOs865zrEgz4TOtyDPhs+BzqzPg863LiDOnM61z4TOrCDOsc+Az4wgzrzOr86xIM6xzr3Osc62zq7PhM63z4POtyDPgM6xz4TOrs+Dz4TOtSAgbiAgzrPOuc6xIM69zrEgzrLPgc61zq/PhM61IM+EzrfOvQorICAgICDOtc+Az4zOvM61zr3OtyDOtc68z4bOrM69zrnPg863IM+Az4HOv8+CIM+EzrfOvSDOr860zrnOsSDOus6xz4TOtc+NzrjPhc69z4POtyDOriAgU2hpZnQtTiAgzrPOuc6xIM69zrEgz4jOrM6+zrXPhM61CisgICAgIM+Az4HOv8+CIM+EzrfOvSDOsc69z4TOr864zrXPhM63IM66zrHPhM61z43OuM+Fzr3Pg863LgorCisgIDMuIM6gzrHPhM+Ozr3PhM6xz4IgICUgIM+Mz4POvyDOvyDOtM+Bzr/OvM6tzrHPgiDOtc6vzr3Osc65IM+AzqzOvc+JIM+DzrUgzrzOr86xICgsKSxbLF0seywgzq4gfSAgzrXOvc+Ezr/PgM6vzrbOtc65CisgICAgIM+Ezr8gzrHOvc+Ezq/Pg8+Ezr/Ouc+Hzr8gz4TOsc6vz4HOuSDPhM6/z4UgzrbOtc+FzrPOsc+BzrnOv8+NLgorCisgIDQuIM6TzrnOsSDOsc69z4TOuc66zrHPhM6sz4PPhM6xz4POtyDOvM61IG5ldyDPhM6/z4Ugz4DPgc+Oz4TOv8+FIG9sZCDPg8+EzrcgzrPPgc6xzrzOvM6uIM6zz4HOrM+Iz4TOtSAgOnMvb2xkL25ldworICAgICDOk865zrEgzrHOvc+EzrnOus6xz4TOrM+Dz4TOsc+DzrcgzrzOtSBuZXcgz4zOu8+Jzr0gz4TPic69ICdvbGQnIM+Dz4TOtyDOs8+BzrHOvM68zq4gzrPPgc6sz4jPhM61ICA6cy9vbGQvbmV3L2cKKyAgICAgzpPOuc6xIM6xzr3PhM65zrrOsc+EzqzPg8+EzrHPg863IM+Gz4HOrM+DzrXPic69IM68zrXPhM6xzr7PjSDOtM+Nzr8gIyDOs8+BzrHOvM68z47OvSDOs8+BzqzPiM+EzrUgICAgICA6Iywjcy9vbGQvbmV3L2cKKyAgICAgzpPOuc6xIM6xzr3PhM65zrrOsc+EzqzPg8+EzrHPg863IM+MzrvPic69IM+Ez4nOvSDOtc68z4bOsc69zq/Pg861z4nOvSDPg8+Ezr8gzrHPgc+HzrXOr86/IM6zz4HOrM+Iz4TOtSAgICA6JXMvb2xkL25ldy9nCisgICAgIM6TzrnOsSDOtc+Bz47PhM63z4POtyDOtc+AzrnOss61zrLOsc6vz4nPg863z4IgzrrOrM64zrUgz4bOv8+Bzqwgz4DPgc6/z4POuM6tz4PPhM61IM6tzr3OsSAnYycgICAgICAgIiVzL29sZC9uZXcvZ2MKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkgIM6czqzOuM63zrzOsSA1LjE6IM6gzqnOoyDOlc6azqTOlc6bzqkgzpzOmc6RIM6Vzp7Oqc6kzpXOoc6ZzprOlyDOlc6dzqTOn86bzpcKKworCisqKiDOk8+BzqzPiM+EzrUgIDohICDOsc66zr/Ou86/z4XOuM6/z43OvM61zr3OvyDOsc+Az4wgzrzOr86xIM61zr7Pic+EzrXPgc65zrrOriDOtc69z4TOv867zq4gzrPOuc6xIM69zrEgz4TOt869IM61zrrPhM61zrvOrc+DzrXPhM61LiAqKgorCisgIDEuIM6gzrHPhM6uz4PPhM61IM+EzrfOvSDOv865zrrOtc6vzrEgzrXOvc+Ezr/Ou86uICA6ICDOs865zrEgzr3OsSDOuM6tz4POtc+EzrUgz4TOv869IM60z4HOv868zq3OsSDPg8+Ezr8gzrrOrM+Ez4kgzrzOrc+Bzr/PggorICAgICDPhM63z4Igzr/OuM+Mzr3Ot8+CLiDOkc+Fz4TPjCDPg86xz4IgzrXPgM65z4TPgc6tz4DOtc65IM69zrEgzrTPjs+DzrXPhM61IM68zq/OsSDOtc69z4TOv867zq4uCisKKyAgMi4gzqTPjs+BzrEgz4DOsc+Ezq7Pg8+EzrUgIM+Ezr8gICEgICjOuM6xz4XOvM6xz4PPhM65zrrPjCkuIM6Rz4XPhM+MIM+DzrHPgiDOtc+AzrnPhM+Bzq3PgM61zrkgzr3OsSDOtc66z4TOtc67zq3Pg861z4TOtQorICAgICDOv8+Azr/Ouc6xzrTOrs+Azr/PhM61IM61zr7Pic+EzrXPgc65zrrOriDOtc69z4TOv867zq4gz4TOv8+FIM+GzrvOv865zr/PjS4KKworICAzLiDOo86xzr0gz4DOsc+BzqzOtM61zrnOs868zrEgzrPPgc6sz4jPhM61ICBscyAgzrzOtc+EzqwgzrHPgM+MIM+Ezr8gISDOus6xzrkgz4DOsc+Ezq7Pg8+EzrUgPEVOVEVSPi4gzpHPhc+Ez4wgzrjOsQorICAgICDPg86xz4IgzrXOvM+GzrHOvc6vz4POtc65IM68zq/OsSDOu86vz4PPhM6xIM+Ezr/PhSDOus6xz4TOsc67z4zOs86/z4Ugz4POsc+CLCDOsc66z4HOuc6yz47PgiDPg86xzr0gzr3OsSDOrs+DzrHPg8+EzrHOvSDPg8+EzrfOvQorICAgICDPgM+Bzr/PhM+Bzr/PgM6uIM+Ezr/PhSDPhs67zr/Ouc6/z40uIM6JIM+Hz4HOt8+DzrnOvM6/z4DOv865zq7Pg8+EzrUgIDohZGlyICDOsc69IM+Ezr8gbHMgzrTOtc69IM60zr/Phc67zrXPjc61zrkuCisKKy0tLT4gzqPOt868zrXOr8+Jz4POtzogzpXOr869zrHOuSDOtM+Fzr3Osc+Ez4zOvSDOvc6xIM61zrrPhM61zrvOrc+DzrXPhM61IM6/z4DOv865zrHOtM6uz4DOv8+EzrUgzrXOvs+Jz4TOtc+BzrnOus6uIM61zr3PhM6/zrvOrgorICAgICDOvM61IM6xz4XPhM+Mzr0gz4TOv869IM+Ez4HPjM+Azr8uCisKKy0tLT4gzqPOt868zrXOr8+Jz4POtzogzozOu861z4Igzr/OuSDOtc69z4TOv867zq3PgiAgOiAgz4DPgc6tz4DOtc65IM69zrEgz4TOtc+BzrzOsc+Ezq/Ots6/zr3PhM6xzrkgz4DOsc+Ez47Ovc+EzrHPgiDPhM6/IDxFTlRFUj4uCisKKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSDOnM6szrjOt868zrEgNS4yOiDOoM6VzqHOmc6jzqPOn86kzpXOoc6RIM6gzpXOoc6ZIM6VzpPOk86hzpHOps6XzqMgzpHOoc6nzpXOmc6pzp0KKworCisgICAqKiDOk865zrEgzr3OsSDPg8+Oz4POtc+EzrUgz4TOuc+CIM6xzrvOu86szrPOtc+CIM+Azr/PhSDOus6szr3Osc+EzrUgz4PPhM6/IM6xz4HPh861zq/OvywgzrPPgc6sz4jPhM61ICA6dyDOkc6hzqfOlc6Zzp8uICAqKgorCisgIDEuIM6Tz4HOrM+Iz4TOtSAgOiFkaXIgIM6uICA6IWxzICDOs865zrEgzr3OsSDPgM6sz4HOtc+EzrUgzrzOr86xIM67zq/Pg8+EzrEgz4TOv8+FIM66zrHPhM6xzrvPjM6zzr/PhSDPg86xz4IuCisgICAgIM6JzrTOtyDOvs6tz4HOtc+EzrUgz4zPhM65IM+Az4HOrc+AzrXOuSDOvc6xIM+AzrHPhM6uz4POtc+EzrUgPEVOVEVSPiDOvM61z4TOrCDOsc+Az4wgzrHPhc+Ez4wuCisKKyAgMi4gzpTOuc6xzrvOrc6+z4TOtSDOrc69zrEgz4zOvc6/zrzOsSDOsc+Bz4fOtc6vzr/PhSDPgM6/z4UgzrTOtc69IM+Fz4DOrM+Bz4fOtc65IM6xzrrPjM68zrEsIM+Mz4DPic+CIM+Ezr8gVEVTVC4KKworICAzLiDOpM+Oz4HOsSDOs8+BzqzPiM+EzrU6ICA6dyBURVNUICAoz4zPgM6/z4UgVEVTVCDOtc6vzr3Osc65IM+Ezr8gz4zOvc6/zrzOsSDOsc+Bz4fOtc6vzr/PhSDPgM6/z4UgzrTOuc6xzrvOrc6+zrHPhM61KS4KKworICA0LiDOkc+Fz4TPjCDPg8+OzrbOtc65IM+MzrvOvyDPhM6/IM6xz4HPh861zq/OvyAodmltIFR1dG9yKSDOvM61IM+Ezr8gz4zOvc6/zrzOsSBURVNULiDOk865zrEgzr3OsSDPhM6/CisgICAgIM61z4DOsc67zrfOuM61z43Pg861z4TOtSwgzrPPgc6sz4jPhM61IM6+zrHOvc6sICA6IWRpciDOs865zrEgzr3OsSDOtM61zq/PhM61IM+Ezr/OvSDOus6xz4TOrM67zr/Os8+MIM+DzrHPgi4KKworLS0tPiDOo863zrzOtc65z47Pg8+EzrUgz4zPhM65IM6xzr0gzrLOs86xzq/Ovc6xz4TOtSDOsc+Az4wgz4TOv869IFZpbSDOus6xzrkgzrzPgM6xzq/Ovc6xz4TOtSDOvs6xzr3OrCDOvM61IM+Ezr8gz4zOvc6/zrzOsQorICAgICDOsc+Bz4fOtc6vzr/PhSBURVNULCDPhM6/IM6xz4HPh861zq/OvyDOuM6xIM6uz4TOsc69IM6xzrrPgc65zrLOrc+CIM6xzr3PhM6vzrPPgc6xz4bOvyDPhM6/z4UgdHV0b3Igz4zPhM6xzr0gz4TOvyDPg8+Oz4POsc+EzrUuCisKKyAgNS4gzqTPjs+BzrEgzrTOuc6xzrPPgc6sz4jPhM61IM+Ezr8gzrHPgc+HzrXOr86/IM6zz4HOrM+Gzr/Ovc+EzrHPgiAoTVMtRE9TKTogICAgICA6IWRlbCBURVNUCisKKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgICAgzpzOrM64zrfOvM6xIDUuMzogzpXOoM6ZzpvOlc6azqTOmc6azpcgzpXOnc6kzp/Om86XIM6VzpPOk86hzpHOps6XzqMKKworCisJICAqKiDOk865zrEgzr3OsSDPg8+Oz4POtc+EzrUgz4TOvM6uzrzOsSDPhM6/z4UgzrHPgc+HzrXOr86/z4UsIM6zz4HOrM+Iz4TOtSAgOiMsIyB3IM6RzqHOp86VzpnOnyAqKgorCisgIDEuIM6GzrvOu863IM68zrnOsSDPhs6/z4HOrCwgzrPPgc6sz4jPhM61ICA6IWRpciAgzq4gIDohbHMgIM6zzrnOsSDOvc6xIM+AzqzPgc61z4TOtSDOvM6vzrEgzrvOr8+Dz4TOsSDOsc+Az4wgz4TOv869CisgICAgIM66zrHPhM6szrvOv86zz4wgz4POsc+CIM66zrHOuSDOtM65zrHOu86tzr7PhM61IM6tzr3OsSDOus6xz4TOrM67zrvOt867zr8gz4zOvc6/zrzOsSDOsc+Bz4fOtc6vzr/PhSDPjM+Az4nPgiDPhM6/IFRFU1QuCisKKyAgMi4gzpzOtc+EzrHOus65zr3Otc6vz4PPhM61IM+Ezr/OvSDOtM+Bzr/OvM6tzrEgz4PPhM6/IM+AzqzOvc+JIM68zq3Pgc6/z4IgzrHPhc+Ezq7PgiDPhM63z4Igz4POtc67zq/OtM6xz4IgzrrOsc65IM+AzrHPhM6uz4PPhM61CisgICAgIEN0cmwtZyAgzrPOuc6xIM69zrEgzrLPgc61zq/PhM61IM+Ezr/OvSDOsc+BzrnOuM68z4wgzrHPhc+Ezq7PgiDPhM63z4IgzrPPgc6xzrzOvM6uz4IuCisgICAgIM6dzpEgzpjOpc6czpHOo86kzpUgzpHOpc6kzp/OnSDOpM6fzp0gzpHOoc6ZzpjOnM6fIQorCisgIDMuIM6kz47Pgc6xIM+AzrfOs86xzq/Ovc61z4TOtSDPg8+Ezr8gzrrOrM+Ez4kgzrzOrc+Bzr/PgiDPhM63z4Igz4POtc67zq/OtM6xz4IgzrrOsc65IM+AzrHPhM6uz4PPhM61ICBDdHJsLWcgIM6+zrHOvc6sLgorICAgICDOnc6RIM6YzqXOnM6RzqPOpM6VIM6azpHOmSDOkc6lzqTOn86dIM6kzp/OnSDOkc6hzpnOmM6czp8hCisKKyAgNC4gzpPOuc6xIM69zrEgz4PPjs+DzrXPhM61IM6czp/Onc6fIM6tzr3OsSDPhM68zq7OvM6xIM+DzrUgzrHPgc+HzrXOr86/LCDOs8+BzqzPiM+EzrUgICA6IywjIHcgVEVTVAorICAgICDPjM+Azr/PhSAjLCMgzr/OuSDOtM+Nzr8gzrHPgc65zrjOvM6/zq8gz4DOv8+FIM6xz4DOv868zr3Ot868zr/Ovc61z43Pg86xz4TOtSAoz4DOrM69z4kszrrOrM+Ez4kpIM66zrHOuSBURVNUIM+Ezr8KKyAgICAgz4zOvc6/zrzOsSDPhM6/z4UgzrHPgc+HzrXOr86/z4Ugz4POsc+CLgorCisgIDUuIM6ezrHOvc6sLCDOtM61zq/PhM61IM+Mz4TOuSDPhM6/IM6xz4HPh861zq/OvyDOtc6vzr3Osc65IM61zrrOtc6vIM68zrUgz4TOt869ICA6IWRpciDOsc67zrvOrCDOnM6Xzp0gz4TOvyDOtM65zrHOs8+BzqzPiM61z4TOtS4KKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgzpzOrM64zrfOvM6xIDUuNDogzpHOnc6RzprOpM6pzp3OpM6RzqMgzprOkc6ZIM6Vzp3Oqc6dzp/Onc6kzpHOoyDOkc6hzqfOlc6ZzpEKKworCisgICAgICoqIM6TzrnOsSDOvc6xIM61zrnPg86szrPOtc+EzrUgz4TOsSDPgM61z4HOuc61z4fPjM68zrXOvc6xIM61zr3PjM+CIM6xz4HPh861zq/Ov8+FLCDOs8+BzqzPiM+EzrUgICA6ciDOkc6hzqfOlc6Zzp8gKioKKworICAxLiDOk8+BzqzPiM+EzrUgIDohZGlyICDOs865zrEgzr3OsSDOss61zrLOsc65z4nOuM61zq/PhM61IM+Mz4TOuSDPhM6/IFRFU1Qgz4XPgM6sz4HPh861zrkgzrHPgM+MIM+Az4HOuc69LgorCisgIDIuIM6kzr/PgM6/zrjOtc+Ezq7Pg8+EzrUgz4TOv869IM60z4HOv868zq3OsSDPg8+Ezr8gz4DOrM69z4kgzrzOrc+Bzr/PgiDPhM63z4Igz4POtc67zq/OtM6xz4IuCisKK86jzpfOnM6VzpnOqc6jzpc6ICDOkc+Gz4zPhM6/z4UgzrXOus+EzrXOu86tz4POtc+EzrUgz4TOvyDOks6uzrzOsSAzIM64zrEgzrTOtc6vz4TOtSDPhM6/IM6czqzOuM63zrzOsSA1LjMuCisJICAgzpzOtc+EzqwgzrrOuc69zrfOuM61zq/PhM61IM6azpHOpM6pIM6+zrHOvc6sIM+Az4HOv8+CIM+Ezr8gzrzOrM64zrfOvM6xIM6xz4XPhM+MLgorCisgIDMuIM6kz47Pgc6xIM6xzr3Osc66z4TOrs+Dz4TOtSDPhM6/IM6xz4HPh861zq/OvyDPg86xz4IgVEVTVCDPh8+BzrfPg865zrzOv8+Azr/Ouc+Ozr3PhM6xz4Igz4TOt869IM61zr3PhM6/zrvOriAgOnIgVEVTVAorICAgICDPjM+Azr/PhSBURVNUIM61zq/Ovc6xzrkgz4TOvyDPjM69zr/OvM6xIM+Ezr/PhSDOsc+Bz4fOtc6vzr/PhS4KKworzqPOl86czpXOmc6pzqPOlzogIM6kzr8gzrHPgc+HzrXOr86/IM+Azr/PhSDOsc69zrHOus+EzqzPhM61IM+Ezr/PgM6/zrjOtc+EzrXOr8+EzrHOuSDOvs61zrrOuc69z47Ovc+EzrHPgiDOtc66zrXOryDPgM6/z4UgzrLPgc6vz4POus61z4TOsc65CisJICAgzr8gzrTPgc6/zrzOrc6xz4IuCisKKyAgNC4gzpPOuc6xIM69zrEgzrXPgM6xzrvOt864zrXPjc+DzrXPhM61IM+Mz4TOuSDPhM6/IM6xz4HPh861zq/OvyDOsc69zrHOus+Ezq7OuM63zrrOtSwgz4DOr8+Dz4kgz4TOv869IM60z4HOv868zq3OsSDOus6xzrkKKyAgICAgz4DOsc+BzrHPhM63z4HOrs+Dz4TOtSDPjM+Ezrkgz4XPgM6sz4HPh86/z4XOvSDPhM+Oz4HOsSDOtM+Nzr8gzrHOvc+Ezq/Os8+BzrHPhs6xIM+Ezr/PhSDOnM6xzrjOrs68zrHPhM6/z4IgNS4zLCDPhM6/CisgICAgIM6xz4HPh865zrrPjCDOus6xzrkgzrcgzq3Ous60zr/Pg863IM+Ezr/PhSDOsc+Bz4fOtc6vzr/PhS4KKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkJICAgICAgIM6czpHOmM6XzpzOkSA1IM6gzpXOoc6ZzpvOl86ozpcKKworCisgIDEuICA6Ic61zr3PhM6/zrvOriAgzrXOus+EzrXOu861zq8gzrzOr86xIM61zr7Pic+EzrXPgc65zrrOriDOtc69z4TOv867zq4uCisKKyAgICAgIM6czrXPgc65zrrOrCDPh8+Bzq7Pg865zrzOsSDPgM6xz4HOsc60zrXOr86zzrzOsc+EzrEgzrXOr869zrHOuSAoTVMtRE9TKToKKyAgICAgIDohZGlyICAgICAgICAgICAgLSDOtc68z4bOrM69zrnPg863IM67zq/Pg8+EzrHPgiDOtc69z4zPgiDOus6xz4TOsc67z4zOs86/z4UuCisgICAgICA6IWRlbCDOkc6hzqfOlc6Zzp8gICAgIC0gzrTOuc6xzrPPgc6sz4bOtc65IM+Ezr8gzpHOoc6nzpXOmc6fLgorCisgIDIuICA6dyDOkc6hzqfOlc6Zzp8gICDOs8+BzqzPhs61zrkgz4TOvyDPhM+Bzq3Ph8+Jzr0gzrHPgc+HzrXOr86/IM+Ezr/PhSBWaW0gz4PPhM6/IM60zq/Pg866zr8gzrzOtSDPjM69zr/OvM6xIM6RzqHOp86VzpnOny4KKworICAzLiAgOiMsI3cgzpHOoc6nzpXOmc6fICAgz4PPjs62zrXOuSDPhM65z4IgzrPPgc6xzrzOvM6tz4IgzrHPgM+MICMgzrzOrc+Hz4HOuSAjIM+Dz4TOvyDOkc6hzqfOlc6Zzp8uCisKKyAgNC4gIDpyIM6RzqHOp86VzpnOnyAgzrHOvc6xzrrPhM61zq8gz4TOvyDOsc+Bz4fOtc6vzr8gzrTOr8+DzrrOv8+FIM6RzqHOp86VzpnOnyDOus6xzrkgz4TOvyDPgM6xz4HOtc68zrLOrM67zrvOtc65IM68zq3Pg86xCisgICAgICDPg8+Ezr8gz4TPgc6tz4fOv869IM6xz4HPh861zq/OvyDOvM61z4TOrCDOsc+Az4wgz4TOtyDOuM6tz4POtyDPhM6/z4UgzrTPgc6/zrzOrc6xLgorCisKKworCisKKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQnOnM6szrjOt868zrEgNi4xOiDOlyDOlc6dzqTOn86bzpcgzpHOnc6fzpnOk86czpHOpM6fzqMKKworCisgICAgICAqKiDOoM6xz4TOrs+Dz4TOtSAgbyAgzrPOuc6xIM69zrEgzrHOvc6/zq/Ovs61z4TOtSDOvM6vzrEgzrPPgc6xzrzOvM6uIM66zqzPhM+JIM6xz4DPjCDPhM6/zr0gzrTPgc6/zrzOrc6xIM66zrHOuSDOvc6xCisJIM6yz4HOtc64zrXOr8+EzrUgz4POtSDOms6xz4TOrM+Dz4TOsc+DzrcgzprOtc65zrzOrc69zr/PhS4gKioKKworICAxLiDOnM61z4TOsc66zrnOvc61zq/Pg8+EzrUgz4TOv869IM60z4HOv868zq3OsSDPg8+EzrfOvSDPgM6xz4HOsc66zqzPhM+JIM6zz4HOsc68zrzOriDPg863zrzOtc65z4nOvM6tzr3OtyDOvM61IC0tLT4uCisKKyAgMi4gzqDOsc+Ezq7Pg8+EzrUgIG8gKM+AzrXOts+MKSDOs865zrEgzr3OsSDOsc69zr/Or86+zrXPhM61IM68zq/OsSDOs8+BzrHOvM68zq4gzprOkc6kzqkgzrHPgM+MIM+Ezr/OvSDOtM+Bzr/OvM6tzrEgzrrOsc65IM69zrEKKyAgICAgzrLPgc61zrjOtc6vz4TOtSDPg861IM6azrHPhM6sz4PPhM6xz4POtyDOms61zrnOvM6tzr3Ov8+FLgorCisgIDMuIM6kz47Pgc6xIM6xzr3PhM65zrPPgc6sz4jPhM61IM+Ezrcgz4POt868zrXOuc+JzrzOrc69zrcgzrzOtSAtLS0+IM6zz4HOsc68zrzOriAgzrrOsc65IM+AzrHPhM6uz4PPhM61IDxFU0M+IM6zzrnOsSDOvc6xCisgICAgIM6yzrPOtc6vz4TOtSDOsc+Az4wgz4TOt869IM6azrHPhM6sz4PPhM6xz4POtyDOms61zrnOvM6tzr3Ov8+FLgorCistLS0+IEFmdGVyIHR5cGluZyAgbyAgdGhlIGN1cnNvciBpcyBwbGFjZWQgb24gdGhlIG9wZW4gbGluZSBpbiBJbnNlcnQgbW9kZS4KKworICA0LiDOk865zrEgzr3OsSDOsc69zr/Or86+zrXPhM61IM68zq/OsSDOs8+BzrHOvM68zq4gzqDOkc6dzqkgzrHPgM+MIM+Ezr/OvSDOtM+Bzr/OvM6tzrEsIM+AzrHPhM6uz4PPhM61IM6xz4DOu86sIM6tzr3OsSDOus61z4bOsc67zrHOr86/CisgICAgIE8sIM6xzr3PhM6vIM6zzrnOsSDOrc69zrEgz4DOtc62z4wgIG8uICDOlM6/zrrOuc68zqzPg8+EzrUgz4TOvyDPg8+EzrfOvSDPgM6xz4HOsc66zqzPhM+JIM6zz4HOsc68zrzOri4KK86Rzr3Ov86vzrPOtc+EzrUgzrPPgc6xzrzOvM6uIM+AzqzOvc+JIM6xz4DPjCDOsc+Fz4TOrs69IM+AzrHPhM+Ozr3PhM6xz4IgU2hpZnQtTyDPjM+Dzr8gzr8gzrTPgc6/zrzOrc6xz4IgzrXOr869zrHOuSDPg8+EzrcgzrPPgc6xzrzOvM6uCisKKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQkgzpzOrM64zrfOvM6xIDYuMjogzpcgzpXOnc6kzp/Om86XIM6gzqHOn86jzpjOl86azpfOoworCisJICAqKiDOoM6xz4TOrs+Dz4TOtSAgIGEgICDOs865zrEgzr3OsSDOtc65z4POrM6zzrXPhM61IM66zrXOr868zrXOvc6/IM6czpXOpM6RIM+Ezr/OvSDOtM+Bzr/OvM6tzrEuICoqCisKKyAgMS4gzpzOtc+EzrHOus65zr3Otc6vz4PPhM61IM+Ezr/OvSDOtM+Bzr/OvM6tzrEgz4PPhM6/IM+Ezq3Ou86/z4Igz4TOt8+CIM+Az4HPjs+EzrfPgiDOs8+BzrHOvM68zq7PgiDPgM6xz4HOsc66zqzPhM+JCisgICAgIM+DzrfOvM61zrnPic68zq3Ovc63IM68zrUgLS0tPiDPgM6xz4TPjs69z4TOsc+CICAkICDPg8+EzrfOvSDOms6xzr3Ov869zrnOus6uIM6azrHPhM6sz4PPhM6xz4POty4KKworICAyLiDOoM6xz4TOrs+Dz4TOtSDOrc69zrEgIGEgICjPgM61zrbPjCkgzrPOuc6xIM69zrEgz4DPgc6/z4POuM6tz4POtc+EzrUgzrrOtc6vzrzOtc69zr8gzpzOlc6kzpEgzrHPgM+MIM+Ezr/OvSDPh86xz4HOsc66z4TOrs+BzrEKKyAgICAgz4DOv8+FIM61zq/Ovc6xzrkgzrrOrM+Ez4kgzrHPgM+MIM+Ezr/OvSDOtM+Bzr/OvM6tzrEuICAozqTOvyDOus61z4bOsc67zrHOr86/ICBBICDPgM+Bzr/Pg864zq3PhM61zrkgz4PPhM6/IM+Ezq3Ou86/z4IKKyAgICAgz4TOt8+CIM6zz4HOsc68zrzOrs+CKS4KKworzqPOt868zrXOr8+Jz4POtzogzpHPhc+Ez4wgzrHPgM6/z4bOtc+NzrPOtc65IM+Ezr8gz4DOrM+EzrfOvM6xIM+Ezr/PhSAgaSAsIM+Ezr/OvSDPhM61zrvOtc+Fz4TOsc6vzr8gz4fOsc+BzrHOus+Ezq7Pgc6xLCDPhM6/CisJICDOus61zq/OvM61zr3OvyDPhM63z4IgzrXOuc+DzrHOs8+JzrPOrs+CLCA8RVNDPiwgzrTPgc6/zrzOrc6xLc60zrXOvs65zqwsIM66zrHOuSDPhM6tzrvOv8+CLCB4LCDOvM+Mzr3OvyDOus6xzrkKKwkgIM68z4zOvc6/IM6zzrnOsSDOvc6xIM+Az4HOv8+DzrjOrc+DzrXPhM61IM+Dz4TOvyDPhM6tzrvOv8+CIM+EzrfPgiDOs8+BzrHOvM68zq7PgiEKKworICAzLiDOo8+FzrzPgM67zrfPgc+Oz4PPhM61IM+Ez47Pgc6xIM+EzrfOvSDPgM+Bz47PhM63IM6zz4HOsc68zrzOri4gzqPOt868zrXOuc+Oz4PPhM61IM61z4DOr8+DzrfPgiDPjM+Ezrkgzrcgz4DPgc6/z4POuM6uzrrOtyDOtc6vzr3Osc65CisgICAgIM6xzrrPgc65zrLPjs+CIM6vzrTOuc6xIM+Dz4TOt869IM6azrHPhM6sz4PPhM6xz4POtyDOms61zrnOvM6tzr3Ov8+FIM68zrUgz4TOt869IM6azrHPhM6sz4PPhM6xz4POtyDOlc65z4POsc6zz4nOs86uz4IsIM61zrrPhM+Mz4IKKyAgICAgzrHPgM+MIM+EzrcgzrjOrc+Dzrcgz4DOv8+FIM61zrnPg86szrPOtc+EzrHOuSDPhM6/IM66zrXOr868zrXOvc6/LgorCistLS0+IFRoaXMgbGluZSB3aWxsIGFsbG93IHlvdSB0byBwcmFjdGljZQorLS0tPiBUaGlzIGxpbmUgd2lsbCBhbGxvdyB5b3UgdG8gcHJhY3RpY2UgYXBwZW5kaW5nIHRleHQgdG8gdGhlIGVuZCBvZiBhIGxpbmUuCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJICAgzpzOrM64zrfOvM6xIDYuMzogzpHOm86bzpcgzpXOms6Uzp/Oo86XIM6kzpfOoyDOkc6dzqTOmc6azpHOpM6RzqPOpM6RzqPOl86jCisKKworICoqIM6gzrHPhM6uz4PPhM61IM66zrXPhs6xzrvOsc6vzr8gIFIgIM6zzrnOsSDOvc6xIM6xzrvOu86szr7Otc+EzrUgz4DOtc+BzrnPg8+Dz4zPhM61z4HOv8+Fz4IgzrHPgM+MIM6tzr3Osc69IM+HzrHPgc6xzrrPhM6uz4HOtc+CLiAqKgorCisgIDEuIM6czrXPhM6xzrrOuc69zrXOr8+Dz4TOtSDPhM6/zr0gzrTPgc6/zrzOrc6xIM+Dz4TOt869IM+Az4HPjs+EzrcgzrPPgc6xzrzOvM6uIM+AzrHPgc6xzrrOrM+Ez4kgz4POt868zrXOuc+JzrzOrc69zrcgzrzOtSAtLS0+LgorCisgIDIuIM6kzr/PgM6/zrjOtc+Ezq7Pg8+EzrUgz4TOv869IM60z4HOv868zq3OsSDPg8+EzrfOvSDOsc+Bz4fOriDPhM63z4Igz4DPgc+Oz4TOt8+CIM67zq3Ovs63z4Igz4DOv8+FIM61zq/Ovc6xzrkgzrTOuc6xz4bOv8+BzrXPhM65zrrOrgorICAgICDOsc+Az4wgz4TOtyDOtM61z43PhM61z4HOtyDOs8+BzrHOvM68zq4gz4POt868zrXOuc+JzrzOrc69zrcgzrzOtSAtLS0+ICjOtyDOu86tzr7OtyAnbGFzdCcpLgorCisgIDMuIM6gzrHPhM6uz4PPhM61IM+Ez47Pgc6xICBSICAgzrrOsc65IM6xzrvOu86szr7PhM61IM+Ezr8gz4XPgM+MzrvOv865z4DOvyDPhM6/z4UgzrrOtc65zrzOrc69zr/PhSDPg8+EzrfOvSDPgM+Bz47PhM63IM6zz4HOsc68zrzOrgorICAgICDOs8+BzqzPhs6/zr3PhM6xz4Igz4DOrM69z4kgzrHPgM+MIM+Ezr8gz4DOsc67zrnPjCDOus61zq/OvM61zr3OvyDPjs+Dz4TOtSDOvc6xIM66zqzOvc61z4TOtSDPhM63zr0gz4DPgc+Oz4TOtyDOs8+BzrHOvM68zq4gzq/OtM65zrEKKyAgICAgzrzOtSDPhM63IM60zrXPjc+EzrXPgc63LgorCistLS0+IFRvIG1ha2UgdGhlIGZpcnN0IGxpbmUgdGhlIHNhbWUgYXMgdGhlIGxhc3Qgb24gdGhpcyBwYWdlIHVzZSB0aGUga2V5cy4KKy0tLT4gVG8gbWFrZSB0aGUgZmlyc3QgbGluZSB0aGUgc2FtZSBhcyB0aGUgc2Vjb25kLCB0eXBlIFIgYW5kIHRoZSBuZXcgdGV4dC4KKworICA0LiDOo863zrzOtc65z47Pg8+EzrUgz4zPhM65IM+Mz4TOsc69IM+AzrHPhM6sz4TOtSA8RVNDPiDOs865zrEgzr3OsSDOss6zzrXOr8+EzrUsIM+AzrHPgc6xzrzOrc69zrXOuSDOv8+Azr/Ouc6/zrTOrs+Azr/PhM61CisgICAgIM6xzr3Osc67zrvOv86vz4nPhM6/IM66zrXOr868zrXOvc6/LgorCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkJICDOnM6szrjOt868zrEgNi40OiDOoc6lzpjOnM6ZzqPOlyDOlc6gzpnOm86fzpPOl86jCisKKworICAgKiogzqHPhc64zrzOr8+Dz4TOtSDOvM6vzrEgzrXPgM65zrvOv86zzq4gzq3PhM+Dzrkgz47Pg8+EzrUgzrcgzrHOvc6xzrbOrs+EzrfPg863IM6uIM63IM6xzr3PhM65zrrOsc+EzqzPg8+EzrHPg863IM69zrEgzrHOs869zr/Otc6vCisgICAgICDPhM63IM60zrnOsc+Gzr/Pgc6sIM+AzrXOts+Ozr0tzrrOtc+GzrHOu86xzq/Pic69ICoqCisKKyAgMS4gzqjOrM6+z4TOtSDOs865zrEgJ2lnbm9yZScgzrXOuc+DzqzOs86/zr3PhM6xz4I6CisgICAgIC9pZ25vcmUKKyAgICAgzqPPhc69zrXPh86vz4PPhM61IM6xz4HOus61z4TOrc+CIM+Gzr/Pgc6tz4Igz4DOsc+Ez47Ovc+EzrHPgiDPhM6/IM+AzrvOrs66z4TPgc6/IG4uCisKKyAgMi4gzpjOrc+Dz4TOtSDPhM63zr0gzrXPgM65zrvOv86zzq4gJ2ljJyAoSWdub3JlIGNhc2UpIM6zz4HOrM+Gzr/Ovc+EzrHPgjoKKyAgICAgOnNldCBpYworCisgIDMuIM6ozqzOvs+EzrUgz4TPjs+BzrEgzr7Osc69zqwgzrPOuc6xICdpZ25vcmUnIM+AzrHPhM+Ozr3PhM6xz4I6IG4KKyAgICAgzqPPhc69zrXPh86vz4PPhM61IM+EzrfOvSDOsc69zrHOts6uz4TOt8+DzrcgzrzOtc+BzrnOus6tz4IgzrHOus+MzrzOsSDPhs6/z4HOrc+CIM+AzrHPhM+Ozr3PhM6xz4Igz4TOvyDPgM67zq7Ous+Ez4HOvyBuCisKKyAgNC4gzpjOrc+Dz4TOtSDPhM65z4IgzrXPgM65zrvOv86zzq3PgiAnaGxzZWFyY2gnIM66zrHOuSAnaW5jc2VhcmNoJzoKKyAgICAgOnNldCBobHMgaXMKKworICA1LiDOlc65z4POrM6zzrXPhM61IM+Ez47Pgc6xIM6+zrHOvc6sIM+EzrfOvSDOtc69z4TOv867zq4gzrHOvc6xzrbOrs+EzrfPg863z4IsIM66zrHOuSDOtM61zq/PhM61IM+Ezrkgz4PPhc68zrLOsc6vzr3Otc65CisgICAgIC9pZ25vcmUKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkJICAgICAgIM6czpHOmM6XzpzOkSA2IM6gzpXOoc6ZzpvOl86ozpcKKworCisgIDEuIM6gzrHPhM+Ozr3PhM6xz4IgIG8gIM6xzr3Ov86vzrPOtc65IM68zq/OsSDOs8+BzrHOvM68zq4gzprOkc6kzqkgzrHPgM+MIM+Ezr/OvSDOtM+Bzr/OvM6tzrEgzrrOsc65IM+Ezr/PgM6/zrjOtc+EzrXOryDPhM6/zr0KKyAgICAgzrTPgc6/zrzOrc6xIM+Dz4TOt869IM6xzr3Ov865z4fPhM6uIM6zz4HOsc68zrzOriDPg861IM6azrHPhM6sz4PPhM6xz4POtyDOms61zrnOvM6tzr3Ov8+FLgorCisgIDIuIM6gzrHPhM6uz4PPhM61ICBhICDOs865zrEgzr3OsSDOtc65z4POrM6zzrXPhM61IM66zrXOr868zrXOvc6/IM6czpXOpM6RIM+Ezr/OvSDPh86xz4HOsc66z4TOrs+BzrEgz4PPhM6/zr0gzr/PgM6/zq/OvyDOtc6vzr3Osc65CisgICAgIM6/IM60z4HOv868zq3Osc+CLiDOoM6xz4TPjs69z4TOsc+CIM66zrXPhs6xzrvOsc6vzr8gIEEgIM6xz4XPhM+MzrzOsc+EzrEgz4DPgc6/z4POuM6tz4TOtc65IM66zrXOr868zrXOvc6/IM+Dz4TOvyDPhM6tzrvOv8+CCisgICAgIM+EzrfPgiDOs8+BzrHOvM68zq7Pgi4KKworICAzLiDOoM6xz4TPjs69z4TOsc+CIM66zrXPhs6xzrvOsc6vzr8gIFIgIM61zrnPg86tz4HPh861z4TOsc65IM+Dz4TOt869IM6azrHPhM6sz4PPhM6xzrcgzpHOvc+EzrnOus6xz4TOrM+Dz4TOsc+DzrfPgiDOvM6tz4fPgc65IM69zrEKKyAgICAgz4DOsc+EzrfOuM61zq8gz4TOvyA8RVNDPiDOus6xzrkgzr3OsSDOtc6+zq3Ou864zrXOuS4KKworICA0LiDOk8+BzqzPhs6/zr3PhM6xz4IgIjpzZXQgeHh4IiDPgc+FzrjOvM6vzrbOtc65IM+EzrfOvSDOtc+AzrnOu86/zrPOriAieHh4Ii4KKworCisKKworCisKKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgICAgICDOnM6RzpjOl86czpEgNzogT04tTElORSDOlc6dzqTOn86bzpXOoyDOks6fzpfOmM6VzpnOkc6jCisKKworCQkqKiDOp8+BzrfPg865zrzOv8+Azr/Ouc6uz4PPhM61IM+Ezr8gb24tbGluZSDPg8+Nz4PPhM63zrzOsSDOss6/zq7OuM61zrnOsc+CICoqCisKKyAgzp8gVmltIM6tz4fOtc65IM6tzr3OsSDPgM61z4HOuc61zrrPhM65zrrPjCBvbi1saW5lIM+Dz43Pg8+EzrfOvM6xIM6yzr/Ors64zrXOuc6xz4IuIM6TzrnOsSDOvc6xIM6+zrXOus65zr3Ors+DzrXOuSwKKyAgzrTOv866zrnOvM6sz4PPhM61IM66zqzPgM6/zrnOvyDOsc+Az4wgz4TOsSDPhM+Bzq/OsToKKwktIM+AzrHPhM6uz4PPhM61IM+Ezr8gz4DOu86uzrrPhM+Bzr8gPEhFTFA+ICjOsc69IM6tz4fOtc+EzrUgzrrOrM+Azr/Ouc6/KQorCS0gz4DOsc+Ezq7Pg8+EzrUgz4TOvyDPgM67zq7Ous+Ez4HOvyA8RjE+ICjOsc69IM6tz4fOtc+EzrUgzrrOrM+Azr/Ouc6/KQorCS0gzrPPgc6sz4jPhM61ICAgOmhlbHAgPEVOVEVSPgorCisgIM6Tz4HOrM+Iz4TOtSAgOnEgPEVOVEVSPiAgIM6zzrnOsSDOvc6xIM66zrvOtc6vz4POtc+EzrUgz4TOvyDPgM6xz4HOrM64z4XPgc6/IM+EzrfPgiDOss6/zq7OuM61zrnOsc+CLgorCisgIM6cz4DOv8+BzrXOr8+EzrUgzr3OsSDOss+BzrXOr8+EzrUgzrLOv86uzrjOtc65zrEgz4DOrM69z4kgz4POtSDOus6szrjOtSDOsc69z4TOuc66zrXOr868zrXOvc6/LCDOtM6vzr3Ov869z4TOsc+CIM68zq/OsSDPgM6xz4HOrM68zrXPhM+Bzr8KKyAgz4PPhM63zr0gzrXOvc+Ezr/Ou86uICI6aGVscCIuICDOlM6/zrrOuc68zqzPg8+EzrUgzrHPhc+EzqwgKM68zrfOvSDOvs61z4fOvc6sz4TOtSDOvc6xIM+AzrHPhM6sz4TOtSA8RU5URVI+KToKKworCTpoZWxwIHcKKwk6aGVscCBjXzxUCisJOmhlbHAgaW5zZXJ0LWluZGV4CisJOmhlbHAgdXNlci1tYW51YWwKKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgzpzOkc6YzpfOnM6RIDg6IM6UzpfOnM6Zzp/Opc6hzpPOl86jzqTOlSDOlc6dzpEgU0NSSVBUIM6VzprOms6Zzp3Ol86jzpfOoworCisJCSAgICoqIM6Vzr3Otc+BzrPOv8+Azr/Ouc6uz4PPhM61IM+HzrHPgc6xzrrPhM63z4HOuc+Dz4TOuc66zqwgz4TOv8+FIFZpbSAqKgorCisgIM6fIFZpbSDOrc+HzrXOuSDPgM6/zrvOu86sIM+AzrXPgc65z4PPg8+Mz4TOtc+BzrEgz4fOsc+BzrHOus+EzrfPgc65z4PPhM65zrrOrCDOsc+AJyDPjCzPhM65IM6/IFZpLCDOsc67zrvOrCDPhM6xCisgIM+AzrXPgc65z4PPg8+Mz4TOtc+BzrEgzrXOr869zrHOuSDOsc+Bz4fOuc66zqwgzrHPgM61zr3Otc+BzrPOv8+Azr/Ouc63zrzOrc69zrEuIM6TzrnOsSDOvc6xIM6xz4HPh86vz4POtc+EzrUgzr3OsSDPh8+BzrfPg865zrzOv8+Azr/Ouc61zq/PhM61CisgIM+AzrXPgc65z4PPg8+Mz4TOtc+BzrEgz4fOsc+BzrHOus+EzrfPgc65z4PPhM65zrrOrCDPgM+Bzq3PgM61zrkgzr3OsSDPhs+EzrnOrM6+zrXPhM61IM6tzr3OsSDOsc+Bz4fOtc6vzr8gInZpbXJjIi4KKworICAxLiDOkc+Bz4fOr8+Dz4TOtSDOtM65zr/Pgc64z47Ovc6/zr3PhM6xz4Igz4TOvyDOsc+Bz4fOtc6vzr8gInZpbXJjIiwgzrHPhc+Ez4wgzrXOvs6xz4HPhM6sz4TOsc65IM6xz4DPjCDPhM6/IM+Dz43Pg8+EzrfOvM6sIM+DzrHPgjoKKwk6ZWRpdCB+Ly52aW1yYyAgICAgICAgICAgICAgIM6zzrnOsSBVbml4CisJOmVkaXQgJFZJTS9fdmltcmMgICAgICAgICAgICDOs865zrEgTVMtV2luZG93cworCisgIDIuIM6kz47Pgc6xIM61zrnPg86szrPOtc+EzrUgz4TOvyDOus61zq/OvM61zr3OvyDPgM6xz4HOsc60zrXOr86zzrzOsc+Ezr/PgiDOs865zrEgzrHPgc+HzrXOr86/ICJ2aW1yYyI6CisJOnJlYWQgJFZJTVJVTlRJTUUvdmltcmNfZXhhbXBsZS52aW0KKworICAzLiDOk8+BzqzPiM+EzrUgz4TOvyDOsc+Bz4fOtc6vzr8gzrzOtSDPhM63zr06CisJOndyaXRlCisKKyAgzqTOt869IM61z4DPjM68zrXOvc63IM+Gzr/Pgc6sIM+Azr/PhSDOuM6xIM6+zrXOus65zr3Ors+DzrXPhM61IM+Ezr/OvSBWaW0gzrjOsSDPh8+BzrfPg865zrzOv8+Azr/Ouc6uz4POtc65IM+Gz4nPhM65z4POvM+MCisgIM+Dz43Ovc+EzrHOvs63z4IuICDOnM+Azr/Pgc61zq/PhM61IM69zrEgz4DPgc6/z4POuM6tz4POtc+EzrUgz4zOu861z4Igz4TOuc+CIM+Az4HOv8+EzrnOvM+OzrzOtc69zrXPgiDOtc+AzrnOu86/zrPOrc+CIM+DJyDOsc+Fz4TPjAorICDPhM6/IM6xz4HPh861zq/OvyAidmltcmMiLgorCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKKyAgzpXOtM+OIM6/zrvOv866zrvOt8+Bz47Ovc61z4TOsc65IM+Ezr8gVmltIFR1dG9yLiDOo866zr/PgM+Mz4Igz4TOv8+FIM6uz4TOsc69IM69zrEgzrTPjs+DzrXOuSDOvM6vzrEgz4PPjc69z4TOv868zrcKKyAgz4DOtc+Bzq/Ou863z4jOtyDPhM6/z4Ugz4PPhc69z4TOrM66z4TOtyBWaW0sIM+Ezr/Phc67zqzPh865z4PPhM6/zr0gz4TPjM+Dzrcgz47Pg8+EzrUgzr3OsSDPg86xz4IgzrXPgM65z4TPgc6tz4jOtc65IM69zrEKKyAgz4fPgc63z4POuc68zr/PgM6/zrnOrs+DzrXPhM61IM+Ezr/OvSDPg8+Fzr3PhM6szrrPhM63IM6xz4HOus61z4TOrCDOtc+NzrrOv867zrEuIM6Rz4DOrc+HzrXOuSDPgM6/zrvPjSDOsc+Az4wgzrzOr86xCisgIM6/zrvOv866zrvOt8+Bz4nOvM6tzr3OtyDPgM6xz4HOv8+Fz4POr86xz4POtyDOus6xzrjPjs+CIM6/IFZpbSDOrc+HzrXOuSDPgM6sz4HOsSDPgM6/zrvOu86tz4IgzrXOvc+Ezr/Ou86tz4IuIM6UzrnOsc6yzqzPg8+EzrUKKyAgzrrOsc+Ez4zPgM65zr0gz4TOvyDOtc6zz4fOtc65z4HOr860zrnOvyDPh8+Bzq7Pg863z4I6CisJIjpoZWxwIHVzZXItbWFudWFsIi4KKworICDOk865zrEgz4DOtc+BzrHOuc+Ezq3Pgc+JIM60zrnOrM6yzrHPg868zrEgzrrOsc65IM68zrXOu86tz4TOtywgz4PPhc+Dz4TOrs69zrXPhM6xzrkgzrHPhc+Ez4wgz4TOvyDOss65zrLOu86vzr86CisJVmltIC0gVmkgSW1wcm92ZWQgLSBieSBTdGV2ZSBPdWFsbGluZQorCVB1Ymxpc2hlcjogTmV3IFJpZGVycworCc6kzr8gz4DPgc+Oz4TOvyDOss65zrLOu86vzr8gz4DOu86uz4HPic+CIM6xz4bOuc61z4HPic68zq3Ovc6/IM+Dz4TOv869IFZpbS4KKwnOmc60zrnOsc6vz4TOtc+BzrEgz4fPgc6uz4POuc68zr8gzrPOuc6xIM6xz4HPh86sz4HOuc6/z4XPgi4KKwnOpc+AzqzPgc+Hzr/Phc69IM+Azr/Ou867zqwgz4DOsc+BzrHOtM61zq/Os868zrHPhM6xIM66zrHOuSDOtc65zrrPjM69zrXPgi4KKwnOlM61zq/PhM61IM+EzrfOvSBodHRwOi8vaWNjZi1ob2xsYW5kLm9yZy9jbGljazUuaHRtbAorCisgIM6Rz4XPhM+MIM+Ezr8gzrLOuc6yzrvOr86/IM61zq/Ovc6xzrkgz4DOsc67zrnPjM+EzrXPgc6/IM66zrHOuSDPgM61z4HOuc+Dz4PPjM+EzrXPgc6/IM6zzrnOsSDPhM6/zr0gVmkgz4DOsc+BzqwgzrPOuc6xIM+Ezr/OvSBWaW0sCisgIM6xzrvOu86sIM61z4DOr8+DzrfPgiDPg8+Fzr3Ouc+Dz4TPjs68zrXOvc6/OgorCUxlYXJuaW5nIHRoZSBWaSBFZGl0b3IgLSBieSBMaW5kYSBMYW1iCisJUHVibGlzaGVyOiBPJ1JlaWxseSAmIEFzc29jaWF0ZXMgSW5jLgorCc6Vzq/Ovc6xzrkgzq3Ovc6xIM66zrHOu8+MIM6yzrnOss67zq/OvyDOs865zrEgzr3OsSDOvM6szrjOtc+EzrUgz4PPh861zrTPjM69IM+EzrEgz4DOrM69z4TOsSDPgM6/z4UgzrjOrc67zrXPhM61CisJzr3OsSDOus6szr3Otc+EzrUgzrzOtSDPhM6/zr0gVmkuCisJzpcgzq3Ous+Ezrcgzq3Ous60zr/Pg863IM+AzrXPgc65zq3Ph861zrkgzrHOus+MzrzOsSDPgM67zrfPgc6/z4bOv8+Bzq/Otc+CIM6zzrnOsSDPhM6/zr0gVmltLgorCisgIM6Rz4XPhM6uIM63IM+AzrXPgc65zq7Os863z4POtyDOs8+BzqzPhs+EzrfOus61IM6xz4DPjCDPhM6/z4XPgiBNaWNoYWVsIEMuIFBpZXJjZSDOus6xzrkgUm9iZXJ0IEsuIFdhcmUsCisgIENvbG9yYWRvIFNjaG9vbCBvZiBNaW5lcyDPh8+BzrfPg865zrzOv8+Azr/Ouc+Ozr3PhM6xz4IgzrnOtM6tzrXPgiDOsc+Az4wgz4TOv869IENoYXJsZXMgU21pdGgsCisgIENvbG9yYWRvIFN0YXRlIFVuaXZlcnNpdHkuICBFLW1haWw6IGJ3YXJlQG1pbmVzLmNvbG9yYWRvLmVkdS4KKworICDOoM+Bzr/Pg86xz4HOvM6/zrPOriDOs865zrEgz4TOv869IFZpbSDOsc+Az4wgz4TOv869IEJyYW0gTW9vbGVuYWFyLgorCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmRpZmYgLS1naXQgYS9ydW50aW1lL3R1dG9yL3R1dG9yLmh1LmNwMTI1MCBiL3J1bnRpbWUvdHV0b3IvdHV0b3IuaHUuY3AxMjUwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0ZTZiZDQKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3R1dG9yL3R1dG9yLmh1LmNwMTI1MApAQCAtMCwwICsxLDgyMyBAQAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorPSAgICDcIGQgdiD2IHog9iBsIGog/CBrICAgYSAgIFYgSSBNICAgVCB1IHQgbyByIGIgYSBuICAtICAgIDEuNS32cyAgdmVyemnzID09PQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgIEEgVmltIGVneSBuYWd5b24gaGF06Wtvbnkgc3plcmtlc3p09SwgYW1lbG55ZWsgcmVuZ2V0ZWcgdXRhc+104XNhCisgICAgIHZhbiwgdPpsIHNvaywgaG9neSBlZ3kgaWx5ZW4gb2t0YXTzYmFuICh0dXRvcmJhbiksIG1pbnQgYXogaXR0ZW5pCisgICAgIG1pbmRldCBlbG1hZ3lhcuF6enVrLiBFeiBheiBva3RhdPMgYXJyYSB09nJla3N6aWssIGhvZ3kgYW5ueWl0CisgICAgIGVsbWFneWFy4Xp6b24sIGFtZW5ueWkgZWzpZywgaG9neSBr9m5ueWVk6W4gaGFzem7hbGp1ayBhIFZpbS1ldCwgYXoKKyAgICAg4Wx0YWzhbm9zIGPpbPogc3r2dmVnc3plcmtlc3p09XQuCisKKyAgICAgQSBmZWxhZGF0b2sgbWVnb2xk4XPhaG96IDI1LTMwIHBlcmMgc3r8a3PpZ2VzIGF0dPNsIGb8Z2f1ZW4sCisgICAgIG1lbm55aXQgdPZsdPxuayBhIGtpc+lybGV0ZXrpc3NlbC4KKworICAgICBBIGxlY2vpYmVuIHN6ZXJlcGz1IHV0YXPtdOFzb2sgbfNkb3PtdGFuaSBmb2dq4WsgYSBzevZ2ZWdlay4KKyAgICAgS+lzeu10c2VuIG3hc29sYXRvdCBlcnL1bCBhIGbhamxy82wsIGhhIGd5YWtvcm9sbmkgYWthci4KKyAgICAgKEhhICJ2aW10dXRvciItcmFsIGluZO10b3R0YSwgYWtrb3IgZXogbeFyIGVneSBt4XNvbGF0LikKKworICAgICBGb250b3MgbWVn6XJ0ZW5pLCBob2d5IGV6IGF6IG9rdGF08yBjc2VsZWtlZHZlIHRhbu10dGF0LgorICAgICBFeiBhenQgamVsZW50aSwgaG9neSDWbm5layBhauFubG90dCB26WdyZWhhanRhbmlhIGF6IHV0YXPtdOFzb2thdCwKKyAgICAgaG9neSBtZWdmZWxlbPVlbiBtZWd0YW51bGphIGF6b2thdC4gSGEgY3NhayBvbHZhc3NhLCBlbGZlbGVqdGkhCisKKyAgICAgTW9zdCBiaXpvbnlvc29kam9uLCBtZWcsIGhvZ3kgYSBDYXBzLUxvY2sgZ29tYmphIE5JTkNTIGxlbnlvbXZhLCDpcworICAgICBOeW9tamEgbWVnIG1lZ2ZlbGVs9SBzeuFt+nN6b3IgYSAgIGogICBnb21ib3QsIGhvZ3kgYXogMS4xLWVzCisgICAgIGxlY2tlIHRlbGplc2VuIGEga+lwZXJuefVuIGxlZ3llbiEKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQkxLjEuICBsZWNrZTogIEEgS1VSWk9SIE1PWkdBVMFTQQorCisKKyAgICoqIEEga3Vyem9yIG1vemdhdOFz4WhveiBueW9tamEgbWVnIGEgaCxqLGssbCBnb21ib2thdCBheiBhbOFiYmkgc3plcmludC4gKioKKwkgICAgIF4KKwkgICAgIGsJCSAgICBUaXBwOiAgQSBoIGJpbGxlbnR5+yB2YW4gYmFscmEsIOlzIGJhbHJhIG1vemdhdAorICAgICAgIDwgaAkgbCA+CQkgICBBIGwgYmlsbGVudHn7IHZhbiBqb2JicmEsIOlzIGpvYmJyYSBtb3pnYXQKKwkgICAgIGoJCQkgICBBIGogYmlsbGVudHn7IG9seWFuLCBtaW50IGVneSBsZWZlbGUgbnntbAorCSAgICAgdgorICAxLiBNb3pnYXNzYSBhIGt1cnpvcnQga/ZyYmUgYXogYWJsYWtiYW4sIGFt7WcgaG96euEgbmVtIHN6b2tpayEKKworICAyLiBUYXJ0c2EgbGVueW9tdmEgYSBsZWZlbOl0IChqKSwgYWtrb3IgaXNt6XRs9WRpayEKKy0tLT4gTW9zdCB0dWRqYSwgaG9neWFuIG1laGV0IGEga/Z2ZXRrZXr1IGxlY2vpcmUuCisKKyAgMy4gQSBsZWZlbOkgZm9tYiBoYXN6buFsYXThdmFsIG1lbmplbiBhIDEuMi4gbGVja+lyZSEKKworTWVnajogSGEgbmVtIGJpenRvcyBiZW5uZSwgbWl0IG55b21vdHQgbWVnLCBueW9tamEgbWVnIGF6IDxFU0M+LWV0LCBob2d5CisgICAgICBub3Jt4WwgbfNkYmEga2Vy/Gxq9m4sIOlzIGlzbel0ZWxqZSBtZWcgYSBwYXJhbmNzb3QhCisKK01lZ2o6IEEga3Vyem9yIGdvbWJva25hayBpcyBt+2v2ZG5p/Gsga2VsbCwgZGUgYSBoamtsIGhhc3pu4WxhdOF2YWwKKyAgICAgIHNva2thbCBneW9yc2FiYmFuIHR1ZCwgbW96b2duaSwgaGEgaG96euFzem9raWsuCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkgICAgIDEuMi4gIGxlY2tlOiBCRSDJUyBLSUzJUMlTIEEgVklNQtVMCisKKworICAhISBNRUdKOiBNaWVs9XR0IHbpZ3JlaGFqdGphIGF6IGFs4WJiaSBs6XDpc2VrZXQsIG9sdmFzc2EgdulnaWcgYSBsZWNr6XQgISEKKworICAxLiBOeW9tamEgbWVnIGF6ICA8RVNDPiBnb21ib3QgKGhvZ3kgYml6dG9zYW4gbm9ybeFsIG3zZGJhbiBsZWd5ZW4pLgorCisgIDIuIM1yamE6CQkJOnEhIDxFTlRFUj4uCisKKy0tLT4gRXp6ZWwga2ls6XAgYSBzemVya2VzenT1YvVsIGEgduFsdG964XNvayBNRU5UyVNFIE7JTEvcTC4KKyAgICAgSGEgbWVudGVuaSBzemVyZXRu6SBhIHbhbHRveuFzb2thdCDpcyBraWzpcG5pLCDtcmphOgorCQkJCTp3cSAgPEVOVEVSPgorCisgIDMuIEFtaWtvciBhIHNoZWxsIHByb21wdG90IGzhdGphLCDtcmphIGJlIGEgcGFyYW5jc290LCBhbWVseSBlYmJlIGEKKyAgICAgdHV0b3JiYSBob3p6YToKKyAgICAgRXogdmFs83N67W77bGVnOgl2aW10dXRvciA8RU5URVI+CisgICAgIE5vcm3hbGlzIGVzZXRiZW4gZXp0IO1ybuE6CXZpbSB0dXRvci5odSA8RU5URVI+CisKKy0tLT4gJ3ZpbScgamVsZW50aSBhIHZpbWJlIGJlbOlw6XN0LCAndHV0b3IuaHUnIGEgZuFqbCwgYW1pdCBzemVya2VzenRlbmkga+124W4uCisKKyAgNC4gSGEgbWVnamVneWV6dGUgYSBs6XDpc2VrZXQg6XMgYml6dG9zIG1hZ+FiYW4sIGhhanRzYSB26WdyZSBhIGzpcOlzZWtldAorICAgICAxLXT1bCAzLWlnLCBob2d5IGtpbOlwamVuIOlzIHZpc3N6YXTpcmplbiBhIHN6ZXJrZXN6dPViZS4gQXp1dOFuCisgICAgIG1lbmplbiBheiAxLjMuICBsZWNr6XJlLgorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgICAgMS4zLiAgbGVja2U6IFNa1lZFRyBTWkVSS0VTWlTJU0UgLSBU1lJMyVMKKworCisqKiBOb3Jt4WwgbfNkYmFuIG55b21qb24gIHgtZXQsIGhvZ3kgYSBrdXJ6b3IgYWxhdHRpIGthcmFrdGVydCB09nL2bGplLiAqKgorCisgIDEuIE1vemdhc3NhIGEga3Vyem9ydCBhIC0tLT4ga2V6ZGV0+yBzb3JyYSEKKworICAyLiBBIGhpYuFrIGtpamF27XThc+Fob3ogbW96Z2Fzc2EgYSBrdXJ6b3J0IGFt7WcgYSB09nJsZW5k9SBrYXJha3RlcgorICAgICBm9mzpIG5lbSDpci4KKworICAzLiBOeW9tamEgbWVnIGF6ICB4ICBnb21ib3QsIGhvZ3kgdPZy9mxqZSBhIG5lbWvtduFudCBrYXJha3RlcnQuCisKKyAgNC4gSXNt6XRlbGplIGEgMiwgMywgNC1lcyBs6XDpc2VrZXQsIGhvZ3kga2lqYXbtdHNhIGEgbW9uZGF0b3QuCisKKy0tLT4g1dVzemkg6WpqamVsbCBpenppaWsgYWEgZ2FsYWdnb255YSBycnV1aOFqYS4KKworICA1LiBIYSBhIHNvciBoZWx5ZXMsIHVnb3Jqb24gYSAxLjQuIGxlY2vpcmUuCisKK01FR0o6IEEgdGFudWzhcyBzb3LhbiBuZSBtZW1vcml64WxuaSBwcvNi4Wxqb24sIGhhbmVtIGhhc3pu4WxhdCBzb3LhbiB0YW51bGpvbi4KKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJICAgICAxLjQuICBsZWNrZTogU1rWVkVHIFNaRVJLRVNaVMlTRSAtIEJFU1raUsFTCisKKworCSAqKiBOb3Jt4WwgbfNkYmFuICBpICBtZWdueW9t4XPhdmFsIGxlaGV0IGJlaWxsZXN6dGVuaS4gKioKKworICAxLiBBeiBhbOFiYmkgZWxz9SAtLS0+IGtlemRldPsgc29ycmEgbWVuamVuLgorCisgIDIuIEFoaG96LCBob2d5IGF6IGVsc/V0IGF6b25vc3PhIHRlZ3llIGEgbeFzb2Rpa2thbCwgbW96Z2Fzc2EgYSBrdXJ6b3J0CisgICAgIGF6IGVsc/Uga2FyYWt0ZXJyZSwgYW1lbHkgVVTBTiBzevZ2ZWdldCBrZWxsIGJlc3r6cm5pLgorCisgIDMuIE55b21qb24gIGktdCDpcyDtcmphIGJlIGEgbWVnZmVsZWz1IHN69nZlZ2V0LgorCisgIDQuIEFtaWtvciBtaW5kZW50IGJl7XJ0LCBueW9tam9uIDxFU0M+LWV0LCBob2d5IE5vcm3hbCBt82RiYSB2aXNzemF06XJqZW4uCisgICAgIElzbel0ZWxqZSBhIDIg6XMgNCBr9nr2dHRpIGzpcOlzZWtldCwgaG9neSBraWphdu10c2EgYSBtb25kYXRvdC4KKworLS0tPiBBeiDhdGhhdPMgc2/zbCBoaXppayBw4XIg6XN6LgorLS0tPiBBeiBpdHQgbOF0aGF08yBzb3Ji82wgaGnhbnl6aWsgcOFyIHLpc3ouCisKKyAgNS4gSGEgbeFyIGJlZ3lha29yb2x0YSBhIGJlc3r6cuFzdCwgbWVuamVuIGF6IGFs4WJiaSD2c3N6ZWZvZ2xhbPNyYS4KKworCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkJICAgICAgIDEuIExFQ0tFINZTU1pFRk9HTEFM00pBCisKKworICAxLiBBIGt1cnpvcnQgdmFneSBhIG55aWxha2thbCB2YWd5IGEgaGprbCBnb21ib2trYWwgbW96Z2F0aGF0amEuCisJIGggKGJhbHJhKQlqIChsZSkgICAgICAgayAoZmVsKQkgICAgbCAoam9iYnJhKQorCisgIDIuIEEgVmltYmUgKGEgJCBwcm9tcHR082wpIO1neSBs6XBoZXQgYmU6ICB2aW0gRklMRU5BTUUgPEVOVEVSPgorCisgIDMuIEEgVmltYvVsIO1neSBs6XBoZXQga2k6ICA8RVNDPiAgIDpxISAgPEVOVEVSPiAgYSB24Wx0b3p0YXThc29rIGVsZG9i4XPhdmFsLgorCSAgICAgdmFneSDtZ3k6CSAgICAgIDxFU0M+ICAgOndxICA8RU5URVI+ICBhIHbhbHRveuFzb2sgbWVudOlz6XZlbC4KKworICA0LiBBIGt1cnpvciBhbGF0dGkga2FyYWt0ZXIgdPZybOlzZSBub3Jt4WwgbfNkYmFuOiAgeAorCisgIDUuIFN69nZlZyBiZXN6+nLhc2EgYSBrdXJ6b3IgdXThbiBub3Jt4WwgbfNkYmFuOgorCSBpICAgICBn6XBlbGplIGJlIGEgc3r2dmVnZXQJPEVTQz4KKworTUVHSjogQXogPEVTQz4gbWVnbnlvbeFzYSBub3Jt4WwgbfNkYmEgdmlzemksIHZhZ3kgbWVnc3pha+10IGVneSBuZW0gYmVmZWplemV0dAorICAgICAgculzemJlbiBiZWZlamV6ZXR0IHBhcmFuY3NvdC4KKworTW9zdCBmb2x5dGFzc3VrIGEgMi4gbGVja+l2ZWwhCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQkyLjEuICBsZWNrZTogVNZSTNUgVVRBU81UwVNPSworCisKKwkgICAgKiogZHcgIHT2cvZsIGEgc3rzIHbpZ+lpZy4gKioKKworICAxLiBOeW9tam9uIDxFU0M+LWV0LCBob2d5IG1lZ2Jpem9ueW9zb2Rqb24sIGhvZ3kgbm9ybeFsIG3zZGJhbiB2YW4hCisKKyAgMi4gTW96Z2Fzc2EgYSBrdXJ6b3J0IGEgLS0tPiBrZXpkZXT7IHNvcnJhIQorCisgIDMuIE1vemdhc3NhIGEga3Vyem9ydCBhcnJhIGFubmFrIGEgc3rzbmFrIGF6IGVsZWrpcmUsIGFtaXQgdPZy9mxuaSBzemVyZXRuZS4KKyAgICAgVPZy9mxqZSBheiDhbGxhdG9rYXQgYSBtb25kYXRi82wuCisKKyAgNC4gQSBzevMgdPZybOlz6WhleiDtcmphOiAgIGR3CisKKyAgTUVHSjogSGEgcm9zc3p1bCBrZXpkdGUgYXogdXRhc+104XN0IGNzYWsgbnlvbWpvbiA8RVNDPiBnb21ib3QKKyAgICAgICAgYSBtZWdzemFr7XThc+Fob3ouCisKKy0tLT4gUOFyIHN68yBrdXR5YSBuZW0gdWh1IGlsbGlrIHBpbmd2aW4gYSBtb25kYXRiYSB0ZWjpbi4KKworICA1LiBJc23pdGVsamUgYSAzIOlzIDQga/Z69nR0aSB1dGFz7XThc29rYXQgYW3tZyBrZWxsIOlzIHVnb3Jqb24gYSAyLjIgbGVja+lyZSEKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgICAgIDIuMi4gIGxlY2tlOiBNyUcgVNZCQiBU1lJM1SBVVEFTzVTBUworCisKKwkgICAqKiBkJCBiZe1y4XPhdmFsIGEgc29yIHbpZ+lpZyB09nL2bGhldC4gKioKKworICAxLiBOeW9tam9uIDxFU0M+LWV0LCBob2d5IG1lZ2Jpem9ueW9zb2Rqb24sIGhvZ3kgbm9ybeFsIG3zZGJhbiB2YW4hCisKKyAgMi4gTW96Z2Fzc2EgYSBrdXJ6b3J0IGEgLS0tPiBrZXpkZXT7IHNvcnJhIQorCisgIDMuIE1vemdhc3NhIGEga3Vyem9ydCBhIGhlbHllcyBzb3Igduln6XJlIChheiBlbHP1IC4gVVTBTikhCisKKyAgNC4gZCQgIGJlZ+lwZWzpc+l2ZWx09nL2bGplIGEgc29yIHbpZ+l0IQorCistLS0+IFZhbGFraSBhIHNvciB26WfpdCBr6XRzemVyIGfpcGVsdGUgYmUuIGvpdHN6ZXIgZ+lwZWx0ZSBiZS4KKworCisgIDUuIE1lbmplbiBhIDIuMy4gbGVja+lyZSwgaG9neSBtZWfpcnRzZSBtaSB09nJ06W50IQorCisKKworCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkgICAgIDIuMy4gIGxlY2tlOiBVVEFTzVTBU09LUtNMIMlTIE9CSkVLVFVNT0tS00wKKworCisgIEEgIGQgIChkZWxldGU9dPZybOlzKSB1dGFz7XThcyBmb3Jt4WphIGEga/Z2ZXRrZXr1OgorCisJIFtzeuFtXSAgIGQJb2JqZWt0dW0JICAgVkFHWQkgICAgIGQJIFtzeuFtXSBvYmpla3R1bQorICBBaG9sOgorICAgIHN64W0gLSBo4W55c3pvciBoYWp082Rqb24gdulncmUgYSBwYXJhbmNzIChlbGhhZ3loYXTzLCBhbGFw6XJ06Ws9MSkuCisgICAgZCAtIGEgdPZybOlzIChkZWxldGUpIHV0YXPtdOFzLgorICAgIG9iamVrdHVtIC0gYW1pbiBhIHBhcmFuY3NuYWsgdGVsamVz/GxuaWUga2VsbCAoYWzhYmIgbGlzdOF6dmEpLgorCisgIE9iamVrdHVtb2sgcvZ2aWQgbGlzdOFqYToKKyAgICB3IC0gYSBrdXJ6b3J082wgYSBzevMgduln6WlnLCBiZWxl6XJ0dmUgYSBzevNr9np0LgorICAgIGUgLSBhIGt1cnpvcnTzbCBhIHN68yB26WfpaWcsIE5FTSBiZWxl6XJ0dmUgYSBzevNr9np0LgorICAgICQgLSBhIGt1cnpvcnTzbCBhIHNvciB26WfpaWcuCisKK01FR0o6ICBW4WxsYWxrb3rzYmJhayBrZWR26elydCwgY3N1cOFuIGF6IG9iamVrdHVtIGJlZ+lwZWzpc+l2ZWwgcGFyYW5jcyBu6Wxr/GwKKyAgICAgICBhIGt1cnpvciBvZGEga2Vy/GwsIGFtaXQgYXogb2JqZWt0dW1saXN0YSBtZWdhZC4KKworCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCTIuNC4gIGxlY2tlOiBFR1kgS0lWyVRFTCBBICAnUEFSQU5DU09CSkVLVFVNJyBBTNNMCisKKworCSAgICAgICAqKiBkZCBiZe1y4XPhdmFsIHT2cvZsaGV0aSBheiBlZ+lzeiBzb3J0LiAqKgorCisgIEEgdGVsamVzIHNvciB09nJs6XPpbmVrIGd5YWtvcmlz4WdhIG1pYXR0IGEgVmkgdGVydmV69WkgZWxoYXThcm96dOFrLAorICBob2d5IGv2bm55ZWJiIGxlbm5lIGNzdXDhbiBhIGQtdCBr6XRzemVyIG1lZ255b21uaSwgaG9neSBlZ3kgc29ydCB09nL2bGr8bmsuCisKKyAgMS4gTW96Z2Fzc2EgYSBrdXJ6b3J0IGF6IGFs4WJiaSBraWZlamV66XNlayBt4XNvZGlrIHNvcuFyYSEKKyAgMi4gZGQgYmVn6XBlbOlz6XZlbCB09nL2bGplIGEgc29ydCEKKyAgMy4gTWVuamVuIGEgNC4gKGVyZWRldGlsZWcgNS4pIHNvcnJhIQorICA0LiAyZGQgICAodWd5ZWLhciBzeuFtLXV0YXPtdOFzLW9iamVrdHVtKSBiZWfpcGVs6XPpdmVsIHT2cvZsavZuIGvpdCBzb3J0IQorCisgICAgICAxKSAgQWx28yBzemVnZWsgYSBq6WdoaWRlZyBob21va2JhbiwKKyAgICAgIDIpICAtIGtlemRpIGEga/ZsdPUgLQorICAgICAgMykgIFBsYWvhdG1hZ+FueWJhbiDhevMg6WpqZWxlay4KKyAgICAgIDQpICBQaW5ndmluZWsgbmUgZulsamV0ZWssCisgICAgICA1KSAgVOF2b2xy82wgZWd5IHZha3UgdmlsbGFudCwKKyAgICAgIDYpICDJZ3ZlIGhhZ3l0YWQgYSBmb2x5b3PzbiBhIHZpbGxhbnl0LgorICAgICAgNykgIE1hIG9udGrhayB26XJlbWV0LgorCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkJIDIuNS4gIGxlY2tlOiBBIFZJU1NaQVZPTsFTIChVTkRPKSBQQVJBTkNTCisKKworKiogdSBn6XBlbOlz6XZlbCB2aXNzemF2b25oYXTzIGF6IHV0b2xz8yBwYXJhbmNzLCBVIGF6IGVn6XN6IHNvcnQgaGVseXJl4Wxs7XRqYS4gKioKKworICAxLiBNZW5q/G5rIGF6IGFs4WJiaSAtLS0+IGtlemRldPsgc29yIGVsc/UgaGli4WrhcmEhCisgIDIuIHggIGxlbnlvbeFz4XZhbCB09nL2bGplIGF6IGVsc/UgZmVsZXNsZWdlcyBrYXJha3RlcnQhCisgIDMuIHUgbWVnbnlvbeFz4XZhbCB2b25qYSB2aXNzemEgYXogdXRvbHPzbmFrIHbpZ3JlaGFqdG90dCB1dGFz7XThc3QhCisgIDQuIE3hc29kauFyYSBqYXbtdHNvbiBraSBtaW5kZW4gaGli4XQgYSBzb3JiZW4gYXogeCB1dGFz7XThc3NhbCEKKyAgNS4gTW9zdCBuYWd5ICBVICAtdmFsIOFsbO10c2Egdmlzc3phIGEgc29yIGVyZWRldGkg4WxsYXBvdOF0IQorICA2LiBOeW9tamEgbWVnIGF6IHUgZ29tYm90IHDhcnN6b3IsIGhvZ3kgYXogVSDpcyBzeiBlbPV69SB1dGFz7XThc29rYXQKKyAgICAgdmlzc3ph4Wxs7XRzYSEKKyAgNy4gQ1RSTC1SIChDVFJMIGdvbWIgbGVueW9t4XNhIG1lbGxldHQg/HNz9m4gUi10KSBw4XJzem9yIGNzaW7hbGphIPpqcmEgYQorICAgICB2aXNzemF2b250IHBhcmFuY3Nva2F0IChyZWRvKSEKKworLS0tPiBKYXbt7XRzZCBhIGhoaWLha2FhdCBlYmJiZW4gYSBzb29vcmJhbiBtYWpkIOFsbO10c2Egdmlzc3phYWEgYXogZXJlZGV0aXQuCisKKyAgOC4gRXplayBuYWd5b24gaGFzem5vcyBwYXJhbmNzb2suIE1vc3QgdWdhcmpvbiBhIDIuIGxlY2tlIPZzc3plZm9nbGFs82rhcmEuCisKKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJCSAgICAgICAyLiBMRUNLRSDWU1NaRUZPR0xBTNNKQQorCisKKyAgMS4gVPZybOlzIGEga3Vyem9ydPNsIGEgc3rzIHbpZ+lpZzogICAgZHcKKworICAyLiBU9nJs6XMgYSBrdXJ6b3J082wgYSBzevMgduln6WlnOiAgICBkJAorCisgIDMuIEVn6XN6IHNvciB09nJs6XNlOiAgICBkZAorCisgIDQuIEVneSB1dGFz7XThcyBhbGFramEgbm9ybeFsIG3zZGJhbjoKKworICAgICAgIFtzeuFtXSAgIHV0YXPtdOFzICAgb2JqZWt0dW0gICBWQUdZICAgdXRhc+104XMJW3N64W1dIG9iamVrdHVtCisgICAgIGFob2w6CisgICAgICAgc3rhbSAtIGjhbnlzem9yIGlzbel0ZWxq/GsgYSBwYXJhbmNzb3QKKyAgICAgICB1dGFz7XThcyAtIG1pdCB0ZWd5/G5rLCBwbC4gZCAgYSB09nJs6XNrb3IKKyAgICAgICBvYmpla3R1bSAtIG1pcmUgaGFzc29uIGF6IHV0YXPtdOFzLCBw6Wxk4XVsIHcgKHN68z13b3JkKSwKKwkJJCAoYSBzb3Igduln6WlnKSwgc3RiLgorCisgIDUuIEF6IGVs9Xr1IHRldHQgdmlzc3phdm9u4XNhICh1bmRvKToJICAgICB1CSAoa2lzIHUpCisgICAgIEEgc29yIPZzc3plcyB24Wx0b3rhc+FuYWsgdmlzc3phdm9u4XNhOiBVCSAobmFneSBVKQorICAgICBWaXNzemF2b27hc29rIHZpc3N6YXZvbuFzYToJICAgICBDVFJMLVIKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQkgMy4xLiAgbGVja2U6IEEgUFVUIFBBUkFOQ1MKKworCisgICoqIHAgIGxl/HTpc+l2ZWwgYXogdXRvbHPzbmFrIHT2cvZsdGV0IGEga3Vyem9yIHV04W4gaWxsZXN6aGV0avxrLiAqKgorCisgIDEuIE1vemdhc3N1ayBhIGt1cnpvcnQgYXogYWzhYmJpIHNvcm9rIGVsc/Ugc29y4XJhLgorCisgIDIuIGRkIGxl/HTpc+l2ZWwgdPZy9mxq/GsgYSBzb3J0IOlzIGVsdOlyb2zzZGlrIGEgVmltIHB1ZmZlculiZW4uCisKKyAgMy4gTW96Z2Fzc3VrIGEga3Vyem9ydCBBRtZMySBhIHNvciBm9mzpLCBhaG924SBtb3pnYXRuaSBzemVyZXRu6W5rIGEKKyAgICAgdPZy9mx0IHNvcnQuCisKKyAgNC4gTm9ybeFsIG3zZGJhbiDtcmp1bmsgIHAgICBiZXT7dCBhIHT2cvZsdCBzb3IgYmVpbGxlc3p06XPpaGV6LgorCisgIDUuIEZvbHl0YXNzdWsgYSAyLTQuIHV0YXPtdOFzb2trYWwgaG9neSBhIGhlbHllcyBzb3JyZW5kZXQga2FwanVrLgorCisgICAgIGQpIENhbiB5b3UgbGVhcm4gdG9vPworICAgICBiKSBWaW9sZXRzIGFyZSBibHVlLAorICAgICBjKSBJbnRlbGxpZ2VuY2UgaXMgbGVhcm5lZCwKKyAgICAgYSkgUm9zZXMgYXJlIHJlZCwKKworCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkgICAgICAgMy4yLiAgbGVja2U6IEEgUkVQTEFDRSBQQVJBTkNTCisKKworKiogciAg6XMgIGEga2FyYWt0ZXJlayBsZfx06XPpdmVsIGEga3Vyem9yIGFsYXR0aSBrYXJha3RlcnQgbWVnduFsdG96dGF0anVrLiAqKgorCisgIDEuIE1vemdhc3N1ayBhIGt1cnpvcnQgYXogZWxz9SAtLS0+IGtlemRldPsgc29ycmEhCisKKyAgMi4gTW96Z2Fzc3VrIGEga3Vyem9ydCBheiBlbHP1IGhpYmEgZvZs6SEKKworICAzLiByCW1hamQgYSBr7XbhbnQga2FyYWt0ZXIgbGX8dOlz6XZlbCB24Wx0b3p0YXNzdWsgbWVnIGEgaGli4XNhdCEKKworICA0LiBBIDIuIOlzIDMuIGzpcOlzZWtrZWwgamF27XRzdWsgYXog9nNzemVzIGhpYuF0IQorCistLS0+ICBXaGFuIHRoaXMgbGltZSB3YXMgdHVvZWQgaW4sIHNvbWVvbmUgcHJlc3N3ZCBzb21lIHdyb2pnIGtleXMhCistLS0+ICBXaGVuIHRoaXMgbGluZSB3YXMgdHlwZWQgaW4sIHNvbWVvbmUgcHJlc3NlZCBzb21lIHdyb25nIGtleXMhCisKKyAgNS4gTWVuavxuayBhIDMuMi4gbGVja+lyZSEKKworTUVHSjogRW1s6WtlenplbiwgaG9neSBuZW0gbWVtb3JpeuFs4XNzYWwsIGhhbmVtIGd5YWtvcmzhc3NhbCB0YW51bGpvbi4KKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJCTMuMy4gIGxlY2tlOiBBIENIQU5HRSBQQVJBTkNTCisKKworCSAgICoqIEEgc3rzIGVneSBy6XN66W5layBtZWd24Wx0b3p0YXThc+Fob3og7XJqdWs6ICBjdyAuICoqCisKKyAgMS4gTW96Z2Fzc3VrIGEga3Vyem9ydCBheiBlbHP1IC0tLT4ga2V6ZGV0+yBzb3JyYSEKKworICAyLiBWaWd5ZSBhIGt1cnpvcnQgYSBFemVuIHN68yB6IGJldPtqZSBm9mzpIQorCisgIDMuIGN3IOlzIGEgaGVseWVzIHN683Lpc3ogKGl0dCAnYmJlbicpIGJl7XLhc+F2YWwgamF27XRzYSBhIHN683QhCisKKyAgNC4gPEVTQz4gbGVueW9t4XNhIHV04W4gYSBr9nZldGtlevUgaGli4XJhIHVnb3Jqb24gKGF6IGVsc/UgY3NlculsZW5k9QorICAgICBrYXJha3RlcnJlKSEKKworICA1LiBBIDMuIOlzIDQuIGzpcOlzZWsgaXNt6XRs6XPpdmVsIGF6IGVsc/UgbW9uZGF0b3QgdGVneWUgYSBt4XNvZGlra2FsCisgICAgIGF6b25vc3PhIQorCistLS0+IEV6ZW4gYSBzb3JycnJyIHDhciBzevNyYSBtZWcga2VsbCB24Wx0b3p6YW5hayBhIGNoYW5nZSB1dGFza+1y6XP1LgorLS0tPiBFYmJlbiBhIHNvcmJhbiBw4XIgc3rzdCBtZWcga2VsbCB24Wx0b3p0YXRuaSBhIGNoYW5nZSB1dGFz7XThc3NhbC4KKworVmVnefxrIOlzenJlLCBob2d5IGEgIGN3ICBuZW0gY3NhayBhIHN683Qg7XJqYSDhdCwgaGFuZW0gYmVzevpy8worKGluc2VydCkgbfNkYmEgduFsdC4KKworCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkgICAgICAgMy40LiAgbGVja2U6IFTWQkJGyUxFIFbBTFRPWlRBVMFTIGMtVkVMCisKKworICoqIEEgYyB1dGFz7XThcyBoYXN6buFsaGF08yB1Z3lhbmF6b2trYWwgYXogb2JqZWt0dW1va2thbCBtaW50IGEgdPZybOlzICoqCisKKyAgMS4gQSBjaGFuZ2UgdXRhc+104XMgYSB09nJs6XNzZWwgYXpvbm9zYW4gdmlzZWxrZWRpay4gIEEgZm9ybWE6CisKKyAgICAgICBbc3rhbV0gICBjICAgb2JqZWt0dW0JICAgT1IJICAgIGMJW3N64W1dICAgb2JqZWt0dW0KKworICAyLiBBeiBvYmpla3R1bW9rIGlzIGF6b25vc2FrLCBwbC4gICB3IChzevMpLCAkIChzb3J26WcpLCBzdGIuCisKKyAgMy4gTW96Z2Fzc3VrIGEga3Vyem9ydCBheiBlbHP1IC0tLT4ga2V6ZGV0+yBzb3JyYSEKKworICA0LiBNZW5q/G5rIGF6IGVsc/UgaGli4XJhIQorCisgIDUuIGMkIGJlZ+lwZWzpc+l2ZWwgYSBzb3J26Wdla2V0IHRlZ3n8ayBhem9ub3Nz4SDpcyBueW9tanVuayA8RVNDPi1ldCEKKworLS0tPiBFbm5layBhIHNvcm5hayBhIHbpZ2Uga2lpZ2F67XThc3JhIHN6b3J1bCwgaG9neSBtZWdlZ3llenplbiBhIG3hc29kaWtrYWwuCistLS0+IEVubmVrIGEgc29ybmFrIGEgdulnZSBhIGMkIHBhcmFuY2NzYWwgduFsdG96dGF0aGF08yBtZWcuCisKKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJCSAgICAgICAzLiBMRUNLRSDWU1NaRUZPR0xBTNNKQQorCisKKyAgMS4gQSBt4XIgdPZy9mx0IHNvcnQgYmVpbGxlc3p06XPpaGV6IG55b21qdW5rIHAtdC4gRXogYSB09nL2bHQgc3r2dmVnZXQKKyAgICAgYSBrdXJ6b3IgVVTBTiBoZWx5ZXppIChoYSBzb3Iga2Vy/Gx0IHT2cmzpc3JlLCBhIGt1cnpvciBhbGxhdHRpIHNvcmJhKS4KKworICAyLiBBIGt1cnpvciBhbGF0dGkga2FyYWt0ZXIg4XTtcuFz4WhveiBheiByLWV0IOlzIGF6dCBhIGthcmFrdGVydAorICAgICBueW9tanVrLCBhbWVsbHllbCBheiBlcmVkZXRpdCBmZWz8bCBzemVyZXRu6W5rIO1ybmkuCisKKyAgMy4gQSB24Wx0b3p0YXThcyAoYykgdXRhc+104XMgYSBrYXJha3RlcnT1bCBheiBvYmpla3R1bSB26WfpaWcKKyAgICAgduFsdG96dGF0amEgbWVnIGF6IG9iamVrdHVtb3QuIFDpbGThdWwgYSBjdyBhIGt1cnpvcnTzbCBhIHN68yB26WfpaWcsCisgICAgIGEgYyQgYSBzb3Igduln6WlnLgorCisgIDQuIEEgduFsdG96dGF04XMgZm9ybeF0dW1hOgorCisJIFtzeuFtXSAgIGMJb2JqZWt0dW0JVkFHWQljICAgW3N64W1dICAgb2JqZWt0dW0KKworVWdvcmp1bmsgYSBr9nZldGtlevUgbGVja+lyZSEKKworCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkgICAgIDQuMS4gIGxlY2tlOiBIRUxZIMlTIEbBSkzBTExBUE9UCisKKworICoqIENUUkwtZyBtZWdueW9t4XPhdmFsIG1lZ27pemhldGr8ayBhIGhlbHn8bmtldCBhIGbhamxiYW4g6XMgYSBm4WpsIOFsbGFwb3ThdC4KKyAgICAgU0hJRlQtRyBsZfx06XPpdmVsIGEgZuFqbCBhZG90dCBzb3LhcmEgdWdvcmhhdHVuay4gKioKKworICBNZWdqOiBPbHZhc3N1ayBlbCBheiBlZ+lzeiBsZWNr6XQgYSBs6XDpc2VrIHbpZ3JlaGFqdOFzYSBlbPV0dCEhCisKKyAgMS4gVGFydHN1ayBueW9tdmEgYSBDdHJsIGdvbWJvdCDpcyBueW9tanVuayAgZy10LiAgQXog4WxsYXBvdHNvcgorICAgICBtZWdqZWxlbmlrIGEgbGFwIGFsauFuIGEgZuFqbG7pdnZlbCDpcyBheiBha3R14WxpcyBzb3Igc29yc3rhbeF2YWwuCisgICAgIEplZ3llenr8ayBtZWcgYSBzb3JzeuFtb3QgYSAzLiBs6XDpc2hleiEKKworICAyLiBOeW9tanVuayBTaGlmdC1HLXQgYSBsYXAgYWxq4XJhIHVncuFzaG96IQorCisgIDMuINxzc/xrIGJlIGF6IGVyZWRldGkgc29yIHN64W3hdCwgbWFqZCD8c3P8bmsgc2hpZnQtRy10ISBFenplbAorICAgICB2aXNzemFqdXR1bmsgYXogZXJlZGV0aSBzb3JyYSBhaG9sIEN0cmwtZy10IG55b210dW5rLgorICAgICAoQSBiZe1ydCBzeuFtIE5FTSBmb2cgbWVnamVsZW5uaSBhIGvpcGVybnn1bi4pCisKKyAgNC4gSGEgbWVnamVneWV6dGUgYSBmZWxhZGF0b3QsIGhhanRzYSB26WdyZSBheiAxLTMuIGzpcOlzZWtldCEKKworCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkJNC4yLiAgbGVja2U6IEEgU0VBUkNIIFBBUkFOQ1MKKworCisgICoqIC8gbWFqZCBhIGvtduFudCBraWZlamV66XMgYmXtcuFz4XZhbCBrZXJlc2hldGr8ayBtZWcgYSBraWZlamV66XN0LiAqKgorCisgIDEuIE5vcm3hbCBt82RiYW4g/HNz/G5rICAvICBrYXJha3RlcnQhICBFeiDpcyBhIGt1cnpvciBtZWdqZWxlbmlrCisgICAgIGEga+lwZXJuefUgYWxq4W4sIGFob2d5IGEgOiB1dGFz7XThcyBpcy4KKworICAyLiDNcmp1ayBiZTogJ2hpaWJhYScgPEVOVEVSPiEgIEV6IGF6IGEgc3rzIGFtaXQga2VyZXP8bmsuCisKKyAgMy4gQSBraWZlamV66XMg+mphYmIga2VyZXPpc+loZXog/HNz/GsgbGUgZWd5c3plcvtlbjogIG4gLgorICAgICBBIGtpZmVqZXrpcyBlbGxlbmtlevUgaXLhbnliYW4gdPZydOlu9SBrZXJlc+lz6WhleiBlenQg/HNz/GsgYmU6IFNoaWZ0LU4gLgorCisgIDQuIEhhIHZpc3N6YWZlbOkgc3plcmV0bmUga2VyZXNuaSwgYWtrb3IgPyBrZWxsIGEgISBoZWx5ZXR0LgorCistLS0+ICJoaWliYWEiIG5lbSBhIGhlbHllcyBt82RqYSBhIGhpYmEgbGXtcuFz4W5hazsgYSBoaWliYWEgZWd5IGhpYmEuCisKK01lZ2o6IEhhIGEga2VyZXPpcyBlbOlyaSBhIGbhamwgduln6XQsIGFra29yIGF6IGVsZWrpbiBrZXpkaS4KKworCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJICAgNC4zLiAgbGVja2U6IFrBUtNKRUxFSyBQwVJKwU5BSyBLRVJFU8lTRQorCisKKwkgICAqKiAlIGxl/HTpc+l2ZWwgbWVndGFs4WxqdWsgYSApLF0sIHZhZ3kgfSAgcOFyauF0LiAqKgorCisgIDEuIEhlbHllenplIGEga3Vyem9ydCB2YWxhbWVseWlrICgsIFssIHZhZ3kgeyB64XLzamVscmUgYSAtLS0+IGtlemRldPsKKyAgICAgc29yYmFuIQorCisgIDIuINxzc/ZuICAlICBrYXJha3RlcnQhCisKKyAgMy4gQSBrdXJ6b3IgYSB64XLzamVsIHDhcmrhcmEgZm9nIHVncmFuaS4KKworICA0LiAlIGxl/HTpc+l2ZWwgdmlzc3phdWdyaWsgYXogZXJlZGV0aSB64XLzamVscmUuCisKKy0tLT4gRXogKCBlZ3kgdGVzenRzb3IgKC1la2tlbCwgWy1la2tlbCBdIOlzIHstZWtrZWwgfSBhIHNvcmJhbi4gKSkKKworTWVnajogRXogbmFneW9uIGhhc3pub3MsIGhhIG9seWFuIHByb2dyYW1vdCBkZWJ1Z29sdW5rLCBhbWVseWJlbiBhCisgICAgICB64XLzamVsZWsgbmVtIHDhcm9zYWshCisKKworCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkgICAgICA0LjQuICBsZWNrZTogQSBISULBSyBLSUpBVs1UwVPBTkFLIEVHWSBN00RKQQorCisKKyAgICAqKiA6cy/6ai9y6WdpL2cgYmVn6XBlbOlz6XZlbCBheiAn+monLXJhIGNzZXLpbGr8ayBhICdy6WdpJy10LiAqKgorCisgIDEuIE1lbmr8bmsgYSAtLS0+IGtlemRldPsgc29ycmEhCisKKyAgMi4gzXJqdWsgYmU6ICA6cy9lZ2d5L2VneSA8RU5URVI+IC4gIEVra29yIGNzYWsgYXogZWxz9SB24Wx0b3ppayBtZWcgYQorICAgICBzb3JiYW4uCisKKyAgMy4gTW9zdCBlenQg7XJqdWs6CSA6cy9lZ2d5L2VnZy9nCSAgIGFtZWx5IGdsb2LhbGlzYW4gaGVseWV0dGVz7XQKKyAgICAgYSBzb3JiYW4uCisgICAgIEV6IGEgc29yYmFuIG1pbmRlbiBlbPVmb3JkdWzhc3QgaGVseWV0dGVz7XQuCisKKy0tLT4gZWdneSBoZWd5IG1lZ2d5LCBzemVtYmUgavZuIGVnZ3kgbeFzaWsgaGVnZ3kuCisKKyAgNC4gS+l0IHNvciBr9nr2dHQgYSBrYXJha3RlcnNvciBtaW5kZW4gZWz1Zm9yZHVs4XPhbmFrIGhlbHlldHRlc+106XNlOgorICAgICA6Iywjcy9y6WdpL/pqL2cgICAgYWhvbCAjLCMgYSBr6XQgc29yIHNvcnN64W1hLgorICAgICA6JXMvculnaS/6ai9nICAgICAgYSBm4WpsYmVsaSD2c3N6ZXMgZWz1Zm9yZHVs4XMgaGVseWV0dGVz7XTpc2UuCisKKworCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkJICAgICAgIDQuIExFQ0tFINZTU1pFRk9HTEFM00pBCisKKworICAxLiBDdHJsLWcgIGtp7XJqYSBheiBrdXJ6b3IgaGVseel0IGEgZuFqbGJhbiDpcyBhIGbhamwg4WxsYXBvdOF0LgorICAgICBTaGlmdC1HIGEgZuFqbCB26WfpcmUgbWVneSwgZ2cgYXogZWxlaulyZS4gRWd5IHN64W0gdXThbgorICAgICBTaGlmdC1HICBheiBhZG90dCBzeuFt+iBzb3JyYSB1Z3Jpay4KKworICAyLiAvCXV04W4gZWd5IGtpZmVqZXrpcyBFTNVSRUZFTEUga2VyZXNpIGEga2lmZWpleulzdC4KKyAgMi4gPwl1dOFuIGVneSBraWZlamV66XMgVklTU1pBRkVMRSBrZXJlc2kgYSBraWZlamV66XN0LgorICAgICBFZ3kga2VyZXPpcyB1dOFuIGF6ICBuICBhIGv2dmV0a2V69SBlbPVmb3JkdWzhc3Qga2VyZXNpIGF6b25vcyBpcuFueWJhbgorICAgICBTaGlmdC1OICBheiBlbGxlbmtlevUgaXLhbnliYW4ga2VyZXMuCisKKyAgMy4gJQliZWfpcGVs6XPpdmVsLCBoYSAgKCwpLFssXSx7LCB2YWd5IH0ga2FyYWt0ZXJlbiB2YWd5dW5rIGEgeuFy82plbAorICAgICBw4XJq4XJhIHVncmlrLgorCisgIDQuIGF6IGVsc/UgculnaSBoZWx5ZXR0ZXPtdOlzZSD6amphbCBhIHNvcmJhbiAgICA6cy9y6WdpL/pqCisgICAgIGF6IPZzc3plcyBy6WdpIGhlbHlldHRlc+106XNlIPpqamFsIGEgc29yYmFuICA6cy9y6WdpL/pqL2cKKyAgICAga+l0IHNvciBr9nr2dHRpIGtpZmVqZXrpc2VrcmUJCSAgIDojLCNzL3LpZ2kv+movZworICAgICAjIGhlbHnpbiBheiBha3R14WxpcyBzb3IgKC4pIOlzIGF6IHV0b2xz8yAoJCkgaXMg4WxsaGF0IDouLCQvculnaS/6ai9nCisgICAgIEEgZuFqbGJlbGkg9nNzemVzIGVs9WZvcmR1bOFzIGhlbHlldHRlc+106XNlICA6JXMvculnaS/6ai9nCisgICAgIE1pbmRlbmtvcmkgbWVnZXL1c+106XNyZSB24XIgJ2MnIGhhdOFz4XJhCSAgIDolcy9y6WdpL/pqL2djCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCTUuMS4gIGxlY2tlOiBL3ExT1SBQQVJBTkNTIFbJR1JFSEFKVMFTQQorCisKKyAgICoqIDohICB1dOFuIGv8bHP1IHBhcmFuY3NvdCDtcnZhIHbpZ3JlaGFqdPNkaWsgYSBwYXJhbmNzLiAqKgorCisgIDEuIM1yanVrIGJlIGF6IGlzbWVy9XMgOiBwYXJhbmNzb3QsIGhvZ3kgYSBrdXJ6b3J0IGEgIGvpcGVybnn1IGFsauFyYQorICAgICBoZWx5ZXp6/GsuIEV6IGxlaGV09XbpIHRlc3ppIGVneSBwYXJhbmNzIGJl7XLhc+F0LgorCisgIDIuICEgKGZlbGtp4Wx082plbCkgYmXtcuFz4XZhbCB0ZWd5/GsgbGVoZXT1dukga/xsc/UgaOlqIChzaGVsbCktcGFyYW5jcworICAgICB26WdyZWhhanThc+F0LgorCisgIDMuIM1yanVuayBw6Wxk4XVsIGxzIHBhcmFuY3NvdCBhICEgdXThbiBtYWpkIPxzc/xuayA8RU5URVI+LXQuICBFeiBraQorICAgICBmb2dqYSBsaXN04XpuaSBhIGv2bnl2dOFydW5rYXQgdWd5YW76Z3ksIG1pbnRoYSBhIHNoZWxsIHByb21wdG7hbAorICAgICBsZW5u6W5rLiAgVmFneSDtcmphIGV6dCAgOiFkaXIgIGhhIGF6IGxzIG5lbSBt+2v2ZGlrLgorCitNZWdqOiAgSWx5bfNkb24gYuFybWVseSBr/Gxz9SB1dGFz7XThcyB26WdyZWhhanRoYXTzLgorCitNZWdqOiAgTWluZGVuICA6ICBwYXJhbmNzIHV04W4gPEVOVEVSPi10IGtlbGwg/HRuaS4KKworCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgICAgIDUuMi4gIGxlY2tlOiBC1VZFQkJFTiBBIEbBSkxPSyDNUsFTwVLTTAorCisKKyAgICAgKiogQSBm4Wpsb2sgduFsdG964XNhaXQg7Wd5IO1yaGF0anVrIGtpICA6dyBGwUpMTslWLiAqKgorCisgIDEuIDohZGlyICB2YWd5ICA6IWxzICBiZe1y4XPhdmFsIGxpc3Thenp1ayBhIGv2bnl2dOFydW5rYXQhCisgICAgINZuIG3hciB0dWRqYSwgaG9neSA8RU5URVI+LXQga2VsbCD8dG5pZSB1dOFuYS4KKworICAyLiBW4Wxhc3N6b24gZWd5IGbhamxuZXZldCwgYW1lbHkgbelnIG5lbSBs6XRlemlrIHBsLiBURVNaVCEKKworICAzLiDNcmphOgk6dyBURVNaVCAgIChhaG9sIFRFU1pUIGEgduFsYXN6dG90dCBm4Wpsbul2KSEKKworICA0LiBFeiBlbG1lbnRpIGEgdGVsamVzIGbhamx0IChhIFZpbSBUdXRvcnQpIFRFU1pUIG7pdmVuLgorICAgICBFbGxlbvVyeulza+lwcCDtcmp1ayBpc23pdCAgICA6IWRpciAgIGhvZ3kgbOFzc3VrIGEga/ZueXZ04XJhdCEKKyAgICAgKEZlbGZlbOkgZ29tYmJhbCA6IHV04W4gYXogZWz1evUgdXRhc+104XNvayB2aXNzemFob3poYXTzYWsuKQorCitNZWdqOiBIYSDWbiBraWzpcG5lIGEgVmltYvVsIOlzIOlzIHZpc3N6YXTpcm5lIGEgVEVTWlQgZuFqbG7pdnZlbCwgYWtrb3IgYQorICAgICAgZuFqbCBhIHR1dG9yIG1lbnTpc2tvcmkgcG9udG9zIG3hc29sYXRhIGxlbm5lLgorCisgIDUuIFThdm9s7XRzYSBlbCBhIGbhamx0ICAoTVMtRE9TKToJOiFkZWwgVEVTWlQKKwkJCXZhZ3kgKFVuaXgpOgk6IXJtIFRFU1pUCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgICA1LjMuICBsZWNrZTogRUdZIEtJVsFMQVNaVE9UVCBSyVNaIEtJzVLBU0EKKworCisJKiogQSBm4WpsIGVneSBy6XN66W5layBrae1y4XPhaG96IO1yamEgOiMsIyB3IEbBSkxOyVYgKioKKworICAxLiA6IWRpciAgdmFneSA6IWxzICBiZe1y4XPhdmFsIGxpc3ThenphIGEga/ZueXZ04XJhdCwg6XMgduFsYXNzem9uIGVneQorICAgICBtZWdmZWxlbPUgZuFqbG5ldmV0LCBwbC4gVEVTWlQuCisKKyAgMi4gTW96Z2Fzc2EgYSBrdXJ6b3J0IGVubmVrIGF6IG9sZGFsbmFrIGEgdGV0ZWrpcmUsIOlzIG55b21qb24KKyAgICAgQ3RybC1nLXQsIGhvZ3kgbWVndHVkamEgYSBzb3JzeuFtb3QuICBKRUdZRVpaRSBNRUcgQSBTWsFNT1QhCisKKyAgMy4gTW9zdCBtZW5qZW4gYSBsYXAgYWxq4XJhLCDpcyD8c3NlIGJlIGlzbel0OiBDdHJsLWcuICBFWlQgQSBTWsFNT1QKKyAgICAgSVMgSkVHWUVaWkUgTUVHIQorCisgIDQuIEhhIGNzYWsgZXp0IGEgculzeul0IHN6ZXJldG7pIG1lbnRlbmkgYSBm4WpsbmFrLCDtcmphICAgOiMsIyB3IFRFU1pUCisgICAgIGFob2wgIywjIGEga+l0IHNvcnN64W0sIGFtaXQgbWVnamVneXpldHQsIFRFU1pUIGF6INZuIGbhamxuZXZlLgorCisgIDUuIElzbel0IG7penplIG1lZywgaG9neSBhIGbhamwgb3R0IHZhbiAoOiFkaXIpIGRlIE5FIHT2cvZsamUuCisKKyAgNi4gVmltYmVuIGzpdGV6aWsgZWd5IG3hc2lrIGxlaGV09XPpZzogbnlvbWphIG1lZyBhIFNoaWZ0LVYgZ29tYnDhcnQKKyAgICAgYXogZWxz9SBtZW50ZW5pIGvtduFudCBzb3JvbiwgbWFqZCBtZW5qZW4gbGUgYXogdXRvbHPzcmEsIGV6dXThbgorICAgICDtcmphIDp3IFRFU1pUMiAgIEVra29yIGEgVEVTWlQyIGbhamxiYSBrZXL8bCBhIGtpamVs9mx0IHLpc3ouCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgIDUuNC4gIGxlY2tlOiBSRVRSSUVWSU5HIEFORCBNRVJHSU5HIEZJTEVTCisKKworICAgICAgICoqIEVneSBm4WpsIHRhcnRhbG3hbmFrIGJlaWxsZXN6dOlz6WhleiDtcmphICAgOnIgRsFKTE7JViAqKgorCisgIDEuIDohZGlyIGJl7XLhc+F2YWwgbul6emUgbWVnLCBob2d5IGF6INZuIFRFU1pUIGbhamxqYSBs6XRlemlrIG3pZy4KKworICAyLiBIZWx5ZXp6ZSBhIGt1cnpvcnQgZW5uZWsgYXogb2xkYWxuYWsgYSB0ZXRlaulyZS4KKworTUVHSjogIEEgMy4gbOlw6XMgdXThbiBheiA1LjMuIGxlY2vpdCBmb2dqYSBs4XRuaS4gQXp1dOFuIExFRkVMySBpbmR1bHZhCisgICAgICAga2VyZXNzZSBtZWcgaXNt6XQgZXp0IGEgbGVja+l0LgorCisgIDMuIE1vc3Qgc3r6cmphIGJlIGEgVEVTWlQgbmV2+yBm4WpsdCBhICAgOnIgVEVTWlQgICBwYXJhbmNjc2FsLCBhaG9sCisgICAgIFRFU1pUIGF6INZuIGbhamxq6W5hayBhIG5ldmUuCisKK01FR0o6ICBBIGbhamwsIGFtaXQgYmVpbGxlc3p0ZXR0IGEga3Vyem9yYSBhbGF0dCBoZWx5ZXprZWRpayBlbC4KKworICA0LiBIb2d5IGVsbGVu9XJpenr8aywgaG9neSBhIGbhamx0IHTpbnlsZWcgYmVpbGxzenRldHT8aywgbWVuamVuCisgICAgIHZpc3N6YSwg6XMgbul6emUgbWVnLCBob2d5IGvpdHN6ZXIgc3plcmVwZWwgYXogNS4zLiBsZWNrZSEgQXogZXJlZGV0aQorICAgICBtZWxsZXR0IGEgZuFqbGLzbCBiZW3hc29sdCBpcyBvdHQgdmFuLgorCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQkgICAgICAgNS4gTEVDS0Ug1lNTWkVGT0dMQUzTSkEKKworCisgIDEuICA6IXBhcmFuY3MgdulncmVoYWp0IGVneSBr/Gxz9SB1dGFz7XThc3QuCisKKyAgICAgIFDhciBoYXN6bm9zIHDpbGRhOgorCSAoTVMtRE9TKQkgIChVbml4KQorCSAgOiFkaXIJCSAgIDohbHMJCSAgIC0gIGv2bnl2dOFybGlzdGEga2ntcuFzYS4KKwkgIDohZGVsIEbBSkxOyVYgICAgOiFybSBGwUpMTslWICAgIC0gIEbBSkxOyVYgbmV2+yBm4WpsIHT2cmzpc2UuCisKKyAgMi4gIDp3IEbBSkxOyVYgIGtp7XJqYSBhIGplbGVubGVnaSBWaW0tZuFqbHQgYSBsZW1lenJlIEbBSk7JViBu6XZlbi4KKworICAzLiAgOiMsI3cgRsFKTE7JViAga2ntcmphIGEga+l0IHNvcnN64W0gKCMpIGv2evZ0dGkgc29yb2thdCBGwUpMTslWLWJlCisgICAgICBN4XNpayBsZWhldPVz6WcsIGhvZ3kgYSBrZXpk9XNvcm7hbCBDdHJsLXYtdCBueW9tIGxlbWVneSBheiB1dG9sc/MKKyAgICAgIHNvcnJhLCBtYWpkIGV6dCD8dGkgYmUgIDp3IEbBSkxOyVYKKworICA0LiAgOnIgRsFKTE7JViAgYmVvbHZhc3NhIGEgRsFKTE7JViBm4WpsdCDpcyBiZWhlbHllemkgYSBqZWxlbmxlZ2kgZuFqbGJhCisgICAgICBhIGt1cnpvcnBvemljafMgdXThbmkgc29yYmEuCisKKworCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkJIDYuMS4gIGxlY2tlOiBBIE9QRU4gUEFSQU5DUworCisKKyoqIG8gIGJl7XLhc+F2YWwgbnlpdGhhdCBlZ3kg+mogc29ydCBhIGt1cnpvciBhbGF0dCDpcyB24Wx0aGF0IGJlc3r6cvMgbfNkYmEgKioKKworICAxLiBNb3pnYXNzdWsgYSBrdXJ6b3J0IGEgLS0tPiBrZXpkZXT7IHNvcnJhLgorCisgIDIuIG8gKGtpY3NpKSAgYmXtcuFz4XZhbCBueWlzc29uIGVneSBzb3J0IGEga3Vyem9yIEFMQVRUISBFa2tvcgorICAgICBhdXRvbWF0aWt1c2FuIGJlc3r6cvMgKGluc2VydCkgbfNkYmEga2Vy/GwuCisKKyAgMy4gTeFzb2xqYSBsZSBhICAtLS0+IGplbPsgc29ydCDpcyA8RVNDPiBtZWdueW9t4XPhdmFsIGzpcGplbiBraQorICAgICBhIGJlc3r6cvMgbfNkYvNsLgorCistLS0+IEF6IG8gbGVueW9t4XNhIHV04W4gYSBrdXJ6b3IgYSBr9nZldGtlevUgc29yIGVsZWrpbiDhbGwgYmVzevpy8yBt82RiYW4uCisKKyAgNC4gQSBrdXJ6b3IgRkVMRVRUSSBmb3IgbWVnbnlpdOFz4WhveiBlZ3l6c2Vy+2VuIGEgbmFneSBPIGJldPt0IO1yam9uCitraWNzaSBoZWx5ZXR0LiBQcvNi4WxqYSBraSBhIGv2dmV0a2V69SBzb3JvbiEKK055aXNzb24gZWd5IPpqIHNvcnQgZWZlbGV0dCBTaGlmdC1PIG1lZ255b23hc+F2YWwsIG1pYWxhdHQgYSBrdXJ6b3IKK2V6ZW4gYSBzb3JvbiDhbGwuCisKKworCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQk2LjIuICBsZWNrZTogQVogQVBQRU5EIFBBUkFOQ1MKKworCisJICoqIGEgIGxlbnlvbeFz4XZhbCBhIGt1cm9yIFVUwU4gc3r6cmhhdHVuayBzevZ2ZWdldC4gKioKKworICAxLiBNb3pnYXNzdWsgYSBrdXJ6b3J0IGEga/Z2ZXRrZXr1IC0tLT4ga2V6ZGV0+yBzb3Igduln6XJlIPpneSwKKyAgICAgaG9neSBub3Jt4WwgbfNkYmFuICAkICDtciBiZS4KKworICAyLiBhICAoa2ljc2kpIGxl/HTpc+l2ZWwgc3r2dmVnZXQgc3r6cmhhdCBiZSBBTfZHySBhIGthcmFrdGVyIG32Z+ksCisgICAgIGFtZWx5ZW4gYSBrdXJ6b3Ig4WxsLgorICAgICAoQSBuYWd5ICBBICBheiBlZ+lzeiBzb3Igduln6XJlIO1yamEgYSBzevZ2ZWdldC4pCisKK01lZ2o6IEEgVmltYmVuIGEgc29yIGxlZ3bpZ+lyZSBpcyBsZWhldCDhbGxuaSwgYXpvbmJhIGV6IGVs9WRq6WJlbgorICAgICAgYSBWaS1iYW4gbmVtIGxlaGV0c+lnZXMsIGV66XJ0IGFiYmFuIGF6IGEgbulsa/xsIGVs6Wcga/Zy/Gxt6W55ZXMKKyAgICAgIGEgc29yIHbpZ+loZXogc3r2dmVnZXQg7XJuaS4KKworICAzLiBFZ+lzeu10c2Uga2kgYXogZWxz9SBzb3J0LiBWZWd5ZSDpc3pyZSwgaG9neSBheiBhIHV0YXPtdOFzIChhcHBlbmQpCisgICAgIHRlbGplc2VuIGVneWV6aWsgYXogaS12ZWwgKGluc2VydCkgY3N1cOFuIGEgYmVzevpydCBzevZ2ZWcgaGVseWUKKyAgICAga/xs9m5i9nppay4KKworLS0tPiBFeiBhIHNvciBsZWhldPV26SB0ZXN6aSDWbm5laywgaG9neSBneWFrb3JvbGphCistLS0+IEV6IGEgc29yIGxlaGV09XbpIHRlc3ppINZubmVrLCBob2d5IGd5YWtvcm9samEgYSBzb3Igduln6XJlIGJlaWxsZXN6dOlzdC4KKworCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkgICAgNi4zLiAgbGVja2U6IEFaIMFUzVLBUyBNwVNJSyBWwUxUT1pBVEEKKworCisgICAgICAqKiBOYWd5IFIgIGJl7XLhc+F2YWwg7XJoYXQgZmVs/GwgdPZiYiBtaW50IGVneSBrYXJha3RlcnQuICoqCisKKyAgMS4gTW96Z2Fzc3VrIGEga3Vyem9ydCBheiBlbHP1IC0tLT4ga2V6ZGV0+yBzb3JyYSEKKworICAyLiBQbGFjZSB0aGUgY3Vyc29yIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGZpcnN0IHdvcmQgdGhhdCBpcyBkaWZmZXJlbnQKKyAgICAgZnJvbSB0aGUgc2Vjb25kIGxpbmUgbWFya2VkIC0tLT4gKHRoZSB3b3JkICdsYXN0JykuCisKKyAgMy4gTm93IHR5cGUgIFIgIGFuZCByZXBsYWNlIHRoZSByZW1haW5kZXIgb2YgdGhlIHRleHQgb24gdGhlIGZpcnN0IGxpbmUgYnkKKyAgICAgdHlwaW5nIG92ZXIgdGhlIG9sZCB0ZXh0IHRvIG1ha2UgdGhlIGZpcnN0IGxpbmUgdGhlIHNhbWUgYXMgdGhlIHNlY29uZC4KKworLS0tPiBUbyBtYWtlIHRoZSBmaXJzdCBsaW5lIHRoZSBzYW1lIGFzIHRoZSBsYXN0IG9uIHRoaXMgcGFnZSB1c2UgdGhlIGtleXMuCistLS0+IFRvIG1ha2UgdGhlIGZpcnN0IGxpbmUgdGhlIHNhbWUgYXMgdGhlIHNlY29uZCwgdHlwZSBSIGFuZCB0aGUgbmV3IHRleHQuCisKKyAgNC4gTm90ZSB0aGF0IHdoZW4geW91IHByZXNzIDxFU0M+IHRvIGV4aXQsIGFueSB1bmFsdGVyZWQgdGV4dCByZW1haW5zLgorCisKKworCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkJICAgIDYuNC4gIGxlY2tlOiBCRcFMTM1UwVNPSworCisqKiDBbGztdHN1ayBiZSwgaG9neSBhIGtlcmVz6XMg6XMgYSBoZWx5ZXR0ZXPtdOlzIG5lIGb8Z2dq9m4ga2lzL05BR1liZXT7a3T1bCAqKgorCisgIDEuIEtlcmVzc/xrIG1lZyBheiAnaWdub3JlJy10IGF6IGJl7XJ2YToKKyAgICAgL2lnbm9yZQorICAgICBFenQgaXNt6XRlbGr8ayB09mJic3r2ciBheiBuIGJpbGxlbnR5+3ZlbAorCisgIDIuIMFsbO10c3VrIGJlIGF6ICdpYycgKElnbm9yZSBjYXNlKSBsZWhldPVz6WdldCDtZ3k6CisgICAgIDpzZXQgaWMKKworICAzLiBNb3N0IGtlcmVzc/xuayBpc23pdCBheiAnaWdub3JlJy1yYSBuLW5lbAorICAgICBJc23pdGVsavxrIG1lZyB09mJic3r2ciBhIGtlcmVz6XN0OiBuCisKKyAgNC4gwWxs7XRzdWsgYmUgYSAnaGxzZWFyY2gnIOlzICdpbmNzZWFyY2gnIGxlaGV09XPpZ2VrZXQ6CisgICAgIDpzZXQgaGxzIGlzCisKKyAgNS4gTW9zdCBpc23pdCDtcmp1ayBiZSBhIGtlcmVz9XBhcmFuY3NvdCwg6XMgbOFzc3VrIG1pIHT2cnTpbmlrOgorICAgICAvaWdub3JlCisKKyAgNi4gQSBraWVtZWzpc3Qgc3r8bnRlc3P8ayBtZWcgYWzhYmJpIHV0YXPtdOFzb2sgZWd5aWvpdmVsOgorICAgICA6c2V0IG5vaGxzICAgICB2YWd5CSA6bm9obHNlYXJjaAorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQkgICAgICAgNi4gTEVDS0Ug1lNTWkVGT0dMQUzTSkEKKworCisgIDEuIFR5cGluZyAgbwlvcGVucyBhIGxpbmUgQkVMT1cgdGhlIGN1cnNvciBhbmQgcGxhY2VzIHRoZSBjdXJzb3Igb24gdGhlIG9wZW4KKyAgICAgbGluZSBpbiBJbnNlcnQgbW9kZS4KKyAgICAgVHlwaW5nIGEgY2FwaXRhbCAgTyAgb3BlbnMgdGhlIGxpbmUgQUJPVkUgdGhlIGxpbmUgdGhlIGN1cnNvciBpcyBvbi4KKworICAyLiBUeXBlIGFuICBhICB0byBpbnNlcnQgdGV4dCBBRlRFUiB0aGUgY2hhcmFjdGVyIHRoZSBjdXJzb3IgaXMgb24uCisgICAgIFR5cGluZyBhIGNhcGl0YWwgIEEgIGF1dG9tYXRpY2FsbHkgYXBwZW5kcyB0ZXh0IHRvIHRoZSBlbmQgb2YgdGhlIGxpbmUuCisKKyAgMy4gVHlwaW5nIGEgY2FwaXRhbCAgUiAgZW50ZXJzIFJlcGxhY2UgbW9kZSB1bnRpbCAgPEVTQz4gIGlzIHByZXNzZWQgdG8gZXhpdC4KKworICA0LiBUeXBpbmcgIjpzZXQgeHh4IiBzZXRzIHRoZSBvcHRpb24gInh4eCIKKworCisKKworCisKKworCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCQkgICAgICAgNy4gbGVja2U6IE9OLUxJTkUgSEVMUCBQQVJBTkNTT0sKKworCisJCSAgICAqKiBBeiBvbmxpbmUgc/pn83JlbmRzemVyIGhhc3pu4WxhdGEgKioKKworICBBIFZpbSBy6XN6bGV0ZXMgc/pn83ZhbCByZW5kZWxrZXppay4gIEluZHVs4XNob3ogYSBr9nZldGtlevVrIGVneWlr6XQKKyAgdGVneWU6CisJLSBueW9tamEgbWVnIGEgPEhFTFA+IGdvbWJvdCAoaGEgdmFuIGlseWVuKQorCS0gbnlvbWphIG1lZyBheiA8RjE+IGdvbWJvdCAoaGEgdmFuIGlseWVuKQorCS0g7XJqYSBiZTogICA6aGVscCA8RU5URVI+CisKKyAgOnEgPEVOVEVSPiAgIGJl7XLhc+F2YWwgeuFyaGF0amEgYmUgYSBz+mfzYWJsYWtvdC4KKworICBNYWpkbmVtIG1pbmRlbiB06W1ha/ZycvVsIHRhbOFsaGF0IHP6Z/N0LCBhcmd1bWVudHVtIG1lZ2Fk4XPhdmFsCisgICI6aGVscCIgdXRhc+104XMgLiAgUHLzYuFsamEgYXogYWzhYmJpYWthdCBraSAoPEVOVEVSPi10IG5lIGZlbGVqdHP8ayk6CisKKwk6aGVscCB3CisJOmhlbHAgY188VAorCTpoZWxwIGluc2VydC1pbmRleAorCTpoZWxwIHVzZXItbWFudWFsCisKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCSAgICAgICA4LiBsZWNrZTogSU5EzVTTU1pLUklQVCDNUsFTQQorCisJCSAgICAgKiogQSBWaW0gbGVoZXT1c+lnZWluZWsgYmXhbGztdOFzYSAqKgorCisgIEEgVmltIHJlbmdldGVnIGxlaGV09XPpZ2dlbCByZW5kZWxrZXppayBhIFZpLWhveiBr6XBlc3QsIGRlIGEgbGVndPZiYgorICBhbGFwYvNsIGVs6XJoZXRldGxlbi4gQWhob3osIGhvZ3kgYWxhcGLzbCB09mJiIGxlaGV09XPpZ/xuayBsZWd5ZW4ga+lzeu10ZW78bmsKKyAga2VsbCBlZ3kgInZpbXJjIiBm4WpsdC4KKworICAxLiBLZXpkavxrIGVsIHN6ZXJrZXN6dGVuaSBhICJ2aW1yYyIgZuFqbHQsIGVubmVrIG3zZGphOgorCTplZGl0IH4vLnZpbXJjCQkJVW5peG9uLCBMaW51eG9uCisJOmVkaXQgJFZJTS9fdmltcmMJCU1TLVdpbmRvd3NvbgorCisgIDIuIE1vc3Qgc3r6cmp1ayBiZSBhIHDpbGRhICJ2aW1yYyIgZuFqbCBzevZ2ZWfpdDoKKworCTpyZWFkICRWSU1SVU5USU1FL3ZpbXJjX2V4YW1wbGUudmltCisKKyAgMy4gzXJqdWsga2kgYSBm4WpsdDoKKworCTp3cml0ZQorCisgIExlZ2v2emVsZWJiIGEgVmltIHN6aW50YXhpc2tpZW1lbOlzc2VsIGluZHVsLgorICBIb3p64WFkaGF0amEga2VkdmVuYyBiZeFsbO104XNhaXQgZWhoZXogYSAidmltcmMiIGbhamxob3ouCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCisgIEl0dCB26Wd69WRpayBhIFZpbSBva3RhdPMsIG1lbHluZWsgYSBzeuFuZOlrYSBlZ3kgcvZ2aWQg4XR0ZWtpbnTpcyBhCisgIFZpbXL1bCwgYW1lbHkgZWzpZyBhaGhveiwgaG9neSBlbOlnIGv2bm55ZWTpbiBrZXplbGr8ayBhIHN6ZXJrZXN6dPV0LgorICBU4XZvbCB2YW4gYSB0ZWxqZXNz6Wd09WwsIG1pdmVsIGEgVmltbmVrIHN64W10YWxhbiB0b3bhYmJpIHV0YXPtdOFzYQorICB2YW4uIEV6dXThbiBhIGZlbGhhc3pu4WzzaSBr6Xppa/ZueXZldCDpcmRlbWVzIGVsb2x2YXNuaSBheiBhbmdvbHVsCisgIHR1ZPNrbmFrOiAiOmhlbHAgdXNlci1tYW51YWwiLiAoZWd5ZWz1cmUgbmVtIHR1ZCBtYWd5YXJ1bCkKKworICBUb3bhYmJpIG1hZ3lhciBvbHZhc25pdmFs82sg6XJoZXT1ZWsgZWwgYXogYWzhYmJpIG9sZGFscvNsLgorICBodHRwOi8vdWJ1bnR1Lmh1L2luZGV4LnBocD90aXRsZT1WaW0KKworICBGb3IgZnVydGhlciByZWFkaW5nIGFuZCBzdHVkeWluZywgdGhpcyBib29rIGlzIHJlY29tbWVuZGVkOgorCVZpbSAtIFZpIEltcHJvdmVkIC0gYnkgU3RldmUgT3VhbGxpbmUKKwlQdWJsaXNoZXI6IE5ldyBSaWRlcnMKKyAgVGhlIGZpcnN0IGJvb2sgY29tcGxldGVseSBkZWRpY2F0ZWQgdG8gVmltLiAgRXNwZWNpYWxseSB1c2VmdWwgZm9yIGJlZ2lubmVycy4KKyAgVGhlcmUgYXJlIG1hbnkgZXhhbXBsZXMgYW5kIHBpY3R1cmVzLgorICBTZWUgaHR0cDovL2ljY2YtaG9sbGFuZC5vcmcvY2xpY2s1Lmh0bWwKKworICBUaGlzIGJvb2sgaXMgb2xkZXIgYW5kIG1vcmUgYWJvdXQgVmkgdGhhbiBWaW0sIGJ1dCBhbHNvIHJlY29tbWVuZGVkOgorCUxlYXJuaW5nIHRoZSBWaSBFZGl0b3IgLSBieSBMaW5kYSBMYW1iCisJUHVibGlzaGVyOiBPJ1JlaWxseSAmIEFzc29jaWF0ZXMgSW5jLgorICBJdCBpcyBhIGdvb2QgYm9vayB0byBnZXQgdG8ga25vdyBhbG1vc3QgYW55dGhpbmcgeW91IHdhbnQgdG8gZG8gd2l0aCBWaS4KKyAgVGhlIHNpeHRoIGVkaXRpb24gYWxzbyBpbmNsdWRlcyBpbmZvcm1hdGlvbiBvbiBWaW0uCisKKyAgVGhpcyB0dXRvcmlhbCB3YXMgd3JpdHRlbiBieSBNaWNoYWVsIEMuIFBpZXJjZSBhbmQgUm9iZXJ0IEsuIFdhcmUsCisgIENvbG9yYWRvIFNjaG9vbCBvZiBNaW5lcyB1c2luZyBpZGVhcyBzdXBwbGllZCBieSBDaGFybGVzIFNtaXRoLAorICBDb2xvcmFkbyBTdGF0ZSBVbml2ZXJzaXR5LiAgRS1tYWlsOiBid2FyZUBtaW5lcy5jb2xvcmFkby5lZHUuCisKKyAgTW9kaWZpZWQgZm9yIFZpbSBieSBCcmFtIE1vb2xlbmFhci4KZGlmZiAtLWdpdCBhL3NyYy9idWZmZXIuYyBiL3NyYy9idWZmZXIuYwppbmRleCBjODM2MzkzLi4xYjg5MzMwIDEwMDY0NAotLS0gYS9zcmMvYnVmZmVyLmMKKysrIGIvc3JjL2J1ZmZlci5jCkBAIC0xMjMzLDEyICsxMjMzLDEzIEBACiAgICAgaWYgKGFjdGlvbiA9PSBET0JVRl9TUExJVCkJICAgIC8qIHNwbGl0IHdpbmRvdyBmaXJzdCAqLwogICAgIHsKICMgaWZkZWYgRkVBVF9XSU5ET1dTCi0JLyoganVtcCB0byBmaXJzdCB3aW5kb3cgY29udGFpbmluZyBidWYgaWYgb25lIGV4aXN0cyAoInVzZW9wZW4iKSAqLwotCWlmICh2aW1fc3RyY2hyKHBfc3diLCAnbycpICE9IE5VTEwgJiYgYnVmX2p1bXBfb3Blbl93aW4oYnVmKSkKKwkvKiBJZiAnc3dpdGNoYnVmJyBjb250YWlucyAidXNlb3BlbiI6IGp1bXAgdG8gZmlyc3Qgd2luZG93IGNvbnRhaW5pbmcKKwkgKiAiYnVmIiBpZiBvbmUgZXhpc3RzICovCisJaWYgKChzd2JfZmxhZ3MgJiBTV0JfVVNFT1BFTikgJiYgYnVmX2p1bXBfb3Blbl93aW4oYnVmKSkKIAkgICAgcmV0dXJuIE9LOwotCS8qIGp1bXAgdG8gZmlyc3Qgd2luZG93IGluIGFueSB0YWIgcGFnZSBjb250YWluaW5nIGJ1ZiBpZiBvbmUgZXhpc3RzCi0JICogKCJ1c2V0YWIiKSAqLwotCWlmICh2aW1fc3RyY2hyKHBfc3diLCAnYScpICE9IE5VTEwgJiYgYnVmX2p1bXBfb3Blbl90YWIoYnVmKSkKKwkvKiBJZiAnc3dpdGNoYnVmJyBjb250aWFucyAidXNldGFiIjoganVtcCB0byBmaXJzdCB3aW5kb3cgaW4gYW55IHRhYgorCSAqIHBhZ2UgY29udGFpbmluZyAiYnVmIiBpZiBvbmUgZXhpc3RzICovCisJaWYgKChzd2JfZmxhZ3MgJiBTV0JfVVNFVEFCKSAmJiBidWZfanVtcF9vcGVuX3RhYihidWYpKQogCSAgICByZXR1cm4gT0s7CiAJaWYgKHdpbl9zcGxpdCgwLCAwKSA9PSBGQUlMKQogIyBlbmRpZgpAQCAtMTg3NCwxNiArMTg3NSwyMSBAQAogI2lmZGVmIEZFQVRfV0lORE9XUwogICAgIGlmIChvcHRpb25zICYgR0VURl9TV0lUQ0gpCiAgICAgewotCS8qIHVzZSBleGlzdGluZyBvcGVuIHdpbmRvdyBmb3IgYnVmZmVyIGlmIHdhbnRlZCAqLwotCWlmICh2aW1fc3RyY2hyKHBfc3diLCAnbycpICE9IE5VTEwpCS8qIHVzZW9wZW4gKi8KKwkvKiBJZiAnc3dpdGNoYnVmJyBjb250YWlucyAidXNlb3BlbiI6IGp1bXAgdG8gZmlyc3Qgd2luZG93IGNvbnRhaW5pbmcKKwkgKiAiYnVmIiBpZiBvbmUgZXhpc3RzICovCisJaWYgKHN3Yl9mbGFncyAmIFNXQl9VU0VPUEVOKQogCSAgICB3cCA9IGJ1Zl9qdW1wX29wZW5fd2luKGJ1Zik7Ci0JLyogdXNlIGV4aXN0aW5nIG9wZW4gd2luZG93IGluIGFueSB0YWIgcGFnZSBmb3IgYnVmZmVyIGlmIHdhbnRlZCAqLwotCWlmICh2aW1fc3RyY2hyKHBfc3diLCAnYScpICE9IE5VTEwpCS8qIHVzZXRhYiAqLworCS8qIElmICdzd2l0Y2hidWYnIGNvbnRpYW5zICJ1c2V0YWIiOiBqdW1wIHRvIGZpcnN0IHdpbmRvdyBpbiBhbnkgdGFiCisJICogcGFnZSBjb250YWluaW5nICJidWYiIGlmIG9uZSBleGlzdHMgKi8KKwlpZiAod3AgPT0gTlVMTCAmJiAoc3diX2ZsYWdzICYgU1dCX1VTRVRBQikpCiAJICAgIHdwID0gYnVmX2p1bXBfb3Blbl90YWIoYnVmKTsKLQkvKiBzcGxpdCB3aW5kb3cgaWYgd2FudGVkICgic3BsaXQiKSAqLwotCWlmICh3cCA9PSBOVUxMICYmIHZpbV9zdHJjaHIocF9zd2IsICdsJykgIT0gTlVMTCAmJiAhYnVmZW1wdHkoKSkKKwkvKiBJZiAnc3dpdGNoYnVmJyBjb250YWlucyAic3BsaXQiIG9yICJuZXd0YWIiIGFuZCB0aGUgY3VycmVudCBidWZmZXIKKwkgKiBpc24ndCBlbXB0eTogb3BlbiBuZXcgd2luZG93ICovCisJaWYgKHdwID09IE5VTEwgJiYgKHN3Yl9mbGFncyAmIChTV0JfU1BMSVQgfCBTV0JfTkVXVEFCKSkgJiYgIWJ1ZmVtcHR5KCkpCiAJewotCSAgICBpZiAod2luX3NwbGl0KDAsIDApID09IEZBSUwpCisJICAgIGlmIChzd2JfZmxhZ3MgJiBTV0JfTkVXVEFCKQkJLyogT3BlbiBpbiBhIG5ldyB0YWIgKi8KKwkJdGFicGFnZV9uZXcoKTsKKwkgICAgZWxzZSBpZiAod2luX3NwbGl0KDAsIDApID09IEZBSUwpCS8qIE9wZW4gaW4gYSBuZXcgd2luZG93ICovCiAJCXJldHVybiBGQUlMOwogIyBpZmRlZiBGRUFUX1NDUk9MTEJJTkQKIAkgICAgY3Vyd2luLT53X3Bfc2NiID0gRkFMU0U7CkBAIC00MDIzLDcgKzQwMjksNyBAQAogI2VuZGlmCiAJCW4gPSB3aWR0aCAtIG1heHdpZHRoICsgMTsKIAkgICAgcCA9IHMgKyBuOwotCSAgICBtY2hfbWVtbW92ZShzICsgMSwgcCwgU1RSTEVOKHApICsgMSk7CisJICAgIFNUUk1PVkUocyArIDEsIHApOwogCSAgICAqcyA9ICc8JzsKIAogCSAgICAvKiBGaWxsIHVwIGZvciBoYWxmIGEgZG91YmxlLXdpZGUgY2hhcmFjdGVyLiAqLwpAQCAtNDA1NCw3ICs0MDYwLDcgQEAKIAlpZiAobCA8IGl0ZW1jbnQpCiAJewogCSAgICBwID0gaXRlbVtsXS5zdGFydCArIG1heHdpZHRoIC0gd2lkdGg7Ci0JICAgIG1jaF9tZW1tb3ZlKHAsIGl0ZW1bbF0uc3RhcnQsIFNUUkxFTihpdGVtW2xdLnN0YXJ0KSArIDEpOworCSAgICBTVFJNT1ZFKHAsIGl0ZW1bbF0uc3RhcnQpOwogCSAgICBmb3IgKHMgPSBpdGVtW2xdLnN0YXJ0OyBzIDwgcDsgcysrKQogCQkqcyA9IGZpbGxjaGFyOwogCSAgICBmb3IgKGwrKzsgbCA8IGl0ZW1jbnQ7IGwrKykKQEAgLTQ4NjcsNyArNDg3Myw3IEBACiAJICAgICAqLwogCSAgICBmb3IgKGUgPSBzOyAqZSAhPSAnOicgJiYgKmUgIT0gTlVMOyArK2UpCiAJCWlmIChlWzBdID09ICdcXCcgJiYgZVsxXSA9PSAnOicpCi0JCSAgICBtY2hfbWVtbW92ZShlLCBlICsgMSwgU1RSTEVOKGUpKTsKKwkJICAgIFNUUk1PVkUoZSwgZSArIDEpOwogCSAgICBpZiAoKmUgPT0gTlVMKQogCQllbmQgPSBUUlVFOwogCmRpZmYgLS1naXQgYS9zcmMvZ2V0Y2hhci5jIGIvc3JjL2dldGNoYXIuYwppbmRleCBkMWM3MGM5Li5lYzVhZTg3IDEwMDY0NAotLS0gYS9zcmMvZ2V0Y2hhci5jCisrKyBiL3NyYy9nZXRjaGFyLmMKQEAgLTIyMSw3ICsyMjEsNyBAQAogICAgIGNoYXJfdSAqCiBnZXRfaW5zZXJ0ZWQoKQogewotICAgIHJldHVybihnZXRfYnVmZmNvbnQoJnJlZG9idWZmLCBGQUxTRSkpOworICAgIHJldHVybiBnZXRfYnVmZmNvbnQoJnJlZG9idWZmLCBGQUxTRSk7CiB9CiAKIC8qCkBAIC0yMjMzLDYgKzIyMzMsOCBAQAogCQkgICAgaWYgKChtcCA9PSBOVUxMIHx8IG1heF9tbGVuID49IG1wX21hdGNoX2xlbikKIAkJCQkJCSAgICAgJiYga2V5bGVuICE9IEtMX1BBUlRfTUFQKQogCQkgICAgeworCQkJaW50CXNhdmVfa2V5bGVuID0ga2V5bGVuOworCiAJCQkvKgogCQkJICogV2hlbiBubyBtYXRjaGluZyBtYXBwaW5nIGZvdW5kIG9yIGZvdW5kIGEKIAkJCSAqIG5vbi1tYXRjaGluZyBtYXBwaW5nIHRoYXQgbWF0Y2hlcyBhdCBsZWFzdCB3aGF0IHRoZQpAQCAtMjI1Miw2ICsyMjU0LDEyIEBACiAJCQl7CiAJCQkgICAga2V5bGVuID0gY2hlY2tfdGVybWNvZGUobWF4X21sZW4gKyAxLCBOVUxMLCAwKTsKIAorCQkJICAgIC8qIElmIG5vIHRlcm1jb2RlIG1hdGNoZWQgYnV0ICdwYXN0ZXRvZ2dsZScKKwkJCSAgICAgKiBtYXRjaGVkIHBhcnRpYWxseSBpdCdzIGxpa2UgYW4gaW5jb21wbGV0ZSBrZXkKKwkJCSAgICAgKiBzZXF1ZW5jZS4gKi8KKwkJCSAgICBpZiAoa2V5bGVuID09IDAgJiYgc2F2ZV9rZXlsZW4gPT0gS0xfUEFSVF9LRVkpCisJCQkJa2V5bGVuID0gS0xfUEFSVF9LRVk7CisKIAkJCSAgICAvKgogCQkJICAgICAqIFdoZW4gZ2V0dGluZyBhIHBhcnRpYWwgbWF0Y2gsIGJ1dCB0aGUgbGFzdAogCQkJICAgICAqIGNoYXJhY3RlcnMgd2VyZSBub3QgdHlwZWQsIGRvbid0IHdhaXQgZm9yIGEKQEAgLTIyOTMsNyArMjMwMSw5IEBACiAjZW5kaWYKIAkJCSAgICAgIC8qIFdoZW4gdGhlcmUgd2FzIGEgbWF0Y2hpbmcgbWFwcGluZyBhbmQgbm8KIAkJCSAgICAgICAqIHRlcm1jb2RlIGNvdWxkIGJlIHJlcGxhY2VkIGFmdGVyIGFub3RoZXIgb25lLAotCQkJICAgICAgICogdXNlIHRoYXQgbWFwcGluZy4gKi8KKwkJCSAgICAgICAqIHVzZSB0aGF0IG1hcHBpbmcgKGxvb3AgYXJvdW5kKS4gSWYgdGhlcmUgd2FzCisJCQkgICAgICAgKiBubyBtYXBwaW5nIHVzZSB0aGUgY2hhcmFjdGVyIGZyb20gdGhlCisJCQkgICAgICAgKiB0eXBlYWhlYWQgYnVmZmVyIHJpZ2h0IGhlcmUuICovCiAJCQkgICAgICBpZiAobXAgPT0gTlVMTCkKIAkJCSAgICAgIHsKIC8qCkBAIC0yODgzLDYgKzI4OTMsMTIgQEAKICNlbmRpZgogCSAgICApCiAgICAgeworCisjaWYgZGVmaW5lZChGRUFUX05FVEJFQU5TX0lOVEcpCisJLyogUHJvY2VzcyB0aGUgcXVldWVkIG5ldGJlYW5zIG1lc3NhZ2VzLiAqLworCW5ldGJlYW5zX3BhcnNlX21lc3NhZ2VzKCk7CisjZW5kaWYKKwogCWlmIChnb3RfaW50IHx8IChzY3JpcHRfY2hhciA9IGdldGMoc2NyaXB0aW5bY3Vyc2NyaXB0XSkpIDwgMCkKIAl7CiAJICAgIC8qIFJlYWNoZWQgRU9GLgpAQCAtMzg0Nyw3ICszODYzLDcgQEAKICAgICB3aGlsZSAoKytsZW4gPD0gMykKIAltc2dfcHV0Y2hhcignICcpOwogCi0gICAgLyogR2V0IGxlbmd0aCBvZiB3aGF0IHdlIHdyaXRlICovCisgICAgLyogRGlzcGxheSB0aGUgTEhTLiAgR2V0IGxlbmd0aCBvZiB3aGF0IHdlIHdyaXRlLiAqLwogICAgIGxlbiA9IG1zZ19vdXR0cmFuc19zcGVjaWFsKG1wLT5tX2tleXMsIFRSVUUpOwogICAgIGRvCiAgICAgewpkaWZmIC0tZ2l0IGEvc3JjL25ldGJlYW5zLmMgYi9zcmMvbmV0YmVhbnMuYwppbmRleCBhMDY2OTBjLi5kM2ZhNGIwIDEwMDY0NAotLS0gYS9zcmMvbmV0YmVhbnMuYworKysgYi9zcmMvbmV0YmVhbnMuYwpAQCAtMjUsNyArMjUsNiBAQAogI2lmIGRlZmluZWQoRkVBVF9ORVRCRUFOU19JTlRHKSB8fCBkZWZpbmVkKFBST1RPKQogCiAvKiBOb3RlOiB3aGVuIG1ha2luZyBjaGFuZ2VzIGhlcmUgYWxzbyBhZGp1c3QgY29uZmlndXJlLmluLiAqLwotIyBpbmNsdWRlIDxmY250bC5oPgogI2lmZGVmIFdJTjMyCiAjIGlmZGVmIERFQlVHCiAjICBpbmNsdWRlIDx0Y2hhci5oPgkvKiBmb3IgX1QgZGVmaW5pdGlvbiBmb3IgVFJBQ0VuIG1hY3JvcyAqLwpAQCAtMzI3LDYgKzMyNiw3IEBACiAKICAgICBpZiAoKHNkID0gKE5CU09DSylzb2NrZXQoQUZfSU5FVCwgU09DS19TVFJFQU0sIDApKSA9PSAoTkJTT0NLKS0xKQogICAgIHsKKwluYmRlYnVnKCgiZXJyb3IgaW4gc29ja2V0KCkgaW4gbmV0YmVhbnNfY29ubmVjdCgpXG4iKSk7CiAJUEVSUk9SKCJzb2NrZXQoKSBpbiBuZXRiZWFuc19jb25uZWN0KCkiKTsKIAlnb3RvIHRoZWVuZDsKICAgICB9CkBAIC0zNDQsNiArMzQ0LDcgQEAKIAkgICAgc2QgPSBtY2hfb3Blbihob3N0bmFtZSwgT19SRE9OTFksIDApOwogCSAgICBnb3RvIHRoZWVuZDsKIAl9CisJbmJkZWJ1ZygoImVycm9yIGluIGdldGhvc3RieW5hbWUoKSBpbiBuZXRiZWFuc19jb25uZWN0KClcbiIpKTsKIAlQRVJST1IoImdldGhvc3RieW5hbWUoKSBpbiBuZXRiZWFuc19jb25uZWN0KCkiKTsKIAlzZCA9IC0xOwogCWdvdG8gdGhlZW5kOwpAQCAtMzUyLDcgKzM1Myw4IEBACiAjZWxzZQogICAgIGlmICgoc2QgPSBzb2NrZXQoQUZfVU5JWCwgU09DS19TVFJFQU0sIDApKSA9PSAtMSkKICAgICB7Ci0JUEVSUk9SKCJzb2NrZXQoKSIpOworCW5iZGVidWcoKCJlcnJvciBpbiBzb2NrZXQoKSBpbiBuZXRiZWFuc19jb25uZWN0KClcbiIpKTsKKwlQRVJST1IoInNvY2tldCgpIGluIG5ldGJlYW5zX2Nvbm5lY3QoKSIpOwogCWdvdG8gdGhlZW5kOwogICAgIH0KIApAQCAtMzY5LDEyICszNzEsMTQgQEAKICNpZmRlZiBJTkVUX1NPQ0tFVFMKIAkgICAgaWYgKChzZCA9IChOQlNPQ0spc29ja2V0KEFGX0lORVQsIFNPQ0tfU1RSRUFNLCAwKSkgPT0gKE5CU09DSyktMSkKIAkgICAgeworCQluYmRlYnVnKCgic29ja2V0KCkjMiBpbiBuZXRiZWFuc19jb25uZWN0KClcbiIpKTsKIAkJUEVSUk9SKCJzb2NrZXQoKSMyIGluIG5ldGJlYW5zX2Nvbm5lY3QoKSIpOwogCQlnb3RvIHRoZWVuZDsKIAkgICAgfQogI2Vsc2UKIAkgICAgaWYgKChzZCA9IHNvY2tldChBRl9VTklYLCBTT0NLX1NUUkVBTSwgMCkpID09IC0xKQogCSAgICB7CisJCW5iZGVidWcoKCJzb2NrZXQoKSMyIGluIG5ldGJlYW5zX2Nvbm5lY3QoKVxuIikpOwogCQlQRVJST1IoInNvY2tldCgpIzIgaW4gbmV0YmVhbnNfY29ubmVjdCgpIik7CiAJCWdvdG8gdGhlZW5kOwogCSAgICB9CkBAIC0zOTgsNiArNDAyLDcgQEAKIAkJaWYgKCFzdWNjZXNzKQogCQl7CiAJCSAgICAvKiBHZXQgaGVyZSB3aGVuIHRoZSBzZXJ2ZXIgY2FuJ3QgYmUgZm91bmQuICovCisJCSAgICBuYmRlYnVnKCgiQ2Fubm90IGNvbm5lY3QgdG8gTmV0YmVhbnMgIzJcbiIpKTsKIAkJICAgIFBFUlJPUihfKCJDYW5ub3QgY29ubmVjdCB0byBOZXRiZWFucyAjMiIpKTsKIAkJICAgIGdldG91dCgxKTsKIAkJfQpAQCAtNDA2LDYgKzQxMSw3IEBACiAJfQogCWVsc2UKIAl7CisJICAgIG5iZGVidWcoKCJDYW5ub3QgY29ubmVjdCB0byBOZXRiZWFuc1xuIikpOwogCSAgICBQRVJST1IoXygiQ2Fubm90IGNvbm5lY3QgdG8gTmV0YmVhbnMiKSk7CiAJICAgIGdldG91dCgxKTsKIAl9CkBAIC00NTAsNiArNDU2LDggQEAKICAgICAgKi8KICAgICBpZiAobWNoX3N0YXQoZmlsZSwgJnN0KSA9PSAwICYmIChzdC5zdF9tb2RlICYgMDA3NykgIT0gMCkKICAgICB7CisJbmJkZWJ1ZygoIldyb25nIGFjY2VzcyBtb2RlIGZvciBOZXRCZWFucyBjb25uZWN0aW9uIGluZm8gZmlsZTogXCIlc1wiXG4iLAorCQkJCQkJCQkgICAgICAgZmlsZSkpOwogCUVNU0cyKF8oIkU2Njg6IFdyb25nIGFjY2VzcyBtb2RlIGZvciBOZXRCZWFucyBjb25uZWN0aW9uIGluZm8gZmlsZTogXCIlc1wiIiksCiAJCQkJCQkJCQlmaWxlKTsKIAlyZXR1cm4gRkFJTDsKQEAgLTQ1OSw2ICs0NjcsNyBAQAogICAgIGZwID0gbWNoX2ZvcGVuKGZpbGUsICJyIik7CiAgICAgaWYgKGZwID09IE5VTEwpCiAgICAgeworCW5iZGVidWcoKCJDYW5ub3Qgb3BlbiBOZXRCZWFucyBjb25uZWN0aW9uIGluZm8gZmlsZVxuIikpOwogCVBFUlJPUigiRTY2MDogQ2Fubm90IG9wZW4gTmV0QmVhbnMgY29ubmVjdGlvbiBpbmZvIGZpbGUiKTsKIAlyZXR1cm4gRkFJTDsKICAgICB9CkBAIC02MjEsMTMgKzYzMCwxMyBAQAogLyoKICAqIFdoaWxlIHRoZXJlJ3Mgc3RpbGwgYSBjb21tYW5kIGluIHRoZSB3b3JrIHF1ZXVlLCBwYXJzZSBhbmQgZXhlY3V0ZSBpdC4KICAqLwotICAgIHN0YXRpYyB2b2lkCi1uYl9wYXJzZV9tZXNzYWdlcyh2b2lkKQorICAgIHZvaWQKK25ldGJlYW5zX3BhcnNlX21lc3NhZ2VzKHZvaWQpCiB7CiAgICAgY2hhcl91CSpwOwogICAgIHF1ZXVlX1QJKm5vZGU7CiAKLSAgICB3aGlsZSAoaGVhZC5uZXh0ICE9ICZoZWFkKQorICAgIHdoaWxlIChoZWFkLm5leHQgIT0gTlVMTCAmJiBoZWFkLm5leHQgIT0gJmhlYWQpCiAgICAgewogCW5vZGUgPSBoZWFkLm5leHQ7CiAKQEAgLTY0MCw3ICs2NDksOCBAQAogCSAgICAgKiBwcmVwZW5kIHRoZSB0ZXh0IHRvIHRoYXQgYnVmZmVyIGFuZCBkZWxldGUgdGhpcyBvbmUuICAqLwogCSAgICBpZiAobm9kZS0+bmV4dCA9PSAmaGVhZCkKIAkJcmV0dXJuOwotCSAgICBwID0gYWxsb2MoKHVuc2lnbmVkKShTVFJMRU4obm9kZS0+YnVmZmVyKSArIFNUUkxFTihub2RlLT5uZXh0LT5idWZmZXIpICsgMSkpOworCSAgICBwID0gYWxsb2MoKHVuc2lnbmVkKShTVFJMRU4obm9kZS0+YnVmZmVyKQorCQkJCQkgICArIFNUUkxFTihub2RlLT5uZXh0LT5idWZmZXIpICsgMSkpOwogCSAgICBpZiAocCA9PSBOVUxMKQogCQlyZXR1cm47CSAgICAvKiBvdXQgb2YgbWVtb3J5ICovCiAJICAgIFNUUkNQWShwLCBub2RlLT5idWZmZXIpOwpAQCAtNjc5LDcgKzY4OSw3IEBACiAJICAgIGVsc2UKIAkgICAgewogCQkvKiBtb3JlIGZvbGxvd3MsIG1vdmUgdG8gdGhlIHN0YXJ0ICovCi0JCW1jaF9tZW1tb3ZlKG5vZGUtPmJ1ZmZlciwgcCwgU1RSTEVOKHApICsgMSk7CisJCVNUUk1PVkUobm9kZS0+YnVmZmVyLCBwKTsKIAkgICAgfQogCX0KICAgICB9CkBAIC03MTEsNyArNzIxLDkgQEAKICAgICBzdGF0aWMgY2hhcl91CSpidWYgPSBOVUxMOwogICAgIGludAkJCWxlbjsKICAgICBpbnQJCQlyZWFkbGVuID0gMDsKKyNpZm5kZWYgRkVBVF9HVUlfR1RLCiAgICAgc3RhdGljIGludAkJbGV2ZWwgPSAwOworI2VuZGlmCiAKICAgICBpZiAoc2QgPCAwKQogICAgIHsKQEAgLTcxOSw3ICs3MzEsOSBAQAogCXJldHVybjsKICAgICB9CiAKKyNpZm5kZWYgRkVBVF9HVUlfR1RLCiAgICAgKytsZXZlbDsgIC8qIHJlY3Vyc2lvbiBndWFyZDsgdGhpcyB3aWxsIGJlIGNhbGxlZCBmcm9tIHRoZSBYIGV2ZW50IGxvb3AgKi8KKyNlbmRpZgogCiAgICAgLyogQWxsb2NhdGUgYSBidWZmZXIgdG8gcmVhZCBpbnRvLiAqLwogICAgIGlmIChidWYgPT0gTlVMTCkKQEAgLTc0OSwxNSArNzYzLDIzIEBACiAJbmV0YmVhbnNfZGlzY29ubmVjdCgpOwogCW5iZGVidWcoKCJtZXNzYWdlRnJvbU5ldGJlYW5zOiBFcnJvciBpbiByZWFkKCkgZnJvbSBzb2NrZXRcbiIpKTsKIAlpZiAobGVuIDwgMCkKKwl7CisJICAgIG5iZGVidWcoKCJyZWFkIGZyb20gTmV0YmVhbnMgc29ja2V0XG4iKSk7CiAJICAgIFBFUlJPUihfKCJyZWFkIGZyb20gTmV0YmVhbnMgc29ja2V0IikpOworCX0KIAlyZXR1cm47IC8qIGRvbid0IHRyeSB0byBwYXJzZSBpdCAqLwogICAgIH0KIAorI2lmZGVmIEZFQVRfR1VJX0dUSworICAgIGlmIChndGtfbWFpbl9sZXZlbCgpID4gMCkKKwlndGtfbWFpbl9xdWl0KCk7CisjZWxzZQogICAgIC8qIFBhcnNlIHRoZSBtZXNzYWdlcywgYnV0IGF2b2lkIHJlY3Vyc2lvbi4gKi8KICAgICBpZiAobGV2ZWwgPT0gMSkKLQluYl9wYXJzZV9tZXNzYWdlcygpOworCW5ldGJlYW5zX3BhcnNlX21lc3NhZ2VzKCk7CiAKICAgICAtLWxldmVsOworI2VuZGlmCiB9CiAKIC8qCkBAIC04MDksNiArODMxLDcgQEAKIAogICAgIGlmICgqdmVyYiAhPSAnOicpCiAgICAgeworCW5iZGVidWcoKCIgICAgbWlzc2luZyBjb2xvbjogJXNcbiIsIGNtZCkpOwogCUVNU0cyKCJFNjI3OiBtaXNzaW5nIGNvbG9uOiAlcyIsIGNtZCk7CiAJcmV0dXJuOwogICAgIH0KQEAgLTgzMiw2ICs4NTUsNyBAQAogCiAgICAgaWYgKGlzZnVuYyA8IDApCiAgICAgeworCW5iZGVidWcoKCIgICAgbWlzc2luZyAhIG9yIC8gaW46ICVzXG4iLCBjbWQpKTsKIAlFTVNHMigiRTYyODogbWlzc2luZyAhIG9yIC8gaW46ICVzIiwgY21kKTsKIAlyZXR1cm47CiAgICAgfQpAQCAtMTAzNywxMyArMTA2MSwxOSBAQAogICAgIGlmIChzZCA8IDApCiAgICAgewogCWlmICghZGlkX2Vycm9yKQorCXsKKwkgICAgbmJkZWJ1ZygoIiAgICAlcygpOiB3cml0ZSB3aGlsZSBub3QgY29ubmVjdGVkXG4iLCBmdW4pKTsKIAkgICAgRU1TRzIoIkU2MzA6ICVzKCk6IHdyaXRlIHdoaWxlIG5vdCBjb25uZWN0ZWQiLCBmdW4pOworCX0KIAlkaWRfZXJyb3IgPSBUUlVFOwogICAgIH0KICAgICBlbHNlIGlmIChzb2NrX3dyaXRlKHNkLCBidWYsIChpbnQpU1RSTEVOKGJ1ZikpICE9IChpbnQpU1RSTEVOKGJ1ZikpCiAgICAgewogCWlmICghZGlkX2Vycm9yKQorCXsKKwkgICAgbmJkZWJ1ZygoIiAgICAlcygpOiB3cml0ZSBmYWlsZWRcbiIsIGZ1bikpOwogCSAgICBFTVNHMigiRTYzMTogJXMoKTogd3JpdGUgZmFpbGVkIiwgZnVuKTsKKwl9CiAJZGlkX2Vycm9yID0gVFJVRTsKICAgICB9CiAgICAgZWxzZQpAQCAtMTIyOSw3ICsxMjU5LDcgQEAKICAgICBpZiAobmV3dGV4dCAhPSBOVUxMKQogICAgIHsKIAltY2hfbWVtbW92ZShuZXd0ZXh0LCBvbGR0ZXh0LCBmaXJzdCk7Ci0JbWNoX21lbW1vdmUobmV3dGV4dCArIGZpcnN0LCBvbGR0ZXh0ICsgbGFzdGJ5dGUgKyAxLCBTVFJMRU4ob2xkdGV4dCArIGxhc3RieXRlICsgMSkgKyAxKTsKKwlTVFJNT1ZFKG5ld3RleHQgKyBmaXJzdCwgb2xkdGV4dCArIGxhc3RieXRlICsgMSk7CiAJbmJkZWJ1ZygoIiAgICBORVcgTElORSAlZDogJXNcbiIsIGxudW0sIG5ld3RleHQpKTsKIAltbF9yZXBsYWNlKGxudW0sIG5ld3RleHQsIEZBTFNFKTsKICAgICB9CkBAIC0xMzI5LDggKzEzNTksOCBAQAogI2lmZGVmIEZFQVRfU0lHTlMKIAkgICAgaWYgKGJ1ZiA9PSBOVUxMIHx8IGJ1Zi0+YnVmcCA9PSBOVUxMKQogCSAgICB7Ci0JCW5iZGVidWcoKCIgICAgbnVsbCBidWZwIGluIGdldEFubm8iKSk7Ci0JCUVNU0coIkU2NTI6IG51bGwgYnVmcCBpbiBnZXRBbm5vIik7CisJCW5iZGVidWcoKCIgICAgSW52YWxpZCBidWZmZXIgaWRlbnRpZmllciBpbiBnZXRBbm5vXG4iKSk7CisJCUVNU0coIkU2NTI6IEludmFsaWQgYnVmZmVyIGlkZW50aWZpZXIgaW4gZ2V0QW5ubyIpOwogCQlyZXR2YWwgPSBGQUlMOwogCSAgICB9CiAJICAgIGVsc2UKQEAgLTEzNTIsOCArMTM4Miw4IEBACiAKIAkgICAgaWYgKGJ1ZiA9PSBOVUxMIHx8IGJ1Zi0+YnVmcCA9PSBOVUxMKQogCSAgICB7Ci0JCW5iZGVidWcoKCIgICAgbnVsbCBidWZwIGluIGdldExlbmd0aCIpKTsKLQkJRU1TRygiRTYzMjogbnVsbCBidWZwIGluIGdldExlbmd0aCIpOworCQluYmRlYnVnKCgiICAgIGludmFsaWQgYnVmZmVyIGlkZW50aWZpZXIgaW4gZ2V0TGVuZ3RoXG4iKSk7CisJCUVNU0coIkU2MzI6IGludmFsaWQgYnVmZmVyIGlkZW50aWZpZXIgaW4gZ2V0TGVuZ3RoIik7CiAJCXJldHZhbCA9IEZBSUw7CiAJICAgIH0KIAkgICAgZWxzZQpAQCAtMTM3NCw4ICsxNDA0LDggQEAKIAogCSAgICBpZiAoYnVmID09IE5VTEwgfHwgYnVmLT5idWZwID09IE5VTEwpCiAJICAgIHsKLQkJbmJkZWJ1ZygoIiAgICBudWxsIGJ1ZnAgaW4gZ2V0VGV4dCIpKTsKLQkJRU1TRygiRTYzMzogbnVsbCBidWZwIGluIGdldFRleHQiKTsKKwkJbmJkZWJ1ZygoIiAgICBpbnZhbGlkIGJ1ZmZlciBpZGVudGlmaWVyIGluIGdldFRleHRcbiIpKTsKKwkJRU1TRygiRTYzMzogaW52YWxpZCBidWZmZXIgaWRlbnRpZmllciBpbiBnZXRUZXh0Iik7CiAJCXJldHZhbCA9IEZBSUw7CiAJICAgIH0KIAkgICAgZWxzZQpAQCAtMTQzOCw4ICsxNDY4LDggQEAKIAogCSAgICBpZiAoYnVmID09IE5VTEwgfHwgYnVmLT5idWZwID09IE5VTEwpCiAJICAgIHsKLQkJbmJkZWJ1ZygoIiAgICBudWxsIGJ1ZnAgaW4gcmVtb3ZlIikpOwotCQlFTVNHKCJFNjM0OiBudWxsIGJ1ZnAgaW4gcmVtb3ZlIik7CisJCW5iZGVidWcoKCIgICAgaW52YWxpZCBidWZmZXIgaWRlbnRpZmllciBpbiByZW1vdmVcbiIpKTsKKwkJRU1TRygiRTYzNDogaW52YWxpZCBidWZmZXIgaWRlbnRpZmllciBpbiByZW1vdmUiKTsKIAkJcmV0dmFsID0gRkFJTDsKIAkgICAgfQogCSAgICBlbHNlCkBAIC0xNDU3LDYgKzE0ODcsNyBAQAogCQlwb3MgPSBvZmYycG9zKGJ1Zi0+YnVmcCwgb2ZmKTsKIAkJaWYgKCFwb3MpCiAJCXsKKwkJICAgIG5iZGVidWcoKCIgICAgIWJhZCBwb3NpdGlvblxuIikpOwogCQkgICAgbmJfcmVwbHlfdGV4dChjbWRubywgKGNoYXJfdSAqKSIhYmFkIHBvc2l0aW9uIik7CiAJCSAgICBuZXRiZWFuc0ZpcmVDaGFuZ2VzID0gb2xkRmlyZTsKIAkJICAgIG5ldGJlYW5zU3VwcHJlc3NOb0xpbmVzID0gb2xkU3VwcHJlc3M7CkBAIC0xNDY3LDYgKzE0OTgsNyBAQAogCQlwb3MgPSBvZmYycG9zKGJ1Zi0+YnVmcCwgb2ZmK2NvdW50LTEpOwogCQlpZiAoIXBvcykKIAkJeworCQkgICAgbmJkZWJ1ZygoIiAgICAhYmFkIGNvdW50XG4iKSk7CiAJCSAgICBuYl9yZXBseV90ZXh0KGNtZG5vLCAoY2hhcl91ICopIiFiYWQgY291bnQiKTsKIAkJICAgIG5ldGJlYW5zRmlyZUNoYW5nZXMgPSBvbGRGaXJlOwogCQkgICAgbmV0YmVhbnNTdXBwcmVzc05vTGluZXMgPSBvbGRTdXBwcmVzczsKQEAgLTE1OTksOCArMTYzMSw4IEBACiAKIAkgICAgaWYgKGJ1ZiA9PSBOVUxMIHx8IGJ1Zi0+YnVmcCA9PSBOVUxMKQogCSAgICB7Ci0JCW5iZGVidWcoKCIgICAgbnVsbCBidWZwIGluIGluc2VydCIpKTsKLQkJRU1TRygiRTYzNTogbnVsbCBidWZwIGluIGluc2VydCIpOworCQluYmRlYnVnKCgiICAgIGludmFsaWQgYnVmZmVyIGlkZW50aWZpZXIgaW4gaW5zZXJ0XG4iKSk7CisJCUVNU0coIkU2MzU6IGludmFsaWQgYnVmZmVyIGlkZW50aWZpZXIgaW4gaW5zZXJ0Iik7CiAJCXJldHZhbCA9IEZBSUw7CiAJICAgIH0KIAkgICAgZWxzZSBpZiAoYXJncyAhPSBOVUxMKQpAQCAtMTc1Niw3ICsxNzg4LDggQEAKIAkgICAgLyogQ3JlYXRlIGEgYnVmZmVyIHdpdGhvdXQgYSBuYW1lLiAqLwogCSAgICBpZiAoYnVmID09IE5VTEwpCiAJICAgIHsKLQkJRU1TRygiRTYzNjogbnVsbCBidWYgaW4gY3JlYXRlIik7CisJCW5iZGVidWcoKCIgICAgaW52YWxpZCBidWZmZXIgaWRlbnRpZmllciBpbiBjcmVhdGVcbiIpKTsKKwkJRU1TRygiRTYzNjogaW52YWxpZCBidWZmZXIgaWRlbnRpZmllciBpbiBjcmVhdGUiKTsKIAkJcmV0dXJuIEZBSUw7CiAJICAgIH0KIAkgICAgdmltX2ZyZWUoYnVmLT5kaXNwbGF5bmFtZSk7CkBAIC0xNzc1LDcgKzE4MDgsNyBAQAogCXsKIAkgICAgaWYgKGJ1ZiA9PSBOVUxMIHx8IGJ1Zi0+YnVmcCA9PSBOVUxMKQogCSAgICB7Ci0JCW5iZGVidWcoKCIgICAgbnVsbCBidWZwIGluIGluc2VydERvbmUiKSk7CisJCW5iZGVidWcoKCIgICAgaW52YWxpZCBidWZmZXIgaWRlbnRpZmllciBpbiBpbnNlcnREb25lXG4iKSk7CiAJICAgIH0KIAkgICAgZWxzZQogCSAgICB7CkBAIC0xNzkzLDcgKzE4MjYsNyBAQAogCiAJICAgIGlmIChidWYgPT0gTlVMTCB8fCBidWYtPmJ1ZnAgPT0gTlVMTCkKIAkgICAgewotCQluYmRlYnVnKCgiICAgIG51bGwgYnVmcCBpbiBzYXZlRG9uZSIpKTsKKwkJbmJkZWJ1ZygoIiAgICBpbnZhbGlkIGJ1ZmZlciBpZGVudGlmaWVyIGluIHNhdmVEb25lXG4iKSk7CiAJICAgIH0KIAkgICAgZWxzZQogCQlwcmludF9zYXZlX21zZyhidWYsIHNhdmVkQ2hhcnMpOwpAQCAtMTgwMyw3ICsxODM2LDggQEAKIAl7CiAJICAgIGlmIChidWYgPT0gTlVMTCkKIAkgICAgewotCQlFTVNHKCJFNjM3OiBudWxsIGJ1ZiBpbiBzdGFydERvY3VtZW50TGlzdGVuIik7CisJCW5iZGVidWcoKCIgICAgaW52YWxpZCBidWZmZXIgaWRlbnRpZmllciBpbiBzdGFydERvY3VtZW50TGlzdGVuXG4iKSk7CisJCUVNU0coIkU2Mzc6IGludmFsaWQgYnVmZmVyIGlkZW50aWZpZXIgaW4gc3RhcnREb2N1bWVudExpc3RlbiIpOwogCQlyZXR1cm4gRkFJTDsKIAkgICAgfQogCSAgICBidWYtPmZpcmVDaGFuZ2VzID0gMTsKQEAgLTE4MTMsMTUgKzE4NDcsMTkgQEAKIAl7CiAJICAgIGlmIChidWYgPT0gTlVMTCkKIAkgICAgewotCQlFTVNHKCJFNjM4OiBudWxsIGJ1ZiBpbiBzdG9wRG9jdW1lbnRMaXN0ZW4iKTsKKwkJbmJkZWJ1ZygoIiAgICBpbnZhbGlkIGJ1ZmZlciBpZGVudGlmaWVyIGluIHN0b3BEb2N1bWVudExpc3RlblxuIikpOworCQlFTVNHKCJFNjM4OiBpbnZhbGlkIGJ1ZmZlciBpZGVudGlmaWVyIGluIHN0b3BEb2N1bWVudExpc3RlbiIpOwogCQlyZXR1cm4gRkFJTDsKIAkgICAgfQogCSAgICBidWYtPmZpcmVDaGFuZ2VzID0gMDsKIAkgICAgaWYgKGJ1Zi0+YnVmcCAhPSBOVUxMICYmIGJ1Zi0+YnVmcC0+Yl93YXNfbmV0YmVhbnNfZmlsZSkKIAkgICAgewogCQlpZiAoIWJ1Zi0+YnVmcC0+Yl9uZXRiZWFuc19maWxlKQorCQl7CisJCSAgICBuYmRlYnVnKCgiRTY1ODogTmV0QmVhbnMgY29ubmVjdGlvbiBsb3N0IGZvciBidWZmZXIgJWxkXG4iLCBidWYtPmJ1ZnAtPmJfZm51bSkpOwogCQkgICAgRU1TR04oXygiRTY1ODogTmV0QmVhbnMgY29ubmVjdGlvbiBsb3N0IGZvciBidWZmZXIgJWxkIiksCiAJCQkJCQkJICAgYnVmLT5idWZwLT5iX2ZudW0pOworCQl9CiAJCWVsc2UKIAkJewogCQkgICAgLyogTmV0QmVhbnMgdXNlcyBzdG9wRG9jdW1lbnRMaXN0ZW4gd2hlbiBpdCBzdG9wcyBlZGl0aW5nCkBAIC0xODM4LDcgKzE4NzYsOCBAQAogCXsKIAkgICAgaWYgKGJ1ZiA9PSBOVUxMKQogCSAgICB7Ci0JCUVNU0coIkU2Mzk6IG51bGwgYnVmIGluIHNldFRpdGxlIik7CisJCW5iZGVidWcoKCIgICAgaW52YWxpZCBidWZmZXIgaWRlbnRpZmllciBpbiBzZXRUaXRsZVxuIikpOworCQlFTVNHKCJFNjM5OiBpbnZhbGlkIGJ1ZmZlciBpZGVudGlmaWVyIGluIHNldFRpdGxlIik7CiAJCXJldHVybiBGQUlMOwogCSAgICB9CiAJICAgIHZpbV9mcmVlKGJ1Zi0+ZGlzcGxheW5hbWUpOwpAQCAtMTg0OSw3ICsxODg4LDggQEAKIAl7CiAJICAgIGlmIChidWYgPT0gTlVMTCB8fCBidWYtPmJ1ZnAgPT0gTlVMTCkKIAkgICAgewotCQlFTVNHKCJFNjQwOiBudWxsIGJ1ZiBpbiBpbml0RG9uZSIpOworCQluYmRlYnVnKCgiICAgIGludmFsaWQgYnVmZmVyIGlkZW50aWZpZXIgaW4gaW5pdERvbmVcbiIpKTsKKwkJRU1TRygiRTY0MDogaW52YWxpZCBidWZmZXIgaWRlbnRpZmllciBpbiBpbml0RG9uZSIpOwogCQlyZXR1cm4gRkFJTDsKIAkgICAgfQogCSAgICBkb3VwZGF0ZSA9IDE7CkBAIC0xODcxLDcgKzE5MTEsOCBAQAogCiAJICAgIGlmIChidWYgPT0gTlVMTCkKIAkgICAgewotCQlFTVNHKCJFNjQxOiBudWxsIGJ1ZiBpbiBzZXRCdWZmZXJOdW1iZXIiKTsKKwkJbmJkZWJ1ZygoIiAgICBpbnZhbGlkIGJ1ZmZlciBpZGVudGlmaWVyIGluIHNldEJ1ZmZlck51bWJlclxuIikpOworCQlFTVNHKCJFNjQxOiBpbnZhbGlkIGJ1ZmZlciBpZGVudGlmaWVyIGluIHNldEJ1ZmZlck51bWJlciIpOwogCQlyZXR1cm4gRkFJTDsKIAkgICAgfQogCSAgICBwYXRoID0gKGNoYXJfdSAqKW5iX3VucXVvdGUoYXJncywgTlVMTCk7CkBAIC0xODgxLDYgKzE5MjIsNyBAQAogCSAgICB2aW1fZnJlZShwYXRoKTsKIAkgICAgaWYgKGJ1ZnAgPT0gTlVMTCkKIAkgICAgeworCSAgICAJbmJkZWJ1ZygoIiAgICBGaWxlICVzIG5vdCBmb3VuZCBpbiBzZXRCdWZmZXJOdW1iZXJcbiIsIGFyZ3MpKTsKIAkJRU1TRzIoIkU2NDI6IEZpbGUgJXMgbm90IGZvdW5kIGluIHNldEJ1ZmZlck51bWJlciIsIGFyZ3MpOwogCQlyZXR1cm4gRkFJTDsKIAkgICAgfQpAQCAtMTkxMCw3ICsxOTUyLDggQEAKIAl7CiAJICAgIGlmIChidWYgPT0gTlVMTCkKIAkgICAgewotCQlFTVNHKCJFNjQzOiBudWxsIGJ1ZiBpbiBzZXRGdWxsTmFtZSIpOworCQluYmRlYnVnKCgiICAgIGludmFsaWQgYnVmZmVyIGlkZW50aWZpZXIgaW4gc2V0RnVsbE5hbWVcbiIpKTsKKwkJRU1TRygiRTY0MzogaW52YWxpZCBidWZmZXIgaWRlbnRpZmllciBpbiBzZXRGdWxsTmFtZSIpOwogCQlyZXR1cm4gRkFJTDsKIAkgICAgfQogCSAgICB2aW1fZnJlZShidWYtPmRpc3BsYXluYW1lKTsKQEAgLTE5MjksNyArMTk3Miw4IEBACiAJewogCSAgICBpZiAoYnVmID09IE5VTEwpCiAJICAgIHsKLQkJRU1TRygiRTY0NDogbnVsbCBidWYgaW4gZWRpdEZpbGUiKTsKKwkJbmJkZWJ1ZygoIiAgICBpbnZhbGlkIGJ1ZmZlciBpZGVudGlmaWVyIGluIGVkaXRGaWxlXG4iKSk7CisJCUVNU0coIkU2NDQ6IGludmFsaWQgYnVmZmVyIGlkZW50aWZpZXIgaW4gZWRpdEZpbGUiKTsKIAkJcmV0dXJuIEZBSUw7CiAJICAgIH0KIAkgICAgLyogRWRpdCBhIGZpbGU6IGxpa2UgY3JlYXRlICsgc2V0RnVsbE5hbWUgKyByZWFkIHRoZSBmaWxlLiAqLwpAQCAtMTk1MCw3ICsxOTk0LDExIEBACiAJewogCSAgICBpZiAoYnVmID09IE5VTEwgfHwgYnVmLT5idWZwID09IE5VTEwpCiAJICAgIHsKLS8qCQlFTVNHKCJFNjQ1OiBudWxsIGJ1ZnAgaW4gc2V0VmlzaWJsZSIpOyAqLworCQluYmRlYnVnKCgiICAgIGludmFsaWQgYnVmZmVyIGlkZW50aWZpZXIgaW4gc2V0VmlzaWJsZVxuIikpOworCQkvKiBUaGlzIG1lc3NhZ2Ugd2FzIGNvbW1lbnRlZCBvdXQsIHByb2JhYmx5IGJlY2F1c2UgaXQgY2FuCisJCSAqIGhhcHBlbiB3aGVuIHNodXR0aW5nIGRvd24uICovCisJCWlmIChwX3ZlcmJvc2UgPiAwKQorCQkgICAgRU1TRygiRTY0NTogaW52YWxpZCBidWZmZXIgaWRlbnRpZmllciBpbiBzZXRWaXNpYmxlIik7CiAJCXJldHVybiBGQUlMOwogCSAgICB9CiAJICAgIGlmIChzdHJlcSgoY2hhciAqKWFyZ3MsICJUIikgJiYgYnVmLT5idWZwICE9IGN1cmJ1ZikKQEAgLTE5ODIsNyArMjAzMCwxMSBAQAogCiAJICAgIGlmIChidWYgPT0gTlVMTCB8fCBidWYtPmJ1ZnAgPT0gTlVMTCkKIAkgICAgewotLyoJCUVNU0coIkU2NDY6IG51bGwgYnVmcCBpbiBzZXRNb2RpZmllZCIpOyAqLworCQluYmRlYnVnKCgiICAgIGludmFsaWQgYnVmZmVyIGlkZW50aWZpZXIgaW4gc2V0TW9kaWZpZWRcbiIpKTsKKwkJLyogVGhpcyBtZXNzYWdlIHdhcyBjb21tZW50ZWQgb3V0LCBwcm9iYWJseSBiZWNhdXNlIGl0IGNhbgorCQkgKiBoYXBwZW4gd2hlbiBzaHV0dGluZyBkb3duLiAqLworCQlpZiAocF92ZXJib3NlID4gMCkKKwkJICAgIEVNU0coIkU2NDY6IGludmFsaWQgYnVmZmVyIGlkZW50aWZpZXIgaW4gc2V0TW9kaWZpZWQiKTsKIAkJcmV0dXJuIEZBSUw7CiAJICAgIH0KIAkgICAgcHJldl9iX2NoYW5nZWQgPSBidWYtPmJ1ZnAtPmJfY2hhbmdlZDsKQEAgLTIwMTYsNyArMjA2OCw3IEBACiAJZWxzZSBpZiAoc3RyZXEoKGNoYXIgKiljbWQsICJzZXRNb2R0aW1lIikpCiAJewogCSAgICBpZiAoYnVmID09IE5VTEwgfHwgYnVmLT5idWZwID09IE5VTEwpCi0JCW5iZGVidWcoKCIgICAgbnVsbCBidWZwIGluIHNldE1vZHRpbWUiKSk7CisJCW5iZGVidWcoKCIgICAgaW52YWxpZCBidWZmZXIgaWRlbnRpZmllciBpbiBzZXRNb2R0aW1lXG4iKSk7CiAJICAgIGVsc2UKIAkJYnVmLT5idWZwLT5iX210aW1lID0gYXRvaSgoY2hhciAqKWFyZ3MpOwogLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KQEAgLTIwMjQsNyArMjA3Niw3IEBACiAJZWxzZSBpZiAoc3RyZXEoKGNoYXIgKiljbWQsICJzZXRSZWFkT25seSIpKQogCXsKIAkgICAgaWYgKGJ1ZiA9PSBOVUxMIHx8IGJ1Zi0+YnVmcCA9PSBOVUxMKQotCQluYmRlYnVnKCgiICAgIG51bGwgYnVmcCBpbiBzZXRSZWFkT25seSIpKTsKKwkJbmJkZWJ1ZygoIiAgICBpbnZhbGlkIGJ1ZmZlciBpZGVudGlmaWVyIGluIHNldFJlYWRPbmx5XG4iKSk7CiAJICAgIGVsc2UgaWYgKHN0cmVxKChjaGFyICopYXJncywgIlQiKSkKIAkJYnVmLT5idWZwLT5iX3Bfcm8gPSBUUlVFOwogCSAgICBlbHNlCkBAIC0yMDY1LDcgKzIxMTcsOCBAQAogCiAJICAgIGlmIChidWYgPT0gTlVMTCB8fCBidWYtPmJ1ZnAgPT0gTlVMTCkKIAkgICAgewotCQlFTVNHKCJFNjQ3OiBudWxsIGJ1ZnAgaW4gc2V0RG90Iik7CisJCW5iZGVidWcoKCIgICAgaW52YWxpZCBidWZmZXIgaWRlbnRpZmllciBpbiBzZXREb3RcbiIpKTsKKwkJRU1TRygiRTY0NzogaW52YWxpZCBidWZmZXIgaWRlbnRpZmllciBpbiBzZXREb3QiKTsKIAkJcmV0dXJuIEZBSUw7CiAJICAgIH0KIApAQCAtMjExNyw3ICsyMTcwLDggQEAKIAogCSAgICBpZiAoYnVmID09IE5VTEwpCiAJICAgIHsKLQkJRU1TRygiRTY0ODogbnVsbCBidWYgaW4gY2xvc2UiKTsKKwkJbmJkZWJ1ZygoIiAgICBpbnZhbGlkIGJ1ZmZlciBpZGVudGlmaWVyIGluIGNsb3NlXG4iKSk7CisJCUVNU0coIkU2NDg6IGludmFsaWQgYnVmZmVyIGlkZW50aWZpZXIgaW4gY2xvc2UiKTsKIAkJcmV0dXJuIEZBSUw7CiAJICAgIH0KIApAQCAtMjEyNSw4ICsyMTc5LDE0IEBACiAJICAgIGlmIChidWYtPmRpc3BsYXluYW1lICE9IE5VTEwpCiAJCW5hbWUgPSBidWYtPmRpc3BsYXluYW1lOwogI2VuZGlmCi0vKgkgICAgaWYgKGJ1Zi0+YnVmcCA9PSBOVUxMKSAqLwotLyoJCUVNU0coIkU2NDk6IG51bGwgYnVmcCBpbiBjbG9zZSIpOyAqLworCSAgICBpZiAoYnVmLT5idWZwID09IE5VTEwpCisJICAgIHsKKwkJbmJkZWJ1ZygoIiAgICBpbnZhbGlkIGJ1ZmZlciBpZGVudGlmaWVyIGluIGNsb3NlXG4iKSk7CisJCS8qIFRoaXMgbWVzc2FnZSB3YXMgY29tbWVudGVkIG91dCwgcHJvYmFibHkgYmVjYXVzZSBpdCBjYW4KKwkJICogaGFwcGVuIHdoZW4gc2h1dHRpbmcgZG93bi4gKi8KKwkJaWYgKHBfdmVyYm9zZSA+IDApCisJCSAgICBFTVNHKCJFNjQ5OiBpbnZhbGlkIGJ1ZmZlciBpZGVudGlmaWVyIGluIGNsb3NlIik7CisJICAgIH0KIAkgICAgbmJkZWJ1ZygoIiAgICBDTE9TRSAlZDogJXNcbiIsIGJ1Zm5vLCBuYW1lKSk7CiAJICAgIG5lZWRfbW91c2VfY29ycmVjdCA9IFRSVUU7CiAJICAgIGlmIChidWYtPmJ1ZnAgIT0gTlVMTCkKQEAgLTIxMzksNyArMjE5OSw3IEBACiAJfQogCWVsc2UgaWYgKHN0cmVxKChjaGFyICopY21kLCAic2V0U3R5bGUiKSkgLyogb2Jzb2xldGUuLi4gKi8KIAl7Ci0JICAgIG5iZGVidWcoKCIgICAgc2V0U3R5bGUgaXMgb2Jzb2xldGUhIikpOworCSAgICBuYmRlYnVnKCgiICAgIHNldFN0eWxlIGlzIG9ic29sZXRlIVxuIikpOwogLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KIAl9CiAJZWxzZSBpZiAoc3RyZXEoKGNoYXIgKiljbWQsICJzZXRFeGl0RGVsYXkiKSkKQEAgLTIxNjIsNyArMjIyMiw4IEBACiAKIAkgICAgaWYgKGJ1ZiA9PSBOVUxMKQogCSAgICB7Ci0JCUVNU0coIkU2NTA6IG51bGwgYnVmIGluIGRlZmluZUFubm9UeXBlIik7CisJCW5iZGVidWcoKCIgICAgaW52YWxpZCBidWZmZXIgaWRlbnRpZmllciBpbiBkZWZpbmVBbm5vVHlwZVxuIikpOworCQlFTVNHKCJFNjUwOiBpbnZhbGlkIGJ1ZmZlciBpZGVudGlmaWVyIGluIGRlZmluZUFubm9UeXBlIik7CiAJCXJldHVybiBGQUlMOwogCSAgICB9CiAKQEAgLTIyMjQsNyArMjI4NSw4IEBACiAKIAkgICAgaWYgKGJ1ZiA9PSBOVUxMIHx8IGJ1Zi0+YnVmcCA9PSBOVUxMKQogCSAgICB7Ci0JCUVNU0coIkU2NTE6IG51bGwgYnVmcCBpbiBhZGRBbm5vIik7CisJCW5iZGVidWcoKCIgICAgaW52YWxpZCBidWZmZXIgaWRlbnRpZmllciBpbiBhZGRBbm5vXG4iKSk7CisJCUVNU0coIkU2NTE6IGludmFsaWQgYnVmZmVyIGlkZW50aWZpZXIgaW4gYWRkQW5ubyIpOwogCQlyZXR1cm4gRkFJTDsKIAkgICAgfQogCkBAIC0yMjUwLDEyICsyMzEyLDEyIEBACiAjIGlmZGVmIE5CREVCVUcKIAkgICAgaWYgKGxlbiAhPSAtMSkKIAkgICAgewotCQluYmRlYnVnKCgiICAgIHBhcnRpYWwgbGluZSBhbm5vdGF0aW9uIC0tIE5vdCBZZXQgSW1wbGVtZW50ZWQhIikpOworCQluYmRlYnVnKCgiICAgIHBhcnRpYWwgbGluZSBhbm5vdGF0aW9uIC0tIE5vdCBZZXQgSW1wbGVtZW50ZWQhXG4iKSk7CiAJICAgIH0KICMgZW5kaWYKIAkgICAgaWYgKHNlck51bSA+PSBHVUFSREVET0ZGU0VUKQogCSAgICB7Ci0JCW5iZGVidWcoKCIgICAgdG9vIG1hbnkgYW5ub3RhdGlvbnMhIGlnbm9yaW5nLi4uIikpOworCQluYmRlYnVnKCgiICAgIHRvbyBtYW55IGFubm90YXRpb25zISBpZ25vcmluZy4uLlxuIikpOwogCQlyZXR1cm4gRkFJTDsKIAkgICAgfQogCSAgICBpZiAocG9zKQpAQCAtMjI3Niw3ICsyMzM4LDcgQEAKIAogCSAgICBpZiAoYnVmID09IE5VTEwgfHwgYnVmLT5idWZwID09IE5VTEwpCiAJICAgIHsKLQkJbmJkZWJ1ZygoIiAgICBudWxsIGJ1ZnAgaW4gcmVtb3ZlQW5ubyIpKTsKKwkJbmJkZWJ1ZygoIiAgICBpbnZhbGlkIGJ1ZmZlciBpZGVudGlmaWVyIGluIHJlbW92ZUFubm9cbiIpKTsKIAkJcmV0dXJuIEZBSUw7CiAJICAgIH0KIAkgICAgZG91cGRhdGUgPSAxOwpAQCAtMjI5Miw3ICsyMzU0LDcgQEAKIAllbHNlIGlmIChzdHJlcSgoY2hhciAqKWNtZCwgIm1vdmVBbm5vVG9Gcm9udCIpKQogCXsKICNpZmRlZiBGRUFUX1NJR05TCi0JICAgIG5iZGVidWcoKCIgICAgbW92ZUFubm9Ub0Zyb250OiBOb3QgWWV0IEltcGxlbWVudGVkISIpKTsKKwkgICAgbmJkZWJ1ZygoIiAgICBtb3ZlQW5ub1RvRnJvbnQ6IE5vdCBZZXQgSW1wbGVtZW50ZWQhXG4iKSk7CiAjZW5kaWYKIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAJfQpAQCAtMjMxNSw3ICsyMzc3LDcgQEAKIAogCSAgICBpZiAoYnVmID09IE5VTEwgfHwgYnVmLT5idWZwID09IE5VTEwpCiAJICAgIHsKLQkJbmJkZWJ1ZygoIiAgICBudWxsIGJ1ZnAgaW4gJXMgY29tbWFuZCIsIGNtZCkpOworCQluYmRlYnVnKCgiICAgIGludmFsaWQgYnVmZmVyIGlkZW50aWZpZXIgaW4gJXMgY29tbWFuZFxuIiwgY21kKSk7CiAJCXJldHVybiBGQUlMOwogCSAgICB9CiAJICAgIG5iX3NldF9jdXJidWYoYnVmLT5idWZwKTsKQEAgLTIzOTksNyArMjQ2MSw3IEBACiAJICAgICAqLwogCSAgICBpZiAoYnVmID09IE5VTEwgfHwgYnVmLT5idWZwID09IE5VTEwpCiAJICAgIHsKLQkJbmJkZWJ1ZygoIiAgICBudWxsIGJ1ZnAgaW4gJXMgY29tbWFuZCIsIGNtZCkpOworCQluYmRlYnVnKCgiICAgIGludmFsaWQgYnVmZmVyIGlkZW50aWZpZXIgaW4gJXMgY29tbWFuZFxuIiwgY21kKSk7CiAJCXJldHVybiBGQUlMOwogCSAgICB9CiAKQEAgLTI0MjMsMTMgKzI0ODUsMTcgQEAKICNlbmRpZgogCQl9CiAJICAgIH0KKwkgICAgZWxzZQorCSAgICB7CisJICAgICAgICBuYmRlYnVnKCgiICAgIEJ1ZmZlciBoYXMgbm8gY2hhbmdlcyFcbiIpKTsKKwkgICAgfQogLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KIAl9CiAJZWxzZSBpZiAoc3RyZXEoKGNoYXIgKiljbWQsICJuZXRiZWFuc0J1ZmZlciIpKQogCXsKIAkgICAgaWYgKGJ1ZiA9PSBOVUxMIHx8IGJ1Zi0+YnVmcCA9PSBOVUxMKQogCSAgICB7Ci0JCW5iZGVidWcoKCIgICAgbnVsbCBidWZwIGluICVzIGNvbW1hbmQiLCBjbWQpKTsKKwkJbmJkZWJ1ZygoIiAgICBpbnZhbGlkIGJ1ZmZlciBpZGVudGlmaWVyIGluICVzIGNvbW1hbmRcbiIsIGNtZCkpOwogCQlyZXR1cm4gRkFJTDsKIAkgICAgfQogCSAgICBpZiAoKmFyZ3MgPT0gJ1QnKQpAQCAtMjQ1NSw2ICsyNTIxLDEwIEBACiAJewogCSAgICAvKiBub3QgdXNlZCB5ZXQgKi8KIAl9CisJZWxzZQorCXsKKwkgICAgbmJkZWJ1ZygoIlVucmVjb2duaXNlZCBjb21tYW5kOiAlc1xuIiwgY21kKSk7CisJfQogCS8qCiAJICogVW5yZWNvZ25pemVkIGNvbW1hbmQgaXMgaWdub3JlZC4KIAkgKi8KQEAgLTI5OTQsNyArMzA2NCw3IEBACiAKICAgICBpZiAobGVuIDwgMCkKICAgICB7Ci0JbmJkZWJ1ZygoIk5lZ2F0aXZlIGxlbiAlbGQgaW4gbmV0YmVhbnNfcmVtb3ZlZCgpISIsIGxlbikpOworCW5iZGVidWcoKCJOZWdhdGl2ZSBsZW4gJWxkIGluIG5ldGJlYW5zX3JlbW92ZWQoKSFcbiIsIGxlbikpOwogCXJldHVybjsKICAgICB9CiAKQEAgLTM2MzUsNiArMzcwNSw3IEBACiAJU1RSQ0FUKGVidWYsIElPYnVmZik7CiAJU1RSQ0FUKGVidWYsIChjaGFyX3UgKilfKCJpcyByZWFkLW9ubHkgKGFkZCAhIHRvIG92ZXJyaWRlKSIpKTsKIAlTVFJDUFkoSU9idWZmLCBlYnVmKTsKKwluYmRlYnVnKCgiICAgICVzXG4iLCBlYnVmICkpOwogCWVtc2coSU9idWZmKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9zcmMvcG8vYWYucG8gYi9zcmMvcG8vYWYucG8KaW5kZXggN2YxZGIxZC4uYzQxMjI1ZCAxMDA2NDQKLS0tIGEvc3JjL3BvL2FmLnBvCisrKyBiL3NyYy9wby9hZi5wbwpAQCAtODkxLDcgKzg5MSw3IEBACiBtc2dzdHIgIkUxNTY6IE9udGJyZWtlbmRlIHRla2VubmFhbSIKIAogbXNnaWQgIkU2MTI6IFRvbyBtYW55IHNpZ25zIGRlZmluZWQiCi1tc2dzdHIgIlRlIHZlZWwgdGVrZW5zIGdlZGVmaW5pZWVyIgorbXNnc3RyICJFNjEyOiBUZSB2ZWVsIHRla2VucyBnZWRlZmluaWVlciIKIAogIywgYy1mb3JtYXQKIG1zZ2lkICJFMjM5OiBJbnZhbGlkIHNpZ24gdGV4dDogJXMiCmRpZmYgLS1naXQgYS9zcmMvdmltLmRlZiBiL3NyYy92aW0uZGVmCmluZGV4IDRiNzlmN2QuLmFlZWE2NjcgMTAwNjQ0Ci0tLSBhL3NyYy92aW0uZGVmCisrKyBiL3NyYy92aW0uZGVmCkBAIC0xLDQgKzEsNCBAQAogQ09ERSBQUkVMT0FEIEVYRUNVVEVPTkxZCiBEQVRBIE1VTFRJUExFIFNIQVJFRAotREVTQ1JJUFRJT04gJ1ZpbSA3LjEnCitERVNDUklQVElPTiAnVmltIDcuMmEnCiBIRUFQU0laRSAwLDAKZGlmZiAtLWdpdCBhL3NyYy93aW5kb3cuYyBiL3NyYy93aW5kb3cuYwppbmRleCA1ODRiOWE0Li5hMGYxOTZiIDEwMDY0NAotLS0gYS9zcmMvd2luZG93LmMKKysrIGIvc3JjL3dpbmRvdy5jCkBAIC05LDEwICs5LDYgQEAKIAogI2luY2x1ZGUgInZpbS5oIgogCi0jaWZkZWYgSEFWRV9GQ05UTF9ICi0jIGluY2x1ZGUgPGZjbnRsLmg+CSAgICAvKiBmb3IgY2hkaXIoKSAqLwotI2VuZGlmCi0KIHN0YXRpYyBpbnQgcGF0aF9pc191cmwgX19BUkdTKChjaGFyX3UgKnApKTsKICNpZiBkZWZpbmVkKEZFQVRfV0lORE9XUykgfHwgZGVmaW5lZChQUk9UTykKIHN0YXRpYyBpbnQgd2luX3NwbGl0X2lucyBfX0FSR1MoKGludCBzaXplLCBpbnQgZmxhZ3MsIHdpbl9UICpuZXd3aW4sIGludCBkaXIpKTsK